【el-cascader-plus亲测有限】el-cascader级联选择器懒加载+多选功能回显失败解决方案

背景:在业务逻辑中需要用到el-cascader级联选择器懒加载+多选功能,在回显的过程中遇到了无法回显的情况,按网上方法排查了回显值格式等问题终究没有解决。

解决方案:使用el-cascader-plus进行实现级联选择器懒加载+多选+回显功能

第一步:安装el-cascader-plus

npm i el-cascader-plus --save

第二步:使用el-cascader-plus

如需全局使用就在 main.js 中添加以下代码

import elCascaderPlus from "el-cascader-plus";
Vue.use(elCascaderPlus);

在组件中单独使用在文件内添加以下代码

import elCascaderPlus from "el-cascader-plus";
export default {name: "demo",components: {elCascaderPlus,},
};

亲测完整代码示例

html

<template><div class="demo"><el-cascader-plus v-model="value" :props="nodeprop"></el-cascader-plus></div></template>
<script>import elCascaderPlus from "el-cascader-plus";export default {name: "demo",components: {elCascaderPlus,},data() {return {nodeprop: {lazy: true,multiple: true,lazyLoad: this.lazyLoads,leaf: "leaf"},}}methods: {async lazyLoads(node, resolve) {if (node.level == 0) {let res = await this.getOther(0);//请求接口获取一级数据resolve(res);} else {let res = await this.getOther(node.value);//请求接口获取子级数据setTimeout(() => {resolve(res);}, 200);}},}};</script>

官方完整代码示例


<template><div class="demo"><div class="mg20 title">el-cascader-plus</div><div class="mg20"><div class="mg20">el-cascader-plus单选</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="value"@change="change":options="options"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus单选不关联</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="value1":props="{ checkStrictly: true }"@change="change":options="options"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus多选</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="multipleValue":props="{ multiple: true }"@change="change":options="options"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus多选不关联</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="multipleValue1":props="{ multiple: true, checkStrictly: true }"@change="change":options="options"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus懒加载单选</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="value":props="props"@change="change"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus懒加载单选不关联</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="value1":props="{ ...props, checkStrictly: true }"@change="change"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus懒加载多选</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="multipleValue":props="{ ...props, multiple: true }"@change="change"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus懒加载多选不关联</div><el-cascader-plusstyle="width: 400px"ref="cascader"v-model="multipleValue1":props="{ ...props, multiple: true, checkStrictly: true }"@change="change"></el-cascader-plus></div><div class="mg20"><div class="mg20">el-cascader-plus懒加载设置maxLevel为1</div><el-cascader-plus:maxLevel="1"style="width: 400px"v-model="value2":props="props"></el-cascader-plus></div></div></template><script>import elCascaderPlus from "el-cascader-plus";export default {name: "demo",components: {elCascaderPlus,},data() {return {res: [],// 级联懒加载props: {multiple: false,lazy: true,lazyLoad: this.getNode,},value: [17, 18, 19],value1: [17, 18, 19],value2: [],multipleValue: [[17, 18, 19]],multipleValue1: [[17, 18, 19]],options: [{value: 1,label: "东南",children: [{value: 2,label: "上海",children: [{value: 3,label: "普陀",leaf: true,},{value: 4,label: "黄埔",leaf: true,},{value: 5,label: "徐汇",leaf: true,},],},{value: 7,label: "江苏",children: [{value: 8,label: "南京",leaf: true,},{value: 9,label: "苏州",leaf: true,},{value: 10,label: "无锡",leaf: true,},],},{value: 12,label: "浙江",children: [{value: 13,label: "杭州",leaf: true,},{value: 14,label: "宁波",leaf: true,},{value: 15,label: "嘉兴",leaf: true,},],},],},{value: 17,label: "西北",children: [{value: 18,label: "陕西",children: [{value: 19,label: "西安",leaf: true,},{value: 20,label: "延安",leaf: true,},],},{value: 21,label: "新疆维吾尔自治区",children: [{value: 22,label: "乌鲁木齐",leaf: true,},{value: 23,label: "克拉玛依",leaf: true,},],},],},],};},watch: {},methods: {change(e) {console.log(e);},// 获取当前点击节点的子node,根据node数据和后端交互,此处为模拟后端请求async getNode(node, resolve) {const {level, //层级value,data,} = node;// 模拟后端请求// 0级处理if (level == 0) {let options = JSON.parse(JSON.stringify(this.options));let nodes = options.map((v, index) => {delete v.children;return {...v,};});setTimeout(() => resolve(nodes), 500);} else {this.res = [];let options = JSON.parse(JSON.stringify(this.options));for (let i = 0; i < options.length; i++) {this.findChildren(options[i], value);}// 去除子集的childrenlet nodes = [];if (this.res.length) {nodes = this.res.map((v, index) => {delete v.children;return {...v,};});}setTimeout(() => resolve(nodes), 500);}},//  找到某个树节点并返回子集findChildren(item, cid, flag = false) {if (item.value == cid) {flag = true;}if (flag && item.children && item.children.length) {this.res = [];this.res = item.children;}if (!item.children) {return;} else {item.children.forEach((child) => {this.findChildren(child, cid, false);});}},},};</script><style>.mg20 {margin-top: 20px;}.title {font-weight: bold;font-size: 26px;}</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

案例分析篇01:软件架构设计考点架构风格及质量属性(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

【SpringCloud微服务实战01】Eureka 注册中心

前言 在 Eureka 架构中,微服务角色有两类: EurekaServer :服务端,注册中心 记录服务信息 心跳监控 EurekaClient :客户端 Provider :服务提供者,例如案例中的 user-service 注册自己的信息到 EurekaS…

解决vue项目,运行npm install安装报缺少c++库问题

项目是前后端分离架构&#xff0c;前端使用的是vue框架&#xff0c;在部署前端项目时&#xff0c;需要下载安装一些基础的镜像配置&#xff0c;包括一些预处理&#xff0c;但是在使用npm install和yarn install命令时出现了如下错误&#xff0c;查阅资料总结如下&#xff1a; …

WPF(2)命令绑定

效果是&#xff1a;当TextBox控件的Text属性为空时show按钮不可用&#xff0c;有值时show按钮可用 项目结构 界面代码 <Window x:Class"WpfApp1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://sc…

计算机网络规划与设计 -- 设计基础

文章目录 计算机网络规划与设计设计基础网络设计基本元素互联设备网关网络性能可用性、可靠性和可恢复性冗余度、适应性和可伸缩性效率与费用文档网络开发过程 计算机网络规划与设计 设计基础 网络设计基本元素 计算机网络是有多种基本元素组合而成&#xff0c;常见的网络基…

C++从零开始(day47)——set,map学习使用

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于set和map的知识点 1.关联式容器 在前面&#…

Flutter ios一键三连脚本

flutter运行ios时总得执行三个命令,中间还得等待&#xff0c;有没有脚本自动执行 ## ios 执行命令 - flutter clean - flutter pub get - cd ios - pod install有&#xff0c;项目根目录创建shell 文件夹&#xff0c;新建setup.sh setup.sh里面放如下代码 #!/bin/bash# ios …

ffmpeg解码和渲染理解

ffmpeg解码和渲染理解 ffmpeg视频解码步骤 FFmpeg 是一个功能强大的跨平台多媒体处理工具&#xff0c;包含了音视频编解码、封装/解封装、过滤器等功能。下面是一般情况下使用 FFmpeg 进行视频解码的步骤&#xff1a; 初始化 FFmpeg 库&#xff1a;首先需要初始化 FFmpeg 库&a…

【Sql】数据库的三范式?MySQL数据库引擎有?InnoDB与MyISAM的区别

目录 数据库的三范式&#xff1f; MySQL数据库引擎有&#xff1f; InnoDB与MyISAM的区别 数据库的三范式&#xff1f; 第一范式&#xff1a;是数据库最基本的要求&#xff0c;列不可再分 第二范式&#xff1a;行可以唯一区分&#xff0c;主键约束 第三范式&#xff1a;是在…

【深度学习笔记】7_4 动量法momentum

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.4 动量法 在7.2节&#xff08;梯度下降和随机梯度下降&#xff09;中我们提到&#xff0c;目标函数有关自变量的梯度代表了目标函数…

【ArcGIS】栅格数据进行标准化(归一化)处理

栅格数据进行标准化&#xff08;归一化&#xff09;处理 方法1&#xff1a;栅格计算器方法2&#xff1a;模糊分析参考 栅格数据进行标准化(归一化)处理 方法1&#xff1a;栅格计算器 栅格计算器&#xff08;Raster Calculator&#xff09; 方法2&#xff1a;模糊分析 空间…

Python实现图片(合并)转PDF

在日常的工作和学习过程当中,我相信很多人遇到过这样一个很普通的需求,就是将某一个图片转为PDF或者是将多个图片合并到一个PDF文件。但是,在苦苦搜寻一圈之后发现要么要下载软件,下载了还要注册,注册了还要VIP,甚至SVIP才能实现这样的需求! 今天,我带大家把这个功能打…

2024年华为HCIA-DATACOM新增题库(H12-811)

801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案&#xff1a;A 试题解析&#xff1a;在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…

Kubernetes | 起源 | 组件详解

起源 起源&#xff1a; Kubernetes&#xff08;常简称为K8s&#xff09;起源于Google内部的Borg项目&#xff0c;是一个开源的容器编排引擎&#xff0c;于2014年首次对外发布。 Google Borg Google Borg 是 Google 内部开发和使用的大规模集群管理系统&#xff0c;用于管理和运…

每天一个数据分析题(一百九十九)

指标体系由各种不同类型指标构成&#xff0c;以下关于各个指标类型的描述正确的是&#xff08;&#xff09; A. 一般业务方最关心的指标被认为是根指标。 B. 根指标与最常用的派生指标结合&#xff0c;生成组合指标。 C. 根指标与最常用的维度取值相结合&#xff0c;生成组合…

Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(二)

前言 上篇内容已经介绍接口测试流程以及了解如何用jmeter接口测试&#xff0c;本篇将介绍如何在实战中应用 一、Jmeter接口关联 1.使用正则表达式实现接口关联&#xff08;可以作用于任意值&#xff09; 如果说一个请求里面有多次请求服务器。 2.使用Jsonpath表达式实现接口关…

c++ primer plus笔记 第十八章 探讨c++新标准

复习前面的内容&#xff1a; 1.auto&#xff0c;可以自动识别auto本身在这种语境下是什么类型 2.decltype,让一个变量的类型和另外一个变量的类型相同 decltype(x) y;//让y的类型和x的类型相同 如何理解&#xff1f; decltype是一个关键词&#xff0c;其作用是检查括号内的…

Android studio虚拟调试出现“我的APP keeps stopping”问题

问题如图&#xff1a; 遇到这种情况&#xff0c;一看代码&#xff0c;也没有报错呀&#xff0c;怎么不能运行呢&#xff1f;不要慌&#xff01;我们一步一步来。 1、查看Logcat日志 在Android Studio中查看Logcat窗口&#xff0c;可以获取应用程序崩溃时的详细错误信息&…

【触想智能】工业触摸显示器在户外使用需要注意哪些问题?

工业显示器是智能制造领域应用比较广泛的电子产品&#xff0c;它广泛应用于工厂产线以及各种配套设备&#xff0c;在很大程度上提升了工厂的生产效率。 工业显示器按触摸方式分&#xff0c;可以分为工业触摸显示器和非触摸工业显示器两种;按使用环境分&#xff0c;又可以分为室…

初识网络编程

目录 前言: 1.网络编程: 1.1概述: 1.2网络编程的层次: 1.2.1应用层: 1.2.1.1这是网络编程中最接近用户的层次。 1.2.1.2包含了许多应用协议&#xff0c;如HTTP&#xff08;Web浏览器与服务器通信&#xff09;、FTP&#xff08;文件传输&#xff09;、SMTP&#xff08;电子…