cloudcc-ccdk 0.5.4 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,21 @@
1
+ #### 发布版本:0.5.6
2
+ #### 更新日期:2023/03/21
3
+ #### 更新内容:
4
+ * 修复
5
+ * 清除es高级语法。
6
+
7
+ #### 发布版本:0.5.5
8
+ #### 更新日期:2023/03/21
9
+ #### 更新内容:
10
+ * 迭代
11
+ * 添加ccsentry。
12
+
13
+ #### 发布版本:0.5.4
14
+ #### 更新日期:2023/03/20
15
+ #### 更新内容:
16
+ * 迭代
17
+ * 重构CCHttp
18
+
1
19
  #### 发布版本:0.5.3
2
20
  #### 更新日期:2023/03/10
3
21
  #### 更新内容:
package/lib/ccdk.js CHANGED
@@ -2,7 +2,6 @@ import Vue from 'vue';
2
2
  import CryptoJS from 'crypto-js';
3
3
  import axios, { AxiosError } from 'axios';
4
4
  import cloneDeep from 'lodash/cloneDeep';
5
- import * as Sentry from '@sentry/vue';
6
5
  import Cookies from 'js-cookie';
7
6
  import { Message, MessageBox, Notification } from 'element-ui';
8
7
 
@@ -235,18 +234,6 @@ var CCConfig = /*#__PURE__*/Object.freeze({
235
234
  getCDNUrl: getCDNUrl
236
235
  });
237
236
 
238
- // 日志采集
239
- /**
240
- * 接口未捕获异常上报
241
- * @param {object} memeryMsg
242
- */
243
- function reportException(response) {
244
- Sentry.withScope(function (scope) {
245
- scope.setFingerprint(["接口未捕获异常response"]);
246
- Sentry.captureException(response);
247
- });
248
- }
249
-
250
237
  const keyCode = "646576636f6e736f6c652d7376633132";
251
238
  // const keyCode = "6c6b6a3233346a6b6c6173646877636b"
252
239
 
