element el-tree 设置动态禁用 延迟生效问题

发布于 2022-09-12 13:05:15 字数 744 浏览 12 评论 0

发现出现不能及时更新禁用状态 要点击才能更新 而且是更新单个是什么原因

<el-tree
 ref="menuTree"
 v-model="roleActionVo.menuIds"
 :data="menuTree"
 show-checkbox
 node-key="menuId"
 style="overflow: hidden;"
 default-expand-all
 :check-strictly="true"
 :props="defaultProps"
 :default-checked-keys="checkedId"
 @check="handleChange"
 />

封装禁用函数

function G(i, bool) {
 // 第一级
 if (i._disabled === undefined) {
 i._disabled = i.disabled === undefined ? false : i.disabled
 }
 i.disabled = bool
 // 如果有子级
 if (i.resources && i.resources !== undefined) {
 R(i.resources, bool)
 }
 return i
}
export function R(s, bool) {
 return s.map(i => {
 return G(i, bool)
 })
}

// 调用 R(Data, true) / R(Data, false)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

土豪 2022-09-19 13:05:15

请问这个问题得到处理了吗?我也同样遇到了

叹沉浮 2022-09-19 13:05:15
  //在选中的时候,将当前节点的disabled修改为true
  dealTreeOnceChecked(datas, notCheck) {
    datas.forEach((item) => {
      let arrChildren = item.childList
      if (arrChildren != null)
        this.dealTreeOnceChecked(arrChildren, notCheck)
      if (item.id === notCheck) {
        this.$set(item, 'disabled', true) //设置禁用使用该指令
        item.disabled = true
        this.handleNodeClick(item, false)
      } else {
        this.$set(item, 'disabled', false)
      }
    })
  },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文