diff --git a/package.json b/package.json
index 11951032c..c012f3b80 100644
--- a/package.json
+++ b/package.json
@@ -22,9 +22,11 @@
"dependencies": {
"axios": "^0.19.0",
"core-js": "^2.6.5",
+ "crypto-js": "^4.0.0",
"echarts": "^4.2.1",
"fastclick": "^1.0.6",
"js-base64": "^2.5.1",
+ "js-md5": "^0.7.3",
"nprogress": "^0.2.0",
"pdfh5": "^1.2.13",
"vant": "2.2.0",
diff --git a/src/api/ebiz/agentEenter/agentEenter.js b/src/api/ebiz/agentEenter/agentEenter.js
index 96795821f..ec80e9857 100644
--- a/src/api/ebiz/agentEenter/agentEenter.js
+++ b/src/api/ebiz/agentEenter/agentEenter.js
@@ -25,6 +25,15 @@ export function saveOrUpdateInfo(data) {
data
})
}
+
+export function getTokenForUserModel(data) {
+ return request({
+ url: getUrl('/agent/enter/getTokenForAgent', 1),
+ method: 'get',
+ data
+ })
+}
+
// //查询二次分享数据
// export function getTokenForUserModel(data) {
// console.log('查询二次分享', data)
diff --git a/src/api/ebiz/claims/claims.js b/src/api/ebiz/claims/claims.js
index 47686d971..bb5deb1e6 100644
--- a/src/api/ebiz/claims/claims.js
+++ b/src/api/ebiz/claims/claims.js
@@ -29,13 +29,13 @@ export function history(data) {
}
// //历史报案详情接口
-// export function historyDetail(data) {
-// return request({
-// url: getUrl(`/claim/claimReport/historyDetail`, 1),
-// method: 'post',
-// data
-// })
-// }
+export function historyDetail(data) {
+ return request({
+ url: getUrl(`/claim/claimReport/historyDetail`, 1),
+ method: 'get',
+ data
+ })
+}
//理赔申请
export function apply(data) {
diff --git a/src/api/ebiz/common/common.js b/src/api/ebiz/common/common.js
index 95c52828d..33713e7e0 100644
--- a/src/api/ebiz/common/common.js
+++ b/src/api/ebiz/common/common.js
@@ -62,3 +62,31 @@ export function wxShare(data) {
data
})
}
+
+//验证代理人访问
+export function checkEnterPower(data) {
+ return request({
+ url: getUrl('/customer/agent/checkEnterPower', 1),
+ method: 'post',
+ data
+ })
+}
+
+// 获取验证码
+export function getAuthCode(data) {
+ return request({
+ url: getUrl('/customer/authcode/loginedSend', 1),
+ method: 'post',
+ data
+ })
+}
+
+// 获取代理人信息
+export function getCheckModelAgentInfo(data) {
+ return request({
+ // url: getUrl('/agent/agent/info', 0),
+ url: getUrl('/customer/agent/info', 1),
+ method: 'post',
+ data
+ })
+}
diff --git a/src/api/ebiz/my/my.js b/src/api/ebiz/my/my.js
index a025b8cb4..7be20da6a 100644
--- a/src/api/ebiz/my/my.js
+++ b/src/api/ebiz/my/my.js
@@ -56,3 +56,31 @@ export function queryPrivacy(data) {
data
})
}
+
+//获取隐私政策
+export function queryPrivacyNot(data) {
+ return request({
+ // url: getUrl('/agent/income/info', 0),
+ url: getUrl('/customer/privacy/queryPrivacy', 1),
+ method: 'post',
+ data
+ })
+}
+
+//注销用户
+export function logoutAgent(data) {
+ return request({
+ url: getUrl('/customer/account/logoutAgent', 1),
+ method: 'post',
+ data
+ })
+}
+
+//登录用户
+export function loginTest(data) {
+ return request({
+ url: getUrl('/customer/account/login', 1),
+ method: 'post',
+ data
+ })
+}
\ No newline at end of file
diff --git a/src/assets/js/business-common.js b/src/assets/js/business-common.js
index 8959a7550..6dd58aaac 100644
--- a/src/assets/js/business-common.js
+++ b/src/assets/js/business-common.js
@@ -1,4 +1,5 @@
import utilsAge from '@/assets/js/utils/age'
+import CacheUtils from '@/assets/js/utils/cacheUtils'
/**
* @desc 扩展对象继承
* @param {Object} out 一个或多个对象
@@ -179,7 +180,7 @@ export default {
* @return {*} rs
*/
getStorage(name) {
- return this._string2json(window.localStorage[name])
+ return this._string2json(CacheUtils.getLocItem(name))
},
/**
@@ -187,7 +188,7 @@ export default {
* @param {String} name 名称
*/
setStorage(name, value) {
- window.localStorage[name] = this._json2string(value)
+ CacheUtils.setLocItem(name,this._json2string(value))
},
/**
@@ -195,7 +196,7 @@ export default {
* @param {String} name 名称
*/
delStorage(name) {
- window.localStorage.removeItem(name)
+ CacheUtils.removeLocItem(name)
},
/**
@@ -532,46 +533,49 @@ export default {
insuredDTO = res.orderDTO.insuredDTOs[0]
}
let age = utilsAge.getAge(appntDTO.birthday, new Date())
- localStorage.saleInsuredInfo = JSON.stringify({
- workcompany: appntDTO.workcompany,
- birthday: appntDTO.birthday,
- name: appntDTO.name,
- sex: appntDTO.sex,
- idType: appntDTO.idType,
- age,
- idNo: appntDTO.idNo,
- appntId: appntDTO.appntId,
- healthGrade: appntDTO.healthGrade,
- lifeGrade: appntDTO.lifeGrade,
- mobile: appntDTO.mobile,
- occupationName: appntDTO.occupationName,
- occupationCode: appntDTO.occupationCode,
- // marriage: appntDTO.marriage,
- medical: appntDTO.medical,
- certiexpiredate: appntDTO.certiexpiredate,
- nativeplace: appntDTO.nativeplace
- })
+ CacheUtils.setLocItem('saleInsuredInfo',
+ JSON.stringify({
+ workcompany: appntDTO.workcompany,
+ birthday: appntDTO.birthday,
+ name: appntDTO.name,
+ sex: appntDTO.sex,
+ idType: appntDTO.idType,
+ age,
+ idNo: appntDTO.idNo,
+ appntId: appntDTO.appntId,
+ healthGrade: appntDTO.healthGrade,
+ lifeGrade: appntDTO.lifeGrade,
+ mobile: appntDTO.mobile,
+ occupationName: appntDTO.occupationName,
+ occupationCode: appntDTO.occupationCode,
+ // marriage: appntDTO.marriage,
+ medical: appntDTO.medical,
+ certiexpiredate: appntDTO.certiexpiredate,
+ nativeplace: appntDTO.nativeplace
+ })
+ )
if (insuredDTO) {
let insuredPersonAge = utilsAge.getAge(insuredDTO.birthday, new Date())
- localStorage.saleInsuredPersonInfo = JSON.stringify({
- birthday: insuredDTO.birthday,
- name: insuredDTO.name,
- sex: insuredDTO.sex,
- idType: insuredDTO.idType,
- age: insuredPersonAge,
- // marriage: insuredDTO.marriage,
- relationToAppnt: insuredDTO.relationToAppnt,
- medical: insuredDTO.medical,
- occupationName: insuredDTO.occupationName,
- occupationCode: insuredDTO.occupationCode,
- insuredId: insuredDTO.insuredId,
- idNo: insuredDTO.idNo,
- healthGrade: insuredDTO.healthGrade,
- lifeGrade: insuredDTO.lifeGrade,
- mobile: insuredDTO.mobile
- })
-
+ CacheUtils.setLocItem('saleInsuredPersonInfo',
+ JSON.stringify({
+ birthday: insuredDTO.birthday,
+ name: insuredDTO.name,
+ sex: insuredDTO.sex,
+ idType: insuredDTO.idType,
+ age: insuredPersonAge,
+ // marriage: insuredDTO.marriage,
+ relationToAppnt: insuredDTO.relationToAppnt,
+ medical: insuredDTO.medical,
+ occupationName: insuredDTO.occupationName,
+ occupationCode: insuredDTO.occupationCode,
+ insuredId: insuredDTO.insuredId,
+ idNo: insuredDTO.idNo,
+ healthGrade: insuredDTO.healthGrade,
+ lifeGrade: insuredDTO.lifeGrade,
+ mobile: insuredDTO.mobile
+ })
+ )
let [chooseProductCodes, mainRiskCodes, addRiskCodes] = [[], [], []]
if (insuredDTO.riskDTOLst && insuredDTO.riskDTOLst.length > 0) {
insuredDTO.riskDTOLst.forEach(item => {
@@ -583,15 +587,15 @@ export default {
}
})
}
- localStorage.mainRiskCodes = JSON.stringify(mainRiskCodes)
- localStorage.oldAddRiskCodes = JSON.stringify(addRiskCodes)
- localStorage.chooseProductCodes = JSON.stringify(chooseProductCodes)
+ CacheUtils.setLocItem('mainRiskCodes',JSON.stringify(mainRiskCodes))
+ CacheUtils.setLocItem('oldAddRiskCodes',JSON.stringify(addRiskCodes))
+ CacheUtils.setLocItem('chooseProductCodes',JSON.stringify(chooseProductCodes))
} else {
- localStorage.mainRiskCodes = ''
- localStorage.oldAddRiskCodes = ''
- localStorage.chooseProductCodes = ''
+ CacheUtils.setLocItem('mainRiskCodes','')
+ CacheUtils.setLocItem('oldAddRiskCodes','')
+ CacheUtils.setLocItem('chooseProductCodes','')
if (!isProposal) {
- localStorage.saleInsuredPersonInfo = ''
+ CacheUtils.setLocItem('saleInsuredPersonInfo','')
}
}
},
diff --git a/src/assets/js/common.js b/src/assets/js/common.js
index 5d26561ef..b7706cf0c 100644
--- a/src/assets/js/common.js
+++ b/src/assets/js/common.js
@@ -1,3 +1,4 @@
+import CacheUtils from '@/assets/js/utils/cacheUtils'
/**
* @desc 扩展对象继承
* @param {Object} out 一个或多个对象
@@ -117,7 +118,7 @@ export default {
* @return {*} rs
*/
getStorage(name) {
- return this._string2json(window.localStorage[name])
+ return this._string2json(CacheUtils.getLocItem(name))
},
/**
@@ -125,7 +126,7 @@ export default {
* @param {String} name 名称
*/
setStorage(name, value) {
- window.localStorage[name] = this._json2string(value)
+ CacheUtils.setLocItem(name,this._json2string(value))
},
/**
@@ -133,7 +134,7 @@ export default {
* @param {String} name 名称
*/
delStorage(name) {
- window.localStorage.removeItem(name)
+ CacheUtils.removeLocItem(name)
},
/**
diff --git a/src/assets/js/utils/cacheUtils.js b/src/assets/js/utils/cacheUtils.js
new file mode 100644
index 000000000..9a6317ae2
--- /dev/null
+++ b/src/assets/js/utils/cacheUtils.js
@@ -0,0 +1,59 @@
+import AESTools from '@/assets/js/utils/cryptoJsUtil'
+import configApp from '@/config'
+import cacheKeys from './needCacheKey'
+export default {
+ setLocItem: function(key, value) {
+ const exist = cacheKeys.encodeKeys.find(item => {
+ return item === key
+ })
+ //设置localStorage 值
+ if (cacheKeys.isAll || exist) {
+ window.localStorage.setItem(key, AESTools.AESCacheEncrypt(value, configApp.CACHE_ENCRYP))
+ } else {
+ window.localStorage.setItem(key, value)
+ }
+ },
+ getLocItem: function(key) {
+ // 获取localStorage 中值
+ let value = window.localStorage.getItem(key)
+ if (value && value != '') {
+ const exist = cacheKeys.encodeKeys.find(item => {
+ return item === key
+ })
+ if (cacheKeys.isAll || exist) {
+ return AESTools.AESCacheDecrypt(value, configApp.CACHE_ENCRYP)
+ }
+ }
+ return value
+ },
+ removeLocItem: function(key) {
+ // 获取localStorage 中值
+ window.localStorage.removeItem(key)
+ },
+ setSessionItem: function(key, value) {
+ //设置sessionStorage 值
+ const exist = cacheKeys.encodeKeys.find(item => {
+ return item === key
+ })
+ //设置localStorage 值
+ if (cacheKeys.isAll || exist) {
+ window.sessionStorage.setItem(key, AESTools.AESCacheEncrypt(value, configApp.CACHE_ENCRYP))
+ } else {
+ window.sessionStorage.setItem(key, value)
+ }
+ },
+ getSessionItem: function(key) {
+ //设置sessionStorage 值
+ let value = window.sessionStorage.getItem(key)
+ if (value && value != '') {
+ const exist = cacheKeys.encodeKeys.find(item => {
+ return item === key
+ })
+ //设置localStorage 值
+ if (cacheKeys.isAll || exist) {
+ return AESTools.AESCacheDecrypt(value, configApp.CACHE_ENCRYP)
+ }
+ }
+ return value
+ }
+}
diff --git a/src/assets/js/utils/cryptoJsUtil.js b/src/assets/js/utils/cryptoJsUtil.js
new file mode 100644
index 000000000..1c0bc34b1
--- /dev/null
+++ b/src/assets/js/utils/cryptoJsUtil.js
@@ -0,0 +1,47 @@
+import CryptoJS from 'crypto-js'
+export default {
+ AESEncrypt: function (data, keys) {//加密
+ var key = CryptoJS.enc.Hex.parse(keys)
+ var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF');//偏移量
+ var encrypted = CryptoJS.AES.encrypt(data, key,
+ {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ });
+ return encrypted.toString();
+ },
+ AESDecrypt: function (encrypted, keys) {//解密
+ var key = CryptoJS.enc.Hex.parse(keys)
+ var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF');
+ var decrypted = CryptoJS.AES.decrypt( encrypted, key,
+ {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ });
+ return CryptoJS.enc.Utf8.stringify(decrypted)
+ },
+ AESCacheEncrypt: function (data, keys) {//加密 緩存
+ var key = CryptoJS.enc.Hex.parse(keys)
+ var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF');//偏移量
+ var encrypted = CryptoJS.AES.encrypt(data, key,
+ {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ });
+ return encrypted.toString();
+ },
+ AESCacheDecrypt: function (encrypted, keys) {//解密 緩存
+ var key = CryptoJS.enc.Hex.parse(keys)
+ var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF');
+ var decrypted = CryptoJS.AES.decrypt( encrypted, key,
+ {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ });
+ return CryptoJS.enc.Utf8.stringify(decrypted)
+ }
+}
diff --git a/src/assets/js/utils/needCacheKey.js b/src/assets/js/utils/needCacheKey.js
new file mode 100644
index 000000000..cfa7d3667
--- /dev/null
+++ b/src/assets/js/utils/needCacheKey.js
@@ -0,0 +1,9 @@
+export default {
+ isAll: false,
+ encodeKeys: [
+ 'saleInsuredInfo',
+ 'saleInsuredPersonInfo',
+ 'appntDTO',
+ 'proposalAppnt'
+ ]
+}
diff --git a/src/assets/js/utils/orgShortName.js b/src/assets/js/utils/orgShortName.js
new file mode 100644
index 000000000..91ba635f2
--- /dev/null
+++ b/src/assets/js/utils/orgShortName.js
@@ -0,0 +1,30 @@
+export const orgShortNames = [
+ { name: '北海', code: '86450501' },
+ { name: '广西八营', code: '86450168' },
+ { name: '广西二营', code: '86450162' },
+ { name: '广西六营', code: '86450166' },
+ { name: '广西七营', code: '86450167' },
+ { name: '广西三营', code: '86450163' },
+ { name: '广西四营', code: '86450164' },
+ { name: '广西五营', code: '86450165' },
+ { name: '贵港', code: '86450801' },
+ { name: '贵港一营', code: '86450861' },
+ { name: '桂林二本', code: '86450302' },
+ { name: '桂林一本', code: '86450301' },
+ { name: '桂林一营', code: '86450361' },
+ { name: '柳州一本', code: '86450201' },
+ { name: '柳州二本', code: '86450202' },
+ { name: '柳州四营', code: '86450264' },
+ { name: '柳州一营', code: '86450261' },
+ { name: '柳州鹿寨', code: '86450203' },
+ { name: '南宁民族', code: '86450103' },
+ { name: '精英项目', code: '86450102' },
+ { name: '南宁青秀', code: '86450101' },
+ { name: '南宁一营', code: '86450181' },
+ { name: '梧州', code: '86450401' },
+ { name: '梧州一营', code: '86450461' },
+ { name: '玉林二营', code: '86450962' },
+ { name: '玉林', code: '86450901' },
+ { name: '玉林三营', code: '86450963' },
+ { name: '玉林一营', code: '86450961' }
+]
diff --git a/src/assets/js/utils/permission.js b/src/assets/js/utils/permission.js
index 8eb326857..10caec395 100644
--- a/src/assets/js/utils/permission.js
+++ b/src/assets/js/utils/permission.js
@@ -1,5 +1,6 @@
//权限控制
import router from '@/router'
+import CacheUtils from '@/assets/js/utils/cacheUtils'
// import NProgress from 'nprogress' // Progress 进度条
// import 'nprogress/nprogress.css' // Progress 进度条样式
export function permission() {
@@ -11,9 +12,9 @@ export function permission() {
document.title = title
}
//判断是否登录
- let token = localStorage.token
+ let token = CacheUtils.getLocItem('token')
if (!token) {
- localStorage.token = ''
+ CacheUtils.setLocItem('token','')
//无token,判断是否需要登录
if (to.meta.auth) {
if (window.WebViewJavascriptBridge) {
diff --git a/src/assets/js/utils/request.js b/src/assets/js/utils/request.js
index 648d3b523..0808f4fef 100644
--- a/src/assets/js/utils/request.js
+++ b/src/assets/js/utils/request.js
@@ -1,6 +1,11 @@
import axios from 'axios'
+import AESTools from '@/assets/js/utils/cryptoJsUtil'
+import configApp from '@/config'
import { Dialog, Toast } from 'vant'
-import BusinessCommon from '@/assets/js/business-common.js'
+import MD5 from 'js-md5'
+import CacheUtils from '@/assets/js/utils/cacheUtils'
+import BusinessCommon from '@/assets/js/business-common'
+
let proposal = [
'/proposal/proposal/list',
'/proposal/proposal/toInsurance',
@@ -106,7 +111,7 @@ const service = axios.create({
// request拦截器
service.interceptors.request.use(
async config => {
- let relativePath = config.url && config.url.split('v1')[1]
+ let relativePath = config.url && config.url.split(configApp.API_VERSION)[1]
if (whiteList.includes(relativePath)) {
Toast.loading({
duration: 0, // 持续展示 toast
@@ -115,27 +120,37 @@ service.interceptors.request.use(
message: '加载中……'
})
}
-
- let token = window.localStorage.getItem('token')
/**
- * 在HomeProduct页面获取代理人信息时, 客户端可能还未将token存储在本地
- * 此时如果token为空, 调用客户端方法获取token并放入localstorage中
+ * 请求拦截处理(待添加 判断走统一网关处理)
*/
- console.log('localstorage token: ', token)
- if (relativePath === '/customer/agent/info' && !token) {
- // 设备类型
- const target = BusinessCommon.device()
- // 安卓or苹果
- if (target.isAndroid || target.isIphone) {
- // eslint-disable-next-line no-undef
- const res = await EWebBridge.webCallAppInJs('getToken')
- console.log('调用客户端获取token: ', res)
- const token = JSON.parse(res).token
- window.localStorage.setItem('token', token)
+ if (config.url && /api\/$/.test(config.url.split(configApp.API_VERSION)[0]) && configApp.API_VERSION == 'v2') {
+ if (!config.data || config.data == null) {
+ config.data = {}
+ }
+ if (!!config.data && config.data != null) {
+ let encrypt = AESTools.AESEncrypt(JSON.stringify(config.data), configApp.REQ_PWD)
+ config.data = { data: encrypt }
}
}
- config.headers['token'] = token
- // config.headers['token'] = `f0003a753d1d492083248f723ab1b6e9`//TEST测试专用
+
+ // token 不存在初始化处理
+ let token = CacheUtils.getLocItem('token')
+ if (!token) {
+ // 设备类型
+ const target = BusinessCommon.device()
+ // 安卓or苹果(非浏览器)
+ if (!target.isWeixin && !target.isChrome) {
+ // eslint-disable-next-line no-undef
+ const res = await EWebBridge.webCallAppInJs('getToken')
+ CacheUtils.setLocItem('token', JSON.parse(res).token)
+ }
+ }
+
+ config.headers['token'] = CacheUtils.getLocItem('token')
+ // 添加请时间戳
+ let timeStr = new Date().getTime() + ''
+ config.headers['timeStr'] = timeStr
+ config.headers['signature'] = MD5(timeStr + CacheUtils.getLocItem('token'))
return config
},
error => {
@@ -147,8 +162,18 @@ service.interceptors.request.use(
// respone拦截器
service.interceptors.response.use(
response => {
- const res = response.data
- console.log(res, 'res')
+ let res = response.data
+ if (
+ configApp.API_VERSION == 'v2' &&
+ response.config.url &&
+ response.headers['content-type'].match(/application\/json/) &&
+ /api\/$/.test(response.config.url.split(configApp.API_VERSION)[0])
+ ) {
+ if (res.response) {
+ // 正常情況返回必有response 节点
+ res = JSON.parse(AESTools.AESDecrypt(res.response, configApp.REQ_PWD))
+ }
+ }
Toast.clear()
if (res.code != 0) {
if (res.code == 10001 || res.code == 10002) {
@@ -166,7 +191,7 @@ service.interceptors.response.use(
}
return Promise.reject(res)
} else {
- return response.data.content
+ return res.content
}
},
error => {
diff --git a/src/assets/js/utils/request1.js b/src/assets/js/utils/request1.js
index aeb1c6b45..06c68053b 100644
--- a/src/assets/js/utils/request1.js
+++ b/src/assets/js/utils/request1.js
@@ -1,6 +1,9 @@
import axios from 'axios'
import { Dialog, Toast } from 'vant'
-
+import CacheUtils from '@/assets/js/utils/cacheUtils'
+import configApp from "@/config";
+import AESTools from "@/assets/js/utils/cryptoJsUtil";
+import MD5 from 'js-md5';
let sale = ['/sale/order/orderDetail'] //在线投保
// 卡单
@@ -14,57 +17,78 @@ const service = axios.create({
// request拦截器
service.interceptors.request.use(
- config => {
- let relativePath = config.url && config.url.split('v1')[1]
- if (whiteList.includes(relativePath)) {
- // Toast.loading({
- // duration: 0, // 持续展示 toast
- // forbidClick: true, // 禁用背景点击
- // loadingType: 'spinner',
- // message: '加载中……'
- // })
+ config => {
+ let relativePath = config.url && config.url.split(configApp.API_VERSION)[1]
+ if (whiteList.includes(relativePath)) {
+ Toast.loading({
+ duration: 0, // 持续展示 toast
+ forbidClick: true, // 禁用背景点击
+ loadingType: 'spinner',
+ message: '加载中……'
+ })
+ }
+ /**
+ * 请求拦截处理(待添加 判断走统一网关处理)
+ */
+ if(config.url && /api\/$/.test(config.url.split(configApp.API_VERSION)[0]) && configApp.API_VERSION == 'v2'){
+ if(!config.data || config.data == null){
+ config.data = {}
+ }
+ if(!!config.data && config.data != null){
+ let encrypt = AESTools.AESEncrypt(JSON.stringify(config.data),configApp.REQ_PWD)
+ config.data = {"data": encrypt }
+ }
+ }
+ config.headers['token'] = CacheUtils.getLocItem('token')
+ // 添加请时间戳
+ let timeStr = new Date().getTime() + '';
+ config.headers['timeStr'] = timeStr;
+ config.headers['signature'] = MD5(timeStr + CacheUtils.getLocItem('token'));
+ return config
+ },
+ error => {
+ // Do something with request error
+ Promise.reject(error)
}
-
- config.headers['token'] = window.localStorage.getItem('token')
- // config.headers['token'] = ``
- return config
- },
- error => {
- // Do something with request error
- Promise.reject(error)
- }
)
// respone拦截器
service.interceptors.response.use(
- response => {
- const res = response.data
- console.log(res, 'res')
-
- if (res.code != 0) {
- if (res.code == 10001 || res.code == 10002) {
- Dialog.confirm({
- confirmButtonText: '重新登录',
- message: '你已被登出,可以取消继续留在该页面,或者重新登录'
- }).then(() => {
- //eslint-disable-next-line
- EWebBridge.webCallAppInJs('bridge', {
- flag: 'login'
- })
- })
- } else {
- //Toast.fail(res.msg)
- }
- return Promise.reject(res)
- } else {
- return response.data.content
+ response => {
+ console.log(response)
+ console.log('----------------')
+ let res = response.data
+ if( configApp.API_VERSION == 'v2' && response.config.url && response.headers['content-type'].match(/application\/json/) && /api\/$/.test(response.config.url.split(configApp.API_VERSION)[0])){
+ if(res.response){// 正常情況返回必有response 节点
+ res = JSON.parse(AESTools.AESDecrypt(res.response,configApp.REQ_PWD))
+ }
+ }
+ Toast.clear()
+ if (res.code != 0) {
+ if (res.code == 10001 || res.code == 10002) {
+ Dialog.confirm({
+ confirmButtonText: '重新登录',
+ message: '你已被登出,可以取消继续留在该页面,或者重新登录'
+ }).then(() => {
+ //eslint-disable-next-line
+ EWebBridge.webCallAppInJs('bridge', {
+ flag: 'login'
+ })
+ })
+ } else {
+ //Toast.fail(res.msg)
+ }
+ return Promise.reject(res)
+ } else {
+ return res.content
+ }
+ },
+ error => {
+ Toast.clear()
+ console.log('err' + error) // for debug
+ //Toast.fail(error.message)
+ return Promise.reject(error)
}
- },
- error => {
- console.log('err' + error) // for debug
- //Toast.fail(error.message)
- return Promise.reject(error)
- }
)
export default service
diff --git a/src/assets/js/utils/requestEncryot_back.js b/src/assets/js/utils/requestEncryot_back.js
new file mode 100644
index 000000000..e245ed21e
--- /dev/null
+++ b/src/assets/js/utils/requestEncryot_back.js
@@ -0,0 +1,188 @@
+import axios from 'axios'
+import AESTools from '@/assets/js/utils/cryptoJsUtil'
+import configApp from '@/config'
+import { Dialog, Toast } from 'vant'
+import CacheUtils from '@/assets/js/utils/cacheUtils'
+let proposal = [
+ '/proposal/proposal/list',
+ '/proposal/proposal/toInsurance',
+ '/proposal/proposal/info',
+ '/proposal/proposal/demo',
+ '/proposal/proposal/saveOrUpdateProposal',
+ '/proposal/proposal/updateInsured',
+ '/proposal/file/getFile',
+ '/proposal/proposal/deleteProposal'
+] //建议书
+let sale = [
+ '/sale/order/orderList',
+ '/sale/order/saveOrUpdateOrderInfo',
+ '/sale/order/orderList',
+ '/sale/order/deleteOrderInfo',
+ '/sale/product/getDetail',
+ '/sale/order/saveOrUpdateOrderInfo',
+ '/sale/order/orderDetail',
+ '/customer/authcode/loginedSend',
+ '/uploadImage',
+ // '/customer/recognition',
+ '/sale/insure/underWrite',
+ '/sale/insure/acceptInsurance',
+ '/app/code/getCodeValue',
+ '/customer/token',
+ '/media/ebizSignInfo/sign',
+ '/sale/receiptSign/submit',
+ '/sale/order/orderDetail',
+ '/sale/record/check',
+ '/ppf/sign',
+ '/ppf/check',
+ '/sale/insure/selfToHuman',
+ '/sale/insure/orderPayStatusQuery'
+] //在线投保
+let agentEnter = [
+ '/agent/enter/share',
+ '/agent/enter/query',
+ '/agent/enter/saveOrUpdateInfo',
+ '/agent/enter/queryAll',
+ '/agent/enter/getImpart',
+ '/agent/agreement/query',
+ '/agent/agreement/signAgreement',
+ '/agent/enter/query',
+ '/agent/examineApprove/dispose' //入司增员审批
+] //入司
+let claims = [
+ `/claim/claimApply/progress`,
+ `/claim/claimApply/progressDetail`,
+ `/claim/claimReport/history`,
+ `/claim/claimApply/apply`,
+ `/edor/customer/customerList`,
+ `/edor/customer/customerInfo`,
+ `/claim/claimApply/query`,
+ `/claim/claimApply/delete`
+]
+let survey = [
+ //'/customer/question/getQuestionnaire', // 代理人下问卷查询 --ok
+ '/customer/question/getQuestion', // 问卷题库查询
+ '/customer/question/submit', // 问卷提交
+ //'/customer/question/shareSubmit', //问卷分享 --ok
+ //'/customer/question/getTableId', // id 查询 -- ok
+ '/customer/question/getAgentInfo' // 代理人详情
+]
+let manpower = [
+ '/customer/answer/queryList' //DISC性格分析
+]
+
+//保全
+let preserve = [
+ '/edor/customer/customerList', //客户搜索
+ '/edor/policy/policyList', //保单列表
+ '/edor/edor/queryEdorList' //保全进度查询
+]
+
+let productStore = [
+ '/customer/shop/getShopList', //获取商城列表/详情
+ '/customer/shop/getShareList' //查询分享轨迹(转发记录)
+]
+
+// 卡单
+let cardList = []
+
+// 续期
+let renewalManage = [
+ '/renewal/getRenewalList' //续期列表查询
+]
+
+let whiteList = [
+ '/customer/agent/getCustomersList',
+ ...proposal,
+ ...sale,
+ ...agentEnter,
+ ...claims,
+ ...survey,
+ ...manpower,
+ ...productStore,
+ ...preserve,
+ ...renewalManage
+]
+
+// 创建axios实例
+const service = axios.create({
+ timeout: 66666666 // 请求超时时间
+})
+
+// request拦截器
+service.interceptors.request.use(
+ config => {
+ let relativePath = config.url && config.url.split('v1')[1]
+ console.log(config.url.split('v1')[0])
+ if (whiteList.includes(relativePath)) {
+ Toast.loading({
+ duration: 0, // 持续展示 toast
+ forbidClick: true, // 禁用背景点击
+ loadingType: 'spinner',
+ message: '加载中……'
+ })
+ }
+ /**
+ * 请求拦截处理(待添加 判断走统一网关处理)
+ */
+ if(config.url && config.method == 'post' && /api\/$/.test(config.url.split('v1')[0])){
+ if(!config.data || config.data == null){
+ config.data = {}
+ }
+ if(!!config.data && config.data != null){
+ let encrypt = AESTools.AESEncrypt(JSON.stringify(config.data),configApp.REQ_PWD)
+ console.log("[调用请求加密服务][请求地址:"+config.url+"][加密前报文:]",JSON.stringify(config.data))
+ config.data = {"data": encrypt }
+ console.log("[调用请求加密服务][请求地址:"+config.url+"][加密后报文:]",config.data)
+ }
+ }
+ config.headers['token'] = CacheUtils.getLocItem('token')
+ // config.headers['token'] = `f0003a753d1d492083248f723ab1b6e9`//TEST测试专用
+ return config
+ },
+ error => {
+ // Do something with request error
+ Promise.reject(error)
+ }
+)
+
+// respone拦截器
+service.interceptors.response.use(
+ response => {
+ console.log(response)
+ let res = response.data
+ if(response.config.url && response.config.method == 'post' && /api\/$/.test(response.config.url.split('v1')[0])){
+ if(res.response){
+ console.log("[调用请求加密服务][请求地址:"+response.config.url+"][解密前报文:]",JSON.stringify(res.response))
+ res = AESTools.AESDecrypt(JSON.stringify(res.response),configApp.REQ_PWD)
+ console.log("[调用请求加密服务][请求地址:"+response.config.url+"][解密后报文:]",JSON.stringify(res))
+ }
+ }
+ Toast.clear()
+ if (res.code != 0) {
+ if (res.code == 10001 || res.code == 10002) {
+ Dialog.confirm({
+ confirmButtonText: '重新登录',
+ message: '你已被登出,可以取消继续留在该页面,或者重新登录'
+ }).then(() => {
+ //eslint-disable-next-line
+ EWebBridge.webCallAppInJs('bridge', {
+ flag: 'login'
+ })
+ })
+ } else {
+ //Toast.fail(res.msg)
+ }
+ return Promise.reject(res)
+ } else {
+ return response.data.content
+ }
+ },
+ error => {
+ Toast.clear()
+ console.log('err' + error) // for debug
+ //Toast.fail(error.message)
+ return Promise.reject(error)
+ }
+)
+
+export default service
diff --git a/src/components/common/CheckAgent.vue b/src/components/common/CheckAgent.vue
new file mode 100644
index 000000000..5cee004b2
--- /dev/null
+++ b/src/components/common/CheckAgent.vue
@@ -0,0 +1,262 @@
+
+
+ 为保护客户隐私数据安全,请您授权访问。请在下面输入框输入登录密码后完成后续操作。
+ 为保护客户隐私数据安全,请您授权访问。短信验证码已发送至您手机号{{ checkModel.mobile | encryCheckModelMobile }},请您输入验证码以完成后续操作。
+