Newer
Older
xc-business-system / src / views / business / taskMeasure / measureData / detail.vue
<!-- 检定数据管理详情 -->
<script lang="ts" setup name="MeasureDataDetail">
import { ref } from 'vue'
import categoryNameDict from '/public/config/categoryNameDict.json'
import { ElLoading, ElMessage } from 'element-plus'
import FirstTemplateDetail from './components/first/templateDetail.vue'
import SecondTemplateDetail from './components/second/templateDetail.vue'
import ThirdTemplateDetail from './components/third/templateDetail.vue'
import FourthTemplateDetail from './components/fourth/templateDetail.vue'
import FifthTemplateDetail from './components/fifth/templateDetail.vue'
import SixthTemplateDetail from './components/sixth/templateDetail.vue'
import SeventhTemplateDetail from './components/seventh/templateDetail.vue'
import EighthTemplateDetail from './components/eighth/templateDetail.vue'
import NinthTemplateDetail from './components/ninth/templateDetail.vue'
import TenthTemplateDetail from './components/tenth/templateDetail.vue'
import EleventhTemplateDetail from './components/eleventh/templateDetail.vue'
import ThirteenthTemplateDetail from './components/thirteenth/templateDetail.vue'
import FifteenthTemplateDetail from './components/fifteenth/templateDetail.vue'
import FourteenTemplateDetail from './components/fourteen/templateDetail.vue'
import SixteenTemplateDetail from './components/sixteen/templateDetail.vue'
import SeventeenthTemplateDetail from './components/seventeenth/templateDetail.vue'
import saveMeasureCertificateDialog from './dialog/saveMeasureCertificateDialog.vue'
import useUserStore from '@/store/modules/user'
import { clearSymbol } from '@/utils/String'
import { addCertificate } from '@/api/business/taskMeasure/certificate'
import { addMeasureData, getInfo, recentUpdate, updateMeasureData } from '@/api/business/taskMeasure/measureData'
import Standard from '@/views/equipement/standard/book/components/standard.vue'
import { base64toFile, exportCharts, getChartsFile } from '@/utils/download'
import { UploadFile } from '@/api/file'
import CanvasCom from '@/views/business/taskMeasure/print/components/canvas/canvas.vue'
import CanvasComLimit from '@/views/business/taskMeasure/print/components/canvas/limitInstructionCanvas.vue'
import { printHtml, printImage } from '@/utils/printUtils'
import selectPrintType from '@/views/business/taskMeasure/measureData/dialog/selectPrintType.vue'
import printThreeInfo from '@/views/business/taskMeasure/print/components/label/printThreeInfo.vue'
import { useGroup } from '@/commonMethods/useGroup'
// 批量修改时使用
const $props = defineProps({
  // 标识第几个(用来取路由数组里面的数据)
  batchIndex: {
    type: Number,
    default: 0,
  },
})
const user = useUserStore() // 用户信息
const textMap: { [key: string]: string } = {
  edit: '编辑',
  add: '新建',
  detail: '详情',
}// 字典
const $router = useRouter() // 关闭页面使用
const isNeverDefineItemCategory = ref(false) // 检定项分类是否是从未定义过的
const $route = useRoute() // 路由参数
const pageType = ref('add') // 页面类型: add, edit, detail
const infoId = ref('') // 列表id
const templateDetailRef = ref() // 详情组件ref
const dataNo = ref('') // 检定数据编号
const saveMeasureCertificateRef = ref() // 生成原始记录和检定证书组件ref
const belongStandardEquipment = ref('') // 检校标准装置
const belongStandardEquipmentName = ref('') // 检校标准装置名称
const itemCategoryName = ref('') // 检定项分类名称
const itemCategoryId = ref('') // 检定项分类id
const printForm = ref<{ [key: string]: string }>({
  manufactureNo: '',
  year: '',
  month: '',
  day: '',
  personName: '',
  equipmentId: '', // 设备id
  userId: '', // 检定员id
  restrictionInstruction: '', // 限用说明
})
const printType = ref('1') // 打印类型 1合格种类标签 2限用说明
// ----------------------------------路由参数--------------------------------------------
if ($route.params && $route.params.type) {
  pageType.value = $route.params.type as string

  if ($route.params.id) {
    infoId.value = $route.params.id as string
  }
}
// 批量编辑
if ($route.query.batchEdit) {
  // 鉴定数据-批量编辑
  pageType.value = 'edit'
  infoId.value = JSON.parse($route.query.batchEditRow as string)[$props.batchIndex].id
  // 我的任务-批量编辑
  if (JSON.parse($route.query.batchEditRow as string)[$props.batchIndex].pageType) {
    console.log(JSON.parse($route.query.batchEditRow as string)[$props.batchIndex].pageType, '我的任务-页面类型')
    pageType.value = JSON.parse($route.query.batchEditRow as string)[$props.batchIndex].pageType
  }
}
// -------------------------------------------按钮----------------------------------------------
// 关闭新增页面的回调
const close = () => {
  $router.back()
}

