Commit ce03ac5278bd092b68bf1e70f58db2ed72d54472

Authored by 梁灏
1 parent b566d106

update Tree

update Tree
src/components/tree/tree.vue
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 v-if="!item.isLeaf" 17 v-if="!item.isLeaf"
18 v-show="item.expand" 18 v-show="item.expand"
19 :class="expandCls(item)" 19 :class="expandCls(item)"
20 - :data.sync="item.node" 20 + :data.sync="item.children"
21 :key="this.key+'.'+$index" 21 :key="this.key+'.'+$index"
22 :multiple="multiple" 22 :multiple="multiple"
23 :show-checkbox="showCheckbox" 23 :show-checkbox="showCheckbox"
@@ -54,18 +54,6 @@ @@ -54,18 +54,6 @@
54 type: Boolean, 54 type: Boolean,
55 default: false 55 default: false
56 }, 56 },
57 - onSelect: {  
58 - type: Function,  
59 - default () {  
60 - return {};  
61 - }  
62 - },  
63 - onCheck: {  
64 - type: Function,  
65 - default () {  
66 - return {};  
67 - }  
68 - },  
69 emptyText: { 57 emptyText: {
70 type: String, 58 type: String,
71 default () { 59 default () {
@@ -135,7 +123,7 @@ @@ -135,7 +123,7 @@
135 }, 123 },
136 preHandle () { 124 preHandle () {
137 for (let [i,item] of this.data.entries()) { 125 for (let [i,item] of this.data.entries()) {
138 - if (!item.node || !item.node.length) { 126 + if (!item.children || !item.children.length) {
139 this.$set(`data[${i}].isLeaf`, true); 127 this.$set(`data[${i}].isLeaf`, true);
140 this.$set(`data[${i}].childrenCheckedStatus`, 2); 128 this.$set(`data[${i}].childrenCheckedStatus`, 2);
141 continue; 129 continue;
@@ -144,7 +132,7 @@ @@ -144,7 +132,7 @@
144 this.$set(`data[${i}].childrenCheckedStatus`, 2); 132 this.$set(`data[${i}].childrenCheckedStatus`, 2);
145 this.$broadcast('parentChecked', true, `${this.key}.${i}`); 133 this.$broadcast('parentChecked', true, `${this.key}.${i}`);
146 } else { 134 } else {
147 - let status = this.getChildrenCheckedStatus(item.node); 135 + let status = this.getChildrenCheckedStatus(item.children);
148 this.$set(`data[${i}].childrenCheckedStatus`, status); 136 this.$set(`data[${i}].childrenCheckedStatus`, status);
149 if (status !== 0) this.$set(`data[${i}].checked`, true); 137 if (status !== 0) this.$set(`data[${i}].checked`, true);
150 } 138 }
@@ -194,8 +182,8 @@ @@ -194,8 +182,8 @@
194 if (tmp) { 182 if (tmp) {
195 res.push(node); 183 res.push(node);
196 } 184 }
197 - if (node.node && node.node.length) {  
198 - res = res.concat(this.getNodes(node.node, opt)); 185 + if (node.children && node.children.length) {
  186 + res = res.concat(this.getNodes(node.children, opt));
199 } 187 }
200 } 188 }
201 return res; 189 return res;
@@ -241,11 +229,9 @@ @@ -241,11 +229,9 @@
241 } 229 }
242 this.$broadcast('cancelSelected', ori); 230 this.$broadcast('cancelSelected', ori);
243 } 231 }
244 - if (this.onSelect) {  
245 - this.$nextTick(() => {  
246 - this.onSelect(this.getSelectedNodes());  
247 - });  
248 - } 232 + this.$nextTick(() => {
  233 + this.$emit('on-select-change', this.getSelectedNodes());
  234 + });
