From b221416ffb858825f4c429f8fd0071387d53a016 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期四, 04 九月 2025 15:38:18 +0800
Subject: [PATCH] 掰片模块新增一键破损功能,中空理片笼-中空优先级开关、流程卡表格新增总和计算,缺片详情按钮及相关页面操作

---
 UI-Project/src/views/Identify/identifwu.vue     |   56 ++++++
 UI-Project/src/views/Identify/identifwutwo.vue  |   52 ++++++
 UI-Project/src/views/hollow/hollowslicecage.vue |  236 +++++++++++++++++++++++------
 UI-Project/src/views/Identify/identify.vue      |   74 +++++++++
 UI-Project/src/lang/en.js                       |    4 
 UI-Project/src/lang/py.js                       |    4 
 UI-Project/src/lang/zh.js                       |    4 
 UI-Project/src/lang/kr.js                       |    4 
 8 files changed, 372 insertions(+), 62 deletions(-)

diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index f0eb1b8..81fb0dd 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -129,12 +129,16 @@
     },
     order: {
         projectnumber: 'Please enter the project number',
+        noGlassToDamage:'No broken glass锛�',
         dilapidation: 'Breakage',
+        dilapidationWhether:'Whether it is broken with one click锛�',
         takeaway: 'Manual removal',
         takeawaya: 'Should the information be manually taken away锛�',
         takeon: 'The arrangement is complete',
     },
     searchOrder: {
+        firstLinePriority: 'First-line priority',
+        secondLinePriority: 'second-line priority',
         hollowPriority:'Hollow priority',
         furnaces:'Number of full furnaces',
         furnfullTemp: 'Total amount of glass',
diff --git a/UI-Project/src/lang/kr.js b/UI-Project/src/lang/kr.js
index 635a82c..67dbb02 100644
--- a/UI-Project/src/lang/kr.js
+++ b/UI-Project/src/lang/kr.js
@@ -128,12 +128,16 @@
       },
       order:{
           projectnumber:'頂勲鞝濏姼 氩堩樃毳� 鞛呺牓頃� 欤检劯鞖�',
+          noGlassToDamage:'旯 鞙犽Μ 鞐嗢潓锛�',
           dilapidation:'韺岇啇',
+          dilapidationWhether:'頃� 氩堨潣 韥措Ν鞙茧 旯電旍 鞐秬锛�',
           takeaway:'靾橂彊 鞝滉卑',
           takeawaya:'鞝曤炒臧� 靾橂彊鞙茧 靾橃霅橃棃電旍 鞐秬锛�',
           takeon:'欷�牍勱皜 鞕勲霅橃棃鞀惦媹雼�',
       },
       searchOrder:{
+          firstLinePriority: '鞚检劆 鞖办劆 靾滌渼',
+          secondLinePriority: '2靹� 鞖办劆靾滌渼',
           hollowPriority:'欷戧车 鞖办劆 靾滌渼',
           furnaces:'臧�霌� 彀瀳電� 鞖╆磻搿滌潣 靾�',
           furnfullTemp:'鞙犽Μ鞚� 齑濍焿',
diff --git a/UI-Project/src/lang/py.js b/UI-Project/src/lang/py.js
index 2416d17..2afb031 100644
--- a/UI-Project/src/lang/py.js
+++ b/UI-Project/src/lang/py.js
@@ -129,11 +129,15 @@
     order: {
         projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
         takeon:'鎽嗙墖瀹屾垚',
+        noGlassToDamage:'袧懈泻邪泻芯谐芯 斜懈褌芯谐芯 褋褌械泻谢邪锛�',
         dilapidation: '袩芯胁褉械卸写械薪懈械',
+        dilapidationWhether:'小谢芯屑邪械褌褋褟 谢懈 芯薪 芯写薪懈屑 泻谢懈泻芯屑锛�',
         takeawaya:'鏄惁浜哄伐鎷胯蛋璇ユ潯淇℃伅锛�',
         takeaway: '袙蟹褟褌褜 胁褉褍褔薪褍褞',
     },
     searchOrder: {
+        firstLinePriority: '袩褉懈芯褉懈褌械褌 锌械褉胁芯泄 谢懈薪懈懈',
+        secondLinePriority: '袩褉懈芯褉懈褌械褌 胁褌芯褉芯泄 谢懈薪懈懈',
         hollowPriority:'涓┖浼樺厛绾�',
         furnaces:'婊$倝鐐夋暟',
         furnfullTemp:'鐜荤拑鎬婚噺',
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 0197007..8f3174c 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -128,12 +128,16 @@
       },
       order:{
           projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
+          noGlassToDamage:'娌℃湁鍙牬鎹熺殑鐜荤拑锛�',
           dilapidation:'鐮存崯',
+          dilapidationWhether:'鏄惁涓�閿牬鎹燂紵',
           takeaway:'浜哄伐鎷胯蛋',
           takeawaya:'鏄惁浜哄伐鎷胯蛋璇ユ潯淇℃伅锛�',
           takeon:'鎽嗙墖瀹屾垚',
       },
       searchOrder:{
+          firstLinePriority: '涓�绾夸紭鍏�',
+          secondLinePriority: '浜岀嚎浼樺厛',
           hollowPriority:'涓┖浼樺厛绾�',
           furnaces:'婊$倝鐐夋暟',
           furnfullTemp:'鐜荤拑鎬婚噺',
diff --git a/UI-Project/src/views/Identify/identifwu.vue b/UI-Project/src/views/Identify/identifwu.vue
index 3ade8dd..02b90a0 100644
--- a/UI-Project/src/views/Identify/identifwu.vue
+++ b/UI-Project/src/views/Identify/identifwu.vue
@@ -1,7 +1,10 @@
 <template>
-  <div style="height: 500px;">
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+  <div style="height: 600px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 850px;">
+    <div style="display: flex;margin-left: 40%;margin-bottom: 5px;">
     <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ ava }}-{{ avanum }} </div>
