diff --git a/src/commonMethods/useMergeTableRow.ts b/src/commonMethods/useMergeTableRow.ts index 25f701d..0ba2c90 100644 --- a/src/commonMethods/useMergeTableRow.ts +++ b/src/commonMethods/useMergeTableRow.ts @@ -42,3 +42,17 @@ return row[span] } } +export function initTableRow(data: any) { + let tableData = [] + tableData = data.map((item: any) => { + const obj = {} as { [key: string]: any } + for (const i in item) { + if (!i.includes('-span')) { + obj[i] = item[i] + } + } + console.log(obj, 'obj') + return obj + }) + return tableData +} diff --git a/src/commonMethods/useMergeTableRow.ts b/src/commonMethods/useMergeTableRow.ts index 25f701d..0ba2c90 100644 --- a/src/commonMethods/useMergeTableRow.ts +++ b/src/commonMethods/useMergeTableRow.ts @@ -42,3 +42,17 @@ return row[span] } } +export function initTableRow(data: any) { + let tableData = [] + tableData = data.map((item: any) => { + const obj = {} as { [key: string]: any } + for (const i in item) { + if (!i.includes('-span')) { + obj[i] = item[i] + } + } + console.log(obj, 'obj') + return obj + }) + return tableData +} diff --git a/src/views/business/measure/item/components/second/templateDetail.vue b/src/views/business/measure/item/components/second/templateDetail.vue index 64ba38d..aab09b4 100644 --- a/src/views/business/measure/item/components/second/templateDetail.vue +++ b/src/views/business/measure/item/components/second/templateDetail.vue @@ -111,7 +111,7 @@ // ----------------------------------------表头------------------------------------------------ const columns_line_voltage_regulation = ref([ // 电源电压调整率 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '输出通道', value: 'outputChannel', align: 'center', required: true, type: 'select-dict', code: 'test-dict' }, + { text: '输出通道', value: 'outputChannel', align: 'center', required: true, type: 'select' }, { text: '单位', value: 'unit', align: 'center', required: true, type: 'select' }, { text: '调压器输出值', value: 'voltageRegulatorOutputValue', align: 'center', required: true, type: 'select' }, { text: '被检电源技术指标', value: 'technicalIndex', align: 'center', required: true, type: 'input' }, diff --git a/src/commonMethods/useMergeTableRow.ts b/src/commonMethods/useMergeTableRow.ts index 25f701d..0ba2c90 100644 --- a/src/commonMethods/useMergeTableRow.ts +++ b/src/commonMethods/useMergeTableRow.ts @@ -42,3 +42,17 @@ return row[span] } } +export function initTableRow(data: any) { + let tableData = [] + tableData = data.map((item: any) => { + const obj = {} as { [key: string]: any } + for (const i in item) { + if (!i.includes('-span')) { + obj[i] = item[i] + } + } + console.log(obj, 'obj') + return obj + }) + return tableData +} diff --git a/src/views/business/measure/item/components/second/templateDetail.vue b/src/views/business/measure/item/components/second/templateDetail.vue index 64ba38d..aab09b4 100644 --- a/src/views/business/measure/item/components/second/templateDetail.vue +++ b/src/views/business/measure/item/components/second/templateDetail.vue @@ -111,7 +111,7 @@ // ----------------------------------------表头------------------------------------------------ const columns_line_voltage_regulation = ref([ // 电源电压调整率 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '输出通道', value: 'outputChannel', align: 'center', required: true, type: 'select-dict', code: 'test-dict' }, + { text: '输出通道', value: 'outputChannel', align: 'center', required: true, type: 'select' }, { text: '单位', value: 'unit', align: 'center', required: true, type: 'select' }, { text: '调压器输出值', value: 'voltageRegulatorOutputValue', align: 'center', required: true, type: 'select' }, { text: '被检电源技术指标', value: 'technicalIndex', align: 'center', required: true, type: 'input' }, diff --git a/src/views/business/measure/item/components/second/templateTable.vue b/src/views/business/measure/item/components/second/templateTable.vue index 2010136..bd7608e 100644 --- a/src/views/business/measure/item/components/second/templateTable.vue +++ b/src/views/business/measure/item/components/second/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 { useMergeCells } from '@/commonMethods/useMergeCells' +import { mergeTableRow, useMergeTableRow } from '@/commonMethods/useMergeTableRow' // ------------------定义props、 emit------------------- const props = defineProps({ pageType: { @@ -78,6 +79,11 @@ type: Boolean, default: false, }, + // 需要合并的列 + needMergeCells: { + type: Array, + default: () => ([]), + }, }) const emit = defineEmits(['change', 'selectionChange', 'rowClick', 'rowDbClick', 'multiSelect', 'filterChange', 'addRow', 'delRow', 'changeLoadSituationa', 'calculateResult', 'disabled']) // ------------------------------------------字典---------------------------------------------- @@ -175,6 +181,22 @@ const getDictValue = (value: string) => { console.log(value, 'value') } +// function spanMethod({ rowIndex, columnIndex }: { rowIndex: number; columnIndex: number }) { +// if (!props.needMergeCells.length) { return } +// return useMergeCells(props.data, props.needMergeCells, rowIndex, columnIndex) +// } + +watch(() => props.data, (newValue, old) => { + if (!props.needMergeCells.length) { + return + } + if (newValue) { + useMergeTableRow(newValue, props.needMergeCells) + } +}, { + deep: true, + immediate: true, +}) defineExpose({ clearMulti, initColumnsState, }) @@ -213,6 +235,7 @@ :height="height" border stripe + :span-method="mergeTableRow" :size="size" style="width: 100%;" @selection-change="handleSelectionChange" diff --git a/src/commonMethods/useMergeTableRow.ts b/src/commonMethods/useMergeTableRow.ts index 25f701d..0ba2c90 100644 --- a/src/commonMethods/useMergeTableRow.ts +++ b/src/commonMethods/useMergeTableRow.ts @@ -42,3 +42,17 @@ return row[span] } } +export function initTableRow(data: any) { + let tableData = [] + tableData = data.map((item: any) => { + const obj = {} as { [key: string]: any } + for (const i in item) { + if (!i.includes('-span')) { + obj[i] = item[i] + } + } + console.log(obj, 'obj') + return obj + }) + return tableData +} diff --git a/src/views/business/measure/item/components/second/templateDetail.vue b/src/views/business/measure/item/components/second/templateDetail.vue index 64ba38d..aab09b4 100644 --- a/src/views/business/measure/item/components/second/templateDetail.vue +++ b/src/views/business/measure/item/components/second/templateDetail.vue @@ -111,7 +111,7 @@ // ----------------------------------------表头------------------------------------------------ const columns_line_voltage_regulation = ref([ // 电源电压调整率 { text: '检定项目', value: 'params', align: 'center', required: true, type: 'text' }, - { text: '输出通道', value: 'outputChannel', align: 'center', required: true, type: 'select-dict', code: 'test-dict' }, + { text: '输出通道', value: 'outputChannel', align: 'center', required: true, type: 'select' }, { text: '单位', value: 'unit', align: 'center', required: true, type: 'select' }, { text: '调压器输出值', value: 'voltageRegulatorOutputValue', align: 'center', required: true, type: 'select' }, { text: '被检电源技术指标', value: 'technicalIndex', align: 'center', required: true, type: 'input' }, diff --git a/src/views/business/measure/item/components/second/templateTable.vue b/src/views/business/measure/item/components/second/templateTable.vue index 2010136..bd7608e 100644 --- a/src/views/business/measure/item/components/second/templateTable.vue +++ b/src/views/business/measure/item/components/second/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 { useMergeCells } from '@/commonMethods/useMergeCells' +import { mergeTableRow, useMergeTableRow } from '@/commonMethods/useMergeTableRow' // ------------------定义props、 emit------------------- const props = defineProps({ pageType: { @@ -78,6 +79,11 @@ type: Boolean, default: false, }, + // 需要合并的列 + needMergeCells: { + type: Array, + default: () => ([]), + }, }) const emit = defineEmits(['change', 'selectionChange', 'rowClick', 'rowDbClick', 'multiSelect', 'filterChange', 'addRow', 'delRow', 'changeLoadSituationa', 'calculateResult', 'disabled']) // ------------------------------------------字典---------------------------------------------- @@ -175,6 +181,22 @@ const getDictValue = (value: string) => { console.log(value, 'value') } +// function spanMethod({ rowIndex, columnIndex }: { rowIndex: number; columnIndex: number }) { +// if (!props.needMergeCells.length) { return } +// return useMergeCells(props.data, props.needMergeCells, rowIndex, columnIndex) +// } + +watch(() => props.data, (newValue, old) => { + if (!props.needMergeCells.length) { + return + } + if (newValue) { + useMergeTableRow(newValue, props.needMergeCells) + } +}, { + deep: true, + immediate: true, +}) defineExpose({ clearMulti, initColumnsState, }) @@ -213,6 +235,7 @@ :height="height" border stripe + :span-method="mergeTableRow" :size="size" style="width: 100%;" @selection-change="handleSelectionChange" diff --git a/src/views/business/taskMeasure/measureData/components/second/templateDetail.vue b/src/views/business/taskMeasure/measureData/components/second/templateDetail.vue index d68c6eb..bcc217a 100644 --- a/src/views/business/taskMeasure/measureData/components/second/templateDetail.vue +++ b/src/views/business/taskMeasure/measureData/components/second/templateDetail.vue @@ -19,6 +19,7 @@ import { useCheckList } from '@/commonMethods/useCheckList' import { calc } from '@/utils/useCalc' import templateTable from '@/views/business/measure/item/components/second/templateTable.vue' +import { initTableRow } from '@/commonMethods/useMergeTableRow' const props = defineProps({ infoId: String, // id dataNo: String, // 检定数据编号 @@ -138,6 +139,21 @@ { text: '仪器技术指标', value: 'technicalIndex', align: 'center', required: true, type: 'text' }, { text: '短期稳定性', value: 'shortTermStability', align: 'center', required: true, type: 'text' }, ]) +// 增加行 - 输出电压短期稳定性 +const addRow = () => { + outputVoltageStabilityList.value.push(outputVoltageStabilityList.value[outputVoltageStabilityList.value.length - 1]) + outputVoltageStabilityList.value = initTableRow(outputVoltageStabilityList.value) + // outputVoltageStabilityList.value = outputVoltageStabilityList.value.map((item) => { + // const obj = {} + // for (const i in item) { + // if (!i.includes('-span')) { + // obj[i] = item[i] + // } + // } + // console.log(obj, 'obj') + // return obj + // }) +} // -------------------------------------------获取详情信息-------------------------------------------------- // 获取页面详情信息 const fetchInfo = () => { @@ -362,42 +378,44 @@