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>
+ <el-input disabled placeholder="" style="width: 150px" v-model="projectNo"></el-input>
<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