cloudcc-ccdk 0.5.9 → 0.6.0
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 +6 -0
- package/lib/ccdk.js +69 -64
- package/lib/ccdk.min.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/ccdk.js
CHANGED
|
@@ -875,10 +875,10 @@ var CCLoad = /*#__PURE__*/Object.freeze({
|
|
|
875
875
|
});
|
|
876
876
|
|
|
877
877
|
/**
|
|
878
|
-
*
|
|
879
|
-
* @returns
|
|
878
|
+
* 获取日志基础信息
|
|
879
|
+
* @returns 日志基础信息
|
|
880
880
|
*/
|
|
881
|
-
function
|
|
881
|
+
function getBaseInfo() {
|
|
882
882
|
let userInfo = window.$CCDK.CCUser.getUserInfo();
|
|
883
883
|
let old = {
|
|
884
884
|
// 用户名,使用登录账号
|
|
@@ -889,44 +889,27 @@ function getUserInfo$1(info) {
|
|
|
889
889
|
"orgId": userInfo.orgId,
|
|
890
890
|
// 组织名称
|
|
891
891
|
"orgName": userInfo.orgName,
|
|
892
|
-
};
|
|
893
|
-
return Object.assign(old, info)
|
|
894
|
-
}
|
|
895
|
-
/**
|
|
896
|
-
* 日志信息
|
|
897
|
-
* @returns 日志信息
|
|
898
|
-
*/
|
|
899
|
-
function getLogInfo(logInfo) {
|
|
900
|
-
let old = {
|
|
901
892
|
// 服务名称
|
|
902
893
|
"serviceName": "未知应用",
|
|
903
|
-
// 日志级别
|
|
904
|
-
"errorLevel": "2",
|
|
905
|
-
// 错误描述
|
|
906
|
-
"errorMessage": null,
|
|
907
|
-
// 错误栈
|
|
908
|
-
"printStackTraceInfo": null,
|
|
909
|
-
// 日志显示级别默认2
|
|
910
|
-
"displayLevel": "2",
|
|
911
|
-
// 日志标识码,没有这个标识码,不能上传
|
|
912
|
-
"cccode": "hidden",
|
|
913
|
-
// 日志类型:info,debug
|
|
914
|
-
"infoType": "info",
|
|
915
894
|
// 记录类型:paltfrom平台日志,dev开发者日志
|
|
916
895
|
"recordType": "paltfrom",
|
|
917
896
|
// 日志类型
|
|
918
897
|
"logType": "front",
|
|
919
898
|
// 发生时间
|
|
920
899
|
"operateTime": (new Date()).valueOf(),
|
|
900
|
+
// 日志标识码,没有这个标识码,不能上传
|
|
901
|
+
"cccode": "hidden",
|
|
902
|
+
// 日志显示级别默认2
|
|
903
|
+
"displayLevel": "2",
|
|
921
904
|
};
|
|
922
|
-
return
|
|
905
|
+
return old
|
|
923
906
|
}
|
|
924
907
|
/**
|
|
925
|
-
*
|
|
908
|
+
* 获取网络异常信息
|
|
926
909
|
* @param {object} response 网络请求响应体
|
|
927
910
|
* @returns 请求体信息
|
|
928
911
|
*/
|
|
929
|
-
function
|
|
912
|
+
function getHttpErrorInfo(response) {
|
|
930
913
|
if (response) {
|
|
931
914
|
if (window.performance) {
|
|
932
915
|
// 通过性能接口精确测量接口用时
|
|
@@ -946,73 +929,95 @@ function getRequestInfo(response) {
|
|
|
946
929
|
"requestIdProducer": response.config.headers.requestIdProducer,
|
|
947
930
|
// 请求体
|
|
948
931
|
"requestParameter": response.config.data,
|
|
949
|
-
//
|
|
932
|
+
// 错误描述
|
|
933
|
+
"errorMessage": response.data.returnInfo,
|
|
934
|
+
// 请求结果状态
|
|
950
935
|
"requestResult": response.data.result ? "成功" : "失败",
|
|
951
|
-
//
|
|
936
|
+
// 日志级别
|
|
937
|
+
"errorLevel": "2",
|
|
938
|
+
// 堆栈信息
|
|
939
|
+
"printStackTraceInfo": response.data.returnInfo,
|
|
940
|
+
}
|
|
941
|
+
} else {
|
|
942
|
+
return {}
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
/**
|
|
948
|
+
* 获取网络信息
|
|
949
|
+
* @param {object} response 网络请求响应体
|
|
950
|
+
* @returns 请求体信息
|
|
951
|
+
*/
|
|
952
|
+
function getHttpInfo(response) {
|
|
953
|
+
if (response) {
|
|
954
|
+
if (window.performance) {
|
|
955
|
+
// 通过性能接口精确测量接口用时
|
|
956
|
+
let per = performance.getEntriesByName(response.request.responseURL, "resource");
|
|
957
|
+
if (per.length > 0) {
|
|
958
|
+
response.spendTime = (per[0].fetchStart > 0) ? (per[0].responseEnd - per[0].fetchStart) : "0";
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
return {
|
|
962
|
+
// 接口用时
|
|
963
|
+
"spendTime": response.spendTime || "0",
|
|
964
|
+
// 请求地址url
|
|
965
|
+
"requestUrl": response.request.responseURL,
|
|
966
|
+
// 请求id
|
|
967
|
+
"requestId": response.config.headers.requestId,
|
|
968
|
+
// 请求id类型
|
|
969
|
+
"requestIdProducer": response.config.headers.requestIdProducer,
|
|
970
|
+
// 请求体
|
|
971
|
+
"requestParameter": response.config.data,
|
|
972
|
+
// 错误描述
|
|
952
973
|
"infoMessage": response.data.returnInfo,
|
|
974
|
+
// 请求结果状态
|
|
975
|
+
"requestResult": response.data.result ? "成功" : "失败",
|
|
976
|
+
// 日志类型:info,debug
|
|
977
|
+
"infoType": "info",
|
|
953
978
|
}
|
|
954
979
|
} else {
|
|
955
980
|
return {}
|
|
956
981
|
}
|
|
957
982
|
}
|
|
983
|
+
|
|
958
984
|
/**
|
|
959
985
|
* 上报日志
|
|
960
986
|
* @param {string} url 请求地址
|
|
961
|
-
* @param {object} userInfo 用户信息
|
|
962
|
-
* @param {object} logInfo 日志信息
|
|
963
987
|
* @param {object} response 响应信息
|
|
988
|
+
* @param {string} type 日志类型,info,debug,error
|
|
989
|
+
* @param {object} logInfo 日志信息
|
|
964
990
|
*/
|
|
965
|
-
function reportLog(url,
|
|
991
|
+
function reportLog(url, response, type = "info", logInfo = {}) {
|
|
966
992
|
axios.post(url,
|
|
967
993
|
{
|
|
968
|
-
...
|
|
969
|
-
...
|
|
970
|
-
...
|
|
971
|
-
...otherInfo
|
|
994
|
+
...getBaseInfo(),
|
|
995
|
+
...(type === "info" ? getHttpInfo(response) : getHttpErrorInfo(response)),
|
|
996
|
+
...logInfo
|
|
972
997
|
});
|
|
973
998
|
}
|
|
974
999
|
/**
|
|
975
|
-
* 上报
|
|
1000
|
+
* 上报info日志
|
|
976
1001
|
* @param {object} logInfo 日志信息
|
|
977
|
-
* @param {object} response 响应信息
|
|
1002
|
+
* @param {object} response axios响应信息
|
|
978
1003
|
*/
|
|
979
|
-
function
|
|
1004
|
+
function reportInfoLog(logInfo, response) {
|
|
980
1005
|
logInfo.recordType = "dev";
|
|
981
|
-
reportLog(window.Glod['ccex-log'] + "/systeminfolog",
|
|
1006
|
+
reportLog(window.Glod['ccex-log'] + "/systeminfolog", response, "info", logInfo);
|
|
982
1007
|
}
|
|
983
1008
|
/**
|
|
984
|
-
*
|
|
1009
|
+
* 上报错误信息
|
|
985
1010
|
* @param {object} logInfo 日志信息
|
|
986
|
-
* @param {object} response 响应信息
|
|
1011
|
+
* @param {object} response axios响应信息
|
|
987
1012
|
*/
|
|
988
|
-
function
|
|
1013
|
+
function reportErrorLog(logInfo, response) {
|
|
989
1014
|
logInfo.recordType = "dev";
|
|
990
|
-
reportLog(window.Glod['ccex-log'] + "/ccerrorlog",
|
|
991
|
-
}
|
|
992
|
-
|
|
993
|
-
/**
|
|
994
|
-
* 日志信息
|
|
995
|
-
* @param {object} info
|
|
996
|
-
*/
|
|
997
|
-
function reportInfoLog(info) {
|
|
998
|
-
info.recordType = "dev";
|
|
999
|
-
reportLog(window.Glod['ccex-log'] + "/systeminfolog", {}, {}, null, info);
|
|
1000
|
-
}
|
|
1001
|
-
|
|
1002
|
-
/**
|
|
1003
|
-
* 日志信息
|
|
1004
|
-
* @param {object} info
|
|
1005
|
-
*/
|
|
1006
|
-
function reportErrorLog(info) {
|
|
1007
|
-
info.recordType = "dev";
|
|
1008
|
-
reportLog(window.Glod['ccex-log'] + "/ccerrorlog", {}, {}, null, info);
|
|
1015
|
+
reportLog(window.Glod['ccex-log'] + "/ccerrorlog", response, "error", logInfo);
|
|
1009
1016
|
}
|
|
1010
1017
|
|
|
1011
1018
|
var CCLog = /*#__PURE__*/Object.freeze({
|
|
1012
1019
|
__proto__: null,
|
|
1013
1020
|
reportLog: reportLog,
|
|
1014
|
-
reportHttpInfoLog: reportHttpInfoLog,
|
|
1015
|
-
reportHttpErrorLog: reportHttpErrorLog,
|
|
1016
1021
|
reportInfoLog: reportInfoLog,
|
|
1017
1022
|
reportErrorLog: reportErrorLog
|
|
1018
1023
|
});
|
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 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="",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)}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&&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.requestOptions.retryRequest;isOpenRetry&&config.method&&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&&response.data&&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(info){let userInfo=window.$CCDK.CCUser.getUserInfo();let old={userName:userInfo.loginName,userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName};return Object.assign(old,info)}function getLogInfo(logInfo){let old={serviceName:"未知应用",errorLevel:"2",errorMessage:null,printStackTraceInfo:null,displayLevel:"2",cccode:"hidden",infoType:"info",recordType:"paltfrom",logType:"front",operateTime:(new Date).valueOf()};return Object.assign(old,logInfo)}function getRequestInfo(response){if(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||"0",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}}else{return{}}}function reportLog(url,userInfo,logInfo,response,otherInfo={}){axios.post(url,{...getUserInfo$1(userInfo),...getLogInfo(logInfo),...getRequestInfo(response),...otherInfo})}function reportHttpInfoLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/systeminfolog",{},logInfo,response)}function reportHttpErrorLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/ccerrorlog",{},logInfo,{},response)}function reportInfoLog(info){info.recordType="dev";reportLog(window.Glod["ccex-log"]+"/systeminfolog",{},{},null,info)}function reportErrorLog(info){info.recordType="dev";reportLog(window.Glod["ccex-log"]+"/ccerrorlog",{},{},null,info)}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportHttpInfoLog:reportHttpInfoLog,reportHttpErrorLog:reportHttpErrorLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog});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};
|
|
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="",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)}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&&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.requestOptions.retryRequest;isOpenRetry&&config.method&&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&&response.data&&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 getBaseInfo(){let userInfo=window.$CCDK.CCUser.getUserInfo();let old={userName:userInfo.loginName,userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName,serviceName:"未知应用",recordType:"paltfrom",logType:"front",operateTime:(new Date).valueOf(),cccode:"hidden",displayLevel:"2"};return old}function getHttpErrorInfo(response){if(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||"0",requestUrl:response.request.responseURL,requestId:response.config.headers.requestId,requestIdProducer:response.config.headers.requestIdProducer,requestParameter:response.config.data,errorMessage:response.data.returnInfo,requestResult:response.data.result?"成功":"失败",errorLevel:"2",printStackTraceInfo:response.data.returnInfo}}else{return{}}}function getHttpInfo(response){if(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||"0",requestUrl:response.request.responseURL,requestId:response.config.headers.requestId,requestIdProducer:response.config.headers.requestIdProducer,requestParameter:response.config.data,infoMessage:response.data.returnInfo,requestResult:response.data.result?"成功":"失败",infoType:"info"}}else{return{}}}function reportLog(url,response,type="info",logInfo={}){axios.post(url,{...getBaseInfo(),...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...logInfo})}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)}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog});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};
|