diff --git a/frontend/src/views/BudgetManagement.vue b/frontend/src/views/BudgetManagement.vue index 70769363..e28f506a 100644 --- a/frontend/src/views/BudgetManagement.vue +++ b/frontend/src/views/BudgetManagement.vue @@ -19,6 +19,9 @@
+ + + 查询 @@ -452,7 +455,7 @@ function getEntityId() { return Number(localStorage.getItem('cma_entity_id') || 1) } const yearOptions = computed(() => { const y: number[] = []; for (let i = currentYear - 2; i <= currentYear + 2; i++) y.push(i); return y }) -const filterYear = ref(currentYear); const filterMonth = ref(0); const searchKpi = ref('') +const filterYear = ref(currentYear); const filterMonth = ref(0); const searchKpi = ref(''); const filterVersion = ref('') const loading = ref(false); const budgetList = ref([]); const page = ref(1); const pageSize = ref(20); const total = ref(0); const noMap = ref(false) const batchEditMode = ref(false); const batchSavingAll = ref(false) @@ -495,6 +498,8 @@ async function loadPublishedMaps() { function onMapSelect(id: number) { selectedMap.value = publishedMaps.value.find(m => m.id === id) || null + filterVersion.value = '' // 切换地图清空版本筛选(重新加载后由用户选择) + loadVersions() // 加载该地图年度版本列表供筛选 loadBudget() } @@ -545,7 +550,7 @@ async function loadBudget() { if (mapCodes.size === 0) { budgetList.value = []; total.value = 0; return } noMap.value = false; loading.value = true try { - const params: any = { page: page.value, page_size: pageSize.value, entity_id: getEntityId(), map_id: selectedMapId.value }; if (filterYear.value) params.year = filterYear.value; if (filterMonth.value > 0) params.budget_month = filterMonth.value; if (searchKpi.value) params.keyword = searchKpi.value + const params: any = { page: page.value, page_size: pageSize.value, entity_id: getEntityId(), map_id: selectedMapId.value }; if (filterYear.value) params.year = filterYear.value; if (filterVersion.value) params.version = filterVersion.value; if (filterMonth.value > 0) params.budget_month = filterMonth.value; if (searchKpi.value) params.keyword = searchKpi.value const r: any = await budgetApi.list(params); const d = r.data || r || []; const allPlans = (Array.isArray(d) ? d : (d.items || [])) as any[] // 只保留选中地图关联KPI的预算记录 const plans = allPlans.filter((p: any) => mapCodes.has(p.kpi_code))