From d3c3a865ba0d485260b5e8c20a65c3b0b7c65a50 Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 10 Aug 2025 23:19:48 +0200 Subject: [PATCH] Add dues management system with UI improvements - Add BoardDuesManagement and DuesActionCard components - Create API endpoints for dues status tracking and payment marking - Integrate dues management section into board dashboard - Move create portal account button to member card action buttons - Add edit button to member view dialog - Implement member update handlers and navigation between views --- components/BoardDuesManagement.vue | 221 +++++++++++++++ components/DuesActionCard.vue | 256 ++++++++++++++++++ components/MemberCard.vue | 30 +- components/ViewMemberDialog.vue | 9 + pages/dashboard/board.vue | 38 ++- pages/dashboard/member-list.vue | 5 +- .../api/members/[id]/mark-dues-paid.post.ts | 52 ++++ server/api/members/dues-status.get.ts | 75 +++++ 8 files changed, 669 insertions(+), 17 deletions(-) create mode 100644 components/BoardDuesManagement.vue create mode 100644 components/DuesActionCard.vue create mode 100644 server/api/members/[id]/mark-dues-paid.post.ts create mode 100644 server/api/members/dues-status.get.ts diff --git a/components/BoardDuesManagement.vue b/components/BoardDuesManagement.vue new file mode 100644 index 0000000..25eb6d0 --- /dev/null +++ b/components/BoardDuesManagement.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/components/DuesActionCard.vue b/components/DuesActionCard.vue new file mode 100644 index 0000000..27eb8de --- /dev/null +++ b/components/DuesActionCard.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/components/MemberCard.vue b/components/MemberCard.vue index 4b384cf..408c38c 100644 --- a/components/MemberCard.vue +++ b/components/MemberCard.vue @@ -20,7 +20,7 @@ -
+
mdi-delete + + + + mdi-account-plus +
@@ -170,20 +184,6 @@ mdi-account-off No Portal Account - - - - mdi-account-plus - Create Portal Account -
diff --git a/components/ViewMemberDialog.vue b/components/ViewMemberDialog.vue index fdc6379..e235c34 100644 --- a/components/ViewMemberDialog.vue +++ b/components/ViewMemberDialog.vue @@ -181,6 +181,14 @@ > Close + + mdi-pencil + Edit + @@ -197,6 +205,7 @@ interface Props { interface Emits { (e: 'update:model-value', value: boolean): void; + (e: 'edit', member: Member): void; } const props = withDefaults(defineProps(), { diff --git a/pages/dashboard/board.vue b/pages/dashboard/board.vue index 1f5da4c..3b8df60 100644 --- a/pages/dashboard/board.vue +++ b/pages/dashboard/board.vue @@ -144,6 +144,18 @@ + + + + + + + @@ -224,6 +236,8 @@