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

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

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

  • 网络推广与传统媒介推广对比(网络推广与传统促销的区别与联系)

    网络推广与传统媒介推广对比(网络推广与传统促销的区别与联系)

  • vivoY77是曲面屏吗(vivos7曲面屏)

    vivoY77是曲面屏吗(vivos7曲面屏)

  • magicbook电脑是什么牌子(magicbook质量好吗)

    magicbook电脑是什么牌子(magicbook质量好吗)

  • 电脑慢怎么处理(电脑慢怎么办电脑慢怎么处理)

    电脑慢怎么处理(电脑慢怎么办电脑慢怎么处理)

  • 华为小艺如何连续对话(华为小艺如何连接喜马拉雅)

    华为小艺如何连续对话(华为小艺如何连接喜马拉雅)

  • 抖音添加小黄车需要什么条件(抖音添加小黄车流程)

    抖音添加小黄车需要什么条件(抖音添加小黄车流程)

  • 拼多多里待支付是什么情况(拼多多里待支付是什么意思)

    拼多多里待支付是什么情况(拼多多里待支付是什么意思)

  • 可以作为微机输入设备的是什么(可以作为微机输入)

    可以作为微机输入设备的是什么(可以作为微机输入)

  • 蚂蚁森林收能量能干啥(蚂蚁森林收能量有什么用)

    蚂蚁森林收能量能干啥(蚂蚁森林收能量有什么用)

  • 怎么取消修订模式(怎么取消修订模式手机)

    怎么取消修订模式(怎么取消修订模式手机)

  • 通常所说的裸机指的是(通常所说裸机包括)

    通常所说的裸机指的是(通常所说裸机包括)

  • 照片隔空投送失败是为什么(照片隔空投送失败储存空间不足照片还在吗)

    照片隔空投送失败是为什么(照片隔空投送失败储存空间不足照片还在吗)

  • 电脑需要每天关机吗(电脑需要每天关机重启吗)

    电脑需要每天关机吗(电脑需要每天关机重启吗)

  • ipad一直充电会怎样(iPad一直充电会起火吗)

    ipad一直充电会怎样(iPad一直充电会起火吗)

  • 为什么抖音打开看不了(为什么抖音打开是黑屏)

    为什么抖音打开看不了(为什么抖音打开是黑屏)

  • 手机屏幕点不动是怎么回事(手机屏幕点不动怎么强制关机)

    手机屏幕点不动是怎么回事(手机屏幕点不动怎么强制关机)

  • z370和z390主板区别(z370和z390主板区别知乎)

    z370和z390主板区别(z370和z390主板区别知乎)

  • 微信不能识别二维码是怎么回事(微信不能识别二维码支付)

    微信不能识别二维码是怎么回事(微信不能识别二维码支付)

  • 苹果x无线充电怎么开启(苹果x无线充电多少w)

    苹果x无线充电怎么开启(苹果x无线充电多少w)

  • oppo手机gps设置在哪(oppo手机GPS设置那里找)

    oppo手机gps设置在哪(oppo手机GPS设置那里找)

  • word怎么删除框线(Word怎么删除框框)

    word怎么删除框线(Word怎么删除框框)

  • 华为mate30充电器型号(华为mate30充电器能用66w或100w的吗)

    华为mate30充电器型号(华为mate30充电器能用66w或100w的吗)

  • 苹果7p基带坏了能修吗(苹果7p基带坏了激活教程)

    苹果7p基带坏了能修吗(苹果7p基带坏了激活教程)

  • 拆了塑封还能退货吗(拆封了商品塑封不给退货)

    拆了塑封还能退货吗(拆封了商品塑封不给退货)

  • wps打印区域怎么放大(wps打印区域怎么设置)

    wps打印区域怎么放大(wps打印区域怎么设置)

  • xr前置摄像头模糊(xr前置摄像头模糊怎么改善)

    xr前置摄像头模糊(xr前置摄像头模糊怎么改善)

  • p30 pro能不能贴膜(p30 pro手机贴膜教程)

    p30 pro能不能贴膜(p30 pro手机贴膜教程)

  • Dgservice.exe是什么进程 无法被结束的驱动精灵后门程序(dgservice.exe是什么文件)

    Dgservice.exe是什么进程 无法被结束的驱动精灵后门程序(dgservice.exe是什么文件)

  • 【Python】Streamlit库学习:一款好用的Web框架(python stream模块)

    【Python】Streamlit库学习:一款好用的Web框架(python stream模块)

  • 个人所得税退还是不退好
  • 金税盘锁死日期是16号,16号能清卡吗
  • 股东无偿借款给公司需要交税吗
  • 不动产进项税额抵扣最新通知2023
  • 母公司收购少数股东股权,之前的利润母公司不享有
  • 应计未计成本税前扣除年限
  • 5.0车船税和交强险一年多少钱
  • 金税盘和税控盘和ukey
  • 增值税加计抵减账务处理
  • 人力资源外包服务收费标准
  • 融资性售后回租按什么缴纳增值税
  • 无偿取得票据的持票人不享有追索权
  • 宣传活动物资
  • 其他应付转到其他应收
  • 2020年计提印花税怎么做账
  • 如何备份电脑系统到另外一个硬盘
  • 关闭445端口方法命令
  • w7防火怎么开
  • php类型判断
  • 财务费用利息收入怎么结转
  • .net core 开发web
  • 赤狐,荷兰 (© Wim Weenink/Minden Pictures)
  • 收到业绩补偿会扣税吗
  • phpstudy删除
  • 月末结转本年利润吗
  • 发票 技术服务
  • 什么是完税证明?完税证明丢了怎么办公司
  • 个税申报系统升级要多久
  • 如何扣除企业接单费用
  • 增值税差异调整
  • 给客户维修设备更换配件怎么开票
  • 100%控股权什么意思
  • 织梦如何使用
  • 费用票有什么用处
  • 预算外财政支出
  • 集团公司一般怎么称呼
  • 基本户和一般户可以互相转账吗
  • 拍卖车牌收入需要缴纳什么税
  • 其他所得
  • 增值税普通发票和专用发票有什么区别
  • 公司注册资金认缴期限
  • 销售退回跨年度的会计分录
  • 增值税普票没有发票章可以吗
  • 应收账款收不回来
  • 增值税申报表里期初未缴税额是什么意思
  • 收据可以入账吗,符合税法规定吗
  • 发票什么情况下可以作废
  • 按次缴纳的个人所得税
  • 出售投资性房地产的收入计入什么科目
  • 持有至到期投资是债权投资吗
  • 收到工程款怎么入账
  • 个人保险发票能做账吗
  • 在建工程进项税额抵扣规定
  • 季度平均人数怎么算出来的
  • 公司账本需要保留几年
  • 对公帐户发票金额是什么
  • 投出业务会计分录
  • windows预览版
  • windowsandbox
  • centos chrony
  • 进程rundll32停止工作
  • win7系统怎么关闭放大镜?
  • win7系统如何设置息屏
  • Win10 Mobile首个RS2预览版14905快速版今日开始推送
  • win8软件安装
  • win8图标大小怎么调
  • node.js报错
  • vue路由router
  • python set集合取值
  • python颜色表
  • shell命令怎么用
  • js文本框只能输入字母
  • wordpress 0day
  • jquery中的children
  • 财政票据和税务票据的法律效力一样吗
  • 资本公积如何转增股本的流程
  • 书画作品赠送仪式
  • 杭州没有户口可以上幼儿园吗
  • 张某每月从单位取得工资15000
  • 北京朝阳区国税局时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设