@pisell/private-materials 3.0.201 → 3.0.202

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 (129) 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 +142 -142
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +12 -27
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +18 -33
  11. package/es/components/booking/addons/model.d.ts +1 -1
  12. package/es/components/booking/components/footer/amount.js +5 -4
  13. package/es/components/booking/components/footer/utils.js +49 -29
  14. package/es/components/booking/forms/model.d.ts +1 -1
  15. package/es/components/booking/info/Provider.d.ts +0 -0
  16. package/es/components/booking/info/Provider.js +54 -0
  17. package/es/components/booking/info/clientVariant/vertical/index.js +93 -7
  18. package/es/components/booking/info/main.js +10 -9
  19. package/es/components/booking/info/pet/ChangePetModal/index.js +38 -23
  20. package/es/components/booking/info/service/addService/index.js +70 -99
  21. package/es/components/booking/info/service/addService/utils.d.ts +1 -0
  22. package/es/components/booking/info/service/addService/utils.js +55 -3
  23. package/es/components/booking/info/service/editService/BookingList/index.d.ts +5 -0
  24. package/es/components/booking/info/service/editService/BookingList/index.js +39 -0
  25. package/es/components/booking/info/service/editService/EditTabs/index.d.ts +3 -0
  26. package/es/components/booking/info/service/editService/EditTabs/index.js +35 -0
  27. package/es/components/booking/info/service/editService/index.js +234 -142
  28. package/es/components/booking/info/service/serve.d.ts +10 -0
  29. package/es/components/booking/info/service/serve.js +28 -0
  30. package/es/components/booking/info/service/serviceManager/distributeDiscount.d.ts +11 -0
  31. package/es/components/booking/info/service/serviceManager/distributeDiscount.js +55 -0
  32. package/es/components/booking/info/service/serviceManager/index.d.ts +20 -0
  33. package/es/components/booking/info/service/serviceManager/index.js +277 -0
  34. package/es/components/booking/info/service/serviceManager/utils.d.ts +0 -0
  35. package/es/components/booking/info/service/serviceManager/utils.js +0 -0
  36. package/es/components/booking/info/service2/Group/utils.d.ts +14 -0
  37. package/es/components/booking/info/service2/Group/utils.js +146 -0
  38. package/es/components/booking/info/service2/Lists.js +27 -33
  39. package/es/components/booking/info/service2/index.d.ts +4 -1
  40. package/es/components/booking/info/service2/index.js +5 -6
  41. package/es/components/booking/info/service2/status.js +1 -1
  42. package/es/components/booking/info/service2/utils.d.ts +95 -3
  43. package/es/components/booking/info/service2/utils.js +676 -52
  44. package/es/components/booking/info/utils.d.ts +11 -0
  45. package/es/components/booking/info/utils.js +24 -0
  46. package/es/components/booking/locales.d.ts +6 -0
  47. package/es/components/booking/locales.js +9 -3
  48. package/es/components/booking/model.d.ts +1 -0
  49. package/es/components/booking/notes/index.d.ts +1 -1
  50. package/es/components/booking/notes/model.d.ts +1 -1
  51. package/es/components/booking/payments/index.d.ts +1 -1
  52. package/es/components/booking/payments/model.d.ts +1 -1
  53. package/es/components/booking/utils.js +5 -4
  54. package/es/components/eftpos/hooks.d.ts +4 -4
  55. package/es/components/eftposPay/amount.d.ts +1 -1
  56. package/es/components/eftposPay/component/step/index.d.ts +6 -6
  57. package/es/components/eftposPay/component/step/step.d.ts +4 -4
  58. package/es/components/eftposPay/hooks.d.ts +1 -1
  59. package/es/components/eftposPay/store/index.d.ts +1 -1
  60. package/es/components/eftposPay/tyro/hooks.d.ts +2 -2
  61. package/es/components/eftposPay/windcave/helper.d.ts +1 -1
  62. package/es/components/schedules/index.d.ts +1 -1
  63. package/es/components/schedules/model.d.ts +1 -1
  64. package/es/components/shoppingCart/components/Cart/Product.js +11 -39
  65. package/es/components/shoppingCart/components/Render/index.js +8 -7
  66. package/es/components/shoppingCart/components/SelectHolderModal/index.js +12 -4
  67. package/es/components/shoppingCart/hooks/useClearCart.js +10 -5
  68. package/es/components/shoppingCart/type.d.ts +1 -1
  69. package/es/components/shoppingCart/utils.js +2 -5
  70. package/lib/components/booking/addons/model.d.ts +1 -1
  71. package/lib/components/booking/components/footer/amount.js +4 -3
  72. package/lib/components/booking/components/footer/utils.js +28 -28
  73. package/lib/components/booking/forms/model.d.ts +1 -1
  74. package/lib/components/booking/info/Provider.d.ts +0 -0
  75. package/lib/components/booking/info/Provider.js +0 -0
  76. package/lib/components/booking/info/clientVariant/vertical/index.js +51 -1
  77. package/lib/components/booking/info/main.js +6 -5
  78. package/lib/components/booking/info/pet/ChangePetModal/index.js +33 -23
  79. package/lib/components/booking/info/service/addService/index.js +50 -92
  80. package/lib/components/booking/info/service/addService/utils.d.ts +1 -0
  81. package/lib/components/booking/info/service/addService/utils.js +27 -0
  82. package/lib/components/booking/info/service/editService/BookingList/index.d.ts +5 -0
  83. package/lib/components/booking/info/service/editService/BookingList/index.js +55 -0
  84. package/lib/components/booking/info/service/editService/EditTabs/index.d.ts +3 -0
  85. package/lib/components/booking/info/service/editService/EditTabs/index.js +75 -0
  86. package/lib/components/booking/info/service/editService/index.js +309 -234
  87. package/lib/components/booking/info/service/serve.d.ts +10 -0
  88. package/lib/components/booking/info/service/serve.js +7 -2
  89. package/lib/components/booking/info/service/serviceManager/distributeDiscount.d.ts +11 -0
  90. package/lib/components/booking/info/service/serviceManager/distributeDiscount.js +70 -0
  91. package/lib/components/booking/info/service/serviceManager/index.d.ts +20 -0
  92. package/lib/components/booking/info/service/serviceManager/index.js +207 -0
  93. package/lib/components/booking/info/service/serviceManager/utils.d.ts +0 -0
  94. package/lib/components/booking/info/service/serviceManager/utils.js +0 -0
  95. package/lib/components/booking/info/service2/Group/utils.d.ts +14 -0
  96. package/lib/components/booking/info/service2/Group/utils.js +142 -0
  97. package/lib/components/booking/info/service2/Lists.js +14 -12
  98. package/lib/components/booking/info/service2/index.d.ts +4 -1
  99. package/lib/components/booking/info/service2/index.js +5 -5
  100. package/lib/components/booking/info/service2/status.js +1 -1
  101. package/lib/components/booking/info/service2/utils.d.ts +95 -3
  102. package/lib/components/booking/info/service2/utils.js +401 -48
  103. package/lib/components/booking/info/utils.d.ts +11 -0
  104. package/lib/components/booking/info/utils.js +35 -0
  105. package/lib/components/booking/locales.d.ts +6 -0
  106. package/lib/components/booking/locales.js +9 -3
  107. package/lib/components/booking/model.d.ts +1 -0
  108. package/lib/components/booking/notes/index.d.ts +1 -1
  109. package/lib/components/booking/notes/model.d.ts +1 -1
  110. package/lib/components/booking/payments/index.d.ts +1 -1
  111. package/lib/components/booking/payments/model.d.ts +1 -1
  112. package/lib/components/booking/utils.js +3 -4
  113. package/lib/components/eftpos/hooks.d.ts +4 -4
  114. package/lib/components/eftposPay/amount.d.ts +1 -1
  115. package/lib/components/eftposPay/component/step/index.d.ts +6 -6
  116. package/lib/components/eftposPay/component/step/step.d.ts +4 -4
  117. package/lib/components/eftposPay/hooks.d.ts +1 -1
  118. package/lib/components/eftposPay/store/index.d.ts +1 -1
  119. package/lib/components/eftposPay/tyro/hooks.d.ts +2 -2
  120. package/lib/components/eftposPay/windcave/helper.d.ts +1 -1
  121. package/lib/components/schedules/index.d.ts +1 -1
  122. package/lib/components/schedules/model.d.ts +1 -1
  123. package/lib/components/shoppingCart/components/Cart/Product.js +6 -22
  124. package/lib/components/shoppingCart/components/Render/index.js +6 -10
  125. package/lib/components/shoppingCart/components/SelectHolderModal/index.js +12 -4
  126. package/lib/components/shoppingCart/hooks/useClearCart.js +4 -9
  127. package/lib/components/shoppingCart/type.d.ts +1 -1
  128. package/lib/components/shoppingCart/utils.js +2 -8
  129. package/package.json +3 -3
