@pisell/private-materials 6.4.70 → 6.4.72

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 (111) 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 +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +7 -7
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +7 -7
  11. package/es/components/booking/addons/model.d.ts +1 -10
  12. package/es/components/booking/components/footer/amount.js +25 -8
  13. package/es/components/booking/components/footer/utils.d.ts +7 -0
  14. package/es/components/booking/components/footer/utils.js +46 -22
  15. package/es/components/booking/forms/model.d.ts +1 -10
  16. package/es/components/booking/hooks/useQuotation.js +69 -21
  17. package/es/components/booking/info/model.d.ts +1 -10
  18. package/es/components/booking/info/service/Lists.js +1 -1
  19. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  20. package/es/components/booking/info/service/serve.d.ts +14 -0
  21. package/es/components/booking/info/service/serve.js +22 -1
  22. package/es/components/booking/info/service2/Group/utils.js +2 -0
  23. package/es/components/booking/info/service2/utils.d.ts +1 -33
  24. package/es/components/booking/info/service2/utils.js +75 -29
  25. package/es/components/booking/info/utils.js +5 -0
  26. package/es/components/booking/info2/service/addService/index.js +146 -89
  27. package/es/components/booking/info2/service/addService/utils.d.ts +9 -1
  28. package/es/components/booking/info2/service/addService/utils.js +78 -9
  29. package/es/components/booking/info2/service/editService/index.js +235 -55
  30. package/es/components/booking/info2/utilsByBooking.js +14 -5
  31. package/es/components/booking/model.d.ts +1 -9
  32. package/es/components/booking/notes/model.d.ts +1 -10
  33. package/es/components/booking/payments/model.d.ts +1 -10
  34. package/es/components/booking/utils.d.ts +9 -1
  35. package/es/components/booking/utils.js +23 -0
  36. package/es/components/eftposPay/hooks.d.ts +1 -1
  37. package/es/components/eftposPay/store/index.d.ts +2 -2
  38. package/es/components/pay/toC/model.d.ts +1 -9
  39. package/es/components/schedules/model.d.ts +1 -9
  40. package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.d.ts +18 -0
  41. package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.js +119 -0
  42. package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.less +0 -0
  43. package/es/components/ticketBooking/components/addServiceVariant/addService.js +283 -138
  44. package/es/components/ticketBooking/components/ticketBooking/index.js +14 -11
  45. package/es/components/ticketBooking/hooks/pisellos/useProducts.js +106 -32
  46. package/es/components/ticketBooking/utils/index.d.ts +6 -1
  47. package/es/components/ticketBooking/utils/index.js +21 -3
  48. package/es/components/wallet/Detail/model.d.ts +1 -13
  49. package/es/components/wallet/DiscountCard/model.d.ts +1 -14
  50. package/es/components/wallet/PointCard/model.d.ts +1 -13
  51. package/es/components/wallet/RechargeableCard/model.d.ts +1 -29
  52. package/es/components/wallet/Voucher/model.d.ts +1 -13
  53. package/es/components/wallet/model.d.ts +1 -9
  54. package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.d.ts +9 -0
  55. package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.js +355 -0
  56. package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.less +8 -0
  57. package/es/pro/multiDayTimeSelect/index.d.ts +3 -0
  58. package/es/pro/multiDayTimeSelect/index.js +1 -0
  59. package/es/pro/multiDayTimeSelect/types.d.ts +28 -0
  60. package/es/pro/multiDayTimeSelect/types.js +1 -0
  61. package/lib/components/booking/addons/model.d.ts +1 -10
  62. package/lib/components/booking/components/footer/amount.js +23 -6
  63. package/lib/components/booking/components/footer/utils.d.ts +7 -0
  64. package/lib/components/booking/components/footer/utils.js +23 -11
  65. package/lib/components/booking/forms/model.d.ts +1 -10
  66. package/lib/components/booking/hooks/useQuotation.js +45 -13
  67. package/lib/components/booking/info/model.d.ts +1 -10
  68. package/lib/components/booking/info/service/Lists.js +1 -1
  69. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  70. package/lib/components/booking/info/service/serve.d.ts +14 -0
  71. package/lib/components/booking/info/service/serve.js +5 -0
  72. package/lib/components/booking/info/service2/Group/utils.js +2 -0
  73. package/lib/components/booking/info/service2/utils.d.ts +1 -33
  74. package/lib/components/booking/info/service2/utils.js +24 -10
  75. package/lib/components/booking/info/utils.js +4 -0
  76. package/lib/components/booking/info2/service/addService/index.js +22 -3
  77. package/lib/components/booking/info2/service/addService/utils.d.ts +9 -1
  78. package/lib/components/booking/info2/service/addService/utils.js +47 -9
  79. package/lib/components/booking/info2/service/editService/index.js +191 -31
  80. package/lib/components/booking/info2/utilsByBooking.js +19 -8
  81. package/lib/components/booking/model.d.ts +1 -9
  82. package/lib/components/booking/notes/model.d.ts +1 -10
  83. package/lib/components/booking/payments/model.d.ts +1 -10
  84. package/lib/components/booking/utils.d.ts +9 -1
  85. package/lib/components/booking/utils.js +15 -0
  86. package/lib/components/eftposPay/hooks.d.ts +1 -1
  87. package/lib/components/eftposPay/store/index.d.ts +2 -2
  88. package/lib/components/pay/toC/model.d.ts +1 -9
  89. package/lib/components/schedules/model.d.ts +1 -9
  90. package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.d.ts +18 -0
  91. package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.js +118 -0
  92. package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.less +0 -0
  93. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +185 -119
  94. package/lib/components/ticketBooking/components/ticketBooking/index.js +0 -16
  95. package/lib/components/ticketBooking/hooks/pisellos/useProducts.js +54 -9
  96. package/lib/components/ticketBooking/utils/index.d.ts +6 -1
  97. package/lib/components/ticketBooking/utils/index.js +11 -1
  98. package/lib/components/wallet/Detail/model.d.ts +1 -13
  99. package/lib/components/wallet/DiscountCard/model.d.ts +1 -14
  100. package/lib/components/wallet/PointCard/model.d.ts +1 -13
  101. package/lib/components/wallet/RechargeableCard/model.d.ts +1 -29
  102. package/lib/components/wallet/Voucher/model.d.ts +1 -13
  103. package/lib/components/wallet/model.d.ts +1 -9
  104. package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.d.ts +9 -0
  105. package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.js +304 -0
  106. package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.less +8 -0
  107. package/lib/pro/multiDayTimeSelect/index.d.ts +3 -0
  108. package/lib/pro/multiDayTimeSelect/index.js +35 -0
  109. package/lib/pro/multiDayTimeSelect/types.d.ts +28 -0
  110. package/lib/pro/multiDayTimeSelect/types.js +17 -0
  111. package/package.json +4 -4