// 点击编辑按钮
const edit = () => {
  pageType.value = 'edit'
}

// 保存此设备配置的【所使用的标准,主要测量设备】,在下一次新建检定数据的时候默认带出
const saveStandardEquipmentByEqptEquipment = (eqptEquipmentId: string, standardEquipmentList: any = []) => {
  if (!standardEquipmentList.length) { return false }
  // 根据不同的标准装置将数据进行分组
  const tempGroupArr = useGroup(standardEquipmentList, 'standardId', false)
  const params = tempGroupArr.map((group: any) => {
    group = {
      equipmentId: eqptEquipmentId,
      standardEquipmentIds: group.map((i: { id: string }) => i.id),
      standardId: group[0].standardId,
      standardName: group[0].standardName,
    }
    return group
  })
  recentUpdate(params).then((res) => {
    console.log('【所使用的标准,主要测量设备】保存成功')
  }).catch(() => console.log('【所使用的标准,主要测量设备】保存失败'))
}

// 处理保存入参
const solveSaveParams = () => {
  let params
  if (belongStandardEquipment.value === '1') { // 第一套:多功能校准源
    params = {
      ...templateDetailRef.value.form,
      technologyFile: Array.isArray(templateDetailRef.value.form.technologyFile) ? templateDetailRef.value.form.technologyFile.join(',') : templateDetailRef.value.form.technologyFile, // 依据的技术文件
      ...templateDetailRef.value.sampleList[0], // 被检件信息
      customerName: pageType.value === 'add' ? '' : templateDetailRef.value.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示)
      model: templateDetailRef.value.sampleList[0].sampleModel, // 型号
      manufacturer: templateDetailRef.value.sampleList[0].manufacturer, // 生产厂家
      sampleId: templateDetailRef.value.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.sampleList[0].manufactureNo,
      equipmentDTOs: templateDetailRef.value.measureDataCalibratorList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      measureDataCalibratorList: templateDetailRef.value.list, // 检定数据
      id: pageType.value === 'edit' ? infoId.value : '',
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      createTime: null,
      updateTime: null,
    }
    saveStandardEquipmentByEqptEquipment(templateDetailRef.value.sampleList[0].sampleId, templateDetailRef.value.measureDataCalibratorList)
  }
  else if (belongStandardEquipment.value === '2') { // // 第2套:直流稳压电源
    params = {
      ...templateDetailRef.value.itemFormData,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      ...templateDetailRef.value.templateFormAndTableRef.form,
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      id: pageType.value === 'edit' ? infoId.value : '',
      measureDataDcPowerList: templateDetailRef.value.getList(),
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      // equipmentList
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
    saveStandardEquipmentByEqptEquipment(templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId, templateDetailRef.value.templateFormAndTableRef.measureEquipmentList)
  }
  else if (belongStandardEquipment.value === '3') { // 第3套:多功能电气安全校准器
    params = {
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      ...templateDetailRef.value.itemFormData,
      ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息
      customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示)
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家

      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      measureDataElectricalSafetyList: templateDetailRef.value.listTop.concat(templateDetailRef.value.listBottom), // 检定数据
      id: pageType.value === 'edit' ? infoId.value : '',
      createTime: null,
      updateTime: null,
    }
  }
  else if (belongStandardEquipment.value === '4') { // 第四套:0.02级活塞式压力计
    let tempMeasureDataPistonGaugeList = templateDetailRef.value.list.map((item: any) => {
      return {
        ...item,
        workLineEquation: templateDetailRef.value.itemFormData.workLineEquation, // 工作直线方程
        // 数字压力计零位飘逸
        zeroDriftOne: templateDetailRef.value.zeroDriftResultList.length ? templateDetailRef.value.zeroDriftResultList[0].zeroDriftOne : '', // 0
        zeroDriftTwo: templateDetailRef.value.zeroDriftResultList.length ? templateDetailRef.value.zeroDriftResultList[0].zeroDriftTwo : '', // 15
        zeroDriftThree: templateDetailRef.value.zeroDriftResultList.length ? templateDetailRef.value.zeroDriftResultList[0].zeroDriftThree : '', // 30
        zeroDriftFour: templateDetailRef.value.zeroDriftResultList.length ? templateDetailRef.value.zeroDriftResultList[0].zeroDriftFour : '', // 45
        zeroDriftFive: templateDetailRef.value.zeroDriftResultList.length ? templateDetailRef.value.zeroDriftResultList[0].zeroDriftFive : '', // 60
      }
    }) // 检定数据
    if (itemCategoryName.value === '电接点一般压力表') {
      tempMeasureDataPistonGaugeList = tempMeasureDataPistonGaugeList.concat(templateDetailRef.value.listElectricContact, templateDetailRef.value.resultListElectricContact)
    }
    tempMeasureDataPistonGaugeList = tempMeasureDataPistonGaugeList.concat(templateDetailRef.value.resultList)
    params = {
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      ...templateDetailRef.value.itemFormData,
      ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息
      customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示)
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      measureDataPistonGaugeList: tempMeasureDataPistonGaugeList, // 检定数据
      id: pageType.value === 'edit' ? infoId.value : '',
      createTime: null,
      updateTime: null,
    }
  }
  else if (belongStandardEquipment.value === '5') { // 第5套:二等铂
    let list = []
    if (itemCategoryName.value === '恒温槽') {
      list = templateDetailRef.value.thermostaticBathWaveList.concat(templateDetailRef.value.thermostaticBathEvenList)
    }
    else if (itemCategoryName.value === '双金属温度计') {
      list = templateDetailRef.value.bimetalThermometerList
    }
    else if (itemCategoryName.value === '工业铂铜热电阻') {
      list = templateDetailRef.value.resistanceFranchiseList.concat(templateDetailRef.value.resistanceResultList)
    }
    params = {
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      ...templateDetailRef.value.itemFormData,
      ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息
      customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示)
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      measureDataResistanceThermometerList: list, // 检定数据
      id: pageType.value === 'edit' ? infoId.value : '',
      createTime: null,
      updateTime: null,
    }
  }
  else if (belongStandardEquipment.value === '6') { // 第六套 安全阀
    params = {
      ...templateDetailRef.value.itemFormData,
      measureDataSafetyValueList: templateDetailRef.value.list.map((item: any) => ({ ...item, allowValue: undefined })),
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
  }
  else if (belongStandardEquipment.value === '7') { // 第七套  精密漏点仪
    params = {
      ...templateDetailRef.value.itemFormData,
      measureDataPointMeterList: templateDetailRef.value.list,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
  }
  else if (belongStandardEquipment.value === '8') { // 第8套 E2等砝码
    const list = templateDetailRef.value.solveParamsBeforeSave()
    params = {
      ...templateDetailRef.value.itemFormData,
      measureDataETwoList: list,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
  }
  else if (belongStandardEquipment.value === '9') { // 第9套 频谱分析仪
    params = {
      ...templateDetailRef.value.itemFormData,
      measureDataSpectrumAnalyzerList: templateDetailRef.value.getList().map((item: any) => ({ ...item, technicalIndexSymbol: item.technicalIndex.substring(0, 1), technicalIndex: clearSymbol(item.technicalIndex) })),
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
  }
  else if (belongStandardEquipment.value === '11') { // 第11套 微波衰减装置
    params = {
      ...templateDetailRef.value.itemFormData,
      measureDataMicrowaveAttenuationList: templateDetailRef.value.list,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
  }
  else if (belongStandardEquipment.value === '10') { // 第10套 信号发生器
    params = {
      ...templateDetailRef.value.itemFormData,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      // manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
      measureDataSignalGeneratorList: templateDetailRef.value.solveParamsBeforeSave(),
    }
  }
  else if (belongStandardEquipment.value === '13') { // 第13套 示波器
    params = {
      ...templateDetailRef.value.itemFormData,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
      measureDataOscilloscopeList: templateDetailRef.value.solveParamsBeforeSave(),
    }
  }
  else if (belongStandardEquipment.value === '14') { // 第14套 铯原子
    console.log(templateDetailRef.value.itemFormData, 'templateDetailRef.value.itemFormData')
    params = {

      measureDataCesiumAtomList: templateDetailRef.value.getList().map((item: any) => ({ ...item, id: pageType.value === 'add' ? '' : item.id })),
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
      ...templateDetailRef.value.itemFormData,
    }
  }
  else if (belongStandardEquipment.value === '15') { // 第15套 小功率
    params = {
      ...templateDetailRef.value.itemFormData,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
      measureDataLowPowerList: templateDetailRef.value.list,
    }
  }
  else if (belongStandardEquipment.value === '16') { // 第16套 低频信号源
    params = {
      ...templateDetailRef.value.itemFormData,
      measureDataLowFrequencySignalList: templateDetailRef.value.getList().map((item: any) => ({ ...item, id: pageType.value === 'add' ? '' : item.id })),
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
    }
  }
  else if (belongStandardEquipment.value === '17') { // 第17套 S参数
    params = {
      ...templateDetailRef.value.itemFormData,
      id: pageType.value === 'edit' ? infoId.value : '',
      equipmentDTOs: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string; standardId: string; standardName: string }) => {
        return {
          equipmentId: item.id,
          standardId: item.standardId,
          standardName: item.standardName,
        }
      }),
      belongStandardEquipment: belongStandardEquipment.value, // 标准装置code
      belongStandardEquipmentName: belongStandardEquipmentName.value, // 标准装置名称
      model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号
      ...templateDetailRef.value.templateFormAndTableRef.form,
      technologyFile: Array.isArray(templateDetailRef.value.templateFormAndTableRef.form.technologyFile) ? templateDetailRef.value.templateFormAndTableRef.form.technologyFile.join(',') : templateDetailRef.value.templateFormAndTableRef.form.technologyFile, // 依据的技术文件
      sampleId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      sampleName: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleName,
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufactureNo,
      manufacturer: templateDetailRef.value.templateFormAndTableRef.sampleList[0].manufacturer, // 生产厂家
      itemCategoryName: itemCategoryName.value, // 检定项分类名称
      itemCategoryId: itemCategoryId.value, // 检定项分类id
      measureDataSParamList: templateDetailRef.value.solveParamsBeforeSave(),
    }
  }
  if (belongStandardEquipment.value !== '1') {
    saveStandardEquipmentByEqptEquipment(templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId, templateDetailRef.value.templateFormAndTableRef.measureEquipmentList)
  }

  return params
}

// 校验
const check = () => {
  if (belongStandardEquipment.value === '1') { // 第一套:多功能校准源
    // return true // 保存不做校验
    // return templateDetailRef.value.checkout()
    return templateDetailRef.value.checkoutCommonForm()
  }
  else if (belongStandardEquipment.value === '2') { // 第二套 直流稳压电源
    return templateDetailRef.value.checkAllList() && templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
  }
  // 第3套:多功能电气安全校准器、第四套:0.02活塞式压力计、第5套:二等铂、第六套 安全阀
  else if (belongStandardEquipment.value === '3' || belongStandardEquipment.value === '4' || belongStandardEquipment.value === '5' || belongStandardEquipment.value === '6') {
    // return templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()
    return templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
  }
  else if (belongStandardEquipment.value === '7') { // 第7套 精密漏点仪
    return templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
  }
  else if (belongStandardEquipment.value === '8') { // 第8套 E2等砝码
    return templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
  }
  else if (belongStandardEquipment.value === '9') { // 第9套 频谱分析仪
    // return true // 保存不做校验
    return templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
  }
  else if (belongStandardEquipment.value === '10') { // 第10套 信号发生器
    return templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm() // 保存不做校验
  }
  else if (belongStandardEquipment.value === '11') { // 第11套 微波衰减装置
    return templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
    // return true // 保存不做校验
  }
  else if (belongStandardEquipment.value === '13') { // 第13套 示波器
    return templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm() // 保存不做校验
  }
  else if (belongStandardEquipment.value === '14') { // 第14套 铯原子
    return templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
    // return true // 保存不做校验
  }
  else if (belongStandardEquipment.value === '15') { // 第15套 小功率
    return templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
    // return true // 保存不做校验
  }
  else if (belongStandardEquipment.value === '16') { // 第16套 低频信号源
    return templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm()
    // return true // 保存不做校验
  }
  else if (belongStandardEquipment.value === '17') { // 第17套 S参数
    return templateDetailRef.value.templateFormAndTableRef.checkout() && templateDetailRef.value.templateFormAndTableRef.checkoutCommonForm() // 保存不做校验
  }
}

// 保存
const save = () => {
  let formRef // 验证表单的ref
  if (belongStandardEquipment.value === '1') {
    formRef = templateDetailRef.value.ruleFormRef
  }
  else {
    formRef = templateDetailRef.value.templateFormAndTableRef.ruleFormRef
  }
  formRef!.validate((valid: boolean) => { // 表单校验
    if (valid) {
      if (!check()) { return false } // 校验
      const loading = ElLoading.service({
        lock: true,
        background: 'rgba(255, 255, 255, 0.8)',
      })
      const params = solveSaveParams() // 处理入参
      console.log(params, 'params')
      // 新建
      if (pageType.value === 'add') { // 新建
        addMeasureData(params).then((res) => {
          ElMessage.success('保存成功')
          pageType.value = 'detail'
          templateDetailRef.value.pageType = 'detail'
          if (belongStandardEquipment.value === '14') {
            templateDetailRef.value.templateDetailRef.pageType = 'detail'
          }
          if (belongStandardEquipment.value === '17') {
            templateDetailRef.value.pageType = 'detail'
          }

          dataNo.value = res.data.dataNo // 检定数据编号
          infoId.value = res.data.id // id
          templateDetailRef.value.fetchInfo()
          loading.close()
        }).catch(() => {
          loading.close()
        })
      }
      // 保存
      else if (pageType.value === 'edit') { // 编辑
        updateMeasureData(params).then((res) => {
          ElMessage.success('保存成功')
          pageType.value = 'detail'
          templateDetailRef.value.pageType = 'detail'
          if (belongStandardEquipment.value === '14') {
            templateDetailRef.value.templateDetailRef.pageType = 'detail'
          }
          if (belongStandardEquipment.value === '17') {
            templateDetailRef.value.pageType = 'detail'
          }
          loading.close()
        }).catch(() => {
          loading.close()
        })
      }
    }
  })
}
const getFormRef = () => {
  return templateDetailRef.value.templateFormAndTableRef.ruleFormRef
}
const setDetail = () => {
  pageType.value = 'detail'
  templateDetailRef.value.pageType = 'detail'
}
// 生成证书处理参数
const solveRecordParams = () => {
  let params: any
  const solvedParams = solveSaveParams()
  solvedParams.dataId = infoId.value
  if (user.bizLabCode === '') {
    // ElMessage.warning('此用户没有实验室代码,不允许生成证书')
    ElMessage.warning('此用户非计量人员,不允许生成证书')
    return false
  }
  if (user.groupNo === '') {
    // ElMessage.warning('此用户没有部门,不允许生成证书')
    ElMessage.warning('此用户非计量人员,不允许生成证书')
    return false
  }
  console.log('实验室', user.bizLabCode)
  console.log('部门', user.groupNo)
  if (belongStandardEquipment.value === '4') { // 0.02活塞需要添加配置项
    if (itemCategoryName.value === '电接点一般压力表') {
      params = {
        ...solvedParams,
        labCode: user.bizLabCode, // 实验室
        groupCode: user.groupNo, // 部门
        certificateName: `${solvedParams.sampleName}-${solvedParams.traceDate}`, // 检定审批报告名称
        dataId: solvedParams.dataId, // 检定数据管理基础信息表id
        id: '',
        measureItemConfigPistonGauge: templateDetailRef.value.itemFormData, // 检定项配置
        measureDataPistonGaugeList: templateDetailRef.value.list.concat(templateDetailRef.value.resultList, templateDetailRef.value.listElectricContact, templateDetailRef.value.resultListElectricContact),
        equipmentList: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList,
      }
    }
    else {
      params = {
        ...solvedParams,
        labCode: user.bizLabCode, // 实验室
        groupCode: user.groupNo, // 部门
        certificateName: `${solvedParams.sampleName}-${solvedParams.traceDate}`, // 检定审批报告名称
        dataId: solvedParams.dataId, // 检定数据管理基础信息表id
        id: '',
        measureItemConfigPistonGauge: templateDetailRef.value.measureItemConfigPistonGauge, // 检定项配置
        measureDataPistonGaugeList: templateDetailRef.value.list.concat(templateDetailRef.value.resultList),
        dataProcessing: templateDetailRef.value.itemFormData, // 压力传感器数据处理数据
        equipmentList: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList,
      }
    }
  }
  else if (belongStandardEquipment.value === '5') { // 二等铂
    params = {
      ...solvedParams,
      labCode: user.bizLabCode, // 实验室
      groupCode: user.groupNo, // 部门
      certificateName: `${solvedParams.sampleName}-${solvedParams.traceDate}`, // 检定审批报告名称
      dataId: solvedParams.dataId, // 检定数据管理基础信息表id
      id: '',
      appearance: `${solvedParams.appearance}` === '1' ? '合格' : `${solvedParams.appearance}` === '0' ? '不合格' : '',
      equipmentList: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList,
    }
  }
  else {
    params = {
      ...solvedParams,
      labCode: user.bizLabCode, // 实验室
      groupCode: user.groupNo, // 部门
      certificateName: `${solvedParams.sampleName}-${solvedParams.traceDate}`, // 检定审批报告名称
      dataId: solvedParams.dataId, // 检定数据管理基础信息表id
      id: '',
      equipmentList: belongStandardEquipment.value !== '1' ? templateDetailRef.value.templateFormAndTableRef.measureEquipmentList : templateDetailRef.value.measureDataCalibratorList,
    }
  }
  if (belongStandardEquipment.value === '6') {
    params.appearanceFunctionCheck = Number(params.appearanceFunctionCheck) === 1 ? '合格' : '不合格'
    params.sealingTest = Number(params.sealingTest) === 1 ? '合格' : '不合格'
  }
  return params
}

// 生成原始记录和检定证书
const createRecord = () => {
  const params = solveRecordParams()
  // 铯原子检定装置需要传递图片
  if ((belongStandardEquipment.value === '14') && 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) => {
        params.lineChartImage = res.data[0]
        createRecordFun()
      })
    }
    else {
      createRecordFun()
    }
  }
  else {
    createRecordFun()
  }
  function createRecordFun() {
    if (params) {
      const loading = ElLoading.service({
        lock: true,
        text: '加载中...',
        background: 'rgba(255, 255, 255, 0.8)',
      })

      addCertificate(params).then((res) => {
        if (!isNeverDefineItemCategory.value) {
          const message = isNeverDefineItemCategory.value ? '即将跳转审批模块,请点击提交进入审批流程' : '生成证书成功'
          ElMessage.success(message)
        }
        $router.push({
          path: `/businessCertificate/detail/${res.data.id}`,
          query: {
            certNo: res.data.certNo, // 检定证书报告
            sampleName: params.sampleName, // 被检设备名称
            model: params.sampleModel || params.model, // 被检设备名称
            manufacturingNo: params.manufactureNo, // 被检设备名称
            approvalStatusName: '草稿箱',
            measureDataId: params.dataId,
          },
        })
        loading.close()
      }).catch(() => {
        loading.close()
      })
    }
    // saveMeasureCertificateRef.value.initDialog(params) // 弹窗输入部门、实验实验室称
  }
}

