From 0f25f857b81e6380f1b5cbf4d1e121b96e7dd486 Mon Sep 17 00:00:00 2001 From: z_yu <1534695664@qq.com> Date: Tue, 23 Aug 2022 13:39:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E8=AE=B0=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E9=97=A8=E7=A6=81=E8=AE=B0=E5=BD=95=E5=AE=9A=E6=97=B6=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=EF=BC=8C=E6=91=84=E5=83=8F=E5=A4=B4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/components/SecurityDoor.vue | 21 +++++--- src/views/components/WarehouseWarning.vue | 48 +++++++++++++------ src/views/storeManage/warehouse3D/index.vue | 17 ++++--- .../storeManage/warehouse3D/module/video.vue | 44 ++++++++++++++--- 4 files changed, 95 insertions(+), 35 deletions(-) diff --git a/src/views/components/SecurityDoor.vue b/src/views/components/SecurityDoor.vue index 6d22dfe..1399ec8 100644 --- a/src/views/components/SecurityDoor.vue +++ b/src/views/components/SecurityDoor.vue @@ -38,17 +38,19 @@ export default { }, data() { return { - tableData: [] // 正在展示的数据 + tableData: [], // 正在展示的数据 + time: null } }, created() { - securitydoor().then((data) => { - if (data && data.length > 0) { - this.tableData.push(...data) - } - }) + this.getSecuritydoor() + this.time = setInterval(() => { + this.getSecuritydoor() + }, 1000 * 30) }, destroyed() { + clearInterval(this.time) + this.time = null }, methods: { // 表格隔行变色 @@ -58,6 +60,13 @@ export default { } else { return '' } + }, + getSecuritydoor() { + securitydoor().then((data) => { + if (data && data.length > 0) { + this.tableData.splice(0, data.length, ...data) + } + }) } } } diff --git a/src/views/components/WarehouseWarning.vue b/src/views/components/WarehouseWarning.vue index 1a701ab..633beef 100644 --- a/src/views/components/WarehouseWarning.vue +++ b/src/views/components/WarehouseWarning.vue @@ -9,8 +9,8 @@ - - + + @@ -35,7 +35,10 @@ export default { }, data() { return { - tableData: [] // 正在展示的警情数据 + tableData: [], // 正在展示的警情数据 + scrollTimer: null, + showComplete: false, // 是否滚动显示完所有数据 + getDataTimer: null } }, watch: { @@ -45,14 +48,19 @@ export default { } }, created() { - alarmApi.info({ storeroomId: this.storeroomId }).then((data) => { - if (data && data.length > 0) { - this.tableData.push(...data) + this.getAlarmInfo() + this.getDataTimer = setInterval(() => { + if (this.showComplete) { + this.getAlarmInfo() + this.showComplete = false } - }) + }, 1000 * 30) }, destroyed() { - clearInterval(this.timer) + clearInterval(this.scrollTimer) + this.scrollTimer = null + clearInterval(this.getDataTimer) + this.getDataTimer = null }, methods: { // 表格隔行变色 @@ -65,17 +73,18 @@ export default { }, // table滚动 tableRefScroll() { - clearInterval(this.timer) // 清除定时器 + clearInterval(this.scrollTimer) // 清除定时器 const table = this.$refs.table // 获取DOM元素 - const wrapperHeight = table.$el.offsetHeight - 30 - // 组件一页能展示的数据条数 - this.displayNum = Math.floor(wrapperHeight / 40) + this.wrapperHeight = table.$el.offsetHeight - 30 + console.log(this.wrapperHeight) + // 组件一页能完整展示的数据条数 + this.displayNum = Math.floor(this.wrapperHeight / 40) if (this.tableData.length > this.displayNum) { const bodyWrapper = table.bodyWrapper // 获取表格中承载数据的div元素 this.addTableRefScroll(bodyWrapper) // 鼠标移入 bodyWrapper.onmouseover = () => { - clearInterval(this.timer) + clearInterval(this.scrollTimer) } // 鼠标移出 bodyWrapper.onmouseout = () => { @@ -86,10 +95,12 @@ export default { addTableRefScroll(bodyWrapper) { // let scrollTop = bodyWrapper.scrollTop if (this.displayNum && this.displayNum > 0) { - this.timer = setInterval(() => { + this.scrollTimer = setInterval(() => { // scrollTop = bodyWrapper.scrollTop - if (Math.round(bodyWrapper.scrollTop / 40) >= this.tableData.length - this.displayNum) { + console.log(bodyWrapper.scrollTop, bodyWrapper.scrollTop >= (this.tableData.length - this.displayNum) * 40) + if (bodyWrapper.scrollTop + this.wrapperHeight >= this.tableData.length * 40) { bodyWrapper.scrollTop = 0 + this.showComplete = true } else { bodyWrapper.scrollTop += this.displayNum * 40 } @@ -106,6 +117,13 @@ export default { // } }, 1000 * 3 * this.displayNum) } + }, + getAlarmInfo() { + alarmApi.info({ storeroomId: this.storeroomId }).then((data) => { + if (data && data.length > 0) { + this.tableData.splice(0, data.length, ...data) + } + }) } } } diff --git a/src/views/storeManage/warehouse3D/index.vue b/src/views/storeManage/warehouse3D/index.vue index 1315502..f845781 100644 --- a/src/views/storeManage/warehouse3D/index.vue +++ b/src/views/storeManage/warehouse3D/index.vue @@ -22,7 +22,7 @@ -