diff --git a/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue index f87b38a..c59fe37 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue @@ -29,6 +29,7 @@
工序信息
{ this.$refs.formRef.resetFields(); if (this.dataForm.id) { @@ -117,7 +129,9 @@ export default { }).then(res => { this.dataForm = res.data // 将存储的编码拼接转换为名称拼接显示 - this.convertCodeToName(res.data.techProc) + this.techProcDisplay = this.convertCodeToName(res.data.techProc) + // 自动选中表格中的工序 + this.setSelectedRows(res.data.procList || res.data.techProc) this.loading = false }) } else { @@ -132,20 +146,50 @@ export default { method: 'get' }).then(res => { this.procList = res.data || []; + this.procListLoaded = true; + // 如果有等待编辑的ID,继续初始化 + if (this.pendingEditId && this.dialogVisible) { + this.doInit(); + } }); }, // 将编码拼接转换为名称拼接显示 convertCodeToName(codeStr) { if (!codeStr) { - this.techProcDisplay = '' - return + return '' } const codes = codeStr.split('_') const names = codes.map(code => { const proc = this.procList.find(item => item.procCd === code) return proc ? proc.procName : code }) - this.techProcDisplay = names.join('_') + return names.join('_') + }, + // 设置表格选中行 + setSelectedRows(procCodes) { + if (!procCodes || !this.$refs.procTable) { + return + } + + let codes = [] + if (Array.isArray(procCodes)) { + // 如果是数组 + codes = procCodes + } else if (typeof procCodes === 'string') { + // 如果是编码拼接字符串 + codes = procCodes.split('_') + } + + if (codes.length > 0) { + const selectedRows = this.procList.filter(item => codes.includes(item.procCd)) + this.selectedProcs = selectedRows + // 延迟执行以确保表格已渲染 + setTimeout(() => { + selectedRows.forEach(row => { + this.$refs.procTable.toggleRowSelection(row, true) + }) + }, 100) + } }, // 工序选择变化处理 - 按列表顺序排列 handleProcSelectionChange(val) { @@ -192,6 +236,7 @@ export default { }, handleClose() { this.dialogVisible = false; + this.pendingEditId = null; this.$emit('refresh',true) }, changeData(model, index) {