Skip to content

Commit

Permalink
feat(cascader): support checkStrictly
Browse files Browse the repository at this point in the history
  • Loading branch information
novlan1 committed Dec 14, 2023
1 parent c01d6ef commit 930d901
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/cascader/cascader.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ title | String / Slot / Function | - | Typescript:`string \| TNode`。[see mor
value | String / Number | - | `v-model` and `v-model:value` is supported | N
defaultValue | String / Number | - | uncontrolled property | N
visible | Boolean | false | \- | N
checkStrictly | Boolean | false | \- | N
placeholder | String / Slot / Function | - | Typescript:`string \| TNode`[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts) | N
onChange | Function | | Typescript:`(value: string \| number, selectedOptions: string[]) => void`<br/> | N
onClose | Function | | Typescript:`(trigger: TriggerSource) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/cascader/type.ts)。<br/>`type TriggerSource = 'overlay' \| 'close-btn' \| 'finish'`<br/> | N
Expand Down
1 change: 1 addition & 0 deletions src/cascader/cascader.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ title | String / Slot / Function | - | 标题。TS 类型:`string \| TNode`。
value | String / Number | - | 选项值。支持语法糖 `v-model``v-model:value` | N
defaultValue | String / Number | - | 选项值。非受控属性 | N
visible | Boolean | false | 是否展示 | N
checkStrictly | Boolean | false | 父子节点选中状态不再关联,可各自选中或取消 | N
placeholder | String / Slot / Function | 选择选项 | 未选中时的提示文案。TS 类型:`string \| TNode`[通用类型定义](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts) | N
onChange | Function | | TS 类型:`(value: string \| number, selectedOptions: string[]) => void`<br/>值发生变更时触发 | N
onClose | Function | | TS 类型:`(trigger: TriggerSource) => void`<br/>关闭时触发。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/cascader/type.ts)。<br/>`type TriggerSource = 'overlay' \| 'close-btn' \| 'finish'`<br/> | N
Expand Down
17 changes: 17 additions & 0 deletions src/cascader/cascader.vue
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,24 @@ export default defineComponent({
close('overlay');
};
const onCloseChange = () => {
if (!stepIndex.value) {
setCascaderValue('', []);
} else {
const item = items[stepIndex.value - 1][selectedIndexes[stepIndex.value - 1]];
setCascaderValue(
item[(keys as Ref<KeysType>).value?.value ?? 'value'],
items.slice(0, stepIndex.value).map((item, index) => toRaw(item?.[selectedIndexes[index]])),
);
}
};
const onClose = () => {
if (props.checkStrictly) {
onCloseChange();
}
open.value = false;
close('close-btn');
};
Expand Down
5 changes: 5 additions & 0 deletions src/cascader/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ export default {
},
/** 是否展示 */
visible: Boolean,
/** 父子节点选中状态不再关联,可各自选中或取消 */
checkStrictly: {
type: Boolean,
default: false,
},
/** 值发生变更时触发 */
onChange: Function as PropType<TdCascaderProps['onChange']>,
/** 关闭时触发 */
Expand Down

0 comments on commit 930d901

Please sign in to comment.