diff --git a/src/api/generate.ts b/src/api/generate.ts index 1c465cb..3aca8c0 100644 --- a/src/api/generate.ts +++ b/src/api/generate.ts @@ -79,6 +79,10 @@ export function generateMoveBatch(data: MoveReq[]) { return request.post }>(`${BASE}/moveBatch`, data) } +export function generateMoveBatchNew(data: MoveReq[]) { + return request.post }>(`${BASE}/moveBatchNew`, data) +} + export function generateRelease(data: ReleaseReq) { return request.post(`${BASE}/release`, data) } diff --git a/src/views/generate/TaskGenerateView.vue b/src/views/generate/TaskGenerateView.vue index f0e3eee..f04b195 100644 --- a/src/views/generate/TaskGenerateView.vue +++ b/src/views/generate/TaskGenerateView.vue @@ -195,6 +195,28 @@ + +
+ + + + + + + + + + + + + + + + 提交批量移库(新模版) + + +
+
@@ -294,6 +316,7 @@ import { generateCancel, generateInbound, generateMoveBatch, + generateMoveBatchNew, generateOutboundNoWait, generateOutboundNoWaitNew, generateOutboundWait, @@ -327,6 +350,7 @@ const taskTypeNavItems: { key: string; label: string }[] = [ { key: 'outboundNoWait', label: '出库(不等待)' }, { key: 'outboundNoWaitNew', label: '直出模式(新模版)' }, { key: 'move', label: '移库' }, + { key: 'moveNew', label: '批量移库(新模版)' }, { key: 'release', label: '释放信号' }, { key: 'bindStation', label: '绑定站点' }, { key: 'releaseStation', label: '解绑站点' }, @@ -382,6 +406,10 @@ const moveForm = reactive({ warehouse: '', containerBatch: '', targetType: undefined as string | undefined, targetCode: '', targetLevel: undefined as number | undefined, businessNo: '', priority: undefined as number | undefined, }) +const moveNewForm = reactive({ + warehouse: '', containerBatch: '', + targetType: undefined as string | undefined, targetCode: '', targetLevel: undefined as number | undefined, businessNo: '', priority: undefined as number | undefined, +}) const releaseForm = reactive({ warehouse: '', container: '', taskChainCode: '' }) const bindForm = reactive({ warehouse: '', container: '', station: '' }) @@ -485,6 +513,35 @@ async function handleMoveBatch() { } } +async function handleMoveBatchNew() { + if (!moveNewForm.warehouse) { + return ElMessage.warning('请填写仓库编码') + } + const containers = parseContainerBatch(moveNewForm.containerBatch) + if (containers.length === 0) { + return ElMessage.warning('请填写至少一个容器编码') + } + const list: MoveReq[] = containers.map(container => ({ + warehouse: moveNewForm.warehouse, + container, + targetType: moveNewForm.targetType, + targetCode: moveNewForm.targetCode, + targetLevel: moveNewForm.targetLevel, + businessNo: moveNewForm.businessNo, + priority: moveNewForm.priority, + })) + loading.value = true + try { + const res = await generateMoveBatchNew(list) + showResult('批量移库(新模版)任务链已创建', 'success', res.data) + ElMessage.success(`已创建 ${containers.length} 条批量移库(新模版)任务链`) + } catch (e) { + showResult('批量移库(新模版)失败', 'error', e) + } finally { + loading.value = false + } +} + async function handleRelease() { if (!releaseForm.taskChainCode || !releaseForm.warehouse) { return ElMessage.warning('请填写任务链编号和仓库编码') @@ -849,7 +906,8 @@ async function handleBusinessCancel() { } .gen-type-nav { - max-height: 240px; + /* 条目较多时需留出可视高度,避免「移库」以下选项被裁切误以为未上线 */ + max-height: min(58vh, 440px); flex-direction: row; flex-wrap: wrap; gap: 8px; diff --git a/src/views/task/TaskChainDetail.vue b/src/views/task/TaskChainDetail.vue index dcea428..cb7ecf6 100644 --- a/src/views/task/TaskChainDetail.vue +++ b/src/views/task/TaskChainDetail.vue @@ -620,7 +620,7 @@ async function handleForceStatus(task: TaskVO, targetStatus: string) { const typeMap: Record = { INBOUND: '入库', QUICK_PALLET_INBOUND: '托盘快速入库', OUTBOUND: '出库', OUTBOUND_NEW: '拣货出库(新模版)', - OUTBOUND_NO_WAIT: '出库(不等待)', OUTBOUND_NO_WAIT_NEW: '直出模式(新模版)', MOVE: '移库', + OUTBOUND_NO_WAIT: '出库(不等待)', OUTBOUND_NO_WAIT_NEW: '直出模式(新模版)', MOVE: '移库', MOVE_NEW: '移库(新模版)', } function timelineType(status: string) { const map: Record = {