<!-- 第5套:二等铂电阻温度计标准装置 --> <script lang="ts" setup name="TemplateDetailThird"> 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' 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 list = ref<IList[]>([]) // 表格数据(上面表格) const tableLoading = ref(false) // ----------------------------------------表头------------------------------------------------ const columns = ref() // const thermostaticBathWaveList = ref<IList[]>([]) // 恒温槽表格 const columns_thermostatic_bath = ref([ // 恒温槽表头 { text: '检定项目', value: 'params', align: 'center', required: true }, { text: '单位', value: 'nominalValue', align: 'center', required: true }, { text: '指标上限', value: 'minimumAllowFactorA', align: 'center', required: true }, { text: '指标下限', value: 'maximumAllowFactorB', align: 'center', required: true }, ]) // const bimetalThermometerList = ref<IList[]>([]) // 双金属温度计 const columns_bimetal_thermometer = ref([ // 双金属温度计表头 { text: '检定项目', value: 'params', align: 'center', required: true }, { text: '单位', value: 'nominalValue', align: 'center', required: true }, { text: '校准点', value: 'minimumAllowFactorA', align: 'center', required: true }, { text: '最大允许误差', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: '扩展不确定度U', value: 'maximumAllowFactorB', align: 'center', required: true }, ]) // const resistanceList = ref<IList[]>([]) // 工业铂铜热电阻 const columns_resistance = ref([ // 工业铂铜热电阻表头 { text: '检定项目', value: 'params', align: 'center', required: true }, { text: '标称温度', value: 'nominalValue', align: 'center', required: true }, { text: 'α标称值', value: 'minimumAllowFactorA', align: 'center', required: true }, { text: 'R值', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: 'dR/dt', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: 'R*tp', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: 'Ws', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: 'dWst/dt', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: '允差上限', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: '允差下限', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: 'α允差上限/10(-6) ℃(-1)', value: 'maximumAllowFactorB', align: 'center', required: true }, { text: 'α允差下限/10(-6) ℃(-1)', value: 'maximumAllowFactorB', align: 'center', required: true }, ]) // ------------------------------------------字典---------------------------------------------- const accuracyLevelList = ref<dictType[]>([]) // 准确度等级 const levelList = ref<dictType[]>([]) // 级别 /** * 获取字典 */ function getDict() { // 准确度等级 getDictByCode('accuracyLevelFifth').then((response) => { accuracyLevelList.value = response.data }) // 级别 getDictByCode('levelFifth').then((response) => { levelList.value = response.data }) } getDict() // ---------------------------------------------校验--------------------------------------------------- // 校验表格(点击保存的时候用、生成标准器示值) const checkList = () => { // return useCheckList(list.value, columns.value, '检定项表格') } // ------------------------------------------------------------------------------------------------ // 点击计算结果--上方表格计算 const calculateDataTop = () => { } // 点击生成辅助接地电阻--下面表格计算 const calculateDataBottom = () => { } // ----------------------------------------------------------------------------------------------------- watch(() => props.itemCategoryName, (newValue) => { if (newValue) { switch (newValue) { case '恒温槽': columns.value = columns_thermostatic_bath.value break case '双金属温度计': columns.value = columns_bimetal_thermometer.value break case '工业铂铜热电阻': columns.value = columns_resistance.value break } } }, { immediate: true }) watch(() => props.list, (newVal) => { // 检定项表格 if (newVal) { list.value = [...newVal] } }) defineExpose({ list }) </script> <template> <div style="padding: 0 10px;"> <el-checkbox v-model="form.appearance" :checked="true" :disabled="pageType === 'detail'"> 外观检查 </el-checkbox> <el-checkbox v-if="props.itemCategoryName !== '恒温槽'" v-model="form.jydz" :checked="true" :disabled="pageType === 'detail'"> 绝缘电阻 </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '恒温槽'" v-model="form.c" :checked="true" :disabled="pageType === 'detail'"> 波动性测试和均匀性测试 </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '双金属温度计'" v-model="form.e" :checked="true" :disabled="pageType === 'detail'"> 角度调整误差(可调整角度仪表) </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '双金属温度计'" v-model="form.r" :checked="true" :disabled="pageType === 'detail'"> 示值误差 </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '工业铂铜热电阻'" v-model="form.t" :checked="true" :disabled="pageType === 'detail'"> 允差 </el-checkbox> </div> <!-- 恒温槽表格 --> <detail-block v-if="props.itemCategoryName === '恒温槽'" title="" style="margin-top: 0;"> <el-table ref="tableRef" v-loading="tableLoading" :data="list" border style="width: 100%;" > <el-table-column align="center" label="序号" width="80" type="index" /> <el-table-column v-for="item in columns" :key="item.value" :prop="item.value" :label="item.text" :width="item.width" align="center" > <template #header> <span v-show="item.required" style="color: red;">*</span><span>{{ item.text }}</span> </template> </el-table-column> </el-table> </detail-block> <el-form ref="ruleFormRef" :model="form" label-width="130" label-position="right" style="margin-top: 20px;" > <el-row :gutter="24"> <!-- 测量范围 --> <el-col v-if="props.itemCategoryName === '双金属温度计'" :span="12" style="display: flex;justify-content: flex-start;"> <el-form-item label="测量范围(℃):" prop="rangeLower"> <el-input-number v-model="form.rangeLower" :placeholder="pageType === 'detail' ? '' : '下限'" :disabled="pageType === 'detail'" style="flex: 1;" /> </el-form-item> <span style="margin-left: 10px;">——</span> <el-form-item label-width="10" prop="rangeUpper"> <el-input-number v-model="form.rangeUpper" :placeholder="pageType === 'detail' ? '' : '上限'" :disabled="pageType === 'detail'" style="flex: 1;" :min="form.rangeLower" /> </el-form-item> </el-col> <!-- 准确度等级 --> <el-col v-if="props.itemCategoryName === '双金属温度计'" :span="8"> <el-form-item label="准确度等级:" prop="accuracyLevel"> <el-select v-if="props.pageType !== 'detail'" v-model="form.accuracyLevel" placeholder="准确度等级" :disabled="props.pageType === 'detail'" filterable class="full-width-input" > <el-option v-for="item in accuracyLevelList" :key="item.id" :label="item.name" :value="item.value" /> </el-select> </el-form-item> </el-col> <!-- 级别 --> <el-col v-if="props.itemCategoryName === '工业铂铜热电阻'" :span="8"> <el-form-item label="级别:" prop="level"> <el-select v-if="props.pageType !== 'detail'" v-model="form.level" placeholder="级别" :disabled="props.pageType === 'detail'" filterable class="full-width-input" > <el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.value" /> </el-select> </el-form-item> </el-col> </el-row> </el-form> <!-- 双金属温度计 --> <detail-block v-if="props.itemCategoryName === '双金属温度计'" title=" " style="margin-top: 0;"> <template v-if="props.pageType !== 'detail'" #btns> <el-button type="primary"> 增加行 </el-button> <el-button type="info"> 删除行 </el-button> <el-button type="primary"> 计算结果 </el-button> </template> <el-table ref="tableRef" v-loading="tableLoading" :data="list" border style="width: 100%;" > <el-table-column align="center" label="序号" width="80" type="index" /> <el-table-column v-for="item in columns" :key="item.value" :prop="item.value" :label="item.text" :width="item.width" align="center" > <template #header> <span v-show="item.required" style="color: red;">*</span><span>{{ item.text }}</span> </template> </el-table-column> </el-table> </detail-block> <!-- 工业铂铜热电阻 --> <detail-block v-if="props.itemCategoryName === '工业铂铜热电阻'" title="" style="margin-top: 0;padding-top: 0;"> <el-table ref="tableRef" v-loading="tableLoading" :data="list" border style="width: 100%;" > <el-table-column align="center" label="序号" width="80" type="index" /> <el-table-column v-for="item in columns" :key="item.value" :prop="item.value" :label="item.text" :width="item.width" align="center" > <template #header> <span v-show="item.required" style="color: red;">*</span><span>{{ item.text }}</span> </template> </el-table-column> </el-table> </detail-block> </template>