import Vue from "vue"; import { UseState, USE_STATE } from "./business/use-state.enum"; import { SEX, Sex } from "@/constants/enum/business/sex.enum"; /** * @description: 枚举服务 * @author ChenRui * @date 2020/7/29 18:49 */ class EnumService { private static readonly ENUMS = { [USE_STATE]: UseState, [SEX]: Sex, }; init(): void { // Vue.prototype.$permissions = PermissionsEnum; } get(enumName: string): any { return (EnumService.ENUMS as unknown as any)[enumName]; } getValues(enumName: string): any { const switchEnum = this.get(enumName); if (switchEnum != null) { return Object.keys(switchEnum).map((key: string) => { return switchEnum[key]; }); } return null; } getNameByCode(enumName: string, code: string): any { const switchEnumArr = this.getValues(enumName); if (switchEnumArr != null) { return switchEnumArr.find(function (item: any) { return item.code === code; }); } return null; } } const enumService = new EnumService(); export default enumService;