fix_bug and change port
This commit is contained in:
parent
f6e6dc78bd
commit
a3e39115db
1
frontend/.env.production
Normal file
1
frontend/.env.production
Normal file
@ -0,0 +1 @@
|
||||
VITE_API_BASE_URL=https://api.sunnyfarm.sqai.online/api
|
||||
@ -125,7 +125,7 @@
|
||||
<template #default="{ row }">
|
||||
<div class="order-products">
|
||||
<div
|
||||
v-for="item in row.orderDetails.slice(0, 2)"
|
||||
v-for="item in (row.orderDetails || []).slice(0, 2)"
|
||||
:key="item.id"
|
||||
class="product-item"
|
||||
>
|
||||
@ -135,8 +135,8 @@
|
||||
<p class="product-spec">¥{{ item.price }} × {{ item.quantity }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="row.orderDetails.length > 2" class="more-products">
|
||||
还有 {{ row.orderDetails.length - 2 }} 件商品
|
||||
<div v-if="(row.orderDetails || []).length > 2" class="more-products">
|
||||
还有 {{ (row.orderDetails || []).length - 2 }} 件商品
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -153,14 +153,14 @@
|
||||
<el-table-column label="订单状态" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-tag :type="getStatusType(row.status)">
|
||||
{{ row.statusName }}
|
||||
{{ getStatusName(row.status) }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="createdAt" label="下单时间" width="180">
|
||||
<el-table-column prop="createTime" label="下单时间" width="180">
|
||||
<template #default="{ row }">
|
||||
{{ formatTime(row.createdAt) }}
|
||||
{{ formatTime(row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@ -247,10 +247,10 @@
|
||||
<el-descriptions-item label="订单号">{{ selectedOrder.orderNo }}</el-descriptions-item>
|
||||
<el-descriptions-item label="订单状态">
|
||||
<el-tag :type="getStatusType(selectedOrder.status)">
|
||||
{{ selectedOrder.statusName }}
|
||||
{{ getStatusName(selectedOrder.status) }}
|
||||
</el-tag>
|
||||
</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>
|
||||
</div>
|
||||
@ -266,7 +266,7 @@
|
||||
|
||||
<div class="detail-section">
|
||||
<h4>商品信息</h4>
|
||||
<el-table :data="selectedOrder.orderDetails" border>
|
||||
<el-table :data="selectedOrder.orderDetails || []" border>
|
||||
<el-table-column label="商品">
|
||||
<template #default="{ row }">
|
||||
<div class="product-info">
|
||||
@ -331,6 +331,62 @@ export default {
|
||||
|
||||
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 () => {
|
||||
try {
|
||||
@ -402,10 +458,6 @@ export default {
|
||||
return typeMap[status] || 'info'
|
||||
}
|
||||
|
||||
const formatTime = (time) => {
|
||||
return new Date(time).toLocaleString()
|
||||
}
|
||||
|
||||
const viewOrderDetail = (order) => {
|
||||
selectedOrder.value = order
|
||||
detailDialogVisible.value = true
|
||||
@ -507,12 +559,13 @@ export default {
|
||||
detailDialogVisible,
|
||||
selectedOrder,
|
||||
defaultImage,
|
||||
getStatusName,
|
||||
formatTime,
|
||||
loadOrders,
|
||||
handleFilter,
|
||||
handleSearch,
|
||||
handleSelectionChange,
|
||||
getStatusType,
|
||||
formatTime,
|
||||
viewOrderDetail,
|
||||
handleShipOrder,
|
||||
confirmShipOrder,
|
||||
|
||||
@ -10,7 +10,7 @@ export default defineConfig({
|
||||
}
|
||||
},
|
||||
server: {
|
||||
port: 3000,
|
||||
port: 53921,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://localhost:8080',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user