From 23e73716efde88f9c8a22f1bdc09943fd7f6c435 Mon Sep 17 00:00:00 2001 From: yinq Date: Tue, 15 Jul 2025 09:10:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?update=20=E7=94=9F=E4=BA=A7=E6=8A=95?= =?UTF-8?q?=E5=85=A5=E6=89=AB=E6=8F=8F=E4=BF=A1=E6=81=AF=E5=8A=A0=E6=8A=95?= =?UTF-8?q?=E6=96=99=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mes/planInfo/index.vue | 2 +- src/views/mes/prodInputScanInfo/index.vue | 35 +++++++++++++++-------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/views/mes/planInfo/index.vue b/src/views/mes/planInfo/index.vue index 1543906..7704228 100644 --- a/src/views/mes/planInfo/index.vue +++ b/src/views/mes/planInfo/index.vue @@ -189,7 +189,7 @@ - + diff --git a/src/views/mes/prodInputScanInfo/index.vue b/src/views/mes/prodInputScanInfo/index.vue index 3823997..b8257f8 100644 --- a/src/views/mes/prodInputScanInfo/index.vue +++ b/src/views/mes/prodInputScanInfo/index.vue @@ -74,21 +74,31 @@ - + - - - - - + @@ -335,7 +340,7 @@ import { getTechnologyInfo, delTechnologyInfo, addTechnologyInfo, - updateTechnologyInfo + updateTechnologyInfo, copyTechnologyInfo } from '@/api/mes/technologyInfo'; import { TechnologyInfoVO, TechnologyInfoQuery, TechnologyInfoForm } from '@/api/mes/technologyInfo/types'; import { getProcessInfoList } from '@/api/mes/baseProcessInfo'; @@ -377,6 +382,9 @@ const stepOpen = ref(false); const prodTechnologyStepInfoList = ref([]); const chekedProdLineList = ref([]); +// 复制相关 +const isCopy = ref(false); + /** 查询工位下拉树结构 */ const getProcessInfoListSelect = async () => { let res = await getProcessInfoList(null); @@ -457,6 +465,7 @@ const getList = async () => { const cancel = () => { reset(); dialog.visible = false; + isCopy.value = false; }; /** 表单重置 */ const reset = () => { @@ -506,6 +515,16 @@ const handleUpdate = async (row?: TechnologyInfoVO) => { dialog.title = '修改成型工艺信息'; }; +const handleCopy = (row: TechnologyInfoVO) => { + reset(); + // 深拷贝当前行数据 + Object.assign(form.value, JSON.parse(JSON.stringify(row))); + // form.value.technologyId = undefined; + dialog.visible = true; + dialog.title = '复制成型工艺信息'; + isCopy.value = true; +}; + /** 工艺参数信息维护按钮操作 */ const handleStepUpdate = async (row?: TechnologyInfoVO) => { reset(); @@ -526,7 +545,10 @@ const submitForm = () => { if (valid) { buttonLoading.value = true; convertToSeconds(); - if (form.value.technologyId) { + if (isCopy.value) { + form.value.prodTechnologyStepInfoList = prodTechnologyStepInfoList; + await copyTechnologyInfo(form.value).finally(() => buttonLoading.value = false); + } else if (form.value.technologyId) { form.value.prodTechnologyStepInfoList = prodTechnologyStepInfoList; await updateTechnologyInfo(form.value).finally(() => buttonLoading.value = false); } else { @@ -536,6 +558,7 @@ const submitForm = () => { dialog.visible = false; stepOpen.value = false; form.value.prodTechnologyStepInfoList = []; + isCopy.value = false; await getList(); } }); diff --git a/src/views/mes/technologyInfo/index.vue b/src/views/mes/technologyInfo/index.vue index 30a9eb3..34622bc 100644 --- a/src/views/mes/technologyInfo/index.vue +++ b/src/views/mes/technologyInfo/index.vue @@ -109,6 +109,11 @@ v-hasPermi="['mes:technologyInfo:edit']">工艺步序 + + 复制 + + @@ -326,7 +331,7 @@ import { getTechnologyInfo, delTechnologyInfo, addTechnologyInfo, - updateTechnologyInfo + updateTechnologyInfo, copyTechnologyInfo } from '@/api/mes/technologyInfo'; import { TechnologyInfoVO, TechnologyInfoQuery, TechnologyInfoForm } from '@/api/mes/technologyInfo/types'; import { getProcessInfoList } from '@/api/mes/baseProcessInfo'; @@ -363,6 +368,9 @@ const materialSelectRef = ref(); const stepOpen = ref(false); +// 复制相关 +const isCopy = ref(false); + const prodTechnologyStepInfoList = ref([]); const chekedProdLineList = ref([]); @@ -446,6 +454,7 @@ const getList = async () => { const cancel = () => { reset(); dialog.visible = false; + isCopy.value = false; }; /** 表单重置 */ const reset = () => { @@ -515,7 +524,10 @@ const submitForm = () => { if (valid) { buttonLoading.value = true; convertToSeconds(); - if (form.value.technologyId) { + if (isCopy.value) { + form.value.prodTechnologyStepInfoList = prodTechnologyStepInfoList; + await copyTechnologyInfo(form.value).finally(() => buttonLoading.value = false); + } else if (form.value.technologyId) { form.value.prodTechnologyStepInfoList = prodTechnologyStepInfoList; await updateTechnologyInfo(form.value).finally(() => buttonLoading.value = false); } else { @@ -525,6 +537,7 @@ const submitForm = () => { dialog.visible = false; stepOpen.value = false; form.value.prodTechnologyStepInfoList = []; + isCopy.value = false; await getList(); } }); @@ -588,6 +601,15 @@ const handleAddStep = () => { }); }; +const handleCopy = (row: TechnologyInfoVO) => { + reset(); + // 深拷贝当前行数据 + Object.assign(form.value, JSON.parse(JSON.stringify(row))); + // form.value.technologyId = undefined; + dialog.visible = true; + dialog.title = '复制成型工艺信息'; + isCopy.value = true; +}; const rowProdBaseProcessProdlineIndex = ({ row, rowIndex }: { row: any; rowIndex: number }): string => { // 根据行数据和行索引返回一个类名字符串 if (row.someCondition) {