import axios from 'axios' import { Dialog, Toast } from 'vant' 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 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' ] //理赔 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 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 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 cardList = [] //续期管理 let renewalManage = [ '/renewal/getRenewalList' //续期列表查询 ] //保全 let preserve = [ '/edor/customer/customerList', //客户搜索 '/edor/policy/policyList', //保单列表 '/edor/edor/queryEdorList' //保全进度查询 ] let whiteList = ['/customer/agent/getCustomersList', ...proposal, ...sale, ...agentEnter, ...claims, ...survey, ...manpower, ...renewalManage, ...preserve] // let whiteList = ['/customer/agent/getCustomersList', ...proposal, ...sale] // 创建axios实例 const service = axios.create({ timeout: 66666666 // 请求超时时间 }) // 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.headers['token'] = window.localStorage.getItem('token') // config.headers['token'] = `f0003a753d1d492083248f723ab1b6e9`//TEST测试专用 return config }, error => { // Do something with request error Promise.reject(error) } ) // respone拦截器 service.interceptors.response.use( response => { const res = response.data 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