From fe9dbf10bd087464a7b70aa9b74d2dbe0b55ca81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=95=8F?= Date: Mon, 28 Jan 2019 09:50:37 +0800 Subject: [PATCH] [improvement] TreeSelect: jsx (#2638) --- packages/tree-select/index.js | 100 ++++++++++++++++++ packages/tree-select/index.vue | 78 -------------- .../test/__snapshots__/demo.spec.js.snap | 39 ++----- 3 files changed, 108 insertions(+), 109 deletions(-) create mode 100644 packages/tree-select/index.js delete mode 100644 packages/tree-select/index.vue diff --git a/packages/tree-select/index.js b/packages/tree-select/index.js new file mode 100644 index 000000000..bd6b981bd --- /dev/null +++ b/packages/tree-select/index.js @@ -0,0 +1,100 @@ +import { use } from '../utils'; +import Icon from '../icon'; + +const [sfc, bem] = use('tree-select'); + +export default sfc({ + props: { + items: Array, + mainActiveIndex: Number, + activeId: { + type: [Number, String], + default: 0 + }, + height: { + type: Number, + default: 300 + } + }, + + computed: { + subItems() { + const selectedItem = this.items[this.mainActiveIndex] || {}; + return selectedItem.children || []; + } + }, + + methods: { + onClickNav(data, index) { + if (!data.disabled) { + this.$emit('navclick', index); + } + }, + + onItemSelect(data) { + if (!data.disabled) { + this.$emit('itemclick', data); + } + } + }, + + render(h) { + const { + height, + items, + mainActiveIndex, + activeId, + subItems + } = this; + + return ( +
+
+ {items.map((item, index) => ( +
{ + this.onClickNav(item, index); + }} + > + { item.text } +
+ ))} +
+
+ {subItems.map(item => ( +
{ + this.onItemSelect(item); + }} + > + { item.text } + {activeId === item.id && ( + + )} +
+ ))} +
+
+ ); + } +}); diff --git a/packages/tree-select/index.vue b/packages/tree-select/index.vue deleted file mode 100644 index 1ad4ebca6..000000000 --- a/packages/tree-select/index.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/packages/tree-select/test/__snapshots__/demo.spec.js.snap b/packages/tree-select/test/__snapshots__/demo.spec.js.snap index 8864aa371..e4a54a1ac 100644 --- a/packages/tree-select/test/__snapshots__/demo.spec.js.snap +++ b/packages/tree-select/test/__snapshots__/demo.spec.js.snap @@ -11,38 +11,15 @@ exports[`renders demo correctly 1`] = `
福建
-
- 杭州 - +
杭州
-
- 温州 - -
-
- 宁波 - -
-
- 义乌 - -
-
- 南京 - -
-
- 无锡 - -
-
- 徐州 - -
-
- 苏州 - -
+
温州
+
宁波
+
义乌
+
南京
+
无锡
+
徐州
+
苏州