js 树形结构数据 转化列表

349 阅读1分钟

<!DOCTYPE html>
<html>

<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width,initial-scale=1.0">
 <title>政法大数据基础平台</title>

</head>

<body>
 <script>
   var  arr = [
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "ga_000001",
   	"deptId": "ga_000001",
   	"label": "公安机关",
   	"disabled": true,
   	"children": [
   		{
   			"pcode": "ga_000001",
   			"layer": 2,
   			"code": "045617cac5ec4fb191f9e2b8a67cce4a",
   			"jzId": "045617cac5ec4fb191f9e2b8a67cce4a",
   			"label": "证据材料卷",
   			"children": [
   				{
   					"pcode": "045617cac5ec4fb191f9e2b8a67cce4a",
   					"layer": 3,
   					"code": "b78dcd409aa64dbb90244ce592845bc4",
   					"mlid": "b78dcd409aa64dbb90244ce592845bc4",
   					"label": "现场勘验笔录"
   				},
   				{
   					"pcode": "045617cac5ec4fb191f9e2b8a67cce4a",
   					"layer": 3,
   					"code": "7ede151754664edba3291c97654b00a2",
   					"mlid": "7ede151754664edba3291c97654b00a2",
   					"label": "现场图、现场照片"
   				}
   			]
   		},
   		{
   			"pcode": "ga_000001",
   			"layer": 2,
   			"code": "271084cab1f949e8b503f1d729de5416",
   			"jzId": "271084cab1f949e8b503f1d729de5416",
   			"label": "文书目录",
   			"children": [
   				{
   					"pcode": "271084cab1f949e8b503f1d729de5416",
   					"layer": 3,
   					"code": "4d73d30edcbc4dbf8d7fac8853dd5d58",
   					"mlid": "4d73d30edcbc4dbf8d7fac8853dd5d58",
   					"label": "移交文书"
   				}
   			]
   		},
   		{
   			"pcode": "ga_000001",
   			"layer": 2,
   			"code": "726a9e52422244a3a7257f2e281fd187",
   			"jzId": "726a9e52422244a3a7257f2e281fd187",
   			"label": "文书目录",
   			"children": [
   				{
   					"pcode": "726a9e52422244a3a7257f2e281fd187",
   					"layer": 3,
   					"code": "b9dfe93a7a334ef180fec5eae0116d31",
   					"mlid": "b9dfe93a7a334ef180fec5eae0116d31",
   					"label": "移交文书"
   				}
   			]
   		},
   		{
   			"pcode": "ga_000001",
   			"layer": 2,
   			"code": "e5536f1f0cc346e2b73b8054a67968c4",
   			"jzId": "e5536f1f0cc346e2b73b8054a67968c4",
   			"label": "诉讼文书卷",
   			"children": [
   				{
   					"pcode": "e5536f1f0cc346e2b73b8054a67968c4",
   					"layer": 3,
   					"code": "b6cd2708b53d446f9395b93a40eb5495",
   					"mlid": "b6cd2708b53d446f9395b93a40eb5495",
   					"label": "保证人身份证明材料"
   				},
   			]
   		}	
   	]
   },
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "jy_000003",
   	"deptId": "jy_000003",
   	"label": "监狱",
   	"disabled": true,
   	"children": []
   },
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "fy_000001",
   	"deptId": "fy_000001",
   	"label": "法院",
   	"disabled": true,
   	"children": []
   },
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "jd_000004",
   	"deptId": "jd_000004",
   	"label": "戒毒",
   	"disabled": true,
   	"children": []
   },
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "jc_000001",
   	"deptId": "jc_000001",
   	"label": "检察院",
   	"disabled": true,
   	"children": []
   },
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "sj_000002",
   	"deptId": "sj_000002",
   	"label": "社区矫正",
   	"disabled": true,
   	"children": []
   },
   {
   	"pcode": "0",
   	"layer": 1,
   	"code": "sf_000001",
   	"deptId": "sf_000001",
   	"label": "司法行政机关",
   	"disabled": true,
   	"children": []
   }
]
   
   
   
     var resArr = []; //所有的code label 集成数组
     
     console.log(resArr,"DSAfsadfasdfasd");
     function getTagMap (tdata, resData) {
     //冒泡遍历后端json数据,存储方便使用的数据
     let _self = this;
     if (Array.isArray(tdata) && tdata.length > 0) {
       tdata.forEach(function(v, i) {
         var newValue = {
           code: v.code,
           label: v.label,
           pcode: v.pcode,
           deptId: v.deptId,
           jzId: v.jzId,
           mlid: v.mlid,
           mlid: v.mlid,
           children: []
         };
         resData.push(newValue);
         getTagMap(v.children, resData);
       });
     }
   }
   getTagMap(arr, resArr);  
   let filterArr = resArr.filter(item => item.pcode === "ga_000001")

   .map(item => {

       return item;

   });
   console.log(filterArr,'filterArr');
   // 多条件查询 返回值
   _this.viewData = resArr
           .filter(item => item.pcode === data.code && item.layer === 2)
           .map(item => {
             return item;
           });
  
 </script>
 <div id="app"></div>
</body>

</html>