@pisell/private-materials 6.4.71 → 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 (113) 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 +6 -6
  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/forms/sendModal/useSendModal.d.ts +1 -1
  17. package/es/components/booking/hooks/useQuotation.js +69 -21
  18. package/es/components/booking/info/model.d.ts +1 -10
  19. package/es/components/booking/info/service/Lists.js +1 -1
  20. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  21. package/es/components/booking/info/service/serve.d.ts +14 -0
  22. package/es/components/booking/info/service/serve.js +22 -1
  23. package/es/components/booking/info/service2/Group/utils.js +2 -0
  24. package/es/components/booking/info/service2/utils.d.ts +1 -33
  25. package/es/components/booking/info/service2/utils.js +75 -29
  26. package/es/components/booking/info/utils.js +5 -0
  27. package/es/components/booking/info2/service/addService/index.js +146 -89
  28. package/es/components/booking/info2/service/addService/utils.d.ts +9 -1
  29. package/es/components/booking/info2/service/addService/utils.js +78 -9
  30. package/es/components/booking/info2/service/editService/index.js +235 -55
  31. package/es/components/booking/info2/utilsByBooking.js +14 -5
  32. package/es/components/booking/model.d.ts +1 -9
  33. package/es/components/booking/notes/model.d.ts +1 -10
  34. package/es/components/booking/payments/model.d.ts +1 -10
  35. package/es/components/booking/utils.d.ts +9 -1
  36. package/es/components/booking/utils.js +23 -0
  37. package/es/components/checkout/hooks/useWalletPass.d.ts +1 -1
  38. package/es/components/eftposPay/hooks.d.ts +1 -1
  39. package/es/components/eftposPay/store/index.d.ts +2 -2
  40. package/es/components/pay/toC/model.d.ts +1 -9
  41. package/es/components/schedules/model.d.ts +1 -9
  42. package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.d.ts +18 -0
  43. package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.js +119 -0
  44. package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.less +0 -0
  45. package/es/components/ticketBooking/components/addServiceVariant/addService.js +283 -138
  46. package/es/components/ticketBooking/components/ticketBooking/index.js +14 -11
  47. package/es/components/ticketBooking/utils/index.d.ts +6 -1
  48. package/es/components/ticketBooking/utils/index.js +21 -3
  49. package/es/components/wallet/Detail/model.d.ts +1 -13
  50. package/es/components/wallet/DiscountCard/model.d.ts +1 -14
  51. package/es/components/wallet/PointCard/model.d.ts +1 -13
  52. package/es/components/wallet/RechargeableCard/model.d.ts +1 -29
  53. package/es/components/wallet/Voucher/model.d.ts +1 -13
  54. package/es/components/wallet/model.d.ts +1 -9
  55. package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.d.ts +9 -0
  56. package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.js +355 -0
  57. package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.less +8 -0
  58. package/es/pro/multiDayTimeSelect/index.d.ts +3 -0
  59. package/es/pro/multiDayTimeSelect/index.js +1 -0
  60. package/es/pro/multiDayTimeSelect/types.d.ts +28 -0
  61. package/es/pro/multiDayTimeSelect/types.js +1 -0
  62. package/lib/components/booking/addons/model.d.ts +1 -10
  63. package/lib/components/booking/components/footer/amount.js +23 -6
  64. package/lib/components/booking/components/footer/utils.d.ts +7 -0
  65. package/lib/components/booking/components/footer/utils.js +23 -11
  66. package/lib/components/booking/forms/model.d.ts +1 -10
  67. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  68. package/lib/components/booking/hooks/useQuotation.js +45 -13
  69. package/lib/components/booking/info/model.d.ts +1 -10
  70. package/lib/components/booking/info/service/Lists.js +1 -1
  71. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  72. package/lib/components/booking/info/service/serve.d.ts +14 -0
  73. package/lib/components/booking/info/service/serve.js +5 -0
  74. package/lib/components/booking/info/service2/Group/utils.js +2 -0
  75. package/lib/components/booking/info/service2/utils.d.ts +1 -33
  76. package/lib/components/booking/info/service2/utils.js +24 -10
  77. package/lib/components/booking/info/utils.js +4 -0
  78. package/lib/components/booking/info2/service/addService/index.js +22 -3
  79. package/lib/components/booking/info2/service/addService/utils.d.ts +9 -1
  80. package/lib/components/booking/info2/service/addService/utils.js +47 -9
  81. package/lib/components/booking/info2/service/editService/index.js +191 -31
  82. package/lib/components/booking/info2/utilsByBooking.js +19 -8
  83. package/lib/components/booking/model.d.ts +1 -9
  84. package/lib/components/booking/notes/model.d.ts +1 -10
  85. package/lib/components/booking/payments/model.d.ts +1 -10
  86. package/lib/components/booking/utils.d.ts +9 -1
  87. package/lib/components/booking/utils.js +15 -0
  88. package/lib/components/checkout/hooks/useWalletPass.d.ts +1 -1
  89. package/lib/components/eftposPay/hooks.d.ts +1 -1
  90. package/lib/components/eftposPay/store/index.d.ts +2 -2
  91. package/lib/components/pay/toC/model.d.ts +1 -9
  92. package/lib/components/schedules/model.d.ts +1 -9
  93. package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.d.ts +18 -0
  94. package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.js +118 -0
  95. package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.less +0 -0
  96. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +185 -119
  97. package/lib/components/ticketBooking/components/ticketBooking/index.js +0 -16
  98. package/lib/components/ticketBooking/utils/index.d.ts +6 -1
  99. package/lib/components/ticketBooking/utils/index.js +11 -1
  100. package/lib/components/wallet/Detail/model.d.ts +1 -13
  101. package/lib/components/wallet/DiscountCard/model.d.ts +1 -14
  102. package/lib/components/wallet/PointCard/model.d.ts +1 -13
  103. package/lib/components/wallet/RechargeableCard/model.d.ts +1 -29
  104. package/lib/components/wallet/Voucher/model.d.ts +1 -13
  105. package/lib/components/wallet/model.d.ts +1 -9
  106. package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.d.ts +9 -0
  107. package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.js +304 -0
  108. package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.less +8 -0
  109. package/lib/pro/multiDayTimeSelect/index.d.ts +3 -0
  110. package/lib/pro/multiDayTimeSelect/index.js +35 -0
  111. package/lib/pro/multiDayTimeSelect/types.d.ts +28 -0
  112. package/lib/pro/multiDayTimeSelect/types.js +17 -0
  113. package/package.json +13 -13
