修改系统头及上传逻辑
This commit is contained in:
parent
db87094651
commit
ad5671fc28
|
|
@ -10,18 +10,9 @@ declare module '@vue/runtime-core' {
|
||||||
Countup: typeof import('./src/components/countup.vue')['default']
|
Countup: typeof import('./src/components/countup.vue')['default']
|
||||||
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
||||||
ElButton: typeof import('element-plus/es')['ElButton']
|
ElButton: typeof import('element-plus/es')['ElButton']
|
||||||
ElCalendar: typeof import('element-plus/es')['ElCalendar']
|
|
||||||
ElCard: typeof import('element-plus/es')['ElCard']
|
ElCard: typeof import('element-plus/es')['ElCard']
|
||||||
ElCarousel: typeof import('element-plus/es')['ElCarousel']
|
|
||||||
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
|
|
||||||
ElCascader: typeof import('element-plus/es')['ElCascader']
|
|
||||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
|
||||||
ElCol: typeof import('element-plus/es')['ElCol']
|
ElCol: typeof import('element-plus/es')['ElCol']
|
||||||
ElCollapse: typeof import('element-plus/es')['ElCollapse']
|
|
||||||
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
|
|
||||||
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
|
||||||
ElCountdown: typeof import('element-plus/es')['ElCountdown']
|
|
||||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||||
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
||||||
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
||||||
|
|
@ -33,45 +24,25 @@ declare module '@vue/runtime-core' {
|
||||||
ElForm: typeof import('element-plus/es')['ElForm']
|
ElForm: typeof import('element-plus/es')['ElForm']
|
||||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||||
ElImage: typeof import('element-plus/es')['ElImage']
|
|
||||||
ElInput: typeof import('element-plus/es')['ElInput']
|
ElInput: typeof import('element-plus/es')['ElInput']
|
||||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
||||||
ElLink: typeof import('element-plus/es')['ElLink']
|
|
||||||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||||
ElOption: typeof import('element-plus/es')['ElOption']
|
ElOption: typeof import('element-plus/es')['ElOption']
|
||||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||||
ElProgress: typeof import('element-plus/es')['ElProgress']
|
ElProgress: typeof import('element-plus/es')['ElProgress']
|
||||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
|
||||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
|
||||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
|
||||||
ElRate: typeof import('element-plus/es')['ElRate']
|
|
||||||
ElResult: typeof import('element-plus/es')['ElResult']
|
|
||||||
ElRow: typeof import('element-plus/es')['ElRow']
|
ElRow: typeof import('element-plus/es')['ElRow']
|
||||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
|
||||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||||
ElSlider: typeof import('element-plus/es')['ElSlider']
|
|
||||||
ElSpace: typeof import('element-plus/es')['ElSpace']
|
|
||||||
ElStatistic: typeof import('element-plus/es')['ElStatistic']
|
|
||||||
ElStep: typeof import('element-plus/es')['ElStep']
|
|
||||||
ElSteps: typeof import('element-plus/es')['ElSteps']
|
|
||||||
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
|
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
|
||||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||||
ElTable: typeof import('element-plus/es')['ElTable']
|
ElTable: typeof import('element-plus/es')['ElTable']
|
||||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||||
ElTag: typeof import('element-plus/es')['ElTag']
|
|
||||||
ElText: typeof import('element-plus/es')['ElText']
|
|
||||||
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
||||||
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
||||||
ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
|
|
||||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||||
ElTour: typeof import('element-plus/es')['ElTour']
|
|
||||||
ElTourStep: typeof import('element-plus/es')['ElTourStep']
|
|
||||||
ElTransfer: typeof import('element-plus/es')['ElTransfer']
|
|
||||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||||
ElWatermark: typeof import('element-plus/es')['ElWatermark']
|
|
||||||
Header: typeof import('./src/components/header.vue')['default']
|
Header: typeof import('./src/components/header.vue')['default']
|
||||||
RouterLink: typeof import('vue-router')['RouterLink']
|
RouterLink: typeof import('vue-router')['RouterLink']
|
||||||
RouterView: typeof import('vue-router')['RouterView']
|
RouterView: typeof import('vue-router')['RouterView']
|
||||||
|
|
@ -81,6 +52,7 @@ declare module '@vue/runtime-core' {
|
||||||
TableEdit: typeof import('./src/components/table-edit.vue')['default']
|
TableEdit: typeof import('./src/components/table-edit.vue')['default']
|
||||||
TableSearch: typeof import('./src/components/table-search.vue')['default']
|
TableSearch: typeof import('./src/components/table-search.vue')['default']
|
||||||
Tabs: typeof import('./src/components/tabs.vue')['default']
|
Tabs: typeof import('./src/components/tabs.vue')['default']
|
||||||
|
Upload_file2: typeof import('./src/components/upload_file2.vue')['default']
|
||||||
UploadFile: typeof import('./src/components/upload-file.vue')['default']
|
UploadFile: typeof import('./src/components/upload-file.vue')['default']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<img class="logo" src="../assets/img/logo.svg" alt="">
|
<img class="logo" src="../assets/img/logo.svg" alt="">
|
||||||
<div class="web-title">
|
<div class="web-title">
|
||||||
大学生学业作品AI生成工具
|
集成AI工具
|
||||||
</div>
|
</div>
|
||||||
<div class="collapse-btn" @click="collapseChage">
|
<div class="collapse-btn" @click="collapseChage">
|
||||||
<el-icon v-if="sidebar.collapse">
|
<el-icon v-if="sidebar.collapse">
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="content-title">支持拖拽</div>
|
<div class="content-title">支持拖拽</div>
|
||||||
<el-upload class="upload-demo" drag
|
<el-upload class="upload-demo" drag
|
||||||
action="https://pm.ljsea.top/file/upload" multiple
|
action="http://127.0.0.1:41000/file/upload" multiple
|
||||||
:data="uploadData"
|
:data="uploadData"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
:on-success="handleSuccess"
|
:on-success="handleSuccess"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
<template>
|
||||||
|
<div class="container">
|
||||||
|
<div class="content-title">支持拖拽</div>
|
||||||
|
<el-upload class="upload-demo" drag
|
||||||
|
action="http://127.0.0.1:41000/file/upload" multiple
|
||||||
|
:data="uploadData"
|
||||||
|
:headers="headers"
|
||||||
|
:on-success="handleSuccess"
|
||||||
|
:on-error="handleError"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:on-change="handle">
|
||||||
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
||||||
|
<div class="el-upload__text">
|
||||||
|
将文件拖到此处,或
|
||||||
|
<em>点击上传</em>
|
||||||
|
</div>
|
||||||
|
<div class="el-upload__tip">只能上传 doc, docx, pdf, txt, png, jpg, jpeg 格式且不超过 5MB 的文件</div>
|
||||||
|
</el-upload>
|
||||||
|
<!-- <template #tip>
|
||||||
|
<div class="el-upload__tip">只能上传 doc, docx, pdf, txt, png, jpg, jpeg 格式且不超过 2MB 的文件</div>
|
||||||
|
</template> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
const handle = (rawFile: any) => {
|
||||||
|
console.log(rawFile);
|
||||||
|
};
|
||||||
|
const allowedTypes = ['doc', 'docx', 'pdf', 'txt', 'png', 'jpg', 'jpeg','md', "epub", 'go', 'java', 'py', 'js', 'html', 'css', 'json', 'xml', 'yaml', 'yml'];
|
||||||
|
const userRole = localStorage.getItem('ms_role') || '';
|
||||||
|
interface UploadData {
|
||||||
|
upload_type: string;
|
||||||
|
auth_type: string;
|
||||||
|
md5: string;
|
||||||
|
type: string;
|
||||||
|
}
|
||||||
|
const uploadData: UploadData = {
|
||||||
|
upload_type: 'file',
|
||||||
|
auth_type: 'public',
|
||||||
|
md5: '',
|
||||||
|
type: 'file',
|
||||||
|
};
|
||||||
|
const headers = {
|
||||||
|
"token": localStorage.getItem('token') || '',
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSuccess = (response: any, file: any, fileList: any) => {
|
||||||
|
let res = response;
|
||||||
|
if (res.code !== 0){
|
||||||
|
ElMessage.error(res.error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log('上传成功', res);
|
||||||
|
ElMessage.success('上传成功');
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleError = (error: any, file: any, fileList: any) => {
|
||||||
|
console.log('上传失败', error);
|
||||||
|
ElMessage.error('上传失败');
|
||||||
|
};
|
||||||
|
|
||||||
|
const beforeUpload = (file: any) => {
|
||||||
|
const fileExtension = file.name.split('.').pop().toLowerCase();
|
||||||
|
const isAllowedType = allowedTypes.includes(fileExtension);
|
||||||
|
if (!isAllowedType && userRole != "admin") {
|
||||||
|
ElMessage.error('不允许的文件类型,仅支持 doc, docx, pdf, txt, png, jpg, jpeg, md, epub 及代码文本格式');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!isAllowedType && userRole == "admin"){
|
||||||
|
//提示不允许的文件类型,是否继续上传,确认后继续上传
|
||||||
|
confirm('不允许的文件类型,是否继续上传?') ? isAllowedType : false;
|
||||||
|
}
|
||||||
|
// 可以在这里进行文件验证等操作
|
||||||
|
let isLt2M = file.size / 1024 / 1024 < 5;
|
||||||
|
if (!isLt2M && userRole != "admin") {
|
||||||
|
ElMessage.error('上传文件大小不能超过 5MB');
|
||||||
|
}
|
||||||
|
if(!isLt2M && userRole == "admin"){
|
||||||
|
//提示文件过大,是否继续上传,确认后继续上传
|
||||||
|
let res = confirm('文件过大,是否继续上传?') ;
|
||||||
|
isLt2M =res;
|
||||||
|
}
|
||||||
|
return isLt2M;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.content-title {
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 50px;
|
||||||
|
margin: 10px 0;
|
||||||
|
font-size: 22px;
|
||||||
|
color: #1f2f3d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-demo {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
<template>
|
||||||
|
<div class="container">
|
||||||
|
<div class="content-title">支持拖拽</div>
|
||||||
|
<el-upload class="upload-demo" drag
|
||||||
|
action="http://127.0.0.1:41000/file/upload" multiple
|
||||||
|
:data="uploadData"
|
||||||
|
:headers="headers"
|
||||||
|
:on-success="handleSuccess"
|
||||||
|
:on-error="handleError"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:on-change="handle">
|
||||||
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
||||||
|
<div class="el-upload__text">
|
||||||
|
将文件拖到此处,或
|
||||||
|
<em>点击上传</em>
|
||||||
|
</div>
|
||||||
|
</el-upload>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
const handle = (rawFile: any) => {
|
||||||
|
console.log(rawFile);
|
||||||
|
};
|
||||||
|
|
||||||
|
interface UploadData {
|
||||||
|
upload_type: string;
|
||||||
|
auth_type: string;
|
||||||
|
md5: string;
|
||||||
|
type: string;
|
||||||
|
}
|
||||||
|
const uploadData: UploadData = {
|
||||||
|
upload_type: 'file',
|
||||||
|
auth_type: 'public',
|
||||||
|
md5: '',
|
||||||
|
type: 'file',
|
||||||
|
};
|
||||||
|
const headers = {
|
||||||
|
"token": localStorage.getItem('token') || '',
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSuccess = (response: any, file: any, fileList: any) => {
|
||||||
|
let res = response;
|
||||||
|
if (res.code !== 0){
|
||||||
|
ElMessage.error(res.error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log('上传成功', res);
|
||||||
|
ElMessage.success('上传成功');
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleError = (error: any, file: any, fileList: any) => {
|
||||||
|
console.log('上传失败', error);
|
||||||
|
ElMessage.error('上传失败');
|
||||||
|
};
|
||||||
|
|
||||||
|
const beforeUpload = (file: any) => {
|
||||||
|
// 可以在这里进行文件验证等操作
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.content-title {
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 50px;
|
||||||
|
margin: 10px 0;
|
||||||
|
font-size: 22px;
|
||||||
|
color: #1f2f3d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-demo {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue