@pisell/private-materials 3.0.199 → 3.0.200

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 (193) hide show
  1. package/build/lowcode/index.js +1 -1
  2. package/build/lowcode/meta.js +1 -1
  3. package/build/lowcode/preview.js +7 -7
  4. package/build/lowcode/render/default/view.css +1 -1
  5. package/build/lowcode/render/default/view.js +10 -10
  6. package/build/lowcode/view.css +1 -1
  7. package/build/lowcode/view.js +11 -11
  8. package/es/components/booking/components/customSelect/index.d.ts +1 -0
  9. package/es/components/booking/components/customSelect/index.js +6 -2
  10. package/es/components/booking/components/footer/AppointmentProductModal/index.d.ts +3 -0
  11. package/es/components/booking/components/footer/AppointmentProductModal/index.js +38 -0
  12. package/es/components/booking/components/footer/AppointmentProductModal/index.less +0 -0
  13. package/es/components/booking/components/footer/amount.js +45 -22
  14. package/es/components/booking/components/footer/index.js +84 -40
  15. package/es/components/booking/components/footer/utils.js +243 -32
  16. package/es/components/booking/info/addServiceVariant/index.js +8 -1
  17. package/es/components/booking/info/clientVariant/vertical/SelectDrawer.d.ts +1 -0
  18. package/es/components/booking/info/clientVariant/vertical/SelectDrawer.js +14 -13
  19. package/es/components/booking/info/clientVariant/vertical/index.js +33 -4
  20. package/es/components/booking/info/dateRange/index.d.ts +5 -0
  21. package/es/components/booking/info/dateRange/index.js +98 -0
  22. package/es/components/booking/info/dateRange/index.less +21 -0
  23. package/es/components/booking/info/main.js +20 -8
  24. package/es/components/booking/info/model.js +3 -0
  25. package/es/components/booking/info/pet/ChangePetModal/index.d.ts +4 -0
  26. package/es/components/booking/info/pet/ChangePetModal/index.js +119 -0
  27. package/es/components/booking/info/pet/ChangePetModal/index.less +4 -0
  28. package/es/components/booking/info/pet/index.js +54 -5
  29. package/es/components/booking/info/service/addService/index.js +142 -22
  30. package/es/components/booking/info/service/addService/index.less +13 -3
  31. package/es/components/booking/info/service/addService/utils.d.ts +11 -2
  32. package/es/components/booking/info/service/addService/utils.js +49 -24
  33. package/es/components/booking/info/service/editService/index.js +246 -44
  34. package/es/components/booking/info/service/editService/index.less +18 -13
  35. package/es/components/booking/info/service2/Lists.d.ts +3 -0
  36. package/es/components/booking/info/service2/Lists.js +158 -0
  37. package/es/components/booking/info/service2/hooks/useSelectPet.d.ts +6 -0
  38. package/es/components/booking/info/service2/hooks/useSelectPet.js +54 -0
  39. package/es/components/booking/info/service2/index.d.ts +3 -0
  40. package/es/components/booking/info/service2/index.js +58 -0
  41. package/es/components/booking/info/service2/status.d.ts +31 -0
  42. package/es/components/booking/info/service2/status.js +78 -0
  43. package/es/components/booking/info/service2/utils.d.ts +145 -0
  44. package/es/components/booking/info/service2/utils.js +438 -0
  45. package/es/components/booking/info/utils.d.ts +9 -0
  46. package/es/components/booking/info/utils.js +13 -0
  47. package/es/components/booking/locales.d.ts +60 -0
  48. package/es/components/booking/locales.js +75 -3
  49. package/es/components/booking/materiels/holder/index.d.ts +7 -0
  50. package/es/components/booking/materiels/holder/index.js +51 -0
  51. package/es/components/booking/model.d.ts +4 -1
  52. package/es/components/booking/model.js +4 -2
  53. package/es/components/booking/utils.d.ts +12 -3
  54. package/es/components/booking/utils.js +139 -23
  55. package/es/components/eftpos/form/index.js +6 -12
  56. package/es/components/eftpos/group/index.d.ts +2 -1
  57. package/es/components/eftpos/group/index.js +2 -1
  58. package/es/components/eftpos/index.js +2 -2
  59. package/es/components/eftposPay/helper.d.ts +0 -1
  60. package/es/components/eftposPay/helper.js +0 -14
  61. package/es/components/eftposPay/tyro/index.js +20 -51
  62. package/es/components/shoppingCart/Provider.d.ts +3 -0
  63. package/es/components/shoppingCart/Provider.js +86 -0
  64. package/es/components/shoppingCart/components/Cart/Product.d.ts +4 -0
  65. package/es/components/shoppingCart/components/Cart/Product.js +96 -0
  66. package/es/components/shoppingCart/components/Cart/index.d.ts +4 -0
  67. package/es/components/shoppingCart/components/Cart/index.js +72 -0
  68. package/es/components/shoppingCart/components/Cart/index.less +68 -0
  69. package/es/components/shoppingCart/components/Empty/index.d.ts +4 -0
  70. package/es/components/shoppingCart/components/Empty/index.js +14 -0
  71. package/es/components/shoppingCart/components/Empty/index.less +19 -0
  72. package/es/components/shoppingCart/components/Render/index.d.ts +4 -0
  73. package/es/components/shoppingCart/components/Render/index.js +68 -0
  74. package/es/components/shoppingCart/components/Render/index.less +2 -0
  75. package/es/components/shoppingCart/components/SelectHolderModal/index.d.ts +4 -0
  76. package/es/components/shoppingCart/components/SelectHolderModal/index.js +124 -0
  77. package/es/components/shoppingCart/components/SelectHolderModal/index.less +32 -0
  78. package/es/components/shoppingCart/hooks/useAddService.d.ts +3 -0
  79. package/es/components/shoppingCart/hooks/useAddService.js +23 -0
  80. package/es/components/shoppingCart/hooks/useClearCart.d.ts +3 -0
  81. package/es/components/shoppingCart/hooks/useClearCart.js +54 -0
  82. package/es/components/shoppingCart/hooks/useContext.d.ts +1 -0
  83. package/es/components/shoppingCart/hooks/useContext.js +5 -0
  84. package/es/components/shoppingCart/index.d.ts +4 -0
  85. package/es/components/shoppingCart/index.js +24 -0
  86. package/es/components/shoppingCart/locales.d.ts +33 -0
  87. package/es/components/shoppingCart/locales.js +38 -0
  88. package/es/components/shoppingCart/mock.d.ts +40 -0
  89. package/es/components/shoppingCart/mock.js +40 -0
  90. package/es/components/shoppingCart/status.d.ts +2 -0
  91. package/es/components/shoppingCart/status.js +22 -0
  92. package/es/components/shoppingCart/type.d.ts +39 -0
  93. package/es/components/shoppingCart/type.js +1 -0
  94. package/es/components/shoppingCart/utils.d.ts +63 -0
  95. package/es/components/shoppingCart/utils.js +119 -0
  96. package/es/index.d.ts +1 -0
  97. package/es/index.js +2 -1
  98. package/lib/components/booking/components/customSelect/index.d.ts +1 -0
  99. package/lib/components/booking/components/customSelect/index.js +6 -2
  100. package/lib/components/booking/components/footer/AppointmentProductModal/index.d.ts +3 -0
  101. package/lib/components/booking/components/footer/AppointmentProductModal/index.js +60 -0
  102. package/lib/components/booking/components/footer/AppointmentProductModal/index.less +0 -0
  103. package/lib/components/booking/components/footer/amount.js +26 -8
  104. package/lib/components/booking/components/footer/index.js +25 -4
  105. package/lib/components/booking/components/footer/utils.js +157 -31
  106. package/lib/components/booking/info/addServiceVariant/index.js +5 -0
  107. package/lib/components/booking/info/clientVariant/vertical/SelectDrawer.d.ts +1 -0
  108. package/lib/components/booking/info/clientVariant/vertical/SelectDrawer.js +8 -7
  109. package/lib/components/booking/info/clientVariant/vertical/index.js +36 -10
  110. package/lib/components/booking/info/dateRange/index.d.ts +5 -0
  111. package/lib/components/booking/info/dateRange/index.js +111 -0
  112. package/lib/components/booking/info/dateRange/index.less +21 -0
  113. package/lib/components/booking/info/main.js +11 -4
  114. package/lib/components/booking/info/model.js +3 -0
  115. package/lib/components/booking/info/pet/ChangePetModal/index.d.ts +4 -0
  116. package/lib/components/booking/info/pet/ChangePetModal/index.js +111 -0
  117. package/lib/components/booking/info/pet/ChangePetModal/index.less +4 -0
  118. package/lib/components/booking/info/pet/index.js +61 -25
  119. package/lib/components/booking/info/service/addService/index.js +107 -34
  120. package/lib/components/booking/info/service/addService/index.less +13 -3
  121. package/lib/components/booking/info/service/addService/utils.d.ts +11 -2
  122. package/lib/components/booking/info/service/addService/utils.js +31 -10
  123. package/lib/components/booking/info/service/editService/index.js +283 -125
  124. package/lib/components/booking/info/service/editService/index.less +18 -13
  125. package/lib/components/booking/info/service2/Lists.d.ts +3 -0
  126. package/lib/components/booking/info/service2/Lists.js +113 -0
  127. package/lib/components/booking/info/service2/hooks/useSelectPet.d.ts +6 -0
  128. package/lib/components/booking/info/service2/hooks/useSelectPet.js +50 -0
  129. package/lib/components/booking/info/service2/index.d.ts +3 -0
  130. package/lib/components/booking/info/service2/index.js +75 -0
  131. package/lib/components/booking/info/service2/status.d.ts +31 -0
  132. package/lib/components/booking/info/service2/status.js +81 -0
  133. package/lib/components/booking/info/service2/utils.d.ts +145 -0
  134. package/lib/components/booking/info/service2/utils.js +322 -0
  135. package/lib/components/booking/info/utils.d.ts +9 -0
  136. package/lib/components/booking/info/utils.js +6 -0
  137. package/lib/components/booking/locales.d.ts +60 -0
  138. package/lib/components/booking/locales.js +63 -3
  139. package/lib/components/booking/materiels/holder/index.d.ts +7 -0
  140. package/lib/components/booking/materiels/holder/index.js +65 -0
  141. package/lib/components/booking/model.d.ts +4 -1
  142. package/lib/components/booking/model.js +4 -2
  143. package/lib/components/booking/utils.d.ts +12 -3
  144. package/lib/components/booking/utils.js +87 -15
  145. package/lib/components/eftpos/form/index.js +6 -12
  146. package/lib/components/eftpos/group/index.d.ts +2 -1
  147. package/lib/components/eftpos/group/index.js +1 -0
  148. package/lib/components/eftpos/index.js +2 -2
  149. package/lib/components/eftposPay/helper.d.ts +0 -1
  150. package/lib/components/eftposPay/helper.js +0 -21
  151. package/lib/components/eftposPay/tyro/index.js +7 -36
  152. package/lib/components/shoppingCart/Provider.d.ts +3 -0
  153. package/lib/components/shoppingCart/Provider.js +110 -0
  154. package/lib/components/shoppingCart/components/Cart/Product.d.ts +4 -0
  155. package/lib/components/shoppingCart/components/Cart/Product.js +89 -0
  156. package/lib/components/shoppingCart/components/Cart/index.d.ts +4 -0
  157. package/lib/components/shoppingCart/components/Cart/index.js +77 -0
  158. package/lib/components/shoppingCart/components/Cart/index.less +68 -0
  159. package/lib/components/shoppingCart/components/Empty/index.d.ts +4 -0
  160. package/lib/components/shoppingCart/components/Empty/index.js +43 -0
  161. package/lib/components/shoppingCart/components/Empty/index.less +19 -0
  162. package/lib/components/shoppingCart/components/Render/index.d.ts +4 -0
  163. package/lib/components/shoppingCart/components/Render/index.js +79 -0
  164. package/lib/components/shoppingCart/components/Render/index.less +2 -0
  165. package/lib/components/shoppingCart/components/SelectHolderModal/index.d.ts +4 -0
  166. package/lib/components/shoppingCart/components/SelectHolderModal/index.js +116 -0
  167. package/lib/components/shoppingCart/components/SelectHolderModal/index.less +32 -0
  168. package/lib/components/shoppingCart/hooks/useAddService.d.ts +3 -0
  169. package/lib/components/shoppingCart/hooks/useAddService.js +55 -0
  170. package/lib/components/shoppingCart/hooks/useClearCart.d.ts +3 -0
  171. package/lib/components/shoppingCart/hooks/useClearCart.js +71 -0
  172. package/lib/components/shoppingCart/hooks/useContext.d.ts +1 -0
  173. package/lib/components/shoppingCart/hooks/useContext.js +31 -0
  174. package/lib/components/shoppingCart/index.d.ts +4 -0
  175. package/lib/components/shoppingCart/index.js +60 -0
  176. package/lib/components/shoppingCart/locales.d.ts +33 -0
  177. package/lib/components/shoppingCart/locales.js +56 -0
  178. package/lib/components/shoppingCart/mock.d.ts +40 -0
  179. package/lib/components/shoppingCart/mock.js +76 -0
  180. package/lib/components/shoppingCart/status.d.ts +2 -0
  181. package/lib/components/shoppingCart/status.js +60 -0
  182. package/lib/components/shoppingCart/type.d.ts +39 -0
  183. package/lib/components/shoppingCart/type.js +17 -0
  184. package/lib/components/shoppingCart/utils.d.ts +63 -0
  185. package/lib/components/shoppingCart/utils.js +92 -0
  186. package/lib/index.d.ts +1 -0
  187. package/lib/index.js +3 -0
  188. package/lowcode/shopping-cart/meta.ts +98 -0
  189. package/package.json +4 -4
  190. package/es/components/eftpos/receipt/index.d.ts +0 -24
  191. package/es/components/eftpos/receipt/index.js +0 -96
  192. package/lib/components/eftpos/receipt/index.d.ts +0 -24
  193. package/lib/components/eftpos/receipt/index.js +0 -88
