@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,13 +1 @@
1
- /// <reference types="react" />
2
- interface RechargeState {
3
- total: number;
4
- }
5
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
6
- state: RechargeState;
7
- } & {
8
- dispatch: (params: {
9
- type: string;
10
- payload: any;
11
- }) => void;
12
- }>;
13
- export {};
1
+ export declare const Provider: any, Context: any;
@@ -1,29 +1 @@
1
- /// <reference types="react" />
2
- interface RechargeState {
3
- selectedGiftOptionId: string | null;
4
- cardList: Array<{
5
- id: string;
6
- name: string;
7
- price: number;
8
- }>;
9
- selectedItem: {
10
- id?: string;
11
- gift_price?: number;
12
- price?: number;
13
- name?: string;
14
- variant_id?: string;
15
- };
16
- productId?: string;
17
- detailId?: string;
18
- total: string | number;
19
- rechargeModalOpen: boolean;
20
- }
21
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
22
- state: RechargeState;
23
- } & {
24
- dispatch: (params: {
25
- type: string;
26
- payload: any;
27
- }) => void;
28
- }>;
29
- export {};
1
+ export declare const Provider: any, Context: any;
@@ -1,13 +1 @@
1
- /// <reference types="react" />
2
- interface RechargeState {
3
- total: 0;
4
- }
5
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
6
- state: RechargeState;
7
- } & {
8
- dispatch: (params: {
9
- type: string;
10
- payload: any;
11
- }) => void;
12
- }>;
13
- export {};
1
+ export declare const Provider: any, Context: any;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IWalletListItemProps } from './serve';
3
2
  export interface WalletCardItemProps {
4
3
  id: string;
@@ -27,11 +26,4 @@ export interface WalletListProps {
27
26
  currentSearchListItemCode?: string;
28
27
  [key: string]: any;
29
28
  }
30
- export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
31
- global_wallet: WalletListProps;
32
- } & {
33
- dispatch: (params: {
34
- type: string;
35
- payload: any;
36
- }) => void;
37
- }>;
29
+ export declare const Provider: any, Context: any;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { MultiDayTimeSelectProps, MultiDayTimeSelectValue } from './types';
3
+ import './MultiDayTimeSelect.less';
4
+ export interface MultiDayTimeSelectRef {
5
+ validate: () => Promise<void>;
6
+ getValue: () => MultiDayTimeSelectValue | null;
7
+ }
8
+ declare const MultiDayTimeSelect: React.ForwardRefExoticComponent<MultiDayTimeSelectProps & React.RefAttributes<MultiDayTimeSelectRef>>;
9
+ export default MultiDayTimeSelect;
@@ -0,0 +1,355 @@
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); }); }; }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ import React, { useMemo, useState, useEffect, useImperativeHandle, forwardRef } from 'react';
12
+ import { CalendarOutlined } from '@ant-design/icons';
13
+ import dayjs from 'dayjs';
14
+ import { DatePicker, Page } from '@pisell/materials';
15
+ import { Select, Form } from 'antd';
16
+ import { locales } from '@pisell/utils';
17
+ import "./MultiDayTimeSelect.less";
18
+
19
+ // 类型断言以支持RangePicker
20
+ var RangePicker = DatePicker.RangePicker;
21
+ var MultiDayTimeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
22
+ var _ref$maxDays = _ref.maxDays,
23
+ maxDays = _ref$maxDays === void 0 ? 30 : _ref$maxDays,
24
+ defaultStartDate = _ref.defaultStartDate,
25
+ _ref$separateStartEnd = _ref.separateStartEnd,
26
+ separateStartEnd = _ref$separateStartEnd === void 0 ? false : _ref$separateStartEnd,
27
+ value = _ref.value,
28
+ onChange = _ref.onChange,
29
+ _ref$locale = _ref.locale,
30
+ locale = _ref$locale === void 0 ? 'en' : _ref$locale,
31
+ _ref$disabled = _ref.disabled,
32
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
33
+ startDateLabel = _ref.startDateLabel,
34
+ endDateLabel = _ref.endDateLabel,
35
+ durationLabel = _ref.durationLabel;
36
+ var _Form$useForm = Form.useForm(),
37
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
38
+ form = _Form$useForm2[0];
39
+ var _useState = useState(null),
40
+ _useState2 = _slicedToArray(_useState, 2),
41
+ internalValue = _useState2[0],
42
+ setInternalValue = _useState2[1];
43
+
44
+ // 暴露方法给父组件
45
+ useImperativeHandle(ref, function () {
46
+ return {
47
+ validate: function () {
48
+ var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
49
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
50
+ while (1) switch (_context.prev = _context.next) {
51
+ case 0:
52
+ _context.next = 2;
53
+ return form.validateFields();
54
+ case 2:
55
+ case "end":
56
+ return _context.stop();
57
+ }
58
+ }, _callee);
59
+ }));
60
+ function validate() {
61
+ return _validate.apply(this, arguments);
62
+ }
63
+ return validate;
64
+ }(),
65
+ getValue: function getValue() {
66
+ return internalValue;
67
+ }
68
+ };
69
+ });
70
+
71
+ // 格式化日期显示
72
+ var formatLocale = useMemo(function () {
73
+ var isEn = locale === 'en' || locale === 'en-US';
74
+ return isEn ? 'DD/MM/YYYY' : 'YYYY-MM-DD';
75
+ }, [locale]);
76
+
77
+ // 生成时长选项(1-maxDays天)
78
+ var durationOptions = useMemo(function () {
79
+ var options = [];
80
+ for (var i = 1; i <= maxDays; i++) {
81
+ options.push({
82
+ label: "".concat(i, " ").concat(i === 1 ? locale === 'en' ? 'day' : '天' : locale === 'en' ? 'days' : '天'),
83
+ value: i
84
+ });
85
+ }
86
+ return options;
87
+ }, [maxDays, locale]);
88
+
89
+ // 初始化内部值
90
+ useEffect(function () {
91
+ if (value) {
92
+ setInternalValue(value);
93
+ form.setFieldsValue({
94
+ dateRange: separateStartEnd ? undefined : [value.startDate, value.endDate],
95
+ startDate: separateStartEnd ? value.startDate : undefined,
96
+ endDate: separateStartEnd ? value.endDate : undefined,
97
+ duration: value.duration
98
+ });
99
+ } else {
100
+ var startDate = defaultStartDate || dayjs();
101
+ var endDate = startDate.add(1, 'day');
102
+ var initialValue = {
103
+ startDate: startDate,
104
+ endDate: endDate,
105
+ duration: 1
106
+ };
107
+ setInternalValue(initialValue);
108
+ form.setFieldsValue({
109
+ dateRange: separateStartEnd ? undefined : [startDate, endDate],
110
+ startDate: separateStartEnd ? startDate : undefined,
111
+ endDate: separateStartEnd ? endDate : undefined,
112
+ duration: 1
113
+ });
114
+ onChange === null || onChange === void 0 || onChange(initialValue);
115
+ }
116
+ }, [value, defaultStartDate, separateStartEnd, form, onChange]);
117
+
118
+ // 更新值并触发onChange
119
+ var updateValue = function updateValue(newValue) {
120
+ setInternalValue(newValue);
121
+ onChange === null || onChange === void 0 || onChange(newValue);
122
+ };
123
+
124
+ // 处理日期范围变化(RangePicker模式)
125
+ var handleDateRangeChange = function handleDateRangeChange(dates) {
126
+ if (dates && dates[0] && dates[1]) {
127
+ var days = dates[1].diff(dates[0], 'day');
128
+ var finalEndDate = dates[1];
129
+ var finalDuration = days;
130
+
131
+ // 如果超过maxDays,调整为开始日期+maxDays,但保留结束日期的时间
132
+ if (days > maxDays) {
133
+ // 获取结束日期的时间部分(时、分、秒、毫秒)
134
+ var endTime = {
135
+ hour: dates[1].hour(),
136
+ minute: dates[1].minute(),
137
+ second: dates[1].second(),
138
+ millisecond: dates[1].millisecond()
139
+ };
140
+ // 计算最大结束日期(开始日期 + maxDays)
141
+ finalEndDate = dates[0].add(maxDays, 'day');
142
+ // 应用结束日期的时间
143
+ finalEndDate = finalEndDate.hour(endTime.hour).minute(endTime.minute).second(endTime.second).millisecond(endTime.millisecond);
144
+ finalDuration = maxDays;
145
+ }
146
+ if (days > 0) {
147
+ var newValue = {
148
+ startDate: dates[0],
149
+ endDate: finalEndDate,
150
+ duration: finalDuration
151
+ };
152
+ updateValue(newValue);
153
+ form.setFieldsValue({
154
+ dateRange: [dates[0], finalEndDate],
155
+ duration: finalDuration
156
+ });
157
+ }
158
+ }
159
+ };
160
+
161
+ // 处理开始日期变化(分离模式)
162
+ var handleStartDateChange = function handleStartDateChange(date) {
163
+ if (date && internalValue) {
164
+ var currentEndDate = internalValue.endDate;
165
+ // 获取当前结束日期的时间部分(时、分、秒、毫秒)
166
+ var endTime = {
167
+ hour: currentEndDate.hour(),
168
+ minute: currentEndDate.minute(),
169
+ second: currentEndDate.second(),
170
+ millisecond: currentEndDate.millisecond()
171
+ };
172
+
173
+ // 确定使用的时长(不超过maxDays)
174
+ var targetDuration = Math.min(internalValue.duration, maxDays);
175
+
176
+ // 计算新的结束日期(开始日期 + 目标时长)
177
+ var newEndDate = date.add(targetDuration, 'day');
178
+
179
+ // 应用结束日期的时间
180
+ var finalEndDate = newEndDate.hour(endTime.hour).minute(endTime.minute).second(endTime.second).millisecond(endTime.millisecond);
181
+ var newValue = {
182
+ startDate: date,
183
+ endDate: finalEndDate,
184
+ duration: targetDuration
185
+ };
186
+ updateValue(newValue);
187
+ form.setFieldsValue({
188
+ endDate: finalEndDate,
189
+ duration: targetDuration
190
+ });
191
+ }
192
+ };
193
+
194
+ // 处理结束日期变化(分离模式)
195
+ var handleEndDateChange = function handleEndDateChange(date) {
196
+ if (date && internalValue) {
197
+ var days = date.diff(internalValue.startDate, 'day');
198
+ var finalEndDate = date;
199
+ var finalDuration = days;
200
+
201
+ // 如果超过maxDays,调整为开始日期+maxDays,但保留结束日期的时间
202
+ if (days > maxDays) {
203
+ // 获取结束日期的时间部分(时、分、秒、毫秒)
204
+ var endTime = {
205
+ hour: date.hour(),
206
+ minute: date.minute(),
207
+ second: date.second(),
208
+ millisecond: date.millisecond()
209
+ };
210
+ // 计算最大结束日期(开始日期 + maxDays)
211
+ finalEndDate = internalValue.startDate.add(maxDays, 'day');
212
+ // 应用结束日期的时间
213
+ finalEndDate = finalEndDate.hour(endTime.hour).minute(endTime.minute).second(endTime.second).millisecond(endTime.millisecond);
214
+ finalDuration = maxDays;
215
+ }
216
+ if (days > 0) {
217
+ var newValue = {
218
+ startDate: internalValue.startDate,
219
+ endDate: finalEndDate,
220
+ duration: finalDuration
221
+ };
222
+ updateValue(newValue);
223
+ form.setFieldsValue({
224
+ endDate: finalEndDate,
225
+ duration: finalDuration
226
+ });
227
+ }
228
+ }
229
+ };
230
+
231
+ // 处理时长变化
232
+ var handleDurationChange = function handleDurationChange(durationValue) {
233
+ if (internalValue) {
234
+ var newEndDate = internalValue.startDate.add(durationValue, 'day');
235
+ var newValue = {
236
+ startDate: internalValue.startDate,
237
+ endDate: newEndDate,
238
+ duration: durationValue
239
+ };
240
+ updateValue(newValue);
241
+ if (separateStartEnd) {
242
+ form.setFieldsValue({
243
+ endDate: newEndDate
244
+ });
245
+ } else {
246
+ form.setFieldsValue({
247
+ dateRange: [internalValue.startDate, newEndDate]
248
+ });
249
+ }
250
+ }
251
+ };
252
+ return /*#__PURE__*/React.createElement(Form, {
253
+ form: form,
254
+ layout: "vertical",
255
+ className: "multi-day-time-select-form"
256
+ }, separateStartEnd ? /*#__PURE__*/React.createElement("div", {
257
+ className: "multi-day-time-select-row"
258
+ }, /*#__PURE__*/React.createElement(Form.Item, {
259
+ label: startDateLabel || locales.getText('pisell2.text.start_date'),
260
+ name: "startDate",
261
+ rules: [{
262
+ required: true,
263
+ message: startDateLabel || locales.getText('pisell2.text.start_date')
264
+ }],
265
+ style: {
266
+ flex: 1
267
+ }
268
+ }, /*#__PURE__*/React.createElement(Page, null, /*#__PURE__*/React.createElement(DatePicker, {
269
+ inputReadOnly: true,
270
+ allowClear: false,
271
+ size: "large",
272
+ style: {
273
+ width: '100%',
274
+ padding: 0
275
+ },
276
+ suffixIcon: /*#__PURE__*/React.createElement(CalendarOutlined, null),
277
+ value: internalValue === null || internalValue === void 0 ? void 0 : internalValue.startDate,
278
+ onChange: handleStartDateChange,
279
+ format: formatLocale,
280
+ isHideCustomSelect: true,
281
+ disabled: disabled
282
+ }))), /*#__PURE__*/React.createElement(Form.Item, {
283
+ label: endDateLabel || locales.getText('pisell2.text.end_date'),
284
+ name: "endDate",
285
+ rules: [{
286
+ required: true,
287
+ message: endDateLabel || locales.getText('pisell2.text.end_date')
288
+ }],
289
+ style: {
290
+ flex: 1
291
+ }
292
+ }, /*#__PURE__*/React.createElement(Page, null, /*#__PURE__*/React.createElement(DatePicker, {
293
+ inputReadOnly: true,
294
+ allowClear: false,
295
+ size: "large",
296
+ style: {
297
+ width: '100%',
298
+ padding: 0
299
+ },
300
+ suffixIcon: /*#__PURE__*/React.createElement(CalendarOutlined, null),
301
+ value: internalValue === null || internalValue === void 0 ? void 0 : internalValue.endDate,
302
+ onChange: handleEndDateChange,
303
+ format: formatLocale,
304
+ isHideCustomSelect: true,
305
+ disabled: disabled,
306
+ disabledDate: function disabledDate(current) {
307
+ if (internalValue !== null && internalValue !== void 0 && internalValue.startDate) {
308
+ return current.isSameOrBefore(internalValue.startDate, 'day');
309
+ }
310
+ return false;
311
+ }
312
+ })))) : /*#__PURE__*/React.createElement("div", {
313
+ className: "multi-day-time-select-row"
314
+ }, /*#__PURE__*/React.createElement(Form.Item, {
315
+ label: startDateLabel || locales.getText('pisell2.text.start_date'),
316
+ name: "dateRange",
317
+ rules: [{
318
+ required: true,
319
+ message: startDateLabel || locales.getText('pisell2.text.start_date')
320
+ }],
321
+ style: {
322
+ flex: 1
323
+ }
324
+ }, /*#__PURE__*/React.createElement(Page, null, /*#__PURE__*/React.createElement(RangePicker, {
325
+ inputReadOnly: true,
326
+ allowClear: false,
327
+ size: "large",
328
+ style: {
329
+ width: '100%',
330
+ padding: 0
331
+ },
332
+ suffixIcon: /*#__PURE__*/React.createElement(CalendarOutlined, null),
333
+ value: internalValue ? [internalValue.startDate, internalValue.endDate] : null,
334
+ onChange: handleDateRangeChange,
335
+ format: formatLocale,
336
+ isHideCustomSelect: true,
337
+ endDateDays: 1,
338
+ disabled: disabled
339
+ })))), /*#__PURE__*/React.createElement(Form.Item, {
340
+ label: durationLabel || locales.getText('pisell2.text.duration'),
341
+ name: "duration",
342
+ rules: [{
343
+ required: true,
344
+ message: durationLabel || locales.getText('pisell2.text.duration')
345
+ }]
346
+ }, /*#__PURE__*/React.createElement(Select, {
347
+ size: "large",
348
+ value: internalValue === null || internalValue === void 0 ? void 0 : internalValue.duration,
349
+ onChange: handleDurationChange,
350
+ options: durationOptions,
351
+ disabled: disabled
352
+ })));
353
+ });
354
+ MultiDayTimeSelect.displayName = 'MultiDayTimeSelect';
355
+ export default MultiDayTimeSelect;
@@ -0,0 +1,8 @@
1
+ .multi-day-time-select-form {
2
+ margin-top: 12px;
3
+ .multi-day-time-select-row {
4
+ display: flex;
5
+ gap: 16px;
6
+ }
7
+ }
8
+
@@ -0,0 +1,3 @@
1
+ export { default } from './MultiDayTimeSelect';
2
+ export type { MultiDayTimeSelectRef } from './MultiDayTimeSelect';
3
+ export type { MultiDayTimeSelectProps, MultiDayTimeSelectValue } from './types';
@@ -0,0 +1 @@
1
+ export { default } from "./MultiDayTimeSelect";
@@ -0,0 +1,28 @@
1
+ import { Dayjs } from 'dayjs';
2
+ export interface MultiDayTimeSelectValue {
3
+ startDate: Dayjs;
4
+ endDate: Dayjs;
5
+ duration: number;
6
+ }
7
+ export interface MultiDayTimeSelectProps {
8
+ /** 最大天数,默认30天 */
9
+ maxDays?: number;
10
+ /** 默认开始时间 */
11
+ defaultStartDate?: Dayjs;
12
+ /** 开始时间和结束时间是否分离,false使用RangePicker,true使用两个独立的DatePicker */
13
+ separateStartEnd?: boolean;
14
+ /** 受控值 */
15
+ value?: MultiDayTimeSelectValue;
16
+ /** 值变化回调 */
17
+ onChange?: (value: MultiDayTimeSelectValue) => void;
18
+ /** 语言环境 */
19
+ locale?: string;
20
+ /** 是否禁用 */
21
+ disabled?: boolean;
22
+ /** 开始日期标签 */
23
+ startDateLabel?: string;
24
+ /** 结束日期标签 */
25
+ endDateLabel?: string;
26
+ /** 时长标签 */
27
+ durationLabel?: string;
28
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -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;
@@ -38,6 +38,7 @@ var import_utils = require("../../utils");
38
38
  var import_utils2 = require("@pisell/utils");
39
39
  var import_decimal = __toESM(require("decimal.js"));
40
40
  var import_utils3 = require("../../info/service2/utils");
41
+ var import_utils4 = require("../../info2/service/addService/utils");
41
42
  var getRelationDetailsTotal = (relation_details) => {
42
43
  let total = new import_decimal.default(0);
43
44
  for (let item of relation_details) {
@@ -52,16 +53,22 @@ var getProductExpectAmount = (state, isEdit) => {
52
53
  let price = new import_decimal.default(0);
53
54
  let duration = new import_decimal.default(0);
54
55
  const isDay = (0, import_utils3.isDayBooking)(state);
56
+ let dayDuration = new import_decimal.default(0);
57
+ let minuteDuration = new import_decimal.default(0);
55
58
  if (isEdit) {
56
59
  if ((state == null ? void 0 : state.service) || (state == null ? void 0 : state.addons)) {
57
60
  if (Array.isArray((_a = state == null ? void 0 : state.service) == null ? void 0 : _a.value)) {
58
61
  for (let item of state.service.value) {
59
- if (isDay || (0, import_utils3.isNormalProductByDurationSchedule)(item)) {
62
+ if (isDay || (0, import_utils3.isNormalProductByDurationSchedule)(item) || (0, import_utils4.isMultiDayProduct)(item)) {
60
63
  const quantity = new import_decimal.default(item._extend.quantity || 1);
61
64
  const itemTotal = new import_decimal.default(item._extend.total || 0);
62
65
  price = price.add(itemTotal.mul(quantity));
63
- const _duration = (0, import_utils3.isDayBookingProduct)(item, state) ? new import_decimal.default(item._extend.duration || 0) : new import_decimal.default(0);
64
- duration = duration.add(_duration);
66
+ const _duration = !(0, import_utils3.isNormalProductByDurationSchedule)(item) ? new import_decimal.default(item._extend.duration || 0) : new import_decimal.default(0);
67
+ if (isDay || (0, import_utils4.isMultiDayProduct)(item)) {
68
+ dayDuration = dayDuration.add(_duration);
69
+ } else {
70
+ minuteDuration = minuteDuration.add(_duration);
71
+ }
65
72
  } else {
66
73
  const quantity = new import_decimal.default(item._extend.quantity || 1);
67
74
  const itemTotal = new import_decimal.default(item._extend.total || 0);
@@ -72,6 +79,11 @@ var getProductExpectAmount = (state, isEdit) => {
72
79
  price = price.add(relationTotal);
73
80
  const itemDuration = new import_decimal.default(import_utils.flexibleObj.getValue(item._extend.duration) || 0);
74
81
  duration = duration.add(itemDuration);
82
+ if ((0, import_utils4.isMultiDayProduct)(item)) {
83
+ dayDuration = dayDuration.add(itemDuration);
84
+ } else {
85
+ minuteDuration = minuteDuration.add(itemDuration);
86
+ }
75
87
  }
76
88
  }
77
89
  }
@@ -89,18 +101,23 @@ var getProductExpectAmount = (state, isEdit) => {
89
101
  duration = services.reduce((pre, cur) => {
90
102
  var _a2;
91
103
  let current = new import_decimal.default(0);
92
- if (isDay) {
93
- const _duration = (0, import_utils3.isDayBookingProduct)(cur, state) ? new import_decimal.default(cur._extend.duration || 0) : new import_decimal.default(0);
104
+ if (isDay || (0, import_utils4.isMultiDayProduct)(cur)) {
105
+ const _duration = !(0, import_utils3.isNormalProductByDurationSchedule)(cur) ? new import_decimal.default(cur._extend.duration || 0) : new import_decimal.default(0);
94
106
  current = _duration;
95
107
  } else {
96
108
  current = new import_decimal.default(import_utils.flexibleObj.getValue(((_a2 = cur._extend) == null ? void 0 : _a2.duration) || 0) || 0);
97
109
  }
110
+ if (isDay || (0, import_utils4.isMultiDayProduct)(cur)) {
111
+ dayDuration = dayDuration.add(current);
112
+ } else {
113
+ minuteDuration = minuteDuration.add(current);
114
+ }
98
115
  return pre.add(current);
99
116
  }, new import_decimal.default(0));
100
117
  }
101
118
  return {
102
119
  productExpectAmount: price.toNumber(),
103
- duration: (0, import_utils.getDiscountTime)(duration.toNumber(), isDay)
120
+ duration: (0, import_utils.getDiscountTimeByDayMinutes)(dayDuration.toNumber(), minuteDuration.toNumber())
104
121
  };
105
122
  };
106
123
  var getProductItemTax = (item, state, options) => {
@@ -37,5 +37,12 @@ export declare const checkResourcesFormat: (resources: any[], service: any, isCh
37
37
  * @Date: 2024-12-23 12:05
38
38
  */
39
39
  export declare const formatProductPrice: (item: any) => number;
40
+ /**
41
+ * @title: 是否包含跨日预约商品
42
+ * @description:
43
+ * @param {any} data
44
+ * @return {*}
45
+ */
46
+ export declare const getHasMultiDayProduct: (data: any) => any;
40
47
  export declare const formatValues: (state: any) => any;
41
48
  export declare const checkHolderIsError: (state: any) => any;