From 58826493a44c70ef2a4a2d7f24aee026bb076bc5 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 9 Jan 2026 16:56:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(qcInspectionTemplate):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=A3=80=E6=B5=8B=E9=A1=B9=E6=A8=A1=E6=9D=BF=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 handleAddTemplateItem 方法为异步函数 - 添加 selectedTypeId 初始化逻辑确保类型ID正确设置 - 根据检测类型动态加载对应检测项列表 - 更新 getInspectionItemList 方法支持传入检测类型参数 - 优化 filteredQcInspectionItemList 计算属性处理类型筛选 - 改进类型比较逻辑支持字符串和数字类型匹配 - 添加空值检查防止数据异常导致页面错误 --- src/views/qms/qcInspectionTemplate/index.vue | 44 ++++++++++++++++---- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/src/views/qms/qcInspectionTemplate/index.vue b/src/views/qms/qcInspectionTemplate/index.vue index 463d205..59996f6 100644 --- a/src/views/qms/qcInspectionTemplate/index.vue +++ b/src/views/qms/qcInspectionTemplate/index.vue @@ -736,9 +736,25 @@ const handleUpdate = async (row?: QcInspectionTemplateVO) => { } /** 新增检测项 */ -const handleAddTemplateItem = () => { +const handleAddTemplateItem = async () => { resetTemplateItem(); templateItemForm.value.templateId = selectedTemplateId.value; + + // 确保 selectedTypeId 已设置 + if (selectedTypeId.value === null && selectedTemplateId.value) { + const template = qcInspectionTemplateList.value.find(item => item.templateId === selectedTemplateId.value); + if (template) { + selectedTypeId.value = template.typeId; + } + } + + // 根据检测类型加载对应的检测项列表 + if (selectedTypeId.value) { + await getInspectionItemList(selectedTypeId.value); + } else { + await getInspectionItemList(); + } + templateItemDialog.visible = true; templateItemDialog.title = "添加检测项"; } @@ -934,9 +950,10 @@ const getInspectionTypeList = async () => { //获取检测项列表(不分页,获取全部) let qcInspectionItemList = ref([]); -const getInspectionItemList = async () => { - const res = await getQcInspectionItemList(null); - qcInspectionItemList.value = res.data; +const getInspectionItemList = async (inspectionType?: string | number) => { + const params = inspectionType ? { inspectionType } : null; + const res = await getQcInspectionItemList(params); + qcInspectionItemList.value = res.data || []; } @@ -986,10 +1003,23 @@ const submitMaterialForm = () => { materialOpen.value = false; }; -// 添加 computed +// 添加 computed - 当 selectedTypeId 为 null 时显示所有检测项 const filteredQcInspectionItemList = computed(() => { - if (selectedTypeId.value === null) return []; - return qcInspectionItemList.value.filter(item => item.inspectionType === Number(selectedTypeId.value)); + // 如果没有设置类型筛选条件,返回所有检测项 + if (selectedTypeId.value === null || selectedTypeId.value === undefined) { + return qcInspectionItemList.value; + } + // 严格匹配检测类型,处理字符串和数字类型的比较 + return qcInspectionItemList.value.filter(item => { + const itemType = item.inspectionType; + const targetType = selectedTypeId.value; + // 字符串类型比较 + if (typeof itemType === 'string') { + return itemType === String(targetType) || itemType === targetType; + } + // 数字类型比较 + return itemType === Number(targetType); + }); });