Skip to content

Commit 90e86de

Browse files
author
xuqingkai
committed
fix: 🐛 修复Picker多级联动未应用picker选择值时取消后打开展示列数据错误的问题
Closes: #562
1 parent 4983f48 commit 90e86de

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

docs/component/picker-view.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ const onChangeDistrict = (pickerView, value, columnIndex, resolve) => {
127127
| getColumnIndex | 获取某一列的选中项下标 | columnIndex | - |
128128
| getColumnData | 获取某一列的选项 | columnIndex | - |
129129
| setColumnData | 设置某一列的选项 | columnIndex, values | - |
130+
| resetColumns | 重置列数据为指定列数据 | columns(类型与props中columns相同) | $LOWEST_VERSION$ |
130131

131132
## Events
132133

src/uni_modules/wot-design-uni/components/wd-picker-view/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export type PickerViewExpose = {
7171
getColumnIndex: (columnIndex: number) => number
7272
getLabels: () => string[]
7373
getSelectedIndex: () => number[]
74+
resetColumns: (columns: (string | number | string[] | number[] | ColumnItem | ColumnItem[])[]) => void
7475
}
7576

7677
export type PickerViewProps = ExtractPropTypes<typeof pickerViewProps>

src/uni_modules/wot-design-uni/components/wd-picker-view/wd-picker-view.vue

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,15 @@ function getSelectedIndex() {
326326
return selectedIndex.value
327327
}
328328
329+
/**
330+
* 用于重置列数据为指定列数据
331+
*/
332+
function resetColumns(columns: (string | number | string[] | number[] | ColumnItem | ColumnItem[])[]) {
333+
if (isArray(columns) && columns.length) {
334+
formatColumns.value = formatArray(columns, props.valueKey, props.labelKey)
335+
}
336+
}
337+
329338
function onPickStart() {
330339
emit('pickstart')
331340
}
@@ -342,7 +351,8 @@ defineExpose<PickerViewExpose>({
342351
getColumnData,
343352
getColumnIndex,
344353
getLabels,
345-
getSelectedIndex
354+
getSelectedIndex,
355+
resetColumns
346356
})
347357
</script>
348358
<style lang="scss" scoped>

src/uni_modules/wot-design-uni/components/wd-picker/wd-picker.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,10 @@ function showPopup() {
292292
function onCancel() {
293293
popupShow.value = false
294294
emit('cancel')
295+
let timmer = setTimeout(() => {
296+
clearTimeout(timmer)
297+
isDef(pickerViewWd.value) && pickerViewWd.value.resetColumns(resetColumns.value)
298+
}, 300)
295299
}
296300
/**
297301
* 点击确定按钮触发。展示选中值,触发cancel事件。

0 commit comments

Comments
 (0)