From 2c56587caecb680d87e0209bb0099fb42a756536 Mon Sep 17 00:00:00 2001 From: Yxq <2290299376@qq.com> Date: Sat, 11 Oct 2025 16:45:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=87=BA=E5=BA=93=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev_wms_client/src/layout/goodsOut.vue | 151 +++++++++++++++---------- 1 file changed, 89 insertions(+), 62 deletions(-) diff --git a/dev_wms_client/src/layout/goodsOut.vue b/dev_wms_client/src/layout/goodsOut.vue index 22120e8..01b9eff 100644 --- a/dev_wms_client/src/layout/goodsOut.vue +++ b/dev_wms_client/src/layout/goodsOut.vue @@ -2,46 +2,46 @@
-
- -
- - - - - - - - - - - - - - - - - - 确认出库 - - 清除输入 - - -
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -230,25 +230,30 @@ let confirmEntities = reactive([ } ]) const confirmRules = reactive({}) -let pauseGetPickFlag = ref(false) +//let pauseGetPickFlag = ref(false) +let hasDataTaskResult = ref(false) // 记录上次请求是否有数据 const route = useRoute()// 路由 // 系统 onMounted(() => { nextTick(() => { - timer.value = setInterval(() => { - timerTask_1() - }, 1000) + startTimer() // 调用启动定时器函数 }) }) onBeforeUnmount(() => { clearInterval(timer.value) }) +// 新增启动定时器的函数 +const startTimer = () => { + clearInterval(timer.value) // 先清除已存在的定时器 + timer.value = setInterval(() => { + timerTask_1() + }, 2000) // 默认2秒间隔 +} // 监视路由 +// 修改 watch 中的定时器设置 watch(() => route.path, (newVal, oldVal) => { if (newVal === '/goodsOut') { - timer.value = setInterval(() => { - timerTask_1() - }, 1000) + startTimer() // 调用启动定时器函数 } else { clearInterval(timer.value) } @@ -259,9 +264,9 @@ const timerTask_1 = () => { } // 获取拣选信息 const getTask = () => { - if (pauseGetPickFlag.value) { - return - } + // if (pauseGetPickFlag.value) { + // return + // } const request = { standId: STAND_ID, userName: USER_NAME @@ -271,6 +276,16 @@ const getTask = () => { const response = res.data console.log(response) if (response.code === 0) { + // 有数据的情况 + if (!hasDataTaskResult.value) { + // 从无数据切换到有数据,更改定时器频率 + hasDataTaskResult.value = true + clearInterval(timer.value) + timer.value = setInterval(() => { + timerTask_1() + }, 10000) // 10秒间隔 + } + const confirmVos = response.data // 根据主站台ID确定需要显示的子站台顺序 let childStandOrder = [] @@ -326,18 +341,28 @@ const getTask = () => { warningBox(`请注意!${found.childStandId}站台,剩余数量小于预警值,请检查并核对数量。`) } }) - - - - pauseGetPickFlag.value = true - } else if (response.code === 400) { - // 警告,弹框 - pauseGetPickFlag.value = true + } else if (response.code === 400) { + // 无数据的情况 + if (hasDataTaskResult.value) { + // 从有数据切换到无数据,更改定时器频率 + hasDataTaskResult.value = false + clearInterval(timer.value) + timer.value = setInterval(() => { + timerTask_1() + }, 2000) // 2秒间隔 + } warningBox(response.message) } }).catch(err => { console.log(err) - pauseGetPickFlag.value = true + // 请求错误视为无数据情况 + if (hasDataTaskResult.value) { + hasDataTaskResult.value = false + clearInterval(timer.value) + timer.value = setInterval(() => { + timerTask_1() + }, 2000) // 2秒间隔 + } errorBox('请求错误,请检查完原因后刷新界面。') }) } @@ -444,12 +469,14 @@ const confirmOrRelease = (index) => { confirmCurrentTask(request, { timeout: 5000 }).then(res => { const response = res.data if (response.code === 0) { - clearConfirmEntity(index) // 调用新添加的方法 - //清除数据 - pauseGetPickFlag.value = false + clearConfirmEntity(index) ElMessage.success(response.message) + // 确认后检查是否还有其他数据,如果没有则切换回2秒间隔 + setTimeout(() => { + // 这里可以触发一次检查,但不强制改变频率 + getTask() + }, 100) } else if (response.code === 400) { - pauseGetPickFlag.value = false warningBox(response.message) } else { // 错误,弹框