62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
import request from '@/utils/request'
|
|
import { uuid } from '@/utils'
|
|
|
|
/**
|
|
* 随机创建文件名称.
|
|
*/
|
|
const radmonFilename = (filename) => {
|
|
const suffix = filename ? filename.substring(filename.lastIndexOf('.')) : ''
|
|
return `manager-${uuid()}${suffix}`
|
|
}
|
|
|
|
/**
|
|
* 获取url.
|
|
*/
|
|
const getAccessImgUrl = (key) => {
|
|
if (!key) {
|
|
return ''
|
|
}
|
|
if (/^https?:\/\//i.test(key)) {
|
|
return key
|
|
}
|
|
if (key.startsWith('/')) {
|
|
return `${process.env.VUE_APP_OSS_URL}${key}`
|
|
}
|
|
return `${process.env.VUE_APP_OSS_URL}/${key}`
|
|
}
|
|
|
|
/**
|
|
* 简单上传
|
|
* @param {*} fileObj 文件对象
|
|
*/
|
|
const simpleUploadFlie = (fileObj, dir) => {
|
|
return new Promise((resolve, reject) => {
|
|
const filename = fileObj.customFilename || radmonFilename(fileObj.file.name)
|
|
const key = `${dir || 'other'}/${filename}`
|
|
const formData = new FormData()
|
|
formData.append('file', fileObj.file)
|
|
formData.append('key', key)
|
|
request({
|
|
url: '/ali-yun/oss/upload',
|
|
method: 'post',
|
|
data: formData
|
|
}).then(res => {
|
|
const body = res.body || {}
|
|
resolve({
|
|
name: body.name || key,
|
|
url: body.url || getAccessImgUrl(body.name || key),
|
|
res: body.res || { status: 200 }
|
|
})
|
|
}).catch(er => {
|
|
console.error(er)
|
|
reject(er)
|
|
})
|
|
})
|
|
}
|
|
|
|
export {
|
|
radmonFilename,
|
|
simpleUploadFlie,
|
|
getAccessImgUrl
|
|
}
|