From d55b5b015eef8c31d9dea6587dc6fd0e02818cd1 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期五, 31 十月 2025 08:21:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/Returns/upreturns.vue |  723 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 378 insertions(+), 345 deletions(-)

diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
index 6eb9698..250acf1 100644
--- a/UI-Project/src/views/Returns/upreturns.vue
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -1,13 +1,13 @@
 <script lang="ts" setup>
-import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed} from "vue";
-import {useRouter} from "vue-router"
+import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed } from "vue";
+import { useRouter } from "vue-router"
 import { ElMessage, ElMessageBox } from 'element-plus'
-import {useI18n} from 'vue-i18n'
-import {host, WebSocketHost} from '@/utils/constants'
+import { useI18n } from 'vue-i18n'
+import { host, WebSocketHost } from '@/utils/constants'
 import request from "@/utils/request"
-import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
 const router = useRouter()
-const {t} = useI18n()
+const { t } = useI18n()
 const selectValuesa = reactive([]);
 const selectedProjectNo = ref('');
 const stationCell = ref('1');
@@ -16,39 +16,49 @@
 const blind = ref(false)
 const blinda = ref(false)
 const blindb = ref(false)
-const dialoglea = ref(false)
+const blindbd = ref(false)
+const ReportData = ref(true);
+const isLoading = ref(true);
 const canSelectProjecta = ref(true);
 const canSelectProjectb = ref(true);
 const canSelectProjectc = ref(false);
 const tableDatax = ref([])
 const tableDatad = ref([])
-const upstatus = ref(t('basicData.machineaa'));
+const upstatus = ref(t('basicData.machine'));
 const cuttingMachineStatusColor = ref('#911005');
 const tableDataa = ref<any[]>([]);
 const tableDatab = ref<any[]>([]);
+const stationInfos = reactive({});
+const buttonEnabledStatus = ref({});
+const globalDate = inject('globalDate');
+import { inject } from 'vue';
+import { tr } from "element-plus/es/locale";
 const tableData = ref([])
-const filteredData = computed(() => {
-  // applyFilters 鍑芥暟搴旇鍦ㄦ煇澶勫畾涔夛紝鐢ㄤ簬鏍规嵁褰撳墠绛涢�夋潯浠惰繃婊ゆ暟鎹�
-  return applyFilters(tableData, currentFilters);
-});
-// 褰撳墠绛涢�夋潯浠讹紝搴旇鏄竴涓搷搴斿紡鍙橀噺锛岀敤浜庡瓨鍌ㄧ敤鎴烽�夋嫨鐨勭瓫閫夊��
-const currentFilters = ref<{ state?: string }>({});
-const filterTag = (value: string, row: any) => {
-  return row.state === value
-};
-// 搴旂敤绛涢�夋潯浠剁殑鍑芥暟
-const applyFilters = (data: any[], filters: { state?: string }) => {
-  return data.filter(row => {
-    return (!filters.state || String(row.state) === filters.state);
-  });
-};
 const titleSelectJson = ref({
   engineerId: [],
 })
-const handlezhiban = () => {
-  dialoglea.value = true;
-  fetchFlowCardId();
+const selectGong = async () => {
+  try {
+    const response = await request.post('/loadGlass/loadglassdevicetaskhistory/queryAllMessage',{
+  redisRequest: 'loadGlassRequestOne',
+  stationCell: 5,
+  tableName: 'LOAD_GLASS_DEVICE_ONE_TASK',
+  webSocketName: 'loadGlassOne'
+});
+    if (response.code == 200) {
+    }
+  } catch (error) {
+  }
 };
+request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
+  state: null,
+  stationCell: 5
+}).then((response) => {
+  if (response.code == 200) {
+  } else {
+    // ElMessage.warning(response.msg)
+  }
+});
 const selectproject = () => {
   dialogFormVisible.value = true;
   selectgong();
@@ -63,42 +73,48 @@
 };
 onMounted(() => {
   socket = initializeWebSocket(socketUrl, handleMessage);
+  selectGong()
 });
 onUnmounted(() => {
   if (socket) {
     closeWebSocket(socket);
   }
 });
