cloudcc-ccdk 0.9.50 → 0.9.52

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 CHANGED
@@ -1,3 +1,13 @@
1
+ #### 发布版本:0.9.52
2
+ #### 更新日期:2025-11-14
3
+ * 迭代
4
+ * 增加 CCLocale 用于根据用户 locale 获取对应的日期时间格式
5
+ * CCUser 添加 clearUserInfo 方法用于清理用户数据
6
+
7
+ #### 发布版本:0.9.51
8
+ #### 更新日期:2025-9-3
9
+ * 迭代
10
+ * 增加$CCDK.CCUtils.getRelatedValue、$CCDK.CCUtils.getRelatedInfo和$CCDK.CCUtils.setRelatedValue
1
11
  #### 发布版本:0.9.50
2
12
  #### 更新日期:2025-8-7
3
13
  * 迭代
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
  * 数据库操作
@@ -192,6 +193,10 @@ var Crypto = /*#__PURE__*/Object.freeze({
192
193
 
193
194
  const CCDK_INFO = {};
194
195
  const LOGINLOGOSRC = "LoginLogoSrc";
196
+ // 新建编辑页面监听name
197
+ const nameFormBus = 'ccForm';
198
+ // 从记录统一名称
199
+ const relatedName = 'ccRelatedForm';
195
200
  /**
196
201
  * 获得一级域名
197
202
  * 比如:xx.com、xx.cn、xx.com.cn、xx.net.cn、xx.org.cn
@@ -367,15 +372,13 @@ function echoValueTypeConversion(value) {
367
372
 
368
373
  // 设置表单值,配合客户端脚本使用
369
374
  function setFormFieldValue(option){
370
- const nameBus = option.view || 'ccForm';
371
- window.$CCDK.CCBus.$emit(nameBus,'set', option);
375
+ window.$CCDK.CCBus.$emit(nameFormBus,'set', option);
372
376
  }
373
377
  // 设置表单值,配合客户端脚本使用
374
378
  function getFormFieldValue(option){
375
- const {view,formId} = option || {};
379
+ const {formId} = option || {};
376
380
  if(formId){
377
- const nameBus = view || 'ccForm';
378
- window.$CCDK.CCBus.$emit(nameBus,'get', option);
381
+ window.$CCDK.CCBus.$emit(nameFormBus,'get', option);
379
382
  let data = null;
380
383
  const funName = '$CCForm'+formId;
381
384
  if(typeof window[funName] === 'function'){
@@ -390,10 +393,9 @@ function getFormFieldValue(option){
390
393
  }
391
394
  // 设置表单值,配合客户端脚本使用
392
395
  function getFormFieldInfo(option){
393
- const {view,formId} = option || {};
396
+ const {formId} = option || {};
394
397
  if(formId){
395
- const nameBus = view || 'ccForm';
396
- window.$CCDK.CCBus.$emit(nameBus,'getInfo', option);
398
+ window.$CCDK.CCBus.$emit(nameFormBus,'getInfo', option);
397
399
  let data = null;
398
400
  const funName = '$CCForm_info'+formId;
399
401
  if(typeof window[funName] === 'function'){
@@ -447,6 +449,43 @@ function getLogoSrc() {
447
449
  function clearLogoSrc() {
448
450
  Cookies.remove(LOGINLOGOSRC);
449
451
  }
452
+ // 获取从记录对象信息,配合客户端脚本使用
453
+ function getRelatedInfo(option){
454
+ const {formId} = option || {};
455
+ if(formId){
456
+ window.$CCDK.CCBus.$emit(nameFormBus,relatedName+'_getInfo', option);
457
+ let data = null;
458
+ const funName = relatedName+formId;
459
+ if(typeof window[funName] === 'function'){
460
+ data = window[funName]();
461
+ window[funName] = null;
462
+ delete window[funName];
463
+ }
464
+ return data
465
+ }
466
+
467
+ }
468
+ // 设置从记录表单值,配合客户端脚本使用
469
+ function setRelatedValue(option){
470
+ window.$CCDK.CCBus.$emit(nameFormBus,relatedName+'_set', option);
471
+ }
472
+ // 设置从记录表单值,配合客户端脚本使用
473
+ function getRelatedValue(option){
474
+ const {formId,relatedId} = option || {};
475
+ if(formId && relatedId){
476
+ window.$CCDK.CCBus.$emit(nameFormBus,relatedName+'_get', option);
477
+ let data = null;
478
+ const funName = relatedName+formId+relatedId;
479
+ if(typeof window[funName] === 'function'){
480
+ data = window[funName]();
481
+ window[funName] = null;
482
+ delete window[funName];
483
+ }
484
+ return data
485
+ }
486
+
487
+
488
+ }
450
489
 
451
490
  var CCUtils = /*#__PURE__*/Object.freeze({
452
491
  __proto__: null,
@@ -465,7 +504,10 @@ var CCUtils = /*#__PURE__*/Object.freeze({
465
504
  setLogoSrc: setLogoSrc,
466
505
  getLogoSrc: getLogoSrc,
467
506
  clearLogoSrc: clearLogoSrc,
468
- getFormFieldInfo: getFormFieldInfo
507
+ getFormFieldInfo: getFormFieldInfo,
508
+ setRelatedValue: setRelatedValue,
509
+ getRelatedValue: getRelatedValue,
510
+ getRelatedInfo: getRelatedInfo
469
511
  });
470
512
 
471
513
  const toStr = Object.prototype.toString;
@@ -2544,6 +2586,16 @@ function getUserInfo(keyName = USER_INFO) {
2544
2586
  }
2545
2587
  }
2546
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
+
2547
2599
  /**
2548
2600
  * 存储用户jwt信息
2549
2601
  * @param {String} jwtInfo 用户信息
@@ -2572,7 +2624,8 @@ var CCUser = /*#__PURE__*/Object.freeze({
2572
2624
  setUserInfo: setUserInfo,
2573
2625
  getUserInfo: getUserInfo,
2574
2626
  setUserJwtInfo: setUserJwtInfo,
2575
- getUserJwtInfo: getUserJwtInfo
2627
+ getUserJwtInfo: getUserJwtInfo,
2628
+ clearUserInfo: clearUserInfo
2576
2629
  });
2577
2630
 
2578
2631
  /**
@@ -2797,7 +2850,522 @@ var CCI18n = /*#__PURE__*/Object.freeze({
2797
2850
  LocalEnum: LocalEnum
2798
2851
  });
2799
2852
 
2800
- 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 };
2853
+ /**
2854
+ * 区域配置模块
2855
+ * 提供用户区域设置的配置映射和初始化功能
2856
+ */
2857
+
2858
+ const dayjsFormatMap = {
2859
+ // ==================== 英语区域 ====================
2860
+ en_US: {
2861
+ dateFormat: "M/D/YYYY",
2862
+ timeFormat: "h:mm:ss A",
2863
+ dateTimeFormat: "M/D/YYYY, h:mm:ss A",
2864
+ },
2865
+ en_GB: {
2866
+ dateFormat: "DD/MM/YYYY",
2867
+ timeFormat: "HH:mm:ss",
2868
+ dateTimeFormat: "DD/MM/YYYY, HH:mm:ss",
2869
+ },
2870
+ en_AU: {
2871
+ dateFormat: "D/M/YYYY",
2872
+ timeFormat: "h:mm:ss A",
2873
+ dateTimeFormat: "D/M/YYYY, h:mm:ss A",
2874
+ },
2875
+ en_FI: {
2876
+ dateFormat: "D.M.YYYY",
2877
+ timeFormat: "h:mm:ss A",
2878
+ dateTimeFormat: "D.M.YYYY, h:mm:ss A",
2879
+ },
2880
+ // ==================== 中文区域 ====================
2881
+ zh_CN: {
2882
+ dateFormat: "YYYY/M/D",
2883
+ timeFormat: "HH:mm:ss",
2884
+ dateTimeFormat: "YYYY/M/D, HH:mm:ss",
2885
+ },
2886
+ zh_CN_PINYIN: {
2887
+ dateFormat: "YYYY/M/D",
2888
+ timeFormat: "HH:mm:ss",
2889
+ dateTimeFormat: "YYYY/M/D, HH:mm:ss",
2890
+ },
2891
+ // ==================== 荷兰语区域 ====================
2892
+ nl_NL: {
2893
+ dateFormat: "DD-MM-YYYY",
2894
+ timeFormat: "HH:mm:ss",
2895
+ dateTimeFormat: "DD-MM-YYYY HH:mm:ss",
2896
+ },
2897
+ // ==================== 波兰语区域 ====================
2898
+ pl_PL: {
2899
+ dateFormat: "DD.MM.YYYY",
2900
+ timeFormat: "HH:mm:ss",
2901
+ dateTimeFormat: "DD.MM.YYYY, HH:mm:ss",
2902
+ },
2903
+ // ==================== 塞尔维亚语区域 ====================
2904
+ sr_CS: {
2905
+ dateFormat: "D.M.YYYY",
2906
+ timeFormat: "HH:mm:ss",
2907
+ dateTimeFormat: "D.M.YYYY. HH:mm:ss",
2908
+ },
2909
+ sr_RS: {
2910
+ dateFormat: "D.M.YYYY",
2911
+ timeFormat: "HH:mm:ss",
2912
+ dateTimeFormat: "D.M.YYYY. HH:mm:ss",
2913
+ },
2914
+ // ==================== 日语区域 ====================
2915
+ ja_JP: {
2916
+ dateFormat: "YYYY/MM/DD",
2917
+ timeFormat: "HH:mm:ss",
2918
+ dateTimeFormat: "YYYY/MM/DD HH:mm:ss",
2919
+ },
2920
+ // ==================== 爱沙尼亚语区域 ====================
2921
+ et_EE: {
2922
+ dateFormat: "DD.MM.YYYY",
2923
+ timeFormat: "HH:mm:ss",
2924
+ dateTimeFormat: "DD.MM.YYYY HH:mm:ss",
2925
+ },
2926
+ // ==================== 乌克兰语区域 ====================
2927
+ uk_UA: {
2928
+ dateFormat: "DD.MM.YYYY",
2929
+ timeFormat: "HH:mm:ss",
2930
+ dateTimeFormat: "DD.MM.YYYY, HH:mm:ss",
2931
+ },
2932
+ // ==================== 斯洛文尼亚语区域 ====================
2933
+ sl_SI: {
2934
+ dateFormat: "D.M.YY",
2935
+ timeFormat: "HH:mm:ss",
2936
+ dateTimeFormat: "D.M.YY, HH:mm:ss",
2937
+ },
2938
+ // ==================== 德语区域 ====================
2939
+ de_DE: {
2940
+ dateFormat: "DD.MM.YYYY",
2941
+ timeFormat: "HH:mm:ss",
2942
+ dateTimeFormat: "DD.MM.YYYY, HH:mm:ss",
2943
+ },
2944
+ // ==================== 丹麦语区域 ====================
2945
+ da_DK: {
2946
+ dateFormat: "DD.MM.YYYY",
2947
+ timeFormat: "HH:mm:ss",
2948
+ dateTimeFormat: "DD.MM.YYYY HH:mm:ss",
2949
+ },
2950
+ // ==================== 匈牙利语区域 ====================
2951
+ hu_HU: {
2952
+ dateFormat: "YYYY.MM.DD",
2953
+ timeFormat: "HH:mm:ss",
2954
+ dateTimeFormat: "YYYY.MM.DD. HH:mm:ss",
2955
+ },
2956
+ // ==================== 保加利亚语区域 ====================
2957
+ bg_BG: {
2958
+ dateFormat: "DD.MM.YYYY г.",
2959
+ timeFormat: "HH:mm:ss ч.",
2960
+ dateTimeFormat: "DD.MM.YYYY г., HH:mm:ss ч.",
2961
+ },
2962
+ // ==================== 意大利语区域 ====================
2963
+ it_IT: {
2964
+ dateFormat: "DD/MM/YYYY",
2965
+ timeFormat: "HH:mm:ss",
2966
+ dateTimeFormat: "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.dateFormat)
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(timeFormat)
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.dateTimeFormat;
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 };
2801
3369
  Vue.prototype.$CCDK = CCDK;
2802
3370
  window.$CCDK = CCDK;
2803
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";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){const nameBus=option.view||"ccForm";window.$CCDK.CCBus.$emit(nameBus,"set",option)}function getFormFieldValue(option){const{view,formId}=option||{};if(formId){const nameBus=view||"ccForm";window.$CCDK.CCBus.$emit(nameBus,"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{view,formId}=option||{};if(formId){const nameBus=view||"ccForm";window.$CCDK.CCBus.$emit(nameBus,"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)}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});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:{dateFormat:"M/D/YYYY",timeFormat:"h:mm:ss A",dateTimeFormat:"M/D/YYYY, h:mm:ss A"},en_GB:{dateFormat:"DD/MM/YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD/MM/YYYY, HH:mm:ss"},en_AU:{dateFormat:"D/M/YYYY",timeFormat:"h:mm:ss A",dateTimeFormat:"D/M/YYYY, h:mm:ss A"},en_FI:{dateFormat:"D.M.YYYY",timeFormat:"h:mm:ss A",dateTimeFormat:"D.M.YYYY, h:mm:ss A"},zh_CN:{dateFormat:"YYYY/M/D",timeFormat:"HH:mm:ss",dateTimeFormat:"YYYY/M/D, HH:mm:ss"},zh_CN_PINYIN:{dateFormat:"YYYY/M/D",timeFormat:"HH:mm:ss",dateTimeFormat:"YYYY/M/D, HH:mm:ss"},nl_NL:{dateFormat:"DD-MM-YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD-MM-YYYY HH:mm:ss"},pl_PL:{dateFormat:"DD.MM.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD.MM.YYYY, HH:mm:ss"},sr_CS:{dateFormat:"D.M.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"D.M.YYYY. HH:mm:ss"},sr_RS:{dateFormat:"D.M.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"D.M.YYYY. HH:mm:ss"},ja_JP:{dateFormat:"YYYY/MM/DD",timeFormat:"HH:mm:ss",dateTimeFormat:"YYYY/MM/DD HH:mm:ss"},et_EE:{dateFormat:"DD.MM.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD.MM.YYYY HH:mm:ss"},uk_UA:{dateFormat:"DD.MM.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD.MM.YYYY, HH:mm:ss"},sl_SI:{dateFormat:"D.M.YY",timeFormat:"HH:mm:ss",dateTimeFormat:"D.M.YY, HH:mm:ss"},de_DE:{dateFormat:"DD.MM.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD.MM.YYYY, HH:mm:ss"},da_DK:{dateFormat:"DD.MM.YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"DD.MM.YYYY HH:mm:ss"},hu_HU:{dateFormat:"YYYY.MM.DD",timeFormat:"HH:mm:ss",dateTimeFormat:"YYYY.MM.DD. HH:mm:ss"},bg_BG:{dateFormat:"DD.MM.YYYY г.",timeFormat:"HH:mm:ss ч.",dateTimeFormat:"DD.MM.YYYY г., HH:mm:ss ч."},it_IT:{dateFormat:"DD/MM/YYYY",timeFormat:"HH:mm:ss",dateTimeFormat:"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.dateFormat)}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}const timeFormat=config.is24Hour?"HH:mm":"hh:mm A";return dayjsObj.format(timeFormat)}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.dateTimeFormat;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.50",
3
+ "version": "0.9.52",
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",