1.针对将每层级对应的数据存放在一个表里,返回表中内容时组装前端组件需要的对象数组 2.目前制作了3层分级页面,增加层分级后续思路一样 3.本人自己所想有更好的方法感谢大佬评论 // 接受到后端响应的数据 let sourceList = response.rows; // 一级分类对象数组 let sourceList1 = []; //存一级分类名称 let newArr = []; //存新数组 // 去重拿出第一层级的分类 for (let i in sourceList) { if (newArr.indexOf(sourceList[i].firstClass) === -1) { newArr.push(sourceList[i].firstClass); sourceList1.push({ value: sourceList[i].firstClass, label: sourceList[i].firstClass, children: [], }); } } // 去重拿出第二层级的分类 // 二级分类对象数组 let sourceList2 = []; //存二级分类名称 let twoArr = []; //存新数组 for (let i in sourceList) { if (twoArr.indexOf(sourceList[i].secondaryClass) === -1) { twoArr.push(sourceList[i].secondaryClass); sourceList2.push(sourceList[i]); } } // 查询二级分类对象是否包含第一层级分类 for (let i in sourceList1) { for (let j in sourceList2) { if (sourceList1[i].value === sourceList2[j].firstClass) { sourceList1[i].children.push({ value: sourceList2[j].secondaryClass, label: sourceList2[j].secondaryClass, children: [], }) } } } // 查询三级分类对象是否包含一级分类和二级分类 for (let i in sourceList1) { for (let j in sourceList1[i].children) { for (let v in sourceList) { if (sourceList[v].firstClass === sourceList1[i].value && sourceList[v].secondaryClass === sourceList1[i].children[j].value) { sourceList1[i].children[j].children.push({ value: sourceList[v].name, label: sourceList[v].name, }) } } } } // 将组装好的数组赋给渲染的输入联动框或者树形层级图 this.emissionSourcesData = sourceList1;
处理后端接受到的数据分层级显示数据中有一级和二级
于 2024-05-23 18:15:36 首次发布