位置: IT常识 - 正文

antd级联选择器(a-cascader)动态加载和动态回显效果实现(antd 级联多选)

编辑:rootadmin
antd级联选择器(a-cascader)动态加载和动态回显效果实现 文章目录1、介绍2、效果图如下图所示:(只实现3层的)3、实现方法(1)层级可单独选择(2)组件使用(3)data数据(4)实现动态加载数据1、 提示:options的数据格式是这样的2、methods方法3、异步加载数据方法4、获取2,3级组织列表(5)编辑回显1、介绍

推荐整理分享antd级联选择器(a-cascader)动态加载和动态回显效果实现(antd 级联多选),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:级联选择器多选,antd级联选择器回显,antd级联选择器获取选中值对象,antd级联选择器多选,antd级联选择器获取选中值对象,antd级联选择器获取选中值对象,antd级联选择器 多选限制数量,antd级联选择器获取选中值对象,内容如对您有帮助,希望把文章链接给更多的朋友!

​ 需要实现级联选择器动态拿到每一层级的数据并显示,同时在编辑数据时弹框回显对应的层级关系。

2、效果图如下图所示:(只实现3层的)

3、实现方法(1)层级可单独选择antd级联选择器(a-cascader)动态加载和动态回显效果实现(antd 级联多选)

​ 给组件添加 :checkStrictly="true" 这个属性就可以实现单独勾选一级、二级、三级组织关系。(官方api没有写)

(2)组件使用

​ 首先先在html里 模态框上写上a-cascader组件

<a-modal v-model="uploadNew" :title="title" :width="800" :footer="null" @cancel="resetForm"> <a-form-model :model="addForm" :label-col="labelCol" :wrapper-col="wrapperCol" ref="addForm" :rules="roleRules"> <a-form-model-item label="所属组织" prop="orgIds"> <a-cascader v-model="addForm['orgIds']" :options="options" change-on-select @change="onChange" :load-data="loadData" :checkStrictly="true" placeholder="选择组织" /> </a-form-model-item> <a-form-model-item :wrapper-col="{ span: 14, offset: 10 }"> <span @click="onSubmit" style="cursor: pointer"> 提交 </span> <span @click="resetForm" style="margin-left: 100px;cursor: pointer"> 取消 </span> </a-form-model-item> </a-form-model> </a-modal>(3)data数据 data() { return { options: [] } },(4)实现动态加载数据

