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