Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.23 KB | None | 0 0
  1. <template>
  2. <!--<li>-->
  3. <!--  <div-->
  4. <!--    :class="{bold: isFolder}"-->
  5. <!--    @click="toggle"-->
  6. <!--    @dblclick="makeFolder">-->
  7. <!--    {{ item.name }}-->
  8. <!--    <span v-if="isFolder">[{{ isOpen ? '-' : '+' }}]</span>-->
  9. <!--  </div>-->
  10. <!--  <ul v-show="isOpen" v-if="isFolder">-->
  11. <!--    <tree-item-->
  12. <!--      class="item"-->
  13. <!--      v-for="(child, index) in item.children"-->
  14. <!--      :key="index"-->
  15. <!--      :item="child"-->
  16. <!--      @make-folder="$emit('make-folder', $event)"-->
  17. <!--      @add-item="$emit('add-item', $event)"-->
  18. <!--    ></tree-item>-->
  19. <!--    <li class="add" @click="$emit('add-item', item)">+</li>-->
  20. <!--  </ul>-->
  21. <!--</li>-->
  22. <!--<p>(You can double click on an item to turn it into a folder.)</p>-->
  23.  
  24. <!-- the demo root element -->
  25. <ul id="demo">
  26.   <tree-item
  27.    class="item"
  28.    :item="treeData"
  29.    @make-folder="makeFolder"
  30.    @add-item="addItem"
  31.  ></tree-item>
  32. </ul>
  33. </template>
  34.  
  35. <script>
  36.   export default {
  37.  
  38.     data () {
  39.       return {
  40.         isOpen: false,
  41.         treeData: {
  42.           name: "My Tree",
  43.           children: [
  44.             {name: "hello"},
  45.             {name: "wat"},
  46.             {
  47.               name: "child folder",
  48.               children: [
  49.                 {
  50.                   name: "child folder",
  51.                   children: [{name: "hello"}, {name: "wat"}]
  52.                 },
  53.                 {name: "hello"},
  54.                 {name: "wat"},
  55.                 {
  56.                   name: "child folder",
  57.                   children: [{name: "hello"}, {name: "wat"}]
  58.                 }],
  59.             }]
  60.         }
  61.       }
  62.     },
  63.     // // demo data
  64.     // var: treeData = {
  65.     //   name: "My Tree",
  66.     //   children: [
  67.     //     {name: "hello"},
  68.     //     {name: "wat"},
  69.     //     {
  70.     //       name: "child folder",
  71.     //       children: [
  72.     //         {
  73.     //           name: "child folder",
  74.     //           children: [{name: "hello"}, {name: "wat"}]
  75.     //         },
  76.     //         {name: "hello"},
  77.     //         {name: "wat"},
  78.     //         {
  79.     //           name: "child folder",
  80.     //           children: [{name: "hello"}, {name: "wat"}]
  81.     //         }
  82.     //       ]
  83.     //     }
  84.     //   ]
  85.     // },
  86.  
  87.   // define the tree-item component
  88.   //
  89.   //   data: function () {
  90.   //     return {
  91.   //       isOpen: false
  92.   //     };
  93.   //   },
  94.     computed: {
  95.       isFolder: function () {
  96.         return this.item.children && this.item.children.length;
  97.       }
  98.     },
  99.     methods: {
  100.       toggle: function () {
  101.         if (this.isFolder) {
  102.           this.isOpen = !this.isOpen;
  103.         }
  104.       },
  105.       makeFolder: function () {
  106.         if (!this.isFolder) {
  107.           this.$emit("make-folder", this.item);
  108.           this.isOpen = true;
  109.         }
  110.       }
  111.     }
  112.  
  113.  
  114.   // // boot up the demo
  115.   // var demo = new Vue({
  116.   //   el: "#demo",
  117.   //   data: {
  118.   //     treeData: treeData
  119.   //   },
  120.   //   methods: {
  121.   //     makeFolder: function (item) {
  122.   //       Vue.set(item, "children", []);
  123.   //       this.addItem(item);
  124.   //     },
  125.   //     addItem: function (item) {
  126.   //       item.children.push({
  127.   //         name: "new stuff"
  128.   //       });
  129.   //     }
  130.   //   },
  131.   // })
  132.   }
  133. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement