feat(api): add scenic, order, reserve API functions with mock fallback
This commit is contained in:
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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}`)
|
||||
}
|
||||
Reference in New Issue
Block a user