fix: timeshow

This commit is contained in:
yanghao05
2025-04-11 09:14:33 +08:00
parent 8baab46132
commit d940c182a4
4 changed files with 42 additions and 31 deletions

View File

@@ -1,5 +1,8 @@
<script setup> <script setup>
import { mediaService } from "@/api/mediaService"; import { mediaService } from "@/api/mediaService";
import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';
import { InputText } from "primevue"; import { InputText } from "primevue";
import Badge from "primevue/badge"; import Badge from "primevue/badge";
import Button from "primevue/button"; import Button from "primevue/button";
@@ -131,6 +134,15 @@ const formatFileSize = (bytes) => {
// Convert back to number and format with commas // Convert back to number and format with commas
return `${Number(size).toLocaleString("en-US")} ${sizes[i]}`; return `${Number(size).toLocaleString("en-US")} ${sizes[i]}`;
}; };
// Configure dayjs
dayjs.extend(utc);
dayjs.extend(timezone);
// Add formatDate function
const formatDate = (date) => {
return dayjs.tz(date, 'Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss');
};
</script> </script>
<template> <template>
@@ -191,7 +203,14 @@ const formatFileSize = (bytes) => {
</template> </template>
</Column> </Column>
<Column field="upload_time" header="上传时间"></Column> <Column field="upload_time" header="时间信息">
<template #body="{ data }">
<div class="flex flex-col">
<span class="text-gray-500">更新: {{ formatDate(data.updated_at) }}</span>
<span class="text-gray-400">上传: {{ formatDate(data.created_at) }}</span>
</div>
</template>
</Column>
<Column field="file_size" header="文件大小"> <Column field="file_size" header="文件大小">
<template #body="{ data }"> <template #body="{ data }">

View File

@@ -179,7 +179,7 @@ onMounted(() => {
<span class="text-orange-500">优惠: -¥{{ formatPrice(getDiscountAmount(data.price, <span class="text-orange-500">优惠: -¥{{ formatPrice(getDiscountAmount(data.price,
data.discount)) }}</span> data.discount)) }}</span>
<span class="font-bold">实付: ¥{{ formatPrice(getFinalPrice(data.price, data.discount)) <span class="font-bold">实付: ¥{{ formatPrice(getFinalPrice(data.price, data.discount))
}}</span> }}</span>
</div> </div>
</template> </template>
</Column> </Column>

View File

@@ -3,6 +3,9 @@ import { postService } from '@/api/postService'; // Assuming you have a postServ
import { InputText } from 'primevue'; import { InputText } from 'primevue';
import Badge from 'primevue/badge'; import Badge from 'primevue/badge';
import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';
import Button from 'primevue/button'; import Button from 'primevue/button';
import Column from 'primevue/column'; import Column from 'primevue/column';
import ConfirmDialog from 'primevue/confirmdialog'; import ConfirmDialog from 'primevue/confirmdialog';
@@ -15,6 +18,10 @@ import { useToast } from 'primevue/usetoast';
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
// Configure dayjs
dayjs.extend(utc);
dayjs.extend(timezone);
// Import useRouter for navigation // Import useRouter for navigation
const router = useRouter(); const router = useRouter();
const confirm = useConfirm(); const confirm = useConfirm();
@@ -115,17 +122,8 @@ const confirmDelete = (post) => {
}; };
// Format datetime to YY/MM/DD HH:mm:ss // Format datetime to YY/MM/DD HH:mm:ss
const formatDateTime = (dateStr) => { const formatDate = (date) => {
const date = new Date(dateStr); return dayjs.tz(date, 'Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss');
return date.toLocaleString('zh-CN', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false
}).replace(/\//g, '-');
}; };
// Calculate price after discount // Calculate price after discount
@@ -153,8 +151,8 @@ const fetchPosts = async () => {
status: statusMap[post.status] || '未知', status: statusMap[post.status] || '未知',
mediaTypes: getMediaTypes(post.assets), mediaTypes: getMediaTypes(post.assets),
price: post.price / 100, price: post.price / 100,
publishedAt: formatDateTime(post.created_at), publishedAt: formatDate(post.created_at),
editedAt: formatDateTime(post.updated_at), editedAt: formatDate(post.updated_at),
viewCount: post.views, viewCount: post.views,
likes: post.likes likes: post.likes
})); }));
@@ -273,15 +271,12 @@ const formatMediaTypes = (mediaTypes) => {
</template> </template>
</Column> </Column>
<Column field="publishedAt" header="发布时间" sortable> <Column field="updated_at" header="时间信息" sortable>
<template #body="{ data }"> <template #body="{ data }">
<div class="text-sm text-gray-900">{{ data.publishedAt }}</div> <div class="flex flex-col">
</template> <span class="text-gray-500">更新: {{ formatDate(data.updated_at) }}</span>
</Column> <span class="text-gray-400">创建: {{ formatDate(data.created_at) }}</span>
</div>
<Column field="editedAt" header="编辑时间" sortable>
<template #body="{ data }">
<div class="text-sm text-gray-900">{{ data.editedAt }}</div>
</template> </template>
</Column> </Column>

View File

@@ -165,15 +165,12 @@ onMounted(() => {
</template> </template>
</Column> </Column>
<Column field="created_at" header="创建时间" sortable> <Column field="updated_at" header="时间信息" sortable>
<template #body="{ data }"> <template #body="{ data }">
{{ formatDate(data.created_at) }} <div class="flex flex-col">
</template> <span class="text-gray-500">更新: {{ formatDate(data.updated_at) }}</span>
</Column> <span class="text-gray-400">创建: {{ formatDate(data.created_at) }}</span>
</div>
<Column field="updated_at" header="更新时间" sortable>
<template #body="{ data }">
{{ formatDate(data.updated_at) }}
</template> </template>
</Column> </Column>