查看: 90|回复: 0

vxe-tree-select 树形下拉框当使用懒加载数据时如何回显

[复制链接]

4

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-3-13
发表于 2025-9-18 13:42:00 | 显示全部楼层 |阅读模式

vxe-tree-select 树形下拉框当使用懒加载数据时如何回显
当使用懒加载或者当某个选项被删除时,显示自定义回显;比如使用懒加载树列表,由于数据未被加载,这时候已选的数据就不能被回显,导致显示了 value值,而不是 label。
还有一种场景就是组织架构人员选择,当选择某个人员后,可能人员变动离职,数据被删掉了,这个时候也无法回显。那么怎么解决以上几种情况,解决方式也很简单

官网:https://vxeui.com
github:https://github.com/x-extends/vxe-pc-ui
gitee:https://gitee.com/x-extends/vxe-pc-ui

问题

无法显示对应的label

解决效果

比如以下懒加载树选择,所有的子项都没有点击加载,也可以正确回显label

代码

可以通过设置 lazy-options 来将指定节点放入用来回显,将不存在选项的数据额外放到这里,就可以实现自动回显

<template>
  <div>
    <vxe-tree-select v-model="val1" :options="treeList" :lazy-options="lazyList" :treeConfig="treeConfig" multiple clearable></vxe-tree-select>
  </div>
</template>

<script setup>
import { ref, reactive } from 'vue'

const val1 = ref(['4-2'])

const treeConfig = reactive({
  lazy: true,
  loadMethod ({ node }) {
    return getNodeListApi(node)
  }
})

const treeList = ref([
  { label: '节点2', value: '2', hasChild: true },
  { label: '节点3', value: '3', hasChild: true },
  { label: '节点4', value: '4', hasChild: true },
  { label: '节点5', value: '5', hasChild: false }
])

const lazyList = ref([
  { label: '节点4-2', value: '4-2' }
])

let treeKey = 1
const getNodeListApi = (node) => {
  return new Promise(resolve => {
    // 模拟后端接口
    setTimeout(() => {
      resolve([
        { label: `节点${node.value}-${treeKey}`, value: `节点${node.value}-${treeKey}`, hasChild: Math.random() * 10 < 6 },
        { label: `节点${node.value}-${treeKey + 1}`, value: `节点${node.value}-${treeKey + 1}`, hasChild: Math.random() * 10 < 6 }
      ])
      treeKey += 2
    }, 500)
  })
}
</script>

https://gitee.com/x-extends/vxe-pc-ui



来源:https://www.cnblogs.com/qaz666/p/19098596
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部