+     <el-button @click="handleAllDamage" style="margin-left: 80%;margin-top: -5px;">{{$t('order.dilapidation')}}</el-button>
+    </div>
       <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
         <div style="position: relative;">
           <div
@@ -14,9 +17,9 @@
               backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.state)
                }">
             <div class="centered-text">
-              <div style="font-size: 20px;font-weight: bold;">{{ rect.glassId }}</div>
-              <div style="font-size: 20px;font-weight: bold;">{{ rect.flowCardId }}</div>
-              <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+              <div style="font-size: 10px;font-weight: bold;">{{ rect.glassId }}</div>
+              <div style="font-size: 10px;font-weight: bold;">{{ rect.flowCardId }}</div>
+              <div style="font-size: 15px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
             </div>
           </div>
         </div>
@@ -38,7 +41,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import {avatarEmits, ElMessage} from 'element-plus'
+import {avatarEmits,  ElMessage, ElMessageBox } from 'element-plus'
 import {onBeforeUnmount, computed, onMounted, onUnmounted, ref} from 'vue';
 import request from "@/utils/request"
 import {host, WebSocketHost} from '@/utils/constants'
@@ -70,6 +73,47 @@
     isActive: false
   }));
 }
+// 涓�閿牬鎹熸墍鏈夌幓鐠�
+const handleAllDamage = async () => {
+  try {
+      const confirmResult = await ElMessageBox.confirm(
+      t('order.dilapidationWhether'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    // 绛涢�夊嚭state涓嶆槸8鍜�9鐨勭幓鐠僆D
+    const glassIdList = adjustedRects.value
+      .filter(rect => rect.state !== 8 && rect.state !== 9)
+      .map(rect => rect.glassId);
+    if (glassIdList.length === 0) {
+      ElMessage.warning(t('order.noGlassToDamage')); // 娌℃湁鍙牬鎹熺殑鐜荤拑
+      return;
+    }
+    const response = await request.post('/cacheGlass/taskCache/identControlsByPatternSequence', {
+      glassIdList: glassIdList,
+      state: 8,
+      line: 1,
+      workingProcedure: '鍒囧壊',
+      remark: '鎺扮墖'
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      // 鏇存柊鎵�鏈夌幓鐠冪姸鎬�
+      glassIdList.forEach(glassId => {
+        updateRectStatus(glassId, 8);
+      });
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+    ElMessage.error(t(''));
+  }
+};
 // 鐮存崯
 const handleDamage = async () => {
   try {
diff --git a/UI-Project/src/views/Identify/identifwutwo.vue b/UI-Project/src/views/Identify/identifwutwo.vue
index 2ba788a..77666ce 100644
--- a/UI-Project/src/views/Identify/identifwutwo.vue
+++ b/UI-Project/src/views/Identify/identifwutwo.vue
@@ -1,7 +1,10 @@
 <template>
   <div style="height: 500px;">
     <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+     <div style="display: flex;margin-left: 40%;margin-bottom: 5px;">
     <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ ava }}-{{ avanum }} </div>
+     <el-button @click="handleAllDamage" style="margin-left: 80%;margin-top: -5px;">{{$t('order.dilapidation')}}</el-button>
+    </div>
     <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
         <div style="position: relative;">
           <div
@@ -14,9 +17,9 @@
               backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.state)
                }">
             <div class="centered-text">
-              <div style="font-size: 20px;font-weight: bold;">{{ rect.glassId }}</div>
-              <div style="font-size: 20px;font-weight: bold;">{{ rect.flowCardId }}</div>
-              <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+              <div style="font-size: 10px;font-weight: bold;">{{ rect.glassId }}</div>
+              <div style="font-size: 10px;font-weight: bold;">{{ rect.flowCardId }}</div>
+              <div style="font-size: 15px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
             </div>
           </div>
         </div>
@@ -38,7 +41,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import {ElMessage} from 'element-plus'
+import {avatarEmits,  ElMessage, ElMessageBox } from 'element-plus'
 import {onBeforeUnmount, computed, onMounted, onUnmounted, ref} from 'vue';
 import request from "@/utils/request"
 import {host, WebSocketHost} from '@/utils/constants'
@@ -131,6 +134,47 @@
     isActive: false
   }));
 }
