laravel获取后端的数组数据如何回显到树形插件中?

各位大佬:
我正在使用iview的tree组件写权限列表的功能
以下是数据:

[
  {
    "title": "所有权限",
    "permissionName": "all",
    "checked":false,
    "expand": true,
    "children": [
      {
        "title": "用户管理",
        "permissionName": "users",
        "checked":false,
        "expand": true,
        "children": [
          {
            "title": "添加用户",
            "permissionName": "users.add",
            "checked":false
          },
          {
            "title": "删除用户",
            "permissionName": "users.delete",
            "checked":false
          },
          {
            "title": "编辑用户",
            "permissionName": "users.edit",
            "checked":false
          },
          {
            "title": "拉黑用户",
            "permissionName": "users.blacklist",
            "checked":false
          }
        ]
      },
      {
        "title": "商户管理",
        "permissionName": "vendor",
        "checked":false,
        "expand": true,
        "children": [
          {
            "title": "添加商户",
            "permissionName": "vendor.add",
            "checked":false
          },
          {
            "title": "删除商户",
            "permissionName": "vendor.delete",
            "checked":false
          },
          {
            "title": "编辑商户",
            "permissionName": "vendor.edit",
            "checked":false
          }
        ]
      }
    ]
  }
]

那么现在后端返回了选择的数组,类似这样:

["users","users.add","users.delete","users.edit","users.blacklist"]

很显然服务器返回的数组是对应的树形数据中的permissionName

下面的问题是:
vue如何操作才能使得返回的数据回显到树形中,也就是通过,例如:permissionName = “users”的时候 checked的值改变为true

感谢各位!!!

阅读 1.9k
3 个回答

正常用户的权限数据 是后端返回给你的, 不是仅仅返回“['users', 'users.add']”

找你的后端要数据. 数据都丢失了, 前端怎么可能还原出来. 虽然看起来是用.分隔的字符串, 但又没有确定.

image.png
image.png
那你就遍历啊 遍历某一项permissionName === 返回数组的某一项 然后把这一项的 checked=true
遍历完 把tree的数据源换成你遍历后的 不就可以了?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题