import Vue from 'vue' import { axios } from '@/utils/request' import { ACCESS_TOKEN } from '@/store/mutation-types' import signMd5Utils from '@/utils/encryption/signMd5Utils' 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 postAction (url, parameter) { const sign = signMd5Utils.getSign(url, parameter) // 将签名和时间戳,添加在请求接口 Header const signHeader = { 'X-Sign': sign, 'X-TIMESTAMP': signMd5Utils.getDateTimeToString() } return axios({ url: url, method: 'post', data: parameter, headers: signHeader }) } // post method= {post | put} export function httpAction (url, parameter, method) { const sign = signMd5Utils.getSign(url, parameter) // 将签名和时间戳,添加在请求接口 Header const signHeader = { 'X-Sign': sign, 'X-TIMESTAMP': signMd5Utils.getDateTimeToString() } return axios({ url: url, method: method, data: parameter, headers: signHeader }) } // put export function putAction (url, parameter) { return axios({ url: url, method: 'put', data: parameter }) } // get export function getAction (url, parameter) { const sign = signMd5Utils.getSign(url, parameter) // 将签名和时间戳,添加在请求接口 Header const signHeader = { 'X-Sign': sign, 'X-TIMESTAMP': signMd5Utils.getDateTimeToString() } return axios({ url: url, method: 'get', params: parameter, headers: signHeader }) } // deleteAction export function deleteAction (url, parameter) { return axios({ url: url, method: 'delete', params: parameter }) } export function getUserList (parameter) { return axios({ url: api.user, method: 'get', params: parameter }) } export function getRoleList (parameter) { return axios({ url: api.role, method: 'get', params: parameter }) } export function getServiceList (parameter) { return axios({ url: api.service, method: 'get', params: parameter }) } export function getPermissions (parameter) { return axios({ url: api.permissionNoPager, method: 'get', params: parameter }) } export function saveService (parameter) { return axios({ url: api.service, method: 'post', data: parameter }) } /** * 下载文件 用于excel导出 * @param url * @param parameter * @returns {*} */ export function downFile (url, parameter) { return axios({ url: url, params: parameter, method: 'get', responseType: 'blob' }) } /** * 下载文件 * @param url 文件路径 * @param fileName 文件名 * @param parameter * @returns {*} */ export function downloadFile (url, fileName, parameter) { return downFile(url, parameter).then((data) => { if (!data || data.size === 0) { Vue.prototype.$message.warning('文件下载失败') return } if (typeof window.navigator.msSaveBlob !== 'undefined') { window.navigator.msSaveBlob(new Blob([data]), fileName) } else { const url = window.URL.createObjectURL(new Blob([data])) const 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 axios({ url: 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) { const token = Vue.ls.get(ACCESS_TOKEN) return window._CONFIG.staticDomainURL + '/' + avatar + '?token=' + token } } } catch (err) { } }