2025-04-01 09:03:51 +08:00

162 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# hbxw-date-range-picker组件
## 介绍
一个可以自由定义选择级别的日期时间段选择器插件如: 2024-07-11 15:00:00 - 2030-07-12 16:18:56/2024-07-11 - 2030-07-12/2024-07-11 15:00 - 2030-07-12 16:18等
## 使用示例
使用前要以新建一个页面拷贝下面代码做一下测试,熟悉后再使用到项目中
```html
<template>
<view class="content">
<button @click="selctDateRange">选择日期时间段</button>
<button @click="selctDateRange0">选择范围:年月日</button>
<button @click="selctDateRange1">选择范围:年月日时分</button>
<view class="text-area" v-if="date">
<text class="date">values: {{JSON.stringify(date.values)}}</text>
<text class="date">start: {{JSON.stringify(date.start)}}</text>
<text class="date">end: {{JSON.stringify(date.end)}}</text>
<text class="date">startStr: {{date.startStr}}</text>
<text class="date">endStr: {{date.endStr}}</text>
<text class="date">from: {{date.from}}</text>
</view>
<hbxw-date-range-picker
title="选择时间"
:visible="dateReangeVisible"
@cancel="cancel"
@sure="sure"
@change="change"
/>
<hbxw-date-range-picker
title="选择时间"
:visible="dateReangeVisible0"
level="date"
@cancel="cancel0"
@sure="sure0"
@change="change0"
/>
<hbxw-date-range-picker
title="选择时间"
:visible="dateReangeVisible1"
level="minute"
@cancel="cancel1"
@sure="sure1"
@change="change1"
/>
</view>
</template>
<script>
export default {
data() {
return {
dateReangeVisible: false,
dateReangeVisible0: false,
dateReangeVisible1: false,
date: null
}
},
onLoad() {
},
methods: {
selctDateRange() {
this.dateReangeVisible = true;
},
cancel() {
console.log('---- cancel ----');
this.dateReangeVisible = false;
},
sure(res) {
console.log('---- sure ----:', res);
this.date = res;
},
change(res) {
console.log('---- change ----:', res);
this.date = res;
},
selctDateRange0() {
this.dateReangeVisible0 = true;
},
cancel0() {
console.log('---- cancel ----');
this.dateReangeVisible0 = false;
},
sure0(res) {
console.log('---- sure ----:', res);
this.date = res;
},
change0(res) {
console.log('---- change ----:', res);
this.date = res;
},
selctDateRange1() {
this.dateReangeVisible1 = true;
},
cancel1() {
console.log('---- cancel ----');
this.dateReangeVisible1 = false;
},
sure1(res) {
console.log('---- sure ----:', res);
this.date = res;
},
change1(res) {
console.log('---- change ----:', res);
this.date = res;
},
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.text-area {
display: flex;
flex-direction: column;
justify-content: center;
}
.date{
padding:20rpx 0;
border: 1px solid rgba(0,0,0,.2);
font-size: 28rpx;
}
</style>
```
## API
### Props
| 属性名 | 类型 | 默认值 | 必填 | 说明 |
| ------------ | -------------| -------- | ---- | -----------------------------------|
| visible | Boolean | false | 是 | 时间段选择器的显示与隐藏 |
| title | String | 选择时间 | 否 | 时间段选择器标题,如果不需要传空即可 |
| zIndex | Number | 9999 | 否 | 时间选择器的层级 |
| yearSpan | Number | 10 | 否 | 时间选择器年份可以选到前后多少年前 |
| level | String | time | 否 | 时间选择器选择范围定义,date(年月日)/time(年月日时分秒)/year(选择年份)/month(年月)/day(年月日同date)/hour(年月日时)/minute(年月日时分)/second(年月日时分秒同time) |
### Events
| 事件名 | 说明 | 返回值 |
| ------------ | ------------ | ------------
| cancel | 点击取消按钮的触发事件 | undefined |
| sure | 点击确认按钮的触发事件 | 举列:{values: [[10,6,11,9,52,19],[0,0,1,1,0,0]],start: ["2024","07","12","09","52","19"],end: ["2024","07","13","01","00","00"],startStr: 2024年07月12日 09:52:19,endStr: 2024年07月13日 01:00:00,from: sure} |
| change | picker状态发生变化触发事件 | 举列:{values: [[10,6,11,9,52,19],[0,0,1,1,0,0]],start: ["2024","07","12","09","52","19"],end: ["2024","07","13","01","00","00"],startStr: 2024年07月12日 09:52:19,endStr: 2024年07月13日 01:00:00,from: start/end} |
### 注意
显示的插件包体积有768kb,是包括了演示图片在里面的真正使用的时候包体积是23KB左右