46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
|
|
/**
|
|||
|
|
* 黄精粉健康商城 - 公排相关 API
|
|||
|
|
* 公排状态、公排历史记录
|
|||
|
|
* @see docs/frontend-new-pages-spec.md 2.2.1
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
import request from '@/utils/request.js';
|
|||
|
|
import { getMockQueueStatus, getMockQueueHistory } from '@/utils/hjfMockData.js';
|
|||
|
|
|
|||
|
|
/** @type {boolean} 是否使用 Mock 数据(Phase 4 集成时改为 false) */
|
|||
|
|
const USE_MOCK = true;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Mock 包装:返回与 request.get() 相同形状的 Promise
|
|||
|
|
* 300ms 延迟模拟网络,JSON 深拷贝防止数据突变
|
|||
|
|
* @param {*} data - 要返回的数据
|
|||
|
|
* @param {number} [delay=300] - 延迟毫秒数
|
|||
|
|
* @returns {Promise<{ status: number, data: * }>}
|
|||
|
|
*/
|
|||
|
|
function mockResponse(data, delay = 300) {
|
|||
|
|
return new Promise(resolve => {
|
|||
|
|
setTimeout(() => {
|
|||
|
|
resolve({ status: 200, data: JSON.parse(JSON.stringify(data)) });
|
|||
|
|
}, delay);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取公排状态(我的排队 + 全局进度)
|
|||
|
|
* @returns {Promise<{ status: number, data: { totalOrders: number, myOrders: Array, progress: Object } }>}
|
|||
|
|
*/
|
|||
|
|
export function getQueueStatus() {
|
|||
|
|
if (USE_MOCK) return mockResponse(getMockQueueStatus());
|
|||
|
|
return request.get('hjf/queue/status');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取公排历史记录(分页)
|
|||
|
|
* @param {Object} [params] - 查询参数,如 page、limit
|
|||
|
|
* @returns {Promise<{ status: number, data: { list: Array, count: number, page: number, limit: number } }>}
|
|||
|
|
*/
|
|||
|
|
export function getQueueHistory(params) {
|
|||
|
|
if (USE_MOCK) return mockResponse(getMockQueueHistory());
|
|||
|
|
return request.get('hjf/queue/history', params);
|
|||
|
|
}
|