| | |
| | | <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" |
| | |
| | | <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' |
| | |
| | | |
| | | const userStore = useUserStore() |
| | | const router = useRouter() |
| | | const { t } = useI18n() |
| | | const reportTitle = ASN_ORDER_REPORT_TITLE |
| | | const searchForm = ref(createAsnOrderSearchState()) |
| | | const selectedRows = ref([]) |
| | |
| | | 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: { |
| | |
| | | } |
| | | }, |
| | | { |
| | | 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') |
| | | } |
| | | } |
| | | ]) |
| | |
| | | } |
| | | |
| | | 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() |
| | |
| | | if (error === 'cancel' || error?.message === 'cancel') { |
| | | return |
| | | } |
| | | ElMessage.error(error?.message || '入库通知单操作失败') |
| | | ElMessage.error(error?.message || t('pages.orders.asnOrder.detail.actionFailed')) |
| | | } |
| | | } |
| | | |
| | |
| | | size: detailPagination.size |
| | | }, |
| | | { |
| | | timeoutMessage: '入库通知单明细加载超时,已停止等待' |
| | | timeoutMessage: t('pages.orders.asnOrder.detail.itemsTimeout') |
| | | } |
| | | ) |
| | | |