From e2a1ce94392a0794af18dd9a2bb2f60c231f528b Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期五, 23 五月 2025 15:35:12 +0800
Subject: [PATCH] 更新语言

---
 UI-Project/src/views/largescreendisplay/screendisplay.vue |  212 +++++++++++++++++++++++++----------------------------
 1 files changed, 100 insertions(+), 112 deletions(-)

diff --git a/UI-Project/src/views/largescreendisplay/screendisplay.vue b/UI-Project/src/views/largescreendisplay/screendisplay.vue
index 007521b..2a858e4 100644
--- a/UI-Project/src/views/largescreendisplay/screendisplay.vue
+++ b/UI-Project/src/views/largescreendisplay/screendisplay.vue
@@ -51,8 +51,10 @@
     numBoxes2.value = edgTwoTasks.value.length;
     initBoxes(boxes2, numBoxes2, 'firstup');
   }
-  timeAxisCreate("鍒囧壊褰撳ぉ杩愯鎯呭喌", chartLoad.value, myChartLoad, data.loadRunTimes[0]);
-  timeAxisCreate("纾ㄨ竟褰撳ぉ杩愯鎯呭喌", chartEdg.value, myChartEdg, data.loadRunTimes[0]);
+  timeAxisCreate(t('large.cuttingState'), chartLoad.value, myChartLoad, tableDataTime(false, data.loadRunTimes[0]));
+  timeAxisCreate(t('large.edgingState'), chartEdg.value, myChartEdg, tableDataTime(false, data.loadRunTimes[0]));
+
+
 };
 let socket2 = null;
 const temperingTaskType = ref([])
