feat(wms): 新增标签预览功能及相关组件

添加盐雾试验、力学性能、样品、生产和外标签预览组件
实现标签图片下载和打印功能
调整钢卷管理页面布局和功能
优化大屏展示的全屏处理逻辑
This commit is contained in:
砂糖
2025-10-30 14:36:01 +08:00
parent fb78222796
commit 824ce738a9
14 changed files with 1006 additions and 25 deletions

View File

@@ -1,5 +1,8 @@
<template>
<Home></Home>
<!-- 给大屏组件套一个容器并通过ref获取该容器 -->
<div ref="fullscreenContainer" class="fullscreen-container">
<Home></Home>
</div>
</template>
<script>
@@ -7,5 +10,85 @@ import Home from '@/modules/dashboardBig/views/index.vue'
export default {
components: { Home },
mounted() {
// 确保容器DOM已渲染后对容器执行全屏
this.$nextTick(() => {
this.enterFullscreen()
this.addFullscreenListener()
})
},
beforeDestroy() {
// 移除监听,避免内存泄漏
this.removeFullscreenListener()
// 组件销毁时如果仍在全屏状态,退出全屏
this.exitFullscreen()
},
methods: {
// 进入全屏(针对目标容器)
enterFullscreen() {
// 获取大屏组件的容器元素
const container = this.$refs.fullscreenContainer
if (!container) return
// 对容器执行全屏(兼容各浏览器)
if (container.requestFullscreen) {
container.requestFullscreen()
} else if (container.mozRequestFullScreen) { // Firefox
container.mozRequestFullScreen()
} else if (container.webkitRequestFullscreen) { // Chrome, Safari
container.webkitRequestFullscreen()
} else if (container.msRequestFullscreen) { // IE/Edge
container.msRequestFullscreen()
}
},
// 退出全屏(通用方法)
exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen()
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen()
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen()
} else if (document.msExitFullscreen) {
document.msExitFullscreen()
}
},
// 处理全屏状态变化
handleFullscreenChange() {
// 检查是否退出全屏此时全屏元素应为null
const isExit = !document.fullscreenElement &&
!document.mozFullScreenElement &&
!document.webkitFullscreenElement &&
!document.msFullscreenElement
if (isExit) {
// 退出全屏后返回上一页
this.$router.back()
}
},
// 添加全屏状态监听(兼容各浏览器)
addFullscreenListener() {
document.addEventListener('fullscreenchange', this.handleFullscreenChange)
document.addEventListener('mozfullscreenchange', this.handleFullscreenChange)
document.addEventListener('webkitfullscreenchange', this.handleFullscreenChange)
document.addEventListener('MSFullscreenChange', this.handleFullscreenChange)
},
// 移除监听
removeFullscreenListener() {
document.removeEventListener('fullscreenchange', this.handleFullscreenChange)
document.removeEventListener('mozfullscreenchange', this.handleFullscreenChange)
document.removeEventListener('webkitfullscreenchange', this.handleFullscreenChange)
document.removeEventListener('MSFullscreenChange', this.handleFullscreenChange)
}
}
}
</script>
</script>
<style scoped>
/* 确保容器占满父容器,避免全屏后显示异常 */
.fullscreen-container {
width: 100%;
height: 100%;
/* 可根据需要添加其他样式(如背景色等) */
}
</style>