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
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',
|
|
})
|
|
}
|