Blame view

examples/routers/tree.vue 3.42 KB
89f2ba8b   梁灏   init Tree component
1
  <template>
174836c4   梁灏   update Tree Rende...
2
3
4
5
6
      <div>
          <Tree :data="baseData" :load-data="loadData" multiple :render="renderFunc"></Tree>
          <Button @click="handleAdd">add</Button>
          <Button @click="handleUpdate">update</Button>
      </div>
89f2ba8b   梁灏   init Tree component
7
8
9
  </template>
  <script>
      export default {
e6c0b158   梁灏   update
10
          data () {
e81207a2   梁灏   update Tree
11
              return {
174836c4   梁灏   update Tree Rende...
12
                  baseData: [
75c32d5f   梁灏   rebuild Tree
13
                      {
3ea24615   梁灏   update checkbox s...
14
                          expand: true,
174836c4   梁灏   update Tree Rende...
15
                          title: 'parent 1',
69a10b78   梁灏   fixed #787
16
17
                          children: [
                              {
174836c4   梁灏   update Tree Rende...
18
19
20
21
                                  title: 'parent 1-0',
                                  expand: false,
                                  children: [],
                                  loading: false
69a10b78   梁灏   fixed #787
22
23
                              },
                              {
174836c4   梁灏   update Tree Rende...
24
                                  title: 'parent 1-1',
9b24f1ab   梁灏   Tree add Render f...
25
                                  expand: true,
174836c4   梁灏   update Tree Rende...
26
                                  checked: true,
6ed0cd73   梁灏   update Tree demo
27
28
                                  children: [
                                      {
174836c4   梁灏   update Tree Rende...
29
30
31
32
33
34
35
36
37
38
39
40
41
42
                                          title: 'leaf',
                                          render: (h, { node }) => {
                                              return h('Button', {
                                                  props: {
                                                      type: 'primary',
                                                      size: 'small'
                                                  },
                                                  on: {
                                                      click: ({target}) => {
                                                          this.logger(target.textContent);
                                                      }
                                                  }
                                              }, node.title + '000');
                                          }
6ed0cd73   梁灏   update Tree demo
43
44
                                      }
                                  ]
69a10b78   梁灏   fixed #787
45
46
                              }
                          ]
c8157442   梁灏   fixed #499
47
                      }
75c32d5f   梁灏   rebuild Tree
48
                  ]
174836c4   梁灏   update Tree Rende...
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
              };
          },
          methods: {
              handleAdd () {
                  this.baseData.push(
                      {
                          title: 'test name',
                          checked: true
                      }
                  );
              },
              handleUpdate () {
                  const child = this.baseData[0].children[0].children[1];
                //  console.log(JSON.stringify(this.baseData), '\n', JSON.stringify(child));
                  if (!child) return this.$Message.error('Node is async and is not loaded yet');
                  else this.$set(child, 'checked', true);
              },
              logger (txt) {
                  console.log(txt);
              },
              loadData (item, callback) {
                  setTimeout(() => {
                      callback([
                          {
                              title: 'children-1',
  //                            loading: false,
                              children: []
                          },
                          {
                              title: 'children-2',
  //                            loading: false,
                              children: []
                          }
                      ]);
                  }, 2000);
              },
              renderFunc (h, { node }) {
                  return h('Button', {
                      props: {
                          type: 'ghost'
                      }
                  }, node.title)
6ed0cd73   梁灏   update Tree demo
91
              }
e81207a2   梁灏   update Tree
92
          }
174836c4   梁灏   update Tree Rende...
93
      };
e81207a2   梁灏   update Tree
94
  </script>