当前位置:   article > 正文

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

vue3+antd怎么数据回显

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

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

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

 

需要实现的效果:

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

  1. await postAction(this.url.getMenuAndButtonByAppId, {
  2. appId: record.key,
  3. roleId: this.roleId,
  4. })
  5. .then((res) => {
  6. let menuList = res.result
  7. const dealTreeData = (menuList) => {
  8. const data = menuList.map((item) => ({
  9. key: item.key,
  10. title: item.name,
  11. children: item.children && item.children.length ? dealTreeData(item.children) : null,
  12. }))
  13. return data
  14. }
  15. this.menuTreeData = dealTreeData(menuList)
  16. // 权限树的反显
  17. function menuId(menuList, menuArr, result = []) {
  18. menuList.find((item) => {
  19. if (menuArr.includes(item.key) && !item.children) {
  20. result.push(item.key)
  21. }
  22. if (item.children) menuId(item.children, menuArr, result)
  23. })
  24. return result
  25. }
  26. /**注: this.menuTreeData:是组装成树结构 this.checkedKeysObj[record.key]是后端返回来的需要授权的标识 */
  27. this.menuCheckedKeys = menuId(this.menuTreeData, this.checkedKeysObj[record.key])
  28. })
  29. .finally(() => {
  30. this.loading = false
  31. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/151853
推荐阅读
相关标签
  

闽ICP备14008679号