文件上传
export function httpPost (url, data = {}, config = {}) {
const defaultConfig = { loading: true, formData: false, headers: {}}
config = { ...defaultConfig, ...config }
return new Promise((resolve, reject) => {
if (config.loading) {
showFullScreenLoading()
}
// FormData
if (config.formData) {
config.headers['Content-Type'] = 'multipart/form-data'
const formData = new FormData()
Object.keys(data).forEach(key => {
if (data.hasOwnProperty(key)) {
if (key === 'UploadFile') {
formData.append(key, data.UploadFile[0] ? data.UploadFile[0].raw : '')
} else {
formData.append(key, data[key] ? data[key] : '')
}
}
})
data = formData
}
request({ url, method: 'post', data: data, headers: config.headers }).then(res => {
if (config.loading) {
tryHideFullScreenLoading()
}
const { jsonError } = res
// 根据 响应数据是否有 jsonError 这个错误标志 判断请求是否抛错
if (!jsonError || (Array.isArray(jsonError) && jsonError.length === 0)) {
// 如果没有 jsonError 或者 jsonError是个空数组
resolve(res)
} else {
// 是否自定义显示错误信息
if (config.isCustErr) {
// 这个状态码是和后端约定的
reject(res)
} else {
errorCreat(`${res.jsonError[0]._exceptionMessage}`, res)
reject(res)
}
}
}).catch(err => {
if (config.loading) {
tryHideFullScreenLoading()
}
// errorCreat(`${err.message}`, err)
reject(err)
})
})
}
文件下载
export function downloadFile (url, params = {}) {
const form = document.createElement('form')
form.style.display = 'none'
form.action = `${process.env.VUE_APP_API}/${url}`
form.method = 'post'
form.responseType = 'blob'
form.setAttribute('accept-charset', 'UTF-8')
Object.keys(params).forEach(item => {
const input = document.createElement('input')
input.type = 'hidden'
input.name = item
input.value = params[item]
form.appendChild(input)
})
document.body.appendChild(form)
form.submit()
form.remove()
}
文件上传图片
https://element.faas.ele.me/#/zh-CN/component/upload