From f7a2fcdda7f1120498c5c5f75c5a99955fc54b43 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 16 十二月 2025 16:54:09 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue |  101 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 78 insertions(+), 23 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 a184439..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();
 
@@ -34,6 +36,21 @@
 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 = () => {
@@ -89,7 +106,32 @@
       });
 };
 
-
+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 = () => {
@@ -120,10 +162,11 @@
 };
 
 onMounted(() => {
-  // 璇诲彇搴撳瓨鏁版嵁
+  // 璇诲彇搴撳瓨鏁版嵁鍜屽弬鏁拌缃�
   loadInventoryData();
   selectLayout();
   selectOptimizeInfo();
+  fetchSettings(username);
 });
 
 const submitLayouts = async () => {
@@ -136,34 +179,46 @@
     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,
+      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