Commit 3357446f by qinjianhui

fix: 订单问题修改

parent 4bfeb551
...@@ -216,9 +216,9 @@ ...@@ -216,9 +216,9 @@
<div class="card-info-row full delay-time-row"> <div class="card-info-row full delay-time-row">
<span <span
class="delay-time-value" class="delay-time-value"
:title="`订单延期:${getOrderDelayText(item.createTime as string)}`" :title="`订单延期:${getOrderDelayText(item.orderCreateTime as string)}`"
> >
{{ getOrderDelayText(item.createTime as string) }} {{ getOrderDelayText(item.orderCreateTime as string) }}
</span> </span>
</div> </div>
</div> </div>
...@@ -423,8 +423,10 @@ const getOrderDelayText = (createTime?: string | null) => { ...@@ -423,8 +423,10 @@ const getOrderDelayText = (createTime?: string | null) => {
if (!createTime) return '--' if (!createTime) return '--'
const createAt = dayjs(createTime) const createAt = dayjs(createTime)
if (!createAt.isValid()) return '--' if (!createAt.isValid()) return '--'
const diffSeconds = Math.max(0, dayjs().diff(createAt, 'second')) const diffMinutes = Math.max(0, dayjs().diff(createAt, 'minute'))
const hours = Math.floor(diffSeconds / (60 * 60)) const baseHours = Math.floor(diffMinutes / 60)
const remainMinutes = diffMinutes % 60
const hours = baseHours + (remainMinutes > 30 ? 1 : 0)
return `${hours}h` return `${hours}h`
} }
......
...@@ -211,9 +211,9 @@ ...@@ -211,9 +211,9 @@
<div class="card-info-row full delay-time-row"> <div class="card-info-row full delay-time-row">
<span <span
class="delay-time-value" class="delay-time-value"
:title="`订单延期:${getOrderDelayText(item.createTime as string)}`" :title="`订单延期:${getOrderDelayText(item.orderCreateTime as string)}`"
> >
{{ getOrderDelayText(item.createTime as string) }} {{ getOrderDelayText(item.orderCreateTime as string) }}
</span> </span>
</div> </div>
</div> </div>
...@@ -327,8 +327,10 @@ const getOrderDelayText = (createTime?: string | null) => { ...@@ -327,8 +327,10 @@ const getOrderDelayText = (createTime?: string | null) => {
if (!createTime) return '--' if (!createTime) return '--'
const createAt = dayjs(createTime) const createAt = dayjs(createTime)
if (!createAt.isValid()) return '--' if (!createAt.isValid()) return '--'
const diffSeconds = Math.max(0, dayjs().diff(createAt, 'second')) const diffMinutes = Math.max(0, dayjs().diff(createAt, 'minute'))
const hours = Math.floor(diffSeconds / (60 * 60)) const baseHours = Math.floor(diffMinutes / 60)
const remainMinutes = diffMinutes % 60
const hours = baseHours + (remainMinutes > 30 ? 1 : 0)
return `${hours}h` return `${hours}h`
} }
...@@ -372,6 +374,8 @@ defineExpose({ open }) ...@@ -372,6 +374,8 @@ defineExpose({ open })
<style scoped lang="scss"> <style scoped lang="scss">
.operate-order-details-content { .operate-order-details-content {
height: 600px; height: 600px;
display: flex;
flex-direction: column;
} }
.operate-order-tip { .operate-order-tip {
font-size: 14px; font-size: 14px;
...@@ -382,10 +386,10 @@ defineExpose({ open }) ...@@ -382,10 +386,10 @@ defineExpose({ open })
.operate-order-card-grid { .operate-order-card-grid {
display: grid; display: grid;
grid-template-columns: repeat(6, 1fr); grid-template-columns: repeat(6, 1fr);
grid-template-rows: max-content;
gap: 12px; gap: 12px;
max-height: 500px;
overflow-y: auto; overflow-y: auto;
min-height: 200px; flex: 1;
} }
.operate-order-card-item { .operate-order-card-item {
...@@ -486,4 +490,40 @@ defineExpose({ open }) ...@@ -486,4 +490,40 @@ defineExpose({ open })
gap: 20px; gap: 20px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
overflow: hidden;
gap: 6px;
.images-position {
flex: 1;
overflow: auto hidden;
.images-container {
width: 100%;
display: flex;
gap: 6px;
}
.item-image {
width: 50px;
min-width: 50px;
height: 50px;
border: 1px solid #eee;
cursor: pointer;
img {
width: 100%;
height: 100%;
object-fit: cover;
}
}
}
b {
margin-right: 5px;
font-size: 15px;
}
}
</style> </style>
...@@ -547,7 +547,7 @@ ...@@ -547,7 +547,7 @@
<!-- 挂起 --> <!-- 挂起 -->
<template v-if="status === 'SUSPEND'"> <template v-if="status === 'SUSPEND'">
<span class="item"> <span class="item">
<ElButton type="warning" @click="handleCancelSuspend" <ElButton type="warning" @click="() => handleCancelSuspend()"
>取消挂起</ElButton >取消挂起</ElButton
> >
</span> </span>
...@@ -701,7 +701,7 @@ ...@@ -701,7 +701,7 @@
修改地址 修改地址
</ElButton> </ElButton>
<ElButton <ElButton
v-if="row.status === 'PENDING_CREATE_LOGISTICS'" v-if="status === 'PENDING_CREATE_LOGISTICS'"
type="primary" type="primary"
link link
size="small" size="small"
...@@ -709,10 +709,23 @@ ...@@ -709,10 +709,23 @@
> >
刷新地址 刷新地址
</ElButton> </ElButton>
<ElButton
v-if="status === 'SUSPEND'"
type="primary"
link
size="small"
@click.stop="handleCancelSuspend(row)"
>
取消挂起
</ElButton>
</div> </div>
</template> </template>
</TableView> </TableView>
</div> </div>
<div class="table-pagination-bar">
<div class="selected-count-text">
已选择 <strong style="color: red">{{ selectedRows.length }}</strong> 条数
</div>
<ElPagination <ElPagination
v-model:current-page="currentPage" v-model:current-page="currentPage"
v-model:page-size="pageSize" v-model:page-size="pageSize"
...@@ -720,10 +733,10 @@ ...@@ -720,10 +733,10 @@
background background
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="total" :total="total"
style="margin: 10px auto 0"
@size-change="onPageSizeChange" @size-change="onPageSizeChange"
@current-change="onCurrentPageChange" @current-change="onCurrentPageChange"
/> />
</div>
</template> </template>
<template #bottom> <template #bottom>
<el-tabs <el-tabs
...@@ -742,7 +755,7 @@ ...@@ -742,7 +755,7 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="log" label="操作日志"> <el-tab-pane name="log" label="操作日志">
<div v-loading="subLoading" class="detail-table-content"> <div v-loading="subLoading" class="detail-table-content">
<LogList style="height: 100%;" :log-list="logList" /> <LogList style="height: 100%" :log-list="logList" />
<div v-if="!logList.length" class="empty-content"> <div v-if="!logList.length" class="empty-content">
暂无数据 暂无数据
</div> </div>
...@@ -1082,7 +1095,7 @@ const receiverAddressForm = ref<AddressInfo>({ ...@@ -1082,7 +1095,7 @@ const receiverAddressForm = ref<AddressInfo>({
}) })
const showPendingLogisticsUpdateAddress = (row: FactoryOrderNewListData) => const showPendingLogisticsUpdateAddress = (row: FactoryOrderNewListData) =>
row.status === 'PENDING_CREATE_LOGISTICS' && row.shipmentType === 1 status.value === 'PENDING_CREATE_LOGISTICS' && row.shipmentType === 1
const submitFactoryOrderReceiverAddress = (data: AddressInfo) => const submitFactoryOrderReceiverAddress = (data: AddressInfo) =>
updateReceiverAddressApi(data) updateReceiverAddressApi(data)
...@@ -1152,7 +1165,7 @@ const handleSuspendTabClick = (value: number) => { ...@@ -1152,7 +1165,7 @@ const handleSuspendTabClick = (value: number) => {
statusCurrentPageRef.value = 1 statusCurrentPageRef.value = 1
refreshTableList() refreshTableList()
} }
const mainColumns = [ const mainColumns = computed(() => [
{ {
prop: 'factoryOrderNumber', prop: 'factoryOrderNumber',
label: '订单编号', label: '订单编号',
...@@ -1172,7 +1185,7 @@ const mainColumns = [ ...@@ -1172,7 +1185,7 @@ const mainColumns = [
}, },
{ {
prop: 'statusName', prop: 'statusName',
label: '订单状态', label: status.value !== 'SUSPEND' ? '订单状态' : '挂起前状态',
minWidth: 120, minWidth: 120,
align: 'center', align: 'center',
}, },
...@@ -1278,7 +1291,7 @@ const mainColumns = [ ...@@ -1278,7 +1291,7 @@ const mainColumns = [
slot: 'operation', slot: 'operation',
fixed: 'right', fixed: 'right',
}, },
] ])
const showProductInventoryColumns = computed( const showProductInventoryColumns = computed(
() => () =>
...@@ -1555,6 +1568,7 @@ const openResultInfoDialog = (data: ResultInfoDataItem[]) => { ...@@ -1555,6 +1568,7 @@ const openResultInfoDialog = (data: ResultInfoDataItem[]) => {
resultInfo.value = data.filter((item) => !item.status) resultInfo.value = data.filter((item) => !item.status)
resultRefs.value?.showDialog() resultRefs.value?.showDialog()
} else { } else {
ElMessage.success('操作成功')
refreshCurrentView({ isRefreshTree: true }) refreshCurrentView({ isRefreshTree: true })
} }
}) })
...@@ -1641,6 +1655,7 @@ const handleLogisticsCommand = async (command: string) => { ...@@ -1641,6 +1655,7 @@ const handleLogisticsCommand = async (command: string) => {
resultRefs.value?.showDialog() resultRefs.value?.showDialog()
} else { } else {
ElMessage.success('操作成功')
refreshCurrentView() refreshCurrentView()
} }
} else if (typeof res.data === 'string') { } else if (typeof res.data === 'string') {
...@@ -1699,13 +1714,14 @@ const handleTransferToArrange = async () => { ...@@ -1699,13 +1714,14 @@ const handleTransferToArrange = async () => {
(item: { status?: boolean }) => !item.status, (item: { status?: boolean }) => !item.status,
) )
resultRefs.value?.showDialog() resultRefs.value?.showDialog()
return
}
refreshCurrentView({ isRefreshTree: true })
} else { } else {
ElMessage.success('操作成功')
refreshCurrentView({ isRefreshTree: true }) refreshCurrentView({ isRefreshTree: true })
} }
} else {
ElMessage.success('操作成功') ElMessage.success('操作成功')
refreshCurrentView({ isRefreshTree: true })
}
} catch (e: unknown) { } catch (e: unknown) {
resultInfo.value = [] resultInfo.value = []
console.error(e) console.error(e)
...@@ -1936,6 +1952,9 @@ const handleProductionComplete = async () => { ...@@ -1936,6 +1952,9 @@ const handleProductionComplete = async () => {
if (hasFailed) { if (hasFailed) {
resultInfo.value = data.filter((item) => !item.status) resultInfo.value = data.filter((item) => !item.status)
resultRefs.value?.showDialog() resultRefs.value?.showDialog()
} else {
ElMessage.success('操作成功')
refreshCurrentView({ isRefreshTree: true })
} }
}, },
}) })
...@@ -1952,10 +1971,16 @@ const handleArchiveOrder = async () => { ...@@ -1952,10 +1971,16 @@ const handleArchiveOrder = async () => {
refreshTree: true, refreshTree: true,
}) })
} }
const handleCancelSuspend = async () => { const handleCancelSuspend = async (row?: FactoryOrderNewListData) => {
let ids: (number | string)[]
if (row) {
ids = [row.id]
} else {
ids = getSelectedIds()
}
await executeBatchAction({ await executeBatchAction({
getIds: getSelectedIds, getIds: () => ids,
api: cancelSuspendApi, api: (ids) => cancelSuspendApi(ids as number[]),
confirmText: '确定取消挂起吗?', confirmText: '确定取消挂起吗?',
successText: '取消挂起成功', successText: '取消挂起成功',
refreshTree: true, refreshTree: true,
...@@ -2179,6 +2204,19 @@ onMounted(() => { ...@@ -2179,6 +2204,19 @@ onMounted(() => {
} }
} }
.table-pagination-bar {
margin-top: 10px;
display: flex;
align-items: center;
justify-content: space-between;
}
.selected-count-text {
font-size: 14px;
color: #606266;
white-space: nowrap;
}
.card-content { .card-content {
flex: 1; flex: 1;
margin-top: 10px; margin-top: 10px;
......
...@@ -197,7 +197,9 @@ ...@@ -197,7 +197,9 @@
@click="podOrderDetailsData && print(podOrderDetailsData, true)" @click="podOrderDetailsData && print(podOrderDetailsData, true)"
>手动打印</ElButton >手动打印</ElButton
> >
<ElButton v-if="isNewOrder" type="primary" @click="printNormal">普货拣货 </ElButton> <ElButton v-if="isNewOrder" type="primary" @click="printNormal"
>普货拣货
</ElButton>
<ElButton type="success" @click="handlePrintFinish" <ElButton type="success" @click="handlePrintFinish"
>打单完成</ElButton >打单完成</ElButton
> >
...@@ -261,7 +263,7 @@ ...@@ -261,7 +263,7 @@
</ElDialog> </ElDialog>
</template> </template>
<script setup lang="ts"> <script setup lang="tsx">
import { computed, nextTick, ref, watch } from 'vue' import { computed, nextTick, ref, watch } from 'vue'
import useLodop from '@/utils/hooks/useLodop' import useLodop from '@/utils/hooks/useLodop'
import TableView from '@/components/TableView.vue' import TableView from '@/components/TableView.vue'
...@@ -339,6 +341,17 @@ const podOrderDetailsColumns = computed(() => [ ...@@ -339,6 +341,17 @@ const podOrderDetailsColumns = computed(() => [
prop: props.isNewOrder ? 'operationNos' : 'podJomallUsNo', prop: props.isNewOrder ? 'operationNos' : 'podJomallUsNo',
width: 150, width: 150,
align: 'center', align: 'center',
render: (row: ProductList) => {
return (
<div>
{props.isNewOrder &&
row.operationNos?.split(',').map((item) => {
return <div>{item}</div>
})}
{!props.isNewOrder && row.podJomallUsNo}
</div>
)
},
}, },
{ {
label: '库存 SKU', label: '库存 SKU',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment