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 { // 校验失败:显示提示并滚动到第一个错误字段