| | |
| | | :action="uploadUrl" |
| | | :on-success="handleUploadSuccess" |
| | | :on-error="handleUploadError" |
| | | name="file" |
| | | name="files" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | style="display: inline;margin-right: 10px" |
| | |
| | | import {ElMessageBox} from "element-plus"; |
| | | import {getToken} from "@/utils/auth.js"; |
| | | import { |
| | | qualityInspectFileAdd, |
| | | qualityInspectFileDel, |
| | | qualityInspectFileListPage |
| | | } from "@/api/qualityManagement/qualityInspectFile.js"; |
| | | createAttachment, |
| | | deleteAttachment, |
| | | attachmentList |
| | | } from "@/api/basicData/storageAttachment.js"; |
| | | const { proxy } = getCurrentInstance() |
| | | const emit = defineEmits(['close']) |
| | | |
| | |
| | | const headers = ref({ |
| | | Authorization: "Bearer " + getToken(), |
| | | }); |
| | | const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/file/upload"); // 上传的图片服务器地址 |
| | | const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 上传的服务器地址 |
| | | |
| | | // 打开弹框 |
| | | const openDialog = (row) => { |
| | |
| | | getList(); |
| | | }; |
| | | const getList = () => { |
| | | qualityInspectFileListPage({inspectId: currentId.value, ...page}).then(res => { |
| | | tableData.value = res.data.records; |
| | | page.total = res.data.total; |
| | | attachmentList({recordId: currentId.value, recordType: 'quality_inspect'}).then(res => { |
| | | tableData.value = (res.data || []).map(item => ({ |
| | | ...item, |
| | | name: item.originalFilename || item.name |
| | | })); |
| | | page.total = res.data ? res.data.length : 0; |
| | | }) |
| | | } |
| | | // 表格选择数据 |
| | |
| | | dialogFormVisible.value = false; |
| | | emit('close') |
| | | }; |
| | | let pendingFiles = []; |
| | | let uploadTimer = null; |
| | | |
| | | // 上传成功处理 |
| | | function handleUploadSuccess(res, file) { |
| | | // 如果上传成功 |
| | | if (res.code == 200) { |
| | | const fileRow = {} |
| | | fileRow.name = res.data.originalName |
| | | fileRow.url = res.data.tempPath |
| | | uploadFile(fileRow) |
| | | if (res.code == 200 && res.data && res.data.length > 0) { |
| | | const newFiles = res.data.map(item => ({ |
| | | ...item, |
| | | name: item.originalFilename || item.name |
| | | })); |
| | | |
| | | pendingFiles = [...pendingFiles, ...newFiles]; |
| | | |
| | | // 防抖处理,避免多文件同时上传导致列表被覆盖 |
| | | if (uploadTimer) clearTimeout(uploadTimer); |
| | | uploadTimer = setTimeout(() => { |
| | | const mergedFiles = [...(tableData.value || []), ...pendingFiles]; |
| | | const storageAttachmentDTO = { |
| | | recordType: 'quality_inspect', |
| | | recordId: currentId.value, |
| | | application: "file", |
| | | storageBlobDTOs: mergedFiles |
| | | }; |
| | | createAttachment(storageAttachmentDTO).then(r => { |
| | | proxy.$modal.msgSuccess("文件上传成功"); |
| | | getList() |
| | | }).catch(() => { |
| | | proxy.$modal.msgError("文件上传失败"); |
| | | }).finally(() => { |
| | | pendingFiles = []; // 重置 |
| | | }); |
| | | }, 500); |
| | | } else { |
| | | proxy.$modal.msgError("文件上传失败"); |
| | | } |
| | | } |
| | | function uploadFile(file) { |
| | | file.inspectId = currentId.value; |
| | | qualityInspectFileAdd(file).then(res => { |
| | | proxy.$modal.msgSuccess("文件上传成功"); |
| | | getList() |
| | | }) |
| | | } |
| | | // 上传失败处理 |
| | | function handleUploadError() { |
| | |
| | | const handleDelete = () => { |
| | | let ids = []; |
| | | if (selectedRows.value.length > 0) { |
| | | ids = selectedRows.value.map((item) => item.id); |
| | | ids = selectedRows.value.map((item) => item.storageAttachmentId); |
| | | } else { |
| | | proxy.$modal.msgWarning("请选择数据"); |
| | | return; |
| | |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(() => { |
| | | qualityInspectFileDel(ids).then((res) => { |
| | | deleteAttachment(ids).then((res) => { |
| | | proxy.$modal.msgSuccess("删除成功"); |
| | | getList(); |
| | | }); |