|
|
@@ -26,6 +26,7 @@
|
|
|
<view class="nut-picker__hairline"></view>
|
|
|
<view class="nut-picker__columnitem" v-for="(column, columnIndex) in columnsList" :key="columnIndex">
|
|
|
<nut-picker-column
|
|
|
+ :ref="swipeRef"
|
|
|
:itemShow="show"
|
|
|
:column="column"
|
|
|
:readonly="readonly"
|
|
|
@@ -52,7 +53,6 @@ import { createComponent } from '@/packages/utils/create';
|
|
|
import popup, { popupProps } from '../popup/index.vue';
|
|
|
import column from './Column.vue';
|
|
|
const { componentName, create, translate } = createComponent('picker');
|
|
|
-// import { PickerColumnOption, PickerOption, TouchParams } from './types';
|
|
|
|
|
|
export interface PickerOption {
|
|
|
text: string | number;
|
|
|
@@ -116,7 +116,13 @@ export default create({
|
|
|
// 选中项
|
|
|
let defaultValues = ref<(number | string)[]>(props.modelValue);
|
|
|
|
|
|
- const wrapHeight = ref();
|
|
|
+ const pickerColumn = ref<any[]>([]);
|
|
|
+
|
|
|
+ const swipeRef = (el: any) => {
|
|
|
+ if (el && pickerColumn.value.length < columnsList.value.length) {
|
|
|
+ pickerColumn.value.push(el);
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
const classes = computed(() => {
|
|
|
const prefixCls = componentName;
|
|
|
@@ -223,9 +229,13 @@ export default create({
|
|
|
};
|
|
|
|
|
|
const confirmHandler = () => {
|
|
|
+ pickerColumn.value.length > 0 &&
|
|
|
+ pickerColumn.value.forEach((column) => {
|
|
|
+ column.stopMomentum();
|
|
|
+ });
|
|
|
+
|
|
|
if (defaultValues.value && !defaultValues.value.length) {
|
|
|
columnsList.value.forEach((columns) => {
|
|
|
- // console.log(columns);
|
|
|
defaultValues.value.push(columns[0].value);
|
|
|
selectedOptions.value.push(columns[0]);
|
|
|
});
|
|
|
@@ -272,6 +282,7 @@ export default create({
|
|
|
() => props.visible,
|
|
|
(val) => {
|
|
|
state.show = val;
|
|
|
+ if (val) pickerColumn.value = [];
|
|
|
}
|
|
|
);
|
|
|
|
|
|
@@ -292,7 +303,9 @@ export default create({
|
|
|
changeHandler,
|
|
|
confirmHandler,
|
|
|
defaultValues,
|
|
|
- translate
|
|
|
+ translate,
|
|
|
+ pickerColumn,
|
|
|
+ swipeRef
|
|
|
};
|
|
|
}
|
|
|
});
|