当前位置: 首页 > news >正文

vue.js实现科室无限层选中和回显

一、效果展示:

  • 展示可选层级

  • 查看选中的值 

二、实现:

 

<el-form-item label="相关科室:" prop="orgId"><el-cascaderpopper-class="cascader-my":options="orgOptions":show-all-levels="false"v-model="orgList":props="props"@change="changeOrg"collapse-tagsplaceholder="请选择"filterable></el-cascader>
</el-form-item>//-------------相关变量定义-------------
rgOptions: [],
orgList: [], // 选中的科室数据
props: {children: 'childList',label: 'orgName',value: 'orgId',multiple: true,emitPath: false,expandTrigger: 'hover'}  //-------------相关方法--------------// 初始化科室initOrgInfo() {xxx().then((res) => {if (res.code === 200) {this.orgOptions = res.result} else {this.$message.error(res.message)}})},// 科室选中changeOrg(val) {if (val && val.length > 0) {const orgArr = this.findOrgIdInNestedList(val, this.orgOptions)this.form.orgId = orgArr.join() || ''}},// 科室无限层级迭代findOrgIdInNestedList(targetIds, orgOptions) {const deptData = []function searchOrg(options, targetId) {options.forEach((org) => {if (org.orgId === targetId) {deptData.push(org.orgId)} else if (org.childList && org.childList.length > 0) {searchOrg(org.childList, targetId)}})}targetIds.forEach((i) => {searchOrg(orgOptions, i)})return deptData},

相关文章:

  • MySQL数据脱敏(Data masking plugin functions)
  • 从零开始搭建React+TypeScript+webpack开发环境-使用iconfont构建图标库
  • 【扩散模型】5、Diffusion models beat GAN | 使用类别引导图像生成
  • 【腾讯云|云原生】自定制轻量化表单Docker快速部署
  • Python知识点——高维数据的格式化
  • java中拼接“
  • 【GitHub】Watch、Star、Fork、Follow 有什么区别?
  • 【多线程面试题二十三】、 说说你对读写锁的了解volatile关键字有什么用?
  • MFC 基础篇(一)
  • uniapp踩坑之项目:uniapp数字键盘组件—APP端
  • js原型链
  • CVF 在 TNEWS 数据集上测试
  • leetcode:13. 罗马数字转整数(python3解法)
  • 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库
  • 5G创新突破 | 紫光展锐5G芯片全球首发R17 NR广播端到端业务演示
  • 【面试系列】之二:关于js原型
  • Android单元测试 - 几个重要问题
  • Elasticsearch 参考指南(升级前重新索引)
  • Flannel解读
  • IP路由与转发
  • Iterator 和 for...of 循环
  • jquery ajax学习笔记
  • JS函数式编程 数组部分风格 ES6版
  • Linux后台研发超实用命令总结
  • MYSQL 的 IF 函数
  • MySQL-事务管理(基础)
  • nginx 配置多 域名 + 多 https
  • React-redux的原理以及使用
  • 初识MongoDB分片
  • 当SetTimeout遇到了字符串
  • 你不可错过的前端面试题(一)
  • 什么软件可以剪辑音乐?
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 小程序button引导用户授权
  • 小程序测试方案初探
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $refs 、$nextTic、动态组件、name的使用
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (一)VirtualBox安装增强功能
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net FrameWork简介,数组,枚举
  • .net访问oracle数据库性能问题
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET序列化 serializable,反序列化
  • .stream().map与.stream().flatMap的使用
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ 第一章] JavaScript 简史