From f083281ab75f61390a04daa2484f330f8df4178f Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Thu, 29 Jan 2026 08:44:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue | 168 +++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 111 insertions(+), 57 deletions(-)
diff --git a/applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue
index 239cb33..6d685f0 100644
--- a/applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue
@@ -323,10 +323,21 @@
}
// 文件移除
+// const handleFileRemove = (file, fileListVal) => {
+// uploadedFiles.value = fileListVal
+// }
const handleFileRemove = (file, fileListVal) => {
-uploadedFiles.value = fileListVal
+ // 从展示列表中移除
+ fileList.value = fileListVal
+
+ // 从已上传列表中移除
+ const index = uploadedFiles.value.findIndex(item =>
+ item.attachId === file.attachId || item.name === file.name
+ )
+ if (index > -1) {
+ uploadedFiles.value.splice(index, 1)
+ }
}
-
// 上传前验证
const beforeFileUpload = file => {
const allowedExtensions = ['.zip', '.rar', '.7z', '.tar', '.gz']
@@ -364,45 +375,53 @@
// 提交数据的通用函数
async function submitForm(objectionStatus) {
- const isValid = await formRef.value?.validate().catch(() => false)
- if (!isValid) return
- // 只在新增时校验附件是否上传
- if (dialogMode.value === 'add' && uploadedFiles.value.length === 0) {
- ElMessage.warning('请上传附件')
- return
- }
- submitting.value = true
+ const isValid = await formRef.value?.validate().catch(() => false)
+ if (!isValid) return
+
+ // 在编辑模式下,如果已有附件,可以不强制上传新附件
+ if (dialogMode.value === 'add' && uploadedFiles.value.length === 0) {
+ return ElMessage.warning('请上传附件')
+ }
+
+ submitting.value = true
- try {
- // 构建符合接口要求的提交数据
- const submitData = {
- // 编辑模式下传递id
- ...(formData.value.id && { id: formData.value.id }),
- title: formData.value.title,
- objectionType: formData.value.objectionType,
- submitter: formData.value.submitter,
- submitterContact: formData.value.submitterContact,
- catalogResourceName: formData.value.catalogResourceName,
- objectionDesc: formData.value.objectionDesc,
- objectionBasis: formData.value.objectionBasis,
- areaCode: formData.value.areaCode || '',
- handleUnit: formData.value.handleUnit || '',
- // 只在有附件时才构建附件列表
- ...(uploadedFiles.value.length > 0 && {
- attachmentList: uploadedFiles.value.map(file => ({
- attachId: file.attachId,
- attachName: file.originalName,
- })),
- }),
- objectionStatus: objectionStatus
- }
- await gdDataObjectionSubmitApi(submitData)
- ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
- visible.value = false
- emit('success')
- } finally {
- submitting.value = false
- }
+ try {
+ // 构建符合接口要求的提交数据
+ const submitData = {
+ // 编辑模式下传递id
+ ...(formData.value.id && { id: formData.value.id }),
+ title: formData.value.title,
+ objectionType: formData.value.objectionType,
+ submitter: formData.value.submitter,
+ submitterContact: formData.value.submitterContact,
+ catalogResourceName: formData.value.catalogResourceName,
+ objectionDesc: formData.value.objectionDesc,
+ objectionBasis: formData.value.objectionBasis,
+ areaCode: formData.value.areaCode || '',
+ handleUnit: formData.value.handleUnit || '',
+ // 构建附件列表 - 使用当前已上传的文件(包括回显的)
+ ...(uploadedFiles.value.length > 0 && {
+ attachmentList: uploadedFiles.value.map(file => ({
+ attachId: file.attachId,
+ attachName: file.originalName,
+ })),
+ }),
+ objectionStatus: objectionStatus
+ }
+
+ // 如果是编辑且没有修改附件,可以保留原有附件ID
+ if (dialogMode.value === 'edit' && formData.value.attachIds) {
+ // 这里可以根据业务需求决定是否保留原附件ID
+ // 如果接口支持更新时重新上传附件ID列表,可以这样做
+ }
+
+ await gdDataObjectionSubmitApi(submitData)
+ ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
+ visible.value = false
+ emit('success')
+ } finally {
+ submitting.value = false
+ }
}
// 提交新增/编辑(保存)
@@ -439,12 +458,42 @@
}
// 加载详情
async function loadDetail() {
- if (!formData.value.id) return
- const res = await gdDataObjectionDetailApi({ id: formData.value.id })
- formData.value = res?.data?.data ?? {}
- if (formData.value.attachIds) {
- getAttachDetail(formData.value.attachIds)
- }
+ if (!formData.value.id) return
+ const res = await gdDataObjectionDetailApi({ id: formData.value.id })
+ formData.value = res?.data?.data ?? {}
+
+ // 处理附件回显
+ if (formData.value.attachIds) {
+ await getAttachDetail(formData.value.attachIds)
+ // 回显到上传组件
+ updateFileListForDisplay()
+ }
+}
+
+// 更新文件列表用于显示
+function updateFileListForDisplay() {
+ fileList.value = []
+ uploadedFiles.value = []
+
+ if (attachmentDetailsList.value && attachmentDetailsList.value.length > 0) {
+ attachmentDetailsList.value.forEach(attach => {
+ const fileItem = {
+ name: attach.originalName || attach.name,
+ url: attach.link, // 用于预览
+ attachId: attach.id, // 文件ID
+ originalName: attach.originalName,
+ link: attach.link
+ }
+
+ fileList.value.push({
+ name: fileItem.name,
+ url: fileItem.url,
+ status: 'success' // 已上传状态
+ })
+
+ uploadedFiles.value.push(fileItem)
+ })
+ }
}
// 获取附件详情
async function getAttachDetail(attachIds) {
@@ -478,17 +527,22 @@
// 打开弹框
async function open({ mode = 'add', row } = {}) {
- dialogMode.value = mode
- // 重置文件列表
- fileList.value = []
- uploadedFiles.value = []
- // 重置表单数据
- formData.value = dialogMode.value === 'add' ? initForm() : row
- // 重置反馈表单数据
- feedbackFormData.value = initFeedbackForm()
- if (dialogMode.value !== 'add') {
- await loadDetail()
- }
+ dialogMode.value = mode
+ // 重置文件列表
+ fileList.value = []
+ uploadedFiles.value = []
+ // 重置表单数据
+ formData.value = dialogMode.value === 'add' ? initForm() : row
+ // 重置反馈表单数据
+ feedbackFormData.value = initFeedbackForm()
+
+ if (dialogMode.value !== 'add') {
+ // 如果是编辑,设置ID并加载详情
+ if (row && row.id) {
+ formData.value.id = row.id
+ }
+ await loadDetail()
+ }
}
defineExpose({ open })
--
Gitblit v1.9.3