fix_bug and change port

This commit is contained in:
superlishunqin 2025-09-27 13:18:51 +08:00
parent f6e6dc78bd
commit a3e39115db
3 changed files with 69 additions and 15 deletions

1
frontend/.env.production Normal file
View File

@ -0,0 +1 @@
VITE_API_BASE_URL=https://api.sunnyfarm.sqai.online/api

View File

@ -125,7 +125,7 @@
<template #default="{ row }"> <template #default="{ row }">
<div class="order-products"> <div class="order-products">
<div <div
v-for="item in row.orderDetails.slice(0, 2)" v-for="item in (row.orderDetails || []).slice(0, 2)"
:key="item.id" :key="item.id"
class="product-item" class="product-item"
> >
@ -135,8 +135,8 @@
<p class="product-spec">¥{{ item.price }} × {{ item.quantity }}</p> <p class="product-spec">¥{{ item.price }} × {{ item.quantity }}</p>
</div> </div>
</div> </div>
<div v-if="row.orderDetails.length > 2" class="more-products"> <div v-if="(row.orderDetails || []).length > 2" class="more-products">
还有 {{ row.orderDetails.length - 2 }} 件商品 还有 {{ (row.orderDetails || []).length - 2 }} 件商品
</div> </div>
</div> </div>
</template> </template>
@ -153,14 +153,14 @@
<el-table-column label="订单状态" width="120"> <el-table-column label="订单状态" width="120">
<template #default="{ row }"> <template #default="{ row }">
<el-tag :type="getStatusType(row.status)"> <el-tag :type="getStatusType(row.status)">
{{ row.statusName }} {{ getStatusName(row.status) }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createdAt" label="下单时间" width="180"> <el-table-column prop="createTime" label="下单时间" width="180">
<template #default="{ row }"> <template #default="{ row }">
{{ formatTime(row.createdAt) }} {{ formatTime(row.createTime) }}
</template> </template>
</el-table-column> </el-table-column>
@ -247,10 +247,10 @@
<el-descriptions-item label="订单号">{{ selectedOrder.orderNo }}</el-descriptions-item> <el-descriptions-item label="订单号">{{ selectedOrder.orderNo }}</el-descriptions-item>
<el-descriptions-item label="订单状态"> <el-descriptions-item label="订单状态">
<el-tag :type="getStatusType(selectedOrder.status)"> <el-tag :type="getStatusType(selectedOrder.status)">
{{ selectedOrder.statusName }} {{ getStatusName(selectedOrder.status) }}
</el-tag> </el-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="下单时间">{{ formatTime(selectedOrder.createdAt) }}</el-descriptions-item> <el-descriptions-item label="下单时间">{{ formatTime(selectedOrder.createTime) }}</el-descriptions-item>
<el-descriptions-item label="订单金额">¥{{ selectedOrder.actualAmount.toFixed(2) }}</el-descriptions-item> <el-descriptions-item label="订单金额">¥{{ selectedOrder.actualAmount.toFixed(2) }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
@ -266,7 +266,7 @@
<div class="detail-section"> <div class="detail-section">
<h4>商品信息</h4> <h4>商品信息</h4>
<el-table :data="selectedOrder.orderDetails" border> <el-table :data="selectedOrder.orderDetails || []" border>
<el-table-column label="商品"> <el-table-column label="商品">
<template #default="{ row }"> <template #default="{ row }">
<div class="product-info"> <div class="product-info">
@ -331,6 +331,62 @@ export default {
const defaultImage = 'https://via.placeholder.com/50x50?text=图片' const defaultImage = 'https://via.placeholder.com/50x50?text=图片'
//
const getStatusName = (status) => {
const statusMap = {
1: '待支付',
2: '已支付',
3: '已发货',
4: '已完成',
5: '已取消',
6: '已退款'
}
return statusMap[status] || '未知状态'
}
//
const formatTime = (time) => {
if (!time || time === null || time === undefined) {
return '--'
}
try {
let date
if (typeof time === 'string') {
// MySQL datetime: 2025-09-25 04:08:23
if (time.includes('-') && time.includes(':')) {
date = new Date(time.replace(' ', 'T'))
} else if (time.includes('T')) {
// ISO
date = new Date(time)
} else {
date = new Date(time)
}
} else if (typeof time === 'number') {
date = new Date(time)
} else {
date = new Date(time)
}
if (isNaN(date.getTime())) {
return '--'
}
return date.toLocaleString('zh-CN', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
hour12: false
})
} catch (error) {
console.error('时间格式化错误:', error)
return '--'
}
}
// //
const loadOrders = async () => { const loadOrders = async () => {
try { try {
@ -402,10 +458,6 @@ export default {
return typeMap[status] || 'info' return typeMap[status] || 'info'
} }
const formatTime = (time) => {
return new Date(time).toLocaleString()
}
const viewOrderDetail = (order) => { const viewOrderDetail = (order) => {
selectedOrder.value = order selectedOrder.value = order
detailDialogVisible.value = true detailDialogVisible.value = true
@ -507,12 +559,13 @@ export default {
detailDialogVisible, detailDialogVisible,
selectedOrder, selectedOrder,
defaultImage, defaultImage,
getStatusName,
formatTime,
loadOrders, loadOrders,
handleFilter, handleFilter,
handleSearch, handleSearch,
handleSelectionChange, handleSelectionChange,
getStatusType, getStatusType,
formatTime,
viewOrderDetail, viewOrderDetail,
handleShipOrder, handleShipOrder,
confirmShipOrder, confirmShipOrder,

View File

@ -10,7 +10,7 @@ export default defineConfig({
} }
}, },
server: { server: {
port: 3000, port: 53921,
proxy: { proxy: {
'/api': { '/api': {
target: 'http://localhost:8080', target: 'http://localhost:8080',