<!-- 标准装置台账信息详情 配置核查项 第10套:信号发生器 --> <script name="StandardBookEquipmentConfig" lang="ts" setup> import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import type { IList } from './tenth-interface' import TemplateTable from './templateTable.vue' import type { dictType } from '@/global' import { useCheckList } from '@/commonMethods/useCheckList' import type { TableColumn } from '@/components/NormalTable/table_interface' import { config, getCheckItemDetail } from '@/api/equipment/standard/book' import { calc } from '@/utils/useCalc' import { getDictByCode } from '@/api/system/dict' const textMap: { [key: string]: string } = { edit: '编辑', detail: '详情', }// 页面类型字典 const form = ref({ // 表单 equipmentNo: '', // 统一编号 equipmentName: '', // 设备名称 model: '', // 型号规格 manufactureNo: '', // 出厂编号 measureRange: '', // 测量范围 uncertainty: '', // 不确定度或允许误差极限或准确度等级 itemCategoryName: '', // 核查项分类名称 itemCategoryId: '', // 核查项分类id remark: '', // 核查项备注 belongStandardEquipment: '', // 检校标准装置 belongStandardEquipmentName: '', // 检校标准装置名称 }) const pageType = ref('detail') // 页面类型: add, edit, detail const infoId = ref('') // id const $router = useRouter() // 路由实例 const loading = ref(false) // loading const equipmentId = ref('') // 设备id // -----------------------------------路由参数------------------------------------------------------ // 从路由中获取页面类型参数 const $route = useRoute() if ($route.params && $route.params.type) { pageType.value = $route.params.type as string if ($route.params.id) { infoId.value = $route.params.id as string } console.log('pageType.value', pageType.value) } // -------------------------------------------核查项----------------------------------------------- const listFrequency = ref<IList[]>([]) // 频率 const listPowerLevel = ref<IList[]>([]) // 功率 const listRelativeLevel = ref<IList[]>([]) // 相对电平 const listAMDepth = ref<IList[]>([]) // 调幅度 const listFrequencyModulationDeviation = ref<IList[]>([]) // 调频频偏 const listPhase = ref<IList[]>([]) // 调相相偏 const listFrequencySpectrum = ref<IList[]>([]) // 谐波 const checkoutFrequencyList = ref<IList[]>([]) // 频率多选 const checkoutPowerLevelList = ref<IList[]>([]) // 功率多选 const checkoutRelativeLevelList = ref<IList[]>([]) // 相对电平多选 const checkoutAMDepthList = ref<IList[]>([]) // 调幅度多选 const checkoutfrequencyModulationDeviationList = ref<IList[]>([]) // 调频频偏多选 const checkoutPhaseList = ref<IList[]>([]) // 调相相偏多选 const checkoutFrequencySpectrumList = ref<IList[]>([]) // 谐波多选 const frequency = ref(true) // 是否显示频率 const powerLevel = ref(true) // 功率 const relativeLevel = ref(true) // 相对电平 const AMDepth = ref(true) // 调幅度 const frequencyModulationDeviation = ref(true) // 调频频偏 const phase = ref(true) // 调相相偏 const frequencySpectrum = ref(true) // 谐波 const columns_frequency = ref<TableColumn[]>([ // 频率 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', 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: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180' }, ]) const columns_powerLevel = ref<TableColumn[]>([ // 功率 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', align: 'center', required: true, width: '100' }, { text: '功率', value: 'power', align: 'center', required: true, width: '180' }, { text: '功率单位', value: 'powerUnit', align: 'center', required: true, width: '100' }, { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180' }, ]) const columns_relativeLevel = ref<TableColumn[]>([ // 相对电平 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', align: 'center', required: true, width: '100' }, { text: '相对电平', value: 'relativeLevel', align: 'center', required: true, width: '180' }, { text: '相对电平单位', value: 'relativeLevelUnit', align: 'center', required: true, width: '100' }, { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180' }, ]) const columns_AMDepth = ref<TableColumn[]>([ // 调幅度 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', align: 'center', required: true, width: '100' }, { text: '调幅度', value: 'modulation', align: 'center', required: true, width: '180' }, { text: '幅度', value: 'amplitude', align: 'center', required: true, width: '180' }, { text: '幅度单位', value: 'amplitudeUnit', align: 'center', required: true, width: '100' }, { text: '高通滤波', value: 'highPassFilter', align: 'center', required: true, width: '180' }, { text: '高通滤波单位', value: 'highPassFilterUnit', align: 'center', required: true, width: '100' }, { text: '低通滤波', value: 'lowerPassFilter', align: 'center', required: true, width: '180' }, { text: '低通滤波单位', value: 'lowerPassFilterUnit', align: 'center', required: true, width: '100' }, { text: '调制速率', value: 'modulationRate', align: 'center', required: true, width: '180' }, { text: '调制速率单位', value: 'modulationRateUnit', align: 'center', required: true, width: '100' }, { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)/%', value: 'urel', align: 'center', required: true, width: '180' }, ]) const columns_frequencyModulationDeviation = ref<TableColumn[]>([ // 调频频偏 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', align: 'center', required: true, width: '100' }, { text: '调频频偏', value: 'frequencyDeviation', align: 'center', required: true }, { text: '调频频偏单位', value: 'frequencyDeviationUnit', align: 'center', required: true }, { text: '幅度', value: 'amplitude', align: 'center', required: true, width: '180' }, { text: '幅度单位', value: 'amplitudeUnit', align: 'center', required: true, width: '100' }, { text: '高通滤波', value: 'highPassFilter', align: 'center', required: true, width: '180' }, { text: '高通滤波单位', value: 'highPassFilterUnit', align: 'center', required: true, width: '100' }, { text: '低通滤波', value: 'lowerPassFilter', align: 'center', required: true, width: '180' }, { text: '低通滤波单位', value: 'lowerPassFilterUnit', align: 'center', required: true, width: '100' }, { text: '调制速率', value: 'modulationRate', align: 'center', required: true, width: '180' }, { text: '调制速率单位', value: 'modulationRateUnit', align: 'center', required: true, width: '100' }, { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)/%', value: 'urel', align: 'center', required: true, width: '180' }, ]) const columns_phase = ref<TableColumn[]>([ // 调相相偏 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', align: 'center', required: true, width: '100' }, { text: '调相相偏', value: 'phaseDeviation', align: 'center', required: true }, { text: '调相相偏单位', value: 'phaseDeviationUnit', align: 'center', required: true }, { text: '幅度', value: 'amplitude', align: 'center', required: true, width: '180' }, { text: '幅度单位', value: 'amplitudeUnit', align: 'center', required: true, width: '100' }, { text: '高通滤波', value: 'highPassFilter', align: 'center', required: true, width: '180' }, { text: '高通滤波单位', value: 'highPassFilterUnit', align: 'center', required: true, width: '100' }, { text: '低通滤波', value: 'lowerPassFilter', align: 'center', required: true, width: '180' }, { text: '低通滤波单位', value: 'lowerPassFilterUnit', align: 'center', required: true, width: '100' }, { text: '调制速率', value: 'modulationRate', align: 'center', required: true, width: '180' }, { text: '调制速率单位', value: 'modulationRateUnit', align: 'center', required: true, width: '100' }, { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)/%', value: 'urel', align: 'center', required: true, width: '180' }, ]) const columns_frequencySpectrum = ref<TableColumn[]>([ // 谐波 { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '频率点', value: 'checkPoint', align: 'center', required: true, width: '180' }, { text: '频率点单位', value: 'unit', 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: '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: '循环次数', value: 'cycleNumber', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, { text: 'U(k=2)', value: 'urel', align: 'center', required: true, width: '180' }, ]) // 多选 const handleSelectionChange = (e: any, type: string) => { switch (type) { case '频率': checkoutFrequencyList.value = e break case '功率': checkoutPowerLevelList.value = e break case '相对电平': checkoutRelativeLevelList.value = e break case '调幅度': checkoutAMDepthList.value = e break case '调频频偏': checkoutfrequencyModulationDeviationList.value = e break case '调相相偏': checkoutPhaseList.value = e break case '谐波': checkoutFrequencySpectrumList.value = e break } } // 校验表格(点击保存的时候、增加行用) const 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_frequency.value break case '功率': columns = columns_powerLevel.value break case '相对电平': columns = columns_relativeLevel.value break case '调幅度': columns = columns_AMDepth.value break case '调频频偏': columns = columns_frequencyModulationDeviation.value break case '调相相偏': columns = columns_phase.value break case '谐波': columns = columns_frequencySpectrum.value break } return useCheckList(list, columns, `${title}表格`) } /** * 增加行公共方法 * @param list 要操作的数组 * @param title 操作的表格 */ const addRow = (list: IList[], title: string) => { if (checkList(list, `${title}表格`)) { if (list.length) { // 增加行时默认上一行数据 list.push({ ...list[list.length - 1] }) } else { switch (title) { case '频率': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 amplitude: '', // 幅度 amplitudeUnit: 'dBm', // 幅度单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // U(k=2) }) break case '功率': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 power: '', // 功率 powerUnit: 'dBm', // 功率单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // U(k=2) }) break case '相对电平': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 relativeLevel: '', // 相对电平 relativeLevelUnit: 'dBm', // 相对电平单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // U(k=2) }) break case '调幅度': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 modulation: '', // 调幅度 amplitude: '', // 幅度 amplitudeUnit: 'dBm', // 幅度单位 highPassFilter: '50', // 高通滤波 highPassFilterUnit: 'Hz', // 高通滤波单位 lowerPassFilter: '3', // 低通滤波 lowerPassFilterUnit: 'kHz', // 低通滤波单位 modulationRate: '', // 调制速率 modulationRateUnit: 'Hz', // 调制速率单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // U(k=2) }) break case '调频频偏': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 frequencyDeviation: '', // 调频频偏 frequencyDeviationUnit: 'MHz', // 调频频偏单位 amplitude: '', // 幅度 amplitudeUnit: 'dBm', // 幅度单位 highPassFilter: '50', // 高通滤波 highPassFilterUnit: 'Hz', // 高通滤波单位 lowerPassFilter: '3', // 低通滤波 lowerPassFilterUnit: 'kHz', // 低通滤波单位 modulationRate: '', // 调制速率 modulationRateUnit: 'Hz', // 调制速率单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // U(k=2) }) break case '调相相偏': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 phaseDeviation: '', // 调相相偏 phaseDeviationUnit: 'rad', // 调相相偏单位 amplitude: '', // 幅度 amplitudeUnit: 'dBm', // 幅度单位 highPassFilter: '50', // 高通滤波 highPassFilterUnit: 'Hz', // 高通滤波单位 lowerPassFilter: '3', // 低通滤波 lowerPassFilterUnit: 'kHz', // 低通滤波单位 modulationRate: '', // 调制速率 modulationRateUnit: 'Hz', // 调制速率单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // U(k=2) }) break case '谐波': list.push({ equipmentId: infoId.value, // 配套设备id itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) id: '', params: title, // 核查项目 checkPoint: '', // 频率点 unit: 'MHz', // 频率点单位 amplitude: '', // 幅度 amplitudeUnit: 'dBm', // 幅度单位 rbwValue: '1', // RBW rbwValueUnit: 'kHz', // RBW单位 vbwValue: '1', // VBW vbwValueUnit: 'kHz', // VBW单位 cycleNumber: 10, // 循环次数 checkType: '重复性, 稳定性', // 核查类型(直接存字典value,多个逗号分隔) remark: '', // 核查项备注 urel: 0, // 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 '频率': listFrequency.value = data break case '功率': listPowerLevel.value = data break case '相对电平': listRelativeLevel.value = data break case '调幅度': listAMDepth.value = data break case '调频频偏': listFrequencyModulationDeviation.value = data break case '调相相偏': listPhase.value = data break case '谐波': listFrequencySpectrum.value = data break } } } // ---------------------------------------按钮----------------------------------------------------- // 点击关闭 const close = () => { $router.back() } // 清空配置 const clear = () => { ElMessageBox.confirm( '确认清空配置项吗?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', }, ) .then(() => { listFrequency.value = [] // 频率 listPowerLevel.value = [] // 功率 listRelativeLevel.value = [] // 相对电平 listAMDepth.value = [] // 调幅度 listFrequencyModulationDeviation.value = [] // 调频频偏 listPhase.value = [] // 调相相偏 listFrequencySpectrum.value = [] // 谐波 form.value.remark = '' }) } // 保存之前校验 const checkListBeforeSave = () => { console.log('保存之前校验') // 验空 if (frequency.value && !listFrequency.value.length) { // 频率 ElMessage.warning('频率 不能为空') return false } if (powerLevel.value && !listPowerLevel.value.length) { // 功率 ElMessage.warning('功率 不能为空') return false } if (relativeLevel.value && !listRelativeLevel.value.length) { // 相对电平 ElMessage.warning('相对电平 不能为空') return false } if (AMDepth.value && !listAMDepth.value.length) { // 调幅度 ElMessage.warning('调幅度 不能为空') return false } if (frequencyModulationDeviation.value && !listFrequencyModulationDeviation.value.length) { // 调频频偏 ElMessage.warning('调频频偏 不能为空') return false } if (phase.value && !listPhase.value.length) { // 调相相偏 ElMessage.warning('调相相偏 不能为空') return false } if (frequencySpectrum.value && !listFrequencySpectrum.value.length) { // 谐波 ElMessage.warning('谐波 不能为空') return false } if (frequency.value) { frequencyResult = checkList(listFrequency.value, '频率') } if (powerLevel.value) { powerLevelResult = checkList(listPowerLevel.value, '功率') } if (relativeLevel.value) { relativeLevelResult = checkList(listRelativeLevel.value, '相对电平') } if (AMDepth.value) { AMDepthResult = checkList(listAMDepth.value, '调幅度') } if (frequencyModulationDeviation.value) { frequencyModulationDeviationResult = checkList(listFrequencyModulationDeviation.value, '调频频偏') } if (phase.value) { phaseResult = checkList(listPhase.value, '调相相偏') } if (frequencySpectrum.value) { frequencySpectrumResult = checkList(listFrequencySpectrum.value, '谐波') } if (frequencyResult && powerLevelResult && relativeLevelResult && AMDepthResult && frequencyModulationDeviationResult && phaseResult && frequencySpectrumResult) { // return true console.log('checkList校验通过') } else { console.log('checkList校验不通过') return false } // 检查频率点和频率点单位不能同时完全一样 const listFrequencyResult = checkArrayDataUnique(listFrequency.value) const listPowerLevelResult = checkArrayDataUnique(listPowerLevel.value) const listRelativeLevelResult = checkArrayDataUnique(listRelativeLevel.value) const listAMDepthResult = checkArrayDataUnique(listAMDepth.value) const listFrequencyModulationDeviationResult = checkArrayDataUnique(listFrequencyModulationDeviation.value) const listPhaseResult = checkArrayDataUnique(listPhase.value) const listFrequencySpectrumResult = checkArrayDataUnique(listFrequencySpectrum.value) if (listFrequencyResult && listPowerLevelResult && listRelativeLevelResult && listAMDepthResult && listFrequencyModulationDeviationResult && listPhaseResult && listFrequencySpectrumResult ) { return true } else { return false } } // 校验表格中不能同时出现核查项目和核查点、单位两个属性同时相同的两条数据 function checkArrayDataUnique(list: any) { for (let i = 0; i < list.length; i++) { const j = i + 1 for (let j = 0; j < list.length; j++) { if (i !== j && list[i].params === list[j].params && (list[i].checkPoint + list[i].unit) === (list[j].checkPoint + list[j].unit)) { ElMessage.warning(`${list[i].params} 第${i + 1}行第${j + 1}行的 频率点和单位不能同时完全一样`) return false } } } return true } // 保存之前处理数据 const solveDataBeforeSave = () => { // 数据处理 let tempList = [] as any if (frequency.value) { // 频率 tempList = tempList.concat(listFrequency.value) } if (powerLevel.value) { // 功率 tempList = tempList.concat(listPowerLevel.value) } if (relativeLevel.value) { // 相对电平 tempList = tempList.concat(listRelativeLevel.value) } if (AMDepth.value) { // 调幅度 tempList = tempList.concat(listAMDepth.value) } if (frequencyModulationDeviation.value) { // 调频频偏 tempList = tempList.concat(listFrequencyModulationDeviation.value) } if (phase.value) { // 调相相偏 tempList = tempList.concat(listPhase.value) } if (frequencySpectrum.value) { // 谐波 tempList = tempList.concat(listFrequencySpectrum.value) } tempList = tempList.map((item: { id: string }) => { return { ...item, id: '', remark: form.value.remark, } }) return tempList } // 点击保存 const save = () => { if (!checkReferencePoint()) { return false } if (!checkListBeforeSave()) { return false } const list = solveDataBeforeSave() const params = { itemCategoryId: form.value.itemCategoryId, // 核查项分类id checkItemDataOscilloscopeList: list, equipmentId: equipmentId.value, } const loading = ElLoading.service({ lock: true, text: '加载中', background: 'rgba(255, 255, 255, 0.6)', }) config(params).then((res) => { ElMessage.success('已保存') pageType.value = 'detail' loading.close() }) } // 获取详情 const getInfo = () => { const loading = ElLoading.service({ lock: true, text: '加载中', background: 'rgba(255, 255, 255, 0.6)', }) const params = { equipmentId: equipmentId.value, // 设备id belongStandardEquipment: form.value.belongStandardEquipment, // 检校标准装置code itemCategoryId: form.value.itemCategoryId, // 核查项分类id itemCategoryName: form.value.itemCategoryName, // 核查项分类名称 } getCheckItemDetail(params).then((res) => { if (res.data && res.data.checkItemDataSignalGeneratorList && res.data.checkItemDataSignalGeneratorList.length) { listFrequency.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '频率') listPowerLevel.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '功率') listRelativeLevel.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '相对电平') listAMDepth.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '调幅度') listFrequencyModulationDeviation.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '调频频偏') listPhase.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '调相相偏') listFrequencySpectrum.value = res.data.checkItemDataSignalGeneratorList.filter((item: { params: string }) => item.params === '谐波') } loading.close() }) } // ------------------------------------------钩子-------------------------------------------------- onMounted(() => { form.value.equipmentNo = $route.query.equipmentNo as string // 统一编号 form.value.equipmentName = $route.query.equipmentName as string // 设备名称 form.value.model = $route.query.model as string // 型号规格 form.value.manufactureNo = $route.query.manufactureNo as string // 出厂编号 form.value.measureRange = $route.query.measureRange as string // 测量范围 form.value.uncertainty = $route.query.uncertainty as string // 不确定度或允许误差极限或准确度等级 form.value.itemCategoryName = $route.query.itemCategoryName as string // 核查项分类名称 form.value.itemCategoryId = $route.query.itemCategoryId as string // 核查项分类id form.value.belongStandardEquipment = $route.query.belongStandardEquipment as string // 核查项标准装置id form.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string // 核查项标准装置id equipmentId.value = $route.query.equipmentId as string // 设备id getInfo() }) </script> <template> <app-container> <detail-page v-loading="loading" :title="`配置核查项(${textMap[pageType]})`"> <template #btns> <el-button v-if="pageType === 'edit'" type="warning" @click="clear"> 清空配置 </el-button> <el-button v-if="pageType === 'edit'" type="primary" @click="save"> 保存 </el-button> <el-button type="info" @click="close"> 关闭 </el-button> </template> <el-form ref="ruleFormRef" :model="form" :label-width="130" label-position="right" > <el-row :gutter="24" class="marg"> <el-col :span="6"> <el-form-item label="统一编号:" prop="equipmentNo"> <el-input v-model="form.equipmentNo" disabled :placeholder="pageType === 'detail' ? '' : '统一编号'" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="设备名称:" prop="equipmentName"> <el-input v-model="form.equipmentName" disabled :placeholder="pageType === 'detail' ? '' : '设备名称'" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="型号规格:" prop="model"> <el-input v-model="form.model" disabled :placeholder="pageType === 'detail' ? '' : '型号规格'" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="出厂编号:" prop="manufactureNo"> <el-input v-model="form.manufactureNo" disabled :placeholder="pageType === 'detail' ? '' : '出厂编号'" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="测量范围:" prop="measureRange"> <el-input v-model="form.measureRange" disabled type="textarea" autosize :placeholder="pageType === 'detail' ? '' : '测量范围'" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label-width="260" label="不确定度或允许误差极限或准确度等级:" prop="uncertainty"> <el-input v-model="form.uncertainty" type="textarea" autosize disabled :placeholder="pageType === 'detail' ? '' : '不确定度或允许误差极限或准确度等级'" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="核查项分类名称:" prop="itemCategoryName"> <el-input v-model="form.itemCategoryName" disabled :placeholder="pageType === 'detail' ? '' : '核查项分类名称'" /> </el-form-item> </el-col> </el-row> </el-form> </detail-page> <!-- 频率 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="frequency" :disabled="pageType === 'detail'"> 频率 </el-checkbox> <div v-if="frequency && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listFrequency, '频率')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutFrequencyList, listFrequency)"> 删除行 </el-button> </div> </div> <template-table v-if="frequency" :data="listFrequency" :columns="columns_frequency" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '频率')" /> </detail-block> <!-- 功率 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="powerLevel" :disabled="pageType === 'detail'"> 功率 </el-checkbox> <div v-if="powerLevel && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listPowerLevel, '功率')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutPowerLevelList, listPowerLevel)"> 删除行 </el-button> </div> </div> <template-table v-if="powerLevel" :data="listPowerLevel" :columns="columns_powerLevel" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '功率')" /> </detail-block> <!-- 相对电平 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="relativeLevel" :disabled="pageType === 'detail'"> 相对电平 </el-checkbox> <div v-if="relativeLevel && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listRelativeLevel, '相对电平')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutRelativeLevelList, listRelativeLevel)"> 删除行 </el-button> </div> </div> <template-table v-if="relativeLevel" :data="listRelativeLevel" :columns="columns_relativeLevel" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '相对电平')" /> </detail-block> <!-- 调幅度 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="AMDepth" :disabled="pageType === 'detail'"> 调幅度 </el-checkbox> <div v-if="AMDepth && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listAMDepth, '调幅度')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutAMDepthList, listAMDepth)"> 删除行 </el-button> </div> </div> <template-table v-if="AMDepth" :data="listAMDepth" :columns="columns_AMDepth" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '调幅度')" /> </detail-block> <!-- 调频频偏 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="frequencyModulationDeviation" :disabled="pageType === 'detail'"> 调频频偏 </el-checkbox> <div v-if="frequencyModulationDeviation && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listFrequencyModulationDeviation, '调频频偏')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutfrequencyModulationDeviationList, listFrequencyModulationDeviation)"> 删除行 </el-button> </div> </div> <template-table v-if="frequencyModulationDeviation" :data="listFrequencyModulationDeviation" :columns="columns_frequencyModulationDeviation" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '调频频偏')" /> </detail-block> <!-- 调相相偏 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="phase" :disabled="pageType === 'detail'"> 调相相偏 </el-checkbox> <div v-if="phase && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listPhase, '调相相偏')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutPhaseList, listPhase)"> 删除行 </el-button> </div> </div> <template-table v-if="phase" :data="listPhase" :columns="columns_phase" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '调相相偏')" /> </detail-block> <!-- 谐波 --> <detail-block title="" style="padding-bottom: 20px;"> <div style="display: flex;justify-content: space-between;"> <el-checkbox v-model="frequencySpectrum" :disabled="pageType === 'detail'"> 谐波 </el-checkbox> <div v-if="frequencySpectrum && pageType !== 'detail'" style="padding: 0 10px;padding-bottom: 10px;"> <el-button type="primary" @click="addRow(listFrequencySpectrum, '谐波')"> 增加行 </el-button> <el-button type="info" @click="delRow(checkoutFrequencySpectrumList, listFrequencySpectrum)"> 删除行 </el-button> </div> </div> <template-table v-if="frequencySpectrum" :data="listFrequencySpectrum" :columns="columns_frequencySpectrum" :page-type="pageType" @selection-change="(e) => handleSelectionChange(e, '谐波')" /> </detail-block> <!-- 核查项备注 --> <el-form :model="form" label-width="120" label-position="right" style="margin-top: 20px;" > <el-row> <el-col :span="12"> <el-form-item label="核查项备注:" prop="remark"> <el-input v-model="form.remark" class="full-width-input" autosize type="textarea" :disabled="pageType === 'detail'" :placeholder="pageType === 'detail' ? ' ' : '请输入核查项备注'" /> </el-form-item> </el-col> </el-row> </el-form> </app-container> </template>