提交 | 用户 | 时间
|
820397
|
1 |
/** |
H |
2 |
* 数据字典工具类 |
|
3 |
*/ |
|
4 |
import { useDictStoreWithOut } from '@/store/modules/dict' |
|
5 |
import { ElementPlusInfoType } from '@/types/elementPlus' |
|
6 |
|
|
7 |
const dictStore = useDictStoreWithOut() |
|
8 |
|
|
9 |
/** |
|
10 |
* 获取 dictType 对应的数据字典数组 |
|
11 |
* |
|
12 |
* @param dictType 数据类型 |
|
13 |
* @returns {*|Array} 数据字典数组 |
|
14 |
*/ |
|
15 |
export interface DictDataType { |
|
16 |
dictType: string |
|
17 |
label: string |
|
18 |
value: string | number | boolean |
|
19 |
colorType: ElementPlusInfoType | '' |
|
20 |
cssClass: string |
|
21 |
} |
|
22 |
|
|
23 |
export interface NumberDictDataType extends DictDataType { |
|
24 |
value: number |
|
25 |
} |
|
26 |
|
|
27 |
export interface StringDictDataType extends DictDataType { |
|
28 |
value: string |
|
29 |
} |
|
30 |
|
|
31 |
export const getDictOptions = (dictType: string) => { |
|
32 |
return dictStore.getDictByType(dictType) || [] |
|
33 |
} |
|
34 |
|
|
35 |
export const getIntDictOptions = (dictType: string): NumberDictDataType[] => { |
|
36 |
// 获得通用的 DictDataType 列表 |
|
37 |
const dictOptions: DictDataType[] = getDictOptions(dictType) |
|
38 |
// 转换成 number 类型的 NumberDictDataType 类型 |
|
39 |
// why 需要特殊转换:避免 IDEA 在 v-for="dict in getIntDictOptions(...)" 时,el-option 的 key 会告警 |
|
40 |
const dictOption: NumberDictDataType[] = [] |
|
41 |
dictOptions.forEach((dict: DictDataType) => { |
|
42 |
dictOption.push({ |
|
43 |
...dict, |
|
44 |
value: parseInt(dict.value + '') |
|
45 |
}) |
|
46 |
}) |
|
47 |
return dictOption |
|
48 |
} |
|
49 |
|
|
50 |
export const getStrDictOptions = (dictType: string) => { |
|
51 |
// 获得通用的 DictDataType 列表 |
|
52 |
const dictOptions: DictDataType[] = getDictOptions(dictType) |
|
53 |
// 转换成 string 类型的 StringDictDataType 类型 |
|
54 |
// why 需要特殊转换:避免 IDEA 在 v-for="dict in getStrDictOptions(...)" 时,el-option 的 key 会告警 |
|
55 |
const dictOption: StringDictDataType[] = [] |
|
56 |
dictOptions.forEach((dict: DictDataType) => { |
|
57 |
dictOption.push({ |
|
58 |
...dict, |
|
59 |
value: dict.value + '' |
|
60 |
}) |
|
61 |
}) |
|
62 |
return dictOption |
|
63 |
} |
|
64 |
|
|
65 |
export const getBoolDictOptions = (dictType: string) => { |
|
66 |
const dictOption: DictDataType[] = [] |
|
67 |
const dictOptions: DictDataType[] = getDictOptions(dictType) |
|
68 |
dictOptions.forEach((dict: DictDataType) => { |
|
69 |
dictOption.push({ |
|
70 |
...dict, |
|
71 |
value: dict.value + '' === 'true' |
|
72 |
}) |
|
73 |
}) |
|
74 |
return dictOption |
|
75 |
} |
|
76 |
|
|
77 |
/** |
|
78 |
* 获取指定字典类型的指定值对应的字典对象 |
|
79 |
* @param dictType 字典类型 |
|
80 |
* @param value 字典值 |
|
81 |
* @return DictDataType 字典对象 |
|
82 |
*/ |
|
83 |
export const getDictObj = (dictType: string, value: any): DictDataType | undefined => { |
|
84 |
const dictOptions: DictDataType[] = getDictOptions(dictType) |
|
85 |
for (const dict of dictOptions) { |
|
86 |
if (dict.value === value + '') { |
|
87 |
return dict |
|
88 |
} |
|
89 |
} |
|
90 |
} |
|
91 |
|
|
92 |
/** |
|
93 |
* 获得字典数据的文本展示 |
|
94 |
* |
|
95 |
* @param dictType 字典类型 |
|
96 |
* @param value 字典数据的值 |
|
97 |
* @return 字典名称 |
|
98 |
*/ |
|
99 |
export const getDictLabel = (dictType: string, value: any): string => { |
|
100 |
const dictOptions: DictDataType[] = getDictOptions(dictType) |
|
101 |
const dictLabel = ref('') |
|
102 |
dictOptions.forEach((dict: DictDataType) => { |
|
103 |
if (dict.value === value + '') { |
|
104 |
dictLabel.value = dict.label |
|
105 |
} |
|
106 |
}) |
|
107 |
return dictLabel.value |
|
108 |
} |
|
109 |
|
|
110 |
export enum DICT_TYPE { |
|
111 |
USER_TYPE = 'user_type', |
|
112 |
COMMON_STATUS = 'common_status', |
|
113 |
TERMINAL = 'terminal', // 终端 |
|
114 |
DATE_INTERVAL = 'date_interval', // 数据间隔 |
|
115 |
|
|
116 |
// ========== SYSTEM 模块 ========== |
|
117 |
SYSTEM_USER_SEX = 'system_user_sex', |
|
118 |
SYSTEM_MENU_TYPE = 'system_menu_type', |
|
119 |
SYSTEM_ROLE_TYPE = 'system_role_type', |
|
120 |
SYSTEM_DATA_SCOPE = 'system_data_scope', |
|
121 |
SYSTEM_NOTICE_TYPE = 'system_notice_type', |
|
122 |
SYSTEM_LOGIN_TYPE = 'system_login_type', |
|
123 |
SYSTEM_LOGIN_RESULT = 'system_login_result', |
|
124 |
SYSTEM_SMS_CHANNEL_CODE = 'system_sms_channel_code', |
|
125 |
SYSTEM_SMS_TEMPLATE_TYPE = 'system_sms_template_type', |
|
126 |
SYSTEM_SMS_SEND_STATUS = 'system_sms_send_status', |
|
127 |
SYSTEM_SMS_RECEIVE_STATUS = 'system_sms_receive_status', |
|
128 |
SYSTEM_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type', |
|
129 |
SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status', |
|
130 |
SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type', |
|
131 |
SYSTEM_SOCIAL_TYPE = 'system_social_type', |
|
132 |
|
|
133 |
// ========== INFRA 模块 ========== |
|
134 |
INFRA_BOOLEAN_STRING = 'infra_boolean_string', |
|
135 |
INFRA_JOB_STATUS = 'infra_job_status', |
|
136 |
INFRA_JOB_LOG_STATUS = 'infra_job_log_status', |
|
137 |
INFRA_API_ERROR_LOG_PROCESS_STATUS = 'infra_api_error_log_process_status', |
|
138 |
INFRA_CONFIG_TYPE = 'infra_config_type', |
|
139 |
INFRA_CODEGEN_TEMPLATE_TYPE = 'infra_codegen_template_type', |
|
140 |
INFRA_CODEGEN_FRONT_TYPE = 'infra_codegen_front_type', |
|
141 |
INFRA_CODEGEN_SCENE = 'infra_codegen_scene', |
|
142 |
INFRA_FILE_STORAGE = 'infra_file_storage', |
|
143 |
INFRA_OPERATE_TYPE = 'infra_operate_type', |
|
144 |
|
|
145 |
// ========== BPM 模块 ========== |
|
146 |
BPM_MODEL_FORM_TYPE = 'bpm_model_form_type', |
|
147 |
BPM_TASK_CANDIDATE_STRATEGY = 'bpm_task_candidate_strategy', |
|
148 |
BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status', |
|
149 |
BPM_TASK_STATUS = 'bpm_task_status', |
|
150 |
BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type', |
|
151 |
BPM_PROCESS_LISTENER_TYPE = 'bpm_process_listener_type', |
|
152 |
BPM_PROCESS_LISTENER_VALUE_TYPE = 'bpm_process_listener_value_type', |
|
153 |
|
|
154 |
// ========== PAY 模块 ========== |
|
155 |
PAY_CHANNEL_CODE = 'pay_channel_code', // 支付渠道编码类型 |
|
156 |
PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态 |
|
157 |
PAY_REFUND_STATUS = 'pay_refund_status', // 退款订单状态 |
|
158 |
PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态 |
|
159 |
PAY_NOTIFY_TYPE = 'pay_notify_type', // 商户支付回调状态 |
|
160 |
PAY_TRANSFER_STATUS = 'pay_transfer_status', // 转账订单状态 |
|
161 |
PAY_TRANSFER_TYPE = 'pay_transfer_type', // 转账订单状态 |
|
162 |
|
|
163 |
// ========== MP 模块 ========== |
|
164 |
MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 自动回复请求匹配类型 |
|
165 |
MP_MESSAGE_TYPE = 'mp_message_type', // 消息类型 |
|
166 |
|
|
167 |
// ========== Member 会员模块 ========== |
|
168 |
MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type', // 积分的业务类型 |
|
169 |
MEMBER_EXPERIENCE_BIZ_TYPE = 'member_experience_biz_type', // 会员经验业务类型 |
|
170 |
|
|
171 |
// ========== MALL - 商品模块 ========== |
|
172 |
PRODUCT_SPU_STATUS = 'product_spu_status', //商品状态 |
|
173 |
|
|
174 |
// ========== MALL - 交易模块 ========== |
|
175 |
EXPRESS_CHARGE_MODE = 'trade_delivery_express_charge_mode', //快递的计费方式 |
|
176 |
TRADE_AFTER_SALE_STATUS = 'trade_after_sale_status', // 售后 - 状态 |
|
177 |
TRADE_AFTER_SALE_WAY = 'trade_after_sale_way', // 售后 - 方式 |
|
178 |
TRADE_AFTER_SALE_TYPE = 'trade_after_sale_type', // 售后 - 类型 |
|
179 |
TRADE_ORDER_TYPE = 'trade_order_type', // 订单 - 类型 |
|
180 |
TRADE_ORDER_STATUS = 'trade_order_status', // 订单 - 状态 |
|
181 |
TRADE_ORDER_ITEM_AFTER_SALE_STATUS = 'trade_order_item_after_sale_status', // 订单项 - 售后状态 |
|
182 |
TRADE_DELIVERY_TYPE = 'trade_delivery_type', // 配送方式 |
|
183 |
BROKERAGE_ENABLED_CONDITION = 'brokerage_enabled_condition', // 分佣模式 |
|
184 |
BROKERAGE_BIND_MODE = 'brokerage_bind_mode', // 分销关系绑定模式 |
|
185 |
BROKERAGE_BANK_NAME = 'brokerage_bank_name', // 佣金提现银行 |
|
186 |
BROKERAGE_WITHDRAW_TYPE = 'brokerage_withdraw_type', // 佣金提现类型 |
|
187 |
BROKERAGE_RECORD_BIZ_TYPE = 'brokerage_record_biz_type', // 佣金业务类型 |
|
188 |
BROKERAGE_RECORD_STATUS = 'brokerage_record_status', // 佣金状态 |
|
189 |
BROKERAGE_WITHDRAW_STATUS = 'brokerage_withdraw_status', // 佣金提现状态 |
|
190 |
|
|
191 |
// ========== MALL - 营销模块 ========== |
|
192 |
PROMOTION_DISCOUNT_TYPE = 'promotion_discount_type', // 优惠类型 |
|
193 |
PROMOTION_PRODUCT_SCOPE = 'promotion_product_scope', // 营销的商品范围 |
|
194 |
PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE = 'promotion_coupon_template_validity_type', // 优惠劵模板的有限期类型 |
|
195 |
PROMOTION_COUPON_STATUS = 'promotion_coupon_status', // 优惠劵的状态 |
|
196 |
PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type', // 优惠劵的领取方式 |
|
197 |
PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status', // 优惠活动的状态 |
|
198 |
PROMOTION_CONDITION_TYPE = 'promotion_condition_type', // 营销的条件类型枚举 |
|
199 |
PROMOTION_BARGAIN_RECORD_STATUS = 'promotion_bargain_record_status', // 砍价记录的状态 |
|
200 |
PROMOTION_COMBINATION_RECORD_STATUS = 'promotion_combination_record_status', // 拼团记录的状态 |
|
201 |
PROMOTION_BANNER_POSITION = 'promotion_banner_position', // banner 定位 |
|
202 |
|
|
203 |
// ========== CRM - 客户管理模块 ========== |
|
204 |
CRM_AUDIT_STATUS = 'crm_audit_status', // CRM 审批状态 |
|
205 |
CRM_BIZ_TYPE = 'crm_biz_type', // CRM 业务类型 |
|
206 |
CRM_BUSINESS_END_STATUS_TYPE = 'crm_business_end_status_type', // CRM 商机结束状态类型 |
|
207 |
CRM_RECEIVABLE_RETURN_TYPE = 'crm_receivable_return_type', // CRM 回款的还款方式 |
|
208 |
CRM_CUSTOMER_INDUSTRY = 'crm_customer_industry', // CRM 客户所属行业 |
|
209 |
CRM_CUSTOMER_LEVEL = 'crm_customer_level', // CRM 客户级别 |
|
210 |
CRM_CUSTOMER_SOURCE = 'crm_customer_source', // CRM 客户来源 |
|
211 |
CRM_PRODUCT_STATUS = 'crm_product_status', // CRM 商品状态 |
|
212 |
CRM_PERMISSION_LEVEL = 'crm_permission_level', // CRM 数据权限的级别 |
|
213 |
CRM_PRODUCT_UNIT = 'crm_product_unit', // CRM 产品单位 |
|
214 |
CRM_FOLLOW_UP_TYPE = 'crm_follow_up_type', // CRM 跟进方式 |
|
215 |
|
|
216 |
// ========== ERP - 企业资源计划模块 ========== |
|
217 |
ERP_AUDIT_STATUS = 'erp_audit_status', // ERP 审批状态 |
|
218 |
ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type', // 库存明细的业务类型 |
|
219 |
|
|
220 |
// ========== AI - 人工智能模块 ========== |
|
221 |
AI_PLATFORM = 'ai_platform', // AI 平台 |
|
222 |
AI_IMAGE_STATUS = 'ai_image_status', // AI 图片状态 |
|
223 |
AI_MUSIC_STATUS = 'ai_music_status', // AI 音乐状态 |
|
224 |
AI_GENERATE_MODE = 'ai_generate_mode', // AI 生成模式 |
|
225 |
AI_WRITE_TYPE = 'ai_write_type', // AI 写作类型 |
|
226 |
AI_WRITE_LENGTH = 'ai_write_length', // AI 写作长度 |
|
227 |
AI_WRITE_FORMAT = 'ai_write_format', // AI 写作格式 |
|
228 |
AI_WRITE_TONE = 'ai_write_tone', // AI 写作语气 |
6badb7
|
229 |
AI_WRITE_LANGUAGE = 'ai_write_language', // AI 写作语言 |
潘 |
230 |
|
|
231 |
// ========== MODEL - 模型管理模块 ========== |
|
232 |
SCHE_MODEL_TYPE = 'sche_model_type', |
|
233 |
SCHE_MODEL_INVOCATION = 'sche_model_invocation', |
8ea580
|
234 |
SCHE_TRIGGER_METHOD = 'sche_trigger_method', |
9c91ad
|
235 |
MODEL_PARAM_TYPE = 'model_param_type', |
D |
236 |
MODEL_METHOD = 'model_method', |
f87d4e
|
237 |
|
潘 |
238 |
// ========== DATA - 数据平台模块 ========== |
|
239 |
DATA_FIELD_TYPE = 'data_field_type', |
820397
|
240 |
} |