Commit 99c17584 by zhuzhequan

Merge branch 'dev' into 'master'

Dev

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