@@ -1,4 +1,7 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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 e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
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 _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); }
3
6
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
7
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -23,7 +26,7 @@ import { Context } from "../../../info/model";
23
26
  import Duration from "../../../materiels/duration";
24
27
  import Capacity from "./Capacity";
25
28
  import Resources from "./Resources";
26
- import { Input, Button, Row, Col, Form, InputNumber } from 'antd';
29
+ import { Input, Button, Row, Col, Form, InputNumber, DatePicker } from 'antd';
27
30
  import "./index.less";
28
31
  import CollapsibleList from "../../../components/collapsibleList";
29
32
  import { renderBundles } from "../../../components/collapsibleList/utils";
@@ -32,16 +35,20 @@ import { useUpdateEffect, useMemoizedFn, useDebounceFn } from 'ahooks';
32
35
  // import SelectTime from "../../../../../../../materials/src/components/select-time";
33
36
  import { ConfigProvider, Iconfont } from '@pisell/materials';
34
37
  import { addService, genServiceKey, getIsShowNumber } from "../../../../ticketBooking/utils";
35
- import { isNormalProductByDurationSchedule } from "../../../info/service2/utils";
38
+ import { disabledDate as _disabledDate, isNormalProductByDurationSchedule } from "../../../info/service2/utils";
36
39
  import { editSessionProduct } from "../../../info/utils";
37
- import { deleteCacheParams, getProductTotalPrice, getServiceTimes, isSessionProduct } from "../../../utils";
40
+ import { deleteCacheParams, getDays, getProductTotalPrice, getServiceTimes, isSessionProduct } from "../../../utils";
38
41
  import { getErrorList, getIsNoSpecAndPackage } from "../../utilsByBooking";
39
- import { formatResources, getDurationProps, getFlexibleOption, getTimeObj, setDefaultCapacitys } from "../addService/utils";
42
+ import { formatResources, getDurationProps, getFlexibleOption, getMultiDay, getTimeObj, setDefaultCapacitys } from "../addService/utils";
40
43
  import NoteModal from "../../../../../plus/noteModal";
41
44
  import { DiscountKeyboard } from "../../../../../pro/priceKeyboard";
45
+ import EditTabs from "../../../info/service/editService/EditTabs";
46
+ import BookingList from "../../../info/service/editService/BookingList";
47
+ import dayjs from "dayjs";
48
+ import { createBookingItemsByGroup, getGroupTotalPrice } from "../../../info/service2/Group/utils";
42
49
  var submitLock = false;
