From fbd3159c03b5a733eecbbe463d6114ae9458d0a4 Mon Sep 17 00:00:00 2001
From: yangyin <1850366751@qq.com>
Date: 星期一, 02 九月 2024 12:09:42 +0800
Subject: [PATCH]  联调数据管理

---
 src/api/knowledge/group.ts                           |   71 +++++++
 src/views/project/yw/dataManage/graph/GraphIndex.vue |  375 +++++++++++++----------------------------
 src/views/project/yw/dataManage/graph/AddGraph.vue   |   72 ++++---
 3 files changed, 226 insertions(+), 292 deletions(-)

diff --git a/src/api/knowledge/group.ts b/src/api/knowledge/group.ts
new file mode 100644
index 0000000..88e3f16
--- /dev/null
+++ b/src/api/knowledge/group.ts
@@ -0,0 +1,71 @@
+import request from '/@/utils/request';
+/**
+ * @summary description 鑾峰彇鍏ㄩ儴鐨勬枃妗e垎缁�
+ */
+export const get_knowledge_group_list = async () => {
+	return request({
+		url: '/admin/knowledge/get_knowledge_group_list',
+		method: 'POST',
+	});
+};
+
+/**
+ * @summary description 娣诲姞鏂囨。鍒嗙粍
+ */
+export const add_knowledge_group = async (params) => {
+	return request({
+		url: '/admin/knowledge/add_knowledge_group',
+		method: 'POST',
+		data: params,
+	});
+};
+/**
+ * @summary description 淇敼鏂囨。鍒嗙粍
+ */
+export const update_knowledge_group = async (params) => {
+	return request({
+		url: '/admin/knowledge/update_knowledge_group',
+		method: 'POST',
+		data: params,
+	});
+};
+/**
+ * @summary description 鍒犻櫎鏂囨。鍒嗙粍
+ */
+export const delete_knowledge_group = async (params) => {
+	return request({
+		url: '/admin/knowledge/delete_knowledge_group',
+		method: 'POST',
+		data: params,
+	});
+};
+
+/**
+ * @summary description 鑾峰彇鎵�鏈夌殑鏂囨。
+ */
+export const list_knowledge_file = async () => {
+	return request({
+		url: '/admin/knowledge/list_knowledge_file',
+		method: 'POST',
+	});
+};
+/**
+ * @summary description 娣诲姞鏂囨。
+ */
+export const add_knowledge_file = async (params) => {
+	return request({
+		url: '/admin/knowledge/add_knowledge_file',
+		method: 'POST',
+		data: params,
+	});
+};
+/**
+ * @summary description 鍒犻櫎鏂囨。
+ */
+export const delete_knowledge_file = async (params) => {
+	return request({
+		url: '/admin/knowledge/delete_knowledge_file',
+		method: 'POST',
+		data: params,
+	});
+};
diff --git a/src/views/project/yw/dataManage/graph/AddGraph.vue b/src/views/project/yw/dataManage/graph/AddGraph.vue
index e7402b8..e60d30e 100644
--- a/src/views/project/yw/dataManage/graph/AddGraph.vue
+++ b/src/views/project/yw/dataManage/graph/AddGraph.vue
@@ -12,25 +12,15 @@
 			<div class="relative transition-[opacity 0.3s]">
 				<div class="set-form-height">
 					<div class="flex flex-col">
-						<el-form :model="state.categoryForm" label-width="120px" label-position="left">
+						<el-form :model="state.categoryForm" label-width="120px" label-position="left" :rules="state.categoryFormRules">
 							<el-form-item label="瀵煎叆绫荤洰:">
 								<label>{{ state.categoryForm.ImportCategory }}</label>
 							</el-form-item>
 							<el-form-item label="绫荤洰绫诲瀷:">
 								<label>{{ state.categoryForm.CategoryType }}</label>
 							</el-form-item>
