瀏覽代碼

需求和bug修改

wangxy 2 天之前
父節點
當前提交
6d2877b568
共有 2 個文件被更改,包括 54 次插入2 次删除
  1. 27 1
      src/views/course/courseTrafficLog/index.vue
  2. 27 1
      src/views/course/courseWatchLog/qw/statistics.vue

+ 27 - 1
src/views/course/courseTrafficLog/index.vue

@@ -73,7 +73,7 @@
     </el-row>
 
     <!-- 表格 -->
-    <el-table border v-loading="loading" :data="courseTrafficLogList" @selection-change="handleSelectionChange">
+    <el-table border v-loading="loading" :data="courseTrafficLogList" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
       <el-table-column type="selection" width="55" align="center" />
       <!-- 公司列 -->
       <el-table-column label="公司" align="center" prop="companyName" v-if="activeTab === 'all' || activeTab === 'company'" />
@@ -177,6 +177,31 @@ export default {
     this.getList();
   },
   methods: {
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '合计';
+          return;
+        }
+        // 根据列的位置判断,假设流量列是最后一个列(第5列,索引为4)
+        // 或者根据列的数量判断,这里假设流量列始终是倒数第一列
+        if (index === columns.length - 1) {
+          if (data && data.length > 0) {
+            const values = data.map(item => Number(item.totalInternetTraffic) || 0);
+            const total = values.reduce((prev, curr) => prev + curr, 0);
+            sums[index] = this.formatTrafficData(total);
+          } else {
+            sums[index] = '0.0000 GB';
+          }
+        } else {
+          sums[index] = '';
+        }
+      });
+
+      return sums;
+    },
     handleTabClick(tab) {
       this.queryParams.tabType = tab.name;
       this.queryParams.pageNum = 1;
@@ -205,6 +230,7 @@ export default {
       this.loading = true;
       listCourseTrafficLog(this.queryParams).then(res => {
         this.courseTrafficLogList = res.rows;
+        console.log('列表',this.courseTrafficLogList)
         this.total = res.total;
       }).finally(() => {
         this.loading = false;

+ 27 - 1
src/views/course/courseWatchLog/qw/statistics.vue

@@ -50,7 +50,7 @@
       </el-form-item>
     </el-form>
 
-    <el-table border v-loading="loading" :data="courseWatchLogList" @selection-change="handleSelectionChange"  show-summary>
+    <el-table border v-loading="loading" :data="courseWatchLogList" @selection-change="handleSelectionChange"  show-summary :summary-method="getSummaries">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="企微员工名称" align="center" prop="qwUserName" />
       <el-table-column label="发课时间" align="center" prop="createTime"/>
@@ -156,6 +156,32 @@ export default {
     });
   },
   methods: {
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '合计';
+          return;
+        }
+        const values = data.map(item => Number(item[column.property]));
+        if (!values.every(value => isNaN(value))) {
+          sums[index] = values.reduce((prev, curr) => {
+            const value = Number(curr);
+            if (!isNaN(value)) {
+              return prev + curr;
+            } else {
+              return prev;
+            }
+          }, 0);
+          sums[index] += ' ';
+        } else {
+          sums[index] = '';
+        }
+      });
+
+      return sums;
+    },
     courseChange(row){
       this.queryParams.videoId=null;
       if(row === ''){