Commit f48383a0 by wusiyi

fix: 修复配货打单/配货分拣断线自动重连未发送消息订阅bug #1001825

parent 54195e1d
......@@ -624,20 +624,16 @@ watch(visible, async (value: boolean) => {
if (userStore.user?.factory.id) {
try {
// 断线自动重连成功时会走 open 回调重新订阅
await socket.init(
{
account: userStore.user?.account.toString(),
factoryNo: userStore.user?.factory.id.toString(),
},
messageChange,
sendWsSubscribe,
)
socket.send({
code: props.wsOpenCode,
factoryNo: userStore.user?.factory.id,
warehouseId: warehouseId.value,
packingId:
props.wallType === 'sort' ? sortingAreaId.value : undefined,
})
sendWsSubscribe()
} catch (error) {
console.error(error)
}
......@@ -1536,6 +1532,17 @@ const _warehouseId = ref<string | number>('')
const sortingAreaList = ref<SortingList[]>([])
const sortingAreaId = ref<number | string>('')
const isAutoPrint = ref<boolean>(false) // 当前配货区是否自动打单
// WS 消息订阅
const sendWsSubscribe = (factoryNo?: number | string) => {
const no = factoryNo ?? userStore.user?.factory.id
if (!no) return
socket.send({
code: props.wsOpenCode,
factoryNo: no,
warehouseId: warehouseId.value,
packingId: props.wallType === 'sort' ? sortingAreaId.value : undefined,
})
}
// 配货分拣 更新配货区
const syncSortingArea = (
packingId: number | string,
......@@ -1547,12 +1554,7 @@ const syncSortingArea = (
warehouseId.value = currentArea.warehouseId
sortingAreaId.value = packingId
isAutoPrint.value = currentArea.autoPrint
socket.send({
code: props.wsOpenCode,
factoryNo,
warehouseId: warehouseId.value,
packingId: sortingAreaId.value,
})
sendWsSubscribe(factoryNo)
}
// 配货分拣 手动切换配货区
const handleSortingAreaChange = (
......@@ -1582,11 +1584,7 @@ const handleWarehouseChange = (value: string | number) => {
}
warehouseId.value = value
emit('set-warehouseId', value)
socket.send({
code: props.wsOpenCode,
factoryNo: userStore.user?.factory.id,
warehouseId: warehouseId.value,
})
sendWsSubscribe()
_warehouseId.value = value
initOrderDetailBox()
resetPlatform()
......@@ -1627,13 +1625,9 @@ const reconnectWebSocket = async () => {
factoryNo: userStore.user?.factory.id.toString(),
},
messageChange,
sendWsSubscribe,
)
socket.send({
code: props.wsOpenCode,
factoryNo: userStore.user?.factory.id,
warehouseId: warehouseId.value,
packingId: sortingAreaId.value,
})
sendWsSubscribe()
} catch (error) {
console.error('WebSocket 重连失败:', error)
ElMessage.error('WebSocket 重连失败,请稍后重试')
......
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