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

列表某个字段由多个值组成,使用id匹配展示

说明:列表中字段A的值由多个值组成,但是后端返回的是这多个值的id字符串,需要前端拿着多个id组成的字符串去另一个接口数据源匹配展示

列表后端返回多个字符串如下:

sectorName: "1899292545382895618,1907311191514636289,1907311228177047553"

cusType: "4,2",

数据源1(模拟数据):

sectorList: [
    {id:1,name:'测试1'},
    {id:2,name:'测试2'},
    {id:3,name:'测试3'},
    {id:4,name:'测试4'}
],

数据源2(模拟数据):

cusTypeList: [
    {dictKey:1,dictValue:'A'},
    {dictKey:2,dictValue:'B'},
    {dictKey:3,dictValue:'C'},
    {dictKey:4,dictValue:'S'}
],

列表接口请求成功之后匹配方法如下:

        api.querybasicRftTemplateRetrieveList(params).then((res) => {
                if(res.data.data == null){
                    this.tableData = []
                }else{
                    this.tableData = res.data.data.records;
                    this.tablePage.totalElements = res.data.data.total;
                    this.tableData.map((item) => {
                        item.fieldType = String(item.fieldType);
                        // 匹配行业名称
                        if (item.sectorName) {
                            let sectorIdArr = item.sectorName.split(","); // 分割行业 ID
                            item.sectorNameStr = this.sectorList
                                .filter(sector => sectorIdArr.includes(String(sector.id)))
                                .map(sector => sector.name)
                                .join(","); // 拼接成字符串
                        } else {
                            item.sectorNameStr = "";
                        }

                        // 匹配客户类型名称
                        if (item.cusType) {
                            let cusTypeArr = item.cusType.split(","); // 分割客户类型 ID
                            item.cusTypeNameStr = this.cusTypeList
                                .filter(cus => cusTypeArr.includes(String(cus.dictKey)))
                                .map(cus => cus.dictValue)
                                .join(","); // 拼接成字符串
                        } else {
                            item.cusTypeNameStr = "";
                        }
                    })
                    this.getUsersList(this.tableData);
                }
                this.loading = false;
            }).catch(() => {
                this.loading = false;
            })

🔍 代码解析

  1. item.sectorName.split(",")

    • sectorName(字符串 "1,2,3")拆分为数组 ["1", "2", "3"]

  2. this.sectorList.filter(sector => sectorIdArr.includes(String(sector.id)))

    • 过滤 sectorList,只保留 idsectorIdArr 里的项。

  3. .map(sector => sector.name).join(",")

    • 提取 name 并用 连接成字符串。

客户类型 cusTypeNames 处理逻辑类似。

列表直接使用:sectorNameStr 字段渲染即可

效果如下:

至此完成!!!

测试有效!!!感谢支持!!!

http://www.dtcms.com/a/109428.html

相关文章:

  • Angular 项目 PDF 批注插件库在线版 API 示例教程
  • 儿童语义认知功能磁共振成像研究的元分析
  • Python+Playwright自动化测试-1-环境准备与搭建
  • 【爬虫开发】爬虫开发从0到1全知识教程第14篇:scrapy爬虫框架,介绍【附代码文档】
  • [原创](Modern C++)现代C++的关键性概念: 什么是左值?
  • 运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)
  • 17、Swift框架微调实战(2)-QWQ-32B LORA微调cot数据集
  • 加密解密工具箱 - 专业的在线加密解密工具
  • 19-元素显示模式及浮动(CSS3)
  • 3D模型给可视化大屏带来了哪些创新,都涉及到哪些技术栈。
  • c#递规获取指定目录下的所有文件
  • C++Cherno 学习笔记day15 [57]-[60] 静态数组、函数指针、lambda、using namespace std
  • DataX实战教程
  • 【性能优化点滴】odygrd/quill在编译期做了哪些优化
  • AI辅助开发插件
  • PMP中,资源平衡和资源平滑的区别
  • CentOS Linux升级内核kernel方法
  • JSON 对象
  • 【C++11】lambda表达式 可变参数模板 移动构造与移动赋值 包装器
  • 厄瓜多尔主流收单方式:Pago Efectivo支付
  • 【Linux】进程信号的捕捉处理
  • 镜片防雾性能测试仪在自动驾驶与无人机领域的创新应用
  • 虚拟试衣间微信小程序解决方案
  • CSRF跨站请求伪造——入门篇【DVWA靶场low级别writeup】
  • Android学习总结之handler源码级
  • Reactive编程入门:Project Reactor 深度指南
  • 网络:华为数通HCIA学习:IP路由基础
  • vuex自存例子
  • linux_sysctl_fs_file_nr监控项
  • LeetCode刷题 -- 48. 旋转图像