Browse Source

feat(sence): download finish

gemercheung 3 years ago
parent
commit
41437d4de9
2 changed files with 23 additions and 3 deletions
  1. 22 3
      src/views/scenes/downloadModal.vue
  2. 1 0
      src/views/scenes/list.vue

+ 22 - 3
src/views/scenes/downloadModal.vue

@@ -4,7 +4,7 @@
     @register="register"
     :title="t('routes.scenes.downloadScene')"
     :showCancelBtn="false"
-    :okText="t('routes.scenes.cancelDownload')"
+    :okText="downloadInfo.isDownloaded ? t('common.okText') : t('routes.scenes.cancelDownload')"
     @ok="handleSubmit"
     @cancel="cancelDownload"
   >
@@ -34,6 +34,12 @@
   // import { bindAnchorListParam } from '/@/api/scene/model';
   // import { Time } from '/@/components/Time';
   // import { useUserStore } from '/@/store/modules/user';
+  import {
+    downloadByUrl,
+    // downloadByData,
+    // downloadByBase64,
+    // downloadByOnlineUrl,
+  } from '/@/utils/file/download';
 
   const schemas: FormSchema[] = [
     {
@@ -66,10 +72,12 @@
       const { t } = useI18n();
       // const { createMessage } = useMessage();
       const sceneNum = ref('');
+      const finishDowloadUrl = ref('');
       const downloadInfo = reactive<Recordable>({});
       downloadInfo.timer = null;
       downloadInfo.process = 0;
       downloadInfo.status = '下载中';
+      downloadInfo.isDownloaded = false;
 
       const [registerForm, { setFieldsValue }] = useForm({
         schemas: schemas,
@@ -98,6 +106,12 @@
         try {
           cancelDownload();
           closeModal();
+          if (downloadInfo.isDownloaded) {
+            downloadByUrl({
+              url: finishDowloadUrl.value as any as string,
+              target: '_self',
+            });
+          }
         } catch (error) {}
       };
       async function getDownloadInfo(sceneNum: string) {
@@ -106,9 +120,14 @@
           console.log('res', res);
           const percent = res.percent;
           downloadInfo.process = percent;
-          if (res.status === 1002) {
+          if (res.status === 1000) {
+            downloadInfo.status = '获取中';
+          }
+          if (res.status === 1002 && res.url) {
             cancelDownload();
-            downloadInfo.status = '已完成';
+            finishDowloadUrl.value = res.url;
+            downloadInfo.isDownloaded = true;
+            downloadInfo.status = '获取成功';
           }
         }, 2000);
       }

+ 1 - 0
src/views/scenes/list.vue

@@ -215,6 +215,7 @@
             url: downloadUrl as any as string,
             target: '_self',
           });
+          await openDownloadModal(true, record);
         } else {
           await openDownloadModal(true, record);
         }