// 设置打印内容
const setPrintForm = () => {
  if (belongStandardEquipment.value === '1') {
    printForm.value = {
      manufactureNo: templateDetailRef.value.sampleList[0].manufactureNo,
      year: (templateDetailRef.value.form.meterIdentify === '合格' || templateDetailRef.value.form.meterIdentify === '限用') ? templateDetailRef.value.form.measureValidDate.slice(0, 4) : templateDetailRef.value.form.traceDate.slice(0, 4),
      month: (templateDetailRef.value.form.meterIdentify === '合格' || templateDetailRef.value.form.meterIdentify === '限用') ? templateDetailRef.value.form.measureValidDate.slice(5, 7) : templateDetailRef.value.form.traceDate.slice(5, 7),
      day: (templateDetailRef.value.form.meterIdentify === '合格' || templateDetailRef.value.form.meterIdentify === '限用') ? templateDetailRef.value.form.measureValidDate.slice(8, 10) : templateDetailRef.value.form.traceDate.slice(8, 10),
      personName: templateDetailRef.value.form.createUserName,
      userId: templateDetailRef.value.form.createUserId,
      equipmentId: templateDetailRef.value.sampleList[0].sampleId,
      restrictionInstruction: templateDetailRef.value.form.restrictionInstruction,
    }
  }
  else {
    printForm.value = {
      manufactureNo: templateDetailRef.value.templateFormAndTableRef.sampleList[0]?.manufactureNo,
      year: (templateDetailRef.value.templateFormAndTableRef.form.meterIdentify === '合格' || templateDetailRef.value.templateFormAndTableRef.form.meterIdentify === '限用') ? templateDetailRef.value.templateFormAndTableRef.form.measureValidDate.slice(0, 4) : templateDetailRef.value.templateFormAndTableRef.form.traceDate.slice(0, 4),
      month: (templateDetailRef.value.templateFormAndTableRef.form.meterIdentify === '合格' || templateDetailRef.value.templateFormAndTableRef.form.meterIdentify === '限用') ? templateDetailRef.value.templateFormAndTableRef.form.measureValidDate.slice(5, 7) : templateDetailRef.value.templateFormAndTableRef.form.traceDate.slice(5, 7),
      day: (templateDetailRef.value.templateFormAndTableRef.form.meterIdentify === '合格' || templateDetailRef.value.templateFormAndTableRef.form.meterIdentify === '限用') ? templateDetailRef.value.templateFormAndTableRef.form.measureValidDate.slice(8, 10) : templateDetailRef.value.templateFormAndTableRef.form.traceDate.slice(8, 10),
      personName: templateDetailRef.value.templateFormAndTableRef.form.createUserName,
      userId: templateDetailRef.value.templateFormAndTableRef.form.createUserId,
      equipmentId: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleId,
      restrictionInstruction: templateDetailRef.value.templateFormAndTableRef.form.restrictionInstruction,
    }
  }

  console.log('打印内容', printForm.value)
}
const dataSource = ref('') // 数据来源
// 详情请求成功
const giveInfoId = (id: string) => {
  infoId.value = id
  nextTick(() => {
    setPrintForm()
    if (belongStandardEquipment.value === '1') {
      dataSource.value = templateDetailRef.value.form.dataSource // 数据来源
    }
    else {
      dataSource.value = templateDetailRef.value.templateFormAndTableRef.form.dataSource
    }
  })
}

