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 @@