Jelajahi Sumber

fix(cfc-web): normalize time format to YYYY-MM-DD HH:mm:ss across admin pages

- Fix raw ISO format display in ArticleManage publishedAt & Dashboard createdAt
- Unify formatTime to t.replace('T',' ').substring(0,19) pattern
- Replace new Date().toLocaleString() with consistent T-replace in
  OrderManage/WithdrawAudit/EmotionAlertManage/ProductManage
Sisyphus 2 bulan lalu
induk
melakukan
aedd0bdef5

+ 5 - 1
cfc-web/src/views/admin/ArticleManage.vue

@@ -120,7 +120,7 @@
         <el-table-column prop="viewCount" label="阅读" width="70" />
         <el-table-column label="发布时间" width="160">
           <template slot-scope="{ row }">
-            {{ row.publishedAt || '-' }}
+            {{ formatTime(row.publishedAt) }}
           </template>
         </el-table-column>
         <el-table-column label="操作" width="200" fixed="right">
@@ -480,6 +480,10 @@ export default {
         this.$message.error(e.message || '复制失败')
       }
     },
+    formatTime(t) {
+      if (!t) return '-'
+      return t.replace ? t.replace('T', ' ').substring(0, 19) : t
+    },
     handleActionCmd(row, cmd) {
       switch (cmd) {
         case 'submitReview': this.handleSubmitReview(row); break;

+ 5 - 1
cfc-web/src/views/admin/Dashboard.vue

@@ -71,7 +71,7 @@
           </template>
         </el-table-column>
         <el-table-column label="创建时间" width="150">
-          <template slot-scope="{ row }">{{ row.createdAt || '-' }}</template>
+          <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
         </el-table-column>
       </el-table>
     </el-card>
@@ -244,6 +244,10 @@ export default {
     taskStatusLabel(status) {
       const map = { pending: '\u5f85\u5ba1\u6838', approved: '\u5df2\u901a\u8fc7', completed: '\u5df2\u5b8c\u6210', rejected: '\u5df2\u62d2\u7edd' }
       return map[status] || status
+    },
+    formatTime(t) {
+      if (!t) return '-'
+      return t.replace ? t.replace('T', ' ').substring(0, 19) : t
     }
   }
 }

+ 3 - 3
cfc-web/src/views/admin/EmotionAlertManage.vue

@@ -148,9 +148,9 @@ export default {
       var map = { high: '高', medium: '中', low: '低' }
       return map[severity] || severity
     },
-    formatTime(time) {
-      if (!time) return '-'
-      return new Date(time).toLocaleString()
+    formatTime(t) {
+      if (!t) return '-'
+      return t.replace ? t.replace('T', ' ').substring(0, 19) : t
     }
   }
 }

+ 3 - 3
cfc-web/src/views/admin/OrderManage.vue

@@ -306,9 +306,9 @@ export default {
       if (cents == null) return '-'
       return '¥' + (cents / 100).toFixed(2)
     },
-    formatTime(time) {
-      if (!time) return '-'
-      return new Date(time).toLocaleString()
+    formatTime(t) {
+      if (!t) return '-'
+      return t.replace ? t.replace('T', ' ').substring(0, 19) : t
     },
     handleActionCmd(row, cmd) {
       switch (cmd) {

+ 3 - 3
cfc-web/src/views/admin/ProductManage.vue

@@ -223,9 +223,9 @@ export default {
       const map = { physical: '实物商品', virtual: '虚拟商品', coupon: '优惠券' }
       return map[type] || type
     },
-    formatTime(time) {
-      if (!time) return '-'
-      return new Date(time).toLocaleString()
+    formatTime(t) {
+      if (!t) return '-'
+      return t.replace ? t.replace('T', ' ').substring(0, 19) : t
     },
     formatPriceWithSymbol(price) {
       if (price === 0) return '免费'

+ 3 - 3
cfc-web/src/views/admin/WithdrawAudit.vue

@@ -166,9 +166,9 @@ export default {
       const map = { pending: '待审核', approved: '已通过', rejected: '已拒绝' }
       return map[status] || status
     },
-    formatTime(time) {
-      if (!time) return '-'
-      return new Date(time).toLocaleString()
+    formatTime(t) {
+      if (!t) return '-'
+      return t.replace ? t.replace('T', ' ').substring(0, 19) : t
     },
     async handleAudit(row, status) {
       const actionLabel = status === 'approved' ? '通过' : '拒绝'