Newer
Older
xc-business-system / src / views / business / measure / item / components / thirteenth / templateDetail.vue
dutingting on 8 Mar 2024 38 KB 数字示波器配置检定项
<!-- 第13套:示波器检定装置装置 -->
<script lang="ts" setup name="TemplateDetailNinth">
import { ElMessage } from 'element-plus'
import type { IList } from './templateDetail-interface'
import templateTable from './templateTable.vue'
import type { dictType } from '@/global'
import { getDictByCode } from '@/api/system/dict'
import { calc } from '@/utils/useCalc'
import { useCheckList } from '@/commonMethods/useCheckList'
import { calculate, recalculate } from '@/api/business/measure/caculate'
import type { TableColumn } from '@/components/NormalTable/table_interface'

const props = defineProps({
  pageType: {
    type: String,
    default: 'add',
  },
  itemCategoryName: {
    type: String,
    require: true,
  }, // 设备检定项分类名称
  belongStandardEquipment: { // 检校标准装置code
    type: String,
    require: true,
  },
  list: {
    type: Array as any,
  },
  form: { // 检定项表单
    type: Object as any,
  },
  itemId: { // 检定项id
    type: String,
    default: '',
  },
})

const form = ref({
  methodType: '方法一', // 时基的方法
})

const tableLoading = ref(false)
const timeBaseList = ref<IList[]>([]) // 时基
const zeroFrequencyGainList = ref<IList[]>([]) // 直流增益
const DCBiasList = ref<IList[]>([]) // 直流偏置
const frequencyBandwidthList = ref<IList[]>([]) // 频带宽度(数字示波器)
const triggerSensitivityList = ref<IList[]>([]) // 触发灵敏度
const risetimeList = ref<IList[]>([]) // 上升时间(数字示波器)
const inputResistanceList = ref<IList[]>([]) // 输入电阻(数字示波器)
const calibratingSignalList = ref<IList[]>([]) // 校准信号(数字示波器)
const scanningTimeList = ref<IList[]>([]) // 扫描时间系数及扩展
const verticalSizeList = ref<IList[]>([]) // 垂直幅度
const frequencyBandwidthSimulateList = ref<IList[]>([]) // 频带宽度(模拟示波器)
const triggerCharacteristicList = ref<IList[]>([]) // 触发特性
const inputResistanceSimulateList = ref<IList[]>([]) // 输入电阻(模拟示波器)
const risetimeSimulateList = ref<IList[]>([]) // 上升时间(模拟示波器)
const calibratingSignalSimulateList = ref<IList[]>([]) // 校准信号(模拟示波器)

const timeBaseCheckoutList = ref<IList[]>([]) // 时基多选
const zeroFrequencyGainCheckoutList = ref<IList[]>([]) // 直流增益多选
const DCBiasCheckoutList = ref<IList[]>([]) // 直流偏置多选
const frequencyBandwidthCheckoutList = ref<IList[]>([]) // 频带宽度(数字示波器)多选
const triggerSensitivityCheckoutList = ref<IList[]>([]) // 触发灵敏度多选
const risetimeCheckoutList = ref<IList[]>([]) // 上升时间(数字示波器)多选
const inputResistanceCheckoutList = ref<IList[]>([]) // 输入电阻(数字示波器)多选
const calibratingSignalCheckoutList = ref<IList[]>([]) // 校准信号(数字示波器)多选
const scanningTimeCheckoutList = ref<IList[]>([]) // 扫描时间系数及扩展多选
const verticalSizeCheckoutList = ref<IList[]>([]) // 垂直幅度多选
const frequencyBandwidthSimulateCheckoutList = ref<IList[]>([]) // 频带宽度(模拟示波器)多选
const triggerCharacteristicCheckoutList = ref<IList[]>([]) // 触发特性多选
const inputResistanceSimulateCheckoutList = ref<IList[]>([]) // 输入电阻(模拟示波器)
const risetimeSimulateCheckoutList = ref<IList[]>([]) // 上升时间(模拟示波器)
const calibratingSignalSimulateCheckoutList = ref<IList[]>([]) // 校准信号(模拟示波器)

// ----------------------------------------表头------------------------------------------------
const columns_time_base_method1 = ref<TableColumn[]>([ // 时基 --方法一
  { text: '检定项目', value: 'params', align: 'center', required: true, width: 90 },
  { text: '周期时标信号', value: 'cycleSignal', align: 'center', required: true },
  { text: '周期时标信号单位', value: 'cycleSignalUnit', align: 'center', required: true },
  { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: 300 },
])

