feat: 移库新模板
This commit is contained in:
parent
1b6de57cc4
commit
6838d454b0
|
|
@ -79,6 +79,10 @@ export function generateMoveBatch(data: MoveReq[]) {
|
||||||
return request.post<never, { code: number; data: Record<string, string> }>(`${BASE}/moveBatch`, data)
|
return request.post<never, { code: number; data: Record<string, string> }>(`${BASE}/moveBatch`, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function generateMoveBatchNew(data: MoveReq[]) {
|
||||||
|
return request.post<never, { code: number; data: Record<string, string> }>(`${BASE}/moveBatchNew`, data)
|
||||||
|
}
|
||||||
|
|
||||||
export function generateRelease(data: ReleaseReq) {
|
export function generateRelease(data: ReleaseReq) {
|
||||||
return request.post<never, { code: number; data: boolean }>(`${BASE}/release`, data)
|
return request.post<never, { code: number; data: boolean }>(`${BASE}/release`, data)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -195,6 +195,28 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 批量移库(新模版) -->
|
||||||
|
<div v-show="isPanel('moveNew')" class="gen-form-wrap">
|
||||||
|
<el-form :model="moveNewForm" :label-width="formLabelWidth" :label-position="labelPos" class="gen-form">
|
||||||
|
<el-row :gutter="gutter">
|
||||||
|
<el-col :span="colSpan"><el-form-item label="仓库编码" required><el-input v-model="moveNewForm.warehouse" /></el-form-item></el-col>
|
||||||
|
<el-col :span="colSpan"><el-form-item label="目标类型"><el-select v-model="moveNewForm.targetType" clearable placeholder="请选择" style="width: 100%"><el-option v-for="t in targetTypes" :key="t.value" :label="t.label" :value="t.value" /></el-select></el-form-item></el-col>
|
||||||
|
<el-col :span="colSpan"><el-form-item label="目标编码"><el-input v-model="moveNewForm.targetCode" /></el-form-item></el-col>
|
||||||
|
<el-col :span="colSpan"><el-form-item label="指定楼层"><el-input-number v-model="moveNewForm.targetLevel" :min="1" :max="6" :controls="false" clearable placeholder="选填" style="width: 100%" /></el-form-item></el-col>
|
||||||
|
<el-col :span="colSpan"><el-form-item label="业务追踪号"><el-input v-model="moveNewForm.businessNo" /></el-form-item></el-col>
|
||||||
|
<el-col :span="colSpan"><el-form-item label="优先级"><el-input-number v-model="moveNewForm.priority" :min="0" :controls="false" style="width: 100%" /></el-form-item></el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="容器编码" required>
|
||||||
|
<el-input v-model="moveNewForm.containerBatch" type="textarea" :rows="6" placeholder="支持批量输入,每行一个或使用逗号、空格分隔" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" :loading="loading" @click="handleMoveBatchNew" :style="isMobile ? 'width:100%' : ''">提交批量移库(新模版)</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 释放信号 -->
|
<!-- 释放信号 -->
|
||||||
<div v-show="isPanel('release')" class="gen-form-wrap">
|
<div v-show="isPanel('release')" class="gen-form-wrap">
|
||||||
<el-form :model="releaseForm" :label-width="formLabelWidth" :label-position="labelPos" class="gen-form">
|
<el-form :model="releaseForm" :label-width="formLabelWidth" :label-position="labelPos" class="gen-form">
|
||||||
|
|
@ -294,6 +316,7 @@ import {
|
||||||
generateCancel,
|
generateCancel,
|
||||||
generateInbound,
|
generateInbound,
|
||||||
generateMoveBatch,
|
generateMoveBatch,
|
||||||
|
generateMoveBatchNew,
|
||||||
generateOutboundNoWait,
|
generateOutboundNoWait,
|
||||||
generateOutboundNoWaitNew,
|
generateOutboundNoWaitNew,
|
||||||
generateOutboundWait,
|
generateOutboundWait,
|
||||||
|
|
@ -327,6 +350,7 @@ const taskTypeNavItems: { key: string; label: string }[] = [
|
||||||
{ key: 'outboundNoWait', label: '出库(不等待)' },
|
{ key: 'outboundNoWait', label: '出库(不等待)' },
|
||||||
{ key: 'outboundNoWaitNew', label: '直出模式(新模版)' },
|
{ key: 'outboundNoWaitNew', label: '直出模式(新模版)' },
|
||||||
{ key: 'move', label: '移库' },
|
{ key: 'move', label: '移库' },
|
||||||
|
{ key: 'moveNew', label: '批量移库(新模版)' },
|
||||||
{ key: 'release', label: '释放信号' },
|
{ key: 'release', label: '释放信号' },
|
||||||
{ key: 'bindStation', label: '绑定站点' },
|
{ key: 'bindStation', label: '绑定站点' },
|
||||||
{ key: 'releaseStation', label: '解绑站点' },
|
{ key: 'releaseStation', label: '解绑站点' },
|
||||||
|
|
@ -382,6 +406,10 @@ const moveForm = reactive({
|
||||||
warehouse: '', containerBatch: '',
|
warehouse: '', containerBatch: '',
|
||||||
targetType: undefined as string | undefined, targetCode: '', targetLevel: undefined as number | undefined, businessNo: '', priority: undefined as number | undefined,
|
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<ReleaseReq>({ warehouse: '', container: '', taskChainCode: '' })
|
const releaseForm = reactive<ReleaseReq>({ warehouse: '', container: '', taskChainCode: '' })
|
||||||
const bindForm = reactive<BindStationReq>({ warehouse: '', container: '', station: '' })
|
const bindForm = reactive<BindStationReq>({ 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() {
|
async function handleRelease() {
|
||||||
if (!releaseForm.taskChainCode || !releaseForm.warehouse) {
|
if (!releaseForm.taskChainCode || !releaseForm.warehouse) {
|
||||||
return ElMessage.warning('请填写任务链编号和仓库编码')
|
return ElMessage.warning('请填写任务链编号和仓库编码')
|
||||||
|
|
@ -849,7 +906,8 @@ async function handleBusinessCancel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
.gen-type-nav {
|
.gen-type-nav {
|
||||||
max-height: 240px;
|
/* 条目较多时需留出可视高度,避免「移库」以下选项被裁切误以为未上线 */
|
||||||
|
max-height: min(58vh, 440px);
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
|
|
|
||||||
|
|
@ -620,7 +620,7 @@ async function handleForceStatus(task: TaskVO, targetStatus: string) {
|
||||||
const typeMap: Record<string, string> = {
|
const typeMap: Record<string, string> = {
|
||||||
INBOUND: '入库', QUICK_PALLET_INBOUND: '托盘快速入库',
|
INBOUND: '入库', QUICK_PALLET_INBOUND: '托盘快速入库',
|
||||||
OUTBOUND: '出库', OUTBOUND_NEW: '拣货出库(新模版)',
|
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) {
|
function timelineType(status: string) {
|
||||||
const map: Record<string, string> = {
|
const map: Record<string, string> = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue