@pisell/private-materials 3.0.209 → 3.0.210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +6 -14
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +4 -4
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +7 -7
  11. package/es/components/Sales/Cart/index.d.ts +8 -5
  12. package/es/components/Sales/Cart/index.js +158 -37
  13. package/es/components/Sales/Cart/serve.d.ts +1 -0
  14. package/es/components/Sales/Cart/serve.js +5 -0
  15. package/es/components/Sales/Cart/types.d.ts +19 -0
  16. package/es/components/Sales/Cart/types.js +1 -0
  17. package/es/components/Sales/Checkout/index.js +3 -0
  18. package/es/components/booking/info/pet/index.js +3 -3
  19. package/es/components/booking/info/service2/utils.d.ts +1 -1
  20. package/es/components/eftposPay/amount.d.ts +1 -1
  21. package/es/components/eftposPay/app.d.ts +1 -1
  22. package/es/components/eftposPay/device.d.ts +1 -1
  23. package/es/components/eftposPay/store/index.d.ts +2 -2
  24. package/es/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +153 -37
  25. package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +4 -0
  26. package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.js +35 -0
  27. package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.less +17 -0
  28. package/es/components/eventBooking/components/Provider/Event/index.js +8 -1
  29. package/es/components/eventBooking/components/Provider/OrderProductModal/index.js +12 -35
  30. package/es/components/eventBooking/components/Provider/Resource/index.js +22 -11
  31. package/es/components/eventBooking/components/Provider/SelectHolderModal.js +4 -1
  32. package/es/components/eventBooking/components/bookingDetailModal/index.js +55 -9
  33. package/es/components/eventBooking/components/progressBar/index.js +18 -2
  34. package/es/components/eventBooking/components/scheduleCalendar/calendarItem.js +8 -0
  35. package/es/components/eventBooking/index.js +1 -15
  36. package/es/components/eventBooking/locales.d.ts +33 -3
  37. package/es/components/eventBooking/locales.js +42 -6
  38. package/es/components/shoppingCart/components/Cart/Product.js +2 -2
  39. package/lib/components/Sales/Cart/index.d.ts +8 -5
  40. package/lib/components/Sales/Cart/index.js +97 -13
  41. package/lib/components/Sales/Cart/serve.d.ts +1 -0
  42. package/lib/components/Sales/Cart/serve.js +5 -0
  43. package/lib/components/Sales/Cart/types.d.ts +19 -0
  44. package/lib/components/Sales/Cart/types.js +17 -0
  45. package/lib/components/Sales/Checkout/index.js +1 -0
  46. package/lib/components/booking/info/pet/index.js +3 -3
  47. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  48. package/lib/components/eftposPay/amount.d.ts +1 -1
  49. package/lib/components/eftposPay/app.d.ts +1 -1
  50. package/lib/components/eftposPay/device.d.ts +1 -1
  51. package/lib/components/eftposPay/store/index.d.ts +2 -2
  52. package/lib/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +62 -14
  53. package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +4 -0
  54. package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.js +61 -0
  55. package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.less +17 -0
  56. package/lib/components/eventBooking/components/Provider/Event/index.js +20 -11
  57. package/lib/components/eventBooking/components/Provider/OrderProductModal/index.js +11 -26
  58. package/lib/components/eventBooking/components/Provider/Resource/index.js +12 -7
  59. package/lib/components/eventBooking/components/Provider/SelectHolderModal.js +2 -0
  60. package/lib/components/eventBooking/components/bookingDetailModal/index.js +21 -5
  61. package/lib/components/eventBooking/components/progressBar/index.js +8 -4
  62. package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.js +8 -0
  63. package/lib/components/eventBooking/index.js +0 -8
  64. package/lib/components/eventBooking/locales.d.ts +33 -3
  65. package/lib/components/eventBooking/locales.js +36 -6
  66. package/lib/components/shoppingCart/components/Cart/Product.js +2 -2
  67. package/package.json +4 -4
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { TUpdateDisabledCartItem } from './types';
2
3
  interface CartItem {
3
4
  _id: string;
4
5
  [key: string]: any;
@@ -27,11 +28,13 @@ interface CartContextType {
27
28
  addHolderToCartItem: (holderItem: any) => void;
28
29
  cartDataHolderList: any;
29
30
  addNoteToCartItem: (cartItem: CartItem) => void;
30
- updateDisabledCartItem: (params: Array<{
31
- relation_id: number;
32
- product_id: number;
33
- type: string;
34
- }>) => void;
31
+ updateDisabledCartItem: TUpdateDisabledCartItem;
32
+ getWithoutCartItemsHolderNames: () => Array<string>;
33
+ checkBeforeAddToCartResquest: any;
34
+ checkBeforeAddToCart: () => Promise<{
35
+ result: boolean;
36
+ num: number;
37
+ }>;
35
38
  }
36
39
  interface CartProviderProps {
37
40
  children: React.ReactNode;
@@ -8,19 +8,20 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
9
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
10
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
- function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
12
11
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
12
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
13
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
14
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
15
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
17
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
- import React, { createContext, useMemo, useState } from 'react';
17
+ import React, { createContext, useMemo, useRef, useState } from 'react';
19
18
  import dayjs from 'dayjs';
20
19
  import { getUniqueId } from '@pisell/utils';
21
20
  import { useSales } from "../../../businessModel/SalesModel";
22
- import "./serve";
21
+ import { checkBeforeAddToCartApi } from "./serve";
23
22
  import { useCustomer } from "../Customer";
23
+ import { useRequest } from 'ahooks';
24
+ import { formatValues } from "../Checkout/utils";
24
25
  var defaultState = {
25
26
  cartItems: [],
26
27
  currentCartItem: null
@@ -40,7 +41,7 @@ export var CartProvider = function CartProvider(_ref) {
40
41
  _useState2 = _slicedToArray(_useState, 2),
41
42
  openCart = _useState2[0],
42
43
  setOpen = _useState2[1];
43
- _objectDestructuringEmpty(hooks);
44
+ var checkRef = useRef(null);
44
45
  var cartData = useMemo(function () {
45
46
  return data.cartData || defaultState;
46
47
  }, [data]);
@@ -180,6 +181,12 @@ export var CartProvider = function CartProvider(_ref) {
180
181
  /**
181
182
  * 使用holder直接创建购物车
182
183
  */
184
+ /**
185
+ * @description: 使用holder直接创建购物车
186
+ * @param {any} holderItem holder信息
187
+ * @return {*}
188
+ * @Author: xiangfeng.xue
189
+ */
183
190
  var createCartItemFromHolder = function createCartItemFromHolder(holderItem) {
184
191
  var _data$resourceData;
185
192
  var cartItem = {
@@ -192,39 +199,88 @@ export var CartProvider = function CartProvider(_ref) {
192
199
  setCurrentCartItem(cartItem);
193
200
  return cartItem;
194
201
  };
202
+ var checkBeforeAddToCartResquest = useRequest(checkBeforeAddToCartApi, {
203
+ manual: true,
204
+ onSuccess: function onSuccess(res) {
205
+ var _res$data;
206
+ if ((_res$data = res.data) !== null && _res$data !== void 0 && _res$data.length) {
207
+ var _res$data2;
208
+ var isUnavailable = checkCartItemIsUnavailable(res.data, checkRef.current.cartItem);
209
+ // 检测当前商品是否不可用
210
+ checkRef.current.callback({
211
+ result: isUnavailable ? false : true,
212
+ num: isUnavailable ? (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.length : 0
213
+ });
214
+ } else {
215
+ checkRef.current.callback({
216
+ result: true
217
+ });
218
+ }
219
+ }
220
+ });
195
221
 
196
222
  /**
197
- * 将商品加入购物车
223
+ * @title: 商品加入购物车前进行校验
224
+ * @description:
225
+ * @Author: xiangfeng.xue
198
226
  */
199
- var addToCart = function addToCart() {
227
+ var checkBeforeAddToCart = function checkBeforeAddToCart() {
228
+ return new Promise(function (resolve) {
229
+ var _cartData = getCurrentData().cartData;
230
+ var newCartItem = createCartItemData() || {};
231
+ var params = formatValues({
232
+ cartData: {
233
+ cartItems: [].concat(_toConsumableArray(_cartData.cartItems || []), [newCartItem])
234
+ }
235
+ });
236
+ checkRef.current = {
237
+ callback: function callback(res) {
238
+ resolve(res);
239
+ checkRef.current = null;
240
+ },
241
+ cartItem: newCartItem
242
+ };
243
+ checkBeforeAddToCartResquest.runAsync(params);
244
+ });
245
+ };
246
+
247
+ /**
248
+ * @title: 构建当前商品的完整购物车数据
249
+ * @description:
250
+ * @return {*} Object | null
251
+ * @Author: xiangfeng.xue
252
+ */
253
+ var createCartItemData = function createCartItemData() {
200
254
  var _cartData = getCurrentData().cartData;
201
- var _cartData$currentCart = _cartData.currentCartItem,
202
- _id = _cartData$currentCart._id,
203
- _cartData$currentCart2 = _cartData$currentCart.eventItem,
204
- eventItem = _cartData$currentCart2 === void 0 ? {} : _cartData$currentCart2,
205
- _cartData$currentCart3 = _cartData$currentCart.holderItem,
206
- holderItem = _cartData$currentCart3 === void 0 ? {} : _cartData$currentCart3;
207
255
  if (_cartData.currentCartItem) {
208
256
  var _eventItem$eventDetai, _eventItem$eventDetai2, _eventItem$eventDetai3, _eventItem$eventDetai4, _startDateInfo$times, _startDateInfo$times$, _eventItem$eventDetai5, _eventItem$eventDetai6, _endDateInfo$times, _endDateInfo$times$sl, _endDateInfo$times$sl2;
209
- var bookingOptionData = eventItem === null || eventItem === void 0 ? void 0 : (_eventItem$eventDetai = eventItem.eventDetail) === null || _eventItem$eventDetai === void 0 ? void 0 : (_eventItem$eventDetai2 = _eventItem$eventDetai.bookingOptionItem) === null || _eventItem$eventDetai2 === void 0 ? void 0 : _eventItem$eventDetai2._originData;
257
+ var _ref2 = _cartData.currentCartItem || {},
258
+ _id = _ref2._id,
259
+ _ref2$eventItem = _ref2.eventItem,
260
+ _eventItem = _ref2$eventItem === void 0 ? {} : _ref2$eventItem,
261
+ _ref2$holderItem = _ref2.holderItem,
262
+ _holderItem = _ref2$holderItem === void 0 ? {} : _ref2$holderItem;
263
+ var bookingOptionData = _eventItem === null || _eventItem === void 0 ? void 0 : (_eventItem$eventDetai = _eventItem.eventDetail) === null || _eventItem$eventDetai === void 0 ? void 0 : (_eventItem$eventDetai2 = _eventItem$eventDetai.bookingOptionItem) === null || _eventItem$eventDetai2 === void 0 ? void 0 : _eventItem$eventDetai2._originData;
210
264
  // 活动开始日期相关信息
211
- var startDateInfo = eventItem === null || eventItem === void 0 ? void 0 : (_eventItem$eventDetai3 = eventItem.eventDetail) === null || _eventItem$eventDetai3 === void 0 ? void 0 : (_eventItem$eventDetai4 = _eventItem$eventDetai3.selectDate) === null || _eventItem$eventDetai4 === void 0 ? void 0 : _eventItem$eventDetai4.startDateInfo;
265
+ var startDateInfo = _eventItem === null || _eventItem === void 0 ? void 0 : (_eventItem$eventDetai3 = _eventItem.eventDetail) === null || _eventItem$eventDetai3 === void 0 ? void 0 : (_eventItem$eventDetai4 = _eventItem$eventDetai3.selectDate) === null || _eventItem$eventDetai4 === void 0 ? void 0 : _eventItem$eventDetai4.startDateInfo;
212
266
  var startTime = startDateInfo === null || startDateInfo === void 0 ? void 0 : (_startDateInfo$times = startDateInfo.times) === null || _startDateInfo$times === void 0 ? void 0 : (_startDateInfo$times$ = _startDateInfo$times[0]) === null || _startDateInfo$times$ === void 0 ? void 0 : _startDateInfo$times$.start_at;
213
- var endDateInfo = eventItem === null || eventItem === void 0 ? void 0 : (_eventItem$eventDetai5 = eventItem.eventDetail) === null || _eventItem$eventDetai5 === void 0 ? void 0 : (_eventItem$eventDetai6 = _eventItem$eventDetai5.selectDate) === null || _eventItem$eventDetai6 === void 0 ? void 0 : _eventItem$eventDetai6.endDateInfo;
267
+ var endDateInfo = _eventItem === null || _eventItem === void 0 ? void 0 : (_eventItem$eventDetai5 = _eventItem.eventDetail) === null || _eventItem$eventDetai5 === void 0 ? void 0 : (_eventItem$eventDetai6 = _eventItem$eventDetai5.selectDate) === null || _eventItem$eventDetai6 === void 0 ? void 0 : _eventItem$eventDetai6.endDateInfo;
214
268
  var endTime = endDateInfo === null || endDateInfo === void 0 ? void 0 : (_endDateInfo$times = endDateInfo.times) === null || _endDateInfo$times === void 0 ? void 0 : (_endDateInfo$times$sl = _endDateInfo$times.slice(-1)) === null || _endDateInfo$times$sl === void 0 ? void 0 : (_endDateInfo$times$sl2 = _endDateInfo$times$sl[0]) === null || _endDateInfo$times$sl2 === void 0 ? void 0 : _endDateInfo$times$sl2.end_at;
269
+ var originTotal = Number((bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.original_price) || '');
215
270
  var newCartItem = {
216
271
  _id: _id,
217
- id: eventItem.id,
218
- name: eventItem.title,
272
+ id: _eventItem.id,
273
+ name: _eventItem.title,
219
274
  price: bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.price,
220
275
  total: bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.price,
221
- origin_total: bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.original_price,
276
+ // 排除原始价格为0的场景
277
+ origin_total: isNaN(originTotal) || originTotal === 0 ? undefined : bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.original_price,
222
278
  num: 1,
223
- image: eventItem.image,
279
+ image: _eventItem.image,
224
280
  isShowNote: true,
225
281
  note: '',
226
- holder_title: holderItem.name,
227
- holder_id: holderItem.id,
282
+ holder_title: _holderItem.name,
283
+ holder_id: _holderItem.id,
228
284
  symbol: appUtils === null || appUtils === void 0 ? void 0 : appUtils.getSymbolic(),
229
285
  start_date: (startDateInfo === null || startDateInfo === void 0 ? void 0 : startDateInfo.date) || '',
230
286
  start_time: startTime ? dayjs(startTime || '').format('HH:mm') : '',
@@ -244,26 +300,40 @@ export var CartProvider = function CartProvider(_ref) {
244
300
  product_option_item: [],
245
301
  product_variant_id: 0
246
302
  },
247
- relation_id: eventItem.id,
303
+ relation_id: _eventItem.id,
248
304
  start_date: (startDateInfo === null || startDateInfo === void 0 ? void 0 : startDateInfo.date) || null,
249
305
  start_time: startTime ? dayjs(startTime || '').format('HH:mm') : null,
250
306
  select_date: (startDateInfo === null || startDateInfo === void 0 ? void 0 : startDateInfo.date) || null,
251
307
  metadata: {
252
308
  end_date_text: (endDateInfo === null || endDateInfo === void 0 ? void 0 : endDateInfo.date) || null,
253
309
  end_time_text: endTime ? dayjs(endTime || '').format('HH:mm') : null
254
- }
310
+ },
311
+ event_unique_identifier: _id // 传递给接口用于商品可用性检测的比对
255
312
  })
256
313
  };
257
- if (holderItem !== null && holderItem !== void 0 && holderItem._originData) {
314
+
315
+ if (_holderItem !== null && _holderItem !== void 0 && _holderItem._originData) {
258
316
  var _getUserInfo, _holderItem$_originDa, _holderItem$_originDa2, _holderItem$_originDa3;
259
317
  newCartItem._originData.holder = {
260
318
  customer_id: (_getUserInfo = getUserInfo()) === null || _getUserInfo === void 0 ? void 0 : _getUserInfo.id,
261
- form_id: holderItem === null || holderItem === void 0 ? void 0 : (_holderItem$_originDa = holderItem._originData) === null || _holderItem$_originDa === void 0 ? void 0 : _holderItem$_originDa.form_id,
262
- form_record: holderItem !== null && holderItem !== void 0 && (_holderItem$_originDa2 = holderItem._originData) !== null && _holderItem$_originDa2 !== void 0 && _holderItem$_originDa2.form_record_id ? [holderItem === null || holderItem === void 0 ? void 0 : (_holderItem$_originDa3 = holderItem._originData) === null || _holderItem$_originDa3 === void 0 ? void 0 : _holderItem$_originDa3.form_record_id] : null
319
+ form_id: _holderItem === null || _holderItem === void 0 ? void 0 : (_holderItem$_originDa = _holderItem._originData) === null || _holderItem$_originDa === void 0 ? void 0 : _holderItem$_originDa.form_id,
320
+ form_record: _holderItem !== null && _holderItem !== void 0 && (_holderItem$_originDa2 = _holderItem._originData) !== null && _holderItem$_originDa2 !== void 0 && _holderItem$_originDa2.form_record_id ? [_holderItem === null || _holderItem === void 0 ? void 0 : (_holderItem$_originDa3 = _holderItem._originData) === null || _holderItem$_originDa3 === void 0 ? void 0 : _holderItem$_originDa3.form_record_id] : null
263
321
  };
264
322
  }
323
+ return newCartItem;
324
+ }
325
+ return null;
326
+ };
327
+
328
+ /**
329
+ * 将商品加入购物车
330
+ */
331
+ var addToCart = function addToCart() {
332
+ var _cartData = getCurrentData().cartData;
333
+ var newCartItem = createCartItemData();
334
+ if (_cartData.currentCartItem && newCartItem) {
265
335
  setCartData({
266
- cartItems: [].concat(_toConsumableArray(_cartData.cartItems), [newCartItem]),
336
+ cartItems: [].concat(_toConsumableArray(_cartData.cartItems || []), [newCartItem]),
267
337
  currentCartItem: null
268
338
  });
269
339
  }
@@ -302,6 +372,12 @@ export var CartProvider = function CartProvider(_ref) {
302
372
  cartItems: newCartItems
303
373
  });
304
374
  };
375
+
376
+ /**
377
+ * @description: 给购物车中商品增加备注
378
+ * @param {CartItem} cartItem
379
+ * @Author: xiangfeng.xue
380
+ */
305
381
  var addNoteToCartItem = function addNoteToCartItem(cartItem) {
306
382
  var newCartItems = getCurrentData().cartData.cartItems.map(function (item) {
307
383
  if (item._id === cartItem._id) {
@@ -380,9 +456,9 @@ export var CartProvider = function CartProvider(_ref) {
380
456
  * @Author: xiangfeng.xue
381
457
  */
382
458
  var getCurrentHolderItem = function getCurrentHolderItem() {
383
- var _ref2 = getCurrentData().holderData || {},
384
- selectedHolderItems = _ref2.selectedHolderItems,
385
- currentHolderItem = _ref2.currentHolderItem;
459
+ var _ref3 = getCurrentData().holderData || {},
460
+ selectedHolderItems = _ref3.selectedHolderItems,
461
+ currentHolderItem = _ref3.currentHolderItem;
386
462
  if (selectedHolderItems !== null && selectedHolderItems !== void 0 && selectedHolderItems.length) {
387
463
  var newCurrentHolderItem = currentHolderItem;
388
464
  var result = selectedHolderItems.find(function (v) {
@@ -396,8 +472,37 @@ export var CartProvider = function CartProvider(_ref) {
396
472
  return null;
397
473
  };
398
474
 
475
+ /**
476
+ * @title: 检测购物车中商品是否是不可用状态
477
+ * @description: 250210:本期只关注库存的检测结果
478
+ * @param {any} list
479
+ * @param {CartItem} item
480
+ * @return {*} boolean
481
+ * @Author: xiangfeng.xue
482
+ */
483
+ var checkCartItemIsUnavailable = function checkCartItemIsUnavailable(list, item) {
484
+ var _item$_originData, _item$_originData$pro, _item$_originData2, _item$_originData3;
485
+ var productId = (_item$_originData = item._originData) === null || _item$_originData === void 0 ? void 0 : (_item$_originData$pro = _item$_originData.product) === null || _item$_originData$pro === void 0 ? void 0 : _item$_originData$pro.product_id;
486
+ var relationId = (_item$_originData2 = item._originData) === null || _item$_originData2 === void 0 ? void 0 : _item$_originData2.relation_id;
487
+ var eventUniqueIdentifier = (_item$_originData3 = item._originData) === null || _item$_originData3 === void 0 ? void 0 : _item$_originData3.event_unique_identifier;
488
+ // 根据检测项过滤检测结果
489
+ return list.find(function (res) {
490
+ var _res$details;
491
+ var checkType = ['available_capacity'];
492
+ var isTypeIncludes = ((_res$details = res.details) === null || _res$details === void 0 ? void 0 : _res$details.find(function (v) {
493
+ var _checkType$includes;
494
+ return (_checkType$includes = checkType.includes) === null || _checkType$includes === void 0 ? void 0 : _checkType$includes.call(checkType, v.type || '');
495
+ })) !== undefined;
496
+ if (isTypeIncludes) {
497
+ return res.product_id === productId && res.relation_id === relationId && res.event_unique_identifier === eventUniqueIdentifier;
498
+ }
499
+ return false;
500
+ }) !== undefined;
501
+ };
502
+
399
503
  /**
400
504
  * @title: 更新购物车中不可用的商品
505
+ * @discription
401
506
  * @return {void}
402
507
  * @Author: xiangfeng.xue
403
508
  */
@@ -405,13 +510,9 @@ export var CartProvider = function CartProvider(_ref) {
405
510
  var currentCartItems = getCurrentData().cartData.cartItems || [];
406
511
  if (list !== null && list !== void 0 && list.length && currentCartItems.length) {
407
512
  var newCartItems = currentCartItems.map(function (item) {
408
- var _item$_originData, _item$_originData$pro, _item$_originData2;
409
- var productId = (_item$_originData = item._originData) === null || _item$_originData === void 0 ? void 0 : (_item$_originData$pro = _item$_originData.product) === null || _item$_originData$pro === void 0 ? void 0 : _item$_originData$pro.product_id;
410
- var relationId = (_item$_originData2 = item._originData) === null || _item$_originData2 === void 0 ? void 0 : _item$_originData2.relation_id;
513
+ var isUnavailable = checkCartItemIsUnavailable(list, item);
411
514
  // 需要判定活动id和商品id是否都匹配
412
- if (list.find(function (v) {
413
- return v.product_id === productId && v.relation_id === relationId;
414
- }) !== undefined) {
515
+ if (isUnavailable) {
415
516
  item.disabled = true;
416
517
  // item.show_delete = true;
417
518
  } else {
@@ -424,6 +525,23 @@ export var CartProvider = function CartProvider(_ref) {
424
525
  });
425
526
  }
426
527
  };
528
+
529
+ /**
530
+ * @description: 获取没有商品信息的holder名称
531
+ * @return {Array<string>}
532
+ * @Author: xiangfeng.xue
533
+ */
534
+ var getWithoutCartItemsHolderNames = function getWithoutCartItemsHolderNames() {
535
+ var _cartDataHolderList$f;
536
+ var list = [];
537
+ cartDataHolderList === null || cartDataHolderList === void 0 ? void 0 : (_cartDataHolderList$f = cartDataHolderList.forEach) === null || _cartDataHolderList$f === void 0 ? void 0 : _cartDataHolderList$f.call(cartDataHolderList, function (v) {
538
+ var _v$children;
539
+ if (!(v !== null && v !== void 0 && (_v$children = v.children) !== null && _v$children !== void 0 && _v$children.length)) {
540
+ list.push((v === null || v === void 0 ? void 0 : v.name) || '');
541
+ }
542
+ });
543
+ return list;
544
+ };
427
545
  var contextValue = {
428
546
  createCartItem: createCartItem,
429
547
  createCartItemFromEvent: createCartItemFromEvent,
@@ -444,7 +562,10 @@ export var CartProvider = function CartProvider(_ref) {
444
562
  addHolderToCartItem: addHolderToCartItem,
445
563
  cartDataHolderList: cartDataHolderList,
446
564
  addNoteToCartItem: addNoteToCartItem,
447
- updateDisabledCartItem: updateDisabledCartItem
565
+ updateDisabledCartItem: updateDisabledCartItem,
566
+ getWithoutCartItemsHolderNames: getWithoutCartItemsHolderNames,
567
+ checkBeforeAddToCartResquest: checkBeforeAddToCartResquest,
568
+ checkBeforeAddToCart: checkBeforeAddToCart
448
569
  };
449
570
  return /*#__PURE__*/React.createElement(CartContext.Provider, {
450
571
  value: contextValue
@@ -1 +1,2 @@
1
1
  export declare const getResourceListApi: () => Promise<any>;
2
+ export declare const checkBeforeAddToCartApi: (data: any) => Promise<any>;
@@ -3,4 +3,9 @@ import { request } from "../../../utils";
3
3
  // 获取资源列表
4
4
  export var getResourceListApi = function getResourceListApi() {
5
5
  return request.getRequest().get('/api/resource/list', {});
6
+ };
7
+
8
+ // 加购物车前置接口
9
+ export var checkBeforeAddToCartApi = function checkBeforeAddToCartApi(data) {
10
+ return request.getRequest().post('/h5/eventbookingv2/order/check-config', data);
6
11
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * available_capacity(容量)、deadline_day(截止日期)、future_day(预定天数)
3
+ */
4
+ export declare type TCartItemUnavailableType = 'available_capacity' | 'deadline_day' | 'future_day';
5
+ /**
6
+ * 商品不可用原因
7
+ */
8
+ export interface IUnavailableResult {
9
+ event_unique_identifier: number;
10
+ relation_id: number;
11
+ product_id: number;
12
+ details?: Array<{
13
+ type: TCartItemUnavailableType;
14
+ }>;
15
+ }
16
+ /**
17
+ * 更新失效的购物车商品
18
+ */
19
+ export declare type TUpdateDisabledCartItem = (list: Array<IUnavailableResult>) => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -47,6 +47,9 @@ export var CheckoutProvider = function CheckoutProvider(_ref) {
47
47
  manual: true,
48
48
  onSuccess: function onSuccess(res) {
49
49
  onPay(res.data);
50
+ checkoutCallback.current({
51
+ success: true
52
+ });
50
53
  }
51
54
  });
52
55
 
@@ -84,15 +84,15 @@ var Pet = function Pet(props) {
84
84
  * @Date: 2024-01-27 14:22
85
85
  */
86
86
  var petForm = useMemo(function () {
87
- var _state$bookingConfig2;
87
+ var _state$bookingConfig2, _holder$form, _holder$form2;
88
88
  var _holder = (_state$bookingConfig2 = state.bookingConfig) === null || _state$bookingConfig2 === void 0 ? void 0 : _state$bookingConfig2.holder;
89
89
  if (!_holder) {
90
90
  return null;
91
91
  }
92
92
  return _objectSpread(_objectSpread(_objectSpread({}, _holder), _holder === null || _holder === void 0 ? void 0 : _holder.form), {}, {
93
93
  options: [],
94
- form_id: _holder.form.id,
95
- field: _holder.form.form_field,
94
+ form_id: _holder === null || _holder === void 0 ? void 0 : (_holder$form = _holder.form) === null || _holder$form === void 0 ? void 0 : _holder$form.id,
95
+ field: _holder === null || _holder === void 0 ? void 0 : (_holder$form2 = _holder.form) === null || _holder$form2 === void 0 ? void 0 : _holder$form2.form_field,
96
96
  relation_type: 'appointment_booking',
97
97
  form_record: []
98
98
  });
@@ -237,4 +237,4 @@ export declare const updateAppointmentServicePrice: (state: any, { start_date, e
237
237
  * @Author: WangHan
238
238
  * @Date: 2024-12-24 11:32
239
239
  */
240
- export declare const updateServicePrice: (state: any) => never[] | Promise<any>;
240
+ export declare const updateServicePrice: (state: any) => Promise<any> | never[];
@@ -9,7 +9,7 @@ import { PosProps } from './const';
9
9
  */
10
10
  declare const _default: ({ className, onChange, onClose, formatAmount, isMobile, net, client }: {
11
11
  className?: string | undefined;
12
- onChange?: ((status: "success" | "page" | "print" | "fail" | "mark_tx_processed", params?: string | {
12
+ onChange?: ((status: "page" | "success" | "fail", params?: string | {
13
13
  [keys: string]: unknown;
14
14
  } | undefined, other?: any) => void) | undefined;
15
15
  onClose: () => void;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { PosProps, RouteType } from './const';
3
- declare const App: ({ action, api, device_number, terminal, tyroUrl, tyroVersion, onChangeParams, isMobile, channel, formatAmount, ...props }: Omit<PosProps, "mode" | "type" | "getApi"> & {
3
+ declare const App: ({ action, api, device_number, terminal, tyroUrl, tyroVersion, onChangeParams, isMobile, channel, formatAmount, ...props }: Omit<PosProps, "type" | "mode" | "getApi"> & {
4
4
  action: RouteType;
5
5
  device_number: string | number;
6
6
  api: ReturnType<PosProps['getApi']>;
@@ -11,7 +11,7 @@ import './device.less';
11
11
  declare const _default: ({ api, onChange, onClose, className, device_number, isMobile, net, client, formatAmount, }: {
12
12
  api: PayProps['api'];
13
13
  className?: string | undefined;
14
- onChange?: ((status: "page" | "success" | "print" | "fail" | "mark_tx_processed", params?: string | {
14
+ onChange?: ((status: "success" | "page" | "print" | "fail" | "mark_tx_processed", params?: string | {
15
15
  [keys: string]: unknown;
16
16
  } | undefined, other?: any) => void) | undefined;
17
17
  onClose: () => void;
@@ -174,7 +174,7 @@ export declare const updateCustom: (payload: {
174
174
  export declare const updateStatus: (status: 'loading' | 'warn' | 'fail' | 'success' | 'question') => {
175
175
  type: EActionTypes;
176
176
  payload: {
177
- status: "success" | "warn" | "loading" | "fail" | "question";
177
+ status: "loading" | "success" | "warn" | "fail" | "question";
178
178
  };
179
179
  };
180
180
  /**
@@ -308,7 +308,7 @@ export declare const backUpFree: (payload: Partial<State>) => {
308
308
  net?: boolean | undefined;
309
309
  component?: string | undefined;
310
310
  form?: string | undefined;
311
- status?: "success" | "warn" | "loading" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
311
+ status?: "loading" | "success" | "warn" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
312
312
  warn?: string | undefined;
313
313
  steps?: {
314
314
  /** 用于重置当前步骤 */