request,js
javascript
// import { MessageBox, Message } from 'element-ui'
import axios from 'axios'
import store from '@/store'
import { getToken } from '@/utils/auth'
import { doEncrypt, doDecryptStr } from '@/utils/smUtil' // get token from cookie
import { encryptDes, decryptDes, encryptAes, decryptAes } from '@/utils/cryptoUtil' // get token from cookie
const needEncrypt = false // 是否需要加密
// const needEncryptDes = false // 是否需要des加密
const needEncryptAes_S = false // 是否需要des加密
const needEncryptAes_R = false // 是否需要des解密
const iv = '553456qwdscfrtgb'
const aesKey = 'efsdfe124587jshqcgszmghstcw54735'
const urls = ['/efUser/login', 'efapi/uavsystem/efUser/login']
// create an axios instance
const service = axios.create({
// baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
baseURL: 'efapi/pointcloud', // url = base url + request url
timeout: 45000 // request timeout
})
// request interceptor
service.interceptors.request.use(
config => {
if (config.data && config.data.timeout) {
config.timeout = config.data.timeout * 1000 + 1000
}
if (store.getters.token) {
config.headers['token'] = store.getters.token
} else if (getToken()) {
// 刷新页面时,store.getters.token 没值,从cookie获取
config.headers['token'] = getToken()
}
if (needEncrypt) {
const encrypt = urls.findIndex(item => (item = config.url))
if (encrypt < 0) {
config.data = doEncrypt(config.data, store.getters.sm2publicKey)
// console.log('请求[加密]:' + config.url)
} else {
// console.log('请求[不加密]:' + config.url)
}
}
if (needEncryptAes_S) {
config.data = { 'data': encryptAes(config.data, aesKey, iv) };
}
config.cancelToken = new axios.CancelToken(cancel => {
window._axiosPromiseArr.push({ cancel });
});
console.log('window._axiosPromiseArr', window._axiosPromiseArr);
return config
},
error => {
// do something with request error
console.log('拦截器error', error) // for debug
return Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
/**
* 对Http请求返回数据进行处理
* Determine the request status by custom code
* Here is just an example
* You can also judge the status by HTTP Status Code
*/
response => {
let datas = response.data
const httpStatus = response.status
if (httpStatus === 200) {
if (needEncrypt) {
datas = doDecryptStr(datas, store.getters.sm2privateKey)
}
if (needEncryptAes_R) {
const dataContent = datas.data
datas = decryptAes(dataContent, aesKey, iv)
}
}
return datas
},
error => {
console.log('request error:' + error) // errError: timeout of 10000ms exceeded
if (axios.isCancel(error)) {
console.log('取消请求');
return Promise.reject('取消请求');
}
let message = error.message // timeout of 10000ms exceeded
if (message.indexOf('timeout of') >= 0 && message.indexOf('exceeded') >= 0) {
message = message.replace('timeout of', '执行超时 ')
message = message.replace('exceeded', '')
error.message = message
}
return Promise.reject(error)
}
)
export default service
store -business.js
javascript
import * as businessApi from '@/api/business';
const getDefaultState = () => {
return {
name: 'point'
}
}
const state = getDefaultState()
const mutations = {}
const actions = {
getDangerPointList({ commit, state }, data) {
return new Promise((resolve, reject) => {
businessApi.getDangerPointList(data).then(response => {
resolve(response)
}).catch(error => {
reject(error)
})
})
},
}
export default {
namespaced: true,
state,
mutations,
actions
}
javascript
import request from '@/utils/request'
// import axios from 'axios'
// const { CancelToken } = axios
// let cancel = ''
export function getDangerPointList(formdata) {
return request({
url: '/business/dangerPoint/querylist',
method: 'post',
data: formdata,
timeout: 45000 // 设置超时时间为30秒
})
}
页面请求
javascript
async queryDangerPointList(showMsg) {
try {
const formData = new FormData();
formData.append('startTime', this.formInline.startTime.getTime());
formData.append('endTime', this.formInline.endTime.getTime()); //
formData.append('mark', this.formInline.name)
const res = await this.$store.dispatch('business/getDangerPointList', formData)
const { code, message, data } = res;
if (code === 1) {
this.formatTowerData(data)
if (showMsg) {
this.$message.success('查询成功');
}
} else {
this.showToast(message, 'error');
}
} catch (err) {
this.showToast(err, 'error');
}
},