43
50
  var Info = function Info(_, ref) {
44
- var _state$service4, _state$bookingConfig2, _state$bookingConfig3, _state$service$cacheI5, _state$service$cacheI6, _state$service6, _window$BaseMaterials, _state$service8, _state$service$cacheI11, _state$bookingConfig5, _state$service$cacheI12, _state$service$cacheI13, _state$service9, _state$service$resour2, _state$service$cacheI14, _state$service$cacheI15;
51
+ var _state$service4, _state$bookingConfig2, _state$bookingConfig3, _state$service$cacheI5, _state$service$cacheI7, _state$service6, _window$BaseMaterials, _state$service8, _state$service$cacheI12, _state$bookingConfig5, _state$service$cacheI13, _state$service$cacheI14, _state$service9, _state$service$resour2, _state$service$cacheI15, _state$service$cacheI16;
45
52
  var _Form$useForm = Form.useForm(),
46
53
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
47
54
  form = _Form$useForm2[0];
@@ -50,6 +57,8 @@ var Info = function Info(_, ref) {
50
57
  var useStartTime = Form.useWatch('start_time', form);
51
58
  var useDuration = Form.useWatch('duration', form);
52
59
  var useNote = Form.useWatch('note', form);
60
+ var useStartDate = Form.useWatch('start_date', form);
61
+ var useEndDate = Form.useWatch('end_date', form);
53
62
  var _useContext = useContext(Context),
54
63
  state = _useContext.state,
55
64
  dispatch = _useContext.dispatch;
@@ -63,6 +72,11 @@ var Info = function Info(_, ref) {
63
72
  _useState4 = _slicedToArray(_useState3, 2),
64
73
  open = _useState4[0],
65
74
  setOpen = _useState4[1];
75
+ // 当前tab 跨日预约时展示tabs
76
+ var _useState5 = useState('batch_edit'),
77
+ _useState6 = _slicedToArray(_useState5, 2),
78
+ currentTab = _useState6[0],
79
+ setCurrentTab = _useState6[1];
66
80
  useEffect(function () {
67
81
  window.openBookingEditModal = function () {
68
82
  setOpen(true);
@@ -149,6 +163,7 @@ var Info = function Info(_, ref) {
149
163
  */
150
164
  var timeObj = useMemo(function () {
151
165
  var val = getTimeObj({
166
+ cacheItem: getCurrentCacheItem(),
152
167
  durationProps: durationProps,
153
168
  useStartTime: useStartTime,
154
169
  currentResource: currentResource,
@@ -240,7 +255,7 @@ var Info = function Info(_, ref) {
240
255
  * @Date: 2024-01-09 14:04
241
256
  */
242
257
  var onFinish = function onFinish(values) {
243
- var _resourcesRef$current, _item$_extend, _state$service$cacheI3, _window$closeBookingE2, _window2;
258
+ var _resourcesRef$current, _item$_extend, _item$_extend2, _state$service$cacheI3, _window$closeBookingE2, _window2;
244
259
  var isSuccess = (_resourcesRef$current = resourcesRef.current) === null || _resourcesRef$current === void 0 ? void 0 : _resourcesRef$current.check();
245
260
  if (isShowTimeAndResource && !isSuccess) {
246
261
  return;
@@ -264,13 +279,22 @@ var Info = function Info(_, ref) {
264
279
  quantity: values.quantity
265
280
  })
266
281
  }, values);
267
- var _getServiceTimes = getServiceTimes({
268
- _extend: _extend
269
- }),
270
- startDate = _getServiceTimes.startDate,
271
- endDate = _getServiceTimes.endDate;
272
- _extend.startDate = startDate;
273
- _extend.endDate = endDate;
282
+
283
+ // 跨日预约商品
284
+ if (isEditGroup) {
285
+ // 更新商品数量和更新日期
286
+ _extend.quantity = 1;
287
+ _extend.startDate = _extend === null || _extend === void 0 ? void 0 : _extend.start_date;
288
+ _extend.endDate = _extend === null || _extend === void 0 ? void 0 : _extend.end_date;
289
+ } else {
290
+ var _getServiceTimes = getServiceTimes({
291
+ _extend: _extend
292
+ }),
293
+ startDate = _getServiceTimes.startDate,
294
+ endDate = _getServiceTimes.endDate;
295
+ _extend.startDate = startDate;
296
+ _extend.endDate = endDate;
297
+ }
274
298
  if (_extend.bundle_edit !== undefined) {
275
299
  _extend.bundle_edit = 1;
276
300
  }
@@ -278,23 +302,31 @@ var Info = function Info(_, ref) {
278
302
  _item._time = new Date().getTime();
279
303
  _item._serviceKey = genServiceKey(_item);
280
304
  var _id = _item === null || _item === void 0 ? void 0 : _item._id;
281
-
282
- // 判断是新增还是编辑
283
- if (!_list.some(function (d) {
284
- return d._id === _id;
285
- })) {
286
- var detail = addService(_list, _item, state);
287
- _list = detail.list;
305
+ var groupId = _item === null || _item === void 0 || (_item$_extend2 = _item._extend) === null || _item$_extend2 === void 0 ? void 0 : _item$_extend2.groupId;
306
+ if (groupId) {
307
+ _list = _list.filter(function (d) {
308
+ var _d$_extend;
309
+ return ((_d$_extend = d._extend) === null || _d$_extend === void 0 ? void 0 : _d$_extend.groupId) !== groupId;
310
+ });
311
+ _list = _list.concat(createBookingItemsByGroup(_item, true));
288
312
  } else {
289
- // 手动改价时移除优惠券使用
290
- if (isChangeTotal.current) {
291
- delete _item.discount_list;
313
+ // 判断是新增还是编辑
314
+ if (!_list.some(function (d) {
315
+ return d._id === _id;
316
+ })) {
317
+ var detail = addService(_list, _item, state);
318
+ _list = detail.list;
319
+ } else {
320
+ // 手动改价时移除优惠券使用
321
+ if (isChangeTotal.current) {
322
+ delete _item.discount_list;
323
+ }
324
+ _list = _list.map(function (d) {
325
+ return d._id === _id ? _objectSpread(_objectSpread({}, _item), {}, {
326
+ new: 0
327
+ }) : d;
328
+ });
292
329
  }
293
- _list = _list.map(function (d) {
294
- return d._id === _id ? _objectSpread(_objectSpread({}, _item), {}, {
295
- new: 0
296
- }) : d;
297
- });
298
330
  }
299
331
  deleteCacheParams();
300
332
  console.log('_onFinish', _list);
@@ -330,6 +362,7 @@ var Info = function Info(_, ref) {
330
362
  var setEditData = useMemoizedFn(function (_cacheItem, open, openProductDetail) {
331
363
  console.timeEnd('handleChange');
332
364
  console.log('setEditDatasetEditData', _cacheItem, open);
365
+ setCurrentTab('batch_edit');
333
366
  isChangeTotal.current = false;
334
367
  var cacheItem = _cacheItem || state.service.cacheItem;
335
368
  var values = cacheItem._extend;
@@ -387,9 +420,10 @@ var Info = function Info(_, ref) {
387
420
  return cPrice !== oPrice;
388
421
  }, [useTotal, (_state$service$cacheI5 = state.service.cacheItem) === null || _state$service$cacheI5 === void 0 || (_state$service$cacheI5 = _state$service$cacheI5._extend) === null || _state$service$cacheI5 === void 0 ? void 0 : _state$service$cacheI5.origin_total]);
389
422
  var getResources = function getResources() {
423
+ var _state$service$cacheI6;
390
424
  var res = formatResources({
391
425
  cacheItem: getCurrentCacheItem(),
392
- resourcesOrigin: state.service.cacheItem._data.resourcesOrigin
426
+ resourcesOrigin: (_state$service$cacheI6 = state.service.cacheItem) === null || _state$service$cacheI6 === void 0 || (_state$service$cacheI6 = _state$service$cacheI6._data) === null || _state$service$cacheI6 === void 0 ? void 0 : _state$service$cacheI6.resourcesOrigin
393
427
  });
394
428
  dispatch({
395
429
  type: 'setService',
@@ -459,7 +493,7 @@ var Info = function Info(_, ref) {
459
493
  */
460
494
  useEffect(function () {
461
495
  getDiscount();
462
- }, [useTotal, (_state$service$cacheI6 = state.service.cacheItem) === null || _state$service$cacheI6 === void 0 || (_state$service$cacheI6 = _state$service$cacheI6._extend) === null || _state$service$cacheI6 === void 0 ? void 0 : _state$service$cacheI6.origin_total]);
496
+ }, [useTotal, (_state$service$cacheI7 = state.service.cacheItem) === null || _state$service$cacheI7 === void 0 || (_state$service$cacheI7 = _state$service$cacheI7._extend) === null || _state$service$cacheI7 === void 0 ? void 0 : _state$service$cacheI7.origin_total]);
463
497
  var bundles = useMemo(function () {
464
498
  var _state$service5;
465
499
  return ((_state$service5 = state.service) === null || _state$service5 === void 0 || (_state$service5 = _state$service5.cacheItem) === null || _state$service5 === void 0 || (_state$service5 = _state$service5._extend) === null || _state$service5 === void 0 || (_state$service5 = _state$service5.other) === null || _state$service5 === void 0 ? void 0 : _state$service5.bundle) || [];
@@ -483,11 +517,11 @@ var Info = function Info(_, ref) {
483
517
  var isSession = isSessionProduct(item);
484
518
  var sessionValue = {};
485
519
  if (isSession) {
486
- var _item$_extend2, _item$_extend3, _item$_extend4;
520
+ var _item$_extend3, _item$_extend4, _item$_extend5;
487
521
  sessionValue.startEndTime = {
488
- startDate: item === null || item === void 0 || (_item$_extend2 = item._extend) === null || _item$_extend2 === void 0 ? void 0 : _item$_extend2.start_date,
489
- endDate: item === null || item === void 0 || (_item$_extend3 = item._extend) === null || _item$_extend3 === void 0 ? void 0 : _item$_extend3.end_date,
490
- duration: item === null || item === void 0 || (_item$_extend4 = item._extend) === null || _item$_extend4 === void 0 ? void 0 : _item$_extend4.duration
522
+ startDate: item === null || item === void 0 || (_item$_extend3 = item._extend) === null || _item$_extend3 === void 0 ? void 0 : _item$_extend3.start_date,
523
+ endDate: item === null || item === void 0 || (_item$_extend4 = item._extend) === null || _item$_extend4 === void 0 ? void 0 : _item$_extend4.end_date,
524
+ duration: item === null || item === void 0 || (_item$_extend5 = item._extend) === null || _item$_extend5 === void 0 ? void 0 : _item$_extend5.duration
491
525
  };
492
526
  }
493
527
 
@@ -614,6 +648,17 @@ var Info = function Info(_, ref) {
614
648
  }, [state.renderType, isNormalProduct]);
615
649
  var SelectTime = (_window$BaseMaterials = window.BaseMaterials) === null || _window$BaseMaterials === void 0 ? void 0 : _window$BaseMaterials.SelectTime;
616
650
  var isNoSpecAndPackage = getIsNoSpecAndPackage(state.service.cacheItem);
651
+
652
+ // 商品组数据
653
+ var items = useMemo(function () {
654
+ var _getCurrentCacheItem;
655
+ return ((_getCurrentCacheItem = getCurrentCacheItem()) === null || _getCurrentCacheItem === void 0 || (_getCurrentCacheItem = _getCurrentCacheItem._extend) === null || _getCurrentCacheItem === void 0 ? void 0 : _getCurrentCacheItem.items) || [];
656
+ }, [getCurrentCacheItem(), state.service.cacheItem, currentResource, useTotal]);
657
+
658
+ // 是否是编辑组
659
+ var isEditGroup = useMemo(function () {
660
+ return items.length;
661
+ }, [items]);
617
662
  var handleNoteConfirm = function handleNoteConfirm(noteValue) {
618
663
  form.setFieldsValue({
619
664
  note: noteValue
@@ -657,7 +702,7 @@ var Info = function Info(_, ref) {
657
702
  }))));
658
703
  }, [(_state$service8 = state.service) === null || _state$service8 === void 0 || (_state$service8 = _state$service8.cacheItem) === null || _state$service8 === void 0 || (_state$service8 = _state$service8._extend) === null || _state$service8 === void 0 ? void 0 : _state$service8.product_name, bundles, state.amountSymbol, state.isBookingCreatePage]);
659
704
  var price = useMemo(function () {
660
- var _state$service$cacheI7, _state$service$cacheI8, _state$service$cacheI9, _state$service$cacheI10;
705
+ var _state$service$cacheI8, _state$service$cacheI9, _state$service$cacheI10, _state$service$cacheI11;
661
706
  return /*#__PURE__*/React.createElement(Col, {
662
707
  span: 24
663
708
  }, /*#__PURE__*/React.createElement(Form.Item, {
@@ -666,7 +711,7 @@ var Info = function Info(_, ref) {
666
711
  rules: [{
667
712
  required: true
668
713
  }],
669
- extra: useTotal !== ((_state$service$cacheI7 = state.service.cacheItem) === null || _state$service$cacheI7 === void 0 || (_state$service$cacheI7 = _state$service$cacheI7._extend) === null || _state$service$cacheI7 === void 0 ? void 0 : _state$service$cacheI7.origin_total) && locales.getText('page.booking.text.price-extra')(formatAmount((_state$service$cacheI8 = state.service.cacheItem) === null || _state$service$cacheI8 === void 0 || (_state$service$cacheI8 = _state$service$cacheI8._extend) === null || _state$service$cacheI8 === void 0 ? void 0 : _state$service$cacheI8.origin_total, 2, state.amountSymbol), formatAmount(useTotal, 2, state.amountSymbol))
714
+ extra: useTotal !== ((_state$service$cacheI8 = state.service.cacheItem) === null || _state$service$cacheI8 === void 0 || (_state$service$cacheI8 = _state$service$cacheI8._extend) === null || _state$service$cacheI8 === void 0 ? void 0 : _state$service$cacheI8.origin_total) && locales.getText('page.booking.text.price-extra')(formatAmount((_state$service$cacheI9 = state.service.cacheItem) === null || _state$service$cacheI9 === void 0 || (_state$service$cacheI9 = _state$service$cacheI9._extend) === null || _state$service$cacheI9 === void 0 ? void 0 : _state$service$cacheI9.origin_total, 2, state.amountSymbol), formatAmount(useTotal, 2, state.amountSymbol))
670
715
  }, /*#__PURE__*/React.createElement(DiscountKeyboard.InputNumber, {
671
716
  style: {
672
717
  width: '100%'
@@ -676,8 +721,8 @@ var Info = function Info(_, ref) {
676
721
  prefix: state.amountSymbol,
677
722
  onChange: handleTotalChange,
678
723
  disabled: state.channelDisabledEdit,
679
- originalValue: ((_state$service$cacheI9 = state.service.cacheItem) === null || _state$service$cacheI9 === void 0 || (_state$service$cacheI9 = _state$service$cacheI9._extend) === null || _state$service$cacheI9 === void 0 ? void 0 : _state$service$cacheI9.origin_total) || 0,
680
- placeholder: ((_state$service$cacheI10 = state.service.cacheItem) === null || _state$service$cacheI10 === void 0 || (_state$service$cacheI10 = _state$service$cacheI10._extend) === null || _state$service$cacheI10 === void 0 ? void 0 : _state$service$cacheI10.origin_total) || '0',
724
+ originalValue: ((_state$service$cacheI10 = state.service.cacheItem) === null || _state$service$cacheI10 === void 0 || (_state$service$cacheI10 = _state$service$cacheI10._extend) === null || _state$service$cacheI10 === void 0 ? void 0 : _state$service$cacheI10.origin_total) || 0,
725
+ placeholder: ((_state$service$cacheI11 = state.service.cacheItem) === null || _state$service$cacheI11 === void 0 || (_state$service$cacheI11 = _state$service$cacheI11._extend) === null || _state$service$cacheI11 === void 0 ? void 0 : _state$service$cacheI11.origin_total) || '0',
681
726
  size: "large",
682
727
  keyboardProps: {
683
728
  containerProps: {
@@ -686,7 +731,7 @@ var Info = function Info(_, ref) {
686
731
  selectType: 'dark'
687
732
  }
688
733
  })));
689
- }, [useTotal, (_state$service$cacheI11 = state.service.cacheItem) === null || _state$service$cacheI11 === void 0 || (_state$service$cacheI11 = _state$service$cacheI11._extend) === null || _state$service$cacheI11 === void 0 ? void 0 : _state$service$cacheI11.origin_total, state.amountSymbol, state.channelDisabledEdit]);
734
+ }, [useTotal, (_state$service$cacheI12 = state.service.cacheItem) === null || _state$service$cacheI12 === void 0 || (_state$service$cacheI12 = _state$service$cacheI12._extend) === null || _state$service$cacheI12 === void 0 ? void 0 : _state$service$cacheI12.origin_total, state.amountSymbol, state.channelDisabledEdit]);
690
735
  var reason = useMemo(function () {
691
736
  return isReason ? /*#__PURE__*/React.createElement(Col, {
692
737
  span: 24
@@ -697,17 +742,30 @@ var Info = function Info(_, ref) {
697
742
  size: "large"
698
743
  }))) : null;
699
744
  }, [isReason]);
745
+ var DateCom = function DateCom(position) {
746
+ return /*#__PURE__*/React.createElement(DatePicker, {
747
+ className: "pisell-lowcode__booking-service-select-date",
748
+ disabledDate: function disabledDate(current) {
749
+ return _disabledDate(current, position, state.date.value);
750
+ },
751
+ size: "large",
752
+ style: {
753
+ width: '100%'
754
+ },
755
+ format: state.locale === 'en' ? 'DD/MM/YYYY' : 'YYYY-MM-DD'
756
+ });
757
+ };
700
758
  var startTime = useMemo(function () {
701
759
  var _state$bookingConfig4;
702
760
  return /*#__PURE__*/React.createElement(Col, {
703
761
  span: 12
704
762
  }, /*#__PURE__*/React.createElement(Form.Item, {
705
- label: locales.getText('pisell2.text.start_time'),
706
- name: "start_time",
763
+ label: locales.getText(isEditGroup ? 'pisell2.text.start_date' : 'pisell2.text.start_time'),
764
+ name: isEditGroup ? 'start_date' : 'start_time',
707
765
  rules: [{
708
766
  required: true
709
767
  }]
710
- }, SelectTime ? /*#__PURE__*/React.createElement(SelectTime, {
768
+ }, isEditGroup ? DateCom('start') : SelectTime ? /*#__PURE__*/React.createElement(SelectTime, {
711
769
  slice: (_state$bookingConfig4 = state.bookingConfig) === null || _state$bookingConfig4 === void 0 || (_state$bookingConfig4 = _state$bookingConfig4.config) === null || _state$bookingConfig4 === void 0 || (_state$bookingConfig4 = _state$bookingConfig4.basic) === null || _state$bookingConfig4 === void 0 || (_state$bookingConfig4 = _state$bookingConfig4.service_time) === null || _state$bookingConfig4 === void 0 ? void 0 : _state$bookingConfig4.value,
712
770
  timePickerProps: {
713
771
  style: {
@@ -720,11 +778,22 @@ var Info = function Info(_, ref) {
720
778
  }
721
779
  }
722
780
  }) : null));
723
- }, [SelectTime, (_state$bookingConfig5 = state.bookingConfig) === null || _state$bookingConfig5 === void 0 || (_state$bookingConfig5 = _state$bookingConfig5.config) === null || _state$bookingConfig5 === void 0 || (_state$bookingConfig5 = _state$bookingConfig5.basic) === null || _state$bookingConfig5 === void 0 || (_state$bookingConfig5 = _state$bookingConfig5.service_time) === null || _state$bookingConfig5 === void 0 ? void 0 : _state$bookingConfig5.value]);
781
+ }, [SelectTime, (_state$bookingConfig5 = state.bookingConfig) === null || _state$bookingConfig5 === void 0 || (_state$bookingConfig5 = _state$bookingConfig5.config) === null || _state$bookingConfig5 === void 0 || (_state$bookingConfig5 = _state$bookingConfig5.basic) === null || _state$bookingConfig5 === void 0 || (_state$bookingConfig5 = _state$bookingConfig5.service_time) === null || _state$bookingConfig5 === void 0 ? void 0 : _state$bookingConfig5.value, isEditGroup]);
782
+ var endTime = useMemo(function () {
783
+ if (!isEditGroup) {
784
+ return null;
785
+ }
786
+ return /*#__PURE__*/React.createElement(Col, {
787
+ span: 12
788
+ }, /*#__PURE__*/React.createElement(Form.Item, {
789
+ label: locales.getText('pisell2.text.end_date'),
790
+ name: "end_date"
791
+ }, DateCom('end')));
792
+ }, [isEditGroup]);
724
793
  var duration = useMemo(function () {
725
794
  console.log('render form duration');
726
795
  return /*#__PURE__*/React.createElement(Col, {
727
- span: 12
796
+ span: isEditGroup ? 24 : 12
728
797
  }, /*#__PURE__*/React.createElement(Form.Item, {
729
798
  label: locales.getText('pisell2.text.duration'),
730
799
  name: "duration",
@@ -734,7 +803,7 @@ var Info = function Info(_, ref) {
734
803
  }, /*#__PURE__*/React.createElement(Duration, _extends({}, durationProps, {
735
804
  timeObj: timeObj
736
805
  }))));
737
- }, [durationProps, timeObj]);
806
+ }, [durationProps, timeObj, isEditGroup]);
738
807
  var resource = useMemo(function () {
739
808
  console.log('render form resource');
740
809
  return /*#__PURE__*/React.createElement(Form.Item, {
@@ -750,7 +819,7 @@ var Info = function Info(_, ref) {
750
819
  // useStartTime={useStartTime}
751
820
  }));
752
821
  // 只监听内部使用值
753
- }, [state.renderType, (_state$service$cacheI12 = state.service.cacheItem) === null || _state$service$cacheI12 === void 0 || (_state$service$cacheI12 = _state$service$cacheI12._data) === null || _state$service$cacheI12 === void 0 ? void 0 : _state$service$cacheI12.resources, (_state$service$cacheI13 = state.service.cacheItem) === null || _state$service$cacheI13 === void 0 || (_state$service$cacheI13 = _state$service$cacheI13._data) === null || _state$service$cacheI13 === void 0 ? void 0 : _state$service$cacheI13.resourceMaps]);
822
+ }, [state.renderType, (_state$service$cacheI13 = state.service.cacheItem) === null || _state$service$cacheI13 === void 0 || (_state$service$cacheI13 = _state$service$cacheI13._data) === null || _state$service$cacheI13 === void 0 ? void 0 : _state$service$cacheI13.resources, (_state$service$cacheI14 = state.service.cacheItem) === null || _state$service$cacheI14 === void 0 || (_state$service$cacheI14 = _state$service$cacheI14._data) === null || _state$service$cacheI14 === void 0 ? void 0 : _state$service$cacheI14.resourceMaps]);
754
823
  var capacity = useMemo(function () {
755
824
  return /*#__PURE__*/React.createElement(Form.Item, {
756
825
  noStyle: true,
@@ -837,11 +906,11 @@ var Info = function Info(_, ref) {
837
906
  }, locales.getText('pisell2.text.apply')));
838
907
  }, [(_state$service$resour2 = state.service.resourcesOrigin) === null || _state$service$resour2 === void 0 ? void 0 : _state$service$resour2.length, isNormalProduct]);
839
908
  console.log('render edit');
840
- console.log(state.service.editModal && !((_state$service$cacheI14 = state.service.cacheItem) !== null && _state$service$cacheI14 !== void 0 && _state$service$cacheI14.autoClose), performance.now() - window.pp1, '打开商品1');
841
- var _useState5 = useState(false),
842
- _useState6 = _slicedToArray(_useState5, 2),
843
- val = _useState6[0],
844
- setVal = _useState6[1];
909
+ console.log(state.service.editModal && !((_state$service$cacheI15 = state.service.cacheItem) !== null && _state$service$cacheI15 !== void 0 && _state$service$cacheI15.autoClose), performance.now() - window.pp1, '打开商品1');
910
+ var _useState7 = useState(false),
911
+ _useState8 = _slicedToArray(_useState7, 2),
912
+ val = _useState8[0],
913
+ setVal = _useState8[1];
845
914
  useEffect(function () {
846
915
  if (isShowTimeAndResource) {
847
916
  setTimeout(function () {
@@ -851,6 +920,113 @@ var Info = function Info(_, ref) {
851
920
  setVal(false);
852
921
  }
853
922
  }, [isShowTimeAndResource]);
923
+ var groupDom = useMemo(function () {
924
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !!isEditGroup && /*#__PURE__*/React.createElement(EditTabs, {
925
+ value: currentTab,
926
+ onChange: function onChange(e) {
927
+ console.log(e);
928
+ setCurrentTab(e);
929
+ }
930
+ }), /*#__PURE__*/React.createElement("div", {
931
+ className: "",
932
+ style: {
933
+ display: currentTab === 'booking_list' ? 'block' : 'none'
934
+ }
935
+ }, /*#__PURE__*/React.createElement(BookingList, {
936
+ items: items
937
+ })));
938
+ }, [isEditGroup, currentTab, items]);
939
+ var updateMultiDay = /*#__PURE__*/function () {
940
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
941
+ var start_date, end_date, duration, cacheItem, fieldsValues;
942
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
943
+ while (1) switch (_context.prev = _context.next) {
944
+ case 0:
945
+ start_date = _ref.start_date, end_date = _ref.end_date, duration = _ref.duration;
946
+ _context.next = 3;
947
+ return getMultiDay({
948
+ start_date: start_date,
949
+ end_date: end_date,
950
+ state: state,
951
+ cacheItem: getCurrentCacheItem()
952
+ });
953
+ case 3:
954
+ cacheItem = _context.sent;
955
+ // 兼容时长为空的情况
956
+ if (duration !== undefined) {
957
+ cacheItem._extend.duration = duration;
958
+ }
959
+ cacheItem._extend.items = createBookingItemsByGroup(cacheItem);
960
+ cacheItem._extend = _objectSpread(_objectSpread({}, cacheItem._extend), getGroupTotalPrice(cacheItem._extend.items));
961
+ // 覆盖商品
962
+ dispatch({
963
+ type: 'setService',
964
+ payload: {
965
+ cacheItem: cacheItem
966
+ }
967
+ });
968
+ fieldsValues = {
969
+ total: cacheItem._extend.total
970
+ }; // 更新表单内的商品价格
971
+ form.setFieldsValue(fieldsValues);
972
+ case 10:
973
+ case "end":
974
+ return _context.stop();
975
+ }
976
+ }, _callee);
977
+ }));
978
+ return function updateMultiDay(_x) {
979
+ return _ref2.apply(this, arguments);
980
+ };
981
+ }();
982
+ var onValuesChange = function onValuesChange(changedValues) {
983
+ // 跨日预约
984
+ if (isEditGroup) {
985
+ // 根据时长更新结束时间
986
+ if (changedValues !== null && changedValues !== void 0 && changedValues.duration) {
987
+ var end_date = dayjs(useStartDate).add(changedValues === null || changedValues === void 0 ? void 0 : changedValues.duration, 'day');
988
+ form.setFieldsValue({
989
+ end_date: end_date
990
+ });
991
+
992
+ // 跨日预约报价单
993
+ return updateMultiDay({
994
+ start_date: useStartDate,
995
+ end_date: end_date,
996
+ duration: changedValues === null || changedValues === void 0 ? void 0 : changedValues.duration
997
+ });
998
+ }
999
+
1000
+ // 验证结束日期
1001
+ if (changedValues !== null && changedValues !== void 0 && changedValues.start_date) {
1002
+ var startDate = dayjs(changedValues === null || changedValues === void 0 ? void 0 : changedValues.start_date);
1003
+ var endDate = dayjs(useEndDate);
1004
+ // 如果开始日期大于结束日期,则清空数据
1005
+ if (startDate.isAfter(endDate)) {
1006
+ return form.setFieldsValue({
1007
+ duration: undefined,
1008
+ end_date: undefined
1009
+ });
1010
+ }
1011
+ }
1012
+
1013
+ // 计算时长
1014
+ if (changedValues !== null && changedValues !== void 0 && changedValues.start_date || changedValues !== null && changedValues !== void 0 && changedValues.end_date) {
1015
+ var _cacheItem2 = getCurrentCacheItem();
1016
+ var _duration = getDays(_cacheItem2, 'days');
1017
+ var start_date = (changedValues === null || changedValues === void 0 ? void 0 : changedValues.start_date) || useStartDate;
1018
+ var _end_date = (changedValues === null || changedValues === void 0 ? void 0 : changedValues.end_date) || useEndDate;
1019
+ updateMultiDay({
1020
+ start_date: start_date,
1021
+ end_date: _end_date,
1022
+ duration: _duration
1023
+ });
1024
+ return form.setFieldsValue({
1025
+ duration: _duration
1026
+ });
1027
+ }
1028
+ }
1029
+ };
854
1030
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Drawer, {
855
1031
  titleNoWrap: true
856
1032
  //通过zIndex的方式控制 添加商品 和 编辑服务弹窗的上下层级
@@ -858,7 +1034,7 @@ var Info = function Info(_, ref) {
858
1034
  zIndex: state.service.changeService ? 999 : 1000,
859
1035
  forceRender: true,
860
1036
  mask: state.drawerMask,
861
- open: !isNoSpecAndPackage && state.service.editModal && !((_state$service$cacheI15 = state.service.cacheItem) !== null && _state$service$cacheI15 !== void 0 && _state$service$cacheI15.autoClose),
1037
+ open: !isNoSpecAndPackage && state.service.editModal && !((_state$service$cacheI16 = state.service.cacheItem) !== null && _state$service$cacheI16 !== void 0 && _state$service$cacheI16.autoClose),
862
1038
  title: locales.getText('pisell2.text.edit-service'),
863
1039
  onClose: function onClose() {
864
1040
  var _window$closeBookingE4, _window4;
@@ -874,16 +1050,20 @@ var Info = function Info(_, ref) {
874
1050
  }
875
1051
  }, /*#__PURE__*/React.createElement("div", {
876
1052
  className: "pisell-lowcode__booking-service-body-edit"
877
- }, /*#__PURE__*/React.createElement(Form, {
1053
+ }, groupDom, /*#__PURE__*/React.createElement(Form, {
878
1054
  layout: "vertical",
879
1055
  form: form,
880
- onFinish: onFinish
1056
+ onFinish: onFinish,
1057
+ onValuesChange: onValuesChange,
1058
+ style: {
1059
+ display: currentTab === 'batch_edit' ? 'block' : 'none'
1060
+ }
881
1061
  }, /*#__PURE__*/React.createElement(Row, {
882
1062
  style: {
883
1063
  width: '100%'
884
1064
  },
885
1065
  gutter: [16, 0]
886
- }, productName, price, reason, val && isShowTimeAndResource && /*#__PURE__*/React.createElement(React.Fragment, null, startTime, duration, resource, capacity, hiddenQuantity), isNormalProduct && quantity), /*#__PURE__*/React.createElement(Form.Item, {
1066
+ }, productName, price, reason, val && isShowTimeAndResource && /*#__PURE__*/React.createElement(React.Fragment, null, startTime, endTime, duration, resource, capacity, hiddenQuantity), isNormalProduct && quantity), /*#__PURE__*/React.createElement(Form.Item, {
887
1067
  noStyle: true,
888
1068
  name: "note"
889
1069
  }, noteModalOpen && /*#__PURE__*/React.createElement(NoteModal, {
@@ -11,6 +11,7 @@ import dayjs from 'dayjs';
11
11
  import { locales } from "@pisell/utils";
12
12
  import { getCacheParams, getServeStartTime, getLastServer, flexibleObj, getServiceTimes, findNextDuration, getDays, isSessionProduct } from "../utils";
13
13
  import { isOption } from "../../ticketBooking/components/addServiceVariant/utils";
14
+ import { isMultiDayProduct } from "./service/addService/utils";
14
15
 
15
16
  // 获取当前剩余量
16
17
  var getUseableEventCount = function getUseableEventCount(eventList, current) {
@@ -320,7 +321,7 @@ export var getAppointmentTimingPreference = function getAppointmentTimingPrefere
320
321
  * @Date: 2024-01-26 14:09
321
322
  */
322
323
  export var getServiceStartTimeAndEndTime = function getServiceStartTimeAndEndTime(state, cacheItem, timeObj) {
323
- var _state$service$value, _cacheItem$duration, _cacheItem$_extend2;
324
+ var _state$service$value, _cacheItem$_extend2;
324
325
  // 自定义商品不需要时间相关处理,直接返回基础扩展参数
325
326
  if (cacheItem !== null && cacheItem !== void 0 && cacheItem.isCustomItem) {
326
327
  return {
@@ -333,11 +334,18 @@ export var getServiceStartTimeAndEndTime = function getServiceStartTimeAndEndTim
333
334
  var lastServer = getLastServer((_state$service$value = state.service.value) === null || _state$service$value === void 0 ? void 0 : _state$service$value.filter(function (item) {
334
335
  return !item.isCustomItem;
335
336
  }));
337
+ var getDuration = function getDuration(cacheItem) {
338
+ var _cacheItem$duration;
339
+ if (isMultiDayProduct(cacheItem)) {
340
+ return getDays(cacheItem, 'days');
341
+ }
342
+ return findNextDuration(cacheItem.duration, timeObj === null || timeObj === void 0 ? void 0 : timeObj.durationSlicesBasedOnTime, cacheItem === null || cacheItem === void 0 || (_cacheItem$duration = cacheItem.duration) === null || _cacheItem$duration === void 0 ? void 0 : _cacheItem$duration.value);
343
+ };
336
344
 
337
345
  // 下一个商品的扩展参数
338
346
  var _extend = {
339
347
  // 时长: 当前商品时长 > 第一个时长
340
- duration: findNextDuration(cacheItem.duration, timeObj === null || timeObj === void 0 ? void 0 : timeObj.durationSlicesBasedOnTime, cacheItem === null || cacheItem === void 0 || (_cacheItem$duration = cacheItem.duration) === null || _cacheItem$duration === void 0 ? void 0 : _cacheItem$duration.value)
348
+ duration: getDuration(cacheItem)
341
349
  };
342
350
 
343
351
  // 如果有上一个商品, 将上一个商品的某些参数 设置到新商品上
@@ -354,7 +362,8 @@ export var getServiceStartTimeAndEndTime = function getServiceStartTimeAndEndTim
354
362
  var _timeObj$timeSlices;
355
363
  _extend.start_time = timeObj === null || timeObj === void 0 ? void 0 : timeObj.timeSlices[(timeObj === null || timeObj === void 0 || (_timeObj$timeSlices = timeObj.timeSlices) === null || _timeObj$timeSlices === void 0 ? void 0 : _timeObj$timeSlices.length) - 1].value;
356
364
  } else {
357
- _extend.start_time = lastServerEndDate.format("HH:mm");
365
+ var _ref2;
366
+ _extend.start_time = (_ref2 = lastServerEndDate || dayjs()) === null || _ref2 === void 0 ? void 0 : _ref2.format("HH:mm");
358
367
  }
359
368
  }
360
369
  } else {
@@ -390,9 +399,9 @@ export var getServiceStartTimeAndEndTime = function getServiceStartTimeAndEndTim
390
399
  _extend = _objectSpread(_objectSpread({}, _extend), cacheItem._extend);
391
400
 
392
401
  // 计算服务的开始和结束时间
393
- var _getServiceTimes2 = getServiceTimes({
402
+ var _getServiceTimes2 = getServiceTimes(_objectSpread(_objectSpread({}, cacheItem), {}, {
394
403
  _extend: _extend
395
- }),
404
+ })),
396
405
  startDate = _getServiceTimes2.startDate,
397
406
  endDate = _getServiceTimes2.endDate;
398
407
  _extend.startDate = startDate;
@@ -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;