gaoluyang
7 小时以前 b93657ca98a9f1ced3aacc255c3fa09b7d39cca4
src/views/CNAS/process/ensureResults/ensureResultsValidity/components/detailFormDialog.vue
@@ -21,8 +21,11 @@
          </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">
@@ -103,6 +106,11 @@
    // 这里存放数据
    return {
      formDia: false,
      // LMSY-CX30-2024《质量控制程序》4.1 规定的常用质量控制手段,可多选
      monitorWayOptions: [
        '人员比对', '设备比对', '方法比对', '盲样检测',
        '留样再测', '标准物质监控', '实验室间比对', '能力验证',
      ],
      form: {
        qualityMonitorDetailsId: '',
        sortNo: null,
@@ -116,6 +124,7 @@
        budget: '',
        organization: '',
        monitorWay: '',
        monitorWayList: [],
        itemKind: 'OTHER',
        standardMethodId: null,
        templateId: null,
@@ -134,7 +143,7 @@
      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' }],
@@ -148,6 +157,7 @@
    openDia(type, row) {
      this.formDia = true
      this.operationType = type
      this.form.monitorWayList = []
      this.templateOptions = []
      this.allTemplateOptions = []
      this.templateBindingLoading = false
@@ -165,7 +175,12 @@
      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))
@@ -211,6 +226,8 @@
        : []
      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
    },