feat(review-meeting): 议程附件和会议纪要支持在线预览

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pull/874/head
Codewoc 2026-04-10 15:38:46 +08:00
parent 422fd7fa2e
commit 916db3cbe7
1 changed files with 18 additions and 2 deletions

View File

@ -244,6 +244,15 @@
</el-button> </el-button>
</template> </template>
</el-dialog> </el-dialog>
<!-- 文件预览对话框 -->
<FilePreviewDialog
v-if="formData.id"
v-model="previewDialogVisible"
:meeting-id="formData.id"
:attachment-type="previewAttachmentType"
:file-name="previewAttachmentType === 'agenda' ? formData.agendaAttachmentName : formData.minutesAttachmentName"
/>
</ContentWrap> </ContentWrap>
</template> </template>
@ -269,6 +278,7 @@ import { getReviewProjectPage, updateReviewProjectTimeBatch } from '@/api/review
import { getExpertUserList } from '@/api/system/user/index' import { getExpertUserList } from '@/api/system/user/index'
import download from '@/utils/download' import download from '@/utils/download'
import ExpertSelectTable from './components/ExpertSelectTable.vue' import ExpertSelectTable from './components/ExpertSelectTable.vue'
import FilePreviewDialog from './components/FilePreviewDialog.vue'
import { applyDefaultReviewDate } from './projectReviewDate' import { applyDefaultReviewDate } from './projectReviewDate'
import { import {
buildScheduledProjectItems, buildScheduledProjectItems,
@ -297,6 +307,10 @@ const isSubmitting = ref(false) // 防止重复提交
const agendaDialogVisible = ref(false) const agendaDialogVisible = ref(false)
const agendaDialogLoading = ref(false) const agendaDialogLoading = ref(false)
//
const previewDialogVisible = ref(false)
const previewAttachmentType = ref<'agenda' | 'minutes'>('agenda')
// //
const meetingId = computed(() => { const meetingId = computed(() => {
const id = route.params.id const id = route.params.id
@ -537,13 +551,15 @@ const clearAgendaAttachment = () => {
const previewAgendaAttachment = () => { const previewAgendaAttachment = () => {
if (formData.agendaAttachmentUrl) { if (formData.agendaAttachmentUrl) {
window.open(formData.agendaAttachmentUrl, '_blank') previewAttachmentType.value = 'agenda'
previewDialogVisible.value = true
} }
} }
const previewMinutesAttachment = () => { const previewMinutesAttachment = () => {
if (formData.minutesAttachmentUrl) { if (formData.minutesAttachmentUrl) {
window.open(formData.minutesAttachmentUrl, '_blank') previewAttachmentType.value = 'minutes'
previewDialogVisible.value = true
} }
} }