cloudcc-ccdk 0.9.68 → 0.9.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,12 @@
1
-
2
- - 批量新增页面支持数据获取、写入、批量新增对象信息查询方案
1
+ #### 发布版本:0.9.69
2
+ #### 更新日期:2026-8-31
3
+ - CCToken/CCUser 的 cookie 名支持 window.Glod['domain'] 环境前缀(token、userInfo、userJwtInfo、openApiToken),用于同父域下多环境登录态隔离;clearToken 只清当前环境前缀的 cookie
4
+ #### 发布版本:0.9.68
5
+ #### 更新日期:2026-7-31
3
6
  - 更新crypto-js版本
7
+ #### 发布版本:0.9.67
8
+ #### 更新日期:2026-6-26
9
+ - 批量新增页面支持数据获取、写入、批量新增对象信息查询方案
4
10
  #### 发布版本:0.9.66
5
11
  #### 更新日期:2026-5-26
6
12
  - 支持复制方法 openCopyPage
package/lib/ccdk.js CHANGED
@@ -214,6 +214,15 @@ let isHandlerReLogin = false;
214
214
  const GLOBAL_UTILS_TYPE = {
215
215
  VIEW_INFO: 'viewInfo' // cloudcc 小云的视图信息
216
216
  };
217
+ /**
218
+ * 获取cookie环境前缀
219
+ * 用于同父域下多环境登录态隔离:同一环境的所有子域应用配置相同的 window.Glod['domain'],
220
+ * 不同环境配置不同值,使各环境的 token/用户信息 cookie 名互不相同、互不覆盖
221
+ * @returns {string} 环境前缀,未配置时为空串(保持原有无前缀行为)
222
+ */
223
+ function getCookieEnvPrefix() {
224
+ return (window.Glod && window.Glod['domain']) || ''
225
+ }
217
226
  /**
218
227
  * 获得一级域名
219
228
  * 比如:xx.com、xx.cn、xx.com.cn、xx.net.cn、xx.org.cn
@@ -715,6 +724,7 @@ var CCUtils = /*#__PURE__*/Object.freeze({
715
724
  __proto__: null,
716
725
  reLogin: reLogin,
717
726
  getDomain: getDomain,
727
+ getCookieEnvPrefix: getCookieEnvPrefix,
718
728
  getUuid: getUuid,
719
729
  getBinding: getBinding,
720
730
  getNowFormatDate: getNowFormatDate,
@@ -2757,7 +2767,20 @@ var CCSide = /*#__PURE__*/Object.freeze({
2757
2767
 
2758
2768
  // OpenAPI token 的 cookie 存储标识
2759
2769
  const OPEN_API_TOKEN = "cc_open_api_token";
2760
- let TOKEN = "cc_token";
2770
+ const TOKEN = "cc_token";
2771
+ /**
2772
+ * 获取token的cookie存储名称(带环境前缀)
2773
+ * 同父域多环境隔离:不同环境配置不同的 window.Glod['domain'] 前缀,cookie 名互不相同
2774
+ */
2775
+ function getTokenCookieName() {
2776
+ return `${getCookieEnvPrefix()}${TOKEN}`
2777
+ }
2778
+ /**
2779
+ * 获取OpenAPI token的cookie存储名称(带环境前缀)
2780
+ */
2781
+ function getOpenApiCookieName() {
2782
+ return `${getCookieEnvPrefix()}${OPEN_API_TOKEN}`
2783
+ }
2761
2784
  /**
2762
2785
  * 获取URL中参数的数据
2763
2786
  * @param {name} 参数名
@@ -2777,12 +2800,9 @@ function getUrlQuery(name) {
2777
2800
  * @returns
2778
2801
  */
2779
2802
  function getToken(urlName = "binding", cookieName, domain = getDomain()) {
2780
- // cookie存储标识
2781
- if(window.Glod && window.Glod['domain']){
2782
- TOKEN = `${window.Glod['domain']}cc_token`;
2783
- }
2784
- if(!cookieName){
2785
- cookieName = TOKEN;
2803
+ // cookie存储标识,未指定时使用带环境前缀的默认名称
2804
+ if (!cookieName) {
2805
+ cookieName = getTokenCookieName();
2786
2806
  }
2787
2807
  let token = getUrlQuery(urlName) || Cookies.get(Crypto.encrypt(cookieName)) || Cookies.get(urlName || TOKEN);
2788
2808
  if (token) {
@@ -2797,11 +2817,8 @@ function getToken(urlName = "binding", cookieName, domain = getDomain()) {
2797
2817
  * @param {String} domain 域名
2798
2818
  */
2799
2819
  function setToken(token, cookieName, domain = getDomain()) {
2800
- if(window.Glod && window.Glod['domain']){
2801
- TOKEN = `${window.Glod['domain']}cc_token`;
2802
- }
2803
- if(!cookieName){
2804
- cookieName = TOKEN;
2820
+ if (!cookieName) {
2821
+ cookieName = getTokenCookieName();
2805
2822
  }
2806
2823
  Cookies.set(Crypto.encrypt(cookieName), token, { domain: domain, expires: 1 / 12, sameSite: 'Lax' });
2807
2824
  Cookies.set("JSESSIONID", token, { expires: 1 / 12, sameSite: 'Lax' });
@@ -2818,7 +2835,10 @@ function setToken(token, cookieName, domain = getDomain()) {
2818
2835
  * @param {String} cookieName cookie 名称
2819
2836
  * @param {String} domain 域名
2820
2837
  */
2821
- function setOpenApiToken(token, cookieName = OPEN_API_TOKEN, domain = getDomain()) {
2838
+ function setOpenApiToken(token, cookieName, domain = getDomain()) {
2839
+ if (!cookieName) {
2840
+ cookieName = getOpenApiCookieName();
2841
+ }
2822
2842
  Cookies.set(Crypto.encrypt(cookieName), token, { domain: domain, expires: 1 / 12, sameSite: 'Lax' });
2823
2843
  return token;
2824
2844
  }
@@ -2833,7 +2853,10 @@ function setOpenApiToken(token, cookieName = OPEN_API_TOKEN, domain = getDomain(
2833
2853
  * @param {Number} [options.timeout] 请求超时时间(毫秒),默认 30000
2834
2854
  * @returns {Promise<String>} OpenAPI Token
2835
2855
  */
2836
- async function getOpenApiToken(clientId, secretKey, cookieName = OPEN_API_TOKEN, timeout = 30000) {
2856
+ async function getOpenApiToken(clientId, secretKey, cookieName, timeout = 30000) {
2857
+ if (!cookieName) {
2858
+ cookieName = getOpenApiCookieName();
2859
+ }
2837
2860
  const key = Crypto.encrypt(cookieName);
2838
2861
  let token = Cookies.get(key) || Cookies.get(cookieName);
2839
2862
  if (token) {
@@ -2873,11 +2896,14 @@ async function getOpenApiToken(clientId, secretKey, cookieName = OPEN_API_TOKEN,
2873
2896
  }
2874
2897
 
2875
2898
  /**
2876
- * 清除Token数据
2899
+ * 清除Token数据(只清当前环境前缀的cookie,不影响同父域其他环境的登录态)
2900
+ * @param {String} cookieName 获取token的cookie名称,默认带环境前缀的cc_token
2877
2901
  * @param {String} domain 域名
2878
- * @param {String} cookieName 获取token的cookie名称
2879
2902
  */
2880
- function clearToken(cookieName = TOKEN, domain = getDomain()) {
2903
+ function clearToken(cookieName, domain = getDomain()) {
2904
+ if (!cookieName) {
2905
+ cookieName = getTokenCookieName();
2906
+ }
2881
2907
  Cookies.remove(Crypto.encrypt(cookieName), { domain: domain });
2882
2908
  Cookies.remove(Crypto.encrypt(cookieName));
2883
2909
  Cookies.remove("JSESSIONID");
@@ -3096,13 +3122,29 @@ var CCOpenAPI = /*#__PURE__*/Object.freeze({
3096
3122
  const USER_INFO = "cc_user_info";
3097
3123
  // JWT的cookie存储标识
3098
3124
  const USER_JWT_INFO = "cc_user_jwt_info";
3125
+ /**
3126
+ * 获取用户信息的cookie存储名称(带环境前缀)
3127
+ * 同父域多环境隔离:不同环境配置不同的 window.Glod['domain'] 前缀,cookie 名互不相同
3128
+ */
3129
+ function getUserInfoKeyName() {
3130
+ return `${getCookieEnvPrefix()}${USER_INFO}`
3131
+ }
3132
+ /**
3133
+ * 获取用户JWT信息的cookie存储名称(带环境前缀)
3134
+ */
3135
+ function getUserJwtInfoKeyName() {
3136
+ return `${getCookieEnvPrefix()}${USER_JWT_INFO}`
3137
+ }
3099
3138
 
3100
3139
  /**
3101
3140
  * 存储用户信息
3102
3141
  * @param {String} userInfo 用户信息
3103
3142
  * @param {String} domain 域名
3104
3143
  */
3105
- function setUserInfo(userInfo, domain = getDomain(),keyName = USER_INFO) {
3144
+ function setUserInfo(userInfo, domain = getDomain(), keyName) {
3145
+ if (!keyName) {
3146
+ keyName = getUserInfoKeyName();
3147
+ }
3106
3148
  Cookies.set(Crypto.encrypt(keyName), Crypto.encrypt(userInfo), { domain: domain, expires: 0.5 , sameSite: 'Lax'});
3107
3149
  }
3108
3150
 
@@ -3110,7 +3152,10 @@ function setUserInfo(userInfo, domain = getDomain(),keyName = USER_INFO) {
3110
3152
  * 获取用户信息
3111
3153
  * @returns {String} 用户信息
3112
3154
  */
3113
- function getUserInfo(keyName = USER_INFO) {
3155
+ function getUserInfo(keyName) {
3156
+ if (!keyName) {
3157
+ keyName = getUserInfoKeyName();
3158
+ }
3114
3159
  // 加密的用户信息
3115
3160
  let encryptUserInfo = Cookies.get(Crypto.encrypt(keyName));
3116
3161
  if (encryptUserInfo) {
@@ -3125,7 +3170,10 @@ function getUserInfo(keyName = USER_INFO) {
3125
3170
  * @param {String} keyName 用户信息key名称
3126
3171
  * @param {String} domain 域名
3127
3172
  */
3128
- function clearUserInfo(keyName = USER_INFO, domain = getDomain()) {
3173
+ function clearUserInfo(keyName, domain = getDomain()) {
3174
+ if (!keyName) {
3175
+ keyName = getUserInfoKeyName();
3176
+ }
3129
3177
  Cookies.remove(Crypto.encrypt(keyName), { domain, sameSite: 'Lax' });
3130
3178
  }
3131
3179
 
@@ -3135,7 +3183,10 @@ function clearUserInfo(keyName = USER_INFO, domain = getDomain()) {
3135
3183
  * @param {String} jwtInfo 用户信息
3136
3184
  * @param {String} domain 域名
3137
3185
  */
3138
- function setUserJwtInfo(jwtInfo, domain = getDomain(),keyName = USER_JWT_INFO) {
3186
+ function setUserJwtInfo(jwtInfo, domain = getDomain(), keyName) {
3187
+ if (!keyName) {
3188
+ keyName = getUserJwtInfoKeyName();
3189
+ }
3139
3190
  Cookies.set(Crypto.encrypt(keyName), Crypto.encrypt(jwtInfo), { domain: domain, expires: 0.5 , sameSite: 'Lax'});
3140
3191
  }
3141
3192
 
@@ -3143,7 +3194,10 @@ function setUserJwtInfo(jwtInfo, domain = getDomain(),keyName = USER_JWT_INFO) {
3143
3194
  * 获取用户jwt信息
3144
3195
  * @returns {Object} 用户信息
3145
3196
  */
3146
- function getUserJwtInfo(keyName = USER_JWT_INFO) {
3197
+ function getUserJwtInfo(keyName) {
3198
+ if (!keyName) {
3199
+ keyName = getUserJwtInfoKeyName();
3200
+ }
3147
3201
  // 加密的用户信息
3148
3202
  let encryptUserInfo = Cookies.get(Crypto.encrypt(keyName));
3149
3203
  if (encryptUserInfo) {
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 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 isPartner=["true",true].includes(window.$CCDK.CCUser.getUserInfo().ispartner);const partnerLogoutUrl=window.$CCDK.CCUser.getUserInfo().logoutUrl||window.Glod.LOGIN_URL;const LOGOUTURL=isPartner?partnerLogoutUrl: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){option={...option,funName:option.funName||`_${getUuid()}`};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 openCopyPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCopyPage",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,openCopyPage:openCopyPage,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 OPEN_API_TOKEN="cc_open_api_token";let 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,domain=getDomain()){if(window.Glod&&window.Glod["domain"]){TOKEN=`${window.Glod["domain"]}cc_token`}if(!cookieName){cookieName=TOKEN}let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){token=setToken(token,cookieName,domain)}return token}function setToken(token,cookieName,domain=getDomain()){if(window.Glod&&window.Glod["domain"]){TOKEN=`${window.Glod["domain"]}cc_token`}if(!cookieName){cookieName=TOKEN}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};
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 getCookieEnvPrefix(){return window.Glod&&window.Glod["domain"]||""}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 isPartner=["true",true].includes(window.$CCDK.CCUser.getUserInfo().ispartner);const partnerLogoutUrl=window.$CCDK.CCUser.getUserInfo().logoutUrl||window.Glod.LOGIN_URL;const LOGOUTURL=isPartner?partnerLogoutUrl: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){option={...option,funName:option.funName||`_${getUuid()}`};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,getCookieEnvPrefix:getCookieEnvPrefix,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 openCopyPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCopyPage",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,openCopyPage:openCopyPage,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 OPEN_API_TOKEN="cc_open_api_token";const TOKEN="cc_token";function getTokenCookieName(){return`${getCookieEnvPrefix()}${TOKEN}`}function getOpenApiCookieName(){return`${getCookieEnvPrefix()}${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,domain=getDomain()){if(!cookieName){cookieName=getTokenCookieName()}let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){token=setToken(token,cookieName,domain)}return token}function setToken(token,cookieName,domain=getDomain()){if(!cookieName){cookieName=getTokenCookieName()}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,domain=getDomain()){if(!cookieName){cookieName=getOpenApiCookieName()}Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12,sameSite:"Lax"});return token}async function getOpenApiToken(clientId,secretKey,cookieName,timeout=3e4){if(!cookieName){cookieName=getOpenApiCookieName()}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,domain=getDomain()){if(!cookieName){cookieName=getTokenCookieName()}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 getUserInfoKeyName(){return`${getCookieEnvPrefix()}${USER_INFO}`}function getUserJwtInfoKeyName(){return`${getCookieEnvPrefix()}${USER_JWT_INFO}`}function setUserInfo(userInfo,domain=getDomain(),keyName){if(!keyName){keyName=getUserInfoKeyName()}Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(userInfo),{domain:domain,expires:.5,sameSite:"Lax"})}function getUserInfo(keyName){if(!keyName){keyName=getUserInfoKeyName()}let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}function clearUserInfo(keyName,domain=getDomain()){if(!keyName){keyName=getUserInfoKeyName()}Cookies.remove(Crypto.encrypt(keyName),{domain:domain,sameSite:"Lax"})}function setUserJwtInfo(jwtInfo,domain=getDomain(),keyName){if(!keyName){keyName=getUserJwtInfoKeyName()}Cookies.set(Crypto.encrypt(keyName),Crypto.encrypt(jwtInfo),{domain:domain,expires:.5,sameSite:"Lax"})}function getUserJwtInfo(keyName){if(!keyName){keyName=getUserJwtInfoKeyName()}let encryptUserInfo=Cookies.get(Crypto.encrypt(keyName));if(encryptUserInfo){return JSON.parse(Crypto.decrypt(encryptUserInfo))}else{return{}}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo,setUserJwtInfo:setUserJwtInfo,getUserJwtInfo:getUserJwtInfo,clearUserInfo:clearUserInfo});function emptyArray(arr){if(!(arr instanceof Object)){throw new Error("Illegal parameters")}for(let key in arr){if(arr[key]){return false}}return true}var CCArray=Object.freeze({__proto__:null,emptyArray:emptyArray});function getCookie(name){let prefix=name+"=";let start=document.cookie.indexOf(prefix);if(start==-1){return null}let end=document.cookie.indexOf(";",start+prefix.length);if(end==-1){end=document.cookie.length}let value=document.cookie.substring(start+prefix.length,end);return unescape(value)}function IEVersion(){let userAgent=navigator.userAgent;let isOpera=userAgent.indexOf("Opera")>-1;let isIE=userAgent.indexOf("compatible")>-1&&userAgent.indexOf("MSIE")>-1&&!isOpera;let isEdge=userAgent.indexOf("Edge")>-1&&!isIE;if(isIE){let reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(userAgent);let fIEVersion=parseFloat(RegExp["$1"]);if(fIEVersion===7){return"IE7"}else if(fIEVersion===8){return"IE8"}else if(fIEVersion===9){return"IE9"}else if(fIEVersion===10){return"IE10"}else if(fIEVersion===11){return"IE11"}else{return"0"}}else if(isEdge){return"edge"}else{return"-1"}}function getBrowserType(){let browserType="";let _userAgent=navigator.userAgent;if(_userAgent&&_userAgent.includes("Lark")){browserType="feishu"}else if(_userAgent&&_userAgent.includes("MicroMessenger")){browserType="qiyeweixin"}else if(_userAgent&&_userAgent.includes("micromessenger")){browserType="weixin"}else if(_userAgent&&_userAgent.includes("DingTalk")){browserType="dingding"}return browserType}function getUrl(path){let browserType=getBrowserType();let url="";let appid="cli_a3e37d398e7bd00c";if(browserType=="feishu"){url=`https://applink.feishu.cn/client/web_app/open?appId=${appid}&mode=window&lk_target_url=${encodeURIComponent(location.origin+"/"+path)}`}else{url=path}return url}var CCBrower=Object.freeze({__proto__:null,getCookie:getCookie,IEVersion:IEVersion,getBrowserType:getBrowserType,getUrl:getUrl});class Button{constructor({label,notShow=false,type,disabled,action,cssClass="small",danger,checkedLength,role,resourceCode,icon}){this.label=label;this.notShow=notShow;this.type=type;this.disabled=disabled;this.action=action;this.cssClass=cssClass;this.danger=danger;this.checkedLength=checkedLength;this.icon=icon;this.role=role;this.resourceCode=resourceCode}}function createButton({label,type,disabled,action,cssClass,danger,checkedLength,resourceCode,role,icon}){return new Button(...arguments)}var CCButton=Object.freeze({__proto__:null,createButton:createButton});const LocalEnum=Object.freeze({ZH:"zh",EN:"en"});let messages={};const addMessages=(locale,message)=>{if(!messages[locale]){messages[locale]={}}messages[locale]={...messages[locale],...message}};let currentLocale="";let localeChangeSubscribers=[];const setLocale=locale=>{if(messages[locale]){currentLocale=locale;localeChangeSubscribers.forEach(callback=>callback(locale))}else{console.warn(`Locale ${locale} not found`)}};const t=key=>{return messages[currentLocale][key]||key};const subscribeToLocaleChange=callback=>{localeChangeSubscribers.push(callback)};Vue.mixin({created(){subscribeToLocaleChange(()=>{this.$forceUpdate()})}});var CCI18n=Object.freeze({__proto__:null,addMessages:addMessages,setLocale:setLocale,t:t,LocalEnum:LocalEnum});const dayjsFormatMap={en_US:{date:"M/D/YYYY",time:"h:mm:ss A",datetime:"M/D/YYYY, h:mm:ss A"},en_GB:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"},en_AU:{date:"D/M/YYYY",time:"h:mm:ss A",datetime:"D/M/YYYY, h:mm:ss A"},en_FI:{date:"D.M.YYYY",time:"h:mm:ss A",datetime:"D.M.YYYY, h:mm:ss A"},zh_CN:{date:"YYYY/M/D",time:"HH:mm:ss",datetime:"YYYY/M/D, HH:mm:ss"},zh_PINYIN:{date:"YYYY/M/D",time:"HH:mm:ss",datetime:"YYYY/M/D, HH:mm:ss"},nl_NL:{date:"DD-MM-YYYY",time:"HH:mm:ss",datetime:"DD-MM-YYYY HH:mm:ss"},pl_PL:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},sh_CS:{date:"D.M.YYYY.",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},sr_RS:{date:"D.M.YYYY.",time:"HH:mm:ss",datetime:"D.M.YYYY. HH:mm:ss"},ja_JP:{date:"YYYY/MM/DD",time:"HH:mm:ss",datetime:"YYYY/MM/DD HH:mm:ss"},et_EE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},uk_UA:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},sl_SI:{date:"D. M. YY",time:"HH:mm:ss",datetime:"D. M. YY, HH:mm:ss"},de_DE:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY, HH:mm:ss"},da_DK:{date:"DD.MM.YYYY",time:"HH:mm:ss",datetime:"DD.MM.YYYY HH:mm:ss"},hu_HU:{date:"YYYY. MM. DD.",time:"HH:mm:ss",datetime:"YYYY. MM. DD. HH:mm:ss"},bg_BG:{date:"DD.MM.YYYY г.",time:"HH:mm:ss ч.",datetime:"DD.MM.YYYY г., HH:mm:ss ч."},it_IT:{date:"DD/MM/YYYY",time:"HH:mm:ss",datetime:"DD/MM/YYYY, HH:mm:ss"}};const elementUIFormatMap={en_US:{date:"M/d/yyyy",time:"h:mm:ss A",datetime:"M/d/yyyy h:mm:ss A"},en_GB:{date:"dd/MM/yyyy",time:"HH:mm:ss",datetime:"dd/MM/yyyy HH:mm:ss"},en_AU:{date:"d/M/yyyy",time:"h:mm:ss A",datetime:"d/M/yyyy h:mm:ss A"},en_FI:{date:"d.M.yyyy",time:"h:mm:ss A",datetime:"d.M.yyyy h:mm:ss A"},zh_CN:{date:"yyyy/M/d",time:"HH:mm:ss",datetime:"yyyy/M/d HH:mm:ss"},zh_PINYIN:{date:"yyyy/M/d",time:"HH:mm:ss",datetime:"yyyy/M/d HH:mm:ss"},nl_NL:{date:"dd-MM-yyyy",time:"HH:mm:ss",datetime:"dd-MM-yyyy HH:mm:ss"},pl_PL:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},sh_CS:{date:"d.M.yyyy.",time:"HH:mm:ss",datetime:"d.M.yyyy. HH:mm:ss"},sr_RS:{date:"d.M.yyyy.",time:"HH:mm:ss",datetime:"d.M.yyyy. HH:mm:ss"},ja_JP:{date:"yyyy/MM/dd",time:"HH:mm:ss",datetime:"yyyy/MM/dd HH:mm:ss"},et_EE:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},uk_UA:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},sl_SI:{date:"d. M. yy",time:"HH:mm:ss",datetime:"d. M. yy HH:mm:ss"},de_DE:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},da_DK:{date:"dd.MM.yyyy",time:"HH:mm:ss",datetime:"dd.MM.yyyy HH:mm:ss"},hu_HU:{date:"yyyy. MM. dd.",time:"HH:mm:ss",datetime:"yyyy. MM. dd. HH:mm:ss"},bg_BG:{date:"dd.MM.yyyy г.",time:"HH:mm:ss ч.",datetime:"dd.MM.yyyy HH:mm:ss"},it_IT:{date:"dd/MM/yyyy",time:"HH:mm:ss",datetime:"dd/MM/yyyy HH:mm:ss"}};const LOCALE_CONFIG_LIST=["en_US","en_GB","en_AU","en_FI","zh_CN","zh_CN_PINYIN","nl_NL","pl_PL","sh_CS","sr_RS","ja_JP","et_EE","uk_UA","sl_SI","de_DE","da_DK","hu_HU","bg_BG","it_IT"];const LOCALE_CONFIG_MAP=LOCALE_CONFIG_LIST.reduce((acc,locale)=>{acc[locale]={dayjsFormat:dayjsFormatMap[locale],elementUIFormat:elementUIFormatMap[locale]};return acc},{});console.log("LOCALE_CONFIG_MAP",LOCALE_CONFIG_MAP);function getLocaleConfig(locale){const config=LOCALE_CONFIG_MAP[locale];if(config){console.log(`[LocaleConfig] 获取区域配置: ${locale}`,config);return config}console.log(`[LocaleConfig] 区域代码 ${locale} 不存在,使用默认配置 zh_CN`);return LOCALE_CONFIG_MAP["zh_CN"]}function initLocaleConfig(userInfo){console.log("[LocaleConfig] 开始初始化区域配置",userInfo);if(!userInfo){console.log("[LocaleConfig] userInfo 为空,使用默认配置 zh_CN");return getLocaleConfig("zh_CN")}let localeCode=userInfo.locale;if(!localeCode&&userInfo.language){console.log(`[LocaleConfig] locale 不存在,使用 language: ${userInfo.language}`);localeCode="zh_CN"}if(!localeCode){console.log("[LocaleConfig] 无法确定区域代码,使用默认配置 zh_CN");localeCode="zh_CN"}console.log(`[LocaleConfig] 最终使用的区域代码: ${localeCode}`);const config=getLocaleConfig(localeCode);console.log("[LocaleConfig] 初始化完成",config);Vue.prototype.$localeConfig=config;return config}function formatDate(date,config){try{if(!date){return""}const dayjsObj=dayjs(date);if(!dayjsObj.isValid()){return date}return dayjsObj.format(config.date)}catch(error){console.warn("[LocaleFormatter] 日期格式化失败:",error);return date}}function formatTime(time,config){try{if(!time){return""}const dayjsObj=dayjs(time);if(!dayjsObj.isValid()){return time}return dayjsObj.format(config.time)}catch(error){console.warn("[LocaleFormatter] 时间格式化失败:",error);return time}}function formatDateTime(datetime,config){try{if(!datetime){return""}const dayjsObj=dayjs(datetime);if(!dayjsObj.isValid()){return datetime}const dateTimeFormat=config.datetime;return dayjsObj.format(dateTimeFormat)}catch(error){console.warn("[LocaleFormatter] 日期时间格式化失败:",error);return datetime}}function convertToElementFormat(configFormat){if(!configFormat){return"yyyy-MM-dd"}return configFormat.replace(/YYYY/g,"yyyy").replace(/DD/g,"dd").replace(/(?<!M)D(?!D)/g,"d")}const registerLocaleFilter=Vue=>{Vue.filter("localeDate",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDate(value,config.dayjsFormat)});Vue.filter("localeTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatTime(value,config.dayjsFormat)});Vue.filter("localeDateTime",function(value){const config=Vue.prototype.$localeConfig;if(!config||!value)return value;return formatDateTime(value,config.dayjsFormat)})};Vue.use(registerLocaleFilter);var CCLocale={LOCALE_CONFIG_MAP:LOCALE_CONFIG_MAP,getLocaleConfig:getLocaleConfig,initLocaleConfig:initLocaleConfig,formatDate:formatDate,formatTime:formatTime,formatDateTime:formatDateTime,convertToElementFormat:convertToElementFormat};let CCDK={CCButton:CCButton,CCBrower:CCBrower,CCArray:CCArray,CCDB:CCDB,CCApplication:CCApplication,CCAxios:CCHttp$1,CCUser:CCUser,CCCrypto:Crypto,CCDetail:CCDetail,CCList:CCList,CCToken:CCToken,CCOpenAPI:CCOpenAPI,CCConfig:CCConfig,CCLoad:CCLoad,CCLog:CCLog,CCMenu:CCMenu,CCUtils:CCUtils,CCHttp:CCHttp,CCObject:CCObject,CCPage:CCPage,CCSentry:CCSentry,CCSide:CCSide,CCBus:CCBus,CCCall:CCCall,CCCommon:CCCommon,CCMessage:CCMessage,CCI18n:CCI18n,CCLocale:CCLocale};Vue.prototype.$CCDK=CCDK;window.$CCDK=CCDK;export{CCDK as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcc-ccdk",
3
- "version": "0.9.68",
3
+ "version": "0.9.69",
4
4
  "description": "",
5
5
  "engines": {
6
6
  "node": "20.19.5"