From 1e4546d79167b548850b7ddb61d066b65d133967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E5=BA=86=E6=B3=B0?= <12369755+htcloud1@user.noreply.gitee.com> Date: Tue, 18 Aug 2026 23:38:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(meetings):=20=E4=BF=AE=E6=94=B9/=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=20URL=20=E5=B8=A6=20projectId=20=E8=AE=A9=E5=B7=A6?= =?UTF-8?q?=E5=88=97=E5=BF=AB=E7=85=A7=E7=AB=8B=E5=88=BB=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?;=20meeting=20=E5=86=97=E4=BD=99=E5=AD=97=E6=AE=B5=E5=85=9C?= =?UTF-8?q?=E5=BA=95=E9=98=B2=20project=5Fid=20=E4=B8=BA=20NULL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ry-vue3/src/views/manager/MeetingNew.vue | 14 +++++++++++--- ry-vue3/src/views/manager/Meetings.vue | 6 +++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ry-vue3/src/views/manager/MeetingNew.vue b/ry-vue3/src/views/manager/MeetingNew.vue index 1e7b4a1..dfe5921 100644 --- a/ry-vue3/src/views/manager/MeetingNew.vue +++ b/ry-vue3/src/views/manager/MeetingNew.vue @@ -79,8 +79,9 @@ const router = useRouter() // new: ?projectId=xxx → POST /business/meeting (新建) // edit: ?meetingId=xxx → PUT /business/meeting/{id} (修改) // copy: ?meetingId=xxx&mode=copy → POST /business/meeting (复制) +// 修改/复制 URL 同时带 projectId 让左列快照能立即加载 (不必先等 bizGet meeting) const meetingId = route.query.meetingId || '' -const projectId = route.query.projectId || '' +const urlProjectId = route.query.projectId || '' // URL 直接带的 projectId const mode = computed(() => { if (meetingId && route.query.mode === 'copy') return 'copy' if (meetingId) return 'edit' @@ -155,8 +156,15 @@ async function loadMeeting(mid) { form.endTime = d.endTime || '' form.totalPeriods = d.totalPeriods || 1 form.remark = d.remark || '' - // 左列快照来自 meeting.projectId - await loadProjectSnapshot(d.projectId) + // 左列快照 projectNo/projectName 用 meeting 冗余字段 (即使 project_id 为 NULL 也能显示) + snap.projectNo = d.projectNo || '' + snap.projectName = d.projectName || '' + // 总场次/支持单位/创建时间/创建人员 优先用 URL projectId, 其次 meeting.projectId + // (URL 带的 projectId 优先, 避免 copy 模式下 user 没传导致再读 meeting) + const pid = urlProjectId || d.projectId + if (pid) { + await loadProjectSnapshot(pid) + } } // ========== 保存 ========== diff --git a/ry-vue3/src/views/manager/Meetings.vue b/ry-vue3/src/views/manager/Meetings.vue index d315f5b..5471216 100644 --- a/ry-vue3/src/views/manager/Meetings.vue +++ b/ry-vue3/src/views/manager/Meetings.vue @@ -192,13 +192,13 @@ const detailOpen = ref(false) const currentRow = ref(null) function onView(row) { currentRow.value = row; detailOpen.value = true } -// ========== 修改 / 复制 (跳 MeetingNew.vue 独立页, ?meetingId=xxx[&mode=copy]) ========== +// ========== 修改 / 复制 (跳 MeetingNew.vue 独立页, ?meetingId=xxx&projectId=xxx[&mode=copy]) ========== const router = useRouter() function onEdit(row) { - router.push({ name: 'manager-meetings-new', query: { meetingId: row.meetingId } }) + router.push({ name: 'manager-meetings-new', query: { meetingId: row.meetingId, projectId: row.projectId || '' } }) } function onCopy(row) { - router.push({ name: 'manager-meetings-new', query: { meetingId: row.meetingId, mode: 'copy' } }) + router.push({ name: 'manager-meetings-new', query: { meetingId: row.meetingId, projectId: row.projectId || '', mode: 'copy' } }) } // ========== 提交 (单条) ==========