From 3a6cc6aa0913b9129b5916c460985d1cc8433b99 Mon Sep 17 00:00:00 2001 From: tangjinzhou <415800467@qq.com> Date: Fri, 21 Jan 2022 15:01:11 +0800 Subject: [PATCH] refactor: cascader --- components/cascader/demo/custom-render.vue | 2 +- components/cascader/demo/custom-trigger.vue | 2 +- components/cascader/demo/index.vue | 3 + components/cascader/demo/lazy.vue | 2 +- components/cascader/demo/multiple.vue | 72 +++++++++++++++++++ components/cascader/demo/search.vue | 3 +- components/cascader/index.en-US.md | 53 +++++++------- components/cascader/index.tsx | 8 +-- components/cascader/index.zh-CN.md | 64 +++++++++-------- components/vc-cascader/Cascader.tsx | 43 ++++++++--- .../vc-cascader/OptionList/Checkbox.tsx | 2 +- components/vc-overflow/Overflow.tsx | 2 +- 12 files changed, 182 insertions(+), 74 deletions(-) create mode 100644 components/cascader/demo/multiple.vue diff --git a/components/cascader/demo/custom-render.vue b/components/cascader/demo/custom-render.vue index eb57f5bb4..8a52a0d00 100644 --- a/components/cascader/demo/custom-render.vue +++ b/components/cascader/demo/custom-render.vue @@ -77,7 +77,7 @@ const options: CascaderProps['options'] = [ ]; export default defineComponent({ setup() { - const handleAreaClick = (e: Event, label: string, option: Option) => { + const handleAreaClick = (e: Event, label: string, option: CascaderProps['options'][number]) => { e.stopPropagation(); console.log('clicked', label, option); }; diff --git a/components/cascader/demo/custom-trigger.vue b/components/cascader/demo/custom-trigger.vue index fd1377f9d..06220cc43 100644 --- a/components/cascader/demo/custom-trigger.vue +++ b/components/cascader/demo/custom-trigger.vue @@ -71,7 +71,7 @@ export default defineComponent({ const value = ref([]); const text = ref('Unselect'); - const onChange = (_value: string, selectedOptions: Option[]) => { + const onChange: CascaderProps['onChange'] = (_value, selectedOptions) => { text.value = selectedOptions.map(o => o.label).join(', '); }; diff --git a/components/cascader/demo/index.vue b/components/cascader/demo/index.vue index eaeda5651..0f5871a9e 100644 --- a/components/cascader/demo/index.vue +++ b/components/cascader/demo/index.vue @@ -11,6 +11,7 @@ + diff --git a/components/cascader/demo/lazy.vue b/components/cascader/demo/lazy.vue index 53a7c6f2e..daa36e205 100644 --- a/components/cascader/demo/lazy.vue +++ b/components/cascader/demo/lazy.vue @@ -45,7 +45,7 @@ export default defineComponent({ }, ]); - const loadData = (selectedOptions: Option[]) => { + const loadData: CascaderProps['loadData'] = selectedOptions => { const targetOption = selectedOptions[selectedOptions.length - 1]; targetOption.loading = true; diff --git a/components/cascader/demo/multiple.vue b/components/cascader/demo/multiple.vue new file mode 100644 index 000000000..28ff3dc48 --- /dev/null +++ b/components/cascader/demo/multiple.vue @@ -0,0 +1,72 @@ + +--- +order: 5.1 +version: 3.0.0 +title: + zh-CN: 多选 + en-US: Multiple +--- + +## zh-CN + +一次性选择多个选项。 + +## en-US + +Select multiple options + + + diff --git a/components/cascader/demo/search.vue b/components/cascader/demo/search.vue index af6234876..778a3c426 100644 --- a/components/cascader/demo/search.vue +++ b/components/cascader/demo/search.vue @@ -28,6 +28,7 @@ Search and select options directly.