es-form-table
Version:
基于element-ui-form和table两大组件进一步改良的控件,目的是为了解放前端在表单这块的操作
257 lines (234 loc) • 5.44 kB
JavaScript
import Vue from 'vue';
import axios from 'axios';
var request = axios
var CONTENT_TYPE = {
'Content-Type': 'application/json',
}
const api = {
user: '/mock/api/user',
role: '/mock/api/role',
service: '/mock/api/service',
permission: '/mock/api/permission',
permissionNoPager: '/mock/api/permission/no-pager',
};
export default api;
//post
export function postActionTimeout(url, parameter, headers={}, time = 60 * 1000 * 30) {
return request({
url,
method: 'post',
timeout: time,
data: parameter,
headers: Object.assign({
'Content-Type': 'application/json',
}, headers),
});
}
//post
export function postAction(url, parameter, headers={}) {
return request({
url,
method: 'post',
data: parameter,
headers: Object.assign({
'Content-Type': 'application/json',
}, headers),
});
}
//post method= {post | put}
export function httpAction(url, parameter, method) {
return request({
url,
method,
data: parameter,
});
}
//put
export function putAction(url, parameter) {
return request({
url,
method: 'put',
data: parameter,
});
}
//get
export function getAction(url, parameter, headers={}) {
return request({
url,
method: 'get',
params: parameter,
headers: Object.assign({
'Content-Type': 'application/json',
}, headers),
});
}
// getTimeout
export function getActionTimeout(url, parameter, headers={}, time = 60 * 1000 * 30) {
return request({
url,
method: 'get',
timeout: time,
params: parameter,
headers: Object.assign({
'Content-Type': 'application/json',
}, headers),
});
}
//deleteAction
export function deleteAction(url, parameter) {
return request({
url,
method: 'delete',
params: parameter,
});
}
export function getUserList(parameter) {
return request({
url: api.user,
method: 'get',
params: parameter,
});
}
export function getRoleList(parameter) {
return request({
url: api.role,
method: 'get',
params: parameter,
});
}
export function getServiceList(parameter) {
return request({
url: api.service,
method: 'get',
params: parameter,
});
}
export function getPermissions(parameter) {
return request({
url: api.permissionNoPager,
method: 'get',
params: parameter,
});
}
// id == 0 add post
// id != 0 update put
export function saveService(parameter) {
return request({
url: api.service,
method: parameter.id == 0 ? 'post' : 'put',
data: parameter,
});
}
/**
* 下载文件 用于excel导出
* @param url
* @param parameter
* @returns {*}
*/
export function downFile(url, parameter) {
return request({
url,
params: parameter,
method: 'get',
responseType: 'blob',
});
}
export function downFileTimeout(url, parameter, time = 60 * 1000 * 30) {
return request({
url,
params: parameter,
method: 'get',
timeout: time,
responseType: 'blob',
});
}
/**
* 下载文件 用于excel导出
* @param url
* @param parameter
* @returns {*}
*/
export function postDownFile(url, parameter) {
return request({
url,
method: 'post',
data: parameter,
headers: {
'Content-Type': 'application/json',
},
responseType: 'blob',
});
}
export function downFilePost(url,parameter){
return request({
url,
data: parameter,
method:'post' ,
responseType: 'blob',
});
}
/**
* 下载文件
* @param url 文件路径
* @param fileName 文件名
* @param parameter
* @returns {*}
*/
export function downloadFile(url, fileName, parameter, { type = 'get', msg = '文件下载失败', sus }) {
return (type === 'post' ? postDownFile : downFile)(url, parameter).then((data) => {
if (!data || data.size === 0) {
Vue.prototype['$message'].warning(msg);
return;
}
sus && sus();
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(new Blob([data]), fileName);
} else {
let url = window.URL.createObjectURL(new Blob([data]));
let link = document.createElement('a');
link.style.display = 'none';
link.href = url;
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link); //下载完成移除元素
window.URL.revokeObjectURL(url); //释放掉blob对象
}
});
}
/**
* 文件上传 用于富文本上传图片
* @param url
* @param parameter
* @returns {*}
*/
export function uploadAction(url, parameter) {
return request({
url,
data: parameter,
method: 'post',
headers: {
'Content-Type': 'multipart/form-data', // 文件上传
},
});
}
/**
* 获取文件服务访问路径
* @param avatar
* @param subStr
* @returns {*}
*/
export function getFileAccessHttpUrl(avatar, subStr) {
if (!subStr) subStr = 'http';
try {
if (avatar && avatar.startsWith(subStr)) {
return avatar;
} else {
if (avatar && avatar.length > 0 && avatar.indexOf('[') == -1) {
return window._CONFIG['staticDomainURL'] + '/' + avatar;
}
}
} catch (err) {
return;
}
}