From 8f41aab269a79fd5af7cd126ce684e0f07b4909a Mon Sep 17 00:00:00 2001 From: 07akioni <07akioni2@gmail.com> Date: Wed, 28 Oct 2020 01:00:55 +0800 Subject: [PATCH] refactor(select): use treemate --- .../components/dropdown/enUS/cascade.demo.md | 3 +- .../dropdown/enUS/index.demo-entry.md | 1 + .../dropdown/enUS/manual-position.demo.md | 3 +- .../components/dropdown/enUS/size.demo.md | 3 +- .../components/dropdown/zhCN/cascade.demo.md | 3 +- .../dropdown/zhCN/index.demo-entry.md | 1 + .../dropdown/zhCN/manual-position.demo.md | 3 +- .../components/dropdown/zhCN/size.demo.md | 3 +- package.json | 2 +- .../select-menu/src/SelectGroupHeader.js | 6 +- src/_base/select-menu/src/SelectMenu.vue | 228 +++++---------- src/_base/select-menu/src/SelectOption.js | 76 ++--- src/_utils/component/select.js | 176 ----------- src/_utils/vue/createClassObject.js | 14 - src/auto-complete/src/AutoComplete.vue | 17 +- src/cascader/src/CascaderOption.vue | 2 +- src/cascader/src/CascaderSelectMenu.vue | 14 +- src/cascader/src/composables.js | 2 +- src/data-table/src/TableParts/Body.vue | 33 ++- src/data-table/src/utils.js | 11 - src/dropdown/src/Dropdown.js | 6 +- src/select/src/Select.vue | 276 ++++++++++-------- 22 files changed, 326 insertions(+), 557 deletions(-) delete mode 100644 src/_utils/component/select.js delete mode 100644 src/_utils/vue/createClassObject.js diff --git a/demo/documentation/components/dropdown/enUS/cascade.demo.md b/demo/documentation/components/dropdown/enUS/cascade.demo.md index ada6235c5..b9ddc8385 100644 --- a/demo/documentation/components/dropdown/enUS/cascade.demo.md +++ b/demo/documentation/components/dropdown/enUS/cascade.demo.md @@ -30,7 +30,8 @@ const options = [ key: 'daisy buchanan' }, { - type: 'divider' + type: 'divider', + key: 'd1' }, { label: 'Nick Carraway', diff --git a/demo/documentation/components/dropdown/enUS/index.demo-entry.md b/demo/documentation/components/dropdown/enUS/index.demo-entry.md index eb2507288..a30b1cafb 100644 --- a/demo/documentation/components/dropdown/enUS/index.demo-entry.md +++ b/demo/documentation/components/dropdown/enUS/index.demo-entry.md @@ -32,6 +32,7 @@ For other props, see [Popover Props](n-popover#Props). Note that `arrow`, `raw` |Property|Type|Description| |-|-|-| |type|`'divider'`|| +|key|`string \| number`|Should be unique| ### DropdownSubmenu Type |Property|Type|Description| diff --git a/demo/documentation/components/dropdown/enUS/manual-position.demo.md b/demo/documentation/components/dropdown/enUS/manual-position.demo.md index 4c0ec7a83..d42bc6944 100644 --- a/demo/documentation/components/dropdown/enUS/manual-position.demo.md +++ b/demo/documentation/components/dropdown/enUS/manual-position.demo.md @@ -25,7 +25,8 @@ const options = [ key: 'daisy buchanan' }, { - type: 'divider' + type: 'divider', + key: 'd1' }, { label: 'Nick Carraway', diff --git a/demo/documentation/components/dropdown/enUS/size.demo.md b/demo/documentation/components/dropdown/enUS/size.demo.md index fa7b7fc99..a289e0fc6 100644 --- a/demo/documentation/components/dropdown/enUS/size.demo.md +++ b/demo/documentation/components/dropdown/enUS/size.demo.md @@ -51,7 +51,8 @@ const options = [ key: 'daisy buchanan' }, { - type: 'divider' + type: 'divider', + key: 'd1' }, { label: 'Nick Carraway', diff --git a/demo/documentation/components/dropdown/zhCN/cascade.demo.md b/demo/documentation/components/dropdown/zhCN/cascade.demo.md index 7a86fecb8..cc0a07722 100644 --- a/demo/documentation/components/dropdown/zhCN/cascade.demo.md +++ b/demo/documentation/components/dropdown/zhCN/cascade.demo.md @@ -30,7 +30,8 @@ const options = [ key: 'daisy buchanan' }, { - type: 'divider' + type: 'divider', + key: 'd1' }, { label: '尼克·卡拉威', diff --git a/demo/documentation/components/dropdown/zhCN/index.demo-entry.md b/demo/documentation/components/dropdown/zhCN/index.demo-entry.md index b117b0b08..9a6f4b567 100644 --- a/demo/documentation/components/dropdown/zhCN/index.demo-entry.md +++ b/demo/documentation/components/dropdown/zhCN/index.demo-entry.md @@ -32,6 +32,7 @@ manual-position |属性|类型|说明| |-|-|-| |type|`'divider'`|| +|key|`string \| number`|需要唯一| ### DropdownSubmenu Type |属性|类型|说明| diff --git a/demo/documentation/components/dropdown/zhCN/manual-position.demo.md b/demo/documentation/components/dropdown/zhCN/manual-position.demo.md index 1d9f58084..f183893a7 100644 --- a/demo/documentation/components/dropdown/zhCN/manual-position.demo.md +++ b/demo/documentation/components/dropdown/zhCN/manual-position.demo.md @@ -27,7 +27,8 @@ const options = [ key: 'daisy buchanan' }, { - type: 'divider' + type: 'divider', + key: 'd1' }, { label: '尼克·卡拉威', diff --git a/demo/documentation/components/dropdown/zhCN/size.demo.md b/demo/documentation/components/dropdown/zhCN/size.demo.md index 5f91f904d..6903eebd7 100644 --- a/demo/documentation/components/dropdown/zhCN/size.demo.md +++ b/demo/documentation/components/dropdown/zhCN/size.demo.md @@ -50,7 +50,8 @@ const options = [ key: 'daisy buchanan' }, { - type: 'divider' + type: 'divider', + key: 'd1' }, { label: '尼克·卡拉威', diff --git a/package.json b/package.json index f9d53d8d2..b42670cf4 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ "highlight.js": "^9.18.1", "lodash-es": "^4.17.15", "resize-observer-polyfill": "^1.5.1", - "treemate": "^0.1.6", + "treemate": "^0.1.7", "vooks": "0.0.1-alpha.1", "vue": "^3.0.2", "vue-runtime-helpers": "^1.1.2", diff --git a/src/_base/select-menu/src/SelectGroupHeader.js b/src/_base/select-menu/src/SelectGroupHeader.js index d90b36fba..9fd6abe3c 100644 --- a/src/_base/select-menu/src/SelectGroupHeader.js +++ b/src/_base/select-menu/src/SelectGroupHeader.js @@ -3,14 +3,14 @@ import { h } from 'vue' export default { name: 'NBaseSelectGroupHeader', props: { - data: { + tmNode: { type: Object, required: true } }, render () { - const data = this.data - const children = data.render ? [data.render(h, data)] : [ data.name ] + const { tmNode: { rawNode } } = this + const children = rawNode.render ? [rawNode.render(rawNode)] : [ rawNode.name ] return h('div', { class: 'n-base-select-group-header' }, children) diff --git a/src/_base/select-menu/src/SelectMenu.vue b/src/_base/select-menu/src/SelectMenu.vue index eb3ae1e44..5f16c8706 100644 --- a/src/_base/select-menu/src/SelectMenu.vue +++ b/src/_base/select-menu/src/SelectMenu.vue @@ -17,30 +17,28 @@ :scrollable="scrollable" :container="virtualListContainer" :content="virtualListContent" - @scroll="handleMenuScroll" + @scroll="doScroll" > -