-							<el-form-item label="瀵煎叆鏂瑰紡:">
-								<el-upload
-									ref="uploadRef"
-									v-model:file-list="fileList"
-									class="upload-demo w-[530px]"
-									drag
-									:multiple="true"
-									:auto-upload="false"
-									:accept="state.allowType"
-									:limit="state.limit"
-									:before-upload="beforeAvatarUpload"
-								>
+							<el-form-item label="瀵煎叆鏂瑰紡:" prop="importType">
+								<el-upload ref="uploadRef" class="upload-demo w-[530px]" :http-request="uploadFile" drag :accept="state.allowType">
 									<el-icon class="el-icon--upload"><upload-filled /></el-icon>
 									<div class="el-upload__text">
 										<em>鐐瑰嚮鎴栨嫋鎷戒笂浼犳枃浠�</em>
@@ -75,7 +65,9 @@
 import type { UploadUserFile } from 'element-plus';
 import { ElMessage } from 'element-plus';
 import { reactive, ref } from 'vue';
-import { useRouter } from 'vue-router';
+import { useRoute, useRouter } from 'vue-router';
+import { add_knowledge_file } from '/@/api/knowledge/group';
+
 // 瀹氫箟鍙橀噺鍐呭
 const state = reactive({
 	detailTitle: '瀵煎叆鏁版嵁',
@@ -84,40 +76,52 @@
 		CategoryType: '鏈湴绫荤洰',
 		DocumentRecognition: '1',
 	},
-	allowType: '.pdf,.doc,.docx,.txt,.md,.pptx,.ppt',
+	// allowType: '.pdf,.doc,.docx,.txt,.md,.pptx,.ppt',
+	allowType: 'md',
 	limit: 5,
 	size: 5,
 	demoDesc: '浣跨敤闃块噷浜戞枃妗f櫤鑳借В鏋愭湇鍔℃嵁瑙f瀽鏂囨。锛屾娊鍙栨枃妗e唴瀹广�佸眰绾х粨鏋勭瓑淇℃伅銆�',
+	categoryFormRules: {
+		importType: [
+			{
+				required: true,
+				message: '璇烽�夋嫨鏂囦欢',
+				trigger: 'change',
+			},
+		],
+	},
 });
 const fileList = ref<UploadUserFile[]>([]);
 const router = useRouter();
+const route = useRoute();
 //杩斿洖
 const handleExitFlow = () => {
 	//鏄惁鏄剧ず杩斿洖
 	router.back();
 };
 const flag = ref(true);
