yangyin
2024-09-02 fbd3159c03b5a733eecbbe463d6114ae9458d0a4
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>
@@ -73,9 +63,11 @@
<script setup lang="ts">
import type { UploadUserFile } from 'element-plus';
import { ElMessage, ElMessage } 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: '使用阿里云文档智能解析服务据解析文档,抽取文档内容、层级结构等信息。',
   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 {