lanan-system-vue/src/utils/dict.js
2024-09-20 22:58:32 +08:00

281 lines
9.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Created by 芋道源码
*
* 数据字典工具类
*/
import store from '@/store'
export const DICT_TYPE = {
USER_TYPE: 'user_type',
COMMON_STATUS: 'common_status',
TERMINAL: 'terminal',
// ========== 点亮BASE 模块 ==========
BASE_QUALS_TYPE: 'quals_type',
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX: 'system_user_sex',
SYSTEM_MENU_TYPE: 'system_menu_type',
SYSTEM_ROLE_TYPE: 'system_role_type',
SYSTEM_DATA_SCOPE: 'system_data_scope',
SYSTEM_NOTICE_TYPE: 'system_notice_type',
SYSTEM_LOGIN_TYPE: 'system_login_type',
SYSTEM_LOGIN_RESULT: 'system_login_result',
SYSTEM_SMS_CHANNEL_CODE: 'system_sms_channel_code',
SYSTEM_SMS_TEMPLATE_TYPE: 'system_sms_template_type',
SYSTEM_SMS_SEND_STATUS: 'system_sms_send_status',
SYSTEM_SMS_RECEIVE_STATUS: 'system_sms_receive_status',
SYSTEM_ERROR_CODE_TYPE: 'system_error_code_type',
SYSTEM_OAUTH2_GRANT_TYPE: 'system_oauth2_grant_type',
SYSTEM_MAIL_SEND_STATUS: 'system_mail_send_status',
SYSTEM_NOTIFY_TEMPLATE_TYPE: 'system_notify_template_type',
// ========== INFRA 模块 ==========
INFRA_BOOLEAN_STRING: 'infra_boolean_string',
INFRA_REDIS_TIMEOUT_TYPE: 'infra_redis_timeout_type',
INFRA_JOB_STATUS: 'infra_job_status',
INFRA_JOB_LOG_STATUS: 'infra_job_log_status',
INFRA_API_ERROR_LOG_PROCESS_STATUS: 'infra_api_error_log_process_status',
INFRA_CONFIG_TYPE: 'infra_config_type',
INFRA_CODEGEN_TEMPLATE_TYPE: 'infra_codegen_template_type',
INFRA_CODEGEN_FRONT_TYPE: 'infra_codegen_front_type',
INFRA_CODEGEN_SCENE: 'infra_codegen_scene',
INFRA_FILE_STORAGE: 'infra_file_storage',
INFRA_OPERATE_TYPE: 'infra_operate_type',
// ========== BPM 模块 ==========
BPM_MODEL_CATEGORY: 'bpm_model_category',
BPM_MODEL_FORM_TYPE: 'bpm_model_form_type',
BPM_TASK_ASSIGN_RULE_TYPE: 'bpm_task_assign_rule_type',
BPM_PROCESS_INSTANCE_STATUS: 'bpm_process_instance_status',
BPM_PROCESS_INSTANCE_RESULT: 'bpm_process_instance_result',
BPM_TASK_ASSIGN_SCRIPT: 'bpm_task_assign_script',
BPM_OA_LEAVE_TYPE: 'bpm_oa_leave_type',
// ========== PAY 模块 ==========
PAY_CHANNEL_WECHAT_VERSION: 'pay_channel_wechat_version', // 微信渠道版本
PAY_CHANNEL_CODE: 'pay_channel_code', // 支付渠道编码类型
PAY_ORDER_STATUS: 'pay_order_status', // 商户支付订单状态
PAY_REFUND_STATUS: 'pay_refund_status', // 退款订单状态
PAY_NOTIFY_STATUS: 'pay_notify_status', // 商户支付回调状态
PAY_NOTIFY_TYPE: 'pay_notify_type', // 商户支付回调状态
PAY_TYPE: 'pay_type', // 商户支付回调状态
// ========== MP 模块 ==========
MP_AUTO_REPLY_REQUEST_MATCH: 'mp_auto_reply_request_match', // 自动回复请求匹配类型
MP_MESSAGE_TYPE: 'mp_message_type', // 消息类型
// ========== MALL - PRODUCT 模块 ==========
PRODUCT_SPU_STATUS: 'product_spu_status', // 商品 SPU 状态
// ========== MALL - ORDER 模块 ==========
TRADE_AFTER_SALE_STATUS: 'trade_after_sale_status', // 售后 - 状态
TRADE_AFTER_SALE_WAY: 'trade_after_sale_way', // 售后 - 方式
TRADE_AFTER_SALE_TYPE: 'trade_after_sale_type', // 售后 - 类型
TRADE_ORDER_TYPE: 'trade_order_type', // 订单 - 类型
TRADE_ORDER_STATUS: 'trade_order_status', // 订单 - 状态
TRADE_ORDER_ITEM_AFTER_SALE_STATUS: 'trade_order_item_after_sale_status', // 订单项 - 售后状态
// ========== MALL - PROMOTION 模块 ==========
PROMOTION_DISCOUNT_TYPE: 'promotion_discount_type', // 优惠类型
PROMOTION_PRODUCT_SCOPE: 'promotion_product_scope', // 营销的商品范围
PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE: 'promotion_coupon_template_validity_type', // 优惠劵模板的有限期类型
PROMOTION_COUPON_STATUS: 'promotion_coupon_status', // 优惠劵的状态
PROMOTION_COUPON_TAKE_TYPE: 'promotion_coupon_take_type', // 优惠劵的领取方式
PROMOTION_ACTIVITY_STATUS: 'promotion_activity_status', // 优惠活动的状态
PROMOTION_CONDITION_TYPE: 'promotion_condition_type', // 营销的条件类型枚举
// ==========base模块 ==========
//客户类型字典编码
DICT_CUS_TYPE : "cus_type",
//客户初始来源字典编码
DICT_CUS_DATA_FROM : 'cus_data_from',
//业务分类字典编码
DICT_CUS_BUSI_TYPE : 'cus_busi_type',
//客户注册方式字典编码
DICT_SIGN_TYPE : 'cus_sign_type',
//性别
DICT_SYS_USER_SEX : 'system_user_sex',
//客户状态
DICT_CUS_INFO_STATUS : 'cus_info_status',
//推广渠道
PROMOTION_CHANNEL : 'promotion_channel',
//用户类型
SYSTEM_USER_TYPE : 'system_user_type',
// ------- carMain模块 -------
//车辆性质
DICT_CAR_NATURE : 'car_nature',
//车辆类别
DICT_CAR_CATEGORY : 'car_category',
//品牌类型
DICT_BRAND_TYPE : 'brand_type',
//标签样式
DICT_BASE_LABEL_TYPE : 'base_label_type',
//业务分类
DICT_BASE_LABEL_BUSI_TYPE : 'label_busi_type',
//合同模板类型
DICT_BASE_CONT_TEMP_TYPE : 'cont_temp_type',
//合同使用场景
DICT_BASE_CONT_TEMP_USE : 'cont_temp_use',
//合同是否有效
DICT_BASE_CONT_IS_VALID : 'cont_is_valid',
// ------- 企业管理模块 -------
// 员工学历
COMPANY_STAFF_EDU: 'company_staff_edu',
// 员工工作交接状态
STAFF_CHANGE_STATUS: 'staff_change_status',
// 员工工作交接类型
STAFF_CHANGE_TYPE: 'staff_change_type',
// ------- 资产管理模块 -------
//资产处置方式
COMPANY_DEAL_WAY: 'company_deal_way',
//资产处置变动类型
PROPERTY_DATA_TYPE: 'property_data_type',
//资产状态
COMPANY_PROP_STATUS: 'company_prop_status',
//存放类型
COMPANY_DEPOSIT_TYPE: 'company_deposit_type',
//时间周期字典
CYCLE_DICT : 'cycle_dict',
//资产分类
COMPANY_PROPERTY_CATG: 'company_property_catg',
// 资产取得方式
PROPERTY_GET_WAY : 'property_get_way',
COMPANY_COST_TYPE: 'company_cost_type',
// 救援车车型
JYC_TYPE : 'jyc_type',
Drive_Dialy : 'drive_dialy',
Jx_report_state : 'jx_report_state',
Evaluate_type : 'evaluate_type',
Drive_course_subject : 'drive_course_subject',
Drive_card_type : 'drive_card_type',
File_type : 'file_type',
Cource_type : 'cource_type',
Car_blong : 'car_blong',
// 车牌颜色
CAR_LICENSE_COLOR: 'car_license_color',
// 车辆使用性质
CAR_USE_NATURE : 'car_use_nature',
// 救援类型
DLJY_TYPE: 'dljy_type',
// 收费类型
FEE_TYPE: 'fee_type',
// 救援状态
JY_STATUS: 'jy_status',
// 救援订单状态
JY_ORDER_STATUS: 'jy_order_status',
// 车辆类型
RESCUE_CAR_TYPE: 'rescue_car_type',
// 档案分类
ARCHIVES_TYPE: 'archives_type',
// 档案项分类
ARCHIVES_ITEM_TYPE: 'archives_item_type',
// 扣车状态
RESCUE_STATUS: 'rescue_status',
// ---------维修相关---------
// 单据类型
REPAIR_SO_TYPE: 'repair_so_type',
// 调拨审核状态
REPAIR_ST_STATUS: 'repair_st_status',
// 维修类型
REPAIR_TYPE: 'repair_type',
// 维修工单支付方式
REPAIR_PAY_TYPE: 'repair_pay_type',
// 维修子项状态
REPAIR_ITEM_STATUS: 'repair_item_status',
// 工单类型
REPAIR_TICKETS_TYPE: 'repair_tickets_type',
// 维修工单子项类型
REPAIR_TI_TYPE: 'repair_ti_type',
// 采购单类型
REPAIR_PURCHASE_TYPE: 'repair_purchase_type',
// 采购单\领料单状态
REPAIR_SO_STATUS: 'repair_so_status',
// 维修旧件处理方式
REPAIR_PART_DISPOSAL: 'repair_part_disposal',
//单位
REPAIR_UNIT: 'repair_unit',
//配件属性
REPAIR_WARES_ATTRIBUTE: 'wares_attribute',
//配件来源
REPAIR_WARES_DATA_FORM: 'wares_data_form',
// ---------会员相关---------member_coupon_typemember_coupon_out_rulemember_carmember_active
//卡券类型
MEMBER_COUPON_TYPE:"member_coupon_type",
//核销规则
MEMBER_COUPON_OUT_RULE:"member_coupon_out_rule",
//适用车型
MEMBER_CAR:"member_car",
//活动类型
MEMBER_ACTIVE:"member_active",
//规则
BALANCE_CHANGE_RULE:"balance_change_rule",
//主体
BALANCE_CHANGE_MAIN:"balance_change_main",
//类型
BALANCE_CHANGE_TYPE:"balance_change_type",
}
/**
* 获取 dictType 对应的数据字典数组
*
* @param dictType 数据类型
* @returns {*|Array} 数据字典数组
*/
export function getDictDatas(dictType) {
return store.getters.dict_datas[dictType] || []
}
/**
* 获取 dictType 对应的数据字典数组
*
* @param dictType 数据类型
* @param values 数组、单个元素
* @returns {*|Array} 数据字典数组
*/
export function getDictDatas2(dictType, values) {
if (values === undefined) {
return [];
}
// 如果是单个元素,则转换成数组
if (!Array.isArray(values)) {
values = [this.value];
}
// 获得字典数据
const results = [];
for (const value of values) {
const dict = getDictData(dictType, value);
if (dict) {
results.push(dict);
}
}
return results;
}
export function getDictData(dictType, value) {
// 获取 dictType 对应的数据字典数组
const dictDatas = getDictDatas(dictType)
if (!dictDatas || dictDatas.length === 0) {
return ''
}
// 获取 value 对应的展示名
value = value + '' // 强制转换成字符串,因为 DictData 小类数值,是字符串
for (const dictData of dictDatas) {
if (dictData.value === value) {
return dictData;
}
}
return undefined
}
export function getDictDataLabel(dictType, value) {
const dict = getDictData(dictType, value);
return dict ? dict.label : '';
}