From 172b2c1698ae0bca0436e54513a37f81c4c8b30c Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期三, 19 三月 2025 11:39:09 +0800
Subject: [PATCH] doc docx

---
 src/views/project/yw/dataManage/graph/AddGraph.vue |   90 ++++++++++++++++++++++++++-------------------
 1 files changed, 52 insertions(+), 38 deletions(-)

diff --git a/src/views/project/yw/dataManage/graph/AddGraph.vue b/src/views/project/yw/dataManage/graph/AddGraph.vue
index fb740dc..c04a523 100644
--- a/src/views/project/yw/dataManage/graph/AddGraph.vue
+++ b/src/views/project/yw/dataManage/graph/AddGraph.vue
@@ -1,7 +1,7 @@
 <template>
 	<div class="h100 overflow-y-auto p-[16px]">
 		<div class="mb-[10px] flex items-center">
-			<el-button style="margin-left: 8px; width: 40px" text @click="handleExitFlow">
+			<el-button style="margin-left: 8px; width: 40px" link @click="handleExitFlow">
 				<el-icon style="font-size: 24px !important">
 					<ArrowLeft />
 				</el-icon>
@@ -43,22 +43,6 @@
 									</template>
 								</el-upload>
 							</el-form-item>
-							<el-form-item label="鏂囨。璇嗗埆:">
-								<div
-									class="bg-[#f6f5ff] border-[1px] border-solid border-[#0062be] py-[12px] w-[215px] px-[16px] rounded-lg cursor-pointer"
-								>
-									<el-radio-group v-model="state.categoryForm.DocumentRecognition">
-										<el-radio value="1" size="large">
-											<span class="font-[700] text[14px]">鏂囨。鏅鸿兘瑙f瀽</span>
-										</el-radio>
-									</el-radio-group>
-									<el-tooltip :content="state.demoDesc" placement="top" effect="light" popper-class="set_tooltip_demo">
-										<div class="text-[#878aab] text-[12px] mx-0 mt-[2px] mb-0 set-desc">
-											{{ state.demoDesc }}
-										</div>
-									</el-tooltip>
-								</div>
-							</el-form-item>
 						</el-form>
 
 						<div class="set-form-footer">
@@ -75,9 +59,12 @@
 <script setup lang="ts">
 import type { UploadUserFile } from 'element-plus';
 import { ElMessage } from 'element-plus';
+import moment from 'moment';
 import { onMounted, reactive, ref } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { add_knowledge_file } from '/@/api/knowledge/group';
+import mittBus from '/@/utils/mitt';
+import { convertFileSize } from '/@/utils/util';
 const uploadFileChange = (rule, value, callback) => {
 	if (fileList.value.length === 0) {
 		return callback('璇烽�夋嫨闇�瑕佷笂浼犵殑鏂囦欢');
@@ -94,16 +81,17 @@
 		DocumentRecognition: '1',
 	},
 	// allowType: '.pdf,.doc,.docx,.txt,.md,.pptx,.ppt',
-	allowType: 'md',
+	allowType: 'md,.doc,.docx',
 	limit: 5,
 	size: 5,
-	demoDesc: '浣跨敤闃块噷浜戞枃妗f櫤鑳借В鏋愭湇鍔℃嵁瑙f瀽鏂囨。锛屾娊鍙栨枃妗e唴瀹广�佸眰绾х粨鏋勭瓑淇℃伅銆�',
 	categoryFormRules: {
 		importType: [{ required: true, validator: uploadFileChange, trigger: 'change' }],
 	},
+	fileInfo: {} as any,
 });
 const fileList = ref<UploadUserFile[]>([]);
 const categoryFormRef = ref(null);
+const uploadRef = ref(null);
 const router = useRouter();
 const route = useRoute();
 //杩斿洖
@@ -111,10 +99,11 @@
 	//鏄惁鏄剧ず杩斿洖
 	router.back();
 	categoryFormRef.value.resetFields();
+	uploadRef.value.clearFiles();
 	fileList.value = [];
 };
-const flag = ref(true);
 const uploadFile = (file: UploadUserFile) => {
+	state.fileInfo = file?.file;
 	fileList.value.push(file);
 	categoryFormRef.value.validateField(['importType']); //绉婚櫎涓婁紶鏂囦欢閿欒鎻愮ず!杩欐槸閲嶇偣锛侊紒
 };
@@ -127,28 +116,53 @@
 		}
 	});
 };
+
+const groupTypeMap = {
+	md: 'markdown',
+	doc: 'doc',
+	docx: 'docx',
+};
+
+const getFileSuffix = (name: string): string => {
+	if (!name) return '';
+	const suffix = name.split('.').pop() as string;
+	return suffix;
+};
 //纭
 const onSubmit = async () => {
-	let group_id = route.query.group_id;
+	const valid = await categoryFormRef.value.validate().catch(() => {});
+	if (!valid) return;
+	const group_id = route.query.group_id;
 	if (group_id == null || group_id == '' || group_id == undefined) return;
-	categoryFormRef.value.validate(async (valid: boolean) => {
-		if (valid) {
-			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);
-			}
-		}
+	const group_name = state.fileInfo?.name;
+	const suffix = getFileSuffix(state.fileInfo?.name);
+	const group_type = groupTypeMap[suffix] ?? '';
+	const group_time = moment(state.fileInfo?.lastModifiedDate).format('YYYY-MM-DD HH:mm:ss');
+	const group_size = convertFileSize(state.fileInfo?.size);
+	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('瀵煎叆鎴愬姛');
+		let obj = {
+			id: res.file_id,
+			name: group_name,
+			type: group_type,
+			time: group_time,
+			size: group_size,
+		};
+
+		mittBus.emit('addGraphObj', obj);
+		router.push({
+			name: 'GraphIndex',
+		});
+		uploadRef.value.clearFiles();
+	} else {
+		ElMessage.error(res.json_msg);
+	}
 };
 onMounted(() => {
 	const group_title = route.query.title;

--
Gitblit v1.9.3