From 9b8915a8035534d7b62e2c01dd79c785d25a50ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Mon, 27 May 2024 19:41:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=A2=9E=E5=8A=A0loading?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/jeecg/components/JUpload/JUpload.vue | 48 ++++++++++++++- .../checkKecheng/dqxqkcMain.vue | 4 +- .../checkKecheng/dqxqkcMenu.vue | 4 +- .../downloadAssembly.vue | 54 +++++++++++++++- src/views/zy/jiaoXueDanYuanNeiRong/index.vue | 41 ++++++++++++- src/views/zyk/ZykInfoList.vue | 61 ++++++++++++++++++- 6 files changed, 198 insertions(+), 14 deletions(-) diff --git a/src/components/Form/src/jeecg/components/JUpload/JUpload.vue b/src/components/Form/src/jeecg/components/JUpload/JUpload.vue index db9957e..7e089d3 100644 --- a/src/components/Form/src/jeecg/components/JUpload/JUpload.vue +++ b/src/components/Form/src/jeecg/components/JUpload/JUpload.vue @@ -21,7 +21,9 @@ {{ text }} - + +
+
@@ -42,6 +44,7 @@ import { buildUUID } from '/@/utils/uuid'; import CryptoJS from 'crypto-js'; + const spinning = ref(false); const { createMessage, createConfirm } = useMessage(); const { prefixCls } = useDesign('j-upload'); const attrs = useAttrs(); @@ -396,7 +399,39 @@ if (isImageMode.value) { createImgPreview({ imageList: [file.url], maskClosable: true }); } else { - window.open(file.url); + // window.open(file.url); + openWindowWithLoading(file.url); + } + } + + /** + * 自定义下载事件,带加载中 + */ + function openWindowWithLoading(url){ + let xhr = new XMLHttpRequest(); + spinning.value = true; + xhr.open('GET',url,true); + // xhr.onprogress = function (e){ + // let percent = Math.floor(e.loaded / e.total * 100);//百分比加载,用于进度条 + // console.log(percent); + // } + xhr.send(); + xhr.responseType = "arraybuffer"; + xhr.onreadystatechange = event =>{ + console.log(xhr); + if(xhr.readyState == 4){ + if(xhr.status == 200){ + let fileName = url.substring(url.lastIndexOf("/")+1); + let blob = new Blob([xhr.response]); + const downLoadLink = document.createElement('a'); + downLoadLink.download = fileName; + downLoadLink.href = URL.createObjectURL(blob); + downLoadLink.click(); + }else if (xhr.status == 404){ + createMessage.warning('没有找到可下载的资源!'); + } + } + spinning.value = false; } } @@ -785,4 +820,13 @@ } } } + + .example { + text-align: center; + background: rgba(0, 0, 0, 0); + border-radius: 4px; + position: absolute; + left: 50%; + top: 50%; + } diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue index 894593d..93d608b 100644 --- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue +++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue @@ -45,9 +45,9 @@ //进入就加载 onMounted(() => { - console.log('rwbh:',rwbh); + // console.log('rwbh:',rwbh); defHttp.get({ url: '/ktgl/kcKechengbiao/getKcxxByRwbhXqxn', params: { rwbh: rwbh,xqxn:xqxn } }).then((res) => { - console.log(`🚀 ~ 1111 defHttp.get ~ res:`, res) + // console.log(`🚀 ~ 1111 defHttp.get ~ res:`, res) kcxxInfo.value = res; }); }); diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue index 5780829..214c243 100644 --- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue +++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue @@ -100,7 +100,7 @@ }else if(zytype=='zycd'){ href = "/zy/dqkcCdxx"; } - + router.push({path:href,query: {rwbh,xqxn,type}}); } @@ -110,7 +110,7 @@ //进入就加载 onMounted(() => { - console.log('rwbh:',rwbh); + // console.log('rwbh:',rwbh); }); diff --git a/src/views/zy/jiaoXueDanYuanNeiRong/downloadAssembly.vue b/src/views/zy/jiaoXueDanYuanNeiRong/downloadAssembly.vue index 40f93b4..b43d290 100644 --- a/src/views/zy/jiaoXueDanYuanNeiRong/downloadAssembly.vue +++ b/src/views/zy/jiaoXueDanYuanNeiRong/downloadAssembly.vue @@ -7,7 +7,8 @@
- {{ getFileName() }} + + {{ getFileName() }} @@ -15,10 +16,16 @@ - +
+ +
\ No newline at end of file + + function downLoadFile(){ + if(!props.filePath) return null; + let url = getFileAccessHttpUrl(props.filePath); + openWindowWithLoading(url); + } + + function openWindowWithLoading(url){ + let xhr = new XMLHttpRequest(); + spinning.value = true; + xhr.open('GET',url,true); + xhr.send(); + xhr.responseType = "arraybuffer"; + xhr.onreadystatechange = event =>{ + if(xhr.readyState == 4){ + if(xhr.status == 200){ + let fileName = url.substring(url.lastIndexOf("/")+1); + let blob = new Blob([xhr.response]); + const downLoadLink = document.createElement('a'); + downLoadLink.download = fileName; + downLoadLink.href = URL.createObjectURL(blob); + downLoadLink.click(); + }else if (xhr.status == 404){ + createMessage.warning('没有找到可下载的资源!'); + } + } + spinning.value = false; + } + } + + + + diff --git a/src/views/zy/jiaoXueDanYuanNeiRong/index.vue b/src/views/zy/jiaoXueDanYuanNeiRong/index.vue index a4a88bf..2cf2089 100644 --- a/src/views/zy/jiaoXueDanYuanNeiRong/index.vue +++ b/src/views/zy/jiaoXueDanYuanNeiRong/index.vue @@ -146,8 +146,9 @@ - - +
+ +