diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts index f8945fc..028db1a 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts +++ b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts @@ -17,7 +17,7 @@ minValue?: string // 最小值 nominalTemperature?: string // 标称温度 nominalValue?: string // α标称值(字典value),该参数在结果处理表中每行都要传 - rank?: string // 级别(字典value),该参数在结果处理表中每行都要传 + rankLevel?: string // 级别(字典value),该参数在结果处理表中每行都要传 rtp?: string // rvalue?: string // unit?: string // 单位 diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts index f8945fc..028db1a 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts +++ b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts @@ -17,7 +17,7 @@ minValue?: string // 最小值 nominalTemperature?: string // 标称温度 nominalValue?: string // α标称值(字典value),该参数在结果处理表中每行都要传 - rank?: string // 级别(字典value),该参数在结果处理表中每行都要传 + rankLevel?: string // 级别(字典value),该参数在结果处理表中每行都要传 rtp?: string // rvalue?: string // unit?: string // 单位 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue index 87d51fa..d603442 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue @@ -21,8 +21,9 @@ const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 + pageType: String, }) -const emits = defineEmits(['giveInfoId']) +const emits = defineEmits(['giveInfoId', 'changePageType']) const user = useUserStore() // 用户信息 const $router = useRouter() // 关闭页面使用 const $route = useRoute() // 路由参数 @@ -42,17 +43,16 @@ angleAdjustError: '1', // 角度调整误差(可调整角度仪表) isShowAngleAdjustErrort: false, // 角度调整误差(可调整角度仪表)输入数据--判断是否展示 - conclusion: '', // 检验结论 + resultConclusion: '', // 检验结论 remark: '', // 备注 + + rankLevel: '', // 级别(工业铂铜热电阻) }) const tableTop = ref(false) // 上面表格loading const tableBottom = ref(false) // 下面表格loading // -------------------------------------------路由参数------------------------------------------ -const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // 列表id if ($route.params && $route.params.type) { - pageType.value = $route.params.type as string - if ($route.params.id) { infoId.value = $route.params.id as string } @@ -186,7 +186,7 @@ // ==============================工业铂铜热电阻======================= const resistanceFranchiseList = ref([]) // 允差表格数据 -const resistanceResultList = ref([]) // 结果处理表格数据 +const resistanceResultList = ref([]) as any // 结果处理表格数据 const columns_resistance_franchise = ref([ // 允差表头 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, @@ -264,15 +264,15 @@ width: '180', required: true, children: [ - { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'inputNumber' }, - { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'inputNumber' }, + { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'text' }, + { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'text' }, ], }, ]) // 结果处理表格 const columns_resistance_result = ref([ // 结果处理表头 - { text: '项目', value: 'item', align: 'center', required: true }, + { text: '项目', value: 'itemTitleFront', align: 'center', required: true }, { text: '允差下限', value: 'allowErrorLower', align: 'center', required: true }, { text: '允差上限', value: 'allowErrorUpper', align: 'center', required: true }, { text: '测量值', value: 'measureValue', align: 'center', required: true }, @@ -297,19 +297,47 @@ itemFormData.value.itemId = res.data.itemId // 检定项id itemFormData.value.itemCategoryName = res.data.itemCategoryName // 设备检定项分类名称 itemFormData.value.itemCategoryId = res.data.itemCategoryId ? res.data.itemCategoryId : itemFormData.value.itemCategoryId // 设备检定项分类名称id - // itemFormData.value.appearanceFunctionCheck = `${res.data.appearanceFunctionCheck}` // 外观(1/0) - // itemFormData.value.insulationResistance = `${res.data.insulationResistance}` // 绝缘电阻输入数据 - // itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.appearance = `${res.data.appearance}` // 外观(1/0) + itemFormData.value.isShowAppearance = `${res.data.appearance}` !== '' // 是否展示外观 + itemFormData.value.isShowInsulationResistance = `${res.data.insulationResistanceValue}` !== '' // 绝缘电阻输入数据--判断是否展示 + itemFormData.value.insulationResistanceValue = res.data.insulationResistanceValue // 绝缘电阻值 + itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` !== '' // 是否展示角度调整误差(可调整角度仪表) + itemFormData.value.angleAdjustError = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.remark = res.data.remark // 备注 // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== - // list.value = res.data.measureDataPistonGaugeList.map((item: IDetailMeasureList) => { - // return { - // ...item, - // editable: pageType.value !== 'detail', - // } - // }) // 检定数据 + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '1') + thermostaticBathEvenList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '2') + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = res.data.measureDataResistanceThermometerList.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` !== '2') + resistanceFranchiseList.value = resistanceFranchiseList.value.map((item) => { + return { + ...item, + editable: props.pageType !== 'detail', + params: '允差', + } + }) + resistanceResultList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` === '2') + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + resistanceResultList.value = resistanceResultList.value.map((item: { item: string }) => { + return { + ...item, + editable: props.pageType !== 'detail', + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.rankLevel = resistanceResultList.value.length ? resistanceResultList.value[0].rankLevel : '' + } infoId.value = res.data.id emits('giveInfoId', infoId.value) @@ -356,7 +384,7 @@ maxValue: '', // 最大值 minValue: '', // 最小值 volatility: '', // 波动性 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) // 恒温槽均匀性 thermostaticBathEvenList.value.push({ @@ -379,7 +407,7 @@ lowerTemperatureDifferent: '', // 下水平面温差 maxHorizontalTemperatureDifferent: '', // 水平最大温差 maxWorkTemperatureDifferent: '', // 工作区域最大温差 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) } } @@ -398,7 +426,7 @@ indicatingErrorReverseStroke: 0, // 示值误差反行程 maximumError: item.maximumError, // 最大允许误差 urel: item.urel, // 扩展不确定度U - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) } @@ -409,6 +437,7 @@ id: '', params: '允差', dataType: '1', // 用于区分两个表格 + dataCategory: '1', nominalTemperature: item.nominalTemperature, // 标称温度 oneValue: 0, // 1 标准器示值 twoValue: 0, // 1 被检示值 @@ -424,58 +453,114 @@ twelveValue: 0, // 被检示值6 thirteenValue: 0, // 标准器示值均值 fourteenValue: 0, // 被检示值均值 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) // 结果表格 resistanceResultList.value = [ { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(0℃)/Ω', // 项目 + itemTitleFront: 'R\'(0℃)/Ω', // 项目 allowErrorLower: data[0].allowErrorLower, // 允差下限 data[0] 是 0℃ allowErrorUpper: data[0].allowErrorUpper, // 允差上限 data[0] 是 0℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[0].rValue, // R值 + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(100℃)/Ω', // 项目 + itemTitleFront: 'R\'(100℃)/Ω', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[1].rValue, // R值 + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'α', // 项目 + itemTitleFront: 'α', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(0℃)/℃', // 项目 + itemTitleFront: '△t(0℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(100℃)/℃', // 项目 + itemTitleFront: '△t(100℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', - item: '△α/10-6℃-1', // 项目 + dataId: '', + dataCategory: '2', + dataType: '1', + item: '△α', + itemTitleFront: '△α/10-6℃-1', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, ] } @@ -497,6 +582,7 @@ itemFormData.value.isShowAppearance = `${res.data.appearanceFunctionCheck}` === '1' // 外观(1/0) itemFormData.value.isShowInsulationResistance = `${res.data.insulateResistance}` === '1' // 绝缘电阻输入数据 itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` === '1' // 角度调整误差(可调整角度仪表) + itemFormData.value.rankLevel = res.data.measureItemDataResistanceThermometerList[0].level // 级别 initInputData(res.data.measureItemDataResistanceThermometerList) }) } @@ -504,13 +590,64 @@ // ----------------------------------------点击保存时校验--------------------------------------- // 校验 const checkout = () => { + if (itemFormData.value.itemCategoryName === '恒温槽') { + if (!thermostaticBathWaveList.value.length) { + ElMessage.warning('波动性测试不能为空') + return false + } + if (!thermostaticBathEvenList.value.length) { + ElMessage.warning('均匀性测试不能为空') + return false + } + } + else { + if (itemFormData.value.itemCategoryName !== '恒温槽' && `${itemFormData.value.insulationResistanceValue}` === '') { + ElMessage.warning('绝缘电阻不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '双金属温度计' && !bimetalThermometerList.value.length) { + ElMessage.warning('示值误差不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻' && !resistanceFranchiseList.value.length) { + ElMessage.warning('允差不能为空') + return false + } + } + return true } // -----------------------------------------生成结果处理---------------------------------------- +// 计算双金属温度计、工业铂铜热电阻结论 +function caculateConclusion() { + if (itemFormData.value.itemCategoryName === '双金属温度计') { + // (如果外观检查合格,示值误差均在最大允许误差内,补充设备性能正常;否则为设备性能异常) + return bimetalThermometerList.value.every((item: IDetailMeasureList) => { + const tempMaximumError = Number(`${item.maximumError}`.slice(1)) // 去掉正负号的最大允许误差 + return Math.abs(Number(item.indicatingErrorForwardStroke)) < Math.abs(tempMaximumError) + && Math.abs(Number(item.indicatingErrorReverseStroke)) < Math.abs(tempMaximumError) + && `${itemFormData.value.appearance}` === '1' + }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + // 根据公式计算,如果外观检查合格、测量值在允差下限、允差上限内,则自动补充合格,否则为不合格 + return resistanceResultList.value.every((item: IDetailMeasureList) => { + if (item.allowErrorLower !== '/' && item.allowErrorUpper !== '/') { + return Number(item.measureValue) > Number(item.allowErrorLower) + && Number(item.measureValue) < Number(item.allowErrorUpper) + && `${itemFormData.value.appearance}` === '1' + } + else { + return true + } + }) + } +} + /** * 点击生成结果处理 * @param type top上面表格 bottom下面表格 */ -const createResult = (type: 'top' | 'bottom') => { +function createResult(type: 'top' | 'bottom') { let list = [] as IDetailMeasureList[] let columns = [] as any let title = '' // 提醒标题 @@ -522,6 +659,10 @@ else if (itemFormData.value.itemCategoryName === '双金属温度计') { list = bimetalThermometerList.value } + else if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + list = type === 'top' ? resistanceFranchiseList.value : resistanceResultList.value + title = type === 'top' ? '允差' : '结果处理' + } if (!list.length) { ElMessage.warning('没有检定项数据,无法生成结果') return false @@ -538,7 +679,7 @@ } calculateHandle(params).then((res) => { if (res.data && res.data.length) { - res.data.map((item: { editable: boolean }) => { item.editable = pageType.value !== 'detail'; return item }) + res.data.map((item: { editable: boolean }) => { item.editable = props.pageType !== 'detail'; return item }) if (type === 'top') { switch (itemFormData.value.itemCategoryName) { case '恒温槽': @@ -546,6 +687,10 @@ break case '双金属温度计': bimetalThermometerList.value = res.data.map((item: { params: string }) => { item.params = '示值误差'; return item }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + break + case '工业铂铜热电阻': + resistanceFranchiseList.value = res.data.map((item: { params: string }) => { item.params = '允差'; return item }) break default: break @@ -556,6 +701,15 @@ case '恒温槽': thermostaticBathEvenList.value = res.data break + case '工业铂铜热电阻': + resistanceResultList.value = res.data.map((item: { item: string }) => { + return { + ...item, + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + break default: break } @@ -564,6 +718,7 @@ tableTop.value = false tableBottom.value = false + emits('changePageType', 'detail') }).catch(() => { tableTop.value = false; tableBottom.value = false }) } @@ -581,33 +736,44 @@ } }, { immediate: true }) +watch(() => props.pageType, (newValue) => { + if (newValue) { + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = bimetalThermometerList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = resistanceFranchiseList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + resistanceResultList.value = resistanceResultList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + } +}) + onMounted(() => { - if (pageType.value === 'add') { // 从我的任务跳转过来(新增) + itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 + itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id + itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code + itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 + if (props.pageType === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string // 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 - // fetchInfo() + fetchInfo() } }) - -defineExpose({ checkout, itemFormData, templateFormAndTableRef, pageType }) +defineExpose({ checkout, itemFormData, templateFormAndTableRef, thermostaticBathWaveList, thermostaticBathEvenList, bimetalThermometerList, resistanceFranchiseList, resistanceResultList }) - + - - + + {{ item.name }} @@ -625,7 +791,7 @@ - + - + - + 计算结果 @@ -669,14 +835,14 @@ v-loading="tableTop" :table-data="thermostaticBathWaveList" :table-header="columns_thermostatic_bath_wave" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -685,16 +851,16 @@ v-loading="tableBottom" :table-data="thermostaticBathEvenList" :table-header="columns_thermostatic_bath_even" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -710,13 +876,20 @@ - - - - 计算结果 - - + + + + 允差 + 级别: {{ itemFormData.rankLevel }} + + + + 计算结果 + + + - - + + 计算结果 + - + @@ -783,15 +958,15 @@ v-model="itemFormData.remark" autosize type="textarea" - :disabled="pageType === 'detail'" - :placeholder="pageType === 'detail' ? ' ' : '请输入备注'" + :disabled="props.pageType === 'detail'" + :placeholder="props.pageType === 'detail' ? ' ' : '请输入备注'" /> - + diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts index f8945fc..028db1a 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts +++ b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts @@ -17,7 +17,7 @@ minValue?: string // 最小值 nominalTemperature?: string // 标称温度 nominalValue?: string // α标称值(字典value),该参数在结果处理表中每行都要传 - rank?: string // 级别(字典value),该参数在结果处理表中每行都要传 + rankLevel?: string // 级别(字典value),该参数在结果处理表中每行都要传 rtp?: string // rvalue?: string // unit?: string // 单位 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue index 87d51fa..d603442 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue @@ -21,8 +21,9 @@ const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 + pageType: String, }) -const emits = defineEmits(['giveInfoId']) +const emits = defineEmits(['giveInfoId', 'changePageType']) const user = useUserStore() // 用户信息 const $router = useRouter() // 关闭页面使用 const $route = useRoute() // 路由参数 @@ -42,17 +43,16 @@ angleAdjustError: '1', // 角度调整误差(可调整角度仪表) isShowAngleAdjustErrort: false, // 角度调整误差(可调整角度仪表)输入数据--判断是否展示 - conclusion: '', // 检验结论 + resultConclusion: '', // 检验结论 remark: '', // 备注 + + rankLevel: '', // 级别(工业铂铜热电阻) }) const tableTop = ref(false) // 上面表格loading const tableBottom = ref(false) // 下面表格loading // -------------------------------------------路由参数------------------------------------------ -const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // 列表id if ($route.params && $route.params.type) { - pageType.value = $route.params.type as string - if ($route.params.id) { infoId.value = $route.params.id as string } @@ -186,7 +186,7 @@ // ==============================工业铂铜热电阻======================= const resistanceFranchiseList = ref([]) // 允差表格数据 -const resistanceResultList = ref([]) // 结果处理表格数据 +const resistanceResultList = ref([]) as any // 结果处理表格数据 const columns_resistance_franchise = ref([ // 允差表头 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, @@ -264,15 +264,15 @@ width: '180', required: true, children: [ - { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'inputNumber' }, - { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'inputNumber' }, + { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'text' }, + { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'text' }, ], }, ]) // 结果处理表格 const columns_resistance_result = ref([ // 结果处理表头 - { text: '项目', value: 'item', align: 'center', required: true }, + { text: '项目', value: 'itemTitleFront', align: 'center', required: true }, { text: '允差下限', value: 'allowErrorLower', align: 'center', required: true }, { text: '允差上限', value: 'allowErrorUpper', align: 'center', required: true }, { text: '测量值', value: 'measureValue', align: 'center', required: true }, @@ -297,19 +297,47 @@ itemFormData.value.itemId = res.data.itemId // 检定项id itemFormData.value.itemCategoryName = res.data.itemCategoryName // 设备检定项分类名称 itemFormData.value.itemCategoryId = res.data.itemCategoryId ? res.data.itemCategoryId : itemFormData.value.itemCategoryId // 设备检定项分类名称id - // itemFormData.value.appearanceFunctionCheck = `${res.data.appearanceFunctionCheck}` // 外观(1/0) - // itemFormData.value.insulationResistance = `${res.data.insulationResistance}` // 绝缘电阻输入数据 - // itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.appearance = `${res.data.appearance}` // 外观(1/0) + itemFormData.value.isShowAppearance = `${res.data.appearance}` !== '' // 是否展示外观 + itemFormData.value.isShowInsulationResistance = `${res.data.insulationResistanceValue}` !== '' // 绝缘电阻输入数据--判断是否展示 + itemFormData.value.insulationResistanceValue = res.data.insulationResistanceValue // 绝缘电阻值 + itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` !== '' // 是否展示角度调整误差(可调整角度仪表) + itemFormData.value.angleAdjustError = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.remark = res.data.remark // 备注 // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== - // list.value = res.data.measureDataPistonGaugeList.map((item: IDetailMeasureList) => { - // return { - // ...item, - // editable: pageType.value !== 'detail', - // } - // }) // 检定数据 + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '1') + thermostaticBathEvenList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '2') + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = res.data.measureDataResistanceThermometerList.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` !== '2') + resistanceFranchiseList.value = resistanceFranchiseList.value.map((item) => { + return { + ...item, + editable: props.pageType !== 'detail', + params: '允差', + } + }) + resistanceResultList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` === '2') + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + resistanceResultList.value = resistanceResultList.value.map((item: { item: string }) => { + return { + ...item, + editable: props.pageType !== 'detail', + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.rankLevel = resistanceResultList.value.length ? resistanceResultList.value[0].rankLevel : '' + } infoId.value = res.data.id emits('giveInfoId', infoId.value) @@ -356,7 +384,7 @@ maxValue: '', // 最大值 minValue: '', // 最小值 volatility: '', // 波动性 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) // 恒温槽均匀性 thermostaticBathEvenList.value.push({ @@ -379,7 +407,7 @@ lowerTemperatureDifferent: '', // 下水平面温差 maxHorizontalTemperatureDifferent: '', // 水平最大温差 maxWorkTemperatureDifferent: '', // 工作区域最大温差 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) } } @@ -398,7 +426,7 @@ indicatingErrorReverseStroke: 0, // 示值误差反行程 maximumError: item.maximumError, // 最大允许误差 urel: item.urel, // 扩展不确定度U - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) } @@ -409,6 +437,7 @@ id: '', params: '允差', dataType: '1', // 用于区分两个表格 + dataCategory: '1', nominalTemperature: item.nominalTemperature, // 标称温度 oneValue: 0, // 1 标准器示值 twoValue: 0, // 1 被检示值 @@ -424,58 +453,114 @@ twelveValue: 0, // 被检示值6 thirteenValue: 0, // 标准器示值均值 fourteenValue: 0, // 被检示值均值 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) // 结果表格 resistanceResultList.value = [ { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(0℃)/Ω', // 项目 + itemTitleFront: 'R\'(0℃)/Ω', // 项目 allowErrorLower: data[0].allowErrorLower, // 允差下限 data[0] 是 0℃ allowErrorUpper: data[0].allowErrorUpper, // 允差上限 data[0] 是 0℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[0].rValue, // R值 + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(100℃)/Ω', // 项目 + itemTitleFront: 'R\'(100℃)/Ω', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[1].rValue, // R值 + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'α', // 项目 + itemTitleFront: 'α', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(0℃)/℃', // 项目 + itemTitleFront: '△t(0℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(100℃)/℃', // 项目 + itemTitleFront: '△t(100℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', - item: '△α/10-6℃-1', // 项目 + dataId: '', + dataCategory: '2', + dataType: '1', + item: '△α', + itemTitleFront: '△α/10-6℃-1', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, ] } @@ -497,6 +582,7 @@ itemFormData.value.isShowAppearance = `${res.data.appearanceFunctionCheck}` === '1' // 外观(1/0) itemFormData.value.isShowInsulationResistance = `${res.data.insulateResistance}` === '1' // 绝缘电阻输入数据 itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` === '1' // 角度调整误差(可调整角度仪表) + itemFormData.value.rankLevel = res.data.measureItemDataResistanceThermometerList[0].level // 级别 initInputData(res.data.measureItemDataResistanceThermometerList) }) } @@ -504,13 +590,64 @@ // ----------------------------------------点击保存时校验--------------------------------------- // 校验 const checkout = () => { + if (itemFormData.value.itemCategoryName === '恒温槽') { + if (!thermostaticBathWaveList.value.length) { + ElMessage.warning('波动性测试不能为空') + return false + } + if (!thermostaticBathEvenList.value.length) { + ElMessage.warning('均匀性测试不能为空') + return false + } + } + else { + if (itemFormData.value.itemCategoryName !== '恒温槽' && `${itemFormData.value.insulationResistanceValue}` === '') { + ElMessage.warning('绝缘电阻不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '双金属温度计' && !bimetalThermometerList.value.length) { + ElMessage.warning('示值误差不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻' && !resistanceFranchiseList.value.length) { + ElMessage.warning('允差不能为空') + return false + } + } + return true } // -----------------------------------------生成结果处理---------------------------------------- +// 计算双金属温度计、工业铂铜热电阻结论 +function caculateConclusion() { + if (itemFormData.value.itemCategoryName === '双金属温度计') { + // (如果外观检查合格,示值误差均在最大允许误差内,补充设备性能正常;否则为设备性能异常) + return bimetalThermometerList.value.every((item: IDetailMeasureList) => { + const tempMaximumError = Number(`${item.maximumError}`.slice(1)) // 去掉正负号的最大允许误差 + return Math.abs(Number(item.indicatingErrorForwardStroke)) < Math.abs(tempMaximumError) + && Math.abs(Number(item.indicatingErrorReverseStroke)) < Math.abs(tempMaximumError) + && `${itemFormData.value.appearance}` === '1' + }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + // 根据公式计算,如果外观检查合格、测量值在允差下限、允差上限内,则自动补充合格,否则为不合格 + return resistanceResultList.value.every((item: IDetailMeasureList) => { + if (item.allowErrorLower !== '/' && item.allowErrorUpper !== '/') { + return Number(item.measureValue) > Number(item.allowErrorLower) + && Number(item.measureValue) < Number(item.allowErrorUpper) + && `${itemFormData.value.appearance}` === '1' + } + else { + return true + } + }) + } +} + /** * 点击生成结果处理 * @param type top上面表格 bottom下面表格 */ -const createResult = (type: 'top' | 'bottom') => { +function createResult(type: 'top' | 'bottom') { let list = [] as IDetailMeasureList[] let columns = [] as any let title = '' // 提醒标题 @@ -522,6 +659,10 @@ else if (itemFormData.value.itemCategoryName === '双金属温度计') { list = bimetalThermometerList.value } + else if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + list = type === 'top' ? resistanceFranchiseList.value : resistanceResultList.value + title = type === 'top' ? '允差' : '结果处理' + } if (!list.length) { ElMessage.warning('没有检定项数据,无法生成结果') return false @@ -538,7 +679,7 @@ } calculateHandle(params).then((res) => { if (res.data && res.data.length) { - res.data.map((item: { editable: boolean }) => { item.editable = pageType.value !== 'detail'; return item }) + res.data.map((item: { editable: boolean }) => { item.editable = props.pageType !== 'detail'; return item }) if (type === 'top') { switch (itemFormData.value.itemCategoryName) { case '恒温槽': @@ -546,6 +687,10 @@ break case '双金属温度计': bimetalThermometerList.value = res.data.map((item: { params: string }) => { item.params = '示值误差'; return item }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + break + case '工业铂铜热电阻': + resistanceFranchiseList.value = res.data.map((item: { params: string }) => { item.params = '允差'; return item }) break default: break @@ -556,6 +701,15 @@ case '恒温槽': thermostaticBathEvenList.value = res.data break + case '工业铂铜热电阻': + resistanceResultList.value = res.data.map((item: { item: string }) => { + return { + ...item, + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + break default: break } @@ -564,6 +718,7 @@ tableTop.value = false tableBottom.value = false + emits('changePageType', 'detail') }).catch(() => { tableTop.value = false; tableBottom.value = false }) } @@ -581,33 +736,44 @@ } }, { immediate: true }) +watch(() => props.pageType, (newValue) => { + if (newValue) { + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = bimetalThermometerList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = resistanceFranchiseList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + resistanceResultList.value = resistanceResultList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + } +}) + onMounted(() => { - if (pageType.value === 'add') { // 从我的任务跳转过来(新增) + itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 + itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id + itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code + itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 + if (props.pageType === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string // 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 - // fetchInfo() + fetchInfo() } }) - -defineExpose({ checkout, itemFormData, templateFormAndTableRef, pageType }) +defineExpose({ checkout, itemFormData, templateFormAndTableRef, thermostaticBathWaveList, thermostaticBathEvenList, bimetalThermometerList, resistanceFranchiseList, resistanceResultList }) - + - - + + {{ item.name }} @@ -625,7 +791,7 @@ - + - + - + 计算结果 @@ -669,14 +835,14 @@ v-loading="tableTop" :table-data="thermostaticBathWaveList" :table-header="columns_thermostatic_bath_wave" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -685,16 +851,16 @@ v-loading="tableBottom" :table-data="thermostaticBathEvenList" :table-header="columns_thermostatic_bath_even" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -710,13 +876,20 @@ - - - - 计算结果 - - + + + + 允差 + 级别: {{ itemFormData.rankLevel }} + + + + 计算结果 + + + - - + + 计算结果 + - + @@ -783,15 +958,15 @@ v-model="itemFormData.remark" autosize type="textarea" - :disabled="pageType === 'detail'" - :placeholder="pageType === 'detail' ? ' ' : '请输入备注'" + :disabled="props.pageType === 'detail'" + :placeholder="props.pageType === 'detail' ? ' ' : '请输入备注'" /> - + diff --git a/src/views/business/taskMeasure/measureData/detail.vue b/src/views/business/taskMeasure/measureData/detail.vue index 9f9014c..c441f8e 100644 --- a/src/views/business/taskMeasure/measureData/detail.vue +++ b/src/views/business/taskMeasure/measureData/detail.vue @@ -128,6 +128,28 @@ id: pageType.value === 'edit' ? infoId.value : '', } } + else if (belongStandardEquipment.value === '5') { // 第5套:二等铂 + let list = [] + if (itemCategoryName.value === '恒温槽') { + list = templateDetailRef.value.thermostaticBathWaveList.concat(templateDetailRef.value.thermostaticBathEvenList) + } + else if (itemCategoryName.value === '双金属温度计') { + list = templateDetailRef.value.bimetalThermometerList + } + else if (itemCategoryName.value === '工业铂铜热电阻') { + list = templateDetailRef.value.resistanceFranchiseList.concat(templateDetailRef.value.resistanceResultList) + } + params = { + ...templateDetailRef.value.templateFormAndTableRef.form, + ...templateDetailRef.value.itemFormData, + ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息 + customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示) + model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号 + equipmentIds: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string }) => item.id), + measureDataResistanceThermometerList: list, // 检定数据 + id: pageType.value === 'edit' ? infoId.value : '', + } + } else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 params = { ...templateDetailRef.value.itemFormData, @@ -156,19 +178,11 @@ else if (belongStandardEquipment.value === '2') { // 第二套 直流稳压电源 return templateDetailRef.value.checkAllList() && templateDetailRef.value.templateFormAndTableRef.checkout() } - else if (belongStandardEquipment.value === '3') { // 第3套:多功能电气安全校准器 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '4') { // 第四套:0.02活塞式压力计 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 + // 第3套:多功能电气安全校准器、第四套:0.02活塞式压力计、第5套:二等铂、第六套 安全阀 + else if (belongStandardEquipment.value === '3' + || belongStandardEquipment.value === '4' + || belongStandardEquipment.value === '5' + || belongStandardEquipment.value === '6') { return templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout() } } @@ -237,6 +251,10 @@ infoId.value = id } +const changePageType = (type: string) => { + pageType.value = type +} + // -------------------------------------------钩子-------------------------------------------------- onMounted(async () => { itemCategoryName.value = $route.query.itemCategoryName as string || '' // 检定项分类名称 @@ -276,7 +294,7 @@ - + diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts index f8945fc..028db1a 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts +++ b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts @@ -17,7 +17,7 @@ minValue?: string // 最小值 nominalTemperature?: string // 标称温度 nominalValue?: string // α标称值(字典value),该参数在结果处理表中每行都要传 - rank?: string // 级别(字典value),该参数在结果处理表中每行都要传 + rankLevel?: string // 级别(字典value),该参数在结果处理表中每行都要传 rtp?: string // rvalue?: string // unit?: string // 单位 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue index 87d51fa..d603442 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue @@ -21,8 +21,9 @@ const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 + pageType: String, }) -const emits = defineEmits(['giveInfoId']) +const emits = defineEmits(['giveInfoId', 'changePageType']) const user = useUserStore() // 用户信息 const $router = useRouter() // 关闭页面使用 const $route = useRoute() // 路由参数 @@ -42,17 +43,16 @@ angleAdjustError: '1', // 角度调整误差(可调整角度仪表) isShowAngleAdjustErrort: false, // 角度调整误差(可调整角度仪表)输入数据--判断是否展示 - conclusion: '', // 检验结论 + resultConclusion: '', // 检验结论 remark: '', // 备注 + + rankLevel: '', // 级别(工业铂铜热电阻) }) const tableTop = ref(false) // 上面表格loading const tableBottom = ref(false) // 下面表格loading // -------------------------------------------路由参数------------------------------------------ -const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // 列表id if ($route.params && $route.params.type) { - pageType.value = $route.params.type as string - if ($route.params.id) { infoId.value = $route.params.id as string } @@ -186,7 +186,7 @@ // ==============================工业铂铜热电阻======================= const resistanceFranchiseList = ref([]) // 允差表格数据 -const resistanceResultList = ref([]) // 结果处理表格数据 +const resistanceResultList = ref([]) as any // 结果处理表格数据 const columns_resistance_franchise = ref([ // 允差表头 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, @@ -264,15 +264,15 @@ width: '180', required: true, children: [ - { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'inputNumber' }, - { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'inputNumber' }, + { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'text' }, + { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'text' }, ], }, ]) // 结果处理表格 const columns_resistance_result = ref([ // 结果处理表头 - { text: '项目', value: 'item', align: 'center', required: true }, + { text: '项目', value: 'itemTitleFront', align: 'center', required: true }, { text: '允差下限', value: 'allowErrorLower', align: 'center', required: true }, { text: '允差上限', value: 'allowErrorUpper', align: 'center', required: true }, { text: '测量值', value: 'measureValue', align: 'center', required: true }, @@ -297,19 +297,47 @@ itemFormData.value.itemId = res.data.itemId // 检定项id itemFormData.value.itemCategoryName = res.data.itemCategoryName // 设备检定项分类名称 itemFormData.value.itemCategoryId = res.data.itemCategoryId ? res.data.itemCategoryId : itemFormData.value.itemCategoryId // 设备检定项分类名称id - // itemFormData.value.appearanceFunctionCheck = `${res.data.appearanceFunctionCheck}` // 外观(1/0) - // itemFormData.value.insulationResistance = `${res.data.insulationResistance}` // 绝缘电阻输入数据 - // itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.appearance = `${res.data.appearance}` // 外观(1/0) + itemFormData.value.isShowAppearance = `${res.data.appearance}` !== '' // 是否展示外观 + itemFormData.value.isShowInsulationResistance = `${res.data.insulationResistanceValue}` !== '' // 绝缘电阻输入数据--判断是否展示 + itemFormData.value.insulationResistanceValue = res.data.insulationResistanceValue // 绝缘电阻值 + itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` !== '' // 是否展示角度调整误差(可调整角度仪表) + itemFormData.value.angleAdjustError = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.remark = res.data.remark // 备注 // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== - // list.value = res.data.measureDataPistonGaugeList.map((item: IDetailMeasureList) => { - // return { - // ...item, - // editable: pageType.value !== 'detail', - // } - // }) // 检定数据 + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '1') + thermostaticBathEvenList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '2') + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = res.data.measureDataResistanceThermometerList.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` !== '2') + resistanceFranchiseList.value = resistanceFranchiseList.value.map((item) => { + return { + ...item, + editable: props.pageType !== 'detail', + params: '允差', + } + }) + resistanceResultList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` === '2') + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + resistanceResultList.value = resistanceResultList.value.map((item: { item: string }) => { + return { + ...item, + editable: props.pageType !== 'detail', + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.rankLevel = resistanceResultList.value.length ? resistanceResultList.value[0].rankLevel : '' + } infoId.value = res.data.id emits('giveInfoId', infoId.value) @@ -356,7 +384,7 @@ maxValue: '', // 最大值 minValue: '', // 最小值 volatility: '', // 波动性 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) // 恒温槽均匀性 thermostaticBathEvenList.value.push({ @@ -379,7 +407,7 @@ lowerTemperatureDifferent: '', // 下水平面温差 maxHorizontalTemperatureDifferent: '', // 水平最大温差 maxWorkTemperatureDifferent: '', // 工作区域最大温差 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) } } @@ -398,7 +426,7 @@ indicatingErrorReverseStroke: 0, // 示值误差反行程 maximumError: item.maximumError, // 最大允许误差 urel: item.urel, // 扩展不确定度U - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) } @@ -409,6 +437,7 @@ id: '', params: '允差', dataType: '1', // 用于区分两个表格 + dataCategory: '1', nominalTemperature: item.nominalTemperature, // 标称温度 oneValue: 0, // 1 标准器示值 twoValue: 0, // 1 被检示值 @@ -424,58 +453,114 @@ twelveValue: 0, // 被检示值6 thirteenValue: 0, // 标准器示值均值 fourteenValue: 0, // 被检示值均值 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) // 结果表格 resistanceResultList.value = [ { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(0℃)/Ω', // 项目 + itemTitleFront: 'R\'(0℃)/Ω', // 项目 allowErrorLower: data[0].allowErrorLower, // 允差下限 data[0] 是 0℃ allowErrorUpper: data[0].allowErrorUpper, // 允差上限 data[0] 是 0℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[0].rValue, // R值 + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(100℃)/Ω', // 项目 + itemTitleFront: 'R\'(100℃)/Ω', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[1].rValue, // R值 + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'α', // 项目 + itemTitleFront: 'α', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(0℃)/℃', // 项目 + itemTitleFront: '△t(0℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(100℃)/℃', // 项目 + itemTitleFront: '△t(100℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', - item: '△α/10-6℃-1', // 项目 + dataId: '', + dataCategory: '2', + dataType: '1', + item: '△α', + itemTitleFront: '△α/10-6℃-1', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, ] } @@ -497,6 +582,7 @@ itemFormData.value.isShowAppearance = `${res.data.appearanceFunctionCheck}` === '1' // 外观(1/0) itemFormData.value.isShowInsulationResistance = `${res.data.insulateResistance}` === '1' // 绝缘电阻输入数据 itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` === '1' // 角度调整误差(可调整角度仪表) + itemFormData.value.rankLevel = res.data.measureItemDataResistanceThermometerList[0].level // 级别 initInputData(res.data.measureItemDataResistanceThermometerList) }) } @@ -504,13 +590,64 @@ // ----------------------------------------点击保存时校验--------------------------------------- // 校验 const checkout = () => { + if (itemFormData.value.itemCategoryName === '恒温槽') { + if (!thermostaticBathWaveList.value.length) { + ElMessage.warning('波动性测试不能为空') + return false + } + if (!thermostaticBathEvenList.value.length) { + ElMessage.warning('均匀性测试不能为空') + return false + } + } + else { + if (itemFormData.value.itemCategoryName !== '恒温槽' && `${itemFormData.value.insulationResistanceValue}` === '') { + ElMessage.warning('绝缘电阻不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '双金属温度计' && !bimetalThermometerList.value.length) { + ElMessage.warning('示值误差不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻' && !resistanceFranchiseList.value.length) { + ElMessage.warning('允差不能为空') + return false + } + } + return true } // -----------------------------------------生成结果处理---------------------------------------- +// 计算双金属温度计、工业铂铜热电阻结论 +function caculateConclusion() { + if (itemFormData.value.itemCategoryName === '双金属温度计') { + // (如果外观检查合格,示值误差均在最大允许误差内,补充设备性能正常;否则为设备性能异常) + return bimetalThermometerList.value.every((item: IDetailMeasureList) => { + const tempMaximumError = Number(`${item.maximumError}`.slice(1)) // 去掉正负号的最大允许误差 + return Math.abs(Number(item.indicatingErrorForwardStroke)) < Math.abs(tempMaximumError) + && Math.abs(Number(item.indicatingErrorReverseStroke)) < Math.abs(tempMaximumError) + && `${itemFormData.value.appearance}` === '1' + }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + // 根据公式计算,如果外观检查合格、测量值在允差下限、允差上限内,则自动补充合格,否则为不合格 + return resistanceResultList.value.every((item: IDetailMeasureList) => { + if (item.allowErrorLower !== '/' && item.allowErrorUpper !== '/') { + return Number(item.measureValue) > Number(item.allowErrorLower) + && Number(item.measureValue) < Number(item.allowErrorUpper) + && `${itemFormData.value.appearance}` === '1' + } + else { + return true + } + }) + } +} + /** * 点击生成结果处理 * @param type top上面表格 bottom下面表格 */ -const createResult = (type: 'top' | 'bottom') => { +function createResult(type: 'top' | 'bottom') { let list = [] as IDetailMeasureList[] let columns = [] as any let title = '' // 提醒标题 @@ -522,6 +659,10 @@ else if (itemFormData.value.itemCategoryName === '双金属温度计') { list = bimetalThermometerList.value } + else if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + list = type === 'top' ? resistanceFranchiseList.value : resistanceResultList.value + title = type === 'top' ? '允差' : '结果处理' + } if (!list.length) { ElMessage.warning('没有检定项数据,无法生成结果') return false @@ -538,7 +679,7 @@ } calculateHandle(params).then((res) => { if (res.data && res.data.length) { - res.data.map((item: { editable: boolean }) => { item.editable = pageType.value !== 'detail'; return item }) + res.data.map((item: { editable: boolean }) => { item.editable = props.pageType !== 'detail'; return item }) if (type === 'top') { switch (itemFormData.value.itemCategoryName) { case '恒温槽': @@ -546,6 +687,10 @@ break case '双金属温度计': bimetalThermometerList.value = res.data.map((item: { params: string }) => { item.params = '示值误差'; return item }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + break + case '工业铂铜热电阻': + resistanceFranchiseList.value = res.data.map((item: { params: string }) => { item.params = '允差'; return item }) break default: break @@ -556,6 +701,15 @@ case '恒温槽': thermostaticBathEvenList.value = res.data break + case '工业铂铜热电阻': + resistanceResultList.value = res.data.map((item: { item: string }) => { + return { + ...item, + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + break default: break } @@ -564,6 +718,7 @@ tableTop.value = false tableBottom.value = false + emits('changePageType', 'detail') }).catch(() => { tableTop.value = false; tableBottom.value = false }) } @@ -581,33 +736,44 @@ } }, { immediate: true }) +watch(() => props.pageType, (newValue) => { + if (newValue) { + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = bimetalThermometerList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = resistanceFranchiseList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + resistanceResultList.value = resistanceResultList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + } +}) + onMounted(() => { - if (pageType.value === 'add') { // 从我的任务跳转过来(新增) + itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 + itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id + itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code + itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 + if (props.pageType === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string // 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 - // fetchInfo() + fetchInfo() } }) - -defineExpose({ checkout, itemFormData, templateFormAndTableRef, pageType }) +defineExpose({ checkout, itemFormData, templateFormAndTableRef, thermostaticBathWaveList, thermostaticBathEvenList, bimetalThermometerList, resistanceFranchiseList, resistanceResultList }) - + - - + + {{ item.name }} @@ -625,7 +791,7 @@ - + - + - + 计算结果 @@ -669,14 +835,14 @@ v-loading="tableTop" :table-data="thermostaticBathWaveList" :table-header="columns_thermostatic_bath_wave" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -685,16 +851,16 @@ v-loading="tableBottom" :table-data="thermostaticBathEvenList" :table-header="columns_thermostatic_bath_even" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -710,13 +876,20 @@ - - - - 计算结果 - - + + + + 允差 + 级别: {{ itemFormData.rankLevel }} + + + + 计算结果 + + + - - + + 计算结果 + - + @@ -783,15 +958,15 @@ v-model="itemFormData.remark" autosize type="textarea" - :disabled="pageType === 'detail'" - :placeholder="pageType === 'detail' ? ' ' : '请输入备注'" + :disabled="props.pageType === 'detail'" + :placeholder="props.pageType === 'detail' ? ' ' : '请输入备注'" /> - + diff --git a/src/views/business/taskMeasure/measureData/detail.vue b/src/views/business/taskMeasure/measureData/detail.vue index 9f9014c..c441f8e 100644 --- a/src/views/business/taskMeasure/measureData/detail.vue +++ b/src/views/business/taskMeasure/measureData/detail.vue @@ -128,6 +128,28 @@ id: pageType.value === 'edit' ? infoId.value : '', } } + else if (belongStandardEquipment.value === '5') { // 第5套:二等铂 + let list = [] + if (itemCategoryName.value === '恒温槽') { + list = templateDetailRef.value.thermostaticBathWaveList.concat(templateDetailRef.value.thermostaticBathEvenList) + } + else if (itemCategoryName.value === '双金属温度计') { + list = templateDetailRef.value.bimetalThermometerList + } + else if (itemCategoryName.value === '工业铂铜热电阻') { + list = templateDetailRef.value.resistanceFranchiseList.concat(templateDetailRef.value.resistanceResultList) + } + params = { + ...templateDetailRef.value.templateFormAndTableRef.form, + ...templateDetailRef.value.itemFormData, + ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息 + customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示) + model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号 + equipmentIds: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string }) => item.id), + measureDataResistanceThermometerList: list, // 检定数据 + id: pageType.value === 'edit' ? infoId.value : '', + } + } else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 params = { ...templateDetailRef.value.itemFormData, @@ -156,19 +178,11 @@ else if (belongStandardEquipment.value === '2') { // 第二套 直流稳压电源 return templateDetailRef.value.checkAllList() && templateDetailRef.value.templateFormAndTableRef.checkout() } - else if (belongStandardEquipment.value === '3') { // 第3套:多功能电气安全校准器 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '4') { // 第四套:0.02活塞式压力计 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 + // 第3套:多功能电气安全校准器、第四套:0.02活塞式压力计、第5套:二等铂、第六套 安全阀 + else if (belongStandardEquipment.value === '3' + || belongStandardEquipment.value === '4' + || belongStandardEquipment.value === '5' + || belongStandardEquipment.value === '6') { return templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout() } } @@ -237,6 +251,10 @@ infoId.value = id } +const changePageType = (type: string) => { + pageType.value = type +} + // -------------------------------------------钩子-------------------------------------------------- onMounted(async () => { itemCategoryName.value = $route.query.itemCategoryName as string || '' // 检定项分类名称 @@ -276,7 +294,7 @@ - + diff --git a/src/views/equipement/standard/book/components/config/fifth/config.vue b/src/views/equipement/standard/book/components/config/fifth/config.vue index 5516d38..135993b 100644 --- a/src/views/equipement/standard/book/components/config/fifth/config.vue +++ b/src/views/equipement/standard/book/components/config/fifth/config.vue @@ -56,8 +56,8 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '温度点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '循环次数', value: 'resolution', align: 'center', required: true }, - { text: '扩展不确定度U', value: 'cycleNumber', align: 'center', required: true }, + { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, + { text: '扩展不确定度U', value: 'urel', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, ]) @@ -65,8 +65,8 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '水三相点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '循环次数', value: 'resolution', align: 'center', required: true }, - { text: '允许值', value: 'resolution', align: 'center', required: true }, + { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, + { text: '允许值', value: 'allowValue', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, ]) @@ -74,7 +74,7 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '确认点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '最大允许误差', value: 'resolution', align: 'center', required: true }, + { text: '最大允许误差', value: 'maximumError', align: 'center', required: true }, ]) // 温度值多选 @@ -92,7 +92,9 @@ // 校验表格(点击保存的时候、增加行用) const checkList = (list: any, title: string) => { - // return useCheckList(list, columns.value, title) + let columns = [] + columns = title === '温度值' ? columns_temperature.value : title === 'RTP值' ? columns_RTP.value : columns_insulation_resistance.value + return useCheckList(list, columns, title) } /** @@ -101,39 +103,40 @@ * @param title 操作的表格 */ const addRow = (list: IList[], title: string) => { - // if (checkList(list, `${title}表格`)) { - // if (list.length) { // 增加行时默认上一行数据 - // list.push({ - // id: '', - // checkPoint: list[list.length - 1].checkPoint, // 核查点(直接存字典value) - // checkType: list[list.length - 1].checkType, // 核查类型 - // cycleNumber: list[list.length - 1].cycleNumber, // 循环次数 - // equipmentId: list[list.length - 1].equipmentId, // 配套设备id - // itemCategoryId: list[list.length - 1].itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) - // params: list[list.length - 1].params, // 核查项目(直接存字典value) - // remark: list[list.length - 1].remark, // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) - // resolution: list[list.length - 1].resolution, // 分辨力 - // testType: list[list.length - 1].testType, // 核查点类型(直接存字典value) - // unit: list[list.length - 1].unit, // 单位(直接存字典value) - // urel: list[list.length - 1].urel, // 测量标准相对扩展不确定度urel - // }) - // } - // else { - // list.push({ - // checkPoint: '', // 核查点 - // checkType: '', // 核查类型(直接存字典value,多个逗号分隔) - // cycleNumber: 6, // 循环次数 - // equipmentId: infoId.value, // 配套设备id - // itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) - // params: '', // 核查项目(直接存字典value) - // remark: '', // 核查项备注 - // resolution: 0.0001, // 分辨力 - // testType: title, // 核查点类型(直接存字典value) - // unit: '', // 单位(直接存字典value) - // urel: 0, // 测量标准相对扩展不确定度urel - // }) - // } - // } + if (checkList(list, `${title}表格`)) { + if (list.length) { // 增加行时默认上一行数据 + list.push({ + id: '', + params: title, // 核查项目 + checkPoint: list[list.length - 1].checkPoint, // 核查点(直接存字典value) + unit: list[list.length - 1].unit, // 单位(直接存字典value) + cycleNumber: list[list.length - 1].cycleNumber, // 循环次数 + urel: list[list.length - 1].urel, // 测量标准相对扩展不确定度urel + checkType: list[list.length - 1].checkType, // 核查类型 + equipmentId: list[list.length - 1].equipmentId, // 配套设备id + itemCategoryId: list[list.length - 1].itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) + remark: list[list.length - 1].remark, // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) + maximumError: list[list.length - 1].maximumError, // 最大允许误差 + allowValue: list[list.length - 1].allowValue, // 允许值 + }) + } + else { + list.push({ + id: '', + params: title, // 核查项目 + checkPoint: '', // 核查点(直接存字典value) + unit: title === ' 绝缘电阻表校准' ? 'MΩ' : '℃', // 单位(直接存字典value) + cycleNumber: 6, // 循环次数 + urel: 0, // 测量标准相对扩展不确定度urel + checkType: ['重复性', '稳定性'], // 核查类型 + equipmentId: infoId.value, // 配套设备id + itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) + remark: '', // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) + maximumError: '', // 最大允许误差 + allowValue: '', // 允许值 + }) + } + } } /** * 删除行公共方法 diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts index f8945fc..028db1a 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts +++ b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts @@ -17,7 +17,7 @@ minValue?: string // 最小值 nominalTemperature?: string // 标称温度 nominalValue?: string // α标称值(字典value),该参数在结果处理表中每行都要传 - rank?: string // 级别(字典value),该参数在结果处理表中每行都要传 + rankLevel?: string // 级别(字典value),该参数在结果处理表中每行都要传 rtp?: string // rvalue?: string // unit?: string // 单位 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue index 87d51fa..d603442 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue @@ -21,8 +21,9 @@ const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 + pageType: String, }) -const emits = defineEmits(['giveInfoId']) +const emits = defineEmits(['giveInfoId', 'changePageType']) const user = useUserStore() // 用户信息 const $router = useRouter() // 关闭页面使用 const $route = useRoute() // 路由参数 @@ -42,17 +43,16 @@ angleAdjustError: '1', // 角度调整误差(可调整角度仪表) isShowAngleAdjustErrort: false, // 角度调整误差(可调整角度仪表)输入数据--判断是否展示 - conclusion: '', // 检验结论 + resultConclusion: '', // 检验结论 remark: '', // 备注 + + rankLevel: '', // 级别(工业铂铜热电阻) }) const tableTop = ref(false) // 上面表格loading const tableBottom = ref(false) // 下面表格loading // -------------------------------------------路由参数------------------------------------------ -const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // 列表id if ($route.params && $route.params.type) { - pageType.value = $route.params.type as string - if ($route.params.id) { infoId.value = $route.params.id as string } @@ -186,7 +186,7 @@ // ==============================工业铂铜热电阻======================= const resistanceFranchiseList = ref([]) // 允差表格数据 -const resistanceResultList = ref([]) // 结果处理表格数据 +const resistanceResultList = ref([]) as any // 结果处理表格数据 const columns_resistance_franchise = ref([ // 允差表头 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, @@ -264,15 +264,15 @@ width: '180', required: true, children: [ - { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'inputNumber' }, - { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'inputNumber' }, + { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'text' }, + { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'text' }, ], }, ]) // 结果处理表格 const columns_resistance_result = ref([ // 结果处理表头 - { text: '项目', value: 'item', align: 'center', required: true }, + { text: '项目', value: 'itemTitleFront', align: 'center', required: true }, { text: '允差下限', value: 'allowErrorLower', align: 'center', required: true }, { text: '允差上限', value: 'allowErrorUpper', align: 'center', required: true }, { text: '测量值', value: 'measureValue', align: 'center', required: true }, @@ -297,19 +297,47 @@ itemFormData.value.itemId = res.data.itemId // 检定项id itemFormData.value.itemCategoryName = res.data.itemCategoryName // 设备检定项分类名称 itemFormData.value.itemCategoryId = res.data.itemCategoryId ? res.data.itemCategoryId : itemFormData.value.itemCategoryId // 设备检定项分类名称id - // itemFormData.value.appearanceFunctionCheck = `${res.data.appearanceFunctionCheck}` // 外观(1/0) - // itemFormData.value.insulationResistance = `${res.data.insulationResistance}` // 绝缘电阻输入数据 - // itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.appearance = `${res.data.appearance}` // 外观(1/0) + itemFormData.value.isShowAppearance = `${res.data.appearance}` !== '' // 是否展示外观 + itemFormData.value.isShowInsulationResistance = `${res.data.insulationResistanceValue}` !== '' // 绝缘电阻输入数据--判断是否展示 + itemFormData.value.insulationResistanceValue = res.data.insulationResistanceValue // 绝缘电阻值 + itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` !== '' // 是否展示角度调整误差(可调整角度仪表) + itemFormData.value.angleAdjustError = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.remark = res.data.remark // 备注 // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== - // list.value = res.data.measureDataPistonGaugeList.map((item: IDetailMeasureList) => { - // return { - // ...item, - // editable: pageType.value !== 'detail', - // } - // }) // 检定数据 + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '1') + thermostaticBathEvenList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '2') + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = res.data.measureDataResistanceThermometerList.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` !== '2') + resistanceFranchiseList.value = resistanceFranchiseList.value.map((item) => { + return { + ...item, + editable: props.pageType !== 'detail', + params: '允差', + } + }) + resistanceResultList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` === '2') + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + resistanceResultList.value = resistanceResultList.value.map((item: { item: string }) => { + return { + ...item, + editable: props.pageType !== 'detail', + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.rankLevel = resistanceResultList.value.length ? resistanceResultList.value[0].rankLevel : '' + } infoId.value = res.data.id emits('giveInfoId', infoId.value) @@ -356,7 +384,7 @@ maxValue: '', // 最大值 minValue: '', // 最小值 volatility: '', // 波动性 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) // 恒温槽均匀性 thermostaticBathEvenList.value.push({ @@ -379,7 +407,7 @@ lowerTemperatureDifferent: '', // 下水平面温差 maxHorizontalTemperatureDifferent: '', // 水平最大温差 maxWorkTemperatureDifferent: '', // 工作区域最大温差 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) } } @@ -398,7 +426,7 @@ indicatingErrorReverseStroke: 0, // 示值误差反行程 maximumError: item.maximumError, // 最大允许误差 urel: item.urel, // 扩展不确定度U - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) } @@ -409,6 +437,7 @@ id: '', params: '允差', dataType: '1', // 用于区分两个表格 + dataCategory: '1', nominalTemperature: item.nominalTemperature, // 标称温度 oneValue: 0, // 1 标准器示值 twoValue: 0, // 1 被检示值 @@ -424,58 +453,114 @@ twelveValue: 0, // 被检示值6 thirteenValue: 0, // 标准器示值均值 fourteenValue: 0, // 被检示值均值 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) // 结果表格 resistanceResultList.value = [ { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(0℃)/Ω', // 项目 + itemTitleFront: 'R\'(0℃)/Ω', // 项目 allowErrorLower: data[0].allowErrorLower, // 允差下限 data[0] 是 0℃ allowErrorUpper: data[0].allowErrorUpper, // 允差上限 data[0] 是 0℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[0].rValue, // R值 + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(100℃)/Ω', // 项目 + itemTitleFront: 'R\'(100℃)/Ω', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[1].rValue, // R值 + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'α', // 项目 + itemTitleFront: 'α', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(0℃)/℃', // 项目 + itemTitleFront: '△t(0℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(100℃)/℃', // 项目 + itemTitleFront: '△t(100℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', - item: '△α/10-6℃-1', // 项目 + dataId: '', + dataCategory: '2', + dataType: '1', + item: '△α', + itemTitleFront: '△α/10-6℃-1', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, ] } @@ -497,6 +582,7 @@ itemFormData.value.isShowAppearance = `${res.data.appearanceFunctionCheck}` === '1' // 外观(1/0) itemFormData.value.isShowInsulationResistance = `${res.data.insulateResistance}` === '1' // 绝缘电阻输入数据 itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` === '1' // 角度调整误差(可调整角度仪表) + itemFormData.value.rankLevel = res.data.measureItemDataResistanceThermometerList[0].level // 级别 initInputData(res.data.measureItemDataResistanceThermometerList) }) } @@ -504,13 +590,64 @@ // ----------------------------------------点击保存时校验--------------------------------------- // 校验 const checkout = () => { + if (itemFormData.value.itemCategoryName === '恒温槽') { + if (!thermostaticBathWaveList.value.length) { + ElMessage.warning('波动性测试不能为空') + return false + } + if (!thermostaticBathEvenList.value.length) { + ElMessage.warning('均匀性测试不能为空') + return false + } + } + else { + if (itemFormData.value.itemCategoryName !== '恒温槽' && `${itemFormData.value.insulationResistanceValue}` === '') { + ElMessage.warning('绝缘电阻不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '双金属温度计' && !bimetalThermometerList.value.length) { + ElMessage.warning('示值误差不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻' && !resistanceFranchiseList.value.length) { + ElMessage.warning('允差不能为空') + return false + } + } + return true } // -----------------------------------------生成结果处理---------------------------------------- +// 计算双金属温度计、工业铂铜热电阻结论 +function caculateConclusion() { + if (itemFormData.value.itemCategoryName === '双金属温度计') { + // (如果外观检查合格,示值误差均在最大允许误差内,补充设备性能正常;否则为设备性能异常) + return bimetalThermometerList.value.every((item: IDetailMeasureList) => { + const tempMaximumError = Number(`${item.maximumError}`.slice(1)) // 去掉正负号的最大允许误差 + return Math.abs(Number(item.indicatingErrorForwardStroke)) < Math.abs(tempMaximumError) + && Math.abs(Number(item.indicatingErrorReverseStroke)) < Math.abs(tempMaximumError) + && `${itemFormData.value.appearance}` === '1' + }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + // 根据公式计算,如果外观检查合格、测量值在允差下限、允差上限内,则自动补充合格,否则为不合格 + return resistanceResultList.value.every((item: IDetailMeasureList) => { + if (item.allowErrorLower !== '/' && item.allowErrorUpper !== '/') { + return Number(item.measureValue) > Number(item.allowErrorLower) + && Number(item.measureValue) < Number(item.allowErrorUpper) + && `${itemFormData.value.appearance}` === '1' + } + else { + return true + } + }) + } +} + /** * 点击生成结果处理 * @param type top上面表格 bottom下面表格 */ -const createResult = (type: 'top' | 'bottom') => { +function createResult(type: 'top' | 'bottom') { let list = [] as IDetailMeasureList[] let columns = [] as any let title = '' // 提醒标题 @@ -522,6 +659,10 @@ else if (itemFormData.value.itemCategoryName === '双金属温度计') { list = bimetalThermometerList.value } + else if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + list = type === 'top' ? resistanceFranchiseList.value : resistanceResultList.value + title = type === 'top' ? '允差' : '结果处理' + } if (!list.length) { ElMessage.warning('没有检定项数据,无法生成结果') return false @@ -538,7 +679,7 @@ } calculateHandle(params).then((res) => { if (res.data && res.data.length) { - res.data.map((item: { editable: boolean }) => { item.editable = pageType.value !== 'detail'; return item }) + res.data.map((item: { editable: boolean }) => { item.editable = props.pageType !== 'detail'; return item }) if (type === 'top') { switch (itemFormData.value.itemCategoryName) { case '恒温槽': @@ -546,6 +687,10 @@ break case '双金属温度计': bimetalThermometerList.value = res.data.map((item: { params: string }) => { item.params = '示值误差'; return item }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + break + case '工业铂铜热电阻': + resistanceFranchiseList.value = res.data.map((item: { params: string }) => { item.params = '允差'; return item }) break default: break @@ -556,6 +701,15 @@ case '恒温槽': thermostaticBathEvenList.value = res.data break + case '工业铂铜热电阻': + resistanceResultList.value = res.data.map((item: { item: string }) => { + return { + ...item, + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + break default: break } @@ -564,6 +718,7 @@ tableTop.value = false tableBottom.value = false + emits('changePageType', 'detail') }).catch(() => { tableTop.value = false; tableBottom.value = false }) } @@ -581,33 +736,44 @@ } }, { immediate: true }) +watch(() => props.pageType, (newValue) => { + if (newValue) { + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = bimetalThermometerList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = resistanceFranchiseList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + resistanceResultList.value = resistanceResultList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + } +}) + onMounted(() => { - if (pageType.value === 'add') { // 从我的任务跳转过来(新增) + itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 + itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id + itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code + itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 + if (props.pageType === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string // 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 - // fetchInfo() + fetchInfo() } }) - -defineExpose({ checkout, itemFormData, templateFormAndTableRef, pageType }) +defineExpose({ checkout, itemFormData, templateFormAndTableRef, thermostaticBathWaveList, thermostaticBathEvenList, bimetalThermometerList, resistanceFranchiseList, resistanceResultList }) - + - - + + {{ item.name }} @@ -625,7 +791,7 @@ - + - + - + 计算结果 @@ -669,14 +835,14 @@ v-loading="tableTop" :table-data="thermostaticBathWaveList" :table-header="columns_thermostatic_bath_wave" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -685,16 +851,16 @@ v-loading="tableBottom" :table-data="thermostaticBathEvenList" :table-header="columns_thermostatic_bath_even" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -710,13 +876,20 @@ - - - - 计算结果 - - + + + + 允差 + 级别: {{ itemFormData.rankLevel }} + + + + 计算结果 + + + - - + + 计算结果 + - + @@ -783,15 +958,15 @@ v-model="itemFormData.remark" autosize type="textarea" - :disabled="pageType === 'detail'" - :placeholder="pageType === 'detail' ? ' ' : '请输入备注'" + :disabled="props.pageType === 'detail'" + :placeholder="props.pageType === 'detail' ? ' ' : '请输入备注'" /> - + diff --git a/src/views/business/taskMeasure/measureData/detail.vue b/src/views/business/taskMeasure/measureData/detail.vue index 9f9014c..c441f8e 100644 --- a/src/views/business/taskMeasure/measureData/detail.vue +++ b/src/views/business/taskMeasure/measureData/detail.vue @@ -128,6 +128,28 @@ id: pageType.value === 'edit' ? infoId.value : '', } } + else if (belongStandardEquipment.value === '5') { // 第5套:二等铂 + let list = [] + if (itemCategoryName.value === '恒温槽') { + list = templateDetailRef.value.thermostaticBathWaveList.concat(templateDetailRef.value.thermostaticBathEvenList) + } + else if (itemCategoryName.value === '双金属温度计') { + list = templateDetailRef.value.bimetalThermometerList + } + else if (itemCategoryName.value === '工业铂铜热电阻') { + list = templateDetailRef.value.resistanceFranchiseList.concat(templateDetailRef.value.resistanceResultList) + } + params = { + ...templateDetailRef.value.templateFormAndTableRef.form, + ...templateDetailRef.value.itemFormData, + ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息 + customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示) + model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号 + equipmentIds: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string }) => item.id), + measureDataResistanceThermometerList: list, // 检定数据 + id: pageType.value === 'edit' ? infoId.value : '', + } + } else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 params = { ...templateDetailRef.value.itemFormData, @@ -156,19 +178,11 @@ else if (belongStandardEquipment.value === '2') { // 第二套 直流稳压电源 return templateDetailRef.value.checkAllList() && templateDetailRef.value.templateFormAndTableRef.checkout() } - else if (belongStandardEquipment.value === '3') { // 第3套:多功能电气安全校准器 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '4') { // 第四套:0.02活塞式压力计 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 + // 第3套:多功能电气安全校准器、第四套:0.02活塞式压力计、第5套:二等铂、第六套 安全阀 + else if (belongStandardEquipment.value === '3' + || belongStandardEquipment.value === '4' + || belongStandardEquipment.value === '5' + || belongStandardEquipment.value === '6') { return templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout() } } @@ -237,6 +251,10 @@ infoId.value = id } +const changePageType = (type: string) => { + pageType.value = type +} + // -------------------------------------------钩子-------------------------------------------------- onMounted(async () => { itemCategoryName.value = $route.query.itemCategoryName as string || '' // 检定项分类名称 @@ -276,7 +294,7 @@ - + diff --git a/src/views/equipement/standard/book/components/config/fifth/config.vue b/src/views/equipement/standard/book/components/config/fifth/config.vue index 5516d38..135993b 100644 --- a/src/views/equipement/standard/book/components/config/fifth/config.vue +++ b/src/views/equipement/standard/book/components/config/fifth/config.vue @@ -56,8 +56,8 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '温度点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '循环次数', value: 'resolution', align: 'center', required: true }, - { text: '扩展不确定度U', value: 'cycleNumber', align: 'center', required: true }, + { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, + { text: '扩展不确定度U', value: 'urel', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, ]) @@ -65,8 +65,8 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '水三相点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '循环次数', value: 'resolution', align: 'center', required: true }, - { text: '允许值', value: 'resolution', align: 'center', required: true }, + { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, + { text: '允许值', value: 'allowValue', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, ]) @@ -74,7 +74,7 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '确认点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '最大允许误差', value: 'resolution', align: 'center', required: true }, + { text: '最大允许误差', value: 'maximumError', align: 'center', required: true }, ]) // 温度值多选 @@ -92,7 +92,9 @@ // 校验表格(点击保存的时候、增加行用) const checkList = (list: any, title: string) => { - // return useCheckList(list, columns.value, title) + let columns = [] + columns = title === '温度值' ? columns_temperature.value : title === 'RTP值' ? columns_RTP.value : columns_insulation_resistance.value + return useCheckList(list, columns, title) } /** @@ -101,39 +103,40 @@ * @param title 操作的表格 */ const addRow = (list: IList[], title: string) => { - // if (checkList(list, `${title}表格`)) { - // if (list.length) { // 增加行时默认上一行数据 - // list.push({ - // id: '', - // checkPoint: list[list.length - 1].checkPoint, // 核查点(直接存字典value) - // checkType: list[list.length - 1].checkType, // 核查类型 - // cycleNumber: list[list.length - 1].cycleNumber, // 循环次数 - // equipmentId: list[list.length - 1].equipmentId, // 配套设备id - // itemCategoryId: list[list.length - 1].itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) - // params: list[list.length - 1].params, // 核查项目(直接存字典value) - // remark: list[list.length - 1].remark, // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) - // resolution: list[list.length - 1].resolution, // 分辨力 - // testType: list[list.length - 1].testType, // 核查点类型(直接存字典value) - // unit: list[list.length - 1].unit, // 单位(直接存字典value) - // urel: list[list.length - 1].urel, // 测量标准相对扩展不确定度urel - // }) - // } - // else { - // list.push({ - // checkPoint: '', // 核查点 - // checkType: '', // 核查类型(直接存字典value,多个逗号分隔) - // cycleNumber: 6, // 循环次数 - // equipmentId: infoId.value, // 配套设备id - // itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) - // params: '', // 核查项目(直接存字典value) - // remark: '', // 核查项备注 - // resolution: 0.0001, // 分辨力 - // testType: title, // 核查点类型(直接存字典value) - // unit: '', // 单位(直接存字典value) - // urel: 0, // 测量标准相对扩展不确定度urel - // }) - // } - // } + if (checkList(list, `${title}表格`)) { + if (list.length) { // 增加行时默认上一行数据 + list.push({ + id: '', + params: title, // 核查项目 + checkPoint: list[list.length - 1].checkPoint, // 核查点(直接存字典value) + unit: list[list.length - 1].unit, // 单位(直接存字典value) + cycleNumber: list[list.length - 1].cycleNumber, // 循环次数 + urel: list[list.length - 1].urel, // 测量标准相对扩展不确定度urel + checkType: list[list.length - 1].checkType, // 核查类型 + equipmentId: list[list.length - 1].equipmentId, // 配套设备id + itemCategoryId: list[list.length - 1].itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) + remark: list[list.length - 1].remark, // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) + maximumError: list[list.length - 1].maximumError, // 最大允许误差 + allowValue: list[list.length - 1].allowValue, // 允许值 + }) + } + else { + list.push({ + id: '', + params: title, // 核查项目 + checkPoint: '', // 核查点(直接存字典value) + unit: title === ' 绝缘电阻表校准' ? 'MΩ' : '℃', // 单位(直接存字典value) + cycleNumber: 6, // 循环次数 + urel: 0, // 测量标准相对扩展不确定度urel + checkType: ['重复性', '稳定性'], // 核查类型 + equipmentId: infoId.value, // 配套设备id + itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) + remark: '', // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) + maximumError: '', // 最大允许误差 + allowValue: '', // 允许值 + }) + } + } } /** * 删除行公共方法 diff --git a/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts b/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts index 44dc61a..d7ed2d8 100644 --- a/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts +++ b/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts @@ -1,3 +1,14 @@ export interface IList { - id?: string // id,更新/删除使用参数 + id: string // id,更新/删除使用参数 + allowValue: string // 允许值 + checkPoint: string // 温度点/水三相点/确认点 + checkType: string[] // 核查类型(直接存字典value) + cycleNumber: number // 循环次数 + equipmentId: string // 配套设备id + itemCategoryId: string // 核查项分类id(能够确定是哪个标准装置) + maximumError: string // 最大允许误差 + params: string // 核查项目(直接存字典value) + remark: string // 核查项备注 + unit: string // 单位(直接存字典value) + urel: number // Urel } diff --git a/src/views/business/manager/sendReceive/components/measureItem.vue b/src/views/business/manager/sendReceive/components/measureItem.vue index 9da010f..cfd507d 100644 --- a/src/views/business/manager/sendReceive/components/measureItem.vue +++ b/src/views/business/manager/sendReceive/components/measureItem.vue @@ -33,6 +33,9 @@ else if (belongStandardEquipment === '4') { // 第四套:0.02级活塞式压力计 list = response.measureItemDataPistonGaugeList // 检定项表格 } + else if (belongStandardEquipment === '5') { // 第5套:0.02级活塞式压力计 + list = response.measureItemDataResistanceThermometerList // 检定项表格 + } return list } @@ -158,6 +161,15 @@ page-type="detail" /> + + + { + list.value[1].nominalValue = list.value[0].nominalValue +} + defineExpose({ list, checkList, form }) @@ -546,14 +552,24 @@ + + ({ + measureDataResistanceThermometerList: standardRef.value.list.map((item: any) => ({ ...item, accuracyLevel: standardRef.value.form.accuracyLevel, // 准确度等级 measureRangeLower: standardRef.value.form.measureRangeLower, // 测量范围下限 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts index f8945fc..028db1a 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts +++ b/src/views/business/taskMeasure/measureData/components/fifth/fifth-interface.ts @@ -17,7 +17,7 @@ minValue?: string // 最小值 nominalTemperature?: string // 标称温度 nominalValue?: string // α标称值(字典value),该参数在结果处理表中每行都要传 - rank?: string // 级别(字典value),该参数在结果处理表中每行都要传 + rankLevel?: string // 级别(字典value),该参数在结果处理表中每行都要传 rtp?: string // rvalue?: string // unit?: string // 单位 diff --git a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue index 87d51fa..d603442 100644 --- a/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/fifth/templateDetail.vue @@ -21,8 +21,9 @@ const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 + pageType: String, }) -const emits = defineEmits(['giveInfoId']) +const emits = defineEmits(['giveInfoId', 'changePageType']) const user = useUserStore() // 用户信息 const $router = useRouter() // 关闭页面使用 const $route = useRoute() // 路由参数 @@ -42,17 +43,16 @@ angleAdjustError: '1', // 角度调整误差(可调整角度仪表) isShowAngleAdjustErrort: false, // 角度调整误差(可调整角度仪表)输入数据--判断是否展示 - conclusion: '', // 检验结论 + resultConclusion: '', // 检验结论 remark: '', // 备注 + + rankLevel: '', // 级别(工业铂铜热电阻) }) const tableTop = ref(false) // 上面表格loading const tableBottom = ref(false) // 下面表格loading // -------------------------------------------路由参数------------------------------------------ -const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // 列表id if ($route.params && $route.params.type) { - pageType.value = $route.params.type as string - if ($route.params.id) { infoId.value = $route.params.id as string } @@ -186,7 +186,7 @@ // ==============================工业铂铜热电阻======================= const resistanceFranchiseList = ref([]) // 允差表格数据 -const resistanceResultList = ref([]) // 结果处理表格数据 +const resistanceResultList = ref([]) as any // 结果处理表格数据 const columns_resistance_franchise = ref([ // 允差表头 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, @@ -264,15 +264,15 @@ width: '180', required: true, children: [ - { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'inputNumber' }, - { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'inputNumber' }, + { text: '标准器示值(℃)', value: 'thirteenValue', align: 'center', required: true, type: 'text' }, + { text: '被检示值(Ω)', value: 'fourteenValue', align: 'center', required: true, type: 'text' }, ], }, ]) // 结果处理表格 const columns_resistance_result = ref([ // 结果处理表头 - { text: '项目', value: 'item', align: 'center', required: true }, + { text: '项目', value: 'itemTitleFront', align: 'center', required: true }, { text: '允差下限', value: 'allowErrorLower', align: 'center', required: true }, { text: '允差上限', value: 'allowErrorUpper', align: 'center', required: true }, { text: '测量值', value: 'measureValue', align: 'center', required: true }, @@ -297,19 +297,47 @@ itemFormData.value.itemId = res.data.itemId // 检定项id itemFormData.value.itemCategoryName = res.data.itemCategoryName // 设备检定项分类名称 itemFormData.value.itemCategoryId = res.data.itemCategoryId ? res.data.itemCategoryId : itemFormData.value.itemCategoryId // 设备检定项分类名称id - // itemFormData.value.appearanceFunctionCheck = `${res.data.appearanceFunctionCheck}` // 外观(1/0) - // itemFormData.value.insulationResistance = `${res.data.insulationResistance}` // 绝缘电阻输入数据 - // itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.appearance = `${res.data.appearance}` // 外观(1/0) + itemFormData.value.isShowAppearance = `${res.data.appearance}` !== '' // 是否展示外观 + itemFormData.value.isShowInsulationResistance = `${res.data.insulationResistanceValue}` !== '' // 绝缘电阻输入数据--判断是否展示 + itemFormData.value.insulationResistanceValue = res.data.insulationResistanceValue // 绝缘电阻值 + itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` !== '' // 是否展示角度调整误差(可调整角度仪表) + itemFormData.value.angleAdjustError = `${res.data.angleAdjustError}` // 角度调整误差(可调整角度仪表) + itemFormData.value.remark = res.data.remark // 备注 // =======================================表单公共组件数据处理======================================================= useSolveFormData(res, templateFormAndTableRef.value) // ==================================检定数据======================================================================== - // list.value = res.data.measureDataPistonGaugeList.map((item: IDetailMeasureList) => { - // return { - // ...item, - // editable: pageType.value !== 'detail', - // } - // }) // 检定数据 + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '1') + thermostaticBathEvenList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataType: string }) => `${item.dataType}` === '2') + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = res.data.measureDataResistanceThermometerList.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` !== '2') + resistanceFranchiseList.value = resistanceFranchiseList.value.map((item) => { + return { + ...item, + editable: props.pageType !== 'detail', + params: '允差', + } + }) + resistanceResultList.value = res.data.measureDataResistanceThermometerList.filter((item: { dataCategory: string }) => `${item.dataCategory}` === '2') + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + resistanceResultList.value = resistanceResultList.value.map((item: { item: string }) => { + return { + ...item, + editable: props.pageType !== 'detail', + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.rankLevel = resistanceResultList.value.length ? resistanceResultList.value[0].rankLevel : '' + } infoId.value = res.data.id emits('giveInfoId', infoId.value) @@ -356,7 +384,7 @@ maxValue: '', // 最大值 minValue: '', // 最小值 volatility: '', // 波动性 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) // 恒温槽均匀性 thermostaticBathEvenList.value.push({ @@ -379,7 +407,7 @@ lowerTemperatureDifferent: '', // 下水平面温差 maxHorizontalTemperatureDifferent: '', // 水平最大温差 maxWorkTemperatureDifferent: '', // 工作区域最大温差 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', }) } } @@ -398,7 +426,7 @@ indicatingErrorReverseStroke: 0, // 示值误差反行程 maximumError: item.maximumError, // 最大允许误差 urel: item.urel, // 扩展不确定度U - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) } @@ -409,6 +437,7 @@ id: '', params: '允差', dataType: '1', // 用于区分两个表格 + dataCategory: '1', nominalTemperature: item.nominalTemperature, // 标称温度 oneValue: 0, // 1 标准器示值 twoValue: 0, // 1 被检示值 @@ -424,58 +453,114 @@ twelveValue: 0, // 被检示值6 thirteenValue: 0, // 标准器示值均值 fourteenValue: 0, // 被检示值均值 - editable: pageType.value !== 'detail', + editable: props.pageType !== 'detail', } }) // 结果表格 resistanceResultList.value = [ { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(0℃)/Ω', // 项目 + itemTitleFront: 'R\'(0℃)/Ω', // 项目 allowErrorLower: data[0].allowErrorLower, // 允差下限 data[0] 是 0℃ allowErrorUpper: data[0].allowErrorUpper, // 允差上限 data[0] 是 0℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[0].rValue, // R值 + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'R\'(100℃)/Ω', // 项目 + itemTitleFront: 'R\'(100℃)/Ω', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + rValue: data[1].rValue, // R值 + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: 'α', // 项目 + itemTitleFront: 'α', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(0℃)/℃', // 项目 + itemTitleFront: '△t(0℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, { id: '', - dataType: '2', + dataId: '', + dataCategory: '2', + dataType: '1', item: '△t(100℃)/℃', // 项目 + itemTitleFront: '△t(100℃)/℃', // 项目 allowErrorLower: '/', // 允差下限 allowErrorUpper: '/', // 允差上限 measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[1].drDt, // dR/dt + rTp: data[1].rTp, // rtp + wS: data[1].wS, // rtpwS + dwstDt: data[1].dwstDt, // dWst/dt }, { id: '', - dataType: '2', - item: '△α/10-6℃-1', // 项目 + dataId: '', + dataCategory: '2', + dataType: '1', + item: '△α', + itemTitleFront: '△α/10-6℃-1', // 项目 allowErrorLower: data[1].allowErrorLower, // 允差下限 data[1] 是 100℃ allowErrorUpper: data[1].allowErrorUpper, // 允差上限 data[1] 是 100℃ measureValue: '', // 测量值 + rankLevel: itemFormData.value.rankLevel, // 级别 + nominalValue: data[0].nominalValue, // α标称值(字典value) + drDt: data[0].drDt, // dR/dt + rTp: data[0].rTp, // rtp + wS: data[0].wS, // rtpwS + dwstDt: data[0].dwstDt, // dWst/dt }, ] } @@ -497,6 +582,7 @@ itemFormData.value.isShowAppearance = `${res.data.appearanceFunctionCheck}` === '1' // 外观(1/0) itemFormData.value.isShowInsulationResistance = `${res.data.insulateResistance}` === '1' // 绝缘电阻输入数据 itemFormData.value.isShowAngleAdjustErrort = `${res.data.angleAdjustError}` === '1' // 角度调整误差(可调整角度仪表) + itemFormData.value.rankLevel = res.data.measureItemDataResistanceThermometerList[0].level // 级别 initInputData(res.data.measureItemDataResistanceThermometerList) }) } @@ -504,13 +590,64 @@ // ----------------------------------------点击保存时校验--------------------------------------- // 校验 const checkout = () => { + if (itemFormData.value.itemCategoryName === '恒温槽') { + if (!thermostaticBathWaveList.value.length) { + ElMessage.warning('波动性测试不能为空') + return false + } + if (!thermostaticBathEvenList.value.length) { + ElMessage.warning('均匀性测试不能为空') + return false + } + } + else { + if (itemFormData.value.itemCategoryName !== '恒温槽' && `${itemFormData.value.insulationResistanceValue}` === '') { + ElMessage.warning('绝缘电阻不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '双金属温度计' && !bimetalThermometerList.value.length) { + ElMessage.warning('示值误差不能为空') + return false + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻' && !resistanceFranchiseList.value.length) { + ElMessage.warning('允差不能为空') + return false + } + } + return true } // -----------------------------------------生成结果处理---------------------------------------- +// 计算双金属温度计、工业铂铜热电阻结论 +function caculateConclusion() { + if (itemFormData.value.itemCategoryName === '双金属温度计') { + // (如果外观检查合格,示值误差均在最大允许误差内,补充设备性能正常;否则为设备性能异常) + return bimetalThermometerList.value.every((item: IDetailMeasureList) => { + const tempMaximumError = Number(`${item.maximumError}`.slice(1)) // 去掉正负号的最大允许误差 + return Math.abs(Number(item.indicatingErrorForwardStroke)) < Math.abs(tempMaximumError) + && Math.abs(Number(item.indicatingErrorReverseStroke)) < Math.abs(tempMaximumError) + && `${itemFormData.value.appearance}` === '1' + }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + // 根据公式计算,如果外观检查合格、测量值在允差下限、允差上限内,则自动补充合格,否则为不合格 + return resistanceResultList.value.every((item: IDetailMeasureList) => { + if (item.allowErrorLower !== '/' && item.allowErrorUpper !== '/') { + return Number(item.measureValue) > Number(item.allowErrorLower) + && Number(item.measureValue) < Number(item.allowErrorUpper) + && `${itemFormData.value.appearance}` === '1' + } + else { + return true + } + }) + } +} + /** * 点击生成结果处理 * @param type top上面表格 bottom下面表格 */ -const createResult = (type: 'top' | 'bottom') => { +function createResult(type: 'top' | 'bottom') { let list = [] as IDetailMeasureList[] let columns = [] as any let title = '' // 提醒标题 @@ -522,6 +659,10 @@ else if (itemFormData.value.itemCategoryName === '双金属温度计') { list = bimetalThermometerList.value } + else if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + list = type === 'top' ? resistanceFranchiseList.value : resistanceResultList.value + title = type === 'top' ? '允差' : '结果处理' + } if (!list.length) { ElMessage.warning('没有检定项数据,无法生成结果') return false @@ -538,7 +679,7 @@ } calculateHandle(params).then((res) => { if (res.data && res.data.length) { - res.data.map((item: { editable: boolean }) => { item.editable = pageType.value !== 'detail'; return item }) + res.data.map((item: { editable: boolean }) => { item.editable = props.pageType !== 'detail'; return item }) if (type === 'top') { switch (itemFormData.value.itemCategoryName) { case '恒温槽': @@ -546,6 +687,10 @@ break case '双金属温度计': bimetalThermometerList.value = res.data.map((item: { params: string }) => { item.params = '示值误差'; return item }) + itemFormData.value.resultConclusion = caculateConclusion() ? '设备性能正常' : '设备性能异常' + break + case '工业铂铜热电阻': + resistanceFranchiseList.value = res.data.map((item: { params: string }) => { item.params = '允差'; return item }) break default: break @@ -556,6 +701,15 @@ case '恒温槽': thermostaticBathEvenList.value = res.data break + case '工业铂铜热电阻': + resistanceResultList.value = res.data.map((item: { item: string }) => { + return { + ...item, + itemTitleFront: item.item === '△α' ? '△α/10-6℃-1' : item.item, // 项目 + } + }) + itemFormData.value.resultConclusion = caculateConclusion() ? '合格' : '不合格' + break default: break } @@ -564,6 +718,7 @@ tableTop.value = false tableBottom.value = false + emits('changePageType', 'detail') }).catch(() => { tableTop.value = false; tableBottom.value = false }) } @@ -581,33 +736,44 @@ } }, { immediate: true }) +watch(() => props.pageType, (newValue) => { + if (newValue) { + if (itemFormData.value.itemCategoryName === '恒温槽') { + thermostaticBathWaveList.value = thermostaticBathWaveList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + thermostaticBathEvenList.value = thermostaticBathEvenList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '双金属温度计') { + bimetalThermometerList.value = bimetalThermometerList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + if (itemFormData.value.itemCategoryName === '工业铂铜热电阻') { + resistanceFranchiseList.value = resistanceFranchiseList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + resistanceResultList.value = resistanceResultList.value.map((i: any) => { i.editable = props.pageType !== 'detail'; return i }) + } + } +}) + onMounted(() => { - if (pageType.value === 'add') { // 从我的任务跳转过来(新增) + itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 + itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id + itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code + itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 + if (props.pageType === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 // 查输入值(查检定项管理的详情) fetchItemInfo($route.query.itemId! as string, $route.query.itemCategoryName! as string, $route.query.belongStandardEquipment as string) } else { - itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string // 设备检定项分类名称 - itemFormData.value.itemCategoryId = $route.query.itemCategoryId as string// 设备检定项分类名称id - itemFormData.value.belongStandardEquipment = $route.query.belongStandardEquipment as string// 标准装置code - itemFormData.value.belongStandardEquipmentName = $route.query.belongStandardEquipmentName as string// 标准装置名称 - // fetchInfo() + fetchInfo() } }) - -defineExpose({ checkout, itemFormData, templateFormAndTableRef, pageType }) +defineExpose({ checkout, itemFormData, templateFormAndTableRef, thermostaticBathWaveList, thermostaticBathEvenList, bimetalThermometerList, resistanceFranchiseList, resistanceResultList }) - + - - + + {{ item.name }} @@ -625,7 +791,7 @@ - + - + - + 计算结果 @@ -669,14 +835,14 @@ v-loading="tableTop" :table-data="thermostaticBathWaveList" :table-header="columns_thermostatic_bath_wave" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -685,16 +851,16 @@ v-loading="tableBottom" :table-data="thermostaticBathEvenList" :table-header="columns_thermostatic_bath_even" - :merge-rows="['upperLowerPoint', 'unit']" :need-index="true" max-height="400" + :merge-rows="['upperLowerPoint', 'unit']" @handle-input-number-change="handleInputNumberChange" /> - + 计算结果 @@ -710,13 +876,20 @@ - - - - 计算结果 - - + + + + 允差 + 级别: {{ itemFormData.rankLevel }} + + + + 计算结果 + + + - - + + 计算结果 + - + @@ -783,15 +958,15 @@ v-model="itemFormData.remark" autosize type="textarea" - :disabled="pageType === 'detail'" - :placeholder="pageType === 'detail' ? ' ' : '请输入备注'" + :disabled="props.pageType === 'detail'" + :placeholder="props.pageType === 'detail' ? ' ' : '请输入备注'" /> - + diff --git a/src/views/business/taskMeasure/measureData/detail.vue b/src/views/business/taskMeasure/measureData/detail.vue index 9f9014c..c441f8e 100644 --- a/src/views/business/taskMeasure/measureData/detail.vue +++ b/src/views/business/taskMeasure/measureData/detail.vue @@ -128,6 +128,28 @@ id: pageType.value === 'edit' ? infoId.value : '', } } + else if (belongStandardEquipment.value === '5') { // 第5套:二等铂 + let list = [] + if (itemCategoryName.value === '恒温槽') { + list = templateDetailRef.value.thermostaticBathWaveList.concat(templateDetailRef.value.thermostaticBathEvenList) + } + else if (itemCategoryName.value === '双金属温度计') { + list = templateDetailRef.value.bimetalThermometerList + } + else if (itemCategoryName.value === '工业铂铜热电阻') { + list = templateDetailRef.value.resistanceFranchiseList.concat(templateDetailRef.value.resistanceResultList) + } + params = { + ...templateDetailRef.value.templateFormAndTableRef.form, + ...templateDetailRef.value.itemFormData, + ...templateDetailRef.value.templateFormAndTableRef.sampleList[0], // 被检件信息 + customerName: pageType.value === 'add' ? '' : templateDetailRef.value.templateFormAndTableRef.form.customerName, // 委托单位系统生成,在此置空(原有数据是从我的任务列表页带来,仅做展示) + model: templateDetailRef.value.templateFormAndTableRef.sampleList[0].sampleModel, // 型号 + equipmentIds: templateDetailRef.value.templateFormAndTableRef.measureEquipmentList.map((item: { id: string }) => item.id), + measureDataResistanceThermometerList: list, // 检定数据 + id: pageType.value === 'edit' ? infoId.value : '', + } + } else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 params = { ...templateDetailRef.value.itemFormData, @@ -156,19 +178,11 @@ else if (belongStandardEquipment.value === '2') { // 第二套 直流稳压电源 return templateDetailRef.value.checkAllList() && templateDetailRef.value.templateFormAndTableRef.checkout() } - else if (belongStandardEquipment.value === '3') { // 第3套:多功能电气安全校准器 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '4') { // 第四套:0.02活塞式压力计 - if (templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout()) { - return true - } - return false - } - else if (belongStandardEquipment.value === '6') { // 第六套 安全阀 + // 第3套:多功能电气安全校准器、第四套:0.02活塞式压力计、第5套:二等铂、第六套 安全阀 + else if (belongStandardEquipment.value === '3' + || belongStandardEquipment.value === '4' + || belongStandardEquipment.value === '5' + || belongStandardEquipment.value === '6') { return templateDetailRef.value.checkout() && templateDetailRef.value.templateFormAndTableRef.checkout() } } @@ -237,6 +251,10 @@ infoId.value = id } +const changePageType = (type: string) => { + pageType.value = type +} + // -------------------------------------------钩子-------------------------------------------------- onMounted(async () => { itemCategoryName.value = $route.query.itemCategoryName as string || '' // 检定项分类名称 @@ -276,7 +294,7 @@ - + diff --git a/src/views/equipement/standard/book/components/config/fifth/config.vue b/src/views/equipement/standard/book/components/config/fifth/config.vue index 5516d38..135993b 100644 --- a/src/views/equipement/standard/book/components/config/fifth/config.vue +++ b/src/views/equipement/standard/book/components/config/fifth/config.vue @@ -56,8 +56,8 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '温度点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '循环次数', value: 'resolution', align: 'center', required: true }, - { text: '扩展不确定度U', value: 'cycleNumber', align: 'center', required: true }, + { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, + { text: '扩展不确定度U', value: 'urel', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, ]) @@ -65,8 +65,8 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '水三相点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '循环次数', value: 'resolution', align: 'center', required: true }, - { text: '允许值', value: 'resolution', align: 'center', required: true }, + { text: '循环次数', value: 'cycleNumber', align: 'center', required: true }, + { text: '允许值', value: 'allowValue', align: 'center', required: true }, { text: '核查类型', value: 'checkType', align: 'center', required: true }, ]) @@ -74,7 +74,7 @@ { text: '核查项目', value: 'params', align: 'center', required: true }, { text: '确认点', value: 'checkPoint', align: 'center', required: true }, { text: '单位', value: 'unit', align: 'center', required: true }, - { text: '最大允许误差', value: 'resolution', align: 'center', required: true }, + { text: '最大允许误差', value: 'maximumError', align: 'center', required: true }, ]) // 温度值多选 @@ -92,7 +92,9 @@ // 校验表格(点击保存的时候、增加行用) const checkList = (list: any, title: string) => { - // return useCheckList(list, columns.value, title) + let columns = [] + columns = title === '温度值' ? columns_temperature.value : title === 'RTP值' ? columns_RTP.value : columns_insulation_resistance.value + return useCheckList(list, columns, title) } /** @@ -101,39 +103,40 @@ * @param title 操作的表格 */ const addRow = (list: IList[], title: string) => { - // if (checkList(list, `${title}表格`)) { - // if (list.length) { // 增加行时默认上一行数据 - // list.push({ - // id: '', - // checkPoint: list[list.length - 1].checkPoint, // 核查点(直接存字典value) - // checkType: list[list.length - 1].checkType, // 核查类型 - // cycleNumber: list[list.length - 1].cycleNumber, // 循环次数 - // equipmentId: list[list.length - 1].equipmentId, // 配套设备id - // itemCategoryId: list[list.length - 1].itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) - // params: list[list.length - 1].params, // 核查项目(直接存字典value) - // remark: list[list.length - 1].remark, // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) - // resolution: list[list.length - 1].resolution, // 分辨力 - // testType: list[list.length - 1].testType, // 核查点类型(直接存字典value) - // unit: list[list.length - 1].unit, // 单位(直接存字典value) - // urel: list[list.length - 1].urel, // 测量标准相对扩展不确定度urel - // }) - // } - // else { - // list.push({ - // checkPoint: '', // 核查点 - // checkType: '', // 核查类型(直接存字典value,多个逗号分隔) - // cycleNumber: 6, // 循环次数 - // equipmentId: infoId.value, // 配套设备id - // itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) - // params: '', // 核查项目(直接存字典value) - // remark: '', // 核查项备注 - // resolution: 0.0001, // 分辨力 - // testType: title, // 核查点类型(直接存字典value) - // unit: '', // 单位(直接存字典value) - // urel: 0, // 测量标准相对扩展不确定度urel - // }) - // } - // } + if (checkList(list, `${title}表格`)) { + if (list.length) { // 增加行时默认上一行数据 + list.push({ + id: '', + params: title, // 核查项目 + checkPoint: list[list.length - 1].checkPoint, // 核查点(直接存字典value) + unit: list[list.length - 1].unit, // 单位(直接存字典value) + cycleNumber: list[list.length - 1].cycleNumber, // 循环次数 + urel: list[list.length - 1].urel, // 测量标准相对扩展不确定度urel + checkType: list[list.length - 1].checkType, // 核查类型 + equipmentId: list[list.length - 1].equipmentId, // 配套设备id + itemCategoryId: list[list.length - 1].itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) + remark: list[list.length - 1].remark, // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) + maximumError: list[list.length - 1].maximumError, // 最大允许误差 + allowValue: list[list.length - 1].allowValue, // 允许值 + }) + } + else { + list.push({ + id: '', + params: title, // 核查项目 + checkPoint: '', // 核查点(直接存字典value) + unit: title === ' 绝缘电阻表校准' ? 'MΩ' : '℃', // 单位(直接存字典value) + cycleNumber: 6, // 循环次数 + urel: 0, // 测量标准相对扩展不确定度urel + checkType: ['重复性', '稳定性'], // 核查类型 + equipmentId: infoId.value, // 配套设备id + itemCategoryId: form.value.itemCategoryId, // 核查项分类id(能够确定是哪个标准装置) + remark: '', // 核查项备注(每个数据存储的核查项备注相同,前端取列表中一个即可) + maximumError: '', // 最大允许误差 + allowValue: '', // 允许值 + }) + } + } } /** * 删除行公共方法 diff --git a/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts b/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts index 44dc61a..d7ed2d8 100644 --- a/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts +++ b/src/views/equipement/standard/book/components/config/fifth/fifth-interface.ts @@ -1,3 +1,14 @@ export interface IList { - id?: string // id,更新/删除使用参数 + id: string // id,更新/删除使用参数 + allowValue: string // 允许值 + checkPoint: string // 温度点/水三相点/确认点 + checkType: string[] // 核查类型(直接存字典value) + cycleNumber: number // 循环次数 + equipmentId: string // 配套设备id + itemCategoryId: string // 核查项分类id(能够确定是哪个标准装置) + maximumError: string // 最大允许误差 + params: string // 核查项目(直接存字典value) + remark: string // 核查项备注 + unit: string // 单位(直接存字典value) + urel: number // Urel } diff --git a/src/views/equipement/standard/book/components/config/fifth/templateTable.vue b/src/views/equipement/standard/book/components/config/fifth/templateTable.vue index 24703fb..02bb789 100644 --- a/src/views/equipement/standard/book/components/config/fifth/templateTable.vue +++ b/src/views/equipement/standard/book/components/config/fifth/templateTable.vue @@ -5,7 +5,8 @@ import type { TableColumn } from '@/components/NormalTable/table_interface' import { getDictByCode } from '@/api/system/dict' import type { dictType } from '@/global' - +import { clickAdd, clickSub } from '@/views/business/measure/item/useCalculateResolution' +import SelectByDict from '@/components/SelectByDict/index.vue' // ------------------定义props、 emit------------------- const props = defineProps({ pageType: { @@ -38,22 +39,45 @@ type: String, default: 'default', }, // 表格大小,默认,small,mini等,与el-table条件相同 + title: { + type: String, + }, }) const emit = defineEmits(['change', 'selectionChange', 'rowClick', 'rowDbClick', 'multiSelect', 'filterChange']) // ------------------------------------------字典---------------------------------------------- -const paramsList = ref([]) // 参数 +const checkTypeList = ref([]) // 核查类型 +const checkPointVoltageList = ref([]) // 核查点直流电压 +const checkPointResistanceList = ref([]) // 核查类型电阻测量 +const standardVoltageList = ref([]) // 电压 +const standardResistanceList = ref([]) // 电阻 /** * 获取字典 */ function getDict() { - // 参数 - getDictByCode('bizFirstStandardParams').then((response) => { - paramsList.value = response.data + // 核查类型 + getDictByCode('bizFirstStandardCheckType').then((response) => { + checkTypeList.value = response.data + }) + // 核查点直流电压 + getDictByCode('Standard3Voltage').then((response) => { + checkPointVoltageList.value = response.data + }) + // 核查类型电阻测量 + getDictByCode('standard3Resistance').then((response) => { + checkPointResistanceList.value = response.data + }) + // 电压 + getDictByCode('standardVoltage').then((response) => { + standardVoltageList.value = response.data + }) + // 电阻 + getDictByCode('standardResistance').then((response) => { + standardResistanceList.value = response.data }) } -// getDict() +getDict() // -------定义数据-------------- interface columnsCheckInfo { text: string @@ -105,7 +129,7 @@ }) // 多选 const handleSelectionChange = (val: any) => { - emit('multiSelect', val) + emit('selectionChange', val) } // 清除多选选中 const clearMulti = () => { @@ -149,6 +173,42 @@ *{{ item.text }} + + + + + + + + + + + + @@ -163,3 +223,10 @@ } +