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/OptimizeParms.vue |  413 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 376 insertions(+), 37 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeParms.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeParms.vue
index 9779238..949035c 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeParms.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeParms.vue
@@ -24,6 +24,14 @@
 };
 
 const saveToDatabase = () => {
+  if (settings.server.haveOptimaMark === '1' && settings.server.haveQMark === '1') {
+    ElMessage.warning('鏄惁鐢熸垚OPTIMA鎵撴爣淇℃伅鍜屾槸鍚︾敓鎴愰�熷埢鎵撴爣淇℃伅涓嶈兘鍚屾椂涓烘槸');
+    return;
+  }
+  if (settings.server.printLayouts === '0' && settings.server.printReport === '0') {
+    ElMessage.warning('鐗堝浘鍜屾姤鍛婁笉鑳藉悓鏃朵笉鎵撳嵃锛岃鑷冲皯閫夋嫨涓�椤�');
+    return;
+  }
   console.log(settings)
   request.post(`/glassOptimize/optimizeParms/${username}`, settings).then((res) => {
     if (res.code == 200 && res.data === true) {
@@ -34,22 +42,114 @@
   });
 };
 
+// 淇敼 fetchSettings 鏂规硶
 const fetchSettings = async (username) => {
   try {
     const response = await request.post(`/glassOptimize/selectOptimizeParms/${username}`);
-    if (response.code == 200) {
-      if (!response.data) {
-        console.error('鍝嶅簲鏁版嵁涓虹┖');
-        return;
+    let parsedData = {};
+
+    if (response.code == 200 && response.data) {
+      try {
+        parsedData = JSON.parse(response.data);
+      } catch (parseError) {
+        console.error('瑙f瀽鍝嶅簲鏁版嵁澶辫触:', parseError);
+        parsedData = {};
       }
-      const parsedData = JSON.parse(response.data);
-      Object.assign(settings, parsedData);
-      console.log('璁剧疆宸叉洿鏂�:', settings);
     } else {
-      console.error('璇锋眰澶辫触锛岀姸鎬佺爜:', response.code);
+      console.log('鏈幏鍙栧埌璁剧疆鏁版嵁鎴栧搷搴斿け璐ワ紝浣跨敤榛樿璁剧疆');
+      parsedData = {};
     }
+
+    // 纭繚鎵�鏈夋ā鍧楅兘瀛樺湪
+    if (!parsedData.optimization) parsedData.optimization = {};
+    if (!parsedData.display) parsedData.display = {};
+    if (!parsedData.cutting) parsedData.cutting = {};
+    if (!parsedData.server) parsedData.server = {};
+    if (!parsedData.tempering) parsedData.tempering = {};
+
+
+    parsedData.optimization.yShapeJoinOptimization = parsedData.optimization.yShapeJoinOptimization !== undefined ? parsedData.optimization.yShapeJoinOptimization : true;
+    parsedData.optimization.smallPieceRotationProhibited = parsedData.optimization.smallPieceRotationProhibited !== undefined ? parsedData.optimization.smallPieceRotationProhibited : true;
+    // parsedData.optimization.maxFramesOnSite = parsedData.optimization.maxFramesOnSite !== undefined ? parsedData.optimization.maxFramesOnSite : 10;
+    parsedData.optimization.bendEdgeDistance = parsedData.optimization.bendEdgeDistance !== undefined ? parsedData.optimization.bendEdgeDistance : 10;
+    // parsedData.optimization.positiveTolerance = parsedData.optimization.positiveTolerance !== undefined ? parsedData.optimization.positiveTolerance : 0;
+    // parsedData.optimization.negativeTolerance = parsedData.optimization.negativeTolerance !== undefined ? parsedData.optimization.negativeTolerance : 0;
+    parsedData.optimization.cutterOriginPosition = parsedData.optimization.cutterOriginPosition !== undefined ? parsedData.optimization.cutterOriginPosition : 1;
+    // parsedData.optimization.uniformShapeEdgeTrimAmount = parsedData.optimization.uniformShapeEdgeTrimAmount !== undefined ? parsedData.optimization.uniformShapeEdgeTrimAmount : 0;
+    parsedData.optimization.optimizationMethod = parsedData.optimization.optimizationMethod !== undefined ? parsedData.optimization.optimizationMethod : '1';
+    parsedData.optimization.travType = parsedData.optimization.travType !== undefined ? parsedData.optimization.travType : 'X';
+    parsedData.optimization.rackCycleQty = parsedData.optimization.rackCycleQty !== undefined ? parsedData.optimization.rackCycleQty :5;
+
+
+    // 涓� display 鍙傛暟娣诲姞榛樿鍊�
+    parsedData.display.themeColor = parsedData.display.themeColor !== undefined ? parsedData.display.themeColor : '#5168c8';
+    parsedData.display.includeProductEdge = parsedData.display.includeProductEdge !== undefined ? parsedData.display.includeProductEdge : true;
+    parsedData.display.includeIrregularEdge = parsedData.display.includeIrregularEdge !== undefined ? parsedData.display.includeIrregularEdge : true;
+    // parsedData.display.mergeByFrameNumber = parsedData.display.mergeByFrameNumber !== undefined ? parsedData.display.mergeByFrameNumber : true;
+    parsedData.display.frameNumber = parsedData.display.frameNumber !== undefined ? parsedData.display.frameNumber : true;
+    parsedData.display.orderNumber = parsedData.display.orderNumber !== undefined ? parsedData.display.orderNumber : true;
+    parsedData.display.productName = parsedData.display.productName !== undefined ? parsedData.display.productName : true;
+    parsedData.display.processingInfo = parsedData.display.processingInfo !== undefined ? parsedData.display.processingInfo : true;
+    parsedData.display.remarks = parsedData.display.remarks !== undefined ? parsedData.display.remarks : true;
+    parsedData.display.floorNumber = parsedData.display.floorNumber !== undefined ? parsedData.display.floorNumber : true;
+    parsedData.display.edgeLength = parsedData.display.edgeLength !== undefined ? parsedData.display.edgeLength : false;
+    parsedData.display.manufacturingProcess = parsedData.display.manufacturingProcess !== undefined ? parsedData.display.manufacturingProcess : false;
+    parsedData.display.identifier = parsedData.display.identifier !== undefined ? parsedData.display.identifier : false;
+
+    // 涓� cutting 鍙傛暟娣诲姞榛樿鍊�
+    parsedData.cutting.cutting_direction = parsedData.cutting.cutting_direction !== undefined ? parsedData.cutting.cutting_direction : true;
+    parsedData.cutting.show_cutting_path = parsedData.cutting.show_cutting_path !== undefined ? parsedData.cutting.show_cutting_path : true;
+    parsedData.cutting.force_continuous_cutting = parsedData.cutting.force_continuous_cutting !== undefined ? parsedData.cutting.force_continuous_cutting : true;
+    // parsedData.cutting.min_radius = parsedData.cutting.min_radius !== undefined ? parsedData.cutting.min_radius : 0;
+    // parsedData.cutting.min_parallel_offset = parsedData.cutting.min_parallel_offset !== undefined ? parsedData.cutting.min_parallel_offset : 0;
+    // parsedData.cutting.t_shaped_recess = parsedData.cutting.t_shaped_recess !== undefined ? parsedData.cutting.t_shaped_recess : 0;
+    // parsedData.cutting.down_cut_spacing = parsedData.cutting.down_cut_spacing !== undefined ? parsedData.cutting.down_cut_spacing : 0;
+    // parsedData.cutting.lift_retract = parsedData.cutting.lift_retract !== undefined ? parsedData.cutting.lift_retract : 0;
+
+    // 涓� server 鍙傛暟娣诲姞榛樿鍊�
+    parsedData.server.printLayouts = parsedData.server.printLayouts !== undefined ? parsedData.server.printLayouts : '1';
+    parsedData.server.printReport = parsedData.server.printReport !== undefined ? parsedData.server.printReport : '1';
+    parsedData.server.layoutRows = parsedData.server.layoutRows !== undefined ? parsedData.server.layoutRows : '2';
+    parsedData.server.layoutColumns = parsedData.server.layoutColumns !== undefined ? parsedData.server.layoutColumns : '2';
+    parsedData.server.glassInfoShow = parsedData.server.glassInfoShow !== undefined ? parsedData.server.glassInfoShow : '2';
+    parsedData.server.cutInfoShow = parsedData.server.cutInfoShow !== undefined ? parsedData.server.cutInfoShow : '1';
+    parsedData.server.fileMode = parsedData.server.fileMode !== undefined ? parsedData.server.fileMode : '1';
+    parsedData.server.haveMark = parsedData.server.haveMark !== undefined ? parsedData.server.haveMark : '1';
+    parsedData.server.haveOptimaMark = parsedData.server.haveOptimaMark !== undefined ? parsedData.server.haveOptimaMark : '1';
+    parsedData.server.haveQMark = parsedData.server.haveQMark !== undefined ? parsedData.server.haveQMark : '1';
+    parsedData.server.glassIdMode = parsedData.server.glassIdMode !== undefined ? parsedData.server.glassIdMode : '1';
+    parsedData.server.optimaMarkPosition = parsedData.server.optimaMarkPosition !== undefined ? parsedData.server.optimaMarkPosition : '1';
+    parsedData.server.optimaMarkName = parsedData.server.optimaMarkName !== undefined ? parsedData.server.optimaMarkName : 'erweima_8mm';
+    parsedData.server.optimaMarkWidth = parsedData.server.optimaMarkWidth !== undefined ? parsedData.server.optimaMarkWidth : 8;
+    parsedData.server.optimaMarkHeight = parsedData.server.optimaMarkHeight !== undefined ? parsedData.server.optimaMarkHeight : 8;
+    parsedData.server.output_format = parsedData.server.output_format !== undefined ? parsedData.server.output_format : '';
+    parsedData.server.open_folder_after_save = parsedData.server.open_folder_after_save !== undefined ? parsedData.server.open_folder_after_save : '';
+    parsedData.server.g_code_file_format = parsedData.server.g_code_file_format !== undefined ? parsedData.server.g_code_file_format : '';
+    parsedData.server.btl_file_save_path = parsedData.server.btl_file_save_path !== undefined ? parsedData.server.btl_file_save_path : '';
+    parsedData.server.optima_file_save_path = parsedData.server.optima_file_save_path !== undefined ? parsedData.server.optima_file_save_path : '';
+    parsedData.server.optimization_depth_limit_enable = parsedData.server.optimization_depth_limit_enable !== undefined ? parsedData.server.optimization_depth_limit_enable : '';
+
+    // 涓� tempering 鍙傛暟娣诲姞榛樿鍊�
+    parsedData.tempering.furnaceLength = parsedData.tempering.furnaceLength !== undefined ? parsedData.tempering.furnaceLength : 5000;
+    parsedData.tempering.furnaceWidth = parsedData.tempering.furnaceWidth !== undefined ? parsedData.tempering.furnaceWidth : 2800;
+    parsedData.tempering.maxLoadingRate = parsedData.tempering.maxLoadingRate !== undefined ? parsedData.tempering.maxLoadingRate : 50;
+    parsedData.tempering.chaosLevel = parsedData.tempering.chaosLevel !== undefined ? parsedData.tempering.chaosLevel : 0;
+    parsedData.tempering.temperingTime = parsedData.tempering.temperingTime !== undefined ? parsedData.tempering.temperingTime : 160;
+    parsedData.tempering.defaultTemperingMode = parsedData.tempering.defaultTemperingMode !== undefined ? parsedData.tempering.defaultTemperingMode : 'auto';
+    parsedData.tempering.maxArea = parsedData.tempering.maxArea !== undefined ? parsedData.tempering.maxArea : 0;
+    parsedData.tempering.maxPieceCount = parsedData.tempering.maxPieceCount !== undefined ? parsedData.tempering.maxPieceCount : 10;
+    parsedData.tempering.xAxisInterval = parsedData.tempering.xAxisInterval !== undefined ? parsedData.tempering.xAxisInterval : 80;
+    parsedData.tempering.yAxisInterval = parsedData.tempering.yAxisInterval !== undefined ? parsedData.tempering.yAxisInterval : 80;
+
+    Object.assign(settings, parsedData);
+    console.log('璁剧疆宸叉洿鏂�:', settings);
+
+    // 涓� optimization 鍙傛暟璁剧疆榛樿鍊�
+    initializeOptimizationDefaults();
   } catch (error) {
     console.error('璇锋眰鍙戠敓閿欒:', error);
+    // 鍑虹幇閿欒鏃朵篃璁剧疆榛樿鍊�
+    setDefaultSettings();
   }
 };
 
@@ -59,22 +159,18 @@
 
 // 鍙傛暟鏄犲皠琛紝鐢ㄤ簬灏嗚嫳鏂囧弬鏁板悕鏄犲皠涓轰腑鏂囧悕绉板拰绫诲瀷
 const paramMapping = {
+  optimizationMethod: { name: '浼樺寲鏂瑰紡', type: 'select' },
+  smallPieceRotationProhibited: { name: '灏忕墖鍏佽鏃嬭浆', type: 'checkbox' },
+  cutterOriginPosition: { name: '鍒囧壊鏈哄師鐐逛綅缃�', type: 'select' },
+  travType: { name: '妯垏', type: 'select' },
+  uniformShapeEdgeTrimAmount: { name: '缁熶竴璁剧疆寮傚舰淇竟閲�', type: 'text' },
   yShapeJoinOptimization: { name: '寮傚舰鎷兼帴浼樺寲', type: 'checkbox' },
-  autoMiddleEmptyPairing: { name: '鑷姩涓┖閰嶅', type: 'checkbox' },
-  smallPieceRotationProhibited: { name: '灏忕墖鏃嬭浆', type: 'checkbox' },
+  optimizationIterations: { name: '閲嶅浼樺寲娆℃暟', type: 'text' },
   maxFramesOnSite: { name: '鐜板満鏈�澶у彲鏀炬灦瀛愭暟閲�', type: 'text' },
+  rackCycleQty: { name: '寰幆钀芥灦鏁�', type: 'text' },
   bendEdgeDistance: { name: '鎺拌竟璺�(mm)', type: 'text' },
   positiveTolerance: { name: '姝e叕宸�(mm)', type: 'text' },
   negativeTolerance: { name: '璐熷叕宸�(mm)', type: 'text' },
-  cutterOriginPosition: { name: '鍒囧壊鏈哄師鐐逛綅缃�', type: 'select' },
-  uniformShapeEdgeTrimAmount: { name: '缁熶竴璁剧疆寮傚舰淇竟閲�', type: 'text' },
-  optimizationMethod: { name: '浼樺寲鏂瑰紡', type: 'select' },
-  travType: { name: '妯垏', type: 'select' },
-  optimizationIterations: { name: '閲嶅浼樺寲娆℃暟', type: 'text' },
-  finishedProductGrindingAmount: { name: '鎴愬搧榛樿纾ㄩ噺', type: 'text' },
-  rawPieceEdgeTrimAmount: { name: '鍘熺墖榛樿淇竟閲�', type: 'text' },
-  finishedSinglePieceBelowGrindingAmount: { name: '鎴愬搧鍗曠墖灏忎簬澶氬皯鏃剁(閲忎负', type: 'text' },
-  rackCycleQty: { name: '寰幆钀芥灦鏁�', type: 'text' }
 };
 
 // 鍔ㄦ�佺敓鎴愬弬鏁板垪琛�
@@ -122,6 +218,14 @@
         <div class="sidebar-header">杈撳嚭</div>
         <div class="sidebar-content">缁撴灉杈撳嚭璁剧疆</div>
       </div>
+      <div
+          @click="selectComponent('mark')"
+          :class="{ active: currentComponent === 'mark' }"
+          class="sidebar-item"
+      >
+        <div class="sidebar-header">鎵撴爣</div>
+        <div class="sidebar-content">鎵撴爣璁剧疆</div>
+      </div>
 
       <div
         @click="selectComponent('tempering')"
@@ -131,6 +235,14 @@
         <div class="sidebar-header">閽㈠寲</div>
         <div class="sidebar-content">閽㈠寲璁剧疆</div>
       </div>
+      <div
+          @click="selectComponent('print')"
+          :class="{ active: currentComponent === 'print' }"
+          class="sidebar-item"
+      >
+        <div class="sidebar-header">鎵撳嵃</div>
+        <div class="sidebar-content">鎵撳嵃璁剧疆</div>
+      </div>
     </div>
 
     <div class="main-content">
@@ -138,7 +250,7 @@
         <div class="display-settings">
           <h2>鐗堝浘鏄剧ず璁剧疆</h2>
           <div class="form-group">
-            <label>鐭╁舰鎴愬搧鏄剧ず棰滆壊</label>
+            <label>鐗堝浘鏄剧ず棰滆壊璁剧疆</label>
             <input type="color" v-model="settings.display.themeColor" />
           </div>
           <div class="form-group">
@@ -148,10 +260,6 @@
           <div class="form-group">
             <label>寮傚舰灏哄鍖呭惈纾ㄨ竟閲�</label>
             <input type="checkbox" v-model="settings.display.includeIrregularEdge" />
-          </div>
-          <div class="form-group">
-            <label>鎸夋灦鍙峰悎骞剁増鍥�</label>
-            <input type="checkbox" v-model="settings.display.mergeByFrameNumber" />
           </div>
           <div style="border: 1px solid #d2d0d0; margin-top: 20px;">
             <div style="background-color: #D5EAFF;">灏忕墖淇℃伅</div>
@@ -232,18 +340,117 @@
           </div>
         </div>
       </template>
+      <template v-else-if="currentComponent === 'print'">
+        <div class="display-settings">
+          <h2>鎵撳嵃璁剧疆</h2>
+          <div class="form-group">
+            <label>鏄惁鎵撳嵃鐗堝浘</label>
+            <div style="margin-left: 3px;"></div>
+            <div class="radio-group">
+              <input
+                  type="radio"
+                  id="printLayouts"
+                  value="1"
+                  v-model="settings.server.printLayouts"
+              />
+              <label for="printLayouts">鏄�</label>
+
+              <input
+                  type="radio"
+                  id="noPrintLayouts"
+                  value="0"
+                  v-model="settings.server.printLayouts"
+                  style="margin-left: 20px;"
+              />
+              <label for="noPrintLayouts">鍚�</label>
+            </div>
+          </div>
+          <div class="form-group">
+            <label>鏄惁鎵撳嵃鎶ュ憡</label>
+            <div style="margin-left: 3px;"></div>
+            <div class="radio-group">
+              <input
+                  type="radio"
+                  id="printReport"
+                  value="1"
+                  v-model="settings.server.printReport"
+              />
+              <label for="printReport">鏄�</label>
+              <input
+                  type="radio"
+                  id="noPrintReport"
+                  value="0"
+                  v-model="settings.server.printReport"
+                  style="margin-left: 20px;"
+              />
+              <label for="noPrintReport">鍚�</label>
+            </div>
+          </div>
+          <div class="form-group">
+            <label>甯冨眬閫夋嫨</label>
+            <select v-model="settings.server.layoutRows" class="cs" style="width: 10px; margin-right: 5px;">
+              <option value="1">涓�琛�</option>
+              <option value="2">涓よ</option>
+              <option value="3">涓夎</option>
+              <option value="4">鍥涜</option>
+            </select>
+            <select v-model="settings.server.layoutColumns" class="cs" style="width: 10px;">
+              <option value="1">涓�鍒�</option>
+              <option value="2">涓ゅ垪</option>
+            </select>
+          </div>
+          <div class="form-group">
+            <label>灏忕墖淇℃伅</label>
+            <select v-model="settings.server.glassInfoShow" class="cs" style="width: 10px; margin-right: 10px;">
+              <option value="0">涓嶆樉绀�</option>
+              <option value="1">鏄剧ず鍦ㄥ彸渚�</option>
+              <option value="2">鏄剧ず鍦ㄤ笅渚�</option>
+            </select>
+          </div>
+          <div class="form-group">
+            <label>鍒囧壊淇℃伅</label>
+            <select v-model="settings.server.cutInfoShow" class="cs" style="width: 10px; margin-right: 10px;">
+              <option value="0">涓嶆樉绀�</option>
+              <option value="1">鏄剧ず</option>
+            </select>
+          </div>
+        </div>
+      </template>
 
       <template v-else-if="currentComponent === 'server'">
         <div class="display-settings">
           <h2>缁撴灉杈撳嚭璁剧疆</h2>
           <div class="form-group">
+            <label>鍒囧壊鏂囦欢淇濆瓨妯″紡</label>
+            <div style="margin-left: 3px;"></div>
+            <div class="radio-group">
+              <input
+                  type="radio"
+                  id="singleFile"
+                  value="1"
+                  v-model="settings.server.fileMode"
+              />
+              <label for="singleFile">鍗曟枃浠�</label>
+
+              <input
+                  type="radio"
+                  id="multiFile"
+                  value="2"
+                  v-model="settings.server.fileMode"
+                  style="margin-left: 20px;"
+              />
+              <label for="multiFile">澶氭枃浠�</label>
+            </div>
+          </div>
+
+          <div class="form-group">
             <label>宸ョ▼鏂囦欢淇濆瓨璺緞</label>
             <input type="text" v-model="settings.server.output_format" />
           </div>
-          <div class="form-group">
-            <label>鍒囧壊浠g爜淇濆瓨璺緞</label>
-            <input type="text" v-model="settings.server.cutting_code_save_path" />
-          </div>
+<!--          <div class="form-group">-->
+<!--            <label>鍒囧壊浠g爜淇濆瓨璺緞</label>-->
+<!--            <input type="text" v-model="settings.server.cutting_code_save_path" />-->
+<!--          </div>-->
           <div class="form-group">
             <label>淇濆瓨鏂囦欢鍚庢墦寮�鎵�鍦ㄦ枃浠跺す</label>
             <input type="text" v-model="settings.server.open_folder_after_save" />
@@ -252,10 +459,10 @@
             <label>G浠g爜鏂囦欢鏍煎紡</label>
             <input type="text" v-model="settings.server.g_code_file_format" />
           </div>
-          <div class="form-group">
-            <label>TRF鏂囦欢淇濆瓨璺緞</label>
-            <input type="text" v-model="settings.server.trf_file_save_path" />
-          </div>
+<!--          <div class="form-group">-->
+<!--            <label>TRF鏂囦欢淇濆瓨璺緞</label>-->
+<!--            <input type="text" v-model="settings.server.trf_file_save_path" />-->
+<!--          </div>-->
           <div class="form-group">
             <label>淇濈壒缃楁枃浠朵繚瀛樿矾寰�</label>
             <input type="text" v-model="settings.server.btl_file_save_path" />
@@ -268,9 +475,139 @@
             <label>浼樺寲娣卞害闄愬埗鍚敤</label>
             <input type="text" v-model="settings.server.optimization_depth_limit_enable" />
           </div>
-          <div class="form-group">
-            <label>鍘熺墖鍒囨潗鐜囪绠�</label>
-            <input type="text" v-model="settings.server.original_sheet_material_calculation" />
+<!--          <div class="form-group">-->
+<!--            <label>鍘熺墖鍒囨潗鐜囪绠�</label>-->
+<!--            <input type="text" v-model="settings.server.original_sheet_material_calculation" />-->
+<!--          </div>-->
+        </div>
+      </template>
+
+      <template v-else-if="currentComponent === 'mark'">
+        <div class="display-settings">
+          <h2>鎵撴爣璁剧疆</h2>
+          <div style=" margin-top: 10px;padding: 4px; border-radius: 8px;">
+            <div class="form-group">
+              <label>鏄惁鎵撴爣</label>
+              <div style="margin-left: 3px;"></div>
+              <div class="radio-group">
+                <input
+                    type="radio"
+                    id="singleFile"
+                    value="1"
+                    v-model="settings.server.haveMark"
+                />
+                <label for="singleFile">鏄�</label>
+
+                <input
+                    type="radio"
+                    id="multiFile"
+                    value="0"
+                    v-model="settings.server.haveMark"
+                    style="margin-left: 20px;"
+                />
+                <label for="multiFile">鍚�</label>
+              </div>
+            </div>
+            <div class="form-group">
+              <label>鏄惁鐢熸垚OPTIMA鎵撴爣淇℃伅</label>
+              <div style="margin-left: 3px;"></div>
+              <div class="radio-group">
+                <input
+                    type="radio"
+                    id="singleFile"
+                    value="1"
+                    v-model="settings.server.haveOptimaMark"
+                />
+                <label for="singleFile">鏄�</label>
+
+                <input
+                    type="radio"
+                    id="multiFile"
+                    value="0"
+                    v-model="settings.server.haveOptimaMark"
+                    style="margin-left: 20px;"
+                />
+                <label for="multiFile">鍚�</label>
+              </div>
+            </div>
+            <div class="form-group">
+              <label>鏄惁鐢熸垚閫熷埢鎵撴爣淇℃伅</label>
+              <div style="margin-left: 28px;"></div>
+              <div class="radio-group">
+                <input
+                    type="radio"
+                    id="singleFile"
+                    value="1"
+                    v-model="settings.server.haveQMark"
+                />
+                <label for="singleFile">鏄�</label>
+
+                <input
+                    type="radio"
+                    id="multiFile"
+                    value="0"
+                    v-model="settings.server.haveQMark"
+                    style="margin-left: 20px;"
+                />
+                <label for="multiFile">鍚�</label>
+              </div>
+            </div>
+            <div class="form-group">
+              <label>鐜荤拑ID妯″紡</label>
+              <div style="margin-left: 28px;"></div>
+              <div class="radio-group">
+                <input
+                    type="radio"
+                    id="singleFile"
+                    value="1"
+                    v-model="settings.server.glassIdMode"
+                />
+                <label for="singleFile">鍥哄畾闀垮害</label>
+
+                <input
+                    type="radio"
+                    id="multiFile"
+                    value="2"
+                    v-model="settings.server.glassIdMode"
+                    style="margin-left: 20px;"
+                />
+                <label for="multiFile">鑷姩闀垮害</label>
+              </div>
+            </div>
+            <div class="form-group">
+              <label>榛樿浜岀淮鐮佷綅缃�</label>
+              <div style="margin-left: 28px;"></div>
+              <div class="radio-group">
+                <input
+                    type="radio"
+                    id="singleFile"
+                    value="1"
+                    v-model="settings.server.optimaMarkPosition"
+                />
+                <label for="singleFile">闀胯竟瀵硅</label>
+
+                <input
+                    type="radio"
+                    id="multiFile"
+                    value="2"
+                    v-model="settings.server.optimaMarkPosition"
+                    style="margin-left: 20px;"
+                />
+                <label for="multiFile">闀胯竟鍚岃竟</label>
+              </div>
+            </div>
+            <div class="form-group">
+              <label>浜岀淮鐮佹枃浠跺悕绉�(.ez3)</label>
+              <input type="text" v-model="settings.server.optimaMarkName" />
+            </div>
+            <div class="form-group">
+              <label>瀹�(mm)</label>
+              <input type="text" v-model="settings.server.optimaMarkWidth" />
+            </div>
+            <div class="form-group">
+              <label>楂�(mm)</label>
+              <input type="text" v-model="settings.server.optimaMarkHeight" />
+            </div>
           </div>
         </div>
       </template>
@@ -287,11 +624,11 @@
             <input type="number" v-model="settings.tempering.furnaceWidth" step="1" />
           </div>
           <div class="form-group">
-            <label>鏈�澶ц杞界巼(%)</label>
+            <label>閽㈠寲鏈�澶ц杞界巼(%)</label>
             <input type="number" v-model="settings.tempering.maxLoadingRate" step="1" />
           </div>
           <div class="form-group">
-            <label>娣蜂贡绋嬪害(%)</label>
+            <label>宸ョ▼娣锋帓绛夌骇(%)</label>
             <input type="number" v-model="settings.tempering.chaosLevel" step="1" />
           </div>
           <div class="form-group">
@@ -368,6 +705,8 @@
           </div>
         </div>
       </template>
+
+
     </div>
 
     <button class="button" style="height: 40px;" @click="saveToDatabase">淇濆瓨</button>

--
Gitblit v1.8.0