wujingjing
2025-01-02 5b17453877278a5cb47efe0c6609fc559a53c6c4
src/views/project/yw/dataManage/graph/AddGraph.vue
@@ -59,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('请选择需要上传的文件');
@@ -84,9 +87,11 @@
   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();
//返回
@@ -94,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']); //移除上传文件错误提示!这是重点!!
};
@@ -112,26 +118,38 @@
};
//确认
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 group_type = 'markdown';
   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;