From ac37b9eb266d5c5d24f1a9d2aa62857492d0387f Mon Sep 17 00:00:00 2001 From: Codewoc <947380458@qq.com> Date: Wed, 1 Apr 2026 17:31:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(review-meeting):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=8D=89=E7=A8=BF=E9=87=8D=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=8E=E6=97=B6=E9=97=B4=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/reviewMeetingEditHelpers.check.ts | 53 +++++++++++ src/views/review/meeting/MeetingEdit.vue | 83 ++++++++++++----- .../review/meeting/meetingEditHelpers.ts | 93 +++++++++++++++++++ 3 files changed, 207 insertions(+), 22 deletions(-) create mode 100644 scripts/reviewMeetingEditHelpers.check.ts create mode 100644 src/views/review/meeting/meetingEditHelpers.ts diff --git a/scripts/reviewMeetingEditHelpers.check.ts b/scripts/reviewMeetingEditHelpers.check.ts new file mode 100644 index 000000000..b08e7c717 --- /dev/null +++ b/scripts/reviewMeetingEditHelpers.check.ts @@ -0,0 +1,53 @@ +import assert from 'node:assert/strict' +import { + buildProjectTimeBatchPayload, + mapCopiedProjectItems, + mapPersistedProjectItems, + shouldSyncPersistedProjectTimes +} from '../src/views/review/meeting/meetingEditHelpers' + +const baseProject = { + id: 101, + seqNo: 1, + startTime: '09:00', + endTime: '09:15', + agendaCategory: '项目申报论证', + projectTitle: '项目A', + reporter: '张三', + reporterUnit: '软件学院', + reviewDate: '2026-04-01' +} + +const persistedProjects = mapPersistedProjectItems([baseProject]) +assert.equal( + persistedProjects[0].sourceProjectId, + undefined, + '编辑已有会议时,不应该把现有项目 id 回填到 sourceProjectId' +) + +const copiedProjects = mapCopiedProjectItems([baseProject]) +assert.equal(copiedProjects[0].sourceProjectId, 101, '复制会议时,应该保留源项目 id 用于首次复制资料') + +assert.equal( + shouldSyncPersistedProjectTimes({ + isEdit: true, + isProjectsModified: false, + originalMeetingStart: 1711942800000, + currentMeetingStart: 1711944600000, + projects: [baseProject] + }), + true, + '编辑已有会议且仅修改会议开始时间时,应该同步已落库项目时间' +) + +assert.deepEqual(buildProjectTimeBatchPayload([baseProject]), { + items: [ + { + id: 101, + startTime: '09:00', + endTime: '09:15' + } + ] +}) + +console.log('reviewMeetingEditHelpers checks passed') diff --git a/src/views/review/meeting/MeetingEdit.vue b/src/views/review/meeting/MeetingEdit.vue index a1ac50d35..ba56c8f4a 100644 --- a/src/views/review/meeting/MeetingEdit.vue +++ b/src/views/review/meeting/MeetingEdit.vue @@ -192,7 +192,7 @@