const changePageType = (type: string) => {
  pageType.value = type
}
// 选择打印标签类型
const selectPrintTypeRef = ref()
const threeInfoRef = ref()
const printLabel = () => {
  if (belongStandardEquipment.value === '1' && templateDetailRef.value.form.conclusion === '除*外其余所检项目合格') {
    selectPrintTypeRef.value.initDialog(templateDetailRef.value.form.meterIdentify)
  }
  else if (belongStandardEquipment.value !== '1' && templateDetailRef.value.templateFormAndTableRef.form.conclusion === '除*外其余所检项目合格') {
    selectPrintTypeRef.value.initDialog(templateDetailRef.value.templateFormAndTableRef.form.meterIdentify)
  }
  else {
    downloadImage()
  }
}
// 点击确认
const confirmSelectPrintType = (value: string) => {
  printType.value = value
  downloadImage()
}

// 监听到计量标识变化
const changeMeterIdentify = () => {
  setPrintForm()
}
// -----------------------------------------------------------------------------------------
watch(() => itemCategoryName.value, (newValue) => {
  if (newValue) {
    // 判断是否是新增的检定项分类
    const index = categoryNameDict.findIndex((item: any) => item === newValue)
    if (index === -1) {
      isNeverDefineItemCategory.value = true
    }
    else {
      isNeverDefineItemCategory.value = false
    }
  }
})

