vue+antd权限树的回显[前端处理数据]

接着上篇文章vue+antd权限树的回显,前端对数据的处理

在本次项目中最后选择前端对数据的处理:

具体原因:点击树1的应用,树2回显是对应的菜单,但是当用户在选完应用1的值后,然后再选择应用2的菜单时,返回应用1刚才选择的内容清空了,之所以清空是因为对树2反显的接口又进行了一次请求,导致刚才选中的内容清空,所以选择前端进行对数据处理。

 

需要实现的效果:

这是前端对数据的处理,有部分注释如果还有不懂的可以留言或者私信笔者乐意讲解思路,如有不足,也可以提一下。

 await postAction(this.url.getMenuAndButtonByAppId, {
        appId: record.key,
        roleId: this.roleId,
      })
        .then((res) => {
          let menuList = res.result
          const dealTreeData = (menuList) => {
            const data = menuList.map((item) => ({
              key: item.key,
              title: item.name,
              children: item.children && item.children.length ? dealTreeData(item.children) : null,
            }))
            return data
          }
          this.menuTreeData = dealTreeData(menuList)
          // 权限树的反显
          function menuId(menuList, menuArr, result = []) {
            menuList.find((item) => {
              if (menuArr.includes(item.key) && !item.children) {
                result.push(item.key)
              }
              if (item.children) menuId(item.children, menuArr, result)
            })
            return result
          }
          /**注: this.menuTreeData:是组装成树结构 this.checkedKeysObj[record.key]是后端返回来的需要授权的标识 */
          this.menuCheckedKeys = menuId(this.menuTreeData, this.checkedKeysObj[record.key])
        })
        .finally(() => {
          this.loading = false
        })

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值