diff --git a/frontend/src/views/BudgetManagement.vue b/frontend/src/views/BudgetManagement.vue index 3d41a8f2..ef759609 100644 --- a/frontend/src/views/BudgetManagement.vue +++ b/frontend/src/views/BudgetManagement.vue @@ -714,11 +714,11 @@ @@ -1089,7 +1089,7 @@ async function resubmitVersion(row: any) { try { await ElMessageBox.confirm(`确 const versionYear = ref(currentYear); const versionsList = ref([]); const versionsLoading = ref(false); const selectedVersions = ref([]); const showVersionDiff = ref(false); const diffLoading = ref(false); const diffData = ref(null); const currentVersion = ref('') async function loadVersions() { versionsLoading.value = true; try { const r: any = await budgetApi.versions({ year: versionYear.value, entity_id: getEntityId() }); const d = Array.isArray(r) ? r : (r.data || []); versionsList.value = d.map((v: any) => ({ ...v, _selected: false })); currentVersion.value = d[0]?.version || '' } catch (e) { ElMessage.error('加载版本列表失败') }; versionsLoading.value = false } function onVersionSelect(row: any) { selectedVersions.value = versionsList.value.filter((v: any) => v._selected); if (selectedVersions.value.length > 2) { row._selected = false; selectedVersions.value = versionsList.value.filter((v: any) => v._selected) } } -async function loadVersionDiff() { if (selectedVersions.value.length !== 2) return; diffLoading.value = true; try { const [a, b] = selectedVersions.value; const r: any = await budgetApi.versionDiff({ version_a: a.version, version_b: b.version, year: versionYear.value }); diffData.value = r; showVersionDiff.value = true } catch (e) { ElMessage.error('加载版本对比失败') }; diffLoading.value = false } +async function loadVersionDiff() { if (selectedVersions.value.length !== 2) return; diffLoading.value = true; try { const [a, b] = selectedVersions.value; const r: any = await budgetApi.versionDiff({ version_a: a.version, version_b: b.version, year: versionYear.value }); const diffs: any[] = (r && Array.isArray(r.diffs)) ? r.diffs : []; diffs.forEach((d: any) => { d.diff_rate = (typeof d.version_a === 'number' && d.version_a > 0 && typeof d.diff === 'number') ? Math.round(d.diff / d.version_a * 100) : null }); diffData.value = r; showVersionDiff.value = true } catch (e) { ElMessage.error('加载版本对比失败') }; diffLoading.value = false } const execFilterYear = ref(currentYear); const execFilterMonth = ref(new Date().getMonth()); const execFilterDim = ref(''); const execLoading = ref(false); const execReport = ref([]); const execSummaryCards = ref([]) async function loadExecutionReport() {