const columns_time_base_method2 = ref<TableColumn[]>([ // 时基 --方法二
  { text: '检定项目', value: 'params', align: 'center', required: true, width: 90 },
  { text: '参考输出', value: 'cycleSignal', align: 'center', required: true },
  { text: '参考输出单位', value: 'cycleSignalUnit', align: 'center', required: true },
  { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: 300 },
])

const columns_zero_frequency_gain = ref<TableColumn[]>([ // 直流增益
  { text: '检定项目', value: 'params', align: 'center', required: true, width: 90 },
  { text: '阻抗', value: 'impedance', align: 'center', required: true, width: 180 },
  { text: '阻抗单位', value: 'impedanceUnit', align: 'center', required: true, width: 90 },
  { text: '通道', value: 'thoroughfare', align: 'center', required: true, width: 100 },
  { text: '垂直偏转系数(/div)', value: 'verticalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '垂直偏转系数(/div)单位', value: 'verticalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '标准值', value: 'standardValue', align: 'center', required: true, width: 180 },
  { text: '标准值单位', value: 'standardValueUnit', align: 'center', required: true, width: 100 },
  { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: 340 },
])

const columns_frequency_bandwidth = ref<TableColumn[]>([ // 频带宽度
  { text: '检定项目', value: 'params', align: 'center', required: true, width: 90 },
  { text: '阻抗', value: 'impedance', align: 'center', required: true, width: 180 },
  { text: '阻抗单位', value: 'impedanceUnit', align: 'center', required: true, width: 90 },
  { text: '通道', value: 'thoroughfare', align: 'center', required: true, width: 100 },
  { text: '垂直偏转系数(/div)', value: 'verticalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '垂直偏转系数(/div)单位', value: 'verticalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '水平偏转系数', value: 'horizontalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '水平偏转系数单位', value: 'horizontalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '参考点频率', value: 'referencePointFrequency', align: 'center', required: true, width: 180 },
  { text: '参考点频率单位', value: 'referencePointFrequencyUnit', align: 'center', required: true, width: 100 },
  { text: '频带宽度', value: 'bandWidth', align: 'center', required: true, width: 180 },
  { text: '频带宽度单位', value: 'bandWidthUnit', align: 'center', required: true, width: 100 },
  { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: 300 },
])

const columns_trigger_sensitivity = ref<TableColumn[]>([ // 触发灵敏度
  { text: '检定项目', value: 'params', align: 'center', required: true, width: 110 },
  { text: '通道', value: 'thoroughfare', align: 'center', required: true, width: 100 },
  { text: '触发类型', value: 'triggerType', align: 'center', required: true, width: 120 },
  { text: '信号频率', value: 'signalFrequency', align: 'center', required: true, width: 180 },
  { text: '信号频率单位', value: 'signalFrequencyUnit', align: 'center', required: true, width: 100 },
  { text: '垂直偏转系数(/div)', value: 'verticalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '垂直偏转系数(/div)单位', value: 'verticalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '标称值', value: 'nominalValue', align: 'center', required: true, width: 180 },
  { text: '标称值单位', value: 'nominalValueUnit', align: 'center', required: true, width: 100 },
])

const columns_risetime = ref<TableColumn[]>([ // 上升时间(数字示波器)
  { text: '检定项目', value: 'params', align: 'center', required: true, width: 90 },
  { text: '阻抗', value: 'impedance', align: 'center', required: true, width: 180 },
  { text: '阻抗单位', value: 'impedanceUnit', align: 'center', required: true, width: 100 },
  { text: '通道', value: 'thoroughfare', align: 'center', required: true, width: 100 },
  { text: '垂直偏转系数(/div)', value: 'verticalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '垂直偏转系数(/div)单位', value: 'verticalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '幅度', value: 'amplitude', align: 'center', required: true, width: 180 },
  { text: '幅度单位', value: 'amplitudeUnit', align: 'center', required: true, width: 100 },
  { text: '水平偏转系数', value: 'horizontalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '水平偏转系数单位', value: 'horizontalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: 340 },
])

