zhou zhou
2026-04-02 7c2bffa1a495cc4a3a263f654c08c231009c5c4e
rsf-design/src/views/orders/asn-order/index.vue
@@ -12,7 +12,7 @@
      <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
        <template #left>
          <ElSpace wrap>
            <ElButton type="primary" @click="poDialogVisible = true">按PO建单</ElButton>
            <ElButton type="primary" @click="poDialogVisible = true">{{ t('pages.orders.asnOrder.buttons.createByPo') }}</ElButton>
            <ListExportPrint
              :preview-visible="previewVisible"
              @update:previewVisible="handlePreviewVisibleChange"
@@ -61,6 +61,7 @@
<script setup>
  import { computed, reactive, ref } from 'vue'
  import { useRouter } from 'vue-router'
  import { useI18n } from 'vue-i18n'
  import { ElMessage, ElMessageBox } from 'element-plus'
  import { useUserStore } from '@/store/modules/user'
  import { useTable } from '@/hooks/core/useTable'
@@ -99,6 +100,7 @@
  const userStore = useUserStore()
  const router = useRouter()
  const { t } = useI18n()
  const reportTitle = ASN_ORDER_REPORT_TITLE
  const searchForm = ref(createAsnOrderSearchState())
  const selectedRows = ref([])
@@ -120,43 +122,43 @@
  const detailColumns = computed(() => createAsnOrderDetailItemColumns())
  const searchItems = computed(() => [
    {
      label: '关键字',
      label: t('pages.orders.asnOrder.search.condition'),
      key: 'condition',
      type: 'input',
      props: {
        clearable: true,
        placeholder: '请输入 ASN 单号/PO 单号/供应商'
        placeholder: t('pages.orders.asnOrder.placeholder.condition')
      }
    },
    {
      label: 'ASN单号',
      label: t('pages.orders.asnOrder.search.code'),
      key: 'code',
      type: 'input',
      props: {
        clearable: true,
        placeholder: '请输入 ASN 单号'
        placeholder: t('pages.orders.asnOrder.placeholder.code')
      }
    },
    {
      label: 'PO单号',
      label: t('pages.orders.asnOrder.search.poCode'),
      key: 'poCode',
      type: 'input',
      props: {
        clearable: true,
        placeholder: '请输入 PO 单号'
        placeholder: t('pages.orders.asnOrder.placeholder.poCode')
      }
    },
    {
      label: '业务类型',
      label: t('pages.orders.asnOrder.search.wkType'),
      key: 'wkType',
      type: 'input',
      props: {
        clearable: true,
        placeholder: '请输入业务类型'
        placeholder: t('pages.orders.asnOrder.placeholder.wkType')
      }
    },
    {
      label: '单据状态',
      label: t('pages.orders.asnOrder.search.exceStatus'),
      key: 'exceStatus',
      type: 'select',
      props: {
@@ -165,21 +167,21 @@
      }
    },
    {
      label: '供应商',
      label: t('pages.orders.asnOrder.search.supplierName'),
      key: 'supplierName',
      type: 'input',
      props: {
        clearable: true,
        placeholder: '请输入供应商'
        placeholder: t('pages.orders.asnOrder.placeholder.supplierName')
      }
    },
    {
      label: '采购员',
      label: t('pages.orders.asnOrder.search.purchaseUserName'),
      key: 'purchaseUserName',
      type: 'input',
      props: {
        clearable: true,
        placeholder: '请输入采购员'
        placeholder: t('pages.orders.asnOrder.placeholder.purchaseUserName')
      }
    }
  ])
@@ -220,13 +222,17 @@
      }
      if (action.key === 'complete') {
        await ElMessageBox.confirm(`确定完成入库通知单 ${row.code || ''} 吗?`, '完成确认', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
        await ElMessageBox.confirm(
          t('pages.orders.asnOrder.detail.completeConfirm', { code: row.code || '' }),
          t('pages.orders.asnOrder.detail.completeTitle'),
          {
            confirmButtonText: t('common.confirm'),
            cancelButtonText: t('common.cancel'),
            type: 'warning'
          }
        )
        await fetchCompleteAsnOrder(row.id)
        ElMessage.success('入库通知单已完成')
        ElMessage.success(t('pages.orders.asnOrder.detail.completeSuccess'))
        await refreshData()
        if (detailDrawerVisible.value && activeOrderId.value === row.id) {
          await loadDetailResources()
@@ -236,7 +242,7 @@
      if (error === 'cancel' || error?.message === 'cancel') {
        return
      }
      ElMessage.error(error?.message || '入库通知单操作失败')
      ElMessage.error(error?.message || t('pages.orders.asnOrder.detail.actionFailed'))
    }
  }
@@ -296,7 +302,7 @@
          size: detailPagination.size
        },
        {
          timeoutMessage: '入库通知单明细加载超时,已停止等待'
          timeoutMessage: t('pages.orders.asnOrder.detail.itemsTimeout')
        }
      )