dict.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /**
  2. * Created by 芋道源码
  3. *
  4. * 数据字典工具类
  5. */
  6. import store from "@/store";
  7. export const DICT_TYPE = {
  8. USER_TYPE: "user_type",
  9. COMMON_STATUS: "common_status",
  10. // ========== SYSTEM 模块 ==========
  11. SYSTEM_USER_SEX: "system_user_sex",
  12. SYSTEM_MENU_TYPE: "system_menu_type",
  13. SYSTEM_ROLE_TYPE: "system_role_type",
  14. SYSTEM_DATA_SCOPE: "system_data_scope",
  15. SYSTEM_NOTICE_TYPE: "system_notice_type",
  16. SYSTEM_OPERATE_TYPE: "system_operate_type",
  17. SYSTEM_LOGIN_TYPE: "system_login_type",
  18. SYSTEM_LOGIN_RESULT: "system_login_result",
  19. SYSTEM_SMS_CHANNEL_CODE: "system_sms_channel_code",
  20. SYSTEM_SMS_TEMPLATE_TYPE: "system_sms_template_type",
  21. SYSTEM_SMS_SEND_STATUS: "system_sms_send_status",
  22. SYSTEM_SMS_RECEIVE_STATUS: "system_sms_receive_status",
  23. SYSTEM_ERROR_CODE_TYPE: "system_error_code_type",
  24. SYSTEM_OAUTH2_GRANT_TYPE: "system_oauth2_grant_type",
  25. // ========== INFRA 模块 ==========
  26. INFRA_BOOLEAN_STRING: "infra_boolean_string",
  27. INFRA_REDIS_TIMEOUT_TYPE: "infra_redis_timeout_type",
  28. INFRA_JOB_STATUS: "infra_job_status",
  29. INFRA_JOB_LOG_STATUS: "infra_job_log_status",
  30. INFRA_API_ERROR_LOG_PROCESS_STATUS: "infra_api_error_log_process_status",
  31. INFRA_CONFIG_TYPE: "infra_config_type",
  32. INFRA_CODEGEN_TEMPLATE_TYPE: "infra_codegen_template_type",
  33. INFRA_CODEGEN_SCENE: "infra_codegen_scene",
  34. INFRA_FILE_STORAGE: "infra_file_storage",
  35. // ========== BPM 模块 ==========
  36. BPM_MODEL_CATEGORY: "bpm_model_category",
  37. BPM_MODEL_FORM_TYPE: "bpm_model_form_type",
  38. BPM_TASK_ASSIGN_RULE_TYPE: "bpm_task_assign_rule_type",
  39. BPM_PROCESS_INSTANCE_STATUS: "bpm_process_instance_status",
  40. BPM_PROCESS_INSTANCE_RESULT: "bpm_process_instance_result",
  41. BPM_TASK_ASSIGN_SCRIPT: "bpm_task_assign_script",
  42. BPM_OA_LEAVE_TYPE: "bpm_oa_leave_type",
  43. // ========== PAY 模块 ==========
  44. PAY_CHANNEL_WECHAT_VERSION: "pay_channel_wechat_version", // 微信渠道版本
  45. PAY_CHANNEL_ALIPAY_SIGN_TYPE: "pay_channel_alipay_sign_type", // 支付渠道支付宝算法类型
  46. PAY_CHANNEL_ALIPAY_MODE: "pay_channel_alipay_mode", // 支付宝公钥类型
  47. PAY_CHANNEL_ALIPAY_SERVER_TYPE: "pay_channel_alipay_server_type", // 支付宝网关地址
  48. PAY_CHANNEL_CODE_TYPE: "pay_channel_code_type", // 支付渠道编码类型
  49. PAY_ORDER_NOTIFY_STATUS: "pay_order_notify_status", // 商户支付订单回调状态
  50. PAY_ORDER_STATUS: "pay_order_status", // 商户支付订单状态
  51. PAY_ORDER_REFUND_STATUS: "pay_order_refund_status", // 商户支付订单退款状态
  52. PAY_REFUND_ORDER_STATUS: "pay_refund_order_status", // 退款订单状态
  53. PAY_REFUND_ORDER_TYPE: "pay_refund_order_type", // 退款订单类别
  54. // ========== MALL - PRODUCT 模块 ==========
  55. PRODUCT_SPU_STATUS: "product_spu_status", // 商品 SPU 状态
  56. // ========== MALL - PROMOTION 模块 ==========
  57. PROMOTION_DISCOUNT_TYPE: "promotion_discount_type", // 优惠类型
  58. PROMOTION_PRODUCT_SCOPE: "promotion_product_scope", // 营销的商品范围
  59. PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE: "promotion_coupon_template_validity_type", // 优惠劵模板的有限期类型
  60. PROMOTION_COUPON_STATUS: "promotion_coupon_status", // 优惠劵的状态
  61. PROMOTION_COUPON_TAKE_TYPE: "promotion_coupon_take_type", // 优惠劵的领取方式
  62. PROMOTION_ACTIVITY_STATUS: "promotion_activity_status", // 优惠活动的状态
  63. PROMOTION_CONDITION_TYPE: "promotion_condition_type", // 营销的条件类型枚举
  64. // ========== BACKEND - EMP 模块 ==========
  65. BACKEND_EMP_ORG: "backend_emp_org", // 所属单位
  66. BACKEND_EMP_DWLX: "backend_org_dwlx", // 监管单位类别?
  67. DICT_INSPECT_TYPE: "dict_inspect_type", // 检查项类型
  68. DICT_FIRE_DECIVE_TYPE: "dict_fire_device_type", // 消防设施分类
  69. DICT_IMPORTTANT_ORG_LEVEL: "dict_important_org_level", // 重点单位等级
  70. BACKEND_ORG_TYPE: "company_inspectitem_kind", //单位类型
  71. DENGER_HANDLE: "denger_handle", //隐患处理方式
  72. INSPECTITEM_TYPE: "inspectitem_type", //检查类型
  73. CHECK_FRE: "check_fre", //检查频次
  74. TASK_TYPE: "task_type", //任务类型
  75. TASK_STATUS: "task_status", //任务类型
  76. RECORD_TYPE: "record_type", //记录类型
  77. BACKEND_DET_RESULT: "det_result",//检测维保结果
  78. // ==========移动端 - PAGE 模块 ==========
  79. FPD_TYPE: 'fpd_type', //设备类型
  80. TRAIN_DRILL: 'train_drill', //培训演练类别
  81. BACKEND_ORG_TYPE2: 'backend_org_type', //单位类型
  82. // ==========移动端 - 人员信息模块 ==========
  83. XUE_LI: 'xueli',
  84. // ==========隐患管理模块 ==========
  85. DANGER_TYPE: 'dangerType',
  86. FIRE_WORK_STATUS: "fire_work_status", //动火台账状态
  87. MICROEMPTYPE:"micro_emp_type",
  88. DANGER_RESULT:"danger_result"
  89. // ========== 数据字典映射 =================
  90. };
  91. /**
  92. * 获取 dictType 对应的数据字典数组
  93. *
  94. * @param dictType 数据类型
  95. * @returns {*|Array} 数据字典数组
  96. * 该函数接收一个参数 dictType,表示需要获取的数据字典类型。它会返回对应的数据字典数组,如果找不到则返回空数组。
  97. */
  98. export function getDictDatas(dictType) {
  99. return store.getters.dict[dictType] || [];
  100. }
  101. /**
  102. * 获取 dictType 对应的数据字典数组
  103. *
  104. * @param dictType 数据类型
  105. * @param values 数组、单个元素
  106. * @returns {*|Array} 数据字典数组
  107. */
  108. export function getDictDatas2(dictType, values) {
  109. if (values === undefined) {
  110. return [];
  111. }
  112. // 如果是单个元素,则转换成数组
  113. if (!Array.isArray(values)) {
  114. values = [this.value];
  115. }
  116. // 获得字典数据
  117. const results = [];
  118. for (const value of values) {
  119. const dict = getDictData(dictType, value);
  120. if (dict) {
  121. results.push(dict);
  122. }
  123. }
  124. return results;
  125. }
  126. export function getDictData(dictType, value) {
  127. // 获取 dictType 对应的数据字典数组
  128. const dictDatas = getDictDatas(dictType);
  129. if (!dictDatas || dictDatas.length === 0) {
  130. return "";
  131. }
  132. // 获取 value 对应的展示名
  133. value = value + ""; // 强制转换成字符串,因为 DictData 小类数值,是字符串
  134. for (const dictData of dictDatas) {
  135. if (dictData.value === value) {
  136. return dictData;
  137. }
  138. }
  139. return undefined;
  140. }
  141. export function getDictDataLabel(dictType, value) {
  142. const dict = getDictData(dictType, value);
  143. return dict ? dict.label : "";
  144. }