From 1e1c416c6aa6596feb333b75d882ffeede73d3c9 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 08 四月 2025 17:37:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue | 191 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 172 insertions(+), 19 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
index 69cc8d3..e0a7005 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
@@ -1,8 +1,8 @@
<script setup>
-import {onMounted, reactive, ref} from "vue";
+import {nextTick, onMounted, reactive, ref, watch} from "vue";
import {useI18n} from "vue-i18n";
import request from "@/utils/request";
-import {ElMessage} from "element-plus";
+import {ElMessage, ElMessageBox} from "element-plus";
import {useRoute} from "vue-router";
const { t } = useI18n()
@@ -45,14 +45,26 @@
{field: 'model', title: t('warehouseBasicData.type'),},
{field: 'leftTrim', title: '宸︿慨杈�',},
{field: 'downTrim', title: '涓嬩慨杈�',},
- {field: 'rigthTrim', title: '鍙充慨杈�',},
+ {field: 'rightTrim', title: '鍙充慨杈�',},
{field: 'upTrim', title: '涓婁慨杈�',},
{field: 'available_quantity', title: '搴撳瓨鏁伴噺',},
- {field: '', title: '鍔犲伐鏁伴噺',},
+ {field: 'processingQuantity', title: '鍔犲伐鏁伴噺',},
{field: 'name', title: '鍚嶇О',},
{field: 'producer', title: '渚涘簲鍟�',}
],//琛ㄥご鍙傛暟
data:null,//琛ㄦ牸鏁版嵁
+ //鍙抽敭鑿滃崟
+ menuConfig: {
+ body: {
+ options: [
+ [
+ {code: 'selectTrimming', name: '璁剧疆缁熶竴淇竟',},
+ {code: 'Exports', name: '鏁版嵁瀵煎嚭', prefixIcon: 'vxe-icon-download', visible: true, disabled: false},
+ ],
+ []
+ ]
+ },
+ },
toolbarConfig: {
buttons: [],
slots:{
@@ -61,16 +73,71 @@
},
})
+const emit = defineEmits(['select-trimming']);
+// 鍙抽敭鑿滃崟
+const operationConfigs = [
+ {
+ code: 'selectTrimming', // 璁剧疆缁熶竴淇竟
+ successMsg: '宸叉墦寮�锛�',
+ gridRef: xGrid,
+ requiresRow: false,
+ openTrimming: async () => {
+ emit ( 'select-trimming', true)
+ }
+ },
+ {
+ code: 'Exports', // 瀵煎嚭鏂囦欢鎿嶄綔鐨勯厤缃�
+ successMsg: '鏂囦欢瀵煎嚭鎴愬姛锛�',
+ gridRef: xGrid,
+ requiresRow: false,
+ },
+]
+
+// 鍙抽敭鑿滃崟鐐瑰嚮閫昏緫
+const gridEvents = {
+ menuClick({menu}) {
+ const $grid = xGrid.value;
+ if ($grid) {
+ const config = operationConfigs.find(c => c.code === menu.code);
+ if (config) {
+ if (config.code === 'Exports') {
+ config.gridRef.value.exportData();
+ ElMessage.success(config.successMsg);
+ return;
+ }
+ // 娣诲姞纭鎻愮ず寮圭獥锛岃闂敤鎴锋槸鍚﹁繘琛屽綋鍓嶆搷浣�
+ ElMessageBox.confirm('鏄惁杩涜褰撳墠鎿嶄綔锛�', '纭鎿嶄綔', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ if (config.code === 'selectTrimming') {
+ config.openTrimming();
+ ElMessage.success(config.successMsg);
+ }
+ }).catch(() => {
+ // 鐢ㄦ埛鐐瑰嚮鍙栨秷鍚庢墽琛岀殑閫昏緫
+ ElMessage.info('宸插彇娑堟搷浣�');
+ });
+ } else {
+ console.error(`鏈壘鍒版搷浣滈�夐」 ${menu.code} 瀵瑰簲鐨勯厤缃紝璇锋鏌ラ厤缃」`);
+ }
+ }
+ },
+};
+
+
const route = useRoute();
-const thickness = ref(route.query.thickNess);
-const model = ref(route.query.model);
+const thickness = ref(route.params.thickNess);
+const model = ref(route.params.model);
+let projectNo = ref(null);
-
-const selectMaterialStore = () =>{
- request.post(`/glassOptimize/materialStore/${thickness.value}/${model.value}`).then((res) => {
+const selectMaterialStore = async () =>{
+ request.post(`/glassOptimize/materialStore/${thickness.value}/${model.value}/${projectNo}`).then((res) => {
if (Number(res.code) === 200) {
const rawData = res.data.data;
+ const edgeTrimming = res.data.edgeTrimming;
if (Array.isArray(rawData) && rawData.length > 0) {
const formattedData = rawData.map(item => {
const formattedItem = {};
@@ -84,16 +151,31 @@
}
return formattedItem;
});
- const data = formattedData;
- data.forEach(item => {
- item.leftTrim = 0;
- item.downTrim = 0;
- item.rigthTrim = 0;
- item.upTrim = 0;
- });
+ if(edgeTrimming!=null){
+ const edgeTrimmingData = edgeTrimming.map(item => {
+ const edgeTrimmingItem = {};
+ for (const key in item) {
+ if (typeof item[key] === 'string') {
+ //鍘婚櫎瀛楃涓插睘鎬у�煎紑澶村拰缁撳熬鐨勫弻寮曞彿
+ edgeTrimmingItem[key] = item[key].replace(/^\"|\"$/g, '');
+ } else {
+ edgeTrimmingItem[key] = item[key];
+ }
+ }
+ return edgeTrimmingItem;
+ });
+ console.log(edgeTrimmingData)
+ formattedData.forEach(item => {
+ item.leftTrim = edgeTrimmingData[0].leftTrim;
+ item.downTrim = edgeTrimmingData[0].downTrim;
+ item.rightTrim = edgeTrimmingData[0].rightTrim;
+ item.upTrim = edgeTrimmingData[0].upTrim;
+ });
+ }
+
xGrid.value.loadData(formattedData);
+ gridOptions.data = formattedData;
} else {
- console.error('杩斿洖鏁版嵁鏍煎紡涓嶇鍚堥鏈燂紝涓嶆槸鏈夋晥鐨勫璞℃暟缁勬牸寮�');
}
} else {
ElMessage.warning(res.msg);
@@ -103,15 +185,86 @@
};
onMounted(() => {
- selectMaterialStore();
+ if(route.params.projectNo!=null){
+ projectNo=route.params.projectNo
+ selectMaterialStore();
+ }
+
});
+
+watch(() => props.receivedData, (newData) => {
+ if (newData) {
+ Trimming(newData);
+ }
+}, { immediate: true });
+
+watch(() => props.InventoryData, (newInventoryData) => {
+ if (newInventoryData) {
+ thickness.value = newInventoryData.selectedLabel1;
+ model.value = newInventoryData.selectedLabel2;
+ // 鐢变簬 thickness 鍜� model 鐨勫�兼敼鍙樹簡锛屾洿鏂拌〃鏍硷紝璋冪敤 selectMaterialStore 閲嶆柊鑾峰彇鏁版嵁
+ selectMaterialStore();
+ }
+});
+
+const props = defineProps({
+ receivedData : {
+ type: Object,
+ required: false,
+ properties: {
+ quicksetLeft: { type: Number },
+ quicksetBottom: { type: Number },
+ quicksetRight: { type: Number },
+ quicksetTop: { type: Number }
+ }
+ },
+ InventoryData : {
+ type: Object,
+ required: false,
+ properties: {
+ selectedLabel1: { type: String },
+ selectedLabel2: { type: String },
+ }
+ }
+});
+
+//鎺ュ彈SetTrimming鐨勫�� 锛堜慨杈癸級
+const Trimming = (receivedData) => {
+ nextTick(() => {
+ const data = gridOptions.data;
+ if (data) {
+ try {
+ const updatedData = [];
+ for (let i = 0; i < data.length; i++) {
+ const item = data[i];
+ const updatedItem = {
+ ...item,
+ // 浠� receivedData 涓幏鍙栧搴旂殑鍊兼潵鏇存柊琛ㄦ牸鏁版嵁椤�
+ leftTrim: Number(receivedData.quicksetLeft),
+ downTrim: Number(receivedData.quicksetBottom),
+ rightTrim: Number(receivedData.quicksetRight),
+ upTrim: Number(receivedData.quicksetTop),
+ };
+ updatedData.push(updatedItem);
+ }
+ gridOptions.data = updatedData;
+ xGrid.value.loadData(updatedData);
+ } catch (error) {
+ console.error('鏇存柊琛ㄦ牸鏁版嵁鏃跺嚭閿�:', error);
+ ElMessage.error('鏇存柊琛ㄦ牸鏁版嵁鏃跺嚭鐜伴敊璇紝璇锋鏌ヨ緭鍏ユ垨鑱旂郴绠$悊鍛�');
+ }
+ } else {
+ console.warn('琛ㄦ牸鏁版嵁涓虹┖锛屾棤娉曟洿鏂扮(閲忓��');
+ }
+ });
+};
+
</script>
<template>
<div style="width: 100%;height: 100%">
<vxe-grid
- @filter-change="filterChanged"
height="100%"
class="mytable-scrollbar"
ref="xGrid"
--
Gitblit v1.8.0