/**
* @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);