|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
<template>
|
|
|
|
|
<Dialog v-model="dialogVisible" title="上传文件" width="50%">
|
|
|
|
|
<Dialog v-model="dialogVisible" title="上传App包" width="50%">
|
|
|
|
|
<el-form ref="formRef" label-width="140px" :rules="formRules" :model="formData">
|
|
|
|
|
<el-form-item label="APP ID" prop="businessFileType">
|
|
|
|
|
<el-input v-model="formData.businessFileType" class="!w-250px" placeholder="请输入APP ID" />
|
|
|
|
|
<el-input v-model="formData.businessFileType" disabled class="!w-250px" placeholder="请输入APP ID" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="版本号" prop="businessId">
|
|
|
|
|
<el-input v-model="formData.businessId" class="!w-250px" placeholder="请输入版本号" />
|
|
|
|
@ -10,19 +10,23 @@
|
|
|
|
|
<el-form-item label="说明" prop="businessFileRemark">
|
|
|
|
|
<el-input v-model="formData.businessFileRemark" class="!w-250px" placeholder="请输入说明" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="上传附件" prop="createTime">
|
|
|
|
|
<el-upload ref="UploadRef" :file-list="uploadFiles" multiple :action="uploadUrl" :headers="{
|
|
|
|
|
<el-form-item label="上传">
|
|
|
|
|
<el-upload ref="UploadRef" :auto-upload="false" v-model:file-list="uploadFiles" class="upload-demo" :action="uploadUrl" multiple :headers="{
|
|
|
|
|
Authorization: 'Bearer ' + getAccessToken(),
|
|
|
|
|
'tenant-id': getTenantId()
|
|
|
|
|
}" name="files" :show-file-list="false" :auto-upload="false" :data="uploadData" :on-change="UploadChange" :on-error="handleError" :on-success="handleSuccess" :before-upload="before" class="upload-file-uploader">
|
|
|
|
|
}" name="files" :on-preview="handlePreview" :on-change="UploadChange" :limit="1">
|
|
|
|
|
<el-button type="primary">
|
|
|
|
|
<Icon icon="ep:upload-filled" />上传附件
|
|
|
|
|
<Icon icon="ep:upload-filled" />上传
|
|
|
|
|
</el-button>
|
|
|
|
|
<template #tip>
|
|
|
|
|
<div class="el-upload__tip">
|
|
|
|
|
上传APK格式文件
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-upload>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<template #footer>
|
|
|
|
|
<el-button :disabled="formLoading" type="primary" @click="submitFileForm">确 定</el-button>
|
|
|
|
@ -43,10 +47,10 @@ const formLoading = ref(false) // 表单的加载中
|
|
|
|
|
const uploadHeaders = ref() // 上传 Header 头
|
|
|
|
|
const fileList = ref([]) // 文件列表
|
|
|
|
|
const formData = ref({
|
|
|
|
|
id: '',
|
|
|
|
|
fileName: '',
|
|
|
|
|
businessId: undefined,
|
|
|
|
|
businessType: 'MES_ANDROID_APP',
|
|
|
|
|
attachments: []
|
|
|
|
|
businessFileType: 'com.chanko.yunxi.mes.android',
|
|
|
|
|
businessFileRemark: undefined
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
/** 打开弹窗 */
|
|
|
|
@ -59,11 +63,14 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
|
|
|
// ====================附件信息 开始=======================================
|
|
|
|
|
const uploading = ref(false)
|
|
|
|
|
const uploadUrl = ref(import.meta.env.VITE_UPLOAD_BATCH_URL)
|
|
|
|
|
const uploadRef = ref()
|
|
|
|
|
// const uploadUrl = ref(import.meta.env.VITE_UPLOAD_BATCH_URL)
|
|
|
|
|
const UploadRef = ref()
|
|
|
|
|
const uploadFiles = ref<UploadUserFile[]>([])
|
|
|
|
|
const uploadData = ref({
|
|
|
|
|
businessType: 'MES_ANDROID_APP',
|
|
|
|
|
businessId: formData.value.id
|
|
|
|
|
businessId: formData.value.businessId,
|
|
|
|
|
businessFileType: formData.value.businessFileType,
|
|
|
|
|
businessFileRemark: formData.value.businessFileRemark
|
|
|
|
|
})
|
|
|
|
|
// // 下载文件
|
|
|
|
|
// const downloadAttachment = async (name, url) => {
|
|
|
|
@ -73,82 +80,30 @@ const uploadData = ref({
|
|
|
|
|
|
|
|
|
|
const UploadChange = (file, files) => {
|
|
|
|
|
uploadFiles.value = files
|
|
|
|
|
refreshAttachments(files)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const refreshAttachments = (files) => {
|
|
|
|
|
console.log(files)
|
|
|
|
|
|
|
|
|
|
formData.value.attachments = formData.value.attachments.filter((value, index, array) => {
|
|
|
|
|
return value.id
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < files.length; i++) {
|
|
|
|
|
let file = files[i]
|
|
|
|
|
file.createTime = new Date()
|
|
|
|
|
formData.value.attachments.push(file)
|
|
|
|
|
}
|
|
|
|
|
// 排序
|
|
|
|
|
formData.value.attachments.sort((v1, v2) => v1.createTime - v2.createTime)
|
|
|
|
|
uploadData.value.businessType = formData.value.businessType
|
|
|
|
|
uploadData.value.businessId = formData.value.businessId
|
|
|
|
|
uploadData.value.businessFileType = formData.value.businessFileType
|
|
|
|
|
uploadData.value.businessFileRemark = formData.value.businessFileRemark
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 删除附件
|
|
|
|
|
// const handleDeleteAttachment = async (index) => {
|
|
|
|
|
// const deletedAttachments = formData.value.attachments.splice(index, 1)
|
|
|
|
|
// for (let i = 0; i < deletedAttachments.length; i++) {
|
|
|
|
|
// const attachment = deletedAttachments[i]
|
|
|
|
|
// if (attachment.id) {
|
|
|
|
|
// // 清理已上传文件
|
|
|
|
|
// await deleteFileLogic(attachment.id)
|
|
|
|
|
// }
|
|
|
|
|
// // 清理待上传文件
|
|
|
|
|
// uploadFiles.value = uploadFiles.value.filter((file1) => {
|
|
|
|
|
// return file1.name != attachment.name
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/** 提交表单 */
|
|
|
|
|
const submitFileForm = async () => {
|
|
|
|
|
// 上传附件
|
|
|
|
|
if (uploadFiles.value.length > 0) {
|
|
|
|
|
uploadData.value.businessId = ''
|
|
|
|
|
await uploadRef.value!.submit()
|
|
|
|
|
}
|
|
|
|
|
message.success(t('common.operationSuccess'))
|
|
|
|
|
}
|
|
|
|
|
// console.log(uploadFiles.value,'1');
|
|
|
|
|
// console.log(formData.value,'2');
|
|
|
|
|
console.log(uploadData.value,'3');
|
|
|
|
|
|
|
|
|
|
/** 文件上传成功处理 */
|
|
|
|
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
|
|
|
|
const submitFormSuccess = () => {
|
|
|
|
|
// 清理
|
|
|
|
|
dialogVisible.value = false
|
|
|
|
|
formLoading.value = false
|
|
|
|
|
unref(uploadRef)?.clearFiles()
|
|
|
|
|
// 提示成功,并刷新
|
|
|
|
|
message.success(t('common.createSuccess'))
|
|
|
|
|
emit('success')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 上传错误提示 */
|
|
|
|
|
const submitFormError = (): void => {
|
|
|
|
|
message.error('上传失败,请您重新上传!')
|
|
|
|
|
formLoading.value = false
|
|
|
|
|
await UploadRef.value!.submit()
|
|
|
|
|
message.success(t('common.operationSuccess'))
|
|
|
|
|
dialogVisible.value = false
|
|
|
|
|
} else {
|
|
|
|
|
alert('11')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/** 重置表单 */
|
|
|
|
|
const resetForm = () => {
|
|
|
|
|
// 重置上传状态和文件
|
|
|
|
|
formLoading.value = false
|
|
|
|
|
uploadRef.value?.clearFiles()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 文件数超出提示 */
|
|
|
|
|
const handleExceed = (): void => {
|
|
|
|
|
message.error('最多只能上传一个文件!')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 文件上传前的钩子
|
|
|
|
|
const before = (rawFile) => {
|
|
|
|
|
console.log(rawFile)
|
|
|
|
|
UploadRef.value?.clearFiles()
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|