yuan
2 天以前 d1d3ea967d916d798dbb1979130137bdd5b6152c
src/views/reportAnalysis/dataDashboard/index.vue
@@ -13,17 +13,15 @@
    <!-- 顶部标题栏 -->
    <div class="dashboard-header">
      <div class="factory-name">{{ userStore.currentFactoryName }}</div>
      <div class="factory-name">基础数据</div>
    </div>
    <!-- 主要内容区域 -->
    <div class="dashboard-content">
    <!-- 左侧区域 -->
    <div class="left-panel">
      <!-- 客户信息统计分析 -->
      <LeftTop />
      <!-- 质量统计 -->
      <LeftBottom />
    </div>
@@ -36,10 +34,8 @@
    <!-- 右侧区域 -->
    <div class="right-panel">
      <!-- 应收应付统计 -->
      <RightTop />
      <!-- 回款与开票分析 -->
       <RightBottom />
    </div>
    </div>
@@ -48,7 +44,7 @@
</template>
<script setup>
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
import { ref, onMounted, onBeforeUnmount, nextTick, provide } from 'vue'
import autofit from 'autofit.js'
import LeftTop from './components/basic/left-top.vue'
import LeftBottom from './components/basic/left-bottom.vue'
@@ -69,6 +65,12 @@
// 用户store
const userStore = useUserStore()
// 大屏接口轮询间隔
const DASHBOARD_REFRESH_MS = 60 * 1000
const dataDashboardRefreshTick = ref(0)
provide('dataDashboardRefreshTick', dataDashboardRefreshTick)
let dashboardPollTimer = null
// 计算缩放比例
const calculateScale = () => {
@@ -144,9 +146,17 @@
  window.addEventListener('fullscreenchange', handleFullscreenChange)
  window.addEventListener('webkitfullscreenchange', handleFullscreenChange)
  window.addEventListener('MSFullscreenChange', handleFullscreenChange)
  dashboardPollTimer = setInterval(() => {
    dataDashboardRefreshTick.value++
  }, DASHBOARD_REFRESH_MS)
})
onBeforeUnmount(() => {
  if (dashboardPollTimer) {
    clearInterval(dashboardPollTimer)
    dashboardPollTimer = null
  }
  window.removeEventListener('resize', handleResize)
  window.removeEventListener('fullscreenchange', handleFullscreenChange)
  window.removeEventListener('webkitfullscreenchange', handleFullscreenChange)