Bladeren bron

时间格式化优化

yjwang 1 maand geleden
bovenliggende
commit
57064003b0
1 gewijzigde bestanden met toevoegingen van 15 en 12 verwijderingen
  1. 15 12
      src/views/course/userCoursePeriod/courseStatistics.vue

+ 15 - 12
src/views/course/userCoursePeriod/courseStatistics.vue

@@ -170,13 +170,13 @@
             <el-col :span="6">
               <div class="stat-item">
                 <div class="stat-label">人均看课时长</div>
-                <div class="stat-value">{{ (detailDialog.data.avgWatchDurationMinutes || 0) + '分' }}</div>
+                <div class="stat-value">{{ formatDuration(detailDialog.data.avgWatchDurationMinutes)}}</div>
               </div>
             </el-col>
             <el-col :span="6">
               <div class="stat-item">
                 <div class="stat-label">人均完课时长</div>
-                <div class="stat-value">{{ (detailDialog.data.avgCompletedDuration || 0) + '分' }}</div>
+                <div class="stat-value">{{ formatDuration(detailDialog.data.avgCompletedDuration)}}</div>
               </div>
             </el-col>
             <el-col :span="6">
@@ -573,17 +573,20 @@ export default {
     },
     /** 格式化时长 */
     formatDuration(seconds) {
-      if (!seconds) return '0秒';
-      const hours = Math.floor(seconds / 3600);
-      const minutes = Math.floor((seconds % 3600) / 60);
-      const secs = seconds % 60;
-      if (hours > 0) {
-        return `${hours}小时${minutes}分钟${secs}秒`;
-      } else if (minutes > 0) {
-        return `${minutes}分钟${secs}秒`;
-      } else {
-        return `${secs}秒`;
+      if (seconds == null || isNaN(seconds)) return '0秒';
+      let total = Math.abs(seconds);
+      const hours = Math.floor(total / 3600);
+      const minutes = Math.floor((total % 3600) / 60);
+      const secs = Math.floor(total % 60);
+
+      const parts = [];
+      if (hours > 0) parts.push(`${hours}小时`);
+      if (minutes > 0) parts.push(`${minutes}分`);
+      if (secs > 0 || parts.length === 0) {
+        parts.push(`${secs}秒`);
       }
+
+      return parts.join('');
     }
   }
 };