| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import { api } from '@/utils/request.js';
- import { BASE_API_URL } from '@/settings/siteSetting.js';
- import { useUserStore } from '@/store/user.js';
- // 微信登录
- export const DiningUserWechatLogin = (params) => api.post({ url: '/dining/user/wechatLogin', params });
- // 点餐页数据(入参 dinerCount 就餐人数、tableId 桌号)
- export const DiningOrderFood = (params) => api.get({ url: '/store/dining/page-info', params });
- // 菜品种类(入参 storeId,GET /store/info/categories?storeId=)
- export const GetStoreCategories = (params) => api.get({ url: '/store/info/categories', params });
- // 根据菜品种类获取菜品(入参 categoryId,GET /store/info/cuisines?categoryId=)
- export const GetStoreCuisines = (params) => api.get({ url: '/store/info/cuisines', params });
- // 获取购物车(GET /store/order/cart/{tableId},建立 SSE 连接之后调用)
- export const GetOrderCart = (tableId) =>
- api.get({ url: `/store/order/cart/${encodeURIComponent(tableId)}` });
- // 加入购物车(POST /store/order/cart/add,dto: { cuisineId 菜品ID, quantity 数量, tableId 桌号ID })
- export const PostOrderCartAdd = (dto) =>
- api.post({ url: '/store/order/cart/add', params: dto });
- // 将对象转为 x-www-form-urlencoded 字符串(兼容小程序环境无 URLSearchParams)
- function toFormUrlEncoded(obj) {
- return Object.keys(obj || {})
- .filter((k) => obj[k] != null && obj[k] !== '')
- .map((k) => encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]))
- .join('&');
- }
- // 更新购物车(POST /store/order/cart/update,请求类型 x-www-form-urlencoded)
- export const PostOrderCartUpdate = (params) => {
- const body = toFormUrlEncoded(params);
- return api.post({
- url: '/store/order/cart/update',
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- params: body
- });
- };
- /**
- * 创建订单 SSE 连接(GET /store/order/sse/{tableId})
- * 返回 uni.request 的 requestTask,需在页面 onUnload 时 abort()
- */
- export function createOrderSseConnection(tableId, options = {}) {
- const userStore = useUserStore();
- const url = `${BASE_API_URL}/store/order/sse/${encodeURIComponent(tableId)}`;
- return uni.request({
- url,
- method: 'GET',
- header: {
- Authorization: userStore.getToken || ''
- },
- enableChunked: true,
- timeout: 0,
- ...options
- });
- }
|