From 506c26f7ab298f4dc703daafd498865ec31cdba6 Mon Sep 17 00:00:00 2001 From: Codewoc <947380458@qq.com> Date: Sat, 11 Apr 2026 13:17:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(review-meeting):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E5=B1=95=E7=A4=BA=E5=B9=B6=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=87=8D=E7=94=9F=E6=88=90=E5=90=8E=E6=8F=90=E4=BA=A4=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/review/meeting/MeetingEdit.vue | 207 ++++++++++++----------- 1 file changed, 104 insertions(+), 103 deletions(-) diff --git a/src/views/review/meeting/MeetingEdit.vue b/src/views/review/meeting/MeetingEdit.vue index d5fe62ee2..f224dc6e7 100644 --- a/src/views/review/meeting/MeetingEdit.vue +++ b/src/views/review/meeting/MeetingEdit.vue @@ -119,63 +119,62 @@
会议附件
-
- -
-
- 议程附件 +
+
+
+ 议程附件 + + 移除 +
-
-
- - {{ formData.agendaAttachmentName }} - - {{ - (formData.agendaAttachmentType || '').toUpperCase() - }} - {{ - formatFileSize(formData.agendaAttachmentSize) - }} - 移除 -
- +
+ + {{ formData.agendaAttachmentName }} + + {{ + (formData.agendaAttachmentType || '').toUpperCase() + }} + {{ + formatFileSize(formData.agendaAttachmentSize) + }}
+ 暂无议程附件
- -
-
- 会议纪要 +
+
+ 会议纪要
-
-
- - {{ formData.minutesAttachmentName }} - - {{ - (formData.minutesAttachmentType || '').toUpperCase() - }} - {{ - formatFileSize(formData.minutesAttachmentSize) - }} -
- -
- - {{ formData.minutesAiStatusName }} - - - 最近生成:{{ formData.minutesAiUpdatedTime }} - - - {{ formData.minutesAiErrorMessage }} - -
+
+ + {{ formData.minutesAttachmentName }} + + {{ + (formData.minutesAttachmentType || '').toUpperCase() + }} + {{ + formatFileSize(formData.minutesAttachmentSize) + }} +
+ 暂无会议纪要 +
+ + {{ formData.minutesAiStatusName }} + + + 最近生成:{{ formData.minutesAiUpdatedTime }} + + + {{ formData.minutesAiErrorMessage }} +
@@ -744,9 +743,26 @@ const handleDialogConfirm = async () => { ...formData, projects: submitProjects } + if (!isProjectsModified.value) { + delete submitData.projects + } if (isEdit.value) { // 编辑模式:更新会议 await updateReviewMeeting(submitData) + const shouldSyncProjectTimes = shouldSyncPersistedProjectTimes({ + isEdit: isEdit.value, + isProjectsModified: isProjectsModified.value, + originalMeetingStart: originalMeetingStart.value, + currentMeetingStart: formData.meetingTimeRange?.[0], + projects + }) + if (shouldSyncProjectTimes) { + const timeBatchPayload = buildProjectTimeBatchPayload(projects) + if (timeBatchPayload) { + await updateReviewProjectTimeBatch(timeBatchPayload) + } + } + originalMeetingStart.value = formData.meetingTimeRange?.[0] ElMessage.success('更新成功') } else { // 新建模式:创建会议 @@ -1049,42 +1065,30 @@ const handleBack = () => { line-height: 1.5; } -/* ── 会议附件卡片 ── */ -.attachment-cards { - display: flex; - gap: 12px; - flex-wrap: wrap; -} -.attachment-card { - background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%); - border: 1px solid #e8eaef; - border-radius: 8px; - padding: 12px 14px; - min-width: 320px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); - transition: all 0.2s ease; -} -.attachment-card:hover { - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); - border-color: #d0d4dc; -} -.attachment-card-header { - display: flex; - align-items: center; - gap: 6px; - margin-bottom: 8px; -} -.attachment-card-title { - font-size: 12px; - font-weight: 600; - color: #6b7280; - text-transform: uppercase; - letter-spacing: 0.3px; -} -.attachment-card-body { +/* ── 会议附件(信息行) ── */ +.attachment-list { display: flex; flex-direction: column; - gap: 6px; + gap: 10px; +} +.attachment-row { + border: 1px solid #e5eaf4; + border-radius: 10px; + padding: 10px 14px; + background-color: #fcfdff; +} +.attachment-row-header { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 24px; + margin-bottom: 6px; +} +.attachment-row-title { + font-size: 13px; + font-weight: 600; + color: #4b5563; + letter-spacing: 0.2px; } .attachment-file-info { display: flex; @@ -1094,8 +1098,8 @@ const handleBack = () => { min-width: 0; } .attachment-file-info .el-link { - font-size: 13px; - color: #3b82f6; + font-size: 14px; + color: #295abc; font-weight: 500; word-break: break-all; flex: 1; @@ -1105,35 +1109,32 @@ const handleBack = () => { text-decoration: underline; } .attachment-file-info .el-tag { - background-color: #eef2ff; - color: #6366f1; - border-color: #e0e7ff; + background-color: #edf2ff; + color: #295abc; + border-color: #d7e2fb; font-weight: 500; } .attachment-file-info .el-text { - color: #9ca3af; + color: #7b8798; font-size: 12px; } -.attachment-file-info .el-button { - color: #ef4444; - font-size: 12px; -} -.attachment-file-info .el-button:hover { - color: #dc2626; +.attachment-empty { + color: #9098a6; } .minutes-ai-line { display: flex; align-items: center; - gap: 6px; + gap: 8px; flex-wrap: wrap; - padding-top: 4px; - border-top: 1px solid #f0f0f0; + margin-top: 8px; + padding-top: 8px; + border-top: 1px dashed #e6ebf2; } .minutes-ai-line .el-tag { font-weight: 500; } .minutes-ai-line .el-text { - color: #9ca3af; - font-size: 11px; + color: #7f8896; + font-size: 12px; }