From dac502550dc27189330be89cd9680065ba4bc521 Mon Sep 17 00:00:00 2001 From: rex Date: Mon, 17 Dec 2018 12:58:36 +0800 Subject: [PATCH] =?UTF-8?q?[new=20feature]=20TreeSelect:=20update=20style?= =?UTF-8?q?=E3=80=81support=20disable=20nav=20item=20(#2308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/tree-select/demo/index.vue | 22 ++++++++- packages/tree-select/index.less | 46 +++++++++++++------ packages/tree-select/index.vue | 13 ++++-- .../test/__snapshots__/demo.spec.js.snap | 5 +- 4 files changed, 68 insertions(+), 18 deletions(-) diff --git a/packages/tree-select/demo/index.vue b/packages/tree-select/demo/index.vue index 8c6530d9c..9137e4957 100644 --- a/packages/tree-select/demo/index.vue +++ b/packages/tree-select/demo/index.vue @@ -19,6 +19,7 @@ export default { group1: '所有城市', group2: '浙江', group3: '江苏', + group4: '福建', city1: [{ text: '杭州', id: 1 @@ -45,12 +46,20 @@ export default { }, { text: '苏州', id: 8 + }], + city3: [{ + text: '泉州', + id: 9 + }, { + text: '厦门', + id: 10 }] }, 'en-US': { group1: 'All', group2: 'Group1', group3: 'Group2', + group4: 'Group3', city1: [{ text: 'Delaware', id: 1 @@ -77,7 +86,14 @@ export default { }, { text: 'Texas', id: 8 - }] + }], + city3: [{ + text: 'Alabama', + id: 9 + }, { + text: 'Kansas', + id: 10 + }], } }, @@ -99,6 +115,10 @@ export default { }, { text: this.$t('group3'), children: this.$t('city2') + }, { + text: this.$t('group4'), + disabled: true, + children: this.$t('city3') }]; } }, diff --git a/packages/tree-select/index.less b/packages/tree-select/index.less index 7463e6fe3..5564868d7 100644 --- a/packages/tree-select/index.less +++ b/packages/tree-select/index.less @@ -2,6 +2,7 @@ .van-tree-select { user-select: none; + font-size: 14px; position: relative; &__nav { @@ -10,39 +11,57 @@ left: 0; top: 0; bottom: 0; + min-width: 120px; overflow: scroll; - background-color: @white; + background-color: @background-color-light; -webkit-overflow-scrolling: touch; } &__nitem { + position: relative; line-height: 44px; - padding: 0 15px; - background-color: @white; + padding: 0 9px 0 15px; - &:active, - &--active { - background-color: @background-color; + &:active::after, + &--active::after { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 3.6px; + background-color: @red; + content: ''; } &--active { - font-weight: 500; + font-weight: bold; + background-color: @white; + } + + &--disabled { + color: @gray-dark; + } + + &--disabled:active::after { + display: none; } } &__content { + width: 65%; height: 100%; - padding: 0 15px; + padding-left: 15px; margin-left: 35%; overflow: scroll; -webkit-overflow-scrolling: touch; + background-color: @white; + box-sizing: border-box; } &__item { position: relative; + font-weight: bold; line-height: 44px; - padding-left: 5px; - padding-right: 18px; &:active, &--active { @@ -56,11 +75,12 @@ } &__selected { - float: right; position: absolute; - right: 0; top: 0; + right: 15px; bottom: 0; - line-height: inherit; + height: 24px; + margin: auto 0; + line-height: 24px; } } diff --git a/packages/tree-select/index.vue b/packages/tree-select/index.vue index 32916f335..541f7b054 100644 --- a/packages/tree-select/index.vue +++ b/packages/tree-select/index.vue @@ -7,8 +7,8 @@
{{ item.text }}
@@ -27,7 +27,8 @@ {{ item.text }} @@ -62,6 +63,12 @@ export default create({ }, methods: { + onClickNav(data, index) { + if (!data.disabled) { + this.$emit('navclick', index); + } + }, + onItemSelect(data) { if (!data.disabled) { this.$emit('itemclick', data); diff --git a/packages/tree-select/test/__snapshots__/demo.spec.js.snap b/packages/tree-select/test/__snapshots__/demo.spec.js.snap index f4c8ec878..feb92214c 100644 --- a/packages/tree-select/test/__snapshots__/demo.spec.js.snap +++ b/packages/tree-select/test/__snapshots__/demo.spec.js.snap @@ -14,11 +14,14 @@ exports[`renders demo correctly 1`] = `
江苏
+
+ 福建 +
杭州 - +