Newer
Older
xc-business-system / src / views / equipement / standard / checkData / detail.vue
dutingting on 3 Jan 61 KB 需求开发+10
<!-- 核查数据管理详情 -->
<script lang="ts" setup name="checkDataDetail">
import { ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
import dayjs from 'dayjs'
import type { IDetailCheckData, IEquipmentList, IForm } from './checkData-interface'
import selectStandardEquipmentDialog from './dialog/selectStandardEquipmentDialog.vue'
import saveCheckRecord from './dialog/saveCheckRecord.vue'
import checkDataFirst from './components/first/checkDataCom.vue'
import checkDataSecond from './components/second/checkDataCom.vue'
import checkDataThird from './components/third/checkDataCom.vue'
import checkDataFourth from './components/fourth/checkDataCom.vue'
import checkDataFifth from './components/fifth/checkDataCom.vue'
import checkDataSeventh from './components/seventh/checkDataCom.vue'
import checkDataEighth from './components/eighth/checkDataCom.vue'
import checkDataNinth from './components/ninth/checkDataCom.vue'
import checkDataTenth from './components/tenth/checkDataCom.vue'
import checkDataEleventh from './components/eleventh/checkDataCom.vue'
import checkDataTwelve from './components/twelve/checkDataCom.vue'
import checkDataThirteenth from './components/thirteenth/checkDataCom.vue'
import checkDataFourteen from './components/fourteen/checkDataCom.vue'
import checkDataFifteenth from './components/fifteenth/checkDataCom.vue'
import checkDataSixteen from './components/sixteen/checkDataCom.vue'
import checkDataSeventeenth from './components/seventeenth/checkDataCom.vue'
import checkDataEighteen from './components/eighteen/checkDataCom.vue'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import useUserStore from '@/store/modules/user'
import { getDictByCode } from '@/api/system/dict'
import type { dictType } from '@/global'
import multiTable from '@/components/MultiHeaderTable/index.vue'
import { getCheckItemDetail, getJobInstructionList } from '@/api/equipment/standard/book'
import SelectEquipmentDialog from '@/views/business/fieldTest/approve/dialog/selectEquipmentDialog.vue'
import { addCheckData, calculateHandle, getInfo, updateCheckData } from '@/api/equipment/standard/checkData'
import { getLocationList } from '@/api/business/taskMeasure/measureData'
import { addCheckRecord } from '@/api/equipment/standard/checkRecords'
import { base64toFile, exportCharts, getChartsFile } from '@/utils/download'
import { UploadFile } from '@/api/file'

const user = useUserStore() // 用户信息
const textMap: { [key: string]: string } = {
  edit: '编辑',
  add: '新建',
  detail: '详情',
}// 字典
const $router = useRouter() // 关闭页面使用
const $route = useRoute() // 路由参数
const pageType = ref('add') // 页面类型: add, edit, detail
const infoId = ref('') // 列表id
const ruleFormRef = ref() // 表单ref
const isConfigCheck = ref(true) // 默认已经配置检定项
const form = ref<IForm>({
  dataNo: '', // 核查数据编号
  checkDate: '', // 核查日期
  checkAddress: '', // 核查地点
  temperature: undefined, // 环境温度
  humidity: undefined, // 环境湿度
  checkAccord: '', // 核查依据(即标准装置的作业指导书文件minio文件名,多个分号分割)
  createUserName: '', // 核查员
  stabilityExamine: '', // 是否用于稳定性考核(1/0)
})
// 校验规则
const formRules = ref({
  checkDate: [{ required: true, message: '核查日期不能为空', trigger: ['blur', 'change'] }],
  checkAddress: [{ required: true, message: '核查地点不能为空', trigger: ['blur', 'change'] }],
  temperature: [{ required: true, message: '温度不能为空', trigger: ['blur', 'change'] },
    { pattern: /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/, message: '温度只能为数字', trigger: ['blur', 'change'] }],
  humidity: [{ required: true, message: '相对湿度不能为空', trigger: ['blur', 'change'] },
    { pattern: /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/, message: '相对湿度只能为数字', trigger: ['blur', 'change'] }],
  createUserName: [{ required: true, message: '核查员不能为空', trigger: ['blur', 'change'] }],
  stabilityExamine: [{ required: true, message: '是否用于稳定性考核不能为空', trigger: ['blur', 'change'] }],
})

const saveCheckRecordRef = ref() // 保存核查记录dialog组件ref
const checkDataRef = ref() // 第一套多功能校准源标准装置组件ref
// -------------------------------------------字典------------------------------------------
const deviceTypeList = ref<dictType[]>([])// 设备分类
const standardList = ref<dictType[]>([])// 检校标准装置
const positionList = ref([]) as any // 核查地点
const stabilityExamineList = [ // 是否用于稳定性考核
  {
    id: 1,
    name: '是',
  },
  {
    id: 0,
    name: '否',
  },
]

function getDict() {
  // 设备分类
  getDictByCode('bizEquipmentCategory').then((response) => {
    deviceTypeList.value = response.data
  })
  // 检校标准装置
  getDictByCode('bizStandardEquipmentType').then((response) => {
    standardList.value = response.data
  })
  // 地点
  getLocationList({
    locationName: '', // 地点名称
    locationNo: '', // 地点编号
    labName: user.bizLabCode === 'H' ? '海口实验室' : user.bizLabCode === 'X' ? '西昌实验室' : '',
    limit: 999999,
    offset: 1,
  }).then((res) => {
    positionList.value = res.data.rows.map((item: { id: string; locationName: string; temperature: string; humidity: string }) => {
      return {
        id: item.id,
        name: item.locationName, // 地点名称
        temperature: item.temperature, // 温度
        humidity: item.humidity, // 湿度
      }
    })
  })
}
// ----------------------------------路由参数------------------------------------------------
if ($route.params && $route.params.type) {
  pageType.value = $route.params.type as string

  if ($route.params.id) {
    infoId.value = $route.params.id as string
  }
}

// --------------------------------核查标准设备-----------------------------------------------
const equipmentColumns = [ // 表头
  { text: '设备名称', value: 'equipmentName', align: 'center', width: '240' },
  { text: '规格型号', value: 'model', align: 'center' },
  { text: '出厂编号', value: 'manufactureNo', align: 'center' },
  // { text: '准确度等级', value: 'accuracyLevel', align: 'center' },
  // { text: '测量范围', value: 'measureRange', align: 'center' },
  { text: '制造厂家', value: 'manufacturer', align: 'center' },
  { text: '检定有效期', value: 'measureValidDate', align: 'center', width: '120' },
  { text: '备注', value: 'remark', align: 'center' },
]
const equipmentList = ref<IEquipmentList[]>([])// 表格数据
const checkoutEquipmentList = ref([]) as any // 选中数据
const selectEquipmentDialogRef = ref() // 选择设备组件ref
// 选中
const handleSelectionEquipmentChange = (e: any) => {
  checkoutEquipmentList.value = e
}
// 批量添加
const multiAddEquipment = () => {
  selectEquipmentDialogRef.value.initDialog(user.bizLabCode, user.groupNo)
}

// 确定选择设备
const confirmSelectEquipment = (list = []) => {
  list.forEach((item: IEquipmentList) => {
    // 只添加列表里不存在的
    const index = equipmentList.value.findIndex((i: { id: string }) => item.id === i.id)
    if (index === -1) {
      item.measureValidDate = item.measureValidDate ? dayjs(item.measureValidDate).format('YYYY-MM-DD') : item.measureValidDate
      equipmentList.value.push(item)
    }
  })
}
// 删除
const delEquipmentRow = () => {
  if (!checkoutEquipmentList.value.length) {
    ElMessage.warning('请选中要删除的行')
  }
  else {
    equipmentList.value = equipmentList.value.filter((item: any) => {
      return !checkoutEquipmentList.value.includes(item)
    })
  }
}
// ------------------------------------------被核查设备---------------------------------------
const selectStandardId = ref('') // 被核查设备选择的标准装置id
const selectStandardName = ref('') // 被核查设备选择的标准装置名称
const selectStandardAlias = ref('') // 被核查设备选择的标准装置名称
const belongStandardEquipment = ref('') // 检校标准装置code
const itemCategoryId = ref('') // 核查项分类id
const itemCategoryName = ref('') // 核查项分类名称
const chekedEquipmentList = ref<IEquipmentList[]>([{
  id: '',
  equipmentNo: '', // 设备编号
  equipmentName: '', // 设备名称
  model: '', // 规格型号
  manufactureNo: '', // 出厂编号
  accuracyLevel: '', // 准确度等级
  measureRange: '', // 测量范围
  manufacturer: '', // 制造厂(生产厂家)
  measureValidDate: '', // 检定有效期
  remark: '', // 备注
}])// 表格数据
const selectStandardEquipmentDialogRef = ref() // 选择标准装置组件ref

// 点击选择被核查设备
const selectStandardEquipment = () => {
  selectStandardEquipmentDialogRef.value.initDialog(user.bizLabCode, user.groupNo)
}

// 选好配套设备
const confirmSelectedStandardEquipmentDialog = (val: any, standardId: string, standardName: string, belongStandardEquipmentParams: string, standardAlias: string) => {
  console.log()
  selectStandardId.value = standardId // 被核查设备选择的标准装置id
  selectStandardName.value = standardName // 被核查设备选择的标准装置name
  selectStandardAlias.value = standardAlias // 被核查设备选择的标准装置name
  belongStandardEquipment.value = belongStandardEquipmentParams // 检校标准装置code
  itemCategoryId.value = val[0].itemCategoryId // 核查项分类id
  itemCategoryName.value = val[0].itemCategoryName // 核查项分类名称
  let measureRange = '' // 测量范围
  let accuracyLevel = '' // 准确度等级
  if (val[0].technicalTargetList.length) {
    val[0].technicalTargetList.forEach((i: any, index: number) => {
      if (index === val[0].technicalTargetList.length - 1) {
        measureRange = `${measureRange}${i.measureRange} `
        accuracyLevel = `${accuracyLevel}${i.uncertainty} `
      }
      else {
        measureRange = `${measureRange}${i.measureRange}; `
        accuracyLevel = `${accuracyLevel}${i.uncertainty}; `
      }
    })
  }

  chekedEquipmentList.value = [{
    id: val[0].id,
    equipmentId: val[0].id,
    equipmentNo: val[0].equipmentNo, // 设备编号
    equipmentName: val[0].equipmentName, // 设备名称
    model: val[0].model, // 规格型号
    manufactureNo: val[0].manufactureNo, // 出厂编号
    accuracyLevel, // 准确度等级
    measureRange, // 测量范围
    manufacturer: val[0].manufacturer, // 制造厂(生产厂家)
    measureValidDate: val[0].measureValidDate, // 检定有效期
    remark: val[0].remark, // 备注
    itemCategoryId: val[0].itemCategoryId, // 核查项分类id
    itemCategoryName: val[0].itemCategoryName, // 核查项分类名称
  }]
  nextTick(() => {
    checkDataRef.value.fetchCheckItemDetail(val[0].id, belongStandardEquipment.value, itemCategoryId.value, itemCategoryName.value) // 获取核查数据
  })
}

// -------------------------------------------表单--请求核查依据(作业指导书)----------------------------------------
const technologyFile = ref([]) // 核查依据
// 查询条件(作业指导书列表)
const listQueryJobInstruction = ref({
  id: '',
  offset: 1,
  limit: 999999,
})
// // 请求作业指导书列表
function fetchJobInstruction(isNowPage = false, StandardId = '') {
  if (!isNowPage) {
    // 是否显示当前页,否则跳转第一页
    listQueryJobInstruction.value.offset = 1
  }
  listQueryJobInstruction.value.id = StandardId // 标准装置id
  getJobInstructionList(listQueryJobInstruction.value).then((response) => {
    technologyFile.value = response.data.rows.filter((i: { pdfUrl: string }) => i.pdfUrl).map((item: { pdfUrl: string }) => item.pdfUrl)
  })
}

// ------------------------------------------------------------------------------------------
// 关闭新增页面的回调
const close = () => {
  $router.back()
}

/**
 * 处理保存数据
 * @param isSolveCertParams 是否是处理生成证书的数据
 */
const solveSaveParams = (isSolveCertParams = false) => {
  let params
  if (belongStandardEquipment.value === '1') {
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const tempCheckDataCalibratorList = checkDataRef.value.bestList.concat(checkDataRef.value.bestListStability, checkDataRef.value.worstList, checkDataRef.value.worstListStability, checkDataRef.value.modelList, checkDataRef.value.modelListStability)
    params = {
      ...form.value,
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      checkDataCalibratorList: tempCheckDataCalibratorList.map((item: any) => {
        return {
          ...item,
          qualified: checkDataRef.value.form.bestQualified === '合格'
            && checkDataRef.value.form.worstQualified === '合格'
            && checkDataRef.value.form.modelQualified === '合格'
            ? '1'
            : '0',
          lessThan: item.lessThan === '是' ? '1' : item.lessThan === '否' ? '0' : '', // 是否小于相对扩展不确定度Urel(0/1)
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form.bestQualified === '合格' && checkDataRef.value.form.worstQualified === '合格' && checkDataRef.value.form.modelQualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
    }
  }
  else if (belongStandardEquipment.value === '2') {
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const checkDataDcPowerList = checkDataRef.value.getList()
    params = {
      ...form.value,
      checkAccord: technologyFile.value.join(','), // 核查依据
      checkDataDcPowerList: checkDataDcPowerList.map((item: any) => {
        return {
          ...item,
          qualified: checkDataRef.value.form['1-flit'] === '合格'
            && checkDataRef.value.form['2-flit'] === '合格'
            && checkDataRef.value.form['3-flit'] === '合格'
            && checkDataRef.value.form['4-flit'] === '合格'
            && checkDataRef.value.form['5-flit'] === '合格'
            ? '1'
            : '0',
          lessThan: item.lessThanValue === '是' ? '1' : item.lessThanValue === '否' ? '0' : '', // 是否小于相对扩展不确定度Urel(0/1)
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form['1-flit'] === '合格' && checkDataRef.value.form['2-flit'] === '合格' && checkDataRef.value.form['3-flit'] && checkDataRef.value.form['4-flit'] && checkDataRef.value.form['5-flit'] === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
    }
  }
  else if (belongStandardEquipment.value === '3') { // 多功能电气安全校准器
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const tempCheckDataElectricalSafetyList = checkDataRef.value.voltageList.concat(checkDataRef.value.voltageListStability, checkDataRef.value.resistanceList, checkDataRef.value.resistanceListStability)
    params = {
      ...form.value,
      checkAccord: technologyFile.value.join(','), // 核查依据
      checkDataElectricalSafetyList: tempCheckDataElectricalSafetyList.map((item: any) => {
        return {
          ...item,
          qualified: checkDataRef.value.form.voltageQualified === '合格' && checkDataRef.value.form.resistanceQualified === '合格' ? '1' : '0',
          lessThan: item.lessThan === '是' ? '1' : item.lessThan === '否' ? '0' : '', // 是否小于相对扩展不确定度Urel(0/1)
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form.voltageQualified === '合格' && checkDataRef.value.form.resistanceQualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
    }
  }
  else if (belongStandardEquipment.value === '4') { // 0.02
    if (!checkDataRef.value.list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      ...checkDataRef.value.form,
      checkAccord: technologyFile.value.join(','), // 核查依据
      checkDataPistonGaugeList: checkDataRef.value.list.map((item: { id: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
        }
      }), // 核查数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      // temperature: Number(form.value.temperature), // 环境温度
      // humidity: Number(form.value.humidity), // 环境湿度
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
    }
  }
  else if (belongStandardEquipment.value === '5') { // 二等铂
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    let tempCheckDataResistanceThermometerList = [] as any
    // 是否进行温度核查
    if (`${checkDataRef.value.form.isCheckTemperature}` === '1') { // 温度值
      tempCheckDataResistanceThermometerList = tempCheckDataResistanceThermometerList.concat(checkDataRef.value.temperatureListRepeatability, checkDataRef.value.temperatureListStability)
    }
    // 是否进行RTP核查
    if (`${checkDataRef.value.form.isCheckRTP}` === '1') { // RTP值
      tempCheckDataResistanceThermometerList = tempCheckDataResistanceThermometerList.concat(checkDataRef.value.RTPListRepeatability, checkDataRef.value.RTPListStability)
    }
    // 绝缘电阻表校准\测温仪电阻核查
    tempCheckDataResistanceThermometerList = tempCheckDataResistanceThermometerList.concat(checkDataRef.value.listinsulationResistance, checkDataRef.value.listThermodetector)
    if (!tempCheckDataResistanceThermometerList.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      ...checkDataRef.value.form,
      checkAccord: technologyFile.value.join(','), // 核查依据
      checkDataResistanceThermometerList: tempCheckDataResistanceThermometerList.map((item: { id: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
        }
      }), // 核查数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      conclusion: checkDataRef.value.form.temperatureConclusion === '设备性能正常'
                  && checkDataRef.value.form.RTPConclusion === '设备性能正常'
                  && checkDataRef.value.form.resistanceConclusion === '设备性能正常'
                  && checkDataRef.value.form.thermodetectorConclusion === '设备指标满足要求'
        ? '合格'
        : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
    }
  }
  else if (belongStandardEquipment.value === '6') { // 安全阀
    ElMessage.warning('安全阀没有核查,不允许保存!')
    params = '未通过校验'; return params
  }
  else if (belongStandardEquipment.value === '7') { // 精密漏点仪
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataPointMeterList: list.map((item: { id: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      remark: checkDataRef.value.form.remark,
    }
  }
  else if (belongStandardEquipment.value === '8') { // E2等砝码
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.listRepeatability.concat(checkDataRef.value.listStability)
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      ...checkDataRef.value.form,
      checkAccord: technologyFile.value.join(','), // 核查依据
      checkDataETwoList: list.map((item: { id: string; lessThan: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThan === '是' ? '1' : item.lessThan === '否' ? '0' : item.lessThan, // 是否小于相对扩展不确定度Urel(0/1)
        }
      }), // 核查数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      conclusion: isSolveCertParams ? checkDataRef.value.form.conclusion : checkDataRef.value.form.conclusion === '设备性能正常' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
    }
  }
  else if (belongStandardEquipment.value === '9') { // 频谱分析仪
    // if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.getList()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkDataSpectrumAnalyzerList: list.map((item: { id: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form['1-flit'] === '合格' && checkDataRef.value.form['2-flit'] === '合格' && checkDataRef.value.form['3-flit'] === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
    }
  }
  else if (belongStandardEquipment.value === '10') { // 信号发生器
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    let tempCheckDataSignalGeneratorList
    tempCheckDataSignalGeneratorList = list.map((item: { id: string; lessThan: string }) => {
      return {
        ...item,
        id: pageType.value === 'add' ? '' : item.id,
        lessThan: item.lessThan === '合格' ? 1 : item.lessThan === '不合格' ? 0 : '',
      }
    })
    if (isSolveCertParams) {
      tempCheckDataSignalGeneratorList = tempCheckDataSignalGeneratorList.filter((item: { checkType: string }) => item.checkType)
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataSignalGeneratorList: tempCheckDataSignalGeneratorList, // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      remark: checkDataRef.value.form.remark,
    }
  }
  else if (belongStandardEquipment.value === '11') { // 微波衰减装置
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataMicrowaveAttenuationList: list.map((item: { id: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      remark: checkDataRef.value.form.remark,
    }
  }
  else if (belongStandardEquipment.value === '12') { // 短期频率稳定度
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataFrequencyStabilityList: list.map((item: { id: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      remark: checkDataRef.value.form.remark,
    }
  }
  else if (belongStandardEquipment.value === '13') { // 示波器
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    let tempCheckDataOscilloscopeList
    tempCheckDataOscilloscopeList = list.map((item: { id: string; conclusion: string }) => {
      return {
        ...item,
        id: pageType.value === 'add' ? '' : item.id,
        conclusion: item.conclusion === '合格' ? 1 : item.conclusion === '不合格' ? 0 : '',
      }
    })
    if (isSolveCertParams) {
      tempCheckDataOscilloscopeList = tempCheckDataOscilloscopeList.filter((item: { checkType: string }) => item.checkType)
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataOscilloscopeList: tempCheckDataOscilloscopeList, // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      remark: checkDataRef.value.form.remark,
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
    }
  }
  else if (belongStandardEquipment.value === '14') { // 铯原子
    // if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkDataCesiumAtomList: list.map((item: { id: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }), // 核查数据
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      conclusion: checkDataRef.value.form['1-flit'] === '合格' && checkDataRef.value.form['2-flit'] === '合格' && checkDataRef.value.form['3-flit'] === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      remark: checkDataRef.value.form.remark,
    }
  }
  else if (belongStandardEquipment.value === '15') { // 小功率
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      remark: checkDataRef.value.form.remark,
      checkDataLowPowerList: list.map((item: { id: string; lessThan: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThan === '合格' ? 1 : item.lessThan === '不合格' ? 0 : '',
        }
      }), // 核查数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
    }
  }
  else if (belongStandardEquipment.value === '16') { // 低频信号源
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      remark: checkDataRef.value.form.remark,
      checkDataLowFrequencySignalList: list.map((item: { id: string; conclusion: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          conclusion: item.conclusion === '合格' ? 1 : item.conclusion === '不合格' ? 0 : '',
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }),
    }
  }
  else if (belongStandardEquipment.value === '17') { // S参数
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    let tempCheckDataSParamList
    tempCheckDataSParamList = list.map((item: { id: string; lessThan: string }) => {
      return {
        ...item,
        id: pageType.value === 'add' ? '' : item.id,
        lessThan: item.lessThan === '合格' ? 1 : item.lessThan === '不合格' ? 0 : '',
      }
    })
    if (isSolveCertParams) {
      tempCheckDataSParamList = tempCheckDataSParamList.filter((item: { checkType: string }) => item.checkType)
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataSParamList: tempCheckDataSParamList, // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      remark: checkDataRef.value.form.remark,
    }
  }
  else if (belongStandardEquipment.value === '18') { // 失真度
    if (!checkDataRef.value.checkList()) { params = '未通过校验'; return params }
    const list = checkDataRef.value.solveDataBeforeSave()
    if (!list.length) {
      ElMessage.warning('未配置核查项,不允许保存!')
      params = '未通过校验'; return params
    }
    params = {
      ...form.value,
      checkEquipmentIdList: equipmentList.value.map(item => item.id), // 核查标准设备
      equipmentName: chekedEquipmentList.value[0].equipmentName, // 被核查标准设备名称
      equipmentId: chekedEquipmentList.value[0].equipmentId, // 被核查标准设备id
      createUserId: user.id, //	核查员id
      createUserName: user.name, //	核查员
      itemCategoryId: chekedEquipmentList.value[0].itemCategoryId, // 核查项分类id
      itemCategoryName: itemCategoryName.value, // 核查项分类name
      standardEquipmentId: selectStandardId.value, // 被核查标准装置id
      id: infoId.value,
      belongStandardEquipment: belongStandardEquipment.value, // 检校标准装置
      checkDataDistortionFactorList: list.map((item: { id: string; lessThanValue: string }) => {
        return {
          ...item,
          id: pageType.value === 'add' ? '' : item.id,
          lessThan: item.lessThanValue === '合格' ? 1 : item.lessThanValue === '不合格' ? 0 : '',
        }
      }), // 核查数据
      conclusion: checkDataRef.value.form.qualified === '合格' ? '合格' : '不合格', // 结论,与稳定性考核相同,后端需要这个字段差稳定性历史数据
      checkAccord: technologyFile.value.length ? technologyFile.value.join(',') : '', // 核查依据
      remark: checkDataRef.value.form.remark,
    }
  }
  return params
}

// 保存
const save = () => {
  if (!isConfigCheck.value) {
    ElMessage.warning('未配置检定项,不允许保存!')
    return false
  }
  if (!equipmentList.value.length) {
    ElMessage.warning('核查标准设备不能为空')
    return false
  }
  if (!chekedEquipmentList.value[0].equipmentNo) {
    ElMessage.warning('被核查设备不能为空')
    return false
  }
  ruleFormRef.value!.validate((valid: boolean) => {
    if (valid) {
      const params = solveSaveParams()// 处理保存入参
      console.log('保存的入参', params)
      if (params === '未通过校验') { return false }
      const loading = ElLoading.service({
        lock: true,
        background: 'rgba(255, 255, 255, 0.8)',
      })
      if (pageType.value === 'add') { // 新建
        addCheckData(params).then((res) => {
          ElMessage.success('保存成功')
          // form.value.dataNo = res.data.dataNo // 核查数据编号
          infoId.value = res.data
          pageType.value = 'detail'
          fetchInfo()
          loading.close()
        }).catch(() => {
          loading.close()
        })
      }
      // 保存
      else if (pageType.value === 'edit') { // 编辑
        updateCheckData(params).then((res) => {
          ElMessage.success('保存成功')
          pageType.value = 'detail'
          loading.close()
        }).catch(() => {
          loading.close()
        })
      }
    }
    else {
      console.log('表单校验不通过')
    }
  })
}
// 点击编辑
const edit = () => {
  pageType.value = 'edit'
}

// 获取详情
function fetchInfo() {
  const loading = ElLoading.service({
    lock: true,
    background: 'rgba(255, 255, 255, 0.8)',
  })
  getInfo({ id: infoId.value }).then((res) => {
    form.value = { ...res.data }
    // =========================================================
    chekedEquipmentList.value = [{ // 被检设备
      id: '',
      equipmentId: res.data.equipmentInfo.id, // 设备id
      equipmentNo: res.data.equipmentInfo.equipmentNo, // 设备编号
      equipmentName: res.data.equipmentInfo.equipmentName, // 设备名称
      model: res.data.equipmentInfo.model, // 规格型号
      manufactureNo: res.data.equipmentInfo.manufactureNo, // 出厂编号
      accuracyLevel: res.data.accuracyLevel, // 准确度等级
      measureRange: res.data.measureRange, // 测量范围
      manufacturer: res.data.equipmentInfo.manufacturer, // 制造厂(生产厂家)
      measureValidDate: res.data.equipmentInfo.measureValidDate, // 证书有效期
      remark: res.data.equipmentInfo.remark, // 备注
      itemCategoryId: res.data.itemCategoryId, // 核查项分类id
      itemCategoryName: res.data.itemCategoryName, // 核查项分类名称
    }]
    technologyFile.value = res.data.checkAccord ? res.data.checkAccord.split(',') : [] // 核查依据
    equipmentList.value = res.data.checkEquipmentList // 核查标准设备
    selectStandardId.value = res.data.standardEquipmentId // 被核查标准装置id
    itemCategoryName.value = $route.query.itemCategoryName as string // 核查项分类名称
    loading.close()
  })
}

// 点击生成核查记录
const createCheckRecord = () => {
  console.log('1', user.bizLabCode, '2', user.groupNo)

  if (user.bizLabCode === '' || !user.bizLabCode) {
    ElMessage.warning('此用户非计量人员,不允许生成证书')
    return false
  }
  if (user.groupNo === '' || !user.groupNo) {
    ElMessage.warning('此用户非计量人员,不允许生成证书')
    return false
  }
  const solvedParams = solveSaveParams(true)

  // 二等铂生成证书需要传递图片
  if ((belongStandardEquipment.value === '5') && document.getElementById('chart')) {
    if (document.getElementById('chart')?.querySelectorAll('canvas').length) {
      const file = base64toFile(getChartsFile(document.getElementById('chart')?.querySelectorAll('canvas')[0]), itemCategoryName.value, 'png')
      const fd = new FormData()
      fd.append('multipartFile', file)
      UploadFile(fd).then((res) => {
        solvedParams.lineChartImage = res.data[0]
        createRecordFun()
      })
    }
    else {
      createRecordFun()
    }
  }
  else {
    createRecordFun()
  }

  function createRecordFun() {
    if (solvedParams) {
      const loading = ElLoading.service({
        lock: true,
        text: '正在生成证书、请稍后',
        background: 'rgba(255, 255, 255, 0.8)',
      })
      console.log('实验室', user.bizLabCode)
      console.log('部门', user.groupNo)

      const params = {
        ...solvedParams,
        labCode: user.bizLabCode, // 实验室
        groupCode: user.groupNo, // 部门
        recordName: `${solvedParams.equipmentInfo.equipmentName}-${solvedParams.checkDate}`, // 核查记录报告名称
        dataId: solvedParams.id, // 核查记录id
        checkDateId: solvedParams.id, // 核查记录id
        id: '',
        standardEquipmentName: solvedParams.standardAlias, // 被核查标准装置名称
      }
      addCheckRecord(params).then((res) => {
        ElMessage.success('生成证书成功')
        $router.push({
          path: `/equipmentCheckRecord/detail/${res.data.id}`,
          query: {
            certNo: res.data.certNo, // 检定证书报告
            sampleName: solvedParams.sampleName, // 被检设备名称
            model: solvedParams.sampleModel, // 被检设备名称
            manufacturingNo: solvedParams.manufactureNo, // 被检设备名称
            approvalStatusName: '草稿箱',
            dataId: solvedParams.id, // 检定数据管理基础信息表id
            checkDateId: solvedParams.id,
          },
        })
        loading.close()
      }).catch(() => {
        loading.close()
      })
    }
    // saveMeasureCertificateRef.value.initDialog(params) // 弹窗输入部门、实验实验室称
  }
}

// -------------------------------------组件change事件--------------------------------------------
// 地点变化事件
const handleChangeAddress = (name: string) => {
  console.log('地点变化事件', name)
  if (`${name}` !== '') {
    const index = positionList.value.findIndex((item: { name: string }) => item.name === name)
    if (index !== -1) {
      form.value.temperature = positionList.value[index].temperature
      form.value.humidity = positionList.value[index].humidity
    }
  }
}

const getIsConfigCheck = (value: boolean) => {
  isConfigCheck.value = value
}
// -------------------------------------钩子-----------------------------------------------------
watch(() => selectStandardId.value, (newValue) => {
  if (newValue) {
    fetchJobInstruction(false, newValue) // 请求作业指导书
  }
})
onMounted(async () => {
  belongStandardEquipment.value = $route.query.belongStandardEquipment as string // 检校标准装置
  itemCategoryId.value = $route.query.itemCategoryId as string // 核查项分类id
  itemCategoryName.value = $route.query.itemCategoryName as string // 核查项分类名称
  getDict()
  if (pageType.value === 'add') {
    form.value.createUserName = user.name // 核查员
    form.value.checkDate = dayjs().format('YYYY-MM-DD')
  }
  else {
    fetchInfo()
  }
})
</script>

<template>
  <app-container>
    <detail-page :title="`核查数据管理-${textMap[pageType]}`">
      <template #btns>
        <el-button v-if="pageType === 'detail'" type="primary" @click="createCheckRecord">
          生成核查记录
        </el-button>
        <!-- <el-button v-if="pageType === 'detail'" type="primary" @click="edit">
          编辑
        </el-button> -->
        <el-button v-if="pageType !== 'detail'" type="primary" @click="save">
          保存
        </el-button>
        <el-button type="info" @click="close">
          关闭
        </el-button>
      </template>
      <el-form ref="ruleFormRef" :model="form" label-width="130" label-position="right" :rules="formRules">
        <el-row :gutter="24">
          <el-col :span="6">
            <el-form-item label="核查数据编号:" prop="dataNo">
              <el-input v-model="form.dataNo" class="full-width-input" disabled placeholder="系统自动生成" />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="核查日期:" prop="checkDate">
              <el-date-picker
                v-model="form.checkDate" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
                :placeholder="pageType === 'detail' ? ' ' : '请选择核查日期'" :disabled="pageType !== 'add'"
                class="full-width-input"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="核查地点:" prop="checkAddress">
              <el-select
                v-model="form.checkAddress" placeholder="核查地点" filterable :disabled="pageType === 'detail'"
                @change="handleChangeAddress"
              >
                <el-option v-for="item in positionList" :key="item.id" :label="item.name" :value="item.name" />
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="6">
            <el-form-item label="温度(℃):" prop="temperature">
              <el-input-number
                v-model="form.temperature" :disabled="pageType === 'detail'"
                :placeholder="pageType === 'detail' ? ' ' : '请输入温度'" :max="99.99" :precision="2"
              />
            </el-form-item>
          </el-col>

          <el-col :span="6">
            <el-form-item label="相对湿度(%RH):" prop="humidity">
              <el-input-number
                v-model="form.humidity" :disabled="pageType === 'detail'"
                :placeholder="pageType === 'detail' ? ' ' : '请输入相对湿度'" :max="99.99" :precision="2"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="核查员:" prop="dacreateUserNametaNo">
              <el-input v-model="form.createUserName" disabled placeholder="检定员" />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="是否用于稳定性考核:" label-width="160" prop="stabilityExamine">
              <el-select
                v-model="form.stabilityExamine" placeholder="请选择" class="short-input" filterable
                :disabled="pageType === 'detail'"
              >
                <el-option v-for="item in stabilityExamineList" :key="item.id" :label="item.name" :value="item.id" />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="24" class="marg">
          <el-col :span="24">
            <el-form-item label="核查依据:" prop="technologyFile">
              <div v-for="(item, index) in technologyFile" :key="index" style="display: flex;">
                <show-photo v-if="technologyFile.length" :minio-file-name="item" style="margin-right: 10px;" />
              </div>
              <span v-if="!technologyFile.length">无</span>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </detail-page>
    <detail-block title="核查标准设备">
      <template v-if="pageType !== 'detail'" #btns>
        <el-button type="primary" @click="multiAddEquipment">
          批量添加
        </el-button>
        <el-button type="info" @click="delEquipmentRow">
          删除行
        </el-button>
      </template>
      <el-table :data="equipmentList" border style="width: 100%;" @selection-change="handleSelectionEquipmentChange">
        <el-table-column v-if="pageType !== 'detail'" type="selection" width="55" />
        <el-table-column align="center" label="序号" width="80" type="index" />
        <el-table-column
          v-for="item in equipmentColumns" :key="item.value" :prop="item.value" :label="item.text"
          :width="item.width" align="center"
        />
      </el-table>
    </detail-block>
    <detail-block title="被核查设备">
      <el-table :data="chekedEquipmentList" border style="width: 100%;">
        <el-table-column align="center" label="序号" width="80" type="index" />
        <el-table-column
          v-for="item in equipmentColumns" :key="item.value" :prop="item.value" :label="item.text"
          :width="item.width" align="center"
        >
          <template #default="scope">
            <el-input
              v-if="pageType !== 'detail' && item.value === 'equipmentName'" v-model="scope.row[item.value]"
              placeholder="请选择" disabled
            >
              <template #append>
                <el-button size="small" @click="selectStandardEquipment">
                  选择
                </el-button>
              </template>
            </el-input>
          </template>
        </el-table-column>
      </el-table>
    </detail-block>
    <!-- 第1套:多功能校准源标准装置 -->
    <check-data-first
      v-if="belongStandardEquipment === '1'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第2套:直流稳压电源 -->
    <check-data-second
      v-if="belongStandardEquipment === '2'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第3套:多功能电器安全校准器 -->
    <check-data-third
      v-if="belongStandardEquipment === '3'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第4套:0.02级活塞式压力计 -->
    <check-data-fourth v-if="belongStandardEquipment === '4'" ref="checkDataRef" :page-type="pageType" @is-config-check="getIsConfigCheck" />
    <!-- 第5套:二等铂电阻温度计标准装置 -->
    <check-data-fifth
      v-if="belongStandardEquipment === '5'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第7套:精密露点仪标准装置  -->
    <check-data-seventh
      v-if="belongStandardEquipment === '7'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第8套:E2等砝码标准装置  -->
    <check-data-eighth
      v-if="belongStandardEquipment === '8'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第9套: 频谱分析仪 -->
    <check-data-ninth
      v-if="belongStandardEquipment === '9'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第10套: 信号发生器 -->
    <check-data-tenth
      v-if="belongStandardEquipment === '10'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第11套: 微波衰减器 -->
    <check-data-eleventh
      v-if="belongStandardEquipment === '11'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第12套: 短期频率稳定度 -->
    <check-data-twelve
      v-if="belongStandardEquipment === '12'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第13套:示波器标准装置 -->
    <check-data-thirteenth
      v-if="belongStandardEquipment === '13'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第14套:铯原子标准装置 -->
    <check-data-fourteen
      v-if="belongStandardEquipment === '14'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第15套:小功率标准装置 -->
    <check-data-fifteenth
      v-if="belongStandardEquipment === '15'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 第16套:低频信号源标准装置 -->
    <check-data-sixteen
      v-if="belongStandardEquipment === '16'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />

    <!-- 第17套:S参数 -->
    <check-data-seventeenth
      v-if="belongStandardEquipment === '17'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />

    <!--  第18套:失真度标准装置 -->
    <check-data-eighteen
      v-if="belongStandardEquipment === '18'" ref="checkDataRef" :check-date="form.checkDate"
      :page-type="pageType" :select-standard-id="selectStandardId" @is-config-check="getIsConfigCheck"
    />
    <!-- 选择设备台账 -->
    <select-equipment-dialog ref="selectEquipmentDialogRef" :is-multi="true" @confirm="confirmSelectEquipment" />
    <!-- 选择标准装置设备 -->
    <select-standard-equipment-dialog
      ref="selectStandardEquipmentDialogRef"
      @confirm="confirmSelectedStandardEquipmentDialog"
    />
    <!-- 保存核查记录  -->
    <save-check-record ref="saveCheckRecordRef" />
  </app-container>
</template>

<style lang="scss" scoped>
.link {
  text-decoration: underline;
  color: #3d7eff;
  cursor: pointer;
}

.file-area {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: #60627f;
  margin-bottom: 10px;
  margin-left: 40px;
  white-space: nowrap;

  .tech-file {
    display: flex;
    align-items: center;
    margin-left: 20px;

    .file-text {
      margin-right: 10px;
    }
  }
}
</style>