<!-- 第8套:E2砝码标准装置 --> <script lang="ts" setup name="TemplateDetailEighth"> 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' 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 checkoutList = ref<IList[]>([]) // 多选 // --------------------------------------质量比较仪--------------------------------------------------------- const form = ref({ pt1: '', // 实验载荷Pt1 pt2: '', // 实验载荷Pt2 pt3: '', // 实际分度值d }) const ptUnit = [{ id: 'g', name: 'g', value: 'g', }, { id: 'mg', name: 'mg', value: 'mg', }] // ------------------------------------------表头------------------------------------------------------------- const columns = ref([]) as any // 表头数据 const columns_weight = ref<TableColumn[]>([ // 砝码 { text: '检定项目', value: 'params', align: 'center', required: true }, { text: '标称质量', value: 'nominalValue', align: 'center', required: true }, { text: '单位', value: 'nominalValue', align: 'center', required: true }, { text: '扩展不确定度U', value: 'nominalValue', align: 'center', required: true }, ]) const columns_balance = ref<TableColumn[]>([ // 电子天平 { text: '检定项目', value: 'params', align: 'center', required: true }, { text: '单位', value: 'params', align: 'center', required: true }, { text: '标准值', value: 'nominalValue', align: 'center', required: true }, { text: '试验载荷', value: 'nominalValue', align: 'center', required: true }, { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, ]) // ---------------------------------------------校验--------------------------------------------------- // 校验表格(点击保存的时候用、生成标准器示值) const checkList = () => { // return useCheckList(list.value, columns.value, '检定项表格') } // --------------------------------------------钩子---------------------------------------------------- watch(() => props.itemCategoryName, (newValue) => { if (newValue) { switch (newValue) { case '砝码': columns.value = columns_weight.value break case '电子天平': columns.value = columns_balance.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.appearance" :checked="true" :disabled="pageType === 'detail'"> 折算质量 </el-checkbox> <div v-if="props.itemCategoryName === '电子天平'" style="display: flex;"> <el-checkbox v-model="form.cfx" :checked="true" :disabled="pageType === 'detail'"> 重复性 </el-checkbox> <el-form v-if="props.itemCategoryName === '电子天平'" ref="ruleFormRef" :model="form" label-width="130" label-position="right" style="flex: 1;margin-left: 13px;" > <el-row :gutter="24"> <!-- 试验载荷 --> <el-col :span="12" style="display: flex;justify-content: flex-start;"> <el-form-item label="试验载荷:" prop="xfxsyzh"> <el-input v-model="form.xfxsyzh" class="full-width-input" placeholder="试验载荷" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> <el-form-item label-width="10" prop="pt1Unit"> <el-select v-if="props.pageType !== 'detail'" v-model="form.syzhdw" placeholder="单位" :disabled="props.pageType === 'detail'" filterable style="width: 90px;" > <el-option v-for="item in ptUnit" :key="item.id" :label="item.name" :value="item.value" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="最大允许误差:" prop="zdyxwc"> ±<el-input-number v-model="form.zdyxwc" class="full-width-input" placeholder="最大允许误差" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> </el-col> </el-row> </el-form> </div> <div v-if="props.itemCategoryName === '电子天平'" style="display: flex;"> <el-checkbox v-model="form.pzwc" :checked="true" :disabled="pageType === 'detail'"> 偏载误差 </el-checkbox> <el-form v-if="props.itemCategoryName === '电子天平'" ref="ruleFormRef" :model="form" label-width="130" label-position="right" style="flex: 1;" > <el-row :gutter="24"> <!-- 试验载荷 --> <el-col :span="12" style="display: flex;justify-content: flex-start;"> <el-form-item label="试验载荷:" prop="pt1"> <el-input v-model="form.pzwcsyzh" class="full-width-input" placeholder="试验载荷" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> <el-form-item label-width="10" prop="pt1Unit"> <el-select v-if="props.pageType !== 'detail'" v-model="form.pzwcsyzhdw" placeholder="单位" :disabled="props.pageType === 'detail'" filterable style="width: 90px;" > <el-option v-for="item in ptUnit" :key="item.id" :label="item.name" :value="item.value" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="最大允许误差:" prop="pzwczdyxwc"> ±<el-input-number v-model="form.pzwczdyxwc" class="full-width-input" placeholder="最大允许误差" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> </el-col> </el-row> </el-form> </div> <el-checkbox v-if="props.itemCategoryName === '质量比较仪'" v-model="form.zszl" :checked="true" :disabled="pageType === 'detail'"> 重复性 </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '质量比较仪'" v-model="form.pzwc" :checked="true" :disabled="pageType === 'detail'"> 偏载误差 </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '质量比较仪'" v-model="form.jbszwc" :checked="true" :disabled="pageType === 'detail'"> 局部示值误差 </el-checkbox> <el-checkbox v-if="props.itemCategoryName === '电子天平'" v-model="form.jbszwc" :checked="true" :disabled="pageType === 'detail'"> 示值误差 </el-checkbox> <el-form v-if="props.itemCategoryName === '质量比较仪'" ref="ruleFormRef" :model="form" label-width="130" label-position="right" style="margin-top: 20px;" > <el-row :gutter="24"> <!-- 实验载荷Pt1 --> <el-col :span="12" style="display: flex;justify-content: flex-start;"> <el-form-item label="实验载荷Pt1:" prop="pt1"> <el-input v-model="form.pt1" class="full-width-input" placeholder="实验载荷Pt1" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> <el-form-item label-width="10" prop="pt1Unit"> <el-select v-if="props.pageType !== 'detail'" v-model="form.pt1Unit" placeholder="单位" :disabled="props.pageType === 'detail'" filterable style="width: 90px;" > <el-option v-for="item in ptUnit" :key="item.id" :label="item.name" :value="item.value" /> </el-select> </el-form-item> </el-col> <!-- 实验载荷Pt2 --> <el-col :span="12" style="display: flex;justify-content: flex-start;"> <el-form-item label="实验载荷Pt2:" prop="pt1"> <el-input v-model="form.pt1" class="full-width-input" placeholder="实验载荷Pt2" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> <el-form-item label-width="10" prop="pt1Unit"> <el-select v-if="props.pageType !== 'detail'" v-model="form.pt1Unit" placeholder="单位" :disabled="props.pageType === 'detail'" filterable style="width: 90px;" > <el-option v-for="item in ptUnit" :key="item.id" :label="item.name" :value="item.value" /> </el-select> </el-form-item> </el-col> <!-- 实际分度值d --> <el-col :span="12" style="display: flex;justify-content: flex-start;"> <el-form-item label="实际分度值d:" prop="pt1"> <el-input v-model="form.pt1" class="full-width-input" placeholder="实际分度值d" :disabled="props.pageType === 'detail'" style="flex: 1;" /> </el-form-item> <el-form-item label-width="10" prop="pt1Unit"> <el-select v-if="props.pageType !== 'detail'" v-model="form.pt1Unit" placeholder="单位" :disabled="props.pageType === 'detail'" filterable style="width: 90px;" > <el-option v-for="item in ptUnit" :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 === '电子天平' || props.itemCategoryName === '砝码'" title=" "> <template v-if="pageType !== 'detail'" #btns> <el-button type="primary"> 增加行 </el-button> <el-button type="info"> 删除行 </el-button> <el-button v-if="props.itemCategoryName === '电子天平'" type="primary"> 计算结果 </el-button> </template> <el-table :data="list" border style="width: 100%;" > <el-table-column v-if="pageType !== 'detail'" type="selection" width="38" /> <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> </div> </template>