import axios from 'axios';
import _ from 'lodash';
import Vue from 'vue';
import { Toast } from 'vant';
Vue.use(Toast);
export default {
get(url, params,config) {
return new Promise((resolve, reject) => {
let urlNew = url;
if(params) {
if ( _.isObject(params)) {
_.forIn(params, (key, value) => {
urlNew += `?${value}=${key}&`;
});
urlNew = _.trimEnd(urlNew, '&');
} else {
throw new Error('入參格式錯誤')
}
}
if (config && config.loading) {
Toast.loading({ message: '加載中...', forbidClick: true, duration: 0 });
}
axios.get(urlNew).then(res => {
Toast.clear();
if (res.data.success) {
resolve(res.data.data)
}else {
Toast(res.data.errorMsg);
reject();
}
}).catch(err => {
if(err && err.response && err.response.status === 401){
localStorage.setItem('loginBackUrl', window.location.href);
location.replace('/pages/common/login?loginBackUrl=1');
}
if (err && err.response && err.response.request && err.response.request.responseText) {
const emp = err.response.request.responseText.includes('<!DOCTYPE html>');
if (emp) {
localStorage.setItem('loginBackUrl', window.location.href);
location.replace('/pages/common/login?loginBackUrl=1');
}
}
Toast.clear();
Toast('服務例外');
reject();
})
});
},
post(url, params,config) {
return new Promise((resolve, reject) => {
if (!_.isObject(params)){
throw new Error('入參格式錯誤')
}
if (config && config.loading) {
Toast.loading({ message: '加載中...', forbidClick: true, duration: 0 });
}
axios.post(url,params).then(res => {
Toast.clear();
if (res.data.success) {
resolve(res.data.data)
}else {
Toast(res.data.errorMsg);
reject();
}
}).catch(err => {
console.error(err);
if(err && err.response && err.response.status === 401){
localStorage.setItem('loginBackUrl', window.location.href);
location.replace('/pages/common/login?loginBackUrl=1');
reject();
}
if (err && err.response && err.response.request && err.response.request.responseText) {
const emp = err.response.request.responseText.includes('<!DOCTYPE html>');
if (emp) {
localStorage.setItem('loginBackUrl', window.location.href);
location.replace('/pages/common/login?loginBackUrl=1');
}
reject();
}
Toast.clear();
Toast('服務例外');
reject();
})
});
}
}
使用例子
import Vue from 'vue';
import { Toast, Dialog,RadioGroup, Radio,Cell, CellGroup } from 'vant';
import '@/filters';
import { Url } from '@/request';
import reqMethod from "../../components/reqMethod"
Vue.use(Dialog).use(Toast).use(RadioGroup).use(Radio).use(Cell).use(CellGroup);
export default{
data() {
return {
defaultAccountItem:{}, // 默認賬戶
}
},
methods: {
/**
* 初始化方法
*/
init(){
// 獲取默認賬戶
reqMethod.get(Url.listDefaultAccount,{code:666},{loading:true}).then(res =>{
this.defaultAccountItem = res[0] || {};
});
}
},
created() {
this.init();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/258038.html
標籤:其他
