自学内容网 自学内容网

vue3 ts项目 | 使用TDesign的日期选择组件

1.使用 npm 安装

npm i tdesign-vue-next

2.通过插件按需引用使用

除此之外,也可以使用 unplugin-vue-components 和 unplugin-auto-import 来实现自动导入:

您仍需在项目引入组件库的少量全局样式变量

import { createApp } from 'vue';
// 引入组件库的少量全局样式变量
import 'tdesign-vue-next/es/style/index.css';

const app = createApp(App);

并安装两个unplugin相关的第三方包

npm install -D unplugin-vue-components unplugin-auto-import

然后在 Vite 对应的配置文件添加上述插件。

Vite
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { TDesignResolver } from 'unplugin-vue-components/resolvers';
export default {
  plugins: [
    // ...
    AutoImport({
      resolvers: [TDesignResolver({
        library: 'vue-next'
      })],
    }),
    Components({
      resolvers: [TDesignResolver({
        library: 'vue-next'
      })],
    }),
  ],
};

3.以下是代码逻辑、结构和样式

<script lang="ts" setup>

import type { DateRangePickerProps } from 'tdesign-vue-next'

const selectForm = ref({
        startTime:'',

        endTime:''

})

// 默认触发时间和解除时间

const rangeDateTime = ref([selectForm.value.startTime, selectForm.value.endTime])

// 选中触发时间和解除时间

const onChange: DateRangePickerProps['onChange'] = (value) => {

  selectForm.value.startTime = `${value[0]}`

  selectForm.value.endTime = `${value[1]}`

}

</script>

<template>

        <div>

                <t-date-range-picker v-model="rangeDateTime" enable-time-picker clearable class="h-                full w-120rpx" @change="onChange" />

        </div>

</template>

<style scoped>

/* 修改TDesign组件默认样式 */

/* 右边的小图标 */

:deep(.t-range-input.t-range-input--suffix .t-range-input__suffix){

  display: none;

}

:deep(.t-range-input__inner-separator){

  display: none;

}

:global(.t-date-picker__panel-content){

  flex-direction: column;

}

/* 时间选择器的高度 */

:global(.t-date-picker__panel-time){

  height: 140px;

  display: flex;

  align-items: center;

}

/* 时间选择器滑动可视区域 */

:global(.t-time-picker__panel-body){

  height: 80px;

}

/* 时间选定的背景颜色 */

:global(.t-date-picker__cell--active .t-date-picker__cell-inner ){

  background-color: #2E6FFF;

}

/* 确认按钮的背景颜色 */

:global(.t-button--variant-base.t-button--theme-primary){

  background-color: #2E6FFF;

  border-color: #2E6FFF;

}

/* 当天日期文字颜色 */

:global(.t-date-picker__cell--now .t-date-picker__cell-inner){

  color:#2E6FFF;

}

/* 当天时间文字颜色 */

:global(.t-time-picker__panel-body-scroll-item.t-is-current){

  color: #2E6FFF;

}

/* 默认选中当天时的日期文字、背景颜色 */

:global(.t-date-picker__cell--active .t-date-picker__cell-inner){

  color: #ffffff;

  background-color: #2E6FFF;

}

/* input输入框 */

:deep(.t-range-input ){

  border-width: 0;

  height: 100%;

  border-radius:1vw;

  padding: 0;

}

:deep(.t-range-input-popup--visible .t-range-input){

  border-color:#EFEFEF;

  box-shadow: none;

}

/* 鼠标悬浮input边框颜色 */

:deep(.t-range-input:hover){

  border-color:#EFEFEF;

}

:deep(.t-range-input__inner .t-input__wrap){

  font-size: 3.467vw;

  border:1px solid #E7E7E7;

  border-radius:1vw;

}

:deep(.t-input__inner){

  font-size: 3.467vw;

  color: #727272;

}

:deep(.t-input.t-is-readonly){

  background-color: rgba(0,0,0,0);

  box-shadow: none;

}

:deep(.t-range-input-popup--visible .t-range-input .t-input.t-is-focused ){

  background-color: rgba(0,0,0,0);

}

</style>

以上是这个组件的全部代码,可以参考一下,写得不好的地方帮忙指正。

(效果图如下:)


原文地址:https://blog.csdn.net/m0_65292523/article/details/144030841

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!