调整尾程订单合托批量标记
This commit is contained in:
@@ -178,6 +178,25 @@ async function togglePalletMerge(row: LastMileOrderListItem) {
|
|||||||
} catch (error) { actionError.value = getApiErrorDetails(error, required ? '合托标记失败,请重试' : '取消合托标记失败,请重试') }
|
} catch (error) { actionError.value = getApiErrorDetails(error, required ? '合托标记失败,请重试' : '取消合托标记失败,请重试') }
|
||||||
finally { actionLoading.value = false }
|
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 submitTransfer() {
|
async function submitTransfer() {
|
||||||
if (!transferForm.warehouseId.trim() || !transferForm.warehouseCode.trim() || !transferForm.warehouseName.trim()) {
|
if (!transferForm.warehouseId.trim() || !transferForm.warehouseCode.trim() || !transferForm.warehouseName.trim()) {
|
||||||
ElMessage.warning('请填写目的仓 ID、代码和名称')
|
ElMessage.warning('请填写目的仓 ID、代码和名称')
|
||||||
@@ -225,8 +244,8 @@ onMounted(() => { void load() })
|
|||||||
</LoadErrorState>
|
</LoadErrorState>
|
||||||
</template>
|
</template>
|
||||||
<section v-if="!loadError" class="surface-panel table-panel"><DataTable v-model:page="page" v-model:page-size="pageSize" :data="rows" :columns="columns" :loading="loading" :total="total" preference-key="overseas-last-mile-orders" row-key="id" empty-text="暂无尾程订单" :row-class-name="({ row }: { row: LastMileOrderListItem }) => row.detained ? 'is-detained-row' : ''" @selection-change="onSelectionChange" @update:page="load()" @update:page-size="page = 1; load()">
|
<section v-if="!loadError" class="surface-panel table-panel"><DataTable v-model:page="page" v-model:page-size="pageSize" :data="rows" :columns="columns" :loading="loading" :total="total" preference-key="overseas-last-mile-orders" row-key="id" empty-text="暂无尾程订单" :row-class-name="({ row }: { row: LastMileOrderListItem }) => row.detained ? 'is-detained-row' : ''" @selection-change="onSelectionChange" @update:page="load()" @update:page-size="page = 1; load()">
|
||||||
<template #toolbar-actions><el-button v-if="access.can(permission.lastMileOrderTransfer)" plain :disabled="!selectedRows.length || actionLoading" @click="openTransfer">转仓</el-button><el-button v-if="access.can(permission.inboundOrderCreate)" type="primary" plain :disabled="selectedRows.length !== 1 || actionLoading" @click="convertInboundPlan">生成入库计划</el-button></template>
|
<template #toolbar-actions><el-button v-if="access.can(permission.lastMileOrderTransfer)" plain :disabled="!selectedRows.length || actionLoading" @click="openTransfer">转仓</el-button><el-button v-if="access.can(permission.lastMileOrderTransfer)" type="primary" plain :disabled="!selectedRows.length || actionLoading" @click="batchPalletMerge">合托标记</el-button><el-button v-if="access.can(permission.inboundOrderCreate)" type="primary" plain :disabled="selectedRows.length !== 1 || actionLoading" @click="convertInboundPlan">生成入库计划</el-button></template>
|
||||||
<template #actions="{ row }"><el-button size="small" plain type="primary" @click="openDetail(row)"><Eye :size="15" />查看</el-button><el-button v-if="access.can(permission.lastMileOrderTransfer)" size="small" plain :type="(row as LastMileOrderListItem).detained ? 'success' : 'danger'" :disabled="actionLoading" @click="openDetained(row as LastMileOrderListItem)">{{ (row as LastMileOrderListItem).detained ? '解除暂扣' : '暂扣' }}</el-button><el-button v-if="access.can(permission.lastMileOrderTransfer) && (row as LastMileOrderListItem).palletMergeFlag !== 'MERGED'" size="small" plain :type="(row as LastMileOrderListItem).palletMergeFlag === 'REQUIRED' ? 'warning' : 'primary'" :disabled="actionLoading" @click="togglePalletMerge(row as LastMileOrderListItem)">{{ (row as LastMileOrderListItem).palletMergeFlag === 'REQUIRED' ? '取消合托' : '合托标记' }}</el-button></template>
|
<template #actions="{ row }"><el-button size="small" plain type="primary" @click="openDetail(row)"><Eye :size="15" />查看</el-button><el-button v-if="access.can(permission.lastMileOrderTransfer)" size="small" plain :type="(row as LastMileOrderListItem).detained ? 'success' : 'danger'" :disabled="actionLoading" @click="openDetained(row as LastMileOrderListItem)">{{ (row as LastMileOrderListItem).detained ? '解除暂扣' : '暂扣' }}</el-button></template>
|
||||||
<template #pagination-left>共 {{ total }} 条尾程订单 · 已选 {{ selectedRows.length }} 条</template>
|
<template #pagination-left>共 {{ total }} 条尾程订单 · 已选 {{ selectedRows.length }} 条</template>
|
||||||
</DataTable></section>
|
</DataTable></section>
|
||||||
</ListPageLayout></AdminPage>
|
</ListPageLayout></AdminPage>
|
||||||
|
|||||||
Reference in New Issue
Block a user