const columns_input_resistance = ref<TableColumn[]>([ // 输入电阻(数字示波器)
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '通道', value: 'thoroughfare', align: 'center', required: true, width: 100 },
  { text: '标准值', value: 'standardValue', align: 'center', required: true, width: 180 },
  { text: '标准值单位', value: 'standardValueUnit', align: 'center', required: true, width: 100 },
  { text: '垂直偏转系数(/div)', value: 'verticalDeflectCoefficient', align: 'center', required: true, width: 180 },
  { text: '垂直偏转系数(/div)单位', value: 'verticalDeflectCoefficientUnit', align: 'center', required: true, width: 100 },
  { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: 300 },
])

const columns_calibrating_signal = ref<TableColumn[]>([ // 校准信号(数字示波器)
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '项目', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值单位', value: 'nominalValue', align: 'center', required: true },
])

const columns_scan_time = ref<TableColumn[]>([ // 扫描时间系数及扩展
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '扫描方式', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗单位', value: 'nominalValue', align: 'center', required: true },
  { text: '步进', value: 'nominalValue', align: 'center', required: true },
  { text: '水平刻度档位', value: 'nominalValue', align: 'center', required: true },
  { text: '水平刻度档位单位', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值单位', value: 'nominalValue', align: 'center', required: true },
  { text: '技术指标', value: 'nominalValue', align: 'center', required: true },
])

const columns_vertical_size = ref<TableColumn[]>([ // 垂直幅度
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '通道', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗单位', value: 'nominalValue', align: 'center', required: true },
  { text: '频率', value: 'nominalValue', align: 'center', required: true },
  { text: '频率单位', value: 'nominalValue', align: 'center', required: true },
  { text: '步进', value: 'nominalValue', align: 'center', required: true },
  { text: '垂直刻度档位', value: 'nominalValue', align: 'center', required: true },
  { text: '垂直刻度档位单位', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值单位', value: 'nominalValue', align: 'center', required: true },
  { text: '技术指标', value: 'nominalValue', align: 'center', required: true },
])

const columns_trigger_characteristic = ref<TableColumn[]>([ // 触发特性
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '扫描方式', value: 'nominalValue', align: 'center', required: true },
  { text: '通道', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗单位', value: 'nominalValue', align: 'center', required: true },
  { text: '触发类型', value: 'nominalValue', align: 'center', required: true },
  { text: '频率', value: 'nominalValue', align: 'center', required: true },
  { text: '频率单位', value: 'nominalValue', align: 'center', required: true },
  { text: '频率上限', value: 'nominalValue', align: 'center', required: true },
  { text: '频率上限单位', value: 'nominalValue', align: 'center', required: true },
  { text: '幅度', value: 'nominalValue', align: 'center', required: true },
  { text: '幅度单位', value: 'nominalValue', align: 'center', required: true },
])

const columns_input_resistance_simulate = ref<TableColumn[]>([ // 输入电阻(模拟示波器)
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '通道', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗单位', value: 'nominalValue', align: 'center', required: true },
  { text: '技术指标', value: 'nominalValue', align: 'center', required: true },
])

const columns_risetime_simulate = ref<TableColumn[]>([ // 上升时间(模拟示波器)
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '通道', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗单位', value: 'nominalValue', align: 'center', required: true },
  { text: '触发类型', value: 'nominalValue', align: 'center', required: true },
  { text: '垂直刻度档位', value: 'nominalValue', align: 'center', required: true },
  { text: '垂直刻度档位单位', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值', value: 'nominalValue', align: 'center', required: true },
  { text: '标称值单位', value: 'nominalValue', align: 'center', required: true },
  { text: '扫描上升时间档位', value: 'nominalValue', align: 'center', required: true },
  { text: '扫描上升时间档位单位', value: 'nominalValue', align: 'center', required: true },
  { text: '技术指标', value: 'nominalValue', align: 'center', required: true },
])

const columns_calibrating_signal_simulate = ref<TableColumn[]>([ // 校准信号(模拟示波器)
  { text: '检定项目', value: 'params', align: 'center', required: true },
  { text: '信号类型', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗', value: 'nominalValue', align: 'center', required: true },
  { text: '阻抗单位', value: 'nominalValue', align: 'center', required: true },
  { text: '幅度标称值', value: 'nominalValue', align: 'center', required: true },
  { text: '幅度标称值单位', value: 'nominalValue', align: 'center', required: true },
  { text: '频率标称值', value: 'nominalValue', align: 'center', required: true },
  { text: '频率标称值单位', value: 'nominalValue', align: 'center', required: true },
  { text: '技术指标', value: 'nominalValue', align: 'center', required: true },
])

// --------------------------------表格操作---------------------------------------------------
// 多选
const handleSelectionChange = (e: any, type: string) => {
  switch (type) {
    case '时基':
      timeBaseCheckoutList.value = e
      break
    case '直流增益':
      zeroFrequencyGainCheckoutList.value = e
      break
    case '直流偏置':
      DCBiasCheckoutList.value = e
      break
    case '频带宽度(数字示波器)':
      frequencyBandwidthCheckoutList.value = e
      break
    case '触发灵敏度':
      triggerSensitivityCheckoutList.value = e
      break
    case '上升时间(数字示波器)':
      risetimeCheckoutList.value = e
      break
    case '输入电阻(数字示波器)':
      inputResistanceCheckoutList.value = e
      break
    case '校准信号(数字示波器)':
      calibratingSignalCheckoutList.value = e
      break
    case '扫描时间系数及扩展':
      scanningTimeCheckoutList.value = e
      break
    case '垂直幅度':
      verticalSizeCheckoutList.value = e
      break
    case '频带宽度(模拟示波器)':
      frequencyBandwidthSimulateCheckoutList.value = e
      break
    case '触发特性':
      triggerCharacteristicCheckoutList.value = e
      break
    case '输入电阻(模拟示波器)':
      inputResistanceSimulateCheckoutList.value = e
      break
    case '上升时间(模拟示波器)':
      risetimeSimulateCheckoutList.value = e
      break
    case '校准信号(模拟示波器)':
      calibratingSignalSimulateCheckoutList.value = e
      break
  }
}

/**
 * 增加行公共方法
 * @param list 要操作的数组
 * @param title 操作的表格
 */
const addRow = (list: IList[], title: string) => {
  // if (checkList(list, `${title}表格`)) {
  if (list.length) { // 增加行时默认上一行数据
    list.push({ ...list[list.length - 1] })
  }
  // 数字示波器
  else if (props.itemCategoryName === '数字示波器') {
    switch (title) {
      case '时基':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '1', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          cycleSignal: '', // 周期时标信号
          cycleSignalUnit: '', // 周期时标信号单位
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: 'ppm', //	技术指标单位
        })
        break
      case '直流增益':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '2', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          impedance: '', //	阻抗
          impedanceUnit: 'Ω', //	阻抗单位
          thoroughfare: 'CH1', //	通道
          verticalDeflectCoefficient: '', //	垂直偏转系数
          verticalDeflectCoefficientUnit: 'V', //	垂直偏转系数单位
          standardValue: '', //	标准值
          standardValueUnit: 'V', //	标准值单位
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: '%', //	技术指标单位
        })
        break
      case '直流偏置':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '3', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          impedance: '', //	阻抗
          impedanceUnit: 'Ω', //	阻抗单位
          thoroughfare: 'CH1', //	通道
          verticalDeflectCoefficient: '', //	垂直偏转系数
          verticalDeflectCoefficientUnit: 'V', //	垂直偏转系数单位
          standardValue: '', //	标准值
          standardValueUnit: 'V', //	标准值单位
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: '%', //	技术指标单位
        })
        break
      case '频带宽度':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '4', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          impedance: '', //	阻抗
          impedanceUnit: 'Ω', //	阻抗单位
          thoroughfare: 'CH1', //	通道
          verticalDeflectCoefficient: '', //	垂直偏转系数
          verticalDeflectCoefficientUnit: 'V', //	垂直偏转系数单位
          horizontalDeflectCoefficient: '', //	水平偏转系数
          horizontalDeflectCoefficientUnit: 'ns', //	水平偏转系数单位
          referencePointFrequency: '', //	参考点频率
          referencePointFrequencyUnit: 'Hz', //	参考点频率单位
          bandWidth: '', //	频带宽度
          bandWidthUnit: 'Hz', //	频带宽度单位
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: 'dB', //	技术指标单位
        })
        break
      case '触发灵敏度':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '5', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          thoroughfare: 'CH1', //	通道
          triggerType: '内触发', // 触发类型
          signalFrequency: '', //	信号频率
          signalFrequencyUnit: 'V', //	信号频率单位
          verticalDeflectCoefficient: '', //	垂直偏转系数
          verticalDeflectCoefficientUnit: 'V', //	垂直偏转系数单位
          nominalValue: '', //	标称值
          nominalValueUnit: 'div', //	标称值单位
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: 'dB', //	技术指标单位
        })
        break
      case '上升时间':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '5', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          impedance: '', // 阻抗,
          impedanceUnit: 'Ω', //	阻抗单位
          thoroughfare: 'CH1', //	通道
          verticalDeflectCoefficient: '', //	垂直偏转系数
          verticalDeflectCoefficientUnit: 'V', //	垂直偏转系数单位
          amplitude: '', //	幅度
          amplitudeUnit: 'V', //	幅度单位
          horizontalDeflectCoefficient: '', //	水平偏转系数单位
          horizontalDeflectCoefficientUnit: 'ns', //	水平偏转系数单位
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: 'ns', //	技术指标单位
        })
        break
      case '输入电阻':
        list.push({
          id: '', //	id,更新/删除使用参数
          dataType: '5', //	检定项数据类型(一个检定项中区分两个表格)(字典code)
          itemId: props.itemId, //	检定项id
          params: title, // 检定项目
          thoroughfare: 'CH1', //	通道
          verticalDeflectCoefficient: '', //	垂直偏转系数
          verticalDeflectCoefficientUnit: 'V', //	垂直偏转系数单位
          standardValue: '', //	标准值
          technicalIndex: '', // 技术指标
          technicalIndexSymbol: '±', //	技术指标前符号
          technicalIndexUnit: '%', //	技术指标单位
        })
        break
      case '校准信号':

        break
    }
  }
  // }
}
/**
 * 删除行公共方法
 * @param checkoutList 选中的数组
 * @param list 操作的数组
 */
