feat(M08-D): 补会员与员工用户管理

This commit is contained in:
Codex
2026-08-10 12:19:24 +08:00
parent c71e130c5c
commit 93f06d2ed6
8 changed files with 313 additions and 3 deletions
+18 -1
View File
@@ -68,6 +68,15 @@
<TicketCheck :size="18" />
<span>团购平台</span>
</button>
<button
class="nav-item"
:class="{ active: activeModule === 'people' }"
type="button"
@click="activeModule = 'people'"
>
<UsersRound :size="18" />
<span>会员员工</span>
</button>
</nav>
</aside>
@@ -118,6 +127,11 @@
:session="session"
/>
<MembersStaffPanel
v-else-if="activeModule === 'people'"
:session="session"
/>
<template v-else>
<section class="metric-grid" aria-label="保洁概览">
<div class="metric">
@@ -289,6 +303,7 @@ import {
Sparkles,
Store,
TicketCheck,
UsersRound,
WalletCards
} from '@lucide/vue';
import CleaningTasksPanel from './components/CleaningTasksPanel.vue';
@@ -301,6 +316,7 @@ import StoresRoomsPanel from './components/StoresRoomsPanel.vue';
import OrdersPanel from './components/OrdersPanel.vue';
import PaymentsPanel from './components/PaymentsPanel.vue';
import ThirdPartyPanel from './components/ThirdPartyPanel.vue';
import MembersStaffPanel from './components/MembersStaffPanel.vue';
import {
ApiError,
assignCleaningTask,
@@ -337,7 +353,7 @@ import { money } from './format';
const savedToken = ref(localStorage.getItem('qipai.admin.token') || '');
const tokenDraft = ref(savedToken.value);
const activeModule = ref<'overview' | 'stores' | 'orders' | 'payments' | 'thirdParty' | 'cleaning'>('overview');
const activeModule = ref<'overview' | 'stores' | 'orders' | 'payments' | 'thirdParty' | 'people' | 'cleaning'>('overview');
const activeTab = ref('tasks');
const lastError = ref('');
const lastMessage = ref('');
@@ -352,6 +368,7 @@ const activeModuleMeta = computed(() => ({
orders: { stage: 'M08-D', title: '订单筛选与运营处置' },
payments: { stage: 'M08-D', title: '支付、退款与分账' },
thirdParty: { stage: 'M08-D', title: '团购与第三方平台运营' },
people: { stage: 'M08-D', title: '会员与员工用户管理' },
cleaning: { stage: 'M08-B', title: '保洁任务与结算' }
})[activeModule.value]);
const loading = reactive({ tasks: false, settlements: false, statistics: false, cleaners: false });