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

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

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

  • vivo截屏有几种方法(vivo普通截屏)

    vivo截屏有几种方法(vivo普通截屏)

  • 支付宝淘宝会员名怎么更改或注销(支付宝淘宝会员名)

    支付宝淘宝会员名怎么更改或注销(支付宝淘宝会员名)

  • vivox70pro怎么消除角标(vivo手机怎样消除)

    vivox70pro怎么消除角标(vivo手机怎样消除)

  • 冒险岛沙漠怎么去(冒险岛沙漠任务攻略)

    冒险岛沙漠怎么去(冒险岛沙漠任务攻略)

  • OPPO Ace2是挖孔屏的吗(oppoace2是挖孔屏吗)

    OPPO Ace2是挖孔屏的吗(oppoace2是挖孔屏吗)

  • OPPO Ace2支持防抖的吗(oppoace2支持防抖吗)

    OPPO Ace2支持防抖的吗(oppoace2支持防抖吗)

  • 抖音获取微信登录失败(抖音获取微信登录的权限在哪里)

    抖音获取微信登录失败(抖音获取微信登录的权限在哪里)

  • ipad视频压缩失败怎么回事(ipad 视频压缩)

    ipad视频压缩失败怎么回事(ipad 视频压缩)

  • 手机硬改什么意思(手机硬改改什么参数)

    手机硬改什么意思(手机硬改改什么参数)

  • 淘宝延长收货时间可以选择吗(淘宝延长收货时间后可申请退款吗?)

    淘宝延长收货时间可以选择吗(淘宝延长收货时间后可申请退款吗?)

  • 手机翘屏会有危险吗(手机翘屏会有危险嘛)

    手机翘屏会有危险吗(手机翘屏会有危险嘛)

  • 华为手机怎么把微信聊天记录转移(华为手机怎么把照片传到电脑上)

    华为手机怎么把微信聊天记录转移(华为手机怎么把照片传到电脑上)

  • 微博评论删除后对方还能收到吗(微博评论删除后还能恢复吗)

    微博评论删除后对方还能收到吗(微博评论删除后还能恢复吗)

  • 苹果手机显示呼叫失败是什么意思(苹果手机显示呼叫失败是什么意思,但是能连网)

    苹果手机显示呼叫失败是什么意思(苹果手机显示呼叫失败是什么意思,但是能连网)

  • 扫一扫黑屏是什么原因(扫一扫黑屏怎么办)

    扫一扫黑屏是什么原因(扫一扫黑屏怎么办)

  • 笔记本电脑第一次开机注意事项(笔记本电脑第一次充电需要注意什么)

    笔记本电脑第一次开机注意事项(笔记本电脑第一次充电需要注意什么)

  • 淘宝的消息怎么一次性删除(淘宝的消息怎么批量删除)

    淘宝的消息怎么一次性删除(淘宝的消息怎么批量删除)

  • ios信任开发者会中毒吗(ios信任开发者会显示吗)

    ios信任开发者会中毒吗(ios信任开发者会显示吗)

  • ios11怎么连接电脑(ip11怎么连接电脑)

    ios11怎么连接电脑(ip11怎么连接电脑)

  • 微信看一看视频如何下载(微信看一看视频怎么下载)

    微信看一看视频如何下载(微信看一看视频怎么下载)

  • vivox21快充是多少w(vivox21快充是多少)

    vivox21快充是多少w(vivox21快充是多少)

  • 快手如何开启ktv房间(快手如何开启别人看我的点赞)

    快手如何开启ktv房间(快手如何开启别人看我的点赞)

  • 联想y9000x什么时候出(联想y9000什么时候出)

    联想y9000x什么时候出(联想y9000什么时候出)

  • win10 pro是什么版本(windows10 pro是什么意思)

    win10 pro是什么版本(windows10 pro是什么意思)

  • wps清除格式在哪(wps的清除格式在哪里)

    wps清除格式在哪(wps的清除格式在哪里)

  • 苹果手机怎么补电代码(苹果手机怎么补充电量)

    苹果手机怎么补电代码(苹果手机怎么补充电量)

  • x27pro和x27的区别(x27pro与x27区别)

    x27pro和x27的区别(x27pro与x27区别)

  • u盘写保护格式化教程(u盘写保护格式化)

    u盘写保护格式化教程(u盘写保护格式化)

  • vue报错:We‘re sorry but doesn‘t work properly without JavaScript enabled. Please enable it to continue(vue was assigned to but)

    vue报错:We‘re sorry but doesn‘t work properly without JavaScript enabled. Please enable it to continue(vue was assigned to but)

  • 小规模纳税人每月不超过10万
  • 已抵扣的进项税发票怎么查询明细
  • 小规模纳税人购车好处
  • 增值税和附加税如何计算
  • 农副产品商贸公司标语
  • 递延所得税资产和递延所得税负债
  • 非限定性净资产相当于本年利润吗
  • 何为金税四期
  • 业务往来中接受礼品道德吗
  • 应付职工薪酬在资产负债表怎么填
  • 没有上市的公司怎么看财务报表
  • 企业所得税税前扣除和不扣除的区别
  • 固定资产采用工作量法计提折旧怎么算
  • 公司购买软件著作权
  • 无形资产账面价值和可收回金额孰低摊销吗
  • 公司电子承兑汇票
  • 挂靠工程支付货款会计分录怎么写?
  • 城建税漏报怎么办
  • 代扣代缴个人所得税现金流计入哪里
  • 企业年报资产状况信息可以不填吗
  • 怎么分辨是否清真食品
  • 购进增值税专用发票怎么填开
  • 影响盈利能力的外部因素
  • 公司注销了是不是就不能用了
  • win10系统怎么永久激活
  • 签发商业承兑汇票计入什么科目
  • 事业单位自建办公用房
  • 一次性付一年的房租要摊销吗
  • php数组有哪几种类型
  • 销项负数发票应该给谁
  • 什么是所得税收入
  • 以旧换新销项税额对企业采取以旧换新方式销售
  • 购买土地前期测量费怎么入账
  • Laravel中七个非常有用但很少人知道的Carbon方法
  • 财务人员如何管控费用支出
  • uniapp支付宝支付开发
  • makefile 编译选项
  • 政府性基金账务处理
  • 报税财务报表一定要填吗
  • 年底应交增值税借方余额怎么处理
  • 营业外收支的账户是什么
  • 帝国cms使用手册
  • cgroup限制内存
  • 印花税申报完成如何缴纳
  • 小规模纳税人劳保用品可以抵扣吗
  • 建筑企业开票都要交税吗
  • mysql怎么实现原子性
  • 印花税减半征收优惠政策2021
  • 免征增值税个税计税依据
  • 工程结算在资产中的作用
  • 制造费用主要核算项目
  • 购入的技术服务作为成本
  • 以现金形式发工资的公司
  • 承兑汇票怎么拿钱
  • mysql的表文件在哪
  • FreeBSD下zfs: failed with error 6错误如何解决?
  • win7控制台怎么打开
  • foxmail反应慢的原因
  • virtualbox虚拟机旋转屏幕
  • macbook触摸板如何点右键
  • 短链接生成app
  • win81无线网络没有了
  • win10系统中哪些软件可以删除
  • linux搭建chia
  • android aidl in out
  • python内置函数open()的参数用来指定打开文本文件
  • cocos2dx官方教程
  • unity-3d
  • Unity3D游戏开发pdf
  • [置顶] 混合、反走样、雾效、多边形偏移
  • shell脚本-p
  • python remote
  • js 表格
  • js如何判断是否有定时器功能并清除
  • 办税服务厅怎么开通扣缴端数据下载
  • 浦发银行企业银行电话
  • 葫芦岛市税务局电话
  • 安徽工作人员出差费用标准
  • 我各位一个关于网上申报增值税所得税的申报流
  • 贵州地税电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设