fix(meetings): 修改/复制 URL 带 projectId 让左列快照立刻加载; meeting 冗余字段兜底防 project_id 为 NULL

This commit is contained in:
郭庆泰
2026-08-18 23:38:28 +08:00
parent f2830196a1
commit 1e4546d791
2 changed files with 14 additions and 6 deletions
+11 -3
View File
@@ -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)
}
}
// ========== 保存 ==========
+3 -3
View File
@@ -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' } })
}
// ========== 提交 (单条) ==========