树组件 el-tree 数据回显
树型布局的数据回显标题:
这里我只放了核心代码,重要是如何获取选中的树节点的id聚集和如何根据树节点的id聚集回显数据
大家根据需要自行更改!
- <el-tree
- ref="authorityRef"
- node-key="id"
- :data="allAuthorityList"
- show-checkbox
- default-expand-all
- empty-text="加载中,请稍候"
- :props="defaultProps">
- </el-tree>
复制代码- const authorityRef = ref(ElTree)
- const defaultProps = {
- children: 'childrenList',
- label: 'name'
- }
- //1、如何获取选中的树节点的id集合!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- //我这里是通过Tree 组件的`getCheckedNodes`方法先获取到当前选中节点的数组然后再取其id值
- const checkedMenuAllIds = authorityRef.value.getCheckedNodes(false, true).map((node: any) => node.id)
-
- //如果传参要求只要最后一级的id值,可以再过滤处理一下
- const checkedMenuAllIds: number[] = authorityRef.value
- .getCheckedNodes(false, true)
- .filter((node) => !node.childrenList || node.childrenList.length === 0)
- .map((node) => Number(node.id)) //只传最后一级的id
- //2、如何根据树节点的id集合回显数据!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- //首先肯定是获取到树结构数据,为确保DOM更新后才调用setChecked,我这里使用nextTick
- //获取成功后,我这里是通过Tree 组件的`setChecked`方法设置节点是否被选中
- // 获取树级列表
- const { executeBody: fetGetCheckLibraryTree } = useRequest(api_get_checkLibrary_Tree(), {
- onSuccess(res: any) {
- allAuthorityList.value = res
- //注意:确保数组里面的id类型与树形结构中的id类型匹配!
- //这里的props.checkedAllId就是树节点的id集合,例如[ "1","574850805256267","574850805260359","574850805260357","574850805260361"]
- if (props.checkedAllId) {
- // 回显已拥有的结构
- nextTick(() => {
- props.checkedAllId.forEach((id) => {
- authorityRef.value?.setChecked(id, true, false)//核心代码就这一句!
- })
- })
- }
- }
- })
复制代码 如果后端返回的数据不是树节点的id聚集构成的数组布局,这里我的后端给我的是树型布局,我是通过递归处理的
- // 递归函数来提取 checkIds
- function extractCheckIds(checkIds, result: string[]) {
- checkIds.forEach((checkId) => {
- result.push(checkId.id);
- if (checkId.childrenList && checkId.childrenList.length > 0) {
- extractCheckIds(checkId.childrenList, result);
- }
- });
- }
- //使用时
- if (res.checkIds && res.checkIds.length > 0) {
- const checkedAllIds: string[] = [];
- extractCheckIds(res.checkIds,checkedAllIds);
- }
复制代码 实现效果:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |