diff --git a/src/views/business/measure/item/components/second/templateTable.vue b/src/views/business/measure/item/components/second/templateTable.vue index 19851b3..dcbcf4a 100644 --- a/src/views/business/measure/item/components/second/templateTable.vue +++ b/src/views/business/measure/item/components/second/templateTable.vue @@ -269,6 +269,7 @@ + + ([ // 机械式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) const columns_digital = ref([ // 数字式/外置探头式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '不确定度', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '不确定度', value: 'urel', align: 'center', required: true, type: 'number' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) -// --------------------------------------------表格方法----------------------------------------------- -// 多选 -const handleSelectionChange = () => { - -} -// ---------------------------------------------校验--------------------------------------------------- -// 校验表格(点击保存的时候用、生成标准器示值) -const checkList = () => { - // return useCheckList(list.value, columns.value, '检定项表格') -} - +const form = ref({ + szcs: 1, + appearance: 1, +}) // --------------------------------------------钩子---------------------------------------------------- watch(() => props.itemCategoryName, (newValue) => { if (newValue) { @@ -84,6 +78,91 @@ }) defineExpose({ list }) +// --------------------------------表格操作--------------------------------------------------- +const addRow = (list1: IList[], title: string, index: string) => { + if (useCheckList(list1, columns.value, `${title}表格`)) { + let data = {} as any + switch (title) { + case '示值测试': // 示值测试 + data = { + id: '', + params: '示值测试', + nominalValue: '', + unit: '', + editable: true, + type: '', + ponint: '', + urel: '', + allowMaximum: '', + } + list.value.length ? list.value.push(JSON.parse(JSON.stringify(list.value[list.value.length - 1]))) : list.value.push(data) + break + } + } +} +/** + * 删除行公共方法 + * @param checkoutList 选中的数组 + * @param list 操作的数组 + */ +const delRow = (checkoutList: IList[], list1: IList[], title: string) => { + if (!checkoutList.length) { + ElMessage.warning('请选中要删除的行') + } + else { + let data = [] as any[] + data = differenceArray(list1, checkoutList) + switch (title) { + case '示值测试': // 衰减量 + list.value = data + break + } + } +} +// ---------------------------------------------校验--------------------------------------------------- +// 校验表格(点击保存的时候用、生成标准器示值) +function checkList(list: any[], columns: any[], title: string) { + if (form.value.szcs) { + if (!list.value.length) { + ElMessage.warning('示值测试列表不能为空') + return false + } + return useCheckList(list, columns, title) + } + else { + return true + } +} +function checkAllList() { + // if (!list.value.length) { + // ElMessage.warning('鉴定项列表不能为空') + // return false + // } + return checkList(list.value, columns.value, '示值测试') +} +// 每个table对应的下拉框内容 字典 +const tableDict = ref<{ [key: string]: { value: string;name: string;id: string }[] }>({}) +tableDict.value = { + 类型: [ + { + name: '温度示值', + value: '1', + id: '1', + }, + { + name: '湿度示值', + value: '2', + id: '2', + }, + ], +} +const changeLoadSituationa = (value: any, index: number, text: string, type: string, list: any[], item: string) => { + if (item === '示值测试') { + if (text === '类型') { + list[index].unit = value === '温度示值' ? '℃' : value === '湿度示值' ? '%RH' : '' + } + } +} @@ -91,40 +170,25 @@ 外观检查 - - 示值测试 - - - - - - 增加行 - - - 删除行 - - - - - - - - *{{ item.text }} - - - - + + + + + 示值测试 + + + + + ± + + + diff --git a/src/views/business/measure/item/components/second/templateTable.vue b/src/views/business/measure/item/components/second/templateTable.vue index 19851b3..dcbcf4a 100644 --- a/src/views/business/measure/item/components/second/templateTable.vue +++ b/src/views/business/measure/item/components/second/templateTable.vue @@ -269,6 +269,7 @@ + ([ // 机械式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) const columns_digital = ref([ // 数字式/外置探头式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '不确定度', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '不确定度', value: 'urel', align: 'center', required: true, type: 'number' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) -// --------------------------------------------表格方法----------------------------------------------- -// 多选 -const handleSelectionChange = () => { - -} -// ---------------------------------------------校验--------------------------------------------------- -// 校验表格(点击保存的时候用、生成标准器示值) -const checkList = () => { - // return useCheckList(list.value, columns.value, '检定项表格') -} - +const form = ref({ + szcs: 1, + appearance: 1, +}) // --------------------------------------------钩子---------------------------------------------------- watch(() => props.itemCategoryName, (newValue) => { if (newValue) { @@ -84,6 +78,91 @@ }) defineExpose({ list }) +// --------------------------------表格操作--------------------------------------------------- +const addRow = (list1: IList[], title: string, index: string) => { + if (useCheckList(list1, columns.value, `${title}表格`)) { + let data = {} as any + switch (title) { + case '示值测试': // 示值测试 + data = { + id: '', + params: '示值测试', + nominalValue: '', + unit: '', + editable: true, + type: '', + ponint: '', + urel: '', + allowMaximum: '', + } + list.value.length ? list.value.push(JSON.parse(JSON.stringify(list.value[list.value.length - 1]))) : list.value.push(data) + break + } + } +} +/** + * 删除行公共方法 + * @param checkoutList 选中的数组 + * @param list 操作的数组 + */ +const delRow = (checkoutList: IList[], list1: IList[], title: string) => { + if (!checkoutList.length) { + ElMessage.warning('请选中要删除的行') + } + else { + let data = [] as any[] + data = differenceArray(list1, checkoutList) + switch (title) { + case '示值测试': // 衰减量 + list.value = data + break + } + } +} +// ---------------------------------------------校验--------------------------------------------------- +// 校验表格(点击保存的时候用、生成标准器示值) +function checkList(list: any[], columns: any[], title: string) { + if (form.value.szcs) { + if (!list.value.length) { + ElMessage.warning('示值测试列表不能为空') + return false + } + return useCheckList(list, columns, title) + } + else { + return true + } +} +function checkAllList() { + // if (!list.value.length) { + // ElMessage.warning('鉴定项列表不能为空') + // return false + // } + return checkList(list.value, columns.value, '示值测试') +} +// 每个table对应的下拉框内容 字典 +const tableDict = ref<{ [key: string]: { value: string;name: string;id: string }[] }>({}) +tableDict.value = { + 类型: [ + { + name: '温度示值', + value: '1', + id: '1', + }, + { + name: '湿度示值', + value: '2', + id: '2', + }, + ], +} +const changeLoadSituationa = (value: any, index: number, text: string, type: string, list: any[], item: string) => { + if (item === '示值测试') { + if (text === '类型') { + list[index].unit = value === '温度示值' ? '℃' : value === '湿度示值' ? '%RH' : '' + } + } +} @@ -91,40 +170,25 @@ 外观检查 - - 示值测试 - - - - - - 增加行 - - - 删除行 - - - - - - - - *{{ item.text }} - - - - + + + + + 示值测试 + + + + + ± + + + diff --git a/src/views/business/measure/item/detail.vue b/src/views/business/measure/item/detail.vue index 07b6d0a..cf68855 100644 --- a/src/views/business/measure/item/detail.vue +++ b/src/views/business/measure/item/detail.vue @@ -769,6 +769,9 @@ else { showItemTableType.value = 'createPattern' // 生成检定项模式 } + if (form.value.belongStandardEquipment === '7') { + return + } fetchInfo() // 获取详情 }) diff --git a/src/views/business/measure/item/components/second/templateTable.vue b/src/views/business/measure/item/components/second/templateTable.vue index 19851b3..dcbcf4a 100644 --- a/src/views/business/measure/item/components/second/templateTable.vue +++ b/src/views/business/measure/item/components/second/templateTable.vue @@ -269,6 +269,7 @@ + ([ // 机械式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) const columns_digital = ref([ // 数字式/外置探头式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '不确定度', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '不确定度', value: 'urel', align: 'center', required: true, type: 'number' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) -// --------------------------------------------表格方法----------------------------------------------- -// 多选 -const handleSelectionChange = () => { - -} -// ---------------------------------------------校验--------------------------------------------------- -// 校验表格(点击保存的时候用、生成标准器示值) -const checkList = () => { - // return useCheckList(list.value, columns.value, '检定项表格') -} - +const form = ref({ + szcs: 1, + appearance: 1, +}) // --------------------------------------------钩子---------------------------------------------------- watch(() => props.itemCategoryName, (newValue) => { if (newValue) { @@ -84,6 +78,91 @@ }) defineExpose({ list }) +// --------------------------------表格操作--------------------------------------------------- +const addRow = (list1: IList[], title: string, index: string) => { + if (useCheckList(list1, columns.value, `${title}表格`)) { + let data = {} as any + switch (title) { + case '示值测试': // 示值测试 + data = { + id: '', + params: '示值测试', + nominalValue: '', + unit: '', + editable: true, + type: '', + ponint: '', + urel: '', + allowMaximum: '', + } + list.value.length ? list.value.push(JSON.parse(JSON.stringify(list.value[list.value.length - 1]))) : list.value.push(data) + break + } + } +} +/** + * 删除行公共方法 + * @param checkoutList 选中的数组 + * @param list 操作的数组 + */ +const delRow = (checkoutList: IList[], list1: IList[], title: string) => { + if (!checkoutList.length) { + ElMessage.warning('请选中要删除的行') + } + else { + let data = [] as any[] + data = differenceArray(list1, checkoutList) + switch (title) { + case '示值测试': // 衰减量 + list.value = data + break + } + } +} +// ---------------------------------------------校验--------------------------------------------------- +// 校验表格(点击保存的时候用、生成标准器示值) +function checkList(list: any[], columns: any[], title: string) { + if (form.value.szcs) { + if (!list.value.length) { + ElMessage.warning('示值测试列表不能为空') + return false + } + return useCheckList(list, columns, title) + } + else { + return true + } +} +function checkAllList() { + // if (!list.value.length) { + // ElMessage.warning('鉴定项列表不能为空') + // return false + // } + return checkList(list.value, columns.value, '示值测试') +} +// 每个table对应的下拉框内容 字典 +const tableDict = ref<{ [key: string]: { value: string;name: string;id: string }[] }>({}) +tableDict.value = { + 类型: [ + { + name: '温度示值', + value: '1', + id: '1', + }, + { + name: '湿度示值', + value: '2', + id: '2', + }, + ], +} +const changeLoadSituationa = (value: any, index: number, text: string, type: string, list: any[], item: string) => { + if (item === '示值测试') { + if (text === '类型') { + list[index].unit = value === '温度示值' ? '℃' : value === '湿度示值' ? '%RH' : '' + } + } +} @@ -91,40 +170,25 @@ 外观检查 - - 示值测试 - - - - - - 增加行 - - - 删除行 - - - - - - - - *{{ item.text }} - - - - + + + + + 示值测试 + + + + + ± + + + diff --git a/src/views/business/measure/item/detail.vue b/src/views/business/measure/item/detail.vue index 07b6d0a..cf68855 100644 --- a/src/views/business/measure/item/detail.vue +++ b/src/views/business/measure/item/detail.vue @@ -769,6 +769,9 @@ else { showItemTableType.value = 'createPattern' // 生成检定项模式 } + if (form.value.belongStandardEquipment === '7') { + return + } fetchInfo() // 获取详情 }) diff --git a/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue index df86064..1e6ff79 100644 --- a/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue @@ -9,7 +9,7 @@ import TemplateFormAndTable from '../templateFormAndTable.vue' import { useSolveFormData } from '../useSolveFormData' import type { IDetailMeasureList } from './seventh-interface' -import templateTable from './templateTable.vue' +// import templateTable from './templateTable.vue' import useUserStore from '@/store/modules/user' import type { dictType } from '@/global' import { getDictByCode } from '@/api/system/dict' @@ -19,6 +19,7 @@ import { useCheckList } from '@/commonMethods/useCheckList' import { calc } from '@/utils/useCalc' import multiTable from '@/components/MultiHeaderTable/index.vue' +import templateTable from '@/views/business/measure/item/components/second/templateTable.vue' const props = defineProps({ infoId: String, // id @@ -37,6 +38,7 @@ belongStandardEquipment: '', // 标准装置code belongStandardEquipmentName: '', // 标准装置名称 appearance: '1', // 外观(1/0) + appearance1: '1', // 外观(1/0) appearanceRemark: '1', // 外观备注说明 }) @@ -62,93 +64,93 @@ const list = ref([]) // 表格数据 const columns = ref([]) const columns_mechanical = ref([ // 机械式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '类型', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度/湿度', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度点/湿度点', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: false, type: 'text' }, + { text: '温度/湿度', value: 'value', align: 'center', required: true, type: 'inputNumber', unit: pageType.value === 'detail' ? 'unit' : '' }, + { text: '温度点/湿度点', value: 'point', align: 'center', required: false, type: 'text' }, { - text: '1', - value: 'beforeFrictionStroke', + text: '第1次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '被检示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'oneValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'twoValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { - text: '2', - value: 'beforeFrictionStroke', + text: '第2次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'threeValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'fourValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { text: '均值', - value: 'beforeFrictionStroke', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'average1', align: 'center', required: false, width: '140', type: 'text' }, + { text: '被检示值', value: 'average2', align: 'center', required: false, width: '140', type: 'text' }, ], }, - { text: '误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大允许误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '误差', value: 'error', align: 'center', required: false, type: 'text' }, + { text: '最大误差', value: 'maxError', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: false, type: 'text' }, ]) const columns_digital = ref([ // 数字式/外置探头式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '类型', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度/湿度', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度点/湿度点', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: false, type: 'text' }, + { text: '温度/湿度', value: 'value', align: 'center', required: false, type: 'inputNumber', unit: pageType.value === 'detail' ? 'unit' : '' }, + { text: '温度点/湿度点', value: 'point', align: 'center', required: false, type: 'text' }, { - text: '1', - value: 'beforeFrictionStroke', + text: '第1次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '被检示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'oneValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'twoValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { - text: '2', - value: 'beforeFrictionStroke', + text: '第2次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'threeValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'fourValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { - text: '3', - value: 'beforeFrictionStroke', + text: '第3次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'fiveValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'sixValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { text: '均值', - value: 'beforeFrictionStroke', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'average1', align: 'center', required: false, width: '140', type: 'text' }, + { text: '被检示值', value: 'average2', align: 'center', required: false, width: '140', type: 'text' }, ], }, - { text: '误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大允许误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '不确定度', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '误差', value: 'error', align: 'center', required: false, type: 'text' }, + { text: '最大误差', value: 'maxError', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: false, type: 'text' }, + { text: '不确定度', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // -------------------------------------------获取详情信息-------------------------------------------------- @@ -220,14 +222,38 @@ // 点击计算结果 const calculate = () => { // ElMessage.info('敬请期待') - return false - // if (!list.value.length) { - // ElMessage.warning('没有检定项数据,无法生成结果') - // return false - // } - // if (!useCheckList(list.value, measureColumns.value, '检定数据')) { - // return false - // } + // return false + if (!list.value.length) { + ElMessage.warning('没有检定项数据,无法生成结果') + return false + } + console.log(list.value, columns.value) + if (!useCheckList(list.value, columns.value, '示值测试')) { + return false + } + list.value = list.value.map((item: any) => { + let obj = {} + if (itemFormData.value.itemCategoryName === '机械式温湿度仪表') { + obj = { + ...item, + average1: (Number(item.oneValue) + Number(item.threeValue)) / 2, + average2: (Number(item.twoValue) + Number(item.fourValue)) / 2, + error: (Number(item.oneValue) + Number(item.threeValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue)) / 2, + maxError: `±${Math.abs((Number(item.oneValue) + Number(item.threeValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue)) / 2)}`, + } + } + else { + // 数字式/外置探头式温湿度仪表 + obj = { + ...item, + average1: (Number(item.oneValue) + Number(item.threeValue) + Number(item.fiveValue)) / 2, + average2: (Number(item.twoValue) + Number(item.fourValue) + Number(item.sixValue)) / 2, + error: (Number(item.oneValue) + Number(item.threeValue) + Number(item.fiveValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue) + Number(item.sixValue)) / 2, + maxError: `±${Math.abs((Number(item.oneValue) + Number(item.threeValue) + Number(item.fiveValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue) + Number(item.sixValue)) / 2)}`, + } + } + return obj + }) // const params = { // belongStandardEquipment: itemFormData.value.belongStandardEquipment, // 检校标准装置 // itemCategoryName: itemFormData.value.itemCategoryName, // 检定项分类名称 @@ -272,6 +298,46 @@ }, { immediate: true }) onMounted(() => { + setTimeout(() => { + list.value = [ + { + params: '示值测试', + type: '温度示值', + value: '', + point: '13.6℃', + unit: '℃', + urel: '0.6984', + allowMaximum: '0.4892', + editable: pageType.value !== 'detail', + oneValue: '', + twoValue: '', + threeValue: '', + fourValue: '', + fiveValue: '', + sixValue: '', + average1: '', + average2: '', + }, + { + params: '示值测试', + type: '湿度示值', + value: '', + point: '45%RH', + unit: '%RH', + urel: '0.2657', + allowMaximum: '0.669', + editable: pageType.value !== 'detail', + oneValue: '', + twoValue: '', + threeValue: '', + fourValue: '', + fiveValue: '', + sixValue: '', + average1: '', + average2: '', + }, + ] + }, 1500) if (pageType.value === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 @@ -344,8 +410,8 @@ - - + + 是 @@ -354,7 +420,7 @@ - + 计算结果 @@ -365,7 +431,6 @@ :need-index="true" /> - + ([ // 机械式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) const columns_digital = ref([ // 数字式/外置探头式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true }, - { text: '类型', value: 'nominalValue', align: 'center', required: true }, - { text: '温度点/湿度点', value: 'nominalValue', align: 'center', required: true }, - { text: '单位', value: 'nominalValue', align: 'center', required: true }, - { text: '不确定度', value: 'nominalValue', align: 'center', required: true }, - { text: '最大允许误差', value: 'nominalValue', align: 'center', required: true }, + { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: true, type: 'select' }, + { text: '温度点/湿度点', value: 'ponint', align: 'center', required: true, type: 'number' }, + { text: '单位', value: 'unit', align: 'center', required: false, type: 'text' }, + { text: '不确定度', value: 'urel', align: 'center', required: true, type: 'number' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: true, type: 'number' }, ]) -// --------------------------------------------表格方法----------------------------------------------- -// 多选 -const handleSelectionChange = () => { - -} -// ---------------------------------------------校验--------------------------------------------------- -// 校验表格(点击保存的时候用、生成标准器示值) -const checkList = () => { - // return useCheckList(list.value, columns.value, '检定项表格') -} - +const form = ref({ + szcs: 1, + appearance: 1, +}) // --------------------------------------------钩子---------------------------------------------------- watch(() => props.itemCategoryName, (newValue) => { if (newValue) { @@ -84,6 +78,91 @@ }) defineExpose({ list }) +// --------------------------------表格操作--------------------------------------------------- +const addRow = (list1: IList[], title: string, index: string) => { + if (useCheckList(list1, columns.value, `${title}表格`)) { + let data = {} as any + switch (title) { + case '示值测试': // 示值测试 + data = { + id: '', + params: '示值测试', + nominalValue: '', + unit: '', + editable: true, + type: '', + ponint: '', + urel: '', + allowMaximum: '', + } + list.value.length ? list.value.push(JSON.parse(JSON.stringify(list.value[list.value.length - 1]))) : list.value.push(data) + break + } + } +} +/** + * 删除行公共方法 + * @param checkoutList 选中的数组 + * @param list 操作的数组 + */ +const delRow = (checkoutList: IList[], list1: IList[], title: string) => { + if (!checkoutList.length) { + ElMessage.warning('请选中要删除的行') + } + else { + let data = [] as any[] + data = differenceArray(list1, checkoutList) + switch (title) { + case '示值测试': // 衰减量 + list.value = data + break + } + } +} +// ---------------------------------------------校验--------------------------------------------------- +// 校验表格(点击保存的时候用、生成标准器示值) +function checkList(list: any[], columns: any[], title: string) { + if (form.value.szcs) { + if (!list.value.length) { + ElMessage.warning('示值测试列表不能为空') + return false + } + return useCheckList(list, columns, title) + } + else { + return true + } +} +function checkAllList() { + // if (!list.value.length) { + // ElMessage.warning('鉴定项列表不能为空') + // return false + // } + return checkList(list.value, columns.value, '示值测试') +} +// 每个table对应的下拉框内容 字典 +const tableDict = ref<{ [key: string]: { value: string;name: string;id: string }[] }>({}) +tableDict.value = { + 类型: [ + { + name: '温度示值', + value: '1', + id: '1', + }, + { + name: '湿度示值', + value: '2', + id: '2', + }, + ], +} +const changeLoadSituationa = (value: any, index: number, text: string, type: string, list: any[], item: string) => { + if (item === '示值测试') { + if (text === '类型') { + list[index].unit = value === '温度示值' ? '℃' : value === '湿度示值' ? '%RH' : '' + } + } +} @@ -91,40 +170,25 @@ 外观检查 - - 示值测试 - - - - - - 增加行 - - - 删除行 - - - - - - - - *{{ item.text }} - - - - + + + + + 示值测试 + + + + + ± + + + diff --git a/src/views/business/measure/item/detail.vue b/src/views/business/measure/item/detail.vue index 07b6d0a..cf68855 100644 --- a/src/views/business/measure/item/detail.vue +++ b/src/views/business/measure/item/detail.vue @@ -769,6 +769,9 @@ else { showItemTableType.value = 'createPattern' // 生成检定项模式 } + if (form.value.belongStandardEquipment === '7') { + return + } fetchInfo() // 获取详情 }) diff --git a/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue index df86064..1e6ff79 100644 --- a/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/seventh/templateDetail.vue @@ -9,7 +9,7 @@ import TemplateFormAndTable from '../templateFormAndTable.vue' import { useSolveFormData } from '../useSolveFormData' import type { IDetailMeasureList } from './seventh-interface' -import templateTable from './templateTable.vue' +// import templateTable from './templateTable.vue' import useUserStore from '@/store/modules/user' import type { dictType } from '@/global' import { getDictByCode } from '@/api/system/dict' @@ -19,6 +19,7 @@ import { useCheckList } from '@/commonMethods/useCheckList' import { calc } from '@/utils/useCalc' import multiTable from '@/components/MultiHeaderTable/index.vue' +import templateTable from '@/views/business/measure/item/components/second/templateTable.vue' const props = defineProps({ infoId: String, // id @@ -37,6 +38,7 @@ belongStandardEquipment: '', // 标准装置code belongStandardEquipmentName: '', // 标准装置名称 appearance: '1', // 外观(1/0) + appearance1: '1', // 外观(1/0) appearanceRemark: '1', // 外观备注说明 }) @@ -62,93 +64,93 @@ const list = ref([]) // 表格数据 const columns = ref([]) const columns_mechanical = ref([ // 机械式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '类型', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度/湿度', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度点/湿度点', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: false, type: 'text' }, + { text: '温度/湿度', value: 'value', align: 'center', required: true, type: 'inputNumber', unit: pageType.value === 'detail' ? 'unit' : '' }, + { text: '温度点/湿度点', value: 'point', align: 'center', required: false, type: 'text' }, { - text: '1', - value: 'beforeFrictionStroke', + text: '第1次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '被检示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'oneValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'twoValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { - text: '2', - value: 'beforeFrictionStroke', + text: '第2次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'threeValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'fourValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { text: '均值', - value: 'beforeFrictionStroke', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'average1', align: 'center', required: false, width: '140', type: 'text' }, + { text: '被检示值', value: 'average2', align: 'center', required: false, width: '140', type: 'text' }, ], }, - { text: '误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大允许误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '误差', value: 'error', align: 'center', required: false, type: 'text' }, + { text: '最大误差', value: 'maxError', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: false, type: 'text' }, ]) const columns_digital = ref([ // 数字式/外置探头式温湿度仪表 - { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '类型', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度/湿度', value: 'nominalValue', align: 'center', required: true, type: 'text' }, - { text: '温度点/湿度点', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '检定项目', value: 'params', align: 'center', required: false, type: 'text' }, + { text: '类型', value: 'type', align: 'center', required: false, type: 'text' }, + { text: '温度/湿度', value: 'value', align: 'center', required: false, type: 'inputNumber', unit: pageType.value === 'detail' ? 'unit' : '' }, + { text: '温度点/湿度点', value: 'point', align: 'center', required: false, type: 'text' }, { - text: '1', - value: 'beforeFrictionStroke', + text: '第1次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '被检示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'oneValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'twoValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { - text: '2', - value: 'beforeFrictionStroke', + text: '第2次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'threeValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'fourValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { - text: '3', - value: 'beforeFrictionStroke', + text: '第3次', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'fiveValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, + { text: '被检示值', value: 'sixValue', align: 'center', required: true, width: '140', type: 'inputNumber' }, ], }, { text: '均值', - value: 'beforeFrictionStroke', + value: '', align: 'center', - required: true, + required: false, children: [ - { text: '标准示值', value: 'beforeFrictionForwardStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, - { text: '标准示值', value: 'beforeFrictionReverseStroke', align: 'center', required: true, width: '180', type: 'inputNumber' }, + { text: '标准示值', value: 'average1', align: 'center', required: false, width: '140', type: 'text' }, + { text: '被检示值', value: 'average2', align: 'center', required: false, width: '140', type: 'text' }, ], }, - { text: '误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '最大允许误差', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, - { text: '不确定度', value: 'indicatingValue', align: 'center', required: true, type: 'text' }, + { text: '误差', value: 'error', align: 'center', required: false, type: 'text' }, + { text: '最大误差', value: 'maxError', align: 'center', required: false, type: 'text' }, + { text: '最大允许误差', value: 'allowMaximum', align: 'center', required: false, type: 'text' }, + { text: '不确定度', value: 'urel', align: 'center', required: false, type: 'text' }, ]) // -------------------------------------------获取详情信息-------------------------------------------------- @@ -220,14 +222,38 @@ // 点击计算结果 const calculate = () => { // ElMessage.info('敬请期待') - return false - // if (!list.value.length) { - // ElMessage.warning('没有检定项数据,无法生成结果') - // return false - // } - // if (!useCheckList(list.value, measureColumns.value, '检定数据')) { - // return false - // } + // return false + if (!list.value.length) { + ElMessage.warning('没有检定项数据,无法生成结果') + return false + } + console.log(list.value, columns.value) + if (!useCheckList(list.value, columns.value, '示值测试')) { + return false + } + list.value = list.value.map((item: any) => { + let obj = {} + if (itemFormData.value.itemCategoryName === '机械式温湿度仪表') { + obj = { + ...item, + average1: (Number(item.oneValue) + Number(item.threeValue)) / 2, + average2: (Number(item.twoValue) + Number(item.fourValue)) / 2, + error: (Number(item.oneValue) + Number(item.threeValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue)) / 2, + maxError: `±${Math.abs((Number(item.oneValue) + Number(item.threeValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue)) / 2)}`, + } + } + else { + // 数字式/外置探头式温湿度仪表 + obj = { + ...item, + average1: (Number(item.oneValue) + Number(item.threeValue) + Number(item.fiveValue)) / 2, + average2: (Number(item.twoValue) + Number(item.fourValue) + Number(item.sixValue)) / 2, + error: (Number(item.oneValue) + Number(item.threeValue) + Number(item.fiveValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue) + Number(item.sixValue)) / 2, + maxError: `±${Math.abs((Number(item.oneValue) + Number(item.threeValue) + Number(item.fiveValue)) / 2 - (Number(item.twoValue) + Number(item.fourValue) + Number(item.sixValue)) / 2)}`, + } + } + return obj + }) // const params = { // belongStandardEquipment: itemFormData.value.belongStandardEquipment, // 检校标准装置 // itemCategoryName: itemFormData.value.itemCategoryName, // 检定项分类名称 @@ -272,6 +298,46 @@ }, { immediate: true }) onMounted(() => { + setTimeout(() => { + list.value = [ + { + params: '示值测试', + type: '温度示值', + value: '', + point: '13.6℃', + unit: '℃', + urel: '0.6984', + allowMaximum: '0.4892', + editable: pageType.value !== 'detail', + oneValue: '', + twoValue: '', + threeValue: '', + fourValue: '', + fiveValue: '', + sixValue: '', + average1: '', + average2: '', + }, + { + params: '示值测试', + type: '湿度示值', + value: '', + point: '45%RH', + unit: '%RH', + urel: '0.2657', + allowMaximum: '0.669', + editable: pageType.value !== 'detail', + oneValue: '', + twoValue: '', + threeValue: '', + fourValue: '', + fiveValue: '', + sixValue: '', + average1: '', + average2: '', + }, + ] + }, 1500) if (pageType.value === 'add') { // 从我的任务跳转过来(新增) itemFormData.value.itemId = $route.query.itemId as string// 检定项id itemFormData.value.itemCategoryName = $route.query.itemCategoryName as string// 设备检定项分类名称 @@ -344,8 +410,8 @@ - - + + 是 @@ -354,7 +420,7 @@ - + 计算结果 @@ -365,7 +431,6 @@ :need-index="true" /> - list.value, (newVal) => { if (newVal) { if (newVal.length && pageType.value !== 'detail') { - const flag = newVal.every((item: any) => Number(item.beforeAdjustAverage) <= Number(item.upperAllowValue) && Number(item.beforeAdjustAverage) >= Number(item.lowerAllowValue) && Number(item.afterAdjustAverage) <= Number(item.upperAllowValue) && Number(item.afterAdjustAverage) >= Number(item.lowerAllowValue)) + const flag = newVal.filter((item: any) => Number(item.beforeAdjustAverage) <= Number(item.upperAllowValue) && Number(item.beforeAdjustAverage) >= Number(item.lowerAllowValue)).length if (flag && (itemFormData.value.appearance == '1' && itemFormData.value.appearanceFunctionCheck) && (itemFormData.value.tightness === '1' && itemFormData.value.sealingTest)) { itemFormData.value.conclusion = '1' itemFormData.value.remark = '无'