@@ -30,16 +30,16 @@ import useEngineContext from "../../../../../hooks/useEngineContext";
30
30
  import { getProductDetail } from "../serve";
31
31
  import { getIsBundleOrCombination } from "../../utils";
32
32
  import DateRange from "../../dateRange";
33
- import { getProductExtend } from "./utils";
34
- import { formatProductListByCategory, getProductTotalPrice, request } from "../../../utils";
35
- import { isDayBooking, isAppointment, getDayProducts, holderId } from "../../service2/utils";
33
+ import { formatProductListByCategory, request } from "../../../utils";
34
+ import { isDayBooking, getDayProducts, holderId } from "../../service2/utils";
36
35
  import { inputDateCol, appointmentTypes } from "../../service2/status";
37
36
  import { locales, getUniqueId } from '@pisell/utils';
38
37
  import { useMemoizedFn, useUpdateEffect } from 'ahooks';
39
38
  import debounce from 'lodash/debounce';
39
+ import { useService } from "../serviceManager";
40
40
  var shopList = [2886, 4422, 5538, 6930, 6814, 6813, 6812, 6087, 6303, 6080, 6978, 7386, 6848, 6305];
41
41
  var Info = function Info(props) {
42
- var _state$service3, _state2, _state$service6, _state$service8, _state$service8$cache, _state3;
42
+ var _state$client2, _state$client2$value, _state$service2, _state2, _state$service5, _state$service7, _state$service7$cache, _state3;
43
43
  var onEdit = props.onEdit,
44
44
  drawerProps = props.drawerProps,
45
45
  renderMode = props.renderMode;
@@ -65,7 +65,14 @@ var Info = function Info(props) {
65
65
  state = state || (props === null || props === void 0 ? void 0 : props.state);
66
66
  dispatch = dispatch || (props === null || props === void 0 ? void 0 : props.dispatch);
67
67
  request.setRequest(context.appHelper.utils.request);
68
-
68
+ var _useService = useService({
69
+ renderMode: renderMode,
70
+ onEdit: onEdit,
71
+ state: state,
72
+ dispatch: dispatch
73
+ }),
74
+ createBookingData = _useService.createBookingData,
75
+ createBooking = _useService.createBooking;
69
76
  /**
70
77
  * @title: 是否是跨日预约
71
78
  * @description:
@@ -109,6 +116,20 @@ var Info = function Info(props) {
109
116
  };
110
117
  }, [debouncedHandleResize]);
111
118
 
119
+ /**
120
+ * @title: 客户id
121
+ * @description:
122
+ * @param {*} useMemo
123
+ * @return {*}
124
+ * @Author: WangHan
125
+ * @Date: 2024-12-24 10:33
126
+ */
127
+ var customerId = useMemo(function () {
128
+ var _state$client, _state$client$value;
129
+ if (!isDay) return undefined;
130
+ return ((_state$client = state.client) === null || _state$client === void 0 ? void 0 : (_state$client$value = _state$client.value) === null || _state$client$value === void 0 ? void 0 : _state$client$value.id) || 1;
131
+ }, [(_state$client2 = state.client) === null || _state$client2 === void 0 ? void 0 : (_state$client2$value = _state$client2.value) === null || _state$client2$value === void 0 ? void 0 : _state$client2$value.id, isDay]);
132
+
112
133
  /**
113
134
  * @title: 如果商品只有一个, 则自动设置默认商品
114
135
  * @description:
@@ -152,7 +173,8 @@ var Info = function Info(props) {
152
173
  product = list[0];
153
174
  _context.next = 13;
154
175
  return getProductDetail(product.id, {
155
- schedule_date: state.date.value.format('YYYY-MM-DD')
176
+ schedule_date: state.date.value.format('YYYY-MM-DD'),
177
+ customer_id: customerId
156
178
  });
157
179
  case 13:
158
180
  detail = _context.sent;
@@ -226,6 +248,7 @@ var Info = function Info(props) {
226
248
  dayParams = {}; // 跨日预约
227
249
  if (isDay) {
228
250
  dayParams.extension_type = ['normal', 'product_appointment'];
251
+ dayParams.customer_id = customerId;
229
252
  }
230
253
  _context2.next = 9;
231
254
  return state.apis.getServices(_objectSpread(_objectSpread({
@@ -297,7 +320,6 @@ var Info = function Info(props) {
297
320
  if (isDay) {
298
321
  isEject = type === 'detail' || item.bundle_group_count > 0 || item.option_group_count > 0 || item.is_variant > 0;
299
322
  }
300
- var lock = false;
301
323
  state.action({
302
324
  type: 'pisell1.handleOpenProductModal',
303
325
  data: {
@@ -309,93 +331,43 @@ var Info = function Info(props) {
309
331
  variant: isDay ? true : false,
310
332
  package: true
311
333
  },
312
- is_eject: isEject ? 1 : 0
334
+ is_eject: isEject ? 1 : 0,
335
+ customer_id: customerId
313
336
  },
314
- callback: function callback(e) {
315
- var _cacheItem$_extend, _cacheItem$_extend$ot;
316
- // 防止选择商品弹窗多次触发callback
317
- if (lock) {
318
- return;
319
- }
320
- lock = true;
321
-
322
- // 2秒后解除
323
- setTimeout(function () {
324
- lock = false;
325
- }, 2000);
326
- var cacheItem = _objectSpread(_objectSpread({}, item), {}, {
327
- product_id: item.id,
328
- _id: getUniqueId(),
329
- _key: e.key,
330
- _extend: {
331
- start_date: state.date.value,
332
- quantity: 1,
333
- price: item.price,
334
- product_name: item.title,
335
- other: JSON.parse(JSON.stringify(e))
336
- },
337
- new: 1
338
- });
339
-
340
- // 跨日预约
341
- if (isDay) {
342
- cacheItem._extend.holder_id = holderId(state);
343
- cacheItem._extend.end_date = state.date.end_date;
344
- cacheItem._extend.sub_type = 'days';
345
- }
346
- var _total = getProductTotalPrice(cacheItem);
347
-
348
- // 如果有多规格,则更新商品的单价
349
- if (cacheItem !== null && cacheItem !== void 0 && (_cacheItem$_extend = cacheItem._extend) !== null && _cacheItem$_extend !== void 0 && (_cacheItem$_extend$ot = _cacheItem$_extend.other) !== null && _cacheItem$_extend$ot !== void 0 && _cacheItem$_extend$ot.product_variant_id) {
350
- var _cacheItem$_extend2, _cacheItem$_extend2$o;
351
- cacheItem._extend.price = Number((_cacheItem$_extend2 = cacheItem._extend) === null || _cacheItem$_extend2 === void 0 ? void 0 : (_cacheItem$_extend2$o = _cacheItem$_extend2.other) === null || _cacheItem$_extend2$o === void 0 ? void 0 : _cacheItem$_extend2$o.price);
352
- }
353
-
354
- // 用于折扣 可修改
355
- cacheItem._extend.total = _total;
356
- // 用于储存原价
357
- cacheItem._extend.origin_total = _total;
358
- var _isEdit = !!state.service.cacheItem;
359
- if (_isEdit) {
360
- var _state$service$cacheI;
361
- cacheItem._id = (_state$service$cacheI = state.service.cacheItem) === null || _state$service$cacheI === void 0 ? void 0 : _state$service$cacheI._id;
362
- cacheItem.new = 0;
363
- }
364
- // 渲染到当前位置模式时,默认无资源 时间默认取顶部设置的时间
365
- if (renderMode === 'current') {
366
- // cacheItem._extend.resource = 0;
367
- cacheItem.currentDefaultTime = state.date.value.format('HH:mm');
368
- }
369
- cacheItem._extend = getProductExtend({
370
- cacheItem: cacheItem,
371
- state: state
372
- });
373
-
374
- // 普通商品
375
- if (isDay && !isAppointment(item, state)) {
376
- cacheItem.autoClose = !_isEdit;
377
- } else if (state.renderType === 'eventBooking') {
378
- cacheItem.autoClose = false;
379
- } else {
380
- var _state$service;
381
- cacheItem.autoClose = !_isEdit && (cacheItem._extend.resource || cacheItem._extend.resource === 0 || (((_state$service = state.service) === null || _state$service === void 0 ? void 0 : _state$service.resourcesOrigin) || []).length === 1);
337
+ callback: function () {
338
+ var _callback = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(e) {
339
+ var data;
340
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
341
+ while (1) switch (_context3.prev = _context3.next) {
342
+ case 0:
343
+ _context3.next = 2;
344
+ return createBookingData({
345
+ product: _objectSpread(_objectSpread({}, item), {}, {
346
+ _params: e
347
+ })
348
+ });
349
+ case 2:
350
+ data = _context3.sent;
351
+ // 创建预约
352
+ createBooking({
353
+ booking: data
354
+ });
355
+ case 4:
356
+ case "end":
357
+ return _context3.stop();
358
+ }
359
+ }, _callee3);
360
+ }));
361
+ function callback(_x4) {
362
+ return _callback.apply(this, arguments);
382
363
  }
383
- dispatch({
384
- type: 'setService',
385
- payload: {
386
- editModal: true,
387
- cacheItem: cacheItem,
388
- addModal: !cacheItem.autoClose,
389
- changeService: false
390
- }
391
- });
392
- onEdit === null || onEdit === void 0 ? void 0 : onEdit(cacheItem);
393
- }
364
+ return callback;
365
+ }()
394
366
  });
395
367
  });
396
368
  var renderList = useMemo(function () {
397
- var _state$service2;
398
- var _list = ((_state$service2 = state.service) === null || _state$service2 === void 0 ? void 0 : _state$service2.services) || [];
369
+ var _state$service;
370
+ var _list = ((_state$service = state.service) === null || _state$service === void 0 ? void 0 : _state$service.services) || [];
399
371
 
400
372
  // 跨日预约
401
373
  if (isDay) {
@@ -412,26 +384,25 @@ var Info = function Info(props) {
412
384
  return formatProductListByCategory(_list, search ? function (item) {
413
385
  return isIncludes(item.title);
414
386
  } : undefined);
415
- }, [search, (_state$service3 = state.service) === null || _state$service3 === void 0 ? void 0 : _state$service3.services, (_state2 = state) === null || _state2 === void 0 ? void 0 : _state2.activeCartId]);
416
- console.log('state.service.renderList', renderList);
387
+ }, [search, (_state$service2 = state.service) === null || _state$service2 === void 0 ? void 0 : _state$service2.services, (_state2 = state) === null || _state2 === void 0 ? void 0 : _state2.activeCartId]);
417
388
  var isService = useMemo(function () {
418
- var _state$service4, _state$service4$value;
419
- return ((_state$service4 = state.service) === null || _state$service4 === void 0 ? void 0 : (_state$service4$value = _state$service4.value) === null || _state$service4$value === void 0 ? void 0 : _state$service4$value.length) > 0;
389
+ var _state$service3, _state$service3$value;
390
+ return ((_state$service3 = state.service) === null || _state$service3 === void 0 ? void 0 : (_state$service3$value = _state$service3.value) === null || _state$service3$value === void 0 ? void 0 : _state$service3$value.length) > 0;
420
391
  }, [state.service.value]);
421
392
  useEffect(function () {
422
- var _context$appHelper$ut, _context$appHelper$ut2, _context$appHelper$ut3, _context$appHelper$ut4, _context$appHelper$ut5, _state$service5, _state$service5$value;
393
+ var _context$appHelper$ut, _context$appHelper$ut2, _context$appHelper$ut3, _context$appHelper$ut4, _context$appHelper$ut5, _state$service4, _state$service4$value;
423
394
  // Salonip 不要这个
424
395
  if (shopList.includes((_context$appHelper$ut = context.appHelper.utils.store) === null || _context$appHelper$ut === void 0 ? void 0 : (_context$appHelper$ut2 = _context$appHelper$ut.getState) === null || _context$appHelper$ut2 === void 0 ? void 0 : (_context$appHelper$ut3 = _context$appHelper$ut2.call(_context$appHelper$ut)) === null || _context$appHelper$ut3 === void 0 ? void 0 : (_context$appHelper$ut4 = _context$appHelper$ut3.global) === null || _context$appHelper$ut4 === void 0 ? void 0 : (_context$appHelper$ut5 = _context$appHelper$ut4.globalConfig) === null || _context$appHelper$ut5 === void 0 ? void 0 : _context$appHelper$ut5.id) || state.closeAutoOpenService) {
425
396
  return;
426
397
  }
427
398
 
428
399
  // 如果弹窗打开,并且是创建, 则自动打开选择服务的弹窗
429
- if (state.modalOpen && !state.bookingId && state.renderType !== 'eventBooking' && ((_state$service5 = state.service) === null || _state$service5 === void 0 ? void 0 : (_state$service5$value = _state$service5.value) === null || _state$service5$value === void 0 ? void 0 : _state$service5$value.length) === 0) {
400
+ if (state.modalOpen && !state.bookingId && state.renderType !== 'eventBooking' && ((_state$service4 = state.service) === null || _state$service4 === void 0 ? void 0 : (_state$service4$value = _state$service4.value) === null || _state$service4$value === void 0 ? void 0 : _state$service4$value.length) === 0) {
430
401
  setTimeout(function () {
431
402
  handleSelectService();
432
403
  }, 10);
433
404
  }
434
- }, [state.modalOpen, state.bookingId, (_state$service6 = state.service) === null || _state$service6 === void 0 ? void 0 : _state$service6.value]);
405
+ }, [state.modalOpen, state.bookingId, (_state$service5 = state.service) === null || _state$service5 === void 0 ? void 0 : _state$service5.value]);
435
406
  var showAddButton = useMemo(function () {
436
407
  return !state.disabledEdit && !state.channelDisabledEdit;
437
408
  }, [state.disabledEdit, state.channelDisabledEdit]);
@@ -511,7 +482,7 @@ var Info = function Info(props) {
511
482
  return inputDateCol(showDate, isTerminal);
512
483
  }, [state.isTerminalDayBookingPage, isDay, holderId(state)]);
513
484
  return useMemo(function () {
514
- var _state$service7, _state$service7$cache;
485
+ var _state$service6, _state$service6$cache;
515
486
  var header = /*#__PURE__*/React.createElement("div", {
516
487
  className: 'pisell-lowcode__booking-service-header',
517
488
  ref: headerRef
@@ -552,7 +523,7 @@ var Info = function Info(props) {
552
523
  }
553
524
  }, header, content);
554
525
  }
555
- return /*#__PURE__*/React.createElement(React.Fragment, null, ((_state$service7 = state.service) === null || _state$service7 === void 0 ? void 0 : (_state$service7$cache = _state$service7.cacheItem) === null || _state$service7$cache === void 0 ? void 0 : _state$service7$cache.autoClose) && /*#__PURE__*/React.createElement(Skeleton, {
526
+ return /*#__PURE__*/React.createElement(React.Fragment, null, ((_state$service6 = state.service) === null || _state$service6 === void 0 ? void 0 : (_state$service6$cache = _state$service6.cacheItem) === null || _state$service6$cache === void 0 ? void 0 : _state$service6$cache.autoClose) && /*#__PURE__*/React.createElement(Skeleton, {
556
527
  loading: true,
557
528
  active: true,
558
529
  round: true
@@ -572,6 +543,6 @@ var Info = function Info(props) {
572
543
  },
573
544
  header: header
574
545
  }, drawerProps || {}), content));
575
- }, [(_state$service8 = state.service) === null || _state$service8 === void 0 ? void 0 : (_state$service8$cache = _state$service8.cacheItem) === null || _state$service8$cache === void 0 ? void 0 : _state$service8$cache.autoClose, addButton, state.service.addModal, locales, search, renderList, state.amountSymbol, state.renderType, (_state3 = state) === null || _state3 === void 0 ? void 0 : _state3.activeCartId, headerHeight, holderId(state)]);
546
+ }, [(_state$service7 = state.service) === null || _state$service7 === void 0 ? void 0 : (_state$service7$cache = _state$service7.cacheItem) === null || _state$service7$cache === void 0 ? void 0 : _state$service7$cache.autoClose, addButton, state.service.addModal, locales, search, renderList, state.amountSymbol, state.renderType, (_state3 = state) === null || _state3 === void 0 ? void 0 : _state3.activeCartId, headerHeight, holderId(state)]);
576
547
  };