-const fetchTableData = async () => {
-  try {
-    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
-    if (response.code === 200) {
-      tableData.value = response.data
-      // tableData.splice(0, tableData.length, ...response.data);
-      ElMessage.error(response.message);
-     window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
-}
-  } catch (error) {
-    ElMessage.error(response.message);
-  }
-};
 let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
 const handleMessage = (data: any) => {
-  tableDataa.value = data.list[0].slice(0, 2);
-  if(data.loadTask1.length !=0){
-  tableData.value = data.loadTask1[0]
-  window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
-  canSelectProjecta.value = false;
-  canSelectProjectb.value = false;
-  canSelectProjectc.value = true;
-}
-else {
-  canSelectProjecta.value = true;
-  canSelectProjectb.value = true;
-  canSelectProjectc.value = false;
-  tableData.value = '';
-}
+  isLoading.value = true;
+  if (data.inkageState != null) {
+    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
+  }
+  if (data.stationList.length != 0) {
+    const processedData = [...data.stationList[0]];
+    if (processedData.length > 0) {
+      processedData[0] = { ...processedData[0], workstationId: 1 };
+    }
+    if (processedData.length > 1) {
+      processedData[1] = { ...processedData[1], workstationId: 2 };
+    }
+    tableDataa.value = processedData;
+  } else {
+    tableDataa.value = []
+  }
+  if (data.upPattenUsages.length != 0) {
+    isLoading.value = false;
+    tableData.value = data.upPattenUsages[0]
+    window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
+    canSelectProjecta.value = false;
+    canSelectProjectb.value = false;
+    canSelectProjectc.value = true;
+  }
+  else {
+    isLoading.value = false;
+    canSelectProjecta.value = true;
+    canSelectProjectb.value = true;
+    canSelectProjectc.value = false;
+    tableData.value = [];
+    window.localStorage.setItem('engineeringIda', '')
+  } 
 };
 onBeforeUnmount(() => {
   closeWebSocket();
@@ -115,7 +131,7 @@
     if (response.code == 200) {
       titleSelectJson.value.engineerId = response.data;
     } else {
-      ElMessage.error(response.message);
+      // ElMessage.error(response.message);
     }
   } catch (error) {
     console.error(error);
@@ -123,6 +139,14 @@
 };
 //閫夋嫨宸ョ▼棰勮纭
 const handlesure = async () => {
+   if (!selectedProjectNo.value) {
+    ElMessage.error(t('basicData.plselectproject'))
+    return
+  }
+   if (!filmRemove.value) {
+    ElMessage.error(t('Mounting.removalmethod'))
+    return
+  }
   try {
     const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
       stationCell: 5,
@@ -140,6 +164,7 @@
       filmRemove.value = '';
       markingMachineStatus.value = '#911005';
       cuttingMachineStatus.value = '#911005';
+      ReportData.value = false;
     } else {
       ElMessage.error(response.message);
     }
@@ -147,7 +172,6 @@
     console.error(error);
   }
 }
-
 // 寮�濮嬩笂鐗�
 const handleon = async () => {
   let filmRemove = window.localStorage.getItem('filmRemove')
@@ -161,12 +185,13 @@
         state: 1,
       })
       if (response.code == 200) {
-        ElMessage.success(response.message);  
+        ElMessage.success(response.message);
         canSelectProjecta.value = false;
         canSelectProjectb.value = false;
         canSelectProjectc.value = true;
         socket = initializeWebSocket(socketUrl, handleMessage);
         blind.value = false;
+        ReportData.value = true;
       } else {
         ElMessage.error(response.message);
       }
@@ -192,6 +217,10 @@
       if (response.code == 200) {
         ElMessage.success(response.message);
         blinda.value = false;
+        canSelectProjecta.value = true;
+        canSelectProjectb.value = true;
+        canSelectProjectc.value = false;
+        tableData.value = response.data;
       } else {
         ElMessage.error(response.message);
       }
@@ -224,24 +253,6 @@
     ElMessage.error(response.message);
   }
 };
