zoukankan      html  css  js  c++  java
  • 回调形成树形结构tree

      1 //Tree.vue
      2 <template>
      3   <li>
      4  <span @click="toggle">
      5        <i v-if="isFolder" class="el-icon-error" :class="[open ? 'folder-open': 'folder']"></i>
      6        <i v-if="!isFolder" class="icon el-icon-success"></i>
      7        {{ model.menuName }}
      8  </span>
      9       <ul v-show="open" v-if="isFolder">
     10         <tree-menu v-for="item in model.children" :model="item"></tree-menu>
     11       </ul>
     12   </li>
     13 </template>
     14 <script>
     15   export default {
     16     name: 'treeMenu',
     17     props: ['model'],
     18     data() {
     19       return {
     20         open: true,
     21       }
     22     },
     23     computed: {
     24       isFolder: function () {
     25         return this.model.children && this.model.children.length//如果有children就isFolder=true,然后就展示循环遍历自己的树tree结构;
     26       }
     27     },
     28     methods: {
     29       toggle: function () {//切换关闭,展开,
     30         if (this.isFolder) {
     31           this.open = !this.open
     32         }
     33       }
     34     }
     35   }
     36 </script>
     37 <style>
     38   ul {
     39     list-style: none;
     40   }
     41   i.icon {
     42     display: inline-block;
     43     width: 15px;
     44     height: 15px;
     45     background-repeat: no-repeat;
     46     vertical-align: middle;
     47   }
     48   .tree-menu li {
     49     line-height: 1.5;
     50   }
     51 </style>
     52 
     53 //views/tree/index.vue
     54 <template>
     55   <div class="tree-menu">
     56     <ul v-for="menuItem in theModel">
     57       <tree-menu :model="menuItem"></tree-menu>
     58     </ul>
     59   </div>
     60 </template>
     61 <script>
     62   var myData = [
     63     {
     64       'id': '1',
     65       'menuName': '基础管理',
     66       'menuCode': '10',
     67       'children': [
     68         {
     69           'menuName': '用户管理',
     70           'menuCode': '11'
     71         },
     72         {
     73           'menuName': '角色管理',
     74           'menuCode': '12',
     75           'children': [
     76             {
     77               'menuName': '管理员',
     78               'menuCode': '121'
     79             },
     80             {
     81               'menuName': 'CEO',
     82               'menuCode': '122',
     83               'children': [
     84                 {
     85                   'menuName': '管理员',
     86                   'menuCode': '121'
     87                 },
     88                 {
     89                   'menuName': 'CEO',
     90                   'menuCode': '122'
     91                 },
     92                 {
     93                   'menuName': 'CFO',
     94                   'menuCode': '123'
     95                 },
     96                 {
     97                   'menuName': 'COO',
     98                   'menuCode': '124'
     99                 },
    100                 {
    101                   'menuName': '普通人',
    102                   'menuCode': '124'
    103                 }
    104               ]
    105             },
    106             {
    107               'menuName': 'CFO',
    108               'menuCode': '123'
    109             },
    110             {
    111               'menuName': 'COO',
    112               'menuCode': '124'
    113             },
    114             {
    115               'menuName': '普通人',
    116               'menuCode': '124'
    117             }
    118           ]
    119         },
    120         {
    121           'menuName': '权限管理',
    122           'menuCode': '13'
    123         }
    124       ]
    125     },
    126     {
    127       'id': '2',
    128       'menuName': '商品管理',
    129       'menuCode': ''
    130     },
    131     {
    132       'id': '3',
    133       'menuName': '订单管理',
    134       'menuCode': '30',
    135       'children': [
    136         {
    137           'menuName': '订单列表',
    138           'menuCode': '31'
    139         },
    140         {
    141           'menuName': '退货列表',
    142           'menuCode': '32',
    143           'children': []
    144         }
    145       ]
    146     },
    147     {
    148       'id': '4',
    149       'menuName': '商家管理',
    150       'menuCode': '',
    151       'children': []
    152     }
    153   ];
    154   import treeMenu from '../../components/Tree/Tree'
    155   export default {
    156     components: {
    157       treeMenu,
    158     },
    159     data() {
    160       return {
    161         theModel: myData
    162       }
    163     }
    164   }
    165 </script>
  • 相关阅读:
    数据可视化实例(八): 边缘直方图(matplotlib,pandas)
    数据可视化实例(七): 计数图(matplotlib,pandas)
    数据可视化实例(六): 带线性回归最佳拟合线的散点图(matplotlib,pandas)
    python 并发专题(十四):asyncio (三)实战
    python 并发专题(十三):asyncio (二) 协程中的多任务
    python 并发专题(十三):asyncio (一) 初识
    python 面向对象专题(七):异常处理
    JavaScript手册 | JS Array 对象中的unshift() 方法
    Spring框架:Bean Scopes, 声明一个Bean的范围
    Java 方法
  • 原文地址:https://www.cnblogs.com/yangguoe/p/9438060.html
Copyright © 2011-2022 走看看