From 21eed4f6a8065bb59d0aaf7481dfe145dba74f2a Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 01 十二月 2025 09:18:01 +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/page/ProjectDetail.vue | 143 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 133 insertions(+), 10 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 4e4b7d7..5008b6c 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
@@ -55,18 +55,21 @@
{field: 'width',
width: 100,
title: t('order.width'),
+ editRender: { name: 'input' },
sortable: true
},
{
field: 'height',
width: 100,
title: t('order.height'),
+ editRender: { name: 'input' },
sortable: true
},
{
field: 'quantity',
width: 150,
title: t('order.quantity'),
+ editRender: { name: 'input' },
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
sortable: true
@@ -212,15 +215,28 @@
body: {
options: [
[
- {code: 'setAmount', name: '璁剧疆缁熶竴纾ㄩ噺',},
+ {code: 'setAmount', name: '璁剧疆缁熶竴纾ㄩ噺',prefixIcon:'vxe-icon-edit'},
+ {code: 'addRow', name: '娣诲姞涓存椂灏忕墖', prefixIcon: 'vxe-icon-add', visible: true, disabled: false},
{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',},
- {code: 'copyChecked', name: t('basicData.selectSame'), prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
- {code: 'copyAll', name: t('basicData.sameAfterwards'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
+ {
+ code: 'copyChecked',
+ name: t('basicData.selectSame'),
+ prefixIcon: 'vxe-icon-copy',
+ visible: true,
+ disabled: false
+ },
+ {
+ code: 'copyAll',
+ name: t('basicData.sameAfterwards'),
+ prefixIcon: 'vxe-icon-feedback',
+ visible: true,
+ disabled: false
+ },
],
[]
]
@@ -307,10 +323,89 @@
}
},
{
- code: 'Export', // 瀵煎嚭鏂囦欢鎿嶄綔鐨勯厤缃�
- successMsg: '鏂囦欢瀵煎嚭鎴愬姛锛�',
+ code: 'addRow',
+ successMsg: '宸叉坊鍔�',
gridRef: xGrid,
requiresRow: false,
+ addNewRow: async () => {
+ // 鑾峰彇褰撳墠鐨勭(閲忛厤缃�
+ let currentGrindConfig = null;
+ try {
+ const res = await request.post(`/glassOptimize/getConfiguration/纾ㄩ噺/${username}`);
+ if (res.code == "200" && res.data.data && res.data.data.length > 0) {
+ const rawData = res.data.data[0];
+ currentGrindConfig = {};
+ for (const key in rawData) {
+ if (typeof rawData[key] === 'string') {
+ currentGrindConfig[key] = rawData[key].replace(/^\"|\"$/g, '');
+ } else {
+ currentGrindConfig[key] = rawData[key];
+ }
+ }
+ }
+ } catch (error) {
+ console.warn('鑾峰彇纾ㄩ噺閰嶇疆澶辫触:', error);
+ }
+
+ // 鏍规嵁纾ㄩ噺閰嶇疆璁剧疆榛樿鍊�
+ let defaultLongGrind1 = 0;
+ let defaultLongGrind2 = 0;
+ let defaultShortGrind1 = 0;
+ let defaultShortGrind2 = 0;
+
+ if (currentGrindConfig) {
+ defaultLongGrind1 = parseFloat(currentGrindConfig.leftEdge) || 0;
+ defaultLongGrind2 = parseFloat(currentGrindConfig.rightEdge) || 0;
+ defaultShortGrind1 = parseFloat(currentGrindConfig.upEdge) || 0;
+ defaultShortGrind2 = parseFloat(currentGrindConfig.downEdge) || 0;
+ }
+
+ // 鍒涘缓鏂拌鏁版嵁锛屽皢 width銆乭eight銆乹uantity 璁剧疆涓烘暟鍊肩被鍨�
+ const newRow = {
+ order_number: 0,
+ width: 0,
+ height: 0,
+ quantity: 0,
+ longGrind1: defaultLongGrind1,
+ longGrind2: defaultLongGrind2,
+ shortGrind1: defaultShortGrind1,
+ shortGrind2: defaultShortGrind2,
+ shape: '',
+ process_id: '',
+ productName: '',
+ price: 0,
+ remark: '',
+ buildingNumber: '',
+ perimeter: 0,
+ area: 0,
+ rackNo: 1,
+ layer: 1,
+ glass_child: '',
+ markIcon: '',
+ processId: '',
+ totalLayer: 0,
+ patchState: 0,
+ heatLayoutId: 0,
+ process: '',
+ orderNo: '',
+ customerName: '',
+ processingNote: '',
+ projectName: ''
+ };
+
+ // 灏嗘柊琛屾坊鍔犲埌琛ㄦ牸鏁版嵁涓�
+ const currentData = gridOptions.data || [];
+ const updatedData = [...currentData, newRow];
+ gridOptions.data = updatedData;
+ xGrid.value.loadData(updatedData);
+
+ // 鑾峰彇鏂版坊鍔犺鐨勭储寮�
+ const newIndex = updatedData.length - 1;
+
+ // 閫変腑骞剁紪杈戞柊琛�
+ await nextTick();
+ xGrid.value.setActiveRow(newRow);
+ }
},
{
code: 'safeDXF',
@@ -358,6 +453,20 @@
if (config.code === 'Export') {
config.gridRef.value.exportData();
ElMessage.success(config.successMsg);
+ return;
+ }
+ if (config.code === 'addRow') {
+ // 娣诲姞纭鎻愮ず寮圭獥锛岃闂敤鎴锋槸鍚﹁繘琛屽綋鍓嶆搷浣�
+ ElMessageBox.confirm('鏄惁娣诲姞涓存椂灏忕墖锛�', '纭鎿嶄綔', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ config.addNewRow();
+ ElMessage.success(config.successMsg);
+ }).catch(() => {
+ ElMessage.info('宸插彇娑堟搷浣�');
+ });
return;
}
if (config.code === 'copyChecked') {
@@ -487,20 +596,35 @@
optimizeData.value.glassDetails = [];
// 浠庤〃鏍间腑鑾峰彇 glassDetail 鏁版嵁锛岃�屼笉鏄粠鍚庣鎺ュ彛璇诲彇
const tableData = xGrid.value.getTableData().fullData;
+ let totalQuantity = 0;
+ let totalArea = 0;
+
+ tableData.forEach(item => {
+ const width = parseFloat(item.width) || 0;
+ const height = parseFloat(item.height) || 0;
+ const quantity = parseInt(item.quantity) || 0;
+
+ // 浣跨敤闀棵楀脳鏁伴噺鏉ヨ绠楁�婚潰绉�
+ totalArea += (width * height * quantity) / 1000000; // 杞崲涓哄钩鏂圭背
+ totalQuantity += quantity;
+ });
+
+ quantitys.value = totalQuantity;
+ areas.value = totalArea;
const glassDetailData = tableData.map(item => {
let rackNoValue = 0;
if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') {
rackNoValue = item.rackNo;
}
return {
- width: item.width,
- height: item.height,
+ width: parseFloat(item.width) || 0,
+ height: parseFloat(item.height) || 0,
processId: item.processId,
layer: item.layer,
totalLayer: item.totalLayer,
orderSort: item.order_number,
markIcon: item.markIcon,
- quantity: item.quantity,
+ quantity: parseInt(item.quantity) || 0,
patchState: item.patchState,
upGrind: item.longGrind1,
downGrind: item.longGrind2,
@@ -573,7 +697,6 @@
}
}
);
-
// 鍗曠嫭澶勭悊閫変腑鍘熺墖鏁版嵁鐨勯�昏緫
watch(
() => props.CheckboxChangeData,
@@ -746,7 +869,7 @@
xGrid.value.loadData(data);
gridOptions.data = data;
- projectName.value = data[0].project_name;
+ projectName.value = res.data.project.project_name;
quantitys.value=res.data.project.glass_total
areas.value=res.data.project.glass_total_area
--
Gitblit v1.8.0