feat(api): add scenic, order, reserve API functions with mock fallback

This commit is contained in:
jacobxu666
2026-06-26 10:26:35 +08:00
parent a1307fa148
commit 25a1cc4eb3
3 changed files with 65 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import { USE_MOCK } from '@/mock'
import type { OrderItem } from '@/mock/order'
import { orderStore } from '@/mock/store'
import type { CreateOrderParams } from './types'
import { get, post } from './request'
/** 获取订单列表 */
export function getOrderList(): Promise<OrderItem[]> {
if (USE_MOCK) return Promise.resolve(orderStore.value)
return get<OrderItem[]>('/mp-api/order/list')
}
/** 获取订单详情 */
export function getOrderDetail(id: string): Promise<OrderItem | undefined> {
if (USE_MOCK) {
return Promise.resolve(orderStore.value.find(o => o.id === id))
}
return get<OrderItem>(`/mp-api/order/detail?id=${id}`)
}
/** 创建订单 */
export function createOrder(params: CreateOrderParams): Promise<{ orderId: string }> {
if (USE_MOCK) {
return Promise.resolve({ orderId: `mock_${Date.now()}` })
}
return post<{ orderId: string }>('/mp-api/order/create', params)
}
+20
View File
@@ -0,0 +1,20 @@
import { USE_MOCK } from '@/mock'
import { reserveStore } from '@/mock/store'
import type { ReserveRecordItem } from '@/mock/reserve'
import { get, post } from './request'
/** 获取预约记录列表 */
export function getReserveList(): Promise<ReserveRecordItem[]> {
if (USE_MOCK) return Promise.resolve(reserveStore.value)
return get<ReserveRecordItem[]>('/mp-api/reserve/list')
}
/** 创建预约 */
export function createReserve(params: Omit<ReserveRecordItem, 'id'>): Promise<{ id: string }> {
if (USE_MOCK) {
const id = `YP${Date.now().toString(36).toUpperCase()}`
reserveStore.value.push({ ...params, id })
return Promise.resolve({ id })
}
return post<{ id: string }>('/mp-api/reserve/create', params)
}
+18
View File
@@ -0,0 +1,18 @@
import { USE_MOCK } from '@/mock'
import { mockScenicList, type ScenicItem } from '@/mock/scenic'
import { mockScenicDetails, type ScenicDetail } from '@/mock/scenic-detail'
import { get } from './request'
/** 获取景区列表 */
export function getScenicList(): Promise<ScenicItem[]> {
if (USE_MOCK) return Promise.resolve(mockScenicList)
return get<ScenicItem[]>('/mp-api/scenic/list')
}
/** 获取景区详情 */
export function getScenicDetail(id: number): Promise<ScenicDetail | undefined> {
if (USE_MOCK) {
return Promise.resolve(mockScenicDetails.find(s => s.id === id))
}
return get<ScenicDetail>(`/mp-api/scenic/detail?id=${id}`)
}