Files
wwjcloud/src/core/common/enums/channel-dict.enum.ts

136 lines
3.1 KiB
TypeScript
Raw Normal View History

/**
* ChannelDict
*
*/
export enum ChannelDictEnum {
// 状态枚举
STATUS_ACTIVE = 'active',
STATUS_INACTIVE = 'inactive',
STATUS_PENDING = 'pending',
STATUS_DELETED = 'deleted',
// 类型枚举
TYPE_NORMAL = 'normal',
TYPE_PREMIUM = 'premium',
TYPE_VIP = 'vip',
// 级别枚举
LEVEL_LOW = 1,
LEVEL_MEDIUM = 2,
LEVEL_HIGH = 3,
LEVEL_CRITICAL = 4,
}
/**
* ChannelDict
*/
export const channelDictDict = {
// 状态映射
status: {
[ChannelDictEnum.STATUS_ACTIVE]: '激活',
[ChannelDictEnum.STATUS_INACTIVE]: '未激活',
[ChannelDictEnum.STATUS_PENDING]: '待处理',
[ChannelDictEnum.STATUS_DELETED]: '已删除',
},
// 类型映射
type: {
[ChannelDictEnum.TYPE_NORMAL]: '普通',
[ChannelDictEnum.TYPE_PREMIUM]: '高级',
[ChannelDictEnum.TYPE_VIP]: 'VIP',
},
// 级别映射
level: {
[ChannelDictEnum.LEVEL_LOW]: '低',
[ChannelDictEnum.LEVEL_MEDIUM]: '中',
[ChannelDictEnum.LEVEL_HIGH]: '高',
[ChannelDictEnum.LEVEL_CRITICAL]: '紧急',
},
} as const;
/**
* ChannelDict
*/
export class ChannelDictEnumUtil {
/**
*
*/
static getStatusText(status: ChannelDictEnum): string {
return (channelDictDict.status as any)[status] || '未知';
}
/**
*
*/
static getTypeText(type: ChannelDictEnum): string {
return (channelDictDict.type as any)[type] || '未知';
}
/**
*
*/
static getLevelText(level: ChannelDictEnum): string {
return (channelDictDict.level as any)[level] || '未知';
}
/**
*
*/
static getStatusOptions(): Array<{ value: string; label: string }> {
return Object.entries(channelDictDict.status).map(([value, label]) => ({
value,
label: label as string,
}));
}
/**
*
*/
static getTypeOptions(): Array<{ value: string; label: string }> {
return Object.entries(channelDictDict.type).map(([value, label]) => ({
value,
label: label as string,
}));
}
/**
*
*/
static getLevelOptions(): Array<{ value: number; label: string }> {
return Object.entries(channelDictDict.level).map(([value, label]) => ({
value: Number(value),
label: label as string,
}));
}
/**
*
*/
static isValidStatus(status: string): boolean {
return Object.values(ChannelDictEnum).includes(status as ChannelDictEnum);
}
/**
*
*/
static isValidType(type: string): boolean {
return Object.values(ChannelDictEnum).includes(type as ChannelDictEnum);
}
/**
*
*/
static isValidLevel(level: number): boolean {
return Object.values(ChannelDictEnum).includes(level as ChannelDictEnum);
}
}
/**
* ChannelDict
*/
export type ChannelDictEnumStatus = keyof typeof channelDictDict.status;
export type ChannelDictEnumType = keyof typeof channelDictDict.type;
export type ChannelDictEnumLevel = keyof typeof channelDictDict.level;