实现V4 Rooming List轻量事项卡

This commit is contained in:
andy
2026-07-21 17:21:01 +07:00
parent 61380a9ed8
commit 0c4f5e298d
7 changed files with 380 additions and 6 deletions

View File

@@ -89,6 +89,8 @@
:hotel-id="detail.order_task.hotel_id"
:order-task-id="detail.order_task.order_task_id"
:source-message-id="detail.order_task.source_message_id"
:order-reference="displayOrderReference"
:target-locator="targetLocator"
:action-errors="cardActionErrors[detail.basic_information_card.card_id] ?? []"
:success-message="cardSuccessMessages[detail.basic_information_card.card_id] ?? ''"
:review-form="reviewForms[detail.basic_information_card.card_id]"
@@ -96,6 +98,7 @@
:can-confirm="canConfirmCard(detail.basic_information_card)"
:can-review="canReviewCard(detail.basic_information_card)"
:bound-order-id="detail.bound_order?.order_id"
:bound-order-display-name="detail.bound_order?.display_name"
@update:model-value="setCardValues(detail.basic_information_card, $event)"
@update:review-form="setReviewForm(detail.basic_information_card.card_id, $event)"
@confirm="submitConfirm(detail.basic_information_card)"
@@ -132,6 +135,8 @@
:hotel-id="detail.order_task.hotel_id"
:order-task-id="detail.order_task.order_task_id"
:source-message-id="detail.order_task.source_message_id"
:order-reference="displayOrderReference"
:target-locator="targetLocator"
:action-errors="cardActionErrors[businessCard.card_id] ?? []"
:success-message="cardSuccessMessages[businessCard.card_id] ?? ''"
:review-form="reviewForms[businessCard.card_id]"
@@ -139,6 +144,7 @@
:can-confirm="canConfirmCard(businessCard)"
:can-review="canReviewCard(businessCard)"
:bound-order-id="detail.bound_order?.order_id"
:bound-order-display-name="detail.bound_order?.display_name"
@update:model-value="setCardValues(businessCard, $event)"
@update:review-form="setReviewForm(businessCard.card_id, $event)"
@confirm="submitConfirm(businessCard)"
@@ -459,7 +465,7 @@ function editableFieldKeys(card: ReservationV4TaskCardResult): string[] {
}
function submissionFieldsForCard(card: ReservationV4TaskCardResult): ReservationV4TaskCardResult['fields'] {
if (isPaymentCard(card)) {
if (isVersionOnlyConfirmCard(card)) {
return []
}
return card.card_type === 'ROOM_INFORMATION'
@@ -473,7 +479,7 @@ function buildConfirmRequest(
card: ReservationV4TaskCardResult,
submissionFields: ReservationV4TaskCardResult['fields'],
): ReservationV4CardConfirmRequest {
if (isPaymentCard(card)) {
if (isVersionOnlyConfirmCard(card)) {
return {
version: card.version,
}
@@ -488,6 +494,14 @@ function isPaymentCard(card: ReservationV4TaskCardResult): boolean {
return card.card_type === 'PAYMENT'
}
function isRoomingListCard(card: ReservationV4TaskCardResult): boolean {
return card.card_type === 'ROOMING_LIST'
}
function isVersionOnlyConfirmCard(card: ReservationV4TaskCardResult): boolean {
return isPaymentCard(card) || isRoomingListCard(card)
}
function isGroupRoomInformationBreakfastField(
card: ReservationV4TaskCardResult,
field: ReservationV4TaskCardResult['fields'][number],
@@ -521,6 +535,9 @@ function applyCardActionError(card: ReservationV4TaskCardResult, error: unknown,
}
function cardTitle(card: ReservationV4TaskCardResult): string {
if (isRoomingListCard(card)) {
return t('taskV4.roomingList.title')
}
return formatReservationTaskCard(t, card.card_type)
}