@@ -87,7 +89,7 @@
 const socketUrl3 = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/largenScreen`;
 const handleMessage3 = (data) => {
   bigStorageCageUsage.value = data.bigStorageCageUsage[0];
-  timeAxisCreate("閽㈠寲褰撳ぉ杩愯鎯呭喌", chartTemp.value, myChartTemp, data.tempRunTimes[0]);
+  timeAxisCreate(t('large.temperingState'), chartTemp.value, myChartTemp, tableDataTime(false, data.tempRunTimes[0]));
 };
 // let mychart = null; // 寤鸿璁句负澶栭儴鍙橀噺閬垮厤閲嶅鍒濆鍖�
 
@@ -99,6 +101,34 @@
   const seconds = date.getSeconds().toString().padStart(2, '0');
   return `${hours}:${minutes}:${seconds}`;
 }
+
+const tableDataTime = (result, tableDatax) => {
+  const tableData = [];
+  if (tableDatax.length > 0) {
+    tableDatax.forEach((item, index) => {
+      tableData.push({
+        firstTimestamp: index == 0 ? item.startTimestamp : tableDatax[index - 1].secondTimestamp,
+        secondTimestamp: index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp,
+        diffMinutes: item.diffMinutes,
+        startTimestamp: item.startTimestamp,
+        endTimestamp: item.endTimestamp,
+        state: 1
+      });
+      if (result) {
+        tableData.push({
+          firstTimestamp: item.firstTimestamp,
+          secondTimestamp: item.secondTimestamp,
+          diffMinutes: item.diffMinutes,
+          startTimestamp: item.startTimestamp,
+          endTimestamp: item.endTimestamp,
+          state: 2
+        });
+      }
+    });
+  }
+
+  return tableData;
+};
 
 const timeAxisCreate = (title, chartDom, mychart, RunTimes) => {
   if (!chartDom) {
@@ -119,24 +149,25 @@
     secondTime = RunTimes[0].endTimestamp;
   }
 
-  let datas = ref([])
-  RunTimes.forEach((item, index) => {
-    // if (index % 2 === 0) {
-    datas.value.push([item.firstTimestamp, -1, formatToTimeString(item.firstTimestamp)])
-    datas.value.push([item.secondTimestamp, 1, formatToTimeString(item.secondTimestamp)])
-    // } else {
-    //   datas.value.push([item.firstTimestamp, -1, item.diffMinutes])
-    //   datas.value.push([item.firstTimestamp, -1, item.diffMinutes])
-    // }
-  })
-  // console.log(D)
   // 鏋勫缓绾挎鏁扮粍
   const segments = RunTimes.map(item => ({
     type: 'line',
     symbol: 'none',
     data: [
-      [item.firstTimestamp, 0],
-      [item.secondTimestamp, 0]
+      {
+        value: [item.firstTimestamp, 0],
+        extra: {
+          start: item.firstTimestamp,
+          end: item.secondTimestamp
+        }
+      },
+      {
+        value: [item.secondTimestamp, 0],
+        extra: {
+          start: item.firstTimestamp,
+          end: item.secondTimestamp
+        }
+      }
     ],
     lineStyle: {
       color: 'red', // 鏀寔涓嶅悓棰滆壊
@@ -161,7 +192,21 @@
       trigger: 'axis',
       axisPointer: { type: 'line' },
       backgroundColor: 'rgba(50,50,50,0.7)',
-      textStyle: { color: '#fff' }
+      textStyle: { color: '#fff' },
+      formatter: (params) => {
+        const items = params
+          .map(p => {
+            const start = p.data?.extra?.start;
+            const end = p.data?.extra?.end;
+            const timeStr = p.axisValueLabel;
+            if (start && end) {
+              return `寮�濮嬫椂闂达細${start}<br/>缁撴潫鏃堕棿锛�${end}`;
+            }
+            return `鏃堕棿锛�${timeStr}`;
+          })
+          .filter(Boolean);
+        return items.join('<br/>');
+      }
     },
     grid: {
       top: '20%',
@@ -203,8 +248,8 @@
         ],
         lineStyle: {
           color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
-            { offset: 0, color: '#4facfe' },
-            { offset: 1, color: '#00f2fe' }
+            { offset: 0, color: 'red' },
+            { offset: 1, color: 'red' }
           ]),
           width: 5,
           shadowColor: 'rgba(0,0,0,0.2)',
@@ -216,83 +261,12 @@
       ...segments.map(seg => ({
         ...seg,
         lineStyle: {
-          color: '#ffcc00',
+          color: '#4facfe',
           width: 3,
           shadowColor: 'rgba(255,204,0,0.5)',
           shadowBlur: 5
         }
       })),
-      // 鍗$墖浜嬩欢锛堜紭鍖栨牱寮忥級
-      {
-        type: 'custom',
-        renderItem: function (params, api) {
-          const x = api.coord([api.value(0), api.value(1)])[0];
-          const yBase = api.coord([api.value(0), 0])[1];
-          const yOffset = api.value(1) > 0 ? -70 : 30;
-          const cardWidth = 40;
-          const cardHeight = 22;
-          const cardX = x;
-          const cardY = yBase + yOffset;
-          const text = api.value(2);
-
-          return {
-            type: 'group',
-            children: [
-              {
-                type: 'line',
-                shape: {
-                  x1: x,
-                  y1: yBase,
-                  x2: x,
-                  y2: cardY + (api.value(1) > 0 ? cardHeight : 0)
-                },
-                style: {
-                  stroke: '#888',
-                  lineWidth: 1.5,
-                  lineDash: [4, 2]
-                }
-              },
-              {
-                type: 'rect',
-                shape: {
-                  x: cardX - cardWidth / 2,
-                  y: cardY,
-                  width: cardWidth,
-                  height: cardHeight,
-                  r: 6 // 鍦嗚
-                },
-                style: {
-                  fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                    { offset: 0, color: '#ffffff' },
-                    { offset: 1, color: '#e0f7fa' }
-                  ]),
-                  stroke: '#00acc1',
-                  lineWidth: 1,
-                  shadowColor: '#ccc',
-                  shadowBlur: 6
-                }
-              },
-              {
-                type: 'text',
-                style: {
-                  text: text,
-                  x: cardX,
-                  y: cardY + cardHeight / 2,
-                  textAlign: 'center',
-                  textVerticalAlign: 'middle',
-                  font: '12px sans-serif',
-                  fill: '#006064'
-                }
-              }
-            ]
-          };
-        },
-        encode: {
-          x: 0
-        },
-        data: datas.value,
-        z: 10
-      }
     ]
   };
 
@@ -304,7 +278,7 @@
 const socketUrl4 = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/largenScreen`;
 const handleMessage4 = (data) => {
   hollowBigStorageCageUsage.value = data.hollowBigStorageCageUsage[0];
-  timeAxisCreate("涓┖褰撳ぉ杩愯鎯呭喌", chartHollow.value, myChartHollow, data.hollowRunTimes[0]);
+  timeAxisCreate(t('large.hollowState'), chartHollow.value, myChartHollow, tableDataTime(false, data.hollowRunTimes[0]));
 };
 let socket5 = null;
 let myChart = null;
@@ -334,13 +308,12 @@
     console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
     return;
   }
-  // myChart = echarts.init(chartDom);
   if (!myChart) {
     myChart = echarts.init(chartDom);
   }
-  // else {
-  //     myChart.clear();
-  //   }
+
+
+
 
 
   const option = {
@@ -375,6 +348,7 @@
   };
 
   myChart.setOption(option);