const delRow = (checkoutList: IList[], list: IList[]) => {
  if (!checkoutList.length) {
    ElMessage.warning('请选中要删除的行')
  }
  else {
    list = list.filter((item: any) => {
      return !checkoutList.includes(item)
    })
  }
}

// ---------------------------------------------校验---------------------------------------------------
// 校验表格(点击保存的时候用、生成标准器示值)
const checkList = () => {
  // return useCheckList(list.value, columns.value, '检定项表格')
}
// ------------------------------------------------------------------------------------------------
// 点击计算结果--上方表格计算
const calculateDataTop = () => {

}
// 点击生成辅助接地电阻--下面表格计算
const calculateDataBottom = () => {

}
// -----------------------------------------------------------------------------------------------------

// watch(() => props.list, (newVal) => { // 检定项表格
//   if (newVal) {
//     list.value = [...newVal]
//   }
// })

// defineExpose({ list })
</script>

<template>
  <div style="padding: 0 10px;">
    <el-checkbox v-model="form.appearance" :checked="true" :disabled="pageType === 'detail'">
      外观及功能性检查
    </el-checkbox>
  </div>

  <!-- 时基 -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        时基
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="display: flex; padding: 0 10px;padding-bottom: 10px;">
        <el-select
          v-model="form.methodType"
          placeholder="请选择方法"
          :disabled="pageType === 'detail'"
          class="short-input"
          style="margin-right: 10px;"
        >
          <el-option v-for="item of ['方法一', '方法二']" :key="item" :label="item" :value="item" />
        </el-select>
        <el-button type="primary" @click="addRow(timeBaseList, '时基')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(timeBaseCheckoutList, timeBaseList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="时基" :data="timeBaseList" :columns="form.methodType === '方法一' ? columns_time_base_method1 : columns_time_base_method2" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '时基')" />
  </detail-block>

  <!-- 直流增益 -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        直流增益
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(zeroFrequencyGainList, '直流增益')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(zeroFrequencyGainCheckoutList, zeroFrequencyGainList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="直流增益" :data="zeroFrequencyGainList" :columns="columns_zero_frequency_gain" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '直流增益')" />
  </detail-block>

  <!-- 直流偏置 -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        直流偏置
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(DCBiasList, '直流偏置')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(DCBiasCheckoutList, DCBiasList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="直流偏置" :data="DCBiasList" :columns="columns_zero_frequency_gain" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '直流偏置')" />
  </detail-block>

  <!-- 频带宽度(数字示波器) -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        频带宽度
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(frequencyBandwidthList, '频带宽度')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(frequencyBandwidthCheckoutList, frequencyBandwidthList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="频带宽度(数字示波器)" :data="frequencyBandwidthList" :columns="columns_frequency_bandwidth" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '频带宽度(数字示波器)')" />
  </detail-block>

  <!-- 触发灵敏度 -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        触发灵敏度
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(triggerSensitivityList, '触发灵敏度')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(triggerSensitivityCheckoutList, triggerSensitivityList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="triggerSensitivityList" :columns="columns_trigger_sensitivity" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '触发灵敏度')" />
  </detail-block>

  <!-- 上升时间(数字示波器) -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        上升时间
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(risetimeList, '上升时间')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(risetimeCheckoutList, risetimeList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="上升时间(数字示波器)" :data="risetimeList" :columns="columns_risetime" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '上升时间(数字示波器)')" />
  </detail-block>

  <!-- 输入电阻(数字示波器) -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        输入电阻
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(inputResistanceList, '输入电阻')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(inputResistanceCheckoutList, inputResistanceList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="输入电阻(数字示波器)" :data="inputResistanceList" :columns="columns_input_resistance" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '输入电阻(数字示波器)')" />
  </detail-block>

  <!-- 校准信号(数字示波器) -->
  <detail-block v-if="props.itemCategoryName === '数字示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        校准信号
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(calibratingSignalList, '校准信号(数字示波器)')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(calibratingSignalCheckoutList, calibratingSignalList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="calibratingSignalList" :columns="columns_calibrating_signal" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '校准信号(数字示波器)')" />
  </detail-block>

  <!-- 扫描时间系数及扩展 -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        扫描时间系数及扩展
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(scanningTimeList, '扫描时间系数及扩展')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(scanningTimeCheckoutList, scanningTimeList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="scanningTimeList" :columns="columns_scan_time" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '扫描时间系数及扩展')" />
  </detail-block>

  <!-- 垂直幅度 -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        垂直幅度
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(verticalSizeList, '垂直幅度')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(verticalSizeCheckoutList, verticalSizeList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="verticalSizeList" :columns="columns_vertical_size" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '垂直幅度')" />
  </detail-block>

  <!-- 频带宽度(模拟示波器) -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        频带宽度
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(frequencyBandwidthSimulateList, '频带宽度(模拟示波器)')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(frequencyBandwidthSimulateCheckoutList, frequencyBandwidthSimulateList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="frequencyBandwidthSimulateList" :columns="columns_vertical_size" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '频带宽度(模拟示波器)')" />
  </detail-block>

  <!-- 触发特性 -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        触发特性
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(triggerCharacteristicList, '触发特性')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(triggerCharacteristicCheckoutList, triggerCharacteristicList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="triggerCharacteristicList" :columns="columns_trigger_characteristic" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '触发特性')" />
  </detail-block>

  <!-- 输入电阻(模拟示波器) -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        输入电阻
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(inputResistanceSimulateList, '输入电阻(模拟示波器)')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(inputResistanceSimulateCheckoutList, inputResistanceSimulateList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="inputResistanceSimulateList" :columns="columns_input_resistance_simulate" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '输入电阻(模拟示波器)')" />
  </detail-block>

  <!-- 上升时间(模拟示波器) -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        上升时间
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(risetimeSimulateList, '上升时间(模拟示波器)')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(risetimeSimulateCheckoutList, risetimeSimulateList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table type="上升时间" :data="risetimeSimulateList" :columns="columns_risetime_simulate" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '上升时间(模拟示波器)')" />
  </detail-block>

  <!-- 校准信号(模拟示波器) -->
  <detail-block v-if="props.itemCategoryName === '模拟示波器'" title="">
    <div style="display: flex;justify-content: space-between;">
      <el-checkbox v-model="form.sj" :checked="true" :disabled="pageType === 'detail'">
        校准信号
      </el-checkbox>
      <div v-if="pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;">
        <el-button type="primary" @click="addRow(calibratingSignalSimulateList, '校准信号(模拟示波器)')">
          增加行
        </el-button>
        <el-button type="info" @click="delRow(calibratingSignalSimulateCheckoutList, calibratingSignalSimulateList)">
          删除行
        </el-button>
      </div>
    </div>
    <template-table :data="calibratingSignalSimulateList" :columns="columns_calibrating_signal_simulate" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '校准信号(模拟示波器)')" />
  </detail-block>
</template>