feat(M08-D): 补门店与房间管理

This commit is contained in:
Codex
2026-08-10 11:40:09 +08:00
parent 04afce4417
commit 1ca783e91b
9 changed files with 1017 additions and 14 deletions
+40
View File
@@ -10,7 +10,9 @@ for (const pattern of [
'OperationsOverviewPanel',
"activeModule = 'overview'",
"activeModule = 'cleaning'",
"activeModule = 'stores'",
'平台运营总览',
'StoresRoomsPanel',
'运营总览',
'savedToken',
'loadCleaningWorkspace'
@@ -47,6 +49,36 @@ for (const pattern of [
const api = read('admin/src/api.ts');
assert.match(api, /request<ManagedStore\[]>\(session, '\/stores'\)/);
assert.match(api, /request<BusinessStatistics>\(session, `\/statistics\?\$\{params\}`\)/);
for (const pattern of [
'createManagedStore',
'updateManagedStore',
'archiveManagedStore',
'listManagedRooms',
'createManagedRoom',
'updateManagedRoom',
'updateManagedRoomStatus',
'addManagedRoomDisabledPeriod'
]) {
assert.match(api, new RegExp(pattern));
}
const stores = read('admin/src/components/StoresRoomsPanel.vue');
for (const pattern of [
'门店与房间管理',
'搜索门店、城市或地址',
'每周营业时间',
'wifiPassword',
'listManagedStores',
'listManagedRooms',
'updateManagedRoomStatus',
'新增房间',
'停用时段',
'configurationStatus',
'operationalStatus',
'archiveManagedRoom'
]) {
assert.match(stores, new RegExp(pattern));
}
const routes = read('backend/src/routes/business-statistics.ts');
assert.match(routes, /'\/app-api\/management\/statistics', '\/admin-api\/statistics'/);
@@ -54,6 +86,11 @@ assert.match(routes, /'\/app-api\/management\/statistics', '\/admin-api\/statist
const routeTest = read('backend/tests/business-statistics.test.mjs');
assert.match(routeTest, /url: '\/admin-api\/statistics\?/);
const storeRepository = read('backend/src/stores/store-room-repository.ts');
assert.match(storeRepository, /wifi_password = COALESCE\(\?, wifi_password\)/);
assert.match(storeRepository, /FROM qipai_store_business_hours/);
assert.match(storeRepository, /wifiConfigured/);
const styles = read('admin/src/styles.css');
for (const pattern of [
'.overview-page',
@@ -62,6 +99,9 @@ for (const pattern of [
'.overview-grid',
'.revenue-bars',
'.module-grid',
'.store-layout',
'.store-card',
'.hours-editor',
'@media (max-width: 980px)',
'@media (max-width: 560px)'
]) {