zhuo
2025-05-20 7eb190f13437b2e67788e9f4bdea725fdb165f01
src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
@@ -103,6 +103,18 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12" v-if="editForm.inspectionItemType == 1">
            <el-form-item label="设备绑定:" prop="deviceId">
              <el-select v-model="editForm.deviceId" clearable placeholder="请选择"
                         size="small" style="width: 100%" multiple filterable>
                <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value">
                  {{item.label + ' - ' + item.managementNumber}}
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="检验值类型:" prop="inspectionValueType">
              <el-select v-model="editForm.inspectionValueType" clearable placeholder="请选择" size="small" style="width: 100%">
@@ -110,8 +122,6 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="特殊标识:" prop="bsm">
              <el-select v-model="editForm.bsm" clearable placeholder="请选择" size="small" style="width: 100%">
@@ -119,6 +129,8 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="原始记录模板:" prop="templateId">
              <el-select v-model="editForm.templateId" clearable placeholder="请选择" size="small" style="width: 100%">
@@ -126,27 +138,27 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="检验项分类:" prop="inspectionItemClass">
              <el-input v-model="editForm.inspectionItemClass" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="检验项分类EN:" prop="inspectionItemClassEn">
              <el-input v-model="editForm.inspectionItemClassEn" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="试验方法:" prop="method">
              <el-select v-model="editForm.method" clearable multiple placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in methodList" :key="item.value" :label="item.label" :value="item.value"></el-option>
                <el-option v-for="item in methodList" :key="item.value" :label="item.label" :value="item.label"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="条件:" prop="radiusList">
              <el-select v-model="editForm.radiusList" allow-create default-first-option filterable multiple
@@ -157,11 +169,18 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="收费标准(元/次):" prop="rates">
              <el-input v-model="editForm.rates" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="抽检类型绑定:" prop="spotCheckType">
              <el-select v-model="editForm.spotCheckType" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in dict.type.spot_check_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
@@ -191,12 +210,13 @@
  upItemParameter
} from "@/api/structural/capability";
import {selectStandardMethods} from "@/api/structural/standardMethod";
import {search} from "@/api/business/inspectionTask";
export default {
  name: "EditForm",
  // import 引入的组件需要注入到对象中才能使用
  components: {},
  dicts: ['sys_sub_lab', 'inspection_item_type', 'sys_unit', 'inspection_value_type', 'inspection_bsm'],
  dicts: ['sys_sub_lab', 'inspection_item_type', 'sys_unit', 'inspection_value_type', 'inspection_bsm', 'spot_check_type'],
  data() {
    // 这里存放数据
    return {
@@ -226,7 +246,9 @@
        inspectionItemClassEn: '', // 检验项分类EN
        method: '', // 试验方法
        radiusList: [], // 条件
        rates: '', // 条件
        rates: '', // 收费标准(元/次)
        spotCheckType: '', // 抽检类型绑定
        deviceId: [], // 设备
      },
      sampleList: [], // 检验对象下拉框
      laboratoryList: [], // 场所下拉框
@@ -262,7 +284,8 @@
          { required: true, message: '请选择原始记录模板', trigger: 'change' }
        ]
      },
      operationType: ''
      operationType: '',
      equipOptions: []
    }
  },
  // 方法集合
@@ -270,6 +293,7 @@
    openDia (type, row) {
      this.operationType = type
      this.editFormDia = true
      this.getEquipOptions() // 获取所有设备
      this.obtainItemParameterList() // 场所类型
      this.getStandardTemplate() // 原始记录模板下拉框
      this.getSelectStandardMethods() // 试验方法
@@ -299,14 +323,18 @@
            inspectionItemClassEn: '', // 检验项分类EN
            method: '', // 试验方法
            radiusList: [], // 条件
            rates: '', // 条件
            rates: '', // 收费标准(元/次)
            spotCheckType: '', // 抽检类型绑定
        }
        this.resetForm('editForm')
      } else {
        this.editForm = this.HaveJson(row)
        this.editForm.sample = JSON.parse(this.editForm.sample)
        this.editForm.radiusList = JSON.parse(this.editForm.radiusList)
        this.editForm.radiusList = this.editForm.radiusList && JSON.parse(this.editForm.radiusList)
        this.editForm.method = JSON.parse(this.editForm.method)
        const ids = this.editForm.deviceIds && this.editForm.deviceIds.split(",") || [];
        const numericIds = ids.map(Number);
        this.$set(this.editForm, 'deviceId', numericIds);
      }
    },
    // 提交编辑
@@ -317,7 +345,16 @@
          let obj = this.HaveJson(this.editForm)
          obj.method = JSON.stringify(obj.method)
          obj.sample = JSON.stringify(obj.sample)
          obj.radiusList = JSON.stringify(obj.radiusList)
          if (obj.radiusList?.length > 0) {
            obj.radiusList = JSON.stringify(obj.radiusList)
          } else {
            obj.radiusList = null
          }
          if (obj.deviceId?.length > 0) {
            obj.deviceIds = obj.deviceId.join(',')
          } else {
            obj.deviceIds = null
          }
          if(obj.id){
            // 修改
            upItemParameter(obj).then(res => {
@@ -387,7 +424,7 @@
            res.data.forEach(a => {
              data.push({
                label: a.code,
                value: a.code
                value: a.id,
              })
            })
            this.methodList = data
@@ -421,6 +458,22 @@
        this.templateIdList = data
      })
    },
    // 获取所有设备
    getEquipOptions() {
      this.equipOptions = [];
      search({ status: 0 }).then((res) => {
        if (res.code === 200 && res.data) {
          this.equipOptions = res.data.map((m) => {
            m.value = m.id;
            m.label = m.deviceName;
            m.managementNumber = m.managementNumber;
            return m;
          });
        }
      }).catch((error) => {
        console.error(error);
      });
    },
  },
}
</script>