@@ -38,6 +38,7 @@ var import_drawer = __toESM(require("../../../components/drawer"));
38
38
  var import_model = require("../../model");
39
39
  var import_utils = require("@pisell/utils");
40
40
  var import_duration = __toESM(require("../../../materiels/duration"));
41
+ var import_holder = __toESM(require("../../../materiels/holder"));
41
42
  var import_antd = require("antd");
42
43
  var import_index = require("./index.less");
43
44
  var import_collapsibleList = __toESM(require("../../../components/collapsibleList"));
@@ -48,18 +49,27 @@ var import_like = __toESM(require("../like"));
48
49
  var import_mock = require("../../../mock");
49
50
  var import_utils4 = require("../addService/utils");
50
51
  var import_materials = require("@pisell/materials");
52
+ var import_dayjs = __toESM(require("dayjs"));
53
+ var import_useSelectPet = __toESM(require("../../service2/hooks/useSelectPet"));
54
+ var import_utils5 = require("../../service2/utils");
51
55
  var submitLock = false;
52
56
  var Info = (_, ref) => {
53
- 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;
57
+ 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;
54
58
  const [form] = import_antd.Form.useForm();
55
59
  const useTotal = import_antd.Form.useWatch("total", form);
56
60
  const useLikeStatus = import_antd.Form.useWatch("like_status", form);
57
61
  const useResource = import_antd.Form.useWatch("resource", form);
58
62
  const useStartTime = import_antd.Form.useWatch("start_time", form);
59
63
  const useDuration = import_antd.Form.useWatch("duration", form);
64
+ const useStartDate = import_antd.Form.useWatch("start_date", form);
65
+ const useEndDate = import_antd.Form.useWatch("end_date", form);
60
66
  const [resourceLoading, setResourceLoading] = (0, import_react.useState)(false);
61
67
  const { state, dispatch } = (0, import_react.useContext)(import_model.Context);
62
68
  const [selectOpen, setSelectOpen] = (0, import_react.useState)();
69
+ const { holderLists } = (0, import_useSelectPet.default)(state);
70
+ const isDay = (0, import_react.useMemo)(() => {
71
+ return (0, import_utils5.isDayBooking)(state);
72
+ }, [state.renderType]);
63
73
  const getCurrentCacheItem = (_cacheItem) => {
64
74
  let values = form.getFieldsValue();
65
75
  let _item = _cacheItem || state.service.cacheItem;
@@ -132,7 +142,8 @@ var Info = (_, ref) => {
132
142
  payload: {
133
143
  resources: (0, import_utils4.formatResources)({
134
144
  cacheItem: _cacheItem,
135
- resourcesOrigin: _list
145
+ resourcesOrigin: _list,
146
+ isDay
136
147
  })
137
148
  }
138
149
  });
@@ -188,11 +199,11 @@ var Info = (_, ref) => {
188
199
  });
