From 2935442d9bdb795fecaa704d3bce2f6249b208d4 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 25 十二月 2024 16:12:48 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes

---
 UI-Project/src/views/Slicecage/slicecage.vue |  185 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 155 insertions(+), 30 deletions(-)

diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 9f9aa3e..57a3c87 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1,16 +1,17 @@
 <script lang="ts" setup>
-import { useI18n } from 'vue-i18n'
-  const { t } = useI18n()
-  let language = ref(localStorage.getItem('lang') || 'zh')
-import {Search} from "@element-plus/icons-vue";
+import {useI18n} from 'vue-i18n'
 import {useRouter} from "vue-router"
-const router = useRouter()
 import request from "@/utils/request"
-import { WebSocketHost ,host} from '@/utils/constants'
-import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { tr } from "element-plus/es/locale";
+import {host, WebSocketHost} from '@/utils/constants'
+import {computed, onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue";
+const dialogFormVisibleaDownGlasss = ref(false)
+const scanGlass = ref([])
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const router = useRouter()
 const dialogFormVisible = ref(false)
 const dialoglea = ref(false)
 const dialogFormVisiblea = ref(false)
@@ -79,6 +80,7 @@
 const selectedRow = ref(null); // 瀛樺偍閫変腑鐨勮鏁版嵁  
 const temperingtotal = ref(0);
 const glasstotal = ref(0);
+const scheduletime = ref(0);
 const fulltotals = ref(0);
 const temperingengineerId=ref('');
     // 褰撳墠椤电爜鍜屾瘡椤垫樉绀虹殑鏉℃暟
@@ -142,6 +144,61 @@
   if (page >= 1 && page <= totalPages.value) {  
     currentPage.value = page;  
   }  
+}
+const printFlowCardId = ref('')
+const printLayer = ref('')
+const printGlassId = ref('')
+const dialogTableVisible1 = ref(false)
+const open1 = async (row) => {
+
+printFlowCardId.value = row.flowCardId;
+printLayer.value = row.layer
+printGlassId.value = row.glassId
+dialogTableVisible1.value = true;
+setTimeout(() => {
+  printFlowCard1();
+  //dialogTableVisible1.value = false;
+}, 1000);
+}
+
+const printFlowCard1 = () => {
+  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+  let el = document.getElementById("printFlowCard");
+  let doc = document;
+  let body = doc.body || doc.getElementsByTagName("body")[0];
+  let printId = "print-" + Date.now();
+
+  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+  let content = doc.createElement("div");
+  content.id = printId;
+
+  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+  let style = doc.createElement("style");
+  style.innerHTML =
+    "body>#" +
+    printId +
+    "{display:none}@media print{" +
+    "@page {" +
+    "    size: auto; " +
+    "    margin: 2mm 2mm 2mm 2mm;  " +
+    "  }body>:not(#" +
+    printId +
+    "){display:none !important}body>#" +
+    printId +
+    "{display:block;padding-top:1px}}";
+  //
+  content.innerHTML = el.outerHTML;
+  // // console.log("el.outerHTML", el.outerHTML);
+  body.appendChild(style);
+
+  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+  body.appendChild(content);
+  setTimeout(() => {
+    window.print();
+    body.removeChild(content);
+    body.removeChild(style);
+  }, 20);
 }
     // 涓婁竴椤靛拰涓嬩竴椤垫柟娉�
     const prevPage = () => {
@@ -589,6 +646,7 @@
 const handleganghua = () => {
   dialogFormVisiblec.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
   fetchFlow(); 
+  scheduleTime();
 };
 // 閽㈠寲鏌ヨ
  
@@ -619,6 +677,22 @@
   } 
 }
  