+// 涓�閿牬鎹熸墍鏈夌幓鐠�
+const handleAllDamage = async () => {
+  try {
+      const confirmResult = await ElMessageBox.confirm(
+      t('order.dilapidationWhether'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    // 绛涢�夊嚭state涓嶆槸8鍜�9鐨勭幓鐠僆D
+    const glassIdList = adjustedRects.value
+      .filter(rect => rect.state !== 8 && rect.state !== 9)
+      .map(rect => rect.glassId);
+    if (glassIdList.length === 0) {
+      ElMessage.warning(t('order.noGlassToDamage')); // 娌℃湁鍙牬鎹熺殑鐜荤拑
+      return;
+    }
+    const response = await request.post('/cacheGlass/taskCache/identControlsByPatternSequence', {
+      glassIdList: glassIdList,
+      state: 8,
+      line: 2,
+      workingProcedure: '鍒囧壊',
+      remark: '鎺扮墖'
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      // 鏇存柊鎵�鏈夌幓鐠冪姸鎬�
+      glassIdList.forEach(glassId => {
+        updateRectStatus(glassId, 8);
+      });
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+    ElMessage.error(t(''));
+  }
+};
 // 鐮存崯
 const handleDamage = async () => {
   try {
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 6a1e5f0..390d7b7 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -3,7 +3,7 @@
     <div style="display: flex;">
       <el-input v-model="engineerId" style="margin-left: 15px;margin-top: 10px;width: 240px" :placeholder="$t('order.projectnumber')"/>
           <el-button type="primary" style="margin-left: 10px;margin-top: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
-       <el-pagination
+          <el-pagination
           v-model:current-page="currentPage"
           :page-size="pageSize"
           :size="size"
@@ -13,8 +13,31 @@
           @current-change="handleCurrentChange"
           style="margin-top: 10px;"
       />
+       <el-select 
+        v-model="allDamagePatternSequence"
+        :placeholder="$t('workOrder.cway')"
+        clearable
+        style="width: 140px; margin-left: 35%; margin-top: 10px;"
+      >
+        <el-option
+          v-for="item in optionsb"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value"
+        />
+      </el-select>
+      <!-- 淇敼涓�閿牬鎹熸寜閽紝娣诲姞绂佺敤鐘舵�� -->
+      <el-button 
+        type="warning" 
+        style="margin-left: 10px; margin-top: 10px;" 
+        @click="handleAllDamage"
+        :disabled="!allDamagePatternSequence"
+      >
+        {{$t('order.dilapidation')}}
+      </el-button>
       </div>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+     <!-- <el-button @click="handleAllDamage" style="margin-left: 90%;margin-top: -20px;margin-bottom: 5px;">{{$t('order.dilapidation')}}</el-button> -->
       <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
   <div style="position: relative;">  
     <div
@@ -64,7 +87,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import {ElMessage} from 'element-plus'
+import {avatarEmits,  ElMessage, ElMessageBox } from 'element-plus'
 import {computed, onMounted, onUnmounted, ref} from 'vue';
 import request from "@/utils/request"
 import {host, WebSocketHost} from '@/utils/constants'
@@ -84,6 +107,7 @@
 const currentPage = ref('');
 const realwidth = ref('');
 const realheight = ref('');
+const allDamagePatternSequence = ref();
 const disabled = false;
 const size = 'small';
 const rawData = ref([]);
@@ -104,6 +128,52 @@
     isActive: false  
   }));  
 }
+// 涓�閿牬鎹熸墍鏈夌幓鐠�
+const handleAllDamage = async () => {
+   if (!allDamagePatternSequence.value) {
+    ElMessage.warning(t('workOrder.cway')); // 鎻愮ず闇�瑕侀�夋嫨绾胯矾
+    return;
+  }
+  try {
+      const confirmResult = await ElMessageBox.confirm(
+      t('order.dilapidationWhether'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    // 绛涢�夊嚭state涓嶆槸8鍜�9鐨勭幓鐠僆D
+    const glassIdList = adjustedRects.value
+      .filter(rect => rect.state !== 8 && rect.state !== 9)
+      .map(rect => rect.glassId);
+    if (glassIdList.length === 0) {
+      ElMessage.warning(t('order.noGlassToDamage')); // 娌℃湁鍙牬鎹熺殑鐜荤拑
+      return;
+    }
+    const response = await request.post('/cacheGlass/taskCache/identControlsByPatternSequence', {
+      glassIdList: glassIdList,
+      state: 8,
+      line: allDamagePatternSequence.value,
+      workingProcedure: '鍒囧壊',
+      remark: '鎺扮墖'
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      // 鏇存柊鎵�鏈夌幓鐠冪姸鎬�
+      glassIdList.forEach(glassId => {
+        updateRectStatus(glassId, 8);
+      });
+      allDamagePatternSequence.value = '';
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+    ElMessage.error(t(''));
+  }
+};
 // 鐮存崯
 const handleDamage = async () => {
   try  {
diff --git a/UI-Project/src/views/hollow/hollowslicecage.vue b/UI-Project/src/views/hollow/hollowslicecage.vue
index eb01fe4..c6d5241 100644
--- a/UI-Project/src/views/hollow/hollowslicecage.vue
+++ b/UI-Project/src/views/hollow/hollowslicecage.vue
@@ -28,10 +28,13 @@
 const tableDatae = ref([])
 const carPosition = ref([])
 const tableDatass = ref([])
+const tableDataLack = ref([])
 const ganghua = ref('')
 const diaodu = ref('')
 const hollowPriority = ref('')
 const flowCardId = ref('')
+const glassType = ref('')
+const layer = ref('')
 const filmsId = ref('')
 const adjust = ref([]);
 const adjusta = ref([]);
@@ -46,6 +49,7 @@
 const subRectsCountsc = ref([]);
 const subRectsCountsd = ref([]);
 const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁 
+const currentLack = reactive({});
 const currentPage2 = ref(1)
 const add = ref(false)
 const glassId = ref('');
@@ -59,13 +63,9 @@
 const cell8=ref(true);
 const cell9=ref(true);
 const blindb = ref(false)
+const dialogFormVisibleb = ref(false)
 const selectedRow = ref(null);
 const temperingengineerId=ref('');
-const handlePageChange2 = (newPage) => {
-  currentPage2.value = newPage;
-  window.localStorage.setItem('pagenumber', currentPage2.value)
-  fetchxiang();
-};
 const handleBindRack = (row) => {
   selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁  
   currentRow.deviceId  = row.deviceId; // 鐩存帴璁剧疆鍝嶅簲寮忓睘鎬�  
@@ -73,6 +73,64 @@
   window.localStorage.setItem('deviceId', row.deviceId)
   window.localStorage.setItem('slot', row.slot)
   add.value = true;
+};
+// 缂虹墖璇︽儏
+const handleMissingFilms = (row) => {
+  currentPage2.value = 1;
+  const { flowCardId } = row;
+  currentLack.flowCardId = row.flowCardId;
+  dialogFormVisibleb.value = true;
+  fetchFlowBind(flowCardId, currentPage2.value);
+};
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  fetchFlowBind(currentLack.flowCardId, currentPage2.value);
+};
+const fetchFlowBind = async (flowCardId, page) => {
+  try {
+    var url = "/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=" + flowCardId + "&layer=" + 1;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      tableDataLack.value = response.data[page];
+      ElMessage.success(response.message);
+    } else {
+    }
+  } catch (error) {
+  }
+}
+// 璁$畻鍚堣琛岀殑鏂规硶
+const getSummaries = (param) => {
+  const { columns, data } = param;
+  const sums: string[] = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = '鍚堣';
+      return;
+    }
+    
+    // 鍙闇�瑕佽绠楃殑鍒楄繘琛屾眰鍜�
+    const needSumColumns = ['sumCount', 'pairCount', 'totalNumber', 'realCount'];
+    if (needSumColumns.includes(column.property)) {
+      const values = data.map(item => Number(item[column.property]));
+      if (!values.every(value => isNaN(value))) {
+        sums[index] = values.reduce((prev, curr) => {
+          const value = Number(curr);
+          if (!isNaN(value)) {
+            return prev + curr;
+          } else {
+            return prev;
+          }
+        }, 0);
+        sums[index] += ''; // 杞负瀛楃涓�
+      } else {
+        sums[index] = 'N/A';
+      }
+    } else {
+      sums[index] = '';
+    }
+  });
+ 
+  return sums;
 };
 // 鎼滅储
 const searchout = async () => {
@@ -132,6 +190,38 @@
   } catch (error) {
   }  
 }; 
+// 缂虹墖璇︽儏-鐮存崯
+const handleBroke = async (row) => {
+  try {
+     const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.broke'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/hollowBigStorageGlassDamage', {
+      flowCardId: row.flowCardId,
+      glassType: row.glassType,
+      layer: row.layer,
+      state: 8,
+      line: 1,
+      workingProcedure: '涓┖',
+      remark: '涓┖'
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const { flowCardId } = row;
+      fetchFlowBind(flowCardId, currentPage2.value);
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
  // 鐮存崯
  const broke = async(row) => {  
   try {
@@ -315,23 +405,23 @@
   }
 }
 // 涓┖浼樺厛绾у紑鍏�
-// const handlehollowPriority = async () => {
-//   try  {
-//     const body = {  
-//       flag: hollowPriority.value,
-//     };
-//   var url="/hollowGlass/hollowGlassOutRelationInfo/priorityHollowSwitch?flag="+hollowPriority.value;
-//   const response = await request.post(url)
-//     if (response.code == 200) {
-//       ElMessage.success(response.message);
-//       hollowPriority.value = response.data
-//     }else {  
-//       ElMessage.error(response.message);
-//       }  
-// }
-// catch (error) {
-//   }
-// }
+const handlehollowPriority = async () => {
+  try  {
+    const body = {  
+      flag: hollowPriority.value,
+    };
+  var url="/hollowGlass/hollowGlassOutRelationInfo/priorityHollowSwitch?flag="+hollowPriority.value;
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      hollowPriority.value = response.data
+    }else {  
+      ElMessage.error(response.message);
+      }  
+}
+catch (error) {
+  }
+}
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/hollowGlassMessage`;
 const handleMessage = (data) => {
@@ -411,11 +501,11 @@
 }else{
   diaodu.value = ''
   }
-// if(data.priorityHollowSwitch!=null){
-//   hollowPriority.value = data.priorityHollowSwitch[0]
-// }else{
-//   hollowPriority.value = ''
-//   }
+if(data.priorityHollowSwitch!=null){
+  hollowPriority.value = data.priorityHollowSwitch[0]
+}else{
+  hollowPriority.value = ''
+  }
   if(data.bigStorageCageInfos!=null){
     adjustedRects.value = data.bigStorageCageInfos[0][1].map((rect, index) => ({
     id: index + 1,
@@ -678,11 +768,23 @@
 </script>
 <template>
   <div style="height: 600px;">
+    <div style="display: flex;">
     <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="primary" @click="handlexiang">{{ $t('searchOrder.cageinformation') }}</el-button>
     <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="success" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
     <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="danger" @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button>
     <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="diaodu" class="mb-2" :inactive-text="$t('searchOrder.Schedulingswitch')" @change="handlediaodu" />
-    <!-- <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="hollowPriority" class="mb-2" :inactive-text="$t('searchOrder.hollowPriority')" @change="handlehollowPriority" /> -->
+    <div style="display: flex;">
+   <div style="margin-left: 15px;margin-top: 5px;font-size: 14px;top: 5vh;margin-top: 12px;">{{ $t('searchOrder.hollowPriority') }}锛�</div>
+   <div style="margin-left: 15px;margin-top: 5px;font-size: 14px;top: 5vh;margin-top: 12px;color: #911005;">{{ $t('searchOrder.firstLinePriority') }}</div>
+    <el-switch 
+       style="margin-top: 7px;margin-left: 10px;" 
+       v-model="hollowPriority" 
+       class="mb-2" 
+       @change="handlehollowPriority" 
+     />
+   <div style="margin-left: 15px;margin-top: 5px;font-size: 14px;top: 5vh;margin-top: 12px;color: rgb(184, 130, 48)">{{ $t('searchOrder.secondLinePriority') }}</div>
+     </div>
+</div>
     <div id="dotClass">
         <div>{{ $t('searchOrder.inkageEntity') }}</div>
         <i :style="{ marginTop: '2px', backgroundColor: inkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
@@ -781,18 +883,32 @@
 </div>
 </div>
 <el-card style="flex: 1; height: 500px; overflow-y: auto;">
-      <div style="width: 100%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
-       <el-table height="550px" ref="table" border 
-       :data="tableDatass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-         <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140" />
-         <el-table-column prop="sumCount" align="center" :label="$t('searchOrder.totallogarithms')" min-width="120" />
-         <el-table-column prop="pairCount" align="center" :label="$t('searchOrder.numberpairs')" min-width="120" />
-         <el-table-column prop="totalNumber" align="center" :label="$t('hellow.totalnumber')" min-width="100" />
-         <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="120" />
-         <el-table-column prop="slotCount" align="center" :label="$t('searchOrder.numberoccupied')" min-width="120" />
-       </el-table>
-       </div>
-    </el-card>
+  <div style="width: 100%; height: 100%; overflow: hidden;">
+    <el-table 
+      ref="table" 
+      border 
+      :data="tableDatass" 
+      :header-cell-style="{background:'#F2F3F5', color:'#1D2129'}"
+      show-summary
+      :summary-method="getSummaries"
+      max-height="calc(500px - 35px)"
+      style="width: 100%;"
+    >
+      <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140" />
+      <el-table-column prop="sumCount" align="center" :label="$t('searchOrder.totallogarithms')" min-width="120" />
+      <el-table-column prop="pairCount" align="center" :label="$t('searchOrder.numberpairs')" min-width="120" />
+      <el-table-column prop="totalNumber" align="center" :label="$t('hellow.totalnumber')" min-width="100" />
+      <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="120" />
+      <el-table-column fixed="right" :label="$t('hellow.operate')" align="center">
+        <template #default="scope">
+          <el-button type="text" plain @click="handleMissingFilms(scope.row)">
+            {{ $t('hellow.missingfilms') }}
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</el-card>
   </div>
     <div style="padding: 10px;display: flex;height:110px;margin-top: -170px;">
             <div v-for="(item, index) in tableDatae" :key="index" id="occupy">  
@@ -994,18 +1110,38 @@
         </el-table-column>
         </el-table>
         <div>
-    <!-- <div style="margin-top: 20px;margin-left: 40%;">
-      <el-pagination
-          background
-          size="large"
-          layout="prev, pager, next"
-          :total="50"
-          :current-page.sync="currentPage2"
-          @current-change="handlePageChange2"
-        />
-    </div> -->
   </div>
   </el-dialog>
+  <!-- 缂虹墖璇︽儏 -->
+  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
+    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
+      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
+        {{ currentLack.flowCardId }}
+      </el-form-item>
+    </div>
+    <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDataLack"
+      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+      <el-table-column prop="glassType" align="center" :label="$t('large.serialnumber')" min-width="80" />
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
+      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
+      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
+      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" />
+      <el-table-column prop="damageCount" align="center" :label="$t('large.brokenNum')"/>
+      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
+            <template #default="scope">
+              <el-button type="text" plain  @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+            </template>
+        </el-table-column>
+      <div style="float: right;margin-bottom: 5px;">
+        <el-pagination layout="prev, pager, next" :total="50" />
+      </div>
+    </el-table>
+    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+      <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2"
+        @current-change="handlePageChange2" />
+    </div>
+  </el-dialog>
   <!-- 鍘嗗彶浠诲姟 -->
 <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
      <iframe 

--
Gitblit v1.8.0