From dc65ee25835145120cf090619ab16dbb5ce3326f Mon Sep 17 00:00:00 2001 From: zxy Date: Tue, 7 Apr 2026 09:08:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(heli):=20=E6=B7=BB=E5=8A=A0=E5=87=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E6=8D=AE=E7=94=9F=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/heli/xzdstoragelog/index.vue | 43 +++++++++++++------ 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/xzdstoragelog/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/xzdstoragelog/index.vue index d661758e..4c66d5d1 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/xzdstoragelog/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/xzdstoragelog/index.vue @@ -352,7 +352,7 @@ const getMatCode = async () => { const selectedList = multipleSelection.value || [] // 安全获取数据 // 1. 检查空数据 if (!selectedList || selectedList.length == null) { - message.error('请先选择需要获取物料编码的数据') + message.error('提交明细不能为空,请确认') return } loading.value = true @@ -361,21 +361,36 @@ const getMatCode = async () => { // 只获取选中行的物料编码数据,不刷新整个页面 const data = await StorageLogApi.getStorageLogPage(queryParams) - // 更新选中行的 materialDOList 数据 - selectedList.forEach((selectedRow) => { - const newRow = data.list?.find((r) => r.id === selectedRow.id) - if (newRow && newRow.materialDOList) { - // 检查当前选中的 matId 是否在新选项列表中 - if (selectedRow.matId) { - const existsInNewList = newRow.materialDOList.some((m) => m.id === selectedRow.matId) - if (!existsInNewList) { - // 如果不在新列表中,清空编码相关字段 - selectedRow.matId = undefined - selectedRow.matCode = '' - selectedRow.matName = '' + // 通过 list.value 更新,确保 Vue 响应式生效 + data.list?.forEach((newRow) => { + const row = list.value.find((r) => r.id == newRow.id) + if (!row) return + + if (newRow.materialDOList && newRow.materialDOList.length > 0) { + // 更新 materialDOList + row.materialDOList = newRow.materialDOList + + // 检查当前 matId 是否在新选项列表中(用 == 避免类型不匹配) + if (row.matId != null && row.matId !== '') { + const mat = newRow.materialDOList.find((m) => m.id == row.matId) + if (mat) { + // 编码仍存在,重新设置对应字段 + row.matId = mat.id + row.matCode = mat.code + row.matName = mat.name + } else { + // 编码不存在了,清空 + row.matId = undefined + row.matCode = '' + row.matName = '' } } - selectedRow.materialDOList = newRow.materialDOList + } else { + // 没有物料编码列表,清空 + row.materialDOList = [] + row.matId = undefined + row.matCode = '' + row.matName = '' } })