134 lines
3.9 KiB
TypeScript
134 lines
3.9 KiB
TypeScript
|
|
import {AUTH_KEY, BASE_URL, HOMEAGENT, RESULT_CODE_NOT_LOGIN} from "@/config";
|
||
|
|
import {useUserStore} from "@/store/modules/user";
|
||
|
|
import {getLogin} from "../permission";
|
||
|
|
import {request} from "@/utils/request/request";
|
||
|
|
import {showToast} from "@/utils/uniapp";
|
||
|
|
|
||
|
|
let count: boolean = false;
|
||
|
|
|
||
|
|
function _loginExpiredModal() {
|
||
|
|
const store = useUserStore();
|
||
|
|
store.logout()
|
||
|
|
uni.showModal({
|
||
|
|
title: '提示',
|
||
|
|
content: '登录过期,请重新登录',
|
||
|
|
showCancel: false,
|
||
|
|
success: function (res) {
|
||
|
|
if (res.confirm) {
|
||
|
|
count = false
|
||
|
|
getLogin()
|
||
|
|
} else if (res.cancel) {
|
||
|
|
count = false
|
||
|
|
uni.navigateBack({
|
||
|
|
delta: 1,
|
||
|
|
fail: (err) => {
|
||
|
|
console.log(err)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
export const config = {
|
||
|
|
baseUrl: process.env.NODE_ENV == 'development' ? HOMEAGENT ? '/base' : BASE_URL : BASE_URL,
|
||
|
|
header: {}
|
||
|
|
}
|
||
|
|
export const interceptor = {
|
||
|
|
request: (config: UniNamespace.UploadFileOption | UniNamespace.RequestOptions) => {
|
||
|
|
const store = useUserStore();
|
||
|
|
if (store.getToken) {
|
||
|
|
config.header = {
|
||
|
|
[AUTH_KEY]: store.getToken
|
||
|
|
};
|
||
|
|
}
|
||
|
|
},
|
||
|
|
response: (response: any) => {
|
||
|
|
if (response.data && RESULT_CODE_NOT_LOGIN == response.data.resultCode) {
|
||
|
|
if (!count) {
|
||
|
|
_loginExpiredModal()
|
||
|
|
}
|
||
|
|
count = true;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if (response.config.name === "files") {
|
||
|
|
return JSON.parse(response.data);
|
||
|
|
}
|
||
|
|
if (response.data) {
|
||
|
|
return response.data;
|
||
|
|
} else {
|
||
|
|
console.log('接口无返回值', response)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export function get<T = any>(url: string, data?: any, options?: UniNamespace.RequestOptions): Promise<Requests<T>> {
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
request(Object.assign({}, {
|
||
|
|
url,
|
||
|
|
data,
|
||
|
|
method: 'GET',
|
||
|
|
dataType: 'json',
|
||
|
|
responseType: 'text',
|
||
|
|
}, options)).then(res => {
|
||
|
|
if (res.resultCode == 1) {
|
||
|
|
resolve(res)
|
||
|
|
} else {
|
||
|
|
if (res.resultCode) {
|
||
|
|
if (res.resultCode != RESULT_CODE_NOT_LOGIN) {
|
||
|
|
showToast(res.message || '接口异常')
|
||
|
|
reject(res)
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if (res.rows) {
|
||
|
|
resolve(res)
|
||
|
|
} else {
|
||
|
|
showToast(res.message || '接口异常')
|
||
|
|
reject(res)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
export function post<T = any>(url: string, data?: any, options?: UniNamespace.RequestOptions): Promise<Requests<T>> {
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
request(Object.assign({}, {
|
||
|
|
url,
|
||
|
|
data,
|
||
|
|
method: 'POST',
|
||
|
|
dataType: 'json',
|
||
|
|
responseType: 'text',
|
||
|
|
}, options)).then(res => {
|
||
|
|
if (res.resultCode == 1) {
|
||
|
|
resolve(res)
|
||
|
|
} else {
|
||
|
|
if (res.resultCode) {
|
||
|
|
if (res.resultCode != RESULT_CODE_NOT_LOGIN) {
|
||
|
|
showToast(res.message || '接口异常')
|
||
|
|
reject(res)
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if (res.rows) {
|
||
|
|
resolve(res)
|
||
|
|
} else {
|
||
|
|
showToast(res.message || '接口异常')
|
||
|
|
reject(res)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
export function file(url: string, data: Blob, options?: UniNamespace.UploadFileOption) {
|
||
|
|
return request(Object.assign({}, {
|
||
|
|
url,
|
||
|
|
filePath: data,
|
||
|
|
name: 'files',
|
||
|
|
}, options), true)
|
||
|
|
}
|
||
|
|
|