diff --git a/src/api/review/meeting.ts b/src/api/review/meeting.ts
index fe1305e4d..6ec946e63 100644
--- a/src/api/review/meeting.ts
+++ b/src/api/review/meeting.ts
@@ -72,6 +72,10 @@ export interface ReviewMeetingRespVO {
minutesAttachmentUrl?: string
minutesAttachmentType?: string
minutesAttachmentSize?: number
+ minutesAiStatus?: number
+ minutesAiStatusName?: string
+ minutesAiErrorMessage?: string
+ minutesAiUpdatedTime?: string
status: number // 0-草稿 1-已邀约 2-已结束 3-已取消
expertIds: number[]
expertCount: number
diff --git a/src/views/review/meeting/MeetingEdit.vue b/src/views/review/meeting/MeetingEdit.vue
index a1ac50d35..7889ba685 100644
--- a/src/views/review/meeting/MeetingEdit.vue
+++ b/src/views/review/meeting/MeetingEdit.vue
@@ -130,6 +130,17 @@
{{ formatFileSize(formData.minutesAttachmentSize) }}
移除
+
+
+ {{ formData.minutesAiStatusName }}
+
+
+ 最近生成:{{ formData.minutesAiUpdatedTime }}
+
+
+ {{ formData.minutesAiErrorMessage }}
+
+
@@ -254,6 +265,10 @@ type FormData = ReviewMeetingSaveReqVO & {
organizationUnit?: string
meetingTimeRange?: any[]
materialViewTimeRange?: any[]
+ minutesAiStatus?: number
+ minutesAiStatusName?: string
+ minutesAiErrorMessage?: string
+ minutesAiUpdatedTime?: string
}
const formData = reactive({
@@ -272,6 +287,10 @@ const formData = reactive({
minutesAttachmentUrl: undefined,
minutesAttachmentType: undefined,
minutesAttachmentSize: undefined,
+ minutesAiStatus: undefined,
+ minutesAiStatusName: undefined,
+ minutesAiErrorMessage: undefined,
+ minutesAiUpdatedTime: undefined,
materialViewStartTime: undefined,
materialViewEndTime: undefined,
materialViewRemark: undefined,
@@ -293,6 +312,13 @@ const rules: FormRules = {
const formRef = ref()
+const getMinutesAiTagType = (status?: number) => {
+ if (status === 2) return 'success'
+ if (status === 3) return 'danger'
+ if (status === 1) return 'warning'
+ return 'info'
+}
+
const mapProjectItems = (projects: any[]): ReviewProjectItemVO[] =>
(projects || []).map((item: any) => ({
sourceProjectId: item.sourceProjectId ?? item.id,
@@ -369,6 +395,10 @@ const loadCopySource = async (id: number) => {
formData.minutesAttachmentUrl = undefined
formData.minutesAttachmentType = undefined
formData.minutesAttachmentSize = undefined
+ formData.minutesAiStatus = undefined
+ formData.minutesAiStatusName = undefined
+ formData.minutesAiErrorMessage = undefined
+ formData.minutesAiUpdatedTime = undefined
formData.expertIds = detail.expertIds || []
formData.projects = resetProjectReviewDate(mapProjectItems(projectData?.list ?? []))
isProjectsModified.value = false
@@ -490,7 +520,11 @@ const handleMinutesAttachmentChange = async (uploadFile: UploadFile) => {
formData.minutesAttachmentUrl = attachment.url
formData.minutesAttachmentType = attachment.type
formData.minutesAttachmentSize = attachment.size
- ElMessage.success('会议纪要上传成功')
+ formData.minutesAiStatus = 1
+ formData.minutesAiStatusName = '生成中'
+ formData.minutesAiErrorMessage = undefined
+ formData.minutesAiUpdatedTime = undefined
+ ElMessage.success('会议纪要上传成功,整改通知后台生成中')
} finally {
formLoading.value = false
}
@@ -501,6 +535,10 @@ const clearMinutesAttachment = () => {
formData.minutesAttachmentUrl = undefined
formData.minutesAttachmentType = undefined
formData.minutesAttachmentSize = undefined
+ formData.minutesAiStatus = undefined
+ formData.minutesAiStatusName = undefined
+ formData.minutesAiErrorMessage = undefined
+ formData.minutesAiUpdatedTime = undefined
}
const previewAgendaAttachment = () => {
@@ -728,6 +766,12 @@ const handleBack = () => {
flex-wrap: wrap;
font-size: 16px;
}
+.minutes-ai-line {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ flex-wrap: wrap;
+}
.agenda-action-row {
display: flex;
align-items: center;
diff --git a/src/views/review/meeting/ProjectDetail.vue b/src/views/review/meeting/ProjectDetail.vue
index e7320e2eb..88773ad20 100644
--- a/src/views/review/meeting/ProjectDetail.vue
+++ b/src/views/review/meeting/ProjectDetail.vue
@@ -251,13 +251,15 @@ const PHASE_MAPPING: Record> = {
PROJECT_ARGUMENT_DOC: 'before',
PROJECT_DEFENSE_PPT: 'before',
PROJECT_DRAFT_EXPERT_OPINION: 'before',
- PROJECT_EXPERT_OPINION_SIGNED: 'after'
+ PROJECT_EXPERT_OPINION_SIGNED: 'after',
+ PROJECT_RECTIFICATION_NOTICE: 'after'
},
项目立项: {
PROJECT_ARGUMENT_DOC: 'before',
PROJECT_DEFENSE_PPT: 'before',
PROJECT_DRAFT_EXPERT_OPINION: 'before',
- PROJECT_EXPERT_OPINION_SIGNED: 'after'
+ PROJECT_EXPERT_OPINION_SIGNED: 'after',
+ PROJECT_RECTIFICATION_NOTICE: 'after'
},
预验收: {
PRE_PROJECT_CONTRACT: 'before',
diff --git a/src/views/review/meeting/index.vue b/src/views/review/meeting/index.vue
index 8d7a979b5..3e9ed422c 100644
--- a/src/views/review/meeting/index.vue
+++ b/src/views/review/meeting/index.vue
@@ -246,7 +246,7 @@ const handleMinutesFileChange = async (event: Event) => {
}
try {
await uploadMinutesAttachment(pendingMinutesMeeting.value.id, file)
- ElMessage.success('会议纪要上传成功')
+ ElMessage.success('会议纪要上传成功,整改通知后台生成中')
getList()
} finally {
input.value = ''