「已注销」 2021-05-26 14:55 采纳率: 71.4%
浏览 194
已采纳

Ant Design Vue 树形控件怎么实现4个接口返回的4个数据源的数据展示

类似下方的结构,分公司、部门、职务、人员都在不同的表里面,返回的接口是4个接口,要怎么实现这种树形,大佬们帮帮忙,看了官方文档有个异步加载的,点击某个分公司把参数发送给后端搜索出分公司下方有什么部门,试了一下,不会用

  • 写回答

3条回答 默认 最新

  • 少十步 2021-05-26 16:28
    关注
    <a-tree :load-data="onLoadData" :tree-data="treeData" />
    
    
    data() {
        return {
          treeData: [
            { title: 'Expand to load', key: '0', value: '公司' },
            { title: 'Expand to load', key: '1', value: '公司' },
          ],
    }
    
    
    
      methods: {
        async onLoadData(treeNode) {
          const { value, key } = treeNode.dataRef
          // dataRef数据结构
          // dataRef: {
          // children: (2) [{…}, {…}]
          // key: "1"
          // title: "Expand to load"
          // value: "公司"}
          // 根据value 值去请求接口
          switch (value) {
            case '子公司':
              treeNode.dataRef.children = await this.getNextCompany(key)
              break
          }
          this.treeData = [...this.treeData]
        },
        // 获取公司接口请求定义,async axios, 获取公司接口在页面加载时就请求, 并赋值给 treeData
        async getCompany() {
          // return json数组,数据格式, title, key, value: 根据value 区分是哪一级的数据
          // [
          //   { title: 'Expand to load', key: '0', value: '公司' },
          //   { title: 'Expand to load', key: '1', value: '公司' },
          // ]
        },
        // 获取分公司,根据公司id获取子公司
        async getNextCompany(id) {
          // return json数组,数据格式, title, key, value: 根据value 区分是哪一级的数据
          // [
          //   { title: 'Expand to load', key: '0', value: '子公司' },
          //   { title: 'Expand to load', key: '1', value: '子公司' },
          // ]
        },
        // 获取部门,根据子公司id获取部门
        async getDepartMent(id) {
          // return json数组,数据格式, title, key, value: 根据value 区分是哪一级的数据
          // [
          //   { title: 'Expand to load', key: '0', value: '部门' },
          //   { title: 'Expand to load', key: '1', value: '部门' },
          // ]
        },
        // 获取职务,根据部门id获取职务
        async getJob(id) {
          // return json数组,数据格式, title, key, value: 根据value 区分是哪一级的数据
          // [
          //   { title: 'Expand to load', key: '0', value: '职务' },
          //   { title: 'Expand to load', key: '1', value: '职务' },
          // ]
        },
        // 获取员工,根据职务id获取员工
        async getUser(id) {
          // return json数组,数据格式, title, key, value: 根据value 区分是哪一级的数据,最后一级设置是叶子节点
          // [
          //   { title: 'Expand to load', key: '0', value: '员工', isLeaf:true },
          //   { title: 'Expand to load', key: '1', value: '员工', isLeaf:true },
          // ]
        },
      },
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 对于这个问题的代码运行
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败