+const scheduleTime = async () => {
+  try  {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/scheduleTime')
+    if (response.code == 200) {
+      scheduletime.value = response.data
+      
+ 
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
  
 const fetchFlow = async () => {
   try  {
@@ -704,6 +778,18 @@
 const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
+  if (data.scanGlass != null) {
+    scanGlass.value = data.scanGlass[0];
+    let width = scanGlass.value.width;
+    let height = scanGlass.value.height;
+    if (width < height) {
+      scanGlass.value.width = height;
+      scanGlass.value.height = width;
+    }
+    if (autoPrint.value == true && browser.value == true) {
+      open1(scanGlass);
+    }
+  }
   //褰撳墠鎸囧畾宸ョ▼
   if(data.bigStorageCageDetailsOutTask!=null){
     temperingengineerId.value=data.temperingengineerId[0];
@@ -878,6 +964,7 @@
   // console.log("鍏抽棴浜�")
   closeWebSocket();
 });
+
 </script>
  
 <template>
@@ -888,27 +975,28 @@
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">{{ $t('searchOrder.searchlayout') }}</el-button>
     <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" />
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
-      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
-        <el-table height="100px" ref="table" 
+    <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
+      @click="dialogFormVisibleaDownGlasss = true">鏍囩鎵撳嵃
+    </el-button>
+    <div style="display: flex;">
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 240px;">
+        <el-table height="240px" ref="table" 
         :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="bigStorageCageOutTask.glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="140" />
           <el-table-column prop="bigStorageCageOutTask.startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
           <el-table-column prop="bigStorageCageOutTask.endSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
           <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" :label="$t('searchOrder.trips')" min-width="120" />
           <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" :label="$t('searchOrder.number')" min-width="120" />
-          <el-table-column prop="bigStorageCageOutTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
-          <template #default="scope">  
-            <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
-          </template>
-          </el-table-column>
+          <!-- <el-table-column prop="bigStorageCageOutTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
+          </el-table-column> -->
           <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> -->
-          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
-          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
-          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/>
-          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
+          <!-- <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/> -->
+          <!-- <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/> -->
+          <!-- <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/> -->
+          <!-- <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/> -->
           <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140"/>
-          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
+          <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/> -->
           <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="100"/>
           <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="100"/>
           <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="100"/>
@@ -924,8 +1012,8 @@
       </div>
     </el-card>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading">
-      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
-        <el-table height="100px" ref="table" 
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 240px;">
+        <el-table height="240px" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" />
@@ -938,12 +1026,12 @@
           </el-table-column>
           <el-table-column prop="bigStorageCageFeedTask.line" align="center" :label="$t('searchOrder.line')" min-width="120" />
           <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>  -->
-          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
-          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
-          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/>
-          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
+          <!-- <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/> -->
+          <!-- <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/> -->
+          <!-- <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/> -->
+          <!-- <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/> -->
           <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140"/>
-          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
+          <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/> -->
           <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="100"/>
           <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="100"/>
           <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="100"/>
@@ -958,6 +1046,8 @@
         </el-table>
       </div>
     </el-card>
+    </div>
+    
     <div style="padding: 10px;display: flex;height:130px;">
             <div v-for="(item, index) in tableDatae" :key="index" id="occupy">  
                <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>  
@@ -1517,6 +1607,13 @@
   <div style="margin-bottom: 20px">
       <el-form>
         <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('searchOrder.scheduletime')" style="width: 14vw">
+                {{ scheduletime }}
+              </el-form-item>
+              </div>
+          </el-col>
           <el-col :span="4">
               <div id="dt" style="font-size: 15px;">
               <el-form-item :label="$t('searchOrder.temperingtotal')"  style="width: 14vw">
@@ -1559,6 +1656,7 @@
           <el-table-column prop="tempering_layout_id" fixed align="center" :label="$t('searchOrder.layoutnumber')" min-width="120" />
           <el-table-column prop="count2" align="center" :label="$t('searchOrder.allnumber')" min-width="150" />
           <el-table-column prop="count1" align="center" :label="$t('searchOrder.numbercages')" min-width="150" />
+          <el-table-column prop="slots" align="center" :label="$t('searchOrder.numberslots')" min-width="150" />
           <el-table-column prop="count3" align="center" :label="$t('searchOrder.missingquantity')" min-width="150" />
           <el-table-column prop="count4" align="center" :label="$t('searchOrder.breakquantity')" min-width="150" />
           <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="250">
@@ -1608,6 +1706,33 @@
         </el-table-column>
         </el-table>
 </el-dialog>
+<el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('浜哄伐涓嬬墖淇℃伅')">
+          <div style="display:flex;justify-content: space-around;">
+            <el-card
+              style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
+              <div
+                :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }">
+
+              </div>
+              <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
+                <div>鎵爜鏋綋鍓嶇幓鐠冧俊鎭�</div>
+                <div>
+                  <el-button type="primary" @click="open1(scanGlass)">鎵撳嵃鏍囩</el-button>
+                </div>
+                <div>{{ scanGlass.flowCardId }}</div>
+                <div>{{ scanGlass.layer }}</div>
+                <div>{{ scanGlass.glassId }}</div>
+                <div>{{ scanGlass.width }}</div>
+                <div>{{ scanGlass.height }}</div>
+
+              </div>
+            </el-card>
+          </div>
+        </el-dialog>
+        <el-dialog id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close>
+    <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
+                 :printGlassId="printGlassId" style=""/>
+  </el-dialog>
 </template>
 <style scoped>
 #dt { display:block; float:left;line-height: 20px;margin-left: 100px;}

--
Gitblit v1.8.0