cloudcc-ccdk 0.9.60 → 0.9.63

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,18 @@
1
+ #### 发布版本:0.9.63
2
+ #### 更新日期:2026-2-10
3
+ - CCToken添加获取openapitoken的逻辑
4
+ - 新增CCOpenAPI
5
+
6
+ #### 发布版本:0.9.62
7
+ #### 更新日期:2026-2-3
8
+ - 迭代
9
+ - CCUtils增加浏览器通知功能和标题闪烁方法
10
+
11
+ #### 发布版本:0.9.61
12
+ #### 更新日期:2026-1-30
13
+ - 迭代
14
+ - cookies中用户信息从2小时改成12小时
15
+
1
16
  #### 发布版本:0.9.60
2
17
  #### 更新日期:2026-1-22
3
18
  - 迭代
package/lib/ccdk.js CHANGED
@@ -5,7 +5,7 @@ import { cloneDeep } from 'lodash';
5
5
  import Cookies from 'js-cookie';
6
6
  import Jwt from 'jsonwebtoken';
7
7
  import CryptoJS from 'crypto-js';
8
- import { Message, MessageBox, Notification } from 'element-ui';
8
+ import { Message, MessageBox, Notification as Notification$1 } from 'element-ui';
9
9
  import dayjs from 'dayjs';
10
10
 
