<!-- 第17套:S参数标准库 --> <script lang="ts" setup name="TemplateDetailTenth"> import { ElMessage } from 'element-plus' import type { IList } from './templateDetail-interface' import templateTable from './templateTable.vue' import type { dictType } from '@/global' import { getDictByCode } from '@/api/system/dict' import { calc } from '@/utils/useCalc' import { useCheckList } from '@/commonMethods/useCheckList' import { calculate, recalculate } from '@/api/business/measure/caculate' import type { TableColumn } from '@/components/NormalTable/table_interface' import { differenceArray } from '@/utils/Array' import { validateStr } from '@/utils/validate' const props = defineProps({ pageType: { type: String, default: 'add', }, itemCategoryName: { type: String, require: true, }, // 智能模型检定项分类名称 belongStandardEquipment: { // 检校标准装置code type: String, require: true, }, list: { type: Array as any, }, form: { // 检定项表单 type: Object as any, }, itemId: { // 检定项id type: String, default: '', }, }) const form = ref({ appearanceFunctionCheck: 1, // 外观及工作正常性检查 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, // 传输相移 }) const vswrMicrowaveList = ref<IList[]>([]) // 电压驻波比(微波器件) const insertionLossList = ref<IList[]>([]) // 插入损耗 const isolationDegreeList = ref<IList[]>([]) // 隔离度 const gainFlatnessList = ref<IList[]>([]) // 增益、增益平坦度 const couplingDirectionList = ref<IList[]>([]) // 耦合度、方向性 const amplitudeConsistencyList = ref<IList[]>([]) // 幅度一致性 const phaseShiftList = ref<IList[]>([]) // 相移 const phaseConsistencyList = ref<IList[]>([]) // 相位一致性 const groupDelayList = ref<IList[]>([]) // 群时延 const filterCharacterList = ref<IList[]>([]) // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) const pointOutputPowerLevelList = ref<IList[]>([]) // 1dB压缩点输出功率电平 const powerFlatnessList = ref<IList[]>([]) // 输出功率、功率平坦度 const spuriousSuppressionList = ref<IList[]>([]) // 杂散抑制 const harmonicDistortionList = ref<IList[]>([]) // 谐波失真 const phaseNoiseList = ref<IList[]>([]) // 相位噪声 const vswrNetList = ref<IList[]>([]) // 电压驻波比(矢量网络分析仪) const transferAmplitudeList = ref<IList[]>([]) // 传输幅度(矢量网络分析仪) const transferPhaseShiftList = ref<IList[]>([]) // 传输相移(矢量网络分析仪) const vswrMicrowaveCheckoutList = ref<IList[]>([]) // 电压驻波比(微波器件) const insertionLossCheckoutList = ref<IList[]>([]) // 插入损耗 const isolationDegreeCheckoutList = ref<IList[]>([]) // 隔离度 const gainFlatnessCheckoutList = ref<IList[]>([]) // 增益、增益平坦度 const couplingDirectionCheckoutList = ref<IList[]>([]) // 耦合度、方向性 const amplitudeConsistencyCheckoutList = ref<IList[]>([]) // 幅度一致性 const phaseShiftCheckoutList = ref<IList[]>([]) // 相移 const phaseConsistencyCheckoutList = ref<IList[]>([]) // 相位一致性 const groupDelayCheckoutList = ref<IList[]>([]) // 群时延 const filterCharacterCheckoutList = ref<IList[]>([]) // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) const pointOutputPowerLevelCheckoutList = ref<IList[]>([]) // 1dB压缩点输出功率电平 const powerFlatnessCheckoutList = ref<IList[]>([]) // 输出功率、功率平坦度 const spuriousSuppressionCheckoutList = ref<IList[]>([]) // 杂散抑制 const harmonicDistortionCheckoutList = ref<IList[]>([]) // 谐波失真 const phaseNoiseCheckoutList = ref<IList[]>([]) // 相位噪声 const vswrNetCheckoutList = ref<IList[]>([]) // 电压驻波比(矢量网络分析仪) const transferAmplitudeCheckoutList = ref<IList[]>([]) // 传输幅度(矢量网络分析仪) const transferPhaseShiftCheckoutList = ref<IList[]>([]) // 传输相移(矢量网络分析仪) // ----------------------------------------表头------------------------------------------------ const columns_vswrMicrowave = ref<TableColumn[]>([ // 电压驻波比、插入损耗、隔离度、幅度一致性、相移、相位一致性、群时延--微波器件 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '显示格式', value: 'displayFormat', align: 'center', required: true, width: '130' }, { text: '中频带宽', value: 'ifBandwidth', align: 'center', required: true, width: '180' }, { text: '中频带宽单位', value: 'ifBandwidthUnit', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '测试次数', value: 'testNumber', align: 'center', required: true, width: '90' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_gainFlatness = ref<TableColumn[]>([ // 增益、增益平坦度 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '显示格式', value: 'displayFormat', align: 'center', required: true, width: '130' }, { text: '中频带宽', value: 'ifBandwidth', align: 'center', required: true, width: '180' }, { text: '中频带宽单位', value: 'ifBandwidthUnit', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '测试次数', value: 'testNumber', align: 'center', required: true, width: '90' }, { text: '增益U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, { text: '增益平坦度U(k=2)', value: 'flatnessUrel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_couplingDirection = ref<TableColumn[]>([ // 耦合度、方向性 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '显示格式', value: 'displayFormat', align: 'center', required: true, width: '130' }, { text: '中频带宽', value: 'ifBandwidth', align: 'center', required: true, width: '180' }, { text: '中频带宽单位', value: 'ifBandwidthUnit', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '测试次数', value: 'testNumber', align: 'center', required: true, width: '90' }, { text: '耦合性U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, { text: '方向性U(k=2)', value: 'flatnessUrel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_filterCharacter = ref<TableColumn[]>([ // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '显示格式', value: 'displayFormat', align: 'center', required: true, width: '130' }, { text: '中频带宽', value: 'ifBandwidth', align: 'center', required: true, width: '180' }, { text: '中频带宽单位', value: 'ifBandwidthUnit', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '上边频频率', value: 'upperFrequency', align: 'center', required: true, width: '180' }, { text: '上边频频率单位', value: 'upperFrequencyUnit', align: 'center', required: true, width: '100' }, { text: '下边频频率', value: 'lowerFrequency', align: 'center', required: true, width: '180' }, { text: '下边频频率单位', value: 'lowerFrequencyUnit', align: 'center', required: true, width: '100' }, { text: '3dB带宽U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, { text: '60dB带宽U(k=2)', value: 'flatnessUrel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, { text: '通带最小损耗U(k=2)', value: 'minLossUrel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, { text: '阻带最大损耗U(k=2)', value: 'maxLossUrel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_pointOutputPowerLevel = ref<TableColumn[]>([ // 1dB压缩点输出功率电平 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '显示格式', value: 'displayFormat', align: 'center', required: true, width: '130' }, { text: '中频带宽', value: 'ifBandwidth', align: 'center', required: true, width: '180' }, { text: '中频带宽单位', value: 'ifBandwidthUnit', align: 'center', required: true, width: '100' }, { text: '输出功率', value: 'outputPower', align: 'center', required: true, width: '180' }, { text: '输出功率单位', value: 'outputPowerUnit', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '测试次数', value: 'testNumber', align: 'center', required: true, width: '90' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_powerFlatness = ref<TableColumn[]>([ // 输出功率、功率平坦度 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '输入功率', value: 'inputPower', align: 'center', required: true, width: '180' }, { text: '输入功率单位', value: 'inputPowerUnit', align: 'center', required: true, width: '100' }, { text: '测试次数', value: 'testNumber', align: 'center', required: true, width: '90' }, { text: '输出功率U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, { text: '输出功率平坦度U(k=2)', value: 'flatnessUrel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_spuriousSuppression = ref<TableColumn[]>([ // 杂散抑制 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '基波频率', value: 'fundamentalFrequency', align: 'center', required: true, width: '180' }, { text: '基波频率单位', value: 'fundamentalFrequencyUnit', align: 'center', required: true, width: '100' }, { text: '参考电平', value: 'spectrumLevel', align: 'center', required: true, width: '180' }, { text: '参考电平单位', value: 'spectrumLevelUnit', align: 'center', required: true, width: '100' }, { text: '中频频率', value: 'intermediateFrequency', align: 'center', required: true, width: '180' }, { text: '中频频率单位', value: 'intermediateFrequencyUnit', align: 'center', required: true, width: '100' }, { text: '跨度(SPAN)', value: 'span', align: 'center', required: true, width: '180' }, { text: '分辨带宽', value: 'resolutionBandwidth', align: 'center', required: true, width: '180' }, { text: '分辨带宽单位', value: 'resolutionBandwidthUnit', align: 'center', required: true, width: '100' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_harmonicDistortion = ref<TableColumn[]>([ // 谐波失真 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '基波频率', value: 'fundamentalFrequency', align: 'center', required: true, width: '180' }, { text: '基波频率单位', value: 'fundamentalFrequencyUnit', align: 'center', required: true, width: '100' }, { text: '基波幅度', value: 'fundamentalAmplitude', align: 'center', required: true, width: '180' }, { text: '基波幅度单位', value: 'fundamentalAmplitudeUnit', align: 'center', required: true, width: '100' }, { text: '输入功率', value: 'inputPower', align: 'center', required: true, width: '180' }, { text: '输入功率单位', value: 'inputPowerUnit', align: 'center', required: true, width: '100' }, { text: '谐波次数', value: 'harmonicNumber', align: 'center', required: true, width: '180' }, { text: 'RBW', value: 'rbwValue', align: 'center', required: true, width: '180' }, { text: 'RBW单位', value: 'rbwValueUnit', align: 'center', required: true, width: '100' }, { text: 'VBW', value: 'vbwValue', align: 'center', required: true, width: '180' }, { text: 'VBW单位', value: 'vbwValueUnit', align: 'center', required: true, width: '100' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_phaseNoise = ref<TableColumn[]>([ // 相位噪声 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '边带频率', value: 'sidebandFrequency', align: 'center', required: true, width: '180' }, { text: '边带频率单位', value: 'sidebandFrequencyUnit', align: 'center', required: true, width: '100' }, { text: '随机噪声修正值', value: 'randomNoiseCorrectValue', align: 'center', required: true, width: '180' }, { text: '随机噪声修正值单位', value: 'randomNoiseCorrectValueUnit', align: 'center', required: true, width: '100' }, { text: '分辨带宽', value: 'resolutionBandwidth', align: 'center', required: true, width: '180' }, { text: '分辨带宽单位', value: 'resolutionBandwidthUnit', align: 'center', required: true, width: '100' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180', reg: validateStr, belongStandardEquipment: '17' }, ]) const columns_vswrNet = ref<TableColumn[]>([ // 电压驻波比--矢量网络分析仪 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: 'VSMR', value: 'vsmr', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '标准值', value: 'standardValue', align: 'center', required: true, width: '180' }, // { text: '标准值单位', value: 'standardValueUnit', align: 'center', required: true, width: '100' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: '220' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, width: '180' }, ]) const columns_transferAmplitude = ref<TableColumn[]>([ // 传输幅度--矢量网络分析仪 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '幅度', value: 'amplitude', align: 'center', required: true, width: '180' }, { text: '幅度单位', value: 'amplitudeUnit', align: 'center', required: true, width: '100' }, { text: '标准值', value: 'standardValue', align: 'center', required: true, width: '180' }, { text: '标准值单位', value: 'standardValueUnit', align: 'center', required: true, width: '100' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: '220' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, width: '180' }, ]) const columns_transferPhaseShift = ref<TableColumn[]>([ // 传输相移--矢量网络分析仪 { text: '检定项目', value: 'params', align: 'center', required: false }, { text: '类型', value: 'typeValue', align: 'center', required: true, width: '100' }, { text: '频率', value: 'frequency', align: 'center', required: true, width: '180' }, { text: '频率单位', value: 'frequencyUnit', align: 'center', required: true, width: '100' }, { text: '标准值', value: 'standardValue', align: 'center', required: true, width: '180' }, { text: '标准值单位', value: 'standardValueUnit', align: 'center', required: true, width: '100' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: true, width: '220' }, { text: 'U(k=2)', value: 'urel', align: 'center', required: false, width: '180' }, ]) // --------------------------------表格操作--------------------------------------------------- // 多选 const handleSelectionChange = (e: any, type: string) => { switch (type) { case '电压驻波比(微波器件)': vswrMicrowaveCheckoutList.value = e break case '插入损耗': insertionLossCheckoutList.value = e break case '隔离度': isolationDegreeCheckoutList.value = e break case '增益、增益平坦度': gainFlatnessCheckoutList.value = e break case '耦合度、方向性': couplingDirectionCheckoutList.value = e break case '幅度一致性': amplitudeConsistencyCheckoutList.value = e break case '相移': phaseShiftCheckoutList.value = e break case '相位一致性': phaseConsistencyCheckoutList.value = e break case '群时延': groupDelayCheckoutList.value = e break case '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)': filterCharacterCheckoutList.value = e break case '1dB压缩点输出功率电平': pointOutputPowerLevelCheckoutList.value = e break case '输出功率、功率平坦度': powerFlatnessCheckoutList.value = e break case '杂散抑制': spuriousSuppressionCheckoutList.value = e break case '谐波失真': harmonicDistortionCheckoutList.value = e break case '相位噪声': phaseNoiseCheckoutList.value = e break case '电压驻波比(矢量网络分析仪)': vswrNetCheckoutList.value = e break case '传输幅度': transferAmplitudeCheckoutList.value = e break case '传输相移': transferPhaseShiftCheckoutList.value = e break } } /** * 增加行公共方法 * @param list 要操作的数组 * @param title 操作的表格 */ const addRow = (list: IList[], title: string) => { if (checkList(list, `${title}表格`)) { if (list.length) { // 增加行时默认上一行数据 list.push({ ...list[list.length - 1], id: `custom-${new Date().getTime()}` }) } else { switch (title) { case '电压驻波比(微波器件)': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '1', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title.slice(0, 5), // 检定项目 typeValue: 'S11', // 类型 displayFormat: 'VSWR', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '插入损耗': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '2', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '对数幅度', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '隔离度': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '3', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '对数幅度', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '增益、增益平坦度': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '4', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '对数幅度', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // 增益U(k=2) flatnessUrel: '', // 增益平坦度U(k=2) }) break case '耦合度、方向性': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '5', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '对数幅度', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // 耦合性U(k=2) flatnessUrel: '', // 方向性U(k=2) }) break case '幅度一致性': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '6', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '对数幅度', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '相移': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '7', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '相位', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '相位一致性': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '8', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '相位', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '群时延': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '9', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '群时延', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '10', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '对数幅度', // 显示格式 ifBandwidth: '100', // 中频带宽 ifBandwidthUnit: 'MHz', // 中频带宽单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 upperFrequency: undefined, // 上边频频率 upperFrequencyUnit: 'MHz', // 上边频频率单位 lowerFrequency: undefined, // 下边频频率 lowerFrequencyUnit: 'MHz', // 下边频频率单位 urel: '', // 3dB带宽U(k=2) flatnessUrel: '', // 60dB带宽U(k=2) maxLossUrel: '', // 阻带最大损耗U(k=2) minLossUrel: '', // 通带最小损耗U(k=2) }) break case '1dB压缩点输出功率电平': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '11', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S21', // 类型 displayFormat: '相位', // 显示格式 ifBandwidth: '1', // 中频带宽 ifBandwidthUnit: 'kHz', // 中频带宽单位 outputPower: undefined, // 输出功率 outputPowerUnit: 'dBm', // 输出功率单位 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 testNumber: '10', // 测试次数 urel: '', // U(k=2) }) break case '输出功率、功率平坦度': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '12', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 inputPower: undefined, // 输入功率 inputPowerUnit: 'dBm', // 输入功率单位 testNumber: '10', // 测试次数 urel: '', // 输出功率U(k=2) flatnessUrel: '', // 输出功率平坦度U(k=2) }) break case '杂散抑制': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '13', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 fundamentalFrequency: undefined, // 基波频率 fundamentalFrequencyUnit: 'kHz', // 基波频率单位 spectrumLevel: undefined, // 参考电平 spectrumLevelUnit: 'dBm', // 参考电平单位 intermediateFrequency: undefined, // 中频频率 intermediateFrequencyUnit: 'kHz', // 中频频率单位 span: undefined, // 跨度 resolutionBandwidth: undefined, // 分辨带宽 resolutionBandwidthUnit: 'MHz', // 分辨带宽单位 urel: '', // 输出功率U(k=2) }) break case '谐波失真': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '14', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 fundamentalFrequency: undefined, // 基波频率 fundamentalFrequencyUnit: 'Hz', // 基波频率单位 fundamentalAmplitude: undefined, // 基波幅度 fundamentalAmplitudeUnit: 'dBm', // 基波幅度单位 inputPower: undefined, // 输入功率 inputPowerUnit: 'dBm', // 输入功率单位 harmonicNumber: '', // 谐波次数 rbwValue: 1, // RBW rbwValueUnit: 'kHz', // RBW单位 vbwValue: 1, // VBW vbwValueUnit: 'kHz', // VBW单位 urel: '', // U(k=2) }) break case '相位噪声': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '15', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 frequency: undefined, // 频率 frequencyUnit: 'kHz', // 频率单位 sidebandFrequency: undefined, // 边带频率 sidebandFrequencyUnit: 'kHz', // 边带频率单位 randomNoiseCorrectValue: undefined, // 随机噪声修正值 randomNoiseCorrectValueUnit: 'dB', // 随机噪声修正值单位 resolutionBandwidth: undefined, // 分辨带宽 resolutionBandwidthUnit: 'kHz', // 分辨带宽单位 urel: '', // U(k=2) }) break case '电压驻波比(矢量网络分析仪)': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '1', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title.slice(0, 5), // 检定项目 typeValue: 'S11', // 类型 vsmr: '1.2', // VSMR frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 standardValue: undefined, // 标准值 technicalIndexSymbol: '±', // 技术指标前符号 technicalIndex: undefined, // 技术指标 urel: undefined, // U(k=2) }) break case '传输幅度': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '2', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S11', // 类型 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 amplitude: '20', // 幅度 amplitudeUnit: 'dB', // 幅度单位 standardValue: '', // 标准值 standardValueUnit: 'dB', // 标准值单位 technicalIndexSymbol: '±', // 技术指标前符号 technicalIndex: undefined, // 技术指标 urel: undefined, // U(k=2) }) break case '传输相移': list.push({ id: `custom-${new Date().getTime()}`, // id,更新/删除使用参数 dataType: '3', // 检定项数据类型(一个检定项中区分两个表格)(字典code) itemId: props.itemId, // 检定项id params: title, // 检定项目 typeValue: 'S11', // 类型 frequency: undefined, // 频率 frequencyUnit: 'MHz', // 频率单位 standardValue: '', // 标准值 standardValueUnit: '°', // 标准值单位 technicalIndexSymbol: '±', // 技术指标前符号 technicalIndex: undefined, // 技术指标 urel: undefined, // U(k=2) }) break } } } } /** * 删除行公共方法 * @param checkoutList 选中的数组 * @param list 操作的数组 */ const delRow = (checkoutList: IList[], list: IList[], title: string) => { if (!checkoutList.length) { ElMessage.warning('请选中要删除的行') } else { let data = [] as any[] data = differenceArray(list, checkoutList) switch (title) { case '电压驻波比(微波器件)': vswrMicrowaveList.value = data break case '插入损耗': insertionLossList.value = data break case '隔离度': isolationDegreeList.value = data break case '增益、增益平坦度': gainFlatnessList.value = data break case '耦合度、方向性': couplingDirectionList.value = data break case '幅度一致性': amplitudeConsistencyList.value = data break case '相移': phaseShiftList.value = data break case '相位一致性': phaseConsistencyList.value = data break case '群时延': groupDelayList.value = data break case '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)': filterCharacterList.value = data break case '1dB压缩点输出功率电平': pointOutputPowerLevelList.value = data break case '输出功率、功率平坦度': powerFlatnessList.value = data break case '杂散抑制': spuriousSuppressionList.value = data break case '谐波失真': harmonicDistortionList.value = data break case '相位噪声': phaseNoiseList.value = data break case '电压驻波比(矢量网络分析仪)': vswrNetList.value = data break case '传输幅度': transferAmplitudeList.value = data break case '传输相移': transferPhaseShiftList.value = data break } } } // ---------------------------------------------校验--------------------------------------------------- // 增加行校验表格 function checkList(list: any, getTitle: string) { let title = '' if (getTitle.slice(getTitle.length - 2) === '表格') { title = getTitle.slice(0, getTitle.length - 2) } else { title = getTitle } let columns switch (title) { case '电压驻波比(微波器件)': columns = columns_vswrMicrowave.value break case '插入损耗': columns = columns_vswrMicrowave.value break case '隔离度': columns = columns_vswrMicrowave.value break case '增益、增益平坦度': columns = columns_gainFlatness.value break case '耦合度、方向性': columns = columns_couplingDirection.value break case '幅度一致性': columns = columns_vswrMicrowave.value break case '相移': columns = columns_vswrMicrowave.value break case '相位一致性': columns = columns_vswrMicrowave.value break case '群时延': columns = columns_vswrMicrowave.value break case '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)': columns = columns_filterCharacter.value break case '1dB压缩点输出功率电平': columns = columns_pointOutputPowerLevel.value break case '输出功率、功率平坦度': columns = columns_powerFlatness.value break case '杂散抑制': columns = columns_spuriousSuppression.value break case '谐波失真': columns = columns_harmonicDistortion.value break case '相位噪声': columns = columns_phaseNoise.value break case '电压驻波比(矢量网络分析仪)': columns = columns_vswrNet.value break case '传输幅度': columns = columns_transferAmplitude.value break case '传输相移': columns = columns_transferPhaseShift.value break } return useCheckList(list, columns, `${title}表格`) } // 保存之前校验 const checkListBeforeSave = () => { if (props.itemCategoryName === '微波器件') { // 验空 if (form.value.vswr && !vswrMicrowaveList.value.length) { ElMessage.warning('电压驻波比 不能为空') return false } if (form.value.insertionLoss && !insertionLossList.value.length) { ElMessage.warning('插入损耗 不能为空') return false } if (form.value.isolationDegree && !isolationDegreeList.value.length) { ElMessage.warning('隔离度 不能为空') return false } if (form.value.gainFlatness && !gainFlatnessList.value.length) { ElMessage.warning('增益、增益平坦度 不能为空') return false } if (form.value.couplingDirection && !couplingDirectionList.value.length) { ElMessage.warning('耦合度、方向性 不能为空') return false } if (form.value.amplitudeConsistency && !amplitudeConsistencyList.value.length) { ElMessage.warning('幅度一致性 不能为空') return false } if (form.value.phaseShift && !phaseShiftList.value.length) { ElMessage.warning('相移 不能为空') return false } if (form.value.phaseConsistency && !phaseConsistencyList.value.length) { ElMessage.warning('相位一致性 不能为空') return false } if (form.value.groupDelay && !groupDelayList.value.length) { ElMessage.warning('群时延 不能为空') return false } if (form.value.filterCharacter && !filterCharacterList.value.length) { ElMessage.warning('滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) 不能为空') return false } if (form.value.pointOutputPowerLevel && !pointOutputPowerLevelList.value.length) { ElMessage.warning('1dB压缩点输出功率电平 不能为空') return false } if (form.value.powerFlatness && !powerFlatnessList.value.length) { ElMessage.warning('输出功率、功率平坦度 不能为空') return false } if (form.value.spuriousSuppression && !spuriousSuppressionList.value.length) { ElMessage.warning('杂散抑制 不能为空') return false } if (form.value.harmonicDistortion && !harmonicDistortionList.value.length) { ElMessage.warning('谐波失真 不能为空') return false } if (form.value.phaseNoise && !phaseNoiseList.value.length) { ElMessage.warning('相位噪声 不能为空') return false } } else if (props.itemCategoryName === '矢量网络分析仪') { // 验空 if (form.value.vswr && !vswrNetList.value.length) { ElMessage.warning('电压驻波比 不能为空') return false } if (form.value.transferAmplitude && !transferAmplitudeList.value.length) { ElMessage.warning('传输幅度 不能为空') return false } if (form.value.transferPhaseShift && !transferPhaseShiftList.value.length) { ElMessage.warning('传输相移 不能为空') return false } } // 验数据 let vswrResult = true // 电压驻波比 let insertionLossResult = true // 插入损耗 let isolationDegreeResult = true // 隔离度 let gainFlatnessResult = true // 增益、增益平坦度 let couplingDirectionResult = true // 耦合度、方向性 let amplitudeConsistencyResult = true // 幅度一致性 const phaseShiftResult = true // 相移 let phaseConsistencyResult = true // 相位一致性 let groupDelayResult = true // 群时延 let filterCharacterResult = true // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) let pointOutputPowerLevelResult = true // 1dB压缩点输出功率电平 let powerFlatnessResult = true // 输出功率、功率平坦度 let spuriousSuppressionResult = true // 杂散抑制 let harmonicDistortionResult = true // 谐波失真 let phaseNoiseResult = true // 相位噪声 let vswrResultNet = true // 电压驻波比 let transferAmplitudeResult = true // 传输幅度 let transferPhaseShiftResult = true // 传输相移 if (props.itemCategoryName === '微波器件') { // 验空 if (form.value.vswr) { vswrResult = checkList(vswrMicrowaveList.value, '电压驻波比(微波器件)') } if (form.value.insertionLoss) { insertionLossResult = checkList(insertionLossList.value, '插入损耗') } if (form.value.isolationDegree) { isolationDegreeResult = checkList(isolationDegreeList.value, '隔离度') } if (form.value.gainFlatness) { gainFlatnessResult = checkList(gainFlatnessList.value, '增益、增益平坦度') } if (form.value.couplingDirection) { couplingDirectionResult = checkList(couplingDirectionList.value, '耦合度、方向性') } if (form.value.amplitudeConsistency) { amplitudeConsistencyResult = checkList(amplitudeConsistencyList.value, '幅度一致性') } if (form.value.phaseShift && !phaseShiftList.value.length) { amplitudeConsistencyResult = checkList(amplitudeConsistencyList.value, '相移') } if (form.value.phaseConsistency) { phaseConsistencyResult = checkList(phaseConsistencyList.value, '相位一致性') } if (form.value.groupDelay) { groupDelayResult = checkList(groupDelayList.value, '群时延') } if (form.value.filterCharacter) { filterCharacterResult = checkList(filterCharacterList.value, '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)') } if (form.value.pointOutputPowerLevel) { pointOutputPowerLevelResult = checkList(pointOutputPowerLevelList.value, '1dB压缩点输出功率电平') } if (form.value.powerFlatness) { powerFlatnessResult = checkList(powerFlatnessList.value, '输出功率、功率平坦度') } if (form.value.spuriousSuppression) { spuriousSuppressionResult = checkList(spuriousSuppressionList.value, '杂散抑制') } if (form.value.harmonicDistortion) { harmonicDistortionResult = checkList(harmonicDistortionList.value, '谐波失真') } if (form.value.phaseNoise) { phaseNoiseResult = checkList(phaseNoiseList.value, '相位噪声') } if (vswrResult && insertionLossResult && isolationDegreeResult && gainFlatnessResult && couplingDirectionResult && amplitudeConsistencyResult && phaseShiftResult && phaseConsistencyResult && groupDelayResult && filterCharacterResult && pointOutputPowerLevelResult && powerFlatnessResult && spuriousSuppressionResult && harmonicDistortionResult && phaseNoiseResult ) { return true } else { return false } } else if (props.itemCategoryName === '矢量网络分析仪') { // 验空 if (form.value.vswr) { vswrResultNet = checkList(vswrNetList.value, '电压驻波比(矢量网络分析仪)') } if (form.value.transferAmplitude) { transferAmplitudeResult = checkList(transferAmplitudeList.value, '传输幅度') } if (form.value.transferPhaseShift && !transferPhaseShiftList.value.length) { transferPhaseShiftResult = checkList(transferPhaseShiftList.value, '传输相移') } if (vswrResultNet && transferAmplitudeResult && transferPhaseShiftResult) { return true } else { return false } } } // 保存之前处理数据 const solveDataBeforeSave = () => { // 数据处理 let tempList = [] as any if (props.itemCategoryName === '微波器件') { if (form.value.vswr) { // 电压驻波比 tempList = tempList.concat(vswrMicrowaveList.value) } if (form.value.insertionLoss) { // 插入损耗 tempList = tempList.concat(insertionLossList.value) } if (form.value.isolationDegree) { // 隔离度 tempList = tempList.concat(isolationDegreeList.value) } if (form.value.gainFlatness) { // 增益、增益平坦度 gainFlatnessList.value = gainFlatnessList.value.map((item) => { return { ...item, flatnessUrel: gainFlatnessList.value[0].flatnessUrel, } }) tempList = tempList.concat(gainFlatnessList.value) } if (form.value.couplingDirection) { // 耦合度、方向性 tempList = tempList.concat(couplingDirectionList.value) } if (form.value.amplitudeConsistency) { // 幅度一致性 tempList = tempList.concat(amplitudeConsistencyList.value) } if (form.value.phaseShift) { // 相移 tempList = tempList.concat(phaseShiftList.value) } if (form.value.phaseConsistency) { // 相位一致性 tempList = tempList.concat(phaseConsistencyList.value) } if (form.value.groupDelay) { // 群时延 tempList = tempList.concat(groupDelayList.value) } if (form.value.filterCharacter) { // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) tempList = tempList.concat(filterCharacterList.value) } if (form.value.pointOutputPowerLevel) { // 1dB压缩点输出功率电平 tempList = tempList.concat(pointOutputPowerLevelList.value) } if (form.value.powerFlatness) { // 输出功率、功率平坦度 tempList = tempList.concat(powerFlatnessList.value) } if (form.value.spuriousSuppression) { // 杂散抑制 tempList = tempList.concat(spuriousSuppressionList.value) } if (form.value.harmonicDistortion) { // 谐波失真 tempList = tempList.concat(harmonicDistortionList.value) } if (form.value.phaseNoise) { // 相位噪声 tempList = tempList.concat(phaseNoiseList.value) } } else if (props.itemCategoryName === '矢量网络分析仪') { if (form.value.vswr) { // 电压驻波比 tempList = tempList.concat(vswrNetList.value) } if (form.value.transferAmplitude) { // 传输幅度 tempList = tempList.concat(transferAmplitudeList.value) } if (form.value.transferPhaseShift) { // 传输相移 tempList = tempList.concat(transferPhaseShiftList.value) } } tempList = tempList.map((item: { id: string }) => { return { ...item, id: '', } }) return tempList } // ------------------------------------------------------------------------------------------------ watch(() => props.list, (newVal) => { // 检定项表格 if (newVal && newVal.length) { if (props.itemCategoryName === '微波器件') { vswrMicrowaveList.value = newVal.filter((item: any) => `${item.dataType}` === '1').map((item: any) => { item.params = '电压驻波比'; return item }) insertionLossList.value = newVal.filter((item: any) => `${item.dataType}` === '2').map((item: any) => { item.params = '插入损耗'; return item }) isolationDegreeList.value = newVal.filter((item: any) => `${item.dataType}` === '3').map((item: any) => { item.params = '隔离度'; return item }) gainFlatnessList.value = newVal.filter((item: any) => `${item.dataType}` === '4').map((item: any) => { item.params = '增益、增益平坦度'; return item }) couplingDirectionList.value = newVal.filter((item: any) => `${item.dataType}` === '5').map((item: any) => { item.params = '耦合度、方向性'; return item }) amplitudeConsistencyList.value = newVal.filter((item: any) => `${item.dataType}` === '6').map((item: any) => { item.params = '幅度一致性'; return item }) phaseShiftList.value = newVal.filter((item: any) => `${item.dataType}` === '7').map((item: any) => { item.params = '相移'; return item }) phaseConsistencyList.value = newVal.filter((item: any) => `${item.dataType}` === '8').map((item: any) => { item.params = '相位一致性'; return item }) groupDelayList.value = newVal.filter((item: any) => `${item.dataType}` === '9').map((item: any) => { item.params = '群时延'; return item }) filterCharacterList.value = newVal.filter((item: any) => `${item.dataType}` === '10').map((item: any) => { item.params = '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)'; return item }) pointOutputPowerLevelList.value = newVal.filter((item: any) => `${item.dataType}` === '11').map((item: any) => { item.params = '1dB压缩点输出功率电平'; return item }) powerFlatnessList.value = newVal.filter((item: any) => `${item.dataType}` === '12').map((item: any) => { item.params = '输出功率、功率平坦度'; return item }) spuriousSuppressionList.value = newVal.filter((item: any) => `${item.dataType}` === '13').map((item: any) => { item.params = '杂散抑制'; return item }) harmonicDistortionList.value = newVal.filter((item: any) => `${item.dataType}` === '14').map((item: any) => { item.params = '谐波失真'; return item }) phaseNoiseList.value = newVal.filter((item: any) => `${item.dataType}` === '15').map((item: any) => { item.params = '相位噪声'; return item }) } else if (props.itemCategoryName === '矢量网络分析仪') { vswrNetList.value = newVal.filter((item: any) => `${item.dataType}` === '1').map((item: any) => { item.params = '电压驻波比'; return item }) transferAmplitudeList.value = newVal.filter((item: any) => `${item.dataType}` === '2').map((item: any) => { item.params = '传输幅度'; return item }) transferPhaseShiftList.value = newVal.filter((item: any) => `${item.dataType}` === '3').map((item: any) => { item.params = '传输相移'; return item }) } } }) const $route = useRoute() watch(() => props.form, (newValue) => { const updataOld = $route.query.updataOld as string const isFirstConfig = $route.query.isFirstConfig as string console.log('====5555======', isFirstConfig) if (newValue && Object.keys(newValue).length && updataOld !== 'true' && isFirstConfig !== 'true') { form.value.appearanceFunctionCheck = `${newValue.appearanceFunctionCheck}` === '' ? 1 : newValue.appearanceFunctionCheck // 外观及功能性检查 form.value.vswr = `${newValue.vswr}` === '' ? 1 : newValue.vswr // 电压驻波比 form.value.insertionLoss = `${newValue.insertionLoss}` === '' ? 1 : newValue.insertionLoss // 插入损耗 form.value.isolationDegree = `${newValue.isolationDegree}` === '' ? 1 : newValue.isolationDegree // 隔离度 form.value.gainFlatness = `${newValue.gainFlatness}` === '' ? 1 : newValue.gainFlatness // 增益、增益平坦度 form.value.couplingDirection = `${newValue.couplingDirection}` === '' ? 1 : newValue.couplingDirection // 耦合度、方向性 form.value.amplitudeConsistency = `${newValue.amplitudeConsistency}` === '' ? 1 : newValue.amplitudeConsistency // 幅度一致性 form.value.phaseShift = `${newValue.phaseShift}` === '' ? 1 : newValue.phaseShift // 相移 form.value.phaseConsistency = `${newValue.phaseConsistency}` === '' ? 1 : newValue.phaseConsistency // 相位一致性 form.value.groupDelay = `${newValue.groupDelay}` === '' ? 1 : newValue.groupDelay // 群时延 form.value.filterCharacter = `${newValue.filterCharacter}` === '' ? 1 : newValue.filterCharacter // 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) form.value.pointOutputPowerLevel = `${newValue.pointOutputPowerLevel}` === '' ? 1 : newValue.pointOutputPowerLevel // 1dB压缩点输出功率电平 form.value.powerFlatness = `${newValue.powerFlatness}` === '' ? 1 : newValue.powerFlatness // 输出功率、功率平坦度 form.value.spuriousSuppression = `${newValue.spuriousSuppression}` === '' ? 1 : newValue.spuriousSuppression // 杂散抑制 form.value.harmonicDistortion = `${newValue.harmonicDistortion}` === '' ? 1 : newValue.harmonicDistortion // 谐波失真 form.value.phaseNoise = `${newValue.phaseNoise}` === '' ? 1 : newValue.phaseNoise // 相位噪声 form.value.transferAmplitude = `${newValue.transferAmplitude}` === '' ? 1 : newValue.transferAmplitude // 传输幅度 } }, { deep: true, immediate: true }) defineExpose({ checkListBeforeSave, solveDataBeforeSave, form }) </script> <template> <div style="padding: 0 10px;"> <el-checkbox v-model="form.appearanceFunctionCheck" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 外观及功能性检查 </el-checkbox> </div> <!-- 电压驻波比(微波器件) --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.vswr" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 电压驻波比 </el-checkbox> <div v-if="pageType !== 'detail' && form.vswr" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(vswrMicrowaveList, '电压驻波比(微波器件)')"> 增加行 </el-button> <el-button type="info" @click="delRow(vswrMicrowaveCheckoutList, vswrMicrowaveList, '电压驻波比(微波器件)')"> 删除行 </el-button> </div> </div> <template-table v-if="form.vswr" type="电压驻波比(微波器件)" :data="vswrMicrowaveList" :columns="columns_vswrMicrowave" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '电压驻波比(微波器件)')" /> </detail-block> <!-- 插入损耗 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.insertionLoss" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 插入损耗 </el-checkbox> <div v-if="pageType !== 'detail' && form.insertionLoss" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(insertionLossList, '插入损耗')"> 增加行 </el-button> <el-button type="info" @click="delRow(insertionLossCheckoutList, insertionLossList, '插入损耗')"> 删除行 </el-button> </div> </div> <template-table v-if="form.insertionLoss" type="插入损耗" :data="insertionLossList" :columns="columns_vswrMicrowave" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '插入损耗')" /> </detail-block> <!-- 隔离度 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.isolationDegree" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 隔离度 </el-checkbox> <div v-if="pageType !== 'detail' && form.isolationDegree" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(isolationDegreeList, '隔离度')"> 增加行 </el-button> <el-button type="info" @click="delRow(isolationDegreeCheckoutList, isolationDegreeList, '隔离度')"> 删除行 </el-button> </div> </div> <template-table v-if="form.isolationDegree" type="隔离度" :data="isolationDegreeList" :columns="columns_vswrMicrowave" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '隔离度')" /> </detail-block> <!-- 增益、增益平坦度 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.gainFlatness" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 增益、增益平坦度 </el-checkbox> <div v-if="pageType !== 'detail' && form.gainFlatness" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(gainFlatnessList, '增益、增益平坦度')"> 增加行 </el-button> <el-button type="info" @click="delRow(gainFlatnessCheckoutList, gainFlatnessList, '增益、增益平坦度')"> 删除行 </el-button> </div> </div> <template-table v-if="form.gainFlatness" type="增益、增益平坦度" :data="gainFlatnessList" :columns="columns_gainFlatness" :page-type="pageType" :need-merge-cells="['flatnessUrel']" @selection-change="(e: any) => handleSelectionChange(e, '增益、增益平坦度')" /> </detail-block> <!-- 耦合度、方向性 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.couplingDirection" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 耦合度、方向性 </el-checkbox> <div v-if="pageType !== 'detail' && form.couplingDirection" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(couplingDirectionList, '耦合度、方向性')"> 增加行 </el-button> <el-button type="info" @click="delRow(couplingDirectionCheckoutList, couplingDirectionList, '耦合度、方向性')"> 删除行 </el-button> </div> </div> <template-table v-if="form.couplingDirection" type="耦合度、方向性" :data="couplingDirectionList" :columns="columns_couplingDirection" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '耦合度、方向性')" /> </detail-block> <!-- 幅度一致性 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.amplitudeConsistency" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 幅度一致性 </el-checkbox> <div v-if="pageType !== 'detail' && form.amplitudeConsistency" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(amplitudeConsistencyList, '幅度一致性')"> 增加行 </el-button> <el-button type="info" @click="delRow(amplitudeConsistencyCheckoutList, amplitudeConsistencyList, '幅度一致性')"> 删除行 </el-button> </div> </div> <template-table v-if="form.amplitudeConsistency" type="幅度一致性" :data="amplitudeConsistencyList" :columns="columns_gainFlatness" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '幅度一致性')" /> </detail-block> <!-- 相移 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.phaseShift" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 相移 </el-checkbox> <div v-if="pageType !== 'detail' && form.phaseShift" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(phaseShiftList, '相移')"> 增加行 </el-button> <el-button type="info" @click="delRow(phaseShiftCheckoutList, phaseShiftList, '相移')"> 删除行 </el-button> </div> </div> <template-table v-if="form.phaseShift" type="相移" :data="phaseShiftList" :columns="columns_vswrMicrowave" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '相移')" /> </detail-block> <!-- 相位一致性 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.phaseConsistency" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 相位一致性 </el-checkbox> <div v-if="pageType !== 'detail' && form.phaseConsistency" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(phaseConsistencyList, '相位一致性')"> 增加行 </el-button> <el-button type="info" @click="delRow(phaseConsistencyCheckoutList, phaseConsistencyList, '相位一致性')"> 删除行 </el-button> </div> </div> <template-table v-if="form.phaseConsistency" type="相位一致性" :data="phaseConsistencyList" :columns="columns_vswrMicrowave" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '相位一致性')" /> </detail-block> <!-- 群时延 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.groupDelay" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 群时延 </el-checkbox> <div v-if="pageType !== 'detail' && form.groupDelay" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(groupDelayList, '群时延')"> 增加行 </el-button> <el-button type="info" @click="delRow(groupDelayCheckoutList, groupDelayList, '群时延')"> 删除行 </el-button> </div> </div> <template-table v-if="form.groupDelay" type="群时延" :data="groupDelayList" :columns="columns_vswrMicrowave" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '群时延')" /> </detail-block> <!-- 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.filterCharacter" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数) </el-checkbox> <div v-if="pageType !== 'detail' && form.filterCharacter" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(filterCharacterList, '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)')"> 增加行 </el-button> <el-button type="info" @click="delRow(filterCharacterCheckoutList, filterCharacterList, '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)')"> 删除行 </el-button> </div> </div> <template-table v-if="form.filterCharacter" type="滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)" :data="filterCharacterList" :columns="columns_filterCharacter" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '滤波器特性(3dB截止频率、通带宽度、通带频响、通带插损、阻带衰减及矩形系数)')" /> </detail-block> <!-- 1dB压缩点输出功率电平 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.pointOutputPowerLevel" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 1dB压缩点输出功率电平 </el-checkbox> <div v-if="pageType !== 'detail' && form.pointOutputPowerLevel" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(pointOutputPowerLevelList, '1dB压缩点输出功率电平')"> 增加行 </el-button> <el-button type="info" @click="delRow(pointOutputPowerLevelCheckoutList, pointOutputPowerLevelList, '1dB压缩点输出功率电平')"> 删除行 </el-button> </div> </div> <template-table v-if="form.pointOutputPowerLevel" type="1dB压缩点输出功率电平" :data="pointOutputPowerLevelList" :columns="columns_pointOutputPowerLevel" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '1dB压缩点输出功率电平')" /> </detail-block> <!-- 输出功率、功率平坦度 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.powerFlatness" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 输出功率、功率平坦度 </el-checkbox> <div v-if="pageType !== 'detail' && form.powerFlatness" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(powerFlatnessList, '输出功率、功率平坦度')"> 增加行 </el-button> <el-button type="info" @click="delRow(powerFlatnessCheckoutList, powerFlatnessList, '输出功率、功率平坦度')"> 删除行 </el-button> </div> </div> <template-table v-if="form.powerFlatness" type="输出功率、功率平坦度" :data="powerFlatnessList" :columns="columns_powerFlatness" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '输出功率、功率平坦度')" /> </detail-block> <!-- 杂散抑制 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.spuriousSuppression" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 杂散抑制 </el-checkbox> <div v-if="pageType !== 'detail' && form.spuriousSuppression" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(spuriousSuppressionList, '杂散抑制')"> 增加行 </el-button> <el-button type="info" @click="delRow(spuriousSuppressionCheckoutList, spuriousSuppressionList, '杂散抑制')"> 删除行 </el-button> </div> </div> <template-table v-if="form.spuriousSuppression" type="杂散抑制" :data="spuriousSuppressionList" :columns="columns_spuriousSuppression" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '杂散抑制')" /> </detail-block> <!-- 谐波失真 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.harmonicDistortion" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 谐波失真 </el-checkbox> <div v-if="pageType !== 'detail' && form.harmonicDistortion" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(harmonicDistortionList, '谐波失真')"> 增加行 </el-button> <el-button type="info" @click="delRow(harmonicDistortionCheckoutList, harmonicDistortionList, '谐波失真')"> 删除行 </el-button> </div> </div> <template-table v-if="form.harmonicDistortion" type="谐波失真" :data="harmonicDistortionList" :columns="columns_harmonicDistortion" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '谐波失真')" /> </detail-block> <!-- 相位噪声 --> <detail-block v-if="props.itemCategoryName === '微波器件'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.phaseNoise" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 相位噪声 </el-checkbox> <div v-if="pageType !== 'detail' && form.phaseNoise" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(phaseNoiseList, '相位噪声')"> 增加行 </el-button> <el-button type="info" @click="delRow(phaseNoiseCheckoutList, phaseNoiseList, '相位噪声')"> 删除行 </el-button> </div> </div> <template-table v-if="form.phaseNoise" type="相位噪声" :data="phaseNoiseList" :columns="columns_phaseNoise" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '相位噪声')" /> </detail-block> <!-- 电压驻波比(矢量网络分析仪) --> <detail-block v-if="props.itemCategoryName === '矢量网络分析仪'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.vswr" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 电压驻波比(矢量网络分析仪) </el-checkbox> <div v-if="pageType !== 'detail' && form.vswr" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(vswrNetList, '电压驻波比(矢量网络分析仪)')"> 增加行 </el-button> <el-button type="info" @click="delRow(vswrNetCheckoutList, vswrNetList, '电压驻波比(矢量网络分析仪)')"> 删除行 </el-button> </div> </div> <template-table v-if="form.vswr" type="电压驻波比(矢量网络分析仪)" :data="vswrNetList" :columns="columns_vswrNet" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '电压驻波比(矢量网络分析仪)')" /> </detail-block> <!-- 传输幅度 --> <detail-block v-if="props.itemCategoryName === '矢量网络分析仪'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.transferAmplitude" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 传输幅度 </el-checkbox> <div v-if="pageType !== 'detail' && form.transferAmplitude" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(transferAmplitudeList, '传输幅度')"> 增加行 </el-button> <el-button type="info" @click="delRow(transferAmplitudeCheckoutList, transferAmplitudeList, '传输幅度')"> 删除行 </el-button> </div> </div> <template-table v-if="form.transferAmplitude" type="传输幅度" :data="transferAmplitudeList" :columns="columns_transferAmplitude" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '传输幅度')" /> </detail-block> <!-- 传输相移 --> <detail-block v-if="props.itemCategoryName === '矢量网络分析仪'" title=""> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="form.transferPhaseShift" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 传输相移 </el-checkbox> <div v-if="pageType !== 'detail' && form.transferPhaseShift" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(transferPhaseShiftList, '传输相移')"> 增加行 </el-button> <el-button type="info" @click="delRow(transferPhaseShiftCheckoutList, transferPhaseShiftList, '传输相移')"> 删除行 </el-button> </div> </div> <template-table v-if="form.transferPhaseShift" type="传输相移" :data="transferPhaseShiftList" :columns="columns_transferPhaseShift" :page-type="pageType" @selection-change="(e: any) => handleSelectionChange(e, '传输相移')" /> </detail-block> </template>