@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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +6 -6
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +7 -7
- package/es/components/booking/addons/model.d.ts +1 -10
- package/es/components/booking/components/footer/amount.js +25 -8
- package/es/components/booking/components/footer/utils.d.ts +7 -0
- package/es/components/booking/components/footer/utils.js +46 -22
- package/es/components/booking/forms/model.d.ts +1 -10
- package/es/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
- package/es/components/booking/hooks/useQuotation.js +69 -21
- package/es/components/booking/info/model.d.ts +1 -10
- package/es/components/booking/info/service/Lists.js +1 -1
- package/es/components/booking/info/service/addService/utils.d.ts +1 -1
- package/es/components/booking/info/service/serve.d.ts +14 -0
- package/es/components/booking/info/service/serve.js +22 -1
- package/es/components/booking/info/service2/Group/utils.js +2 -0
- package/es/components/booking/info/service2/utils.d.ts +1 -33
- package/es/components/booking/info/service2/utils.js +75 -29
- package/es/components/booking/info/utils.js +5 -0
- package/es/components/booking/info2/service/addService/index.js +146 -89
- package/es/components/booking/info2/service/addService/utils.d.ts +9 -1
- package/es/components/booking/info2/service/addService/utils.js +78 -9
- package/es/components/booking/info2/service/editService/index.js +235 -55
- package/es/components/booking/info2/utilsByBooking.js +14 -5
- package/es/components/booking/model.d.ts +1 -9
- package/es/components/booking/notes/model.d.ts +1 -10
- package/es/components/booking/payments/model.d.ts +1 -10
- package/es/components/booking/utils.d.ts +9 -1
- package/es/components/booking/utils.js +23 -0
- package/es/components/checkout/hooks/useWalletPass.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +1 -1
- package/es/components/eftposPay/store/index.d.ts +2 -2
- package/es/components/pay/toC/model.d.ts +1 -9
- package/es/components/schedules/model.d.ts +1 -9
- package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.d.ts +18 -0
- package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.js +119 -0
- package/es/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.less +0 -0
- package/es/components/ticketBooking/components/addServiceVariant/addService.js +283 -138
- package/es/components/ticketBooking/components/ticketBooking/index.js +14 -11
- package/es/components/ticketBooking/utils/index.d.ts +6 -1
- package/es/components/ticketBooking/utils/index.js +21 -3
- package/es/components/wallet/Detail/model.d.ts +1 -13
- package/es/components/wallet/DiscountCard/model.d.ts +1 -14
- package/es/components/wallet/PointCard/model.d.ts +1 -13
- package/es/components/wallet/RechargeableCard/model.d.ts +1 -29
- package/es/components/wallet/Voucher/model.d.ts +1 -13
- package/es/components/wallet/model.d.ts +1 -9
- package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.d.ts +9 -0
- package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.js +355 -0
- package/es/pro/multiDayTimeSelect/MultiDayTimeSelect.less +8 -0
- package/es/pro/multiDayTimeSelect/index.d.ts +3 -0
- package/es/pro/multiDayTimeSelect/index.js +1 -0
- package/es/pro/multiDayTimeSelect/types.d.ts +28 -0
- package/es/pro/multiDayTimeSelect/types.js +1 -0
- package/lib/components/booking/addons/model.d.ts +1 -10
- package/lib/components/booking/components/footer/amount.js +23 -6
- package/lib/components/booking/components/footer/utils.d.ts +7 -0
- package/lib/components/booking/components/footer/utils.js +23 -11
- package/lib/components/booking/forms/model.d.ts +1 -10
- package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
- package/lib/components/booking/hooks/useQuotation.js +45 -13
- package/lib/components/booking/info/model.d.ts +1 -10
- package/lib/components/booking/info/service/Lists.js +1 -1
- package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
- package/lib/components/booking/info/service/serve.d.ts +14 -0
- package/lib/components/booking/info/service/serve.js +5 -0
- package/lib/components/booking/info/service2/Group/utils.js +2 -0
- package/lib/components/booking/info/service2/utils.d.ts +1 -33
- package/lib/components/booking/info/service2/utils.js +24 -10
- package/lib/components/booking/info/utils.js +4 -0
- package/lib/components/booking/info2/service/addService/index.js +22 -3
- package/lib/components/booking/info2/service/addService/utils.d.ts +9 -1
- package/lib/components/booking/info2/service/addService/utils.js +47 -9
- package/lib/components/booking/info2/service/editService/index.js +191 -31
- package/lib/components/booking/info2/utilsByBooking.js +19 -8
- package/lib/components/booking/model.d.ts +1 -9
- package/lib/components/booking/notes/model.d.ts +1 -10
- package/lib/components/booking/payments/model.d.ts +1 -10
- package/lib/components/booking/utils.d.ts +9 -1
- package/lib/components/booking/utils.js +15 -0
- package/lib/components/checkout/hooks/useWalletPass.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +1 -1
- package/lib/components/eftposPay/store/index.d.ts +2 -2
- package/lib/components/pay/toC/model.d.ts +1 -9
- package/lib/components/schedules/model.d.ts +1 -9
- package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.d.ts +18 -0
- package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.js +118 -0
- package/lib/components/ticketBooking/components/addServiceVariant/MultiDayTimeSelectModal.less +0 -0
- package/lib/components/ticketBooking/components/addServiceVariant/addService.js +185 -119
- package/lib/components/ticketBooking/components/ticketBooking/index.js +0 -16
- package/lib/components/ticketBooking/utils/index.d.ts +6 -1
- package/lib/components/ticketBooking/utils/index.js +11 -1
- package/lib/components/wallet/Detail/model.d.ts +1 -13
- package/lib/components/wallet/DiscountCard/model.d.ts +1 -14
- package/lib/components/wallet/PointCard/model.d.ts +1 -13
- package/lib/components/wallet/RechargeableCard/model.d.ts +1 -29
- package/lib/components/wallet/Voucher/model.d.ts +1 -13
- package/lib/components/wallet/model.d.ts +1 -9
- package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.d.ts +9 -0
- package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.js +304 -0
- package/lib/pro/multiDayTimeSelect/MultiDayTimeSelect.less +8 -0
- package/lib/pro/multiDayTimeSelect/index.d.ts +3 -0
- package/lib/pro/multiDayTimeSelect/index.js +35 -0
- package/lib/pro/multiDayTimeSelect/types.d.ts +28 -0
- package/lib/pro/multiDayTimeSelect/types.js +17 -0
- package/package.json +13 -13
|
@@ -1,13 +1 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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 @@
|
|
|
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
|
-
|
|
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.
|
|
64
|
-
|
|
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.
|
|
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.
|
|
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;
|