diff --git a/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue b/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue index 2f4e7d58..04925e77 100644 --- a/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue +++ b/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue @@ -12,7 +12,7 @@ import ListPageLayout from '@/shared/components/ListPageLayout.vue' import LoadErrorState from '@/shared/components/LoadErrorState.vue' import OperationErrorToast from '@/shared/components/OperationErrorToast.vue' import QueryToolbar, { type QueryField, type QueryModel } from '@/shared/components/QueryToolbar.vue' -import { convertLastMileOrderToInboundPlan, listLastMileOrders, setLastMileOrderDetained, setLastMileOrderPalletMergeRequired, transferLastMileOrders } from '../api/lastMileOrders' +import { convertLastMileOrderToInboundPlan, listLastMileOrders, setLastMileOrderDetained, transferLastMileOrders } from '../api/lastMileOrders' import { useAccessPreviewStore } from '@/core/access/accessPreview' import { overseasWarehousePermissions as permission } from '../permissions' import { toLastMileOrderListItem } from '../lastMilePresentation' @@ -27,7 +27,6 @@ const page = ref(1) const pageSize = ref(10) const total = ref(0) const selectedRows = ref([]) -const cancellableMergeCount = computed(() => selectedRows.value.filter((row) => row.palletMergeFlag === 'REQUIRED').length) const actionLoading = ref(false) const actionError = ref(null) const transferOpen = ref(false) @@ -65,8 +64,6 @@ const columns: DataTableColumn[] = [ { key: 'actions', label: '操作', width: 270, fixed: 'left', slotName: 'actions' }, { key: 'selection', type: 'selection', width: 48, fixed: 'left' }, { key: 'orderNo', prop: 'orderNo', label: '尾程单号', minWidth: 170 }, - { key: 'consolidated', prop: 'consolidated', label: '合托标记', width: 100, hideable: false }, - { key: 'palletMergeRelation', prop: 'palletMergeRelation', label: '合托关联订单', minWidth: 180, hideable: false }, { key: 'warning', prop: 'warning', label: '预警', width: 90 }, { key: 'orderType', prop: 'orderType', label: '订单类型', minWidth: 110 }, { key: 'rejectedAt', prop: 'rejectedAt', label: '拒收时间', minWidth: 150 }, @@ -163,57 +160,6 @@ async function submitDetained() { } catch (error) { actionError.value = getApiErrorDetails(error, target.detained ? '解除暂扣失败,请重试' : '暂扣失败,请重试') } finally { actionLoading.value = false } } -async function togglePalletMerge(row: LastMileOrderListItem) { - const required = row.palletMergeFlag !== 'REQUIRED' - try { - await ElMessageBox.confirm( - required ? `标记后,PDA扫描入仓码 ${row.inboundCode} 的箱唛时会显示合托提示。` : '确认取消该订单的PDA合托提示?', - required ? '合托标记' : '取消合托标记', - { type: 'warning', confirmButtonText: required ? '确认标记' : '确认取消', cancelButtonText: '返回' }, - ) - } catch { return } - actionLoading.value = true; actionError.value = null - try { - await setLastMileOrderPalletMergeRequired(row.id, { palletMergeRequired: required }) - ElMessage.success(required ? '已标记合托,PDA扫描箱唛时将显示提示' : '已取消合托标记') - await load() - } catch (error) { actionError.value = getApiErrorDetails(error, required ? '合托标记失败,请重试' : '取消合托标记失败,请重试') } - finally { actionLoading.value = false } -} -async function batchPalletMerge() { - const targets = selectedRows.value.filter((row) => row.palletMergeFlag !== 'MERGED') - if (!targets.length) { ElMessage.warning('请选择至少 1 条未完成合托的尾程订单'); return } - try { - await ElMessageBox.confirm( - `确定为选中的 ${targets.length} 条尾程订单标记合托吗?PDA扫描对应箱唛时将显示合托提示。`, - '批量合托标记', - { type: 'warning', confirmButtonText: '确认标记', cancelButtonText: '返回' }, - ) - } catch { return } - actionLoading.value = true; actionError.value = null - try { - await Promise.all(targets.map((row) => setLastMileOrderPalletMergeRequired(row.id, { palletMergeRequired: true }))) - selectedRows.value = [] - ElMessage.success(`已标记 ${targets.length} 条订单合托`) - await load() - } catch (error) { actionError.value = getApiErrorDetails(error, '批量合托标记失败,请重试') } - finally { actionLoading.value = false } -} -async function cancelBatchPalletMerge() { - const targets = selectedRows.value.filter((row) => row.palletMergeFlag === 'REQUIRED') - if (!targets.length) { ElMessage.warning('请选择至少 1 条待合托订单'); return } - try { - await ElMessageBox.confirm(`确定取消选中的 ${targets.length} 条订单合托标记吗?`, '取消合托标记', { type: 'warning', confirmButtonText: '确认取消', cancelButtonText: '返回' }) - } catch { return } - actionLoading.value = true; actionError.value = null - try { - await Promise.all(targets.map((row) => setLastMileOrderPalletMergeRequired(row.id, { palletMergeRequired: false }))) - selectedRows.value = [] - ElMessage.success(`已取消 ${targets.length} 条订单合托标记`) - await load() - } catch (error) { actionError.value = getApiErrorDetails(error, '取消合托标记失败,请重试') } - finally { actionLoading.value = false } -} async function submitTransfer() { if (!transferForm.warehouseId.trim() || !transferForm.warehouseCode.trim() || !transferForm.warehouseName.trim()) { ElMessage.warning('请填写目的仓 ID、代码和名称') @@ -261,7 +207,7 @@ onMounted(() => { void load() })
- +
diff --git a/src/modules/overseas-warehouse/pages/prototypeContract.test.ts b/src/modules/overseas-warehouse/pages/prototypeContract.test.ts index 684e896c..db720f1d 100644 --- a/src/modules/overseas-warehouse/pages/prototypeContract.test.ts +++ b/src/modules/overseas-warehouse/pages/prototypeContract.test.ts @@ -330,7 +330,7 @@ describe('overseas warehouse first-batch prototype contract', () => { 'actions', 'selection', 'orderNo', 'warning', 'orderType', 'rejectedAt', 'inboundCode', 'owner', 'warehouse', 'transferWarehouse', 'fbaWarehouse', 'containerNo', 'abnormal', 'held', 'pallets', 'cartons', 'volume', 'quantity', 'volumeWeight', 'portEta', 'portAta', 'warehouseEta', 'inboundOrderNo', - 'outboundOrderNo', 'dispatchOrderNo', 'relabelOrderNo', 'relabelStatus', 'consolidated', 'status', + 'outboundOrderNo', 'dispatchOrderNo', 'relabelOrderNo', 'relabelStatus', 'status', 'createdAt', 'internalRemark', 'customerRemark', 'warehouseRemark', ]) expect(columnKeys('InboundOrdersView.vue')).toEqual([