From 20c6876f2cbb57493c2f89c807d3f866385bb486 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 19 Feb 2026 12:57:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes):=20=E6=B8=85=E7=90=86=20qc-template?= =?UTF-8?q?=20TODO=EF=BC=8C=E8=A1=A5=E5=85=A8=E6=B3=A8=E9=87=8A=E9=A3=8E?= =?UTF-8?q?=E6=A0=BC=E4=B8=8E=E8=A1=A8=E5=8D=95=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TemplateForm/TemplateIndicatorForm/TemplateItemForm/TemplateIndicatorList/TemplateItemList:注释风格对齐(ref 行内注释、函数步骤注释、defineExpose/defineEmits 说明) - TemplateIndicatorForm:表单布局调整为多行 el-row/el-col(质检指标+标准值 / 计量单位+误差上下限 / 检测方法 / 说明图 / 备注) - TemplateItemForm:表单布局调整为多行(产品物料 / 最低检测数+最大不合格数 / 致命+严重+轻微缺陷率 / 备注),补充缺失的备注字段 - index.vue:搜索项检测种类改为单值 Integer 查询 --- src/views/mes/qc/template/TemplateForm.vue | 34 ++-- .../mes/qc/template/TemplateIndicatorForm.vue | 158 ++++++++++------- .../mes/qc/template/TemplateIndicatorList.vue | 19 +- .../mes/qc/template/TemplateItemForm.vue | 166 +++++++++++------- .../mes/qc/template/TemplateItemList.vue | 19 +- 5 files changed, 240 insertions(+), 156 deletions(-) diff --git a/src/views/mes/qc/template/TemplateForm.vue b/src/views/mes/qc/template/TemplateForm.vue index 0cc55ea96..132606f14 100644 --- a/src/views/mes/qc/template/TemplateForm.vue +++ b/src/views/mes/qc/template/TemplateForm.vue @@ -95,18 +95,16 @@ import { QcTemplateApi, QcTemplateVO } from '@/api/mes/qc/template' import TemplateIndicatorList from './TemplateIndicatorList.vue' import TemplateItemList from './TemplateItemList.vue' -// TODO @AI:整个文件的注释风格,参考 user 的 form.vue 那; - defineOptions({ name: 'TemplateForm' }) -const { t } = useI18n() -const message = useMessage() +const { t } = useI18n() // 国际化 +const message = useMessage() // 消息弹窗 -const dialogVisible = ref(false) -const dialogTitle = ref('') -const formLoading = ref(false) -const formType = ref('') -const activeTab = ref('indicator') +const dialogVisible = ref(false) // 弹窗的是否展示 +const dialogTitle = ref('') // 弹窗的标题 +const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 +const formType = ref('') // 表单的类型:create - 新增;update - 修改 +const activeTab = ref('indicator') // 子表当前激活的 Tab const formData = ref({ id: undefined as number | undefined, code: undefined, @@ -118,10 +116,12 @@ const formData = ref({ const formRules = reactive({ code: [{ required: true, message: '方案编号不能为空', trigger: 'blur' }], name: [{ required: true, message: '方案名称不能为空', trigger: 'blur' }], - types: [{ required: true, message: '检测种类不能为空', trigger: 'change', type: 'array', min: 1 }], + types: [ + { required: true, message: '检测种类不能为空', trigger: 'change', type: 'array', min: 1 } + ], enableFlag: [{ required: true, message: '是否启用不能为空', trigger: 'change' }] }) -const formRef = ref() +const formRef = ref() // 表单 Ref /** 生成方案编号 */ const generateCode = () => { @@ -135,6 +135,7 @@ const open = async (type: string, id?: number) => { formType.value = type activeTab.value = 'indicator' resetForm() + // 修改时,设置数据 if (id) { formLoading.value = true try { @@ -148,12 +149,16 @@ const open = async (type: string, id?: number) => { } } } -defineExpose({ open }) +defineExpose({ open }) // 提供 open 方法,用于打开弹窗 /** 提交表单 */ -const emit = defineEmits(['success']) +const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 const submitForm = async () => { - await formRef.value.validate() + // 校验表单 + if (!formRef) return + const valid = await formRef.value.validate() + if (!valid) return + // 提交请求 formLoading.value = true try { const data = formData.value as unknown as QcTemplateVO @@ -165,6 +170,7 @@ const submitForm = async () => { message.success(t('common.updateSuccess')) } dialogVisible.value = false + // 发送操作成功的事件 emit('success') } finally { formLoading.value = false diff --git a/src/views/mes/qc/template/TemplateIndicatorForm.vue b/src/views/mes/qc/template/TemplateIndicatorForm.vue index 1392a9e8a..87fc3a019 100644 --- a/src/views/mes/qc/template/TemplateIndicatorForm.vue +++ b/src/views/mes/qc/template/TemplateIndicatorForm.vue @@ -1,61 +1,92 @@