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

封装 后台返回列表中不同状态展示不同数据颜色

(注意前提是看你们封装组件接收的直接是color还是style)
第一种方法,
在这里插入图片描述
原本我们正常的接口调取和渲染列表就没啥事了,现在需要优化一下,看着好看点,那我们就封装一下,让其他域的也能调用我们的封装,写个公共组件引用就OK了。

我们以react 项目为例
在我们需要改变状态颜色的页面引入我们的公共颜色配置就搞定了

import { statusMap } from '@/utils';

{
  title: '核销状态',
  align: 'center',
  dataIndex: 'verStateName',
  render: (text, record) => (
    <span
      style={{ color: statusMap.get(`VERIFY_STATUS_${record.verState}`) }} //看你后端返回你的是啥东西,一般都是在查询页面搜索条件里,假设是一个状态,那么这个状态肯定是下拉框的形式,那么他的key名前缀肯定一样,我这里叫VERIFY_STATUS_ 。
    >
      {text}
    </span>
  )
},

在这里插入图片描述
好了我们来封装一下数据
在src 文件夹下创建一个 utils 文件夹在这个文件夹里创建我们想要的js 文件,你自己命名,导出在用的引入就行。我这里叫做 stateMap.tsx文件

/*
  在对应的 颜色数组里面添加自己的编码。格式为 udcCode_udcVal 比如
  GR_STATUS_CL
  GR_STATUS : udcCode
  CL : udcVal

  例子
  import { statusMap } from '@/utils';
  render: (text, record) => (
    <span style={{ color: statusMap.get(`GR_STATUS_${record.docStatus}`) }}>
      {text}
    </span>
  )
*/

/*
udcCode: "PAYMENT_STATE", udcVal: "FAILED", valDesc: "付款失败", es1: ""}
1: {domainCode: "FIN", udcCode: "PAYMENT_STATE", udcVal: "PARTIAL", valDesc: "部分付款成功", es1: ""}
2: {domainCode: "FIN", udcCode: "PAYMENT_STATE", udcVal: "SUCCESS", valDesc: "全部付款成功", es1: ""}
*/

const black = [
  'VERIFY_STATUS_AWAIT', // 待核销
  'APPLY_STATUS_DRAFT', //草稿
];
const green = [
  'RED_STATE_SUCCESS', // 红冲完成
  'VERIFY_STATUS_YES', // 完全核销
  'APPLY_STATUS_COMPLETE', // 审批通过
];
const yellow = [
  'VERIFY_STATUS_PART', // 部分核销
  'APPLY_STATUS_REJECTED', //审批拒绝
];
const red = [
  'APPLY_STATUS_VOID', //作废
];
const blue = [
  'RED_STATE_AWAIT', // 待红冲
  'VERIFY_STATUS_NO', // 无需核销
  'APPLY_STATUS_DOING', // 审批中
];

const statusMap = new Map();

// 黑色 #333333
black.forEach((v) => {
  statusMap.set(v, '#333333');
});
// 绿色 #4FC217
green.forEach((v) => {
  statusMap.set(v, '#4FC217');
});
// 黄色 #FAAB0F
yellow.forEach((v) => {
  statusMap.set(v, '#FAAB0F');
});
// 红色 #FF474A
red.forEach((v) => {
  statusMap.set(v, '#FF474A');
});
// 蓝色 #2A4791
blue.forEach((v) => {
  statusMap.set(v, '#2A4791');
});

export default statusMap;

第二种方法
上代码
需要显示颜色的文件

  {	
    key: "statusName",
    title: "调整单状态",
    dataIndex: "statusName",
    width: 140,
    fixed: "right",
    customRender: (data) => {
      return (
        <a-tag
          showIcon={true}
          showText={true}
          color={setStatus(data.record)}
        >
          {data.record.statusName}
        </a-tag>
      );
    },
  },

记得引入封装的文件

封装的文件
在这里插入图片描述

/* eslint-disable */
// 需要啥颜色自己往里面加就好了。
const setStatus = (record: any) => {
  switch (record.status) {
    case "new": // 新建
      return "red";
    case "adjusted": //待出库
      return "yellow";
    case "tortrn": //待返库
      return "violet";
    case "outing": //出库中
      return "pink";
    case "rtrning": //返库中
      return "blue";
    case "return": //已返库
      return "green";
    default:
      return "black";
  }
};

export default setStatus

搞定,你学废了吗。哈哈

相关文章:

  • javaWeb 在jsp中 使用自定义标签输出访问者IP
  • join 拼接 方法
  • js 获取数组对象中的最后一项展示
  • 使用Git的Push出现rejected - non-fast-forward错误
  • CSS 相邻元素选择器
  • 设计模式——装饰者模式:婚纱照收费的简单实现
  • asp.net C#操作存储过程读取存储过程输出参数值
  • sync_binlog innodb_flush_log_at_trx_commit 浅析
  • 昂靠的由来[本博作者爆料]
  • js 中 空值赋值运算符 的用法
  • node学习系列之简单文件上传
  • 前端 关于汇率的计算
  • mongoDB 文档查询
  • 安装了python报错 或者执行 npm install 时报node-sass的各种相关错误 解决办法
  • 今天打开一个网站 FSO对象实例创建失败
  • [NodeJS] 关于Buffer
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • CentOS 7 防火墙操作
  • Cumulo 的 ClojureScript 模块已经成型
  • Git 使用集
  • Kibana配置logstash,报表一体化
  • Odoo domain写法及运用
  • PAT A1050
  • python学习笔记-类对象的信息
  • Redis学习笔记 - pipline(流水线、管道)
  • redis学习笔记(三):列表、集合、有序集合
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 半理解系列--Promise的进化史
  • 从零开始学习部署
  • 翻译:Hystrix - How To Use
  • 基于web的全景—— Pannellum小试
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 微信小程序--------语音识别(前端自己也能玩)
  • 一起参Ember.js讨论、问答社区。
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 中文输入法与React文本输入框的问题与解决方案
  • Linux权限管理(week1_day5)--技术流ken
  • 数据可视化之下发图实践
  • 选择阿里云数据库HBase版十大理由
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #### go map 底层结构 ####
  • #if #elif #endif
  • (Java)【深基9.例1】选举学生会
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十一)c52学习之旅-动态数码管
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Windows2003安全设置/维护
  • .apk 成为历史!
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Micro Framework初体验
  • .net mvc 获取url中controller和action