<!-- 第13套:示波器检定装置 --> <!-- 检定数据管理详情模板 --> <script lang="ts" setup name="MeasureDataTemplateDetail"> import { ref } from 'vue' import { ElLoading, ElMessage } from 'element-plus' import dayjs from 'dayjs' import changeRecord from '../changeRecord.vue' import selectStandard from '../../dialog/selectStandardDialog.vue' import TemplateFormAndTable from '../templateFormAndTable.vue' import { useSolveFormData } from '../useSolveFormData' import type { IDetailMeasureList } from './thirteenth-interface' import templateTable from './templateTable.vue' import useUserStore from '@/store/modules/user' import type { dictType } from '@/global' import { getDictByCode } from '@/api/system/dict' import type { TableColumn } from '@/components/NormalTable/table_interface' import { calculateHandle, getInfo } from '@/api/business/taskMeasure/measureData' import { getInfo as getItemInfo } from '@/api/business/measure/item' import { useCheckList } from '@/commonMethods/useCheckList' import { calc } from '@/utils/useCalc' const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 }) const emits = defineEmits(['giveInfoId']) const user = useUserStore() // 用户信息 const $router = useRouter() // 关闭页面使用 const $route = useRoute() // 路由参数 const ruleFormRef = ref() // 表单ref const templateFormAndTableRef = ref() // 表单和被检设备、测量设备表格公共组件ref const itemFormData = ref({ // 有关于检定项的数据 itemId: '', // 检定项id itemCategoryName: '', // 设备检定项分类名称 itemCategoryId: '', // 设备检定项分类名称id belongStandardEquipment: '', // 标准装置code belongStandardEquipmentName: '', // 标准装置名称 methodType: '', // 时基方法 appearance: '正常', // 外观及功能性检查 appearanceFunctionCheck: 1, // 外观及功能性检查 timeBase: 1, // 时基(示波器-数字) currentGain: 1, // 直流增益(示波器-数字) currentBias: 1, // 直流偏置(示波器-数字) bandWidth: 1, // 频带宽度(示波器-数字/模拟) triggerSensitivity: 1, // 触发灵敏度(示波器-数字) riseTime: 1, // 上升时间(示波器-数字/模拟) inputResistance: 1, // 输入电阻(示波器-数字/模拟) calibratingSignal: 1, // 校准信号(示波器-数字/模拟) scanTimeCoefficient: 1, // 扫描时间系数及扩展(示波器-模拟) triggerCharacter: 1, // 触发特性(示波器-模拟) verticalAmplitude: 1, // 垂直幅度(示波器-模拟) }) // -------------------------------------------路由参数------------------------------------------ const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // 列表id 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 radioMenus = ref([ // 标签内容 { name: '检定数据', value: 'measure-data' }, { name: '历史修改记录', value: 'change-record' }, ]) const current = ref('measure-data') // 选择的tab 默认基本信息 // ---------------------------------------检定项数据表格---------------------------------------------------- const timeBaseList = ref<IDetailMeasureList[]>([]) // 时基 const zeroFrequencyGainList = ref<IDetailMeasureList[]>([]) // 直流增益 const DCBiasList = ref<IDetailMeasureList[]>([]) // 直流偏置 const frequencyBandwidthList = ref<IDetailMeasureList[]>([]) // 频带宽度(数字示波器) const triggerSensitivityList = ref<IDetailMeasureList[]>([]) // 触发灵敏度 const risetimeList = ref<IDetailMeasureList[]>([]) // 上升时间(数字示波器) const inputResistanceList = ref<IDetailMeasureList[]>([]) // 输入电阻(数字示波器) const calibratingSignalList = ref<IDetailMeasureList[]>([]) // 校准信号(数字示波器) const scanningTimeList = ref<IDetailMeasureList[]>([]) // 扫描时间系数及扩展 const verticalSizeList = ref<IDetailMeasureList[]>([]) // 垂直幅度 const frequencyBandwidthSimulateList = ref<IDetailMeasureList[]>([]) // 频带宽度(模拟示波器) const triggerCharacteristicList = ref<IDetailMeasureList[]>([]) // 触发特性 const inputResistanceSimulateList = ref<IDetailMeasureList[]>([]) // 输入电阻(模拟示波器) const risetimeSimulateList = ref<IDetailMeasureList[]>([]) // 上升时间(模拟示波器) const calibratingSignalSimulateList = ref<IDetailMeasureList[]>([]) // 校准信号(模拟示波器) const timeBaseLoading = ref(false) // 时基 const zeroFrequencyGainLoading = ref(false) // 直流增益 const DCBiasLoading = ref(false) // 直流偏置 const frequencyBandwidthLoading = ref(false) // 频带宽度(数字示波器) const triggerSensitivityLoading = ref(false) // 触发灵敏度 const risetimeLoading = ref(false) // 上升时间(数字示波器) const inputResistanceLoading = ref(false) // 输入电阻(数字示波器) const calibratingSignalLoading = ref(false) // 校准信号(数字示波器) const scanningTimeLoading = ref(false) // 扫描时间系数及扩展 const verticalSizeLoading = ref(false) // 垂直幅度 const frequencyBandwidthSimulateLoading = ref(false) // 频带宽度(模拟示波器) const triggerCharacteristicLoading = ref(false) // 触发特性 const inputResistanceSimulateLoading = ref(false) // 输入电阻(模拟示波器) const risetimeSimulateLoading = ref(false) // 上升时间(模拟示波器) const calibratingSignalSimulateLoading = ref(false) // 校准信号(模拟示波器) const columns_time_base_method1 = ref<TableColumn[]>([ // 时基--方法一 { text: '检定项目', value: 'params', align: 'center', required: true, width: '90' }, { text: '周期时标信号', value: 'cycleSignalDefineFront', align: 'center', required: true }, { text: '时基绝对误差△T/ns', value: 'timeBaseAbsoluteError', align: 'center', required: true, width: '180' }, { text: '时基相对误差△δ', value: 'timeBaseRelativeError', align: 'center', required: false }, { text: '技术指标', value: 'technicalIndexDefineFront', align: 'center', required: true }, { text: '结论', value: 'conclusion', align: 'center', required: false }, ]) const columns_time_base_method2 = ref<TableColumn[]>([ // 时基--方法二 { text: '检定项目', value: 'params', align: 'center', required: true, width: '90' }, { text: '参考输出', value: 'cycleSignal', align: 'center', required: true }, { text: '差拍波形频率测量值(Hz)', value: 'timeBaseAbsoluteError', align: 'center', required: true, width: '180' }, { text: '时基相对误差△δ', value: 'timeBaseRelativeError', align: 'center', required: false }, { text: '技术指标', value: 'technicalIndexDefineFront', align: 'center', required: true }, { text: '结论', value: 'conclusion', align: 'center', required: false }, ]) const columns_zero_frequency_gain = ref<TableColumn[]>([ // 直流增益 { text: '检定项目', value: 'params', align: 'center', required: true, width: '90' }, { text: '阻抗', value: 'impedanceDefineFront', align: 'center', required: true }, { text: '通道', value: 'thoroughfare', align: 'center', required: true }, { text: '垂直偏转系数(/div)', value: 'verticalDeflectCoefficientDefineFront', align: 'center', required: true }, { text: '标准值', value: 'standardValueDefineFront', align: 'center', required: true }, { text: '测量值', value: 'measureValue', align: 'center', required: true, width: '180' }, { text: '相对误差', value: 'relativeError', align: 'center', required: false }, { text: '技术指标', value: 'technicalIndexDefineFront', align: 'center', required: true }, { text: '结论', value: 'conclusion', align: 'center', required: false }, ]) const columns_DC_bias = 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: '垂直偏转系数(/div)', value: 'nominalValue', align: 'center', required: true }, { text: '垂直偏转系数(/div)单位', 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_frequency_bandwidth = 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: '垂直偏转系数(/div)', value: 'nominalValue', align: 'center', required: true }, { text: '垂直偏转系数(/div)单位', 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: '分贝数(dB)', value: 'nominalValue', align: 'center', required: true }, { text: '技术指标', value: 'nominalValue', align: 'center', required: true }, { text: '结论', value: 'nominalValue', align: 'center', required: true }, ]) const columns_trigger_sensitivity = 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 columns_risetime = 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: '垂直偏转系数(/div)', value: 'nominalValue', align: 'center', required: true }, { text: '垂直偏转系数(/div)单位', 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 = 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: '垂直偏转系数(/div)', value: 'nominalValue', align: 'center', required: true }, { text: '垂直偏转系数(/div)单位', 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 = 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 }, ]) 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 }, { 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 }, ]) const columns_frequency_bandwidth_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 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 }, ]) 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 }, { 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 }, ]) 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 }, { text: '频率偏差', value: 'nominalValue', align: 'center', required: true }, { text: '技术指标', value: 'nominalValue', align: 'center', required: true }, ]) // -------------------------------------------获取详情信息-------------------------------------------------- // 获取页面详情信息 const fetchInfo = () => { const loading = ElLoading.service({ lock: true, background: 'rgba(255, 255, 255, 0.8)', }) getInfo({ id: infoId.value, belongStandardEquipment: itemFormData.value.belongStandardEquipment, // 我的任务跳转过来如果已经配置过检定项了,到编辑页面,且用一下三个字段替代传id请求详情 itemId: $route.query.itemId, // 检定项id orderId: $route.query.orderId, // 任务单id sampleId: $route.query.sampleId, // 被检设备id }).then((res) => { // 有关于检定项的数据 itemFormData.value.itemId = res.data.itemId // 检定项id itemFormData.value.itemCategoryName = res.data.itemCategoryName // 设备检定项分类名称 itemFormData.value.itemCategoryId = res.data.itemCategoryId ? res.data.itemCategoryId : itemFormData.value.itemCategoryId // 设备检定项分类名称id itemFormData.value.appearance = `${res.data.appearance}` // 外观(1/0) // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== // list.value = res.data.measureDataPistonGaugeList.map((item: IDetailMeasureList) => { // return { // ...item, // editable: pageType.value !== 'detail', // } // }) // 检定数据 infoId.value = res.data.id emits('giveInfoId', infoId.value) loading.close() }) } // 初始化输入数据 const initInputData = (data: any) => { if (itemFormData.value.itemCategoryName === '数字示波器') { // 时基 timeBaseList.value = data.filter(item => `${item.dataType}` === '1') timeBaseList.value = timeBaseList.value.map((item) => { return { ...item, params: '时基', cycleSignalDefineFront: item.cycleSignal + item.cycleSignalUnit, // 周期时标信号 timeBaseAbsoluteError: '', // 时基绝对误差△T/ns timeBaseRelativeError: '', // 时基相对误差△δ technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex + item.technicalIndexUnit, // 技术指标 conclusion: '', // 结论 } }) // 直流增益 zeroFrequencyGainList.value = data.filter(item => `${item.dataType}` === '2') zeroFrequencyGainList.value = zeroFrequencyGainList.value.map((item) => { return { ...item, params: '直流增益', impedanceDefineFront: item.impedance + item.impedanceUnit, // 阻抗 verticalDeflectCoefficientDefineFront: item.verticalDeflectCoefficient + item.verticalDeflectCoefficientUnit, // 垂直偏转系数 standardValueDefineFront: item.standardValue + item.standardValueUnit, // 标准值 measureValue: '', // 测量值 measureValueUnit: item.standardValueUnit, // 测量值单位 relativeError: '', // 相对误差 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex + item.technicalIndexUnit, // 技术指标 conclusion: '', // 结论 } }) } else if (itemFormData.value.itemCategoryName === '模拟示波器') { console.log('模拟示波器') } } /** * 新增的时候获取检定项输入数据(获取检定项分类详情) * @param itemId 检定项id * @param itemCategoryName 检定项分类名字 * @param belongStandardEquipment 检校标准装置字典 */ const fetchItemInfo = (itemId: string, itemCategoryName: string, belongStandardEquipment = '') => { const params = { id: itemId, itemCategoryName, // 检定项分类名字 belongStandardEquipment, // 检校标准装置字典code } getItemInfo(params).then((res) => { itemFormData.value.appearance = res.data.appearanceFunctionCheck ? '1' : '' // 外观及功能检查 1有外观,2没有外观 itemFormData.value.appearanceFunctionCheck = res.data.appearanceFunctionCheck // 外观及功能检查 1有外观,2没有外观 itemFormData.value.timeBase = res.data.timeBase // 时基 itemFormData.value.currentGain = res.data.currentGain // 直流增益 itemFormData.value.currentBias = res.data.currentBias // 直流偏置 itemFormData.value.bandWidth = res.data.bandWidth // 频带宽度 itemFormData.value.triggerSensitivity = res.data.triggerSensitivity // 触发灵敏度 itemFormData.value.riseTime = res.data.riseTime // 上升时间 itemFormData.value.inputResistance = res.data.inputResistance // 输入电阻 itemFormData.value.calibratingSignal = res.data.calibratingSignal // 校准信号 itemFormData.value.scanTimeCoefficient = res.data.scanTimeCoefficient // 扫描时间系数及扩展 itemFormData.value.triggerCharacter = res.data.triggerCharacter // 触发特性 itemFormData.value.verticalAmplitude = res.data.verticalAmplitude // 垂直幅度 const tempTimeBaseList = res.data.measureItemDataOscilloscopeList.filter(item => `${item.dataType}` === '1') if (tempTimeBaseList && tempTimeBaseList.length) { itemFormData.value.methodType = tempTimeBaseList[0].methodType } initInputData(res.data.measureItemDataOscilloscopeList) }) } // ----------------------------------------点击保存时校验--------------------------------------- // 点击计算结果校验 const checkout = (type: string) => { let result = true switch (type) { case '时基': { const columns = itemFormData.value.methodType === '方法一' ? columns_time_base_method1.value : columns_time_base_method2.value result = useCheckList(timeBaseList.value, columns, type) break } case '直流增益': result = useCheckList(zeroFrequencyGainList.value, columns_zero_frequency_gain.value, type) break default: break } return result } // 计算之前参数处理 const solveParamsBeforeCalculate = (type: string) => { let list = [] switch (type) { case '时基': list = timeBaseList.value break case '直流增益': list = zeroFrequencyGainList.value break default: break } return list } // 计算之后参数处理 const solveParamsAfterCalculate = (type: string, list) => { switch (type) { case '时基': timeBaseList.value = timeBaseList.value.map((item, index) => { return { ...item, timeBaseRelativeError: list[index].timeBaseRelativeError, conclusion: list[index].conclusion, exceedMark: list[index].exceedMark, } }) break case '直流增益': zeroFrequencyGainList.value = zeroFrequencyGainList.value.map((item, index) => { return { ...item, relativeError: list[index].relativeError, conclusion: list[index].conclusion, exceedMark: list[index].exceedMark, } }) break default: break } return list } // -----------------------------------------生成结果处理---------------------------------------- // 点击计算结果 const calculate = (type: string) => { if (!checkout(type)) { return false } const list = solveParamsBeforeCalculate(type) timeBaseLoading.value = type === '时基' zeroFrequencyGainLoading.value = type === '直流增益' const params = { belongStandardEquipment: itemFormData.value.belongStandardEquipment, // 检校标准装置 itemCategoryName: itemFormData.value.itemCategoryName, // 检定项分类名称 measureDataOscilloscopeList: list, } calculateHandle(params).then((res) => { if (res.data && res.data.length) { solveParamsAfterCalculate(type, res.data) } timeBaseLoading.value = false zeroFrequencyGainLoading.value = false }).catch(() => { timeBaseLoading.value = false zeroFrequencyGainLoading.value = false }) } // ------------------------------------------钩子---------------------------------------------- watch(() => props.infoId, (newValue) => { if (newValue) { infoId.value = newValue } }, { immediate: true }) onMounted(() => { if (pageType.value === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string // 设备检定项分类名称 itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // fetchInfo() } }) defineExpose({ checkout, itemFormData, templateFormAndTableRef, pageType }) </script> <template> <div class="measure-data-template-detail"> <template-form-and-table ref="templateFormAndTableRef" :page-type="pageType" /> <!-- 标签 --> <detail-block :title="pageType !== 'detail' ? '检定数据' : ''" :class="pageType === 'detail' ? 'setBottom' : ''"> <el-radio-group v-if="pageType === 'detail'" v-model="current"> <el-radio-button v-for="item in radioMenus" :key="item.value" :label="item.value"> {{ item.name }} </el-radio-button> </el-radio-group> <el-form v-if="current === 'measure-data'" ref="formRef" :model="itemFormData" label-width="140" label-position="right" style="margin-top: 20px;" > <el-row> <!-- 外观 --> <el-col :span="12"> <el-form-item label="外观及功能性检查:" prop="appearance"> <el-input v-model="itemFormData.appearance" class="full-width-input" autosize type="textarea" :disabled="pageType === 'detail'" /> </el-form-item> </el-col> </el-row> </el-form> <!-- 时基 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="时基"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary" @click="calculate('时基')"> 计算结果 </el-button> </template> <template-table v-loading="timeBaseLoading" :data="timeBaseList" :columns="itemFormData.methodType === '方法一' ? columns_time_base_method1 : columns_time_base_method2" :page-type="pageType" /> </detail-block> <!-- 直流增益 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="直流增益"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary" @click="calculate('直流增益')"> 计算结果 </el-button> </template> <template-table v-loading="zeroFrequencyGainLoading" :data="zeroFrequencyGainList" :columns="columns_zero_frequency_gain" :page-type="pageType" /> </detail-block> <!-- 直流偏置 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="直流偏置"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary" @click="calculate('直流偏置')"> 计算结果 </el-button> </template> <template-table :data="DCBiasList" :columns="columns_DC_bias" :page-type="pageType" /> </detail-block> <!-- 频带宽度 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="频带宽度"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary" @click="calculate('频带宽度')"> 计算结果 </el-button> </template> <template-table v-loading="" :data="frequencyBandwidthList" :columns="columns_frequency_bandwidth" :page-type="pageType" /> </detail-block> <!-- 触发灵敏度 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="触发灵敏度"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="triggerSensitivityList" :columns="columns_trigger_sensitivity" :page-type="pageType" /> </detail-block> <!-- 上升时间 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="上升时间"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="risetimeList" :columns="columns_risetime" :page-type="pageType" /> </detail-block> <!-- 输入电阻 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="输入电阻"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="inputResistanceList" :columns="columns_input_resistance" :page-type="pageType" /> </detail-block> <!-- 校准信号 --> <detail-block v-if="itemFormData.itemCategoryName === '数字示波器'" title="校准信号"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="calibratingSignalList" :columns="columns_calibrating_signal" :page-type="pageType" /> </detail-block> <!-- 扫描时间系数及扩展 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="扫描时间系数及扩展"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="scanningTimeList" :columns="columns_scan_time" :page-type="pageType" /> </detail-block> <!-- 垂直幅度 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="垂直幅度"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="verticalSizeList" :columns="columns_vertical_size" :page-type="pageType" /> </detail-block> <!-- 频带宽度 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="频带宽度"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="frequencyBandwidthSimulateList" :columns="columns_frequency_bandwidth_simulate" :page-type="pageType" /> </detail-block> <!-- 触发特性 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="触发特性"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="triggerCharacteristicList" :columns="columns_trigger_characteristic" :page-type="pageType" /> </detail-block> <!-- 输入电阻 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="输入电阻"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="inputResistanceSimulateList" :columns="columns_input_resistance_simulate" :page-type="pageType" /> </detail-block> <!-- 上升时间 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="上升时间"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="risetimeSimulateList" :columns="columns_risetime_simulate" :page-type="pageType" /> </detail-block> <!-- 校准信号 --> <detail-block v-if="itemFormData.itemCategoryName === '模拟示波器'" title="校准信号"> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 计算结果 </el-button> </template> <template-table :data="calibratingSignalSimulateList" :columns="columns_calibrating_signal_simulate" :page-type="pageType" /> </detail-block> <!-- 历史修改记录 --> <change-record v-show="pageType === 'detail' && current === 'change-record'" :info-id="infoId" /> </detail-block> </div> </template> <style lang="scss"> .measure-data-template-detail { .el-radio__label { display: block !important; } } </style>