From 768e16999a8ce4bb500490ee76c659aa61ea1783 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 25 三月 2025 10:08:13 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 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
new file mode 100644
index 0000000..bc81799
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
@@ -0,0 +1,104 @@
+<template>
+    <div >
+      <RectRenderer 
+    :layoutData="layoutData" 
+    :gw="1400" 
+    :gh="1100" 
+    style="width: 1500px; height: 800px; position: relative;"
+  />
+  
+  
+    </div>
+    <button @click="submitLayouts" style="position: fixed; bottom: 20px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+      淇濆瓨OPT
+    </button>
+  </template>
+  
+  <script setup>
+  import { ref,onMounted } from 'vue';
+  import RectRenderer from './page/RectRenderer.vue';
+  import mockLayoutData from '../../../components/pp/MockData';
+  import request from "@/utils/request";
+import { useI18n } from "vue-i18n";
+import { ElMessage } from "element-plus";
+
+const { t } = useI18n();
+ // const layoutData = ref(mockLayoutData);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  const savedProjectNo = localStorage.getItem('projectNo');
+const processId = savedProjectNo;
+const layoutData = ref(null);
+
+
+
+const selectLayout = () => {
+request.post(`/glassOptimize/selectOptimizeResult/${processId}`)
+.then((res) => {
+  if (res.code == 200) {
+    try {
+      const parsedData = JSON.parse(res.data.data[0].Layouts);
+      layoutData.value = parsedData;
+    } catch (error) {
+    
+     
+    }
+  } else {
+
+  }
+})
+.catch((error) => {
+  console.error("璇锋眰澶辫触:", error);
+  ElMessage.error(t('basicData.msg.requestFailed'));
+});
+}
+
+onMounted(() => {
+  selectLayout();
+
+});
+  
+  const submitLayouts = async () => {
+  try {
+    const response = await request.post('/glassOptimize/generateOpt', {
+      Layouts: layoutData.value.Layouts 
+    }, {
+      headers: {
+        'Content-Type': 'application/json'
+      },
+      responseType: 'blob' // 浠� 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鏂囦欢涓嬭浇鎴愬姛,璇烽�夋嫨鏂囦欢璺緞');
+  } catch (error) {
+    console.error('涓嬭浇澶辫触:', error);
+    // 鏄剧ず閿欒娑堟伅缁欑敤鎴�
+    ElMessage.error('涓嬭浇澶辫触锛岃绋嶅悗鍐嶈瘯');
+  }
+};
+
+
+
+  </script>
+  
\ No newline at end of file

--
Gitblit v1.8.0