<!-- 第14套:铯原子频率标准装置标准装置 -- 铷钟 --> <script lang="ts" setup name="TemplateDetailFourteenUniversalCount"> import { ElMessage } from 'element-plus' import type { IList } from '../templateDetail-interface' 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 templateTable from '@/views/business/measure/item/components/second/templateTable.vue' import { differenceArray, setSelectList } from '@/utils/Array' import { clearSymbol, clearSymbolStart } from '@/utils/String' 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, // 外观及功能性检查 outputSignal: 1, // 输出信号 warmUp: 1, // 开机特性 frequencyReproducibility: 1, // 频率复现性 relativeFrequencyDeviation: 1, // 相对频率偏差 frequencyStability: 1, // 频率稳定度 dailyFrequencyDriftRate: 1, // 日频率漂移率 }) watch(() => props.form, (newVal) => { console.log(newVal, 'newVal') form.value = JSON.parse(JSON.stringify(newVal)) }) const list = ref<IList[]>([]) // 全部数据 const outputSignalList = ref<IList[]>([]) // 输出信号 const warmUpList = ref<IList[]>([]) // 开机特性 const frequencyReproducibilityList = ref<IList[]>([]) // 频率复现性 const relativeFrequencyDeviationList = ref<IList[]>([]) // 相对频率偏差 const frequencyStabilityList = ref<IList[]>([]) // 频率稳定度 const dailyFrequencyDriftRateList = ref<IList[]>([]) // 日频率漂移率 // 表格数据对应 list 字典 const listDict = ref<{ [key: string]: any }>() watch(() => [outputSignalList.value, warmUpList.value, frequencyReproducibilityList.value, relativeFrequencyDeviationList.value, frequencyStabilityList.value, dailyFrequencyDriftRateList.value], () => { listDict.value = { '1-输出信号': outputSignalList.value, '2-开机特性': warmUpList.value, '3-频率复现性': frequencyReproducibilityList.value, '4-相对频率偏差': relativeFrequencyDeviationList.value, '5-频率稳定度': frequencyStabilityList.value, '6-日频率漂移率': dailyFrequencyDriftRateList.value, } list.value = [] for (const i in listDict.value) { list.value = [...list.value, ...listDict.value[i]] } }, { deep: true, }) // 表格对应的 选择状态 let chekedDict = {} as { [key: string]: any } watch(() => [props.form, form.value], () => { console.log(form.value, 'form.value') chekedDict = { '1-输出信号': form.value.outputSignal, '2-开机特性': form.value.warmUp, '3-频率复现性': form.value.frequencyReproducibility, '4-相对频率偏差': form.value.relativeFrequencyDeviation, '5-频率稳定度': form.value.frequencyStability, '6-日频率漂移率': form.value.dailyFrequencyDriftRate, } }, { deep: true, }) // ----------------------------------------表头------------------------------------------------ const columns_output_signal = ref<TableColumn[]>([ // 输出信号 { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '信号类型', value: 'signalType', align: 'center', required: true, type: 'select' }, { text: '被测信号频率', value: '', align: 'center', required: false, type: '' }, { text: '幅度技术指标', value: '', align: 'center', required: false, type: '', width: '300' }, { text: '脉冲宽度技术指标', value: '', align: 'center', required: false, type: '', width: '300' }, { text: '上升时间技术指标', value: '', align: 'center', required: false, type: '', width: '300' }, { text: '不确定度U(k=2)', value: 'urel', align: 'center', required: false, type: 'notation' }, ]) const columns_warm_up = ref<TableColumn[]>([ // 开机特性 { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '被测信号频率', value: 'testedSignalFrequency', align: 'center', required: true, type: 'select' }, { text: '闸门时间', value: 'gateTime', align: 'center', required: true, type: 'number' }, { text: '闸门时间单位', value: 'gateTimeUnit', align: 'center', required: true, type: 'select' }, { text: '倍增次数', value: 'multiplyFrequency', align: 'center', required: false, type: 'number' }, { text: '开机时间', value: 'onTime', align: 'center', required: true, type: 'number' }, { text: '开机时间单位', value: 'onTimeUnit', align: 'center', required: true, type: 'select' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: false, type: 'number' }, { text: '不确定度U(k=2)', value: 'urel', align: 'center', required: false, type: 'notation' }, ]) const columns_frequency_reproducibility = ref<TableColumn[]>([ // 频率复现性 { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '被测信号频率', value: 'testedSignalFrequency', align: 'center', required: true, type: 'select' }, { text: '闸门时间', value: 'gateTime', align: 'center', required: true, type: 'number' }, { text: '闸门时间单位', value: 'gateTimeUnit', align: 'center', required: true, type: 'select' }, { text: '倍增次数', value: 'multiplyFrequency', align: 'center', required: false, type: 'number' }, { text: 'T1', value: 'tOne', align: 'center', required: true, type: 'number' }, { text: 'T1单位', value: 'tOneUnit', align: 'center', required: true, type: 'select' }, { text: 'T2', value: 'tTwo', align: 'center', required: true, type: 'number' }, { text: 'T2单位', value: 'tTwoUnit', align: 'center', required: true, type: 'select' }, { text: 'T3', value: 'tThree', align: 'center', required: true, type: 'number' }, { text: 'T3单位', value: 'tThreeUnit', align: 'center', required: true, type: 'select' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: false, width: '150', type: 'number' }, { text: '不确定度U(k=2)', value: 'urel', align: 'center', required: false, type: 'notation' }, ]) const columns_frequency_stability = ref<TableColumn[]>([ // 频率稳定度 { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '被测信号频率', value: 'testedSignalFrequency', align: 'center', required: true, type: 'select' }, { text: '取样时间', value: 'sampleTime', align: 'center', required: true, type: 'number' }, { text: '取样时间单位', value: 'sampleTimeUnit', align: 'center', required: true, type: 'select' }, { text: '采样组数', value: 'sampleGroupNumber', align: 'center', required: true, type: 'number' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: false, type: 'number' }, { text: '不确定度uc', value: 'urel', align: 'center', required: false, type: 'notation' }, ]) const columns_daily_frequency_drift_rate = ref<TableColumn[]>([ // 日频率漂移率 { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, { text: '被测信号频率', value: 'testedSignalFrequency', align: 'center', required: true, type: 'select' }, { text: '闸门时间', value: 'gateTime', align: 'center', required: true, type: 'number' }, { text: '闸门时间单位', value: 'gateTimeUnit', align: 'center', required: true, type: 'select' }, { text: '取样时间', value: 'sampleTime', align: 'center', required: true, type: 'number' }, { text: '取样时间单位', value: 'sampleTimeUnit', align: 'center', required: true, type: 'select' }, { text: '采样组数', value: 'sampleGroupNumber', align: 'center', required: true, type: 'number' }, { text: '技术指标', value: 'technicalIndex', align: 'center', required: false, type: 'number' }, { text: '不确定度U(k=2)', value: 'urel', align: 'center', required: false, type: 'notation' }, ]) // --------------------------------表格操作--------------------------------------------------- // 表格对应 columns字典 const columnsDict = ref<{ [key: string]: any }>( { '1-输出信号': columns_output_signal.value, '2-开机特性': columns_warm_up.value, '3-频率复现性': columns_frequency_reproducibility.value, '4-相对频率偏差': columns_warm_up.value, '5-频率稳定度': columns_frequency_stability.value, '6-日频率漂移率': columns_daily_frequency_drift_rate.value, }, ) /** * 增加行公共方法 * @param list 要操作的数组 * @param title 操作的表格 */ const addRow = (list: IList[], title: string, index: string) => { if (checkList(list, columnsDict.value[`${index}-${title}`], `${title}表格`)) { const params = { signalType: '', // 信号类型 testedSignalFrequency: '', // 被测信号频率 testedSignalFrequencyUnit: 'MHz', // 被测信号频率单位 amplitudeTechnicalIndexLower: '', // 幅度技术指标下限 amplitudeTechnicalIndexUpper: '', // 幅度技术指标上限 amplitudeTechnicalIndexUnit: '', // 幅度技术指标单位 pulseWidthTechnicalIndexLower: '', // 脉冲宽度技术指标下限 pulseWidthTechnicalIndexUnit: '', // 脉冲宽度技术指标单位 pulseWidthTechnicalIndexUpper: '', // 脉冲宽度技术指标上限 technicalIndex: '', // 上升时间技术指标 technicalIndexSymbol: '±', // 上升时间技术指标符号 technicalIndexUnit: '', // 上升时间技术指标单位 gateTime: '', // 闸门时间 gateTimeUnit: '', // 闸门时间单位 multiplyFrequency: '', // 倍增次数 onTime: '', // 开机时间 onTimeUnit: '', // 开机时间单位 sampleTime: '', // 取样时间 sampleTimeUnit: '', // 取样时间单位 urel: '', tOne: '', tTwo: '', tThree: '', tOneUnit: '', tTwoUnit: '', tThreeUnit: '', sampleGroupNumber: '', // 采样组数 } switch (title) { case '输出信号': // 输出信号 outputSignalList.value.length ? outputSignalList.value.push(JSON.parse(JSON.stringify(outputSignalList.value[outputSignalList.value.length - 1]))) : outputSignalList.value.push({ dataType: '1', params: '输出信号', ...params, editable: true, } as any) break case '开机特性': // 开机特性 warmUpList.value.length ? warmUpList.value.push(JSON.parse(JSON.stringify(warmUpList.value[warmUpList.value.length - 1]))) : warmUpList.value.push({ dataType: '2', params: '开机特性', ...params, gateTime: '100', editable: true, } as any) break case '频率复现性': // 频率复现性 frequencyReproducibilityList.value.length ? frequencyReproducibilityList.value.push(JSON.parse(JSON.stringify(frequencyReproducibilityList.value[frequencyReproducibilityList.value.length - 1]))) : frequencyReproducibilityList.value.push({ dataType: '3', params: '频率复现性', ...params, gateTime: '100', tOne: '24', tTwo: '24', tThree: '12', editable: true, } as any) break case '相对频率偏差': // 相对频率偏差 relativeFrequencyDeviationList.value.length ? relativeFrequencyDeviationList.value.push(JSON.parse(JSON.stringify(relativeFrequencyDeviationList.value[relativeFrequencyDeviationList.value.length - 1]))) : relativeFrequencyDeviationList.value.push({ dataType: '4', params: '相对频率偏差', ...params, gateTime: '100', editable: true, } as any) break case '频率稳定度': // 频率稳定度 frequencyStabilityList.value.length ? frequencyStabilityList.value.push(JSON.parse(JSON.stringify(frequencyStabilityList.value[frequencyStabilityList.value.length - 1]))) : frequencyStabilityList.value.push({ dataType: '5', params: '频率稳定度', ...params, editable: true, } as any) break case '日频率漂移率': // 日频率漂移率 dailyFrequencyDriftRateList.value.length ? dailyFrequencyDriftRateList.value.push(JSON.parse(JSON.stringify(dailyFrequencyDriftRateList.value[dailyFrequencyDriftRateList.value.length - 1]))) : dailyFrequencyDriftRateList.value.push({ dataType: '6', params: '日频率漂移率', ...params, gateTime: '100', editable: true, } as any) 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 '输出信号': // 输出信号 outputSignalList.value = data break case '开机特性': // 开机特性 warmUpList.value = data break case '频率复现性': // 频率复现性 frequencyReproducibilityList.value = data break case '相对频率偏差': // 相对频率偏差 relativeFrequencyDeviationList.value = data break case '频率稳定度': // 频率稳定度 frequencyStabilityList.value = data break case '日频率漂移率': // 日频率漂移率 dailyFrequencyDriftRateList.value = data break } } } // ---------------------------------------------校验--------------------------------------------------- // 校验表格(点击保存的时候用、生成标准器示值) function checkList(list: any[], columns: any[], title: string) { return useCheckList(list, columns, title) } // 校验所有表格 function checkAllList() { let result = true for (const i in columnsDict.value) { if (!Number(chekedDict[i])) { result = true } else { const requireLength = !!((chekedDict[i] === '1' || chekedDict[i] === 1) && chekedDict[i]) if (!useCheckList(listDict.value[i], columnsDict.value[i], i.substring(2), '', '', '', requireLength)) { result = false break } } } return result } // ----------------------------------------------------------------------------------------------------- const clearAllList = () => { list.value = [] dailyFrequencyDriftRateList.value = [] frequencyStabilityList.value = [] relativeFrequencyDeviationList.value = [] frequencyReproducibilityList.value = [] warmUpList.value = [] outputSignalList.value = [] for (const i in listDict.value) { listDict.value[i] = [] } } watch(() => props.list, (newVal) => { // 检定项表格 if (newVal) { clearAllList() newVal.forEach((item: any) => { switch (item.dataType) { case '1': // 输出信号 outputSignalList.value.push({ ...item, params: '输出信号', technicalIndex: clearSymbol(item.technicalIndex) || '/' }) break case '2': // 开机特性 warmUpList.value.push({ ...item, params: '开机特性', technicalIndex: clearSymbol(item.technicalIndex) || '/' }) break case '3': // 频率复现性 frequencyReproducibilityList.value.push({ ...item, params: '频率复现性', technicalIndex: clearSymbol(item.technicalIndex) || '/' }) break case '4': // 相对频率偏差 relativeFrequencyDeviationList.value.push({ ...item, params: '相对频率偏差', technicalIndex: clearSymbol(item.technicalIndex) || '/' }) break case '5': // 频率稳定度 frequencyStabilityList.value.push({ ...item, params: '频率稳定度', technicalIndex: clearSymbol(item.technicalIndex) || '/' }) break case '6': // 日频率漂移率 dailyFrequencyDriftRateList.value.push({ ...item, params: '日频率漂移率', technicalIndex: clearSymbol(item.technicalIndex) || '/' }) break } }) if (props.pageType !== 'detail') { if (!newVal.filter((item: { dataType: string }) => item.dataType === '3').length) { addRow([], '频率复现性', '3') } if (!newVal.filter((item: { dataType: string }) => item.dataType === '4').length) { addRow([], '相对频率偏差', '4') } if (!newVal.filter((item: { dataType: string }) => item.dataType === '6').length) { addRow([], '日频率漂移率', '6') } } } else { if (props.pageType !== 'detail') { setTimeout(() => { addRow([], '频率复现性', '3') addRow([], '相对频率偏差', '4') addRow([], '日频率漂移率', '6') }) } } }) const getList = () => { let result = [] as any[] for (const i in chekedDict) { if ((chekedDict[i] === '1' || chekedDict[i] === 1) && chekedDict[i]) { const data = listDict.value[i].map((item: any) => ({ ...item, // technicalIndex: item.technicalIndex ? `${item.technicalIndexSymbol || ''}${item.technicalIndex}` : '/', technicalIndex: item.technicalIndex === 0 ? '0' : clearSymbol(item.technicalIndex || '/') ? clearSymbol(item.technicalIndex || '/') : '/', urel: item.urel ? item.urel : '/', testedSignalFrequency: item.testedSignalFrequency ? item.testedSignalFrequency : '/', multiplyFrequency: item.multiplyFrequency ? item.multiplyFrequency : '/', })) result = [...result, ...data] } } return result } defineExpose({ list, checkAllList, form, getList }) // 表格下拉框等内容是否禁用 const disabled = ({ scope, column }, fun) => { fun(props.pageType === 'detail') } // 每个table对应的下拉框内容 字典 const tableDict = ref<{ [key: string]: { value: string;name: string;id: string }[] }>({}) const changeLoadSituationa = (value: any, index: number, text: string, type: string, list: any[], item: string) => { // if (item === '频率显示') { // if (text === '标称值') { // list[index].frequency = value // } // if (text === '标称值单位') { // list[index].frequencyUnit = typeof value === 'string' ? value : '' // } // } } // 获取字典 const nominalValueUnit = ref<{ value: string;name: string;id: string }[]>([]) // 标称值单位 const thoroughfare = ref<{ value: string;name: string;id: string }[]>([]) // 通道 const testedSignalFrequency = ref<{ value: string;name: string;id: string }[]>([]) // 被测信号频率 const standardVoltage = ref<{ value: string;name: string;id: string }[]>([]) // 电压单位 const timeList = ref<{ value: string;name: string;id: string }[]>([]) // 时间 const standardTechnicalIndexSymbol = ref<{ value: string;name: string;id: string }[]>([]) // 技术指标符号 const signalType = ref<{ value: string;name: string;id: string }[]>([]) // 信号类型 const fetchDict = async () => { // 标称值单位 const res1 = await getDictByCode('standardFrequencyUnit') nominalValueUnit.value = res1.data // 通道 const res2 = await getDictByCode('cesiumAtomThoroughfare') thoroughfare.value = res2.data // 被测信号频率 const res3 = await getDictByCode('cesiumAtomTestedSignalFrequency') testedSignalFrequency.value = res3.data // 电压单位 const res4 = await getDictByCode('standardVoltage') standardVoltage.value = res4.data // 时间 const res5 = await getDictByCode('standardTimeUnit') timeList.value = res5.data // 技术指标符号 const res6 = await getDictByCode('standardTechnicalIndexSymbol') standardTechnicalIndexSymbol.value = res6.data // 信号类型 const res7 = await getDictByCode('cesiumAtomSignalType') signalType.value = res7.data tableDict.value = { 标称值单位: nominalValueUnit.value, 通道: thoroughfare.value, 被测信号频率: testedSignalFrequency.value, 取样时间单位: timeList.value, 闸门时间单位: timeList.value, 开机时间单位: timeList.value, T1单位: timeList.value, T3单位: timeList.value, T2单位: timeList.value, 信号类型: signalType.value, } } fetchDict() // 自定义下拉框内容 // const customSelect = (data: any, fun: any) => { // if (data.title === '参考电平' && data.text === '标称值单位') { // fun(amplitudeUnit.value) // } // else { // fun(tableDict.value[data.text]) // } // } </script> <template> <div style="padding: 0 10px;"> <el-checkbox v-model="form.appearanceFunctionCheck" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 外观及功能性检查 </el-checkbox> </div> <!-- 输出信号 --> <template-table :show="Boolean(form.outputSignal)" :data="outputSignalList" :columns="columns_output_signal" :page-type="pageType" title="输出信号" index="1" :show-btn="pageType !== 'detail'" :select-all-list="tableDict" @disabled="disabled" @add-row="addRow" @del-row="delRow" @change-load-situationa="changeLoadSituationa" > <template #custom-check> <el-checkbox v-model="form.outputSignal" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 输出信号 </el-checkbox> </template> <template #pre-content="{ column, scope }"> <template v-if="column.text === '幅度技术指标'"> <precision-input-number v-model="scope.amplitudeTechnicalIndexLower" controls-position="right" :disabled="pageType === 'detail'" style="width: 150px;" /> ~ <precision-input-number v-model="scope.amplitudeTechnicalIndexUpper" controls-position="right" :disabled="pageType === 'detail'" style="width: 150px;" /> <!-- --> <el-select v-model="scope.amplitudeTechnicalIndexUnit" :disabled="pageType === 'detail'" placeholder="单位" style="width: 150px;" > <el-option v-for="citem in standardVoltage" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> <template #next-content="{ column, scope }"> <!-- 频率信号 --> <template v-if="scope.signalType === '频率信号'"> <template v-if="column.text === '被测信号频率'"> <el-select v-model="scope.testedSignalFrequency" :disabled="pageType === 'detail'" > <el-option v-for="citem in testedSignalFrequency" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> <span v-for="item in scope?.testedSignalFrequencyUnit" :key="item" style="display: inline-block;">{{ item }}</span> </template> <template v-if="column.text === '脉冲宽度技术指标'"> / </template> <template v-if="column.text === '上升时间技术指标'"> / </template> </template> <!-- 秒脉冲信号 --> <template v-if="scope.signalType === '秒脉冲信号'"> <template v-if="column.text === '被测信号频率'"> / </template> <template v-if="column.text === '脉冲宽度技术指标'"> <precision-input-number v-model="scope.pulseWidthTechnicalIndexLower" controls-position="right" :disabled="pageType === 'detail'" /> ~ <precision-input-number v-model="scope.pulseWidthTechnicalIndexUpper" controls-position="right" :disabled="pageType === 'detail'" /> <!-- --> <el-select v-model="scope.pulseWidthTechnicalIndexUnit" :disabled="pageType === 'detail'" placeholder="单位" style="width: 120px;" > <el-option v-for="citem in timeList" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> <template v-if="column.text === '上升时间技术指标'"> <el-select v-model="scope.technicalIndexSymbol" :disabled="pageType === 'detail'" placeholder=" " style="width: 100px;" > <el-option v-for="citem in standardTechnicalIndexSymbol" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> <precision-input-number v-model="scope.technicalIndex" controls-position="right" :disabled="pageType === 'detail'" /> <el-select v-model="scope.technicalIndexUnit" :disabled="pageType === 'detail'" placeholder="单位" style="width: 120px;" > <el-option v-for="citem in timeList" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> </template> </template-table> <!-- 开机特性 --> <template-table :show="Boolean(form.warmUp)" :data="warmUpList" :columns="columns_warm_up" :page-type="pageType" title="开机特性" index="2" :show-btn="pageType !== 'detail'" :select-all-list="tableDict" @disabled="disabled" @add-row="addRow" @del-row="delRow" @change-load-situationa="changeLoadSituationa" > <template #custom-check> <el-checkbox v-model="form.warmUp" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 开机特性 </el-checkbox> </template> <template #next-content="{ column, scope }"> <template v-if="column.text === '被测信号频率'"> <span v-for="item in scope?.testedSignalFrequencyUnit" :key="item" style="display: inline-block;">{{ item }}</span> </template> </template> <template #pre-content="{ column, scope }"> <template v-if="column.text === '技术指标'"> <el-select v-model="scope.technicalIndexSymbol" :disabled="pageType === 'detail'" placeholder=" " style="width: 100px;" > <el-option v-for="citem in standardTechnicalIndexSymbol" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> </template-table> <!-- 频率复现性 --> <template-table :show="Boolean(form.frequencyReproducibility)" :data="frequencyReproducibilityList" :columns="columns_frequency_reproducibility" :page-type="pageType" title="频率复现性" index="3" :show-btn="false" :select-all-list="tableDict" @disabled="disabled" @add-row="addRow" @del-row="delRow" @change-load-situationa="changeLoadSituationa" > <template #custom-check> <el-checkbox v-model="form.frequencyReproducibility" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 频率复现性 </el-checkbox> </template> <template #next-content="{ column, scope }"> <template v-if="column.text === '被测信号频率'"> <span v-for="item in scope?.testedSignalFrequencyUnit" :key="item" style="display: inline-block;">{{ item }}</span> </template> </template> <template #pre-content="{ column, scope }"> <template v-if="column.text === '技术指标'"> <el-select v-model="scope.technicalIndexSymbol" :disabled="pageType === 'detail'" placeholder=" " style="width: 100px;" > <el-option v-for="citem in standardTechnicalIndexSymbol" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> </template-table> <!-- 相对频率偏差 --> <template-table :show="Boolean(form.relativeFrequencyDeviation)" :data="relativeFrequencyDeviationList" :columns="columns_warm_up" :page-type="pageType" title="相对频率偏差" index="4" :show-btn="false" :select-all-list="tableDict" @disabled="disabled" @add-row="addRow" @del-row="delRow" @change-load-situationa="changeLoadSituationa" > <template #custom-check> <el-checkbox v-model="form.relativeFrequencyDeviation" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 相对频率偏差 </el-checkbox> </template> <template #next-content="{ column, scope }"> <template v-if="column.text === '被测信号频率'"> <span v-for="item in scope?.testedSignalFrequencyUnit" :key="item" style="display: inline-block;">{{ item }}</span> </template> </template> <template #pre-content="{ column, scope }"> <template v-if="column.text === '技术指标'"> <el-select v-model="scope.technicalIndexSymbol" :disabled="pageType === 'detail'" placeholder=" " style="width: 100px;" > <el-option v-for="citem in standardTechnicalIndexSymbol" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> </template-table> <!-- 频率稳定度 --> <template-table :show="Boolean(form.frequencyStability)" :data="frequencyStabilityList" :columns="columns_frequency_stability" :page-type="pageType" title="频率稳定度" index="5" :show-btn="pageType !== 'detail'" :select-all-list="tableDict" @disabled="disabled" @add-row="addRow" @del-row="delRow" @change-load-situationa="changeLoadSituationa" > <template #custom-check> <el-checkbox v-model="form.frequencyStability" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 频率稳定度 </el-checkbox> </template> <template #next-content="{ column, scope }"> <template v-if="column.text === '被测信号频率'"> <span v-for="item in scope?.testedSignalFrequencyUnit" :key="item" style="display: inline-block;">{{ item }}</span> </template> </template> <template #pre-content="{ column, scope }"> <template v-if="column.text === '技术指标'"> <el-select v-model="scope.technicalIndexSymbol" :disabled="pageType === 'detail'" placeholder=" " style="width: 100px;" > <el-option v-for="citem in standardTechnicalIndexSymbol" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> </template-table> <!-- 日频率漂移率 --> <template-table :show="Boolean(form.dailyFrequencyDriftRate)" :data="dailyFrequencyDriftRateList" :columns="columns_daily_frequency_drift_rate" :page-type="pageType" title="日频率漂移率" index="6" :show-btn="false" :select-all-list="tableDict" @disabled="disabled" @add-row="addRow" @del-row="delRow" @change-load-situationa="changeLoadSituationa" > <template #custom-check> <el-checkbox v-model="form.dailyFrequencyDriftRate" :checked="true" :true-label="1" :false-label="0" :disabled="pageType === 'detail'"> 日频率漂移率 </el-checkbox> </template> <template #next-content="{ column, scope }"> <template v-if="column.text === '被测信号频率'"> <span v-for="item in scope?.testedSignalFrequencyUnit" :key="item" style="display: inline-block;">{{ item }}</span> </template> </template> <template #pre-content="{ column, scope }"> <template v-if="column.text === '技术指标'"> <el-select v-model="scope.technicalIndexSymbol" :disabled="pageType === 'detail'" placeholder=" " style="width: 100px;" > <el-option v-for="citem in standardTechnicalIndexSymbol" :key="citem.id" :label="citem.name" :value="citem.name" /> </el-select> </template> </template> </template-table> </template>