From 620effd1f85ef03e16cd318956bd7eb1b7e98444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E8=AF=9A?= Date: Wed, 7 Jan 2026 17:33:50 +0800 Subject: [PATCH] feat: add budget update functionality and enhance budget management UI - Implemented UpdateAsync method in BudgetController for updating budget details. - Created UpdateBudgetDto for handling budget update requests. - Added BudgetCard component for displaying budget information with progress tracking. - Developed BudgetEditPopup component for creating and editing budget entries. - Introduced BudgetSummary component for summarizing budget statistics by period. - Enhanced budget period display logic in BudgetDto to support various timeframes. --- Service/BudgetService.cs | 4 +- Web/src/api/budget.js | 12 + Web/src/components/Budget/BudgetCard.vue | 219 ++++++ Web/src/components/Budget/BudgetEditPopup.vue | 267 +++++++ Web/src/components/Budget/BudgetSummary.vue | 105 +++ Web/src/views/BudgetView.vue | 704 +++--------------- WebApi/Controllers/BudgetController.cs | 32 + WebApi/Controllers/Dto/BudgetDto.cs | 16 +- 8 files changed, 759 insertions(+), 600 deletions(-) create mode 100644 Web/src/components/Budget/BudgetCard.vue create mode 100644 Web/src/components/Budget/BudgetEditPopup.vue create mode 100644 Web/src/components/Budget/BudgetSummary.vue diff --git a/Service/BudgetService.cs b/Service/BudgetService.cs index d9a56f9..c9ba9a3 100644 --- a/Service/BudgetService.cs +++ b/Service/BudgetService.cs @@ -12,8 +12,8 @@ public interface IBudgetService } public class BudgetService( - IBudgetRepository budgetRepository, - ILogger logger) : IBudgetService + IBudgetRepository budgetRepository +) : IBudgetService { public async Task> GetAllAsync() { diff --git a/Web/src/api/budget.js b/Web/src/api/budget.js index b9ccf5a..c1090bf 100644 --- a/Web/src/api/budget.js +++ b/Web/src/api/budget.js @@ -37,6 +37,18 @@ export function createBudget(data) { }) } +/** + * 更新预算 + * @param {object} data 预算数据 + */ +export function updateBudget(data) { + return request({ + url: '/Budget/Update', + method: 'post', + data + }) +} + /** * 删除预算 * @param {number} id 预算ID diff --git a/Web/src/components/Budget/BudgetCard.vue b/Web/src/components/Budget/BudgetCard.vue new file mode 100644 index 0000000..e2e4cb0 --- /dev/null +++ b/Web/src/components/Budget/BudgetCard.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/Web/src/components/Budget/BudgetEditPopup.vue b/Web/src/components/Budget/BudgetEditPopup.vue new file mode 100644 index 0000000..9a802cb --- /dev/null +++ b/Web/src/components/Budget/BudgetEditPopup.vue @@ -0,0 +1,267 @@ + + + + + diff --git a/Web/src/components/Budget/BudgetSummary.vue b/Web/src/components/Budget/BudgetSummary.vue new file mode 100644 index 0000000..15c44cb --- /dev/null +++ b/Web/src/components/Budget/BudgetSummary.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/Web/src/views/BudgetView.vue b/Web/src/views/BudgetView.vue index 822901c..5935bbe 100644 --- a/Web/src/views/BudgetView.vue +++ b/Web/src/views/BudgetView.vue @@ -2,7 +2,7 @@
@@ -10,88 +10,40 @@
-
-
-
本周{{ activeTabTitle }}率
-
- {{ overallStats.week.rate }}% -
-
{{ overallStats.week.count }}个预算
-
-
-
-
本月{{ activeTabTitle }}率
-
- {{ overallStats.month.rate }}% -
-
{{ overallStats.month.count }}个预算
-
-
-
-
年度{{ activeTabTitle }}率
-
- {{ overallStats.year.rate }}% -
-
{{ overallStats.year.count }}个预算
-
-
+