189
200
  });
190
201
  const getErrorMsg = () => {
191
- var _a2;
202
+ var _a2, _b2;
192
203
  const list = state.service.resources;
193
204
  let item = list.find((d) => d.form_record_id == useResource);
194
205
  if (item) {
195
- const isMaxLimitRange = (_a2 = item._extend.usableTime) == null ? void 0 : _a2._extend.isMaxLimitRange;
206
+ const isMaxLimitRange = (_b2 = (_a2 = item._extend.usableTime) == null ? void 0 : _a2._extend) == null ? void 0 : _b2.isMaxLimitRange;
196
207
  if (isMaxLimitRange === "unknown") {
197
208
  }
198
209
  }
@@ -234,9 +245,15 @@ var Info = (_, ref) => {
234
245
  ..._item._extend,
235
246
  ...values
236
247
  };
237
- const { startDate, endDate } = (0, import_utils3.getServiceTimes)({ _extend });
238
- _extend.startDate = startDate;
239
- _extend.endDate = endDate;
248
+ if ((0, import_utils5.isAppointment)(state.service.cacheItem, state)) {
249
+ _extend.quantity = useDuration || 1;
250
+ _extend.startDate = _extend == null ? void 0 : _extend.start_date;
251
+ _extend.endDate = _extend == null ? void 0 : _extend.end_date;
252
+ } else {
253
+ const { startDate, endDate } = (0, import_utils3.getServiceTimes)({ _extend });
254
+ _extend.startDate = startDate;
255
+ _extend.endDate = endDate;
256
+ }
240
257
  const { relation_type, item_id, schedule_id } = ((_a2 = currentResource == null ? void 0 : currentResource._extend) == null ? void 0 : _a2.usableTime) || {};
241
258
  _extend.relation_type = relation_type || "form";
242
259
  _extend.relation_id = item_id || (currentResource == null ? void 0 : currentResource.form_record_id) || 0;
@@ -269,6 +286,10 @@ var Info = (_, ref) => {
269
286
  const setEditData = (0, import_ahooks.useMemoizedFn)((_cacheItem, open) => {
270
287
  let cacheItem = _cacheItem || state.service.cacheItem;
271
288
  let values = cacheItem._extend;
289
+ values = {
290
+ ...values,
291
+ discount_reason: (values == null ? void 0 : values.discount_reason) || ""
292
+ };
272
293
  form.setFieldsValue(values);
273
294
  if (state.renderType !== "eventBooking") {
274
295
  getResources(cacheItem, open);
@@ -281,7 +302,7 @@ var Info = (_, ref) => {
281
302
  return cPrice !== oPrice;
282
303
  }, [useTotal, (_e = (_d = state.service.cacheItem) == null ? void 0 : _d._extend) == null ? void 0 : _e.origin_total]);
283
304
  const errorList = (0, import_react.useMemo)(() => {
284
- return (0, import_utils3.getErrorList)(currentResource, getCurrentCacheItem());
305
+ return (0, import_utils3.getErrorList)(currentResource, getCurrentCacheItem(), isDay);
285
306
  }, [currentResource, useDuration, useStartTime]);
286
307
  (0, import_ahooks.useUpdateEffect)(() => {
287
308
  var _a2;
@@ -297,14 +318,17 @@ var Info = (_, ref) => {
297
318
  state.service.resourcesOrigin,
298
319
  (_f = state.service.cacheItem) == null ? void 0 : _f.autoClose
299
320
  ]);
321
+ const isTerminalBooking = (0, import_react.useMemo)(() => {
322
+ return state.isBookingCreatePage || state.isTerminalDayBookingPage;
323
+ }, [state.isBookingCreatePage, state.isTerminalDayBookingPage]);
300
324
  (0, import_react.useEffect)(() => {
301
- if (state.isBookingCreatePage && state.service.editModal) {
325
+ if (isTerminalBooking && state.service.editModal) {
302
326
  setEditData(null, true);
303
327
  }
304
- }, [state.service.editModal, state.isBookingCreatePage]);
328
+ }, [state.service.editModal, isTerminalBooking]);
305
329
  (0, import_react.useEffect)(() => {
306
330
  getErrorMsg();
307
- }, [useResource, useStartTime, useDuration]);
331
+ }, [useResource, useStartTime, useDuration, useStartDate, useEndDate]);
308
332
  (0, import_react.useEffect)(() => {
309
333
  getDiscount();
310
334
  }, [useTotal, (_h = (_g = state.service.cacheItem) == null ? void 0 : _g._extend) == null ? void 0 : _h.origin_total]);
@@ -327,12 +351,30 @@ var Info = (_, ref) => {
327
351
  const getResourcesData = async () => {
328
352
  setResourceLoading(true);
329
353
  try {
354
+ let params = {};
355
+ if (isDay) {
356
+ const format = "YYYY-MM-DD HH:mm";
357
+ const startDate = useStartDate || state.date.value;
358
+ const endDate = useEndDate || state.date.end_date;
359
+ const { startDateTime, endDateTime } = (0, import_utils5.formatDayTime)({
360
+ startDate,
361
+ endDate
362
+ });
363
+ if ((0, import_dayjs.default)(startDateTime).isAfter((0, import_dayjs.default)(endDateTime)))
364
+ return;
365
+ params.check_time = {
366
+ start_time: (0, import_dayjs.default)(startDateTime).format(format),
367
+ end_time: (0, import_dayjs.default)(endDateTime).format(format)
368
+ };
369
+ } else {
370
+ params.with_date_times = state.date.value.format("YYYY-MM-DD");
371
+ }
330
372
  let data = await state.apis.getResources({
331
373
  skip: 1,
332
374
  num: 1e3,
333
- with_date_times: state.date.value.format("YYYY-MM-DD"),
334
375
  codes: ["resources", "therapist", "table"],
335
- _config: { abort: true }
376
+ _config: { abort: true },
377
+ ...params
336
378
  });
337
379
  let _list = [(0, import_mock.getNoResource)()].concat((data == null ? void 0 : data.list) || []);
338
380
  dispatch({
@@ -350,8 +392,14 @@ var Info = (_, ref) => {
350
392
  setTimeout(() => {
351
393
  getResourcesData();
352
394
  }, 20);
353
- }, [(_q = (_p = (_o = state.date) == null ? void 0 : _o.value) == null ? void 0 : _p.format) == null ? void 0 : _q.call(_p, "YYYY-MM-DD")]);
395
+ }, [
396
+ (_q = (_p = (_o = state.date) == null ? void 0 : _o.value) == null ? void 0 : _p.format) == null ? void 0 : _q.call(_p, "YYYY-MM-DD"),
397
+ (_r = state.date) == null ? void 0 : _r.end_date,
398
+ useStartDate,
399
+ useEndDate
400
+ ]);
354
401
  const handleEdit = (0, import_ahooks.useMemoizedFn)((e) => {
402
+ var _a2, _b2, _c2, _d2;
355
403
  const item = state.service.cacheItem;
356
404
  let values = form.getFieldsValue();
357
405
  state.action({
@@ -360,14 +408,19 @@ var Info = (_, ref) => {
360
408
  id: item.id,
361
409
  date: state.date.value.format("YYYY-MM-DD"),
362
410
  showConfig: {
363
- option: false,
411
+ option: isDay ? true : false,
364
412
  session: false,
365
- variant: false,
413
+ variant: isDay ? true : false,
366
414
  package: true
367
415
  },
368
- value: item._extend.other
416
+ value: {
417
+ ...item._extend.other,
418
+ product_variant: ((_b2 = (_a2 = item._extend) == null ? void 0 : _a2.other) == null ? void 0 : _b2.product_variant_id) || 0,
419
+ product_option: ((_d2 = (_c2 = item._extend) == null ? void 0 : _c2.other) == null ? void 0 : _d2.option) || []
420
+ }
369
421
  },
370
422
  callback: (e2) => {
423
+ var _a3, _b3, _c3, _d3;
371
424
  let cacheItem = {
372
425
  ...item,
373
426
  product_id: item.id,
@@ -383,6 +436,9 @@ var Info = (_, ref) => {
383
436
  new: 0
384
437
  };
385
438
  let _total = (0, import_utils3.getProductTotalPrice)(cacheItem);
439
+ if ((_b3 = (_a3 = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _a3.other) == null ? void 0 : _b3.product_variant_id) {
440
+ cacheItem._extend.price = Number((_d3 = (_c3 = cacheItem._extend) == null ? void 0 : _c3.other) == null ? void 0 : _d3.price);
441
+ }
386
442
  cacheItem._extend.total = _total;
387
443
  cacheItem._extend.origin_total = _total;
388
444
  dispatch({
@@ -416,7 +472,54 @@ var Info = (_, ref) => {
416
472
  init: setEditData
417
473
  };
418
474
  });
419
- const SelectTime = (_r = window.BaseMaterials) == null ? void 0 : _r.SelectTime;
475
+ const SelectTime = (_s = window.BaseMaterials) == null ? void 0 : _s.SelectTime;
476
+ const DateCom = (position) => {
477
+ return /* @__PURE__ */ import_react.default.createElement(
478
+ import_antd.DatePicker,
479
+ {
480
+ className: "pisell-lowcode__booking-service-select-date",
481
+ disabledDate: (current) => (0, import_utils5.disabledDate)(current, position, useStartDate),
482
+ size: "large",
483
+ style: { width: "100%" },
484
+ format: state.locale === "en" ? "DD/MM/YYYY" : "YYYY-MM-DD"
485
+ }
486
+ );
487
+ };
488
+ const onValuesChange = (changedValues) => {
489
+ if (isDay) {
490
+ if (changedValues == null ? void 0 : changedValues.duration) {
491
+ return form.setFieldsValue({
492
+ end_date: (0, import_dayjs.default)(useStartDate).add(changedValues == null ? void 0 : changedValues.duration, "day")
493
+ });
494
+ }
495
+ if (changedValues == null ? void 0 : changedValues.start_date) {
496
+ const startDate = (0, import_dayjs.default)(changedValues == null ? void 0 : changedValues.start_date);
497
+ const endDate = (0, import_dayjs.default)(useEndDate);
498
+ if (startDate.isAfter(endDate)) {
499
+ return form.setFieldsValue({
500
+ duration: void 0,
501
+ end_date: void 0
502
+ });
503
+ }
504
+ }
505
+ if ((changedValues == null ? void 0 : changedValues.start_date) || (changedValues == null ? void 0 : changedValues.end_date)) {
506
+ const cacheItem = getCurrentCacheItem();
507
+ const duration = (0, import_utils3.getDays)(cacheItem, "days");
508
+ return form.setFieldsValue({
509
+ duration
510
+ });
511
+ }
512
+ }
513
+ };
514
+ const showResource = (0, import_react.useMemo)(() => {
515
+ if (state.renderType === "eventBooking") {
516
+ return false;
517
+ }
518
+ if (isDay) {
519
+ return (0, import_utils5.isAppointment)(state.service.cacheItem, state);
520
+ }
521
+ return true;
522
+ }, [state.service.cacheItem, state.renderType]);
420
523
  return (0, import_react.useMemo)(() => {
421
524
  var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2, _o2, _p2;
422
525
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
@@ -426,7 +529,7 @@ var Info = (_, ref) => {
426
529
  zIndex: state.service.changeService ? 999 : 1e3,
427
530
  forceRender: true,
428
531
  open: state.service.editModal && !((_a2 = state.service.cacheItem) == null ? void 0 : _a2.autoClose),
429
- title: import_utils.locales.getText("pisell2.text.edit-service"),
532
+ title: isDay ? import_utils.locales.getText("pisell2.text.edit-select-service") : import_utils.locales.getText("pisell2.text.edit-service"),
430
533
  onClose: () => {
431
534
  dispatch({
432
535
  type: "setService",
@@ -438,126 +541,177 @@ var Info = (_, ref) => {
438
541
  });
439
542
  }
440
543
  },
441
- /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__booking-service-body-edit" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Page, null, /* @__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] }, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { name: "product_name" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name" }, ((_d2 = (_c2 = (_b2 = state.service) == null ? void 0 : _b2.cacheItem) == null ? void 0 : _c2._extend) == null ? void 0 : _d2.product_name) || "-"), /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleEdit }, import_utils.locales.getText("pisell2.text.edit")), !state.isBookingCreatePage && /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleChange }, import_utils.locales.getText("pisell2.text.change"))), /* @__PURE__ */ import_react.default.createElement(
442
- import_collapsibleList.default,
544
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__booking-service-body-edit" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Page, null, /* @__PURE__ */ import_react.default.createElement(
545
+ import_antd.Form,
443
546
  {
444
- style: { marginTop: bundles.length ? "8px" : 0 },
445
- list: bundles,
446
- renderItem: (item) => (0, import_utils2.renderBundles)(item, state.amountSymbol)
447
- }
448
- )))), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
449
- import_antd.Form.Item,
450
- {
451
- label: import_utils.locales.getText("pisell2.text.price"),
452
- name: "total",
453
- rules: [{ required: true }],
454
- extra: useTotal !== ((_f2 = (_e2 = state.service.cacheItem) == null ? void 0 : _e2._extend) == null ? void 0 : _f2.origin_total) && import_utils.locales.getText("page.booking.text.price-extra")(
455
- (0, import_utils.formatAmount)(
456
- (_h2 = (_g2 = state.service.cacheItem) == null ? void 0 : _g2._extend) == null ? void 0 : _h2.origin_total,
457
- 2,
458
- state.amountSymbol
459
- ),
460
- (0, import_utils.formatAmount)(useTotal, 2, state.amountSymbol)
461
- )
547
+ layout: "vertical",
548
+ form,
549
+ onFinish,
550
+ onValuesChange
462
551
  },
463
- /* @__PURE__ */ import_react.default.createElement(
464
- import_materials.PisellAdjustPriceInputNumber,
552
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Row, { style: { width: "100%" }, gutter: [16, 0] }, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { name: "product_name" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name" }, ((_d2 = (_c2 = (_b2 = state.service) == null ? void 0 : _b2.cacheItem) == null ? void 0 : _c2._extend) == null ? void 0 : _d2.product_name) || "-"), /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleEdit }, import_utils.locales.getText("pisell2.text.edit")), !isTerminalBooking && /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleChange }, import_utils.locales.getText("pisell2.text.change"))), /* @__PURE__ */ import_react.default.createElement(
553
+ import_collapsibleList.default,
465
554
  {
466
- style: { width: "100%" },
467
- min: 0,
468
- precision: 2,
469
- prefix: state.amountSymbol,
470
- disabled: state.channelDisabledEdit,
471
- originValue: ((_j2 = (_i2 = state.service.cacheItem) == null ? void 0 : _i2._extend) == null ? void 0 : _j2.origin_total) || 0,
472
- placeholder: ((_l2 = (_k2 = state.service.cacheItem) == null ? void 0 : _k2._extend) == null ? void 0 : _l2.origin_total) || "0"
555
+ style: { marginTop: bundles.length ? "8px" : 0 },
556
+ list: bundles,
557
+ renderItem: (item) => (0, import_utils2.renderBundles)(item, state.amountSymbol)
473
558
  }
474
- )
475
- )), isReason ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
476
- import_antd.Form.Item,
477
- {
478
- label: import_utils.locales.getText("pisell2.text.discount-reason"),
479
- name: "discount_reason"
480
- },
481
- /* @__PURE__ */ import_react.default.createElement(import_antd.Input.TextArea, { size: "large" })
482
- )) : null, state.renderType !== "eventBooking" && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
483
- import_antd.Form.Item,
484
- {
485
- label: import_utils.locales.getText("pisell2.text.start_time"),
486
- name: "start_time",
487
- rules: [{ required: true }]
488
- },
489
- SelectTime ? /* @__PURE__ */ import_react.default.createElement(
490
- SelectTime,
491
- {
492
- slice: (_p2 = (_o2 = (_n2 = (_m2 = state.bookingConfig) == null ? void 0 : _m2.config) == null ? void 0 : _n2.basic) == null ? void 0 : _o2.service_time) == null ? void 0 : _p2.value,
493
- timePickerProps: {
494
- style: { width: "100%" }
495
- },
496
- timeProps: {
497
- style: { zoom: 0.8 }
498
- }
499
- }
500
- ) : null
501
- )), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
502
- import_antd.Form.Item,
503
- {
504
- label: import_utils.locales.getText("pisell2.text.duration"),
505
- name: "duration",
506
- rules: [{ required: true }]
507
- },
508
- /* @__PURE__ */ import_react.default.createElement(import_duration.default, { ...durationProps, timeObj })
509
- )), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
510
- import_antd.Form.Item,
511
- {
512
- required: true,
513
- label: import_utils.locales.getText("pisell2.text.resource")
514
- },
515
- /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-col" }, /* @__PURE__ */ import_react.default.createElement(
516
- import_antd.Button,
559
+ )))), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
560
+ import_antd.Form.Item,
517
561
  {
518
- className: "resource-col-like-wrap",
519
- disabled: !useResource,
520
- onClick: () => {
521
- handleLikeResource(
522
- useLikeStatus === "like" ? "common" : "like"
523
- );
524
- }
562
+ label: import_utils.locales.getText("pisell2.text.price"),
563
+ name: "total",
564
+ rules: [{ required: true }],
565
+ extra: useTotal !== ((_f2 = (_e2 = state.service.cacheItem) == null ? void 0 : _e2._extend) == null ? void 0 : _f2.origin_total) && import_utils.locales.getText("page.booking.text.price-extra")(
566
+ (0, import_utils.formatAmount)(
567
+ (_h2 = (_g2 = state.service.cacheItem) == null ? void 0 : _g2._extend) == null ? void 0 : _h2.origin_total,
568
+ 2,
569
+ state.amountSymbol
570
+ ),
571
+ (0, import_utils.formatAmount)(useTotal, 2, state.amountSymbol)
572
+ )
525
573
  },
