封装返回类型映射方法

vue3 貌似没有filter方法 所以你就算在写vue2也别用filter了 直接用这种方法吧

// 获取类型映射
const returnType = (list, value, name, code) => {
    for (let i = 0; i < list.length; i++) {
        if (list[i][code] === value) {
            return list[i][name];
        }
    }
};
// 例: 映射表 通常会集中放在一个地方 这里单独拿出示范
const statusList = [
  { label: "低", value: 0 },
  { label: "中", value: 1 },
  { label: "高", value: 2 },
];
// 调用
<template>
    <span>{{ returnType(statusList, scope.record.status, 'label', 'value') }}</span>
</template>

这一阵react也简单写了个方法 其实vue react都是一样用的 先放在这里记录一下

/**
 * 对应label展示
 * @param list 枚举列表 array
 * @param findKey 需要找到的值 array | string
 * @param keyCode list中根据此值查找当前项
 * @param keyName 需要返回展示的字段值
 * @param needJoin 是否需要展示分割
 * @returns array | string
 */
export const mappingRelation = (
  list: any[],
  findKey: number | string | any,
  keyCode: number | string,
  keyName: number | string,
  needJoin: string,
) => {
  let value = null;
  if (Array.isArray(findKey)) {
    value = [];
    let findValue = '';
    findKey.map((keyItem: any) => {
      let hasName = list.some((item) => {
        if (item[keyCode] === keyItem) {
          findValue = item[keyName];
          return true;
        }
      });
      if (!hasName) {
        findValue = '其他';
      }
      value.push(findValue);
    });
  } else {
    let hasName = list.some((item) => {
      if (item[keyCode] === findKey) {
        value = item[keyName];
        return true;
      }
    });
    if (!hasName) {
      value = '其他';
    }
  }
  if (needJoin) {
    return value.join(needJoin);
  }
  return value;
};


mappingRelation(list,  findArr, 'value', 'label', '、'),
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容