From 5b0feb58e8f2c6ce9b7e95ea01be2de879623200 Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 6 Sep 2019 09:51:20 +0800 Subject: [PATCH] refactor(TreeSelect): use Sidebar as nav (#4383) --- src/style/var.less | 7 +-- src/tree-select/index.less | 15 +----- src/tree-select/index.tsx | 44 ++++++++--------- .../test/__snapshots__/demo.spec.js.snap | 49 +++++++++++++------ .../test/__snapshots__/index.spec.js.snap | 12 +++-- 5 files changed, 66 insertions(+), 61 deletions(-) diff --git a/src/style/var.less b/src/style/var.less index 367b1c5c3..bd11398d9 100644 --- a/src/style/var.less +++ b/src/style/var.less @@ -483,7 +483,7 @@ // SidebarItem @sidebar-font-size: @font-size-md; -@sidebar-line-height: 1.4; +@sidebar-line-height: 20px; @sidebar-text-color: @text-color; @sidebar-disabled-text-color: @gray; @sidebar-padding: 20px @padding-sm 20px @padding-xs; @@ -648,10 +648,7 @@ @tree-select-font-size: @font-size-md; @tree-select-nav-background-color: @background-color-light; @tree-select-content-background-color: @white; -@tree-select-nav-item-padding: 0 @padding-xs 0 @padding-sm; -@tree-select-nav-item-active-border-color: @red; -@tree-select-nav-item-active-background-color: @white; -@tree-select-nav-item-disabled-color: @gray-dark; +@tree-select-nav-item-padding: @padding-sm @padding-xs @padding-sm @padding-sm; @tree-select-item-height: 44px; @tree-select-item-active-color: @red; @tree-select-item-disabled-color: @gray; diff --git a/src/tree-select/index.less b/src/tree-select/index.less index a598f9652..c9a196f8e 100644 --- a/src/tree-select/index.less +++ b/src/tree-select/index.less @@ -13,20 +13,7 @@ -webkit-overflow-scrolling: touch; &-item { - position: relative; padding: @tree-select-nav-item-padding; - line-height: @tree-select-item-height; - border-left: 3px solid transparent; - - &--active { - font-weight: bold; - background-color: @tree-select-nav-item-active-background-color; - border-color: @tree-select-nav-item-active-border-color; - } - - &--disabled { - color: @tree-select-nav-item-disabled-color; - } } } @@ -39,7 +26,7 @@ &__item { position: relative; - padding-left: @padding-md; + padding: 0 32px 0 @padding-md; font-weight: bold; line-height: @tree-select-item-height; diff --git a/src/tree-select/index.tsx b/src/tree-select/index.tsx index 29134c856..3fa75430c 100644 --- a/src/tree-select/index.tsx +++ b/src/tree-select/index.tsx @@ -1,6 +1,8 @@ import { createNamespace, addUnit } from '../utils'; import { emit, inherit } from '../utils/functional'; import Icon from '../icon'; +import Sidebar from '../sidebar'; +import SidebarItem from '../sidebar-item'; // Types import { CreateElement, RenderContext } from 'vue/types'; @@ -52,28 +54,12 @@ function TreeSelect( : activeId === id; } - const Nav = items.map((item, index) => ( -
{ - if (!item.disabled) { - emit(ctx, 'click-nav', index); - emit(ctx, 'update:main-active-index', index); - - // compatible for old usage, should be removed in next major version - emit(ctx, 'navclick', index); - } - }} - > - {item.text} -
+ const Nav = items.map(item => ( + )); function Content() { @@ -124,7 +110,19 @@ function TreeSelect( return (
-
{Nav}
+ { + emit(ctx, 'click-nav', index); + emit(ctx, 'update:main-active-index', index); + + // compatible for old usage, should be removed in next major version + emit(ctx, 'navclick', index); + }} + > + {Nav} +
{Content()}
); diff --git a/src/tree-select/test/__snapshots__/demo.spec.js.snap b/src/tree-select/test/__snapshots__/demo.spec.js.snap index c9c15c5ca..69602c1eb 100644 --- a/src/tree-select/test/__snapshots__/demo.spec.js.snap +++ b/src/tree-select/test/__snapshots__/demo.spec.js.snap @@ -4,11 +4,19 @@ exports[`renders demo correctly 1`] = `
-
-
浙江
-
江苏
-
福建
-
+
杭州
@@ -20,11 +28,19 @@ exports[`renders demo correctly 1`] = `
-
-
浙江
-
江苏
-
福建
-
+
杭州
@@ -37,10 +53,15 @@ exports[`renders demo correctly 1`] = `
-
-
分组 1
-
分组 2
-
+
diff --git a/src/tree-select/test/__snapshots__/index.spec.js.snap b/src/tree-select/test/__snapshots__/index.spec.js.snap index b3807b603..4980183b1 100644 --- a/src/tree-select/test/__snapshots__/index.spec.js.snap +++ b/src/tree-select/test/__snapshots__/index.spec.js.snap @@ -2,23 +2,25 @@ exports[`content slot 1`] = `
-
-
group1
-
+
Custom Content
`; exports[`empty list 1`] = `
-
+
`; exports[`height prop 1`] = `
-
+
`;