/**
* @describe 生成一个枚举的管理者对象
* @param enums 枚举对象数组
* @param name 声明此对象的名字
* @returns
*/
export function getEnumManager(enums: any[], name?: any) {
const labels = enums.map((item: any) => item.label);
const values = enums.map((item: any) => item.value);
return {
name,
labels,
values,
enums,
getValueByLabel(label: any) {
return values[labels.indexOf(label)];
},
getLabelByValue(value: any) {
return labels[values.indexOf(value)];
},
getItemByValueOrLabel(valueOrLabel: string | number | null) {
let index = values.indexOf(valueOrLabel);
if (index < 0) {
index = labels.indexOf(valueOrLabel as string);
}
return enums[index];
},
};
}
export enum RequireOrderStatus {
'WaitRelease' = 1, // 待发布
'WaitOffer', //待报价
'HaveFinished', //已结束
'HaveEnd', //已终止
'HaveCancel', //已作废
}
export const RequireOrderStatusOptions = [
{ label: '待发布', value: RequireOrderStatus.WaitRelease },
{ label: '待报价', value: RequireOrderStatus.WaitOffer },
{ label: '已结束', value: RequireOrderStatus.HaveFinished },
{ label: '已终止', value: RequireOrderStatus.HaveEnd },
{ label: '已作废', value: RequireOrderStatus.HaveCancel },
];
export const RequireOrderStatusEnum = getEnumManager(RequireOrderStatusOptions);
枚举字典 管理(JS TS 前端)
最新推荐文章于 2024-07-07 05:00:00 发布