526
574
  /* @__PURE__ */ import_react.default.createElement(
527
- import_like.default,
575
+ import_materials.PisellAdjustPriceInputNumber,
528
576
  {
529
- status: useLikeStatus
577
+ style: { width: "100%" },
578
+ min: 0,
579
+ precision: 2,
580
+ prefix: state.amountSymbol,
581
+ disabled: state.channelDisabledEdit,
582
+ originValue: ((_j2 = (_i2 = state.service.cacheItem) == null ? void 0 : _i2._extend) == null ? void 0 : _j2.origin_total) || 0,
583
+ placeholder: ((_l2 = (_k2 = state.service.cacheItem) == null ? void 0 : _k2._extend) == null ? void 0 : _l2.origin_total) || "0"
530
584
  }
531
585
  )
532
- ), /* @__PURE__ */ import_react.default.createElement(
586
+ )), isReason ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
533
587
  import_antd.Form.Item,
534
588
  {
535
- name: "resource",
536
- noStyle: true,
589
+ label: import_utils.locales.getText("pisell2.text.discount-reason"),
590
+ name: "discount_reason"
591
+ },
592
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Input.TextArea, { size: "large" })
593
+ )) : null, showResource && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
594
+ import_antd.Form.Item,
595
+ {
596
+ label: import_utils.locales.getText(
597
+ isDay ? "pisell2.text.start_date" : "pisell2.text.start_time"
598
+ ),
599
+ name: isDay ? "start_date" : "start_time",
537
600
  rules: [{ required: true }]
538
601
  },
