From 47ae82867c0f1f0dc5417267fff1b5a12c33720b Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 17 六月 2024 14:11:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java    |    0 
 UI-Project/src/views/Slicecage/slicecage.vue                                                          |  453 +++++++++++++++++++++++++++-----------------
 UI-Project/src/views/User/rolelist.vue                                                                |    6 
 UI-Project/src/views/Returns/returns.vue                                                              |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java |   20 ++
 UI-Project/src/views/Caching/cachingbefore.vue                                                        |    2 
 UI-Project/src/views/User/permissions.vue                                                             |   24 --
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java          |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java            |    0 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                |   64 +++---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java                  |    0 
 11 files changed, 337 insertions(+), 234 deletions(-)

diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 0fa7fac..3672600 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -37,7 +37,7 @@
   }  
 }); 
 const toggleEnableState = async (row) => {  
-  const newState = row.enable_state === 1 ? 0 : 1;  
+  const newState = row.enable_state === 1 ? 0 : 1;
   // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵�侊紙杩欓噷鐪佺暐浜嗗疄闄呯殑璇锋眰閫昏緫锛�  
   const response = await request.post('/cacheGlass/edgStorageCage/updateEdgStorageCage', { id: row.id, enablestate: newState });  
   if (response.code === 200) {
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index da044de..6c8b687 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -3,49 +3,55 @@
 import {reactive} from "vue";
 import {useRouter} from "vue-router"
 import request from "@/utils/request"
-// import { ref } from 'vue'
 import { ref, onMounted, onBeforeUnmount } from 'vue';  
 import { WebSocketHost ,host} from '@/utils/constants'
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 const dialogFormVisible = ref(true)
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
-const width = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤 
-const height = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤 
+const width = ref();
+const height = ref();
 const adjustedRects = ref([]);
+const adjustedRects2 = ref([]);
 const adjustedRectsa = ref([]);
 const adjustedRectsb = ref([]);
-// 杩涚倝涓�
-
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
-// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
-
 const handleMessage = (data) => {
-  // 鏇存柊 tableData 鐨勬暟鎹�
+// 杩涚倝涓�
   adjustedRects.value =  data.intoGlass[0].map(rect => ({  
-        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
-        ycoordinate: rect.ycoordinate * 0.5,
-        width: rect.width * 0.4,
-        height: rect.height * 0.4,
+        ...rect, 
+        xcoordinate: rect.xCoordinate * 0.3,
+        ycoordinate: rect.ycoordinate * 0.3,
+        width: rect.width * 0.2,
+        height: rect.height * 0.2,
+        widtha: rect.width,
+        heighta: rect.height,
+      })); 
+  adjustedRects2.value =  data.intoGlass2[0].map(rect => ({  
+        ...rect, 
+        xcoordinate: rect.xCoordinate * 0.3,
+        ycoordinate: rect.ycoordinate * 0.3,
+        width: rect.width * 0.2,
+        height: rect.height * 0.2,
         widtha: rect.width,
         heighta: rect.height,
       })); 
       console.log(data.intoGlass[0]);
+  // 杩涚倝鍓�
       adjustedRectsa.value = data.waitingGlass[0].map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
+        xcoordinate: rect.xCoordinate * 0.5,
         ycoordinate: rect.ycoordinate * 0.5,
         width: rect.width * 0.4,
         height: rect.height * 0.4,
         widtha: rect.width,
         heighta: rect.height,
         state: rect.state
-      }));  
-      
+      }));
+    // 宸插嚭鐐�
       adjustedRectsb.value = data.outGlass[0].map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
+        xcoordinate: rect.xCoordinate * 0.5,
         ycoordinate: rect.ycoordinate * 0.5,
         width: rect.width * 0.4,
         height: rect.height * 0.4,
@@ -55,18 +61,14 @@
       }));  
 };
 onMounted(() => {
-  // fetchFlowCardId();
-  // fetchTableData(); // 鑾峰彇鏁版嵁
   initializeWebSocket(socketUrl, handleMessage);
 });
