修正合托关联展示和取消条件

This commit is contained in:
2026-08-28 15:32:18 +08:00
parent d4fc74e601
commit 0044c01ed0
2 changed files with 5 additions and 2 deletions
@@ -101,7 +101,9 @@ export function toLastMileOrderListItem(dto: LastMileOrderSummaryDto): LastMileO
palletMergeFlag: String(dto.palletMergeFlag ?? '').trim(), palletMergeFlag: String(dto.palletMergeFlag ?? '').trim(),
palletMergeRelation: Array.isArray(dto.palletMergeOrderNos) && dto.palletMergeOrderNos.length palletMergeRelation: Array.isArray(dto.palletMergeOrderNos) && dto.palletMergeOrderNos.length
? dto.palletMergeOrderNos.map((value) => text(value)).join('、') ? dto.palletMergeOrderNos.map((value) => text(value)).join('、')
: dto.palletMergeBatchId ? `批次 ${text(dto.palletMergeBatchId)}` : '—', : dto.palletMergeBatchId ? `批次 ${text(dto.palletMergeBatchId)}`
: dto.palletMergeFlag === 'MERGED' ? '已完成合托(关联明细待服务端返回)'
: dto.palletMergeFlag === 'REQUIRED' ? '待PDA合托(关联明细待服务端返回)' : '—',
status: lastMileStatusLabel(dto.currentStatus), status: lastMileStatusLabel(dto.currentStatus),
internalRemark: text(dto.privateRemark), internalRemark: text(dto.privateRemark),
customerRemark: text(dto.customerRemark), customerRemark: text(dto.customerRemark),
@@ -27,6 +27,7 @@ const page = ref(1)
const pageSize = ref(10) const pageSize = ref(10)
const total = ref(0) const total = ref(0)
const selectedRows = ref<LastMileOrderListItem[]>([]) const selectedRows = ref<LastMileOrderListItem[]>([])
const cancellableMergeCount = computed(() => selectedRows.value.filter((row) => row.palletMergeFlag === 'REQUIRED').length)
const actionLoading = ref(false) const actionLoading = ref(false)
const actionError = ref<ApiErrorDetails | null>(null) const actionError = ref<ApiErrorDetails | null>(null)
const transferOpen = ref(false) const transferOpen = ref(false)
@@ -260,7 +261,7 @@ 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.lastMileOrderTransfer)" type="primary" plain :disabled="!selectedRows.length || actionLoading" @click="batchPalletMerge">合托标记</el-button><el-button v-if="access.can(permission.lastMileOrderTransfer)" type="warning" plain :disabled="!selectedRows.length || actionLoading" @click="cancelBatchPalletMerge">取消合托</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.lastMileOrderTransfer)" type="warning" plain :disabled="!cancellableMergeCount || actionLoading" @click="cancelBatchPalletMerge">取消合托</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></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>