539
- /* @__PURE__ */ import_react.default.createElement(
540
- import_antd.Select,
602
+ isDay ? DateCom("start") : SelectTime ? /* @__PURE__ */ import_react.default.createElement(
603
+ SelectTime,
541
604
  {
542
- loading: resourceLoading,
543
- size: "large",
544
- allowClear: true,
545
- showSearch: true,
546
- open: selectOpen,
547
- onDropdownVisibleChange: setSelectOpen,
548
- filterOption: (str, option) => {
549
- return (option.labelText || "").toLowerCase().includes((str || "").toLowerCase());
605
+ slice: (_p2 = (_o2 = (_n2 = (_m2 = state.bookingConfig) == null ? void 0 : _m2.config) == null ? void 0 : _n2.basic) == null ? void 0 : _o2.service_time) == null ? void 0 : _p2.value,
606
+ timePickerProps: {
607
+ style: { width: "100%" }
608
+ },
609
+ timeProps: {
610
+ style: { zoom: 0.8 }
611
+ }
612
+ }
613
+ ) : null
614
+ )), isDay ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
615
+ import_antd.Form.Item,
616
+ {
617
+ label: import_utils.locales.getText(
618
+ isDay ? "pisell2.text.end_date" : "pisell2.text.end_time"
619
+ ),
620
+ name: "end_date",
621
+ rules: [{ required: true }]
622
+ },
623
+ DateCom("end")
624
+ )) : null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
625
+ import_antd.Form.Item,
626
+ {
627
+ label: import_utils.locales.getText("pisell2.text.duration"),
628
+ name: "duration",
629
+ rules: [{ required: true }]
630
+ },
631
+ /* @__PURE__ */ import_react.default.createElement(import_duration.default, { ...durationProps, timeObj })
632
+ )), isDay && (holderLists == null ? void 0 : holderLists.length) > 0 ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
633
+ import_antd.Form.Item,
634
+ {
635
+ label: import_utils.locales.getText("pisell2.text.holder"),
636
+ name: "holder_id",
637
+ rules: [{ required: true }]
638
+ },
639
+ /* @__PURE__ */ import_react.default.createElement(import_holder.default, { size: "large" })
640
+ )) : null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
641
+ import_antd.Form.Item,
642
+ {
643
+ required: true,
644
+ label: import_utils.locales.getText("pisell2.text.resource")
645
+ },
646
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-col" }, /* @__PURE__ */ import_react.default.createElement(
647
+ import_antd.Button,
648
+ {
649
+ className: "resource-col-like-wrap",
650
+ disabled: !useResource,
651
+ onClick: () => {
652
+ handleLikeResource(
653
+ useLikeStatus === "like" ? "common" : "like"
654
+ );
550
655
  }
551
656
  },
