|
@@ -85,7 +85,7 @@ export default create({
|
|
|
...popupProps,
|
|
...popupProps,
|
|
|
modelValue: {
|
|
modelValue: {
|
|
|
type: Array as PropType<(string | number)[]>,
|
|
type: Array as PropType<(string | number)[]>,
|
|
|
- default: () => []
|
|
|
|
|
|
|
+ default: []
|
|
|
},
|
|
},
|
|
|
title: {
|
|
title: {
|
|
|
type: String,
|
|
type: String,
|
|
@@ -133,7 +133,9 @@ export default create({
|
|
|
|
|
|
|
|
const pickerline = ref(null);
|
|
const pickerline = ref(null);
|
|
|
// 选中项
|
|
// 选中项
|
|
|
- let defaultValues = ref<(number | string)[]>(props.modelValue);
|
|
|
|
|
|
|
+ let defaultValues = ref<(number | string)[]>(
|
|
|
|
|
+ Array.isArray(props.modelValue) && props.modelValue.length > 0 ? props.modelValue : []
|
|
|
|
|
+ );
|
|
|
// 选中项的位置
|
|
// 选中项的位置
|
|
|
let defaultIndexes = ref<number[]>([]);
|
|
let defaultIndexes = ref<number[]>([]);
|
|
|
|
|
|
|
@@ -244,7 +246,6 @@ export default create({
|
|
|
} else {
|
|
} else {
|
|
|
defaultValues.value[columnIndex] = option.hasOwnProperty('value') ? option.value : '';
|
|
defaultValues.value[columnIndex] = option.hasOwnProperty('value') ? option.value : '';
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
emit('change', {
|
|
emit('change', {
|
|
|
columnIndex: columnIndex,
|
|
columnIndex: columnIndex,
|
|
|
selectedValue: defaultValues.value,
|
|
selectedValue: defaultValues.value,
|
|
@@ -253,7 +254,7 @@ export default create({
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const defaultValuesConvert = computed(() => {
|
|
|
|
|
|
|
+ const defaultValuesConvert = () => {
|
|
|
let defaultIndexs = [];
|
|
let defaultIndexs = [];
|
|
|
if (defaultValues.value.length > 0) {
|
|
if (defaultValues.value.length > 0) {
|
|
|
defaultValues.value.forEach((value, index) => {
|
|
defaultValues.value.forEach((value, index) => {
|
|
@@ -264,14 +265,18 @@ export default create({
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ } else {
|
|
|
|
|
+ columnsList.value.forEach((item) => {
|
|
|
|
|
+ defaultIndexs.push(0);
|
|
|
|
|
+ defaultValues.value.push(item[0].value);
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return defaultIndexs;
|
|
return defaultIndexs;
|
|
|
- });
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
// 平铺展示时,滚动选择
|
|
// 平铺展示时,滚动选择
|
|
|
const tileChange = ({ detail }) => {
|
|
const tileChange = ({ detail }) => {
|
|
|
- console.log('选择');
|
|
|
|
|
const prevDefaultValue = defaultIndexes.value;
|
|
const prevDefaultValue = defaultIndexes.value;
|
|
|
let changeIndex = 0;
|
|
let changeIndex = 0;
|
|
|
// 判断变化的是第几个
|
|
// 判断变化的是第几个
|
|
@@ -289,7 +294,6 @@ export default create({
|
|
|
// 确定
|
|
// 确定
|
|
|
const confirmHandler = () => {
|
|
const confirmHandler = () => {
|
|
|
if (state.picking) {
|
|
if (state.picking) {
|
|
|
- console.log('滚动中');
|
|
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
confirmHandlerAwit();
|
|
confirmHandlerAwit();
|
|
|
}, 0);
|
|
}, 0);
|
|
@@ -305,7 +309,7 @@ export default create({
|
|
|
selectedOptions.value.push(columns[0]);
|
|
selectedOptions.value.push(columns[0]);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- console.log('确定', defaultValues.value);
|
|
|
|
|
|
|
+
|
|
|
emit('confirm', {
|
|
emit('confirm', {
|
|
|
selectedValue: defaultValues.value,
|
|
selectedValue: defaultValues.value,
|
|
|
selectedOptions: selectedOptions.value
|
|
selectedOptions: selectedOptions.value
|
|
@@ -317,12 +321,10 @@ export default create({
|
|
|
|
|
|
|
|
// 开始滚动
|
|
// 开始滚动
|
|
|
const handlePickstart = () => {
|
|
const handlePickstart = () => {
|
|
|
- console.log('开始滚动');
|
|
|
|
|
state.picking = true;
|
|
state.picking = true;
|
|
|
};
|
|
};
|
|
|
// 开始滚动
|
|
// 开始滚动
|
|
|
const handlePickend = () => {
|
|
const handlePickend = () => {
|
|
|
- console.log('滚动结束');
|
|
|
|
|
state.picking = false;
|
|
state.picking = false;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -330,7 +332,6 @@ export default create({
|
|
|
|
|
|
|
|
const getReference = async () => {
|
|
const getReference = async () => {
|
|
|
const refe = await useTaroRect(pickerline, Taro);
|
|
const refe = await useTaroRect(pickerline, Taro);
|
|
|
- console.log(refe.height);
|
|
|
|
|
state.lineSpacing = refe.height ? refe.height : 36;
|
|
state.lineSpacing = refe.height ? refe.height : 36;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -341,7 +342,7 @@ export default create({
|
|
|
getReference();
|
|
getReference();
|
|
|
}, 200);
|
|
}, 200);
|
|
|
} else {
|
|
} else {
|
|
|
- defaultIndexes.value = defaultValuesConvert.value;
|
|
|
|
|
|
|
+ defaultIndexes.value = defaultValuesConvert();
|
|
|
}
|
|
}
|
|
|
state.show = props.visible;
|
|
state.show = props.visible;
|
|
|
}
|
|
}
|
|
@@ -357,7 +358,7 @@ export default create({
|
|
|
const isSameValue = JSON.stringify(newValues) === JSON.stringify(defaultValues.value);
|
|
const isSameValue = JSON.stringify(newValues) === JSON.stringify(defaultValues.value);
|
|
|
if (!isSameValue) {
|
|
if (!isSameValue) {
|
|
|
defaultValues.value = newValues;
|
|
defaultValues.value = newValues;
|
|
|
- defaultIndexes.value = defaultValuesConvert.value;
|
|
|
|
|
|
|
+ defaultIndexes.value = defaultValuesConvert();
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
{ deep: true }
|
|
{ deep: true }
|
|
@@ -371,7 +372,7 @@ export default create({
|
|
|
emit('update:modelValue', newValues);
|
|
emit('update:modelValue', newValues);
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- { immediate: true }
|
|
|
|
|
|
|
+ { deep: true }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
watch(
|
|
watch(
|
|
@@ -387,7 +388,7 @@ export default create({
|
|
|
|
|
|
|
|
pickerColumn.value = [];
|
|
pickerColumn.value = [];
|
|
|
} else {
|
|
} else {
|
|
|
- defaultIndexes.value = defaultValuesConvert.value;
|
|
|
|
|
|
|
+ defaultIndexes.value = defaultValuesConvert();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -417,7 +418,6 @@ export default create({
|
|
|
refRandomId,
|
|
refRandomId,
|
|
|
pickerline,
|
|
pickerline,
|
|
|
tileChange,
|
|
tileChange,
|
|
|
- defaultValuesConvert,
|
|
|
|
|
handlePickstart,
|
|
handlePickstart,
|
|
|
handlePickend
|
|
handlePickend
|
|
|
};
|
|
};
|