提交 bc3a99a1 authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 8c544a48
...@@ -2,28 +2,19 @@ ...@@ -2,28 +2,19 @@
import type { UploadProps, UploadUserFile } from 'element-plus' import type { UploadProps, UploadUserFile } from 'element-plus'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { Plus } from '@element-plus/icons-vue' import { Plus } from '@element-plus/icons-vue'
import md5 from 'blueimp-md5' import { upload } from '@/utils/upload'
import { getSignature } from '@/api/base'
import { upload as localUpload } from '@/utils/upload'
const isSchool = import.meta.env.MODE === 'school'
interface Props { interface Props {
modelValue: string | { name: string; url: string }[] modelValue: string | { name: string; url: string }[]
prefix?: string
size?: number size?: number
limit?: number limit?: number
beforeUpload?: (file: any) => void beforeUpload?: (file: any) => void
} }
const props = withDefaults(defineProps<Props>(), { const props = defineProps<Props>()
prefix: 'upload/saas-lab/'
})
const emit = defineEmits(['update:modelValue', 'success']) const emit = defineEmits(['update:modelValue', 'success'])
const uploadData = ref()
const fileList = ref<UploadUserFile[]>([]) const fileList = ref<UploadUserFile[]>([])
watchEffect(() => { watchEffect(() => {
...@@ -44,21 +35,6 @@ const handleBeforeUpload = async (file: any) => { ...@@ -44,21 +35,6 @@ const handleBeforeUpload = async (file: any) => {
ElMessage.error(`文件大小不能超过${props.size / 1024 / 1024}M`) ElMessage.error(`文件大小不能超过${props.size / 1024 / 1024}M`)
return false return false
} }
if (!isSchool) {
const fileName = file.name
const key = props.prefix + md5(fileName + new Date().getTime()) + '/' + fileName
const response: Record<string, any> = await getSignature()
uploadData.value = {
key,
host: response.host,
OSSAccessKeyId: response.accessid,
policy: response.policy,
signature: response.signature,
success_action_status: '200',
url: `${response.host}/${key}`,
}
file.url = `${response.host}/${key}`
}
if (props.beforeUpload) { if (props.beforeUpload) {
return props.beforeUpload(file) return props.beforeUpload(file)
} }
...@@ -118,15 +94,11 @@ const handleRemove: UploadProps['onRemove'] = (file, files) => { ...@@ -118,15 +94,11 @@ const handleRemove: UploadProps['onRemove'] = (file, files) => {
} }
} }
// 学校模式 — 本地服务器上传 // 统一使用上传工具,由上传工具根据当前环境选择上传方式
const customRequest = async (options: any) => { const customRequest = async (options: any) => {
try { try {
const url = await localUpload(options.file) const url = await upload(options.file)
fileList.value.forEach((item: any) => { options.file.url = url
if (item.uid === options.file.uid) {
item.url = url
}
})
options.onSuccess({ url }, options.file) options.onSuccess({ url }, options.file)
} catch (err) { } catch (err) {
options.onError(err) options.onError(err)
...@@ -141,9 +113,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -141,9 +113,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<template> <template>
<el-upload <el-upload
:action="isSchool ? '#' : uploadData?.host" :http-request="customRequest"
:data="uploadData"
:http-request="isSchool ? customRequest : undefined"
:show-file-list="showFileList" :show-file-list="showFileList"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
:on-exceed="handleExceed" :on-exceed="handleExceed"
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论