From cfa4a3fdb3dcd9a811157c4bd8f82ba4025917bc Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期二, 17 十二月 2024 08:42:40 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue |  220 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 199 insertions(+), 21 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
index 5ccbddd..dadaed3 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
@@ -1,5 +1,5 @@
 <script setup>
-import {nextTick, onMounted, reactive, ref} from "vue";
+import {nextTick, onMounted, reactive, ref, watch} from "vue";
 import {useI18n} from "vue-i18n";
 import {Folder, Plus, Setting, Operation,} from "@element-plus/icons-vue";
 import OptimizeCompute from "@/views/pp/glassOptimize/page/OptimizeCompute.vue";
@@ -7,8 +7,8 @@
 import SetTrimming from "@/views/pp/glassOptimize/page/SetTrimming.vue";
 import CheckInventory from "@/views/pp/glassOptimize/page/CheckInventory.vue";
 import request from "@/utils/request";
-import {ElMessage} from "element-plus";
-import { useRoute } from 'vue-router';
+import {ElMessage, ElMessageBox} from "element-plus";
+import {useRoute} from 'vue-router';
 
 
 const {t} = useI18n()
@@ -45,12 +45,53 @@
   columns: [
     {field: 'order_number', title: '璁㈠簭', width: 70},
     {field: 'child_width', width: 100, title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num2_filter'}},
-    {field: 'child_height', width: 100, title: t('order.height'),filters: [{data: ''}],slots: {filter: 'num2_filter'}},
-    {field: 'quantity', width: 150, title: t('order.quantity'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'longGrind1', width: 150, title: '闀跨(1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'longGrind2', width: 150, title: '闀跨(2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'shortGrind1', width: 150, title: '鐭(1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'shortGrind2', width: 150, title: '鐭(2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'child_height',
+      width: 100,
+      title: t('order.height'),
+      filters: [{data: ''}],
+      slots: {filter: 'num2_filter'}
+    },
+    {
+      field: 'quantity',
+      width: 150,
+      title: t('order.quantity'),
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'longGrind1',
+      width: 150,
+      title: '闀跨(1',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'longGrind2',
+      width: 150,
+      title: '闀跨(2',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'shortGrind1',
+      width: 150,
+      title: '鐭(1',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'shortGrind2',
+      width: 150,
+      title: '鐭(2',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {
       field: 'shape',
       width: 150,
@@ -59,7 +100,14 @@
       slots: {filter: 'num1_filter'},
       sortable: true
     },
-    {field: 'process_cards', width: 150, title: '娴佺▼鍗″彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'process_cards',
+      width: 150,
+      title: '娴佺▼鍗″彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {
       field: 'product_name',
       width: 150,
@@ -135,14 +183,130 @@
     },
   ],//琛ㄥご鍙傛暟
   data: null,//琛ㄦ牸鏁版嵁
+  //鍙抽敭鑿滃崟
+  menuConfig: {
+    body: {
+      options: [
+        [
+          {code: 'setAmount', name: '璁剧疆缁熶竴纾ㄩ噺',},
+          {code: 'displayProcessCard', name: '鏄剧ず娴佺▼鍗�',},
+          {code: 'hideProcessCard', name: '闅愯棌娴佺▼鍗�',},
+          {code: 'setShape', name: '璁剧疆鍥惧舰',},
+          {code: 'Export', name: '鏁版嵁瀵煎嚭', prefixIcon: 'vxe-icon-download', visible: true, disabled: false},
+          {code: 'safeDXF', name: '鍥惧舰鍙﹀瓨涓篋XF',},
+          {code: 'exportOPTIMA', name: '瀵煎嚭鏁版嵁鍒癘PTIMA',},
+        ],
+        []
+      ]
+    },
+  },
   toolbarConfig: {
     buttons: [],
     slots: {
       buttons: "toolbar"
     },
+
   },
 
 })
+// 鍙抽敭鑿滃崟
+const operationConfigs = [
+  {
+    code: 'setAmount', // 璁剧疆缁熶竴纾ㄩ噺
+    successMsg: '宸叉墦寮�锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    openAmount: async () => {
+      dialogVisible.value[2] = true;
+    }
+  },
+  {
+    code: 'displayProcessCard',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    showMessage: () => {
+      ElMessage.info('姝ゅ姛鑳芥殏鏈畬鍠勶紝鏆傛椂鏃犳硶鎵ц鏄剧ず娴佺▼鍗℃搷浣溿��');
+    }
+  },
+  {
+    code: 'hideProcessCard',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    showMessage: () => {
+      ElMessage.info('姝ゅ姛鑳芥殏鏈畬鍠勶紝鏆傛椂鏃犳硶鎵ц闅愯棌娴佺▼鍗℃搷浣溿��');
+    }
+  },
+  {
+    code: 'setShape',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    showMessage: () => {
+      ElMessage.info('姝ゅ姛鑳芥殏鏈畬鍠勶紝鏆傛椂鏃犳硶鎵ц璁剧疆鍥惧舰鎿嶄綔銆�');
+    }
+  },
+  {
+    code: 'Export', // 瀵煎嚭鏂囦欢鎿嶄綔鐨勯厤缃�
+    successMsg: '鏂囦欢瀵煎嚭鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+  },
+  {
+    code: 'safeDXF',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    showMessage: () => {
+      ElMessage.info('姝ゅ姛鑳芥殏鏈畬鍠勶紝鏆傛椂鏃犳硶鎵ц鍥惧舰鍙﹀瓨涓篋XF鎿嶄綔銆�');
+    }
+  },
+  {
+    code: 'exportOPTIMA',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    showMessage: () => {
+      ElMessage.info('姝ゅ姛鑳芥殏鏈畬鍠勶紝鏆傛椂鏃犳硶鎵ц瀵煎嚭鏁版嵁鍒癘PTIMA鎿嶄綔銆�');
+    }
+  },
+]
+
+// 鍙抽敭鑿滃崟鐐瑰嚮閫昏緫
+const gridEvents = {
+  menuClick({menu}) {
+    const $grid = xGrid.value;
+    if ($grid) {
+      const config = operationConfigs.find(c => c.code === menu.code);
+      if (config) {
+        if (config.code === 'Export') {
+          config.gridRef.value.exportData();
+          ElMessage.success(config.successMsg);
+          return;
+        }
+        // 娣诲姞纭鎻愮ず寮圭獥锛岃闂敤鎴锋槸鍚﹁繘琛屽綋鍓嶆搷浣�
+        ElMessageBox.confirm('鏄惁杩涜褰撳墠鎿嶄綔锛�', '纭鎿嶄綔', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          if (config.code === 'setAmount') {
+            config.openAmount();
+            ElMessage.success(config.successMsg);
+          }else if (['displayProcessCard', 'hideProcessCard', 'setShape', 'safeDXF', 'exportOPTIMA'].includes(config.code)) {
+            config.showMessage();
+          }
+        }).catch(() => {
+          // 鐢ㄦ埛鐐瑰嚮鍙栨秷鍚庢墽琛岀殑閫昏緫
+          ElMessage.info('宸插彇娑堟搷浣�');
+        });
+      } else {
+        console.error(`鏈壘鍒版搷浣滈�夐」 ${menu.code} 瀵瑰簲鐨勯厤缃紝璇锋鏌ラ厤缃」`);
+      }
+    }
+  },
+};
 
 const handleCommand = async (command) => {
   await emit('changeDialog', command)
@@ -153,10 +317,20 @@
 const openDialog = (index) => {
   dialogVisible.value[index] = true;
 };
-
+//鍏抽棴寮圭獥
 const closeDialog = (index) => {
   dialogVisible.value[index] = false;
 };
+
+//鍙抽敭鑿滃崟缁熶竴淇竟
+const props = defineProps({
+  TrimmingDialogVisible: Boolean
+});
+watch(() => props.TrimmingDialogVisible, (newValue) => {
+  if (newValue === true) {
+    dialogVisible.value[3] = newValue;
+  }
+});
 
 const route = useRoute();
 //宸ョ▼鍙�
@@ -194,8 +368,6 @@
 const Amount = (amountData) => {
   nextTick(() => {
     const data = gridOptions.data;
-    console.log('鎺ユ敹鍒扮殑amountData:', amountData);
-    console.log('琛ㄦ牸鍘熷鏁版嵁:', data);
     if (data) {
       try {
         const updatedData = [];
@@ -223,15 +395,21 @@
   });
 };
 
-//涓浆绔欐帴鍙桽etTrimming鐨勫��
+//涓浆绔欐帴鍙桽etTrimming鐨勫�硷紙璁剧疆淇竟锛�
 const emit = defineEmits([
   'changeDialog',
-  'forward-data-to-grandparent'
+  'forward-data-to-grandparent',
+  'send-inventory-to-op'
 ]);
 
 const handleTrimmingData = (data) => {
   emit('forward-data-to-grandparent', data);
 };
+
+//涓浆绔欐帴鍙桟heckInventory鐨勫�硷紙鏌ヨ搴撳瓨锛�
+const handleInventory = (selectedLabel1, selectedLabel2) => {
+  emit('send-inventory-to-op', selectedLabel1, selectedLabel2);
+}
 
 </script>
 
@@ -274,16 +452,17 @@
         <div id="header">
           <div id="title">
             <span>宸ョ▼缂栧彿锛�</span>
-            <el-input disabled  placeholder="" style="width: 150px" v-model="projectNo"></el-input>&nbsp;
+            <el-input disabled placeholder="" style="width: 150px" v-model="projectNo"></el-input>&nbsp;
             <span>宸ョ▼鍚嶇О锛�</span>
-            <el-input disabled placeholder="" style="width: 150px; margin-right: 350px" v-model="projectName"></el-input>
+            <el-input disabled placeholder="" style="width: 150px; margin-right: 350px"
+                      v-model="projectName"></el-input>
             <el-button id="checkinventory" type="primary" @click="openDialog(1)">鏌ヨ搴撳瓨</el-button>
             <el-dialog
                 v-model="dialogVisible[1]"
                 title="鏌ヨ搴撳瓨"
                 destroy-on-close
                 style="width: 35%;height:35%;">
-              <check-inventory />
+              <check-inventory :closeDialog="closeDialog" @send-data-inventory="handleInventory"/>
             </el-dialog>
 
             <el-button id="button" type="primary" @click="openDialog(2)">璁剧疆纾ㄩ噺</el-button>
@@ -292,7 +471,7 @@
                 title="璁剧疆纾ㄩ噺"
                 destroy-on-close
                 style="width: 35%;height:80%;margin-top: 3vh;">
-               <set-amount :closeDialog="closeDialog" @set-amount="Amount"/>
+              <set-amount :closeDialog="closeDialog" @set-amount="Amount"/>
             </el-dialog>
 
             <el-button id="button" type="primary" @click="openDialog(3)">璁剧疆淇竟</el-button>
@@ -315,7 +494,6 @@
             >
               <optimize-compute/>
             </el-dialog>
-
           </div>
           <!--宸ョ▼鏂囦欢鑿滃崟-->
           <el-dropdown @command="handleCommand">
@@ -351,7 +529,7 @@
   margin-top: 8px;
 }
 
-#button{
+#button {
   margin-left: 10px;
 }
 

--
Gitblit v1.8.0