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 +15 -0
- package/lib/ccdk.js +351 -13
- package/lib/ccdk.min.js +1 -1
- package/package.json +5 -1
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$
|
|
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$
|
|
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
|
|
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:
|
|
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:
|
|
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