Просмотр исходного кода

feat: post请求的进度事件回调传参从进度字符串改为数字;【我的素材】上传列表组件的进度数据改为对数字做处理后展示而非直接显示。

任一存 4 лет назад
Родитель
Сommit
433a826d9b
2 измененных файлов с 10 добавлено и 11 удалено
  1. 1 1
      src/utils/request.js
  2. 9 10
      src/views/material/components/uploadList1.1.0.vue

+ 1 - 1
src/utils/request.js

@@ -368,7 +368,7 @@ export const http = {
           xhr: function() {
             const xhr = new XMLHttpRequest();
             xhr.upload.addEventListener("progress", function(e) {
-              onProgress((e.loaded / e.total) * 100 + "%");
+              onProgress(e.loaded / e.total);
             });
             xhr.onabort = () => {
               console.log('xhr aborted.');

+ 9 - 10
src/views/material/components/uploadList1.1.0.vue

@@ -33,7 +33,7 @@
           }">
             {{taskItem.statusText}}
           </span>
-          <span v-show="taskItem.ifKnowProgress && taskItem.status === 'LOADING'" class="progress-text">{{taskItem.progress}}</span>
+          <span v-show="taskItem.ifKnowProgress && taskItem.status === 'LOADING'" class="progress-text">{{Math.round(taskItem.progress * 100) + '%'}}</span>
           <img
             v-show="(taskItem.status === 'LOADING' && taskItem.ifKnowProgress) || taskItem.status === 'FAIL'"
             class="cancel-btn"
@@ -41,7 +41,7 @@
             @click="onClickCancel(index)"
           />
         </div>
-        <div class="progress-bar" v-if="taskItem.ifKnowProgress && taskItem.status === 'LOADING'" :style="{width: taskItem.progress}"></div>
+        <div class="progress-bar" v-if="taskItem.ifKnowProgress && taskItem.status === 'LOADING'" :style="{width: Math.round(taskItem.progress * 100) + '%'}"></div>
         <div class="progress-bar-unknown" v-if="!taskItem.ifKnowProgress && taskItem.status ==='LOADING'"></div>
       </div>
     </div>
@@ -61,7 +61,7 @@ export default {
        * 每个元素的内部结构:{
        *  title: String
        *  ifKnowProgress: Boolean // false则进度条效果是loading而不是具体进度
-       *  progress:String // 进度,以百分号结尾
+       *  progress:Number // 进度,0到1之间
        *  status: 'SUCCESS' | 'FAIL' | 'LOADING' | 'CANCELLED'
        *  statusText
        * }
@@ -72,35 +72,35 @@ export default {
       //   {
       //     title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
       //     ifKnowProgress: true,
-      //     progress: '100%',
+      //     progress: '1',
       //     status: 'SUCCESS',
       //     statusText: '成功',
       //   },
       //   {
       //     title: '标题',
       //     ifKnowProgress: true,
-      //     progress: '30%',
+      //     progress: '0.3',
       //     status: 'LOADING',
       //     statusText: '上传中',
       //   },
       //   {
       //     title: '标题',
       //     ifKnowProgress: false,
-      //     progress: '30%',
+      //     progress: '0.3',
       //     status: 'LOADING',
       //     statusText: '后台处理中',
       //   },
       //   {
       //     title: '标题',
       //     ifKnowProgress: true,
-      //     progress: '55%',
+      //     progress: '0.55',
       //     status: 'FAIL',
       //     statusText: '失败',
       //   },
       //   {
       //     title: '标题',
       //     ifKnowProgress: false,
-      //     progress: '30%',
+      //     progress: '0.3',
       //     status: 'CANCELLED',
       //     statusText: '已取消',
       //   },
@@ -119,14 +119,13 @@ export default {
         default:
           return require('@/assets/images/icons/upload-file-type-icon-image@2x.png')
       }
-
     },
     successNumber() {
       return this.taskList.filter((item) => item.status === 'SUCCESS').length
     },
     totalNumber() {
       return this.taskList.filter((item) => item.status !== 'CANCELLED').length
-    }
+    },
   },
   data() {
     return {