@@ -55,6 +55,10 @@ var import_utilsByBooking = require("../../utilsByBooking");
55
55
  var import_utils7 = require("../addService/utils");
56
56
  var import_noteModal = __toESM(require("../../../../../plus/noteModal"));
57
57
  var import_priceKeyboard = require("../../../../../pro/priceKeyboard");
58
+ var import_EditTabs = __toESM(require("../../../info/service/editService/EditTabs"));
59
+ var import_BookingList = __toESM(require("../../../info/service/editService/BookingList"));
60
+ var import_dayjs = __toESM(require("dayjs"));
61
+ var import_utils8 = require("../../../info/service2/Group/utils");
58
62
  var submitLock = false;
59
63
  var Info = (_, ref) => {
60
64
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I;
@@ -64,11 +68,14 @@ var Info = (_, ref) => {
64
68
  const useStartTime = import_antd.Form.useWatch("start_time", form);
65
69
  const useDuration = import_antd.Form.useWatch("duration", form);
66
70
  const useNote = import_antd.Form.useWatch("note", form);
71
+ const useStartDate = import_antd.Form.useWatch("start_date", form);
72
+ const useEndDate = import_antd.Form.useWatch("end_date", form);
67
73
  const { state, dispatch } = (0, import_react.useContext)(import_model.Context);
68
74
  const resourcesRef = (0, import_react.useRef)(null);
69
75
  const isChangeTotal = (0, import_react.useRef)(false);
70
76
  const [noteModalOpen, setNoteModalOpen] = (0, import_react.useState)(false);
71
77
  const [open, setOpen] = (0, import_react.useState)(false);
78
+ const [currentTab, setCurrentTab] = (0, import_react.useState)("batch_edit");
72
79
  (0, import_react.useEffect)(() => {
73
80
  window.openBookingEditModal = () => {
74
81
  setOpen(true);
@@ -123,6 +130,7 @@ var Info = (_, ref) => {
123
130
  }, [durationProps, import_utils.locales.locale]);
124
131
  const timeObj = (0, import_react.useMemo)(() => {
125
132
  const val2 = (0, import_utils7.getTimeObj)({
133
+ cacheItem: getCurrentCacheItem(),
126
134
  durationProps,
127
135
  useStartTime,
128
136
  currentResource,
@@ -187,7 +195,7 @@ var Info = (_, ref) => {
187
195
  form.setFieldsValue({ discount });
188
196
  };
189
197
  const onFinish = (values) => {
190
- var _a2, _b2, _c2, _d2;
198
+ var _a2, _b2, _c2, _d2, _e2;
191
199
  let isSuccess = (_a2 = resourcesRef.current) == null ? void 0 : _a2.check();
192
200
  if (isShowTimeAndResource && !isSuccess) {
193
201
  return;
@@ -212,9 +220,15 @@ var Info = (_, ref) => {
212
220
  },
213
221
  ...values
214
222
  };
215
- const { startDate, endDate } = (0, import_utils6.getServiceTimes)({ _extend });
216
- _extend.startDate = startDate;
217
- _extend.endDate = endDate;
223
+ if (isEditGroup) {
224
+ _extend.quantity = 1;
225
+ _extend.startDate = _extend == null ? void 0 : _extend.start_date;
226
+ _extend.endDate = _extend == null ? void 0 : _extend.end_date;
227
+ } else {
228
+ const { startDate, endDate } = (0, import_utils6.getServiceTimes)({ _extend });
229
+ _extend.startDate = startDate;
230
+ _extend.endDate = endDate;
231
+ }
218
232
  if (_extend.bundle_edit !== void 0) {
219
233
  _extend.bundle_edit = 1;
220
234
  }
@@ -222,19 +236,28 @@ var Info = (_, ref) => {
222
236
  _item._time = (/* @__PURE__ */ new Date()).getTime();
223
237
  _item._serviceKey = (0, import_utils3.genServiceKey)(_item);
224
238
  let _id = _item == null ? void 0 : _item._id;
225
- if (!_list.some((d) => d._id === _id)) {
226
- const detail = (0, import_utils3.addService)(_list, _item, state);
227
- _list = detail.list;
239
+ let groupId = (_c2 = _item == null ? void 0 : _item._extend) == null ? void 0 : _c2.groupId;
240
+ if (groupId) {
241
+ _list = _list.filter((d) => {
242
+ var _a3;
243
+ return ((_a3 = d._extend) == null ? void 0 : _a3.groupId) !== groupId;
244
+ });
245
+ _list = _list.concat((0, import_utils8.createBookingItemsByGroup)(_item, true));
228
246
  } else {
229
- if (isChangeTotal.current) {
230
- delete _item.discount_list;
247
+ if (!_list.some((d) => d._id === _id)) {
248
+ const detail = (0, import_utils3.addService)(_list, _item, state);
249
+ _list = detail.list;
250
+ } else {
251
+ if (isChangeTotal.current) {
252
+ delete _item.discount_list;
253
+ }
254
+ _list = _list.map((d) => d._id === _id ? { ..._item, new: 0 } : d);
231
255
  }
232
- _list = _list.map((d) => d._id === _id ? { ..._item, new: 0 } : d);
233
256
  }
234
257
  (0, import_utils6.deleteCacheParams)();
235
258
  console.log("_onFinish", _list);
236
259
  form.resetFields();
237
- if (!!((_c2 = state.service.cacheItem) == null ? void 0 : _c2.new)) {
260
+ if (!!((_d2 = state.service.cacheItem) == null ? void 0 : _d2.new)) {
238
261
  window.dispatchEvent(
239
262
  new CustomEvent("onAddNewService", {
240
263
  detail: {
@@ -243,7 +266,7 @@ var Info = (_, ref) => {
243
266
  })
244
267
  );
245
268
  }
246
- (_d2 = window.closeBookingEditModal) == null ? void 0 : _d2.call(window);
269
+ (_e2 = window.closeBookingEditModal) == null ? void 0 : _e2.call(window);
247
270
  dispatch({
248
271
  type: "setService",
249
272
  payload: {
@@ -270,6 +293,7 @@ var Info = (_, ref) => {
270
293
  (_cacheItem, open2, openProductDetail) => {
271
294
  console.timeEnd("handleChange");
272
295
  console.log("setEditDatasetEditData", _cacheItem, open2);
296
+ setCurrentTab("batch_edit");
273
297
  isChangeTotal.current = false;
274
298
  let cacheItem = _cacheItem || state.service.cacheItem;
275
299
  let values = cacheItem._extend;
@@ -277,9 +301,9 @@ var Info = (_, ref) => {
277
301
  console.log(startTime2, "startTime");
278
302
  form.resetFields();
279
303
  form.setFieldsValue(values);
280
- const endTime = performance.now();
281
- console.log(endTime - window.pp1, "打开商品5");
282
- console.log("执行时间", endTime - startTime2, values);
304
+ const endTime2 = performance.now();
305
+ console.log(endTime2 - window.pp1, "打开商品5");
306
+ console.log("执行时间", endTime2 - startTime2, values);
283
307
  setTimeout(() => {
284
308
  }, 20);
285
309
  if (openProductDetail) {
@@ -296,9 +320,10 @@ var Info = (_, ref) => {
296
320
  return cPrice !== oPrice;
297
321
  }, [useTotal, (_i = (_h = state.service.cacheItem) == null ? void 0 : _h._extend) == null ? void 0 : _i.origin_total]);
298
322
  const getResources = () => {
323
+ var _a2, _b2;
299
324
  let res = (0, import_utils7.formatResources)({
300
325
  cacheItem: getCurrentCacheItem(),
301
- resourcesOrigin: state.service.cacheItem._data.resourcesOrigin
326
+ resourcesOrigin: (_b2 = (_a2 = state.service.cacheItem) == null ? void 0 : _a2._data) == null ? void 0 : _b2.resourcesOrigin
302
327
  });
303
328
  dispatch({
304
329
  type: "setService",
@@ -482,6 +507,18 @@ var Info = (_, ref) => {
482
507
  }, [state.renderType, isNormalProduct]);
483
508
  const SelectTime = (_p = window.BaseMaterials) == null ? void 0 : _p.SelectTime;
484
509
  const isNoSpecAndPackage = (0, import_utilsByBooking.getIsNoSpecAndPackage)(state.service.cacheItem);
510
+ const items = (0, import_react.useMemo)(() => {
511
+ var _a2, _b2;
512
+ return ((_b2 = (_a2 = getCurrentCacheItem()) == null ? void 0 : _a2._extend) == null ? void 0 : _b2.items) || [];
513
+ }, [
514
+ getCurrentCacheItem(),
515
+ state.service.cacheItem,
516
+ currentResource,
517
+ useTotal
518
+ ]);
519
+ const isEditGroup = (0, import_react.useMemo)(() => {
520
+ return items.length;
521
+ }, [items]);
485
522
  const handleNoteConfirm = (noteValue) => {
486
523
  form.setFieldsValue({ note: noteValue });
487
524
  setNoteModalOpen(false);
@@ -564,16 +601,28 @@ var Info = (_, ref) => {
564
601
  /* @__PURE__ */ import_react.default.createElement(import_antd.Input.TextArea, { size: "large" })
565
602
  )) : null;
566
603
  }, [isReason]);
604
+ const DateCom = (position) => {
605
+ return /* @__PURE__ */ import_react.default.createElement(
606
+ import_antd.DatePicker,
607
+ {
608
+ className: "pisell-lowcode__booking-service-select-date",
609
+ disabledDate: (current) => (0, import_utils4.disabledDate)(current, position, state.date.value),
610
+ size: "large",
611
+ style: { width: "100%" },
612
+ format: state.locale === "en" ? "DD/MM/YYYY" : "YYYY-MM-DD"
613
+ }
614
+ );
615
+ };
567
616
  const startTime = (0, import_react.useMemo)(() => {
568
617
  var _a2, _b2, _c2, _d2;
569
618
  return /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
570
619
  import_antd.Form.Item,
571
620
  {
572
- label: import_utils.locales.getText("pisell2.text.start_time"),
573
- name: "start_time",
621
+ label: import_utils.locales.getText(isEditGroup ? "pisell2.text.start_date" : "pisell2.text.start_time"),
622
+ name: isEditGroup ? "start_date" : "start_time",
574
623
  rules: [{ required: true }]
575
624
  },
576
- SelectTime ? /* @__PURE__ */ import_react.default.createElement(
625
+ isEditGroup ? DateCom("start") : SelectTime ? /* @__PURE__ */ import_react.default.createElement(
577
626
  SelectTime,
578
627
  {
579
628
  slice: (_d2 = (_c2 = (_b2 = (_a2 = state.bookingConfig) == null ? void 0 : _a2.config) == null ? void 0 : _b2.basic) == null ? void 0 : _c2.service_time) == null ? void 0 : _d2.value,
@@ -586,10 +635,23 @@ var Info = (_, ref) => {
586
635
  }
587
636
  ) : null
588
637
  ));
589
- }, [SelectTime, (_y = (_x = (_w = (_v = state.bookingConfig) == null ? void 0 : _v.config) == null ? void 0 : _w.basic) == null ? void 0 : _x.service_time) == null ? void 0 : _y.value]);
638
+ }, [SelectTime, (_y = (_x = (_w = (_v = state.bookingConfig) == null ? void 0 : _v.config) == null ? void 0 : _w.basic) == null ? void 0 : _x.service_time) == null ? void 0 : _y.value, isEditGroup]);
639
+ const endTime = (0, import_react.useMemo)(() => {
640
+ if (!isEditGroup) {
641
+ return null;
642
+ }
643
+ return /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
644
+ import_antd.Form.Item,
645
+ {
646
+ label: import_utils.locales.getText("pisell2.text.end_date"),
647
+ name: "end_date"
648
+ },
649
+ DateCom("end")
650
+ ));
651
+ }, [isEditGroup]);
590
652
  const duration = (0, import_react.useMemo)(() => {
591
653
  console.log("render form duration");
592
- return /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
654
+ return /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: isEditGroup ? 24 : 12 }, /* @__PURE__ */ import_react.default.createElement(
593
655
  import_antd.Form.Item,
594
656
  {
595
657
  label: import_utils.locales.getText("pisell2.text.duration"),
@@ -598,7 +660,7 @@ var Info = (_, ref) => {
598
660
  },
599
661
  /* @__PURE__ */ import_react.default.createElement(import_duration.default, { ...durationProps, timeObj })
600
662
  ));
601
- }, [durationProps, timeObj]);
663
+ }, [durationProps, timeObj, isEditGroup]);
602
664
  const resource = (0, import_react.useMemo)(() => {
603
665
  console.log("render form resource");
604
666
  return /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { noStyle: true, name: "resource" }, /* @__PURE__ */ import_react.default.createElement(
@@ -717,6 +779,91 @@ var Info = (_, ref) => {
717
779
  setVal(false);
718
780
  }
719
781
  }, [isShowTimeAndResource]);
782
+ const groupDom = (0, import_react.useMemo)(() => {
783
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, !!isEditGroup && /* @__PURE__ */ import_react.default.createElement(
784
+ import_EditTabs.default,
785
+ {
786
+ value: currentTab,
787
+ onChange: (e) => {
788
+ console.log(e);
789
+ setCurrentTab(e);
790
+ }
791
+ }
792
+ ), /* @__PURE__ */ import_react.default.createElement(
793
+ "div",
794
+ {
795
+ className: "",
796
+ style: {
797
+ display: currentTab === "booking_list" ? "block" : "none"
798
+ }
799
+ },
800
+ /* @__PURE__ */ import_react.default.createElement(import_BookingList.default, { items })
801
+ ));
802
+ }, [isEditGroup, currentTab, items]);
803
+ const updateMultiDay = async ({ start_date, end_date, duration: duration2 }) => {
804
+ const cacheItem = await (0, import_utils7.getMultiDay)({
805
+ start_date,
806
+ end_date,
807
+ state,
808
+ cacheItem: getCurrentCacheItem()
809
+ });
810
+ if (duration2 !== void 0) {
811
+ cacheItem._extend.duration = duration2;
812
+ }
813
+ cacheItem._extend.items = (0, import_utils8.createBookingItemsByGroup)(cacheItem);
814
+ cacheItem._extend = {
815
+ ...cacheItem._extend,
816
+ ...(0, import_utils8.getGroupTotalPrice)(cacheItem._extend.items)
817
+ };
818
+ dispatch({
819
+ type: "setService",
820
+ payload: {
821
+ cacheItem
822
+ }
823
+ });
824
+ let fieldsValues = {
825
+ total: cacheItem._extend.total
826
+ };
827
+ form.setFieldsValue(fieldsValues);
828
+ };
829
+ const onValuesChange = (changedValues) => {
830
+ if (isEditGroup) {
831
+ if (changedValues == null ? void 0 : changedValues.duration) {
832
+ const end_date = (0, import_dayjs.default)(useStartDate).add(
833
+ changedValues == null ? void 0 : changedValues.duration,
834
+ "day"
835
+ );
836
+ form.setFieldsValue({
837
+ end_date
838
+ });
839
+ return updateMultiDay({
840
+ start_date: useStartDate,
841
+ end_date,
842
+ duration: changedValues == null ? void 0 : changedValues.duration
843
+ });
844
+ }
845
+ if (changedValues == null ? void 0 : changedValues.start_date) {
846
+ const startDate = (0, import_dayjs.default)(changedValues == null ? void 0 : changedValues.start_date);
847
+ const endDate = (0, import_dayjs.default)(useEndDate);
848
+ if (startDate.isAfter(endDate)) {
849
+ return form.setFieldsValue({
850
+ duration: void 0,
851
+ end_date: void 0
852
+ });
853
+ }
854
+ }
855
+ if ((changedValues == null ? void 0 : changedValues.start_date) || (changedValues == null ? void 0 : changedValues.end_date)) {
856
+ const cacheItem = getCurrentCacheItem();
857
+ const duration2 = (0, import_utils6.getDays)(cacheItem, "days");
858
+ const start_date = (changedValues == null ? void 0 : changedValues.start_date) || useStartDate;
859
+ const end_date = (changedValues == null ? void 0 : changedValues.end_date) || useEndDate;
860
+ updateMultiDay({ start_date, end_date, duration: duration2 });
861
+ return form.setFieldsValue({
862
+ duration: duration2
863
+ });
864
+ }
865
+ }
866
+ };
720
867
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
721
868
  import_drawer.default,
722
869
  {
@@ -739,16 +886,29 @@ var Info = (_, ref) => {
739
886
  });
740
887
  }
741
888
  },
742
- /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__booking-service-body-edit" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form, { layout: "vertical", form, onFinish }, /* @__PURE__ */ import_react.default.createElement(import_antd.Row, { style: { width: "100%" }, gutter: [16, 0] }, productName, price, reason, val && isShowTimeAndResource && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, startTime, duration, resource, capacity, hiddenQuantity), isNormalProduct && quantity), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { noStyle: true, name: "note" }, noteModalOpen && /* @__PURE__ */ import_react.default.createElement(
743
- import_noteModal.default,
889
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__booking-service-body-edit" }, groupDom, /* @__PURE__ */ import_react.default.createElement(
890
+ import_antd.Form,
744
891
  {
745
- open: noteModalOpen,
746
- value: form.getFieldValue("note"),
747
- onConfirm: handleNoteConfirm,
748
- onDelete: handleNoteDelete,
749
- onCancel: handleNoteCancel
750
- }
751
- ))), footer)
892
+ layout: "vertical",
893
+ form,
894
+ onFinish,
895
+ onValuesChange,
896
+ style: {
897
+ display: currentTab === "batch_edit" ? "block" : "none"
898
+ }
899
+ },
900
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Row, { style: { width: "100%" }, gutter: [16, 0] }, productName, price, reason, val && isShowTimeAndResource && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, startTime, endTime, duration, resource, capacity, hiddenQuantity), isNormalProduct && quantity),
901
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { noStyle: true, name: "note" }, noteModalOpen && /* @__PURE__ */ import_react.default.createElement(
902
+ import_noteModal.default,
903
+ {
904
+ open: noteModalOpen,
905
+ value: form.getFieldValue("note"),
906
+ onConfirm: handleNoteConfirm,
907
+ onDelete: handleNoteDelete,
908
+ onCancel: handleNoteCancel
909
+ }
910
+ ))
911
+ ), footer)
752
912
  ));
