1.5.1 • Published 1 year ago

@wines/date-picker v1.5.1

Weekly downloads
-
License
-
Repository
-
Last release
1 year ago

@wines/date-picker

DatePicker 日期选择器

用于选择日期或者时间。

使用指南

在 page.json 中引入组件

{
  "navigationBarTitleText": "DatePicker",
  "usingComponents": {
    "wux-segmented-control": "@wines/segmented-control",
    "wux-date-picker": "@wines/date-picker",
    "wux-cell-group": "@wines/cell-group",
    "wux-cell": "@wines/cell",
    "wux-button": "@wines/button"
  }
}

示例

<wux-date-picker
 visible="{{ visible }}"
 controlled
 mode="datetime"
 value="{{ value1 }}"
 lang="{{ lang }}"
 data-index="1"
 data-mode="datetime"
 bind:confirm="onConfirm"
 bind:visibleChange="onVisibleChange"
/>

<view class="page">
	<view class="page__hd">
		<view class="page__title">DatePicker</view>
		<view class="page__desc">日期选择器</view>
	</view>
	<view class="page__bd">
		<wux-segmented-control values="{{ ['zh_CN', 'zh_TW', 'en'] }}" bind:change="onChange" />
		<wux-cell-group title="Default">
			<wux-date-picker
			 mode="datetime"
			 value="{{ value1 }}"
			 lang="{{ lang }}"
			 data-index="1"
			 data-mode="datetime"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Datetime" is-link extra="{{ displayValue1 }}" />
			</wux-date-picker>
			<wux-date-picker
			 mode="date"
			 value="{{ value2 }}"
			 lang="{{ lang }}"
			 data-index="2"
			 data-mode="date"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Date" is-link extra="{{ displayValue2 }}" />
			</wux-date-picker>
			<wux-date-picker
			 mode="year"
			 value="{{ value3 }}"
			 lang="{{ lang }}"
			 data-index="3"
			 data-mode="year"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Year" is-link extra="{{ displayValue3 }}" />
			</wux-date-picker>
			<wux-date-picker
			 mode="month"
			 value="{{ value4 }}"
			 lang="{{ lang }}"
			 data-index="4"
			 data-mode="month"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Month" is-link extra="{{ displayValue4 }}" />
			</wux-date-picker>
			<wux-date-picker
			 mode="time"
			 value="{{ value5 }}"
			 lang="{{ lang }}"
			 data-index="5"
			 data-mode="time"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Time" is-link extra="{{ displayValue5 }}" />
			</wux-date-picker>
		</wux-cell-group>
		<wux-cell-group title="Use12Hours">
			<wux-date-picker
			 mode="datetime"
			 value="{{ value6 }}"
			 lang="{{ lang }}"
			 use12Hours
			 data-index="6"
			 data-mode="datetime"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Datetime" is-link extra="{{ displayValue6 }}" />
			</wux-date-picker>
			<wux-date-picker
			 mode="time"
			 value="{{ value7 }}"
			 lang="{{ lang }}"
			 use12Hours
			 data-index="7"
			 data-mode="time"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Time" is-link extra="{{ displayValue7 }}" />
			</wux-date-picker>
		</wux-cell-group>
		<wux-cell-group title="MinuteStep">
			<wux-date-picker
			 mode="datetime"
			 value="{{ value8 }}"
			 lang="{{ lang }}"
			 minuteStep="10"
			 data-index="8"
			 data-mode="datetime"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Datetime" is-link extra="{{ displayValue8 }}" />
			</wux-date-picker>
			<wux-date-picker
			 mode="time"
			 value="{{ value9 }}"
			 lang="{{ lang }}"
			 minuteStep="10"
			 data-index="9"
			 data-mode="time"
			 bind:confirm="onConfirm"
			>
				<wux-cell title="Time" is-link extra="{{ displayValue9 }}" />
			</wux-date-picker>
		</wux-cell-group>
		<view class="button-sp-area">
			<wux-button block type="light" bind:click="onClick">Button click - {{ displayValue1 }}</wux-button>
		</view>
	</view>
</view>
import './index.less';
import { DatePickerGetValue } from '@wines/date-picker';

Page({
  data: {
    value1: [],
    value2: [],
    value3: [],
    value4: [],
    value5: [],
    value6: [],
    value7: [],
    value8: [],
    value9: [],
    displayValue1: '请选择',
    displayValue2: '请选择',
    displayValue3: '请选择',
    displayValue4: '请选择',
    displayValue5: '请选择',
    displayValue6: '请选择',
    displayValue7: '请选择',
    displayValue8: '请选择',
    displayValue9: '请选择',
    lang: 'zh_CN',
  },
  onChange(e) {
    console.log(e);
    const { key, values } = e.detail;
    const lang = values[key];

    this.setData({
      lang,
    });
  },
  setValue(values: DatePickerGetValue, key: number, mode) {
    console.log(mode);
    this.setData({
      [`value${key}`]: values.value,
      [`displayValue${key}`]: values.label,
    });
  },
  onConfirm(e) {
    const { index, mode } = e.currentTarget.dataset;
    this.setValue(e.detail, index, mode);
    console.log(`onConfirm${index as number}`, e.detail);
  },
  onVisibleChange(e) {
    this.setData({ visible: e.detail.visible });
  },
  onClick() {
    this.setData({ visible: true });
  },
});

API

DatePicker props

参数类型描述默认值
prefixClsstring自定义类名前缀wux-date-picker
multiPickerPrefixClsstringmultPicker 自定义类名前缀wux-picker
pickerPrefixClsstringpicker 自定义类名前缀wux-picker-col
valueany当前选中时间,例如字符串 2000-02-01 00:00:00 或时间戳 949334400000 或者数组 [2000, 1, 1, 0, 0]-
itemHeightnumber每列子元素的高度34
itemStylestring,object每列子元素的样式-
indicatorStylestring,object设置选择器中间选中框的样式-
indicatorClassstring设置选择器中间选中框的类名-
maskStylestring,object设置蒙层的样式-
maskClassstring设置蒙层的类名-
labelAlignstring设置文本对齐方式,可选值为 right、center、leftcenter
modestring日期选择的类型,可选值为 datetime、date、year、month、timedatetime
minuteStepnumber分钟数递增步长1
use12Hoursboolean是否显示 12 小时制false
minDateany最小可选日期2000-02-01 00:00:00
maxDateany最大可选日期2030-02-01 23:59:59
minHournumber最小可选小时0
maxHournumber最大可选小时23
minMinutenumber最小可选分钟0
maxMinutenumber最大可选分钟59
langstring返回文本的语言,可选值为 en、zh_CN、zh_TWzh_CN
toolbarobject工具栏配置项{}
toolbar.titlestring标题的文字请选择
toolbar.cancelTextstring取消按钮的文字取消
toolbar.confirmTextstring确定按钮的文字确定
triggerstring触发事件,当包裹的子元素为 <wux-cell /> 时,点击控制组件显隐onClick
defaultVisibleboolean默认是否显隐,当 controlledfalse 时才生效false
visibleboolean用于手动控制组件显隐,当 controlledtrue 时才生效false
controlledboolean是否受控 说明文档false
disabledboolean是否禁用false
bind:changefunction选择完成后的回调函数-
bind:confirmfunction点击确定按钮时的回调函数-
bind:cancelfunction点击取消按钮时的回调函数-
bind:visibleChangefunction当显隐状态变化时的回调函数-
bind:valueChangefunction每列数据选择变化后的回调函数-

DatePicker slot

名称描述
-建议包裹 <wux-cell /> 组件