| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="质控方式" prop="monitorWay"> |
| | | <el-input v-model="form.monitorWay" size="small" clearable placeholder="如盲样检测、人员比对、监督检查" /> |
| | | <el-form-item label="质控方式" prop="monitorWayList"> |
| | | <el-select v-model="form.monitorWayList" multiple filterable allow-create default-first-option |
| | | size="small" style="width: 100%" placeholder="可多选,也可输入其他方式"> |
| | | <el-option v-for="item in monitorWayOptions" :key="item" :label="item" :value="item" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | |
| | | // 这里存放数据 |
| | | return { |
| | | formDia: false, |
| | | // LMSY-CX30-2024《质量控制程序》4.1 规定的常用质量控制手段,可多选 |
| | | monitorWayOptions: [ |
| | | '人员比对', '设备比对', '方法比对', '盲样检测', |
| | | '留样再测', '标准物质监控', '实验室间比对', '能力验证', |
| | | ], |
| | | form: { |
| | | qualityMonitorDetailsId: '', |
| | | sortNo: null, |
| | |
| | | budget: '', |
| | | organization: '', |
| | | monitorWay: '', |
| | | monitorWayList: [], |
| | | itemKind: 'OTHER', |
| | | standardMethodId: null, |
| | | templateId: null, |
| | |
| | | rules: { |
| | | monitorProject: [{ required: true, message: '请输入质控项目', trigger: 'blur' }], |
| | | technicalStandardText: [{ required: true, message: '请输入技术标准', trigger: 'blur' }], |
| | | monitorWay: [{ required: true, message: '请输入质控方式', trigger: 'blur' }], |
| | | monitorWayList: [{ required: true, type: 'array', min: 1, message: '请选择质控方式', trigger: 'change' }], |
| | | completionMonth: [{ required: true, message: '请选择完成时限', trigger: 'change' }], |
| | | responsibleUserId: [{ required: true, message: '请选择负责人', trigger: 'change' }], |
| | | templateIds: [{ required: true, type: 'array', min: 1, message: '请至少选择一个原始记录模板', trigger: 'change' }], |
| | |
| | | openDia(type, row) { |
| | | this.formDia = true |
| | | this.operationType = type |
| | | this.form.monitorWayList = [] |
| | | this.templateOptions = [] |
| | | this.allTemplateOptions = [] |
| | | this.templateBindingLoading = false |
| | |
| | | const templateIds = row.templateIds |
| | | ? String(row.templateIds).split(',').filter(Boolean).map(id => Number(id)) |
| | | : (row.templateId ? [Number(row.templateId)] : []) |
| | | this.form = {...row, itemKind: row.itemKind || 'OTHER', templateIds} |
| | | this.form = { |
| | | ...row, |
| | | itemKind: row.itemKind || 'OTHER', |
| | | templateIds, |
| | | monitorWayList: row.monitorWay ? String(row.monitorWay).split(/[、,,;;]/).map(item => item.trim()).filter(Boolean) : [], |
| | | } |
| | | }, |
| | | handleStandardChange(id) { |
| | | const standard = this.standardOptions.find(item => Number(item.id) === Number(id)) |
| | |
| | | : [] |
| | | entity.templateIds = templateIds.join(',') || null |
| | | entity.templateId = templateIds.length ? templateIds[0] : null |
| | | entity.monitorWay = (this.form.monitorWayList || []).map(item => item.trim()).filter(Boolean).join('、') |
| | | delete entity.monitorWayList |
| | | entity.reviewerUserId = null |
| | | return entity |
| | | }, |