提交一次全量代码

This commit is contained in:
andy committed 2026-07-09 11:59:34 +08:00
1 parent 855396e553
commit 9fa608f602
58 files changed
+8439 -116

No files matched your search

@@ -17,9 +17,9 @@
>
<span class="audit-dot" />
<div>
<strong>{{ item.action }}</strong>
<strong>{{ formatReservationAuditAction(t, item.action) }}</strong>
<small>
{{ item.actor_type }} / {{ item.actor_id }} · {{ formatReservationDateTime(item.occurred_at) }}
{{ formatReservationActorType(t, item.actor_type) }} / {{ item.actor_id }} · {{ formatReservationDateTime(item.occurred_at) }}
</small>
<p v-if="item.reason">
{{ item.reason }}
@@ -34,6 +34,7 @@
import { useI18n } from 'vue-i18n'
import type { ReservationTaskAuditLogResult } from '@/types/reservation'
import { formatReservationActorType, formatReservationAuditAction } from '@/utils/reservationDisplay'
import { formatReservationDateTime } from '@/utils/reservationFormat'
defineProps<{
@@ -7,21 +7,21 @@
<dl>
<div>
<dt>ID</dt>
<dt>{{ t('task.sourceMessageId') }}</dt>
<dd class="th-code">
{{ sourceMessage.source_message_id }}
</dd>
</div>
<div>
<dt>Sender</dt>
<dt>{{ t('task.sourceSender') }}</dt>
<dd>{{ sourceMessage.sender_identifier }}</dd>
</div>
<div>
<dt>Subject</dt>
<dt>{{ t('task.sourceSubject') }}</dt>
<dd>{{ sourceMessage.thread_subject }}</dd>
</div>
<div>
<dt>Received</dt>
<dt>{{ t('task.sourceReceivedAt') }}</dt>
<dd>{{ formatReservationDateTime(sourceMessage.payload_received_at) }}</dd>
</div>
</dl>
@@ -39,7 +39,7 @@
<div class="operation-item__main">
<span class="operation-item__sequence">{{ operation.operation_sequence }}</span>
<div>
<strong>{{ operation.operation_name }}</strong>
<strong>{{ formatReservationOperaOperation(t, operation.operation_code, operation.operation_name) }}</strong>
<small class="th-code">{{ operation.operation_code }}</small>
</div>
</div>
@@ -91,6 +91,7 @@ import { useI18n } from 'vue-i18n'
import ReservationStatusBadge from '@/components/reservation/ReservationStatusBadge.vue'
import { executeReservationOperaOperation, retryReservationOperaOperation } from '@/services/reservationService'
import type { ReservationOperaOperationResult } from '@/types/reservation'
import { formatReservationOperaOperation } from '@/utils/reservationDisplay'
const props = defineProps<{
taskId: string
@@ -33,7 +33,7 @@ const tone = computed(() => {
return 'warning'
})
const label = computed(() => t(`status.${props.status}`, props.status))
const label = computed(() => t(`status.${props.status}`, t('common.unknownStatus')))
</script>
<style scoped>
@@ -4,7 +4,7 @@
v-if="loading"
class="task-state"
>
Loading...
{{ t('common.loading') }}
</div>
<div
v-else-if="errorMessage"
@@ -17,7 +17,7 @@
<header class="task-detail-header">
<div>
<p class="task-eyebrow">
{{ t(`cardType.${detail.task_card_type}`, detail.task_card_type) }}
{{ formatReservationTaskCard(t, detail.task_card_type) }}
</p>
<h1>{{ t('task.title') }} {{ detail.task_id }}</h1>
<span class="task-contract">
@@ -82,7 +82,7 @@
class="pi pi-lock"
aria-hidden="true"
/>
{{ detail.availability.blocked_reason ?? t('task.blocked') }}
{{ formatReservationMaybeStableReason(t, detail.availability.blocked_reason, 'task.blocked') }}
</div>
<div
@@ -180,6 +180,7 @@ import {
validateReservationFieldValues,
type ReservationFieldValidationErrors,
} from '@/utils/reservationFieldRules'
import { formatReservationMaybeStableReason, formatReservationTaskCard } from '@/utils/reservationDisplay'
import { formatReservationDateTime } from '@/utils/reservationFormat'
const props = defineProps<{
@@ -13,12 +13,12 @@
>
<span class="task-row__index">{{ task.queue_sequence ?? '-' }}</span>
<span class="task-row__main">
<strong>{{ task.card_name ?? task.task_type }}</strong>
<small>{{ task.task_type }} / {{ task.task_subtype ?? '-' }}</small>
<strong>{{ formatReservationTaskCard(t, task.task_type, task.card_name) }}</strong>
<small>{{ formatReservationTaskTypeSummary(t, task.task_type, task.task_subtype) }}</small>
<em :class="{ 'task-row__reason--blocked': !task.can_process }">
{{ task.can_process ? t('taskList.canProcess') : t('taskList.cannotProcess') }}
<template v-if="!task.can_process && task.readonly_reason_code">
· {{ task.readonly_reason_code }}
· {{ formatReservationReadonlyReason(t, task.readonly_reason_code) }}
</template>
</em>
</span>
@@ -49,6 +49,11 @@ import { useI18n } from 'vue-i18n'
import ReservationStatusBadge from '@/components/reservation/ReservationStatusBadge.vue'
import type { ReservationOrderTaskTimelineItem } from '@/types/reservation'
import {
formatReservationReadonlyReason,
formatReservationTaskCard,
formatReservationTaskTypeSummary,
} from '@/utils/reservationDisplay'
defineProps<{
items: ReservationOrderTaskTimelineItem[]