| | |
| | | <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> |
| | |
| | | |
| | | <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: '导入数据', |
| | |
| | | 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 { |