将后端给的数据转换成el-cascader面板能渲染的数据格式

news/2024/6/17 9:00:40 标签: vue.js, elementui, javascript

说明

在业务逻辑中, 往往需要将后端的数据进行格式化
下面代码片是后端给的数据,但在使用el-tree或者是el-cascader时,这种格式数据并不能直接使用,需要进行改造

javascript"> {
            "id": 8750,
            "name": "监控大屏",
            "sort": 10,
            "path": "monitor",
            "component": "layout",
            "type": 0,
            "permission": "",
            "componentName": "",
            "icon": "icon-a-yunyingtongji2x",
            "cache": false,
            "hidden": false,
            "pid": 0,
            "iframeSrc": "",
            "children": [
                {
                    "id": 8751,
                    "name": "大屏",
                    "sort": 1601,
                    "path": "bigScreen",
                    "component": "monitor/BigScreen",
                    "type": 1,
                    "permission": "monitor:overview",
                    "componentName": "",
                    "icon": "",
                    "cache": false,
                    "hidden": false,
                    "pid": 8750,
                    "iframeSrc": "",
                    "children": [
                        {
                            "id": 8803,
                            "name": "导出",
                            "sort": 160101,
                            "path": "",
                            "component": "",
                            "type": 2,
                            "permission": " monitor-overview:export",
                            "componentName": "",
                            "icon": "",
                            "cache": false,
                            "hidden": true,
                            "pid": 8751,
                            "iframeSrc": "",
                            "children": null,
                            "createTime": "2024-01-11 14:45:44",
                            "description": "",
                            "subSystem": "",
                            "iframe": false
                        }
                    ],
                    "createTime": "2023-04-18 17:04:38",
                    "description": "",
                    "subSystem": "",
                    "iframe": false
                },
                {
                    "id": 8753,
                    "name": "大屏设置",
                    "sort": 1602,
                    "path": "screenconfig",
                    "component": "monitor/ScreenConfig.vue",
                    "type": 1,
                    "permission": "monitor:config",
                    "componentName": "",
                    "icon": "",
                    "cache": false,
                    "hidden": false,
                    "pid": 8750,
                    "iframeSrc": "",
                    "children": [
                        {
                            "id": 8801,
                            "name": "保存",
                            "sort": 160201,
                            "path": "",
                            "component": "",
                            "type": 2,
                            "permission": "monitor:save",
                            "componentName": "",
                            "icon": "",
                            "cache": false,
                            "hidden": true,
                            "pid": 8753,
                            "iframeSrc": "",
                            "children": null,
                            "createTime": "2024-01-11 14:44:29",
                            "description": "",
                            "subSystem": "",
                            "iframe": false
                        }
                    ],
                    "createTime": "2023-04-21 11:50:06",
                    "description": "",
                    "subSystem": "",
                    "iframe": false
                }
            ],
            "createTime": "2023-04-18 16:57:28",
            "description": "",
            "subSystem": "",
            "iframe": false
        },

el-cascader组件需要改造成的数据格式:

javascript">options: [{
          value: 'zhinan',
          label: '指南',
          children: [{
            value: 'shejiyuanze',
            label: '设计原则',
            children: [{
              value: 'yizhi',
              label: '一致'
            }, {
              value: 'fankui',
              label: '反馈'
            }, {
              value: 'xiaolv',
              label: '效率'
            }, {
              value: 'kekong',
              label: '可控'
            }]
          }, {
            value: 'daohang',
            label: '导航',
            children: [{
              value: 'cexiangdaohang',
              label: '侧向导航'
            }, {
              value: 'dingbudaohang',
              label: '顶部导航'
            }]
          }]
        },

代码说明

这种树形的代码格式,一般是使用递归方法写

javascript"> // 获取后端接口
    async getModuleList() {
      let treeDetail = [];
      await GetMenusTreeDetail().then((res) => {
        treeDetail = res.data;
      });
      treeDetail.forEach((item) => {
        this.treeList.push(this.getModuleObject(item));
      });
    },
// 递归构建功能模块对象 return的格式可以根据业务要求来
    getModuleObject(obj) {
      if (!obj.children)
        return {
          id: obj.id,
          name: obj.name,
          children: null,
        };
      const temp = {
        id: obj.id,
        name: obj.name,
        children: [],
      };
      obj.children.forEach((item) => {
        temp.children.push(this.getModuleObject(item));
      });
      return temp;
    },

http://www.niftyadmin.cn/n/5441807.html

相关文章

使用Dockerfile打包java项目生成镜像部署到Linux

1、Dockerfile 介绍 如果说容器就是“小板房”,镜像就是“样板间”。那么,要造出这个“样板间”,就必然要有一个“施工图纸”,由它来规定如何建造地基、铺设水电、开窗搭门等动作。这个“施工图纸”就是“Dockerfile”。 比起容…

mac硬盘拷贝到另外硬盘 苹果电脑怎么拷贝到移动硬盘

在当今的信息时代,数据的存储和传输是我们日常生活和工作中不可或缺的一部分。我们经常需要使用各种硬盘来保存和备份我们的数据,比如内置硬盘、移动硬盘、U盘等。但是,不同的硬盘可能使用不同的文件系统,这给我们的数据拷贝带来了…

Java与Go:对象

对象是面向对象编程的核心概念之一,它具有封装、抽象、继承、多态等特性,能够帮助程序员更好地组织和管理程序,提高代码的可读性、可维护性和可重用性。今天我们来聊一聊Java中的class和Go语言的struct。 Java的class 在Java中,…

【Java】使用 Java 语言实现一个冒泡排序

大家好,我是全栈小5,欢迎阅读小5的系列文章。 这是《Java》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识…

Linux学习:git补充与调试工具gdb

目录 1. git版本控制器(续)1.1 git本地仓库结构1.2 git实现版本控制与多人协作的方式1.3 git相关指令,多分支模型与.gitignore文件 2. gdb调试工具2.1 企业项目开发流程简述与调试的必要性2.2 bug的调试思路方法与调式工具的使用 1. git版本控…

【C++】constexpr和const

在C中,constexpr和const都用于声明常量,但它们之间有一些重要的区别: const: const用于定义常量,表示其数值不可被修改。 变量被声明为const后,在程序执行过程中其数值不可改变。 可以用于修饰变量、指针…

Lambda函数与Selenium WebDriverWait类一起使用

Lambda函数是一种匿名函数,也称为内联函数或者lambda表达式。它们在Python中用于创建简短的、一次性的函数。Lambda函数通常用于在代码中传递函数作为参数,或者在需要一个简单的函数,但不想正式定义一个函数的情况下使用。 Lambda函数的特点…

快速排序(数据结构)

1. 前言: 这两种排序经常使用,且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度:O(nlogn) 最坏时间复杂度: O(n^2) 1.1. 左右向中遍历: 取最右侧4…