​ 先实现只有动态加载数据的功能(根据官网https://1x.antdv.com/components/cascader-cn/示例即可实现)

1、 提示:options的数据格式是这样的 options: [ { value: 'zhejiang', label: 'Zhejiang', isLeaf: false,//是否叶子节点 children:[] }, { value: 'jiangsu', label: 'Jiangsu', isLeaf: false, }, ],2、methods方法

注意:(初始化时会先获取第一层级的数据)

//获取一级组织 async getOneList(){ try { let par={ parentId:'' } const res = await getOrgOneList(par) this.roleOneList=res.data.data this.roleOneList.forEach(item=>{ let temp={ value:item.id, label:item.orgName, isLeaf:false, } this.options.push(temp) }) } catch (error) { console.log(error) } }, 3、异步加载数据方法 async loadData(selectedOptions) { const targetOption = selectedOptions[selectedOptions.length - 1]; this.levelIndex=selectedOptions.length+1 //点第几级组织,selectedOptions长度就是几,点3级时,没有叶子节点,不会进入这个方法(这里只会等于2,3) targetOption.loading = true; let parentId=targetOption.value//根据父id才能查询子数组 await this.getOrgTwoList(parentId)//这个方法是掉接口,返回2,3级数据,下方有该方法 targetOption.loading = false; if(this.levelIndex<=3){ targetOption.children = this.roleTwoList } this.options = [...this.options]; }, onChange(value) { this.roleCheck=value console.log(value,'sel') },4、获取2,3级组织列表//根据父id获取2,3级组织列表 async getOrgTwoList(id){ try { let par={ parentId:id } const res = await getOrgOneList(par)//掉接口,获取下一层级数据 this.roleTwoList=[] res.data.data.forEach(item=>{ let temp={ value:item.id, label:item.orgName, isLeaf: this.levelIndex==3?true:false//判断是否是叶子节点 } this.roleTwoList.push(temp) }) } catch (error) { console.log(error) } },(5)编辑回显

在上面基础上,实现编辑的时候数据回显

//编辑用户 async editUser(row){ this.addForm=Object.assign({},row) this.addForm.orgIds=row.orgIds.split(',')//数据需要转成数组的格式 for (let i = 0; i < this.addForm.orgIds.length - 1; i++) { await this.getNextList(this.addForm.orgIds[i])//获取下一层级的数据 } this.uploadNew=true//显示弹框 },

方法实现

//根据父id获取下一层级数据 async getNextList (targetOption) { let obj = { parentId: targetOption } const res = await getOrgOneList(obj)//掉接口,获取下一层级数据 const list = res.data.data.map((item) => { // dLevel == 3 时表示是叶子节点 this.$set(item,'isLeaf',item.dLevel == 3) this.$set(item,'value',item.id) this.$set(item,'label',item.orgName) return item }) //初始化时,this.options包含全部第一层级的数据 this.options.forEach((item) => { if (item.children) { item.children.forEach((ite) => { if (ite.value == targetOption ) { this.$set(ite,'children',list) // ite['children'] = list } }) } if (item.value == targetOption) {//数据value值等于父id this.$set(item,'children',list) } }) this.options = [...this.options] },

以上getOrgTwoList和getNextList方法都是根据父id获取下一层级(2,3级)数据,可优化。

本文链接地址:https://www.jiuchutong.com/zhishi/283076.html 转载请保留说明!

上一篇:户外广告位租用费如何在税前扣除?(户外广告位怎么收费)

下一篇:牙痛怎么办,怎么快速止痛(牙痛怎么办怎么治疗)

  • 金立m6开机一直优化(金立手机开机一直在开机界面)

    金立m6开机一直优化(金立手机开机一直在开机界面)

  • p40 pro pro+区别(p40 pro和pro+的区别)

    p40 pro pro+区别(p40 pro和pro+的区别)

  • 小度突然开不了怎么办(小度突然开不了摄像头)

    小度突然开不了怎么办(小度突然开不了摄像头)

  • mt762ch/a是什么型号的手机(mt762ch/a和mt742ch/a)

    mt762ch/a是什么型号的手机(mt762ch/a和mt742ch/a)

  • beats solo2和solo3区别(beats solo2和solo3红色颜色对比)

    beats solo2和solo3区别(beats solo2和solo3红色颜色对比)

  • 主页抖音号可以隐藏吗(抖音号可以切换账号吗)

    主页抖音号可以隐藏吗(抖音号可以切换账号吗)

  • 苹果手机没反应也无法关机(苹果手机没反应了也重启不了)

    苹果手机没反应也无法关机(苹果手机没反应了也重启不了)

  • 笔记本正常工作CPU温度多少(笔记本正常工作时的电流是多少)

    笔记本正常工作CPU温度多少(笔记本正常工作时的电流是多少)

  • 网络打印机总提示脱机(网络打印机总提示缺墨)

    网络打印机总提示脱机(网络打印机总提示缺墨)

  • 手机录屏在微信上发不出去(手机录屏在微信哪里找)

    手机录屏在微信上发不出去(手机录屏在微信哪里找)

  • 喜马拉雅为什么自动停(喜马拉雅为什么自动打开)

    喜马拉雅为什么自动停(喜马拉雅为什么自动打开)

  • 智能剪辑是什么意思(智能剪辑怎么用)

    智能剪辑是什么意思(智能剪辑怎么用)

  • 手机qq怎么打卡(qq里面打卡如何在qq里面打卡)

    手机qq怎么打卡(qq里面打卡如何在qq里面打卡)

  • opporeno有没有无线充电(OPPOReno有没有无线充电)

    opporeno有没有无线充电(OPPOReno有没有无线充电)

  • 小米万象息屏怎么自定义

    小米万象息屏怎么自定义

  • 怎样下载秒懂百科里面的视频(怎样下载秒懂百科小视频)

    怎样下载秒懂百科里面的视频(怎样下载秒懂百科小视频)

  • 如何手动使用免拼卡(如何手动开启免流)

    如何手动使用免拼卡(如何手动开启免流)

  • vivoy93是快充吗(vivoy93是不是快充)

    vivoy93是快充吗(vivoy93是不是快充)

  • 小树pdf如何删除(小树pdf弹窗怎么彻底删除)

    小树pdf如何删除(小树pdf弹窗怎么彻底删除)

  • 共享实时位置怎么修改(共享实时位置怎么关闭)

    共享实时位置怎么修改(共享实时位置怎么关闭)

  • 苹果13系统访问限制在哪里(ios13访问限制在哪)

    苹果13系统访问限制在哪里(ios13访问限制在哪)

  • 手机qq记录如何迁移到新手机(手机qq记录如何导入电脑)

    手机qq记录如何迁移到新手机(手机qq记录如何导入电脑)

  • oppo手机hd1是什么意思怎么取消(oppo手机hd是什么意思)

    oppo手机hd1是什么意思怎么取消(oppo手机hd是什么意思)

  • 华为钱包为什么没有门钥匙(华为钱包为什么一直在额度审批中)

    华为钱包为什么没有门钥匙(华为钱包为什么一直在额度审批中)

  • mate10如何升级9.1(mate10如何升级鸿蒙2.0)

    mate10如何升级9.1(mate10如何升级鸿蒙2.0)

  • k币怎么充值(充k币哪个平台最优惠)

    k币怎么充值(充k币哪个平台最优惠)

  • 机器学习——BP神经网络详细介绍及案例Python代码实现

    机器学习——BP神经网络详细介绍及案例Python代码实现

  • Mac系统下Flutter安装教程(mac配置flutter环境变量)

    Mac系统下Flutter安装教程(mac配置flutter环境变量)

  • 税收的作用是什么
  • 公司房屋修缮账务流程
  • 计入税金及附加的科目
  • 等线支付给劳务派遣单位的工资怎么做账
  • 利息支出可以抵扣吗
  • 金税盘坏了更换需要几天
  • 企业建设项目审批流程
  • 缴纳房产税的计税依据
  • 新准则 开办费
  • 应收票据周转率多少合适
  • 学校捐赠收入需上交吗
  • 小规模纳税人税率3%减按1%
  • 第三方投资入股
  • 公司增值税发票有限额吗
  • 一般纳税人认定书
  • 税局税种认定
  • 关税减免有哪些类型?
  • 企业无偿借款要缴税吗
  • 诊所购药有差价怎么办
  • 存货账实不符的税务风险
  • 退休返聘人员的劳动权益保护
  • 会计实操的重要性有哪些
  • 调出进程管理器
  • windows10如何开启夜间模式
  • 收到政府返还土地款 奖励 土地增值税
  • 国际重复征税的类型及范围
  • 对增值税发票开具方面有何要求?
  • 营改增之前的建筑业税率是多少
  • 生产型企业原材料运费入库单怎么填
  • 制作flash动画步骤
  • mac怎么不能升级系统
  • 工程结算书和竣工结算书
  • php二分查找算法两种方法
  • php语言之面向对象编程 educoder
  • vue中el-dialog
  • 瓜纳华托大学世界排名
  • 预付货款账务处理会计分录
  • php超时限制
  • 如何使用vue
  • 林木苗圃
  • 发票验证校验码为什么只能填6位
  • 其他资本公积如何转出
  • mysql读写分离amoeba
  • 非房地产企业转让建筑物,计提土地增值税时应借记
  • 注册资本印花税最新政策2023年
  • 人工成本的分类是
  • mysql日期和时间类型
  • 纳税人提供不动产经营租赁服务增值税征收管理暂行办法
  • 小规模纳税人专票税率是多少
  • 房地产企业取得政府补助
  • 税务局代开的增值税专票可以红冲吗?
  • 扣除员工餐费怎么做分录
  • 超过诉讼时效的法律后果
  • 个人怎么缴纳五险一金
  • 工程招标费用由谁支付
  • 外汇申报填写什么最简单
  • 汽车销售企业的资产有哪些
  • sql server数据库监控
  • mysql两个表连接
  • centos的版本有哪些
  • windowsxp能用pr吗
  • 苹果的mac系统
  • 借用自带功能给win8.1系统做开始菜单(不仅仅是一个开始按钮)
  • windows10图标显示不出来
  • android app开发中五种常用布局的运用场合
  • shell脚本 定义变量
  • opengl光线跟踪代码
  • vue动态引入模块
  • 详解怎样利用双色球密码选号
  • nodejs require
  • 安卓颜色值代码表
  • js学习教程
  • jQuery Validation Plugin验证插件手动验证
  • Jar mismatch! Fix your dependencies
  • javascript基础笔记
  • JavaScript中的数据类型分哪为两大类?
  • 税务局怎么添加税种
  • 广西电子税务局登陆入口
  • 车位过户需要契税发票吗
  • 报企业增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设