From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示

---
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue |  139 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 111 insertions(+), 28 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
index f5fdf56..939ff1d 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
@@ -11,7 +11,8 @@
   
   
     </div>
-    <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+
+    <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">
       淇濆瓨OPT
     </button>
   </template>
@@ -20,8 +21,9 @@
 import RectRenderer from './page/RectRenderer.vue';
 import request from "@/utils/request";
 import { useI18n } from "vue-i18n";
-import { ElMessage } from "element-plus";
+import {ElMessage, ElMessageBox} from "element-plus";
 import requestOptimize from "@/utils/requestOptimize";
+import useUserInfoStore from "@/stores/userInfo";
 
 const { t } = useI18n();
 
@@ -33,6 +35,22 @@
 // 娣诲姞鐢ㄤ簬瀛樺偍搴撳瓨鏁版嵁鐨勫搷搴斿紡鍙橀噺
 const inventoryData = ref([]);
 
+const optimizeLayouts = ref(null);
+
+
+// const fileSaveMode = ref(1);
+const fileMode = ref();
+const haveMark = ref();
+const haveOptimaMark = ref();
+const haveQMark = ref();
+const glassIdMode = ref();
+const optimaMarkPosition = ref();
+const optimaMarkName = ref();
+const optimaMarkWidth = ref();
+const optimaMarkHeight = ref();
+
+const userStore = useUserInfoStore()
+const username = userStore.user.userName;
 
 // 浠� localStorage 璇诲彇搴撳瓨鏁版嵁
 const loadInventoryData = () => {
@@ -40,8 +58,6 @@
   if (storedData) {
     try {
       inventoryData.value = JSON.parse(storedData);
-      console.log('浠� localStorage 璇诲彇鍒板簱瀛樻暟鎹�:', inventoryData.value);
-      console.log('鍙栫幓鐠冨帤搴�',inventoryData.value[0].thickness);
     } catch (e) {
       console.error('瑙f瀽搴撳瓨鏁版嵁澶辫触:', e);
     }
@@ -56,8 +72,6 @@
       .then((res) => {
         if ((res.code === 200 || res.code === '200') && res.data && res.data.data && res.data.data.length > 0) {
           try {
-            console.log("鍘熷鏁版嵁:", res.data.data[0]); // 璋冭瘯淇℃伅
-
             // 瑙f瀽淇濆瓨鐨勫竷灞�鏁版嵁
             const parsedData = JSON.parse(res.data.data[0].Layouts);
             console.log("瑙f瀽鍚庣殑鏁版嵁:", parsedData); // 璋冭瘯淇℃伅
@@ -92,10 +106,67 @@
       });
 };
 
+const fetchSettings = async (username) => {
+  try {
+    const response = await request.post(`/glassOptimize/selectOptimizeParms/${username}`);
+    if (response.code == 200) {
+      if (!response.data) {
+        console.error('鍝嶅簲鏁版嵁涓虹┖');
+        return;
+      }
+      const parsedData = JSON.parse(response.data);
+      console.log('璁剧疆鍐呭:', parsedData);
+      fileMode.value = parsedData.server.fileMode;
+      haveMark.value = parsedData.server.haveMark;
+      haveOptimaMark.value = parsedData.server.haveOptimaMark;
+      haveQMark.value = parsedData.server.haveQMark;
+      glassIdMode.value = parsedData.server.glassIdMode;
+      optimaMarkPosition.value = parsedData.server.optimaMarkPosition;
+      optimaMarkName.value = parsedData.server.optimaMarkName;
+      optimaMarkWidth.value = parsedData.server.optimaMarkWidth;
+      optimaMarkHeight.value = parsedData.server.optimaMarkHeight;
+    } else {
+      console.error('璇锋眰澶辫触锛岀姸鎬佺爜:', response.code);
+    }
+  } catch (error) {
+    console.error('璇锋眰鍙戠敓閿欒:', error);
+  }
+};
+
+
+const selectOptimizeInfo = () => {
+  request.post(`/glassOptimize/getOptimizeInfo/${processId}`)
+      .then((res) => {
+        if ((res.code === 200 || res.code === '200') && res.data && res.data.layouts) {
+          try {
+            // 姝g‘璧嬪�肩粰澶栧眰鐨勫搷搴斿紡鍙橀噺
+            optimizeLayouts.value = res.data;
+            console.log("甯冨眬鏁版嵁:", optimizeLayouts.value);
+
+            // 楠岃瘉layouts鏁版嵁
+            if (res.data.layouts && res.data.layouts.length > 0) {
+              console.log("layouts鏁扮粍:", res.data.layouts);
+            }
+          } catch (error) {
+            console.error("鏁版嵁瑙f瀽澶辫触:", error);
+            ElMessage.error("鏁版嵁瑙f瀽澶辫触: " + error.message);
+          }
+        } else {
+          ElMessage.warning("鏈壘鍒颁紭鍖栨暟鎹�");
+        }
+      })
+      .catch((error) => {
+        console.error("璇锋眰澶辫触:", error);
+        ElMessage.error(t('basicData.msg.requestFailed'));
+      });
+};
+
 onMounted(() => {
-  // 璇诲彇搴撳瓨鏁版嵁
+  // 璇诲彇搴撳瓨鏁版嵁鍜屽弬鏁拌缃�
   loadInventoryData();
   selectLayout();
+  selectOptimizeInfo();
+  fetchSettings(username);
 });
 
 const submitLayouts = async () => {
@@ -105,37 +176,49 @@
       ElMessage.warning('娌℃湁鍙繚瀛樼殑鏁版嵁');
       return;
     }
-    console.log("鎻愪氦鏁版嵁:", layoutCutData.value);
+    console.log("鎻愪氦鏁版嵁:", optimizeLayouts);
     const response = await requestOptimize.post('api/cutFiles', {
       fileName: processId,
-      glassThickness:inventoryData.value[0].thickness,
-      glassType:inventoryData.value[0].model,
+      projectNo: processId,
+      glassThickness: inventoryData.value[0].thickness,
+      glassType: inventoryData.value[0].model,
       quantity: inventoryData.value[0].processingQuantity,
-      fileType:"OPT",
-      fileSaveMode:1,
-      glassIdMode:1,
-      layouts: layoutCutData.value.layouts
+      fileType: "OPT",
+      fileSaveMode: fileMode.value,
+      glassIdMode: glassIdMode.value,
+      haveMark: haveMark.value,
+      haveOptimaMark: haveOptimaMark.value,
+      haveQMark: haveQMark.value,
+      optimaMarkPosition: optimaMarkPosition.value,
+      optimaMarkName: optimaMarkName.value,
+      optimaMarkWidth: optimaMarkWidth.value,
+      optimaMarkHeight: optimaMarkHeight.value,
+      layouts: optimizeLayouts.value.layouts
     }, {
       headers: {
         'Content-Type': 'application/json'
-      },
-      responseType: 'blob'
+      }
     });
 
-    // 澶勭悊涓嬭浇
-    const downloadUrl = window.URL.createObjectURL(response);
-    const a = document.createElement('a');
-    a.href = downloadUrl;
-    a.download = 'output.opt';
-    document.body.appendChild(a);
-    a.click();
-    document.body.removeChild(a);
-    window.URL.revokeObjectURL(downloadUrl);
-    ElMessage.success('OPT鏂囦欢涓嬭浇鎴愬姛,璇烽�夋嫨鏂囦欢璺緞');
+    // 浣跨敤 MessageBox 鏄剧ず鏂囦欢淇濆瓨浣嶇疆淇℃伅
+    if (response.data && response.data.length > 0) {
+      const filePath = response.data[0];
+      ElMessageBox.alert(`OPT鏂囦欢淇濆瓨鎴愬姛锛屼綅缃細${filePath}`, '淇濆瓨鎴愬姛', {
+        confirmButtonText: '纭畾',
+        type: 'success',
+        dangerouslyUseHTMLString: true
+      });
+    } else {
+      ElMessageBox.alert('OPT鏂囦欢淇濆瓨鎴愬姛', '淇濆瓨鎴愬姛', {
+        confirmButtonText: '纭畾',
+        type: 'success'
+      });
+    }
   } catch (error) {
-    console.error('涓嬭浇澶辫触:', error);
-    ElMessage.error('涓嬭浇澶辫触锛岃绋嶅悗鍐嶈瘯');
+    console.error('淇濆瓨澶辫触:', error);
+    ElMessage.error('淇濆瓨澶辫触锛岃绋嶅悗鍐嶈瘯');
   }
 };
+
 </script>
   
\ No newline at end of file

--
Gitblit v1.8.0