antdvue禁用某个特定节点tree数据

【需求】当tree数据中的roleId与844181735249182730相等时,禁用该节点。同时禁用父节点。

【tree数据】

以下数据是接口返回的数据

tree = res.data

{
    "code": "200",
    "message": "查询成功",
    "data": [
        {
            "roles": [
                {
                    "roleId": "844181735249182730",
                    "roleName": "用户"
                },
                {
                    "roleId": "849287685977772034",
                    "roleName": "反查角色"
                }
            ],
            "projectName": "项目",
            "projectId": 200037
        },
        {
            "roles": [
                {
                    "roleId": "848870500742565889",
                    "roleName": "分管领导"
                },
                {
                    "pinyin": "shangwuyanshi",
                    "roleId": "848870500746760193",
                    "roleName": "商务演示",
                    "remark": "商务演示",
                    "fk_project_id": 200098
                }
            ],
            "projectName": "测试1",
            "projectId": 200098
        },
        {
            "roles": [
                {
                    "roleId": "844181735450509317",
                    "roleName": "客服员"
                },
                {
                    "roleId": "844181735450509315",
                    "roleName": "客户"
                },
                {
                    "roleId": "844181735450509316",
                    "roleName": "收费员"
                }
            ],
            "projectName": "测试项目02",
            "projectId": 200041
        }
      ]
}

【处理数据】

param = res.data

注意:以下方法是有返回值的,返回全部数据

    rootNode (param) { //param是需要处理的tree数据
      param.forEach(t => {
        this.getRoleNode(t)
      })
      return param
    },
    getRoleNode (node) {
      if (node && node.roleId === '844181735249182730') {
        node.disabled = true
      }
      if (node.roles && node.roles.length > 0) {
        node.disabled = true
        node.roles.forEach(e => {
          this.getRoleNode(e)
        })
      }
      return node
    }

【处理后的数据】


 [
        {
            "roles": [
                {
                    "roleId": "844181735249182730",
                    "disabled": "true",
                    "roleName": "用户"
                },
                {
                    "roleId": "849287685977772034",
                    "roleName": "反查角色"
                }
            ],
            "projectName": "项目",
            "disabled": "true",
            "projectId": 200037
        },
        {
            "roles": [
                {
                    "roleId": "848870500742565889",
                    "roleName": "分管领导"
                },
                {
                    "pinyin": "shangwuyanshi",
                    "roleId": "848870500746760193",
                    "roleName": "商务演示",
                    "remark": "商务演示",
                    "fk_project_id": 200098
                }
            ],
            "projectName": "测试1",
            "disabled": "true",
            "projectId": 200098
        },
        {
            "roles": [
                {
                    "roleId": "844181735450509317",
                    "roleName": "客服员"
                },
                {
                    "roleId": "844181735450509315",
                    "roleName": "客户"
                },
                {
                    "roleId": "844181735450509316",
                    "roleName": "收费员"
                }
            ],
            "projectName": "测试项目02",
            "disabled": "true",
            "projectId": 200041
        }
    ]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值