位置: 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 转载请保留说明!

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

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

  • 个人所得税定额扣除怎样理解
  • 出库单上面的单位写谁的
  • 城市维护建设税免税
  • 物流辅助服务属于什么费用
  • 2019小规模纳税人税率
  • 个人购买商铺如何缴税
  • 房产税从价计征的计税依据
  • 土地置换账务处理流程
  • 企业收到发要失控发票做进项税额转出如何做税务处理?
  • 社会组织接受捐赠的资金的使用原则
  • 本年度应收账款是否应该加起初
  • 刻章后的发票要打印吗
  • 冲销去年费用
  • 房地产企业增值税税率是多少
  • 增值税普票没有地址电话开户行信息可以吗
  • 连号发票税务风险
  • 水利建设专项收入税
  • 申报表作废后怎么显示的是已申报,不能重新申报
  • 只有进项没有销项怎么报税
  • 商誉摊销法的优缺点
  • 外包的人力费用包括哪些
  • 税务机关代码不能为空怎么解决
  • window10的帮助与支持窗口在哪
  • win10怎么建立多个用户
  • 桃胶多少钱一斤正常
  • 固定资产资产评估
  • 重置edge浏览器设置
  • PHP:iconv_strpos()的用法_iconv函数
  • 隐藏在草丛里
  • 360路由器怎么连接网络
  • 劳务所得和经营所得有啥区别
  • 以前年度少记税金及附加
  • vue的foreach循环
  • 房地产企业预缴增值税如何申报
  • css实现背景图片变透明
  • 资金平衡表的编制方法
  • 债券溢折价摊销
  • 建筑行业销售材料怎么做
  • python concat函数用法
  • mongodb修改命令
  • python中Plotly Express是什么?
  • 土地入固定资产计提折旧吗
  • 加计抵减会计分录其他收益
  • 个税申报子女教育有年龄限制吗
  • MicrosoftSQLserver2014可以卸载吗
  • 注册公司时的注册资金认缴是什么意思
  • 发票抵扣联可以作为凭证吗
  • 认缴 实收资本
  • 房地产公司退房款怎么做账
  • 忘了作废的发票还能用吗
  • 零售行业折扣销售方案
  • 汇算清缴主要检查什么
  • 生产成本直接人工怎么算
  • 收到上年度企业所得税退税怎么做账
  • 公司固定资产明细表
  • 公司转账给其他公司账户
  • 资本公积其他资本公积用途
  • 小规模印花税怎么报
  • 修改远程桌面端口命令是什么
  • ubuntu 16.04 u盘安装
  • 如何禁止mac adobe acrobat联网
  • 如何创建mac系统安装盘
  • ubuntu14.04启动不了
  • centos 查看文件夹
  • win10如何删除右键菜单选项
  • win10如何不升级系统
  • 学习名言警句 励志
  • SDK不兼容Ubuntu64位系统的解决办法!!!
  • 全志科技在国内芯片界地位
  • perl pop push shift unshift实例介绍
  • 酷狗模拟器
  • 创建网元
  • 15个常用的excel函数公式
  • linux中tar
  • shell 整数赋值
  • dos判断变量是否为空
  • linux bash命令详解
  • python中如何去除空格
  • 前端jsonp解决跨域
  • 扣缴个人所得税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设