cloudcc-ccdk 0.9.51 → 0.9.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/lib/ccdk.js +529 -2
- package/lib/ccdk.min.js +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
#### 发布版本:0.9.53
|
|
2
|
+
#### 更新日期:2025-11-17
|
|
3
|
+
* 迭代
|
|
4
|
+
* 修改 dayjsFormat和 elementUIFormat 配置对象结构不一致的问题
|
|
5
|
+
|
|
6
|
+
#### 发布版本:0.9.52
|
|
7
|
+
#### 更新日期:2025-11-14
|
|
8
|
+
* 迭代
|
|
9
|
+
* 增加 CCLocale 用于根据用户 locale 获取对应的日期时间格式
|
|
10
|
+
* CCUser 添加 clearUserInfo 方法用于清理用户数据
|
|
11
|
+
|
|
1
12
|
#### 发布版本:0.9.51
|
|
2
13
|
#### 更新日期:2025-9-3
|
|
3
14
|
* 迭代
|
package/lib/ccdk.js
CHANGED
|
@@ -6,6 +6,7 @@ import Cookies from 'js-cookie';
|
|
|
6
6
|
import Jwt from 'jsonwebtoken';
|
|
7
7
|
import CryptoJS from 'crypto-js';
|
|
8
8
|
import { Message, MessageBox, Notification } from 'element-ui';
|
|
9
|
+
import dayjs from 'dayjs';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* 数据库操作
|
|
@@ -2585,6 +2586,16 @@ function getUserInfo(keyName = USER_INFO) {
|
|
|
2585
2586
|
}
|
|
2586
2587
|
}
|
|
2587
2588
|
|
|
2589
|
+
/**
|
|
2590
|
+
* 清除用户信息
|
|
2591
|
+
* @param {String} keyName 用户信息key名称
|
|
2592
|
+
* @param {String} domain 域名
|
|
2593
|
+
*/
|
|
2594
|
+
function clearUserInfo(keyName = USER_INFO, domain = getDomain()) {
|
|
2595
|
+
Cookies.remove(Crypto.encrypt(keyName), { domain, sameSite: 'Lax' });
|
|
2596
|
+
}
|
|
2597
|
+
|
|
2598
|
+
|
|
2588
2599
|
/**
|
|
2589
2600
|
* 存储用户jwt信息
|
|
2590
2601
|
* @param {String} jwtInfo 用户信息
|
|
@@ -2613,7 +2624,8 @@ var CCUser = /*#__PURE__*/Object.freeze({
|
|
|
2613
2624
|
setUserInfo: setUserInfo,
|
|
2614
2625
|
getUserInfo: getUserInfo,
|
|
2615
2626
|
setUserJwtInfo: setUserJwtInfo,
|
|
2616
|
-
getUserJwtInfo: getUserJwtInfo
|
|
2627
|
+
getUserJwtInfo: getUserJwtInfo,
|
|
2628
|
+
clearUserInfo: clearUserInfo
|
|
2617
2629
|
});
|
|
2618
2630
|
|
|
2619
2631
|
/**
|
|
@@ -2838,7 +2850,522 @@ var CCI18n = /*#__PURE__*/Object.freeze({
|
|
|
2838
2850
|
LocalEnum: LocalEnum
|
|
2839
2851
|
});
|
|
2840
2852
|
|
|
2841
|
-
|
|
2853
|
+
/**
|
|
2854
|
+
* 区域配置模块
|
|
2855
|
+
* 提供用户区域设置的配置映射和初始化功能
|
|
2856
|
+
*/
|
|
2857
|
+
|
|
2858
|
+
const dayjsFormatMap = {
|
|
2859
|
+
// ==================== 英语区域 ====================
|
|
2860
|
+
en_US: {
|
|
2861
|
+
date: "M/D/YYYY",
|
|
2862
|
+
time: "h:mm:ss A",
|
|
2863
|
+
datetime: "M/D/YYYY, h:mm:ss A",
|
|
2864
|
+
},
|
|
2865
|
+
en_GB: {
|
|
2866
|
+
date: "DD/MM/YYYY",
|
|
2867
|
+
time: "HH:mm:ss",
|
|
2868
|
+
datetime: "DD/MM/YYYY, HH:mm:ss",
|
|
2869
|
+
},
|
|
2870
|
+
en_AU: {
|
|
2871
|
+
date: "D/M/YYYY",
|
|
2872
|
+
time: "h:mm:ss A",
|
|
2873
|
+
datetime: "D/M/YYYY, h:mm:ss A",
|
|
2874
|
+
},
|
|
2875
|
+
en_FI: {
|
|
2876
|
+
date: "D.M.YYYY",
|
|
2877
|
+
time: "h:mm:ss A",
|
|
2878
|
+
datetime: "D.M.YYYY, h:mm:ss A",
|
|
2879
|
+
},
|
|
2880
|
+
// ==================== 中文区域 ====================
|
|
2881
|
+
zh_CN: {
|
|
2882
|
+
date: "YYYY/M/D",
|
|
2883
|
+
time: "HH:mm:ss",
|
|
2884
|
+
datetime: "YYYY/M/D, HH:mm:ss",
|
|
2885
|
+
},
|
|
2886
|
+
zh_CN_PINYIN: {
|
|
2887
|
+
date: "YYYY/M/D",
|
|
2888
|
+
time: "HH:mm:ss",
|
|
2889
|
+
datetime: "YYYY/M/D, HH:mm:ss",
|
|
2890
|
+
},
|
|
2891
|
+
// ==================== 荷兰语区域 ====================
|
|
2892
|
+
nl_NL: {
|
|
2893
|
+
date: "DD-MM-YYYY",
|
|
2894
|
+
time: "HH:mm:ss",
|
|
2895
|
+
datetime: "DD-MM-YYYY HH:mm:ss",
|
|
2896
|
+
},
|
|
2897
|
+
// ==================== 波兰语区域 ====================
|
|
2898
|
+
pl_PL: {
|
|
2899
|
+
date: "DD.MM.YYYY",
|
|
2900
|
+
time: "HH:mm:ss",
|
|
2901
|
+
datetime: "DD.MM.YYYY, HH:mm:ss",
|
|
2902
|
+
},
|
|
2903
|
+
// ==================== 塞尔维亚语区域 ====================
|
|
2904
|
+
sr_CS: {
|
|
2905
|
+
date: "D.M.YYYY",
|
|
2906
|
+
time: "HH:mm:ss",
|
|
2907
|
+
datetime: "D.M.YYYY. HH:mm:ss",
|
|
2908
|
+
},
|
|
2909
|
+
sr_RS: {
|
|
2910
|
+
date: "D.M.YYYY",
|
|
2911
|
+
time: "HH:mm:ss",
|
|
2912
|
+
datetime: "D.M.YYYY. HH:mm:ss",
|
|
2913
|
+
},
|
|
2914
|
+
// ==================== 日语区域 ====================
|
|
2915
|
+
ja_JP: {
|
|
2916
|
+
date: "YYYY/MM/DD",
|
|
2917
|
+
time: "HH:mm:ss",
|
|
2918
|
+
datetime: "YYYY/MM/DD HH:mm:ss",
|
|
2919
|
+
},
|
|
2920
|
+
// ==================== 爱沙尼亚语区域 ====================
|
|
2921
|
+
et_EE: {
|
|
2922
|
+
date: "DD.MM.YYYY",
|
|
2923
|
+
time: "HH:mm:ss",
|
|
2924
|
+
datetime: "DD.MM.YYYY HH:mm:ss",
|
|
2925
|
+
},
|
|
2926
|
+
// ==================== 乌克兰语区域 ====================
|
|
2927
|
+
uk_UA: {
|
|
2928
|
+
date: "DD.MM.YYYY",
|
|
2929
|
+
time: "HH:mm:ss",
|
|
2930
|
+
datetime: "DD.MM.YYYY, HH:mm:ss",
|
|
2931
|
+
},
|
|
2932
|
+
// ==================== 斯洛文尼亚语区域 ====================
|
|
2933
|
+
sl_SI: {
|
|
2934
|
+
date: "D.M.YY",
|
|
2935
|
+
time: "HH:mm:ss",
|
|
2936
|
+
datetime: "D.M.YY, HH:mm:ss",
|
|
2937
|
+
},
|
|
2938
|
+
// ==================== 德语区域 ====================
|
|
2939
|
+
de_DE: {
|
|
2940
|
+
date: "DD.MM.YYYY",
|
|
2941
|
+
time: "HH:mm:ss",
|
|
2942
|
+
datetime: "DD.MM.YYYY, HH:mm:ss",
|
|
2943
|
+
},
|
|
2944
|
+
// ==================== 丹麦语区域 ====================
|
|
2945
|
+
da_DK: {
|
|
2946
|
+
date: "DD.MM.YYYY",
|
|
2947
|
+
time: "HH:mm:ss",
|
|
2948
|
+
datetime: "DD.MM.YYYY HH:mm:ss",
|
|
2949
|
+
},
|
|
2950
|
+
// ==================== 匈牙利语区域 ====================
|
|
2951
|
+
hu_HU: {
|
|
2952
|
+
date: "YYYY.MM.DD",
|
|
2953
|
+
time: "HH:mm:ss",
|
|
2954
|
+
datetime: "YYYY.MM.DD. HH:mm:ss",
|
|
2955
|
+
},
|
|
2956
|
+
// ==================== 保加利亚语区域 ====================
|
|
2957
|
+
bg_BG: {
|
|
2958
|
+
date: "DD.MM.YYYY г.",
|
|
2959
|
+
time: "HH:mm:ss ч.",
|
|
2960
|
+
datetime: "DD.MM.YYYY г., HH:mm:ss ч.",
|
|
2961
|
+
},
|
|
2962
|
+
// ==================== 意大利语区域 ====================
|
|
2963
|
+
it_IT: {
|
|
2964
|
+
date: "DD/MM/YYYY",
|
|
2965
|
+
time: "HH:mm:ss",
|
|
2966
|
+
datetime: "DD/MM/YYYY, HH:mm:ss",
|
|
2967
|
+
},
|
|
2968
|
+
};
|
|
2969
|
+
const elementUIFormatMap = {
|
|
2970
|
+
// ==================== 英语区域 ====================
|
|
2971
|
+
en_US: {
|
|
2972
|
+
date: "M/d/yyyy",
|
|
2973
|
+
time: "h:mm:ss A",
|
|
2974
|
+
datetime: "M/d/yyyy h:mm:ss A",
|
|
2975
|
+
},
|
|
2976
|
+
en_GB: {
|
|
2977
|
+
date: "dd/MM/yyyy",
|
|
2978
|
+
time: "HH:mm:ss",
|
|
2979
|
+
datetime: "dd/MM/yyyy HH:mm:ss",
|
|
2980
|
+
},
|
|
2981
|
+
en_AU: {
|
|
2982
|
+
date: "d/M/yyyy",
|
|
2983
|
+
time: "h:mm:ss A",
|
|
2984
|
+
datetime: "d/M/yyyy h:mm:ss A",
|
|
2985
|
+
},
|
|
2986
|
+
en_FI: {
|
|
2987
|
+
date: "d.M.yyyy",
|
|
2988
|
+
time: "h:mm:ss A",
|
|
2989
|
+
datetime: "d.M.yyyy h:mm:ss A",
|
|
2990
|
+
},
|
|
2991
|
+
// ==================== 中文区域 ====================
|
|
2992
|
+
zh_CN: {
|
|
2993
|
+
date: "yyyy/M/d",
|
|
2994
|
+
time: "HH:mm:ss",
|
|
2995
|
+
datetime: "yyyy/M/d HH:mm:ss",
|
|
2996
|
+
},
|
|
2997
|
+
zh_CN_PINYIN: {
|
|
2998
|
+
date: "yyyy/M/d",
|
|
2999
|
+
time: "HH:mm:ss",
|
|
3000
|
+
datetime: "yyyy/M/d HH:mm:ss",
|
|
3001
|
+
},
|
|
3002
|
+
// ==================== 荷兰语区域 ====================
|
|
3003
|
+
nl_NL: {
|
|
3004
|
+
date: "dd-MM-yyyy",
|
|
3005
|
+
time: "HH:mm:ss",
|
|
3006
|
+
datetime: "dd-MM-yyyy HH:mm:ss",
|
|
3007
|
+
},
|
|
3008
|
+
// ==================== 波兰语区域 ====================
|
|
3009
|
+
pl_PL: {
|
|
3010
|
+
date: "dd.MM.yyyy",
|
|
3011
|
+
time: "HH:mm:ss",
|
|
3012
|
+
datetime: "dd.MM.yyyy HH:mm:ss",
|
|
3013
|
+
},
|
|
3014
|
+
// ==================== 塞尔维亚语区域 ====================
|
|
3015
|
+
sr_CS: {
|
|
3016
|
+
date: "d.M.yyyy",
|
|
3017
|
+
time: "HH:mm:ss",
|
|
3018
|
+
datetime: "d.M.yyyy HH:mm:ss",
|
|
3019
|
+
},
|
|
3020
|
+
sr_RS: {
|
|
3021
|
+
date: "d.M.yyyy",
|
|
3022
|
+
time: "HH:mm:ss",
|
|
3023
|
+
datetime: "d.M.yyyy HH:mm:ss",
|
|
3024
|
+
},
|
|
3025
|
+
// ==================== 日语区域 ====================
|
|
3026
|
+
ja_JP: {
|
|
3027
|
+
date: "yyyy/MM/dd",
|
|
3028
|
+
time: "HH:mm:ss",
|
|
3029
|
+
datetime: "yyyy/MM/dd HH:mm:ss",
|
|
3030
|
+
},
|
|
3031
|
+
// ==================== 爱沙尼亚语区域 ====================
|
|
3032
|
+
et_EE: {
|
|
3033
|
+
date: "dd.MM.yyyy",
|
|
3034
|
+
time: "HH:mm:ss",
|
|
3035
|
+
datetime: "dd.MM.yyyy HH:mm:ss",
|
|
3036
|
+
},
|
|
3037
|
+
// ==================== 乌克兰语区域 ====================
|
|
3038
|
+
uk_UA: {
|
|
3039
|
+
date: "dd.MM.yyyy",
|
|
3040
|
+
time: "HH:mm:ss",
|
|
3041
|
+
datetime: "dd.MM.yyyy HH:mm:ss",
|
|
3042
|
+
},
|
|
3043
|
+
// ==================== 斯洛文尼亚语区域 ====================
|
|
3044
|
+
sl_SI: {
|
|
3045
|
+
date: "d.M.yy",
|
|
3046
|
+
time: "HH:mm:ss",
|
|
3047
|
+
datetime: "d.M.yy HH:mm:ss",
|
|
3048
|
+
},
|
|
3049
|
+
// ==================== 德语区域 ====================
|
|
3050
|
+
de_DE: {
|
|
3051
|
+
date: "dd.MM.yyyy",
|
|
3052
|
+
time: "HH:mm:ss",
|
|
3053
|
+
datetime: "dd.MM.yyyy HH:mm:ss",
|
|
3054
|
+
},
|
|
3055
|
+
// ==================== 丹麦语区域 ====================
|
|
3056
|
+
da_DK: {
|
|
3057
|
+
date: "dd.MM.yyyy",
|
|
3058
|
+
time: "HH:mm:ss",
|
|
3059
|
+
datetime: "dd.MM.yyyy HH:mm:ss",
|
|
3060
|
+
},
|
|
3061
|
+
// ==================== 匈牙利语区域 ====================
|
|
3062
|
+
hu_HU: {
|
|
3063
|
+
date: "yyyy.MM.dd",
|
|
3064
|
+
time: "HH:mm:ss",
|
|
3065
|
+
datetime: "yyyy.MM.dd. HH:mm:ss",
|
|
3066
|
+
},
|
|
3067
|
+
// ==================== 保加利亚语区域 ====================
|
|
3068
|
+
bg_BG: {
|
|
3069
|
+
date: "dd.MM.yyyy г.",
|
|
3070
|
+
time: "HH:mm:ss ч.",
|
|
3071
|
+
datetime: "dd.MM.yyyy г., HH:mm:ss ч.",
|
|
3072
|
+
},
|
|
3073
|
+
// ==================== 意大利语区域 ====================
|
|
3074
|
+
it_IT: {
|
|
3075
|
+
date: "dd/MM/yyyy",
|
|
3076
|
+
time: "HH:mm:ss",
|
|
3077
|
+
datetime: "dd/MM/yyyy HH:mm:ss",
|
|
3078
|
+
},
|
|
3079
|
+
};
|
|
3080
|
+
/**
|
|
3081
|
+
* 区域配置映射表
|
|
3082
|
+
* 包含 14 个区域的完整配置信息
|
|
3083
|
+
*/
|
|
3084
|
+
const LOCALE_CONFIG_LIST = [
|
|
3085
|
+
"en_US",
|
|
3086
|
+
"en_GB",
|
|
3087
|
+
"en_AU",
|
|
3088
|
+
"en_FI",
|
|
3089
|
+
"zh_CN",
|
|
3090
|
+
"zh_CN_PINYIN",
|
|
3091
|
+
"nl_NL",
|
|
3092
|
+
"pl_PL",
|
|
3093
|
+
"sr_CS",
|
|
3094
|
+
"sr_RS",
|
|
3095
|
+
"ja_JP",
|
|
3096
|
+
"et_EE",
|
|
3097
|
+
"uk_UA",
|
|
3098
|
+
"sl_SI",
|
|
3099
|
+
"de_DE",
|
|
3100
|
+
"da_DK",
|
|
3101
|
+
"hu_HU",
|
|
3102
|
+
"bg_BG",
|
|
3103
|
+
"it_IT",
|
|
3104
|
+
];
|
|
3105
|
+
|
|
3106
|
+
const LOCALE_CONFIG_MAP = LOCALE_CONFIG_LIST.reduce((acc, locale) => {
|
|
3107
|
+
acc[locale] = {
|
|
3108
|
+
dayjsFormat: dayjsFormatMap[locale],
|
|
3109
|
+
elementUIFormat: elementUIFormatMap[locale],
|
|
3110
|
+
};
|
|
3111
|
+
return acc;
|
|
3112
|
+
}, {});
|
|
3113
|
+
|
|
3114
|
+
console.log("LOCALE_CONFIG_MAP", LOCALE_CONFIG_MAP);
|
|
3115
|
+
|
|
3116
|
+
/**
|
|
3117
|
+
* 获取区域配置
|
|
3118
|
+
* @param {string} locale - 区域代码(如 'en_US')
|
|
3119
|
+
* @returns {Object} 区域配置对象
|
|
3120
|
+
*/
|
|
3121
|
+
function getLocaleConfig(locale) {
|
|
3122
|
+
// 从配置映射表中获取配置
|
|
3123
|
+
const config = LOCALE_CONFIG_MAP[locale];
|
|
3124
|
+
|
|
3125
|
+
if (config) {
|
|
3126
|
+
// eslint-disable-next-line no-console
|
|
3127
|
+
console.log(`[LocaleConfig] 获取区域配置: ${locale}`, config);
|
|
3128
|
+
return config;
|
|
3129
|
+
}
|
|
3130
|
+
|
|
3131
|
+
// 如果区域代码不存在,返回默认配置(en_US)
|
|
3132
|
+
// eslint-disable-next-line no-console
|
|
3133
|
+
console.log(`[LocaleConfig] 区域代码 ${locale} 不存在,使用默认配置 en_US`);
|
|
3134
|
+
return LOCALE_CONFIG_MAP["en_US"];
|
|
3135
|
+
}
|
|
3136
|
+
|
|
3137
|
+
/**
|
|
3138
|
+
* 初始化区域配置
|
|
3139
|
+
* @param {Object} userInfo - 用户信息对象
|
|
3140
|
+
* @returns {Object} 区域配置对象
|
|
3141
|
+
*/
|
|
3142
|
+
function initLocaleConfig(userInfo) {
|
|
3143
|
+
// eslint-disable-next-line no-console
|
|
3144
|
+
console.log("[LocaleConfig] 开始初始化区域配置", userInfo);
|
|
3145
|
+
|
|
3146
|
+
// 错误处理:userInfo 为空时返回默认配置
|
|
3147
|
+
if (!userInfo) {
|
|
3148
|
+
// eslint-disable-next-line no-console
|
|
3149
|
+
console.log("[LocaleConfig] userInfo 为空,使用默认配置 en_US");
|
|
3150
|
+
return getLocaleConfig("en_US");
|
|
3151
|
+
}
|
|
3152
|
+
|
|
3153
|
+
// 从 userInfo 中提取 locale 属性
|
|
3154
|
+
let localeCode = userInfo.locale;
|
|
3155
|
+
|
|
3156
|
+
// 如果 locale 不存在,尝试使用 language 属性
|
|
3157
|
+
if (!localeCode && userInfo.language) {
|
|
3158
|
+
// eslint-disable-next-line no-console
|
|
3159
|
+
console.log(
|
|
3160
|
+
`[LocaleConfig] locale 不存在,使用 language: ${userInfo.language}`
|
|
3161
|
+
);
|
|
3162
|
+
// 使用 LANGUAGE_TO_LOCALE_MAP 映射语言代码到区域代码
|
|
3163
|
+
// localeCode = LANGUAGE_TO_LOCALE_MAP[userInfo.language];
|
|
3164
|
+
localeCode = "en_US";
|
|
3165
|
+
}
|
|
3166
|
+
|
|
3167
|
+
// 如果映射后仍然没有有效的区域代码,使用默认值
|
|
3168
|
+
if (!localeCode) {
|
|
3169
|
+
// eslint-disable-next-line no-console
|
|
3170
|
+
console.log("[LocaleConfig] 无法确定区域代码,使用默认配置 en_US");
|
|
3171
|
+
localeCode = "en_US";
|
|
3172
|
+
}
|
|
3173
|
+
|
|
3174
|
+
// eslint-disable-next-line no-console
|
|
3175
|
+
console.log(`[LocaleConfig] 最终使用的区域代码: ${localeCode}`);
|
|
3176
|
+
|
|
3177
|
+
// 调用 getLocaleConfig 获取完整配置对象
|
|
3178
|
+
const config = getLocaleConfig(localeCode);
|
|
3179
|
+
|
|
3180
|
+
// eslint-disable-next-line no-console
|
|
3181
|
+
console.log("[LocaleConfig] 初始化完成", config);
|
|
3182
|
+
|
|
3183
|
+
Vue.prototype.$localeConfig = config;
|
|
3184
|
+
|
|
3185
|
+
return config;
|
|
3186
|
+
}
|
|
3187
|
+
|
|
3188
|
+
/**
|
|
3189
|
+
* 区域格式化工具模块
|
|
3190
|
+
* 提供日期、时间、日期时间的格式化功能
|
|
3191
|
+
*/
|
|
3192
|
+
|
|
3193
|
+
/**
|
|
3194
|
+
* 格式化日期
|
|
3195
|
+
* @param {Date|string|number} date - 日期对象、ISO 字符串或时间戳
|
|
3196
|
+
* @param {Object} config - 区域配置对象
|
|
3197
|
+
* @returns {string} 格式化后的日期字符串
|
|
3198
|
+
*/
|
|
3199
|
+
function formatDate(date, config) {
|
|
3200
|
+
try {
|
|
3201
|
+
// 处理空值
|
|
3202
|
+
if (!date) {
|
|
3203
|
+
return ''
|
|
3204
|
+
}
|
|
3205
|
+
|
|
3206
|
+
// 使用 dayjs 转换日期
|
|
3207
|
+
const dayjsObj = dayjs(date);
|
|
3208
|
+
|
|
3209
|
+
// 检查日期是否有效
|
|
3210
|
+
if (!dayjsObj.isValid()) {
|
|
3211
|
+
return date
|
|
3212
|
+
}
|
|
3213
|
+
|
|
3214
|
+
// 使用配置的日期格式进行格式化
|
|
3215
|
+
return dayjsObj.format(config.date)
|
|
3216
|
+
} catch (error) {
|
|
3217
|
+
console.warn('[LocaleFormatter] 日期格式化失败:', error);
|
|
3218
|
+
return date
|
|
3219
|
+
}
|
|
3220
|
+
}
|
|
3221
|
+
|
|
3222
|
+
/**
|
|
3223
|
+
* 格式化时间
|
|
3224
|
+
* @param {Date|string|number} time - 时间对象、ISO 字符串或时间戳
|
|
3225
|
+
* @param {Object} config - 区域配置对象
|
|
3226
|
+
* @returns {string} 格式化后的时间字符串
|
|
3227
|
+
*/
|
|
3228
|
+
function formatTime(time, config) {
|
|
3229
|
+
try {
|
|
3230
|
+
// 处理空值
|
|
3231
|
+
if (!time) {
|
|
3232
|
+
return ''
|
|
3233
|
+
}
|
|
3234
|
+
|
|
3235
|
+
// 使用 dayjs 转换时间
|
|
3236
|
+
const dayjsObj = dayjs(time);
|
|
3237
|
+
|
|
3238
|
+
// 检查时间是否有效
|
|
3239
|
+
if (!dayjsObj.isValid()) {
|
|
3240
|
+
return time
|
|
3241
|
+
}
|
|
3242
|
+
|
|
3243
|
+
// 根据 is24Hour 决定使用 24 小时制还是 12 小时制
|
|
3244
|
+
// const timeFormat = config.is24Hour ? 'HH:mm' : 'hh:mm A'
|
|
3245
|
+
|
|
3246
|
+
// 格式化时间
|
|
3247
|
+
return dayjsObj.format(config.time)
|
|
3248
|
+
} catch (error) {
|
|
3249
|
+
console.warn('[LocaleFormatter] 时间格式化失败:', error);
|
|
3250
|
+
return time
|
|
3251
|
+
}
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
/**
|
|
3255
|
+
* 格式化日期时间
|
|
3256
|
+
* @param {Date|string|number} datetime - 日期时间对象、ISO 字符串或时间戳
|
|
3257
|
+
* @param {Object} config - 区域配置对象
|
|
3258
|
+
* @returns {string} 格式化后的日期时间字符串
|
|
3259
|
+
*/
|
|
3260
|
+
function formatDateTime(datetime, config) {
|
|
3261
|
+
try {
|
|
3262
|
+
// 处理空值
|
|
3263
|
+
if (!datetime) {
|
|
3264
|
+
return ''
|
|
3265
|
+
}
|
|
3266
|
+
|
|
3267
|
+
// 使用 dayjs 转换日期时间
|
|
3268
|
+
const dayjsObj = dayjs(datetime);
|
|
3269
|
+
|
|
3270
|
+
// 检查日期时间是否有效
|
|
3271
|
+
if (!dayjsObj.isValid()) {
|
|
3272
|
+
return datetime
|
|
3273
|
+
}
|
|
3274
|
+
|
|
3275
|
+
// 组合日期格式和时间格式
|
|
3276
|
+
// const timeFormat = config.is24Hour ? 'HH:mm' : 'hh:mm A'
|
|
3277
|
+
// const dateTimeFormat = `${config.dateFormat} ${config.timeFormat}`
|
|
3278
|
+
const dateTimeFormat = config.datetime;
|
|
3279
|
+
|
|
3280
|
+
// 格式化日期时间
|
|
3281
|
+
return dayjsObj.format(dateTimeFormat)
|
|
3282
|
+
} catch (error) {
|
|
3283
|
+
console.warn('[LocaleFormatter] 日期时间格式化失败:', error);
|
|
3284
|
+
return datetime
|
|
3285
|
+
}
|
|
3286
|
+
}
|
|
3287
|
+
|
|
3288
|
+
/**
|
|
3289
|
+
* 将配置格式转换为 Element UI DatePicker 支持的格式
|
|
3290
|
+
* @param {string} configFormat - 配置中的日期格式(如 'YYYY-M-D')
|
|
3291
|
+
* @returns {string} Element UI 支持的格式(如 'yyyy-M-d')
|
|
3292
|
+
*/
|
|
3293
|
+
function convertToElementFormat(configFormat) {
|
|
3294
|
+
if (!configFormat) {
|
|
3295
|
+
return 'yyyy-MM-dd'
|
|
3296
|
+
}
|
|
3297
|
+
|
|
3298
|
+
// 转换规则:
|
|
3299
|
+
// YYYY -> yyyy
|
|
3300
|
+
// DD -> dd
|
|
3301
|
+
// MM -> MM (保持不变)
|
|
3302
|
+
// M -> M (保持不变)
|
|
3303
|
+
// D -> d
|
|
3304
|
+
// 保持分隔符不变(/、-、.)
|
|
3305
|
+
return configFormat
|
|
3306
|
+
.replace(/YYYY/g, 'yyyy')
|
|
3307
|
+
.replace(/DD/g, 'dd')
|
|
3308
|
+
.replace(/(?<!M)D(?!D)/g, 'd') // 单独的 D 转换为 d,但不影响 DD
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3311
|
+
const registerLocaleFilter = (Vue) => {
|
|
3312
|
+
// 日期格式化 - 根据用户区域设置格式化日期
|
|
3313
|
+
Vue.filter("localeDate", function (value) {
|
|
3314
|
+
const config = Vue.prototype.$localeConfig;
|
|
3315
|
+
if (!config || !value) return value;
|
|
3316
|
+
return formatDate(value, config.dayjsFormat);
|
|
3317
|
+
});
|
|
3318
|
+
|
|
3319
|
+
// 时间格式化 - 根据用户区域设置格式化时间
|
|
3320
|
+
Vue.filter("localeTime", function (value) {
|
|
3321
|
+
const config = Vue.prototype.$localeConfig;
|
|
3322
|
+
if (!config || !value) return value;
|
|
3323
|
+
return formatTime(value, config.dayjsFormat);
|
|
3324
|
+
});
|
|
3325
|
+
|
|
3326
|
+
// 日期时间格式化 - 根据用户区域设置格式化日期时间
|
|
3327
|
+
Vue.filter("localeDateTime", function (value) {
|
|
3328
|
+
const config = Vue.prototype.$localeConfig;
|
|
3329
|
+
if (!config || !value) return value;
|
|
3330
|
+
return formatDateTime(value, config.dayjsFormat);
|
|
3331
|
+
});
|
|
3332
|
+
};
|
|
3333
|
+
|
|
3334
|
+
/**
|
|
3335
|
+
* 区域设置(Locale)模块 - 主入口文件
|
|
3336
|
+
*
|
|
3337
|
+
* 本模块提供用户区域设置的完整功能,包括:
|
|
3338
|
+
* - 区域配置映射和初始化
|
|
3339
|
+
* - 日期、时间、日期时间的格式化
|
|
3340
|
+
* - Element UI 组件格式转换
|
|
3341
|
+
*
|
|
3342
|
+
* 使用示例:
|
|
3343
|
+
* ```javascript
|
|
3344
|
+
* import { initLocaleConfig, formatDate } from '@/utils/locale'
|
|
3345
|
+
*
|
|
3346
|
+
* // 初始化配置
|
|
3347
|
+
* const config = initLocaleConfig(userInfo)
|
|
3348
|
+
*
|
|
3349
|
+
* // 格式化日期
|
|
3350
|
+
* const formattedDate = formatDate(new Date(), config)
|
|
3351
|
+
* ```
|
|
3352
|
+
*/
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
Vue.use(registerLocaleFilter);
|
|
3356
|
+
|
|
3357
|
+
var CCLocale = {
|
|
3358
|
+
LOCALE_CONFIG_MAP,
|
|
3359
|
+
getLocaleConfig,
|
|
3360
|
+
initLocaleConfig,
|
|
3361
|
+
formatDate,
|
|
3362
|
+
formatTime,
|
|
3363
|
+
formatDateTime,
|
|
3364
|
+
convertToElementFormat,
|
|
3365
|
+
// registerLocaleFilter
|
|
3366
|
+
};
|
|
3367
|
+
|
|
3368
|
+
let CCDK = { CCButton, CCBrower, CCArray, CCDB, CCApplication, CCAxios: CCHttp$1, CCUser, CCCrypto: Crypto, CCDetail, CCList, CCToken, CCConfig, CCLoad, CCLog, CCMenu, CCUtils, CCHttp, CCObject, CCPage, CCSentry, CCSide, CCBus, CCCall, CCCommon, CCMessage,CCI18n, CCLocale };
|
|
2842
3369
|
Vue.prototype.$CCDK = CCDK;
|
|
2843
3370
|
window.$CCDK = CCDK;
|
|
2844
3371
|
|
package/lib/ccdk.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Vue from"vue";import Dexie from"dexie";import axios,{AxiosError}from"axios";import{cloneDeep}from"lodash";import Cookies from"js-cookie";import Jwt from"jsonwebtoken";import CryptoJS from"crypto-js";import{Message,MessageBox,Notification}from"element-ui";const db=new Dexie("cloudcc-ltn-main-web");function init$2(tablename,version=1,...fields){return db.version(version).stores({[tablename]:`++id, ${fields}`})}async function create(tableName,data=[]){return await db[tableName].bulkPut(data)}async function deleteCC(tableName,ids=[]){return await db[tableName].bulkDelete(ids)}async function list(tableName,condition){return await db[tableName].where(condition).toArray()}async function detail(tableName,id){return await db[tableName].get(id)}async function transaction(tableName,transaction){await db.transaction("rw",[db[tableName]],transaction)}var CCDB=Object.freeze({__proto__:null,db:db,init:init$2,create:create,deleteCC:deleteCC,list:list,detail:detail,transaction:transaction});const APPLICATION_DETAIL=()=>{return window.$CCDK.CCUser.getUserInfo().userId+"-currentApp"};function getApplicaton(){let detail=localStorage.getItem(APPLICATION_DETAIL());if(detail){return JSON.parse(detail)}return""}function setApplication(detail=""){if(detail){localStorage.setItem(APPLICATION_DETAIL(),JSON.stringify(detail))}}var CCApplication=Object.freeze({__proto__:null,getApplicaton:getApplicaton,setApplication:setApplication});function getAesString(data,key,iv){key=CryptoJS.enc.Utf8.parse(key);iv=CryptoJS.enc.Utf8.parse(iv);let encrypted=CryptoJS.AES.encrypt(data,key,{iv:iv,padding:CryptoJS.pad.Pkcs7});return encrypted.toString()}function getDAesString(encrypted,key,iv){key=CryptoJS.enc.Utf8.parse(key);iv=CryptoJS.enc.Utf8.parse(iv);let decrypted=CryptoJS.AES.decrypt(encrypted,key,{iv:iv,padding:CryptoJS.pad.Pkcs7});return decrypted.toString(CryptoJS.enc.Utf8)}function encrypt(data,key="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",iv=1){data=JSON.stringify(data);var encrypted=getAesString(data,key,iv);return encrypted}function decrypt(data,key="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",iv=1){try{var decryptedStr=getDAesString(data,key,iv);if(!decryptedStr)return null;return JSON.parse(decryptedStr)}catch(error){console.trace("Decryption password error",error);return null}}var Crypto=Object.freeze({__proto__:null,encrypt:encrypt,decrypt:decrypt});const CCDK_INFO={};const LOGINLOGOSRC="LoginLogoSrc";const nameFormBus="ccForm";const relatedName="ccRelatedForm";function getDomain(){let domain=document.domain;if(isValidIP(domain)){return domain}else{let lastTow=document.domain.split(".").slice(-2,-1)[0];if(lastTow=="com"||lastTow=="org"||lastTow=="net"){return"."+document.domain.split(".").slice(-3).join(".")}else if(document.domain.indexOf(".cloudapp.azure.com")!=-1){return"."+document.domain.split(".").slice(-4).join(".")}else if(document.domain.indexOf(".azurewebsites.net")!=-1){return"."+document.domain.split(".").slice(-3).join(".")}else{return"."+document.domain.split(".").slice(-2).join(".")}}}function isValidIP(ip){var reg=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;return reg.test(ip)}function verifyToken(token){let j=Jwt.decode(token);return{result:j&&j.versionType&&j.loginName&&j.binding&&j.userId&&j.orgId,jwt:j}}function getNowFormatDate(){var myDate=new Date;var year=myDate.getFullYear();var mon=myDate.getMonth()+1;if(mon<10){mon="0"+mon}var date=myDate.getDate();if(date<10){date="0"+date}var hours=myDate.getHours();if(hours<10){hours="0"+hours}var minutes=myDate.getMinutes();if(minutes<10){minutes="0"+minutes}var seconds=myDate.getSeconds();if(seconds<10){seconds="0"+seconds}var now=year+"-"+mon+"-"+date+" "+hours+":"+minutes+":"+seconds;return now}function getUuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=="x"?r:r&3|8;return v.toString(16)})}function getBinding(){let binding=window.$CCDK.CCToken.getToken();if(!binding){window.open(window.Glod.LOGIN_URL,"_self")}else{Cookies.set("binding",binding,{expires:1/12,sameSite:"Lax"});Cookies.set("JSESSIONID",binding,{expires:1/12,sameSite:"Lax"})}return binding}function getCurrentPageType(){let currentPage;let currentHref=window.location.hash||"";currentHref=currentHref.split("?")[0]||"";const lastHref=currentHref.split("/").pop();if(currentHref.includes("#/commonObjects/views/table")){currentPage="view"}else if(lastHref==="DETAIL"){currentPage="detail"}return currentPage}function setValueTypeConversion(value){let newArr=[];value.forEach(childVal=>{if(childVal.indexOf(",")!==-1){childVal=childVal.split()}newArr.push(childVal)});let newData="";newArr.forEach(nVal=>{if(Array.isArray(nVal)){newData+="["+nVal+"],"}else{newData+=nVal+","}});return newData.slice(0,newData.length-1)}function echoValueTypeConversion(value){let newArr=[];if(!value){return newArr}if(!value.match(/\[(.+?)\]/g)){newArr=value.split(",");return newArr}value.match(/\[(.+?)\]/g).map(item=>newArr.push(item.replace(/\[|]/g,"")));let valueArr=value.replace(/\[.*?\]/g,"").replace(/^,*|,*$/g,"");if(valueArr){valueArr=valueArr.split(",");newArr=newArr.concat(valueArr)}return newArr}function setFormFieldValue(option){window.$CCDK.CCBus.$emit(nameFormBus,"set",option)}function getFormFieldValue(option){const{formId}=option||{};if(formId){window.$CCDK.CCBus.$emit(nameFormBus,"get",option);let data=null;const funName="$CCForm"+formId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function getFormFieldInfo(option){const{formId}=option||{};if(formId){window.$CCDK.CCBus.$emit(nameFormBus,"getInfo",option);let data=null;const funName="$CCForm_info"+formId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function setPlatform(value){CCDK_INFO.platform=value}function getPlatform(){return CCDK_INFO.platform}function setLogoSrc(value="",expires=7){Cookies.set(Crypto.encrypt(LOGINLOGOSRC),value,{domain:getDomain(),expires:expires,sameSite:"Lax"})}function getLogoSrc(){return Cookies.get(Crypto.encrypt(LOGINLOGOSRC))||null}function clearLogoSrc(){Cookies.remove(LOGINLOGOSRC)}function getRelatedInfo(option){const{formId}=option||{};if(formId){window.$CCDK.CCBus.$emit(nameFormBus,relatedName+"_getInfo",option);let data=null;const funName=relatedName+formId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function setRelatedValue(option){window.$CCDK.CCBus.$emit(nameFormBus,relatedName+"_set",option)}function getRelatedValue(option){const{formId,relatedId}=option||{};if(formId&&relatedId){window.$CCDK.CCBus.$emit(nameFormBus,relatedName+"_get",option);let data=null;const funName=relatedName+formId+relatedId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}var CCUtils=Object.freeze({__proto__:null,getDomain:getDomain,getUuid:getUuid,getBinding:getBinding,getNowFormatDate:getNowFormatDate,verifyToken:verifyToken,getCurrentPageType:getCurrentPageType,setValueTypeConversion:setValueTypeConversion,echoValueTypeConversion:echoValueTypeConversion,setFormFieldValue:setFormFieldValue,getFormFieldValue:getFormFieldValue,setPlatform:setPlatform,getPlatform:getPlatform,setLogoSrc:setLogoSrc,getLogoSrc:getLogoSrc,clearLogoSrc:clearLogoSrc,getFormFieldInfo:getFormFieldInfo,setRelatedValue:setRelatedValue,getRelatedValue:getRelatedValue,getRelatedInfo:getRelatedInfo});const toStr=Object.prototype.toString;const TypeEnum={FUNCTION:"[object Function]",ARRAY:"[object Array]"};const isFn=value=>toStr.call(value)===TypeEnum.FUNCTION;const isProduction=()=>true;const delay=(waitTime=1e3)=>new Promise(resolve=>setTimeout(resolve,waitTime));const isTimeout=(error={code:"",message:""})=>{return error.code===AxiosError.ECONNABORTED&&error.message.includes("timeout")};const formateData=data=>{return{head:{appType:"lightning-main",appVersion:"1.1.1",accessToken:getBinding(),source:"lightning-main"},body:{...data}}};const deepMerge=(source,target)=>{const res=cloneDeep(source);for(let key in target){if(target.hasOwnProperty(key)){res[key]=isObject(target[key])?deepMerge(res[key],target[key]):target[key]}}return res};const LRUCache=function(capacity){this.capacity=capacity;this.cache=new Map};LRUCache.prototype.get=function(key){var cacheTemp=this.cache,curTemp=cacheTemp.get(key);if(curTemp||curTemp===0){cacheTemp.delete(key);cacheTemp.set(key,curTemp);return curTemp}return null};LRUCache.prototype.put=function(key,value){var cacheTemp=this.cache;if(cacheTemp.get(key)){cacheTemp.delete(key)}else if(cacheTemp.size>=this.capacity){cacheTemp.delete(cacheTemp.keys().next().value)}cacheTemp.set(key,value)};class CCAxios{constructor(opt){this.options=opt;this.axiosInstance=axios.create(opt);this.setupInterceptors();this.cachePool=new LRUCache(20)}getTransform(){const{transform}=this.options;return transform}setupInterceptors(){const transform=this.getTransform();if(!transform){return}const{requestInterceptors,requestInterceptorsCatch,responseInterceptors,responseInterceptorsCatch}=transform;this.axiosInstance.interceptors.request.use(requestInterceptors,undefined);requestInterceptorsCatch&&isFn(requestInterceptorsCatch)&&this.axiosInstance.interceptors.request.use(undefined,requestInterceptorsCatch);this.axiosInstance.interceptors.response.use(responseInterceptors,undefined);responseInterceptorsCatch&&isFn(responseInterceptorsCatch)&&this.axiosInstance.interceptors.response.use(undefined,error=>{return responseInterceptorsCatch(this.axiosInstance,error)})}get(config,options={}){return this.request({...config,method:"GET"},options)}post(config,options={}){const{envType}=options;if("public"==envType&&"private"==window.Glod["ENV_TYPE"]){return new Promise(()=>{})}if("private"==envType&&"private"!=window.Glod["ENV_TYPE"]){return new Promise(()=>{})}return this.request({...config,method:"POST"},options)}postFormat(config,options={}){return this.request({...config,method:"POST",data:formateData(config.data)},options)}postParams(config,options={}){return this.request({...config,method:"POST",params:config.data},options)}request(config,options){const transform=this.getTransform();const conf=config,{requestOptions}=this.options;requestOptions.cache=false;requestOptions.cacheKey="";requestOptions.retryRequest={isOpenRetry:false,count:5,waitTime:1e3};const opt=Object.assign({},requestOptions,options);conf.requestOptions=opt;const retPromise=new Promise((resolve,reject)=>{this.axiosInstance(conf).then(res=>{const{transformResponseHook}=transform;if(transformResponseHook&&isFn(transformResponseHook)){try{const ret=transformResponseHook(res,opt,this.cachePool);resolve(ret)}catch(err){reject(err||new Error("request error!"))}return}resolve(res)}).catch(err=>{reject(err)})});retPromise.cache=callback=>{const{cache,cacheKey}=opt;const cacheData=cache&&this.cachePool.get([cacheKey]);callback(cacheData?cacheData:null);return retPromise};return retPromise}}const createErrorModal=(response,options)=>{const{message}=options;let temp;if(response.name==="AxiosError"){temp=response.response;temp.data.returnInfo=response.returnInfo||message||temp.error||"";temp.data.returnCode=response.code||temp.status;temp.data.requestId=response.config.headers.requestId}else{temp=response;temp.data.requestId=response.config.headers.requestId}isFn(Vue.prototype.$ErrorDialog)&&Vue.prototype.$ErrorDialog({response:temp})};const createMessage=Message;const needReportErrorType=["901","999"];function checkStatus(error,status,msg,errorMessageMode="modal"){let errMessage="message.error.object.contactadministrators";if(status===401){window.open(window.Glod.LOGIN_URL,"_self")}{if(errorMessageMode==="modal"){createErrorModal(error,{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}}}const retry=async(instance,error)=>{const{config}=error,{waitTime,count=5}=config.requestOptions||{};config.__retryCount=config.__retryCount||0;if(count<=config.__retryCount){return Promise.reject(error)}config.__retryCount++;await delay(waitTime);delete config.headers;return instance(config)};const transform={requestInterceptors(config){config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";config.headers.accessToken=window.$CCDK.CCToken.getToken();return config},responseInterceptors(response){const{data,config}=response,{errorType,result}=data;if(!result){if(needReportErrorType.includes(errorType)&&isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(response)}}return response}const{infoReporter}=config.requestOptions;if(infoReporter&&isFn(infoReporter)){infoReporter(response)}return response},async responseInterceptorsCatch(axiosInstance,error){const{response,config}=error||{};let err="",msg="",mode="modal";try{err=error.toString(),msg=response.data.error,mode=config.requestOptions.errorMessageMode}catch(e){}let errorMessageMode=["message","modal"].includes(mode)&&mode||"modal",errMessage="";if(axios.isCancel(error)){return Promise.reject(error)}try{if(isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(error)}}if(isTimeout(error)){errMessage="c2487"}if(err&&err.includes("Network Error")){errMessage="c929"}if(errMessage){if(errorMessageMode==="modal"){createErrorModal({...error,response:{data:{returnInfo:error.message,returnCode:error.code,requestId:error.config.headers.requestId},config:error.config}},{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}return Promise.reject(error)}}catch(error){throw new Error(error)}checkStatus(error,error&&error.response.status,msg,errorMessageMode);const{isOpenRetry}=config;isOpenRetry&&config.method&&config.method.toUpperCase()==="GET"&&retry(axiosInstance,error);return Promise.reject(error)},transformResponseHook(response,options,cachePool){const{data}=response;const{errorType,result}=data;const businessLogicError=response=>{const{errorMessageMode,silent}=response.config.requestOptions;if(silent)return;if(errorMessageMode==="modal"){createErrorModal(response,{message:"Business Error"})}else if(errorMessageMode==="message"){createMessage.error(response&&response.data&&response.data.returnInfo||"Business Error")}};if(!result){switch(errorType){case"901":createErrorModal(response,{message:"System Error"});break;case"999":break;case"501":default:businessLogicError(response);break}return Promise.reject(response)}const{isReturnNativeResponse,cache,cacheKey}=options;if(isReturnNativeResponse){cache&&cacheKey&&cachePool.put(cacheKey,response);return response}cache&&cacheKey&&cachePool.put(cacheKey,data);return data}};function createAxios(opt){return new CCAxios(deepMerge({timeout:60*1e3,headers:{"Content-Type":"application/json;charset=UTF-8"},transform:cloneDeep(transform),requestOptions:{envType:"",errorMessageMode:"modal",silent:false,cache:false,retryRequest:{isOpenRetry:false,count:5,waitTime:100},isReturnNativeResponse:false}},opt||{}))}var CCHttp$1=Object.freeze({__proto__:null,createAxios:createAxios});Vue.prototype.$Bus=new Vue;window.ccBus=Vue.prototype.$Bus;function $emit(...args){window.ccBus.$emit(...args)}function $on(...args){window.ccBus.$on(...args)}function $off(...args){window.ccBus.$off(...args)}var CCBus=Object.freeze({__proto__:null,$emit:$emit,$on:$on,$off:$off});let ccCall=new Map;let currentCall;function init$1(id,callClient){if(id&&callClient){ccCall.set(id,callClient);currentCall=callClient;return currentCall}}function call(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.call(options)}return call}function openCallPanel(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.openCallPanel(options)}return call}var CCCall=Object.freeze({__proto__:null,init:init$1,call:call,openCallPanel:openCallPanel});function reportError(response){if("1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",{serviceName:"lightning-custom-page"})}}function reportInfo(response){if("2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",{serviceName:"lightning-custom-page"})}}const service$1=axios.create({timeout:60*1e3,headers:{"Content-Type":"application/json; charset=utf-8"}});service$1.interceptors.request.use(config=>{config.headers.accessToken=window.$CCDK.CCToken.getToken();config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";return config},error=>{Promise.reject(error)});service$1.interceptors.response.use(response=>{if(response.data.result){reportInfo(response);return response.data}else{reportError(response);return Promise.reject(response)}},error=>{if(error){reportError(error.response)}return Promise.reject(error)});var http={get:(url,data={},responseType="")=>{return service$1({url:url,method:"get",params:data,responseType:responseType})},post:(url,data={},responseType="",config={})=>{return service$1({url:url,method:"post",data:data,responseType:responseType,...config})}};function post$1(className,methodName,params,config){return http.post(window.Glod["ccex-apitsf"]+"/api/openCall/common",{className:className,methodName:methodName,params:params},"",config)}var CCCommon=Object.freeze({__proto__:null,post:post$1});function getBaseUrl(){return window.gw.BASE_URL||window.Glod.BASE_URL||window.location.origin+"/ccdomaingateway"}function getGw(){return window.gw||window.Glod}function getSvc(){return window.Glod}function getCDNUrl(){return window.Glod.CDN_URL}var CCConfig=Object.freeze({__proto__:null,getBaseUrl:getBaseUrl,getGw:getGw,getSvc:getSvc,getCDNUrl:getCDNUrl});const service=axios.create({timeout:6e4,headers:{"Content-Type":"application/json; charset=utf-8"}});service.interceptors.request.use(config=>{config.headers["accessToken"]=window.$CCDK.CCToken.getToken();return config},error=>{Promise.reject(error)});service.interceptors.response.use(response=>{const code=response.data.code||200;if(code!==200){return Promise.reject(null==response.data.msg?"unknown anomaly":response.data.msg)}else{return response.data}},error=>{return Promise.reject(error)});function get(url,data={},responseType="",config={}){return service({url:url,method:"get",params:data,responseType:responseType,...config})}function post(url,data={},responseType="",config={}){return service({url:url,method:"post",data:data,responseType:responseType,...config})}function put(url,data={}){return service({url:url,method:"put",data:data})}function postParams(url,data={}){return service({url:url,method:"post",params:data})}function patch(url,data={}){return service({url:url,method:"patch",data:data})}var CCHttp=Object.freeze({__proto__:null,get:get,post:post,put:put,patch:patch,postParams:postParams});function loadJs(src,scriptOption){return new Promise((resolve,reject)=>{let scriptTemp=document.createElement("script");if(scriptOption){Object.assign(scriptTemp,scriptOption)}scriptTemp.type="text/javascript";scriptTemp.src=src;document.body.appendChild(scriptTemp);scriptTemp.onload=()=>{resolve()};scriptTemp.onerror=()=>{reject()}})}function createLoadJsComponent(){Vue.component("cc-load-script",{render:function(createElement){var self=this;return createElement("script",{attrs:{type:"text/javascript",src:this.src},on:{load:function(event){self.$emit("load",event)},error:function(event){self.$emit("error",event)},readystatechange:function(event){if(this.readyState=="complete"){self.$emit("load",event)}}}})},props:{src:{type:String,required:true}}})}var CCLoad=Object.freeze({__proto__:null,loadJs:loadJs,createLoadJsComponent:createLoadJsComponent});function getBaseInfo(){let userInfo=window.$CCDK.CCUser.getUserInfo();let old={userName:userInfo.loginName||"unknown user",userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName,serviceName:"unknown application",recordType:"platform",logType:"front",operateTime:(new Date).valueOf(),operateTimeStr:window.$CCDK.CCUtils.getNowFormatDate(),cccode:"hidden",displayLevel:"2"};return old}function getHttpErrorInfo(error={}){let{config={},data={}}=error;if(config){return{requestUrl:config.baseURL+config.url,requestId:config.headers?config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:config.headers?config.headers.requestIdProducer:"",requestParameter:config.data,errorMessage:error.message||data.returnInfo||"Unknown Error",requestResult:"Fail",errorLevel:"2",printStackTraceInfo:(error.message||data.returnInfo||"Unknown Error")+"\n"+config.data}}else{return{}}}function getHttpInfo(response){if(response){if(window.performance){let per=performance.getEntriesByName(response.request.responseURL,"resource");if(per.length>0){let index=per.length-1;response.spendTime=per[index].fetchStart>0?per[index].responseEnd-per[index].fetchStart:"0"}}return{spendTime:response.spendTime||"0",requestUrl:response.request?response.request.responseURL:"",requestId:response.config.headers?response.config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:response.config.headers?response.config.headers.requestIdProducer:"",requestParameter:response.config.data,infoMessage:response.request.responseURL+". took:"+(response.spendTime||0).toFixed(0)+"ms"+"\n"+(response.config.data||""),requestResult:response.data.result?"Success":"Fail",infoType:"info"}}else{return{}}}function reportLog(url,response,type="info",logInfo={}){let userInfo=getBaseInfo();if("unknown user"!=userInfo.userName&&userInfo.userName){axios.post(url,{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...logInfo})}}function batchReportLog(url,response,type="info",logInfo=[]){let userInfo=getBaseInfo();if("unknown user"!=userInfo.userName&&userInfo.userName&&logInfo.length>0){let datas=logInfo.map(info=>{return{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...info}});axios.post(url,datas)}}function reportInfoLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",logInfo)}function reportErrorLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",logInfo)}function reportCCError(error,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",error,"error",options)}}function reportCCInfo(response,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"2"===window.Glod["CC_LOG_LEVEL"]){if(response.config.data){try{let data=JSON.parse(response.config.data);if(data.head&&data.head.accessToken){data.head.accessToken="******";response.config.data=JSON.stringify(data)}}catch(e){}}window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",options)}}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog,reportCCError:reportCCError,reportCCInfo:reportCCInfo,batchReportLog:batchReportLog});const ALL_MENU_LIST="all_menu_list";const CURRENT_MENU="current_menu";function getAllMenu(){let data=localStorage.getItem(Crypto.encrypt(ALL_MENU_LIST));if(data){return JSON.parse(data)}return[]}function setAllMenu(data=[]){if(data){localStorage.setItem(Crypto.encrypt(ALL_MENU_LIST),JSON.stringify(data))}}function setCurrentMenu(data={}){if(data){localStorage.setItem(Crypto.encrypt(CURRENT_MENU),JSON.stringify(data))}}function getCurrentMenu(){let data=localStorage.getItem(Crypto.encrypt(CURRENT_MENU));if(data){return JSON.parse(data)}return{}}function addMenu1(options){window.$CCDK.CCBus.$emit("addMenu1",options)}function addMenu2(options){window.$CCDK.CCBus.$emit("addMenu2",options)}function deleteMenu1(options){window.$CCDK.CCBus.$emit("deleteMenu1",options)}function deleteMenu2(options){window.$CCDK.CCBus.$emit("deleteMenu2",options)}function refreshMenu1(options){window.$CCDK.CCBus.$emit("refreshMenu1",options)}function refreshMenu2(options){window.$CCDK.CCBus.$emit("refreshMenu2",options)}function replaceMenu1(options){window.$CCDK.CCBus.$emit("replaceMenu1",options)}function replaceMenu2(options){window.$CCDK.CCBus.$emit("replaceMenu2",options)}function reOpenMenu1(options){window.$CCDK.CCBus.$emit("reOpenMenu1",options)}function reOpenMenu2(options){window.$CCDK.CCBus.$emit("reOpenMenu2",options)}var CCMenu=Object.freeze({__proto__:null,addMenu1:addMenu1,addMenu2:addMenu2,deleteMenu1:deleteMenu1,deleteMenu2:deleteMenu2,refreshMenu1:refreshMenu1,refreshMenu2:refreshMenu2,replaceMenu1:replaceMenu1,replaceMenu2:replaceMenu2,reOpenMenu1:reOpenMenu1,reOpenMenu2:reOpenMenu2,getAllMenu:getAllMenu,setAllMenu:setAllMenu,setCurrentMenu:setCurrentMenu,getCurrentMenu:getCurrentMenu});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL_ID="cc_object_detail_id";const OBJECT="cc_object";const OBJECT_LIST="cc_object_list";const detailRecord="_detail";let sessionSize=null;let localSize=null;function clearStorag(type="session"){let obj=null;let size=0;if(type==="local"){obj=window.localStorage}else{obj=window.sessionStorage}if(obj&&typeof obj==="object"){obj.removeItem(Crypto.encrypt(OBJECT_LIST));for(let i in obj){if(i&&obj.hasOwnProperty(i)){const keyVal=i.split("_").pop();const keyList=["detail","record"];if(keyList.includes(keyVal)){obj.removeItem(i)}else{let item=obj.getItem(i);if(item){size+=item.length}}}}}return size/1024/1024}function CCSetStorag(storagInfo){const{type,storageKey,value}=storagInfo||{};if(type&&storageKey){const storagObj=type==="local"?window.localStorage:window.sessionStorage;if(storagObj&&typeof storagObj==="object"){let globalSize=type==="local"?localSize:sessionSize;const valueSize=value?value.length/1024/1024:0;if(globalSize===null){globalSize=getStoragSize(type)}globalSize=globalSize+valueSize;if(globalSize>4){let val=clearStorag(type);globalSize=valueSize+val}if(type==="local"){localSize=globalSize}else{sessionSize=globalSize}storagObj.setItem(storageKey,value)}}}function getStoragSize(type="session"){let obj=null;let size=0;if(type==="local"){obj=window.localStorage}else{obj=window.sessionStorage}if(obj&&typeof obj==="object"){for(let i in obj){if(obj.hasOwnProperty(i)){let item=obj.getItem(i);if(item){size+=item.length}}}}return size/1024/1024}function getObject(){let detail=localStorage.getItem(Crypto.encrypt(OBJECT));if(detail){return JSON.parse(detail)}return""}function setObject(detail=""){if(detail){localStorage.setItem(Crypto.encrypt(OBJECT),JSON.stringify(detail))}}function getObjectDetail(apiname,detailId){let detail;detailId=detailId||window.$CCDK.CCDetail.getDetailId();detailId=detailId+detailRecord;if(detailId){detail=sessionStorage.getItem(detailId)}if(detail){detail=JSON.parse(detail);if(apiname){let detailList=detail.detail||[];let targetField=undefined;targetField=detailList.find(item=>item.apiname===apiname);return targetField}else{return detail}}else{return""}}function setObjectDetail(detail=""){if(detail&&detail.id){if(Array.isArray(detail.detail)&&detail.detail.length>0){let data=[];detail.detail.forEach(item=>{if(item&&Array.isArray(item.data)){item.data.forEach(itemData=>{if(itemData.left&&!Array.isArray(itemData.left)){data.push(itemData.left)}if(itemData.right&&!Array.isArray(itemData.right)){data.push(itemData.right)}})}});if(data.length>0){detail.detail=data}}const detailKey=detail.id+detailRecord;const info={type:"session",storageKey:detailKey,value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function setObjectList(detail={}){if(detail){const info={type:"session",storageKey:Crypto.encrypt(OBJECT_LIST),value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function getObjectList(){let detail=sessionStorage.getItem(Crypto.encrypt(OBJECT_LIST));if(detail){return JSON.parse(detail)}return{ids:[]}}function setObjectDetailId(id=""){if(id){localStorage.setItem("detailRecordId",id);sessionStorage.setItem(Crypto.encrypt(OBJECT_DETAIL_ID),id)}}function getObjectDetailId(){let id=sessionStorage.getItem(Crypto.encrypt(OBJECT_DETAIL_ID));if(!id){id=localStorage.getItem("detailRecordId")}return id}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail,setObjectDetailId:setObjectDetailId,getObjectDetailId:getObjectDetailId,CCSetStorag:CCSetStorag});const TABLE_NAME$1="ccdetail";const record="_record";function setRelatedSelected(detailId,recordId,list){if(detailId&&recordId&&list){detailId=detailId+record;let detail=sessionStorage.getItem(detailId);if(detail){detail=JSON.parse(detail);detail[recordId]=list}else{detail={};detail[recordId]=list}const info={type:"session",storageKey:detailId,value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function getRelatedSelected(recordId,detailId){if(!detailId){detailId=window.$CCDK.CCObject.getObjectDetailId();if(!detailId)return}detailId=detailId+record;let detail=sessionStorage.getItem(detailId);if(detail){detail=JSON.parse(detail);if(recordId){detail=detail[recordId]}}return detail}function getDetail(apiname,detailId){return window.$CCDK.CCObject.getObjectDetail(apiname,detailId)}function setDetail(detail=""){window.$CCDK.CCObject.setObjectDetail(detail)}function setDetailId(id=""){window.$CCDK.CCObject.setObjectDetailId(id)}function getDetailId(){return window.$CCDK.CCObject.getObjectDetailId()}function refreshRelatedList(ids){window.$CCDK.CCBus.$emit("refreshRelation",{relatedlistId:ids})}async function setRelatedFieldWidth(object){return await window.$CCDK.CCDB.create(TABLE_NAME$1,[object])}async function getRelatedFieldWidth(object){return await window.$CCDK.CCDB.list(TABLE_NAME$1,object)}var CCDetail=Object.freeze({__proto__:null,getDetail:getDetail,setDetail:setDetail,setDetailId:setDetailId,getDetailId:getDetailId,refreshRelatedList:refreshRelatedList,setRelatedFieldWidth:setRelatedFieldWidth,getRelatedFieldWidth:getRelatedFieldWidth,setRelatedSelected:setRelatedSelected,getRelatedSelected:getRelatedSelected});const TABLE_NAME="cclist";function setSelected(detail={}){const ids=detail&&detail.ids;if(ids){let info=window.$CCDK.CCObject.getObjectList()||{};info.ids=ids;window.$CCDK.CCObject.setObjectList(info)}}function getSelected(){let{ids}=window.$CCDK.CCObject.getObjectList();return{ids:ids}}function getViewId(){let{viewId}=window.$CCDK.CCObject.getObjectList();return viewId||""}async function setFilter(object){await window.$CCDK.CCDB.create(TABLE_NAME,[object])}async function getFilter(object){return await window.$CCDK.CCDB.list(TABLE_NAME,object)}async function deleteFilter(id){return await window.$CCDK.CCDB.deleteCC(TABLE_NAME,id)}async function clearFilterAll(){await window.$CCDK.CCDB.db[TABLE_NAME].toCollection().modify(item=>{item.filtercondition="";item.filterdetail=""})}function getViewInfo(){return window.$CCDK.CCObject.getObjectList()||{}}var CCList=Object.freeze({__proto__:null,setSelected:setSelected,getSelected:getSelected,setFilter:setFilter,getFilter:getFilter,deleteFilter:deleteFilter,clearFilterAll:clearFilterAll,getViewId:getViewId,getViewInfo:getViewInfo});let pageList=new Map;function openListPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openListPage",pageId,obj,options);return pageId}function openDetailPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openDetailPage",pageId,obj,id,options);return pageId}function openCreatePage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCreatePage",pageId,obj,options);return pageId}function openEditPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openEditPage",pageId,obj,id,options);return pageId}function openCustomPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCustomPage",pageId,obj,options);return pageId}function reOpenPage(pageId,options){let page;if(pageId){pageId=pageId+"";page=pageList.get(pageId)}if(page){page.reOpenPage();if(options.refresh){page.refresh()}}}function addPage(id,page){if(id&&page){id=id+"";pageList.set(id,page)}}function deletePage(pageId){if(pageId){pageId=pageId+"";pageList.delete(pageId)}}function updatePage(id,page){if(id&&page){id=id+"";pageList.set(id,page)}}function searchPage(pageId){pageId=pageId+"";return pageList.get(pageId)}function close$1(pageId=""){let page;if(pageId==="all"){page=[...pageList.values()];page.forEach(item=>{if(item){item.close()}})}else if(pageId){pageId=pageId+"";page=pageList.get(pageId)}else{let currentMenuTree=JSON.parse(localStorage.getItem("current_page"));if(currentMenuTree){if(currentMenuTree.level2Id){page=pageList.get(currentMenuTree.level2Id)}else{page=pageList.get(currentMenuTree.id)}}}if(page){page.close()}}function refresh(){window.$CCDK.CCBus.$emit("refresh")}function getCurrentPage(){let currentMenuTree=localStorage.getItem("current_page");if(currentMenuTree){return JSON.parse(currentMenuTree)}return""}var CCPage=Object.freeze({__proto__:null,openListPage:openListPage,openDetailPage:openDetailPage,openCreatePage:openCreatePage,openEditPage:openEditPage,openCustomPage:openCustomPage,reOpenPage:reOpenPage,addPage:addPage,deletePage:deletePage,updatePage:updatePage,searchPage:searchPage,close:close$1,refresh:refresh,getCurrentPage:getCurrentPage});function initUserInfo(sentry,ccUser=window.$CCDK.CCUser.getUserInfo()){if(ccUser&&ccUser!=""){sentry.setTag("orgId",ccUser.orgId);sentry.setTag("orgName",ccUser.orgName);sentry.setUser({username:ccUser.userName,id:ccUser.userId})}}function reportMemory(sentry,ccUser){if(performance.memory){let memeryMsg="Memory monitoring:jsHeapSizeLimit="+(performance.memory.jsHeapSizeLimit/1024/1024).toFixed(2)+"mb、"+"totalJSHeapSize="+(performance.memory.totalJSHeapSize/1024/1024).toFixed(2)+"mb、"+"usedJSHeapSize="+(performance.memory.usedJSHeapSize/1024/1024).toFixed(2)+"mb";initUserInfo(sentry,ccUser);sentry.withScope(function(scope){sentry.setTag("usedJSHeapSize",(performance.memory.usedJSHeapSize/1024/1024).toFixed(2));scope.setFingerprint(["Memory Monitoring"]);sentry.captureMessage(memeryMsg)})}}function reportHttpException(sentry,error,ccUser){initUserInfo(sentry,ccUser);sentry.withScope(function(scope){scope.setFingerprint(["Interface Uncaught Exceptions response"]);sentry.captureException(error)})}var CCSentry=Object.freeze({__proto__:null,initUserInfo:initUserInfo,reportMemory:reportMemory,reportHttpException:reportHttpException});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding",cookieName=TOKEN){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){token=setToken(token,cookieName)}return token}function setToken(token,cookieName=TOKEN,domain=getDomain()){Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12,sameSite:"Lax"});Cookies.set("JSESSIONID",token,{expires:1/12,sameSite:"Lax"});return token}function clearToken(cookieName=TOKEN,domain=getDomain()){Cookies.remove(Crypto.encrypt(cookieName),{domain:domain});Cookies.remove(Crypto.encrypt(cookieName));Cookies.remove("JSESSIONID");localStorage.removeItem(Crypto.encrypt(cookieName))}var CCToken=Object.freeze({__proto__:null,setToken:setToken,getToken:getToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const USER_INFO="cc_user_info";const USER_JWT_INFO="cc_user_jwt_info";function setUserInfo(userInfo,domain=getDomain(),keyName=USER_INFO){Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(userInfo),{domain:domain,expires:1/12,sameSite:"Lax"})}function getUserInfo(keyName=USER_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}function setUserJwtInfo(jwtInfo,domain=getDomain(),keyName=USER_JWT_INFO){Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(jwtInfo),{domain:domain,expires:1/12,sameSite:"Lax"})}function getUserJwtInfo(keyName=USER_JWT_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return JSON.parse(Crypto.decrypt(encryptUserInfo))}else{return{}}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo,setUserJwtInfo:setUserJwtInfo,getUserJwtInfo:getUserJwtInfo});function emptyArray(arr){if(!(arr instanceof Object)){throw new Error("Illegal parameters")}for(let key in arr){if(arr[key]){return false}}return true}var CCArray=Object.freeze({__proto__:null,emptyArray:emptyArray});function getCookie(name){let prefix=name+"=";let start=document.cookie.indexOf(prefix);if(start==-1){return null}let end=document.cookie.indexOf(";",start+prefix.length);if(end==-1){end=document.cookie.length}let value=document.cookie.substring(start+prefix.length,end);return unescape(value)}function IEVersion(){let userAgent=navigator.userAgent;let isOpera=userAgent.indexOf("Opera")>-1;let isIE=userAgent.indexOf("compatible")>-1&&userAgent.indexOf("MSIE")>-1&&!isOpera;let isEdge=userAgent.indexOf("Edge")>-1&&!isIE;if(isIE){let reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(userAgent);let fIEVersion=parseFloat(RegExp["$1"]);if(fIEVersion===7){return"IE7"}else if(fIEVersion===8){return"IE8"}else if(fIEVersion===9){return"IE9"}else if(fIEVersion===10){return"IE10"}else if(fIEVersion===11){return"IE11"}else{return"0"}}else if(isEdge){return"edge"}else{return"-1"}}function getBrowserType(){let browserType="";let _userAgent=navigator.userAgent;if(_userAgent&&_userAgent.includes("Lark")){browserType="feishu"}else if(_userAgent&&_userAgent.includes("MicroMessenger")){browserType="qiyeweixin"}else if(_userAgent&&_userAgent.includes("micromessenger")){browserType="weixin"}else if(_userAgent&&_userAgent.includes("DingTalk")){browserType="dingding"}return browserType}function getUrl(path){let browserType=getBrowserType();let url="";let appid="cli_a3e37d398e7bd00c";if(browserType=="feishu"){url=`https://applink.feishu.cn/client/web_app/open?appId=${appid}&mode=window&lk_target_url=${encodeURIComponent(location.origin+"/"+path)}`}else{url=path}return url}var CCBrower=Object.freeze({__proto__:null,getCookie:getCookie,IEVersion:IEVersion,getBrowserType:getBrowserType,getUrl:getUrl});class Button{constructor({label,notShow=false,type,disabled,action,cssClass="small",danger,checkedLength,role,resourceCode,icon}){this.label=label;this.notShow=notShow;this.type=type;this.disabled=disabled;this.action=action;this.cssClass=cssClass;this.danger=danger;this.checkedLength=checkedLength;this.icon=icon;this.role=role;this.resourceCode=resourceCode}}function createButton({label,type,disabled,action,cssClass,danger,checkedLength,resourceCode,role,icon}){return new Button(...arguments)}var CCButton=Object.freeze({__proto__:null,createButton:createButton});const LocalEnum=Object.freeze({ZH:"zh",EN:"en"});let messages={};const addMessages=(locale,message)=>{if(!messages[locale]){messages[locale]={}}messages[locale]={...messages[locale],...message}};let currentLocale="";let localeChangeSubscribers=[];const setLocale=locale=>{if(messages[locale]){currentLocale=locale;localeChangeSubscribers.forEach(callback=>callback(locale))}else{console.warn(`Locale ${locale} not found`)}};const t=key=>{return messages[currentLocale][key]||key};const subscribeToLocaleChange=callback=>{localeChangeSubscribers.push(callback)};Vue.mixin({created(){subscribeToLocaleChange(()=>{this.$forceUpdate()})}});var CCI18n=Object.freeze({__proto__:null,addMessages:addMessages,setLocale:setLocale,t:t,LocalEnum:LocalEnum});let CCDK={CCButton:CCButton,CCBrower:CCBrower,CCArray:CCArray,CCDB:CCDB,CCApplication:CCApplication,CCAxios:CCHttp$1,CCUser:CCUser,CCCrypto:Crypto,CCDetail:CCDetail,CCList:CCList,CCToken:CCToken,CCConfig:CCConfig,CCLoad:CCLoad,CCLog:CCLog,CCMenu:CCMenu,CCUtils:CCUtils,CCHttp:CCHttp,CCObject:CCObject,CCPage:CCPage,CCSentry:CCSentry,CCSide:CCSide,CCBus:CCBus,CCCall:CCCall,CCCommon:CCCommon,CCMessage:CCMessage,CCI18n:CCI18n};Vue.prototype.$CCDK=CCDK;window.$CCDK=CCDK;export{CCDK as default};
|
|
1
|
+
import Vue from"vue";import Dexie from"dexie";import axios,{AxiosError}from"axios";import{cloneDeep}from"lodash";import Cookies from"js-cookie";import Jwt from"jsonwebtoken";import CryptoJS from"crypto-js";import{Message,MessageBox,Notification}from"element-ui";import dayjs from"dayjs";const db=new Dexie("cloudcc-ltn-main-web");function init$2(tablename,version=1,...fields){return db.version(version).stores({[tablename]:`++id, ${fields}`})}async function create(tableName,data=[]){return await db[tableName].bulkPut(data)}async function deleteCC(tableName,ids=[]){return await db[tableName].bulkDelete(ids)}async function list(tableName,condition){return await db[tableName].where(condition).toArray()}async function detail(tableName,id){return await db[tableName].get(id)}async function transaction(tableName,transaction){await db.transaction("rw",[db[tableName]],transaction)}var CCDB=Object.freeze({__proto__:null,db:db,init:init$2,create:create,deleteCC:deleteCC,list:list,detail:detail,transaction:transaction});const APPLICATION_DETAIL=()=>{return window.$CCDK.CCUser.getUserInfo().userId+"-currentApp"};function getApplicaton(){let detail=localStorage.getItem(APPLICATION_DETAIL());if(detail){return JSON.parse(detail)}return""}function setApplication(detail=""){if(detail){localStorage.setItem(APPLICATION_DETAIL(),JSON.stringify(detail))}}var CCApplication=Object.freeze({__proto__:null,getApplicaton:getApplicaton,setApplication:setApplication});function getAesString(data,key,iv){key=CryptoJS.enc.Utf8.parse(key);iv=CryptoJS.enc.Utf8.parse(iv);let encrypted=CryptoJS.AES.encrypt(data,key,{iv:iv,padding:CryptoJS.pad.Pkcs7});return encrypted.toString()}function getDAesString(encrypted,key,iv){key=CryptoJS.enc.Utf8.parse(key);iv=CryptoJS.enc.Utf8.parse(iv);let decrypted=CryptoJS.AES.decrypt(encrypted,key,{iv:iv,padding:CryptoJS.pad.Pkcs7});return decrypted.toString(CryptoJS.enc.Utf8)}function encrypt(data,key="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",iv=1){data=JSON.stringify(data);var encrypted=getAesString(data,key,iv);return encrypted}function decrypt(data,key="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",iv=1){try{var decryptedStr=getDAesString(data,key,iv);if(!decryptedStr)return null;return JSON.parse(decryptedStr)}catch(error){console.trace("Decryption password error",error);return null}}var Crypto=Object.freeze({__proto__:null,encrypt:encrypt,decrypt:decrypt});const CCDK_INFO={};const LOGINLOGOSRC="LoginLogoSrc";const nameFormBus="ccForm";const relatedName="ccRelatedForm";function getDomain(){let domain=document.domain;if(isValidIP(domain)){return domain}else{let lastTow=document.domain.split(".").slice(-2,-1)[0];if(lastTow=="com"||lastTow=="org"||lastTow=="net"){return"."+document.domain.split(".").slice(-3).join(".")}else if(document.domain.indexOf(".cloudapp.azure.com")!=-1){return"."+document.domain.split(".").slice(-4).join(".")}else if(document.domain.indexOf(".azurewebsites.net")!=-1){return"."+document.domain.split(".").slice(-3).join(".")}else{return"."+document.domain.split(".").slice(-2).join(".")}}}function isValidIP(ip){var reg=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;return reg.test(ip)}function verifyToken(token){let j=Jwt.decode(token);return{result:j&&j.versionType&&j.loginName&&j.binding&&j.userId&&j.orgId,jwt:j}}function getNowFormatDate(){var myDate=new Date;var year=myDate.getFullYear();var mon=myDate.getMonth()+1;if(mon<10){mon="0"+mon}var date=myDate.getDate();if(date<10){date="0"+date}var hours=myDate.getHours();if(hours<10){hours="0"+hours}var minutes=myDate.getMinutes();if(minutes<10){minutes="0"+minutes}var seconds=myDate.getSeconds();if(seconds<10){seconds="0"+seconds}var now=year+"-"+mon+"-"+date+" "+hours+":"+minutes+":"+seconds;return now}function getUuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=="x"?r:r&3|8;return v.toString(16)})}function getBinding(){let binding=window.$CCDK.CCToken.getToken();if(!binding){window.open(window.Glod.LOGIN_URL,"_self")}else{Cookies.set("binding",binding,{expires:1/12,sameSite:"Lax"});Cookies.set("JSESSIONID",binding,{expires:1/12,sameSite:"Lax"})}return binding}function getCurrentPageType(){let currentPage;let currentHref=window.location.hash||"";currentHref=currentHref.split("?")[0]||"";const lastHref=currentHref.split("/").pop();if(currentHref.includes("#/commonObjects/views/table")){currentPage="view"}else if(lastHref==="DETAIL"){currentPage="detail"}return currentPage}function setValueTypeConversion(value){let newArr=[];value.forEach(childVal=>{if(childVal.indexOf(",")!==-1){childVal=childVal.split()}newArr.push(childVal)});let newData="";newArr.forEach(nVal=>{if(Array.isArray(nVal)){newData+="["+nVal+"],"}else{newData+=nVal+","}});return newData.slice(0,newData.length-1)}function echoValueTypeConversion(value){let newArr=[];if(!value){return newArr}if(!value.match(/\[(.+?)\]/g)){newArr=value.split(",");return newArr}value.match(/\[(.+?)\]/g).map(item=>newArr.push(item.replace(/\[|]/g,"")));let valueArr=value.replace(/\[.*?\]/g,"").replace(/^,*|,*$/g,"");if(valueArr){valueArr=valueArr.split(",");newArr=newArr.concat(valueArr)}return newArr}function setFormFieldValue(option){window.$CCDK.CCBus.$emit(nameFormBus,"set",option)}function getFormFieldValue(option){const{formId}=option||{};if(formId){window.$CCDK.CCBus.$emit(nameFormBus,"get",option);let data=null;const funName="$CCForm"+formId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function getFormFieldInfo(option){const{formId}=option||{};if(formId){window.$CCDK.CCBus.$emit(nameFormBus,"getInfo",option);let data=null;const funName="$CCForm_info"+formId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function setPlatform(value){CCDK_INFO.platform=value}function getPlatform(){return CCDK_INFO.platform}function setLogoSrc(value="",expires=7){Cookies.set(Crypto.encrypt(LOGINLOGOSRC),value,{domain:getDomain(),expires:expires,sameSite:"Lax"})}function getLogoSrc(){return Cookies.get(Crypto.encrypt(LOGINLOGOSRC))||null}function clearLogoSrc(){Cookies.remove(LOGINLOGOSRC)}function getRelatedInfo(option){const{formId}=option||{};if(formId){window.$CCDK.CCBus.$emit(nameFormBus,relatedName+"_getInfo",option);let data=null;const funName=relatedName+formId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function setRelatedValue(option){window.$CCDK.CCBus.$emit(nameFormBus,relatedName+"_set",option)}function getRelatedValue(option){const{formId,relatedId}=option||{};if(formId&&relatedId){window.$CCDK.CCBus.$emit(nameFormBus,relatedName+"_get",option);let data=null;const funName=relatedName+formId+relatedId;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}var CCUtils=Object.freeze({__proto__:null,getDomain:getDomain,getUuid:getUuid,getBinding:getBinding,getNowFormatDate:getNowFormatDate,verifyToken:verifyToken,getCurrentPageType:getCurrentPageType,setValueTypeConversion:setValueTypeConversion,echoValueTypeConversion:echoValueTypeConversion,setFormFieldValue:setFormFieldValue,getFormFieldValue:getFormFieldValue,setPlatform:setPlatform,getPlatform:getPlatform,setLogoSrc:setLogoSrc,getLogoSrc:getLogoSrc,clearLogoSrc:clearLogoSrc,getFormFieldInfo:getFormFieldInfo,setRelatedValue:setRelatedValue,getRelatedValue:getRelatedValue,getRelatedInfo:getRelatedInfo});const toStr=Object.prototype.toString;const TypeEnum={FUNCTION:"[object Function]",ARRAY:"[object Array]"};const isFn=value=>toStr.call(value)===TypeEnum.FUNCTION;const isProduction=()=>true;const delay=(waitTime=1e3)=>new Promise(resolve=>setTimeout(resolve,waitTime));const isTimeout=(error={code:"",message:""})=>{return error.code===AxiosError.ECONNABORTED&&error.message.includes("timeout")};const formateData=data=>{return{head:{appType:"lightning-main",appVersion:"1.1.1",accessToken:getBinding(),source:"lightning-main"},body:{...data}}};const deepMerge=(source,target)=>{const res=cloneDeep(source);for(let key in target){if(target.hasOwnProperty(key)){res[key]=isObject(target[key])?deepMerge(res[key],target[key]):target[key]}}return res};const LRUCache=function(capacity){this.capacity=capacity;this.cache=new Map};LRUCache.prototype.get=function(key){var cacheTemp=this.cache,curTemp=cacheTemp.get(key);if(curTemp||curTemp===0){cacheTemp.delete(key);cacheTemp.set(key,curTemp);return curTemp}return null};LRUCache.prototype.put=function(key,value){var cacheTemp=this.cache;if(cacheTemp.get(key)){cacheTemp.delete(key)}else if(cacheTemp.size>=this.capacity){cacheTemp.delete(cacheTemp.keys().next().value)}cacheTemp.set(key,value)};class CCAxios{constructor(opt){this.options=opt;this.axiosInstance=axios.create(opt);this.setupInterceptors();this.cachePool=new LRUCache(20)}getTransform(){const{transform}=this.options;return transform}setupInterceptors(){const transform=this.getTransform();if(!transform){return}const{requestInterceptors,requestInterceptorsCatch,responseInterceptors,responseInterceptorsCatch}=transform;this.axiosInstance.interceptors.request.use(requestInterceptors,undefined);requestInterceptorsCatch&&isFn(requestInterceptorsCatch)&&this.axiosInstance.interceptors.request.use(undefined,requestInterceptorsCatch);this.axiosInstance.interceptors.response.use(responseInterceptors,undefined);responseInterceptorsCatch&&isFn(responseInterceptorsCatch)&&this.axiosInstance.interceptors.response.use(undefined,error=>{return responseInterceptorsCatch(this.axiosInstance,error)})}get(config,options={}){return this.request({...config,method:"GET"},options)}post(config,options={}){const{envType}=options;if("public"==envType&&"private"==window.Glod["ENV_TYPE"]){return new Promise(()=>{})}if("private"==envType&&"private"!=window.Glod["ENV_TYPE"]){return new Promise(()=>{})}return this.request({...config,method:"POST"},options)}postFormat(config,options={}){return this.request({...config,method:"POST",data:formateData(config.data)},options)}postParams(config,options={}){return this.request({...config,method:"POST",params:config.data},options)}request(config,options){const transform=this.getTransform();const conf=config,{requestOptions}=this.options;requestOptions.cache=false;requestOptions.cacheKey="";requestOptions.retryRequest={isOpenRetry:false,count:5,waitTime:1e3};const opt=Object.assign({},requestOptions,options);conf.requestOptions=opt;const retPromise=new Promise((resolve,reject)=>{this.axiosInstance(conf).then(res=>{const{transformResponseHook}=transform;if(transformResponseHook&&isFn(transformResponseHook)){try{const ret=transformResponseHook(res,opt,this.cachePool);resolve(ret)}catch(err){reject(err||new Error("request error!"))}return}resolve(res)}).catch(err=>{reject(err)})});retPromise.cache=callback=>{const{cache,cacheKey}=opt;const cacheData=cache&&this.cachePool.get([cacheKey]);callback(cacheData?cacheData:null);return retPromise};return retPromise}}const createErrorModal=(response,options)=>{const{message}=options;let temp;if(response.name==="AxiosError"){temp=response.response;temp.data.returnInfo=response.returnInfo||message||temp.error||"";temp.data.returnCode=response.code||temp.status;temp.data.requestId=response.config.headers.requestId}else{temp=response;temp.data.requestId=response.config.headers.requestId}isFn(Vue.prototype.$ErrorDialog)&&Vue.prototype.$ErrorDialog({response:temp})};const createMessage=Message;const needReportErrorType=["901","999"];function checkStatus(error,status,msg,errorMessageMode="modal"){let errMessage="message.error.object.contactadministrators";if(status===401){window.open(window.Glod.LOGIN_URL,"_self")}{if(errorMessageMode==="modal"){createErrorModal(error,{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}}}const retry=async(instance,error)=>{const{config}=error,{waitTime,count=5}=config.requestOptions||{};config.__retryCount=config.__retryCount||0;if(count<=config.__retryCount){return Promise.reject(error)}config.__retryCount++;await delay(waitTime);delete config.headers;return instance(config)};const transform={requestInterceptors(config){config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";config.headers.accessToken=window.$CCDK.CCToken.getToken();return config},responseInterceptors(response){const{data,config}=response,{errorType,result}=data;if(!result){if(needReportErrorType.includes(errorType)&&isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(response)}}return response}const{infoReporter}=config.requestOptions;if(infoReporter&&isFn(infoReporter)){infoReporter(response)}return response},async responseInterceptorsCatch(axiosInstance,error){const{response,config}=error||{};let err="",msg="",mode="modal";try{err=error.toString(),msg=response.data.error,mode=config.requestOptions.errorMessageMode}catch(e){}let errorMessageMode=["message","modal"].includes(mode)&&mode||"modal",errMessage="";if(axios.isCancel(error)){return Promise.reject(error)}try{if(isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(error)}}if(isTimeout(error)){errMessage="c2487"}if(err&&err.includes("Network Error")){errMessage="c929"}if(errMessage){if(errorMessageMode==="modal"){createErrorModal({...error,response:{data:{returnInfo:error.message,returnCode:error.code,requestId:error.config.headers.requestId},config:error.config}},{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}return Promise.reject(error)}}catch(error){throw new Error(error)}checkStatus(error,error&&error.response.status,msg,errorMessageMode);const{isOpenRetry}=config;isOpenRetry&&config.method&&config.method.toUpperCase()==="GET"&&retry(axiosInstance,error);return Promise.reject(error)},transformResponseHook(response,options,cachePool){const{data}=response;const{errorType,result}=data;const businessLogicError=response=>{const{errorMessageMode,silent}=response.config.requestOptions;if(silent)return;if(errorMessageMode==="modal"){createErrorModal(response,{message:"Business Error"})}else if(errorMessageMode==="message"){createMessage.error(response&&response.data&&response.data.returnInfo||"Business Error")}};if(!result){switch(errorType){case"901":createErrorModal(response,{message:"System Error"});break;case"999":break;case"501":default:businessLogicError(response);break}return Promise.reject(response)}const{isReturnNativeResponse,cache,cacheKey}=options;if(isReturnNativeResponse){cache&&cacheKey&&cachePool.put(cacheKey,response);return response}cache&&cacheKey&&cachePool.put(cacheKey,data);return data}};function createAxios(opt){return new CCAxios(deepMerge({timeout:60*1e3,headers:{"Content-Type":"application/json;charset=UTF-8"},transform:cloneDeep(transform),requestOptions:{envType:"",errorMessageMode:"modal",silent:false,cache:false,retryRequest:{isOpenRetry:false,count:5,waitTime:100},isReturnNativeResponse:false}},opt||{}))}var CCHttp$1=Object.freeze({__proto__:null,createAxios:createAxios});Vue.prototype.$Bus=new Vue;window.ccBus=Vue.prototype.$Bus;function $emit(...args){window.ccBus.$emit(...args)}function $on(...args){window.ccBus.$on(...args)}function $off(...args){window.ccBus.$off(...args)}var CCBus=Object.freeze({__proto__:null,$emit:$emit,$on:$on,$off:$off});let ccCall=new Map;let currentCall;function init$1(id,callClient){if(id&&callClient){ccCall.set(id,callClient);currentCall=callClient;return currentCall}}function call(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.call(options)}return call}function openCallPanel(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.openCallPanel(options)}return call}var CCCall=Object.freeze({__proto__:null,init:init$1,call:call,openCallPanel:openCallPanel});function reportError(response){if("1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",{serviceName:"lightning-custom-page"})}}function reportInfo(response){if("2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",{serviceName:"lightning-custom-page"})}}const service$1=axios.create({timeout:60*1e3,headers:{"Content-Type":"application/json; charset=utf-8"}});service$1.interceptors.request.use(config=>{config.headers.accessToken=window.$CCDK.CCToken.getToken();config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";return config},error=>{Promise.reject(error)});service$1.interceptors.response.use(response=>{if(response.data.result){reportInfo(response);return response.data}else{reportError(response);return Promise.reject(response)}},error=>{if(error){reportError(error.response)}return Promise.reject(error)});var http={get:(url,data={},responseType="")=>{return service$1({url:url,method:"get",params:data,responseType:responseType})},post:(url,data={},responseType="",config={})=>{return service$1({url:url,method:"post",data:data,responseType:responseType,...config})}};function post$1(className,methodName,params,config){return http.post(window.Glod["ccex-apitsf"]+"/api/openCall/common",{className:className,methodName:methodName,params:params},"",config)}var CCCommon=Object.freeze({__proto__:null,post:post$1});function getBaseUrl(){return window.gw.BASE_URL||window.Glod.BASE_URL||window.location.origin+"/ccdomaingateway"}function getGw(){return window.gw||window.Glod}function getSvc(){return window.Glod}function getCDNUrl(){return window.Glod.CDN_URL}var CCConfig=Object.freeze({__proto__:null,getBaseUrl:getBaseUrl,getGw:getGw,getSvc:getSvc,getCDNUrl:getCDNUrl});const service=axios.create({timeout:6e4,headers:{"Content-Type":"application/json; charset=utf-8"}});service.interceptors.request.use(config=>{config.headers["accessToken"]=window.$CCDK.CCToken.getToken();return config},error=>{Promise.reject(error)});service.interceptors.response.use(response=>{const code=response.data.code||200;if(code!==200){return Promise.reject(null==response.data.msg?"unknown anomaly":response.data.msg)}else{return response.data}},error=>{return Promise.reject(error)});function get(url,data={},responseType="",config={}){return service({url:url,method:"get",params:data,responseType:responseType,...config})}function post(url,data={},responseType="",config={}){return service({url:url,method:"post",data:data,responseType:responseType,...config})}function put(url,data={}){return service({url:url,method:"put",data:data})}function postParams(url,data={}){return service({url:url,method:"post",params:data})}function patch(url,data={}){return service({url:url,method:"patch",data:data})}var CCHttp=Object.freeze({__proto__:null,get:get,post:post,put:put,patch:patch,postParams:postParams});function loadJs(src,scriptOption){return new Promise((resolve,reject)=>{let scriptTemp=document.createElement("script");if(scriptOption){Object.assign(scriptTemp,scriptOption)}scriptTemp.type="text/javascript";scriptTemp.src=src;document.body.appendChild(scriptTemp);scriptTemp.onload=()=>{resolve()};scriptTemp.onerror=()=>{reject()}})}function createLoadJsComponent(){Vue.component("cc-load-script",{render:function(createElement){var self=this;return createElement("script",{attrs:{type:"text/javascript",src:this.src},on:{load:function(event){self.$emit("load",event)},error:function(event){self.$emit("error",event)},readystatechange:function(event){if(this.readyState=="complete"){self.$emit("load",event)}}}})},props:{src:{type:String,required:true}}})}var CCLoad=Object.freeze({__proto__:null,loadJs:loadJs,createLoadJsComponent:createLoadJsComponent});function getBaseInfo(){let userInfo=window.$CCDK.CCUser.getUserInfo();let old={userName:userInfo.loginName||"unknown user",userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName,serviceName:"unknown application",recordType:"platform",logType:"front",operateTime:(new Date).valueOf(),operateTimeStr:window.$CCDK.CCUtils.getNowFormatDate(),cccode:"hidden",displayLevel:"2"};return old}function getHttpErrorInfo(error={}){let{config={},data={}}=error;if(config){return{requestUrl:config.baseURL+config.url,requestId:config.headers?config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:config.headers?config.headers.requestIdProducer:"",requestParameter:config.data,errorMessage:error.message||data.returnInfo||"Unknown Error",requestResult:"Fail",errorLevel:"2",printStackTraceInfo:(error.message||data.returnInfo||"Unknown Error")+"\n"+config.data}}else{return{}}}function getHttpInfo(response){if(response){if(window.performance){let per=performance.getEntriesByName(response.request.responseURL,"resource");if(per.length>0){let index=per.length-1;response.spendTime=per[index].fetchStart>0?per[index].responseEnd-per[index].fetchStart:"0"}}return{spendTime:response.spendTime||"0",requestUrl:response.request?response.request.responseURL:"",requestId:response.config.headers?response.config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:response.config.headers?response.config.headers.requestIdProducer:"",requestParameter:response.config.data,infoMessage:response.request.responseURL+". took:"+(response.spendTime||0).toFixed(0)+"ms"+"\n"+(response.config.data||""),requestResult:response.data.result?"Success":"Fail",infoType:"info"}}else{return{}}}function reportLog(url,response,type="info",logInfo={}){let userInfo=getBaseInfo();if("unknown user"!=userInfo.userName&&userInfo.userName){axios.post(url,{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...logInfo})}}function batchReportLog(url,response,type="info",logInfo=[]){let userInfo=getBaseInfo();if("unknown user"!=userInfo.userName&&userInfo.userName&&logInfo.length>0){let datas=logInfo.map(info=>{return{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...info}});axios.post(url,datas)}}function reportInfoLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",logInfo)}function reportErrorLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",logInfo)}function reportCCError(error,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",error,"error",options)}}function reportCCInfo(response,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"2"===window.Glod["CC_LOG_LEVEL"]){if(response.config.data){try{let data=JSON.parse(response.config.data);if(data.head&&data.head.accessToken){data.head.accessToken="******";response.config.data=JSON.stringify(data)}}catch(e){}}window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",options)}}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog,reportCCError:reportCCError,reportCCInfo:reportCCInfo,batchReportLog:batchReportLog});const ALL_MENU_LIST="all_menu_list";const CURRENT_MENU="current_menu";function getAllMenu(){let data=localStorage.getItem(Crypto.encrypt(ALL_MENU_LIST));if(data){return JSON.parse(data)}return[]}function setAllMenu(data=[]){if(data){localStorage.setItem(Crypto.encrypt(ALL_MENU_LIST),JSON.stringify(data))}}function setCurrentMenu(data={}){if(data){localStorage.setItem(Crypto.encrypt(CURRENT_MENU),JSON.stringify(data))}}function getCurrentMenu(){let data=localStorage.getItem(Crypto.encrypt(CURRENT_MENU));if(data){return JSON.parse(data)}return{}}function addMenu1(options){window.$CCDK.CCBus.$emit("addMenu1",options)}function addMenu2(options){window.$CCDK.CCBus.$emit("addMenu2",options)}function deleteMenu1(options){window.$CCDK.CCBus.$emit("deleteMenu1",options)}function deleteMenu2(options){window.$CCDK.CCBus.$emit("deleteMenu2",options)}function refreshMenu1(options){window.$CCDK.CCBus.$emit("refreshMenu1",options)}function refreshMenu2(options){window.$CCDK.CCBus.$emit("refreshMenu2",options)}function replaceMenu1(options){window.$CCDK.CCBus.$emit("replaceMenu1",options)}function replaceMenu2(options){window.$CCDK.CCBus.$emit("replaceMenu2",options)}function reOpenMenu1(options){window.$CCDK.CCBus.$emit("reOpenMenu1",options)}function reOpenMenu2(options){window.$CCDK.CCBus.$emit("reOpenMenu2",options)}var CCMenu=Object.freeze({__proto__:null,addMenu1:addMenu1,addMenu2:addMenu2,deleteMenu1:deleteMenu1,deleteMenu2:deleteMenu2,refreshMenu1:refreshMenu1,refreshMenu2:refreshMenu2,replaceMenu1:replaceMenu1,replaceMenu2:replaceMenu2,reOpenMenu1:reOpenMenu1,reOpenMenu2:reOpenMenu2,getAllMenu:getAllMenu,setAllMenu:setAllMenu,setCurrentMenu:setCurrentMenu,getCurrentMenu:getCurrentMenu});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL_ID="cc_object_detail_id";const OBJECT="cc_object";const OBJECT_LIST="cc_object_list";const detailRecord="_detail";let sessionSize=null;let localSize=null;function clearStorag(type="session"){let obj=null;let size=0;if(type==="local"){obj=window.localStorage}else{obj=window.sessionStorage}if(obj&&typeof obj==="object"){obj.removeItem(Crypto.encrypt(OBJECT_LIST));for(let i in obj){if(i&&obj.hasOwnProperty(i)){const keyVal=i.split("_").pop();const keyList=["detail","record"];if(keyList.includes(keyVal)){obj.removeItem(i)}else{let item=obj.getItem(i);if(item){size+=item.length}}}}}return size/1024/1024}function CCSetStorag(storagInfo){const{type,storageKey,value}=storagInfo||{};if(type&&storageKey){const storagObj=type==="local"?window.localStorage:window.sessionStorage;if(storagObj&&typeof storagObj==="object"){let globalSize=type==="local"?localSize:sessionSize;const valueSize=value?value.length/1024/1024:0;if(globalSize===null){globalSize=getStoragSize(type)}globalSize=globalSize+valueSize;if(globalSize>4){let val=clearStorag(type);globalSize=valueSize+val}if(type==="local"){localSize=globalSize}else{sessionSize=globalSize}storagObj.setItem(storageKey,value)}}}function getStoragSize(type="session"){let obj=null;let size=0;if(type==="local"){obj=window.localStorage}else{obj=window.sessionStorage}if(obj&&typeof obj==="object"){for(let i in obj){if(obj.hasOwnProperty(i)){let item=obj.getItem(i);if(item){size+=item.length}}}}return size/1024/1024}function getObject(){let detail=localStorage.getItem(Crypto.encrypt(OBJECT));if(detail){return JSON.parse(detail)}return""}function setObject(detail=""){if(detail){localStorage.setItem(Crypto.encrypt(OBJECT),JSON.stringify(detail))}}function getObjectDetail(apiname,detailId){let detail;detailId=detailId||window.$CCDK.CCDetail.getDetailId();detailId=detailId+detailRecord;if(detailId){detail=sessionStorage.getItem(detailId)}if(detail){detail=JSON.parse(detail);if(apiname){let detailList=detail.detail||[];let targetField=undefined;targetField=detailList.find(item=>item.apiname===apiname);return targetField}else{return detail}}else{return""}}function setObjectDetail(detail=""){if(detail&&detail.id){if(Array.isArray(detail.detail)&&detail.detail.length>0){let data=[];detail.detail.forEach(item=>{if(item&&Array.isArray(item.data)){item.data.forEach(itemData=>{if(itemData.left&&!Array.isArray(itemData.left)){data.push(itemData.left)}if(itemData.right&&!Array.isArray(itemData.right)){data.push(itemData.right)}})}});if(data.length>0){detail.detail=data}}const detailKey=detail.id+detailRecord;const info={type:"session",storageKey:detailKey,value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function setObjectList(detail={}){if(detail){const info={type:"session",storageKey:Crypto.encrypt(OBJECT_LIST),value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function getObjectList(){let detail=sessionStorage.getItem(Crypto.encrypt(OBJECT_LIST));if(detail){return JSON.parse(detail)}return{ids:[]}}function setObjectDetailId(id=""){if(id){localStorage.setItem("detailRecordId",id);sessionStorage.setItem(Crypto.encrypt(OBJECT_DETAIL_ID),id)}}function getObjectDetailId(){let id=sessionStorage.getItem(Crypto.encrypt(OBJECT_DETAIL_ID));if(!id){id=localStorage.getItem("detailRecordId")}return id}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail,setObjectDetailId:setObjectDetailId,getObjectDetailId:getObjectDetailId,CCSetStorag:CCSetStorag});const TABLE_NAME$1="ccdetail";const record="_record";function setRelatedSelected(detailId,recordId,list){if(detailId&&recordId&&list){detailId=detailId+record;let detail=sessionStorage.getItem(detailId);if(detail){detail=JSON.parse(detail);detail[recordId]=list}else{detail={};detail[recordId]=list}const info={type:"session",storageKey:detailId,value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function getRelatedSelected(recordId,detailId){if(!detailId){detailId=window.$CCDK.CCObject.getObjectDetailId();if(!detailId)return}detailId=detailId+record;let detail=sessionStorage.getItem(detailId);if(detail){detail=JSON.parse(detail);if(recordId){detail=detail[recordId]}}return detail}function getDetail(apiname,detailId){return window.$CCDK.CCObject.getObjectDetail(apiname,detailId)}function setDetail(detail=""){window.$CCDK.CCObject.setObjectDetail(detail)}function setDetailId(id=""){window.$CCDK.CCObject.setObjectDetailId(id)}function getDetailId(){return window.$CCDK.CCObject.getObjectDetailId()}function refreshRelatedList(ids){window.$CCDK.CCBus.$emit("refreshRelation",{relatedlistId:ids})}async function setRelatedFieldWidth(object){return await window.$CCDK.CCDB.create(TABLE_NAME$1,[object])}async function getRelatedFieldWidth(object){return await window.$CCDK.CCDB.list(TABLE_NAME$1,object)}var CCDetail=Object.freeze({__proto__:null,getDetail:getDetail,setDetail:setDetail,setDetailId:setDetailId,getDetailId:getDetailId,refreshRelatedList:refreshRelatedList,setRelatedFieldWidth:setRelatedFieldWidth,getRelatedFieldWidth:getRelatedFieldWidth,setRelatedSelected:setRelatedSelected,getRelatedSelected:getRelatedSelected});const TABLE_NAME="cclist";function setSelected(detail={}){const ids=detail&&detail.ids;if(ids){let info=window.$CCDK.CCObject.getObjectList()||{};info.ids=ids;window.$CCDK.CCObject.setObjectList(info)}}function getSelected(){let{ids}=window.$CCDK.CCObject.getObjectList();return{ids:ids}}function getViewId(){let{viewId}=window.$CCDK.CCObject.getObjectList();return viewId||""}async function setFilter(object){await window.$CCDK.CCDB.create(TABLE_NAME,[object])}async function getFilter(object){return await window.$CCDK.CCDB.list(TABLE_NAME,object)}async function deleteFilter(id){return await window.$CCDK.CCDB.deleteCC(TABLE_NAME,id)}async function clearFilterAll(){await window.$CCDK.CCDB.db[TABLE_NAME].toCollection().modify(item=>{item.filtercondition="";item.filterdetail=""})}function getViewInfo(){return window.$CCDK.CCObject.getObjectList()||{}}var CCList=Object.freeze({__proto__:null,setSelected:setSelected,getSelected:getSelected,setFilter:setFilter,getFilter:getFilter,deleteFilter:deleteFilter,clearFilterAll:clearFilterAll,getViewId:getViewId,getViewInfo:getViewInfo});let pageList=new Map;function openListPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openListPage",pageId,obj,options);return pageId}function openDetailPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openDetailPage",pageId,obj,id,options);return pageId}function openCreatePage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCreatePage",pageId,obj,options);return pageId}function openEditPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openEditPage",pageId,obj,id,options);return pageId}function openCustomPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCustomPage",pageId,obj,options);return pageId}function reOpenPage(pageId,options){let page;if(pageId){pageId=pageId+"";page=pageList.get(pageId)}if(page){page.reOpenPage();if(options.refresh){page.refresh()}}}function addPage(id,page){if(id&&page){id=id+"";pageList.set(id,page)}}function deletePage(pageId){if(pageId){pageId=pageId+"";pageList.delete(pageId)}}function updatePage(id,page){if(id&&page){id=id+"";pageList.set(id,page)}}function searchPage(pageId){pageId=pageId+"";return pageList.get(pageId)}function close$1(pageId=""){let page;if(pageId==="all"){page=[...pageList.values()];page.forEach(item=>{if(item){item.close()}})}else if(pageId){pageId=pageId+"";page=pageList.get(pageId)}else{let currentMenuTree=JSON.parse(localStorage.getItem("current_page"));if(currentMenuTree){if(currentMenuTree.level2Id){page=pageList.get(currentMenuTree.level2Id)}else{page=pageList.get(currentMenuTree.id)}}}if(page){page.close()}}function refresh(){window.$CCDK.CCBus.$emit("refresh")}function getCurrentPage(){let currentMenuTree=localStorage.getItem("current_page");if(currentMenuTree){return JSON.parse(currentMenuTree)}return""}var CCPage=Object.freeze({__proto__:null,openListPage:openListPage,openDetailPage:openDetailPage,openCreatePage:openCreatePage,openEditPage:openEditPage,openCustomPage:openCustomPage,reOpenPage:reOpenPage,addPage:addPage,deletePage:deletePage,updatePage:updatePage,searchPage:searchPage,close:close$1,refresh:refresh,getCurrentPage:getCurrentPage});function initUserInfo(sentry,ccUser=window.$CCDK.CCUser.getUserInfo()){if(ccUser&&ccUser!=""){sentry.setTag("orgId",ccUser.orgId);sentry.setTag("orgName",ccUser.orgName);sentry.setUser({username:ccUser.userName,id:ccUser.userId})}}function reportMemory(sentry,ccUser){if(performance.memory){let memeryMsg="Memory monitoring:jsHeapSizeLimit="+(performance.memory.jsHeapSizeLimit/1024/1024).toFixed(2)+"mb、"+"totalJSHeapSize="+(performance.memory.totalJSHeapSize/1024/1024).toFixed(2)+"mb、"+"usedJSHeapSize="+(performance.memory.usedJSHeapSize/1024/1024).toFixed(2)+"mb";initUserInfo(sentry,ccUser);sentry.withScope(function(scope){sentry.setTag("usedJSHeapSize",(performance.memory.usedJSHeapSize/1024/1024).toFixed(2));scope.setFingerprint(["Memory Monitoring"]);sentry.captureMessage(memeryMsg)})}}function reportHttpException(sentry,error,ccUser){initUserInfo(sentry,ccUser);sentry.withScope(function(scope){scope.setFingerprint(["Interface Uncaught Exceptions response"]);sentry.captureException(error)})}var CCSentry=Object.freeze({__proto__:null,initUserInfo:initUserInfo,reportMemory:reportMemory,reportHttpException:reportHttpException});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding",cookieName=TOKEN){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){token=setToken(token,cookieName)}return token}function setToken(token,cookieName=TOKEN,domain=getDomain()){Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12,sameSite:"Lax"});Cookies.set("JSESSIONID",token,{expires:1/12,sameSite:"Lax"});return token}function clearToken(cookieName=TOKEN,domain=getDomain()){Cookies.remove(Crypto.encrypt(cookieName),{domain:domain});Cookies.remove(Crypto.encrypt(cookieName));Cookies.remove("JSESSIONID");localStorage.removeItem(Crypto.encrypt(cookieName))}var CCToken=Object.freeze({__proto__:null,setToken:setToken,getToken:getToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const USER_INFO="cc_user_info";const USER_JWT_INFO="cc_user_jwt_info";function setUserInfo(userInfo,domain=getDomain(),keyName=USER_INFO){Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(userInfo),{domain:domain,expires:1/12,sameSite:"Lax"})}function getUserInfo(keyName=USER_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}function clearUserInfo(keyName=USER_INFO,domain=getDomain()){Cookies.remove(Crypto.encrypt(keyName),{domain:domain,sameSite:"Lax"})}function setUserJwtInfo(jwtInfo,domain=getDomain(),keyName=USER_JWT_INFO){Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(jwtInfo),{domain:domain,expires:1/12,sameSite:"Lax"})}function getUserJwtInfo(keyName=USER_JWT_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return JSON.parse(Crypto.decrypt(encryptUserInfo))}else{return{}}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo,setUserJwtInfo:setUserJwtInfo,getUserJwtInfo:getUserJwtInfo,clearUserInfo:clearUserInfo});function emptyArray(arr){if(!(arr instanceof Object)){throw new Error("Illegal parameters")}for(let key in arr){if(arr[key]){return false}}return true}var CCArray=Object.freeze({__proto__:null,emptyArray:emptyArray});function getCookie(name){let prefix=name+"=";let start=document.cookie.indexOf(prefix);if(start==-1){return null}let end=document.cookie.indexOf(";",start+prefix.length);if(end==-1){end=document.cookie.length}let value=document.cookie.substring(start+prefix.length,end);return unescape(value)}function IEVersion(){let userAgent=navigator.userAgent;let isOpera=userAgent.indexOf("Opera")>-1;let isIE=userAgent.indexOf("compatible")>-1&&userAgent.indexOf("MSIE")>-1&&!isOpera;let isEdge=userAgent.indexOf("Edge")>-1&&!isIE;if(isIE){let reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(userAgent);let fIEVersion=parseFloat(RegExp["$1"]);if(fIEVersion===7){return"IE7"}else if(fIEVersion===8){return"IE8"}else if(fIEVersion===9){return"IE9"}else if(fIEVersion===10){return"IE10"}else if(fIEVersion===11){return"IE11"}else{return"0"}}else if(isEdge){return"edge"}else{return"-1"}}function getBrowserType(){let browserType="";let _userAgent=navigator.userAgent;if(_userAgent&&_userAgent.includes("Lark")){browserType="feishu"}else if(_userAgent&&_userAgent.includes("MicroMessenger")){browserType="qiyeweixin"}else if(_userAgent&&_userAgent.includes("micromessenger")){browserType="weixin"}else if(_userAgent&&_userAgent.includes("DingTalk")){browserType="dingding"}return browserType}function getUrl(path){let browserType=getBrowserType();let url="";let appid="cli_a3e37d398e7bd00c";if(browserType=="feishu"){url=`https://applink.feishu.cn/client/web_app/open?appId=${appid}&mode=window&lk_target_url=${encodeURIComponent(location.origin+"/"+path)}`}else{url=path}return url}var CCBrower=Object.freeze({__proto__:null,getCookie:getCookie,IEVersion:IEVersion,getBrowserType:getBrowserType,getUrl:getUrl});class Button{constructor({label,notShow=false,type,disabled,action,cssClass="small",danger,checkedLength,role,resourceCode,icon}){this.label=label;this.notShow=notShow;this.type=type;this.disabled=disabled;this.action=action;this.cssClass=cssClass;this.danger=danger;this.checkedLength=checkedLength;this.icon=icon;this.role=role;this.resourceCode=resourceCode}}function createButton({label,type,disabled,action,cssClass,danger,checkedLength,resourceCode,role,icon}){return new Button(...arguments)}var CCButton=Object.freeze({__proto__:null,createButton:createButton});const LocalEnum=Object.freeze({ZH:"zh",EN:"en"});let messages={};const addMessages=(locale,message)=>{if(!messages[locale]){messages[locale]={}}messages[locale]={...messages[locale],...message}};let currentLocale="";let localeChangeSubscribers=[];const setLocale=locale=>{if(messages[locale]){currentLocale=locale;localeChangeSubscribers.forEach(callback=>callback(locale))}else{console.warn(`Locale ${locale} not found`)}};const t=key=>{return messages[currentLocale][key]||key};const subscribeToLocaleChange=callback=>{localeChangeSubscribers.push(callback)};Vue.mixin({created(){subscribeToLocaleChange(()=>{this.$forceUpdate()})}});var CCI18n=Object.freeze({__proto__:null,addMessages:addMessages,setLocale:setLocale,t:t,LocalEnum:LocalEnum});const dayjsFormatMap={en_US:{date:"M/D/YYYY",time:"h:mm:ss A",datetime:"M/D/YYYY, h:mm:ss A"},en_GB:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"},en_AU:{date:"D/M/YYYY",time:"h:mm:ss A",datetime:"D/M/YYYY, h:mm:ss A"},en_FI:{date:"D.M.YYYY",time:"h:mm:ss A",datetime:"D.M.YYYY, h:mm:ss A"},zh_CN:{date:"YYYY/M/D",time:"HH:mm:ss",datetime:"YYYY/M/D, HH:mm:ss"},zh_CN_PINYIN:{date:"YYYY/M/D",time:"HH:mm:ss",datetime:"YYYY/M/D, HH:mm:ss"},nl_NL:{date:"DD-MM-YYYY",time:"HH:mm:ss",datetime:"DD-MM-YYYY HH:mm:ss"},pl_PL:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},sr_CS:{date:"D.M.YYYY",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},sr_RS:{date:"D.M.YYYY",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},ja_JP:{date:"YYYY/MM/DD",time:"HH:mm:ss",datetime:"YYYY/MM/DD HH:mm:ss"},et_EE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},uk_UA:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},sl_SI:{date:"D.M.YY",time:"HH:mm:ss",datetime:"D.M.YY, HH:mm:ss"},de_DE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},da_DK:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},hu_HU:{date:"YYYY.MM.DD",time:"HH:mm:ss",datetime:"YYYY.MM.DD. HH:mm:ss"},bg_BG:{date:"DD.MM.YYYY г.",time:"HH:mm:ss ч.",datetime:"DD.MM.YYYY г., HH:mm:ss ч."},it_IT:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"}};const elementUIFormatMap={en_US:{date:"M/d/yyyy",time:"h:mm:ss A",datetime:"M/d/yyyy h:mm:ss A"},en_GB:{date:"dd/MM/yyyy",time:"HH:mm:ss",datetime:"dd/MM/yyyy HH:mm:ss"},en_AU:{date:"d/M/yyyy",time:"h:mm:ss A",datetime:"d/M/yyyy h:mm:ss A"},en_FI:{date:"d.M.yyyy",time:"h:mm:ss A",datetime:"d.M.yyyy h:mm:ss A"},zh_CN:{date:"yyyy/M/d",time:"HH:mm:ss",datetime:"yyyy/M/d HH:mm:ss"},zh_CN_PINYIN:{date:"yyyy/M/d",time:"HH:mm:ss",datetime:"yyyy/M/d HH:mm:ss"},nl_NL:{date:"dd-MM-yyyy",time:"HH:mm:ss",datetime:"dd-MM-yyyy HH:mm:ss"},pl_PL:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},sr_CS:{date:"d.M.yyyy",time:"HH:mm:ss",datetime:"d.M.yyyy HH:mm:ss"},sr_RS:{date:"d.M.yyyy",time:"HH:mm:ss",datetime:"d.M.yyyy HH:mm:ss"},ja_JP:{date:"yyyy/MM/dd",time:"HH:mm:ss",datetime:"yyyy/MM/dd HH:mm:ss"},et_EE:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},uk_UA:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},sl_SI:{date:"d.M.yy",time:"HH:mm:ss",datetime:"d.M.yy HH:mm:ss"},de_DE:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},da_DK:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},hu_HU:{date:"yyyy.MM.dd",time:"HH:mm:ss",datetime:"yyyy.MM.dd. HH:mm:ss"},bg_BG:{date:"dd.MM.yyyy г.",time:"HH:mm:ss ч.",datetime:"dd.MM.yyyy г., HH:mm:ss ч."},it_IT:{date:"dd/MM/yyyy",time:"HH:mm:ss",datetime:"dd/MM/yyyy HH:mm:ss"}};const LOCALE_CONFIG_LIST=["en_US","en_GB","en_AU","en_FI","zh_CN","zh_CN_PINYIN","nl_NL","pl_PL","sr_CS","sr_RS","ja_JP","et_EE","uk_UA","sl_SI","de_DE","da_DK","hu_HU","bg_BG","it_IT"];const LOCALE_CONFIG_MAP=LOCALE_CONFIG_LIST.reduce((acc,locale)=>{acc[locale]={dayjsFormat:dayjsFormatMap[locale],elementUIFormat:elementUIFormatMap[locale]};return acc},{});console.log("LOCALE_CONFIG_MAP",LOCALE_CONFIG_MAP);function getLocaleConfig(locale){const config=LOCALE_CONFIG_MAP[locale];if(config){console.log(`[LocaleConfig] 获取区域配置: ${locale}`,config);return config}console.log(`[LocaleConfig] 区域代码 ${locale} 不存在,使用默认配置 en_US`);return LOCALE_CONFIG_MAP["en_US"]}function initLocaleConfig(userInfo){console.log("[LocaleConfig] 开始初始化区域配置",userInfo);if(!userInfo){console.log("[LocaleConfig] userInfo 为空,使用默认配置 en_US");return getLocaleConfig("en_US")}let localeCode=userInfo.locale;if(!localeCode&&userInfo.language){console.log(`[LocaleConfig] locale 不存在,使用 language: ${userInfo.language}`);localeCode="en_US"}if(!localeCode){console.log("[LocaleConfig] 无法确定区域代码,使用默认配置 en_US");localeCode="en_US"}console.log(`[LocaleConfig] 最终使用的区域代码: ${localeCode}`);const config=getLocaleConfig(localeCode);console.log("[LocaleConfig] 初始化完成",config);Vue.prototype.$localeConfig=config;return config}function formatDate(date,config){try{if(!date){return""}const dayjsObj=dayjs(date);if(!dayjsObj.isValid()){return date}return dayjsObj.format(config.date)}catch(error){console.warn("[LocaleFormatter] 日期格式化失败:",error);return date}}function formatTime(time,config){try{if(!time){return""}const dayjsObj=dayjs(time);if(!dayjsObj.isValid()){return time}return dayjsObj.format(config.time)}catch(error){console.warn("[LocaleFormatter] 时间格式化失败:",error);return time}}function formatDateTime(datetime,config){try{if(!datetime){return""}const dayjsObj=dayjs(datetime);if(!dayjsObj.isValid()){return datetime}const dateTimeFormat=config.datetime;return dayjsObj.format(dateTimeFormat)}catch(error){console.warn("[LocaleFormatter] 日期时间格式化失败:",error);return datetime}}function convertToElementFormat(configFormat){if(!configFormat){return"yyyy-MM-dd"}return configFormat.replace(/YYYY/g,"yyyy").replace(/DD/g,"dd").replace(/(?<!M)D(?!D)/g,"d")}const registerLocaleFilter=Vue=>{Vue.filter("localeDate",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDate(value,config.dayjsFormat)});Vue.filter("localeTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatTime(value,config.dayjsFormat)});Vue.filter("localeDateTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDateTime(value,config.dayjsFormat)})};Vue.use(registerLocaleFilter);var CCLocale={LOCALE_CONFIG_MAP:LOCALE_CONFIG_MAP,getLocaleConfig:getLocaleConfig,initLocaleConfig:initLocaleConfig,formatDate:formatDate,formatTime:formatTime,formatDateTime:formatDateTime,convertToElementFormat:convertToElementFormat};let CCDK={CCButton:CCButton,CCBrower:CCBrower,CCArray:CCArray,CCDB:CCDB,CCApplication:CCApplication,CCAxios:CCHttp$1,CCUser:CCUser,CCCrypto:Crypto,CCDetail:CCDetail,CCList:CCList,CCToken:CCToken,CCConfig:CCConfig,CCLoad:CCLoad,CCLog:CCLog,CCMenu:CCMenu,CCUtils:CCUtils,CCHttp:CCHttp,CCObject:CCObject,CCPage:CCPage,CCSentry:CCSentry,CCSide:CCSide,CCBus:CCBus,CCCall:CCCall,CCCommon:CCCommon,CCMessage:CCMessage,CCI18n:CCI18n,CCLocale:CCLocale};Vue.prototype.$CCDK=CCDK;window.$CCDK=CCDK;export{CCDK as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloudcc-ccdk",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.53",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/ccdk.min.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"uglify-js": "3.17.3"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
+
"dayjs": "^1.10.6",
|
|
25
26
|
"dexie": "^3.2.4",
|
|
26
27
|
"vue": "2.6.14",
|
|
27
28
|
"axios": "1.1.3",
|