feat(M08-C): 补保洁与设备运营

This commit is contained in:
Codex
2026-08-10 10:52:06 +08:00
parent a95e8bf8c8
commit 65932a8000
17 changed files with 815 additions and 104 deletions
+38
View File
@@ -7,6 +7,7 @@ const read = (path) => readFileSync(join(root, path), 'utf8');
const appJson = JSON.parse(read('miniapp/app.json'));
assert.ok(appJson.pages.includes('pages/manager/dashboard'));
assert.ok(appJson.pages.includes('pages/manager/operations'));
assert.ok(appJson.pages.includes('pages/manager/people'));
assert.ok(appJson.pages.includes('pages/manager/order-create'));
@@ -38,7 +39,9 @@ for (const pattern of [
'store.operation.write',
'tenant.manage',
'canReadUsers',
'canReadOperations',
'openPeople',
'openOperations',
'changeRoomStatus',
'toggleRoomConfiguration',
'activeOrders',
@@ -119,6 +122,41 @@ const mysqlPaginationRepositories = peopleRoutes
assert.doesNotMatch(mysqlPaginationRepositories, /LIMIT \? OFFSET \?/);
assert.match(mysqlPaginationRepositories, /Math\.trunc/);
const operations = read('miniapp/pages/manager/operations.js')
+ read('miniapp/pages/manager/operations.wxml')
+ read('miniapp/pages/manager/operations.wxss');
for (const pattern of [
'/management/cleaning/tasks?page=1&pageSize=50&storeId=${storeId}',
'/management/cleaning/statistics?storeId=${storeId}',
'/management/device-topology?storeId=${storeId}',
'/management/device-control/door',
'/management/device-control/power',
'/management/device-control/socket/switch',
'cleaning.task.write',
'device.write',
'验收通过',
'驳回补做',
'免清洁',
'临时开门',
'全屋断电'
]) {
assert.match(operations, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
}
const operationRoutes = read('backend/src/routes/cleaning.ts')
+ read('backend/src/routes/devices.ts')
+ read('backend/src/routes/device-control.ts');
for (const pattern of [
'/app-api/management/cleaning/tasks',
'/app-api/management/cleaning/statistics',
'/app-api/management/devices',
'/app-api/management/device-topology',
'/app-api/management/device-control${suffix}'
]) {
assert.match(operationRoutes, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
}
assert.match(read('backend/src/devices/device-control-service.ts'), /DEVICE_COMMAND_REQUESTED/);
const routes = read('backend/src/routes/store-room-management.ts');
for (const pattern of [
'/app-api/management/stores',