Commit 99c17584 by zhuzhequan

Merge branch 'dev' into 'master'

Dev

See merge request !223
parents dc5cad3f 2219553e
......@@ -165,6 +165,7 @@ export interface operateOrderListData {
warehouseId?: number
namespace?: string
statusName?: string
tagsId?: string
[key: string]: unknown
}
......
......@@ -121,6 +121,13 @@ const columns: CustomColumn<SortingList>[] = [
align: 'center',
},
{
key: 'id',
prop: 'id',
label: '配货区ID',
width: 120,
align: 'center',
},
{
key: 'conditionsText',
prop: 'conditionsText',
label: '配货规则',
......
......@@ -350,6 +350,8 @@ export type FastProductionDetail = PodOrderRes & {
podOrderProductId?: number | null
statusName?: string | null
productMark?: string | null
pause?: 0 | 1
status?: string | null
}
const trackingNumberRef = ref()
const historyData = ref<HistoryDataItem[]>([])
......@@ -808,7 +810,18 @@ const trackCodeInput = async () => {
return ElMessage.error(props.notFoundMessage)
}
detail.value = normalizeDetail(res.data)
if (detail.value.pause || detail.value.status == 'CANCEL') {
detail.value = {
id: -1,
podJomallOrderCnId: -1,
imgList: [] as cardImages[],
}
ElMessage.warning(
`订单:${TrackingNumber.value}已挂起或者已取消,无法生产`,
)
throw new Error()
}
// 扫码后限制
if (props.isLimitScan) {
if (
......
......@@ -45,6 +45,11 @@
</div>
</el-tooltip>
<span v-if="item.tagsId" class="flex-row flex-row-gap6">
<el-tag v-for="tag in getItemTags(item.tagsId)" :key="tag.id">
{{ tag.name }}
</el-tag>
</span>
</template>
<template #top_right>
<img
......@@ -306,6 +311,7 @@ const props = defineProps<{
status?: string
queryPayload?: Record<string, unknown>
initPageSize?: number
tagList?: { id: string; name: string }[]
fetchList?: CardLayoutListFetcher
}>()
......@@ -356,6 +362,16 @@ const rightClickItem = ref<operateOrderListData | null>(null)
const isSelected = (item: operateOrderListData) =>
selectedItems.value.some((s) => s.id === item.id)
const getItemTags = (tagsId?: string) => {
if (!tagsId || !props.tagList?.length) return []
return tagsId
.split(',')
.map((id) => id.trim())
.filter(Boolean)
.map((id) => props.tagList!.find((tag) => String(tag.id) === id))
.filter((tag): tag is { id: string; name: string } => !!tag)
}
const handleCardClick = (item: operateOrderListData) => {
const idx = selectedItems.value.findIndex((s) => s.id === item.id)
if (idx >= 0) {
......@@ -432,13 +448,13 @@ const openLogDialog = async (item: operateOrderListData) => {
})
try {
const res = await getFactoryOrderNewLogApi(item.podOrderId as number)
logList.value = (res.data || []) as unknown as LogListData[]
logVisible.value = true
} catch (e) {
// ignore
} finally {
loading.close()
}
logList.value = (res.data || []) as unknown as LogListData[]
logVisible.value = true
} catch (e) {
// ignore
} finally {
loading.close()
}
}
const clearSelection = () => {
......@@ -555,8 +571,8 @@ defineExpose({ clearSelection, getSelectedIds, refresh })
}
.product-mark-badge {
border: 2px solid #F56C6C;
color: #F56C6C;
border: 2px solid #f56c6c;
color: #f56c6c;
font-weight: 700;
height: 28px;
width: 28px;
......
......@@ -782,6 +782,7 @@
ref="cardLayoutRef"
:status="listQueryStatus"
:query-payload="getListQueryPayload()"
:tag-list="customTagList"
@selection-change="handleCardSelectionChange"
@view-detail="handleViewDetail"
/>
......
......@@ -218,7 +218,8 @@
<div class="box-top-item-status">
<span
v-if="
isAutoPrint &&
((props.wallType === 'sort' && isAutoPrint) ||
props.wallType !== 'sort') &&
podOrderDetailsData?.pickingNumber &&
podOrderDetailsData?.purchaseNumber &&
podOrderDetailsData?.pickingNumber ===
......@@ -530,6 +531,9 @@ const podBoxList = computed(() => {
return orderStore.podBoxList
})
const coverImage = ref<string>('')
watch(coverImage, (value) => {
console.log('🍡🍡🍡🍡🍡coverImage changed:', value)
})
let currentCode = ''
const tableRef = ref()
watch(visible, async (value: boolean) => {
......@@ -721,7 +725,9 @@ const renderItemBox = (bool: boolean) => {
product.thirdSkuCode === currentCode ||
(product.operationNos && product.operationNos.includes(currentCode))
) {
coverImage.value = product.previewImgs?.[0]?.url || ''
if (coverImage.value !== product.previewImgs?.[0]?.url) {
coverImage.value = product.previewImgs?.[0]?.url || ''
}
nextTick(() => {
tableRef.value?.setCurrentRow(product)
})
......@@ -731,7 +737,7 @@ const renderItemBox = (bool: boolean) => {
currentCode = ''
} else {
// 切换箱子,默认展示第一张图片
coverImage.value = productList[0]?.previewImgs?.[0]?.url || ''
// coverImage.value = productList[0]?.previewImgs?.[0]?.url || ''
}
podOrderDetailsData.value = data
......@@ -743,13 +749,17 @@ const renderItemBox = (bool: boolean) => {
renderLock = false
return
}
console.log('=======⭐⭐⭐打印=======')
print(data, false, () => {
console.log('⭐⭐⭐打印结果data.printResult', data.printResult)
if (
props.wallType === 'sort' &&
isAutoPrint.value &&
data.printResult === 'printSuccess'
) {
console.log('⭐⭐⭐提交打单')
submitInspection(() => {
renderLock = false
})
......@@ -958,6 +968,43 @@ const getPackingData = async (code: string) => {
boxChange.value = true
boxIndex.value = box as number
// 尝试修复线上扫码后大缩略图不更新问题
{
let parsedCode = code
if (!parsedCode.startsWith('JM')) {
const parts = parsedCode.split('_')
parsedCode =
parts.length > 3 && parts[3].startsWith('USPSC')
? parts[3]
: parts.length > 1
? parts[1]
: parts[0]
}
for (const product of data?.productList || []) {
if (
product.podJomallUsNo === parsedCode ||
product.thirdSkuCode === parsedCode ||
(product.operationNos && product.operationNos.includes(parsedCode))
) {
if (!product.previewImgs || !product.previewImgs.length) {
if (
product.productMark === 'custom_normal' ||
product.productMark === 'normal'
) {
product.previewImgs = [{ url: product.variantImage || '' }]
} else {
product.previewImgs = product.imageAry
? JSON.parse(product.imageAry)
: [{ url: product.variantImage || '' }]
}
}
coverImage.value = product.previewImgs?.[0]?.url || ''
console.log('🍉🍉🍉🍉getPackingData', coverImage.value)
break
}
}
}
if (boxIndex.value == 0) {
podOrderDetailsData.value = data as OrderData
podOrderDetailsData.value.fromUser = userStore.user?.id
......@@ -1005,6 +1052,7 @@ const getPackingData = async (code: string) => {
// 提交打单
const submitInspection = async (callback: () => void) => {
const factoryNo = userStore.user?.factory.id
console.log('⭐⭐⭐提交打单factoryNo', factoryNo)
if (!factoryNo) {
return
}
......@@ -1122,8 +1170,10 @@ const initOrderDetailBox = async (type: 'scan' | 'manual' = 'manual') => {
}
}
})
coverImage.value =
podOrderDetailsData.value?.productList?.[0]?.previewImgs?.[0].url || ''
if (type !== 'scan') {
coverImage.value =
podOrderDetailsData.value?.productList?.[0]?.previewImgs?.[0].url || ''
}
if (
podOrderDetailsData.value &&
......@@ -1411,6 +1461,7 @@ const handleRowClick = (row: ProductList) => {
const handleCurrentChange = (url: string) => {
if (url) {
coverImage.value = url || ''
console.log('🍉🍉🍉🍉handleCurrentChange', coverImage.value)
}
}
const warehouseId = ref<string | number>('')
......
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