-
 onBeforeUnmount(() => {
   console.log("鍏抽棴浜�")
   closeWebSocket();
 });
 </script>
-
-<template> 
+<template>
   <div style="margin-top: 10px;">
      <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">杩涚倝涓�</el-button>
      <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >杩涚倝鍓�</el-button>
@@ -75,20 +77,18 @@
     <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 700px;" v-loading="loading">
 <div style="width: 49%;float: left;background-color: #f4f4f5;height: 650px;">
   <el-scrollbar height="630px">
-    <div v-for="(group, groupId) in groupedRects" :key="groupId" style="position: relative;">  
     <div  style="position: relative;width: 1400px;">  
       <div  
-      v-for="(rect, index) in adjustedRects"  
+      v-for="(rect, index) in adjustedRects"
       :key="index"  
-      class="rect"  
+      class="rect"
       :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
     >
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
     <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
-  </div> 
-   </div>
+  </div>
    </div>
    </el-scrollbar>
   </div>
@@ -96,23 +96,23 @@
   <el-scrollbar height="630px">
     <div  style="position: relative;width: 1400px;">  
       <div  
-      v-for="(rect, index) in adjustedRects"  
+      v-for="(rect, index) in adjustedRects2"
       :key="index"  
-      class="rect"  
+      class="rect"
       :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
     >
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
     <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
-  </div> 
+  </div>
    </div>
    </el-scrollbar>
 </div>
-    
    </el-card>
     </div>
 <div v-if="dialogFormVisiblea">
+  <!-- 杩涚倝鍓� -->
   <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
       <el-scrollbar height="630px">
     <div  style="position: relative;width: 1400px;">  
@@ -133,6 +133,7 @@
    </el-card>
 </div>
 <div v-if="dialogFormVisibleb">
+  <!-- 宸插嚭鐐� -->
   <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
       <el-scrollbar height="630px">
     <div  style="position: relative;width: 1400px;">  
@@ -154,7 +155,6 @@
 </div>
   </div>
 </template>
-
 <style scoped>
 #boxa{
   border: 1px solid rgb(119, 116, 116);
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 84df863..f1b1f89 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -795,7 +795,7 @@
               <div id="dt" style="font-size: 15px;">
         <div>
               <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
-                <el-input  v-model="number" autocomplete="off" />
+                <el-input placeholder="璇疯緭鍏ユ暟閲�" v-model="number" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
         </el-row>
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 068a4da..15839b1 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -3,6 +3,7 @@
 import {reactive} from "vue";
 import {useRouter} from "vue-router"
 const router = useRouter()
+import request from "@/utils/request"
 import { WebSocketHost ,host} from '@/utils/constants'
 import { ref, onMounted , onBeforeUnmount} from "vue";
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
@@ -17,8 +18,19 @@
 const tableDatad = ref([])
 const tableDatae = ref([])
 const adjustedRects = ref([]);
-const height = ref([]);
- 
+// const height = ref([]);
+const add = ref(false)
+const flowCardId = ref('');
+const gap = ref('');
+const glassId = ref('');
+const glassType = ref('');
+const height = ref('');
+const sequence = ref('');
+const state = ref('');
+const temperingFeedSequence = ref('');
+const temperingLayoutId = ref('');
+const thickness = ref('');
+const width = ref('');
 const carposition1 = ref(60);
 const carposition2 = ref(220);
 const carposition3 = ref(60);
@@ -49,30 +61,6 @@
  
 const currentPage4 = ref(4)
 const pageSize4 = ref(100)
-
-const dialogForm = () => {
-  ElMessageBox.confirm(
-    '纭畾瑕佹�ュ仠鍚�?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍚�',
-      type: 'warning',
-    }
-  )
-    .then(() => {
-      ElMessage({
-        type: 'success',
-        message: '鎬ュ仠鎴愬姛锛�',
-      })
-    })
-    .catch(() => {
-      ElMessage({
-        type: 'info',
-        message: '鎬ュ仠澶辫触',
-      })
-    })
-}
  
   var timer=setInterval(() => {
     // console.log(million.value,million1.value);
@@ -175,7 +163,7 @@
     }
     
   }, 1000);
