diff --git a/example/pages/tree-select/index.wxml b/example/pages/tree-select/index.wxml
index c142ff04..a8235078 100644
--- a/example/pages/tree-select/index.wxml
+++ b/example/pages/tree-select/index.wxml
@@ -1,6 +1,5 @@
-
+
+
diff --git a/packages/common/style/var.less b/packages/common/style/var.less
index da8f6313..9610a27e 100644
--- a/packages/common/style/var.less
+++ b/packages/common/style/var.less
@@ -282,6 +282,22 @@
// Search
@search-background-color: #f7f8fA;
+// Sidebar
+@sidebar-width: 85px;
+
+// SidebarItem
+@sidebar-font-size: @font-size-md;
+@sidebar-line-height: 20px;
+@sidebar-text-color: @text-color;
+@sidebar-disabled-text-color: @gray;
+@sidebar-padding: 20px @padding-sm 20px @padding-xs;
+@sidebar-active-color: @active-color;
+@sidebar-background-color: @background-color-light;
+@sidebar-selected-font-weight: @font-weight-bold;
+@sidebar-selected-text-color: @text-color;
+@sidebar-selected-border-color: @red;
+@sidebar-selected-background-color: @white;
+
// Stepper
@stepper-active-color: #e8e8e8;
@stepper-background-color: @active-color;
@@ -346,6 +362,15 @@
@divider-content-left-width: 10%;
@divider-content-right-width: 10%;
+// TreeSelect
+@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: @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;
+
// Uploader
@uploader-size: 80px;
@uploader-icon-size: 24px;
diff --git a/packages/icon/index.less b/packages/icon/index.less
index 6f533d58..a2c2d322 100644
--- a/packages/icon/index.less
+++ b/packages/icon/index.less
@@ -1,6 +1,12 @@
@import '../common/style/var.less';
@import '@vant/icons/src/index.less';
+:host {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
.van-icon {
&--image {
width: 1em;
diff --git a/packages/image/index.wxml b/packages/image/index.wxml
index 1a43652f..6c48d9ab 100644
--- a/packages/image/index.wxml
+++ b/packages/image/index.wxml
@@ -16,7 +16,7 @@
bind:error="onError"
/>
-
@@ -29,8 +29,8 @@
name="photo-o"
size="22"
/>
-
-
+
@@ -43,5 +43,5 @@
name="warning-o"
size="22"
/>
-
+
diff --git a/packages/sidebar-item/index.less b/packages/sidebar-item/index.less
index 90d127b3..a3ecf9ba 100644
--- a/packages/sidebar-item/index.less
+++ b/packages/sidebar-item/index.less
@@ -4,40 +4,45 @@
.van-sidebar-item {
display: block;
box-sizing: border-box;
- padding: 20px 12px 20px 9px;
overflow: hidden;
- font-size: 14px;
- line-height: 1.4;
word-wrap: break-word;
border-left: 3px solid transparent;
user-select: none;
- .theme(color, '@gray-darker');
- .theme(background-color, '@background-color');
+ .theme(padding, '@sidebar-padding');
+ .theme(font-size, '@sidebar-font-size');
+ .theme(line-height, '@sidebar-line-height');
+ .theme(color, '@sidebar-text-color');
+ .theme(background-color, '@sidebar-background-color');
- &--hover {
- .theme(background-color, '@active-color');
+ &__text {
+ position: relative;
+ display: inline-block;
+ }
+
+ &--hover:not(&--disabled) {
+ .theme(background-color, '@sidebar-active-color');
}
&::after {
border-bottom-width: 1px;
}
- &--active {
- font-weight: bold;
- .theme(color, '@text-color');
- .theme(border-color, '@red');
+ &--selected {
+ .theme(color, '@sidebar-selected-text-color');
+ .theme(font-weight, '@sidebar-selected-font-weight');
+ .theme(border-color, '@sidebar-selected-border-color');
&::after {
border-right-width: 1px;
}
}
- &--active,
- &--active&--hover {
- .theme(background-color, '@white');
+ &--selected,
+ &--selected&--hover {
+ .theme(background-color, '@sidebar-selected-background-color');
}
- &__text {
- position: relative;
+ &--disabled {
+ .theme(color, '@sidebar-disabled-text-color');
}
}
diff --git a/packages/sidebar-item/index.ts b/packages/sidebar-item/index.ts
index 0d5a0b98..a140a1f7 100644
--- a/packages/sidebar-item/index.ts
+++ b/packages/sidebar-item/index.ts
@@ -1,6 +1,11 @@
import { VantComponent } from '../common/component';
VantComponent({
+ classes: [
+ 'active-class',
+ 'disabled-class',
+ ],
+
relation: {
type: 'ancestor',
name: 'sidebar',
@@ -12,18 +17,19 @@ VantComponent({
props: {
dot: Boolean,
info: null,
- title: String
+ title: String,
+ disabled: Boolean
},
methods: {
onClick() {
const { parent } = this;
- if (!parent) {
+ if (!parent || this.data.disabled) {
return;
}
- const index = parent.items.indexOf(this);
+ const index = parent.children.indexOf(this);
parent.setActive(index).then(() => {
this.$emit('click', index);
@@ -31,8 +37,8 @@ VantComponent({
});
},
- setActive(active: boolean) {
- return this.setData({ active });
+ setActive(selected: boolean) {
+ return this.setData({ selected });
}
}
});
diff --git a/packages/sidebar-item/index.wxml b/packages/sidebar-item/index.wxml
index 6ae8d538..f68e8644 100644
--- a/packages/sidebar-item/index.wxml
+++ b/packages/sidebar-item/index.wxml
@@ -1,7 +1,7 @@