From 8d83544ff6e123df4facf40c446e7d9bf4a522b6 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 31 十二月 2024 18:07:54 +0800
Subject: [PATCH] 序号

---
 src/views/project/yw/lowCode/sqlAmis/SqlAmis.vue |   63 +++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/src/views/project/yw/lowCode/sqlAmis/SqlAmis.vue b/src/views/project/yw/lowCode/sqlAmis/SqlAmis.vue
index 0ab119e..9cdca4f 100644
--- a/src/views/project/yw/lowCode/sqlAmis/SqlAmis.vue
+++ b/src/views/project/yw/lowCode/sqlAmis/SqlAmis.vue
@@ -8,7 +8,7 @@
 				ref="leftTreeRef"
 				:defaultProps="{
 					id: 'group_id',
-					label: 'group_name',
+					label: 'label',
 					children: 'children',
 				}"
 				:treedata="listTreeData"
@@ -52,10 +52,12 @@
 					<template v-for="item in columnList" :key="item.prop">
 						<el-table-column
 							v-if="item.isShow ?? true"
+							:type="item.type"
 							:prop="item.prop"
 							:label="item.label"
 							:fixed="item.fixed"
 							:width="item.width"
+							:align="item.align"
 							showOverflowTooltip
 						>
 							<template #default="scope" v-if="item.prop === 'published'">
@@ -107,6 +109,7 @@
 													deleteCurrentRow(scope.row, '椤甸潰', supervisorAdminApi.deleteSupervisor, () => {
 														const foundIndex = tableData.findIndex((item) => item === scope.row);
 														foundIndex > -1 && tableData.splice(foundIndex, 1);
+														setCurrentLen(-1);
 													});
 												}
 											"
@@ -198,14 +201,15 @@
 
 <script setup lang="ts">
 import { useDraggable } from '@vueuse/core';
-import { debounce, travelTree } from '/@/utils/util';
+import { debounce, deleteCurrentRow, travelTree } from '/@/utils/util';
 
 import { computed, onMounted, ref } from 'vue';
 import { usePageDisplay } from '/@/hooks/usePageDisplay';
 import { useQueryTable } from '/@/hooks/useQueryTable';
 // import { useTableSort } from '/@/hooks/useTableSort';
 // import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness';
-import axios, { CancelTokenSource } from 'axios';
+import type { CancelTokenSource } from 'axios';
+import axios from 'axios';
 import type { FormInstance, FormRules } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import { nextTick } from 'vue';
@@ -219,7 +223,7 @@
 import Chat from '/@/components/chat/Chat.vue';
 import AHMContainer from '/@/components/layout/AHMContainer.vue';
 import ColFilter from '/@/components/table/colFilter/ColFilter.vue';
-import { TableCol } from '/@/components/table/colFilter/types';
+import type { TableCol } from '/@/components/table/colFilter/types';
 import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue';
 import { useUpdateData } from '/@/hooks/useUpdateData';
 import emitter from '/@/utils/mitt';
@@ -230,6 +234,7 @@
 import { OptClassificationMap, classificationEnum } from '/@/views/types/metrics';
 
 const columnList = ref<TableCol[]>([
+	{ type: 'index', label: '搴忓彿', width: 55, fixed: 'left', align: 'center' },
 	{ prop: 'title', label: '鏍囬', width: 300, fixed: 'left' },
 	{ prop: 'published', label: '鍙戝竷鐘舵��', width: 85 },
 	{ prop: 'prompt', label: '鎻愮ず璇�', width: 300 },
@@ -240,6 +245,7 @@
 	{ prop: 'note', label: '澶囨敞' },
 	{ prop: 'operate', label: '鎿嶄綔', width: 200, fixed: 'right' },
 ]);
+
 //#region ====================== 宸︿晶鏍戞暟鎹紝tree init ======================
 const leftTreeRef = useCompRef(LeftTreeByMgr);
 const treeLoading = ref(false);
@@ -393,12 +399,38 @@
 //#endregion
 
 //#region ====================== 琛ㄦ牸鏁版嵁锛宼able init ======================
-const getLenById =(data:any[],id:string,value:any)=>{
-	return data.filter(
-		(item) =>
-			item.group_id === id || value.children?.some((treeItem) => treeItem.group_id === item.group_id)
-	).length;
-}
+
+const setCurrentLen = (offset: 1 | -1) => {
+	currentNode.value.label = `${currentNode.value.group_name} (${tableData.value.length})`;
+	const pId = currentNode.value.p_group_id;
+	if (pId) {
+		travelTree(listTreeData.value, (value) => {
+			if (value.group_id === pId) {
+				value.len += offset;
+				value.label = `${value.group_name} (${value.len})`;
+				return true;
+			}
+		});
+	}
+	// 淇敼鍚嶇О鍚庯紝涓嶇煡閬撲负浠�涔堜細澶卞幓 current 閫変腑
+	setTimeout(() => {
+		leftTreeRef.value?.treeRef.setCurrentKey(currentListID.value);
+	}, 0);
+};
+const setListLen = () => {
+	travelTree(listTreeData.value, (value, index, array, parent) => {
+		const id = value.group_id;
+		const len = allTableData.value.filter(
+			(item) => item.group_id === id || value.children?.some((treeItem) => treeItem.group_id === item.group_id)
+		).length;
+		value.len = len;
+		value.label = `${value.group_name} (${len})`;
+	});
+	// 淇敼鍚嶇О鍚庯紝涓嶇煡閬撲负浠�涔堜細澶卞幓 current 閫変腑
+	setTimeout(() => {
+		leftTreeRef.value?.treeRef.setCurrentKey(currentListID.value);
+	}, 0);
+};
 const tableLoading = ref(false);
 const tableData = ref([]);
 const isDragStatus = ref(false);
@@ -412,13 +444,7 @@
 
 			return item;
 		});
-
-		travelTree(listTreeData.value, (value, index, array, parent) => {
-			const len = getLenById(allTableData.value,value.group_id,value);
-			value.group_name =`${value.group_name} (${len})`
-			
-		})
-
+		setListLen();
 	}
 	tableData.value = allTableData.value.filter(
 		(item) =>
@@ -492,6 +518,9 @@
 
 const insertOpt = (newData) => {
 	tableData.value.unshift({ ...newData, published: SupervisorPublished.N });
+	allTableData.value.unshift({ ...newData, published: SupervisorPublished.N });
+
+	setCurrentLen(1);
 };
 //#endregion
 

--
Gitblit v1.9.3