yanghao 1 vecka sedan
förälder
incheckning
7333abfea5
1 ändrade filer med 29 tillägg och 0 borttagningar
  1. 29 0
      src/views/pms/qhse/safety/index.vue

+ 29 - 0
src/views/pms/qhse/safety/index.vue

@@ -780,11 +780,27 @@ const initPieChart = () => {
 
   pieChart.setOption(option)
 }
+
+const resizePieChart = () => {
+  pieChart?.resize()
+}
+
+let pieChartResizeObserver: ResizeObserver | null = null
+
 onMounted(async () => {
   getList()
   deptList2.value = handleTree(await DeptApi.getSimpleDeptList())
 
   getStatic()
+
+  window.addEventListener('resize', resizePieChart)
+
+  if (pieChartRef.value) {
+    pieChartResizeObserver = new ResizeObserver(() => {
+      resizePieChart()
+    })
+    pieChartResizeObserver.observe(pieChartRef.value)
+  }
 })
 
 onUnmounted(() => {
@@ -792,6 +808,12 @@ onUnmounted(() => {
     pieChart.dispose()
     pieChart = null
   }
+  window.removeEventListener('resize', resizePieChart)
+
+  if (pieChartResizeObserver && pieChartRef.value) {
+    pieChartResizeObserver.unobserve(pieChartRef.value)
+    pieChartResizeObserver = null
+  }
 })
 
 watch(
@@ -799,6 +821,13 @@ watch(
   () => {
     nextTick(() => {
       initPieChart()
+
+      if (pieChartRef.value && !pieChartResizeObserver) {
+        pieChartResizeObserver = new ResizeObserver(() => {
+          resizePieChart()
+        })
+        pieChartResizeObserver.observe(pieChartRef.value)
+      }
     })
   },
   { deep: true }