+
 
   const chartDom2 = chartRef2.value;
   if (!chartDom2) {
@@ -454,7 +428,7 @@
 
 const exportToExcel = async () => {
   try {
-    window.open('http://'+{WebSocketHost}+':10011/largenScreen/exportDailyProduction', '_blank');
+    window.open('http://' + { WebSocketHost } + ':10011/largenScreen/exportDailyProduction', '_blank');
     // const response = await request.get('/cacheGlass/largenScreen/exportDailyProduction');
     // if (response.code == 200) {
     //   ElMessage.success(response.message);
@@ -536,7 +510,7 @@
     orderDTOS.value = orderDTOS.value.slice(-MAX_ITEMS);
     // ...鍏朵粬鏁扮粍
   }
-  
+
   // 娓呯悊鍥捐〃
   [myChart, myChart2, myChartLoad, myChartEdg, myChartTemp, myChartHollow].forEach(chart => {
     if (chart) {
@@ -566,15 +540,15 @@
 
   const cleanupInterval = setInterval(() => {
     cleanupWebSocketData(true); // 瀹屽叏娓呯悊
-  }, 3000);
-  
+  }, 300000);
+
   // 姣忔鏀跺埌娑堟伅鏃舵鏌ユ暟鎹噺
   const originalHandleMessage = handleMessage;
   handleMessage = (data) => {
     originalHandleMessage(data);
     cleanupWebSocketData(false); // 閮ㄥ垎娓呯悊
   };
-  
+
   onUnmounted(() => {
     clearInterval(cleanupInterval);
     cleanupWebSocketData(true); // 缁勪欢鍗歌浇鏃跺畬鍏ㄦ竻鐞�
@@ -694,11 +668,11 @@
   if (box.frameCount % 2 === 0 && box.el) {
     box.el.style.top = `${box.y}px`;
     if (box.x > 0) {
-      
-      if(box.direction=="right"){
+
+      if (box.direction == "right") {
         box.el.style.right = `-${box.x}px`;
-        
-      }else{
+
+      } else {
         box.el.style.right = `${box.x}px`;
       }
       box.el.style.left = '';
@@ -857,6 +831,17 @@
   iframe11.value = true;
   iframeUrl11.value = `${window.location.origin}/#/largescreendisplay/productionstatistics`;
 };
+
+const iframeUrl12 = ref('');
+const iframe12 = ref(false);
+const handlehistorical12 = (key) => {
+  iframe12.value = true;
+  const params = new URLSearchParams({
+    key: key,
+  });
+  iframeUrl12.value = `${window.location.origin}/#/largescreendisplay/timeaxis?${params.toString()}`;
+};
+
 const transposedData = computed(() => {
   const keys = Object.keys(fieldNames); // 鎸� fieldNames 鐨勯『搴�
   return keys.map(key => {
@@ -925,14 +910,17 @@
         frameborder="0"></iframe>
     </el-dialog>
     <el-dialog v-model="iframe10" top="5vh" width="95%" @close="iframeUrl10 = ''">
-      <iframe :src="iframeUrl10" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
-        frameborder="0"></iframe>
+      <iframe :src="iframeUrl10" marginwidth="2000px" marginheight="2000px" width="100%"
+        height="700px" frameborder="0"></iframe>
     </el-dialog>
     <el-dialog v-model="iframe11" top="5vh" width="95%" @close="iframeUrl11 = ''">
       <iframe :src="iframeUrl11" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
         frameborder="0"></iframe>
     </el-dialog>
-
+    <el-dialog v-model="iframe12" top="5vh" width="95%" @close="iframeUrl12 = ''">
+      <iframe :src="iframeUrl12" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
     <div class="awatch" style="display: flex;">
       <!-- 鐢熶骇缁熻 -->
       <div style="height: 100px;width: 25%;float: right;">
@@ -940,10 +928,10 @@
           <div ref="chartRef" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
         </div>
         <div style="width: 100%;height: 245px;display: flex;">
-          <div ref="chartLoad" style="width: 100%;"></div>
+          <div ref="chartLoad" style="width: 100%;" @dblclick="handlehistorical12(1)"></div>
         </div>
         <div style="width: 100%;height: 245px;display: flex;">
-          <div ref="chartEdg" style="width: 100%;"></div>
+          <div ref="chartEdg" style="width: 100%;" @dblclick="handlehistorical12(2)"></div>
         </div>
       </div>
       <div style="width: 50%;">
@@ -1122,10 +1110,10 @@
           <div ref="chartRef2" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
         </div>
         <div style="width: 100%;height: 245px;display: flex;">
-          <div ref="chartTemp" style="width: 100%;"></div>
+          <div ref="chartTemp" style="width: 100%;" @dblclick="handlehistorical12(3)"></div>
         </div>
         <div style="width: 100%;height: 245px;display: flex;">
-          <div ref="chartHollow" style="width: 100%;"></div>
+          <div ref="chartHollow" style="width: 100%;" @dblclick="handlehistorical12(4)"></div>
         </div>
       </div>
     </div>

--
Gitblit v1.8.0