<!-- 第17套:S参数检定装置 --> <!-- 检定数据管理详情模板 --> <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 categoryNameDict from '/public/config/categoryNameDict.json' import TemplateFormAndTable from '../templateFormAndTable.vue' import { useSolveFormData } from '../useSolveFormData' import type { IDetailMeasureList } from './seventeenth-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' import { initTableRow, useMergeTableRow } from '@/commonMethods/useMergeTableRow' import multiTable from '@/components/MultiHeaderTable/index.vue' const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 }) const emits = defineEmits(['giveInfoId', 'changeMeterIdentify']) 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: 1, // 外观及功能性检查 appearanceFunctionCheck: '正常', // 外观及功能性检查 vswr: 1, // 电压驻波比 insertionLoss: 1, // 插入损耗 isolationDegree: 1, // 隔离度 gainFlatness: 1, // 增益、增益平坦度 couplingDirection: 1, // 耦合度、方向性 amplitudeConsistency: 1, // 幅度一致性 phaseShift: 1, // 相移 phaseConsistency: 1, // 相位一致性 groupDelay: 1, // 群时延 filterCharacter: 1, // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) pointOutputPowerLevel: 1, // 1dB压缩点输出功率电平 powerFlatness: 1, // 输出功率、功率平坦度 spuriousSuppression: 1, // 杂散抑制 harmonicDistortion: 1, // 谐波失真 phaseNoise: 1, // 相位噪声 transferAmplitude: 1, // 传输幅度 transferPhaseShift: 1, // 传输相移 remark: '', // 备注 groupDelayFrequencyAperture: undefined, // 群时延频率孔径 groupDelayFrequencyApertureUnit: 'MHz', // 群时延频率孔径单位 filterCharacterFrequencyAperture: undefined, // 滤波器特性频率孔径 filterCharacterFrequencyApertureUnit: 'MHz', // 滤波器特性频率孔径单位 phaseNoiseCarrierFrequency: undefined, // 相位噪声载波频率 phaseNoiseCarrierFrequencyUnit: 'MHz', // 相位噪声载波频率单位 }) // -------------------------------------------路由参数------------------------------------------ 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 standardFrequencyUnitList = ref<dictType[]>([]) // 频率单位 const standardTimeUnitList = ref<dictType[]>([]) // 时间单位 /** * 获取字典 */ function getDict() { // 频率单位 getDictByCode('standardFrequencyUnit').then((response) => { standardFrequencyUnitList.value = response.data }) // 时间单位 getDictByCode('standardTimeUnit').then((response) => { standardTimeUnitList.value = response.data.map((item: { name: string }) => { return { ...item, label: item.name, value: item.name, } }) }) } getDict() // ------------------------------------------标签---------------------------------------------------------- const radioMenus = ref([ // 标签内容 { name: '检定数据', value: 'measure-data' }, { name: '历史修改记录', value: 'change-record' }, ]) const current = ref('measure-data') // 选择的tab 默认基本信息 // ---------------------------------------检定项数据表格---------------------------------------------------- const vswrMicrowaveList = ref<IDetailMeasureList[]>([]) // 电压驻波比(微波器件) const insertionLossList = ref<IDetailMeasureList[]>([]) // 插入损耗 const isolationDegreeList = ref<IDetailMeasureList[]>([]) // 隔离度 const gainFlatnessList = ref<IDetailMeasureList[]>([]) // 增益、增益平坦度 const couplingDirectionList = ref<IDetailMeasureList[]>([]) // 耦合度、方向性 const amplitudeConsistencyList = ref<IDetailMeasureList[]>([]) // 幅度一致性 const phaseShiftList = ref<IDetailMeasureList[]>([]) // 相移 const phaseConsistencyList = ref<IDetailMeasureList[]>([]) // 相位一致性 const groupDelayList = ref<IDetailMeasureList[]>([]) // 群时延 const filterCharacterList = ref<IDetailMeasureList[]>([]) // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) const pointOutputPowerLevelList = ref<IDetailMeasureList[]>([]) // 1dB压缩点输出功率电平 const powerFlatnessList = ref<IDetailMeasureList[]>([]) // 输出功率、功率平坦度 const spuriousSuppressionList = ref<IDetailMeasureList[]>([]) // 杂散抑制 const harmonicDistortionList = ref<IDetailMeasureList[]>([]) // 谐波失真 const phaseNoiseList = ref<IDetailMeasureList[]>([]) // 相位噪声 const vswrNetList = ref<IDetailMeasureList[]>([]) // 电压驻波比(矢量网络分析仪) const transferAmplitudeList = ref<IDetailMeasureList[]>([]) // 传输幅度(矢量网络分析仪) const transferPhaseShiftList = ref<IDetailMeasureList[]>([]) // 传输相移(矢量网络分析仪) const vswrMicrowaveLoading = ref(false) // 电压驻波比(微波器件) const insertionLossLoading = ref(false) // 插入损耗 const isolationDegreeLoading = ref(false) // 隔离度 const gainFlatnessLoading = ref(false) // 增益、增益平坦度 const couplingDirectionLoading = ref(false) // 耦合度、方向性 const amplitudeConsistencyLoading = ref(false) // 幅度一致性 const phaseShiftLoading = ref(false) // 相移 const phaseConsistencyLoading = ref(false) // 相位一致性 const groupDelayLoading = ref(false) // 群时延 const filterCharacterLoading = ref(false) // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) const pointOutputPowerLevelLoading = ref(false) // 1dB压缩点输出功率电平 const powerFlatnessLoading = ref(false) // 输出功率、功率平坦度 const spuriousSuppressionLoading = ref(false) // 杂散抑制 const harmonicDistortionLoading = ref(false) // 谐波失真 const phaseNoiseLoading = ref(false) // 相位噪声 const vswrNetLoading = ref(false) // 电压驻波比(矢量网络分析仪) const transferAmplitudeLoading = ref(false) // 传输幅度(矢量网络分析仪) const transferPhaseShiftLoading = ref(false) // 传输相移(矢量网络分析仪) // 电压驻波比(微波器件) const columns_vswrMicrowave = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '电压驻波比', value: '1', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 插入损耗 const columns_isolationDegree = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '插入损耗(dB)', value: '2', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 隔离度 const columns_insertionLoss = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '隔离度(dB)', value: '3', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 增益、增益平坦度 const columns_gainFlatness = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '增益(dB)', value: '4', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: '增益U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, { text: '增益平坦度(dB)', value: 'gainFlatness', align: 'center', required: false, type: 'text' }, { text: '增益平坦度U(k=2)', value: 'flatnessUrel', align: 'center', required: false, type: 'text' }, ]) // 耦合性、方向性 const columns_couplingDirection = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '第1次', value: '1', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第2次', value: '2', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第3次', value: '3', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第4次', value: '4', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第5次', value: '1', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第6次', value: '6', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第7次', value: '7', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第8次', value: '8', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第9次', value: '9', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '第10次', value: '10', align: 'center', required: false, width: '180', children: [ { text: '耦合性(dB)', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '方向性(dB)', value: 'otherValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '耦合性平均值(dB)', value: 'averageValue', align: 'center', required: false, type: 'text' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, { text: '方向性平均值(dB)', value: 'directivityAverageValue', align: 'center', required: false, type: 'text' }, { text: 'U(k=2)', value: 'flatnessUrel', align: 'center', required: false, type: 'text' }, ]) // 幅度一致性 const columns_amplitudeConsistency = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '幅度(dB)', value: '6', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 相移\相位一致性 const columns_phaseShift = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '测量值(°)', value: '7', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 群时延 const columns_groupDelay = ref([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '群时延单位', value: 'groupDelayUnit', align: 'center', required: false, type: 'select', width: 90, options: standardTimeUnitList }, { text: '群时延', value: '7', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 滤波器特性 const columns_filterCharacter = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '上边频频率', value: 'upperFrequencyDefineFront', align: 'center', required: false }, { text: '下边频频率', value: 'lowerFrequencyDefineFront', align: 'center', required: false }, { text: '通带3dB功率点上边频频率', value: 'passbandUpperFrequency', align: 'center', required: true, width: '220', precision: 3 }, { text: '通带3dB功率点下边频频率', value: 'passbandLowerFrequency', align: 'center', required: true, width: '220', precision: 3 }, { text: '通带3dB宽度Bw', value: 'passbandWidth', align: 'center', required: false }, { text: '通带60dB功率点上边频频率', value: 'passbandUpperFrequencyTwo', align: 'center', required: true, width: '220', precision: 3 }, { text: '通带60dB功率点下边频频率', value: 'passbandLowerFrequencyTwo', align: 'center', required: true, width: '220', precision: 3 }, { text: '通带60dB宽度Bw', value: 'passbandWidthTwo', align: 'center', required: false }, { text: '通带最小损耗', value: 'minLoss', align: 'center', required: true, width: '220', precision: 3 }, { text: '阻带最大损耗', value: 'maxLoss', align: 'center', required: true, width: '220', precision: 3 }, { text: '3dB带宽U(k=2)', value: 'gainFlatness', align: 'center', required: false }, { text: '60dB带宽U(k=2)', value: 'flatnessUrel', align: 'center', required: false }, { text: '通带最小损耗U(k=2)', value: 'minLossUrel', align: 'center', required: false }, { text: '阻带最大损耗U(k=2)', value: 'maxLossUrel', align: 'center', required: false }, ]) // 1dB压缩点输出功率电平 const columns_pointOutputPowerLevel = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '输出功率', value: 'outputPowerDefineFront', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '1dB压缩点输出功率电平(dBm)', value: '1dB', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // 输出功率、功率平坦度 const columns_powerFlatness = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '输出功率(dBm)', value: '输出功率、功率平坦度', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第7次', value: 'testValueSeven', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第8次', value: 'testValueEight', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第9次', value: 'testValueNine', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第10次', value: 'testValueTen', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, ], }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, type: 'text' }, { text: '输出功率平坦度(dB)', value: 'outputPowerFlatness', align: 'center', required: false, type: 'text' }, { text: 'U(k=2)', value: 'flatnessUrel', align: 'center', required: false, type: 'text' }, ]) // 杂散抑制 const columns_spuriousSuppression = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '参考电平', value: 'spectrumLevelDefineFront', align: 'center', required: false }, { text: '中心频率', value: 'intermediateFrequencyDefineFront', align: 'center', required: false }, { text: '分辨带宽', value: 'resolutionBandwidthDefineFront', align: 'center', required: false }, { text: '基波频率', value: 'fundamentalFrequencyDefineFront', align: 'center', required: false }, { text: '杂波频率', value: 'mixedFrequency', align: 'center', required: true, width: '180', precision: 3 }, { text: '杂波频率单位', value: 'mixedFrequencyUnit', align: 'center', required: true, width: '120' }, { text: '基波幅度(dBm)', value: 'fundamentalAmplitude', align: 'center', required: true, width: '180', precision: 3 }, { text: '杂波幅度(dBm)', value: 'mixedAmplitude', align: 'center', required: true, width: '180', precision: 3 }, { text: '杂散抑制(dBc)', value: 'spuriousSuppression', align: 'center', required: false }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false }, ]) // 谐波失真 const columns_harmonicDistortion = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '基波频率', value: 'fundamentalFrequencyDefineFront', align: 'center', required: false }, { text: '基波幅度', value: 'amplitudeDefineFront', align: 'center', required: false }, { text: '谐波次数', value: 'harmonicNumber', align: 'center', required: false }, { text: '基波幅度(dBm)', value: 'fundamentalAmplitude', align: 'center', required: true, width: '180', precision: 3 }, { text: '谐波幅度(dBm)', value: 'harmonicAmplitude', align: 'center', required: true, width: '180', precision: 3 }, { text: '谐波失真(dBc)', value: 'harmonicDistortion', align: 'center', required: false }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false }, ]) // 相位噪声 const columns_phaseNoise = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false }, { text: '随机噪声修正值', value: 'randomNoiseCorrectValueDefineFront', align: 'center', required: false }, { text: '分辨带宽', value: 'resolutionBandwidthDefineFront', align: 'center', required: false }, { text: '边带频率', value: 'sidebandFrequencyDefineFront', align: 'center', required: true, width: '180', precision: 3 }, { text: '载波电平(dBm)', value: 'carrierLevel', align: 'center', required: true, width: '180', precision: 3 }, { text: '边带电平(dBm)', value: 'sidebandLevel', align: 'center', required: true, width: '180', precision: 3 }, { text: '单边带相位噪声(dBc/Hz)', value: 'ssbHaseNoise', align: 'center', required: false }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false }, ]) // 电压驻波比(矢量网络分析仪) const columns_vswrNet = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '类型', value: 'typeValue', align: 'center', required: false, type: 'text' }, { text: 'VSMR', value: 'vswr', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '测量次数及测量值', value: '测量次数及测量值', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, { text: '标准值', value: 'standardValueDefineFront', align: 'center', required: false, type: 'text' }, { text: '技术指标', value: 'technicalIndexDefineFront', align: 'center', required: false, type: 'text' }, { text: '误差', value: 'errorValue', align: 'center', required: false, type: 'text', needMark: true }, { text: 'U(k=2)', value: 'urelDefineFront', align: 'center', required: false, type: 'text' }, ]) // 传输幅度(矢量网络分析仪) const columns_transferAmplitude = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '类型', value: 'typeValue', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '幅度', value: 'amplitudeDefineFront', align: 'center', required: false, type: 'text' }, { text: '测量次数及测量值', value: '测量次数及测量值', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, { text: '标准值', value: 'standardValueDefineFront', align: 'center', required: false, type: 'text' }, { text: '技术指标', value: 'technicalIndexDefineFront', align: 'center', required: false, type: 'text' }, { text: '误差', value: 'errorValue', align: 'center', required: false, type: 'text', needMark: true }, { text: 'U(k=2)', value: 'urelDefineFront', align: 'center', required: false, type: 'text' }, ]) // 传输相移(矢量网络分析仪) const columns_transferPhaseShift = ref<TableColumn[]>([ { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '类型', value: 'typeValue', align: 'center', required: false, type: 'text' }, { text: '频率', value: 'frequencyDefineFront', align: 'center', required: false, type: 'text' }, { text: '测量次数及测量值', value: '测量次数及测量值', align: 'center', required: false, width: '180', children: [ { text: '第1次', value: 'testValueOne', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第2次', value: 'testValueTwo', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第3次', value: 'testValueThree', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第4次', value: 'testValueFour', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第5次', value: 'testValueFive', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, { text: '第6次', value: 'testValueSix', align: 'center', required: true, width: '180', type: 'inputNumber', precision: 3 }, ], }, { text: '平均值', value: 'averageValue', align: 'center', required: false, type: 'text' }, { text: '标准值', value: 'standardValueDefineFront', align: 'center', required: false, type: 'text' }, { text: '技术指标', value: 'technicalIndexDefineFront', align: 'center', required: false, type: 'text' }, { text: '误差', value: 'errorValue', align: 'center', required: false, type: 'text', needMark: true }, { text: 'U(k=2)', value: 'urelDefineFront', align: 'center', required: false, type: 'text' }, ]) // -------------------------------------------获取详情信息-------------------------------------------------- // 获取页面详情信息 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.appearanceFunctionCheck = `${res.data.appearanceFunctionCheck}` // 外观(1/0) itemFormData.value.remark = res.data.remark // 结论、备注 // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== const data = res.data.measureDataSParamList.map((item: { editable: boolean }) => { return { ...item, editable: pageType.value !== 'detail', } }) if (itemFormData.value.itemCategoryName === '微波器件') { // 电压驻波比(微波器件) vswrMicrowaveList.value = data.filter((item: any) => `${item.dataType}` === '1') vswrMicrowaveList.value = vswrMicrowaveList.value.map((item: any) => { return { ...item, params: '电压驻波比', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.vswr = vswrMicrowaveList.value.length > 0 ? 1 : 0 // 插入损耗(微波器件) insertionLossList.value = data.filter((item: any) => `${item.dataType}` === '2') insertionLossList.value = insertionLossList.value.map((item: any) => { return { ...item, params: '插入损耗', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.insertionLoss = insertionLossList.value.length > 0 ? 1 : 0 // 插入损耗 // 隔离度(微波器件) isolationDegreeList.value = data.filter((item: any) => `${item.dataType}` === '3') isolationDegreeList.value = isolationDegreeList.value.map((item: any) => { return { ...item, params: '隔离度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.isolationDegree = isolationDegreeList.value.length > 0 ? 1 : 0 // 隔离度 // 增益、增益平坦度(微波器件) gainFlatnessList.value = data.filter((item: any) => `${item.dataType}` === '4') gainFlatnessList.value = gainFlatnessList.value.map((item: any) => { return { ...item, params: '增益、增益平坦度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.gainFlatness = gainFlatnessList.value.length > 0 ? 1 : 0 // 耦合度、方向性(微波器件) couplingDirectionList.value = data.filter((item: any) => `${item.dataType}` === '5') couplingDirectionList.value = couplingDirectionList.value.map((item: any) => { return { ...item, params: '耦合度、方向性', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.couplingDirection = couplingDirectionList.value.length > 0 ? 1 : 0 // 幅度一致性(微波器件) amplitudeConsistencyList.value = data.filter((item: any) => `${item.dataType}` === '6') amplitudeConsistencyList.value = amplitudeConsistencyList.value.map((item: any) => { return { ...item, params: '幅度一致性', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.amplitudeConsistency = amplitudeConsistencyList.value.length > 0 ? 1 : 0 // 相移(微波器件) phaseShiftList.value = data.filter((item: any) => `${item.dataType}` === '7') phaseShiftList.value = phaseShiftList.value.map((item: any) => { return { ...item, params: '相移', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.phaseShift = phaseShiftList.value.length > 0 ? 1 : 0 // 相位一致性(微波器件) phaseConsistencyList.value = data.filter((item: any) => `${item.dataType}` === '8') phaseConsistencyList.value = phaseConsistencyList.value.map((item: any) => { return { ...item, params: '相位一致性', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.phaseConsistency = phaseConsistencyList.value.length > 0 ? 1 : 0 // 群时延(微波器件) groupDelayList.value = data.filter((item: any) => `${item.dataType}` === '9') groupDelayList.value = groupDelayList.value.map((item: any) => { return { ...item, params: '群时延', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) if (groupDelayList.value && groupDelayList.value.length) { itemFormData.value.groupDelayFrequencyAperture = groupDelayList.value[0].mixedFrequency === '' ? undefined : groupDelayList.value[0].mixedFrequency as any itemFormData.value.groupDelayFrequencyApertureUnit = groupDelayList.value[0].mixedFrequencyUnit } itemFormData.value.groupDelay = groupDelayList.value.length > 0 ? 1 : 0 // 滤波器特性(微波器件) filterCharacterList.value = data.filter((item: any) => `${item.dataType}` === '10') filterCharacterList.value = filterCharacterList.value.map((item: any) => { return { ...item, params: '滤波器特性', upperFrequencyDefineFront: item.upperFrequency + item.upperFrequencyUnit, // 上边频频率 lowerFrequencyDefineFront: item.lowerFrequency + item.lowerFrequencyUnit, // 下边频频率 } }) itemFormData.value.filterCharacter = filterCharacterList.value.length > 0 ? 1 : 0 if (filterCharacterList.value && filterCharacterList.value.length) { itemFormData.value.filterCharacterFrequencyAperture = filterCharacterList.value[0].mixedFrequency === '' ? undefined : filterCharacterList.value[0].mixedFrequency as any itemFormData.value.filterCharacterFrequencyApertureUnit = filterCharacterList.value[0].mixedFrequencyUnit } // 1dB压缩点输出功率电平(微波器件) pointOutputPowerLevelList.value = data.filter((item: any) => `${item.dataType}` === '11') pointOutputPowerLevelList.value = pointOutputPowerLevelList.value.map((item: any) => { return { ...item, params: '1dB压缩点输出功率电平', outputPowerDefineFront: item.outputPower + item.outputPowerUnit, // 输出功率 frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.pointOutputPowerLevel = pointOutputPowerLevelList.value.length > 0 ? 1 : 0 // 输出功率、功率平坦度(微波器件) powerFlatnessList.value = data.filter((item: any) => `${item.dataType}` === '12') powerFlatnessList.value = powerFlatnessList.value.map((item: any) => { return { ...item, params: '输出功率、功率平坦度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 } }) itemFormData.value.powerFlatness = powerFlatnessList.value.length > 0 ? 1 : 0 // 杂散抑制(微波器件) spuriousSuppressionList.value = data.filter((item: any) => `${item.dataType}` === '13') spuriousSuppressionList.value = spuriousSuppressionList.value.map((item: any) => { return { ...item, params: '杂散抑制', spectrumLevelDefineFront: item.spectrumLevel + item.spectrumLevelUnit, // 参考电平 intermediateFrequencyDefineFront: item.intermediateFrequency + item.intermediateFrequencyUnit, // 中心频率 resolutionBandwidthDefineFront: item.resolutionBandwidth + item.resolutionBandwidthUnit, // 分辨带宽 fundamentalFrequencyDefineFront: item.fundamentalFrequency + item.fundamentalFrequencyUnit, // 基波频率 } }) itemFormData.value.spuriousSuppression = spuriousSuppressionList.value.length > 0 ? 1 : 0 // 谐波失真(微波器件) harmonicDistortionList.value = data.filter((item: any) => `${item.dataType}` === '14') harmonicDistortionList.value = harmonicDistortionList.value.map((item: any) => { return { ...item, params: '谐波失真', fundamentalFrequencyDefineFront: item.fundamentalFrequency + item.fundamentalFrequencyUnit, // 基波频率 // 这里的幅度是检定项配置的基波幅度 amplitudeDefineFront: item.fundamentalAmplitude + item.fundamentalAmplitudeUnit, // 幅度 } }) itemFormData.value.harmonicDistortion = harmonicDistortionList.value.length > 0 ? 1 : 0 // 相位噪声(微波器件) phaseNoiseList.value = data.filter((item: any) => `${item.dataType}` === '15') phaseNoiseList.value = phaseNoiseList.value.map((item: any) => { return { ...item, params: '相位噪声', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 randomNoiseCorrectValueDefineFront: item.randomNoiseCorrectValue + item.randomNoiseCorrectValueUnit, // 随机噪声修正值 resolutionBandwidthDefineFront: item.resolutionBandwidth + item.resolutionBandwidthUnit, // 分辨带宽 sidebandFrequencyDefineFront: item.sidebandFrequency + item.sidebandFrequencyUnit, // 边带频率 } }) itemFormData.value.phaseNoise = phaseNoiseList.value.length > 0 ? 1 : 0 if (phaseNoiseList.value && phaseNoiseList.value.length) { itemFormData.value.phaseNoiseCarrierFrequency = phaseNoiseList.value[0].mixedFrequency === '' ? undefined : phaseNoiseList.value[0].mixedFrequency as any itemFormData.value.phaseNoiseCarrierFrequencyUnit = phaseNoiseList.value[0].mixedFrequencyUnit } } else if (itemFormData.value.itemCategoryName === '矢量网络分析仪') { // 电压驻波比 vswrNetList.value = data.filter((item: any) => `${item.dataType}` === '1') vswrNetList.value = vswrNetList.value.map((item: any) => { return { ...item, params: '电压驻波比', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 standardValueDefineFront: item.standardValue + item.standardValueValue, // 标准值 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex, // 技术指标 urelDefineFront: `${item.urel}` === '' ? '/' : `${item.urel}%`, } }) itemFormData.value.vswr = vswrNetList.value.length > 0 ? 1 : 0 // 传输幅度 transferAmplitudeList.value = data.filter((item: any) => `${item.dataType}` === '2') transferAmplitudeList.value = transferAmplitudeList.value.map((item: any) => { return { ...item, params: '传输幅度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 amplitudeDefineFront: item.amplitude + item.amplitudeUnit, // 幅度 standardValueDefineFront: item.standardValue + item.standardValueValue, // 标准值 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex, // 技术指标 urelDefineFront: `${item.urel}` === '' ? '/' : `${item.urel}%`, } }) itemFormData.value.transferAmplitude = transferAmplitudeList.value.length > 0 ? 1 : 0 // 传输相移 transferPhaseShiftList.value = data.filter((item: any) => `${item.dataType}` === '3') transferPhaseShiftList.value = transferPhaseShiftList.value.map((item: any) => { return { ...item, params: '传输相移', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 standardValueDefineFront: item.standardValue + item.standardValueValue, // 标准值 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex, // 技术指标 urelDefineFront: `${item.urel}` === '' ? '/' : `${item.urel}%`, } }) itemFormData.value.transferPhaseShift = transferPhaseShiftList.value.length > 0 ? 1 : 0 } infoId.value = res.data.id emits('giveInfoId', infoId.value) loading.close() }) } // 初始化输入数据 const initInputData = (getData: any) => { const data = getData.map((item: any) => { return { ...item, editable: pageType.value !== 'detail', } }) if (itemFormData.value.itemCategoryName === '微波器件') { // 电压驻波比(微波器件) vswrMicrowaveList.value = data.filter((item: any) => `${item.dataType}` === '1') vswrMicrowaveList.value = vswrMicrowaveList.value.map((item: any) => { return { ...item, params: '电压驻波比', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 插入损耗 insertionLossList.value = data.filter((item: any) => `${item.dataType}` === '2') insertionLossList.value = insertionLossList.value.map((item: any) => { return { ...item, params: '插入损耗', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 隔离度 isolationDegreeList.value = data.filter((item: any) => `${item.dataType}` === '3') isolationDegreeList.value = isolationDegreeList.value.map((item: any) => { return { ...item, params: '隔离度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 增益、增益平坦度 gainFlatnessList.value = data.filter((item: any) => `${item.dataType}` === '4') gainFlatnessList.value = gainFlatnessList.value.map((item: any) => { return { ...item, params: '增益、增益平坦度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) flatnessUrel: item.flatnessUrel, // 增益平坦度U(k=2) } }) // 耦合性、方向性 couplingDirectionList.value = data.filter((item: any) => `${item.dataType}` === '5') couplingDirectionList.value = couplingDirectionList.value.map((item: any) => { return { ...item, params: '耦合性、方向性', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // 耦合性U(k=2) flatnessUrel: item.flatnessUrel, // 方向性U(k=2) } }) // 幅度一致性 amplitudeConsistencyList.value = data.filter((item: any) => `${item.dataType}` === '6') amplitudeConsistencyList.value = amplitudeConsistencyList.value.map((item: any) => { return { ...item, params: '幅度一致性', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 相移 phaseShiftList.value = data.filter((item: any) => `${item.dataType}` === '7') phaseShiftList.value = phaseShiftList.value.map((item: any) => { return { ...item, params: '相移', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 相位一致性 phaseConsistencyList.value = data.filter((item: any) => `${item.dataType}` === '8') phaseConsistencyList.value = phaseConsistencyList.value.map((item: any) => { return { ...item, params: '相位一致性', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 群时延 groupDelayList.value = data.filter((item: any) => `${item.dataType}` === '9') groupDelayList.value = groupDelayList.value.map((item: any) => { return { ...item, params: '群时延', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 groupDelayUnit: 'μs', // 群时延单位 urel: item.urel, // U(k=2) } }) // 滤波器特性 filterCharacterList.value = data.filter((item: any) => `${item.dataType}` === '10') filterCharacterList.value = filterCharacterList.value.map((item: any) => { return { ...item, params: '滤波器特性', upperFrequencyDefineFront: item.upperFrequency + item.upperFrequencyUnit, // 上边频频率 lowerFrequencyDefineFront: item.lowerFrequency + item.lowerFrequencyUnit, // 下边频频率 gainFlatness: item.urel, // 3dB带宽U(k=2) flatnessUrel: item.flatnessUrel, // 60dB带宽U(k=2) minLossUrel: item.minLossUrel, // 通带最小损耗U(k=2) maxLossUrel: item.maxLossUrel, // 阻带最大损耗U(k=2) } }) // 1dB压缩点输出功率电平 pointOutputPowerLevelList.value = data.filter((item: any) => `${item.dataType}` === '11') pointOutputPowerLevelList.value = pointOutputPowerLevelList.value.map((item: any) => { return { ...item, params: '1dB压缩点输出功率电平', outputPowerDefineFront: item.outputPower + item.outputPowerUnit, // 输出功率 frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // U(k=2) } }) // 输出功率、功率平坦度 powerFlatnessList.value = data.filter((item: any) => `${item.dataType}` === '12') powerFlatnessList.value = powerFlatnessList.value.map((item: any) => { return { ...item, params: '输出功率、功率平坦度', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 urel: item.urel, // 输出功率U(k=2) flatnessUrel: item.flatnessUrel, // 输出功率平坦度(k=2) } }) // 杂散抑制 spuriousSuppressionList.value = data.filter((item: any) => `${item.dataType}` === '13') spuriousSuppressionList.value = spuriousSuppressionList.value.map((item: any) => { return { ...item, params: '杂散抑制', spectrumLevelDefineFront: item.spectrumLevel + item.spectrumLevelUnit, // 参考电平 intermediateFrequencyDefineFront: item.intermediateFrequency + item.intermediateFrequencyUnit, // 中心频率 resolutionBandwidthDefineFront: item.resolutionBandwidth + item.resolutionBandwidthUnit, // 分辨带宽 fundamentalFrequencyDefineFront: item.fundamentalFrequency + item.fundamentalFrequencyUnit, // 基波频率 mixedFrequency: undefined, // 杂波频率 mixedFrequencyUnit: 'GHz', // 杂波频率单位 fundamentalAmplitude: undefined, // 基波幅度 fundamentalAmplitudeUnit: 'dBm', // 基波幅度单位 mixedAmplitude: undefined, // 杂波幅度 mixedAmplitudeUnit: 'dBm', // 杂波幅度单位 urel: item.urel, // 输出功率U(k=2) } }) // 谐波失真 harmonicDistortionList.value = data.filter((item: any) => `${item.dataType}` === '14') harmonicDistortionList.value = harmonicDistortionList.value.map((item: any) => { return { ...item, params: '谐波失真', fundamentalFrequencyDefineFront: item.fundamentalFrequency + item.fundamentalFrequencyUnit, // 基波频率 // 这里的幅度是检定项配置的基波幅度 amplitudeDefineFront: item.fundamentalAmplitude + item.fundamentalAmplitudeUnit, // 幅度 amplitude: item.fundamentalAmplitude, // 幅度 amplitudeUnit: item.fundamentalAmplitudeUnit, // 幅度单位 fundamentalAmplitude: undefined, // 基波幅度 fundamentalAmplitudeUnit: '', // 基波幅度单位 harmonicNumber: item.harmonicNumber, // 谐波次数 urel: item.urel, // U(k=2) } }) // 相位噪声 phaseNoiseList.value = data.filter((item: any) => `${item.dataType}` === '15') phaseNoiseList.value = phaseNoiseList.value.map((item: any) => { return { ...item, params: '相位噪声', frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 randomNoiseCorrectValueDefineFront: item.randomNoiseCorrectValue + item.randomNoiseCorrectValueUnit, // 随机噪声修正值 resolutionBandwidthDefineFront: item.resolutionBandwidth + item.resolutionBandwidthUnit, // 分辨带宽 sidebandFrequencyDefineFront: item.sidebandFrequency + item.sidebandFrequencyUnit, // 边带频率 urel: item.urel, // U(k=2) } }) } else if (itemFormData.value.itemCategoryName === '矢量网络分析仪') { // 电压驻波比 vswrNetList.value = data.filter((item: any) => `${item.dataType}` === '1') vswrNetList.value = vswrNetList.value.map((item: any) => { return { ...item, params: '电压驻波比', typeValue: item.typeValue, // 类型 vswr: item.vsmr, // VSWR frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 standardValueDefineFront: item.standardValue + item.standardValueUnit, // 标准值 standardValueValue: item.standardValueUnit, // 标准值单位 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex, // 技术指标 urel: item.urel, // U(k=2) urelDefineFront: `${item.urel}` === '' ? '/' : `${item.urel}%`, } }) // 传输幅度 transferAmplitudeList.value = data.filter((item: any) => `${item.dataType}` === '2') transferAmplitudeList.value = transferAmplitudeList.value.map((item: any) => { return { ...item, params: '传输幅度', typeValue: item.typeValue, // 类型 frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 amplitudeDefineFront: item.amplitude + item.amplitudeUnit, // 幅度 standardValueDefineFront: item.standardValue + item.standardValueUnit, // 标准值 standardValueValue: item.standardValueUnit, // 标准值单位 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex, // 技术指标 urel: item.urel, // U(k=2) urelDefineFront: `${item.urel}` === '' ? '/' : `${item.urel}%`, } }) // 传输相移 transferPhaseShiftList.value = data.filter((item: any) => `${item.dataType}` === '3') transferPhaseShiftList.value = transferPhaseShiftList.value.map((item: any) => { return { ...item, params: '传输相移', typeValue: item.typeValue, // 类型 frequencyDefineFront: item.frequency + item.frequencyUnit, // 频率 standardValueDefineFront: item.standardValue + item.standardValueUnit, // 标准值 standardValueValue: item.standardValueUnit, // 标准值单位 technicalIndexDefineFront: item.technicalIndexSymbol + item.technicalIndex, // 技术指标 urel: item.urel, // U(k=2) urelDefineFront: `${item.urel}` === '' ? '/' : `${item.urel}%`, } }) } } /** * 新增的时候获取检定项输入数据(获取检定项分类详情) * @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有外观,2没有外观 itemFormData.value.appearanceFunctionCheck = res.data.appearanceFunctionCheck ? '正常' : ''// 外观及功能检查 1有外观,2没有外观 itemFormData.value.vswr = res.data.vswr // 电压驻波比 itemFormData.value.insertionLoss = res.data.insertionLoss // 插入损耗 itemFormData.value.isolationDegree = res.data.isolationDegree // 隔离度 itemFormData.value.gainFlatness = res.data.gainFlatness // 增益、增益平坦度 itemFormData.value.couplingDirection = res.data.couplingDirection // 耦合度、方向性 itemFormData.value.amplitudeConsistency = res.data.amplitudeConsistency // 幅度一致性 itemFormData.value.phaseShift = res.data.phaseShift // 相移 itemFormData.value.phaseConsistency = res.data.phaseConsistency // 相位一致性 itemFormData.value.groupDelay = res.data.groupDelay // 群时延 itemFormData.value.filterCharacter = res.data.filterCharacter // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) itemFormData.value.pointOutputPowerLevel = res.data.pointOutputPowerLevel // 1dB压缩点输出功率电平 itemFormData.value.powerFlatness = res.data.powerFlatness // 输出功率、功率平坦度 itemFormData.value.spuriousSuppression = res.data.spuriousSuppression // 杂散抑制 itemFormData.value.harmonicDistortion = res.data.harmonicDistortion // 谐波失真 itemFormData.value.phaseNoise = res.data.phaseNoise // 相位噪声 itemFormData.value.transferAmplitude = res.data.transferAmplitude // 传输幅度 itemFormData.value.transferPhaseShift = res.data.transferPhaseShift // 传输相移 initInputData(res.data.measureItemDataSParamList) }) } // ----------------------------------------计算--------------------------------------- // 点击计算结果校验 const checkout = (type: string) => { let result = true if (itemFormData.value.itemCategoryName === '微波器件') { switch (type) { case '电压驻波比': { result = useCheckList(vswrMicrowaveList.value, columns_vswrMicrowave.value, type) break } case '插入损耗': result = useCheckList(insertionLossList.value, columns_isolationDegree.value, type) break case '隔离度': result = useCheckList(isolationDegreeList.value, columns_insertionLoss.value, type) break case '增益、增益平坦度': result = useCheckList(gainFlatnessList.value, columns_gainFlatness.value, type) break case '耦合度、方向性': result = useCheckList(couplingDirectionList.value, columns_couplingDirection.value, type) break case '幅度一致性': result = useCheckList(amplitudeConsistencyList.value, columns_amplitudeConsistency.value, type) break case '相移': result = useCheckList(phaseShiftList.value, columns_phaseShift.value, type) break case '相位一致性': result = useCheckList(phaseConsistencyList.value, columns_phaseShift.value, type) break case '群时延': result = useCheckList(groupDelayList.value, columns_groupDelay.value, type) break case '滤波器特性': result = useCheckList(filterCharacterList.value, columns_filterCharacter.value, type) break case '1dB压缩点输出功率电平': result = useCheckList(pointOutputPowerLevelList.value, columns_pointOutputPowerLevel.value, type) break case '输出功率、功率平坦度': result = useCheckList(powerFlatnessList.value, columns_powerFlatness.value, type) break case '杂散抑制': result = useCheckList(spuriousSuppressionList.value, columns_spuriousSuppression.value, type) break case '谐波失真': result = useCheckList(harmonicDistortionList.value, columns_harmonicDistortion.value, type) break case '相位噪声': result = useCheckList(phaseNoiseList.value, columns_phaseNoise.value, type) break default: break } } else if (itemFormData.value.itemCategoryName === '矢量网络分析仪') { switch (type) { case '电压驻波比': result = useCheckList(vswrNetList.value, columns_vswrNet.value, type) break case '传输幅度': result = useCheckList(transferAmplitudeList.value, columns_transferAmplitude.value, type) break case '传输相移': result = useCheckList(transferPhaseShiftList.value, columns_transferPhaseShift.value, type) break default: break } } return result } // 计算之前参数处理 const solveParamsBeforeCalculate = (type: string) => { let list = [] as any if (itemFormData.value.itemCategoryName === '微波器件') { switch (type) { case '电压驻波比': { list = vswrMicrowaveList.value break } case '插入损耗': list = insertionLossList.value break case '隔离度': list = isolationDegreeList.value break case '增益、增益平坦度': list = gainFlatnessList.value break case '耦合度、方向性': list = couplingDirectionList.value break case '幅度一致性': list = amplitudeConsistencyList.value break case '相移': list = phaseShiftList.value break case '相位一致性': list = phaseConsistencyList.value break case '群时延': list = groupDelayList.value break case '滤波器特性': list = filterCharacterList.value break case '1dB压缩点输出功率电平': list = pointOutputPowerLevelList.value break case '输出功率、功率平坦度': list = powerFlatnessList.value break case '杂散抑制': list = spuriousSuppressionList.value break case '谐波失真': list = harmonicDistortionList.value break case '相位噪声': list = phaseNoiseList.value break default: break } } else if (itemFormData.value.itemCategoryName === '矢量网络分析仪') { switch (type) { case '电压驻波比': list = vswrNetList.value break case '传输幅度': list = transferAmplitudeList.value break case '传输相移': list = transferPhaseShiftList.value break default: break } } return list } // 计算之后参数处理 const solveParamsAfterCalculate = (type: string, list: any) => { if (itemFormData.value.itemCategoryName === '微波器件') { switch (type) { case '电压驻波比': { vswrMicrowaveList.value = vswrMicrowaveList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, exceedMark: list[index].exceedMark, } }) break } case '插入损耗': insertionLossList.value = insertionLossList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, exceedMark: list[index].exceedMark, } }) break case '隔离度': isolationDegreeList.value = isolationDegreeList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, exceedMark: list[index].exceedMark, } }) break case '增益、增益平坦度': gainFlatnessList.value = gainFlatnessList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, gainFlatness: list[index].gainFlatness, // 增益平坦度 exceedMark: list[index].exceedMark, } }) gainFlatnessList.value = initTableRow(gainFlatnessList.value) break case '耦合度、方向性': couplingDirectionList.value = couplingDirectionList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 耦合性平均值 directivityAverageValue: list[index].directivityAverageValue, // 方向性平均值 exceedMark: list[index].exceedMark, } }) break case '幅度一致性': amplitudeConsistencyList.value = amplitudeConsistencyList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 exceedMark: list[index].exceedMark, } }) break case '相移': phaseShiftList.value = phaseShiftList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 exceedMark: list[index].exceedMark, } }) break case '相位一致性': phaseConsistencyList.value = phaseConsistencyList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 exceedMark: list[index].exceedMark, } }) break case '群时延': groupDelayList.value = groupDelayList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 exceedMark: list[index].exceedMark, } }) break case '滤波器特性': filterCharacterList.value = filterCharacterList.value.map((item, index) => { return { ...item, passbandWidth: list[index].passbandWidth, // 通带3dB宽度Bw passbandWidthTwo: list[index].passbandWidthTwo, // 通带60dB宽度Bw exceedMark: list[index].exceedMark, } }) break case '1dB压缩点输出功率电平': pointOutputPowerLevelList.value = pointOutputPowerLevelList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 exceedMark: list[index].exceedMark, } }) break case '输出功率、功率平坦度': powerFlatnessList.value = powerFlatnessList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, outputPowerFlatness: list[index].outputPowerFlatness, // 输出功率平坦度(dB) exceedMark: list[index].exceedMark, } }) break case '杂散抑制': spuriousSuppressionList.value = spuriousSuppressionList.value.map((item, index) => { return { ...item, spuriousSuppression: list[index].spuriousSuppression, // 杂散抑制 exceedMark: list[index].exceedMark, } }) break case '谐波失真': harmonicDistortionList.value = harmonicDistortionList.value.map((item, index) => { return { ...item, harmonicDistortion: list[index].harmonicDistortion, // 谐波失真 exceedMark: list[index].exceedMark, } }) break case '相位噪声': phaseNoiseList.value = phaseNoiseList.value.map((item, index) => { return { ...item, ssbHaseNoise: list[index].ssbHaseNoise, // 单边带相位噪声(dBc/Hz) exceedMark: list[index].exceedMark, } }) break default: break } } else if (itemFormData.value.itemCategoryName === '矢量网络分析仪') { switch (type) { case '电压驻波比': vswrNetList.value = vswrNetList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 errorValue: list[index].errorValue, // 误差 exceedMark: list[index].exceedMark, } }) break case '传输幅度': transferAmplitudeList.value = transferAmplitudeList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 errorValue: list[index].errorValue, // 误差 exceedMark: list[index].exceedMark, } }) break case '传输相移': transferPhaseShiftList.value = transferPhaseShiftList.value.map((item, index) => { return { ...item, averageValue: list[index].averageValue, // 平均值 errorValue: list[index].errorValue, // 误差 exceedMark: list[index].exceedMark, } }) break default: break } } return list } // 点击计算结果 const calculate = (type: string) => { if (!checkout(type)) { return false } const list = solveParamsBeforeCalculate(type) // =============表格loading============================== vswrMicrowaveLoading.value = type === '电压驻波比' && itemFormData.value.itemCategoryName === '微波器件' // 电压驻波比(微波器件) insertionLossLoading.value = type === '插入损耗' // 插入损耗 isolationDegreeLoading.value = type === '隔离度' // 隔离度 gainFlatnessLoading.value = type === '增益、增益平坦度' // 增益、增益平坦度 couplingDirectionLoading.value = type === '耦合度、方向性' // 耦合度、方向性 amplitudeConsistencyLoading.value = type === '幅度一致性' // 幅度一致性 phaseShiftLoading.value = type === '相移' // 相移 phaseConsistencyLoading.value = type === '相位一致性' // 相位一致性 groupDelayLoading.value = type === '群时延' // 群时延 filterCharacterLoading.value = type === '滤波器特性' // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) pointOutputPowerLevelLoading.value = type === '1dB压缩点输出功率电平' // 1dB压缩点输出功率电平 powerFlatnessLoading.value = type === '输出功率、功率平坦度' // 输出功率、功率平坦度 spuriousSuppressionLoading.value = type === '杂散抑制' // 杂散抑制 harmonicDistortionLoading.value = type === '谐波失真' // 谐波失真 phaseNoiseLoading.value = type === '相位噪声' // 相位噪声 vswrNetLoading.value = type === '电压驻波比' && itemFormData.value.itemCategoryName === '矢量网络分析仪' // 电压驻波比(矢量网络分析仪) transferAmplitudeLoading.value = type === '传输幅度' // 传输幅度(矢量网络分析仪) transferPhaseShiftLoading.value = type === '传输相移' // 传输相移(矢量网络分析仪) // ======================================================= const params = { belongStandardEquipment: itemFormData.value.belongStandardEquipment, // 检校标准库 itemCategoryName: itemFormData.value.itemCategoryName, // 检定项分类名称 measureDataSParamList: list.map((item: { exceedMark: number }) => { return { ...item, exceedMark: 0, } }), } calculateHandle(params).then((res) => { if (res.data && res.data.length) { solveParamsAfterCalculate(type, res.data) } vswrMicrowaveLoading.value = false insertionLossLoading.value = false// 插入损耗 isolationDegreeLoading.value = false// 隔离度 gainFlatnessLoading.value = false// 增益、增益平坦度 couplingDirectionLoading.value = false// 耦合度、方向性 amplitudeConsistencyLoading.value = false// 幅度一致性 phaseShiftLoading.value = false// 相移 phaseConsistencyLoading.value = false// 相位一致性 groupDelayLoading.value = false// 群时延 filterCharacterLoading.value = false// 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) pointOutputPowerLevelLoading.value = false// 1dB压缩点输出功率电平 powerFlatnessLoading.value = false// 输出功率、功率平坦度 spuriousSuppressionLoading.value = false// 杂散抑制 harmonicDistortionLoading.value = false// 谐波失真 phaseNoiseLoading.value = false// 相位噪声 vswrNetLoading.value = false// 电压驻波比(矢量网络分析仪) transferAmplitudeLoading.value = false// 传输幅度(矢量网络分析仪) transferPhaseShiftLoading.value = false// 传输相移(矢量网络分析仪) }).catch(() => { vswrMicrowaveLoading.value = false insertionLossLoading.value = false// 插入损耗 isolationDegreeLoading.value = false// 隔离度 gainFlatnessLoading.value = false// 增益、增益平坦度 couplingDirectionLoading.value = false// 耦合度、方向性 amplitudeConsistencyLoading.value = false// 幅度一致性 phaseShiftLoading.value = false// 相移 phaseConsistencyLoading.value = false// 相位一致性 groupDelayLoading.value = false// 群时延 filterCharacterLoading.value = false// 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) pointOutputPowerLevelLoading.value = false// 1dB压缩点输出功率电平 powerFlatnessLoading.value = false// 输出功率、功率平坦度 spuriousSuppressionLoading.value = false// 杂散抑制 harmonicDistortionLoading.value = false// 谐波失真 phaseNoiseLoading.value = false// 相位噪声 vswrNetLoading.value = false// 电压驻波比(矢量网络分析仪) transferAmplitudeLoading.value = false// 传输幅度(矢量网络分析仪) transferPhaseShiftLoading.value = false// 传输相移(矢量网络分析仪) }) } // -----------------------------------------保存之前处理数据------------------------------------ const solveParamsBeforeSave = () => { let list = [] as any groupDelayList.value = groupDelayList.value.map((item) => { return { ...item, mixedFrequency: itemFormData.value.groupDelayFrequencyAperture, // 杂波频率/频率孔径/载波频率 mixedFrequencyUnit: itemFormData.value.groupDelayFrequencyApertureUnit, // 杂波频率单位/频率孔径单位/载波频率单位 } }) as any filterCharacterList.value = filterCharacterList.value.map((item) => { return { ...item, mixedFrequency: itemFormData.value.filterCharacterFrequencyAperture, // 杂波频率/频率孔径/载波频率 mixedFrequencyUnit: itemFormData.value.filterCharacterFrequencyApertureUnit, // 杂波频率单位/频率孔径单位/载波频率单位 } }) as any phaseNoiseList.value = phaseNoiseList.value.map((item) => { return { ...item, mixedFrequency: itemFormData.value.phaseNoiseCarrierFrequency, // 杂波频率/频率孔径/载波频率 mixedFrequencyUnit: itemFormData.value.phaseNoiseCarrierFrequencyUnit, // 杂波频率单位/频率孔径单位/载波频率单位 } }) as any if (itemFormData.value.itemCategoryName === '微波器件') { list = list.concat( vswrMicrowaveList.value, // 电压驻波比(微波器件) insertionLossList.value, // 插入损耗 isolationDegreeList.value, // 隔离度 gainFlatnessList.value, // 增益、增益平坦度 couplingDirectionList.value, // 耦合度、方向性 amplitudeConsistencyList.value, // 幅度一致性 phaseShiftList.value, // 相移 phaseConsistencyList.value, // 相位一致性 groupDelayList.value, // 群时延 filterCharacterList.value, // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) pointOutputPowerLevelList.value, // 1dB压缩点输出功率电平 powerFlatnessList.value, // 输出功率、功率平坦度 spuriousSuppressionList.value, // 杂散抑制 harmonicDistortionList.value, // 谐波失真 phaseNoiseList.value, // 相位噪声 ) } else { list = list.concat( vswrNetList.value, // 电压驻波比(矢量网络分析仪) transferAmplitudeList.value, // 传输幅度(矢量网络分析仪) transferPhaseShiftList.value, // 传输相移(矢量网络分析仪) ) } return list } // ---------------------------------------------------------------------------------------- const isNeverDefineItemCategory = ref(false) // 检定项分类是否是从未定义过的 watch(() => itemFormData.value.itemCategoryName, (newValue) => { if (newValue) { // 判断是否是新增的检定项分类 const index = categoryNameDict.findIndex((item: any) => item === newValue) if (index === -1) { isNeverDefineItemCategory.value = true } else { isNeverDefineItemCategory.value = false } } }) // ------------------------------------------钩子---------------------------------------------- watch(() => props.infoId, (newValue) => { if (newValue) { infoId.value = newValue } }, { immediate: true }) watch(() => pageType.value, (newValue) => { if (newValue === 'detail') { vswrMicrowaveList.value = vswrMicrowaveList.value.map((item) => { item.editable = false; return item }) // 电压驻波比(微波器件) insertionLossList.value = insertionLossList.value.map((item) => { item.editable = false; return item }) // 插入损耗 isolationDegreeList.value = isolationDegreeList.value.map((item) => { item.editable = false; return item })// 隔离度 gainFlatnessList.value = gainFlatnessList.value.map((item) => { item.editable = false; return item })// 增益、增益平坦度 couplingDirectionList.value = couplingDirectionList.value.map((item) => { item.editable = false; return item })// 耦合度、方向性 amplitudeConsistencyList.value = amplitudeConsistencyList.value.map((item) => { item.editable = false; return item })// 幅度一致性 phaseShiftList.value = phaseShiftList.value.map((item) => { item.editable = false; return item })// 相移 phaseConsistencyList.value = phaseConsistencyList.value.map((item) => { item.editable = false; return item })// 相位一致性 groupDelayList.value = groupDelayList.value.map((item) => { item.editable = false; return item })// 群时延 filterCharacterList.value = filterCharacterList.value.map((item) => { item.editable = false; return item })// 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) pointOutputPowerLevelList.value = pointOutputPowerLevelList.value.map((item) => { item.editable = false; return item }) // 1dB压缩点输出功率电平 powerFlatnessList.value = powerFlatnessList.value.map((item) => { item.editable = false; return item })// 输出功率、功率平坦度 spuriousSuppressionList.value = spuriousSuppressionList.value.map((item) => { item.editable = false; return item })// 杂散抑制 harmonicDistortionList.value = harmonicDistortionList.value.map((item) => { item.editable = false; return item }) // 谐波失真 phaseNoiseList.value = phaseNoiseList.value.map((item) => { item.editable = false; return item }) // 相位噪声 vswrNetList.value = vswrNetList.value.map((item) => { item.editable = false; return item }) // 电压驻波比(矢量网络分析仪) transferAmplitudeList.value = transferAmplitudeList.value.map((item) => { item.editable = false; return item }) // 传输幅度(矢量网络分析仪) transferPhaseShiftList.value = transferPhaseShiftList.value.map((item) => { item.editable = false; return item })// 传输相移(矢量网络分析仪) } }) const changePageType = (changeStatus: string) => { pageType.value = changeStatus } onMounted(() => { 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// 标准装置名称 if (pageType.value === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { fetchInfo() } }) defineExpose({ fetchInfo, checkout, itemFormData, templateFormAndTableRef, pageType, solveParamsBeforeSave, changePageType }) </script> <template> <div class="measure-data-template-detail"> <template-form-and-table ref="templateFormAndTableRef" :page-type="pageType" @change-meter-identify="emits('changeMeterIdentify')" /> <!-- 标签 --> <detail-block v-if="!isNeverDefineItemCategory" :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' && itemFormData.appearance" 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="appearanceFunctionCheck"> <el-input v-model="itemFormData.appearanceFunctionCheck" class="full-width-input" autosize type="textarea" :disabled="pageType === 'detail'" /> </el-form-item> </el-col> </el-row> </el-form> <!-- 电压驻波比 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.vswr" style="display: flex;justify-content: space-between;align-items: center;"> <h5>电压驻波比</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('电压驻波比')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.vswr" v-loading="vswrMicrowaveLoading" :table-data="vswrMicrowaveList" :table-header="columns_vswrMicrowave" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 插入损耗 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.insertionLoss" style="display: flex;justify-content: space-between;align-items: center;"> <h5>插入损耗</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('插入损耗')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.insertionLoss" v-loading="insertionLossLoading" :table-data="insertionLossList" :table-header="columns_insertionLoss" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 隔离度 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.isolationDegree" style="display: flex;justify-content: space-between;align-items: center;"> <h5>隔离度</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('隔离度')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.isolationDegree" v-loading="isolationDegreeLoading" :table-data="isolationDegreeList" :table-header="columns_isolationDegree" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 增益、增益平坦度 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.gainFlatness" style="display: flex;justify-content: space-between;align-items: center;"> <h5>增益、增益平坦度</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('增益、增益平坦度')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.gainFlatness" v-loading="gainFlatnessLoading" :table-data="gainFlatnessList" :table-header="columns_gainFlatness" :merge-rows="['gainFlatness', 'flatnessUrel']" :need-index="true" max-height="300" /> <!-- 耦合度、方向性 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.couplingDirection" style="display: flex;justify-content: space-between;align-items: center;"> <h5>耦合度、方向性</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('耦合度、方向性')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.couplingDirection" v-loading="couplingDirectionLoading" :table-data="couplingDirectionList" :table-header="columns_couplingDirection" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 幅度一致性 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.amplitudeConsistency" style="display: flex;justify-content: space-between;align-items: center;"> <h5>幅度一致性</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('幅度一致性')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.amplitudeConsistency" v-loading="amplitudeConsistencyLoading" :table-data="amplitudeConsistencyList" :table-header="columns_amplitudeConsistency" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 相移 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.phaseShift" style="display: flex;justify-content: space-between;align-items: center;"> <h5>相移</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('相移')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.phaseShift" v-loading="phaseShiftLoading" :table-data="phaseShiftList" :table-header="columns_phaseShift" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 相位一致性 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.phaseConsistency" style="display: flex;justify-content: space-between;align-items: center;"> <h5>相位一致性</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('相位一致性')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.phaseConsistency" v-loading="phaseConsistencyLoading" :table-data="phaseConsistencyList" :table-header="columns_phaseShift" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 群时延 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.groupDelay" style="display: flex;justify-content: space-between;align-items: center;"> <h5>群时延</h5> <div style="display: flex;justify-content: center;align-items: center;"> <h6>频率孔径:</h6> <precision-input-number v-if="pageType !== 'detail'" v-model="itemFormData.groupDelayFrequencyAperture" placeholder="请输入" :disabled="pageType === 'detail'" style="width: 180px;margin-right: 10px;" /> <!-- 频率 单位--公用 --> <el-select v-if="pageType !== 'detail'" v-model="itemFormData.groupDelayFrequencyApertureUnit" placeholder="请选择" :disabled="pageType === 'detail'" style="width: 80px;margin-right: 10px;" > <el-option v-for="item of standardFrequencyUnitList" :key="item.value" :label="item.name" :value="item.name" /> </el-select> <span v-if="pageType === 'detail' && itemFormData.groupDelayFrequencyAperture">{{ itemFormData.groupDelayFrequencyAperture }}{{ itemFormData.groupDelayFrequencyApertureUnit }}</span> <span v-if="pageType === 'detail' && !itemFormData.groupDelayFrequencyAperture">无</span> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('群时延')"> 计算结果 </el-button> </div> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.groupDelay" v-loading="groupDelayLoading" :table-data="groupDelayList" :table-header="columns_groupDelay" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 滤波器特性 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.filterCharacter" style="display: flex;justify-content: space-between;align-items: center;"> <h5>滤波器特性</h5> <div style="display: flex;justify-content: center;align-items: center;"> <h6>频率孔径:</h6> <precision-input-number v-if="pageType !== 'detail'" v-model="itemFormData.filterCharacterFrequencyAperture" placeholder="请输入" :disabled="pageType === 'detail'" style="width: 180px;margin-right: 10px;" /> <!-- 频率 单位--公用 --> <el-select v-if="pageType !== 'detail'" v-model="itemFormData.filterCharacterFrequencyApertureUnit" placeholder="请选择" :disabled="pageType === 'detail'" style="width: 80px;margin-right: 10px;" > <el-option v-for="item of standardFrequencyUnitList" :key="item.value" :label="item.name" :value="item.name" /> </el-select> <span v-if="pageType === 'detail' && itemFormData.filterCharacterFrequencyAperture">{{ itemFormData.filterCharacterFrequencyAperture }}{{ itemFormData.filterCharacterFrequencyApertureUnit }}</span> <span v-if="pageType === 'detail' && !itemFormData.filterCharacterFrequencyAperture">无</span> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('滤波器特性')"> 计算结果 </el-button> </div> </div> <template-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.filterCharacter" v-loading="filterCharacterLoading" type="滤波器特性" :data="filterCharacterList" :columns="columns_filterCharacter" :page-type="pageType" /> <!-- 1dB压缩点输出功率电平 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.pointOutputPowerLevel" style="display: flex;justify-content: space-between;align-items: center;"> <h5>1dB压缩点输出功率电平</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('1dB压缩点输出功率电平')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.pointOutputPowerLevel" v-loading="pointOutputPowerLevelLoading" :table-data="pointOutputPowerLevelList" :table-header="columns_pointOutputPowerLevel" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 输出功率、功率平坦度 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.powerFlatness" style="display: flex;justify-content: space-between;align-items: center;"> <h5>输出功率、功率平坦度</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('输出功率、功率平坦度')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.powerFlatness" v-loading="powerFlatnessLoading" :table-data="powerFlatnessList" :table-header="columns_powerFlatness" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 杂散抑制 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.spuriousSuppression" style="display: flex;justify-content: space-between;align-items: center;"> <h5>杂散抑制</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('杂散抑制')"> 计算结果 </el-button> </div> <template-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.spuriousSuppression" v-loading="spuriousSuppressionLoading" type="杂散抑制" :data="spuriousSuppressionList" :columns="columns_spuriousSuppression" :page-type="pageType" /> <!-- 谐波失真 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.harmonicDistortion" style="display: flex;justify-content: space-between;align-items: center;"> <h5>谐波失真</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('谐波失真')"> 计算结果 </el-button> </div> <template-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.harmonicDistortion" v-loading="harmonicDistortionLoading" type="谐波失真" :data="harmonicDistortionList" :columns="columns_harmonicDistortion" :page-type="pageType" /> <!-- 相位噪声 --> <div v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.phaseNoise" style="display: flex;justify-content: space-between;align-items: center;"> <h5>相位噪声</h5> <div style="display: flex;justify-content: center;align-items: center;"> <h6>载波频率:</h6> <precision-input-number v-if="pageType !== 'detail'" v-model="itemFormData.phaseNoiseCarrierFrequency" placeholder="请输入" :disabled="pageType === 'detail'" style="width: 180px;margin-right: 10px;" /> <!-- 频率 单位--公用 --> <el-select v-if="pageType !== 'detail'" v-model="itemFormData.phaseNoiseCarrierFrequencyUnit" placeholder="请选择" :disabled="pageType === 'detail'" style="width: 80px;margin-right: 10px;" > <el-option v-for="item of standardFrequencyUnitList" :key="item.value" :label="item.name" :value="item.name" /> </el-select> <span v-if="pageType === 'detail' && itemFormData.phaseNoiseCarrierFrequency">{{ itemFormData.phaseNoiseCarrierFrequency }}{{ itemFormData.phaseNoiseCarrierFrequencyUnit }}</span> <span v-if="pageType === 'detail' && !itemFormData.phaseNoiseCarrierFrequency">无</span> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('相位噪声')"> 计算结果 </el-button> </div> </div> <template-table v-if="itemFormData.itemCategoryName === '微波器件' && itemFormData.phaseNoise" v-loading="phaseNoiseLoading" type="相位噪声" :data="phaseNoiseList" :columns="columns_phaseNoise" :page-type="pageType" /> <!-- 电压驻波比 --> <div v-if="itemFormData.itemCategoryName === '矢量网络分析仪' && itemFormData.vswr" style="display: flex;justify-content: space-between;align-items: center;"> <h5>电压驻波比</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('电压驻波比')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '矢量网络分析仪' && itemFormData.vswr" v-loading="vswrNetLoading" :table-data="vswrNetList" :table-header="columns_vswrNet" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 传输幅度 --> <div v-if="itemFormData.itemCategoryName === '矢量网络分析仪' && itemFormData.transferAmplitude" style="display: flex;justify-content: space-between;align-items: center;"> <h5>传输幅度</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('传输幅度')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '矢量网络分析仪' && itemFormData.transferAmplitude" v-loading="transferAmplitudeLoading" :table-data="transferAmplitudeList" :table-header="columns_transferAmplitude" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 传输相移 --> <div v-if="itemFormData.itemCategoryName === '矢量网络分析仪' && itemFormData.transferPhaseShift" style="display: flex;justify-content: space-between;align-items: center;"> <h5>传输相移</h5> <el-button v-if="pageType !== 'detail'" type="primary" @click="calculate('传输相移')"> 计算结果 </el-button> </div> <multi-table v-if="itemFormData.itemCategoryName === '矢量网络分析仪' && itemFormData.transferPhaseShift" v-loading="transferPhaseShiftLoading" :table-data="transferPhaseShiftList" :table-header="columns_transferPhaseShift" :merge-rows="[]" :need-index="true" max-height="300" /> <!-- 历史修改记录 --> <change-record v-if="pageType === 'detail' && current === 'change-record'" :info-id="infoId" /> </detail-block> <!-- ------------------------------------------------结论------------------------------------------------ --> <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="remark"> <el-input v-model="itemFormData.remark" class="full-width-input" :placeholder="pageType === 'detail' ? ' ' : '备注'" autosize type="textarea" :disabled="pageType === 'detail'" /> </el-form-item> </el-col> </el-row> </el-form> </div> </template> <style lang="scss"> .measure-data-template-detail { .el-radio__label { display: block !important; } } </style>