时间区间选择 xBetweenTime
在线预览
在线模拟尺寸:
介绍
快速的时间区间选择器,方便时间选择自动判断前后时间大小并校正。
平台兼容
| Harmony | H5 | andriod | IOS | 小程序 | UTS | UNIAPP-X SDK | version |
|---|---|---|---|---|---|---|---|
| ☑ | ☑ | ☑️ | ☑️ | ☑️ | ☑️ | 4.76+ | 1.1.18 |
文件路径
ts
@/uni_modules/tmx-ui/components/x-between-time/x-between-time.uvue使用
ts
<x-between-time></x-between-time>Props 属性
| 名称 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| modelValue | 当前时间,与modelStr不同,此提供的值必须是正常的时间格式否则报错,无法运行。 | Array | () : string[] => [] as string[] |
| modelStr | 当前时间经过format格式化后输出的值。此值不会处理输入,只输出显示。 | string | "" |
| modelShow | 当前打开的状态。等同v-model:model-show | boolean | false |
| title | 顶部标题空默认为:请选择时间(根据语言不同也不同)如果你提供了值,组件内的多语言失效以你设定的为准 | string | "" |
| start | 开始时间,请提供正确的时间格式 | string | "" |
| end | 结束时间,请提供正确的时间格式 | string | "" |
| type | 精确到的级别,这里只是展示,具体的返回值还是完整的值。year:年month:年月day:年月日hour:年月日小时minute:年月日小时分钟second:年月日小时分钟秒 | ModelType | "day" |
| format | 输出时间格式,只对v-model:modelStr及输入框展示有效YYYY-MM-DD,为空时由当前语文决定因此它可能不是一个标准时间,比如YY SS ,所以不能作为modelValue使用有效格式:YYYY年MM月DD日hh小时mm分钟ss秒 | string | "" |
| cellUnits | 上方的单位名称默认为:['年', '月', '日', '时', '分', '秒'] | Array | () : string[] => [] as string[] |
| quickDate | 快速时间区间选择,如果直接填写数字字符,会以你提供的数字最近多少来天来算。d:本日w:本周m:本月y:本年q:本季度7:最近7天,后面的依此类推,数字的就是最近xx天。px:前x年,p+[x]数字依此类推,表示前x年,如:p1,p2...如果提供以下json结构,则以你自定的为准。UTSJSONObject:{title:'本学年',start:'2025-1-1',end:'2025-12-31'} as UTSJSONObject | Array | () : Array<any> => ['d', 'w', 'm', 'y', 'q'] as Array<any> |
| lazyContent | 是否懒加载内部内容。当前你的列表内容非常多,且影响打开的动画性能时,请务必设置此项为true,以获得流畅视觉效果。如果选择数据较少没有必要打开要兼容微信,必须设置为true,非微信可以为false | boolean | true |
| drawerSize | 如果你的快捷选择较多可能会让高度不足,需要自行设置下高。 | string | '540px' |
| disabledClear | 是否禁用清除按钮,默认不禁用,允许用户清空选择。点确认,以清空选项数据 | boolean | false |
| disabled | 是否禁用弹出 | boolean | false |
| widthCoverCenter | 宽屏时是否让内容剧中显示并限制其宽为屏幕宽,只展示中间内容以适应宽屏。 | boolean | true |
Events 事件
| 名称 | 参数 | 说明 |
|---|---|---|
| cancel | - | 取消时触发 |
| confirm | date: string | 确认触发 |
| change | date: string | 滑动变换时触发 |
| dateClick | item: UTSJSONObject<{text:string,value:string[]}> | 快速日期被选中时触发 |
| update:modelShow | - | 变量控制打开状态 等同v-model:model-show |
| update:modelStr | - | 经格式化后的值。等同v-model:model-str |
| update:modelValue | - | - |
Slots 插槽
| 名称 | 说明 | 数据 |
|---|---|---|
| default | 插槽,默认触发打开选择器。你的默认布局可以放置在这里。 | show: boolean show: boolean show: boolean startVal: boolean startVal: boolean startVal: boolean endVal: boolean endVal: boolean endVal: boolean |
Ref 方法
| 名称 | 参数 | 返回值 | 说明 |
|---|---|---|---|
| open | - | - | 打开选择器 * |
| close | - | - | 关闭选择器 * |
| clear | - | - | 清空选择 * |
示例文件路径
json
/pages/biaodan/between-time示例源码
uvue
vue
<template>
<!-- #ifdef APP -->
<scroll-view style="flex:1">
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<page-meta :page-style="`background-color:${xThemeConfigBgColor}`">
<navigation-bar :background-color="xThemeConfigNavBgColor" :front-color="xThemeConfigNavFontColor"></navigation-bar>
</page-meta>
<!-- #endif -->
<x-sheet>
<x-text font-size="18" class=" text-weight-b mb-8">时间区间选择 xBetweenTime</x-text>
<x-text color="#999999">快速的时间区间选择器,方便时间选择自动判断前后时间大小并校正。</x-text>
</x-sheet>
<x-sheet>
<x-between-time start="2020-1-9" end="2026-5-26" v-model="newdata" v-model:model-str="nowVal">
<template v-slot:default="{show}">
<x-button :block="true">打开时间</x-button>
</template>
</x-between-time>
<x-sheet :margin="['0','24']" color="#f5f5f5" dark-color="#333">
<x-text color="#999999">选中的值:{{newdata}}</x-text>
<x-text color="#999999">经format的值:{{nowVal}}</x-text>
</x-sheet>
<x-button skin='thin' :block="true" @click="newdata = ['2024-3-21','2026-1-13']">赋值</x-button>
</x-sheet>
<x-sheet>
<x-text font-size="18" class="text-weight-b mb-20">设置快捷按钮</x-text>
<x-between-time :quick-date="['d','y','7','30','p1','p2',customDate]" start="2020-1-9" end="2026-5-26" v-model="newdata" v-model:model-str="nowVal">
<template v-slot:default="{show}">
<x-button :block="true">打开时间</x-button>
</template>
</x-between-time>
</x-sheet>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<script setup lang="ts">
import { ref } from 'vue'
const nowVal = ref("")
const newdata = ref<string[]>([])
const customDate = ref<UTSJSONObject>({title:'本学年',start:'2025-1-1',end:'2025-12-31'})
</script>
<style lang="scss">
</style>