| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <template>
- <a-button type="primary" v-hasPermi="'system:knowledgeLib:upload'" @click="handleClick">
- <template #icon>
- <icon-plus />
- </template>
- <!-- 新增文件 -->
- {{ $t('knowledgeLib.create_file') }}
- </a-button>
- <!--上传文件 -->
- <a-modal
- v-model:visible="visible"
- :title="$t('knowledgeLib.upload_file')"
- @open="handleOpened"
- @cancel="handleCancel"
- :ok-loading="loading"
- @before-ok="handleBeforeOk"
- title-align="start"
- >
- <a-tabs :default-active-key="activeKey" @change="activeKeyChange">
- <!-- 文件 -->
- <a-tab-pane key="1" :title="$t('knowledgeLib.file')"> </a-tab-pane>
- <!-- 文件夹 -->
- <a-tab-pane key="2" :title="$t('knowledgeLib.folder')"> </a-tab-pane>
- </a-tabs>
- <div class="aUpload">
- <!-- <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm," :custom-request="customRequest" />-->
- <a-upload
- action="/"
- :auto-upload="false"
- ref="uploadRef"
- :file-list="uploadList"
- draggable
- :directory="directory"
- @change="onChange"
- multiple
- />
- </div>
- </a-modal>
- </template>
- <script setup>
- import { onMounted, onBeforeMount, reactive, ref, computed } from 'vue';
- import { Message } from '@arco-design/web-vue';
- import axios from 'axios';
- import { kbdocumentupload } from '../../../../apis/rgflow-dify';
- import { toSyncOwnKnowledge } from './asyc.js';
- import { useI18n } from 'vue-i18n';
- const { t } = useI18n();
- let CancelToken = axios.CancelToken;
- let source = null;
- const visible = ref(false);
- const loading = ref(false);
- const directory = ref(false);
- const activeKey = ref('1');
- const formRef = ref(null);
- const uploadList = ref([]);
- const form = reactive({
- name: '', // 用户名
- nameJoin: '', // 昵称
- post: '', // 岗位
- txt: '' // 备注
- });
- const props = defineProps(['kbobj']);
- const emit = defineEmits(['changeFetchData']);
- const uploadRef = ref();
- const files = ref([]);
- const acceptNameList = computed(() => {
- return '.word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,';
- });
- // 上传文件
- console.log(props, 11);
- const submitForm = async (done) => {
- if (!props.kbobj.id) {
- Message.error(t('management.no_permission'));
- done(false);
- return;
- }
- if (files.value && files.value.length > 0) {
- files.value.map((item) => {
- const formData = new FormData();
- formData.append('file', item.file);
- formData.append('kb_id', props.kbobj.id);
- kbdocumentupload(formData).then((res) => {
- if (res.retcode == 0) {
- emit('changeFetchData');
- Message.success('上传成功');
- handleCancel();
- // 同步数据
- toSyncOwnKnowledge(props.kbobj.id);
- }
- });
- });
- done(false);
- } else {
- done(false);
- }
- };
- const handleSubmit = ({ values, errors }) => {};
- const onChange = (fileList) => {
- files.value = fileList;
- };
- const handleClick = () => {
- visible.value = true;
- };
- const handleBeforeOk = (done) => {
- submitForm(done);
- };
- const handleCancel = () => {
- visible.value = false;
- };
- const handleOpened = (el) => {
- uploadList.value = [];
- files.value = [];
- loading.value = false;
- };
- const activeKeyChange = (value) => {
- activeKey.value = value;
- directory.value = value == '2' ? true : false;
- };
- onBeforeMount(() => {});
- onMounted(() => {});
- </script>
- <script>
- export default {
- name: 'add',
- methods: {}
- };
- </script>
- <style scoped lang="css">
- .aUpload {
- width: 100%;
- max-height: 500px;
- overflow: hidden;
- overflow-y: auto;
- :deep(.arco-upload-progress) {
- display: none;
- }
- }
- </style>
|