From 883cb4c60b88e1673614b01e2a37949824ba4f01 Mon Sep 17 00:00:00 2001
From: zhangdi <15053473693@163.com>
Date: Thu, 5 Feb 2026 19:25:29 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E7=AE=A1=E7=90=86=E6=A8=A1?=
=?UTF-8?q?=E6=9D=BF=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/processManagement/processTemplate.js | 4 +-
.../components/addTemplateDialog.vue | 287 ++++++++++--------
2 files changed, 167 insertions(+), 124 deletions(-)
diff --git a/src/api/processManagement/processTemplate.js b/src/api/processManagement/processTemplate.js
index 76e5024..1618275 100644
--- a/src/api/processManagement/processTemplate.js
+++ b/src/api/processManagement/processTemplate.js
@@ -16,7 +16,7 @@ export const getList = (current, size, params) => {
// 保存
export const add = row => {
return request({
- url: '/blade-desk/dsProModel/save',
+ url: '/blade-desk/dsProModel/submit',
method: 'post',
data: row,
});
@@ -27,7 +27,7 @@ export const add = row => {
// 修改
export const update = row => {
return request({
- url: '/blade-desk/dsProModel/update',
+ url: '/blade-desk/dsProModel/submit',
method: 'post',
data: row,
});
diff --git a/src/views/processManagement/components/addTemplateDialog.vue b/src/views/processManagement/components/addTemplateDialog.vue
index d5cfb5a..d8bd6e9 100644
--- a/src/views/processManagement/components/addTemplateDialog.vue
+++ b/src/views/processManagement/components/addTemplateDialog.vue
@@ -16,18 +16,23 @@
>
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
@@ -81,6 +96,8 @@
@node-click="handleNodeClick"
:default-expand-all="true"
:expand-on-click-node="false"
+ highlight-current-row
+ :current-row-key="currentRowId"
/>
@@ -359,70 +376,38 @@ export default {
},
data() {
return {
- treeData: [
- {
- label: '工序列表',
- processList: [
- {
- processInfo: {
- processName: '工序1',
- },
- projectInfo: [
- {
- jobName: '作业1',
- },
- {
- jobName: '作业2',
- },
- ],
- },
- {
- processInfo: {
- processName: '工序2',
- },
- projectInfo: [
- {
- jobName: '作业2',
- },
- {
- jobName: '作业3',
- },
- ],
- },
- ],
- },
- ], //组织树的数据
+ currentRowId: '',
+
+ treeData: [],
defaultProps: {
label: data => {
- // Level 1: 根分组(如 "工序列表")
+ // 父节点:显示 label
if (data.label && data.processList) {
return data.label;
}
- // Level 2: 工序节点
- if (data.processInfo) {
- return data.processInfo.processName || '未命名工序';
+ // 工序节点:显示 processName
+ if (data.processName) {
+ return data.processName;
}
- // Level 3: 项目/作业节点
- if (data.jobName !== undefined) {
- return data.jobName;
+ // 项目节点:显示 projectCode
+ if (data.projectCode !== undefined) {
+ return `项目-${data.projectCode}`;
}
return '未知节点';
},
children: data => {
- // Level 1 → Level 2
+ // 父节点 → 工序列表
if (data.processList) {
return data.processList;
}
- // Level 2 → Level 3
- if (data.processInfo && data.projectInfo) {
- return data.projectInfo;
+ // 工序节点 → 项目列表
+ if (data.modelProjectList) {
+ return data.modelProjectList;
}
- // Level 3 无子节点
return [];
},
isLeaf: data => {
- // 只有最底层(jobName)是叶子节点
- return data.jobName !== undefined;
+ return !data.processList && !data.modelProjectList;
},
},
activeName: '1',
@@ -437,21 +422,33 @@ export default {
// tableData: [],
ruleForm: {
- code: '',
- name: '',
- workCenterId: '',
- platingType: '',
- priority: '',
- tableData: [],
+ promodel: {
+ code: '',
+ name: '',
+ workCenterId: '',
+ platingType: '',
+ priority: '',
+ },
+
+ // tableData: [],
tableData2: [],
+ tableData: [],
},
rules: {
- code: [{ required: true, message: '请输入', trigger: 'blur' }],
- name: [{ required: true, message: '请输入', trigger: 'blur' }],
- workCenterId: [{ required: true, message: '请选择', trigger: 'blur' }],
- platingType: [{ required: true, message: '请选择', trigger: 'blur' }],
- priority: [{ required: true, message: '请选择', trigger: 'blur' }],
- templateType: [{ required: true, message: '请选择', trigger: 'blur' }],
+ // code: [{ required: true, message: '请输入', trigger: 'blur' }],
+ // name: [{ required: true, message: '请输入', trigger: 'blur' }],
+ // workCenterId: [{ required: true, message: '请选择', trigger: 'blur' }],
+ // platingType: [{ required: true, message: '请选择', trigger: 'blur' }],
+ // priority: [{ required: true, message: '请选择', trigger: 'blur' }],
+ // templateType: [{ required: true, message: '请选择', trigger: 'blur' }],
+ promodel: {
+ code: [{ required: true, message: '请输入模板编码', trigger: 'blur' }],
+ name: [{ required: true, message: '请输入模板名称', trigger: 'blur' }],
+ workCenterId: [{ required: true, message: '请选择作业中心', trigger: 'blur' }],
+ platingType: [{ required: true, message: '请选择镀种分类', trigger: 'blur' }],
+ priority: [{ required: true, message: '请选择优先级', trigger: 'blur' }],
+ templateType: [{ required: true, message: '请选择模板类型', trigger: 'blur' }],
+ },
tableData: [
{
required: true,
@@ -504,16 +501,36 @@ export default {
mounted() {
this.openShow = this.showDialog;
- this.getDictionary();
- this.getProcessesTeams();
- this.getProcessList();
- this.getWorkCenterList();
- this.getProcessAbilityList();
- this.getProject();
- this.getStandardList();
- if (this.title == '修改') {
- this.getDetail();
- }
+ // 加载所有数据
+ Promise.all([
+ this.getDictionary(),
+ this.getProcessesTeams(),
+ this.getProcessList(),
+ this.getWorkCenterList(),
+ this.getProcessAbilityList(),
+ this.getProject(),
+ this.getStandardList(),
+ ])
+ .then(() => {
+ // 如果是修改模式,加载详情
+ if (this.title == '修改') {
+ return this.getDetail();
+ }
+ })
+ .then(() => {
+ this.treeData = [
+ {
+ label: '工序列表',
+ processList: this.ruleForm.tableData,
+ },
+ ];
+ // 默认选中第一个子节点
+ this.$nextTick(() => {
+ if (this.ruleForm.tableData.length > 0) {
+ this.ruleForm.tableData = this.treeData[0].processList;
+ }
+ });
+ });
},
methods: {
// 获取检验项目名字
@@ -538,16 +555,17 @@ export default {
},
// 组织树点击
- handleNodeClick(nodes, node, self) {
- const data = nodes;
+ handleNodeClick(data) {
if (data.label && data.processList) {
+ // 点击父节点 "工序列表"
this.activeName = '1';
- this.treeLeave = 1;
- this.ruleForm.tableData = data.processList;
- } else if (data.processInfo) {
- this.activeName = '2';
- this.treeLeave = 2;
- this.ruleForm.tableData2 = [data.projectInfo];
+ this.treeLeave = 1; // ← 关键修正
+ this.ruleForm.tableData = [];
+ } else if (data.processName && data.modelProjectList) {
+ // 点击具体工序
+ this.activeName = '2'; // 保持工序 Tab
+ this.treeLeave = 2; // ← 关键修正
+ this.ruleForm.tableData2 = data.modelProjectList;
}
},
// 右侧tab切换
@@ -590,8 +608,11 @@ export default {
},
getDetail() {
getDetail(this.updateRow.id).then(res => {
- this.ruleForm = res.data.data.dsProModelEntity;
- this.ruleForm.tableData = res.data.data.dsProDetailEntityList;
+ this.ruleForm.promodel = res.data.data.dsProModelEntity;
+ // 确保字段名匹配
+
+ this.ruleForm.tableData = res.data.data.proDetailVOList;
+ this.treeData = [{ label: '工序列表', processList: res.data.data.proDetailVOList }];
});
},
getDictionary() {
@@ -650,42 +671,64 @@ export default {
style: pinyin.STYLE_NORMAL, // 无声调(STYLE_TONE 带声调)
heteronym: false, // 不考虑多音字
});
+ // / 1. 处理 promodel(仅保留基础字段)
+ const promodel = {
+ code: this.ruleForm.promodel.code,
+ name: this.ruleForm.promodel.name,
+ workCenterId: this.ruleForm.promodel.workCenterId,
+ platingType: this.ruleForm.promodel.platingType,
+ priority: this.ruleForm.promodel.priority,
+ templateType: this.ruleForm.promodel.templateType,
+ remarks: this.ruleForm.promodel.remarks,
+ // 添加拼音字段
+ modelNameStr: pinyin(this.ruleForm.promodel.name, {
+ style: pinyin.STYLE_NORMAL,
+ heteronym: false,
+ })
+ .flat()
+ .join(''),
+ };
+
+ // 2. 处理工序表格数据(清理临时字段)
+ const tableData = this.ruleForm.tableData.map(item => {
+ const { _tempId, ...rest } = item; // 移除临时ID
+ return rest;
+ });
+
let query = {
- promodel: {
- ...this.ruleForm,
- modelNameStr: pinyinArr.flat().join(''),
- },
- tableData: this.ruleForm.tableData,
+ promodel,
+ tableData,
};
+ console.log('提交数据:', query);
// 修改
if (!this.moldAddMore) {
- update(query)
- .then(res => {
- this.formLoading = false;
- this.$message({
- type: 'success',
- message: '操作成功!',
- });
- this.$emit('closeDialog');
- })
- .catch(err => {
- this.formLoading = false;
- });
+ // update(query)
+ // .then(res => {
+ // this.formLoading = false;
+ // this.$message({
+ // type: 'success',
+ // message: '操作成功!',
+ // });
+ // this.$emit('closeDialog');
+ // })
+ // .catch(err => {
+ // this.formLoading = false;
+ // });
} else {
// 新增
- add(query)
- .then(res => {
- this.formLoading = false;
- this.$message({
- type: 'success',
- message: '操作成功!',
- });
- this.$emit('closeDialog');
- })
- .catch(err => {
- this.formLoading = false;
- });
+ // add(query)
+ // .then(res => {
+ // this.formLoading = false;
+ // this.$message({
+ // type: 'success',
+ // message: '操作成功!',
+ // });
+ // this.$emit('closeDialog');
+ // })
+ // .catch(err => {
+ // this.formLoading = false;
+ // });
}
} else {
// 校验失败:显示提示并滚动到第一个错误字段