// -------------------------------------------钩子--------------------------------------------------

const batchEditRow = ref([]) as any // 批量编辑数据
const isBatchEdit = ref(false) as any // 批量编辑数据
onMounted(async () => {
  isBatchEdit.value = $route.query.batchEdit
  console.log('isBatchEdit.value', isBatchEdit.value)
  if (isBatchEdit.value === 'true') {
    console.log('批量编辑从前一页获取的数据', JSON.parse($route.query.batchEditRow as string))
    batchEditRow.value = JSON.parse($route.query.batchEditRow as string)
    itemCategoryName.value = batchEditRow.value[$props.batchIndex].itemCategoryName as string || '' // 检定项分类名称
    itemCategoryId.value = batchEditRow.value[$props.batchIndex].itemCategoryId as string || '' // 检定项分类id
    belongStandardEquipment.value = batchEditRow.value[$props.batchIndex].belongStandardEquipment as string || ''// 标准装置code
    belongStandardEquipmentName.value = batchEditRow.value[$props.batchIndex].belongStandardEquipmentName as string || ''// 标准装置名称
  }
  else {
    itemCategoryName.value = $route.query.itemCategoryName as string || '' // 检定项分类名称
    itemCategoryId.value = $route.query.itemCategoryId as string || '' // 检定项分类id
    belongStandardEquipment.value = $route.query.belongStandardEquipment as string || ''// 标准装置code
    belongStandardEquipmentName.value = $route.query.belongStandardEquipmentName as string || ''// 标准装置名称
  }
})

