dist.zip | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/FileUpload/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/request.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/oss/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
vite.config.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
dist.zipBinary files differ
src/components/FileUpload/index.vue
@@ -12,13 +12,14 @@ ref="fileUploadRef" :auto-upload="false" :on-exceed="handleExceed" :before-upload="handleBeforeUpload" > <!-- 上传按钮 --> <el-button type="primary">选取文件</el-button> </el-upload> <!-- 上传提示 --> <div class="el-upload__tip" v-if="showTip"> <span>请上传文件</span> <span>上传文件大小不能超过200MB</span> </div> </div> @@ -31,6 +32,7 @@ import { LoadingInstance } from 'element-plus/es/components/loading/src/loading'; import router from "@/router"; let downloadLoadingInstance: LoadingInstance; const props = defineProps({ modelValue: [String, Object, Array], // 数量限制 @@ -159,7 +161,10 @@ proxy?.$modal.msgError("上传文件失败"); } const handleUploadProgress=(e: any) => { downloadLoadingInstance = ElLoading.service({ text: '正在上传文件,请稍候', background: 'rgba(0, 0, 0, 0.7)' }); // downloadLoadingInstance = ElLoading.service({ text: '正在上传文件,请稍候', background: 'rgba(0, 0, 0, 0.7)' }); // dialogVisible.value = true; emit('closePopup','123123'); } // 上传成功回调 const handleUploadSuccess = (res: any, file: UploadFile) => { @@ -167,10 +172,8 @@ if (res.code === 200) { proxy?.$modal.msgSuccess("上传文件成功"); emit('closePopup',res.data) console.log('调用父组件',res); fileUploadRef.value!.clearFiles() downloadLoadingInstance.close(); uploadList.value.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); uploadedSuccessfully(); }else if (res.code == 401) { @@ -181,7 +184,6 @@ proxy?.$modal.msgError(res.msg); fileUploadRef.value?.handleRemove(file); uploadedSuccessfully(); downloadLoadingInstance.close(); } } src/utils/request.ts
@@ -66,7 +66,7 @@ const s_url = sessionObj.url; // 请求地址 const s_data = sessionObj.data; // 请求数据 const s_time = sessionObj.time; // 请求时间 const interval = 600000; // 间隔时间(ms),小于此时间视为重复提交 const interval = 6; // 间隔时间(ms),小于此时间视为重复提交 if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { const message = '数据正在处理,请勿重复提交'; console.warn(`[${s_url}]: ` + message); src/views/index.vue
@@ -1,28 +1,30 @@ <template> <div class="p-2"> <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> <div class="mb-[10px]" v-show="showSearch"> <el-card shadow="hover"> <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px"> <!-- <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">--> <!-- <div class="mb-[10px]" v-show="showSearch">--> <!-- <el-card shadow="hover">--> <!-- <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">--> <el-form-item label="原名" prop="originalName"> <el-input v-model="queryParams.originalName" placeholder="请输入原名" clearable style="width: 200px" @keyup.enter="handleQuery" /> </el-form-item> <!-- <el-form-item label="原名" prop="originalName">--> <!-- <el-input v-model="queryParams.originalName" placeholder="请输入原名" clearable style="width: 200px" @keyup.enter="handleQuery" />--> <!-- </el-form-item>--> <el-form-item> <el-button type="primary" icon="search" @click="handleQuery">搜索</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button> </el-form-item> </el-form> </el-card> </div> </transition> <!-- <el-form-item>--> <!-- <el-button type="primary" icon="search" @click="handleQuery">搜索</el-button>--> <!-- <el-button icon="Refresh" @click="resetQuery">重置</el-button>--> <!-- </el-form-item>--> <!-- </el-form>--> <!-- </el-card>--> <!-- </div>--> <!-- </transition>--> <el-card shadow="hover"> <template #header> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="Upload" @click="handleFile" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">上传文件</el-button> <el-row style="text-align: center"> <el-col> <el-input v-model="input1" placeholder="请输入提取码" style="width: 150px"> </el-input> <el-button type="primary" @click="downloadFile">下载</el-button> </el-col> <!-- <el-col :span="1.5">--> @@ -30,37 +32,37 @@ <!-- 删除--> <!-- </el-button>--> <!-- </el-col>--> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>--> </el-row> </template> <el-table v-loading="loading" :data="ossList" @selection-change="handleSelectionChange" :header-cell-class-name="handleHeaderClass" @header-click="handleHeaderCLick" v-if="showTable" > <el-table-column type="index" /> <!-- <el-table-column type="selection" width="55" align="center" />--> <el-table-column label="原名" align="center" prop="originalName" /> <el-table-column label="上传时间" align="center" prop="createTime" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <template #default="scope"> <el-tooltip content="查看提取码" placement="top"> <el-button link type="primary" icon="Search" @click="handleCode(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:view')"></el-button> </el-tooltip> <el-tooltip content="下载" placement="top"> <el-button link type="primary" icon="Download" @click="handleDownload(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:download')"></el-button> </el-tooltip> <el-tooltip content="删除" placement="top"> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button> </el-tooltip> </template> </el-table-column> </el-table> <!-- <el-table--> <!-- v-loading="loading"--> <!-- :data="ossList"--> <!-- @selection-change="handleSelectionChange"--> <!-- :header-cell-class-name="handleHeaderClass"--> <!-- @header-click="handleHeaderCLick"--> <!-- v-if="showTable"--> <!-- >--> <!-- <el-table-column type="index" />--> <!--<!– <el-table-column type="selection" width="55" align="center" />–>--> <!-- <el-table-column label="原名" align="center" prop="originalName" />--> <!-- <el-table-column label="上传时间" align="center" prop="createTime" />--> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">--> <!-- <template #default="scope">--> <!-- <el-tooltip content="查看提取码" placement="top">--> <!-- <el-button link type="primary" icon="Search" @click="handleCode(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:view')"></el-button>--> <!-- </el-tooltip>--> <!-- <el-tooltip content="下载" placement="top">--> <!-- <el-button link type="primary" icon="Download" @click="handleDownload(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:download')"></el-button>--> <!-- </el-tooltip>--> <!-- <el-tooltip content="删除" placement="top">--> <!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button>--> <!-- </el-tooltip>--> <!-- </template>--> <!-- </el-table-column>--> <!-- </el-table>--> <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> <!-- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />--> </el-card> <!-- 添加或修改OSS对象存储对话框 --> <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body> @@ -89,8 +91,7 @@ <div class="dialog-footer"> <el-button link type="primary" v-show="titleDownload=='输入提取码'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下载</el-button> <el-button link type="primary" v-show="titleDownload=='请输入提取码'" icon="Delete" @click="delFile()" >删除</el-button> <!-- <el-button type="primary" @click="visibleCode = false">确 定</el-button>--> <el-button @click="visibleCode = false">取 消</el-button> <el-button type="primary" @click="visibleCode = false">确 定</el-button> </div> </template> </el-dialog> @@ -132,6 +133,7 @@ const inputRef = ref<any>() const inputSty =ref<any>() const currentIp = ref('') const input1 = ref('') const childFile = ref<any>() const figType = ref<any>() // 默认排序 @@ -288,9 +290,10 @@ await childFile.value.handleCilck() dialog.visible = false; } const lookPawsd = async (row: OssVO) => { console.log(row, row.ossId); testtxt.value = row.password; const lookPawsd = async (row:any) => { console.log(row); // row.msg = ':/"123456' testtxt.value = row.msg.slice(2); titleDownload.value = '查看提取码' pasTxt.value = '' visibleCode.value = true @@ -428,6 +431,18 @@ // } }) const downloadFile = ()=>{ console.log(input1.value); if (input1.value){ proxy?.$download.ossDown("12345678",input1.value) }else { inputSty.value ={ border: '1px solid red' } // inputRef.value.style.border = '1px solid red' } visibleCode.value=false } onMounted(async () => { console.log('第二aaaaaaa',useUserStore().permissions); // 等待 useUserStore() 方法的 getInfo() 方法返回结果并赋值给 err 变量 src/views/system/oss/index.vue
@@ -80,19 +80,33 @@ </el-dialog> <el-dialog :title="titleDownload" v-model="visibleCode" width="500px" append-to-body> <p style="color: red">提取码将会在24小时后失效请尽快下载!</p> <span v-show="titleDownload=='查看提取码'">{{testtxt}}</span> <span v-show="titleDownload=='查看提取码'" style="font-size: 32px;">{{testtxt}}</span> <el-input style="margin: 10px 0" ref="inputRef" :style="inputSty" v-show="titleDownload=='输入提取码'" v-model="pasTxt" v-if="isContains(useUserStore().permissions, 'system:oss:download')" placeholder="请输入文件提取码"></el-input> <el-input style="margin: 10px 0" ref="inputRef" :style="inputSty" v-show="titleDownload=='请输入提取码'" v-model="pasTxt" placeholder="请输入文件提取码"></el-input> <!-- <el-button link type="primary" v-show="titleDownload=='输入提取码'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下载</el-button>--> <!-- <el-button link type="primary" v-show="titleDownload=='请输入提取码'" icon="Delete" @click="delFile()" >删除</el-button>--> <template #footer> <div class="dialog-footer"> <el-button link type="primary" v-show="titleDownload=='输入提取码'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下载</el-button> <el-button link type="primary" v-show="titleDownload=='请输入提取码'" icon="Delete" @click="delFile()" >删除</el-button> <!-- <el-button type="primary" @click="visibleCode = false">确 定</el-button>--> <el-button @click="visibleCode = false">取 消</el-button> <el-button type="primary" v-show="titleDownload=='输入提取码'" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下 载</el-button> <el-button type="primary" v-show="titleDownload=='请输入提取码'" @click="delFile()" >删 除</el-button> <el-button type="primary" v-if="titleDownload!='输入提取码'&&titleDownload!='请输入提取码'" @click="visibleCode = false">确 定</el-button> </div> </template> </el-dialog> <!-- 进度条 --> <el-dialog v-model="dialogVisible" title="" width="30%" :close-on-click-modal = "false" :close-on-press-escape = "false" :show-close = "false" :before-close="handleClose" > <span @closePopup1="lookPawsd1()"> <el-progress type="dashboard" :percentage="percentage2" :color="colors" /> </span> </el-dialog> </div> </template> @@ -106,6 +120,52 @@ import usePermissionStore from "@/store/modules/permission"; import { isHttp } from "@/utils/validate"; import router from '@/router'; import { onMounted, ref } from 'vue'; import { Minus, Plus } from '@element-plus/icons-vue'; import { ElMessageBox } from 'element-plus'; const dialogVisible = ref(false) const state = reactive({ mytime:null,//定义定时器 }) const percentage = ref(10) const percentage2 = ref(0) const colors = [ { color: '#f56c6c', percentage: 20 }, { color: '#e6a23c', percentage: 40 }, { color: '#5cb87a', percentage: 60 }, { color: '#1989fa', percentage: 80 }, { color: '#6f7ad3', percentage: 100 }, ] const increase = () => { percentage.value += 10 if (percentage.value > 100) { percentage.value = 100 } } const decrease = () => { percentage.value -= 10 if (percentage.value < 0) { percentage.value = 0 } } onMounted(() => { }) watch(percentage2, (new1,new2) => { console.log(new1,new2) if(new1 == 95){ clearInterval(state.mytime); state.mytime = null; } }) const { proxy } = getCurrentInstance() as ComponentInternalInstance; const ossList = ref<OssVO[]>([]); @@ -135,7 +195,7 @@ const childFile = ref<any>() const figType = ref<any>() // 默认排序 const defaultSort = ref({ prop: 'createTime', order: 'ascending' }); const defaultSort = ref({ prop: 'createTime', order: 'descending' }); const ossFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>(); @@ -264,6 +324,7 @@ /** 任务日志列表查询 */ /** 文件按钮操作 */ const handleFile = () => { reset(); type.value = 0; dialog.visible = true; @@ -290,11 +351,28 @@ } const lookPawsd = async (row: OssVO) => { console.log(row, row.ossId); clearInterval(state.mytime); state.mytime = null; if(row == '123123'){ dialogVisible.value = true; state.mytime = setInterval(() => { percentage2.value = (percentage2.value % 100) + 5 }, 500) } else{ dialogVisible.value = false; clearInterval(state.mytime); state.mytime = null; testtxt.value = row.password; titleDownload.value = '查看提取码' pasTxt.value = '' visibleCode.value = true } } const lookPawsd1 = async () => { dialogVisible.value = true; } const handleCode = async (row: OssVO) => { console.log(row, row.ossId); vite.config.ts
@@ -28,7 +28,7 @@ [env.VITE_APP_BASE_API]: { // target: 'http://80.36.32.176:8080', // target: 'http://51.9.57.211:8080', target: 'http://192.168.3.43:8080', target: 'http://80.36.32.176:8080', changeOrigin: true, rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '') }