-const beforeAvatarUpload = () => {
-	fileList.value.forEach((item: any) => {
-		console.log(item);
-		const type = item.name.split('.')[1];
-		if (state.allowType.indexOf(type) == -1) {
-			ElMessage({
-				type: 'error',
-				message: `鏍煎紡閿欒,鏀寔鏍煎紡:${state.allowType}!`,
-			});
-			flag.value = false;
-			return;
-		} else if (item.size / 1024 / 1024 > state.size) {
-			ElMessage.error(`鏂囦欢鏈�澶�${state.size}MB!`);
-			flag.value = false;
-			return;
-		}
-	});
-	return flag.value;
+const uploadFile = (file: UploadUserFile) => {
+	fileList.value.push(file);
 };
+
 //纭
-const onSubmit = () => {};
+const onSubmit = async () => {
+	let group_id = route.query.group_id;
+	const data = new FormData();
+	fileList.value.forEach((item: any) => {
+		data.append('file', item.file);
+	});
+	data.append('group_id', group_id);
+	const res = await add_knowledge_file(data);
+	if (res.json_ok) {
+		ElMessage.success('瀵煎叆鎴愬姛');
+		router.push({
+			name: 'GraphIndex',
+		});
+	} else {
+		ElMessage.error(res.json_msg);
+	}
+};
 </script>
 <style scoped lang="scss">
 .set-form-height {
diff --git a/src/views/project/yw/dataManage/graph/GraphIndex.vue b/src/views/project/yw/dataManage/graph/GraphIndex.vue
index 5febfc1..97ff6ee 100644
--- a/src/views/project/yw/dataManage/graph/GraphIndex.vue
+++ b/src/views/project/yw/dataManage/graph/GraphIndex.vue
@@ -10,10 +10,14 @@
 				:show-more-operate="true"
 				:show-add="true"
 				:folderIcon="() => false"
+				:defaultProps="{
+					children: 'Children',
+					label: 'title',
+					id: 'id',
+				}"
 				:current-node-key="currentListID"
 				:expand-on-click-node="false"
 				:default-expand-all="true"
-				:tooltip="(_, data) => data.Code"
 				@click="handleClickNode"
 				:customDropdown="true"
 				@tree-add="openOperateFormulaGroupDialog"
@@ -35,16 +39,11 @@
 							<el-button
 								link
 								type="danger"
-								@click.stop="() => deleteCurrentFormulaGroup(data)"
+								@click.stop="() => deleteCurrentFormulaGroup(node, data)"
 								icon="ele-Delete"
 								style="cursor: pointer"
 							>
 								鍒犻櫎
-							</el-button>
-						</el-dropdown-item>
-						<el-dropdown-item>
-							<el-button @click.stop="() => openParentDlg(data)" link type="primary" icon="ele-Menu" style="cursor: pointer">
-								鐖剁骇
 							</el-button>
 						</el-dropdown-item>
 					</el-dropdown-menu>
@@ -55,10 +54,10 @@
 		<template #header>
 			<!-- 鏌ヨ銆侀噸缃�佹帓搴忋�佸鍔犺〃鍗� -->
 			<el-form :inline="true" :model="formulaQueryParams">
-				<el-form-item label="鍚嶇О" prop="Name">
-					<el-input v-model="formulaQueryParams.Name" style="width: 226.4px" placeholder="鏂囦欢鍚嶇О" clearable></el-input>
+				<el-form-item label="鍚嶇О" prop="title">
+					<el-input v-model="formulaQueryParams.title" style="width: 226.4px" placeholder="鏂囦欢鍚嶇О" clearable></el-input>
 				</el-form-item>
-				<el-form-item prop="Code">
+				<el-form-item>
 					<el-select v-model="formulaQueryParams.Code" autocomplete="off" style="width: 226.4px" clearable>
 						<el-option v-for="item in Object.keys(analyzeMap)" :key="item" :value="parseInt(item)" :label="analyzeMap[item]">
 						</el-option>
@@ -79,26 +78,17 @@
 					v-loading="formulaTableLoading"
 					ref="draggableFormulaTableRef"
 					border
-					row-key="ID"
+					row-key="id"
 					class="flex-auto"
 					:row-class-name="isFormulaTableDrag ? 'cursor-move' : 'cursor-pointer'"
-					:cell-style="{ textAlign: 'center' }"
 					:header-cell-style="{ textAlign: 'center' }"
 					:data="categoryTableData"
 					highlight-current-row
 				>
-					<el-table-column prop="Name" width="220" label="鏂囦欢鍚嶇О" fixed="left" show-overflow-tooltip />
-					<el-table-column prop="Code" width="300" label="鏂囦欢鏍煎紡" show-overflow-tooltip />
-					<el-table-column prop="FormatType" label="鏂囦欢澶у皬" width="120" show-overflow-tooltip> </el-table-column>
-					<el-table-column prop="MeasureTypes" width="120" label="鐘舵��" show-overflow-tooltip>
-						<template #default="scope">
-							<span v-if="scope.row.MeasureTypes === 1">瀵煎叆瀹屾垚</span>
-							<span v-else-if="scope.row.MeasureTypes === 0">姝e湪瀵煎叆涓�</span>
-							<span v-else>鏈煡</span>
-						</template>
-					</el-table-column>
-					<el-table-column prop="CronTypes" label="涓婁紶鏃堕棿" show-overflow-tooltip> </el-table-column>
-					<el-table-column label="鎿嶄綔" width="220" fixed="right" show-overflow-tooltip>
+					<el-table-column prop="name" label="鏂囦欢鍚嶇О" fixed="left" show-overflow-tooltip align="left" />
+					<el-table-column prop="type" width="120" label="鏂囦欢鏍煎紡" show-overflow-tooltip align="center" />
+					<el-table-column prop="time" label="涓婁紶鏃堕棿" show-overflow-tooltip width="280" align="center"></el-table-column>
+					<el-table-column label="鎿嶄綔" width="220" fixed="right" show-overflow-tooltip align="center">
 						<template #default="scope">
 							<el-button icon="ele-Tickets" size="small" text type="primary" @click="openOperateDemoPage(scope.row)"> 璇︽儏</el-button>
 							<el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentFormulaRow(scope.row)">
@@ -107,7 +97,7 @@
 						</template>
 					</el-table-column>
 				</el-table>
-				<div class="flex-0">
+				<!-- <div class="flex-0">
 					<el-pagination
 						v-model:currentPage="state.tableParams.PageIndex"
 						v-model:page-size="state.tableParams.PageSize"
@@ -119,16 +109,16 @@
 						@current-change="handleCurrentChange"
 						layout="total, sizes, prev, pager, next, jumper"
 					/>
-				</div>
+				</div> -->
 			</div>
 		</template>
 		<!-- 澧炲姞銆佷慨鏀规暟鎹璇濇 -->
 		<el-dialog
 			:destroy-on-close="true"
-			v-model="formulaGroupDialogIsShow"
+			v-model="dataGroupDialogIsShow"
 			width="400"
 			:close-on-click-modal="false"
-			@closed="closeFormulaGroupDialog"
+			@closed="closeDataGroupDialog"
 		>
 			<template #header>
 				<div style="color: #fff">
@@ -141,25 +131,20 @@
 				</div>
 			</template>
 
-			<el-form
-				:model="formulaGroupDialogFormValue"
-				ref="formulaGroupDialogFormRef"
-				:rules="formulaGroupDialogFormRules"
-				label-width="55"
-			>
-				<el-form-item label="鐖剁骇" v-if="!isEditFormulaGroupDialog" prop="ParentID">
+			<el-form :model="dataGroupDialogFormValue" ref="formulaGroupDialogFormRef" :rules="formulaGroupDialogFormRules" label-width="55">
+				<el-form-item label="鐖剁骇" v-if="!isEditDataGroupDialog" prop="parent_group">
 					<el-tree-select
 						default-expand-all
 						filterable
 						style="width: 100%"
-						v-model="formulaGroupDialogFormValue.ParentID"
+						v-model="dataGroupDialogFormValue.parent_group"
 						:props="{
-							id: 'ID',
-							label: 'Name',
+							id: 'id',
+							label: 'title',
 							children: 'Children',
 						}"
 						:data="listTreeData"