552
- renderOptions(
553
- state.service.resources || [],
554
- "form_record_id",
555
- "label",
556
- "resource"
657
+ /* @__PURE__ */ import_react.default.createElement(
658
+ import_like.default,
659
+ {
660
+ status: useLikeStatus
661
+ }
557
662
  )
663
+ ), /* @__PURE__ */ import_react.default.createElement(
664
+ import_antd.Form.Item,
665
+ {
666
+ name: "resource",
667
+ noStyle: true,
668
+ rules: [{ required: true }]
669
+ },
670
+ /* @__PURE__ */ import_react.default.createElement(
671
+ import_antd.Select,
672
+ {
673
+ loading: resourceLoading,
674
+ size: "large",
675
+ allowClear: true,
676
+ showSearch: true,
677
+ open: selectOpen,
678
+ onDropdownVisibleChange: setSelectOpen,
679
+ filterOption: (str, option) => {
680
+ return (option.labelText || "").toLowerCase().includes((str || "").toLowerCase());
681
+ }
682
+ },
683
+ renderOptions(
684
+ state.service.resources || [],
685
+ "form_record_id",
686
+ "label",
687
+ "resource"
688
+ )
689
+ )
690
+ ))
691
+ )), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "quantity" }, /* @__PURE__ */ import_react.default.createElement(import_antd.InputNumber, null)), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "like_status" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Input, null))), isDay && !(0, import_utils5.isAppointment)(state.service.cacheItem, state) ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
692
+ import_antd.Form.Item,
693
+ {
694
+ label: import_utils.locales.getText("pisell2.text.quantity"),
695
+ name: "quantity",
696
+ rules: [{ required: true }]
697
+ },
698
+ /* @__PURE__ */ import_react.default.createElement(
699
+ import_antd.InputNumber,
700
+ {
701
+ size: "large",
702
+ style: { width: "100%" },
703
+ min: 1,
704
+ max: 999999,
705
+ formatter: (value) => {
706
+ if (value !== void 0) {
707
+ return Math.floor(value);
708
+ }
709
+ return value;
710
+ }
711
+ }
558
712
  )