249 }); 235 });
250 this.$on('cancelSelected', ori => { 236 this.$on('cancelSelected', ori => {
251 this.$broadcast('cancelSelected', ori); 237 this.$broadcast('cancelSelected', ori);
@@ -265,15 +251,15 @@ @@ -265,15 +251,15 @@
265 } 251 }
266 }); 252 });
267 this.$on('childChecked', (ori, key) => { 253 this.$on('childChecked', (ori, key) => {
268 - if (this.key === '0' && this.onCheck) { 254 + if (this.key === '0') {
269 this.$nextTick(() => { 255 this.$nextTick(() => {
270 - this.onCheck(this.getCheckedNodes()); 256 + this.$emit('on-check-change', this.getCheckedNodes());
271 }); 257 });
272 } 258 }
273 if (this === ori) return; 259 if (this === ori) return;
274 for (let [i,item] of this.data.entries()) { 260 for (let [i,item] of this.data.entries()) {
275 if (this.key + '.' + i == key) { 261 if (this.key + '.' + i == key) {
276 - let temp = this.getChildrenCheckedStatus(item.node); 262 + let temp = this.getChildrenCheckedStatus(item.children);
277 if (temp != item.childrenCheckedStatus) { 263 if (temp != item.childrenCheckedStatus) {
278 this.$set(`data[${i}].checked`, !!temp); 264 this.$set(`data[${i}].checked`, !!temp);
279 this.$set(`data[${i}].childrenCheckedStatus`, temp); 265 this.$set(`data[${i}].childrenCheckedStatus`, temp);
src/styles/components/checkbox.less
  1 +@checkbox-prefix-cls: ~"@{css-prefix}checkbox";
1 .checkboxFn(); 2 .checkboxFn();
2 \ No newline at end of file 3 \ No newline at end of file
src/styles/components/tree.less
@@ -61,10 +61,10 @@ @@ -61,10 +61,10 @@
61 background-color: tint(@primary-color, 80%); 61 background-color: tint(@primary-color, 80%);
62 } 62 }
63 } 63 }
  64 + .@{checkbox-prefix-cls}-wrapper{
  65 + margin-right: 4px;
  66 + }
64 span { 67 span {
65 - &.@{tree-prefix-cls}-checkbox {  
66 - margin: 2px 4px 0 0;  
67 - }  
68 &.@{tree-prefix-cls}-switcher, 68 &.@{tree-prefix-cls}-switcher,
69 &.@{tree-prefix-cls}-iconEle { 69 &.@{tree-prefix-cls}-iconEle {
70 display: inline-block; 70 display: inline-block;
test/routers/tree.vue
@@ -3,21 +3,22 @@ @@ -3,21 +3,22 @@
3 :data.sync="treeData" 3 :data.sync="treeData"
4 :show-checkbox="true" 4 :show-checkbox="true"
5 :multiple="true" 5 :multiple="true"
6 - :on-select="selectFn"  
7 - :on-check="checkFn"></Tree> 6 + @on-select-change="selectFn"
  7 + @on-check-change="checkFn"></Tree>
8 </template> 8 </template>
9 <script> 9 <script>
10 export default { 10 export default {
11 data: function() { 11 data: function() {
12 return { 12 return {
13 treeData: [{ 13 treeData: [{
  14 + expand: true,
14 title: 'parent 1', 15 title: 'parent 1',
15 selected: false, 16 selected: false,
16 - node: [{ 17 + children: [{
17 title: 'parent 1-0', 18 title: 'parent 1-0',
18 expand: true, 19 expand: true,
19 disabled: true, 20 disabled: true,
20 - node: [{ 21 + children: [{
21 title: 'leaf', 22 title: 'leaf',
22 disableCheckbox: true 23 disableCheckbox: true
23 }, { 24 }, {
@@ -26,7 +27,7 @@ @@ -26,7 +27,7 @@
26 }, { 27 }, {
27 title: 'parent 1-1', 28 title: 'parent 1-1',
28 checked: true, 29 checked: true,
29 - node: [{ 30 + children: [{
30 title: '<span style="color: red">sss</span>', 31 title: '<span style="color: red">sss</span>',
31 }] 32 }]
32 }] 33 }]
@@ -35,10 +36,10 @@ @@ -35,10 +36,10 @@
35 }, 36 },
36 methods: { 37 methods: {
37 selectFn(data){ 38 selectFn(data){
38 -// console.log(data); 39 + console.log(data);
39 }, 40 },
40 checkFn(data){ 41 checkFn(data){
41 -// console.log(data); 42 + console.log(data);
42 } 43 }
43 } 44 }
44 } 45 }