Commit 9b24f1ab7b4455d9af92960708c7d3b5e80110b2

Authored by 梁灏
1 parent ecf6c2fa

Tree add Render function

fixed #2133
fixed #1784
fixed #1333
fixed #1362
Showing 2 changed files with 22 additions and 5 deletions   Show diff stats
examples/routers/tree.vue
@@ -13,7 +13,6 @@ @@ -13,7 +13,6 @@
13 { 13 {
14 expand: true, 14 expand: true,
15 title: 'parent 1', 15 title: 'parent 1',
16 - checked: true,  
17 children: [ 16 children: [
18 { 17 {
19 title: 'parent 1-0', 18 title: 'parent 1-0',
@@ -26,16 +25,29 @@ @@ -26,16 +25,29 @@
26 }, 25 },
27 { 26 {
28 title: 'leaf', 27 title: 'leaf',
  28 + checked: false
29 } 29 }
30 ] 30 ]
31 }, 31 },
32 { 32 {
33 title: 'parent 1-1', 33 title: 'parent 1-1',
34 - expand: false, 34 + expand: true,
35 checked: true, 35 checked: true,
36 children: [ 36 children: [
37 { 37 {
38 title: '<span style="color: red">leaf</span>', 38 title: '<span style="color: red">leaf</span>',
  39 + render: (h) => {
  40 + return h('Button', {
  41 + props: {
  42 + type: 'primary'
  43 + },
  44 + on: {
  45 + click: () => {
  46 + this.cc();
  47 + }
  48 + }
  49 + }, '我是按钮')
  50 + }
39 } 51 }
40 ] 52 ]
41 } 53 }
@@ -54,7 +66,10 @@ @@ -54,7 +66,10 @@
54 ) 66 )
55 }, 67 },
56 handleUpdate () { 68 handleUpdate () {
57 - this.$set(this.baseData[0].children[0], 'disabled', false); 69 + this.$set(this.baseData[0].children[0].children[1], 'checked', true);
  70 + },
  71 + cc () {
  72 + console.log(99)
58 } 73 }
59 } 74 }
60 } 75 }
src/components/tree/node.vue
@@ -11,7 +11,8 @@ @@ -11,7 +11,8 @@
11 :indeterminate="data.indeterminate" 11 :indeterminate="data.indeterminate"
12 :disabled="data.disabled || data.disableCheckbox" 12 :disabled="data.disabled || data.disableCheckbox"
13 @click.native.prevent="handleCheck"></Checkbox> 13 @click.native.prevent="handleCheck"></Checkbox>
14 - <span :class="titleClasses" v-html="data.title" @click="handleSelect"></span> 14 + <Render v-if="data.render" :render="data.render"></Render>
  15 + <span v-else :class="titleClasses" v-html="data.title" @click="handleSelect"></span>
15 <Tree-node 16 <Tree-node
16 v-if="data.expand" 17 v-if="data.expand"
17 v-for="item in data.children" 18 v-for="item in data.children"
@@ -27,6 +28,7 @@ @@ -27,6 +28,7 @@
27 <script> 28 <script>
28 import Checkbox from '../checkbox/checkbox.vue'; 29 import Checkbox from '../checkbox/checkbox.vue';
29 import Icon from '../icon/icon.vue'; 30 import Icon from '../icon/icon.vue';
  31 + import Render from '../base/render';
30 import CollapseTransition from '../base/collapse-transition'; 32 import CollapseTransition from '../base/collapse-transition';
31 import Emitter from '../../mixins/emitter'; 33 import Emitter from '../../mixins/emitter';
32 34
@@ -35,7 +37,7 @@ @@ -35,7 +37,7 @@
35 export default { 37 export default {
36 name: 'TreeNode', 38 name: 'TreeNode',
37 mixins: [ Emitter ], 39 mixins: [ Emitter ],
38 - components: { Checkbox, Icon, CollapseTransition }, 40 + components: { Checkbox, Icon, CollapseTransition, Render },
39 props: { 41 props: {
40 data: { 42 data: {
41 type: Object, 43 type: Object,