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

html搭建结构

<el-tree ref="treeRef" :data="data" show-checkbox :default-expand-all="false" node-key="id" highlight-current
        :props="defaultProps" @check="handleCheckChange" />

js

// 编辑按钮
let Jedit = (row: any) => {
  console.log(row);
  dialogFormVisible.value = true
  adds.value = false
  edits.value = true
  charnam.value = row.name
  RoleType.value = row.type == 1 ? '超管' : row.type == 2 ? "劳务公司" : row.type == 3 ? "项目部" : "审核员"
  Mid.value = row.menus
  row.value = row.menus
  
//数据回显,row.menus_id就是接口返回选中的树节点id集合
//菜单树数据
  menuVos.value = row.menus
  //数据回显操作
  nextTick(() => {
    const arr: any = []
    row.menus_id.forEach((item: any) => {
      if (
        !treeRef.value?.getNode(item).childNodes ||
        !treeRef.value?.getNode(item).childNodes.length
      ) {
        arr.push(item)
      }
    })
    roleForm.menuIds = arr
    treeRef.value?.setCheckedKeys(arr)
  })
};

const menuVos = ref([]) //菜单树列表
const roleForm: any = reactive({})
function handleCheckChange(data1: any, data2: any) {
  // 选中的子节点
  const checkedKeys = data2.checkedKeys
  // 选中的父节点
  const halfCheckedKeys = data2.halfCheckedKeys
  checkMenuList.value = [...checkedKeys, ...halfCheckedKeys]
}

非常好用,拿过来修改一下check事件,ref获取就直接可以使用了

相关推荐
一 乐14 分钟前
基于vue船运物流管理系统设计与实现(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端·船运系统
m0_5287238124 分钟前
在React中使用redux
前端·javascript·react.js
傻小胖36 分钟前
vue3中customRef的用法以及使用场景
前端·javascript·vue.js
Edward-tan3 小时前
【玩转全栈】--创建一个自己的vue项目
前端·javascript·vue.js
青年夏日科技工作者3 小时前
虚幻浏览器插件 UE与JS通信
前端·javascript·html
雷神乐乐4 小时前
创建前端项目的方法
前端·javascript·vue.js
prince_zxill4 小时前
JavaScript面向对象编程:Prototype与Class的对比详解
前端·javascript·ecmascript·原型模式
计算机-秋大田5 小时前
基于SpringBoot的美食烹饪互动平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
vue.js·spring boot·后端·课程设计·美食
D.eL5 小时前
Vue 2 项目中 Mock.js 的完整集成与使用教程
前端·javascript·vue.js
轻口味6 小时前
Vue.js 响应式引用与响应式数据(`ref` 和 `reactive`)
vue.js