559
- ))
560
- )), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "quantity" }, /* @__PURE__ */ import_react.default.createElement(import_antd.InputNumber, null)), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "like_status" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Input, null)))))), state.renderType !== "eventBooking" && errorList.map((d, i) => {
713
+ )) : null)
714
+ )), showResource && errorList.map((d, i) => {
561
715
  return /* @__PURE__ */ import_react.default.createElement(
562
716
  import_antd.Alert,
563
717
  {
@@ -591,17 +745,17 @@ var Info = (_, ref) => {
591
745
  }, [
592
746
  state.service.changeService,
593
747
  state.service.editModal,
594
- (_s = state.service.cacheItem) == null ? void 0 : _s.autoClose,
748
+ (_t = state.service.cacheItem) == null ? void 0 : _t.autoClose,
595
749
  import_utils.locales,
596
- (_v = (_u = (_t = state.service) == null ? void 0 : _t.cacheItem) == null ? void 0 : _u._extend) == null ? void 0 : _v.product_name,
750
+ (_w = (_v = (_u = state.service) == null ? void 0 : _u.cacheItem) == null ? void 0 : _v._extend) == null ? void 0 : _w.product_name,
597
751
  bundles,
598
752
  state.amountSymbol,
599
753
  state.channelDisabledEdit,
600
- (_x = (_w = state.service.cacheItem) == null ? void 0 : _w._extend) == null ? void 0 : _x.origin_total,
754
+ (_y = (_x = state.service.cacheItem) == null ? void 0 : _x._extend) == null ? void 0 : _y.origin_total,
601
755
  isDiscount,
602
756
  isReason,
603
757
  state.renderType,
604
- (_B = (_A = (_z = (_y = state.bookingConfig) == null ? void 0 : _y.config) == null ? void 0 : _z.basic) == null ? void 0 : _A.service_time) == null ? void 0 : _B.value,
758
+ (_C = (_B = (_A = (_z = state.bookingConfig) == null ? void 0 : _z.config) == null ? void 0 : _A.basic) == null ? void 0 : _B.service_time) == null ? void 0 : _C.value,
605
759
  SelectTime,
606
760
  durationProps,
607
761
  timeObj,
@@ -611,7 +765,11 @@ var Info = (_, ref) => {
611
765
  selectOpen,
612
766
  state.service.resources,
613
767
  errorList,
614
- useTotal
768
+ useTotal,
769
+ useStartDate,
770
+ useEndDate,
771
+ showResource,
772
+ holderLists
615
773
  ]);
616
774
  };
617
775
  var editService_default = (0, import_react.forwardRef)(Info);