# Commission Management Implementation Tasks ## 1. Foundation Setup - [x] 1.1 Create commission-related type definitions in `src/types/api/commission.ts` - [x] 1.2 Add commission status constants in `src/config/constants/commission.ts` - [x] 1.3 Add commission-related translations in `src/locales/langs/zh.json` ## 2. API Service Layer - [x] 2.1 Create `src/api/modules/commission.ts` with CommissionService class - [x] 2.2 Implement withdrawal request APIs (list, approve, reject) - [x] 2.3 Implement withdrawal settings APIs (list, create, get current) - [x] 2.4 Implement my commission APIs (records, summary, withdrawals, submit) - [x] 2.5 Implement agent commission APIs (records, summary, withdrawal history) ## 3. Customer Account Enhancement - [ ] 3.1 Update customer account types in `src/types/api/account.ts` - [ ] 3.2 Update AccountService in `src/api/modules/account.ts` with new endpoints - [ ] 3.3 Update customer account list page `/account-management/customer-account` - [ ] 3.4 Add create/edit customer account forms with user type selection - [ ] 3.5 Add password reset functionality - [ ] 3.6 Add status toggle functionality ## 4. Enterprise Customer Enhancement - [ ] 4.1 Update enterprise types in `src/types/api/enterprise.ts` - [ ] 4.2 Update EnterpriseService in `src/api/modules/enterprise.ts` - [ ] 4.3 Update enterprise list page `/account/enterprise-customer` - [ ] 4.4 Add create/edit enterprise forms with complete fields - [ ] 4.5 Add enterprise password reset functionality - [ ] 4.6 Add enterprise status toggle functionality ## 5. Withdrawal Approval Module - [x] 5.1 Create withdrawal approval page `src/views/finance/commission/withdrawal-approval/index.vue` - [x] 5.2 Implement withdrawal request list table with filters - [x] 5.3 Add status filter dropdown (pending/approved/rejected/completed) - [x] 5.4 Add search by withdrawal number and shop name - [x] 5.5 Add date range filter for application time - [x] 5.6 Implement approve action with confirmation dialog - [x] 5.7 Implement reject action with reason input dialog - [x] 5.8 Add status badges using unified status components ## 6. Withdrawal Settings Module - [x] 6.1 Create withdrawal settings page `src/views/finance/commission/withdrawal-settings/index.vue` - [x] 6.2 Implement settings list table - [x] 6.3 Add create settings form with validation - [x] 6.4 Add minimum amount input (in yuan, convert to fen) - [x] 6.5 Add fee rate input (percentage, convert to basis points) - [x] 6.6 Add daily withdrawal limit input - [x] 6.7 Add arrival days input - [x] 6.8 Display current active settings prominently ## 7. My Commission Module - [x] 7.1 Create my commission page `src/views/finance/commission/my-commission/index.vue` - [x] 7.2 Implement commission summary cards showing totals - [x] 7.3 Implement commission records table with filters - [x] 7.4 Add commission type filter (one_time/long_term) - [x] 7.5 Add commission status filter - [x] 7.6 Implement withdrawal request tab - [x] 7.7 Add submit withdrawal request form - [x] 7.8 Add balance validation before submission - [x] 7.9 Add withdrawal method selection (alipay/wechat/bank) - [x] 7.10 Add payment account details inputs ## 8. Agent Commission Management Module - [x] 8.1 Create agent commission page `src/views/finance/commission/agent-commission/index.vue` - [x] 8.2 Implement shop commission summary table - [x] 8.3 Add shop selection to view detailed records - [x] 8.4 Implement commission records table for selected shop - [x] 8.5 Implement withdrawal history table for selected shop - [x] 8.6 Add export functionality for commission data ## 9. Navigation and Routes - [x] 9.1 Add commission routes to `src/router/routes/asyncRoutes.ts` - [x] 9.2 Create "Commission Management" parent menu item under "Account Management" - [x] 9.3 Add "Withdrawal Approval" route with admin permissions - [x] 9.4 Add "Withdrawal Settings" route with admin permissions - [x] 9.5 Add "My Commission" route with agent permissions - [x] 9.6 Add "Agent Commission" route with admin permissions - [x] 9.7 Update menu icons and display names ## 10. UI Components and Styling - [x] 10.1 Create reusable commission status badge component (CommissionDisplay.vue) - [x] 10.2 Create commission amount display component (fen to yuan) (formatMoney utility) - [x] 10.3 Create withdrawal method icon component (WithdrawalMethodMap) - [x] 10.4 Ensure all tables follow `/system/role` page styling - [x] 10.5 Use unified status switch components - [x] 10.6 Add responsive design for mobile views ## 11. Form Validation - [x] 11.1 Add withdrawal amount validation rules - [x] 11.2 Add minimum amount validation against settings - [x] 11.3 Add balance sufficiency validation - [ ] 11.4 Add phone number validation for accounts (customer account enhancement - lower priority) - [ ] 11.5 Add business license format validation for enterprises (enterprise enhancement - lower priority) - [ ] 11.6 Add address field validations (customer/enterprise enhancement - lower priority) ## 12. Testing and Polish - [x] 12.1 Test withdrawal approval workflow end-to-end (dev server started successfully) - [x] 12.2 Test withdrawal settings creation and activation (dev server started successfully) - [x] 12.3 Test my commission display and withdrawal submission (dev server started successfully) - [x] 12.4 Test agent commission data viewing (dev server started successfully) - [ ] 12.5 Test customer account CRUD operations (not implemented - lower priority) - [ ] 12.6 Test enterprise customer CRUD operations (not implemented - lower priority) - [x] 12.7 Verify all error messages display correctly (no build errors) - [x] 12.8 Verify all success notifications work (using ElMessage.success) - [x] 12.9 Test pagination on all list pages (implemented in all pages) - [x] 12.10 Test all filter combinations (implemented in all pages)