|
@@ -0,0 +1,75 @@
|
|
|
+<script setup lang="ts">
|
|
|
+ import BasicModal from '/@/components/Modal/src/BasicModal.vue';
|
|
|
+ import { useModal } from '/@/components/Modal';
|
|
|
+ import Upload from '/@/components/Form/src/components/Upload.vue';
|
|
|
+ import { ref } from 'vue';
|
|
|
+ import { postBaseClassCourseImport } from '/@/services/apis/BaseClassCourseController';
|
|
|
+ import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
+ import { baseDownloadFileUrl } from '/@/utils/file/download';
|
|
|
+ const [modalRegister, { closeModal }] = useModal();
|
|
|
+ const errMsg = ref('');
|
|
|
+ const folderId = ref('');
|
|
|
+ const { createMessage } = useMessage();
|
|
|
+ const data = ref('');
|
|
|
+ const handleUpdate = async (e) => {
|
|
|
+ data.value = e[0];
|
|
|
+ };
|
|
|
+ const handleSubmit = async () => {
|
|
|
+ try {
|
|
|
+ await postBaseClassCourseImport({ file: data.value }, 'none');
|
|
|
+ createMessage.success('导入成功');
|
|
|
+ folderId.value = '';
|
|
|
+ closeModal();
|
|
|
+ } catch (err: any) {
|
|
|
+ errMsg.value = err;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const handleCancel = () => {
|
|
|
+ folderId.value = '';
|
|
|
+ errMsg.value = '';
|
|
|
+ closeModal();
|
|
|
+ };
|
|
|
+ const handleDownLoad = async () => {
|
|
|
+ await baseDownloadFileUrl(
|
|
|
+ 'https://zhxy.cqtlzjzx.com/minio/static/resources/%E7%8F%AD%E7%BA%A7%E8%AF%BE%E7%A8%8B%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx',
|
|
|
+ '班级课表导入模板.xlsx',
|
|
|
+ );
|
|
|
+ };
|
|
|
+</script>
|
|
|
+
|
|
|
+<template>
|
|
|
+ <BasicModal
|
|
|
+ @cancel="handleCancel"
|
|
|
+ @ok="handleSubmit"
|
|
|
+ @register="modalRegister"
|
|
|
+ destroyOnClose
|
|
|
+ v-bind="$attrs"
|
|
|
+ title="教材入库导入"
|
|
|
+ >
|
|
|
+ <div class="flex flex-col mt-[24px]">
|
|
|
+ <div class="flex flex-col">
|
|
|
+ <span class="text-[16px] text-[1000]">1、 下载导入模板</span>
|
|
|
+ <a-button type="primary" class="w-[110px] mt-[12px]" @click="handleDownLoad">
|
|
|
+ 下载模板</a-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="mt-[12px]">
|
|
|
+ <span class="text-[16px] text-[1000]">2、 上传文件</span>
|
|
|
+ <Upload
|
|
|
+ class="mt-[12px]"
|
|
|
+ accept="xlsx,xls"
|
|
|
+ :maxNumber="1"
|
|
|
+ v-model:value="folderId"
|
|
|
+ :multiple="false"
|
|
|
+ @success="handleUpdate"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <span class="mt-[24px]">导入反馈:</span>
|
|
|
+ <div style="border: 1px solid #ccc; width: 100%; height: 300px; overflow: auto; color: red">
|
|
|
+ {{ errMsg }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </BasicModal>
|
|
|
+</template>
|
|
|
+
|
|
|
+<style scoped lang="less"></style>
|