11
11
  /**
@@ -631,6 +631,80 @@ function getRelatedValue(option){
631
631
 
632
632
  }
633
633
 
634
+ /**
635
+ * 创建一条系统通知(点击通知会聚焦浏览器窗口)
636
+ */
637
+ function _createNotification(title, options) {
638
+ const n = new Notification(title, options);
639
+ n.onclick = () => {
640
+ n.close();
641
+ window.focus();
642
+ };
643
+ return n
644
+ }
645
+
646
+ /**
647
+ * 浏览器系统通知
648
+ * @param {Object} option
649
+ * @param {string} [option.title='通知'] 标题
650
+ * @param {string} [option.body=''] 内容
651
+ * @param {string} [option.icon] 图标地址
652
+ */
653
+ function notify({ title = '通知', body = '', icon } = {}) {
654
+ if (typeof window === 'undefined') return
655
+ if (!('Notification' in window)) return
656
+ if (!title) return
657
+
658
+ const opts = { body, icon };
659
+ if (Notification.permission === 'granted') {
660
+ _createNotification(title, opts);
661
+ } else if (Notification.permission === 'default') {
662
+ Notification.requestPermission().then(p => {
663
+ if (p === 'granted') {
664
+ _createNotification(title, opts);
665
+ }
666
+ });
667
+ }
668
+ }
669
+
670
+ // 标题闪烁内部状态
671
+ let _blinkTitleTimer = null;
672
+ let _blinkTitleOriginal = null;
673
+
674
+ function _stopBlinkTitle() {
675
+ if (_blinkTitleTimer == null) return
676
+ clearInterval(_blinkTitleTimer);
677
+ _blinkTitleTimer = null;
678
+ if (_blinkTitleOriginal != null) {
679
+ document.title = _blinkTitleOriginal;
680
+ }
681
+ document.removeEventListener('visibilitychange', _onBlinkTitleVisible);
682
+ window.removeEventListener('focus', _onBlinkTitleVisible);
683
+ }
684
+
685
+ function _onBlinkTitleVisible() {
686
+ if (document.visibilityState === 'visible') {
687
+ _stopBlinkTitle();
688
+ }
689
+ }
690
+
691
+ /**
692
+ * 有通知时让浏览器标签页标题来回切换(闪烁),用户回到页面后自动停止并恢复原标题
693
+ * @param {Object} option
694
+ * @param {string} option.message 闪烁时显示的文案,与原标题交替显示,默认 '新消息'
695
+ * @param {number} option.interval 切换间隔(毫秒),默认 1000
696
+ */
697
+ function blinkTitle({ message = '新消息', interval = 1000 } = {}) {
698
+ if (typeof document === 'undefined' || typeof window === 'undefined') return
699
+ if (_blinkTitleTimer != null) return
700
+ _blinkTitleOriginal = document.title;
701
+ _blinkTitleTimer = setInterval(() => {
702
+ document.title = document.title === _blinkTitleOriginal ? message : _blinkTitleOriginal;
703
+ }, interval);
704
+ document.addEventListener('visibilitychange', _onBlinkTitleVisible);
705
+ window.addEventListener('focus', _onBlinkTitleVisible);
706
+ }
707
+
634
708
  var CCUtils = /*#__PURE__*/Object.freeze({
635
709
  __proto__: null,
636
710
  reLogin: reLogin,
@@ -656,7 +730,9 @@ var CCUtils = /*#__PURE__*/Object.freeze({
656
730
  getFormId: getFormId,
657
731
  formUtils: formUtils,
658
732
  globalUtils: globalUtils,
659
- getViewInfo: getViewInfo$1
733
+ getViewInfo: getViewInfo$1,
734
+ notify: notify,
735
+ blinkTitle: blinkTitle
660
736
  });
661
737
 
662
738
  const toStr = Object.prototype.toString;
@@ -1305,20 +1381,20 @@ var http = {
1305
1381
  * @param {obejct} config http配置项 例如:{timeout:1000} 设置超时时间
1306
1382
  * @returns {Promise}
1307
1383
  */
1308
- function post$1(className, methodName, params,config) {
1384
+ function post$2(className, methodName, params,config) {
1309
1385
  return http.post(window.Glod['ccex-apitsf'] + '/api/openCall/common', { className, methodName, params },'',config);
1310
1386
  }
1311
1387
 
1312
1388
  var CCCommon = /*#__PURE__*/Object.freeze({
1313
1389
  __proto__: null,
1314
- post: post$1
1390
+ post: post$2
1315
1391
  });
1316
1392
 
1317
1393
  /**
1318
1394
  * 获取基础url
1319
1395
  * @returns 基础地址
1320
1396
  */
1321
- function getBaseUrl() {
1397
+ function getBaseUrl$1() {
1322
1398
  return window.gw.BASE_URL || window.Glod.BASE_URL || (window.location.origin + "/ccdomaingateway")
1323
1399
  }
1324
1400
  /**
@@ -1345,7 +1421,7 @@ function getCDNUrl() {
1345
1421
 
1346
1422
  var CCConfig = /*#__PURE__*/Object.freeze({
1347
1423
  __proto__: null,
1348
- getBaseUrl: getBaseUrl,
1424
+ getBaseUrl: getBaseUrl$1,
1349
1425
  getGw: getGw,
1350
1426
  getSvc: getSvc,
1351
1427
  getCDNUrl: getCDNUrl
@@ -1398,7 +1474,7 @@ function get(url, data = {}, responseType = '', config = {}) {
1398
1474
  })
1399
1475
  }
1400
1476
 
1401
- function post(url, data = {}, responseType = '', config = {}) {
1477
+ function post$1(url, data = {}, responseType = '', config = {}) {
1402
1478
  return service({
1403
1479
  url: url,
1404
1480
  method: 'post',
@@ -1435,7 +1511,7 @@ function patch(url, data = {}) {
1435
1511
  var CCHttp = /*#__PURE__*/Object.freeze({
1436
1512
  __proto__: null,
1437
1513
  get: get,
1438
- post: post,
1514
+ post: post$1,
1439
1515
  put: put,
1440
1516
  patch: patch,
1441
1517
  postParams: postParams
@@ -1891,7 +1967,7 @@ function showConfirm(text, title, options = {}, confirm = () => { }, reject = ()
1891
1967
  * @param {object} options 配置信息
1892
1968
  */
1893
1969
  function showNotification(options = {}) {
1894
- Notification(options);
1970
+ Notification$1(options);
1895
1971
  }
1896
1972
 
1897
1973
  var CCMessage = /*#__PURE__*/Object.freeze({
@@ -2662,6 +2738,8 @@ var CCSide = /*#__PURE__*/Object.freeze({
2662
2738
 
2663
2739
  // cookie存储标识
2664
2740
  const TOKEN = "cc_token";
2741
+ // OpenAPI token 的 cookie 存储标识
2742
+ const OPEN_API_TOKEN = "cc_open_api_token";
2665
2743
  /**
2666
2744
  * 获取URL中参数的数据
2667
2745
  * @param {name} 参数名
@@ -2695,7 +2773,7 @@ function getToken(urlName = "binding", cookieName = TOKEN) {
2695
2773
  function setToken(token, cookieName = TOKEN, domain = getDomain()) {
2696
2774
  // let { result } = verifyToken(token);
2697
2775
  // if (result) {
2698
- Cookies.set(Crypto.encrypt(cookieName), token, { domain: domain, expires: 1 / 12 , sameSite: 'Lax'});
2776
+ Cookies.set(Crypto.encrypt(cookieName), token, { domain: domain, expires: 1 / 12, sameSite: 'Lax' });
2699
2777
  Cookies.set("JSESSIONID", token, { expires: 1 / 12, sameSite: 'Lax' });
2700
2778
  // localStorage.setItem(Crypto.encrypt(cookieName), token);
2701
2779
  return token
@@ -2704,6 +2782,66 @@ function setToken(token, cookieName = TOKEN, domain = getDomain()) {
2704
2782
  // }
2705
2783
  }
2706
2784
 
2785
+ /**
2786
+ * 存储 OpenAPI token 到 cookies(仅存 open_api_token,不覆盖 JSESSIONID)
2787
+ * @param {String} token OpenAPI token
2788
+ * @param {String} cookieName cookie 名称
2789
+ * @param {String} domain 域名
2790
+ */
2791
+ function setOpenApiToken(token, cookieName = OPEN_API_TOKEN, domain = getDomain()) {
2792
+ Cookies.set(Crypto.encrypt(cookieName), token, { domain: domain, expires: 1 / 12, sameSite: 'Lax' });
2793
+ return token;
2794
+ }
2795
+
2796
+ /**
2797
+ * 获取 OpenAPI token:先查本地 cookies,没有则调用转换接口并写入 cookies
2798
+ * apiSvc 从 window.Glod['ccex-apitsf'] 获取,userToken 通过 getToken() 获取
2799
+ * @param {Object} options 配置
2800
+ * @param {String} options.clientId 客户端 ID
2801
+ * @param {String} options.secretKey 客户端密钥
2802
+ * @param {String} [options.cookieName] 存储用的 cookie 名称,默认 cc_open_api_token
2803
+ * @param {Number} [options.timeout] 请求超时时间(毫秒),默认 30000
2804
+ * @returns {Promise<String>} OpenAPI Token
2805
+ */
2806
+ async function getOpenApiToken(clientId, secretKey, cookieName = OPEN_API_TOKEN, timeout = 30000) {
2807
+ const key = Crypto.encrypt(cookieName);
2808
+ let token = Cookies.get(key) || Cookies.get(cookieName);
2809
+ if (token) {
2810
+ return token;
2811
+ }
2812
+ const apiSvc = window.Glod['ccex-apitsf'];
2813
+ const url = `${apiSvc}/api/cauth/convert`;
2814
+ const userToken = window.$CCDK.CCToken.getToken();
2815
+ const controller = new AbortController();
2816
+ const timer = setTimeout(() => controller.abort(), timeout);
2817
+ try {
2818
+ const res = await fetch(url, {
2819
+ method: 'POST',
2820
+ headers: {
2821
+ 'Content-Type': 'application/json',
2822
+ 'accessToken': userToken || ''
2823
+ },
2824
+ body: JSON.stringify({ clientId, secretKey }),
2825
+ signal: controller.signal
2826
+ });
2827
+ clearTimeout(timer);
2828
+ const data = await res.json();
2829
+ if (!data.result) {
2830
+ const info = data.returnInfo != null ? data.returnInfo : 'Unknown error';
2831
+ throw new Error(`OpenAPI token conversion failed: ${info}`);
2832
+ }
2833
+ token = data.data;
2834
+ setOpenApiToken(token, cookieName);
2835
+ return token;
2836
+ } catch (err) {
2837
+ clearTimeout(timer);
2838
+ if (err.name === 'AbortError') {
2839
+ throw new Error('OpenAPI token request timeout');
2840
+ }
2841
+ throw err;
2842
+ }
2843
+ }
2844
+
2707
2845
  /**
2708
2846
  * 清除Token数据
2709
2847
  * @param {String} domain 域名
@@ -2720,10 +2858,210 @@ var CCToken = /*#__PURE__*/Object.freeze({
2720
2858
  __proto__: null,
2721
2859
  setToken: setToken,
2722
2860
  getToken: getToken,
2861
+ setOpenApiToken: setOpenApiToken,
2862
+ getOpenApiToken: getOpenApiToken,
2723
2863
  clearToken: clearToken,
2724
2864
  getUrlQuery: getUrlQuery
2725
2865
  });
2726
2866
 
2867
+ /**
2868
+ * CCOpenAPI - CloudCC OpenAPI query services (doc 2.3)
2869
+ * @see https://help.cloudcc.cn/product03/apigai-lan/#23-%E6%9F%A5%E8%AF%A2%E6%9C%8D%E5%8A%A1
2870
+ */
2871
+
2872
+ const OPEN_API_COMMON = '/openApi/common';
2873
+
2874
+ function getBaseUrl() {
2875
+ if (typeof window !== 'undefined' && window.Glod && window.Glod['ccex-apitsf']) {
2876
+ return String(window.Glod['ccex-apitsf']).replace(/\/$/, '');
2877
+ }
2878
+ return '';
2879
+ }
2880
+
2881
+ async function getAccessToken(clientId, secretKey) {
2882
+ return await window.$CCDK.CCToken.getOpenApiToken(clientId, secretKey);
2883
+ }
2884
+
2885
+ /**
2886
+ * POST to /openApi/common with serviceName + body, header accessToken.
2887
+ * @param {string} serviceName - e.g. cquery, pageQuery
2888
+ * @param {Object} data - request body (will be merged with serviceName)
2889
+ * @param {Object} [options] - { accessToken, clientId, secretKey, cookieName, tokenTimeout, baseUrl, timeout }
2890
+ * @returns {Promise<{ result, returnInfo, returnCode, data }>}
2891
+ */
2892
+ async function post(serviceName, data = {}, options = {}) {
2893
+ const baseUrl = options.baseUrl != null ? String(options.baseUrl).replace(/\/$/, '') : getBaseUrl();
2894
+ if (!baseUrl) {
2895
+ throw new Error('CCOpenAPI: base URL not configured (window.Glod["ccex-apitsf"])');
2896
+ }
2897
+ const accessToken = await getAccessToken(options.clientId, options.secretKey);
2898
+ const url = `${baseUrl}${OPEN_API_COMMON}`;
2899
+ const body = { serviceName, ...data };
2900
+ const timeout = options.timeout != null ? options.timeout : 60000;
2901
+ const controller = new AbortController();
2902
+ const timer = setTimeout(() => controller.abort(), timeout);
2903
+ try {
2904
+ const res = await fetch(url, {
2905
+ method: 'POST',
2906
+ headers: {
2907
+ 'Content-Type': 'application/json',
2908
+ 'accessToken': accessToken || ''
2909
+ },
2910
+ body: JSON.stringify(body),
2911
+ signal: controller.signal
2912
+ });
2913
+ clearTimeout(timer);
2914
+ const result = await res.json();
2915
+ if (!res.ok) {
2916
+ throw new Error(result.returnInfo != null ? result.returnInfo : `HTTP ${res.status}`);
2917
+ }
2918
+ return result;
2919
+ } catch (err) {
2920
+ clearTimeout(timer);
2921
+ if (err.name === 'AbortError') {
2922
+ throw new Error('CCOpenAPI request timeout');
2923
+ }
2924
+ throw err;
2925
+ }
2926
+ }
2927
+
2928
+ /**
2929
+ * 2.3.1 Normal query - cquery
2930
+ * @param {string} clientId - 客户端 ID
2931
+ * @param {string} secretKey - 客户端密钥
2932
+ * @param {string} objectApiName - e.g. Contact, Account
2933
+ * @param {string} expressions - e.g. "name='13213'"
2934
+ * @param {string} [fields] - e.g. "name,createdate,createbyid"
2935
+ * @param {string} [isAddDelete="false"] - "true" | "false"
2936
+ * @param {Object} [options] - baseUrl, timeout
2937
+ * @returns {Promise<{ result, returnInfo, returnCode, data }>}
2938
+ */
2939
+ function cquery(clientId, secretKey, objectApiName, expressions, fields, isAddDelete = 'false', options = {}) {
2940
+ return post('cquery', {
2941
+ objectApiName,
2942
+ expressions,
2943
+ isAddDelete,
2944
+ fields: fields != null ? fields : ''
2945
+ }, { clientId, secretKey, ...options });
2946
+ }
2947
+
2948
+ /**
2949
+ * 2.3.2 Query with role right - cqueryWithRoleRight
2950
+ * @param {string} clientId - 客户端 ID
2951
+ * @param {string} secretKey - 客户端密钥
2952
+ * @param {string} objectApiName
2953
+ * @param {string} expressions
2954
+ * @param {string} [isAddDelete="false"] - "true" | "false"
2955
+ * @param {Object} [options]
2956
+ * @returns {Promise<{ result, returnInfo, returnCode, data }>}
2957
+ */
2958
+ function cqueryWithRoleRight(clientId, secretKey, objectApiName, expressions, isAddDelete = 'false', options = {}) {
2959
+ return post('cqueryWithRoleRight', {
2960
+ objectApiName,
2961
+ expressions,
2962
+ isAddDelete
2963
+ }, { clientId, secretKey, ...options });
2964
+ }
2965
+
2966
+ /**
2967
+ * 2.3.3 Page query - pageQuery
2968
+ * @param {string} clientId - 客户端 ID
2969
+ * @param {string} secretKey - 客户端密钥
2970
+ * @param {string} objectApiName
2971
+ * @param {string} expressions
2972
+ * @param {string} [fields] - e.g. "id,name"
2973
+ * @param {number} pageNUM - current page (1-based)
2974
+ * @param {number} pageSize - page size
2975
+ * @param {Object} [options]
2976
+ * @returns {Promise<{ result, returnInfo, returnCode, data, pageNUM, pageSize, totalCount, pageCount, hasPre, hasNext }>}
2977
+ */
2978
+ function pageQuery(clientId, secretKey, objectApiName, expressions, fields, pageNUM, pageSize, options = {}) {
2979
+ return post('pageQuery', {
2980
+ objectApiName,
2981
+ expressions,
2982
+ fields: fields != null ? fields : '',
2983
+ pageNUM,
2984
+ pageSize
2985
+ }, { clientId, secretKey, ...options });
2986
+ }
2987
+
2988
+ /**
2989
+ * 2.3.4 Page query with role right - pageQueryWithRoleRight
2990
+ * @param {string} clientId - 客户端 ID
2991
+ * @param {string} secretKey - 客户端密钥
2992
+ * @param {string} objectApiName
2993
+ * @param {string} expressions
2994
+ * @param {number} pageNUM
2995
+ * @param {number} pageSize
2996
+ * @param {Object} [options] - optional fields
2997
+ */
2998
+ function pageQueryWithRoleRight(clientId, secretKey, objectApiName, expressions, pageNUM, pageSize, options = {}) {
2999
+ return post('pageQueryWithRoleRight', {
3000
+ objectApiName,
3001
+ expressions,
3002
+ fields: (options && options.fields != null) ? options.fields : '',
3003
+ pageNUM,
3004
+ pageSize
3005
+ }, { clientId, secretKey, ...options });
3006
+ }
3007
+
3008
+ /**
3009
+ * 2.3.5 Get object query permission - getQueryPermisson
3010
+ * @param {string} clientId - 客户端 ID
3011
+ * @param {string} secretKey - 客户端密钥
3012
+ * @param {string} objectApiName - one or more objects, comma-separated e.g. "Account,Opportunity"
3013
+ * @param {Object} [options]
3014
+ * @returns {Promise<{ result, returnInfo, returnCode, data }>} data: apiName, query, shareSql
3015
+ */
3016
+ function getQueryPermisson(clientId, secretKey, objectApiName, options = {}) {
3017
+ return post('getQueryPermisson', { objectApiName }, { clientId, secretKey, ...options });
3018
+ }
3019
+
3020
+ /**
3021
+ * 2.3.6 Custom SQL query (with permission) - cqlQueryWithLogInfo
3022
+ * @param {string} clientId - 客户端 ID
3023
+ * @param {string} secretKey - 客户端密钥
3024
+ * @param {string} objectApiName
3025
+ * @param {string} expressions - SQL e.g. "select id,name from Account where id='xxx'"
3026
+ * @param {Object} [options]
3027
+ * @returns {Promise<{ result, returnInfo, returnCode, data }>}
3028
+ */
3029
+ function cqlQueryWithLogInfo(clientId, secretKey, objectApiName, expressions, options = {}) {
3030
+ return post('cqlQueryWithLogInfo', { objectApiName, expressions }, { clientId, secretKey, ...options });
3031
+ }
3032
+
3033
+ /**
3034
+ * 2.3.7 Static query - cqlQueryWithStatic (cursor-style, nextRecordQueryId for next page)
3035
+ * @param {string} clientId - 客户端 ID
3036
+ * @param {string} secretKey - 客户端密钥
3037
+ * @param {string} objectApiName
3038
+ * @param {string} expressions - SQL
3039
+ * @param {string} [nextRecordQueryId] - from previous response for next page
3040
+ * @param {Object} [options]
3041
+ * @returns {Promise<{ result, returnInfo, returnCode, data, nextRecordQueryId }>}
3042
+ */
3043
+ function cqlQueryWithStatic(clientId, secretKey, objectApiName, expressions, nextRecordQueryId, options = {}) {
3044
+ const body = { objectApiName, expressions };
3045
+ if (nextRecordQueryId != null && typeof nextRecordQueryId === 'string') {
3046
+ body.nextRecordQueryId = nextRecordQueryId;
3047
+ }
3048
+ if (typeof nextRecordQueryId === 'object') {
3049
+ options = nextRecordQueryId || {};
3050
+ }
3051
+ return post('cqlQueryWithStatic', body, { clientId, secretKey, ...options });
3052
+ }
3053
+
3054
+ var CCOpenAPI = /*#__PURE__*/Object.freeze({
3055
+ __proto__: null,
3056
+ cquery: cquery,
3057
+ cqueryWithRoleRight: cqueryWithRoleRight,
3058
+ pageQuery: pageQuery,
3059
+ pageQueryWithRoleRight: pageQueryWithRoleRight,
3060
+ getQueryPermisson: getQueryPermisson,
3061
+ cqlQueryWithLogInfo: cqlQueryWithLogInfo,
3062
+ cqlQueryWithStatic: cqlQueryWithStatic
3063
+ });
3064
+
2727
3065
  // 用户cookie存储标识
2728
3066
  const USER_INFO = "cc_user_info";
2729
3067
  // JWT的cookie存储标识
@@ -2735,7 +3073,7 @@ const USER_JWT_INFO = "cc_user_jwt_info";
2735
3073
  * @param {String} domain 域名
2736
3074
  */
2737
3075
  function setUserInfo(userInfo, domain = getDomain(),keyName = USER_INFO) {
2738
- Cookies.set(Crypto.encrypt(keyName), Crypto.encrypt(userInfo), { domain: domain, expires: 1 / 12 , sameSite: 'Lax'});
3076
+ Cookies.set(Crypto.encrypt(keyName), Crypto.encrypt(userInfo), { domain: domain, expires: 0.5 , sameSite: 'Lax'});
2739
3077
  }
2740
3078
 
2741
3079
  /**
@@ -2768,7 +3106,7 @@ function clearUserInfo(keyName = USER_INFO, domain = getDomain()) {
2768
3106
  * @param {String} domain 域名
2769
3107
  */
2770
3108
  function setUserJwtInfo(jwtInfo, domain = getDomain(),keyName = USER_JWT_INFO) {
2771
- Cookies.set(Crypto.encrypt(keyName), Crypto.encrypt(jwtInfo), { domain: domain, expires: 1 / 12 , sameSite: 'Lax'});
3109
+ Cookies.set(Crypto.encrypt(keyName), Crypto.encrypt(jwtInfo), { domain: domain, expires: 0.5 , sameSite: 'Lax'});
2772
3110
  }
2773
3111
 
2774
3112
  /**
@@ -3531,7 +3869,7 @@ var CCLocale = {
3531
3869
  // registerLocaleFilter
3532
3870
  };
3533
3871
 
3534
- 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 };
3872
+ let CCDK = { CCButton, CCBrower, CCArray, CCDB, CCApplication, CCAxios: CCHttp$1, CCUser, CCCrypto: Crypto, CCDetail, CCList, CCToken, CCOpenAPI, CCConfig, CCLoad, CCLog, CCMenu, CCUtils, CCHttp, CCObject, CCPage, CCSentry, CCSide, CCBus, CCCall, CCCommon, CCMessage, CCI18n, CCLocale };
3535
3873
  Vue.prototype.$CCDK = CCDK;
3536
3874
  window.$CCDK = CCDK;
3537
3875
 
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";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";let reloginLanguage={zh:{c2489:"Token认证过期,请重新登录",label_popup_infoz:"提示",vue_label_normal_reregister:"重新登录"},en:{c2489:"Token authentication has expired. Please log in again.",label_popup_infoz:"Prompt",vue_label_normal_reregister:"Login again"}};let isHandlerReLogin=false;const GLOBAL_UTILS_TYPE={VIEW_INFO:"viewInfo"};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 isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}async function reLogin(showDialog=true){window.$CCDK.CCToken.clearToken();if(isHandlerReLogin)return;isHandlerReLogin=true;const isH5=isMobile();const LOGOUTURL=window.$CCDK.CCUser.getUserInfo().logoutUrl||window.Glod.LOGIN_URL;if(isH5){window.location.href=LOGOUTURL;return}let path=location.hash;if(path){if(path.startsWith("#/")){path=path.slice(2)}let indexOf=path.indexOf("?binding")>-1?path.indexOf("?binding"):path.indexOf("%3Fbinding");if(indexOf>-1){path=path.slice(0,indexOf)}}if(window.Glod.ENV_TYPE==="private"){window.location.href=LOGOUTURL+(path?`?redirectionRoute=${path}`:"");if(LOGOUTURL.indexOf(window.location.hostname)>-1){window.location.reload()}}else{if(showDialog){let language=window.$CCDK.CCUser.getUserInfo().language||(navigator.language==="zh-CN"?"zh":"en");ELEMENT.MessageBox.alert(reloginLanguage[language]["c2489"],reloginLanguage[language]["label_popup_infoz"],{confirmButtonText:reloginLanguage[language]["vue_label_normal_reregister"],type:"waring",callback:()=>{window.location.href=LOGOUTURL+(path?`/#/login?redirectionRoute=${path}`:"/#/login")}})}else{window.location.href=LOGOUTURL+(path?`/#/login?redirectionRoute=${path}`:"/#/login")}}if(document.getElementById("lightning-loading")){document.getElementById("lightning-loading").style.display="none"}}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 getFormId(option){window.$CCDK.CCBus.$emit(nameFormBus,"getFormId",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 formUtils(option){window.$CCDK.CCBus.$emit(nameFormBus,"formUtils",option);if(option.funName){let data=null;const funName=option.funName;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function globalUtils(type,option={}){const funName=`_${getUuid()}`;option={...option,type:type,funName:funName};window.$CCDK.CCBus.$emit("globalUtils",option);let data=null;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}function getViewInfo$1(){return globalUtils(GLOBAL_UTILS_TYPE.VIEW_INFO)}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,reLogin:reLogin,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,getFormId:getFormId,formUtils:formUtils,globalUtils:globalUtils,getViewInfo:getViewInfo$1});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);const returnCode=response.data.returnCode;if(returnCode==="10002"){window.$CCDK.CCUtils.reLogin();return Promise.reject(response.data.returnInfo||"登录失败,请再次尝试重新登录")}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{const returnCode=response.data.returnCode;if(returnCode==="10002"){window.$CCDK.CCUtils.reLogin();return Promise.reject(response.data.returnInfo||"登录失败,请再次尝试重新登录")}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={}){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){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=[]){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){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"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){if(response.config.data){try{let data=JSON.parse(response.config.data);if(data.head&&data.head.accessToken){data.head.accessToken="******";response.config.data=JSON.stringify(data)}}catch(e){}}window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",options)}}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog,reportCCError:reportCCError,reportCCInfo:reportCCInfo,batchReportLog:batchReportLog});const ALL_MENU_LIST="all_menu_list";const CURRENT_MENU="current_menu";function getAllMenu(){let data=localStorage.getItem(Crypto.encrypt(ALL_MENU_LIST));if(data){return JSON.parse(data)}return[]}function setAllMenu(data=[]){if(data){localStorage.setItem(Crypto.encrypt(ALL_MENU_LIST),JSON.stringify(data))}}function setCurrentMenu(data={}){if(data){localStorage.setItem(Crypto.encrypt(CURRENT_MENU),JSON.stringify(data))}}function getCurrentMenu(){let data=localStorage.getItem(Crypto.encrypt(CURRENT_MENU));if(data){return JSON.parse(data)}return{}}function addMenu1(options){window.$CCDK.CCBus.$emit("addMenu1",options)}function addMenu2(options){window.$CCDK.CCBus.$emit("addMenu2",options)}function deleteMenu1(options){window.$CCDK.CCBus.$emit("deleteMenu1",options)}function deleteMenu2(options){window.$CCDK.CCBus.$emit("deleteMenu2",options)}function refreshMenu1(options){window.$CCDK.CCBus.$emit("refreshMenu1",options)}function refreshMenu2(options){window.$CCDK.CCBus.$emit("refreshMenu2",options)}function replaceMenu1(options){window.$CCDK.CCBus.$emit("replaceMenu1",options)}function replaceMenu2(options){window.$CCDK.CCBus.$emit("replaceMenu2",options)}function reOpenMenu1(options){window.$CCDK.CCBus.$emit("reOpenMenu1",options)}function reOpenMenu2(options){window.$CCDK.CCBus.$emit("reOpenMenu2",options)}var CCMenu=Object.freeze({__proto__:null,addMenu1:addMenu1,addMenu2:addMenu2,deleteMenu1:deleteMenu1,deleteMenu2:deleteMenu2,refreshMenu1:refreshMenu1,refreshMenu2:refreshMenu2,replaceMenu1:replaceMenu1,replaceMenu2:replaceMenu2,reOpenMenu1:reOpenMenu1,reOpenMenu2:reOpenMenu2,getAllMenu:getAllMenu,setAllMenu:setAllMenu,setCurrentMenu:setCurrentMenu,getCurrentMenu:getCurrentMenu});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL_ID="cc_object_detail_id";const OBJECT="cc_object";const OBJECT_LIST="cc_object_list";const detailRecord="_detail";let sessionSize=null;let localSize=null;function clearStorag(type="session"){let obj=null;let size=0;if(type==="local"){obj=window.localStorage}else{obj=window.sessionStorage}if(obj&&typeof obj==="object"){obj.removeItem(Crypto.encrypt(OBJECT_LIST));for(let i in obj){if(i&&obj.hasOwnProperty(i)){const keyVal=i.split("_").pop();const keyList=["detail","record"];if(keyList.includes(keyVal)){obj.removeItem(i)}else{let item=obj.getItem(i);if(item){size+=item.length}}}}}return size/1024/1024}function CCSetStorag(storagInfo){const{type,storageKey,value}=storagInfo||{};if(type&&storageKey){const storagObj=type==="local"?window.localStorage:window.sessionStorage;if(storagObj&&typeof storagObj==="object"){let globalSize=type==="local"?localSize:sessionSize;const valueSize=value?value.length/1024/1024:0;if(globalSize===null){globalSize=getStoragSize(type)}globalSize=globalSize+valueSize;if(globalSize>4){let val=clearStorag(type);globalSize=valueSize+val}if(type==="local"){localSize=globalSize}else{sessionSize=globalSize}storagObj.setItem(storageKey,value)}}}function getStoragSize(type="session"){let obj=null;let size=0;if(type==="local"){obj=window.localStorage}else{obj=window.sessionStorage}if(obj&&typeof obj==="object"){for(let i in obj){if(obj.hasOwnProperty(i)){let item=obj.getItem(i);if(item){size+=item.length}}}}return size/1024/1024}function getObject(){let detail=localStorage.getItem(Crypto.encrypt(OBJECT));if(detail){return JSON.parse(detail)}return""}function setObject(detail=""){if(detail){localStorage.setItem(Crypto.encrypt(OBJECT),JSON.stringify(detail))}}function getObjectDetail(apiname,detailId){let detail;detailId=detailId||window.$CCDK.CCDetail.getDetailId();detailId=detailId+detailRecord;if(detailId){detail=sessionStorage.getItem(detailId)}if(detail){detail=JSON.parse(detail);if(apiname){let detailList=detail.detail||[];let targetField=undefined;targetField=detailList.find(item=>item.apiname===apiname);return targetField}else{return detail}}else{return""}}function setObjectDetail(detail=""){if(detail&&detail.id){if(Array.isArray(detail.detail)&&detail.detail.length>0){let data=[];detail.detail.forEach(item=>{if(item&&Array.isArray(item.data)){item.data.forEach(itemData=>{if(itemData.left&&!Array.isArray(itemData.left)){data.push(itemData.left)}if(itemData.right&&!Array.isArray(itemData.right)){data.push(itemData.right)}})}});if(data.length>0){detail.detail=data}}const detailKey=detail.id+detailRecord;const info={type:"session",storageKey:detailKey,value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function setObjectList(detail={}){if(detail){const info={type:"session",storageKey:Crypto.encrypt(OBJECT_LIST),value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function getObjectList(){let detail=sessionStorage.getItem(Crypto.encrypt(OBJECT_LIST));if(detail){return JSON.parse(detail)}return{ids:[]}}function setObjectDetailId(id=""){if(id){localStorage.setItem("detailRecordId",id);sessionStorage.setItem(Crypto.encrypt(OBJECT_DETAIL_ID),id)}}function getObjectDetailId(){let id=sessionStorage.getItem(Crypto.encrypt(OBJECT_DETAIL_ID));if(!id){id=localStorage.getItem("detailRecordId")}return id}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail,setObjectDetailId:setObjectDetailId,getObjectDetailId:getObjectDetailId,CCSetStorag:CCSetStorag});const TABLE_NAME$1="ccdetail";const record="_record";function setRelatedSelected(detailId,recordId,list){if(detailId&&recordId&&list){detailId=detailId+record;let detail=sessionStorage.getItem(detailId);if(detail){detail=JSON.parse(detail);detail[recordId]=list}else{detail={};detail[recordId]=list}const info={type:"session",storageKey:detailId,value:JSON.stringify(detail)};window.$CCDK.CCObject.CCSetStorag(info)}}function getRelatedSelected(recordId,detailId){if(!detailId){detailId=window.$CCDK.CCObject.getObjectDetailId();if(!detailId)return}detailId=detailId+record;let detail=sessionStorage.getItem(detailId);if(detail){detail=JSON.parse(detail);if(recordId){detail=detail[recordId]}}return detail}function getDetail(apiname,detailId){return window.$CCDK.CCObject.getObjectDetail(apiname,detailId)}function setDetail(detail=""){window.$CCDK.CCObject.setObjectDetail(detail)}function setDetailId(id=""){window.$CCDK.CCObject.setObjectDetailId(id)}function getDetailId(){return window.$CCDK.CCObject.getObjectDetailId()}function refreshRelatedList(ids){window.$CCDK.CCBus.$emit("refreshRelation",{relatedlistId:ids})}async function setRelatedFieldWidth(object){return await window.$CCDK.CCDB.create(TABLE_NAME$1,[object])}async function getRelatedFieldWidth(object){return await window.$CCDK.CCDB.list(TABLE_NAME$1,object)}var CCDetail=Object.freeze({__proto__:null,getDetail:getDetail,setDetail:setDetail,setDetailId:setDetailId,getDetailId:getDetailId,refreshRelatedList:refreshRelatedList,setRelatedFieldWidth:setRelatedFieldWidth,getRelatedFieldWidth:getRelatedFieldWidth,setRelatedSelected:setRelatedSelected,getRelatedSelected:getRelatedSelected});const TABLE_NAME="cclist";function setSelected(detail={}){const ids=detail&&detail.ids;if(ids){let info=window.$CCDK.CCObject.getObjectList()||{};info.ids=ids;window.$CCDK.CCObject.setObjectList(info)}}function getSelected(){let{ids}=window.$CCDK.CCObject.getObjectList();return{ids:ids}}function getViewId(){let{viewId}=window.$CCDK.CCObject.getObjectList();return viewId||""}async function setFilter(object){await window.$CCDK.CCDB.create(TABLE_NAME,[object])}async function getFilter(object){return await window.$CCDK.CCDB.list(TABLE_NAME,object)}async function deleteFilter(id){return await window.$CCDK.CCDB.deleteCC(TABLE_NAME,id)}async function clearFilterAll(){await window.$CCDK.CCDB.db[TABLE_NAME].toCollection().modify(item=>{item.filtercondition="";item.filterdetail=""})}function getViewInfo(){return window.$CCDK.CCObject.getObjectList()||{}}var CCList=Object.freeze({__proto__:null,setSelected:setSelected,getSelected:getSelected,setFilter:setFilter,getFilter:getFilter,deleteFilter:deleteFilter,clearFilterAll:clearFilterAll,getViewId:getViewId,getViewInfo:getViewInfo});let pageList=new Map;function openListPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openListPage",pageId,obj,options);return pageId}function openDetailPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openDetailPage",pageId,obj,id,options);return pageId}function openCreatePage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCreatePage",pageId,obj,options);return pageId}function openEditPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openEditPage",pageId,obj,id,options);return pageId}function openCustomPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCustomPage",pageId,obj,options);return pageId}function reOpenPage(pageId,options){let page;if(pageId){pageId=pageId+"";page=pageList.get(pageId)}if(page){page.reOpenPage();if(options.refresh){page.refresh()}}}function addPage(id,page){if(id&&page){id=id+"";pageList.set(id,page)}}function deletePage(pageId){if(pageId){pageId=pageId+"";pageList.delete(pageId)}}function updatePage(id,page){if(id&&page){id=id+"";pageList.set(id,page)}}function searchPage(pageId){pageId=pageId+"";return pageList.get(pageId)}function close$1(pageId=""){let page;if(pageId==="all"){page=[...pageList.values()];page.forEach(item=>{if(item){item.close()}})}else if(pageId){pageId=pageId+"";page=pageList.get(pageId)}else{let currentMenuTree=JSON.parse(localStorage.getItem("current_page"));if(currentMenuTree){if(currentMenuTree.level2Id){page=pageList.get(currentMenuTree.level2Id)}else{page=pageList.get(currentMenuTree.id)}}}if(page){page.close()}}function refresh(){window.$CCDK.CCBus.$emit("refresh")}function getCurrentPage(){let currentMenuTree=localStorage.getItem("current_page");if(currentMenuTree){return JSON.parse(currentMenuTree)}return""}var CCPage=Object.freeze({__proto__:null,openListPage:openListPage,openDetailPage:openDetailPage,openCreatePage:openCreatePage,openEditPage:openEditPage,openCustomPage:openCustomPage,reOpenPage:reOpenPage,addPage:addPage,deletePage:deletePage,updatePage:updatePage,searchPage:searchPage,close:close$1,refresh:refresh,getCurrentPage:getCurrentPage});function initUserInfo(sentry,ccUser=window.$CCDK.CCUser.getUserInfo()){if(ccUser&&ccUser!=""){sentry.setTag("orgId",ccUser.orgId);sentry.setTag("orgName",ccUser.orgName);sentry.setUser({username:ccUser.userName,id:ccUser.userId})}}function reportMemory(sentry,ccUser){if(performance.memory){let memeryMsg="Memory monitoring:jsHeapSizeLimit="+(performance.memory.jsHeapSizeLimit/1024/1024).toFixed(2)+"mb、"+"totalJSHeapSize="+(performance.memory.totalJSHeapSize/1024/1024).toFixed(2)+"mb、"+"usedJSHeapSize="+(performance.memory.usedJSHeapSize/1024/1024).toFixed(2)+"mb";initUserInfo(sentry,ccUser);sentry.withScope(function(scope){sentry.setTag("usedJSHeapSize",(performance.memory.usedJSHeapSize/1024/1024).toFixed(2));scope.setFingerprint(["Memory Monitoring"]);sentry.captureMessage(memeryMsg)})}}function reportHttpException(sentry,error,ccUser){initUserInfo(sentry,ccUser);sentry.withScope(function(scope){scope.setFingerprint(["Interface Uncaught Exceptions response"]);sentry.captureException(error)})}var CCSentry=Object.freeze({__proto__:null,initUserInfo:initUserInfo,reportMemory:reportMemory,reportHttpException:reportHttpException});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding",cookieName=TOKEN){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){token=setToken(token,cookieName)}return token}function setToken(token,cookieName=TOKEN,domain=getDomain()){Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12,sameSite:"Lax"});Cookies.set("JSESSIONID",token,{expires:1/12,sameSite:"Lax"});return token}function clearToken(cookieName=TOKEN,domain=getDomain()){Cookies.remove(Crypto.encrypt(cookieName),{domain:domain});Cookies.remove(Crypto.encrypt(cookieName));Cookies.remove("JSESSIONID");localStorage.removeItem(Crypto.encrypt(cookieName))}var CCToken=Object.freeze({__proto__:null,setToken:setToken,getToken:getToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const USER_INFO="cc_user_info";const USER_JWT_INFO="cc_user_jwt_info";function setUserInfo(userInfo,domain=getDomain(),keyName=USER_INFO){Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(userInfo),{domain:domain,expires:1/12,sameSite:"Lax"})}function getUserInfo(keyName=USER_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}function clearUserInfo(keyName=USER_INFO,domain=getDomain()){Cookies.remove(Crypto.encrypt(keyName),{domain:domain,sameSite:"Lax"})}function setUserJwtInfo(jwtInfo,domain=getDomain(),keyName=USER_JWT_INFO){Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(jwtInfo),{domain:domain,expires:1/12,sameSite:"Lax"})}function getUserJwtInfo(keyName=USER_JWT_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return JSON.parse(Crypto.decrypt(encryptUserInfo))}else{return{}}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo,setUserJwtInfo:setUserJwtInfo,getUserJwtInfo:getUserJwtInfo,clearUserInfo:clearUserInfo});function emptyArray(arr){if(!(arr instanceof Object)){throw new Error("Illegal parameters")}for(let key in arr){if(arr[key]){return false}}return true}var CCArray=Object.freeze({__proto__:null,emptyArray:emptyArray});function getCookie(name){let prefix=name+"=";let start=document.cookie.indexOf(prefix);if(start==-1){return null}let end=document.cookie.indexOf(";",start+prefix.length);if(end==-1){end=document.cookie.length}let value=document.cookie.substring(start+prefix.length,end);return unescape(value)}function IEVersion(){let userAgent=navigator.userAgent;let isOpera=userAgent.indexOf("Opera")>-1;let isIE=userAgent.indexOf("compatible")>-1&&userAgent.indexOf("MSIE")>-1&&!isOpera;let isEdge=userAgent.indexOf("Edge")>-1&&!isIE;if(isIE){let reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(userAgent);let fIEVersion=parseFloat(RegExp["$1"]);if(fIEVersion===7){return"IE7"}else if(fIEVersion===8){return"IE8"}else if(fIEVersion===9){return"IE9"}else if(fIEVersion===10){return"IE10"}else if(fIEVersion===11){return"IE11"}else{return"0"}}else if(isEdge){return"edge"}else{return"-1"}}function getBrowserType(){let browserType="";let _userAgent=navigator.userAgent;if(_userAgent&&_userAgent.includes("Lark")){browserType="feishu"}else if(_userAgent&&_userAgent.includes("MicroMessenger")){browserType="qiyeweixin"}else if(_userAgent&&_userAgent.includes("micromessenger")){browserType="weixin"}else if(_userAgent&&_userAgent.includes("DingTalk")){browserType="dingding"}return browserType}function getUrl(path){let browserType=getBrowserType();let url="";let appid="cli_a3e37d398e7bd00c";if(browserType=="feishu"){url=`https://applink.feishu.cn/client/web_app/open?appId=${appid}&mode=window&lk_target_url=${encodeURIComponent(location.origin+"/"+path)}`}else{url=path}return url}var CCBrower=Object.freeze({__proto__:null,getCookie:getCookie,IEVersion:IEVersion,getBrowserType:getBrowserType,getUrl:getUrl});class Button{constructor({label,notShow=false,type,disabled,action,cssClass="small",danger,checkedLength,role,resourceCode,icon}){this.label=label;this.notShow=notShow;this.type=type;this.disabled=disabled;this.action=action;this.cssClass=cssClass;this.danger=danger;this.checkedLength=checkedLength;this.icon=icon;this.role=role;this.resourceCode=resourceCode}}function createButton({label,type,disabled,action,cssClass,danger,checkedLength,resourceCode,role,icon}){return new Button(...arguments)}var CCButton=Object.freeze({__proto__:null,createButton:createButton});const LocalEnum=Object.freeze({ZH:"zh",EN:"en"});let messages={};const addMessages=(locale,message)=>{if(!messages[locale]){messages[locale]={}}messages[locale]={...messages[locale],...message}};let currentLocale="";let localeChangeSubscribers=[];const setLocale=locale=>{if(messages[locale]){currentLocale=locale;localeChangeSubscribers.forEach(callback=>callback(locale))}else{console.warn(`Locale ${locale} not found`)}};const t=key=>{return messages[currentLocale][key]||key};const subscribeToLocaleChange=callback=>{localeChangeSubscribers.push(callback)};Vue.mixin({created(){subscribeToLocaleChange(()=>{this.$forceUpdate()})}});var CCI18n=Object.freeze({__proto__:null,addMessages:addMessages,setLocale:setLocale,t:t,LocalEnum:LocalEnum});const dayjsFormatMap={en_US:{date:"M/D/YYYY",time:"h:mm:ss A",datetime:"M/D/YYYY, h:mm:ss A"},en_GB:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"},en_AU:{date:"D/M/YYYY",time:"h:mm:ss A",datetime:"D/M/YYYY, h:mm:ss A"},en_FI:{date:"D.M.YYYY",time:"h:mm:ss A",datetime:"D.M.YYYY, h:mm:ss A"},zh_CN:{date:"YYYY/M/D",time:"HH:mm:ss",datetime:"YYYY/M/D, HH:mm:ss"},zh_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"},sh_CS:{date:"D.M.YYYY.",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},sr_RS:{date:"D.M.YYYY.",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},ja_JP:{date:"YYYY/MM/DD",time:"HH:mm:ss",datetime:"YYYY/MM/DD HH:mm:ss"},et_EE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},uk_UA:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},sl_SI:{date:"D. M. YY",time:"HH:mm:ss",datetime:"D. M. YY, HH:mm:ss"},de_DE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},da_DK:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},hu_HU:{date:"YYYY. MM. DD.",time:"HH:mm:ss",datetime:"YYYY. MM. DD. HH:mm:ss"},bg_BG:{date:"DD.MM.YYYY г.",time:"HH:mm:ss ч.",datetime:"DD.MM.YYYY г., HH:mm:ss ч."},it_IT:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"}};const elementUIFormatMap={en_US:{date:"M/d/yyyy",time:"h:mm:ss A",datetime:"M/d/yyyy h:mm:ss A"},en_GB:{date:"dd/MM/yyyy",time:"HH:mm:ss",datetime:"dd/MM/yyyy HH:mm:ss"},en_AU:{date:"d/M/yyyy",time:"h:mm:ss A",datetime:"d/M/yyyy h:mm:ss A"},en_FI:{date:"d.M.yyyy",time:"h:mm:ss A",datetime:"d.M.yyyy h:mm:ss A"},zh_CN:{date:"yyyy/M/d",time:"HH:mm:ss",datetime:"yyyy/M/d HH:mm:ss"},zh_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"},sh_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","sh_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} 不存在,使用默认配置 zh_CN`);return LOCALE_CONFIG_MAP["zh_CN"]}function initLocaleConfig(userInfo){console.log("[LocaleConfig] 开始初始化区域配置",userInfo);if(!userInfo){console.log("[LocaleConfig] userInfo 为空,使用默认配置 zh_CN");return getLocaleConfig("zh_CN")}let localeCode=userInfo.locale;if(!localeCode&&userInfo.language){console.log(`[LocaleConfig] locale 不存在,使用 language: ${userInfo.language}`);localeCode="zh_CN"}if(!localeCode){console.log("[LocaleConfig] 无法确定区域代码,使用默认配置 zh_CN");localeCode="zh_CN"}console.log(`[LocaleConfig] 最终使用的区域代码: ${localeCode}`);const config=getLocaleConfig(localeCode);console.log("[LocaleConfig] 初始化完成",config);Vue.prototype.$localeConfig=config;return config}function formatDate(date,config){try{if(!date){return""}const dayjsObj=dayjs(date);if(!dayjsObj.isValid()){return date}return dayjsObj.format(config.date)}catch(error){console.warn("[LocaleFormatter] 日期格式化失败:",error);return date}}function formatTime(time,config){try{if(!time){return""}const dayjsObj=dayjs(time);if(!dayjsObj.isValid()){return time}return dayjsObj.format(config.time)}catch(error){console.warn("[LocaleFormatter] 时间格式化失败:",error);return time}}function formatDateTime(datetime,config){try{if(!datetime){return""}const dayjsObj=dayjs(datetime);if(!dayjsObj.isValid()){return datetime}const dateTimeFormat=config.datetime;return dayjsObj.format(dateTimeFormat)}catch(error){console.warn("[LocaleFormatter] 日期时间格式化失败:",error);return datetime}}function convertToElementFormat(configFormat){if(!configFormat){return"yyyy-MM-dd"}return configFormat.replace(/YYYY/g,"yyyy").replace(/DD/g,"dd").replace(/(?<!M)D(?!D)/g,"d")}const registerLocaleFilter=Vue=>{Vue.filter("localeDate",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDate(value,config.dayjsFormat)});Vue.filter("localeTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatTime(value,config.dayjsFormat)});Vue.filter("localeDateTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDateTime(value,config.dayjsFormat)})};Vue.use(registerLocaleFilter);var CCLocale={LOCALE_CONFIG_MAP:LOCALE_CONFIG_MAP,getLocaleConfig:getLocaleConfig,initLocaleConfig:initLocaleConfig,formatDate:formatDate,formatTime:formatTime,formatDateTime:formatDateTime,convertToElementFormat:convertToElementFormat};let CCDK={CCButton:CCButton,CCBrower:CCBrower,CCArray:CCArray,CCDB:CCDB,CCApplication:CCApplication,CCAxios:CCHttp$1,CCUser:CCUser,CCCrypto:Crypto,CCDetail:CCDetail,CCList:CCList,CCToken:CCToken,CCConfig:CCConfig,CCLoad:CCLoad,CCLog:CCLog,CCMenu:CCMenu,CCUtils:CCUtils,CCHttp:CCHttp,CCObject:CCObject,CCPage:CCPage,CCSentry:CCSentry,CCSide:CCSide,CCBus:CCBus,CCCall:CCCall,CCCommon:CCCommon,CCMessage:CCMessage,CCI18n:CCI18n,CCLocale:CCLocale};Vue.prototype.$CCDK=CCDK;window.$CCDK=CCDK;export{CCDK as default};
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 as Notification$1}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";let reloginLanguage={zh:{c2489:"Token认证过期,请重新登录",label_popup_infoz:"提示",vue_label_normal_reregister:"重新登录"},en:{c2489:"Token authentication has expired. Please log in again.",label_popup_infoz:"Prompt",vue_label_normal_reregister:"Login again"}};let isHandlerReLogin=false;const GLOBAL_UTILS_TYPE={VIEW_INFO:"viewInfo"};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 isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}async function reLogin(showDialog=true){window.$CCDK.CCToken.clearToken();if(isHandlerReLogin)return;isHandlerReLogin=true;const isH5=isMobile();const LOGOUTURL=window.$CCDK.CCUser.getUserInfo().logoutUrl||window.Glod.LOGIN_URL;if(isH5){window.location.href=LOGOUTURL;return}let path=location.hash;if(path){if(path.startsWith("#/")){path=path.slice(2)}let indexOf=path.indexOf("?binding")>-1?path.indexOf("?binding"):path.indexOf("%3Fbinding");if(indexOf>-1){path=path.slice(0,indexOf)}}if(window.Glod.ENV_TYPE==="private"){window.location.href=LOGOUTURL+(path?`?redirectionRoute=${path}`:"");if(LOGOUTURL.indexOf(window.location.hostname)>-1){window.location.reload()}}else{if(showDialog){let language=window.$CCDK.CCUser.getUserInfo().language||(navigator.language==="zh-CN"?"zh":"en");ELEMENT.MessageBox.alert(reloginLanguage[language]["c2489"],reloginLanguage[language]["label_popup_infoz"],{confirmButtonText:reloginLanguage[language]["vue_label_normal_reregister"],type:"waring",callback:()=>{window.location.href=LOGOUTURL+(path?`/#/login?redirectionRoute=${path}`:"/#/login")}})}else{window.location.href=LOGOUTURL+(path?`/#/login?redirectionRoute=${path}`:"/#/login")}}if(document.getElementById("lightning-loading")){document.getElementById("lightning-loading").style.display="none"}}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 getFormId(option){window.$CCDK.CCBus.$emit(nameFormBus,"getFormId",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 formUtils(option){window.$CCDK.CCBus.$emit(nameFormBus,"formUtils",option);if(option.funName){let data=null;const funName=option.funName;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}}function globalUtils(type,option={}){const funName=`_${getUuid()}`;option={...option,type:type,funName:funName};window.$CCDK.CCBus.$emit("globalUtils",option);let data=null;if(typeof window[funName]==="function"){data=window[funName]();window[funName]=null;delete window[funName]}return data}function getViewInfo$1(){return globalUtils(GLOBAL_UTILS_TYPE.VIEW_INFO)}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}}function _createNotification(title,options){const n=new Notification(title,options);n.onclick=()=>{n.close();window.focus()};return n}function notify({title="通知",body="",icon}={}){if(typeof window==="undefined")return;if(!("Notification"in window))return;if(!title)return;const opts={body:body,icon:icon};if(Notification.permission==="granted"){_createNotification(title,opts)}else if(Notification.permission==="default"){Notification.requestPermission().then(p=>{if(p==="granted"){_createNotification(title,opts)}})}}let _blinkTitleTimer=null;let _blinkTitleOriginal=null;function _stopBlinkTitle(){if(_blinkTitleTimer==null)return;clearInterval(_blinkTitleTimer);_blinkTitleTimer=null;if(_blinkTitleOriginal!=null){document.title=_blinkTitleOriginal}document.removeEventListener("visibilitychange",_onBlinkTitleVisible);window.removeEventListener("focus",_onBlinkTitleVisible)}function _onBlinkTitleVisible(){if(document.visibilityState==="visible"){_stopBlinkTitle()}}function blinkTitle({message="新消息",interval=1e3}={}){if(typeof document==="undefined"||typeof window==="undefined")return;if(_blinkTitleTimer!=null)return;_blinkTitleOriginal=document.title;_blinkTitleTimer=setInterval(()=>{document.title=document.title===_blinkTitleOriginal?message:_blinkTitleOriginal},interval);document.addEventListener("visibilitychange",_onBlinkTitleVisible);window.addEventListener("focus",_onBlinkTitleVisible)}var CCUtils=Object.freeze({__proto__:null,reLogin:reLogin,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,getFormId:getFormId,formUtils:formUtils,globalUtils:globalUtils,getViewInfo:getViewInfo$1,notify:notify,blinkTitle:blinkTitle});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);const returnCode=response.data.returnCode;if(returnCode==="10002"){window.$CCDK.CCUtils.reLogin();return Promise.reject(response.data.returnInfo||"登录失败,请再次尝试重新登录")}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$2(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$2});function getBaseUrl$1(){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$1,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{const returnCode=response.data.returnCode;if(returnCode==="10002"){window.$CCDK.CCUtils.reLogin();return Promise.reject(response.data.returnInfo||"登录失败,请再次尝试重新登录")}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$1(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$1,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={}){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){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=[]){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){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"&&"1"===window.Glod["CC_LOG_LEVEL"]||"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$1(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";const OPEN_API_TOKEN="cc_open_api_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 setOpenApiToken(token,cookieName=OPEN_API_TOKEN,domain=getDomain()){Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12,sameSite:"Lax"});return token}async function getOpenApiToken(clientId,secretKey,cookieName=OPEN_API_TOKEN,timeout=3e4){const key=Crypto.encrypt(cookieName);let token=Cookies.get(key)||Cookies.get(cookieName);if(token){return token}const apiSvc=window.Glod["ccex-apitsf"];const url=`${apiSvc}/api/cauth/convert`;const userToken=window.$CCDK.CCToken.getToken();const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),timeout);try{const res=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json",accessToken:userToken||""},body:JSON.stringify({clientId:clientId,secretKey:secretKey}),signal:controller.signal});clearTimeout(timer);const data=await res.json();if(!data.result){const info=data.returnInfo!=null?data.returnInfo:"Unknown error";throw new Error(`OpenAPI token conversion failed: ${info}`)}token=data.data;setOpenApiToken(token,cookieName);return token}catch(err){clearTimeout(timer);if(err.name==="AbortError"){throw new Error("OpenAPI token request timeout")}throw err}}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,setOpenApiToken:setOpenApiToken,getOpenApiToken:getOpenApiToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const OPEN_API_COMMON="/openApi/common";function getBaseUrl(){if(typeof window!=="undefined"&&window.Glod&&window.Glod["ccex-apitsf"]){return String(window.Glod["ccex-apitsf"]).replace(/\/$/,"")}return""}async function getAccessToken(clientId,secretKey){return await window.$CCDK.CCToken.getOpenApiToken(clientId,secretKey)}async function post(serviceName,data={},options={}){const baseUrl=options.baseUrl!=null?String(options.baseUrl).replace(/\/$/,""):getBaseUrl();if(!baseUrl){throw new Error('CCOpenAPI: base URL not configured (window.Glod["ccex-apitsf"])')}const accessToken=await getAccessToken(options.clientId,options.secretKey);const url=`${baseUrl}${OPEN_API_COMMON}`;const body={serviceName:serviceName,...data};const timeout=options.timeout!=null?options.timeout:6e4;const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),timeout);try{const res=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json",accessToken:accessToken||""},body:JSON.stringify(body),signal:controller.signal});clearTimeout(timer);const result=await res.json();if(!res.ok){throw new Error(result.returnInfo!=null?result.returnInfo:`HTTP ${res.status}`)}return result}catch(err){clearTimeout(timer);if(err.name==="AbortError"){throw new Error("CCOpenAPI request timeout")}throw err}}function cquery(clientId,secretKey,objectApiName,expressions,fields,isAddDelete="false",options={}){return post("cquery",{objectApiName:objectApiName,expressions:expressions,isAddDelete:isAddDelete,fields:fields!=null?fields:""},{clientId:clientId,secretKey:secretKey,...options})}function cqueryWithRoleRight(clientId,secretKey,objectApiName,expressions,isAddDelete="false",options={}){return post("cqueryWithRoleRight",{objectApiName:objectApiName,expressions:expressions,isAddDelete:isAddDelete},{clientId:clientId,secretKey:secretKey,...options})}function pageQuery(clientId,secretKey,objectApiName,expressions,fields,pageNUM,pageSize,options={}){return post("pageQuery",{objectApiName:objectApiName,expressions:expressions,fields:fields!=null?fields:"",pageNUM:pageNUM,pageSize:pageSize},{clientId:clientId,secretKey:secretKey,...options})}function pageQueryWithRoleRight(clientId,secretKey,objectApiName,expressions,pageNUM,pageSize,options={}){return post("pageQueryWithRoleRight",{objectApiName:objectApiName,expressions:expressions,fields:options&&options.fields!=null?options.fields:"",pageNUM:pageNUM,pageSize:pageSize},{clientId:clientId,secretKey:secretKey,...options})}function getQueryPermisson(clientId,secretKey,objectApiName,options={}){return post("getQueryPermisson",{objectApiName:objectApiName},{clientId:clientId,secretKey:secretKey,...options})}function cqlQueryWithLogInfo(clientId,secretKey,objectApiName,expressions,options={}){return post("cqlQueryWithLogInfo",{objectApiName:objectApiName,expressions:expressions},{clientId:clientId,secretKey:secretKey,...options})}function cqlQueryWithStatic(clientId,secretKey,objectApiName,expressions,nextRecordQueryId,options={}){const body={objectApiName:objectApiName,expressions:expressions};if(nextRecordQueryId!=null&&typeof nextRecordQueryId==="string"){body.nextRecordQueryId=nextRecordQueryId}if(typeof nextRecordQueryId==="object"){options=nextRecordQueryId||{}}return post("cqlQueryWithStatic",body,{clientId:clientId,secretKey:secretKey,...options})}var CCOpenAPI=Object.freeze({__proto__:null,cquery:cquery,cqueryWithRoleRight:cqueryWithRoleRight,pageQuery:pageQuery,pageQueryWithRoleRight:pageQueryWithRoleRight,getQueryPermisson:getQueryPermisson,cqlQueryWithLogInfo:cqlQueryWithLogInfo,cqlQueryWithStatic:cqlQueryWithStatic});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:.5,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:.5,sameSite:"Lax"})}function getUserJwtInfo(keyName=USER_JWT_INFO){let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return JSON.parse(Crypto.decrypt(encryptUserInfo))}else{return{}}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo,setUserJwtInfo:setUserJwtInfo,getUserJwtInfo:getUserJwtInfo,clearUserInfo:clearUserInfo});function emptyArray(arr){if(!(arr instanceof Object)){throw new Error("Illegal parameters")}for(let key in arr){if(arr[key]){return false}}return true}var CCArray=Object.freeze({__proto__:null,emptyArray:emptyArray});function getCookie(name){let prefix=name+"=";let start=document.cookie.indexOf(prefix);if(start==-1){return null}let end=document.cookie.indexOf(";",start+prefix.length);if(end==-1){end=document.cookie.length}let value=document.cookie.substring(start+prefix.length,end);return unescape(value)}function IEVersion(){let userAgent=navigator.userAgent;let isOpera=userAgent.indexOf("Opera")>-1;let isIE=userAgent.indexOf("compatible")>-1&&userAgent.indexOf("MSIE")>-1&&!isOpera;let isEdge=userAgent.indexOf("Edge")>-1&&!isIE;if(isIE){let reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(userAgent);let fIEVersion=parseFloat(RegExp["$1"]);if(fIEVersion===7){return"IE7"}else if(fIEVersion===8){return"IE8"}else if(fIEVersion===9){return"IE9"}else if(fIEVersion===10){return"IE10"}else if(fIEVersion===11){return"IE11"}else{return"0"}}else if(isEdge){return"edge"}else{return"-1"}}function getBrowserType(){let browserType="";let _userAgent=navigator.userAgent;if(_userAgent&&_userAgent.includes("Lark")){browserType="feishu"}else if(_userAgent&&_userAgent.includes("MicroMessenger")){browserType="qiyeweixin"}else if(_userAgent&&_userAgent.includes("micromessenger")){browserType="weixin"}else if(_userAgent&&_userAgent.includes("DingTalk")){browserType="dingding"}return browserType}function getUrl(path){let browserType=getBrowserType();let url="";let appid="cli_a3e37d398e7bd00c";if(browserType=="feishu"){url=`https://applink.feishu.cn/client/web_app/open?appId=${appid}&mode=window&lk_target_url=${encodeURIComponent(location.origin+"/"+path)}`}else{url=path}return url}var CCBrower=Object.freeze({__proto__:null,getCookie:getCookie,IEVersion:IEVersion,getBrowserType:getBrowserType,getUrl:getUrl});class Button{constructor({label,notShow=false,type,disabled,action,cssClass="small",danger,checkedLength,role,resourceCode,icon}){this.label=label;this.notShow=notShow;this.type=type;this.disabled=disabled;this.action=action;this.cssClass=cssClass;this.danger=danger;this.checkedLength=checkedLength;this.icon=icon;this.role=role;this.resourceCode=resourceCode}}function createButton({label,type,disabled,action,cssClass,danger,checkedLength,resourceCode,role,icon}){return new Button(...arguments)}var CCButton=Object.freeze({__proto__:null,createButton:createButton});const LocalEnum=Object.freeze({ZH:"zh",EN:"en"});let messages={};const addMessages=(locale,message)=>{if(!messages[locale]){messages[locale]={}}messages[locale]={...messages[locale],...message}};let currentLocale="";let localeChangeSubscribers=[];const setLocale=locale=>{if(messages[locale]){currentLocale=locale;localeChangeSubscribers.forEach(callback=>callback(locale))}else{console.warn(`Locale ${locale} not found`)}};const t=key=>{return messages[currentLocale][key]||key};const subscribeToLocaleChange=callback=>{localeChangeSubscribers.push(callback)};Vue.mixin({created(){subscribeToLocaleChange(()=>{this.$forceUpdate()})}});var CCI18n=Object.freeze({__proto__:null,addMessages:addMessages,setLocale:setLocale,t:t,LocalEnum:LocalEnum});const dayjsFormatMap={en_US:{date:"M/D/YYYY",time:"h:mm:ss A",datetime:"M/D/YYYY, h:mm:ss A"},en_GB:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"},en_AU:{date:"D/M/YYYY",time:"h:mm:ss A",datetime:"D/M/YYYY, h:mm:ss A"},en_FI:{date:"D.M.YYYY",time:"h:mm:ss A",datetime:"D.M.YYYY, h:mm:ss A"},zh_CN:{date:"YYYY/M/D",time:"HH:mm:ss",datetime:"YYYY/M/D, HH:mm:ss"},zh_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"},sh_CS:{date:"D.M.YYYY.",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},sr_RS:{date:"D.M.YYYY.",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},ja_JP:{date:"YYYY/MM/DD",time:"HH:mm:ss",datetime:"YYYY/MM/DD HH:mm:ss"},et_EE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},uk_UA:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},sl_SI:{date:"D. M. YY",time:"HH:mm:ss",datetime:"D. M. YY, HH:mm:ss"},de_DE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},da_DK:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},hu_HU:{date:"YYYY. MM. DD.",time:"HH:mm:ss",datetime:"YYYY. MM. DD. HH:mm:ss"},bg_BG:{date:"DD.MM.YYYY г.",time:"HH:mm:ss ч.",datetime:"DD.MM.YYYY г., HH:mm:ss ч."},it_IT:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"}};const elementUIFormatMap={en_US:{date:"M/d/yyyy",time:"h:mm:ss A",datetime:"M/d/yyyy h:mm:ss A"},en_GB:{date:"dd/MM/yyyy",time:"HH:mm:ss",datetime:"dd/MM/yyyy HH:mm:ss"},en_AU:{date:"d/M/yyyy",time:"h:mm:ss A",datetime:"d/M/yyyy h:mm:ss A"},en_FI:{date:"d.M.yyyy",time:"h:mm:ss A",datetime:"d.M.yyyy h:mm:ss A"},zh_CN:{date:"yyyy/M/d",time:"HH:mm:ss",datetime:"yyyy/M/d HH:mm:ss"},zh_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"},sh_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","sh_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} 不存在,使用默认配置 zh_CN`);return LOCALE_CONFIG_MAP["zh_CN"]}function initLocaleConfig(userInfo){console.log("[LocaleConfig] 开始初始化区域配置",userInfo);if(!userInfo){console.log("[LocaleConfig] userInfo 为空,使用默认配置 zh_CN");return getLocaleConfig("zh_CN")}let localeCode=userInfo.locale;if(!localeCode&&userInfo.language){console.log(`[LocaleConfig] locale 不存在,使用 language: ${userInfo.language}`);localeCode="zh_CN"}if(!localeCode){console.log("[LocaleConfig] 无法确定区域代码,使用默认配置 zh_CN");localeCode="zh_CN"}console.log(`[LocaleConfig] 最终使用的区域代码: ${localeCode}`);const config=getLocaleConfig(localeCode);console.log("[LocaleConfig] 初始化完成",config);Vue.prototype.$localeConfig=config;return config}function formatDate(date,config){try{if(!date){return""}const dayjsObj=dayjs(date);if(!dayjsObj.isValid()){return date}return dayjsObj.format(config.date)}catch(error){console.warn("[LocaleFormatter] 日期格式化失败:",error);return date}}function formatTime(time,config){try{if(!time){return""}const dayjsObj=dayjs(time);if(!dayjsObj.isValid()){return time}return dayjsObj.format(config.time)}catch(error){console.warn("[LocaleFormatter] 时间格式化失败:",error);return time}}function formatDateTime(datetime,config){try{if(!datetime){return""}const dayjsObj=dayjs(datetime);if(!dayjsObj.isValid()){return datetime}const dateTimeFormat=config.datetime;return dayjsObj.format(dateTimeFormat)}catch(error){console.warn("[LocaleFormatter] 日期时间格式化失败:",error);return datetime}}function convertToElementFormat(configFormat){if(!configFormat){return"yyyy-MM-dd"}return configFormat.replace(/YYYY/g,"yyyy").replace(/DD/g,"dd").replace(/(?<!M)D(?!D)/g,"d")}const registerLocaleFilter=Vue=>{Vue.filter("localeDate",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDate(value,config.dayjsFormat)});Vue.filter("localeTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatTime(value,config.dayjsFormat)});Vue.filter("localeDateTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDateTime(value,config.dayjsFormat)})};Vue.use(registerLocaleFilter);var CCLocale={LOCALE_CONFIG_MAP:LOCALE_CONFIG_MAP,getLocaleConfig:getLocaleConfig,initLocaleConfig:initLocaleConfig,formatDate:formatDate,formatTime:formatTime,formatDateTime:formatDateTime,convertToElementFormat:convertToElementFormat};let CCDK={CCButton:CCButton,CCBrower:CCBrower,CCArray:CCArray,CCDB:CCDB,CCApplication:CCApplication,CCAxios:CCHttp$1,CCUser:CCUser,CCCrypto:Crypto,CCDetail:CCDetail,CCList:CCList,CCToken:CCToken,CCOpenAPI:CCOpenAPI,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,7 +1,11 @@
1
1
  {
2
2
  "name": "cloudcc-ccdk",
3
- "version": "0.9.60",
3
+ "version": "0.9.63",
4
4
  "description": "",
5
+ "engines": {
6
+ "node": "20.19.5"
7
+ },
8
+ "packageManager": "npm@10",
5
9
  "main": "lib/ccdk.min.js",
6
10
  "scripts": {
7
11
  "cc-pull": "git pull",