From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示
---
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue | 122 ++++++++++++++++++++++++++++++++--------
1 files changed, 97 insertions(+), 25 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue
index 610961f..eda7c83 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue
@@ -10,7 +10,10 @@
import request from "@/utils/request";
import {ElMessage, ElMessageBox} from "element-plus";
import deepClone from "@/utils/deepClone";
+import {useRouter} from "vue-router";
+import {changeFilterEvent, filterChanged} from "@/hook";
+const router = useRouter();
let projectRow = ref({
processId:null,
technologyNumber:null
@@ -55,7 +58,7 @@
useKey: true
},
filterConfig: { //绛涢�夐厤缃」
- remote: true
+ //remote: true
},
customConfig: {
storage: true
@@ -66,17 +69,17 @@
showStatus: true
},
columns:[
- {field: 'id',width: 150, title: 'ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'projectNumber',width: 150, title: '宸ョ▼鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'project_name',width: 150, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'glass_type',width: 150, title: '鑶滅郴',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'glass_thickness',width: 150, title: '鍘氬害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'type',width: 150, title: '绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'state',width: 150, title: '鐘舵��',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'quantity',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'glass_total_area',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'process_qty',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: 'id',width: 150, title: 'ID'},
+ {field: 'projectNumber',width: 150, title: '宸ョ▼鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'project_name',width: 150, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'glass_type',width: 150, title: '鑶滅郴',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'glass_thickness',width: 150, title: '鍘氬害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'type',width: 150, title: '绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'state',width: 150, title: '鐘舵��',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'quantity',width: 150, title: t('order.quantity')},
+ {field: 'glass_total_area',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'process_qty',width: 150, title: '娴佺▼鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'process_cards',width: 150, title: '娴佺▼鍗″彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
],//琛ㄥご鍙傛暟
data:null,//琛ㄦ牸鏁版嵁
@@ -95,6 +98,7 @@
options: [
[
{code: 'openProject', name: '鎵撳紑宸ョ▼', prefixIcon: 'vxe-icon-folder-open'},
+ {code: 'updateProject', name: '淇敼宸ョ▼', prefixIcon: 'vxe-icon-folder-open'},
{code: 'compute', name: '妯℃嫙璁$畻', prefixIcon: 'vxe-icon-subtable'},
{code: 'delProject', name: '鍒犻櫎宸ョ▼', prefixIcon: 'vxe-icon-delete'},
],
@@ -109,21 +113,27 @@
const operationConfigs = [
{
code: 'openProject', // 鎵撳紑宸ョ▼
- initialState: ['10', '20', '100', '200'], //
+ initialState: ['1'], //
targetState: null,
successMsg: '宸叉墦寮�锛�',
checkMessage: '褰撳墠宸ョ▼鐘舵�佷笉绗﹀悎鏉′欢锛岃纭宸ョ▼鐘舵�佸悗鍐嶆搷浣滐紒',
requiresRow: true,
openFile: async ({row}) => {
const projectNumber = row.projectNumber;
- const thickness = row.thickness;
- const glassType = row.glassType;
+ const thickness = row.glass_thickness;
+ const glassType = row.glass_type;
+ const quantity = row.quantity;
+ const area = row.glass_total_area;
+ const optimizeState = row.optimize_state;
await router.push({
name: 'optimizeInfo',
params: {
projectNo: projectNumber,
thickNess: thickness,
- model: glassType
+ model: glassType,
+ quantity: quantity,
+ area: area,
+ optimizeState:optimizeState
}
});
}
@@ -146,6 +156,13 @@
targetState: null,
successMsg: '宸ョ▼鍒犻櫎鎴愬姛锛�',
checkMessage: '褰撳墠宸ョ▼鐘舵�佷笉绗﹀悎鍒犻櫎鏉′欢锛岃纭宸ョ▼鐘舵�佸悗鍐嶆搷浣滐紒',
+ },
+ {
+ code: 'updateProject',
+ initialState: ['1'],
+ targetState: null,
+ successMsg: '',
+ checkMessage: '褰撳墠宸ョ▼鐘舵�佷笉绗﹀悎鍒犻櫎鏉′欢锛岃纭宸ョ▼鐘舵�佸悗鍐嶆搷浣滐紒',
}
];
@@ -171,6 +188,48 @@
})
}
+// 鍏叡澶勭悊鍑芥暟锛屽鐞嗙浉鍚屾暟鎹椂鐨勬搷浣滐紝骞惰繑鍥瀟argetRoute瀵硅薄锛堝彸閿彍鍗曞拰鍙屽嚮鎵撳紑锛�
+const handleSameDataOperation = async ({projectNumber, thickness, glassType,quantity,glass_total_area,optimize_state}) => {
+ const targetRoute = {
+ name: 'optimizeInfo',
+ params: {
+ projectNo: projectNumber,
+ thickNess: thickness,
+ model: glassType,
+ quantity: quantity,
+ area: glass_total_area,
+ optimizeState:optimize_state
+ }
+ };
+ const currentRoute = router.currentRoute.value;
+ const isRoutesEqual = currentRoute.name === targetRoute.name &&
+ currentRoute.params.projectNo === targetRoute.params.projectNo &&
+ currentRoute.params.thickNess === targetRoute.params.thickNess &&
+ currentRoute.params.model === targetRoute.params.model;
+ if (isRoutesEqual) {
+ handleConfirm();
+ }
+ return {isRoutesEqual};
+};
+
+//閫変腑鐩稿悓鏁版嵁鏃跺脊绐楁彁绀�
+const handleConfirm = () => {
+ const currentRoute = router.currentRoute.value;
+ const projectNumber = currentRoute.params.projectNo;
+ ElMessageBox.confirm(`褰撳墠宸ョ▼锛堝伐绋嬪彿锛�${projectNumber}锛夊凡鎵撳紑锛屾槸鍚﹂噸鏂版墦寮�锛焋, '纭鎿嶄綔', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ })
+ .then(() => {
+ emit('close-detail-page');
+ ElMessage.success('宸叉墦寮�锛�');
+ })
+ .catch(() => {
+ ElMessage.info('宸插彇娑堟搷浣�');
+ });
+};
+
const gridEvents = {
menuClick({menu, row}) {
const $grid = xGrid.value;
@@ -183,6 +242,25 @@
}
if (config.code === 'compute') {
config.actionFunction({row});
+ return;
+ }
+ if (config.code === 'updateProject') {
+ if (!row) {
+ ElMessage.warning(config.checkMessage);
+ return;
+ }
+ nextTick(() => {
+ processCardRef.value.getUpdateFlowCardList(row.projectNumber, row.glass_type, row.glass_thickness);
+ });
+ return;
+ }
+ if (config.code === 'openProject') {
+ handleSameDataOperation(row).then(({isRoutesEqual}) => {
+ if (!isRoutesEqual) {
+ config.openFile({row});
+ ElMessage.success(config.successMsg);
+ }
+ });
return;
}
// 娣诲姞纭鎻愮ず寮圭獥锛岃闂敤鎴锋槸鍚﹁繘琛屽綋鍓嶆搷浣�
@@ -231,8 +309,8 @@
}
//鍒锋柊宸ョ▼鍙�
processCardRef.value.getProjectId();
- processCardRef.value.selectFlowCardList();
processCardRef.value.selectGlassType();
+ processCardRef.value.selectFlowCardList();
} else {
console.log('res.code 鐨勫��:', res.code, ', 绫诲瀷:', typeof res.code);
console.log('res.msg 鐨勫��:', res.msg, ', 绫诲瀷:', typeof res.msg);
@@ -266,10 +344,9 @@
<div id="project-list">
<div style="width: 100%;height: 100%">
- <h1>宸ョ▼鍒楄〃</h1>
+ <h2>宸ョ▼鍒楄〃</h2>
<vxe-grid
size="small"
- @filter-change="filterChanged"
height="100%"
class="mytable-scrollbar"
ref="xGrid"
@@ -291,12 +368,7 @@
<template #num1_filter="{ column, $panel }">
<div>
<div v-for="(option, index) in column.filters" :key="index">
- <input
-
- type="type"
- v-model="option.data"
- @keyup.enter.native="$panel.confirmFilter()"
- @input="changeFilterEvent($event, option, $panel)"/>
+ <input type="type" v-model="option.data" @keyup.enter.native="$panel.confirmFilter()" @input="changeFilterEvent($event, option, $panel)"/>
</div>
</div>
</template>
--
Gitblit v1.8.0