From cae169cefdf8e99f7b9722411af7d2b8253c02f0 Mon Sep 17 00:00:00 2001 From: andy Date: Sun, 19 Jul 2026 13:48:07 +0700 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5M002V4=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=9A=E5=8D=A1=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/ReservationStatusBadge.vue | 6 +- .../ReservationV4SourceMessageCard.vue | 339 +++++++ .../ReservationV4TaskCardFieldRenderer.vue | 269 ++++++ client/src/i18n/locales/en-US.ts | 95 ++ client/src/i18n/locales/th-TH.ts | 95 ++ client/src/i18n/locales/zh-CN.ts | 95 ++ client/src/router/index.ts | 20 +- client/src/services/reservationService.ts | 80 ++ client/src/tests/reservationService.spec.ts | 165 ++++ .../src/tests/reservationV4FieldRules.spec.ts | 191 ++++ client/src/tests/reservationV4Views.spec.ts | 466 ++++++++++ client/src/tests/reservationViews.spec.ts | 430 +++++---- client/src/types/reservation.ts | 222 +++++ client/src/utils/reservationV4FieldRules.ts | 397 ++++++++ .../reservation/ReservationTaskListView.vue | 301 +++--- .../ReservationV4OrderTaskDetailView.vue | 862 ++++++++++++++++++ ...ervationV4SourceNotificationDetailView.vue | 376 ++++++++ docs/project/frontend-backend/README.md | 1 + .../backend-to-frontend-notes.md | 17 +- 19 files changed, 4084 insertions(+), 343 deletions(-) create mode 100644 client/src/components/reservation/ReservationV4SourceMessageCard.vue create mode 100644 client/src/components/reservation/ReservationV4TaskCardFieldRenderer.vue create mode 100644 client/src/tests/reservationV4FieldRules.spec.ts create mode 100644 client/src/tests/reservationV4Views.spec.ts create mode 100644 client/src/utils/reservationV4FieldRules.ts create mode 100644 client/src/views/reservation/ReservationV4OrderTaskDetailView.vue create mode 100644 client/src/views/reservation/ReservationV4SourceNotificationDetailView.vue diff --git a/client/src/components/reservation/ReservationStatusBadge.vue b/client/src/components/reservation/ReservationStatusBadge.vue index c707be3..81e5b27 100644 --- a/client/src/components/reservation/ReservationStatusBadge.vue +++ b/client/src/components/reservation/ReservationStatusBadge.vue @@ -18,16 +18,16 @@ const props = defineProps<{ const { t } = useI18n() const tone = computed(() => { - if (['ACTIVE', 'COMPLETED', 'SUCCEEDED'].includes(props.status)) { + if (['ACTIVE', 'COMPLETED', 'SUCCEEDED', 'CONFIRMED', 'ACKED'].includes(props.status)) { return 'success' } - if (['PENDING_CONFIRM', 'READY', 'PENDING', 'TEMPORARY', 'EXECUTING'].includes(props.status)) { + if (['PENDING_CONFIRM', 'READY', 'PENDING', 'TEMPORARY', 'EXECUTING', 'OPEN', 'ACK_REQUIRED'].includes(props.status)) { return 'info' } if (['BLOCKED', 'FAILED'].includes(props.status)) { return 'danger' } - if (['ENDED', 'LOGIC_DELETED', 'SKIPPED'].includes(props.status)) { + if (['ENDED', 'LOGIC_DELETED', 'SKIPPED', 'READONLY'].includes(props.status)) { return 'neutral' } return 'warning' diff --git a/client/src/components/reservation/ReservationV4SourceMessageCard.vue b/client/src/components/reservation/ReservationV4SourceMessageCard.vue new file mode 100644 index 0000000..9c2bc4e --- /dev/null +++ b/client/src/components/reservation/ReservationV4SourceMessageCard.vue @@ -0,0 +1,339 @@ + + + + + diff --git a/client/src/components/reservation/ReservationV4TaskCardFieldRenderer.vue b/client/src/components/reservation/ReservationV4TaskCardFieldRenderer.vue new file mode 100644 index 0000000..91e6584 --- /dev/null +++ b/client/src/components/reservation/ReservationV4TaskCardFieldRenderer.vue @@ -0,0 +1,269 @@ +