feat(qcInspectionTemplate): 优化检测项模板新增功能

- 修改 handleAddTemplateItem 方法为异步函数
- 添加 selectedTypeId 初始化逻辑确保类型ID正确设置
- 根据检测类型动态加载对应检测项列表
- 更新 getInspectionItemList 方法支持传入检测类型参数
- 优化 filteredQcInspectionItemList 计算属性处理类型筛选
- 改进类型比较逻辑支持字符串和数字类型匹配
- 添加空值检查防止数据异常导致页面错误
master
zangch@mesnac.com 4 weeks ago
parent eae37c7f7d
commit 58826493a4

@ -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);
});
});

Loading…
Cancel
Save