From a0cb3a05d7084d8da598a8ec92d918e8147ede64 Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 8 Jul 2026 23:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5=E5=89=8D=E7=AB=AF=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E6=8E=A5=E5=8F=A3=E5=B9=B6=E6=A0=87=E8=AE=B0=E9=82=AE?= =?UTF-8?q?=E4=BB=B6HTML=E6=B8=85=E6=B4=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++ .../ReservationTaskDetailPanel.vue | 65 ++- .../ReservationTaskFieldRenderer.vue | 27 +- .../reservation/ReservationTaskQueue.vue | 89 +++- client/src/config/reservationConfig.ts | 3 + client/src/i18n/locales/en-US.ts | 39 +- client/src/i18n/locales/zh-CN.ts | 39 +- client/src/layouts/ReservationAppShell.vue | 88 +++- client/src/services/reservationService.ts | 25 +- .../ReservationTaskFieldRenderer.spec.ts | 31 ++ .../src/tests/reservationFieldRules.spec.ts | 150 +++++++ client/src/tests/reservationService.spec.ts | 106 ++++- .../tests/reservationTaskDetailPanel.spec.ts | 159 +++++++- client/src/tests/reservationTaskQueue.spec.ts | 85 ++++ client/src/tests/reservationViews.spec.ts | 385 +++++++++++++++++- client/src/types/reservation.ts | 52 ++- client/src/utils/reservationFieldRules.ts | 202 ++++++++- .../ReservationOrderDetailView.vue | 73 +++- .../reservation/ReservationOrderListView.vue | 312 ++++++++++++-- ...servationSourceMessageConversationView.vue | 377 ++++++++++++++++- .../reservation/ReservationTaskListView.vue | 171 +++++++- docs/project/frontend-backend/README.md | 3 + .../backend-to-frontend-notes.md | 5 +- .../frontend-to-backend-api-requests.md | 17 +- .../frontend-development-guidelines.md | 206 ++++++++++ 25 files changed, 2581 insertions(+), 157 deletions(-) create mode 100644 client/src/config/reservationConfig.ts create mode 100644 client/src/tests/reservationFieldRules.spec.ts create mode 100644 client/src/tests/reservationTaskQueue.spec.ts diff --git a/README.md b/README.md index c9a7eee..8a42049 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,35 @@ cd server - `./mvnw verify`:运行 Maven verify 阶段,用于提交前完整检查。 - `./mvnw spring-boot:run`:本地启动后端服务,默认端口为 `8080`。 +## 前端命令 + +```bash +cd client +pnpm install +pnpm dev +pnpm typecheck +pnpm test +pnpm lint +pnpm build +``` + +中文说明: + +- `pnpm install`:安装前端依赖。 +- `pnpm dev`:启动本地 Vite 开发服务,默认地址为 `http://127.0.0.1:5174`。 +- `pnpm typecheck`:运行 Vue / TypeScript 类型检查。 +- `pnpm test`:运行前端单元测试。 +- `pnpm lint`:运行 ESLint 检查。 +- `pnpm build`:执行类型检查并构建生产产物。 + +本地联调指定后端和酒店上下文示例: + +```bash +VITE_API_PROXY_TARGET=http://127.0.0.1:8080 VITE_RESERVATION_HOTEL_ID=HOTEL-TEST pnpm --dir client dev +``` + +中文说明:`VITE_RESERVATION_HOTEL_ID` 是公开前端配置,不是 Secret,用于 Reservation 订单列表、任务列表和订单详情接口的默认 `hotel_id`。 + ### 测试数据库配置 默认 `test` profile 使用 H2 MySQL Mode,便于本地和 CI 在没有 MySQL 的情况下运行: diff --git a/client/src/components/reservation/ReservationTaskDetailPanel.vue b/client/src/components/reservation/ReservationTaskDetailPanel.vue index c440eb3..ac844ed 100644 --- a/client/src/components/reservation/ReservationTaskDetailPanel.vue +++ b/client/src/components/reservation/ReservationTaskDetailPanel.vue @@ -31,7 +31,7 @@ {{ t('task.viewOrder') }} {{ detail.order_id }} {{ t('task.viewConversation') }} · {{ t('common.endpointMissing') }} @@ -108,6 +108,7 @@ v-model="fieldValues" :fields="detail.fields" :read-only="detail.availability.read_only" + :validation-errors="validationErrorMessages" />