zoukankan      html  css  js  c++  java
  • 以vue+TreeSelect为例,如何将扁平数据转为tree形数据

    // 目标:将后台返回的扁平数据,根据parentId转为下拉tree

    <el-form-item label='下拉选择数据'>

      <tree-select

         v-model='treeVlue' 

         :options='myTreeList' 

         :props="{ label:'treedataname'  value:'treedataid'  children:'childList'}"

      />

    </el-form-item>

    //

    export default{

    data(){

      myTreeList:[],

      treeValue:'', 

      initData:[

        {treedataid503,treedataname"心脏内科",lngparentid: 0};

        {treedataid504,treedataname"心脏内科一科",lngparentid: 503};

        {treedataid506,treedataname"胸痛门诊",lngparentid: 504};

        {treedataid507,treedataname"神经内科",lngparentid: 0};

        {treedataid508,treedataname"神经内科一病区",lngparentid: 507};

      ]  //假设initData为待处理的扁平化数据,数据结构如上,其中lngparentid为0表示第一级,为其他数表示子级。应用中也可以是后台返回的数据

    },

    methods:{

      getTreeData(){

           //深度拷贝数据,防止影响原数据

          this.myTreeList=JSON.parse(JSON.stringfy(this.initData)) 

           //两层过滤

          this.myTreeList.filter(father => {  

            const branchArr=this.myTreeList.filter(child => father.treedataid===child.lngparentid)  //返回每一项的子级数组

            branchArr.length>0?father.childList=branchArr:father.childList=[]

            return father.lngparentid===0   //返回第一层

          })

          //将lngparentid不是0的删掉

          this.myTreeList=this.myTreeList.filter(e=>{

            return e.lngparentid === 0

          })

        }

      }

  • 相关阅读:
    剑指offer python版 正则表达式匹配
    剑指offer python版 删除链表中重复的结点
    剑指offer python版 在O(1)时间删除链表结点
    剑指offer python版 打印1到最大的n位数
    剑指offer python版 数值的整数次方
    剑指offer python版 二进制中1的个数
    剑指offer python版 剪绳子
    剑指offer python版 机器人的运动范围
    设计模式(二) 工厂模式
    设计模式(一) 单例模式
  • 原文地址:https://www.cnblogs.com/mark21/p/13427087.html
Copyright © 2011-2022 走看看