- 
+
 const getTableRow = (row,type) =>{
   switch (type) {
     case 'edit' :{
@@ -189,7 +177,90 @@
     }
   }
 }
- 
+const handleBindRack = (row) => {
+  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 娣诲姞
+const handleConfirm = async () => {
+  try {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails', {
+      flowCardId: flowCardId.value,
+      gap: gap.value,
+      glassId: glassId.value,
+      glassType: glassType.value,
+      height: height.value,
+      sequence: sequence.value,
+      state: state.value,
+      temperingFeedSequence: temperingFeedSequence.value,
+      temperingLayoutId: temperingLayoutId.value,
+      thickness: thickness.value,
+      width: width.value,
+    }); 
+    if (response.code == 200) {
+      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+      ElMessage.success(response.message);
+      add.value = false;
+     tableData.value = response.data;
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row) => {
+  const newState = row.enableState === 1 ? 0 : 1;  
+  console.log(row.slot);
+  console.log(row.enableState);
+  var url="/cacheVerticalGlass/bigStorageCage/updateStorageCageDisabled?slot="+row.slot + "&enableState=" + newState;
+      console.log(url);
+      const response = await request.get(url) 
+  if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+  row.enableState = newState;  
+};
+// const tableData = ref([  
+//   // ...鎮ㄧ殑琛ㄦ牸鏁版嵁  
+//   id: 
+//   deviceId slot enableState remainWidth
+
+// ]);  
+ // 鍒犻櫎 
+ const opena = async(row) => {  
+  try {  
+    const confirmResult = await ElMessageBox.confirm(  
+      '鏄惁鍒犻櫎璇ユ潯淇℃伅?',  
+      '鎻愮ず',  
+      {  
+        confirmButtonText: '鏄�',  
+        cancelButtonText: '鍙栨秷',  
+        type: 'warning',  
+      }  
+    );  
+    if (confirmResult === 'confirm') {  
+      // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails", {
+        menuId: row.id,
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+        // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
+      ElMessage.error(response.msg);
+        // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
+      }  
+    }  
+  } catch (error) {  
+    // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+}; 
 
 const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
@@ -278,13 +349,8 @@
  
 <template>
   <div style="height: 700px;">
-    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">鎵嬪姩杩涚墖</el-button> -->
     <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true">鐞嗙墖绗间俊鎭�</el-button>
     <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="success" @click="dialogFormVisibleb = true">鍑虹墖闃熷垪</el-button>
-    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟杩涚墖</el-button> -->
-    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟鍑虹墖</el-button> -->
-    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger"  @click="dialogForm">杞�ュ仠</el-button> -->
-    
     <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="100%" ref="table" 
@@ -313,7 +379,7 @@
         @selection-change="handleSelectionChange"
         :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
-          <el-table-column prop="bigStorageCageFeedTask.tragetSlot" align="center" label="鐩爣浣嶇疆" min-width="120" />
+          <el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center" label="鐩爣浣嶇疆" min-width="120" />
           <!-- <el-table-column prop="task_type" align="center" label="浠诲姟绫诲瀷" min-width="120" />娌℃湁杩斿洖瀛楁 -->
           <el-table-column prop="bigStorageCageFeedTask.taskState" align="center" label="浠诲姟鐘舵��" min-width="120">
           <template #default="scope">
@@ -398,152 +464,192 @@
   <div v-show="cell8" style="width: 227px;height: 29px;position: absolute;top:300px;left: 465px;background-color: #409EFF;">
     </div> -->
 </div>
-    
   </div>
-<el-dialog v-model="dialogFormVisible" top="12vh" width="85%" title="璇风‘璁ょ幓鐠冧俊鎭�" >
-  <div style="margin-left: 50px;margin-bottom: 10px;">
-    <div style="display: flex;">
-    <p style="margin-top: 4px;">纭鐘舵��:</p>
-    <el-button style="margin-left: 10px;size: mini;" type="success">鍏佽</el-button>
-    <el-button style="margin-left: 10px;size: mini;" type="danger">涓嶅厑璁�</el-button>
-    <p style="margin-left: 60px;margin-top: 4px;">褰撳墠鐘舵��:</p>
-    <div style="margin-top: 4px; margin-left: 10px;">鎵嬪姩</div>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">鍒囨崲</el-button>
-    <el-input  placeholder="璇疯緭鍏ョ幓鐠僫d" style="width: 180px;size: mini;margin-left: 60px;"></el-input>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
-    <p style="margin-left: 60px;margin-top: 4px;">鐜荤拑id:</p>
-    <el-input  style="width: 180px;size: mini;margin-left: 30px;"></el-input>
-  </div>
-    <div style="display: flex;">
-      <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">涓婄墖浣�</p>
-      <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">鎵爜浣�</p>
-    </div>
-    <div style="display: flex;">
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
+  <el-dialog v-model="add" top="20vh" width="60%" title="娣诲姞鐞嗙墖绗间俊鎭�" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鐜荤拑ID锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ョ幓鐠僆D" v-model="glassId" autocomplete="off" />
+              </el-form-item>
+              </div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item label="灏忕墖鍦ㄦ牸鍐呯殑椤哄簭锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ皬鐗囧湪鏍煎唴鐨勯『搴�" v-model="sequence" autocomplete="off" />
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ユ祦绋嬪崱鍙�" v-model="flowCardId" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鐜荤拑绫诲瀷锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ョ幓鐠冪被鍨�" v-model="glassType" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="瀹斤細" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ" v-model="width" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item label="楂橈細" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ラ珮" v-model="height" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鍘氬害锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ帤搴�" v-model="thickness" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item label="閽㈠寲鐗堝浘ID锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ラ挗鍖栫増鍥綢D" v-model="temperingLayoutId" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="閽㈠寲鐗堝浘鐗囧簭锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ラ挗鍖栫増鍥剧墖搴�" v-model="temperingFeedSequence" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鍚敤鐘舵�侊細" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ惎鐢ㄧ姸鎬�" v-model="state" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鐜荤拑闂撮殭锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ョ幓鐠冮棿闅�" v-model="gap" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
       </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    </div>
-        </div>
-  <template #footer>
-    <div id="dialog-footer">
-      <el-button type="primary" @click="dialogFormVisible = false">
-        纭
-      </el-button>
-      <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
-    </div>
-  </template>
-</el-dialog>
-<el-dialog v-model="dialogFormVisiblea" top="10vh" width="85%" title="鐞嗙墖绗间俊鎭�" >
-  <!-- <el-input  placeholder="璇疯緭鍏ュ伐绋嬪彿" style="width: 180px;size: mini;"></el-input> -->
-    <!-- <el-button style="margin-left: 10px;size: mini;" type="primary">鏌ヨ</el-button> -->
-    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
-        @selection-change="handleSelectionChange"
-        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="澶х悊鐗囩琛↖D" min-width="80" />
-          <el-table-column prop="deviceId" align="center" label="鐞嗙墖绗煎彿" min-width="120" />
-          <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="120" />
+    </template>
+  </el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="5vh" width="90%" title="鐞嗙墖绗间俊鎭�" >
+    <el-table  
+          :data="tableData" 
+          height="600"
+          @expand-change="handleExpandChange"  
+          row-key="id" 
+          default-expand-all
+          :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+        >  
+          <el-table-column type="expand">  
+            <template #default="props">  
+              <div v-if="props.row.bigStorageCageDetails && props.row.bigStorageCageDetails.length">  
+                <el-table  
+                  :data="props.row.bigStorageCageDetails"  
+                  border
+                  style="width: 100%;margin-left: 20px;"  
+                  row-key="id"  
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+                >  
+          <!-- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>   -->
+          <el-table-column prop="glassId" label="鐜荤拑ID" align="center" min-width="100"/>  
+          <el-table-column prop="sequence" align="center" label="灏忕墖鍦ㄦ牸鍐呯殑椤哄簭" min-width="120" />
+          <el-table-column prop="flowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="glassType" align="center" label="鐜荤拑绫诲瀷" min-width="100" />
+          <el-table-column prop="width" align="center" label="瀹�" min-width="80" />
+          <el-table-column prop="height" align="center" label="楂�" min-width="80" />
+          <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="80" />
+          <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘ID" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" align="center" label="閽㈠寲鐗堝浘鐗囧簭" min-width="120" />
           <el-table-column
             align="center"
+            label="鍚敤鐘舵��"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType(scope.row.state)">  
+          {{ getStatusText(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="gap" align="center" label="鐜荤拑闂撮殭" min-width="80" />
+           <el-table-column fixed="right" label="鎿嶄綔" align="center"  min-width="180">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">鐮存崯</el-button>
+              <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
+              <el-button size="mini" type="text" plain @click="opena(scope.row)">鍑虹墖</el-button>
+            </template>
+        </el-table-column>
+                </el-table>  
+              </div>  
+            </template>  
+          </el-table-column>  
+          <el-table-column prop="id" label="澶х悊鐗囩琛↖D" align="center" min-width="100"/>  
+          <el-table-column prop="deviceId" align="center" label="鐞嗙墖绗煎彿" min-width="150" />
+          <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="150" />
+          <el-table-column
+          align="center"
             label="鍚敤鐘舵��"
             min-width="80"
             prop="enableState"
           >
           <template #default="scope">  
-        <el-tag :type="getStatusType(scope.row.enableState)">  
-          {{ getStatusText(scope.row.enableState) }}  
-        </el-tag>  
-      </template> 
+          <el-tag  
+            :type="scope.row.enableState === 1 ? 'success' : 'danger'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.enableState === 1 ? '鍚敤' : '绂佺敤' }}  
+          </el-tag>  
+        </template> 
           </el-table-column>
           <el-table-column prop="remainWidth" align="center" label="鍓╀綑瀹藉害" min-width="120" />
+          
+       <el-table-column fixed="right" label="鎿嶄綔" align="center">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain  @click="handleBindRack(scope.row)">娣诲姞</el-button>
+            </template>
+        </el-table-column>
         </el-table>
         <div id="demo-pagination-block">
     <el-pagination
@@ -562,23 +668,21 @@
   </div>
 </el-dialog>
 <el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="鍑虹墖闃熷垪" >
-  <div style="display: flex;">
+  <!-- <div style="display: flex;">
   <p style="margin-top: 3px;">闃熷垪鐘舵�侊細</p>
   <p style="margin-top: 3px;">寮�濮�</p>
     <el-button style="margin-left: 10px;size: mini;" type="danger">鍋滄</el-button>
     <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
-  </div>
+  </div> -->
     <el-table  ref="table" style="margin-top: 20px;height: 500px;"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="id" fixed align="center" label="閽㈠寲灏忕墖淇℃伅琛╥d" min-width="150"/>
-          <!-- <el-table-column prop="glass_id" align="center" label="鐜荤拑id" min-width="120" /> -->
           <el-table-column prop="flowcardId" fixed align="center" label="娴佺▼鍗�" min-width="120" />
           <el-table-column prop="glassType" align="center" label="娴佺▼鍗$幓鐠冪被鍨�" min-width="150" />
           <el-table-column prop="width" align="center" label="瀹�" min-width="80" />
           <el-table-column prop="height" align="center" label="楂�" min-width="80" />
           <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="80" />
           <el-table-column prop="filmsid" align="center" label="鑶滅郴" min-width="80" />
-          <!-- <el-table-column prop="ishorizontal" align="center" label="閽㈠寲鏄惁鎺ュ彈妯斁" min-width="150" /> -->
           <el-table-column
             align="center"
             label="閽㈠寲鏄惁鎺ュ彈妯斁"
@@ -596,7 +700,6 @@
           <el-table-column prop="xCoordinate" align="center" label="x鍧愭爣" min-width="80" />
           <el-table-column prop="yCoordinate" align="center" label="y鍧愭爣" min-width="80" />
           <el-table-column prop="angle" align="center" label="鏃嬭浆瑙掑害锛堥�嗘椂閽堬級" min-width="150" />
-          <!-- <el-table-column prop="state" align="center" label="鐘舵��" min-width="80" /> -->
           <el-table-column
             align="center"
             label="鐘舵��"
@@ -611,7 +714,7 @@
           </el-table-column>
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="150">
             <template #default="scope">
-              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">娣诲姞</el-button>
+              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">鐮存崯</el-button>
               <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鍒犻櫎</el-button>
             </template>
         </el-table-column>
diff --git a/UI-Project/src/views/User/permissions.vue b/UI-Project/src/views/User/permissions.vue
index 637eb78..80cff3d 100644
--- a/UI-Project/src/views/User/permissions.vue
+++ b/UI-Project/src/views/User/permissions.vue
@@ -97,7 +97,6 @@
       parentId: parentId.value,
       url: url.value,
     }); 
- 
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
@@ -117,7 +116,7 @@
  const opena = async(row) => {  
   try {  
     const confirmResult = await ElMessageBox.confirm(  
-      '鏄惁鍒犻櫎璇ョ敤鎴�?',  
+      '鏄惁鍒犻櫎璇ヨ彍鍗�?',  
       '鎻愮ず',  
       {  
         confirmButtonText: '鏄�',  
@@ -228,26 +227,7 @@
               <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
             </template>
         </el-table-column>
-        </el-table>  
-       <!-- <el-table height="240" ref="table" 
-        @selection-change="handleSelectionChange"
-        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="menuName" align="center" label="鑿滃崟鏍�" min-width="180" />
-          <el-table-column align="center" label="閾炬帴" min-width="180">
-            <template #default="scope">  
-             <el-tag v-for="role in scope.row.children">  
-            {{role.url}}  
-           </el-tag>   
-         </template> 
-            </el-table-column>
-          <el-table-column prop="id" align="center" label="鎺掑簭" min-width="180" />
-          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
-            <template #default="scope">
-              <el-button size="mini" type="text" plain @click="adda = true">缂栬緫</el-button>
-              <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
-            </template>
-        </el-table-column>
-        </el-table> -->
+        </el-table>
       </div>
     </el-card>
   </div>
diff --git a/UI-Project/src/views/User/rolelist.vue b/UI-Project/src/views/User/rolelist.vue
index 81ec996..abbe82c 100644
--- a/UI-Project/src/views/User/rolelist.vue
+++ b/UI-Project/src/views/User/rolelist.vue
@@ -105,7 +105,7 @@
  const opena = async(row) => {  
   try {  
     const confirmResult = await ElMessageBox.confirm(  
-      '鏄惁鍒犻櫎璇ョ敤鎴�?',  
+      '鏄惁鍒犻櫎璇ヨ鑹�?',  
       '鎻愮ず',  
       {  
         confirmButtonText: '鏄�',  
@@ -200,7 +200,7 @@
               <div id="dt" style="font-size: 15px;">
         <div>
           <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw">
-                <el-input v-model="name" autocomplete="off" />
+                <el-input placeholder="璇疯緭鍏ヨ鑹�" v-model="name" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
         </el-row>
@@ -225,7 +225,7 @@
               <div id="dt" style="font-size: 15px;">
         <div>
           <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw">
-                <el-input v-model="editingUser.name" autocomplete="off" />
+                <el-input placeholder="璇疯緭鍏ヨ鑹�" v-model="editingUser.name" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
         </el-row>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
similarity index 100%
rename from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/controller/DamageController.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/entity/Damage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
similarity index 100%
rename from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/entity/Damage.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/mapper/DamageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
similarity index 100%
rename from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/mapper/DamageMapper.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
similarity index 100%
rename from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/damage/service/DamageService.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
new file mode 100644
index 0000000..130e515
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.damage.service.impl;
+
+import com.mes.damage.entity.Damage;
+import com.mes.damage.mapper.DamageMapper;
+import com.mes.damage.service.DamageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-13
+ */
+@Service
+public class DamageServiceImpl extends ServiceImpl<DamageMapper, Damage> implements DamageService {
+
+}

--
Gitblit v1.8.0