解决 elementui el-cascader组件懒加载时存在选中状态丢失的问题?

解决 elementui el-cascader组件懒加载时存在选中状态丢失的问题?

javascript 复制代码
<el-cascader 
  ref="cascader" 
  v-model="curList" 
  :show-all-levels="false" 
  :options="classList"
  :props="cascaderProps"
  clearable
  filterable
  style="width: 100%"
  placeholder="选择"
  @change="handleChange"
/>
javascript 复制代码
data(){
	return{
		curList:[],
		classList:[],
		cascaderProps: {
		  checkStrictly: true,
		  multiple: true,
		  children: 'sonList',
		  value: 'id',
		  label: 'name',
		  leaf: 'leaf',
		  lazy: true,
		  lazyLoad: this.lazyLoadCascader
        }
	}
},
methods:{
	async lazyLoadCascader(node, resolve) {
      const { checked } = node
      if (node.level === 0) {
        const list = await this.getClassList(1) // 获取数据,返回数组类型
        this.externalKnowclassList = list
        this.initSelectedCascaderdata() // 修改操作,初始化已选节点
        // eslint-disable-next-line require-atomic-updates
        node.data = list
        resolve(list)
      } else {
        const { id, type, sonList } = node.data
        if (this.$utils.isNotEmptyArray(sonList)) {
          resolve([])
        } else {
          const list = await this.getClassList(type + 1, id) // 获取数据,返回数组类型
          // eslint-disable-next-line require-atomic-updates
          node.data.sonList = list
          resolve(list)
        }
        // 解决 el-cascader 懒加载时选中状态丢失的问题
        const cascader = this.$refs.cascader
        node.doCheck(checked) // 更新节点的选中状态
        cascader.panel.handleExpand(node) // 展开当前节点
        cascader.panel.calculateMultiCheckedValue() // 重新计算多选状态下的选中值
      }
    },
}
相关推荐
是上好佳佳佳呀29 分钟前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
莎士比亚的文学花园35 分钟前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
CDN3601 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
之歆1 小时前
Day07_CSS盒子模型 · 样式继承 · 用户代理样式
前端·css
01漫游者1 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
DanCheOo2 小时前
AI 应用的安全架构:Prompt 注入、数据泄露、权限边界
前端·人工智能·prompt·安全架构
We་ct3 小时前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域
weixin_427771613 小时前
前端调试隐藏元素
前端
threelab3 小时前
Three.js 代码云效果 | 三维可视化 / AI 提示词
开发语言·javascript·人工智能
爱上好庆祝4 小时前
学习js的第五天
前端·css·学习·html·css3·js