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' } }) } // ========== 提交 (单条) ==========