fix(meetings): 修改/复制 URL 带 projectId 让左列快照立刻加载; meeting 冗余字段兜底防 project_id 为 NULL
This commit is contained in:
@@ -79,8 +79,9 @@ const router = useRouter()
|
|||||||
// new: ?projectId=xxx → POST /business/meeting (新建)
|
// new: ?projectId=xxx → POST /business/meeting (新建)
|
||||||
// edit: ?meetingId=xxx → PUT /business/meeting/{id} (修改)
|
// edit: ?meetingId=xxx → PUT /business/meeting/{id} (修改)
|
||||||
// copy: ?meetingId=xxx&mode=copy → POST /business/meeting (复制)
|
// copy: ?meetingId=xxx&mode=copy → POST /business/meeting (复制)
|
||||||
|
// 修改/复制 URL 同时带 projectId 让左列快照能立即加载 (不必先等 bizGet meeting)
|
||||||
const meetingId = route.query.meetingId || ''
|
const meetingId = route.query.meetingId || ''
|
||||||
const projectId = route.query.projectId || ''
|
const urlProjectId = route.query.projectId || '' // URL 直接带的 projectId
|
||||||
const mode = computed(() => {
|
const mode = computed(() => {
|
||||||
if (meetingId && route.query.mode === 'copy') return 'copy'
|
if (meetingId && route.query.mode === 'copy') return 'copy'
|
||||||
if (meetingId) return 'edit'
|
if (meetingId) return 'edit'
|
||||||
@@ -155,8 +156,15 @@ async function loadMeeting(mid) {
|
|||||||
form.endTime = d.endTime || ''
|
form.endTime = d.endTime || ''
|
||||||
form.totalPeriods = d.totalPeriods || 1
|
form.totalPeriods = d.totalPeriods || 1
|
||||||
form.remark = d.remark || ''
|
form.remark = d.remark || ''
|
||||||
// 左列快照来自 meeting.projectId
|
// 左列快照 projectNo/projectName 用 meeting 冗余字段 (即使 project_id 为 NULL 也能显示)
|
||||||
await loadProjectSnapshot(d.projectId)
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========== 保存 ==========
|
// ========== 保存 ==========
|
||||||
|
|||||||
@@ -192,13 +192,13 @@ const detailOpen = ref(false)
|
|||||||
const currentRow = ref(null)
|
const currentRow = ref(null)
|
||||||
function onView(row) { currentRow.value = row; detailOpen.value = true }
|
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()
|
const router = useRouter()
|
||||||
function onEdit(row) {
|
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) {
|
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' } })
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========== 提交 (单条) ==========
|
// ========== 提交 (单条) ==========
|
||||||
|
|||||||
Reference in New Issue
Block a user