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)
        })
相关推荐
利刃大大20 小时前
【Vue】Vue2 和 Vue3 的区别
前端·javascript·vue.js
安且惜1 天前
带弹窗的页面--以表格形式展示
前端·javascript·vue.js
码界奇点1 天前
基于SpringBoot+Vue的前后端分离外卖点单系统设计与实现
vue.js·spring boot·后端·spring·毕业设计·源代码管理
不吃香菜的猪1 天前
使用@vue-office/pdf时,pdf展示不全
javascript·vue.js·pdf
css趣多多1 天前
props,data函数,computed执行顺序
前端·javascript·vue.js
一个不称职的程序猿1 天前
构建优雅的 Vue.js 表情包选择器:一个功能丰富且可定制的 Emoji Picker 组件
前端·javascript·vue.js
Amumu121381 天前
Vue核心(二)
前端·javascript·vue.js
墨轩尘1 天前
qiankun的简单使用
前端·vue.js·前端框架
wusp19941 天前
v-model 和 :value 的深度解析
前端·javascript·vue.js
Code知行合壹1 天前
Vue项目中SVG图标
前端·vue.js