字典值映射后展示

2023-03-22  本文已影响0人  乐宝呗

1、创建枚举字段的管理者对象

// 创建枚举字段的管理者对象
export const = getEnumManager (name, enums)=> {
  const labels = enums.map((item) => item.label);
  const values = enums.map((item) => item.value);
  return {
    name,
    labels,
    values,
    enums,
    getValueByLabel (label) {
      return values[labels.indexOf(label)];
    },
    getLabelByValue (value: any) {
      return labels[values.indexOf(value)];
    },
    getItemByValueOrLabel (number ) {
      let index = values.indexOf(number);
      if (index < 0) {
        index = labels.indexOf(number);
      }
      return enums[index];
    },
  }
}
//  使用
import { getEnumManager } from '@/utils/enums.js';
const orderStatusEnum = getEnumManager('orderStatus', [
  { value: 0, label: '已完成', color: green,
    operation: ['checkDetail', 'download'] },
  { value: 1, label: '待支付', color: orange,
    operation: ['pay', 'cancel'] },
  { value: 2, label: '已取消', color: gray,
    operation: ['checkDetail'] }
]);
...
const tabelData = res.data.map(item => {
  // 将字典值映射为label
  return Object.assign({}, item, {
    label: orderStatusEnum.getLabelByValue(item.orderSataus)
  })
})

链接:https://juejin.cn/post/7193526127573336123

上一篇 下一篇

猜你喜欢

热点阅读