@@ -434,7 +421,7 @@ class CCAxios {
434
421
  postFormat(config, options = {}) {
435
422
  return this.request({ ...config, method: 'POST', data: formateData(config.data) }, options)
436
423
  }
437
- postParams(config, options = {}){
424
+ postParams(config, options = {}) {
438
425
  return this.request({ ...config, method: 'POST', params: config.data }, options)
439
426
  }
440
427
  // FIXME:如果初始化时配置了重试那么所有get接口都重试了
@@ -446,7 +433,7 @@ class CCAxios {
446
433
  requestOptions.cache = false;
447
434
  requestOptions.cacheKey = '';
448
435
  requestOptions.retryRequest = {
449
- isOpenRetry:false,
436
+ isOpenRetry: false,
450
437
  count: 5,
451
438
  waitTime: 1000
452
439
  };
@@ -475,9 +462,8 @@ class CCAxios {
475
462
  });
476
463
  retPromise.cache = (callback) => {
477
464
  const { cache, cacheKey } = opt;
478
- const cacheData = (cache && this.cachePool.get([cacheKey])) ?? null;
479
- console.log('cacheData', cacheData);
480
- callback(cacheData);
465
+ const cacheData = cache && this.cachePool.get([cacheKey]);
466
+ callback(cacheData ? cacheData : null);
481
467
  return retPromise
482
468
  };
483
469
  return retPromise
@@ -610,7 +596,6 @@ const transform = {
610
596
  if (needReportErrorType.includes(errorType) && isProduction()) {
611
597
  const { serviceName, errorLevel, errorType } = config.requestOptions;
612
598
  // 上报日志
613
- reportException(response);
614
599
  window.$CCDK.CCLog.reportLog(window.Glod['ccex-log'] + "/ccerrorlog", {}, {
615
600
  serviceName,
616
601
  errorType,
@@ -656,7 +641,6 @@ const transform = {
656
641
  if (isProduction()) {
657
642
  const { serviceName, errorLevel, errorType } = config.requestOptions;
658
643
  // 上报日志
659
- reportException(response);
660
644
  window.$CCDK.CCLog.reportLog(window.Glod['ccex-log'] + "/ccerrorlog", {}, {
661
645
  serviceName,
662
646
  errorType,
@@ -1407,6 +1391,66 @@ var CCPage = /*#__PURE__*/Object.freeze({
1407
1391
  getCurrentPage: getCurrentPage
1408
1392
  });
1409
1393
 
1394
+ /**
1395
+ * 设置用户信息
1396
+ * @param {object} sentry
1397
+ */
1398
+ function initUserInfo(sentry) {
1399
+ let ccUser = window.$CCDK.CCUser.getUserInfo();
1400
+ // 添加日志监控标签:组织id
1401
+ sentry.setTag("orgId", ccUser.orgId);
1402
+ // 添加日志监控标签:用户id和用户名称
1403
+ sentry.setUser({
1404
+ username: ccUser.userName,
1405
+ id: ccUser.userId,
1406
+ });
1407
+ }
1408
+ /**
1409
+ * 内存上报
1410
+ * @param {object} sentry
1411
+ */
1412
+ function reportMemory(sentry) {
1413
+ if (performance.memory) {
1414
+ let memeryMsg =
1415
+ "内存监控:jsHeapSizeLimit=" +
1416
+ (performance.memory.jsHeapSizeLimit / 1024 / 1024).toFixed(2) +
1417
+ "mb、" +
1418
+ "totalJSHeapSize=" +
1419
+ (performance.memory.totalJSHeapSize / 1024 / 1024).toFixed(2) +
1420
+ "mb、" +
1421
+ "usedJSHeapSize=" +
1422
+ (performance.memory.usedJSHeapSize / 1024 / 1024).toFixed(2) +
1423
+ "mb";
1424
+ initUserInfo(sentry);
1425
+ sentry.withScope(function (scope) {
1426
+ // 使用内存
1427
+ sentry.setTag("usedJSHeapSize", (performance.memory.usedJSHeapSize / 1024 / 1024).toFixed(2));
1428
+ // 添加日志监控标签:组织id
1429
+ scope.setFingerprint(["内存监控"]);
1430
+ sentry.captureMessage(memeryMsg);
1431
+ });
1432
+ }
1433
+ }
1434
+
1435
+ /**
1436
+ * 网络异常上报
1437
+ * @param {object} sentry
1438
+ * @param {error} error
1439
+ */
1440
+ function reportHttpException(sentry, error) {
1441
+ initUserInfo(sentry);
1442
+ sentry.withScope(function (scope) {
1443
+ scope.setFingerprint(["接口未捕获异常response"]);
1444
+ sentry.captureException(error);
1445
+ });
1446
+ }
1447
+
1448
+ var CCSentry = /*#__PURE__*/Object.freeze({
1449
+ __proto__: null,
1450
+ reportMemory: reportMemory,
1451
+ reportHttpException: reportHttpException
1452
+ });
1453
+
1410
1454
  /**
1411
1455
  * 初始化侧边区域
1412
1456
  * @param {object} options 自定义页面配置
@@ -1520,7 +1564,7 @@ var CCUser = /*#__PURE__*/Object.freeze({
1520
1564
  getUserInfo: getUserInfo
1521
1565
  });
1522
1566
 
1523
- let CCDK = { CCApplication, CCUser, CCCrypto: Crypto, CCToken, CCConfig, CCLoad, CCLog, CCMenu, CCUtils, CCHttp, CCObject, CCPage, CCSide, CCBus, CCCall, CCMessage };
1567
+ let CCDK = { CCApplication, CCUser, CCCrypto: Crypto, CCToken, CCConfig, CCLoad, CCLog, CCMenu, CCUtils, CCHttp, CCObject, CCPage, CCSentry, CCSide, CCBus, CCCall, CCMessage };
1524
1568
  Vue.prototype.$CCDK = CCDK;
1525
1569
  window.$CCDK = CCDK;
1526
1570
 
package/lib/ccdk.min.js CHANGED
@@ -1 +1 @@
1
- import Vue from"vue";import CryptoJS from"crypto-js";import axios,{AxiosError}from"axios";import cloneDeep from"lodash/cloneDeep";import*as Sentry from"@sentry/vue";import Cookies from"js-cookie";import{Message,MessageBox,Notification}from"element-ui";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("解密密码错误",error);return null}}var Crypto=Object.freeze({__proto__:null,encrypt:encrypt,decrypt:decrypt});const APPLICATION_DETAIL="applicaton_current";function getApplicaton(){let detail=localStorage.getItem(Crypto.encrypt(APPLICATION_DETAIL));if(detail){return JSON.parse(detail)}return""}function setApplication(detail=""){if(detail){localStorage.setItem(Crypto.encrypt(APPLICATION_DETAIL),JSON.stringify(detail))}}var CCApplication=Object.freeze({__proto__:null,getApplicaton:getApplicaton,setApplication:setApplication});window.ccBus=new Vue;function $emit(event,...args){window.ccBus.$emit(event,...args)}function $on(event,callback){window.ccBus.$on(event,callback)}function $off(event){window.ccBus.$off(event)}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 getBaseUrl(){return window.gw.BASE_URL}function getGw(){return window.gw}function getSvc(){return window.Glod}function getCDNUrl(){return window.Glod.CDN_URL}var CCConfig=Object.freeze({__proto__:null,getBaseUrl:getBaseUrl,getGw:getGw,getSvc:getSvc,getCDNUrl:getCDNUrl});function reportException(response){Sentry.withScope(function(scope){scope.setFingerprint(["接口未捕获异常response"]);Sentry.captureException(response)})}const keyCode="646576636f6e736f6c652d7376633132";function en(word,keyStr=keyCode){let enc=CryptoJS.AES.encrypt(word,CryptoJS.enc.Hex.parse(keyStr),{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7});return enc.ciphertext.toString()}function de(word,keyStr=keyCode){let dec=CryptoJS.AES.decrypt(CryptoJS.format.Hex.parse(word),CryptoJS.enc.Hex.parse(keyStr),{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7});return CryptoJS.enc.Utf8.stringify(dec)}function getDomain(){let lastTow=document.domain.split(".").slice(-2,-1)[0];if(lastTow=="com"||lastTow=="org"||lastTow=="net"){return"."+document.domain.split(".").slice(-3).join(".")}else{return"."+document.domain.split(".").slice(-2).join(".")}}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});Cookies.set("JSESSIONID",binding,{expires:1/12})}return binding}var CCUtils=Object.freeze({__proto__:null,getDomain:getDomain,getUuid:getUuid,getBinding:getBinding});const toStr=Object.prototype.toString;const TypeEnum={FUNCTION:"[object Function]",ARRAY:"[object Array]"};const isFn=value=>toStr.call(value)===TypeEnum.FUNCTION;const isProduction=()=>process.env.NODE_ENV=="production";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 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]))??null;console.log("cacheData",cacheData);callback(cacheData);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}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 encryptList=["sysconfig/auth/pc/1.0/post/unifiedLogin","sysconfig/auth/pc/1.0/get/getUserInfo"];const transform={async requestInterceptors(config){config.headers.requestId=getUuid();config.headers.requestIdProducer="browser";if(!getBinding()){return Promise.reject()}if(!config.url.startsWith("https://")&&!config.url.startsWith("https://")&&!config.url.startsWith("/test-api")){config.baseURL=window.Glod["ccex-apitsf"]+"/api"}encryptList.forEach(item=>{if(config.url.indexOf(item)!=-1){config.data=en(JSON.stringify(config.data))}});config.headers.accessToken=window.$CCDK.CCToken.getToken();return config},requestInterceptorsCatch(error){return Promise.reject(error)},responseInterceptors(response){const{data,config}=response,{errorType,result}=data;if(!result){if(needReportErrorType.includes(errorType)&&isProduction()){const{serviceName,errorLevel,errorType}=config.requestOptions;reportException(response);window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",{},{serviceName:serviceName,errorType:errorType,errorLevel:errorLevel,errorMessage:response.data.returnInfo,printStackTraceInfo:JSON.stringify(response)},response)}return response}const{serviceName}=config.requestOptions;isProduction()&&window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",{},{serviceName:serviceName},response);return response},async responseInterceptorsCatch(axiosInstance,error){const{response,config}=error||{},err=error?.toString?.()??"",msg=response?.data?.error??"",mode=config?.requestOptions?.errorMessageMode;let errorMessageMode=["message","modal"].includes(mode)&&mode||"modal",errMessage="";if(axios.isCancel(error)){return Promise.reject(error)}if(isProduction()){const{serviceName,errorLevel,errorType}=config.requestOptions;reportException(response);window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",{},{serviceName:serviceName,errorType:errorType,errorLevel:errorLevel,errorMessage:response.data.returnInfo,printStackTraceInfo:JSON.stringify(response)},response)}try{if(isTimeout(error)){errMessage="c2487"}if(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?.response?.status,msg,errorMessageMode);const{isOpenRetry}=config.requestOptions.retryRequest;isOpenRetry&&config.method?.toUpperCase()==="GET"&&retry(axiosInstance,error);return Promise.reject(error)},transformResponseHook(response,options,cachePool){const{data,config}=response;const{url}=config,{errorType,result}=data;const businessLogicError=response=>{const{errorMessageMode,silent}=response.config.requestOptions;if(silent)return;if(errorMessageMode==="modal"){createErrorModal(response,{message:"业务出错"})}else if(errorMessageMode==="message"){createMessage.error(response?.data?.returnInfo||"业务出错")}};if(!result){switch(errorType){case"901":createErrorModal(response,{message:"系统错误"});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}if(encryptList.includes(url)){return JSON.parse(de(data))}cache&&cacheKey&&cachePool.put(cacheKey,data);return data}};function createAxios(opt){return new CCAxios(Object.assign({},{timeout:60*1e3,headers:{"Content-Type":"application/json;charset=UTF-8"},transform:cloneDeep(transform),requestOptions:{envType:"",serviceName:"lightning-main",errorLevel:"2",errorType:"front-error",errorMessageMode:"modal",silent:false,cache:false,retryRequest:{isOpenRetry:false,count:5,waitTime:100},isReturnNativeResponse:false}},opt||{}))}var CCHttp=Object.freeze({__proto__:null,createAxios:createAxios});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 getUserInfo$1(){let userInfo=window.$CCDK.CCUser.getUserInfo();return{userName:userInfo.loginName,userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName}}function getLogInfo(serviceName="未知应用",errorType,errorLevel,errorMessage,printStackTraceInfo,cccode="hidden"){return{serviceName:serviceName,errorType:errorType,errorLevel:errorLevel,errorMessage:errorMessage,printStackTraceInfo:printStackTraceInfo,displayLevel:"2",cccode:cccode,operateTime:(new Date).valueOf()}}function getRequestInfo(response){if(window.performance){let per=performance.getEntriesByName(response.request.responseURL,"resource");if(per.length>0){response.spendTime=per[0].fetchStart>0?per[0].responseEnd-per[0].fetchStart:"0"}}return{spendTime:response.spendTime||"-1",requestUrl:response.request.responseURL,requestId:response.config.headers.requestId,requestIdProducer:response.config.headers.requestIdProducer,requestParameter:response.config.data,requestResult:response.data.result?"成功":"失败",infoMessage:response.data.returnInfo}}function reportLog(url,userInfo,logInfo,response){axios.post(url,{...Object.assign(getUserInfo$1(),userInfo),...Object.assign(getLogInfo(),logInfo),...getRequestInfo(response)})}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog});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});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL="cc_object_detail";const OBJECT="cc_object";const OBJECT_LIST="cc_object_list";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){let detail=localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL));if(detail){if(apiname){let detailObj=JSON.parse(detail).detail;let targetField=undefined;if(Array.isArray(detailObj)){targetField=detailObj.find(item=>item.apiname===apiname)}return targetField}else{return JSON.parse(detail)}}return""}function setObjectDetail(detail=""){if(detail){if(Array.isArray(detail.detail)){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}}localStorage.setItem(Crypto.encrypt(OBJECT_DETAIL),JSON.stringify(detail))}}function setObjectList(detail={}){if(detail.ids){localStorage.setItem(Crypto.encrypt(OBJECT_LIST),JSON.stringify(detail))}}function getObjectList(){let detail=localStorage.getItem(Crypto.encrypt(OBJECT_LIST));if(detail){return JSON.parse(detail)}return{ids:[]}}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail});let pageList=new Map;function openListPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openListPage",pageId,obj,options);return pageId}function openDetailPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openDetailPage",pageId,obj,id,options);return pageId}function openCreatePage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCreatePage",pageId,obj,options);return pageId}function openEditPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openEditPage",pageId,obj,id,options);return pageId}function openCustomPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCustomPage",pageId,obj,options);return pageId}function reOpenPage(pageId,options){let page;if(pageId){page=pageList.get(pageId)}if(page){page.reOpenPage();if(options.refresh){page.refresh()}}}function addPage(id,page){if(id&&page){pageList.set(id,page)}}function deletePage(pageId){if(pageId){pageList.delete(pageId)}}function updatePage(id,page){if(id&&page){pageList.set(id,page)}}function searchPage(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){page=pageList.get(pageId)}else{let currentMenuTree=JSON.parse(localStorage.getItem("current_page"));if(currentMenuTree){if(currentMenuTree.level2Id){page=pageList.get(currentMenuTree.level2Id)}else{page=pageList.get(currentMenuTree.id)}}}if(page){page.close()}}function refresh(){window.$CCDK.CCBus.$emit("refresh")}function getCurrentPage(){let currentMenuTree=localStorage.getItem("current_page");if(currentMenuTree){return JSON.parse(currentMenuTree)}return""}var CCPage=Object.freeze({__proto__:null,openListPage:openListPage,openDetailPage:openDetailPage,openCreatePage:openCreatePage,openEditPage:openEditPage,openCustomPage:openCustomPage,reOpenPage:reOpenPage,addPage:addPage,deletePage:deletePage,updatePage:updatePage,searchPage:searchPage,close:close$1,refresh:refresh,getCurrentPage:getCurrentPage});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding"){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(TOKEN))||Cookies.get(urlName);if(token){setToken(token)}return token}function setToken(token,domain=getDomain()){Cookies.set(Crypto.encrypt(TOKEN),token,{domain:domain,expires:1/12});Cookies.set(Crypto.encrypt(TOKEN),token,{expires:1/12})}function clearToken(domain=getDomain()){Cookies.remove(Crypto.encrypt(TOKEN),{domain:domain});Cookies.remove(Crypto.encrypt(TOKEN))}var CCToken=Object.freeze({__proto__:null,setToken:setToken,getToken:getToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const USER_INFO="cc_user_info";function setUserInfo(userInfo,domain=getDomain()){Cookies.set(Crypto.encrypt(USER_INFO),Crypto.encrypt(userInfo),{domain:domain,expires:1/12});Cookies.set(Crypto.encrypt(USER_INFO),Crypto.encrypt(userInfo),{expires:1/12})}function getUserInfo(){let encryptUserInfo=Cookies.get(Crypto.encrypt(USER_INFO));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo});let CCDK={CCApplication:CCApplication,CCUser:CCUser,CCCrypto:Crypto,CCToken:CCToken,CCConfig:CCConfig,CCLoad:CCLoad,CCLog:CCLog,CCMenu:CCMenu,CCUtils:CCUtils,CCHttp:CCHttp,CCObject:CCObject,CCPage:CCPage,CCSide:CCSide,CCBus:CCBus,CCCall:CCCall,CCMessage:CCMessage};Vue.prototype.$CCDK=CCDK;window.$CCDK=CCDK;export{CCDK as default};
1
+ import Vue from"vue";import CryptoJS from"crypto-js";import axios,{AxiosError}from"axios";import cloneDeep from"lodash/cloneDeep";import Cookies from"js-cookie";import{Message,MessageBox,Notification}from"element-ui";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("解密密码错误",error);return null}}var Crypto=Object.freeze({__proto__:null,encrypt:encrypt,decrypt:decrypt});const APPLICATION_DETAIL="applicaton_current";function getApplicaton(){let detail=localStorage.getItem(Crypto.encrypt(APPLICATION_DETAIL));if(detail){return JSON.parse(detail)}return""}function setApplication(detail=""){if(detail){localStorage.setItem(Crypto.encrypt(APPLICATION_DETAIL),JSON.stringify(detail))}}var CCApplication=Object.freeze({__proto__:null,getApplicaton:getApplicaton,setApplication:setApplication});window.ccBus=new Vue;function $emit(event,...args){window.ccBus.$emit(event,...args)}function $on(event,callback){window.ccBus.$on(event,callback)}function $off(event){window.ccBus.$off(event)}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 getBaseUrl(){return window.gw.BASE_URL}function getGw(){return window.gw}function getSvc(){return window.Glod}function getCDNUrl(){return window.Glod.CDN_URL}var CCConfig=Object.freeze({__proto__:null,getBaseUrl:getBaseUrl,getGw:getGw,getSvc:getSvc,getCDNUrl:getCDNUrl});const keyCode="646576636f6e736f6c652d7376633132";function en(word,keyStr=keyCode){let enc=CryptoJS.AES.encrypt(word,CryptoJS.enc.Hex.parse(keyStr),{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7});return enc.ciphertext.toString()}function de(word,keyStr=keyCode){let dec=CryptoJS.AES.decrypt(CryptoJS.format.Hex.parse(word),CryptoJS.enc.Hex.parse(keyStr),{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7});return CryptoJS.enc.Utf8.stringify(dec)}function getDomain(){let lastTow=document.domain.split(".").slice(-2,-1)[0];if(lastTow=="com"||lastTow=="org"||lastTow=="net"){return"."+document.domain.split(".").slice(-3).join(".")}else{return"."+document.domain.split(".").slice(-2).join(".")}}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});Cookies.set("JSESSIONID",binding,{expires:1/12})}return binding}var CCUtils=Object.freeze({__proto__:null,getDomain:getDomain,getUuid:getUuid,getBinding:getBinding});const toStr=Object.prototype.toString;const TypeEnum={FUNCTION:"[object Function]",ARRAY:"[object Array]"};const isFn=value=>toStr.call(value)===TypeEnum.FUNCTION;const isProduction=()=>process.env.NODE_ENV=="production";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 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}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 encryptList=["sysconfig/auth/pc/1.0/post/unifiedLogin","sysconfig/auth/pc/1.0/get/getUserInfo"];const transform={async requestInterceptors(config){config.headers.requestId=getUuid();config.headers.requestIdProducer="browser";if(!getBinding()){return Promise.reject()}if(!config.url.startsWith("https://")&&!config.url.startsWith("https://")&&!config.url.startsWith("/test-api")){config.baseURL=window.Glod["ccex-apitsf"]+"/api"}encryptList.forEach(item=>{if(config.url.indexOf(item)!=-1){config.data=en(JSON.stringify(config.data))}});config.headers.accessToken=window.$CCDK.CCToken.getToken();return config},requestInterceptorsCatch(error){return Promise.reject(error)},responseInterceptors(response){const{data,config}=response,{errorType,result}=data;if(!result){if(needReportErrorType.includes(errorType)&&isProduction()){const{serviceName,errorLevel,errorType}=config.requestOptions;window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",{},{serviceName:serviceName,errorType:errorType,errorLevel:errorLevel,errorMessage:response.data.returnInfo,printStackTraceInfo:JSON.stringify(response)},response)}return response}const{serviceName}=config.requestOptions;isProduction()&&window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",{},{serviceName:serviceName},response);return response},async responseInterceptorsCatch(axiosInstance,error){const{response,config}=error||{},err=error?.toString?.()??"",msg=response?.data?.error??"",mode=config?.requestOptions?.errorMessageMode;let errorMessageMode=["message","modal"].includes(mode)&&mode||"modal",errMessage="";if(axios.isCancel(error)){return Promise.reject(error)}if(isProduction()){const{serviceName,errorLevel,errorType}=config.requestOptions;window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",{},{serviceName:serviceName,errorType:errorType,errorLevel:errorLevel,errorMessage:response.data.returnInfo,printStackTraceInfo:JSON.stringify(response)},response)}try{if(isTimeout(error)){errMessage="c2487"}if(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?.response?.status,msg,errorMessageMode);const{isOpenRetry}=config.requestOptions.retryRequest;isOpenRetry&&config.method?.toUpperCase()==="GET"&&retry(axiosInstance,error);return Promise.reject(error)},transformResponseHook(response,options,cachePool){const{data,config}=response;const{url}=config,{errorType,result}=data;const businessLogicError=response=>{const{errorMessageMode,silent}=response.config.requestOptions;if(silent)return;if(errorMessageMode==="modal"){createErrorModal(response,{message:"业务出错"})}else if(errorMessageMode==="message"){createMessage.error(response?.data?.returnInfo||"业务出错")}};if(!result){switch(errorType){case"901":createErrorModal(response,{message:"系统错误"});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}if(encryptList.includes(url)){return JSON.parse(de(data))}cache&&cacheKey&&cachePool.put(cacheKey,data);return data}};function createAxios(opt){return new CCAxios(Object.assign({},{timeout:60*1e3,headers:{"Content-Type":"application/json;charset=UTF-8"},transform:cloneDeep(transform),requestOptions:{envType:"",serviceName:"lightning-main",errorLevel:"2",errorType:"front-error",errorMessageMode:"modal",silent:false,cache:false,retryRequest:{isOpenRetry:false,count:5,waitTime:100},isReturnNativeResponse:false}},opt||{}))}var CCHttp=Object.freeze({__proto__:null,createAxios:createAxios});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 getUserInfo$1(){let userInfo=window.$CCDK.CCUser.getUserInfo();return{userName:userInfo.loginName,userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName}}function getLogInfo(serviceName="未知应用",errorType,errorLevel,errorMessage,printStackTraceInfo,cccode="hidden"){return{serviceName:serviceName,errorType:errorType,errorLevel:errorLevel,errorMessage:errorMessage,printStackTraceInfo:printStackTraceInfo,displayLevel:"2",cccode:cccode,operateTime:(new Date).valueOf()}}function getRequestInfo(response){if(window.performance){let per=performance.getEntriesByName(response.request.responseURL,"resource");if(per.length>0){response.spendTime=per[0].fetchStart>0?per[0].responseEnd-per[0].fetchStart:"0"}}return{spendTime:response.spendTime||"-1",requestUrl:response.request.responseURL,requestId:response.config.headers.requestId,requestIdProducer:response.config.headers.requestIdProducer,requestParameter:response.config.data,requestResult:response.data.result?"成功":"失败",infoMessage:response.data.returnInfo}}function reportLog(url,userInfo,logInfo,response){axios.post(url,{...Object.assign(getUserInfo$1(),userInfo),...Object.assign(getLogInfo(),logInfo),...getRequestInfo(response)})}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog});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});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL="cc_object_detail";const OBJECT="cc_object";const OBJECT_LIST="cc_object_list";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){let detail=localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL));if(detail){if(apiname){let detailObj=JSON.parse(detail).detail;let targetField=undefined;if(Array.isArray(detailObj)){targetField=detailObj.find(item=>item.apiname===apiname)}return targetField}else{return JSON.parse(detail)}}return""}function setObjectDetail(detail=""){if(detail){if(Array.isArray(detail.detail)){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}}localStorage.setItem(Crypto.encrypt(OBJECT_DETAIL),JSON.stringify(detail))}}function setObjectList(detail={}){if(detail.ids){localStorage.setItem(Crypto.encrypt(OBJECT_LIST),JSON.stringify(detail))}}function getObjectList(){let detail=localStorage.getItem(Crypto.encrypt(OBJECT_LIST));if(detail){return JSON.parse(detail)}return{ids:[]}}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail});let pageList=new Map;function openListPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openListPage",pageId,obj,options);return pageId}function openDetailPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openDetailPage",pageId,obj,id,options);return pageId}function openCreatePage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCreatePage",pageId,obj,options);return pageId}function openEditPage(obj,id,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openEditPage",pageId,obj,id,options);return pageId}function openCustomPage(obj,options={}){let pageId=options.pageId||Math.random().toString(16).slice(2);window.$CCDK.CCBus.$emit("openCustomPage",pageId,obj,options);return pageId}function reOpenPage(pageId,options){let page;if(pageId){page=pageList.get(pageId)}if(page){page.reOpenPage();if(options.refresh){page.refresh()}}}function addPage(id,page){if(id&&page){pageList.set(id,page)}}function deletePage(pageId){if(pageId){pageList.delete(pageId)}}function updatePage(id,page){if(id&&page){pageList.set(id,page)}}function searchPage(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){page=pageList.get(pageId)}else{let currentMenuTree=JSON.parse(localStorage.getItem("current_page"));if(currentMenuTree){if(currentMenuTree.level2Id){page=pageList.get(currentMenuTree.level2Id)}else{page=pageList.get(currentMenuTree.id)}}}if(page){page.close()}}function refresh(){window.$CCDK.CCBus.$emit("refresh")}function getCurrentPage(){let currentMenuTree=localStorage.getItem("current_page");if(currentMenuTree){return JSON.parse(currentMenuTree)}return""}var CCPage=Object.freeze({__proto__:null,openListPage:openListPage,openDetailPage:openDetailPage,openCreatePage:openCreatePage,openEditPage:openEditPage,openCustomPage:openCustomPage,reOpenPage:reOpenPage,addPage:addPage,deletePage:deletePage,updatePage:updatePage,searchPage:searchPage,close:close$1,refresh:refresh,getCurrentPage:getCurrentPage});function initUserInfo(sentry){let ccUser=window.$CCDK.CCUser.getUserInfo();sentry.setTag("orgId",ccUser.orgId);sentry.setUser({username:ccUser.userName,id:ccUser.userId})}function reportMemory(sentry){if(performance.memory){let memeryMsg="内存监控: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);sentry.withScope(function(scope){sentry.setTag("usedJSHeapSize",(performance.memory.usedJSHeapSize/1024/1024).toFixed(2));scope.setFingerprint(["内存监控"]);sentry.captureMessage(memeryMsg)})}}function reportHttpException(sentry,error){initUserInfo(sentry);sentry.withScope(function(scope){scope.setFingerprint(["接口未捕获异常response"]);sentry.captureException(error)})}var CCSentry=Object.freeze({__proto__:null,reportMemory:reportMemory,reportHttpException:reportHttpException});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding"){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(TOKEN))||Cookies.get(urlName);if(token){setToken(token)}return token}function setToken(token,domain=getDomain()){Cookies.set(Crypto.encrypt(TOKEN),token,{domain:domain,expires:1/12});Cookies.set(Crypto.encrypt(TOKEN),token,{expires:1/12})}function clearToken(domain=getDomain()){Cookies.remove(Crypto.encrypt(TOKEN),{domain:domain});Cookies.remove(Crypto.encrypt(TOKEN))}var CCToken=Object.freeze({__proto__:null,setToken:setToken,getToken:getToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const USER_INFO="cc_user_info";function setUserInfo(userInfo,domain=getDomain()){Cookies.set(Crypto.encrypt(USER_INFO),Crypto.encrypt(userInfo),{domain:domain,expires:1/12});Cookies.set(Crypto.encrypt(USER_INFO),Crypto.encrypt(userInfo),{expires:1/12})}function getUserInfo(){let encryptUserInfo=Cookies.get(Crypto.encrypt(USER_INFO));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo});let CCDK={CCApplication:CCApplication,CCUser:CCUser,CCCrypto:Crypto,CCToken:CCToken,CCConfig:CCConfig,CCLoad:CCLoad,CCLog:CCLog,CCMenu:CCMenu,CCUtils:CCUtils,CCHttp:CCHttp,CCObject:CCObject,CCPage:CCPage,CCSentry:CCSentry,CCSide:CCSide,CCBus:CCBus,CCCall:CCCall,CCMessage:CCMessage};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.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "",
5
5
  "main": "lib/ccdk-min.js",
6
6
  "scripts": {
@@ -30,4 +30,4 @@
30
30
  "lodash": "^4.17.20",
31
31
  "@sentry/vue": "^6.19.7"
32
32
  }
33
- }
33
+ }