소스 검색

下载复制弹窗

yuwenjun1997 2 년 전
부모
커밋
a498a1475b
3개의 변경된 파일20개의 추가작업 그리고 10개의 파일을 삭제
  1. 1 1
      middleware/intercept.js
  2. 5 3
      utils/clipboard.js
  3. 14 6
      utils/donwload-tools.js

+ 1 - 1
middleware/intercept.js

@@ -16,7 +16,7 @@ function showError(error, options) {
   return error({
     statusCode: options.statusCode || 500,
     message:
-      (dev === 'production' ? '服务器出错' : options.message) || '服务器出错',
+      (dev === 'production' ? '页面不存在' : options.message) || '页面不存在',
   })
 }
 

+ 5 - 3
utils/clipboard.js

@@ -2,23 +2,25 @@ import Vue from 'vue'
 import Clipboard from 'clipboard'
 
 function clipboardSuccess(message) {
+  if (!message) return
   Vue.prototype.$toast({
     message,
     type: 'success',
-    duration: 1500
+    duration: 1500,
   })
 }
 
 function clipboardError(message) {
+  if (!message) return
   Vue.prototype.$toast({
     message: '复制失败',
-    type: 'fail'
+    type: 'fail',
   })
 }
 
 export default function handleClipboard(text, event, message) {
   const clipboard = new Clipboard(event.target, {
-    text: () => text
+    text: () => text,
   })
   clipboard.on('success', () => {
     clipboardSuccess(message)

+ 14 - 6
utils/donwload-tools.js

@@ -81,8 +81,9 @@ export async function downloadWithUrl(downUrl, fileName, self) {
 }
 
 // 通过链接下载
-export default function downloadFile(downUrl, fileName, self, $event) {
+export default async function downloadFile(downUrl, fileName, self, $event) {
   if (isWeChat()) {
+    const event = $event
     // 加密下载链接
     const data = {
       downUrl: downUrl,
@@ -92,11 +93,18 @@ export default function downloadFile(downUrl, fileName, self, $event) {
     const redirectUrl = `${
       process.env.LOCALHOSE
     }/public/download?state=${encodeURIComponent(encrypt(data))}`
-    return handleClipboard(
-      redirectUrl,
-      $event,
-      '下载链接已复制到剪切板,请粘贴到浏览器中下载'
-    )
+    handleClipboard(redirectUrl, event)
+    const result = await self.$dialog.alert({
+      title: '提示',
+      message: '请复制链接到其它浏览器下载!',
+      theme: 'round-button',
+      confirmButtonText: '点击复制下载链接',
+      confirmButtonColor: 'linear-gradient(to left, #404040, #101010)',
+    })
+    if (result === 'confirm') {
+      self.$toast('下载链接已复制到剪切板')
+    }
+    return
   } else {
     downloadWithUrl(downUrl, fileName, self)
   }