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(url: string, data?: any, options?: UniNamespace.RequestOptions): Promise> { 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(url: string, data?: any, options?: UniNamespace.RequestOptions): Promise> { 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) }