weizong song 2 months ago
parent a8155d4594
commit 2cd796c4fa

@ -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 || ''
}
}

@ -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)
}

@ -854,7 +854,7 @@
<!-- 批量排序对话框:保留单条编辑排序,同时支持集中录入后一次提交 -->
<el-dialog title="批量设置排序" :visible.sync="batchSortDialogVisible" width="760px" :close-on-click-modal="false">
<div style="margin-bottom: 14px; color: #909399;">
按同级排序值从小到大展示;可集中修改后一次性保存。排序值相同则按创建顺序排列。
仅设置大包和中包的排序;按同级排序值从小到大展示。可集中修改后一次性保存,排序值相同则按创建顺序排列。
</div>
<el-table :data="batchSortRows" max-height="520" border>
<el-table-column label="预算包" min-width="320">
@ -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)
})
}

Loading…
Cancel
Save