You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

80 lines
2.2 KiB

import * as qs from "qs"
import axios from "axios"
import { format } from './string'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
import { MessageType } from "element-plus/lib/el-message/src/types";
let loading = null;
const service = axios.create({
baseURL: 'http://localhost:3000',
// baseURL: '',
// baseURL: 'http://192.168.30.84:8999',
timeout: 500000
})
let count = 0
service.interceptors.request.use(config => {
loading = ElLoading.service({
customClass: 'loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0)'
})
return config;
}, error => {
Promise.reject(error)
})
service.interceptors.response.use(response => {
loading.close()
return response.data;
}, error => {
loading.close()
return Promise.reject(error)
}
)
export function post(url: any, params = {}, contentType = "application/x-www-form-urlencoded") {
return new Promise((resolve, reject) => {
if ('application/x-www-form-urlencoded' === contentType){
params = qs.stringify(params);
}
service({ url, method: 'post', data: params, headers: { 'Content-Type': contentType }}).then(response => {
resolve(response);
}).catch(error => {
reject(error);
})
})
}
export function get(regionId, file, params = {}, baseUrl = '') {
return new Promise((resolve, reject) => {
let url = getJsonFile(regionId, file);
service({ url, baseURL: baseUrl, method: 'get', params: params }).then(response => {
resolve(response);
}).catch(error => {
reject(error);
})
})
}
function getJsonFile(regionId, name) {
let pattern = 'json/{0}/{1}';
return format(pattern, regionId, name);
}
export function showMessageBox(message: string, title: string = "错误", type: MessageType = "error") {
ElMessage({
message: message,
center: true,
duration: 2000,
customClass: 'message-text',
})
}
export function showNoDataMessage() {
ElMessage({
message: '暂无数据',
center: true,
duration: 2000,
customClass: 'message-text',
})
}