From 6793a38d16508591d75f1b5e95b08f7f7d3645e3 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期四, 10 十月 2024 11:45:39 +0800
Subject: [PATCH] 系统分组

---
 src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue |   86 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 74 insertions(+), 12 deletions(-)

diff --git a/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue b/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue
index 24f3e17..a8c4fc5 100644
--- a/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue
+++ b/src/views/project/yw/systemManage/metricAgentMgr/MetricAgentMgr.vue
@@ -1,5 +1,26 @@
 <template>
-	<HMContainer type="card">
+	<AHMContainer type="card">
+		<template #aside>
+			<!-- 鐩綍鏍� -->
+			<LeftTreeByMgr
+				v-loading="treeLoading"
+				class="h100"
+				ref="leftTreeRef"
+				:defaultProps="{
+					id: 'group_id',
+					label: 'group_name',
+					children: 'children',
+				}"
+				:treedata="listTreeData"
+				title-name="鍒嗙粍鍒楄〃"
+				:show-more-operate="false"
+				:show-add="false"
+				:current-node-key="currentListID"
+				:node-icon="() => 'ele-Document'"
+				@click="handleClickNode"
+			>
+			</LeftTreeByMgr>
+		</template>
 		<template #header>
 			<el-form ref="queryFormRef" :inline="true" :model="queryParams">
 				<el-form-item label="鏍囬" prop="title">
@@ -41,7 +62,7 @@
 							</div>
 						</template>
 					</el-table-column>
-					<el-table-column prop="agent_group" label="鍒嗙粍" width="100" fixed="left" show-overflow-tooltip> </el-table-column>
+		
 
 					<el-table-column prop="title" label="鍚嶇О" width="300" fixed="left" show-overflow-tooltip> </el-table-column>
 
@@ -136,13 +157,13 @@
 		<!-- <OptDlg v-model="optDlgIsShow" :item="optDlgMapRow" @insert="insertOpt" @update="updateOpt" :groupId="currentListID"></OptDlg> -->
 		<MetricPrompt v-model="infoDlgIsShow" :metricItem="infoDlgMapRow"></MetricPrompt>
 		<MetricName v-model="metricNameIsShow" :metricItem="metricNameMapRow"></MetricName>
-	</HMContainer>
+	</AHMContainer>
 </template>
 
 <script setup lang="ts">
 import { useDraggable } from '@vueuse/core';
 
-import { onMounted, ref } from 'vue';
+import { computed, onMounted, ref } from 'vue';
 import { usePageDisplay } from '/@/hooks/usePageDisplay';
 import { useQueryTable } from '/@/hooks/useQueryTable';
 // import { useTableSort } from '/@/hooks/useTableSort';
@@ -158,21 +179,62 @@
 import { SupervisorPublished, supervisorPublishedMap } from '../../lowCode/sqlAmis/types';
 import MetricName from './optDlg/MetricName.vue';
 import MetricPrompt from './optDlg/MetricPrompt.vue';
-import HMContainer from '/@/components/layout/HMContainer.vue';
+import AHMContainer from '/@/components/layout/AHMContainer.vue';
+import { convertListToTree } from '/@/utils/util';
+import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue';
+import * as agentGroupApi from '/@/api/ai/agentGroup';
 
+//#region ====================== 宸︿晶鏍戞暟鎹紝tree init ======================
+const leftTreeRef = useCompRef(LeftTreeByMgr);
+const treeLoading = ref(false);
+const listData = ref([]);
+const currentListID = computed(() => currentNode.value?.group_id);
+const currentNode = ref(null);
+
+const listTreeData = computed(() => {
+	const result = convertListToTree(listData.value, {
+		ID: 'group_id',
+		ParentID: 'p_group_id',
+		Children: 'children',
+	});
+	return result;
+});
+
+const handleClickNode = (data) => {
+	nextTick(() => {
+		leftTreeRef.value?.treeRef.setCurrentKey(data.id);
+	});
+	currentNode.value = data;
+	getTableData();
+};
+const getListTreeData = async () => {
+	const res = await agentGroupApi.getSceneGroupTreeByPost();
+	listData.value = res.groups || [];
+	const firstListTreeNode = listTreeData.value[0];
+	if (firstListTreeNode) {
+		handleClickNode(firstListTreeNode);
+	} else {
+		tableData.value = [];
+		currentNode.value = null;
+	}
+};
+//#endregion
 //#region ====================== 琛ㄦ牸鏁版嵁锛宼able init ======================
 const tableLoading = ref(false);
 const tableData = ref([]);
 const isDragStatus = ref(false);
 const allTableData = ref(null);
 const getTableData = async () => {
-	const res = await metricApi.getMetricAgentListByPost();
-	allTableData.value = (res.values || []).map((item) => {
-		item.create_time = item.create_time?.slice(0, 10);
+	if (!allTableData.value) {
+		const res = await metricApi.getMetricAgentListByPost();
+		allTableData.value = (res.values || []).map((item) => {
+			item.create_time = item.create_time?.slice(0, 10);
 
-		return item;
-	});
-	tableData.value = res?.values ?? [];
+			return item;
+		});
+	}
+
+	tableData.value = allTableData.value.filter((item) => item.agent_group === currentListID.value);
 };
 //#endregion
 
@@ -333,7 +395,7 @@
 };
 //#endregion
 onMounted(() => {
-	getTableData();
+	getListTreeData();
 });
 </script>
 <style scoped lang="scss"></style>

--
Gitblit v1.9.3