diff --git a/examples/routers/tree.vue b/examples/routers/tree.vue
index 1cdd23ad..f024a31f 100644
--- a/examples/routers/tree.vue
+++ b/examples/routers/tree.vue
@@ -1,40 +1,68 @@
-
+
\ No newline at end of file
diff --git a/src/components/tree2/tree.vue b/src/components/tree2/tree.vue
new file mode 100644
index 00000000..e59f22ce
--- /dev/null
+++ b/src/components/tree2/tree.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
index fd9bdad4..495ec9a1 100644
--- a/src/index.js
+++ b/src/index.js
@@ -40,7 +40,7 @@ import Timeline from './components/timeline';
import TimePicker from './components/time-picker';
import Tooltip from './components/tooltip';
import Transfer from './components/transfer';
-import Tree from './components/tree';
+import Tree from './components/tree2';
import Upload from './components/upload';
import { Row, Col } from './components/grid';
import { Select, Option, OptionGroup } from './components/select';
diff --git a/src/styles/components/tree.less b/src/styles/components/tree.less
index 7e767234..ee392aa5 100644
--- a/src/styles/components/tree.less
+++ b/src/styles/components/tree.less
@@ -1,139 +1,59 @@
@tree-prefix-cls: ~"@{css-prefix}tree";
.@{tree-prefix-cls} {
- margin: 0;
- padding: 5px;
- font-size: @font-size-small;
- li {
- padding: 0;
- margin: 8px 0;
+ ul{
list-style: none;
- white-space: nowrap;
- outline: 0;
- a[draggable],
- a[draggable="true"] {
- user-select: none;
- /* Required to make elements draggable in old WebKit */
- -khtml-user-drag: element;
- -webkit-user-drag: element;
+ margin: 0;
+ padding: 5px;
+ font-size: @font-size-small;
+ li{
+ list-style: none;
+ margin: 8px 0;
+ padding: 0;
+ white-space: nowrap;
+ outline: none;
}
- &.drag-over {
- > a[draggable] {
- background-color: @primary-color;
- color: white;
- opacity: 0.8;
- }
- }
- &.drag-over-gap-top {
- > a[draggable] {
- border-top: 2px @primary-color solid;
- }
- }
- &.drag-over-gap-bottom {
- > a[draggable] {
- border-bottom: 2px @primary-color solid;
- }
- }
- &.filter-node {
- > a {
- color: @error-color!important;
- font-weight: bold!important;
- }
- }
- ul {
+ }
+ li{
+ ul{
margin: 0;
padding: 0 0 0 18px;
}
- a {
- display: inline-block;
- margin: 0;
- padding: 0 4px;
- border-radius: @btn-border-radius-small;
- cursor: pointer;
- text-decoration: none;
- vertical-align: top;
- color: @text-color;
+ }
+ &-title {
+ display: inline-block;
+ margin: 0;
+ padding: 0 4px;
+ border-radius: @btn-border-radius-small;
+ cursor: pointer;
+ vertical-align: top;
+ color: @text-color;
+ transition: all @transition-time @ease-in-out;
+ &:hover {
+ background-color: tint(@primary-color, 90%);
+ }
+ &-selected, &-selected:hover{
+ background-color: tint(@primary-color, 80%);
+ }
+ }
+ &-arrow{
+ cursor: pointer;
+ i{
transition: all @transition-time @ease-in-out;
- &:hover {
- background-color: tint(@primary-color, 90%);
- }
- &.@{tree-prefix-cls}-node-selected {
- background-color: tint(@primary-color, 80%);
+ }
+ &-open{
+ i {
+ transform: rotate(90deg);
}
}
- .@{checkbox-prefix-cls}-wrapper{
- margin-right: 4px;
- }
- span {
- &.@{tree-prefix-cls}-switcher,
- &.@{tree-prefix-cls}-iconEle {
- display: inline-block;
- text-align: center;
- width: 16px;
- height: 16px;
- line-height: 16px;
- margin: 0;
- vertical-align: middle;
- border: 0 none;
- cursor: pointer;
- outline: none;
- }
- //&.@{tree-prefix-cls}-icon_loading {
- // &:after {
- // display: inline-block;
- // //.iconfont-font("\e6a1");
- // animation: loadingCircle 1s infinite linear;
- // color: @primary-color;
- // }
- //}
- &.@{tree-prefix-cls}-switcher {
- i{
- transition: all @transition-time @ease-in-out;
- }
- &.@{tree-prefix-cls}-switcher-noop {
- //display: none;
- cursor: auto;
- i{
- display: none;
- }
- }
- &.@{tree-prefix-cls}-roots_open,
- &.@{tree-prefix-cls}-center_open,
- &.@{tree-prefix-cls}-bottom_open,
- &.@{tree-prefix-cls}-noline_open {
- i {
- transform: rotate(90deg);
- }
- }
- &.@{tree-prefix-cls}-roots_close,
- &.@{tree-prefix-cls}-center_close,
- &.@{tree-prefix-cls}-bottom_close,
- &.@{tree-prefix-cls}-noline_close {
-
- }
+ &-hidden{
+ cursor: auto;
+ i{
+ display: none;
}
}
- }
- &-child-tree {
- display: none;
- &-open {
- display: block;
+ &-disabled{
+ cursor: @cursor-disabled;
}
}
- &-treenode-disabled {
- >span,
- >a,
- >a span {
- color: @input-disabled-bg;
- cursor: not-allowed;
- }
- }
- &-icon__open {
- margin-right: 2px;
- vertical-align: top;
- }
- &-icon__close {
- margin-right: 2px;
- vertical-align: top;
- }
}
\ No newline at end of file
diff --git a/src/styles/components/tree2.less b/src/styles/components/tree2.less
new file mode 100644
index 00000000..7e767234
--- /dev/null
+++ b/src/styles/components/tree2.less
@@ -0,0 +1,139 @@
+@tree-prefix-cls: ~"@{css-prefix}tree";
+
+.@{tree-prefix-cls} {
+ margin: 0;
+ padding: 5px;
+ font-size: @font-size-small;
+ li {
+ padding: 0;
+ margin: 8px 0;
+ list-style: none;
+ white-space: nowrap;
+ outline: 0;
+ a[draggable],
+ a[draggable="true"] {
+ user-select: none;
+ /* Required to make elements draggable in old WebKit */
+ -khtml-user-drag: element;
+ -webkit-user-drag: element;
+ }
+ &.drag-over {
+ > a[draggable] {
+ background-color: @primary-color;
+ color: white;
+ opacity: 0.8;
+ }
+ }
+ &.drag-over-gap-top {
+ > a[draggable] {
+ border-top: 2px @primary-color solid;
+ }
+ }
+ &.drag-over-gap-bottom {
+ > a[draggable] {
+ border-bottom: 2px @primary-color solid;
+ }
+ }
+ &.filter-node {
+ > a {
+ color: @error-color!important;
+ font-weight: bold!important;
+ }
+ }
+ ul {
+ margin: 0;
+ padding: 0 0 0 18px;
+ }
+ a {
+ display: inline-block;
+ margin: 0;
+ padding: 0 4px;
+ border-radius: @btn-border-radius-small;
+ cursor: pointer;
+ text-decoration: none;
+ vertical-align: top;
+ color: @text-color;
+ transition: all @transition-time @ease-in-out;
+ &:hover {
+ background-color: tint(@primary-color, 90%);
+ }
+ &.@{tree-prefix-cls}-node-selected {
+ background-color: tint(@primary-color, 80%);
+ }
+ }
+ .@{checkbox-prefix-cls}-wrapper{
+ margin-right: 4px;
+ }
+ span {
+ &.@{tree-prefix-cls}-switcher,
+ &.@{tree-prefix-cls}-iconEle {
+ display: inline-block;
+ text-align: center;
+ width: 16px;
+ height: 16px;
+ line-height: 16px;
+ margin: 0;
+ vertical-align: middle;
+ border: 0 none;
+ cursor: pointer;
+ outline: none;
+ }
+ //&.@{tree-prefix-cls}-icon_loading {
+ // &:after {
+ // display: inline-block;
+ // //.iconfont-font("\e6a1");
+ // animation: loadingCircle 1s infinite linear;
+ // color: @primary-color;
+ // }
+ //}
+ &.@{tree-prefix-cls}-switcher {
+ i{
+ transition: all @transition-time @ease-in-out;
+ }
+ &.@{tree-prefix-cls}-switcher-noop {
+ //display: none;
+ cursor: auto;
+ i{
+ display: none;
+ }
+ }
+ &.@{tree-prefix-cls}-roots_open,
+ &.@{tree-prefix-cls}-center_open,
+ &.@{tree-prefix-cls}-bottom_open,
+ &.@{tree-prefix-cls}-noline_open {
+ i {
+ transform: rotate(90deg);
+ }
+ }
+ &.@{tree-prefix-cls}-roots_close,
+ &.@{tree-prefix-cls}-center_close,
+ &.@{tree-prefix-cls}-bottom_close,
+ &.@{tree-prefix-cls}-noline_close {
+
+ }
+ }
+ }
+ }
+ &-child-tree {
+ display: none;
+ &-open {
+ display: block;
+ }
+ }
+ &-treenode-disabled {
+ >span,
+ >a,
+ >a span {
+ color: @input-disabled-bg;
+ cursor: not-allowed;
+ }
+ }
+ &-icon__open {
+ margin-right: 2px;
+ vertical-align: top;
+ }
+ &-icon__close {
+ margin-right: 2px;
+ vertical-align: top;
+ }
+}
\ No newline at end of file