Commit d840ce93 by wusiyi

Merge branch 'dev_pod_us_process' into release

parents 49f9fd79 d75893ba
...@@ -70,6 +70,15 @@ export interface ILogisticsCompany { ...@@ -70,6 +70,15 @@ export interface ILogisticsCompany {
basicType: number // int(11) basicType: number // int(11)
} }
export interface LogisticsWayData {
id: number
name: string
code: string
status: boolean
createTime: string
updateTime: string
}
interface ILogisticsParams { interface ILogisticsParams {
logType: string logType: string
relaId: number | string relaId: number | string
...@@ -148,6 +157,15 @@ export function getUniuniList() { ...@@ -148,6 +157,15 @@ export function getUniuniList() {
}, },
) )
} }
// 根据物流公司筛选物流方式
export function getLogisticsWayListByCompanyId(companyId: number) {
return axios.get<never, BaseRespData<LogisticsWayData[]>>(
'logisticsWay/getUsableWaysByCompanyId',
{
params: { companyId },
},
)
}
// 获取tictok物流承运商 // 获取tictok物流承运商
export function getTiktokCarrier() { export function getTiktokCarrier() {
return axios.get<never, BaseRespData<{ name: string; id: string,typeCode:string,label:string }[]>>( return axios.get<never, BaseRespData<{ name: string; id: string,typeCode:string,label:string }[]>>(
......
...@@ -483,12 +483,13 @@ export function refreshProductInformationApi(data: { ...@@ -483,12 +483,13 @@ export function refreshProductInformationApi(data: {
} }
// 设计图排版 // 设计图排版
export function composingDesignImages( export function composingDesignImages(
url: string,
data: number[], data: number[],
type?: string, type?: string,
templateWidth?: number, templateWidth?: number,
) { ) {
return axios.post<never, BaseRespData<never>>( return axios.post<never, BaseRespData<never>>(
`factory/podJomallOrderCn/composingDesignImages?type=${type}&templateWidth=${templateWidth}`, `${url}?type=${type}&templateWidth=${templateWidth}`,
data, data,
) )
} }
...@@ -638,10 +639,10 @@ export function updateToWaitShipmentApi(params: { ...@@ -638,10 +639,10 @@ export function updateToWaitShipmentApi(params: {
} }
//创建物流订单 //创建物流订单
export function createLogisticsOrdersApi(orderIds: (string | number)[]) { export function createLogisticsOrdersApi(orderIdList: (string | number)[], logisticsWayId: number | null) {
return axios.post<never, BaseRespData<never>>( return axios.post<never, BaseRespData<never>>(
`factory/podJomallOrderCn/createLogisticsOrders`, `factory/podJomallOrderCn/createLogisticsOrders`,
orderIds, { orderIdList, logisticsWayId },
) )
} }
...@@ -790,3 +791,11 @@ export function updateProductOutOfStockApi(params: { ...@@ -790,3 +791,11 @@ export function updateProductOutOfStockApi(params: {
params, params,
) )
} }
// 打印普胚生产单
export function printNormalProducePdf(orderIds: number[]) {
return axios.post<never, BaseRespData<string>>(
'factory/podJomallOrderProductCn/printNormalProducePdf',
orderIds,
)
}
...@@ -263,14 +263,14 @@ export function getPodBoxListApi( ...@@ -263,14 +263,14 @@ export function getPodBoxListApi(
} }
export function submitInspectionApi( export function submitInspectionApi(
data: { id: number; version?: number }[], orderId: number | undefined,
boxIndex: number | null, boxIndex: number | null,
warehouseId: number | string, warehouseId: number | string,
) { ) {
return axios.post<never, BaseRespData<never>>( return axios.post<never, BaseRespData<never>>(
`factory/podJomallOrderUs/podPrintOrderComplete?box=${boxIndex}&warehouseId=${warehouseId}`, `factory/podJomallOrderUs/podPrintOrderComplete?box=${boxIndex}&warehouseId=${warehouseId}`,
{ {
orderParamList: data, orderId,
}, },
) )
} }
...@@ -397,12 +397,13 @@ export function updateSelfLogistics(params: { ...@@ -397,12 +397,13 @@ export function updateSelfLogistics(params: {
// 更改物流 // 更改物流
export function composingDesignImages( export function composingDesignImages(
url: string,
data: number[], data: number[],
type?: string, type?: string,
templateWidth?: number, templateWidth?: number,
) { ) {
return axios.post<never, BaseRespData<never>>( return axios.post<never, BaseRespData<never>>(
`factory/podJomallOrderUs/composingDesignImages?type=${type}&templateWidth=${templateWidth}`, `${url}?type=${type}&templateWidth=${templateWidth}`,
data, data,
) )
} }
......
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
style="width: 125px" style="width: 125px"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="排序"> <ElFormItem label="排序方式">
<el-select <el-select
v-model="searchForm.order" v-model="searchForm.order"
clearable clearable
......
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
style="width: 150px" style="width: 150px"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="排序"> <ElFormItem label="排序方式">
<el-select <el-select
v-model="searchForm.order" v-model="searchForm.order"
clearable clearable
......
...@@ -269,7 +269,7 @@ ...@@ -269,7 +269,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { computed, nextTick, ref, watch, defineProps, defineEmits } 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'
import { OrderData, ProductList, IorderItem } from '@/types/api/podMakeOrder' import { OrderData, ProductList, IorderItem } from '@/types/api/podMakeOrder'
...@@ -499,14 +499,12 @@ async function barcodeInput() { ...@@ -499,14 +499,12 @@ async function barcodeInput() {
console.log('pending', pending) console.log('pending', pending)
await submitInspection(pending, async () => { await submitInspection(pending, async () => {
await inputActive()
await getPackingData(code)
noObj.value = {} noObj.value = {}
}) })
} else { }
await inputActive() await inputActive()
await getPackingData(code) await getPackingData(code)
}
isLock.value = false isLock.value = false
} }
async function submitInspection(objs?: OrderData, callback?: () => void) { async function submitInspection(objs?: OrderData, callback?: () => void) {
...@@ -525,12 +523,10 @@ async function submitInspection(objs?: OrderData, callback?: () => void) { ...@@ -525,12 +523,10 @@ async function submitInspection(objs?: OrderData, callback?: () => void) {
ElMessage.success(res.message) ElMessage.success(res.message)
coverImage.value = '' coverImage.value = ''
testingData.value = {} testingData.value = {}
await inputActive()
isLock.value = false isLock.value = false
callback?.() callback?.()
} catch (e) { } catch (e) {
console.error(e) console.error(e)
await inputActive()
isLock.value = false isLock.value = false
} }
} }
...@@ -591,7 +587,7 @@ async function getPackingData(code: string) { ...@@ -591,7 +587,7 @@ async function getPackingData(code: string) {
async function printFile(data: OrderData) { async function printFile(data: OrderData) {
// await props.printOrderOne(data) // await props.printOrderOne(data)
await printOrderOne(data) await printOrderOne(data)
noObj.value[data.id!] = data noObj.value[data.id as number] = data
await inputActive() await inputActive()
} }
function printOrderOne(item: OrderData): Promise<void> { function printOrderOne(item: OrderData): Promise<void> {
......
...@@ -16,6 +16,15 @@ ...@@ -16,6 +16,15 @@
<span>播种墙配货</span> <span>播种墙配货</span>
<span v-if="socketConnect === 'online'" class="online">[在线]</span> <span v-if="socketConnect === 'online'" class="online">[在线]</span>
<span v-else class="offline">[离线]</span> <span v-else class="offline">[离线]</span>
<ElButton
v-if="socketConnect === 'offline'"
type="success"
size="small"
:icon="Refresh"
@click="reconnectWebSocket"
>
刷新
</ElButton>
</div> </div>
</template> </template>
<div class="pod-make-order-content"> <div class="pod-make-order-content">
...@@ -268,7 +277,7 @@ import { ...@@ -268,7 +277,7 @@ import {
printNormalPdf, printNormalPdf,
} from '@/api/podCnOrder' } from '@/api/podCnOrder'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
import { Check } from '@element-plus/icons-vue' import { Check, Refresh } from '@element-plus/icons-vue'
import socket from '@/utils/cnWebsocket' import socket from '@/utils/cnWebsocket'
import { WarehouseListData } from '@/types/api/podUsOrder' import { WarehouseListData } from '@/types/api/podUsOrder'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
...@@ -1086,6 +1095,27 @@ const handleWarehouseChange = (value: string | number) => { ...@@ -1086,6 +1095,27 @@ const handleWarehouseChange = (value: string | number) => {
_warehouseId.value = value _warehouseId.value = value
initOrderDetailBox() initOrderDetailBox()
} }
const reconnectWebSocket = async () => {
if (!userStore.user?.factory.id) return
try {
await socket.init(
{
account: userStore.user?.account.toString(),
factoryNo: userStore.user?.factory.id.toString(),
},
messageChange,
)
socket.send({
code: 'STARTORDERCN',
factoryNo: userStore.user?.factory.id,
warehouseId: warehouseId.value,
})
} catch (error) {
console.error('WebSocket 重连失败:', error)
ElMessage.error('WebSocket 重连失败,请稍后重试')
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
......
...@@ -16,6 +16,15 @@ ...@@ -16,6 +16,15 @@
<span>超级播种墙配货</span> <span>超级播种墙配货</span>
<span v-if="socketConnect === 'online'" class="online">[在线]</span> <span v-if="socketConnect === 'online'" class="online">[在线]</span>
<span v-else class="offline">[离线]</span> <span v-else class="offline">[离线]</span>
<ElButton
v-if="socketConnect === 'offline'"
type="success"
size="small"
:icon="Refresh"
@click="reconnectWebSocket"
>
刷新
</ElButton>
</div> </div>
</template> </template>
<div class="pod-make-order-content"> <div class="pod-make-order-content">
...@@ -241,7 +250,7 @@ import { ...@@ -241,7 +250,7 @@ import {
printNormalPdf, printNormalPdf,
} from '@/api/podCnOrder' } from '@/api/podCnOrder'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
import { Check } from '@element-plus/icons-vue' import { Check, Refresh } from '@element-plus/icons-vue'
import socket from '@/utils/cnSuperWebsocket' import socket from '@/utils/cnSuperWebsocket'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { filePath } from '@/api/axios.ts' import { filePath } from '@/api/axios.ts'
...@@ -969,6 +978,25 @@ const handleCurrentChange = (url: string) => { ...@@ -969,6 +978,25 @@ const handleCurrentChange = (url: string) => {
coverImage.value = url || '' coverImage.value = url || ''
} }
} }
const reconnectWebSocket = async () => {
if (userStore.user?.factory.id) {
try {
await socket.init(
{
account: userStore.user?.account.toString(),
factoryNo: userStore.user?.factory.id.toString(),
},
messageChange,
)
socket.send({
code: 'SUPERFACTORYSTARTORDER',
factoryNo: userStore.user?.factory.id,
})
} catch (error) {
console.error(error)
}
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
......
<template>
<el-dialog
v-model="createLogisticDialogVisible"
:close-on-click-modal="false"
title="创建物流订单"
>
<div style="display: flex; align-items: center; gap: 20px">
<span style="font-weight: 500">是否自动匹配物流方式</span>
<el-radio-group v-model="isAutoMatch">
<el-radio :value="false"></el-radio>
<el-radio :value="true"></el-radio>
</el-radio-group>
</div>
<div
v-if="!isAutoMatch && logisticCompanyList.length > 0"
style="margin: 10px; border: 1px solid #e0e0e0; display: flex"
>
<div
style="
display: flex;
flex-direction: column;
width: 200px;
font-weight: 500;
"
>
<div
v-for="item in logisticCompanyList"
:key="item.id"
class="logistic-company-item"
:class="{
'selected-logistic-company':
selectedLogisticCompany?.id === item.id,
}"
@click="selectLogisticCompany(item)"
>
{{ item.name }}
</div>
</div>
<div
style="
width: 100%;
min-height: 220px;
display: flex;
justify-content: center;
align-items: flex-start;
"
>
<div
v-if="logisticsWayList.length > 0"
style="
padding: 0 10px;
width: 100%;
display: flex;
align-items: center;
"
>
<el-radio-group v-model="logisticsWayId">
<el-radio
v-for="item in logisticsWayList"
:key="item.id"
:value="item.id"
style="width: 200px; height: 40px"
>
{{ item.name }}
</el-radio>
</el-radio-group>
</div>
<el-empty v-else description="暂无数据" :image-size="80" />
</div>
</div>
<template #footer>
<el-button @click="cancelDialog"> 取消 </el-button>
<el-button type="primary" @click="confirmDialog"> 确定 </el-button>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import {
getLogisticsCompanyList,
ILogisticsCompany,
getLogisticsWayListByCompanyId,
LogisticsWayData,
} from '@/api/logistics'
import { createLogisticsOrdersApi } from '@/api/podCnOrder'
const createLogisticDialogVisible = ref(false)
const isAutoMatch = ref(false)
const logisticCompanyList = ref<ILogisticsCompany[]>([])
const selectedLogisticCompany = ref<ILogisticsCompany | null>(null)
const logisticsWayList = ref<LogisticsWayData[]>([])
const logisticsWayId = ref<number | null>(null)
const orderIdList = ref<(string | number)[]>([])
const cancelDialog = () => {
logisticsWayList.value = []
logisticCompanyList.value = []
selectedLogisticCompany.value = null
logisticsWayId.value = null
orderIdList.value = []
isAutoMatch.value = false
createLogisticDialogVisible.value = false
}
// 获取物流公司列表
const getLogisticsCompanyListFn = async () => {
const { data } = await getLogisticsCompanyList()
logisticCompanyList.value = data as unknown as ILogisticsCompany[]
if (logisticCompanyList.value.length > 0) {
selectedLogisticCompany.value = logisticCompanyList.value[0]
await getLogisticsWayListFn(selectedLogisticCompany.value.id)
}
}
// 获取物流方式列表
const getLogisticsWayListFn = async (id: number) => {
const { data } = await getLogisticsWayListByCompanyId(id)
logisticsWayList.value = data
}
// 选择物流公司
const selectLogisticCompany = async (item: ILogisticsCompany) => {
selectedLogisticCompany.value = item
await getLogisticsWayListFn(item.id)
}
const confirmDialog = async () => {
await createLogisticsOrdersApi(orderIdList.value, logisticsWayId.value)
.then((res) => {
emits('show-result', res.data)
})
.finally(() => {
logisticsWayList.value = []
logisticCompanyList.value = []
selectedLogisticCompany.value = null
logisticsWayId.value = null
orderIdList.value = []
isAutoMatch.value = false
createLogisticDialogVisible.value = false
})
}
const showDialog = async (ids: (string | number)[]) => {
await getLogisticsCompanyListFn()
orderIdList.value = ids
createLogisticDialogVisible.value = true
}
const emits = defineEmits<{
(
e: 'show-result',
data: Array<{
id: string | number
status: boolean
factoryOrderNumber?: string
message: string
}>,
): void
}>()
defineExpose({
showDialog,
})
watch(isAutoMatch, (newVal) => {
if (newVal) {
getLogisticsCompanyListFn()
}
})
</script>
<style lang="scss" scoped>
.logistic-company-item {
padding: 10px 10px;
cursor: pointer;
&:hover {
background-color: #f0f0f0;
}
}
.selected-logistic-company {
background-color: #f0f0f0;
}
</style>
...@@ -16,6 +16,15 @@ ...@@ -16,6 +16,15 @@
<span>播种墙配货</span> <span>播种墙配货</span>
<span v-if="socketConnect === 'online'" class="online">[在线]</span> <span v-if="socketConnect === 'online'" class="online">[在线]</span>
<span v-else class="offline">[离线]</span> <span v-else class="offline">[离线]</span>
<ElButton
v-if="socketConnect === 'offline'"
type="success"
size="small"
:icon="Refresh"
@click="reconnectWebSocket"
>
刷新
</ElButton>
</div> </div>
</template> </template>
<div class="pod-make-order-content"> <div class="pod-make-order-content">
...@@ -146,13 +155,14 @@ ...@@ -146,13 +155,14 @@
<span class="box-top-item-box-index-text">号箱</span> <span class="box-top-item-box-index-text">号箱</span>
<span style="font-size: 30px">放入第</span> <span style="font-size: 30px">放入第</span>
<div class="box-top-item-box-index-number"> <div class="box-top-item-box-index-number" :style="{color:podOrderDetailsData?.pickingNumber ===
podOrderDetailsData?.purchaseNumber ? 'rgb(0, 255, 0)' : ''}">
{{ podOrderDetailsData?.pickingNumber }} {{ podOrderDetailsData?.pickingNumber }}
</div> </div>
<span style="font-size: 30px">件商品</span> <span style="font-size: 30px">件商品</span>
</div> </div>
<div v-else class="box-top-item-box-index-text"> <div v-else class="box-top-item-box-index-text">
单件商品订单,不占用播种墙 单件商品<span style="color: rgb(0, 255, 0)">(配齐)</span>,不占用播种墙
</div> </div>
<div class="box-top-item-status"> <div class="box-top-item-status">
<span <span
...@@ -180,7 +190,7 @@ ...@@ -180,7 +190,7 @@
<ElButton type="success" @click="handlePrintFinish" <ElButton type="success" @click="handlePrintFinish"
>打单完成</ElButton >打单完成</ElButton
> >
<ElButton type="danger" @click="handleClearBox">清空箱子</ElButton> <ElButton :disabled="boxIndex === 0" type="danger" @click="handleClearBox">清空箱子</ElButton>
</div> </div>
<div <div
v-if=" v-if="
...@@ -255,10 +265,11 @@ import { ...@@ -255,10 +265,11 @@ import {
printNormalPickPdfApi, printNormalPickPdfApi,
} from '@/api/podUsOrder' } from '@/api/podUsOrder'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
import { Check } from '@element-plus/icons-vue' import { Check, Refresh } from '@element-plus/icons-vue'
import socket from '@/utils/websocket' import socket from '@/utils/websocket'
import { WarehouseListData } from '@/types/api/podUsOrder' import { WarehouseListData } from '@/types/api/podUsOrder'
import { filePath } from '@/api/axios.ts' import { filePath } from '@/api/axios.ts'
import { ElButton, ElIcon } from 'element-plus'
const { getCLodop } = useLodop() const { getCLodop } = useLodop()
...@@ -467,7 +478,7 @@ const renderItemBox = (bool: boolean) => { ...@@ -467,7 +478,7 @@ const renderItemBox = (bool: boolean) => {
renderLock = true renderLock = true
let boxItem = podBoxList.value?.find((item) => item.box === boxIndex.value) let boxItem = podBoxList.value?.find((item) => item.box === boxIndex.value)
console.log(boxItem,'boxItem') console.log(boxItem, 'boxItem')
if (!boxItem) boxItem = { data: { productList: [] } } if (!boxItem) boxItem = { data: { productList: [] } }
const { data } = boxItem const { data } = boxItem
data?.productList?.forEach((el) => { data?.productList?.forEach((el) => {
...@@ -529,7 +540,7 @@ const renderItemBox = (bool: boolean) => { ...@@ -529,7 +540,7 @@ const renderItemBox = (bool: boolean) => {
console.log(408, data) console.log(408, data)
if (productList.every((item) => item.power)) { if (productList.every((item) => item.power)) {
if(userStore.user?.id!==boxItem.fromUser) return if (userStore.user?.id !== boxItem.fromUser) return
print(data, false, () => { print(data, false, () => {
renderLock = false renderLock = false
}) })
...@@ -561,7 +572,7 @@ const messageChange = (data: WebSocketMessage) => { ...@@ -561,7 +572,7 @@ const messageChange = (data: WebSocketMessage) => {
} }
} }
const setPodBoxList = (data: WebSocketMessage) => { const setPodBoxList = (data: WebSocketMessage) => {
console.log(data,'datatatata') console.log(data, 'datatatata')
const obj = data.txt const obj = data.txt
if (obj && typeof obj === 'string') { if (obj && typeof obj === 'string') {
const parsedData = JSON.parse(obj) const parsedData = JSON.parse(obj)
...@@ -646,6 +657,9 @@ const getPackingData = async (code: string) => { ...@@ -646,6 +657,9 @@ const getPackingData = async (code: string) => {
productionOrder.value = '' productionOrder.value = ''
return return
} }
if(!warehouseId.value){
return ElMessage.warning('请选择仓库')
}
const res = await getPackingDataApi( const res = await getPackingDataApi(
code, code,
factoryNo, factoryNo,
...@@ -702,17 +716,9 @@ const submitInspection = async (callback: () => void) => { ...@@ -702,17 +716,9 @@ const submitInspection = async (callback: () => void) => {
if (!factoryNo) { if (!factoryNo) {
return return
} }
const data = podOrderDetailsData.value?.id
? [
{
id: podOrderDetailsData.value.id,
version: podOrderDetailsData.value?.version,
},
]
: []
try { try {
const res = await submitInspectionApi( const res = await submitInspectionApi(
data, podOrderDetailsData.value?.id,
boxIndex.value, boxIndex.value,
warehouseId.value, warehouseId.value,
) )
...@@ -749,7 +755,7 @@ const initOrderDetailBox = async () => { ...@@ -749,7 +755,7 @@ const initOrderDetailBox = async () => {
} }
orderStore.setPodBoxList({ orderStore.setPodBoxList({
boxList: res.data, boxList: res.data,
fromUser: userStore.user?userStore.user.id : 0, fromUser: userStore.user ? userStore.user.id : 0,
factoryNo, factoryNo,
warehouseId: warehouseId.value, warehouseId: warehouseId.value,
}) })
...@@ -903,6 +909,10 @@ const handleBoxClick = (item: PodMakeOrderData) => { ...@@ -903,6 +909,10 @@ const handleBoxClick = (item: PodMakeOrderData) => {
} }
const handleClearBox = async () => { const handleClearBox = async () => {
try { try {
if(!boxIndex.value){
ElMessage.warning('请选择箱子')
return
}
await ElMessageBox.alert('确定清空当前箱子吗?', '提示', { await ElMessageBox.alert('确定清空当前箱子吗?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
...@@ -914,6 +924,7 @@ const handleClearBox = async () => { ...@@ -914,6 +924,7 @@ const handleClearBox = async () => {
if (!factoryNo) { if (!factoryNo) {
return return
} }
try { try {
const res = await clearBoxApi( const res = await clearBoxApi(
factoryNo, factoryNo,
...@@ -1012,7 +1023,7 @@ const print = (data: OrderData, forcePrint = false, callback?: () => void) => { ...@@ -1012,7 +1023,7 @@ const print = (data: OrderData, forcePrint = false, callback?: () => void) => {
const factoryNo = userStore.user?.factory.id const factoryNo = userStore.user?.factory.id
if (!factoryNo) return if (!factoryNo) return
orderStore.setPodBoxList({ orderStore.setPodBoxList({
fromUser:userStore.user?userStore.user.id:0, fromUser: userStore.user ? userStore.user.id : 0,
boxList: item ? (item.data as PodMakeOrderData[]) : null, boxList: item ? (item.data as PodMakeOrderData[]) : null,
factoryNo, factoryNo,
box: _boxIndex || undefined, box: _boxIndex || undefined,
...@@ -1031,7 +1042,10 @@ const clearAllBox = async () => { ...@@ -1031,7 +1042,10 @@ const clearAllBox = async () => {
return return
} }
try { try {
const res = await clearAllBoxApi(warehouseId.value,userStore.user?.factory.id) const res = await clearAllBoxApi(
warehouseId.value,
userStore.user?.factory.id,
)
if (res.code !== 200) return if (res.code !== 200) return
// orderStore.setPodBoxList({ // orderStore.setPodBoxList({
// boxList: res.data, // boxList: res.data,
...@@ -1103,6 +1117,28 @@ const printNormal = async () => { ...@@ -1103,6 +1117,28 @@ const printNormal = async () => {
ElMessage.success('操作成功') ElMessage.success('操作成功')
window.open(filePath + res.message) window.open(filePath + res.message)
} }
const reconnectWebSocket = async () => {
if (!userStore.user?.factory.id) return
try {
await socket.init(
{
account: userStore.user?.account.toString(),
factoryNo: userStore.user?.factory.id.toString(),
},
messageChange,
)
socket.send({
code: 'STARTORDER',
factoryNo: userStore.user?.factory.id,
warehouseId: warehouseId.value,
})
} catch (error) {
console.error('WebSocket 重连失败:', error)
ElMessage.error('WebSocket 重连失败,请稍后重试')
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
......
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