diff --git a/src/views/budget/collection/components/BudgetSubmissionForm.vue b/src/views/budget/collection/components/BudgetSubmissionForm.vue index c4b5bee..9e6d424 100644 --- a/src/views/budget/collection/components/BudgetSubmissionForm.vue +++ b/src/views/budget/collection/components/BudgetSubmissionForm.vue @@ -808,11 +808,14 @@ export default { project_content: (this.packageData.project_content) || '' } } else if (this.packageData.level == 3) { + const parent = this.packageData.parent || {} + const leadSubmission = parent.lead_submission || parent.leadSubmission || {} this.parentSubmissionInfo = { - application_basis: (this.packageData.parent.submission && this.packageData.parent.submission.application_basis) || '', - application_purpose: (this.packageData.parent.submission && this.packageData.parent.submission.application_purpose) || '', - application_reason: (this.packageData.parent.submission && this.packageData.parent.submission.application_reason) || '', - project_content: (this.packageData.parent.submission && this.packageData.parent.submission.project_content) || '' + // 只消费中包的 lead 申请信息;中包快照用于兼容历史数据。 + application_basis: leadSubmission.application_basis || parent.application_basis || '', + application_purpose: leadSubmission.application_purpose || parent.application_purpose || '', + application_reason: leadSubmission.application_reason || parent.application_reason || '', + project_content: leadSubmission.project_content || parent.project_content || '' } } diff --git a/src/views/budget/collection/components/SplitPackageForm.vue b/src/views/budget/collection/components/SplitPackageForm.vue index 14ae5ec..65c2e9c 100644 --- a/src/views/budget/collection/components/SplitPackageForm.vue +++ b/src/views/budget/collection/components/SplitPackageForm.vue @@ -298,7 +298,30 @@ export default { try { console.log('Loading submission data for package:', this.packageData) - // 1. 优先从父级预算包的申请信息字段中加载 + // 1. 优先读取最新提交记录。一个预算包可能经过多轮分配, + // 预算包字段只作为展示快照,不能覆盖最新提交内容。 + const submission = this.packageData.submission + const hasSubmissionApplicationInfo = submission && [ + submission.application_basis, + submission.application_purpose, + submission.application_reason, + submission.project_content + ].some(value => Boolean(value)) + + if (hasSubmissionApplicationInfo) { + + this.basicInfo = { + basis: submission.application_basis || '', + purpose: submission.application_purpose || '', + reason: submission.application_reason || '', + content: submission.project_content || '' + } + + console.log('从最新提交记录加载申请信息:', this.basicInfo) + return + } + + // 2. 无提交记录时,使用预算包上的申请信息快照。 if (this.packageData.application_basis || this.packageData.application_purpose || this.packageData.application_reason || @@ -311,36 +334,22 @@ export default { content: this.packageData.project_content || '' } - console.log('从父级预算包加载申请信息:', this.basicInfo) - return - } - - // 2. 尝试从submission中加载 - if (this.packageData.submission) { - this.basicInfo = { - basis: this.packageData.submission.application_basis || '', - purpose: this.packageData.submission.application_purpose || '', - reason: this.packageData.submission.application_reason || '', - content: this.packageData.submission.project_content || '' - } - - console.log('从submission加载申请信息:', this.basicInfo) + console.log('从预算包快照加载申请信息:', this.basicInfo) return } // 3. 如果是编辑模式但没有数据,尝试从API获取 if (this.packageData.isEditMode) { try { - // 这里可以调用API获取BudgetSubmission数据 - // 暂时使用默认值,避免表单为空 + // 当前接口没有单独的申请信息读取端点;保留为空,避免以虚构默认值覆盖真实数据。 this.basicInfo = { - basis: '修改分配', - purpose: '调整预算分配', - reason: '根据实际需求调整执行科室分配', - content: '对预算包进行重新分配' + basis: '', + purpose: '', + reason: '', + content: '' } - console.log('使用默认申请信息:', this.basicInfo) + console.log('未找到申请信息记录:', this.basicInfo) } catch (error) { console.error('从API加载申请信息失败:', error) } diff --git a/src/views/budget/collection/package.vue b/src/views/budget/collection/package.vue index 328e647..efe206a 100644 --- a/src/views/budget/collection/package.vue +++ b/src/views/budget/collection/package.vue @@ -854,7 +854,7 @@
- 按同级排序值从小到大展示;可集中修改后一次性保存。排序值相同则按创建顺序排列。 + 仅设置大包和中包的排序;按同级排序值从小到大展示。可集中修改后一次性保存,排序值相同则按创建顺序排列。
@@ -1710,12 +1710,15 @@ export default { const flatten = (items, depth = 1) => { const safeItems = items || [] safeItems.forEach(item => { - rows.push({ - id: item.id, - name: item.name, - level: item.level || depth, - sort_order: Number(item.sort_order) > 0 ? Number(item.sort_order) : 1 - }) + const level = item.level || depth + if ([1, 2].includes(Number(level))) { + rows.push({ + id: item.id, + name: item.name, + level, + sort_order: Number(item.sort_order) > 0 ? Number(item.sort_order) : 1 + }) + } flatten(item.children, depth + 1) }) }