5 changed files with 121 additions and 33 deletions
@ -0,0 +1,80 @@ |
|||||
|
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', |
||||
|
}) |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
export function deepClone(obj) { |
||||
|
let objClone = Array.isArray(obj) ? [] : {}; |
||||
|
if (obj && typeof obj === 'object') { |
||||
|
for (let k in obj) { |
||||
|
if (obj.hasOwnProperty(k)) { |
||||
|
//判断obj子元素是否为对象,如果是,递归复制
|
||||
|
if (obj[k] && typeof obj[k] === 'object') { |
||||
|
objClone[k] = deepClone(obj[k]); |
||||
|
} else { |
||||
|
//如果不是简单复制
|
||||
|
objClone[k] = obj[k]; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return objClone |
||||
|
} |
Loading…
Reference in new issue