整理初始化迁移并优化订单和用户菜单

This commit is contained in:
yml2213
2026-06-10 16:21:01 +08:00
parent 70a35204b3
commit 3e0a1a2d4b
6 changed files with 149 additions and 100 deletions
+2 -2
View File
@@ -165,8 +165,8 @@ export async function fetchPostRentalNotice() {
}
export async function fetchOrders() {
const { data } = await apiClient.get<ApiResponse<Order[]>>('/orders')
return data.data
const { data } = await apiClient.get<ApiResponse<{ items: Order[] }>>('/orders')
return Array.isArray(data.data?.items) ? data.data.items : []
}
export async function fetchOrder(id: string | number) {
@@ -34,7 +34,8 @@ onMounted(() => {
async function loadOrders() {
loading.value = true
try {
orders.value = await fetchOrders()
const items = await fetchOrders()
orders.value = Array.isArray(items) ? items : []
} catch {
showToast({ message: '订单加载失败,请稍后重试', icon: 'warning-o' })
} finally {
@@ -42,11 +42,11 @@ const displayOrders = computed(() => {
const keyword = searchKeyword.value.trim().toLowerCase()
filtered = filtered.filter(
order =>
order.order_no.toLowerCase().includes(keyword) ||
textValue(order.order_no).toLowerCase().includes(keyword) ||
formatListingCode(order).toLowerCase().includes(keyword) ||
String(order.listing_id).includes(keyword) ||
String(order.account_id).includes(keyword) ||
order.title.toLowerCase().includes(keyword)
textValue(order.title).toLowerCase().includes(keyword)
)
}
@@ -85,7 +85,8 @@ function handleTabChange(tab: string | number) {
async function loadOrders() {
loading.value = true
try {
orders.value = await fetchOrders()
const items = await fetchOrders()
orders.value = Array.isArray(items) ? items : []
} finally {
loading.value = false
}
@@ -143,14 +144,29 @@ function money(value: unknown) {
return formatMoney(Number(value || 0))
}
function shortenOrderNo(orderNo: string) {
if (orderNo.length <= 20) return orderNo
return `${orderNo.slice(0, 12)}...${orderNo.slice(-6)}`
function textValue(value: unknown) {
return typeof value === 'string' ? value : ''
}
async function copyOrderNo(orderNo: string) {
function orderNoText(orderNo: unknown) {
return textValue(orderNo) || '订单号未生成'
}
function shortenOrderNo(orderNo: unknown) {
const value = orderNoText(orderNo)
if (value === '订单号未生成') return value
if (value.length <= 20) return value
return `${value.slice(0, 12)}...${value.slice(-6)}`
}
async function copyOrderNo(orderNo: unknown) {
const value = textValue(orderNo)
if (!value) {
ElMessage.warning('订单号未生成,暂无法复制')
return
}
try {
await navigator.clipboard.writeText(orderNo)
await navigator.clipboard.writeText(value)
ElMessage.success('订单号已复制')
} catch {
ElMessage.error('复制失败')