import Vue from 'vue'
//import store from '../store'
//import router from '../router/router'
import { WechatPlugin } from 'vux'
let vue = new Vue({ router, WechatPlugin })
let Export = {}
Export.get = function (opts) {
opts.method = 'get'
let timestamps = new Date().getTime()
if(opts.timestamps){
opts.url = opts.url+'?timestamps='+timestamps
}
return http(opts)
}
Export.post = function (opts) {
opts.method = 'post'
return http(opts)
}
Export.put = function (opts) {
opts.method = 'put'
return http(opts)
}
Export.delete = function (opts) {
opts.method = 'delete'
return http(opts)
}
function http(opts){
//store.commit('updateLoading', true)
vue.$http({
method: opts.method,
url: opts.url,
headers: opts.headers || {},
params: opts.params || {},
data: opts.data || {}
}).then( response => {
//store.commit('updateLoading', false)
if(handleApiResponseStatus(response.data))
opts.success(response.data)
}).catch( error => {
handleHttpResponseStatus(error)
})
}
/**
* 处理接口响应状态
* 处理通用接口异常,比如登录超时之类的2000错误接口
*/
let handleApiResponseStatus = response =>{
//store.commit('updateLoading', false)
if(response.codeText == 'RESULT_PERMISSION_ERR'){
//
return false
} else {
console.log(response.codeText)
}
return true
}
/**
* 处理Http响应状态
* 处理请求异常比如网络异常
*/
let handleHttpResponseStatus = error =>{
//store.commit('updateLoading', false)
let response = error.response ? error.response : "";
const status = response.status ? response.status : "";
if(status == 500){
return false
} else if(status == 404){
vue.$vux.toast.text('发生404错误', 'middle')
return false
} else {
vue.$vux.toast.text('网络异常', 'middle')
return false
}
return true
}
export default Export
使用方法:
//引用工具类
import Request from '../kit/AjaxPlugin'
//
Request.get({
url: '',
timestamps: true,
params:{ },
success:function (resp) {
console.log(resp)
}
})
Vue基于WechatPlugin二次封装请求类库
于 2018-04-25 15:33:55 首次发布