1
2026-04-25 af8f6fb713ec7991d259424399963ec84ea3b288
rsf-design/src/views/orders/wave/modules/wave-detail-drawer.vue
@@ -1,39 +1,73 @@
<template>
  <ElDrawer
    :model-value="visible"
    title="波次单详情"
    :title="t('pages.orders.wave.detail.title')"
    size="88%"
    @update:model-value="handleVisibleChange"
  >
    <ElScrollbar class="wave-detail-scroll">
      <div class="flex min-h-full flex-col gap-4 pr-2">
        <ElDescriptions :column="4" border>
          <ElDescriptionsItem label="波次单号">{{ detail.code || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="波次类型">{{ detail.typeLabel || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="波次状态">{{ detail.exceStatusText || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="状态">
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.code')">{{
            detail.code || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.type')">{{
            detail.typeLabel || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.exceStatus')">{{
            detail.exceStatusText || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.status')">
            <ElTag :type="Number(detail.status) === 1 ? 'success' : 'danger'" effect="light">
              {{ detail.statusLabel || '--' }}
            </ElTag>
          </ElDescriptionsItem>
          <ElDescriptionsItem label="应盘数量">{{ detail.anfme ?? '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="执行数量">{{ detail.workQty ?? '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="已盘数量">{{ detail.qty ?? '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="单据数量">{{ detail.orderNum ?? '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="品类数量">{{ detail.groupQty ?? '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="目标位置">{{ detail.targSite || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="指定站点">{{ detail.stationId || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="指定库位">{{ detail.locCode || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="创建人">{{ detail.createByText || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="创建时间">{{ detail.createTimeText || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="更新人">{{ detail.updateByText || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="更新时间">{{ detail.updateTimeText || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem label="备注" :span="4">{{ detail.memo || '--' }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.anfme')">{{
            detail.anfme ?? '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.workQty')">{{
            detail.workQty ?? '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.qty')">{{
            detail.qty ?? '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.orderNum')">{{
            detail.orderNum ?? '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.groupQty')">{{
            detail.groupQty ?? '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.targSite')">{{
            detail.targSite || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.stationId')">{{
            detail.stationId || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.locCode')">{{
            detail.locCode || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.createBy')">{{
            detail.createByText || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.createTime')">{{
            detail.createTimeText || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.updateBy')">{{
            detail.updateByText || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.updateTime')">{{
            detail.updateTimeText || '--'
          }}</ElDescriptionsItem>
          <ElDescriptionsItem :label="t('pages.orders.wave.detail.memo')" :span="4">{{
            detail.memo || '--'
          }}</ElDescriptionsItem>
        </ElDescriptions>
        <ElCard shadow="never" class="border border-[var(--art-border-color)]">
          <template #header>
            <div class="text-sm font-medium text-[var(--art-text-gray-800)]">波次预览明细 - 物料编码</div>
            <div class="text-sm font-medium text-[var(--art-text-gray-800)]">{{
              t('pages.orders.wave.detail.previewTitle')
            }}</div>
          </template>
          <ArtTable
            :loading="loading"
@@ -44,13 +78,26 @@
            @pagination:current-change="$emit('current-change', $event)"
          />
        </ElCard>
        <ElCard shadow="never" class="border border-[var(--art-border-color)]">
          <template #header>
            <div class="text-sm font-medium text-[var(--art-text-gray-800)]">
              {{ t('pages.orders.wave.detail.itemTitle') }}
            </div>
          </template>
          <WaveItemPanel :wave-id="detail.id" />
        </ElCard>
      </div>
    </ElScrollbar>
  </ElDrawer>
</template>
<script setup>
  import { useI18n } from 'vue-i18n'
  import WaveItemPanel from './wave-item-panel.vue'
  defineOptions({ name: 'WaveDetailDrawer' })
  const { t } = useI18n()
  defineProps({
    visible: { type: Boolean, default: false },