UNPKG

es-form-table

Version:

基于element-ui-form和table两大组件进一步改良的控件,目的是为了解放前端在表单这块的操作

257 lines (234 loc) 5.44 kB
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; } }