mirror of
https://gitee.com/wot-design-uni/wot-design-uni.git
synced 2025-12-08 01:58:52 +08:00
feat: ✨ Pickerview选择器新增immediate-change属性,目前微信和支付宝小程序支持。
This commit is contained in:
parent
61004d30ed
commit
3428ae1788
@ -236,6 +236,7 @@ function handleChange({ value }) {
|
|||||||
| panel-height | 可滚动面板的高度 | number | - | 378 | - |
|
| panel-height | 可滚动面板的高度 | number | - | 378 | - |
|
||||||
| time-filter | type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据 | function | - | - | - |
|
| time-filter | type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据 | function | - | - | - |
|
||||||
| hide-second | type 为 'datetime' 或 'datetimerange' 时有效,是否不展示秒修改 | boolean | - | false | - |
|
| hide-second | type 为 'datetime' 或 'datetimerange' 时有效,是否不展示秒修改 | boolean | - | false | - |
|
||||||
|
| immediate-change | type 为 'datetime' 或 'datetimerange' 时有,是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 | boolean | - | false | $LOWEST_VERSION$ |
|
||||||
|
|
||||||
## Events
|
## Events
|
||||||
|
|
||||||
|
|||||||
@ -398,6 +398,8 @@ function handleConfirm4({ value }) {
|
|||||||
| safe-area-inset-bottom | 弹出面板是否设置底部安全距离(iphone X 类型的机型) | boolean | - | true | - |
|
| safe-area-inset-bottom | 弹出面板是否设置底部安全距离(iphone X 类型的机型) | boolean | - | true | - |
|
||||||
| prop | 表单域 `model` 字段名,在使用表单校验功能的情况下,该属性是必填的 | string | - | - | - |
|
| prop | 表单域 `model` 字段名,在使用表单校验功能的情况下,该属性是必填的 | string | - | - | - |
|
||||||
| rules | 表单验证规则,结合`wd-form`组件使用 | `FormItemRule []` | - | `[]` | - |
|
| rules | 表单验证规则,结合`wd-form`组件使用 | `FormItemRule []` | - | `[]` | - |
|
||||||
|
| immediate-change | type 为 'datetime' 或 'datetimerange' 时有,是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 | boolean | - | false | $LOWEST_VERSION$ |
|
||||||
|
|
||||||
|
|
||||||
### FormItemRule 数据结构
|
### FormItemRule 数据结构
|
||||||
|
|
||||||
|
|||||||
@ -133,6 +133,7 @@ const filter = (type, values) => {
|
|||||||
| maxHour | 最大小时,time类型时生效 | number | - | 23 | - |
|
| maxHour | 最大小时,time类型时生效 | number | - | 23 | - |
|
||||||
| minMinute | 最小分钟,time类型时生效 | number | - | 0 | - |
|
| minMinute | 最小分钟,time类型时生效 | number | - | 0 | - |
|
||||||
| maxMinute | 最大分钟,time类型时生效 | number | - | 59 | - |
|
| maxMinute | 最大分钟,time类型时生效 | number | - | 59 | - |
|
||||||
|
| immediate-change | 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 | boolean | - | false | $LOWEST_VERSION$ |
|
||||||
## Events
|
## Events
|
||||||
|
|
||||||
| 事件名称 | 说明 | 参数 | 最低版本 |
|
| 事件名称 | 说明 | 参数 | 最低版本 |
|
||||||
|
|||||||
@ -296,6 +296,7 @@ const displayFormatTabLabel = (items) => {
|
|||||||
| ellipsis | 是否超出隐藏 | boolean | - | false | - |
|
| ellipsis | 是否超出隐藏 | boolean | - | false | - |
|
||||||
| prop | 表单域 `model` 字段名,在使用表单校验功能的情况下,该属性是必填的 | string | - | - | - |
|
| prop | 表单域 `model` 字段名,在使用表单校验功能的情况下,该属性是必填的 | string | - | - | - |
|
||||||
| rules | 表单验证规则,结合`wd-form`组件使用 | `FormItemRule []` | - | `[]` | - |
|
| rules | 表单验证规则,结合`wd-form`组件使用 | `FormItemRule []` | - | `[]` | - |
|
||||||
|
| immediate-change | 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 | boolean | - | false | $LOWEST_VERSION$ |
|
||||||
|
|
||||||
### FormItemRule 数据结构
|
### FormItemRule 数据结构
|
||||||
|
|
||||||
|
|||||||
@ -114,6 +114,10 @@ const onChangeDistrict = (pickerView, value, columnIndex, resolve) => {
|
|||||||
| value-key | 选项对象中,value对应的 key | string | - | value | - |
|
| value-key | 选项对象中,value对应的 key | string | - | value | - |
|
||||||
| label-key | 选项对象中,展示的文本对应的 key | string | - | label | - |
|
| label-key | 选项对象中,展示的文本对应的 key | string | - | label | - |
|
||||||
| column-change | 接收 pickerView 实例、选中项、当前修改列的下标、resolve 作为入参,根据选中项和列下标进行判断,通过 pickerView 实例暴露出来的 `setColumnData` 方法修改其他列的数据源。 | function | - | - | - |
|
| column-change | 接收 pickerView 实例、选中项、当前修改列的下标、resolve 作为入参,根据选中项和列下标进行判断,通过 pickerView 实例暴露出来的 `setColumnData` 方法修改其他列的数据源。 | function | - | - | - |
|
||||||
|
| immediate-change | 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 | boolean | - | false | $LOWEST_VERSION$ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Methods
|
## Methods
|
||||||
|
|
||||||
|
|||||||
@ -262,6 +262,7 @@ function handleConfirm({ value }) {
|
|||||||
| ellipsis | 是否超出隐藏 | boolean | - | false | - |
|
| ellipsis | 是否超出隐藏 | boolean | - | false | - |
|
||||||
| prop | 表单域 `model` 字段名,在使用表单校验功能的情况下,该属性是必填的 | string | - | - | - |
|
| prop | 表单域 `model` 字段名,在使用表单校验功能的情况下,该属性是必填的 | string | - | - | - |
|
||||||
| rules | 表单验证规则,结合`wd-form`组件使用 | `FormItemRule []` | - | `[]` | - |
|
| rules | 表单验证规则,结合`wd-form`组件使用 | `FormItemRule []` | - | `[]` | - |
|
||||||
|
| immediate-change | 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 | boolean | - | false | $LOWEST_VERSION$ |
|
||||||
|
|
||||||
### FormItemRule 数据结构
|
### FormItemRule 数据结构
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,11 @@
|
|||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block :title="`禁用选项,数值: ${value2}`">
|
<demo-block :title="`禁用选项,数值: ${value2}`">
|
||||||
<wd-picker-view v-model="value2" :immediate-change="true" :columns="columns2" @change="(e) => onChange(2, e)" />
|
<wd-picker-view v-model="value2" :columns="columns2" @change="(e) => onChange(2, e)" />
|
||||||
|
</demo-block>
|
||||||
|
|
||||||
|
<demo-block :title="`立即触发 change,数值: ${value6}`">
|
||||||
|
<wd-picker-view v-model="value6" :immediate-change="true" :columns="columns2" @change="(e) => onChange(2, e)" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block :title="`加载中,数值: ${value3}`">
|
<demo-block :title="`加载中,数值: ${value3}`">
|
||||||
@ -70,6 +74,8 @@ const value1 = ref<string>('选项1')
|
|||||||
const columns1 = ref(['选项1', '选项2', '选项3', '选项4', '选项5', '选项6', '选项7'])
|
const columns1 = ref(['选项1', '选项2', '选项3', '选项4', '选项5', '选项6', '选项7'])
|
||||||
|
|
||||||
const value2 = ref<string>('选项1')
|
const value2 = ref<string>('选项1')
|
||||||
|
const value6 = ref<string>('选项1')
|
||||||
|
|
||||||
const columns2 = ref([
|
const columns2 = ref([
|
||||||
{ label: '选项1' },
|
{ label: '选项1' },
|
||||||
{ label: '选项2' },
|
{ label: '选项2' },
|
||||||
|
|||||||
@ -40,6 +40,7 @@
|
|||||||
v-model="timeValue"
|
v-model="timeValue"
|
||||||
:columns="timeData"
|
:columns="timeData"
|
||||||
:columns-height="125"
|
:columns-height="125"
|
||||||
|
:immediate-change="immediateChange"
|
||||||
@change="handleTimeChange"
|
@change="handleTimeChange"
|
||||||
@pickstart="handlePickStart"
|
@pickstart="handlePickStart"
|
||||||
@pickend="handlePickEnd"
|
@pickend="handlePickEnd"
|
||||||
|
|||||||
@ -27,7 +27,11 @@ export const monthPanelProps = {
|
|||||||
panelHeight: makeRequiredProp(Number),
|
panelHeight: makeRequiredProp(Number),
|
||||||
// type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据
|
// type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据
|
||||||
timeFilter: Function as PropType<CalendarTimeFilter>,
|
timeFilter: Function as PropType<CalendarTimeFilter>,
|
||||||
hideSecond: makeBooleanProp(false)
|
hideSecond: makeBooleanProp(false),
|
||||||
|
/**
|
||||||
|
* 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
|
*/
|
||||||
|
immediateChange: makeBooleanProp(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MonthPanelProps = ExtractPropTypes<typeof monthPanelProps>
|
export type MonthPanelProps = ExtractPropTypes<typeof monthPanelProps>
|
||||||
|
|||||||
@ -61,7 +61,11 @@ export const calendarViewProps = {
|
|||||||
/**
|
/**
|
||||||
* type 为 'datetime' 或 'datetimerange' 时有效,是否不展示秒修改
|
* type 为 'datetime' 或 'datetimerange' 时有效,是否不展示秒修改
|
||||||
*/
|
*/
|
||||||
hideSecond: makeBooleanProp(false)
|
hideSecond: makeBooleanProp(false),
|
||||||
|
/**
|
||||||
|
* 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
|
*/
|
||||||
|
immediateChange: makeBooleanProp(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CalendarViewProps = ExtractPropTypes<typeof calendarViewProps>
|
export type CalendarViewProps = ExtractPropTypes<typeof calendarViewProps>
|
||||||
|
|||||||
@ -31,6 +31,7 @@
|
|||||||
:show-panel-title="showPanelTitle"
|
:show-panel-title="showPanelTitle"
|
||||||
:default-time="formatDefauleTime"
|
:default-time="formatDefauleTime"
|
||||||
:panel-height="panelHeight"
|
:panel-height="panelHeight"
|
||||||
|
:immediate-change="immediateChange"
|
||||||
:time-filter="timeFilter"
|
:time-filter="timeFilter"
|
||||||
:hide-second="hideSecond"
|
:hide-second="hideSecond"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: weisheng
|
* @Author: weisheng
|
||||||
* @Date: 2024-03-15 20:40:34
|
* @Date: 2024-03-15 20:40:34
|
||||||
* @LastEditTime: 2024-03-18 13:37:40
|
* @LastEditTime: 2024-06-09 14:38:57
|
||||||
* @LastEditors: weisheng
|
* @LastEditors: weisheng
|
||||||
* @Description:
|
* @Description:
|
||||||
* @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\components\wd-calendar\types.ts
|
* @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/wd-calendar/types.ts
|
||||||
* 记得注释
|
* 记得注释
|
||||||
*/
|
*/
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
@ -180,7 +180,11 @@ export const calendarProps = {
|
|||||||
/**
|
/**
|
||||||
* value 外部自定义样式
|
* value 外部自定义样式
|
||||||
*/
|
*/
|
||||||
customValueClass: makeStringProp('')
|
customValueClass: makeStringProp(''),
|
||||||
|
/**
|
||||||
|
* 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
|
*/
|
||||||
|
immediateChange: makeBooleanProp(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CalendarDisplayFormat = (value: number | number[], type: CalendarType) => string
|
export type CalendarDisplayFormat = (value: number | number[], type: CalendarType) => string
|
||||||
|
|||||||
@ -93,6 +93,7 @@
|
|||||||
:time-filter="timeFilter"
|
:time-filter="timeFilter"
|
||||||
:hide-second="hideSecond"
|
:hide-second="hideSecond"
|
||||||
:show-panel-title="!range(type)"
|
:show-panel-title="!range(type)"
|
||||||
|
:immediate-change="immediateChange"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@ -86,6 +86,10 @@ export const datetimePickerViewProps = {
|
|||||||
* 最大分钟,time类型时生效
|
* 最大分钟,time类型时生效
|
||||||
*/
|
*/
|
||||||
maxMinute: makeNumberProp(59),
|
maxMinute: makeNumberProp(59),
|
||||||
|
/**
|
||||||
|
* 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
|
*/
|
||||||
|
immediateChange: makeBooleanProp(false),
|
||||||
startSymbol: makeBooleanProp(false)
|
startSymbol: makeBooleanProp(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<wd-picker-view
|
<wd-picker-view
|
||||||
|
ref="datePickerview"
|
||||||
:custom-class="customClass"
|
:custom-class="customClass"
|
||||||
:custom-style="customStyle"
|
:custom-style="customStyle"
|
||||||
ref="datePickerview"
|
:immediate-change="immediateChange"
|
||||||
v-model="pickerValue"
|
v-model="pickerValue"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:columns-height="columnsHeight"
|
:columns-height="columnsHeight"
|
||||||
|
|||||||
@ -166,7 +166,11 @@ export const datetimePickerProps = {
|
|||||||
/**
|
/**
|
||||||
* value 外部自定义样式
|
* value 外部自定义样式
|
||||||
*/
|
*/
|
||||||
customValueClass: makeStringProp('')
|
customValueClass: makeStringProp(''),
|
||||||
|
/**
|
||||||
|
* 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
|
*/
|
||||||
|
immediateChange: makeBooleanProp(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
export type DatetimePickerDisplayFormat = (items: Record<string, any>[]) => string
|
export type DatetimePickerDisplayFormat = (items: Record<string, any>[]) => string
|
||||||
|
|||||||
@ -102,6 +102,7 @@
|
|||||||
:max-minute="maxMinute"
|
:max-minute="maxMinute"
|
||||||
:min-minute="minMinute"
|
:min-minute="minMinute"
|
||||||
:start-symbol="true"
|
:start-symbol="true"
|
||||||
|
:immediate-change="immediateChange"
|
||||||
@change="onChangeStart"
|
@change="onChangeStart"
|
||||||
@pickstart="onPickStart"
|
@pickstart="onPickStart"
|
||||||
@pickend="onPickEnd"
|
@pickend="onPickEnd"
|
||||||
@ -128,6 +129,7 @@
|
|||||||
:max-minute="maxMinute"
|
:max-minute="maxMinute"
|
||||||
:min-minute="minMinute"
|
:min-minute="minMinute"
|
||||||
:start-symbol="false"
|
:start-symbol="false"
|
||||||
|
:immediate-change="immediateChange"
|
||||||
@change="onChangeEnd"
|
@change="onChangeEnd"
|
||||||
@pickstart="onPickStart"
|
@pickstart="onPickStart"
|
||||||
@pickend="onPickEnd"
|
@pickend="onPickEnd"
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export const pickerViewProps = {
|
|||||||
*/
|
*/
|
||||||
labelKey: makeStringProp('label'),
|
labelKey: makeStringProp('label'),
|
||||||
/**
|
/**
|
||||||
* 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
* 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
*/
|
*/
|
||||||
immediateChange: makeBooleanProp(false),
|
immediateChange: makeBooleanProp(false),
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -143,7 +143,11 @@ export const pickerProps = {
|
|||||||
/**
|
/**
|
||||||
* 表单验证规则,结合wd-form组件使用
|
* 表单验证规则,结合wd-form组件使用
|
||||||
*/
|
*/
|
||||||
rules: makeArrayProp<FormItemRule>()
|
rules: makeArrayProp<FormItemRule>(),
|
||||||
|
/**
|
||||||
|
* 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
|
||||||
|
*/
|
||||||
|
immediateChange: makeBooleanProp(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PickerProps = ExtractPropTypes<typeof pickerProps>
|
export type PickerProps = ExtractPropTypes<typeof pickerProps>
|
||||||
|
|||||||
@ -57,6 +57,7 @@
|
|||||||
:columns-height="columnsHeight"
|
:columns-height="columnsHeight"
|
||||||
:value-key="valueKey"
|
:value-key="valueKey"
|
||||||
:label-key="labelKey"
|
:label-key="labelKey"
|
||||||
|
:immediate-change="immediateChange"
|
||||||
@change="pickerViewChange"
|
@change="pickerViewChange"
|
||||||
@pickstart="onPickStart"
|
@pickstart="onPickStart"
|
||||||
@pickend="onPickEnd"
|
@pickend="onPickEnd"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user