解决 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() // 重新计算多选状态下的选中值
      }
    },
}
相关推荐
海带紫菜菠萝汤1 小时前
WebCodecs API 实战:浏览器原生视频编解码的原理与性能测试
前端·javascript·音视频·视频编解码
一位正在转型AI全栈的前端工程师1 小时前
AI 全栈学习之旅 - Week2:从零搭建一个可部署的 AI 聊天应用
前端
aixingpan1 小时前
aixingpan.cn API开发文档:api_docs_trichart_natal_solararc_transit2接口指南
前端·php
Ayayoyo2 小时前
公平随机转盘的前端实现:Web Crypto API、拒绝采样与加权抽取
前端
程序员黑豆2 小时前
鸿蒙应用开发:@Link 装饰器实现父子组件双向同步
前端·后端·harmonyos
前端炒粉2 小时前
简易实现ssr
开发语言·前端·javascript
顶级自由人2 小时前
【前端菜鸟的补课01】Zod 与 PostgreSQL 全栈数据工程教学
前端·后端·程序员
swipe3 小时前
11|(前端转全栈)购物车不能只存在前端:用户维度数据如何在后端落库
前端·后端·全栈
meilindehuzi_a4 小时前
Node.js + LangChain.js + Milvus 实战:从 EPUB 入库到《天龙八部》RAG 问答系统
javascript·langchain·node.js
勇往直前plus4 小时前
Vue3(篇四)单页面应用到路由管理
javascript·typescript·前端框架·vue