577
548
  export default Info;
@@ -68,3 +68,4 @@ export declare const getProductExtend: ({ cacheItem, state }: any) => any;
68
68
  * @Date: 2024-12-09 15:53
69
69
  */
70
70
  export declare const getResourceTitle: ({ state, id }: any) => any;
71
+ export declare const getMultiDay: ({ start_date, end_date, state, cacheItem, }: any) => Promise<any>;
@@ -1,4 +1,7 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
2
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
7
  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; }
@@ -15,7 +18,8 @@ import { getServeStartTime, getDuration, getEndDate, flexibleObj, sliceDayIntoFi
15
18
  import dayjs from 'dayjs';
16
19
  import { locales } from '@pisell/utils';
17
20
  import AlertTriangle from '@pisell/icon/es/AlertTriangle';
18
- import { isDayBooking } from "../../service2/utils";
21
+ import { isDayBooking, isDayBookingProduct, updateAppointmentServicePrice } from "../../service2/utils";
22
+ import { getMultiDayPrices } from "../../utils";
19
23
  export var getDurationProps = function getDurationProps(_ref) {
20
24
  var _currentResource$_ext;
21
25
  var cacheItem = _ref.cacheItem,
@@ -243,7 +247,7 @@ export var getProductExtend = function getProductExtend(_ref6) {
243
247
  state: state
244
248
  });
245
249
 
246
- // 生成数据
250
+ // 生成数据 时长 开始时间 资源
247
251
  var _extend = getServerItemExtend(state, cacheItem, timeObj);
248
252
 
249
253
  // 格式化资源列表
@@ -282,4 +286,52 @@ export var getResourceTitle = function getResourceTitle(_ref7) {
282
286
  return d.id === id;
283
287
  });