753
913
  };
754
914
  var editService_default = (0, import_react.forwardRef)(Info);
@@ -43,6 +43,7 @@ var import_dayjs = __toESM(require("dayjs"));
43
43
  var import_utils = require("@pisell/utils");
44
44
  var import_utils2 = require("../utils");
45
45
  var import_utils3 = require("../../ticketBooking/components/addServiceVariant/utils");
46
+ var import_utils4 = require("./service/addService/utils");
46
47
  var getUseableEventCount = (eventList, current) => {
47
48
  return (eventList || []).reduce((pre, event) => {
48
49
  return pre - event.pax;
@@ -219,13 +220,20 @@ var getServiceStartTimeAndEndTime = (state, cacheItem, timeObj) => {
219
220
  }
220
221
  const appointmentTimingPreference = getAppointmentTimingPreference(state);
221
222
  let lastServer = (0, import_utils2.getLastServer)((_a = state.service.value) == null ? void 0 : _a.filter((item) => !item.isCustomItem));
223
+ const getDuration = (cacheItem2) => {
224
+ var _a2;
225
+ if ((0, import_utils4.isMultiDayProduct)(cacheItem2)) {
226
+ return (0, import_utils2.getDays)(cacheItem2, "days");
227
+ }
228
+ return (0, import_utils2.findNextDuration)(
229
+ cacheItem2.duration,
230
+ timeObj == null ? void 0 : timeObj.durationSlicesBasedOnTime,
231
+ (_a2 = cacheItem2 == null ? void 0 : cacheItem2.duration) == null ? void 0 : _a2.value
232
+ );
233
+ };
222
234
  let _extend = {
223
235
  // 时长: 当前商品时长 > 第一个时长
224
- duration: (0, import_utils2.findNextDuration)(
225
- cacheItem.duration,
226
- timeObj == null ? void 0 : timeObj.durationSlicesBasedOnTime,
227
- (_b = cacheItem == null ? void 0 : cacheItem.duration) == null ? void 0 : _b.value
228
- )
236
+ duration: getDuration(cacheItem)
229
237
  };
230
238
  if (lastServer) {
231
239
  let lastServerStartDate = lastServer._extend.startDate;
@@ -234,9 +242,9 @@ var getServiceStartTimeAndEndTime = (state, cacheItem, timeObj) => {
234
242
  _extend.start_time = lastServerStartDate.format("HH:mm");
235
243
  } else {
236
244
  if ((0, import_dayjs.default)(lastServerEndDate).isAfter(lastServerStartDate, "day")) {
237
- _extend.start_time = timeObj == null ? void 0 : timeObj.timeSlices[((_c = timeObj == null ? void 0 : timeObj.timeSlices) == null ? void 0 : _c.length) - 1].value;
245
+ _extend.start_time = timeObj == null ? void 0 : timeObj.timeSlices[((_b = timeObj == null ? void 0 : timeObj.timeSlices) == null ? void 0 : _b.length) - 1].value;
238
246
  } else {
239
- _extend.start_time = lastServerEndDate.format("HH:mm");
247
+ _extend.start_time = (_c = lastServerEndDate || (0, import_dayjs.default)()) == null ? void 0 : _c.format("HH:mm");
240
248
  }
241
249
  }
242
250
  } else {
@@ -264,7 +272,10 @@ var getServiceStartTimeAndEndTime = (state, cacheItem, timeObj) => {
264
272
  ..._extend,
265
273
  ...cacheItem._extend
266
274
  };
267
- const { startDate, endDate } = (0, import_utils2.getServiceTimes)({ _extend });
275
+ const { startDate, endDate } = (0, import_utils2.getServiceTimes)({
276
+ ...cacheItem,
277
+ _extend
278
+ });
268
279
  _extend.startDate = startDate;
269
280
  _extend.endDate = endDate;
270
281
  const session = (_e = (_d = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _d.other) == null ? void 0 : _e.session;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface FormState {
3
2
  amountSymbol: string;
4
3
  apis: {
@@ -110,11 +109,4 @@ export declare const walkInData: {
110
109
  id: number;
111
110
  nickname: string;
112
111
  };
113
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
114
- state: FormState;
115
- } & {
116
- dispatch: (params: {
117
- type: string;
118
- payload: any;
119
- }) => void;
120
- }>;
112
+ export declare const Provider: any, Context: any;
@@ -1,10 +1 @@
1
- /// <reference types="react" />
2
- import { FormState } from "../model";
3
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
4
- state: FormState;
5
- } & {
6
- dispatch: (params: {
7
- type: string;
8
- payload: any;
9
- }) => void;
10
- }>;
1
+ export declare const Provider: any, Context: any;
@@ -1,10 +1 @@
1
- /// <reference types="react" />
2
- import { FormState } from "../model";
3
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
4
- state: FormState;
5
- } & {
6
- dispatch: (params: {
7
- type: string;
8
- payload: any;
9
- }) => void;
10
- }>;
1
+ export declare const Provider: any, Context: any;
@@ -22,6 +22,14 @@ export declare const request: Request;
22
22
  * @Date: 2024-04-26 14:00
23
23
  */
24
24
  export declare const getDiscountTime: (service_times: number, isDay?: boolean) => string;
25
+ /**
26
+ * @title: 格式化跨日预约的时长用于展示
27
+ * @description:
28
+ * @param {number} days
29
+ * @param {number} minutes
30
+ * @return {*}
31
+ */
32
+ export declare const getDiscountTimeByDayMinutes: (days: number, minutes: number) => string;
25
33
  /**
26
34
  * @title: 时间切片
27
35
  * @description:
@@ -113,7 +121,7 @@ export declare const flexibleObj: {
113
121
  export declare const getEndDate: (startDate: any, duration: string | number, endDate: any) => any;
114
122
  export declare const getServiceTimes: (service: any) => {
115
123
  startDate: dayjs.Dayjs;
116
- endDate: dayjs.Dayjs;
124
+ endDate: any;
117
125
  };
118
126
  export declare const getErrorList: (resource: any, cacheItem: any, isDay?: boolean) => {
119
127
  label: any;
@@ -39,6 +39,7 @@ __export(utils_exports, {
39
39
  getCacheParams: () => getCacheParams,
40
40
  getDays: () => getDays,
41
41
  getDiscountTime: () => getDiscountTime,
42
+ getDiscountTimeByDayMinutes: () => getDiscountTimeByDayMinutes,
42
43
  getDuration: () => getDuration,
43
44
  getEndDate: () => getEndDate,
44
45
  getErrorList: () => getErrorList,
@@ -67,6 +68,7 @@ var import_utils2 = require("./info/service2/utils");
67
68
  var import_lodash = require("lodash");
68
69
  var import_utilsByBooking = require("./info2/utilsByBooking");
69
70
  var import_decimal = __toESM(require("decimal.js"));
71
+ var import_utils3 = require("./info2/service/addService/utils");
70
72
  var Request = class {
71
73
  request = {};
72
74
  constructor() {
@@ -99,6 +101,12 @@ var getDiscountTime = (service_times, isDay) => {
99
101
  return str;
100
102
  }
101
103
  };
104
+ var getDiscountTimeByDayMinutes = (days, minutes) => {
105
+ if (days === 0) {
106
+ return getDiscountTime(minutes);
107
+ }
108
+ return `${days} ${import_utils.locales.getText("pisell2.text.day")(days)} ${getDiscountTime(minutes)}`;
109
+ };
102
110
  var sliceDayIntoFiveMinutes = (config, locale, isDay) => {
103
111
  let _locale = locale;
104
112
  let dayjsLocale = _locale === "en-US" || _locale === "en" ? "en" : "zh-cn";
@@ -408,6 +416,12 @@ var getServiceTimes = (service) => {
408
416
  const startDate = (0, import_dayjs.default)(
409
417
  (0, import_dayjs.default)(service._extend.start_date).format("YYYY-MM-DD ") + getServeStartTime(service._extend.start_time)
410
418
  );
419
+ if ((0, import_utils3.isMultiDayProduct)(service)) {
420
+ return {
421
+ startDate,
422
+ endDate: service._extend.end_date
423
+ };
424
+ }
411
425
  const endDate = startDate.add(
412
426
  flexibleObj.getValue(service._extend.duration),
413
427
  "minute"
@@ -696,6 +710,7 @@ var getIsEdit = (state) => {
696
710
  getCacheParams,
697
711
  getDays,
698
712
  getDiscountTime,
713
+ getDiscountTimeByDayMinutes,
699
714
  getDuration,
700
715
  getEndDate,
701
716
  getErrorList,
@@ -19,7 +19,7 @@ export declare const useStoreRef: <T extends {
19
19
  readonly netRef: React.MutableRefObject<boolean | undefined>;
20
20
  readonly symbolRef: React.MutableRefObject<string>;
21
21
  readonly amountRef: React.MutableRefObject<string | number>;
22
- readonly eftposRef: React.MutableRefObject<"stripe" | "payo" | "tyro" | "windcave" | "linkly">;
22
+ readonly eftposRef: React.MutableRefObject<"stripe" | "tyro" | "windcave" | "payo" | "linkly">;
23
23
  readonly clientRef: React.MutableRefObject<ClientEnum>;
24
24
  readonly dataRef: React.MutableRefObject<import("./store").State>;
25
25
  };
@@ -297,8 +297,8 @@ export declare const backUpFree: (payload: Partial<State>) => {
297
297
  amount?: string | number | undefined;
298
298
  mode?: "pay" | "refund" | "fullPay" | "query" | undefined;
299
299
  order_id?: string | number | undefined;
300
- eftpos?: "stripe" | "payo" | "tyro" | "windcave" | "linkly" | undefined;
301
- action?: "pay" | "amount" | "deviceList" | undefined;
300
+ eftpos?: "stripe" | "tyro" | "windcave" | "payo" | "linkly" | undefined;
301
+ action?: "amount" | "pay" | "deviceList" | undefined;
302
302
  key?: number | undefined;
303
303
  step?: number | undefined;
304
304
  title?: string | undefined;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface FormState {
3
2
  platform: 'pc' | 'h5' | '' | undefined;
4
3
  order: any;
@@ -29,11 +28,4 @@ export interface PayGroup {
29
28
  pay_number?: string;
30
29
  _order: any;
31
30
  }
32
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
33
- state: FormState;
34
- } & {
35
- dispatch: (params: {
36
- type: string;
37
- payload: any;
38
- }) => void;
39
- }>;
31
+ export declare const Provider: any, Context: any;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { CalendarDataItem, ScheduleItem } from "./type";
3
2
  import dayjs from "dayjs";
4
3
  export interface FormState {
@@ -69,11 +68,4 @@ export interface FormState {
69
68
  };
70
69
  setGlobalState: Function | null;
71
70
  }
72
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
73
- state: FormState;
74
- } & {
75
- dispatch: (params: {
76
- type: string;
77
- payload: any;
78
- }) => void;
79
- }>;
71
+ export declare const Provider: any, Context: any;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { Dayjs } from 'dayjs';
3
+ import './MultiDayTimeSelectModal.less';
4
+ interface MultiDayTimeSelectModalProps {
5
+ open: boolean;
6
+ productName?: string;
7
+ locale?: string;
8
+ defaultStartDate?: Dayjs;
9
+ loading?: boolean;
10
+ /** 最大天数,默认30天 */
11
+ maxDays?: number;
12
+ /** 开始时间和结束时间是否分离 */
13
+ separateStartEnd?: boolean;
14
+ onConfirm: (startDate: Dayjs, endDate: Dayjs, duration: number) => void;
15
+ onCancel: () => void;
16
+ }
17
+ declare const MultiDayTimeSelectModal: React.FC<MultiDayTimeSelectModalProps>;
18
+ export default MultiDayTimeSelectModal;