From a8c1dd008f9a096cb01774f17a8bceda5aafed88 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 26 二月 2025 15:04:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/Slicecage/slicecage.vue |  309 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 189 insertions(+), 120 deletions(-)

diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 69d3f6b..41ecca8 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -43,13 +43,17 @@
 const diaodu = ref('')
 const flowCardId = ref('')
 const filmsId = ref('')
-const adjustedRects = ref([]);
 const project = ref([]);
 const adjust = ref([]);
 const adjusta = ref([]);
+const adjustedRects = ref([]);
 const adjustedRectsa = ref([]);
 const adjustedRectsb = ref([]);
 const adjustedRectsc = ref([]);
+const subRectsCounts = ref([]);
+const subRectsCountsa = ref([]);
+const subRectsCountsb = ref([]);
+const subRectsCountsc = ref([]);
 const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁 
 const currentPage2 = ref(1)
 const inputValuesa = reactive({});
@@ -840,31 +844,168 @@
   ganghua.value = ''
   }
   if(data.bigStorageCageInfos!=null){
-    window.localStorage.setItem('length', data.bigStorageCageInfos[0][1].length)
-  let length = window.localStorage.getItem('length')
-  adjustedRects.value = data.bigStorageCageInfos[0][1].map(rect => ({  
-            ...rect, 
-            height: 20/length,
-            top: 29/length
-          })); 
-adjustedRectsa.value = data.bigStorageCageInfos[0][2].map(rect => ({  
-            ...rect, 
-            height: 20/length,
-            top: 29/length
-          })); 
-adjustedRectsb.value = data.bigStorageCageInfos[0][3].map(rect => ({  
-            ...rect, 
-            height: 20/length,
-            top: 29/length
-          })); 
-adjustedRectsc.value = data.bigStorageCageInfos[0][4].map(rect => ({  
-            ...rect, 
-            height: 20/length,
-            top: 29/length
-          }));
+  adjustedRects.value = data.bigStorageCageInfos[0][1].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCounts.value = data.bigStorageCageInfos[0][1].map(rect => rect.count);
+adjustedRectsa.value = data.bigStorageCageInfos[0][2].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCountsa.value = data.bigStorageCageInfos[0][2].map(rect => rect.count);
+adjustedRectsb.value = data.bigStorageCageInfos[0][3].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCountsb.value = data.bigStorageCageInfos[0][3].map(rect => rect.count);
+adjustedRectsc.value = data.bigStorageCageInfos[0][4].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCountsc.value = data.bigStorageCageInfos[0][4].map(rect => rect.count);
   }else{
-    adjustedRects.value = ''
+    adjustedRects.value = '',
+    adjustedRectsa.value = '',
+    adjustedRectsb.value = '',
+    adjustedRectsc.value = ''
   }
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyle = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRects = (rectIndex) => {
+  const count = subRectsCounts.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyle = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStylea = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsa = (rectIndex) => {
+  const count = subRectsCountsa.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStylea = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyleb = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsb = (rectIndex) => {
+  const count = subRectsCountsb.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyleb = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStylec = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsc = (rectIndex) => {
+  const count = subRectsCountsc.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStylec = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
 };
 onMounted(() => {
   socket = initializeWebSocket(socketUrl, handleMessage);
@@ -1027,111 +1168,39 @@
     </div>
     <div style="position: relative;">
     <div v-show="cell1" style="width: 170px;height: 53px;position: relative;top:63px;left: 585px;">
-      <div  
-      v-for="(rect, index) in adjustedRects"  
-      :key="rect"  
-      :style="{
-       position: 'absolute',
-       width: '200px',
-       left: '0px',
-       top: index*rect.top+`px`,
-       height: `${rect.height}px`,
-       }"  
-    >
-    <div  
-      v-for="(rects, index) in rect.bigStorageCageDetails"  
-      :key="rects"  
-      :style="{
-        float:'left',
-       width: '18px',
-       height: `${rect.height}px`,
-       backgroundColor: '#911005',
-       top: '0px',
-       marginRight: rects.gap/5000*227+'px'
-       }"  
-    >
-      </div>
+      <div v-for="(rect, rectIndex) in adjustedRects" :key="rect.id" :style="rectStyle(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRects(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyle(rectIndex, subIndex)"
+    ></div>
     </div>
     </div>
  <div v-show="cell2" style="width: 170px;height: 53px;position: relative;top:67px;left: 585px;">
-  <div  
-      v-for="(rect, index) in adjustedRectsa"  
-      :key="rect.id"  
-      :style="{
-       position: 'absolute',
-       width: '227px',
-       left: '0px',
-       top: index*rect.top+`px`,
-       height: `${rect.height}px`,
-       }"  
-    >
-    <div  
-      v-for="(rects, index) in rect.bigStorageCageDetails"  
-      :key="rects"  
-      :style="{
-        float:'left',
-       width: '18px',
-       height: `${rect.height}px`,
-       backgroundColor: '#911005',
-       top: '0px',
-       marginRight: rects.gap/5000*227+'px'
-       }"  
-    >
-      </div>
+    <div v-for="(rect, rectIndex) in adjustedRectsa" :key="rect.id" :style="rectStylea(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsa(rectIndex)"
+      :key="subIndex"
+      :style="subRectStylea(rectIndex, subIndex)"
+    ></div>
     </div>
     </div>
   <div v-show="cell3" style="width: 170px;height: 53px;position: relative;top:72px;left: 585px;">
-    <div  
-      v-for="(rect, index) in adjustedRectsb"  
-      :key="rect.id"  
-      :style="{
-       position: 'absolute',
-       width: '227px',
-       left: '0px',
-       top: index*rect.top+`px`,
-       height: `${rect.height}px`,
-       }"  
-    >
-    <div  
-      v-for="(rects, index) in rect.bigStorageCageDetails"  
-      :key="rects"  
-      :style="{
-        float:'left',
-       width: '18px',
-       height: `${rect.height}px`,
-       backgroundColor: '#911005',
-       top: '0px',
-       marginRight: rects.gap/5000*227+'px'
-       }"  
-    >
-      </div>
+    <div v-for="(rect, rectIndex) in adjustedRectsb" :key="rect.id" :style="rectStyleb(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsb(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyleb(rectIndex, subIndex)"
+    ></div>
     </div>
     </div>
   <div v-show="cell4" style="width: 170px;height: 53px;position: relative;top:77px;left: 585px;">
-    <div  
-      v-for="(rect, index) in adjustedRectsc"  
-      :key="rect.id"  
-      :style="{
-       position: 'absolute',
-       width: '227px',
-       left: '0px',
-       top: index*rect.top+`px`,
-       height: `${rect.height}px`,
-       }"  
-    >
-    <div  
-      v-for="(rects, index) in rect.bigStorageCageDetails"  
-      :key="rects"  
-      :style="{
-        float:'left',
-       width: '18px',
-       height: `${rect.height}px`,
-       backgroundColor: '#911005',
-       top: '0px',
-       marginRight: rects.gap/5000*227+'px'
-       }"  
-    >
-      </div>
+    <div v-for="(rect, rectIndex) in adjustedRectsc" :key="rect.id" :style="rectStylec(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsc(rectIndex)"
+      :key="subIndex"
+      :style="subRectStylec(rectIndex, subIndex)"
+    ></div>
     </div>
     </div>
 </div>

--
Gitblit v1.8.0