From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/utils/dict.ts | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 251 insertions(+), 0 deletions(-)
diff --git a/src/utils/dict.ts b/src/utils/dict.ts
new file mode 100644
index 0000000..b4f0c58
--- /dev/null
+++ b/src/utils/dict.ts
@@ -0,0 +1,251 @@
+/**
+ * 鏁版嵁瀛楀吀宸ュ叿绫�
+ */
+import { useDictStoreWithOut } from '@/store/modules/dict'
+import { ElementPlusInfoType } from '@/types/elementPlus'
+
+const dictStore = useDictStoreWithOut()
+
+/**
+ * 鑾峰彇 dictType 瀵瑰簲鐨勬暟鎹瓧鍏告暟缁�
+ *
+ * @param dictType 鏁版嵁绫诲瀷
+ * @returns {*|Array} 鏁版嵁瀛楀吀鏁扮粍
+ */
+export interface DictDataType {
+ dictType: string
+ label: string
+ value: string | number | boolean
+ colorType: ElementPlusInfoType | ''
+ cssClass: string
+}
+
+export interface NumberDictDataType extends DictDataType {
+ value: number
+}
+
+export interface StringDictDataType extends DictDataType {
+ value: string
+}
+
+export const getDictOptions = (dictType: string) => {
+ return dictStore.getDictByType(dictType) || []
+}
+
+export const getIntDictOptions = (dictType: string): NumberDictDataType[] => {
+ // 鑾峰緱閫氱敤鐨� DictDataType 鍒楄〃
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ // 杞崲鎴� number 绫诲瀷鐨� NumberDictDataType 绫诲瀷
+ // why 闇�瑕佺壒娈婅浆鎹細閬垮厤 IDEA 鍦� v-for="dict in getIntDictOptions(...)" 鏃讹紝el-option 鐨� key 浼氬憡璀�
+ const dictOption: NumberDictDataType[] = []
+ dictOptions.forEach((dict: DictDataType) => {
+ dictOption.push({
+ ...dict,
+ value: parseInt(dict.value + '')
+ })
+ })
+ return dictOption
+}
+
+export const getStrDictOptions = (dictType: string) => {
+ // 鑾峰緱閫氱敤鐨� DictDataType 鍒楄〃
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ // 杞崲鎴� string 绫诲瀷鐨� StringDictDataType 绫诲瀷
+ // why 闇�瑕佺壒娈婅浆鎹細閬垮厤 IDEA 鍦� v-for="dict in getStrDictOptions(...)" 鏃讹紝el-option 鐨� key 浼氬憡璀�
+ const dictOption: StringDictDataType[] = []
+ dictOptions.forEach((dict: DictDataType) => {
+ dictOption.push({
+ ...dict,
+ value: dict.value + ''
+ })
+ })
+ return dictOption
+}
+
+export const getBoolDictOptions = (dictType: string) => {
+ const dictOption: DictDataType[] = []
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ dictOptions.forEach((dict: DictDataType) => {
+ dictOption.push({
+ ...dict,
+ value: dict.value + '' === 'true'
+ })
+ })
+ return dictOption
+}
+
+/**
+ * 鑾峰彇鎸囧畾瀛楀吀绫诲瀷鐨勬寚瀹氬�煎搴旂殑瀛楀吀瀵硅薄
+ * @param dictType 瀛楀吀绫诲瀷
+ * @param value 瀛楀吀鍊�
+ * @return DictDataType 瀛楀吀瀵硅薄
+ */
+export const getDictObj = (dictType: string, value: any): DictDataType | undefined => {
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ for (const dict of dictOptions) {
+ if (dict.value === value + '') {
+ return dict
+ }
+ }
+}
+
+/**
+ * 鑾峰緱瀛楀吀鏁版嵁鐨勬枃鏈睍绀�
+ *
+ * @param dictType 瀛楀吀绫诲瀷
+ * @param value 瀛楀吀鏁版嵁鐨勫��
+ * @return 瀛楀吀鍚嶇О
+ */
+export const getDictLabel = (dictType: string, value: any): string => {
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ const dictLabel = ref('')
+ dictOptions.forEach((dict: DictDataType) => {
+ if (dict.value === value + '') {
+ dictLabel.value = dict.label
+ }
+ })
+ return dictLabel.value
+}
+
+export enum DICT_TYPE {
+ USER_TYPE = 'user_type',
+ COMMON_STATUS = 'common_status',
+ TERMINAL = 'terminal', // 缁堢
+ DATE_INTERVAL = 'date_interval', // 鏁版嵁闂撮殧
+
+ // ========== 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_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type',
+ SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status',
+ SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type',
+ SYSTEM_SOCIAL_TYPE = 'system_social_type',
+
+ // ========== INFRA 妯″潡 ==========
+ INFRA_BOOLEAN_STRING = 'infra_boolean_string',
+ 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_TYPE = 'bpm_model_type',
+ BPM_MODEL_FORM_TYPE = 'bpm_model_form_type',
+ BPM_TASK_CANDIDATE_STRATEGY = 'bpm_task_candidate_strategy',
+ BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status',
+ BPM_TASK_STATUS = 'bpm_task_status',
+ BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type',
+ BPM_PROCESS_LISTENER_TYPE = 'bpm_process_listener_type',
+ BPM_PROCESS_LISTENER_VALUE_TYPE = 'bpm_process_listener_value_type',
+
+ // ========== PAY 妯″潡 ==========
+ 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_TRANSFER_STATUS = 'pay_transfer_status', // 杞处璁㈠崟鐘舵��
+
+ // ========== MP 妯″潡 ==========
+ MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 鑷姩鍥炲璇锋眰鍖归厤绫诲瀷
+ MP_MESSAGE_TYPE = 'mp_message_type', // 娑堟伅绫诲瀷
+
+ // ========== Member 浼氬憳妯″潡 ==========
+ MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type', // 绉垎鐨勪笟鍔$被鍨�
+ MEMBER_EXPERIENCE_BIZ_TYPE = 'member_experience_biz_type', // 浼氬憳缁忛獙涓氬姟绫诲瀷
+
+ // ========== MALL - 鍟嗗搧妯″潡 ==========
+ PRODUCT_SPU_STATUS = 'product_spu_status', //鍟嗗搧鐘舵��
+
+ // ========== MALL - 浜ゆ槗妯″潡 ==========
+ EXPRESS_CHARGE_MODE = 'trade_delivery_express_charge_mode', //蹇�掔殑璁¤垂鏂瑰紡
+ 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', // 璁㈠崟椤� - 鍞悗鐘舵��
+ TRADE_DELIVERY_TYPE = 'trade_delivery_type', // 閰嶉�佹柟寮�
+ BROKERAGE_ENABLED_CONDITION = 'brokerage_enabled_condition', // 鍒嗕剑妯″紡
+ BROKERAGE_BIND_MODE = 'brokerage_bind_mode', // 鍒嗛攢鍏崇郴缁戝畾妯″紡
+ BROKERAGE_BANK_NAME = 'brokerage_bank_name', // 浣i噾鎻愮幇閾惰
+ BROKERAGE_WITHDRAW_TYPE = 'brokerage_withdraw_type', // 浣i噾鎻愮幇绫诲瀷
+ BROKERAGE_RECORD_BIZ_TYPE = 'brokerage_record_biz_type', // 浣i噾涓氬姟绫诲瀷
+ BROKERAGE_RECORD_STATUS = 'brokerage_record_status', // 浣i噾鐘舵��
+ BROKERAGE_WITHDRAW_STATUS = 'brokerage_withdraw_status', // 浣i噾鎻愮幇鐘舵��
+
+ // ========== MALL - 钀ラ攢妯″潡 ==========
+ 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_CONDITION_TYPE = 'promotion_condition_type', // 钀ラ攢鐨勬潯浠剁被鍨嬫灇涓�
+ PROMOTION_BARGAIN_RECORD_STATUS = 'promotion_bargain_record_status', // 鐮嶄环璁板綍鐨勭姸鎬�
+ PROMOTION_COMBINATION_RECORD_STATUS = 'promotion_combination_record_status', // 鎷煎洟璁板綍鐨勭姸鎬�
+ PROMOTION_BANNER_POSITION = 'promotion_banner_position', // banner 瀹氫綅
+
+ // ========== CRM - 瀹㈡埛绠$悊妯″潡 ==========
+ CRM_AUDIT_STATUS = 'crm_audit_status', // CRM 瀹℃壒鐘舵��
+ CRM_BIZ_TYPE = 'crm_biz_type', // CRM 涓氬姟绫诲瀷
+ CRM_BUSINESS_END_STATUS_TYPE = 'crm_business_end_status_type', // CRM 鍟嗘満缁撴潫鐘舵�佺被鍨�
+ CRM_RECEIVABLE_RETURN_TYPE = 'crm_receivable_return_type', // CRM 鍥炴鐨勮繕娆炬柟寮�
+ CRM_CUSTOMER_INDUSTRY = 'crm_customer_industry', // CRM 瀹㈡埛鎵�灞炶涓�
+ CRM_CUSTOMER_LEVEL = 'crm_customer_level', // CRM 瀹㈡埛绾у埆
+ CRM_CUSTOMER_SOURCE = 'crm_customer_source', // CRM 瀹㈡埛鏉ユ簮
+ CRM_PRODUCT_STATUS = 'crm_product_status', // CRM 鍟嗗搧鐘舵��
+ CRM_PERMISSION_LEVEL = 'crm_permission_level', // CRM 鏁版嵁鏉冮檺鐨勭骇鍒�
+ CRM_PRODUCT_UNIT = 'crm_product_unit', // CRM 浜у搧鍗曚綅
+ CRM_FOLLOW_UP_TYPE = 'crm_follow_up_type', // CRM 璺熻繘鏂瑰紡
+
+ // ========== ERP - 浼佷笟璧勬簮璁″垝妯″潡 ==========
+ ERP_AUDIT_STATUS = 'erp_audit_status', // ERP 瀹℃壒鐘舵��
+ ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type', // 搴撳瓨鏄庣粏鐨勪笟鍔$被鍨�
+
+ // ========== AI - 浜哄伐鏅鸿兘妯″潡 ==========
+ AI_PLATFORM = 'ai_platform', // AI 骞冲彴
+ AI_MODEL_TYPE = 'ai_model_type', // AI 妯″瀷绫诲瀷
+ AI_IMAGE_STATUS = 'ai_image_status', // AI 鍥剧墖鐘舵��
+ AI_MUSIC_STATUS = 'ai_music_status', // AI 闊充箰鐘舵��
+ AI_GENERATE_MODE = 'ai_generate_mode', // AI 鐢熸垚妯″紡
+ AI_WRITE_TYPE = 'ai_write_type', // AI 鍐欎綔绫诲瀷
+ AI_WRITE_LENGTH = 'ai_write_length', // AI 鍐欎綔闀垮害
+ AI_WRITE_FORMAT = 'ai_write_format', // AI 鍐欎綔鏍煎紡
+ AI_WRITE_TONE = 'ai_write_tone', // AI 鍐欎綔璇皵
+ AI_WRITE_LANGUAGE = 'ai_write_language', // AI 鍐欎綔璇█
+ AI_MCP_CLIENT_NAME = 'ai_mcp_client_name', // AI MCP Client 鍚嶅瓧
+
+ // ========== IOT - 鐗╄仈缃戞ā鍧� ==========
+ IOT_NET_TYPE = 'iot_net_type', // IOT 鑱旂綉鏂瑰紡
+ IOT_PRODUCT_STATUS = 'iot_product_status', // IOT 浜у搧鐘舵��
+ IOT_PRODUCT_DEVICE_TYPE = 'iot_product_device_type', // IOT 浜у搧璁惧绫诲瀷
+ IOT_CODEC_TYPE = 'iot_codec_type', // IOT 鏁版嵁鏍煎紡锛堢紪瑙g爜鍣ㄧ被鍨嬶級
+ IOT_LOCATION_TYPE = 'iot_location_type', // IOT 瀹氫綅绫诲瀷
+ IOT_DEVICE_STATE = 'iot_device_state', // IOT 璁惧鐘舵��
+ IOT_THING_MODEL_TYPE = 'iot_thing_model_type', // IOT 浜у搧鍔熻兘绫诲瀷
+ IOT_THING_MODEL_UNIT = 'iot_thing_model_unit', // IOT 鐗╂ā鍨嬪崟浣�
+ IOT_RW_TYPE = 'iot_rw_type', // IOT 璇诲啓绫诲瀷
+ // TODO @鑺嬭壙锛氳矊浼艰繖鍑犱釜澶氫簡 _enum 鍚庣紑
+ IOT_DATA_SINK_TYPE_ENUM = 'iot_data_sink_type_enum', // IoT 鏁版嵁娴佽浆鐩殑绫诲瀷
+ IOT_RULE_SCENE_TRIGGER_TYPE_ENUM = 'iot_rule_scene_trigger_type_enum', // IoT 鍦烘櫙娴佽浆鐨勮Е鍙戠被鍨嬫灇涓�
+ IOT_RULE_SCENE_ACTION_TYPE_ENUM = 'iot_rule_scene_action_type_enum', // IoT 瑙勫垯鍦烘櫙鐨勮Е鍙戠被鍨嬫灇涓�
+ IOT_ALERT_LEVEL = 'iot_alert_level', // IoT 鍛婅绾у埆
+ IOT_ALERT_RECEIVE_TYPE = 'iot_alert_receive_type', // IoT 鍛婅鎺ユ敹绫诲瀷
+ IOT_OTA_TASK_DEVICE_SCOPE = 'iot_ota_task_device_scope', // IoT OTA浠诲姟璁惧鑼冨洿
+ IOT_OTA_TASK_STATUS = 'iot_ota_task_status', // IoT OTA 浠诲姟鐘舵��
+ IOT_OTA_TASK_RECORD_STATUS = 'iot_ota_task_record_status' // IoT OTA 璁板綍鐘舵��
+}
--
Gitblit v1.8.0