284
288
  return (resource === null || resource === void 0 ? void 0 : resource.main_field) || '-';
285
- };
289
+ };
290
+ export var getMultiDay = /*#__PURE__*/function () {
291
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref8) {
292
+ var start_date, end_date, state, cacheItem, _cacheItem, _yield$updateAppointm, multiDayPrices, price;
293
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
294
+ while (1) switch (_context.prev = _context.next) {
295
+ case 0:
296
+ start_date = _ref8.start_date, end_date = _ref8.end_date, state = _ref8.state, cacheItem = _ref8.cacheItem;
297
+ _cacheItem = cacheItem || state.service.cacheItem; // 跨日预约报价单
298
+ if (!isDayBookingProduct(_cacheItem, state)) {
299
+ _context.next = 11;
300
+ break;
301
+ }
302
+ _context.next = 5;
303
+ return updateAppointmentServicePrice(state, {
304
+ start_date: start_date,
305
+ end_date: end_date,
306
+ product_id: _cacheItem.product_id
307
+ });
308
+ case 5:
309
+ _yield$updateAppointm = _context.sent;
310
+ multiDayPrices = _yield$updateAppointm.multiDayPrices;
311
+ price = _yield$updateAppointm.price;
312
+ // // 获取商品总价
313
+ // let _total = getProductTotalPrice(_cacheItem);
314
+
315
+ // // 用于折扣 可修改
316
+ // _cacheItem._extend.total = _total;
317
+
318
+ // // 用于储存原价
319
+ // _cacheItem._extend.origin_total = _total;
320
+
321
+ _cacheItem._extend.multiDayPrices = getMultiDayPrices(multiDayPrices || []);
322
+ if (!(multiDayPrices !== null && multiDayPrices !== void 0 && multiDayPrices.length)) {
323
+ _cacheItem._extend.price = price;
324
+ }
325
+ return _context.abrupt("return", _cacheItem);
326
+ case 11:
327
+ return _context.abrupt("return", _cacheItem);
328
+ case 12:
329
+ case "end":
330
+ return _context.stop();
331
+ }
332
+ }, _callee);
333
+ }));
334
+ return function getMultiDay(_x) {
335
+ return _ref9.apply(this, arguments);
336
+ };
337
+ }();
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const BookingList: ({ items }: {
3
+ items: any[];
4
+ }) => React.JSX.Element;
5
+ export default BookingList;
@@ -0,0 +1,39 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import React, { useContext } from 'react';
3
+ import { ProductCard } from '@pisell/materials';
4
+ import { Context } from "../../../model";
5
+ import useSelectPet from "../../../service2/hooks/useSelectPet";
6
+ import { formatProducts } from "../../../service2/utils";
7
+ var BookingList = function BookingList(_ref) {
8
+ var items = _ref.items;
9
+ var _useContext = useContext(Context),
10
+ state = _useContext.state,
11
+ dispatch = _useContext.dispatch;
12
+ var _useSelectPet = useSelectPet(state),
13
+ holderLists = _useSelectPet.holderLists;
14
+ var productParams = {
15
+ hideAddBtn: state.isTerminalDayBookingPage,
16
+ isShowNote: false,
17
+ isShowPackageNote: false,
18
+ holders: holderLists,
19
+ isEdit: false,
20
+ disabledEdit: true
21
+ };
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ style: {
24
+ display: 'flex',
25
+ flexWrap: 'wrap',
26
+ gap: 16
27
+ }
28
+ }, formatProducts(items, state, false).map(function (item, index) {
29
+ return /*#__PURE__*/React.createElement("div", {
30
+ style: {
31
+ width: '100%'
32
+ }
33
+ }, /*#__PURE__*/React.createElement(ProductCard, _extends({
34
+ key: item._id,
35
+ dataSource: item
36
+ }, productParams)));
37
+ }));
38
+ };
39
+ export default BookingList;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Demo: React.FC;
3
+ export default Demo;
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { Segmented } from 'antd';
3
+ import { locales } from '@pisell/utils';
4
+ import List from '@pisell/icon/es/List';
5
+ import Edit05 from '@pisell/icon/es/Edit05';
6
+ var Demo = function Demo(_ref) {
7
+ var value = _ref.value,
8
+ onChange = _ref.onChange;
9
+ return /*#__PURE__*/React.createElement("div", {
10
+ className: "",
11
+ style: {
12
+ padding: '24px 32px 16px',
13
+ margin: '-24px -32px 0',
14
+ background: '#fff',
15
+ position: 'sticky',
16
+ top: 60,
17
+ zIndex: 2
18
+ }
19
+ }, /*#__PURE__*/React.createElement(Segmented, {
20
+ options: [{
21
+ label: locales.getText('pisell2.text.edit-booking'),
22
+ value: 'batch_edit',
23
+ icon: /*#__PURE__*/React.createElement(Edit05, null)
24
+ }, {
25
+ label: locales.getText('pisell2.text.booking-list'),
26
+ value: 'booking_list',
27
+ icon: /*#__PURE__*/React.createElement(List, null)
28
+ }],
29
+ block: true,
30
+ value: value,
31
+ onChange: onChange,
32
+ size: "large"
33
+ }));
34
+ };
35
+ export default Demo;