vue3使用element-plus 树组件(el-tree)数据回显

HTML:

html 复制代码
<el-tree
    ref="elTreeRef"
    :data="menuVos"
    :props="{ children: 'children', label: 'name' }"
    :check-strictly="false"
    show-checkbox
    node-key="id"
    :default-checked-keys="roleForm.menuIds"
    @check="handleCheckChange"
            />

JS:

html 复制代码
const elTreeRef = ref<InstanceType<typeof ElTree>>()
const menuVos = ref([]) //菜单树列表
const roleForm:any = reactive({})

/**
 * 获取树节点选中时的id集合
 */
function handleCheckChange(data1: any, data2: any) {
  // 选中的子节点
  const checkedKeys = data2.checkedKeys
  // 选中的父节点
  const halfCheckedKeys = data2.halfCheckedKeys
  checkMenuList.value = [...checkedKeys, ...halfCheckedKeys]
}

//数据回显,data.hasIds就是接口返回选中的树节点id集合
        //菜单树数据
        menuVos.value = data.menuVos
        //数据回显操作
        nextTick(() => {
          const arr: any = []
          data.hasIds.forEach((item: any) => {
            if (
              !elTreeRef.value?.getNode(item).childNodes ||
              !elTreeRef.value?.getNode(item).childNodes.length
            ) {
              arr.push(item)
            }
          })
          roleForm.menuIds = arr
          elTreeRef.value?.setCheckedKeys(arr)
        })
相关推荐
shaohaoyongchuang20 分钟前
vue_03路由
前端·javascript·vue.js
我叫张小白。27 分钟前
Vue3计算属性:高效数据处理
前端·javascript·vue.js·前端框架·vue
徐小夕@趣谈前端1 小时前
NO-CRM本地安装版开源!人人都能拥有开箱即用的智慧CRM管理系统
javascript·vue.js·开源
|晴 天|2 小时前
2025年前端框架选择:React、Vue还是Svelte?
vue.js·react.js·前端框架
小小弯_Shelby4 小时前
vue项目源码泄露漏洞修复
前端·javascript·vue.js
k***12174 小时前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
进阶的鱼5 小时前
关于微前端框架wujie的一次企业级应用实践demo?
前端·vue.js·react.js
Cassie燁5 小时前
element-plus源码解读2——vue3组件的ref访问与defineExpose暴露机制
javascript·vue.js
凯心5 小时前
React 中没有 v-model,如何优雅地处理表单输入
前端·vue.js·react.js
华仔啊8 小时前
Vue3 如何实现图片懒加载?其实一个 Intersection Observer 就搞定了
前端·vue.js