-						node-key="ID"
+						node-key="id"
 						:clearable="true"
 						:accordion="true"
 						:expandNode="false"
@@ -168,64 +153,14 @@
 					>
 					</el-tree-select>
 				</el-form-item>
-				<el-form-item label="鍚嶇О" prop="Name">
-					<el-input placeholder="璇疯緭鍏ュ悕绉�" v-model="formulaGroupDialogFormValue.Name"></el-input>
-				</el-form-item>
-				<el-form-item label="缂栫爜" prop="Code">
-					<el-input placeholder="璇疯緭鍏ョ紪鐮�" v-model="formulaGroupDialogFormValue.Code"></el-input>
-				</el-form-item>
-
-				<el-form-item label="璇存槑" prop="Description">
-					<el-input placeholder="璇疯緭鍏ヨ鏄�" v-model="formulaGroupDialogFormValue.Description" type="textarea" :rows="3" />
+				<el-form-item label="鍚嶇О" prop="title">
+					<el-input placeholder="璇疯緭鍏ュ悕绉�" v-model="dataGroupDialogFormValue.title"></el-input>
 				</el-form-item>
 			</el-form>
 			<template #footer>
 				<div>
-					<el-button @click="closeFormulaGroupDialog">鍙� 娑�</el-button>
-					<el-button type="primary" @click="submitFormulaGroupFormValue">纭� 瀹�</el-button>
-				</div>
-			</template>
-		</el-dialog>
-
-		<!-- 澧炲姞銆佷慨鏀规暟鎹璇濇 -->
-		<el-dialog
-			:destroy-on-close="true"
-			v-model="updateModuleDlgIsShow"
-			width="400"
-			:close-on-click-modal="false"
-			@closed="closeUpdateModuleDlg"
-		>
-			<template #header>
-				<div style="color: #fff">
-					<span> {{ updateModuleTitle }} </span>
-				</div>
-			</template>
-
-			<el-form :model="updateModuleFormValue" ref="updateModuleFormRef" :rules="updateModuleFormRules" label-width="60">
-				<el-form-item label="鍒嗙粍" prop="GroupID">
-					<el-tree-select
-						filterable
-						class="w100"
-						v-model="updateModuleFormValue.GroupID"
-						:props="{
-							id: 'ID',
-							label: 'Name',
-							children: 'Children',
-						}"
-						:data="updateModuleOptions"
-						node-key="ID"
-						:clearable="true"
-						:accordion="false"
-						:expandNode="false"
-						:check-strictly="true"
-					>
-					</el-tree-select>
-				</el-form-item>
-			</el-form>
-			<template #footer>
-				<div>
-					<el-button @click="closeUpdateModuleDlg">鍙� 娑�</el-button>
-					<el-button type="primary" @click="submitUpdateModule">纭� 瀹�</el-button>
+					<el-button @click="closeDataGroupDialog">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitDataGroupFormValue">纭� 瀹�</el-button>
 				</div>
 			</template>
 		</el-dialog>
