From bfe893e818c75815b249fbfaed954458930d5600 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期日, 29 九月 2024 10:53:29 +0800 Subject: [PATCH] recordSetTable group --- src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue | 38 ++++++++++++++++++++++++++++++++++++++ src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue | 7 +++---- src/views/project/yw/dataManage/knowledge/Knowledge.vue | 6 +++--- 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue index f1f59ae..8971a45 100644 --- a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue +++ b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue @@ -9,6 +9,7 @@ :cell-style="{ textAlign: 'center' }" :header-cell-style="{ textAlign: 'center' }" :data="data?.values" + :spanMethod="objectSpanMethod" highlight-current-row class="w-full h-full" cellClassName="text-sm" @@ -47,11 +48,48 @@ const tableRef = ref<TableInstance>(null); const measureWidthOffset = 28; +const groupColIndex = []; +(props.data?.cols ?? []).map((item, index) => { + if (item.group) { + groupColIndex.push(index); + } +}); + +const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => { + if (groupColIndex.includes(columnIndex)) { + return { + rowspan: row.rowspan, + colspan: 1, + }; + } +}; const resizeEvent = ({ width, height }) => { if (width === 0 || height === 0) { return; } + if (props.data?.cols?.length > 0 && props.data?.values?.length > 0) { + const groupData = _.groupBy(props.data.values, (item, index) => { + // 鎵惧嚭鎵�鏈夐渶瑕� group 鐨勫�硷紝鍔犺捣鏉� + const groupKey = item.reduce((preVal, curVal, index) => { + const isGroup = props.data.cols[index].group; + if (isGroup) { + preVal += curVal; + } + return preVal; + }, ''); + return groupKey; + }); + + // 閲嶆柊鎺掑竷涓�涓嬩綅缃紝淇濊瘉 group 鐩搁偦锛屽悓鏃舵墦涓� rowspan + props.data.values = Object.values(groupData).reduce((preVal, curVal) => { + curVal.map((item, index, array) => { + item.rowspan = index === 0 ? array.length : undefined; + }); + preVal = preVal.concat(curVal); + return preVal; + }, []); + const maxStrList = props.data.cols.map((item) => item.title); const maxLenList = props.data.cols.map((item) => item.title.gblen()); for (const item of props.data.values) { diff --git a/src/views/project/yw/dataManage/knowledge/Knowledge.vue b/src/views/project/yw/dataManage/knowledge/Knowledge.vue index d07947f..478cab6 100644 --- a/src/views/project/yw/dataManage/knowledge/Knowledge.vue +++ b/src/views/project/yw/dataManage/knowledge/Knowledge.vue @@ -193,9 +193,9 @@ chatTestIsShow.value = true; nextTick(() => { chatRef.value.clear(); - setTimeout(() => { - chatRef.value.autoSend(row.title); - }, 30); + // setTimeout(() => { + // chatRef.value.autoSend(row.title); + // }, 30); }); }; diff --git a/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue b/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue index 15eea41..3eda15d 100644 --- a/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue +++ b/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue @@ -270,12 +270,11 @@ const openChatTest = (row) => { chatTestMapRow.value = row; chatTestIsShow.value = true; - nextTick(() => { chatRef.value.clear(); - setTimeout(() => { - chatRef.value.autoSend(row.title); - }, 30); + // setTimeout(() => { + // chatRef.value.autoSend(row.title); + // }, 30); }); }; -- Gitblit v1.9.3