-// 鍊肩彮淇℃伅
-const fetchFlowCardId = async () => {
-  try {
-    const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment', {
-      line: 2001,
-      workingProcedure: '鍐峰姞宸�'
-    })
-    if (response.code == 200) {
-      ElMessage.success(response.message);
-      tableDatax.value = response.data;
-    } else {
-      ElMessage.error(response.message);
-    }
-  } catch (error) {
-    console.error(error);
-  }
-}
-onMounted(fetchTableData);
 // 寮�濮嬩笂鐗�
 const handleBind = (row) => {
   blind.value = true;
@@ -251,13 +262,13 @@
   blinda.value = true;
 };
 const toggleEnableState = async (row: any) => {
-  if (!row.id) {  
-    ElMessage.error(t('basicData.updatanull'));  
+  if (!row.id) {
+    ElMessage.error(t('basicData.updatanull'));
     return;
-  }  
+  }
   const newState = row.state === 100 ? 0 : 100;
   try {
-    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', {id: row.id, state: newState});
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
     if (response.code === 200) {
       ElMessage.success(response.message);
       row.state = newState;
@@ -269,69 +280,69 @@
   }
 };
 // 鐮存崯
-const opena = async(row) => {  
+const opena = async (row) => {
   try {
-    const confirmResult = await ElMessageBox.confirm(  
-      t('searchOrder.broke'), 
-      t('productStock.prompt'),  
-      {  
-        confirmButtonText: t('productStock.yes'), 
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.broke'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
         cancelButtonText: t('productStock.cancel'),
-        type: 'warning',  
-      } 
-    );
-    if (confirmResult === 'confirm') {
-     const response = await request.post('/loadGlass/engineering/engineering/identControls', {
-       glassId: row.glassId,
-       line: 5,
-       status: 1,
-       type: 8,
-       workingProcedure: '涓婄墖',
-    })
-    if (response.code === 200) {
-      ElMessage.success(response.message);
-      } else {
-      ElMessage.error(response.msg);
-      }  
-    }  
-  } catch (error) {
-    console.error('鍙戠敓閿欒:', error);  
-  }  
-}; 
-// 浜哄伐鎷胯蛋
-const openb = async(row) => {  
-  try {
-    const confirmResult = await ElMessageBox.confirm(  
-      t('order.takeawaya'), 
-      t('productStock.prompt'),  
-      {  
-        confirmButtonText: t('productStock.yes'), 
-        cancelButtonText: t('productStock.cancel'),
-        type: 'warning',  
-      } 
+        type: 'warning',
+      }
     );
     if (confirmResult === 'confirm') {
       const response = await request.post('/loadGlass/engineering/engineering/identControls', {
-       glassId: row.glassId,
-       line: 5,
-       status: 1,
-       type: 9,
-       workingProcedure: '涓婄墖',
-    })
-    if (response.code === 200) {
-      ElMessage.success(response.message);
+        glassId: row.glassId,
+        line: 5,
+        status: 1,
+        state: 8,
+        workingProcedure: '涓婄墖',
+      })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
       } else {
-      ElMessage.error(response.msg);
-      }  
-    }  
+        ElMessage.error(response.msg);
+      }
+    }
   } catch (error) {
-    console.error('鍙戠敓閿欒:', error);  
-  }  
-}; 
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+// 浜哄伐鎷胯蛋
+const openb = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('order.takeawaya'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+        glassId: row.glassId,
+        line: 5,
+        status: 1,
+        state: 9,
+        workingProcedure: '涓婄墖',
+      })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+
 // 鏋跺瓙澶嶄綅
 const handleptask = async (workstationId: number) => {
-      console.log(workstationId);
-      try {
+  try {
     const confirmResult = await ElMessageBox.confirm(
       t('basicData.prackreset'),
       t('workOrder.prompt'),
@@ -342,12 +353,12 @@
       }
     );
     if (confirmResult === 'confirm') {
-      
+
       const slot = workstationId === 1 ? 101 : (workstationId === 2 ? 102 : null);
       if (slot !== null) {
         const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
           slot: slot,
-    })
+        })
         // const url = `/loadGlass/rawGlassStorageDetails/shelfReset?slot=${slot}`;
         // const response = await request.post(url);
         if (response.code === 200) {
@@ -363,7 +374,7 @@
 };
 // 缁撴潫宸ョ▼
 const deleteTask = async () => {
-      try {
+  try {
     const confirmResult = await ElMessageBox.confirm(
       t('searchOrder.pdeleteTask'),
       t('workOrder.prompt'),
@@ -374,19 +385,19 @@
       }
     );
     if (confirmResult === 'confirm') {
-    let engineeringId = window.localStorage.getItem('engineeringIda')
-    if (engineeringId !== '') {
-      const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
-        engineerId: engineeringId,
-      })
-      if (response.code == 200) {
-        ElMessage.success(response.message);
-        canSelectProjecta.value = true;
-        canSelectProjectb.value = true;
-        canSelectProjectc.value = false;
-        blindb.value = true;
-        tableDatad.value = response.data;
-      } else {
+      let engineeringId = window.localStorage.getItem('engineeringIda')
+      if (engineeringId !== '') {
+        const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
+          engineerId: engineeringId,
+        })
+        if (response.code == 200) {
+          ElMessage.success(response.message);
+          canSelectProjecta.value = true;
+          canSelectProjectb.value = true;
+          canSelectProjectc.value = false;
+          blindb.value = true;
+          tableDatad.value = response.data;
+        } else {
           ElMessage.error(response.message);
         }
       } else {
@@ -394,6 +405,12 @@
     }
   } catch (error) {
   }