@@ -233,23 +168,23 @@
 </template>
 
 <script setup lang="ts">
-import type { AxiosRequestConfig, AxiosResponse } from 'axios';
 import type { FormInstance, FormRules } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
-import type { PropType } from 'vue';
 import { computed, nextTick, onMounted, reactive, ref } from 'vue';
 import { useRouter } from 'vue-router';
+import {
+	add_knowledge_group,
+	delete_knowledge_file,
+	delete_knowledge_group,
+	get_knowledge_group_list,
+	list_knowledge_file,
+	update_knowledge_group,
+} from '/@/api/knowledge/group';
 import AHMContainer from '/@/components/layout/AHMContainer.vue';
 import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue';
 import { deepClone } from '/@/utils/other';
 import { convertListToTree } from '/@/utils/util';
 import { analyzeMap } from '/@/views/types/catalog/index';
-
-const props = defineProps({
-	request: {
-		type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>,
-	},
-});
 const state = reactive({
 	tableParams: {
 		PageIndex: 1,
@@ -265,23 +200,26 @@
 const treeLoading = ref(false);
 const listTreeData = ref([]);
 const currentTreeNode = ref(null);
-const currentListID = computed(() => currentTreeNode.value?.ID);
+const currentListID = computed(() => currentTreeNode.value?.id);
 const handleClickNode = (data) => {
 	nextTick(() => {
-		leftTreeRef.value?.treeRef.setCurrentKey(data.ID);
+		leftTreeRef.value?.treeRef.setCurrentKey(data.id);
 	});
 	currentTreeNode.value = data;
 	getCategoryTableData();
 };
 const getListTreeData = async (selectFirst = false) => {
-	return;
 	treeLoading.value = true;
-	const res = await GetAll(props.request).finally(() => {
+	const res = await get_knowledge_group_list().finally(() => {
 		treeLoading.value = false;
 	});
-	if (res?.Code === 0) {
-		const resData = (res.Data || []) as [];
-		listTreeData.value = convertListToTree(resData);
+	if (res?.json_ok) {
+		const resData = (res.values || []) as [];
+		listTreeData.value = convertListToTree(resData, {
+			ID: 'id',
+			Children: 'Children',
+			ParentID: 'parent',
+		});
 		if (selectFirst) {
 			const firstListTreeNode = listTreeData.value[0];
 			if (firstListTreeNode) {
@@ -292,64 +230,44 @@
 		} else {
 			currentTreeNode.value && handleClickNode(currentTreeNode.value);
 		}
-	} else {
-		ElMessage.error('鑾峰彇鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : ''));
 	}
 };
 //#endregion
 //#region ====================== 鑾峰彇銆佸垹闄よ〃鏍兼暟鎹� ======================
 const formulaTableLoading = ref(false);
-const categoryTableData = ref([
-	{
-		Name: '娴嬭瘯',
-	},
-]);
+const categoryTableData = ref([]);
 const isFormulaTableDrag = ref(false);
 const getCategoryTableData = async () => {
-	formulaTableLoading.value = true;
-	const res = await GetByGroupID({ GroupID: currentListID.value }, props.request).finally(() => {
-		formulaTableLoading.value = false;
-	});
-	if (res?.Code === 0) {
-		const resData = (res.Data || []) as [];
+	const res = await list_knowledge_file().finally(() => {});
+	if (res?.json_ok) {
+		const resData = (res.values || []) as [];
+		resData.forEach((item) => {
+			const type = item?.name.split('.')[1];
+			item.type = type;
+		});
 		categoryTableData.value = resData;
 	} else {
-		ElMessage.error('鑾峰彇鍏紡澶辫触' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : ''));
+		ElMessage.error('鑾峰彇鏂囨。鍒楄〃澶辫触' + (res?.json_msg ? `锛�${JSON.stringify(res.json_msg)}` : ''));
 	}
 };
 const deleteCurrentFormulaRow = (row: any) => {
-	ElMessageBox.confirm(`纭畾鍒犻櫎鍏紡锛氥��${row.Name}銆�?`, '鎻愮ず', {
+	ElMessageBox.confirm(`纭畾鍒犻櫎鏂囨。鍒楄〃锛氥��${row.name}銆�?`, '鎻愮ず', {
 		confirmButtonText: '纭畾',
 		cancelButtonText: '鍙栨秷',
 		type: 'warning',
 	}).then(async () => {
-		const res = await TableDelete(
-			{
-				ID: row.ID,
-			},
-			props.request
-		);
-		if (res?.Code === 0) {
-			if (res.Data) {
-				ElMessage.success('鍒犻櫎鍏紡鎴愬姛');
-				getCategoryTableData();
-			} else {
-				ElMessage.error('鍒犻櫎鍏紡澶辫触');
-			}
+		const res = await delete_knowledge_file({
+			file_id: row.id,
+		});
+
+		if (res.json_ok) {
+			ElMessage.success('鍒犻櫎鏂囨。鍒楄〃鎴愬姛');
+			const index = categoryTableData.value.findIndex((d) => d.id === row.id);
+			categoryTableData.value.splice(index, 1);
 		} else {
-			ElMessage.error('鍒犻櫎鍏紡澶辫触' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : ''));
+			ElMessage.error('鍒犻櫎鏂囨。鍒楄〃澶辫触' + (res?.json_msg ? `锛�${JSON.stringify(res.json_msg)}` : ''));
 		}
 	});
-};
-//鏁版嵁鍒楄〃椤甸潰鍒嗛〉
-
-const handleSizeChange = (val) => {
-	state.tableParams.PageSize = val;
-	getCategoryTableData();
-};
-const handleCurrentChange = (val) => {
-	state.tableParams.PageIndex = val;
-	getCategoryTableData();
 };
 //#endregion
 
@@ -357,8 +275,7 @@
 
 //#region ====================== 鎼滅储琛ㄦ牸锛屽琛ㄦ牸鎺掑簭 ======================
 const formulaQueryParams = ref({
-	Name: '',
-	Code: '',
+	title: '',
 });
 //#endregion
 
@@ -368,7 +285,7 @@
 	router.push({
 		name: 'GraphDetail',
 		params: {
-			ID: row.ID,
+			id: row.id,
 		},
 	});
 };
@@ -377,157 +294,99 @@
 const importData = () => {
 	router.push({
 		name: 'AddGraph',
+		query: {
+			group_id: currentListID.value,
+		},
 	});
 };
 //#endregion
 
-//#region ====================== 鍒犻櫎宸︿晶鏍戝叕寮忕粍鏁版嵁 ======================
+//#region ====================== 鍒犻櫎宸︿晶鏍戞枃妗e垎缁勬暟鎹� ======================
 
-const deleteCurrentFormulaGroup = (row: any) => {
-	ElMessageBox.confirm(`纭畾鍒犻櫎鍏紡缁勶細銆�${row.Name}銆�?`, '鎻愮ず', {
+const deleteCurrentFormulaGroup = (node, row: any) => {
+	ElMessageBox.confirm(`纭畾鍒犻櫎鏂囨。鍒嗙粍锛氥��${row.title}銆�?`, '鎻愮ず', {
 		confirmButtonText: '纭畾',
 		cancelButtonText: '鍙栨秷',
 		type: 'warning',
 	}).then(async () => {
-		const res = await DeleteGroupGetByID(
-			{
-				ID: row.ID,
-			},
-			props.request
-		);
-		if (res?.Code === 0) {
-			if (res.Data) {
-				ElMessage.success('鍒犻櫎鍏紡缁勬垚鍔�');
-				getListTreeData(true);
-			} else {
-				ElMessage.error('鍒犻櫎鍏紡缁勫け璐�');
-			}
+		const res = await delete_knowledge_group({
+			id: row.id,
+		});
+
+		if (res.json_ok) {
+			ElMessage.success('鍒犻櫎鏂囨。鍒嗙粍鎴愬姛');
+			const parent = node.parent;
+			const children = parent.data.Children || parent.data;
+			const index = children.findIndex((d) => d.id === row.id);
+			children.splice(index, 1);
 		} else {
-			ElMessage.error('鍒犻櫎鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : ''));
+			ElMessage.error('鍒犻櫎鏂囨。鍒嗙粍澶辫触');
 		}
 	});
 };
 //#endregion
 
-//#region ====================== 澧炲姞銆佸垹闄ゅ叕寮忕粍鎿嶄綔, dialog init======================
-const isEditFormulaGroupDialog = ref(false);
+//#region ====================== 澧炲姞銆佸垹闄ゆ枃妗e垎缁勬搷浣�, dialog init======================
+const isEditDataGroupDialog = ref(false);
 const formulaGroupDialogTitle = computed(() => {
-	return isEditFormulaGroupDialog.value ? '淇敼鍏紡缁�' : '娣诲姞鍏紡缁�';
+	return isEditDataGroupDialog.value ? '淇敼鏂囨。鍒嗙粍' : '娣诲姞鏂囨。鍒嗙粍';
 });
 const formulaGroupDialogHeaderIcon = computed(() => {
-	return isEditFormulaGroupDialog.value ? 'ele-Edit' : 'ele-Plus';
+	return isEditDataGroupDialog.value ? 'ele-Edit' : 'ele-Plus';
 });
-const formulaGroupDialogFormValue = ref(null);
-const formulaGroupDialogIsShow = ref(false);
+const dataGroupDialogFormValue = ref(null);
+const dataGroupDialogIsShow = ref(false);
 
 const formulaGroupDialogFormRef = ref<FormInstance>(null);
 
 const formulaGroupDialogFormRules = ref<FormRules>({
-	Name: [{ required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }],
+	title: [{ required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }],
 });
 const openOperateFormulaGroupDialog = (data?) => {
 	if (data) {
-		isEditFormulaGroupDialog.value = true;
-		const { ID, Name, Code, Description } = data;
-		formulaGroupDialogFormValue.value = deepClone({ ID, Name, Code, Description });
+		isEditDataGroupDialog.value = true;
+		const { id, title } = data;
+		dataGroupDialogFormValue.value = deepClone({ id, title });
 	} else {
-		isEditFormulaGroupDialog.value = false;
-		formulaGroupDialogFormValue.value = { Name: '', ParentID: '', Code: '', Description: '' };
+		isEditDataGroupDialog.value = false;
+		dataGroupDialogFormValue.value = { title: '', parent_group: '' };
 	}
-	formulaGroupDialogIsShow.value = true;
+	dataGroupDialogIsShow.value = true;
 };
 
-const closeFormulaGroupDialog = () => {
-	formulaGroupDialogIsShow.value = false;
+const closeDataGroupDialog = () => {
+	dataGroupDialogIsShow.value = false;
 	formulaGroupDialogFormRef.value.clearValidate();
 };
 
-const submitFormulaGroupFormValue = async () => {
+const submitDataGroupFormValue = async () => {
 	const valid = await formulaGroupDialogFormRef.value.validate().catch(() => {});
 	if (!valid) return;
 
-	if (isEditFormulaGroupDialog.value) {
-		const res = await UpdateGroupGetByID(formulaGroupDialogFormValue.value, props.request);
-		if (res?.Code === 0) {
-			if (res.Data) {
-				getListTreeData();
-				closeFormulaGroupDialog();
-				ElMessage.success('淇敼鍏紡缁勬垚鍔�');
-			} else {
-				ElMessage.error('淇敼鍏紡缁勫け璐�');
-			}
+	if (isEditDataGroupDialog.value) {
+		const res = await update_knowledge_group(dataGroupDialogFormValue.value);
+
+		if (res.json_ok) {
+			getListTreeData();
+			closeDataGroupDialog();
+			ElMessage.success('淇敼鏂囨。鍒嗙粍鎴愬姛');
 		} else {
-			ElMessage.error('淇敼鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : ''));
+			ElMessage.error('淇敼鏂囨。鍒嗙粍澶辫触');
 		}
 	} else {
-		const res = await InsertGroup(
-			{ ...formulaGroupDialogFormValue.value, ParentID: formulaGroupDialogFormValue.value.ParentID || '0' },
-			props.request
-		);
-		if (res?.Code === 0) {
-			if (res.Data) {
-				getListTreeData();
-				closeFormulaGroupDialog();
-				ElMessage.success('娣诲姞鍏紡缁勬垚鍔�');
-			} else {
-				ElMessage.error('娣诲姞鍏紡缁勫け璐�');
-			}
+		const res = await add_knowledge_group({
+			...dataGroupDialogFormValue.value,
+			parent_group: dataGroupDialogFormValue.value.parent_group || '0',
+		});
+		if (res.json_ok) {
+			getListTreeData();
+			closeDataGroupDialog();
+			ElMessage.success('娣诲姞鏂囨。鍒嗙粍鎴愬姛');
 		} else {
-			ElMessage.error('娣诲姞鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : ''));
+			ElMessage.error('娣诲姞鏂囨。鍒嗙粍澶辫触');
 		}
 	}
 };
-//#endregion
-
-//#region ====================== 淇敼鐖剁骇 ======================
-const parentDlgIsShow = ref(false);
-const parentDlgMapRow = ref(null);
-const openParentDlg = (row?) => {
-	parentDlgMapRow.value = row;
-	parentDlgIsShow.value = true;
-};
-const submitParentForm = (res) => {
-	getListTreeData();
-};
-//#endregion
-
-//#region ====================== updateModuleDlg ======================
-const updateModuleDlgIsShow = ref(false);
-const updateModuleMapRow = ref(null);
-const updateModuleFormRef = ref(null);
-const updateModuleTitle = computed(() => `銆�${updateModuleMapRow.value?.Name}銆戔�斺�� 淇敼鎵�灞炲垎缁刞);
-const updateModuleFormRules = ref<FormRules>({
-	GroupID: [{ required: true, message: '璇烽�夋嫨鍒嗙粍', trigger: 'change' }],
-});
-
-const updateModuleOptions = computed(() => {
-	return listTreeData.value;
-});
-const updateModuleFormValue = ref(null);
-
-const closeUpdateModuleDlg = () => {
-	updateModuleDlgIsShow.value = false;
-	updateModuleFormRef.value.clearValidate();
-};
-
-const submitUpdateModule = async () => {
-	const valid = await updateModuleFormRef.value.validate().catch(() => {});
-	if (!valid) return;
-	if (updateModuleFormValue.value.GroupID === currentListID.value) {
-		ElMessage.info('鏈慨鏀�');
-		return;
-	}
-	const res = await UpdateFormulaGroupID(updateModuleFormValue.value);
-
-	if (res?.Data) {
-		ElMessage.success('淇敼鎴愬姛锛�');
-		getCategoryTableData();
-		closeUpdateModuleDlg();
-	} else {
-		ElMessage.error('淇敼澶辫触');
-	}
-};
-
 //#endregion
 
 //#region ====================== 鎸傝浇鏃惰幏鍙栧垵濮嬫暟鎹� ======================

--
Gitblit v1.9.3