const canvasComponent = ref(null) as any
const canvasComponent1 = ref(null) as any
const canvasLimitInstructionRef = ref(null) as any
const imageUrl = ref('')
const imageUrl2 = ref('')
function downloadImage() {
  if (printType.value === '1') { // 合格种类
    imageUrl.value = canvasComponent.value!.toImage()
    imageUrl2.value = canvasComponent1.value!.toImage()
  }
  else if (printType.value === '2') { // 限用说明
    imageUrl.value = canvasLimitInstructionRef.value!.toImage()
  }
  // printImage([imageUrl.value, imageUrl2.value])
  printImage(imageUrl.value)
}

defineExpose({
  save,
  getFormRef,
  check,
  solveSaveParams,
  setDetail,
})
</script>

<template>
  <app-container class="measure-data">
    <!-- 合格类型打印 -->
    <canvas-com
      v-show="false"
      ref="canvasComponent"
      :width="600"
      :height="200"
      :print-form="printForm"
    />
    <!-- 合格类型打印----这里用来测试批量打印 -->
    <canvas-com
      v-show="false"
      ref="canvasComponent1"
      :width="600"
      :height="200"
      :print-form="printForm"
    />
    <!-- 限用说明标签 -->
    <canvas-com-limit
      v-show="false"
      ref="canvasLimitInstructionRef"
      :width="600"
      :height="200"
      :print-form="printForm"
    />
    <detail-page v-if="!isBatchEdit" :title="`检定数据管理-${textMap[pageType]}`">
      <template #btns>
        <el-button v-if="pageType === 'detail'" type="primary" @click="createRecord">
          {{ isNeverDefineItemCategory ? '原始记录和检定证书审批' : '生成原始记录和检定证书' }}
        </el-button>
        <el-button v-if="pageType === 'detail'" type="primary" @click="printLabel">
          标识打印
        </el-button>
        <el-button v-if="pageType !== 'detail'" type="primary" @click="save">
          保存
        </el-button>
        <!-- <el-button v-if="pageType === 'detail'" type="primary" @click="edit">
          编辑
        </el-button> -->
        <el-button type="info" @click="close">
          关闭
        </el-button>
      </template>
    </detail-page>
    <detail-page v-if="isBatchEdit" :title="`${belongStandardEquipmentName}-${itemCategoryName}-${$props.batchIndex + 1}`" />
    <!-- 第一套:多功能校准源 -->
    <first-template-detail v-if="belongStandardEquipment === '1'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第2套:直流稳压电源标准装置 -->
    <second-template-detail v-if="belongStandardEquipment === '2'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第3套:多功能电气安全校准器标准装置 -->
    <third-template-detail v-if="belongStandardEquipment === '3'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第四套:0.02级活塞式压力计 -->
    <fourth-template-detail v-if="belongStandardEquipment === '4'" ref="templateDetailRef" :batch-index="$props.batchIndex" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第5套:二等铂电阻温度计标准装置 -->
    <fifth-template-detail v-if="belongStandardEquipment === '5'" ref="templateDetailRef" :page-type="pageType" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-page-type="changePageType" @change-meter-identify="changeMeterIdentify" />
    <!-- 第6套:安全阀标准装置 -->
    <sixth-template-detail v-if="belongStandardEquipment === '6'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第7套:精密露点仪标准装置 -->
    <seventh-template-detail v-if="belongStandardEquipment === '7'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第8套:E2等砝码标准装置 -->
    <eighth-template-detail v-if="belongStandardEquipment === '8'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第9套:频谱分析仪标准装置 -->
    <ninth-template-detail v-if="belongStandardEquipment === '9'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第10套:信号发生器标准装置 -->
    <tenth-template-detail v-if="belongStandardEquipment === '10'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第11套:衰减器装置 -->
    <eleventh-template-detail v-if="belongStandardEquipment === '11'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第13套:示波器检定装置 -->
    <thirteenth-template-detail v-if="belongStandardEquipment === '13'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第14套:铯原子标准装置 -->
    <fourteen-template-detail v-if="belongStandardEquipment === '14'" ref="templateDetailRef" :data-no="dataNo" :item-category-name="itemCategoryName" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第15套:小功率标准装置 -->
    <fifteenth-template-detail v-if="belongStandardEquipment === '15'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第16套:低频信号源 -->
    <sixteen-template-detail v-if="belongStandardEquipment === '16'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
    <!-- 第17套:S参数 -->
    <seventeenth-template-detail v-if="belongStandardEquipment === '17'" ref="templateDetailRef" :data-no="dataNo" :info-id="infoId" @give-info-id="giveInfoId" @change-meter-identify="changeMeterIdentify" />
  </app-container>
  <save-measure-certificate-dialog ref="saveMeasureCertificateRef" />
  <!-- 选择打印类型标签 -->
  <select-print-type ref="selectPrintTypeRef" @confirm="confirmSelectPrintType" />
</template>

<style lang="scss" scoped>
.step {
  line-height: 28px;
  font-size: 20px;
  color: #3d7eff;
  font-weight: bold;
  margin-bottom: 5px;
  width: fit-content;
}
</style>

<style lang="scss">
.fieldtest-record-detail {
  .el-table thead.is-group th.el-table__cell {
    background: #f2f6ff;
  }
}

.measure-data {
  .el-radio__label {
    display: block !important;
  }
}
</style>