From 121ef0e477b9ab0e3a610de08a92f08eb955d556 Mon Sep 17 00:00:00 2001
From: 于杰 <1210123631@qq.com>
Date: 星期一, 15 十二月 2025 16:54:25 +0800
Subject: [PATCH] 实现临时小片侧边栏添加功能,实现外部接口接收临时优化json功能

---
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
index d07842f..5a9490e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -2,15 +2,79 @@
   <div style="display: flex; height: 90vh;">
     <!-- Sidebar -->
     <div class="sidebar" style="width: 200px; background: #f4f4f4; padding: 10px; height: 93%; overflow-y: auto; max-height: 90vh; border-radius: 8px;">
-      <div
-          v-for="(layout, layoutIndex) in layouts"
-          :key="layoutIndex"
-          class="sidebar-item"
-          @click="selectLayout(layoutIndex)"
-          :class="{ 'selected': selectedLayoutIndex === layoutIndex }"    style="margin-bottom: 5px;"
-      >
-        {{ layout.realWidth }} 脳 {{ layout.realHeight }} 脳 {{ layout.quantity }}
+      <div class="folder">
+        <div
+          class="folder-header"          style="padding: 8px; background: #e0e0e0; margin-bottom: 5px; border-radius: 4px; user-select: none; display: flex; justify-content: space-between; align-items: center;"
+        >
+          <span @click="toggleFolder('pending')" style="flex: 1; cursor: pointer;">寰呭垏鍓插師鐗�</span>
+          <button
+            @click="toggleFolder('pending')"            style="background: none; border: none; cursor: pointer; font-size: 14px; padding: 2px 5px; border-radius: 3px;"
+            :title="openFolders.pending ? '鏀惰捣' : '灞曞紑'"
+          >
+            <el-icon v-if="openFolders.pending"><ArrowUp /></el-icon>
+            <el-icon v-else><ArrowDown /></el-icon>
+          </button>
+        </div>
+        <div v-show="openFolders.pending" class="folder-content" style="padding-left: 15px;">
+          <div
+            v-for="(layout, layoutIndex) in layouts"
+            :key="layoutIndex"
+            class="sidebar-item"
+            @click="selectLayout(layoutIndex)"
+            :class="{ 'selected': selectedLayoutIndex === layoutIndex }"            style="margin-bottom: 5px;"
+          >
+            {{ layout.realWidth }} 脳 {{ layout.realHeight }} 脳 {{ layout.quantity }}
+          </div>
+        </div>
       </div>
+
+<!-- 寰呰ˉ鐗囬槦鍒楁枃浠跺す -->
+      <div class="folder">
+        <div
+          class="folder-header"          style="padding: 8px; background: #e0e0e0; margin-bottom: 5px; border-radius: 4px; user-select: none; display: flex; justify-content: space-between; align-items: center;"
+        >
+          <span @click="toggleFolder('patchQueue')" style="flex: 1; cursor: pointer;">寰呰ˉ鐗囬槦鍒�</span>
+          <button
+            @click="toggleFolder('patchQueue')"            style="background: none; border: none; cursor: pointer; font-size: 14px; padding: 2px 5px; border-radius: 3px;"
+            :title="openFolders.patchQueue ? '鏀惰捣' : '灞曞紑'"
+          >
+            <el-icon v-if="openFolders.patchQueue"><ArrowUp /></el-icon>
+            <el-icon v-else><ArrowDown /></el-icon>
+          </button>
+        </div>
+        <div v-show="openFolders.patchQueue" class="folder-content" style="padding-left: 15px;">
+          <div style="padding: 10px; color: #666; font-style: italic;">
+            鏆傛棤琛ョ墖浠诲姟
+          </div>
+        </div>
+      </div>
+
+      <!-- 娣诲姞鑷畾涔夊昂瀵告枃浠跺す -->
+      <div class="folder">
+        <div
+          class="folder-header"          style="padding: 8px; background: #e0e0e0; margin-bottom: 5px; border-radius: 4px; user-select: none; display: flex; justify-content: space-between; align-items: center;"
+        >
+          <span @click="toggleFolder('customSize')" style="flex: 1; cursor: pointer;">娣诲姞鑷畾涔夊昂瀵�</span>
+          <button
+            @click="toggleFolder('customSize')"            style="background: none; border: none; cursor: pointer; font-size: 14px; padding: 2px 5px; border-radius: 3px;"
+            :title="openFolders.customSize ? '鏀惰捣' : '灞曞紑'"
+          >
+            <el-icon v-if="openFolders.customSize"><ArrowUp /></el-icon>
+            <el-icon v-else><ArrowDown /></el-icon>
+          </button>
+        </div>
+        <div v-show="openFolders.customSize" class="folder-content" style="padding-left: 15px;">
+          <div style="padding: 10px;">
+            <button
+              @click="showAddCustomSizeDialog"              style="width: 100%; padding: 8px; background: #409eff; color: white; border: none; border-radius: 4px; cursor: pointer;"
+            >
+              + 娣诲姞鑷畾涔夊昂瀵�
+            </button>
+          </div>
+        </div>
+      </div>
+
+
     </div>
 
     <!-- Main Layout Panel -->
@@ -76,6 +140,7 @@
 <script setup>
 import { ref, reactive, onMounted, onUnmounted } from 'vue';
 import { useRouter } from 'vue-router';
+import { ArrowUp, ArrowDown } from '@element-plus/icons-vue'
 import request from "@/utils/request";
 const router = useRouter();
 import { useI18n } from "vue-i18n";
@@ -148,6 +213,30 @@
       ElMessage.warning(res.msg);
     }
   });
+};
+
+const openFolders = ref({
+  pending: true,  // 榛樿灞曞紑"寰呭垏鍓插師鐗�"鏂囦欢澶�
+   patchQueue: false,   // 榛樿鏀惰捣"寰呰ˉ鐗囬槦鍒�"鏂囦欢澶�
+  customSize: false   // 榛樿鏀惰捣"娣诲姞鑷畾涔夊昂瀵�"鏂囦欢澶�
+});
+
+// 鍒囨崲鏂囦欢澶瑰睍寮�/鏀惰捣鐘舵��
+const toggleFolder = (folderName) => {
+  openFolders.value[folderName] = !openFolders.value[folderName];
+};
+
+
+
+const showAddCustomSizeDialog = () => {
+  // 妫�鏌ユ槸鍚﹂�夋嫨浜嗙増鍥�
+  if (selectedLayoutIndex.value === null || layouts.value.length === 0) {
+    ElMessage.warning('璇峰厛閫夋嫨涓�涓増鍥�');
+    return;
+  }
+
+  // 浣跨敤鐜版湁鐨勬坊鍔犳垚鍝侀�昏緫锛屼紶鍏ュ綋鍓嶉�変腑鐨勭増鍥剧储寮�
+  showAddDialog(selectedLayoutIndex.value);
 };
 
 //鏌ヨ璁剧疆鐨勫熀纭�淇℃伅鏋跺彿锛岀煩褰㈤鑹诧紝璁㈠崟搴忓彿绛�
@@ -1408,4 +1497,17 @@
 .context-menu div:hover {
   background-color: #f0f0f0;
 }
+
+.folder-header {
+  font-weight: bold;
+}
+
+.folder-header:hover {
+  background-color: #d0d0d0 !important;
+}
+
+.folder-content {
+  border-left: 2px solid #ccc;
+  margin-left: 5px;
+}
 </style>

--
Gitblit v1.8.0