dining.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { api } from '@/utils/request.js';
  2. import { BASE_API_URL } from '@/settings/siteSetting.js';
  3. import { useUserStore } from '@/store/user.js';
  4. // 微信登录
  5. export const DiningUserWechatLogin = (params) => api.post({ url: '/dining/user/wechatLogin', params });
  6. // 点餐页数据(入参 dinerCount 就餐人数、tableId 桌号)
  7. export const DiningOrderFood = (params) => api.get({ url: '/store/dining/page-info', params });
  8. // 菜品种类(入参 storeId,GET /store/info/categories?storeId=)
  9. export const GetStoreCategories = (params) => api.get({ url: '/store/info/categories', params });
  10. // 根据菜品种类获取菜品(入参 categoryId,GET /store/info/cuisines?categoryId=)
  11. export const GetStoreCuisines = (params) => api.get({ url: '/store/info/cuisines', params });
  12. // 获取购物车(GET /store/order/cart/{tableId},建立 SSE 连接之后调用)
  13. export const GetOrderCart = (tableId) =>
  14. api.get({ url: `/store/order/cart/${encodeURIComponent(tableId)}` });
  15. // 加入购物车(POST /store/order/cart/add,dto: { cuisineId 菜品ID, quantity 数量, tableId 桌号ID })
  16. export const PostOrderCartAdd = (dto) =>
  17. api.post({ url: '/store/order/cart/add', params: dto });
  18. // 更新购物车(PUT /store/order/cart/update,请求类型 x-www-form-urlencoded,由 request 层 formUrlEncoded 封装)
  19. export const PostOrderCartUpdate = (params) =>
  20. api.put({ url: '/store/order/cart/update', params, formUrlEncoded: true });
  21. /**
  22. * 创建订单 SSE 连接(GET /store/order/sse/{tableId})
  23. * 返回 uni.request 的 requestTask,需在页面 onUnload 时 abort()
  24. */
  25. export function createOrderSseConnection(tableId, options = {}) {
  26. const userStore = useUserStore();
  27. const url = `${BASE_API_URL}/store/order/sse/${encodeURIComponent(tableId)}`;
  28. return uni.request({
  29. url,
  30. method: 'GET',
  31. header: {
  32. Authorization: userStore.getToken || ''
  33. },
  34. enableChunked: true,
  35. timeout: 0,
  36. ...options
  37. });
  38. }