cloudcc-ccdk 0.9.2 → 0.9.3
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 +7 -0
- package/lib/ccdk.js +57 -8
- package/lib/ccdk.min.js +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
package/lib/ccdk.js
CHANGED
|
@@ -3,6 +3,7 @@ import CryptoJS from 'crypto-js';
|
|
|
3
3
|
import axios, { AxiosError } from 'axios';
|
|
4
4
|
import { cloneDeep } from 'lodash';
|
|
5
5
|
import Cookies from 'js-cookie';
|
|
6
|
+
import Jwt from 'jsonwebtoken';
|
|
6
7
|
import { Message, MessageBox, Notification } from 'element-ui';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -120,6 +121,21 @@ function getDomain() {
|
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
|
|
124
|
+
/**
|
|
125
|
+
* 校验token是否有效
|
|
126
|
+
* {
|
|
127
|
+
"versionType": "Unlimited",
|
|
128
|
+
"loginName": "admin@cloudcc.com",
|
|
129
|
+
"binding": "1eaabe2e24844904b443308f48fb0dee",
|
|
130
|
+
"userId": "0052017BE8702F1PIi4j",
|
|
131
|
+
"orgId": "exorg20235419690prod"
|
|
132
|
+
}
|
|
133
|
+
* @param {string} token 认证信息
|
|
134
|
+
*/
|
|
135
|
+
function verifyToken(token) {
|
|
136
|
+
let j = Jwt(token);
|
|
137
|
+
return { result: j.versionType && j.loginName && j.binding && j.userId && j.orgId, jwt: j }
|
|
138
|
+
}
|
|
123
139
|
|
|
124
140
|
/**
|
|
125
141
|
* 格式化时间:yyyy-MM-dd HH:mm:ss
|
|
@@ -182,7 +198,8 @@ var CCUtils = /*#__PURE__*/Object.freeze({
|
|
|
182
198
|
getDomain: getDomain,
|
|
183
199
|
getUuid: getUuid,
|
|
184
200
|
getBinding: getBinding,
|
|
185
|
-
getNowFormatDate: getNowFormatDate
|
|
201
|
+
getNowFormatDate: getNowFormatDate,
|
|
202
|
+
verifyToken: verifyToken
|
|
186
203
|
});
|
|
187
204
|
|
|
188
205
|
const toStr = Object.prototype.toString;
|
|
@@ -1847,9 +1864,13 @@ function getUrlQuery(name) {
|
|
|
1847
1864
|
*/
|
|
1848
1865
|
function getToken(urlName = "binding", cookieName = TOKEN) {
|
|
1849
1866
|
let token = getUrlQuery(urlName) || Cookies.get(Crypto.encrypt(cookieName)) || Cookies.get(urlName || TOKEN);
|
|
1850
|
-
// 如果存在token,那么存储到cookies中,刷新有效期
|
|
1851
1867
|
if (token) {
|
|
1852
|
-
|
|
1868
|
+
let { result } = verifyToken(token);
|
|
1869
|
+
if (result) {
|
|
1870
|
+
setToken(token, cookieName);
|
|
1871
|
+
} else {
|
|
1872
|
+
token = null;
|
|
1873
|
+
}
|
|
1853
1874
|
}
|
|
1854
1875
|
return token
|
|
1855
1876
|
}
|
|
@@ -1860,8 +1881,10 @@ function getToken(urlName = "binding", cookieName = TOKEN) {
|
|
|
1860
1881
|
* @param {String} domain 域名
|
|
1861
1882
|
*/
|
|
1862
1883
|
function setToken(token, cookieName = TOKEN, domain = getDomain()) {
|
|
1863
|
-
|
|
1864
|
-
|
|
1884
|
+
let { result } = verifyToken(token);
|
|
1885
|
+
if (result) {
|
|
1886
|
+
Cookies.set(Crypto.encrypt(cookieName), token, { domain: domain, expires: 1 / 12 });
|
|
1887
|
+
}
|
|
1865
1888
|
}
|
|
1866
1889
|
|
|
1867
1890
|
/**
|
|
@@ -1882,8 +1905,10 @@ var CCToken = /*#__PURE__*/Object.freeze({
|
|
|
1882
1905
|
getUrlQuery: getUrlQuery
|
|
1883
1906
|
});
|
|
1884
1907
|
|
|
1885
|
-
// cookie存储标识
|
|
1908
|
+
// 用户cookie存储标识
|
|
1886
1909
|
const USER_INFO = "cc_user_info";
|
|
1910
|
+
// JWT的cookie存储标识
|
|
1911
|
+
const USER_JWT_INFO = "cc_user_jwt_info";
|
|
1887
1912
|
|
|
1888
1913
|
/**
|
|
1889
1914
|
* 存储用户信息
|
|
@@ -1892,7 +1917,6 @@ const USER_INFO = "cc_user_info";
|
|
|
1892
1917
|
*/
|
|
1893
1918
|
function setUserInfo(userInfo, domain = getDomain()) {
|
|
1894
1919
|
Cookies.set(Crypto.encrypt(USER_INFO), Crypto.encrypt(userInfo), { domain: domain, expires: 1 / 12 });
|
|
1895
|
-
Cookies.set(Crypto.encrypt(USER_INFO), Crypto.encrypt(userInfo), { expires: 1 / 12 });
|
|
1896
1920
|
}
|
|
1897
1921
|
|
|
1898
1922
|
/**
|
|
@@ -1907,12 +1931,37 @@ function getUserInfo() {
|
|
|
1907
1931
|
} else {
|
|
1908
1932
|
return ""
|
|
1909
1933
|
}
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
/**
|
|
1937
|
+
* 存储用户jwt信息
|
|
1938
|
+
* @param {String} jwtInfo 用户信息
|
|
1939
|
+
* @param {String} domain 域名
|
|
1940
|
+
*/
|
|
1941
|
+
function setUserJwtInfo(jwtInfo, domain = getDomain()) {
|
|
1942
|
+
Cookies.set(Crypto.encrypt(USER_JWT_INFO), Crypto.encrypt(jwtInfo), { domain: domain, expires: 1 / 12 });
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
/**
|
|
1946
|
+
* 获取用户jwt信息
|
|
1947
|
+
* @returns {Object} 用户信息
|
|
1948
|
+
*/
|
|
1949
|
+
function getUserJwtInfo() {
|
|
1950
|
+
// 加密的用户信息
|
|
1951
|
+
let encryptUserInfo = Cookies.get(Crypto.encrypt(USER_JWT_INFO));
|
|
1952
|
+
if (encryptUserInfo) {
|
|
1953
|
+
return JSON.parse(Crypto.decrypt(encryptUserInfo))
|
|
1954
|
+
} else {
|
|
1955
|
+
return {}
|
|
1956
|
+
}
|
|
1910
1957
|
}
|
|
1911
1958
|
|
|
1912
1959
|
var CCUser = /*#__PURE__*/Object.freeze({
|
|
1913
1960
|
__proto__: null,
|
|
1914
1961
|
setUserInfo: setUserInfo,
|
|
1915
|
-
getUserInfo: getUserInfo
|
|
1962
|
+
getUserInfo: getUserInfo,
|
|
1963
|
+
setUserJwtInfo: setUserJwtInfo,
|
|
1964
|
+
getUserJwtInfo: getUserJwtInfo
|
|
1916
1965
|
});
|
|
1917
1966
|
|
|
1918
1967
|
let CCDK = { CCApplication, CCAxios: CCHttp$1, CCUser, CCCrypto: Crypto, CCToken, CCConfig, CCLoad, CCLog, CCMenu, CCUtils, CCHttp, CCObject, CCPage, CCSentry, CCSide, CCBus, CCCall, CCCommon, CCMessage };
|
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";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});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 getNowFormatDate(){var myDate=new Date;var year=myDate.getFullYear();var mon=myDate.getMonth()+1;if(mon<10){mon="0"+mon}var date=myDate.getDate();if(date<10){date="0"+date}var hours=myDate.getHours();if(hours<10){hours="0"+hours}var minutes=myDate.getMinutes();if(minutes<10){minutes="0"+minutes}var seconds=myDate.getSeconds();if(seconds<10){seconds="0"+seconds}var now=year+"-"+mon+"-"+date+" "+hours+":"+minutes+":"+seconds;return now}function getUuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=="x"?r:r&3|8;return v.toString(16)})}function getBinding(){let binding=window.$CCDK.CCToken.getToken();if(!binding){window.open(window.Glod.LOGIN_URL,"_self")}else{Cookies.set("binding",binding,{expires:1/12});Cookies.set("JSESSIONID",binding,{expires:1/12})}return binding}var CCUtils=Object.freeze({__proto__:null,getDomain:getDomain,getUuid:getUuid,getBinding:getBinding,getNowFormatDate:getNowFormatDate});const toStr=Object.prototype.toString;const TypeEnum={FUNCTION:"[object Function]",ARRAY:"[object Array]"};const isFn=value=>toStr.call(value)===TypeEnum.FUNCTION;const isProduction=()=>true;const delay=(waitTime=1e3)=>new Promise(resolve=>setTimeout(resolve,waitTime));const isTimeout=(error={code:"",message:""})=>{return error.code===AxiosError.ECONNABORTED&&error.message.includes("timeout")};const formateData=data=>{return{head:{appType:"lightning-main",appVersion:"1.1.1",accessToken:getBinding(),source:"lightning-main"},body:{...data}}};const deepMerge=(source,target)=>{const res=cloneDeep(source);for(let key in target){if(target.hasOwnProperty(key)){res[key]=isObject(target[key])?deepMerge(res[key],target[key]):target[key]}}return res};const LRUCache=function(capacity){this.capacity=capacity;this.cache=new Map};LRUCache.prototype.get=function(key){var cacheTemp=this.cache,curTemp=cacheTemp.get(key);if(curTemp||curTemp===0){cacheTemp.delete(key);cacheTemp.set(key,curTemp);return curTemp}return null};LRUCache.prototype.put=function(key,value){var cacheTemp=this.cache;if(cacheTemp.get(key)){cacheTemp.delete(key)}else if(cacheTemp.size>=this.capacity){cacheTemp.delete(cacheTemp.keys().next().value)}cacheTemp.set(key,value)};class CCAxios{constructor(opt){this.options=opt;this.axiosInstance=axios.create(opt);this.setupInterceptors();this.cachePool=new LRUCache(20)}getTransform(){const{transform}=this.options;return transform}setupInterceptors(){const transform=this.getTransform();if(!transform){return}const{requestInterceptors,requestInterceptorsCatch,responseInterceptors,responseInterceptorsCatch}=transform;this.axiosInstance.interceptors.request.use(requestInterceptors,undefined);requestInterceptorsCatch&&isFn(requestInterceptorsCatch)&&this.axiosInstance.interceptors.request.use(undefined,requestInterceptorsCatch);this.axiosInstance.interceptors.response.use(responseInterceptors,undefined);responseInterceptorsCatch&&isFn(responseInterceptorsCatch)&&this.axiosInstance.interceptors.response.use(undefined,error=>{return responseInterceptorsCatch(this.axiosInstance,error)})}get(config,options={}){return this.request({...config,method:"GET"},options)}post(config,options={}){const{envType}=options;if("public"==envType&&"private"==window.Glod["ENV_TYPE"]){return new Promise(()=>{})}if("private"==envType&&"private"!=window.Glod["ENV_TYPE"]){return new Promise(()=>{})}return this.request({...config,method:"POST"},options)}postFormat(config,options={}){return this.request({...config,method:"POST",data:formateData(config.data)},options)}postParams(config,options={}){return this.request({...config,method:"POST",params:config.data},options)}request(config,options){const transform=this.getTransform();const conf=config,{requestOptions}=this.options;requestOptions.cache=false;requestOptions.cacheKey="";requestOptions.retryRequest={isOpenRetry:false,count:5,waitTime:1e3};const opt=Object.assign({},requestOptions,options);conf.requestOptions=opt;const retPromise=new Promise((resolve,reject)=>{this.axiosInstance(conf).then(res=>{const{transformResponseHook}=transform;if(transformResponseHook&&isFn(transformResponseHook)){try{const ret=transformResponseHook(res,opt,this.cachePool);resolve(ret)}catch(err){reject(err||new Error("request error!"))}return}resolve(res)}).catch(err=>{reject(err)})});retPromise.cache=callback=>{const{cache,cacheKey}=opt;const cacheData=cache&&this.cachePool.get([cacheKey]);callback(cacheData?cacheData:null);return retPromise};return retPromise}}const createErrorModal=(response,options)=>{const{message}=options;let temp;if(response.name==="AxiosError"){temp=response.response;temp.data.returnInfo=response.returnInfo||message||temp.error||"";temp.data.returnCode=response.code||temp.status;temp.data.requestId=response.config.headers.requestId}else{temp=response;temp.data.requestId=response.config.headers.requestId}isFn(Vue.prototype.$ErrorDialog)&&Vue.prototype.$ErrorDialog({response:temp})};const createMessage=Message;const needReportErrorType=["901","999"];function checkStatus(error,status,msg,errorMessageMode="modal"){let errMessage="message.error.object.contactadministrators";if(status===401){window.open(window.Glod.LOGIN_URL,"_self")}{if(errorMessageMode==="modal"){createErrorModal(error,{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}}}const retry=async(instance,error)=>{const{config}=error,{waitTime,count=5}=config.requestOptions||{};config.__retryCount=config.__retryCount||0;if(count<=config.__retryCount){return Promise.reject(error)}config.__retryCount++;await delay(waitTime);delete config.headers;return instance(config)};const transform={requestInterceptors(config){config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";config.headers.accessToken=window.$CCDK.CCToken.getToken();return config},responseInterceptors(response){const{data,config}=response,{errorType,result}=data;if(!result){if(needReportErrorType.includes(errorType)&&isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(response)}}return response}const{infoReporter}=config.requestOptions;if(infoReporter&&isFn(infoReporter)){infoReporter(response)}return response},async responseInterceptorsCatch(axiosInstance,error){const{response,config}=error||{};let err="",msg="",mode="modal";try{err=error.toString(),msg=response.data.error,mode=config.requestOptions.errorMessageMode}catch(e){}let errorMessageMode=["message","modal"].includes(mode)&&mode||"modal",errMessage="";if(axios.isCancel(error)){return Promise.reject(error)}try{if(isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(error)}}if(isTimeout(error)){errMessage="c2487"}if(err&&err.includes("Network Error")){errMessage="c929"}if(errMessage){if(errorMessageMode==="modal"){createErrorModal({...error,response:{data:{returnInfo:error.message,returnCode:error.code,requestId:error.config.headers.requestId},config:error.config}},{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}return Promise.reject(error)}}catch(error){throw new Error(error)}checkStatus(error,error&&error.response.status,msg,errorMessageMode);const{isOpenRetry}=config;isOpenRetry&&config.method&&config.method.toUpperCase()==="GET"&&retry(axiosInstance,error);return Promise.reject(error)},transformResponseHook(response,options,cachePool){const{data}=response;const{errorType,result}=data;const businessLogicError=response=>{const{errorMessageMode,silent}=response.config.requestOptions;if(silent)return;if(errorMessageMode==="modal"){createErrorModal(response,{message:"业务出错"})}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}cache&&cacheKey&&cachePool.put(cacheKey,data);return data}};function createAxios(opt){return new CCAxios(deepMerge({timeout:60*1e3,headers:{"Content-Type":"application/json;charset=UTF-8"},transform:cloneDeep(transform),requestOptions:{envType:"",errorMessageMode:"modal",silent:false,cache:false,retryRequest:{isOpenRetry:false,count:5,waitTime:100},isReturnNativeResponse:false}},opt||{}))}var CCHttp$1=Object.freeze({__proto__:null,createAxios:createAxios});window.ccBus=new Vue;function $emit(...args){window.ccBus.$emit(...args)}function $on(...args){window.ccBus.$on(...args)}function $off(...args){window.ccBus.$off(...args)}var CCBus=Object.freeze({__proto__:null,$emit:$emit,$on:$on,$off:$off});let ccCall=new Map;let currentCall;function init$1(id,callClient){if(id&&callClient){ccCall.set(id,callClient);currentCall=callClient;return currentCall}}function call(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.call(options)}return call}function openCallPanel(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.openCallPanel(options)}return call}var CCCall=Object.freeze({__proto__:null,init:init$1,call:call,openCallPanel:openCallPanel});function reportError(response){if("1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",{serviceName:"lightning-custom-page"})}}function reportInfo(response){if("2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",{serviceName:"lightning-custom-page"})}}const service$1=axios.create({timeout:60*1e3,headers:{"Content-Type":"application/json; charset=utf-8"}});service$1.interceptors.request.use(config=>{config.headers.accessToken=window.$CCDK.CCToken.getToken();config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";return config},error=>{Promise.reject(error)});service$1.interceptors.response.use(response=>{if(response.data.result){reportInfo(response);return response.data}else{reportError(response);return Promise.reject(response)}},error=>{if(error){reportError(error.response)}return Promise.reject(error)});var http={get:(url,data={},responseType="")=>{return service$1({url:url,method:"get",params:data,responseType:responseType})},post:(url,data={},responseType="")=>{return service$1({url:url,method:"post",data:data,responseType:responseType})}};function post$1(className,methodName,params){return http.post(window.$CCDK.CCConfig.getSvc()["ccex-apitsf"]+"/api/openCall/common",{className:className,methodName:methodName,params:params})}var CCCommon=Object.freeze({__proto__:null,post:post$1});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 service=axios.create({timeout:6e4,headers:{"Content-Type":"application/json; charset=utf-8"}});service.interceptors.request.use(config=>{config.headers["accessToken"]=window.$CCDK.CCToken.getToken();return config},error=>{Promise.reject(error)});service.interceptors.response.use(response=>{const code=response.data.code||200;if(code!==200){return Promise.reject(null==response.data.msg?"未知异常":response.data.msg)}else{return response.data}},error=>{return Promise.reject(error)});function get(url,data={},responseType=""){return service({url:url,method:"get",params:data,responseType:responseType})}function post(url,data={},responseType=""){return service({url:url,method:"post",data:data,responseType:responseType})}function put(url,data={}){return service({url:url,method:"put",data:data})}function postParams(url,data={}){return service({url:url,method:"post",params:data})}function patch(url,data={}){return service({url:url,method:"patch",data:data})}var CCHttp=Object.freeze({__proto__:null,get:get,post:post,put:put,patch:patch,postParams:postParams});function loadJs(src,scriptOption){return new Promise((resolve,reject)=>{let scriptTemp=document.createElement("script");if(scriptOption){Object.assign(scriptTemp,scriptOption)}scriptTemp.type="text/javascript";scriptTemp.src=src;document.body.appendChild(scriptTemp);scriptTemp.onload=()=>{resolve()};scriptTemp.onerror=()=>{reject()}})}function createLoadJsComponent(){Vue.component("cc-load-script",{render:function(createElement){var self=this;return createElement("script",{attrs:{type:"text/javascript",src:this.src},on:{load:function(event){self.$emit("load",event)},error:function(event){self.$emit("error",event)},readystatechange:function(event){if(this.readyState=="complete"){self.$emit("load",event)}}}})},props:{src:{type:String,required:true}}})}var CCLoad=Object.freeze({__proto__:null,loadJs:loadJs,createLoadJsComponent:createLoadJsComponent});function getBaseInfo(){let userInfo=window.$CCDK.CCUser.getUserInfo();let old={userName:userInfo.loginName||"未知用户",userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName,serviceName:"未知应用",recordType:"platform",logType:"front",operateTime:(new Date).valueOf(),operateTimeStr:window.$CCDK.CCUtils.getNowFormatDate(),cccode:"hidden",displayLevel:"2"};return old}function getHttpErrorInfo(error={}){let{config={},data={}}=error;if(config){return{requestUrl:config.baseURL+config.url,requestId:config.headers?config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:config.headers?config.headers.requestIdProducer:"",requestParameter:config.data,errorMessage:error.message||data.returnInfo||"未知错误",requestResult:"失败",errorLevel:"2",printStackTraceInfo:(error.message||data.returnInfo||"未知错误")+"\n"+config.data}}else{return{}}}function getHttpInfo(response){if(response){if(window.performance){let per=performance.getEntriesByName(response.request.responseURL,"resource");if(per.length>0){let index=per.length-1;response.spendTime=per[index].fetchStart>0?per[index].responseEnd-per[index].fetchStart:"0"}}return{spendTime:response.spendTime||"0",requestUrl:response.request?response.request.responseURL:"",requestId:response.config.headers?response.config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:response.config.headers?response.config.headers.requestIdProducer:"",requestParameter:response.config.data,infoMessage:response.request.responseURL+". took:"+(response.spendTime||0).toFixed(0)+"ms"+"\n"+(response.config.data||""),requestResult:response.data.result?"成功":"失败",infoType:"info"}}else{return{}}}function reportLog(url,response,type="info",logInfo={}){let userInfo=getBaseInfo();if("未知用户"!=userInfo.userName&&userInfo.userName){axios.post(url,{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...logInfo})}}function batchReportLog(url,response,type="info",logInfo=[]){let userInfo=getBaseInfo();if("未知用户"!=userInfo.userName&&userInfo.userName&&logInfo.length>0){let datas=logInfo.map(info=>{return{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...info}});axios.post(url,datas)}}function reportInfoLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",logInfo)}function reportErrorLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",logInfo)}function reportCCError(error,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",error,"error",options)}}function reportCCInfo(response,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"2"===window.Glod["CC_LOG_LEVEL"]){if(response.config.data){try{let data=JSON.parse(response.config.data);if(data.head&&data.head.accessToken){data.head.accessToken="******";response.config.data=JSON.stringify(data)}}catch(e){}}window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",options)}}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog,reportCCError:reportCCError,reportCCInfo:reportCCInfo,batchReportLog:batchReportLog});const ALL_MENU_LIST="all_menu_list";const CURRENT_MENU="current_menu";function getAllMenu(){let data=localStorage.getItem(Crypto.encrypt(ALL_MENU_LIST));if(data){return JSON.parse(data)}return[]}function setAllMenu(data=[]){if(data){localStorage.setItem(Crypto.encrypt(ALL_MENU_LIST),JSON.stringify(data))}}function setCurrentMenu(data={}){if(data){localStorage.setItem(Crypto.encrypt(CURRENT_MENU),JSON.stringify(data))}}function getCurrentMenu(){let data=localStorage.getItem(Crypto.encrypt(CURRENT_MENU));if(data){return JSON.parse(data)}return{}}function addMenu1(options){window.$CCDK.CCBus.$emit("addMenu1",options)}function addMenu2(options){window.$CCDK.CCBus.$emit("addMenu2",options)}function deleteMenu1(options){window.$CCDK.CCBus.$emit("deleteMenu1",options)}function deleteMenu2(options){window.$CCDK.CCBus.$emit("deleteMenu2",options)}function refreshMenu1(options){window.$CCDK.CCBus.$emit("refreshMenu1",options)}function refreshMenu2(options){window.$CCDK.CCBus.$emit("refreshMenu2",options)}function replaceMenu1(options){window.$CCDK.CCBus.$emit("replaceMenu1",options)}function replaceMenu2(options){window.$CCDK.CCBus.$emit("replaceMenu2",options)}function reOpenMenu1(options){window.$CCDK.CCBus.$emit("reOpenMenu1",options)}function reOpenMenu2(options){window.$CCDK.CCBus.$emit("reOpenMenu2",options)}var CCMenu=Object.freeze({__proto__:null,addMenu1:addMenu1,addMenu2:addMenu2,deleteMenu1:deleteMenu1,deleteMenu2:deleteMenu2,refreshMenu1:refreshMenu1,refreshMenu2:refreshMenu2,replaceMenu1:replaceMenu1,replaceMenu2:replaceMenu2,reOpenMenu1:reOpenMenu1,reOpenMenu2:reOpenMenu2,getAllMenu:getAllMenu,setAllMenu:setAllMenu,setCurrentMenu:setCurrentMenu,getCurrentMenu:getCurrentMenu});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL="cc_object_detail";const OBJECT_DETAIL_ID="cc_object_detail_id";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,detailId){let detail=localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL));if(detail){detail=JSON.parse(detail);if(!detailId){detailId=detail.id}else{detail.id=detailId}let detailList=JSON.parse(sessionStorage.getItem(detailId));if(apiname){let targetField=undefined;if(Array.isArray(detailList)){targetField=detailList.find(item=>item.apiname===apiname)}return targetField}else{detail.detail=detailList;return detail}}else{return""}}function setObjectDetail(detail=""){if(detail&&detail.id){if(Array.isArray(detail.detail)&&detail.detail.length>0){let data=[];detail.detail.forEach(item=>{if(item&&Array.isArray(item.data)){item.data.forEach(itemData=>{if(itemData.left&&!Array.isArray(itemData.left)){data.push(itemData.left)}if(itemData.right&&!Array.isArray(itemData.right)){data.push(itemData.right)}})}});if(data.length>0){detail.detail=data;sessionStorage.setItem(detail.id,JSON.stringify(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:[]}}function setObjectDetailId(id=""){if(id){localStorage.setItem(Crypto.encrypt(OBJECT_DETAIL_ID),id)}}function getObjectDetailId(){return localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL_ID))}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail,setObjectDetailId:setObjectDetailId,getObjectDetailId:getObjectDetailId});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,ccUser=window.$CCDK.CCUser.getUserInfo()){if(ccUser&&ccUser!=""){sentry.setTag("orgId",ccUser.orgId);sentry.setTag("orgName",ccUser.orgName);sentry.setUser({username:ccUser.userName,id:ccUser.userId})}}function reportMemory(sentry,ccUser){if(performance.memory){let memeryMsg="内存监控:jsHeapSizeLimit="+(performance.memory.jsHeapSizeLimit/1024/1024).toFixed(2)+"mb、"+"totalJSHeapSize="+(performance.memory.totalJSHeapSize/1024/1024).toFixed(2)+"mb、"+"usedJSHeapSize="+(performance.memory.usedJSHeapSize/1024/1024).toFixed(2)+"mb";initUserInfo(sentry,ccUser);sentry.withScope(function(scope){sentry.setTag("usedJSHeapSize",(performance.memory.usedJSHeapSize/1024/1024).toFixed(2));scope.setFingerprint(["内存监控"]);sentry.captureMessage(memeryMsg)})}}function reportHttpException(sentry,error,ccUser){initUserInfo(sentry,ccUser);sentry.withScope(function(scope){scope.setFingerprint(["接口未捕获异常response"]);sentry.captureException(error)})}var CCSentry=Object.freeze({__proto__:null,initUserInfo:initUserInfo,reportMemory:reportMemory,reportHttpException:reportHttpException});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding",cookieName=TOKEN){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){setToken(token,cookieName)}return token}function setToken(token,cookieName=TOKEN,domain=getDomain()){Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12})}function clearToken(cookieName=TOKEN,domain=getDomain()){Cookies.remove(Crypto.encrypt(cookieName),{domain:domain});Cookies.remove(Crypto.encrypt(cookieName))}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,CCAxios:CCHttp$1,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,CCCommon:CCCommon,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";import Cookies from"js-cookie";import Jwt from"jsonwebtoken";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});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 verifyToken(token){let j=Jwt(token);return{result:j.versionType&&j.loginName&&j.binding&&j.userId&&j.orgId,jwt:j}}function getNowFormatDate(){var myDate=new Date;var year=myDate.getFullYear();var mon=myDate.getMonth()+1;if(mon<10){mon="0"+mon}var date=myDate.getDate();if(date<10){date="0"+date}var hours=myDate.getHours();if(hours<10){hours="0"+hours}var minutes=myDate.getMinutes();if(minutes<10){minutes="0"+minutes}var seconds=myDate.getSeconds();if(seconds<10){seconds="0"+seconds}var now=year+"-"+mon+"-"+date+" "+hours+":"+minutes+":"+seconds;return now}function getUuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=="x"?r:r&3|8;return v.toString(16)})}function getBinding(){let binding=window.$CCDK.CCToken.getToken();if(!binding){window.open(window.Glod.LOGIN_URL,"_self")}else{Cookies.set("binding",binding,{expires:1/12});Cookies.set("JSESSIONID",binding,{expires:1/12})}return binding}var CCUtils=Object.freeze({__proto__:null,getDomain:getDomain,getUuid:getUuid,getBinding:getBinding,getNowFormatDate:getNowFormatDate,verifyToken:verifyToken});const toStr=Object.prototype.toString;const TypeEnum={FUNCTION:"[object Function]",ARRAY:"[object Array]"};const isFn=value=>toStr.call(value)===TypeEnum.FUNCTION;const isProduction=()=>true;const delay=(waitTime=1e3)=>new Promise(resolve=>setTimeout(resolve,waitTime));const isTimeout=(error={code:"",message:""})=>{return error.code===AxiosError.ECONNABORTED&&error.message.includes("timeout")};const formateData=data=>{return{head:{appType:"lightning-main",appVersion:"1.1.1",accessToken:getBinding(),source:"lightning-main"},body:{...data}}};const deepMerge=(source,target)=>{const res=cloneDeep(source);for(let key in target){if(target.hasOwnProperty(key)){res[key]=isObject(target[key])?deepMerge(res[key],target[key]):target[key]}}return res};const LRUCache=function(capacity){this.capacity=capacity;this.cache=new Map};LRUCache.prototype.get=function(key){var cacheTemp=this.cache,curTemp=cacheTemp.get(key);if(curTemp||curTemp===0){cacheTemp.delete(key);cacheTemp.set(key,curTemp);return curTemp}return null};LRUCache.prototype.put=function(key,value){var cacheTemp=this.cache;if(cacheTemp.get(key)){cacheTemp.delete(key)}else if(cacheTemp.size>=this.capacity){cacheTemp.delete(cacheTemp.keys().next().value)}cacheTemp.set(key,value)};class CCAxios{constructor(opt){this.options=opt;this.axiosInstance=axios.create(opt);this.setupInterceptors();this.cachePool=new LRUCache(20)}getTransform(){const{transform}=this.options;return transform}setupInterceptors(){const transform=this.getTransform();if(!transform){return}const{requestInterceptors,requestInterceptorsCatch,responseInterceptors,responseInterceptorsCatch}=transform;this.axiosInstance.interceptors.request.use(requestInterceptors,undefined);requestInterceptorsCatch&&isFn(requestInterceptorsCatch)&&this.axiosInstance.interceptors.request.use(undefined,requestInterceptorsCatch);this.axiosInstance.interceptors.response.use(responseInterceptors,undefined);responseInterceptorsCatch&&isFn(responseInterceptorsCatch)&&this.axiosInstance.interceptors.response.use(undefined,error=>{return responseInterceptorsCatch(this.axiosInstance,error)})}get(config,options={}){return this.request({...config,method:"GET"},options)}post(config,options={}){const{envType}=options;if("public"==envType&&"private"==window.Glod["ENV_TYPE"]){return new Promise(()=>{})}if("private"==envType&&"private"!=window.Glod["ENV_TYPE"]){return new Promise(()=>{})}return this.request({...config,method:"POST"},options)}postFormat(config,options={}){return this.request({...config,method:"POST",data:formateData(config.data)},options)}postParams(config,options={}){return this.request({...config,method:"POST",params:config.data},options)}request(config,options){const transform=this.getTransform();const conf=config,{requestOptions}=this.options;requestOptions.cache=false;requestOptions.cacheKey="";requestOptions.retryRequest={isOpenRetry:false,count:5,waitTime:1e3};const opt=Object.assign({},requestOptions,options);conf.requestOptions=opt;const retPromise=new Promise((resolve,reject)=>{this.axiosInstance(conf).then(res=>{const{transformResponseHook}=transform;if(transformResponseHook&&isFn(transformResponseHook)){try{const ret=transformResponseHook(res,opt,this.cachePool);resolve(ret)}catch(err){reject(err||new Error("request error!"))}return}resolve(res)}).catch(err=>{reject(err)})});retPromise.cache=callback=>{const{cache,cacheKey}=opt;const cacheData=cache&&this.cachePool.get([cacheKey]);callback(cacheData?cacheData:null);return retPromise};return retPromise}}const createErrorModal=(response,options)=>{const{message}=options;let temp;if(response.name==="AxiosError"){temp=response.response;temp.data.returnInfo=response.returnInfo||message||temp.error||"";temp.data.returnCode=response.code||temp.status;temp.data.requestId=response.config.headers.requestId}else{temp=response;temp.data.requestId=response.config.headers.requestId}isFn(Vue.prototype.$ErrorDialog)&&Vue.prototype.$ErrorDialog({response:temp})};const createMessage=Message;const needReportErrorType=["901","999"];function checkStatus(error,status,msg,errorMessageMode="modal"){let errMessage="message.error.object.contactadministrators";if(status===401){window.open(window.Glod.LOGIN_URL,"_self")}{if(errorMessageMode==="modal"){createErrorModal(error,{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}}}const retry=async(instance,error)=>{const{config}=error,{waitTime,count=5}=config.requestOptions||{};config.__retryCount=config.__retryCount||0;if(count<=config.__retryCount){return Promise.reject(error)}config.__retryCount++;await delay(waitTime);delete config.headers;return instance(config)};const transform={requestInterceptors(config){config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";config.headers.accessToken=window.$CCDK.CCToken.getToken();return config},responseInterceptors(response){const{data,config}=response,{errorType,result}=data;if(!result){if(needReportErrorType.includes(errorType)&&isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(response)}}return response}const{infoReporter}=config.requestOptions;if(infoReporter&&isFn(infoReporter)){infoReporter(response)}return response},async responseInterceptorsCatch(axiosInstance,error){const{response,config}=error||{};let err="",msg="",mode="modal";try{err=error.toString(),msg=response.data.error,mode=config.requestOptions.errorMessageMode}catch(e){}let errorMessageMode=["message","modal"].includes(mode)&&mode||"modal",errMessage="";if(axios.isCancel(error)){return Promise.reject(error)}try{if(isProduction()){const{errorReporter}=config.requestOptions;if(errorReporter&&isFn(errorReporter)){errorReporter(error)}}if(isTimeout(error)){errMessage="c2487"}if(err&&err.includes("Network Error")){errMessage="c929"}if(errMessage){if(errorMessageMode==="modal"){createErrorModal({...error,response:{data:{returnInfo:error.message,returnCode:error.code,requestId:error.config.headers.requestId},config:error.config}},{message:errMessage})}else if(errorMessageMode==="message"){createMessage.error(errMessage)}return Promise.reject(error)}}catch(error){throw new Error(error)}checkStatus(error,error&&error.response.status,msg,errorMessageMode);const{isOpenRetry}=config;isOpenRetry&&config.method&&config.method.toUpperCase()==="GET"&&retry(axiosInstance,error);return Promise.reject(error)},transformResponseHook(response,options,cachePool){const{data}=response;const{errorType,result}=data;const businessLogicError=response=>{const{errorMessageMode,silent}=response.config.requestOptions;if(silent)return;if(errorMessageMode==="modal"){createErrorModal(response,{message:"业务出错"})}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}cache&&cacheKey&&cachePool.put(cacheKey,data);return data}};function createAxios(opt){return new CCAxios(deepMerge({timeout:60*1e3,headers:{"Content-Type":"application/json;charset=UTF-8"},transform:cloneDeep(transform),requestOptions:{envType:"",errorMessageMode:"modal",silent:false,cache:false,retryRequest:{isOpenRetry:false,count:5,waitTime:100},isReturnNativeResponse:false}},opt||{}))}var CCHttp$1=Object.freeze({__proto__:null,createAxios:createAxios});window.ccBus=new Vue;function $emit(...args){window.ccBus.$emit(...args)}function $on(...args){window.ccBus.$on(...args)}function $off(...args){window.ccBus.$off(...args)}var CCBus=Object.freeze({__proto__:null,$emit:$emit,$on:$on,$off:$off});let ccCall=new Map;let currentCall;function init$1(id,callClient){if(id&&callClient){ccCall.set(id,callClient);currentCall=callClient;return currentCall}}function call(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.call(options)}return call}function openCallPanel(id,options){let call;if(id){call=ccCall.get(id)}else{call=currentCall}if(call){call.openCallPanel(options)}return call}var CCCall=Object.freeze({__proto__:null,init:init$1,call:call,openCallPanel:openCallPanel});function reportError(response){if("1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",{serviceName:"lightning-custom-page"})}}function reportInfo(response){if("2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",{serviceName:"lightning-custom-page"})}}const service$1=axios.create({timeout:60*1e3,headers:{"Content-Type":"application/json; charset=utf-8"}});service$1.interceptors.request.use(config=>{config.headers.accessToken=window.$CCDK.CCToken.getToken();config.headers.requestId=window.$CCDK.CCUtils.getUuid();config.headers.requestIdProducer="browser";return config},error=>{Promise.reject(error)});service$1.interceptors.response.use(response=>{if(response.data.result){reportInfo(response);return response.data}else{reportError(response);return Promise.reject(response)}},error=>{if(error){reportError(error.response)}return Promise.reject(error)});var http={get:(url,data={},responseType="")=>{return service$1({url:url,method:"get",params:data,responseType:responseType})},post:(url,data={},responseType="")=>{return service$1({url:url,method:"post",data:data,responseType:responseType})}};function post$1(className,methodName,params){return http.post(window.$CCDK.CCConfig.getSvc()["ccex-apitsf"]+"/api/openCall/common",{className:className,methodName:methodName,params:params})}var CCCommon=Object.freeze({__proto__:null,post:post$1});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 service=axios.create({timeout:6e4,headers:{"Content-Type":"application/json; charset=utf-8"}});service.interceptors.request.use(config=>{config.headers["accessToken"]=window.$CCDK.CCToken.getToken();return config},error=>{Promise.reject(error)});service.interceptors.response.use(response=>{const code=response.data.code||200;if(code!==200){return Promise.reject(null==response.data.msg?"未知异常":response.data.msg)}else{return response.data}},error=>{return Promise.reject(error)});function get(url,data={},responseType=""){return service({url:url,method:"get",params:data,responseType:responseType})}function post(url,data={},responseType=""){return service({url:url,method:"post",data:data,responseType:responseType})}function put(url,data={}){return service({url:url,method:"put",data:data})}function postParams(url,data={}){return service({url:url,method:"post",params:data})}function patch(url,data={}){return service({url:url,method:"patch",data:data})}var CCHttp=Object.freeze({__proto__:null,get:get,post:post,put:put,patch:patch,postParams:postParams});function loadJs(src,scriptOption){return new Promise((resolve,reject)=>{let scriptTemp=document.createElement("script");if(scriptOption){Object.assign(scriptTemp,scriptOption)}scriptTemp.type="text/javascript";scriptTemp.src=src;document.body.appendChild(scriptTemp);scriptTemp.onload=()=>{resolve()};scriptTemp.onerror=()=>{reject()}})}function createLoadJsComponent(){Vue.component("cc-load-script",{render:function(createElement){var self=this;return createElement("script",{attrs:{type:"text/javascript",src:this.src},on:{load:function(event){self.$emit("load",event)},error:function(event){self.$emit("error",event)},readystatechange:function(event){if(this.readyState=="complete"){self.$emit("load",event)}}}})},props:{src:{type:String,required:true}}})}var CCLoad=Object.freeze({__proto__:null,loadJs:loadJs,createLoadJsComponent:createLoadJsComponent});function getBaseInfo(){let userInfo=window.$CCDK.CCUser.getUserInfo();let old={userName:userInfo.loginName||"未知用户",userId:userInfo.userId,orgId:userInfo.orgId,orgName:userInfo.orgName,serviceName:"未知应用",recordType:"platform",logType:"front",operateTime:(new Date).valueOf(),operateTimeStr:window.$CCDK.CCUtils.getNowFormatDate(),cccode:"hidden",displayLevel:"2"};return old}function getHttpErrorInfo(error={}){let{config={},data={}}=error;if(config){return{requestUrl:config.baseURL+config.url,requestId:config.headers?config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:config.headers?config.headers.requestIdProducer:"",requestParameter:config.data,errorMessage:error.message||data.returnInfo||"未知错误",requestResult:"失败",errorLevel:"2",printStackTraceInfo:(error.message||data.returnInfo||"未知错误")+"\n"+config.data}}else{return{}}}function getHttpInfo(response){if(response){if(window.performance){let per=performance.getEntriesByName(response.request.responseURL,"resource");if(per.length>0){let index=per.length-1;response.spendTime=per[index].fetchStart>0?per[index].responseEnd-per[index].fetchStart:"0"}}return{spendTime:response.spendTime||"0",requestUrl:response.request?response.request.responseURL:"",requestId:response.config.headers?response.config.headers.requestId:window.$CCDK.CCUtils.getUuid(),requestIdProducer:response.config.headers?response.config.headers.requestIdProducer:"",requestParameter:response.config.data,infoMessage:response.request.responseURL+". took:"+(response.spendTime||0).toFixed(0)+"ms"+"\n"+(response.config.data||""),requestResult:response.data.result?"成功":"失败",infoType:"info"}}else{return{}}}function reportLog(url,response,type="info",logInfo={}){let userInfo=getBaseInfo();if("未知用户"!=userInfo.userName&&userInfo.userName){axios.post(url,{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...logInfo})}}function batchReportLog(url,response,type="info",logInfo=[]){let userInfo=getBaseInfo();if("未知用户"!=userInfo.userName&&userInfo.userName&&logInfo.length>0){let datas=logInfo.map(info=>{return{...userInfo,...type==="info"?getHttpInfo(response):getHttpErrorInfo(response),...info}});axios.post(url,datas)}}function reportInfoLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",logInfo)}function reportErrorLog(logInfo,response){logInfo.recordType="dev";reportLog(window.Glod["ccex-log"]+"/ccerrorlog",response,"error",logInfo)}function reportCCError(error,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"1"===window.Glod["CC_LOG_LEVEL"]||"2"===window.Glod["CC_LOG_LEVEL"]){window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/ccerrorlog",error,"error",options)}}function reportCCInfo(response,options={serviceName:"lightning-main"}){if(process.env.NODE_ENV=="production"&&"2"===window.Glod["CC_LOG_LEVEL"]){if(response.config.data){try{let data=JSON.parse(response.config.data);if(data.head&&data.head.accessToken){data.head.accessToken="******";response.config.data=JSON.stringify(data)}}catch(e){}}window.$CCDK.CCLog.reportLog(window.Glod["ccex-log"]+"/systeminfolog",response,"info",options)}}var CCLog=Object.freeze({__proto__:null,reportLog:reportLog,reportInfoLog:reportInfoLog,reportErrorLog:reportErrorLog,reportCCError:reportCCError,reportCCInfo:reportCCInfo,batchReportLog:batchReportLog});const ALL_MENU_LIST="all_menu_list";const CURRENT_MENU="current_menu";function getAllMenu(){let data=localStorage.getItem(Crypto.encrypt(ALL_MENU_LIST));if(data){return JSON.parse(data)}return[]}function setAllMenu(data=[]){if(data){localStorage.setItem(Crypto.encrypt(ALL_MENU_LIST),JSON.stringify(data))}}function setCurrentMenu(data={}){if(data){localStorage.setItem(Crypto.encrypt(CURRENT_MENU),JSON.stringify(data))}}function getCurrentMenu(){let data=localStorage.getItem(Crypto.encrypt(CURRENT_MENU));if(data){return JSON.parse(data)}return{}}function addMenu1(options){window.$CCDK.CCBus.$emit("addMenu1",options)}function addMenu2(options){window.$CCDK.CCBus.$emit("addMenu2",options)}function deleteMenu1(options){window.$CCDK.CCBus.$emit("deleteMenu1",options)}function deleteMenu2(options){window.$CCDK.CCBus.$emit("deleteMenu2",options)}function refreshMenu1(options){window.$CCDK.CCBus.$emit("refreshMenu1",options)}function refreshMenu2(options){window.$CCDK.CCBus.$emit("refreshMenu2",options)}function replaceMenu1(options){window.$CCDK.CCBus.$emit("replaceMenu1",options)}function replaceMenu2(options){window.$CCDK.CCBus.$emit("replaceMenu2",options)}function reOpenMenu1(options){window.$CCDK.CCBus.$emit("reOpenMenu1",options)}function reOpenMenu2(options){window.$CCDK.CCBus.$emit("reOpenMenu2",options)}var CCMenu=Object.freeze({__proto__:null,addMenu1:addMenu1,addMenu2:addMenu2,deleteMenu1:deleteMenu1,deleteMenu2:deleteMenu2,refreshMenu1:refreshMenu1,refreshMenu2:refreshMenu2,replaceMenu1:replaceMenu1,replaceMenu2:replaceMenu2,reOpenMenu1:reOpenMenu1,reOpenMenu2:reOpenMenu2,getAllMenu:getAllMenu,setAllMenu:setAllMenu,setCurrentMenu:setCurrentMenu,getCurrentMenu:getCurrentMenu});function showMessage(text,type="info",duration=3e3,showClose=false,center=false){Message({message:text,type:type,duration:duration,showClose:showClose,center:center})}function showConfirm(text,title,options={},confirm=()=>{},reject=()=>{}){MessageBox.confirm(text,title,options).then(()=>{confirm()}).catch(()=>{reject()})}function showNotification(options={}){Notification(options)}var CCMessage=Object.freeze({__proto__:null,showMessage:showMessage,showConfirm:showConfirm,showNotification:showNotification});const OBJECT_DETAIL="cc_object_detail";const OBJECT_DETAIL_ID="cc_object_detail_id";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,detailId){let detail=localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL));if(detail){detail=JSON.parse(detail);if(!detailId){detailId=detail.id}else{detail.id=detailId}let detailList=JSON.parse(sessionStorage.getItem(detailId));if(apiname){let targetField=undefined;if(Array.isArray(detailList)){targetField=detailList.find(item=>item.apiname===apiname)}return targetField}else{detail.detail=detailList;return detail}}else{return""}}function setObjectDetail(detail=""){if(detail&&detail.id){if(Array.isArray(detail.detail)&&detail.detail.length>0){let data=[];detail.detail.forEach(item=>{if(item&&Array.isArray(item.data)){item.data.forEach(itemData=>{if(itemData.left&&!Array.isArray(itemData.left)){data.push(itemData.left)}if(itemData.right&&!Array.isArray(itemData.right)){data.push(itemData.right)}})}});if(data.length>0){detail.detail=data;sessionStorage.setItem(detail.id,JSON.stringify(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:[]}}function setObjectDetailId(id=""){if(id){localStorage.setItem(Crypto.encrypt(OBJECT_DETAIL_ID),id)}}function getObjectDetailId(){return localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL_ID))}var CCObject=Object.freeze({__proto__:null,getObjectList:getObjectList,setObjectList:setObjectList,getObject:getObject,setObject:setObject,getObjectDetail:getObjectDetail,setObjectDetail:setObjectDetail,setObjectDetailId:setObjectDetailId,getObjectDetailId:getObjectDetailId});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,ccUser=window.$CCDK.CCUser.getUserInfo()){if(ccUser&&ccUser!=""){sentry.setTag("orgId",ccUser.orgId);sentry.setTag("orgName",ccUser.orgName);sentry.setUser({username:ccUser.userName,id:ccUser.userId})}}function reportMemory(sentry,ccUser){if(performance.memory){let memeryMsg="内存监控:jsHeapSizeLimit="+(performance.memory.jsHeapSizeLimit/1024/1024).toFixed(2)+"mb、"+"totalJSHeapSize="+(performance.memory.totalJSHeapSize/1024/1024).toFixed(2)+"mb、"+"usedJSHeapSize="+(performance.memory.usedJSHeapSize/1024/1024).toFixed(2)+"mb";initUserInfo(sentry,ccUser);sentry.withScope(function(scope){sentry.setTag("usedJSHeapSize",(performance.memory.usedJSHeapSize/1024/1024).toFixed(2));scope.setFingerprint(["内存监控"]);sentry.captureMessage(memeryMsg)})}}function reportHttpException(sentry,error,ccUser){initUserInfo(sentry,ccUser);sentry.withScope(function(scope){scope.setFingerprint(["接口未捕获异常response"]);sentry.captureException(error)})}var CCSentry=Object.freeze({__proto__:null,initUserInfo:initUserInfo,reportMemory:reportMemory,reportHttpException:reportHttpException});function init(options){window.$CCDK.CCBus.$emit("initSide",options)}function open(){window.$CCDK.CCBus.$emit("openSide")}function close(){window.$CCDK.CCBus.$emit("closeSide")}var CCSide=Object.freeze({__proto__:null,init:init,open:open,close:close});const TOKEN="cc_token";function getUrlQuery(name){var reg=new RegExp(name+"=([^&]*)(&|$)");var r=window.location.href.match(reg);let res=null;if(r!=null)res=r[1].trim();return res}function getToken(urlName="binding",cookieName=TOKEN){let token=getUrlQuery(urlName)||Cookies.get(Crypto.encrypt(cookieName))||Cookies.get(urlName||TOKEN);if(token){let{result}=verifyToken(token);if(result){setToken(token,cookieName)}else{token=null}}return token}function setToken(token,cookieName=TOKEN,domain=getDomain()){let{result}=verifyToken(token);if(result){Cookies.set(Crypto.encrypt(cookieName),token,{domain:domain,expires:1/12})}}function clearToken(cookieName=TOKEN,domain=getDomain()){Cookies.remove(Crypto.encrypt(cookieName),{domain:domain});Cookies.remove(Crypto.encrypt(cookieName))}var CCToken=Object.freeze({__proto__:null,setToken:setToken,getToken:getToken,clearToken:clearToken,getUrlQuery:getUrlQuery});const USER_INFO="cc_user_info";const USER_JWT_INFO="cc_user_jwt_info";function setUserInfo(userInfo,domain=getDomain()){Cookies.set(Crypto.encrypt(USER_INFO),Crypto.encrypt(userInfo),{domain:domain,expires:1/12})}function getUserInfo(){let encryptUserInfo=Cookies.get(Crypto.encrypt(USER_INFO));if(encryptUserInfo){return Crypto.decrypt(encryptUserInfo)}else{return""}}function setUserJwtInfo(jwtInfo,domain=getDomain()){Cookies.set(Crypto.encrypt(USER_JWT_INFO),Crypto.encrypt(jwtInfo),{domain:domain,expires:1/12})}function getUserJwtInfo(){let encryptUserInfo=Cookies.get(Crypto.encrypt(USER_JWT_INFO));if(encryptUserInfo){return JSON.parse(Crypto.decrypt(encryptUserInfo))}else{return{}}}var CCUser=Object.freeze({__proto__:null,setUserInfo:setUserInfo,getUserInfo:getUserInfo,setUserJwtInfo:setUserJwtInfo,getUserJwtInfo:getUserJwtInfo});let CCDK={CCApplication:CCApplication,CCAxios:CCHttp$1,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,CCCommon:CCCommon,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.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/ccdk-min.js",
|
|
6
6
|
"scripts": {
|
|
@@ -29,5 +29,8 @@
|
|
|
29
29
|
"js-cookie": "3.0.1",
|
|
30
30
|
"lodash": "^4.17.20",
|
|
31
31
|
"@sentry/vue": "^6.19.7"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"jsonwebtoken": "^9.0.2"
|
|
32
35
|
}
|
|
33
36
|
}
|