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)
        })
相关推荐
前端小巷子1 小时前
Vue 3 运行机制
前端·vue.js·面试
JustHappy19 小时前
「Versakit攻略」🔥Pnpm+Monorepo+Changesets搭建通用组件库项目和发包流程
前端·javascript·vue.js
用户661977345857519 小时前
Vue3笔记
前端·vue.js
2401_8370885020 小时前
ref 简单讲解
前端·javascript·vue.js
前端小巷子1 天前
Vue3的渲染秘密:从同步批处理到异步微任务
前端·vue.js·面试
每天学习一丢丢1 天前
SpringBoot + Vue实现批量导入导出功能的标准方案
vue.js·spring boot·后端
小码编匠1 天前
物联网数据大屏开发效率翻倍:Vue + DataV + ECharts 的标准化模板库
前端·vue.js·echarts
GHOME1 天前
Vue2知识点详细回顾(以及自己的一些思考和解答)-2
前端·vue.js·面试
复苏季风1 天前
2025 年了,Vite+Vue3 微前端该用啥方案?3 大主流方案实战对比
前端·vue.js
明月与玄武1 天前
Vue 3 高性能实践 全面提速剖析!
前端·javascript·vue.js