From 25eef304562e68598d4f1cbe52d4a1205f539570 Mon Sep 17 00:00:00 2001 From: Codewoc <947380458@qq.com> Date: Tue, 7 Apr 2026 09:16:11 +0800 Subject: [PATCH] feat(review-meeting): support active tablet meeting selection --- src/api/review/meeting.ts | 29 ++-- src/api/review/tablet.ts | 2 +- src/views/review/meeting/MeetingEdit.vue | 153 ++++++++++-------- src/views/review/meeting/MeetingForm.vue | 133 +++++++-------- src/views/review/meeting/index.vue | 196 ++++++++++++++++++++--- src/views/review/tablet/index.vue | 69 ++++++-- 6 files changed, 404 insertions(+), 178 deletions(-) diff --git a/src/api/review/meeting.ts b/src/api/review/meeting.ts index 6ec946e63..f7d830f33 100644 --- a/src/api/review/meeting.ts +++ b/src/api/review/meeting.ts @@ -26,9 +26,6 @@ export interface ReviewMeetingSaveReqVO { organizationUnit?: string startTime?: string | number endTime?: string | number - materialViewStartTime?: string | number - materialViewEndTime?: string | number - materialViewRemark?: string location: string host?: string agendaAttachmentName?: string @@ -59,9 +56,6 @@ export interface ReviewMeetingRespVO { organizationUnit?: string startTime: string endTime: string - materialViewStartTime?: string - materialViewEndTime?: string - materialViewRemark?: string location: string host?: string agendaAttachmentName?: string @@ -81,6 +75,7 @@ export interface ReviewMeetingRespVO { expertCount: number projectCount: number mailSent?: boolean + tabletActive?: boolean createTime: string } @@ -159,6 +154,14 @@ export const cancelReviewMeeting = (id: number) => export const finishReviewMeeting = (id: number) => request.put({ url: '/project/review-meeting/finish', params: { id } }) +/** 设为当前平板评审会议(单选) */ +export const setTabletActiveMeeting = (id: number) => + request.put({ url: '/project/review-meeting/tablet-active', params: { id } }) + +/** 清空当前平板评审会议 */ +export const clearTabletActiveMeeting = () => + request.delete({ url: '/project/review-meeting/tablet-active' }) + /** 复制会议(仅已结束/已取消) */ export const copyReviewMeeting = (id: number) => request.post({ url: '/project/review-meeting/copy', params: { id } }) @@ -199,7 +202,10 @@ export const getMailLogList = (reviewMeetingId: number) => export const importProjectsFromExcel = async (file: File): Promise => { const formData = new FormData() formData.append('file', file) - const res = await request.upload({ url: '/project/review-meeting/import-projects', data: formData }) + const res = await request.upload({ + url: '/project/review-meeting/import-projects', + data: formData + }) return res?.data || [] } @@ -212,7 +218,10 @@ export const uploadAgendaAttachment = async ( /** 根据当前表单内容自动生成议程附件 */ export const generateAgendaAttachment = (data: ReviewMeetingAgendaGenerateReqVO) => - request.post({ url: '/project/review-meeting/generate-agenda', data }) + request.post({ + url: '/project/review-meeting/generate-agenda', + data + }) /** 上传会议纪要附件(Word/PDF/图片) */ export const uploadMinutesAttachment = ( @@ -283,5 +292,7 @@ const uploadMeetingAttachmentByPresignedUrl = async ( } const resolveAttachmentType = (fileName: string): string => { - return fileName.includes('.') ? fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase() : '' + return fileName.includes('.') + ? fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase() + : '' } diff --git a/src/api/review/tablet.ts b/src/api/review/tablet.ts index 451a9c0fd..dbcccb281 100644 --- a/src/api/review/tablet.ts +++ b/src/api/review/tablet.ts @@ -32,7 +32,7 @@ export interface ReviewTabletOpenUrlVO { visitUrl: string } -export const getTodayCatalog = () => request.get({ url: '/project/review-tablet/catalog/today' }) +export const getActiveCatalog = () => request.get({ url: '/project/review-tablet/catalog/active' }) export const getProjectFiles = (reviewMeetingProjectId: number) => request.get({ diff --git a/src/views/review/meeting/MeetingEdit.vue b/src/views/review/meeting/MeetingEdit.vue index 47090ad28..7a454e805 100644 --- a/src/views/review/meeting/MeetingEdit.vue +++ b/src/views/review/meeting/MeetingEdit.vue @@ -22,7 +22,11 @@ - + @@ -54,7 +58,12 @@ :disabled="isView" style="width: 100%" > - + @@ -65,21 +74,6 @@ - - - - -
@@ -92,7 +86,12 @@ > -
@@ -101,9 +100,15 @@ {{ formData.agendaAttachmentName }} - {{ (formData.agendaAttachmentType || '').toUpperCase() }} - {{ formatFileSize(formData.agendaAttachmentSize) }} - 移除 + {{ + (formData.agendaAttachmentType || '').toUpperCase() + }} + {{ + formatFileSize(formData.agendaAttachmentSize) + }} + 移除
@@ -126,11 +131,20 @@ {{ formData.minutesAttachmentName }} - {{ (formData.minutesAttachmentType || '').toUpperCase() }} - {{ formatFileSize(formData.minutesAttachmentSize) }} - 移除 + {{ + (formData.minutesAttachmentType || '').toUpperCase() + }} + {{ + formatFileSize(formData.minutesAttachmentSize) + }} + 移除 -
+
{{ formData.minutesAiStatusName }} @@ -171,7 +185,9 @@ > - + 格式:序号、议程分类、项目标题、汇报人、报告人单位
@@ -194,7 +210,13 @@