import axios from 'axios'
import router from '../router'
import store from '../store'
import { Toast } from 'vant'
axios.defaults.withCredentials = true
var _fn
let origin = window.location.origin + '/api/'
_fn = {
wrapAxiosData: function (param = {}, raw = false) {
let axiosData = {}
axiosData['headers'] = {
token: store.state.member.token,
...(param.headers || {})
}
axiosData['data'] = {
...(param.data || {}),
apiVersion: param.data && param.data.apiVersion ? param.data.apiVersion : '1.0.0',
shareId: store.state.member.shareId
}
axiosData['url'] = raw ? param.url : origin + param.url
axiosData['method'] = param.method || 'POST'
return axiosData
}
}
function AjaxRequest (requestParam, raw = false) {
if (!requestParam.url) {
return
}
var axiosData = _fn.wrapAxiosData(requestParam, raw)
return new Promise((resolve, reject) => {
axios(axiosData).then(res => {
if (res.data.code === 10000) {
resolve(res.data)
} else if (res.data.code === 1999 || res.data.code === 1998) {
let appFlag = store.state.member.appFlag
Toast({
message: '请先登录',
duration: 2000,
onClose: () => {
if (appFlag === 'Android') {
window.android.appLogin()
} else if (appFlag === 'IOS') {
window.webkit.messageHandlers.appLogin.postMessage({})
} else {
router.push({ name: 'Login', query: { clear: 1 } })
}
}
})
} else {
reject(res.data)
}
})
})
}
export default AjaxRequest
import request from './util/request'
Vue.prototype.$request = request
this.$request(
{
url: 'Login',
data: { phone: username, password }
}
).then(res => {
Toast('登录成功')
}).catch(err => {
Toast('登录失败')
})