+};
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindbd.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`;
 };
 function getStatusType2(filmRemove) {
   switch (filmRemove) {
@@ -408,11 +425,11 @@
 function getStatusText2(filmRemove) {
   switch (filmRemove) {
     case 0:
-      return t('Mounting.noremoval');//瀹屾垚
-    case 1:
-      return t('Mounting.coarselyground');//鏂板缓
+      return t('Mounting.noremoval');//涓嶉櫎鑶�
+    // case 1:
+      // return t('Mounting.coarselyground');
     case 2:
-      return t('Mounting.finegrinding');//鎵ц涓�
+      return t('Mounting.removal');//闄よ啘
   }
 }
 </script>
@@ -421,224 +438,240 @@
     <div>
       <div id="dotClass">
         <div>{{ $t('basicData.laserprinting') }}</div>
-        <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
         <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{
-            $t('basicData.yes')
-          }}
+          $t('basicData.yes')
+        }}
         </el-button>
         <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
-        <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
         <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
-            $t('basicData.yes')
-          }}
+          $t('basicData.yes')
+        }}
         </el-button>
         <div style="margin-left: 70px;">{{ upstatus }}</div>
-        <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
-  </div>
-    <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
-    <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
-    <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
-    <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
-    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
-      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
-        <el-table
-            height="400"
-            ref="table"
-            :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
-            :data="tableData"
-        >
-          <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="100" align="center"/>
-          <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center"/>
-          <el-table-column prop="height" :label="$t('Mounting.height')" align="center"/>
-          <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center"/>
-          <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/>
-          <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center"/>
-          <el-table-column
-          align="center"
-          prop="state"
-          :label="$t('Mounting.state')"
-          min-width="80"
-          :filters="[
-            { text: t('Mounting.pass'), value: 100 },
-            { text: t('Mounting.waiting'), value: 0 },
-          ]"
-          :filter-method="filterTag"
-          filter-placement="bottom-end"
-        >
-          <template #default="scope">
-            <el-tag
-                    :type="scope.row.state === 100 ? 'success' : 'warning'"
-                    @click="toggleEnableState(scope.row)"
-                    disable-transitions
-                >
-                  {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
-                </el-tag>
-          </template>
-        </el-table-column>
-    </el-table>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
       </div>
-    </el-card>
-    <div style="display: flex;">
-      <div style="width: 49%;float: left;margin-left: 300px;">
-        <div style="display: flex;">
-          <img src="../../assets/shangpianji.png" alt=""
-               style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
-          <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
-                    :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" >
-            <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="50"/>
-            <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/>
-            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
-            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
-            <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80"/>
-            <el-table-column fixed="right" :label="$t('film.operate')" align="center">
-            <template #default="scope">
-          <el-button size="mini" type="text" plain @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
-            </template>
-        </el-table-column>
-          </el-table>
-    </div>
-  </div>
-</div>
-  <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleon">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
-<!-- 缁撴潫宸ョ▼ -->
-  <el-dialog v-model="blindb" top="10vh" width="80%">
-    <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-        <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')"/>
-        <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')"/>
-        <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')"/>
-        <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')"/>
-        <el-table-column prop="width" align="center" :label="$t('basicData.width')"/>
-        <el-table-column prop="height" align="center" :label="$t('basicData.height')"/>
-        <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')"/>
-        <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')"/>
-        <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')"/>
-        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
-            <template #default="scope">
-              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
-              <el-button size="mini" type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
-            </template>
-        </el-table-column>
-        </el-table>
-        <template #footer>
-      <div id="dialog-footer">
-        <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
-  <!-- 鍊肩彮淇℃伅 -->
-    <el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
-      <el-table ref="table" style="margin-top: 20px;height: 300px;"
-                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-        <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
-        <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')"/>
-        <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
-        </el-table-column>
-        <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
-        </el-table-column>
-        </el-table>
-        <template #footer>
-      <div id="dialog-footer">
-        <el-button @click="dialoglea = false">{{ $t('large.close') }}</el-button>
-      </div>
-    </template>
-</el-dialog>
-  <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
-    <div style="margin-left: 50px;margin-bottom: 10px;">
-    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
-      <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;">
+      <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary"
+        @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
+      <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success"
+        @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
+        type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
+        type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
+      <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{
+        $t('searchOrder.historicaltasks') }}</el-button>
+      <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.oneloadingline')"
+        style="margin-top: 5px;margin-left: 20px;">
         <el-option :label="$t('Mounting.all')" value="0"></el-option>
         <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
         <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
       </el-select>
-    </el-form-item>
-    </div>
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleup">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
+      <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')"
+        style="margin-top: 5px;margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="null"></el-option>
+        <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
+        <el-option :label="$t('Mounting.pass')" value="100"></el-option>
+      </el-select>
+      <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{
+        $t('Mounting.setparameters') }}</el-button>
+  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <el-table height="400" ref="table" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
+            :data="tableData">
+            <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="120" align="center" />
+            <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center" />
+            <el-table-column prop="height" :label="$t('Mounting.height')" align="center" />
+            <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center" />
+            <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center" />
+            <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center" />
+            <el-table-column align="center" :label="$t('Mounting.state')" min-width="80" prop="state">
+              <template #default="scope">
+                <el-tag :type="scope.row.state === 100 ? 'success' : 'warning'" @click="toggleEnableState(scope.row)">
+                  <!-- 绛夊緟涓細0  閫氳繃锛�100 -->
+                  {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+                </el-tag>
+              </template>
+            </el-table-column>
+          </el-table>
         </div>
-  <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
-    <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
-      <el-form-item :label="$t('Mounting.loadingline')" :required="true">
-        <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
-          <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
-          <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item :label="$t('Mounting.projecta')" :required="true">
-        <el-select
-            v-model="selectedProjectNo"
-            filterable
-            clearable
-            :placeholder="$t('basicData.plselectproject')"
-            style="width: 220px"
-            @input="handleInputChange"
-        >
-          <el-option
-              v-for="item in titleSelectJson['engineerId']"
-              :key="item.id"
-              :label="item.projectNo"
-              :value="item.projectNo"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
-        <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
-          <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
-          <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
-          <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
-        </el-select>
-      </el-form-item>
+      </el-card>
     </div>
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handlesure">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+      <div style="display: flex;margin-left:5%">
+        <div style="width: 55%;float: left;margin-left: 300px;">
+          <div style="display: flex;">
+            <img src="/shangpianji.png" alt=""
+              style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 3%;">
+            <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="700"
+              :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+              <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="65" />
+              <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="75" />
+              <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="75" />
+              <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+              <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80" />
+              <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')"
+                min-width="60" />
+              <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100">
+                <template #default="scope">
+                  <el-button :disabled="(!scope.row.patternThickness)" type="text" plain
+                    @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
       </div>
-    </template>
-  </el-dialog>
+      <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleon">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+      <!-- 缁撴潫宸ョ▼ -->
+      <el-dialog v-model="blindb" top="10vh" width="80%">
+        <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')" />
+          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" />
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" />
+          <el-table-column prop="width" align="center" :label="$t('basicData.width')" />
+          <el-table-column prop="height" align="center" :label="$t('basicData.height')" />
+          <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" />
+          <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" />
+          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+              <el-button type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+      <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
+        <div style="margin-left: 50px;margin-bottom: 10px;">
+          <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+            <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
+              style="margin-left: 20px;">
+              <el-option :label="$t('Mounting.all')" value="0"></el-option>
+              <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+              <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleup">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+    </div>
+    <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
+      <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+          <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
+            <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+            <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('Mounting.projecta')" :required="true">
+          <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px" @input="handleInputChange">
+            <el-option v-for="item in titleSelectJson['engineerId']" :key="item.id" :label="item.projectNo"
+              :value="item.projectNo" />
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
+          <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
+            <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+            <!-- 涓嶉櫎鑶滐細0	闄よ啘锛�2 -->
+            <!-- <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option> -->
+            <el-option :label="$t('Mounting.removal')" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handlesure">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <!-- 鍘嗗彶浠诲姟 -->
+    <el-dialog v-model="blindbd" top="5vh" width="95%" @close="iframeUrl=''">
+      <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
   </div>
 </template>
 <style scoped>
- .flex-container {  
-  display: flex;  
+.flex-container {
+  display: flex;
   align-items: center;
-}  
-.flex-container .el-form-item {  
-  flex: 1;
-  margin-right: 0; /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */  
-}  
-.flex-container .el-form-item:last-child {  
-  margin-left: 20px; /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */  
 }
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+
+.flex-container .el-form-item {
+  flex: 1;
+  margin-right: 0;
+  /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */
+}
+
+.flex-container .el-form-item:last-child {
+  margin-left: 20px;
+  /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */
+}
+
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
   text-align: center;
   margin-top: -15px;
 }
+
 #dotClass {
   display: flex;
-  margin-left: 20px; 
+  margin-left: 20px;
   size: 50px;
   margin-top: 20px;
   margin-bottom: 10px;
 }
+.loading-container {
+  position: relative;
+  height: 100%;
+}
+/* 纭繚閬僵灞傚湪鏈�椤跺眰 */
+.el-loading-mask {
+  z-index: 2000 !important;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0