@pisell/private-materials 6.4.70 → 6.4.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +7 -7
- 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/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/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/hooks/pisellos/useProducts.js +106 -32
- 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/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/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/hooks/pisellos/useProducts.js +54 -9
- 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 +4 -4
|
@@ -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;
|
|
@@ -35,7 +35,8 @@ __export(utils_exports, {
|
|
|
35
35
|
formatProductBundle: () => formatProductBundle,
|
|
36
36
|
formatProductOption: () => formatProductOption,
|
|
37
37
|
formatProductPrice: () => formatProductPrice,
|
|
38
|
-
formatValues: () => formatValues
|
|
38
|
+
formatValues: () => formatValues,
|
|
39
|
+
getHasMultiDayProduct: () => getHasMultiDayProduct
|
|
39
40
|
});
|
|
40
41
|
module.exports = __toCommonJS(utils_exports);
|
|
41
42
|
var import_dayjs = __toESM(require("dayjs"));
|
|
@@ -351,6 +352,14 @@ var getHolderByIndex = (holder, index) => {
|
|
|
351
352
|
form_record: [(_a = holder == null ? void 0 : holder.form_record) == null ? void 0 : _a[index]].filter(Boolean)
|
|
352
353
|
};
|
|
353
354
|
};
|
|
355
|
+
var getHasMultiDayProduct = (data) => {
|
|
356
|
+
const list = data.service.value;
|
|
357
|
+
const isHas = list.some((item) => {
|
|
358
|
+
var _a;
|
|
359
|
+
return (_a = item._extend) == null ? void 0 : _a.groupId;
|
|
360
|
+
});
|
|
361
|
+
return isHas;
|
|
362
|
+
};
|
|
354
363
|
var formatBookings = (data, values) => {
|
|
355
364
|
const isDay = (0, import_utils4.isDaysBooking)(data);
|
|
356
365
|
const isEvent = (0, import_utils4.isEventBooking)(data);
|
|
@@ -371,7 +380,7 @@ var formatBookings = (data, values) => {
|
|
|
371
380
|
const eventOtherParams = data.eventOtherParams;
|
|
372
381
|
let bookings = [];
|
|
373
382
|
list.forEach((item) => {
|
|
374
|
-
var _a, _b, _c, _d, _e;
|
|
383
|
+
var _a, _b, _c, _d, _e, _f;
|
|
375
384
|
if (item.isCustomItem) {
|
|
376
385
|
bookings.push({
|
|
377
386
|
...item._extend,
|
|
@@ -380,6 +389,7 @@ var formatBookings = (data, values) => {
|
|
|
380
389
|
});
|
|
381
390
|
return;
|
|
382
391
|
}
|
|
392
|
+
const isMultiDay = (_a = item._extend) == null ? void 0 : _a.groupId;
|
|
383
393
|
let start_date = item._extend.startDate.format("YYYY-MM-DD");
|
|
384
394
|
let end_date = item._extend.endDate.format("YYYY-MM-DD");
|
|
385
395
|
let end_time = item._extend.endDate.format("HH:mm");
|
|
@@ -389,8 +399,8 @@ var formatBookings = (data, values) => {
|
|
|
389
399
|
}
|
|
390
400
|
dayParams.holder = formatHolders(data, item, values);
|
|
391
401
|
if (isDay) {
|
|
392
|
-
const startDate = ((
|
|
393
|
-
const endDate = ((
|
|
402
|
+
const startDate = ((_b = item._extend) == null ? void 0 : _b.startDate) || ((_c = item._extend) == null ? void 0 : _c.start_date);
|
|
403
|
+
const endDate = ((_d = item._extend) == null ? void 0 : _d.endDate) || ((_e = item._extend) == null ? void 0 : _e.end_date);
|
|
394
404
|
const { startDateTime, endDateTime } = (0, import_utils4.formatDayTime)({
|
|
395
405
|
startDate,
|
|
396
406
|
endDate
|
|
@@ -406,7 +416,7 @@ var formatBookings = (data, values) => {
|
|
|
406
416
|
"minutes"
|
|
407
417
|
);
|
|
408
418
|
}
|
|
409
|
-
if (!((
|
|
419
|
+
if (!((_f = item._extend) == null ? void 0 : _f.unique_identification_number)) {
|
|
410
420
|
const unique_identification_number = (0, import_utils5.getUniqueId)();
|
|
411
421
|
item._extend.unique_identification_number = unique_identification_number;
|
|
412
422
|
}
|
|
@@ -426,14 +436,14 @@ var formatBookings = (data, values) => {
|
|
|
426
436
|
start_time,
|
|
427
437
|
end_date,
|
|
428
438
|
start_date,
|
|
429
|
-
duration: isDay ? 0 : import_utils.flexibleObj.getValue(item._extend.duration),
|
|
439
|
+
duration: isDay || isMultiDay ? 0 : import_utils.flexibleObj.getValue(item._extend.duration),
|
|
430
440
|
number: item._extend.capacity ? (0, import_utilsByBooking.getSumCapacity)({ cacheItem: item }) : item._extend.number || 1,
|
|
431
441
|
resources: formatResource(item),
|
|
432
442
|
note: item._extend.note,
|
|
433
443
|
...eventOtherParams || {},
|
|
434
444
|
...dayParams
|
|
435
445
|
};
|
|
436
|
-
if (isDay) {
|
|
446
|
+
if (isDay || isMultiDay) {
|
|
437
447
|
bookings.push(booking);
|
|
438
448
|
return;
|
|
439
449
|
}
|
|
@@ -521,6 +531,7 @@ var formatValues = (state) => {
|
|
|
521
531
|
metadata: {}
|
|
522
532
|
};
|
|
523
533
|
const isDay = (0, import_utils4.isDaysBooking)(state);
|
|
534
|
+
const isHasMultiDay = getHasMultiDayProduct(state);
|
|
524
535
|
const isEvent = (0, import_utils4.isEventBooking)(state);
|
|
525
536
|
if (!state.bookingId || isDay) {
|
|
526
537
|
values.shop_note = formatNote(state);
|
|
@@ -538,10 +549,10 @@ var formatValues = (state) => {
|
|
|
538
549
|
...customer
|
|
539
550
|
};
|
|
540
551
|
values.holder = formatHolder(state, values);
|
|
541
|
-
if (
|
|
552
|
+
if (isEvent) {
|
|
542
553
|
values.relation_products = formatRelationProducts(
|
|
543
554
|
state,
|
|
544
|
-
|
|
555
|
+
"event"
|
|
545
556
|
);
|
|
546
557
|
} else {
|
|
547
558
|
values.relation_products = formatNormalProducts(state);
|
|
@@ -555,7 +566,7 @@ var formatValues = (state) => {
|
|
|
555
566
|
startTime = `${startTime || "00:00"}:00`;
|
|
556
567
|
values.schedule_date = `${values.bookings[0].select_date} ${startTime}`;
|
|
557
568
|
}
|
|
558
|
-
if (isDay) {
|
|
569
|
+
if (isDay || isHasMultiDay) {
|
|
559
570
|
values.metadata.is_multiday_appointment = 1;
|
|
560
571
|
}
|
|
561
572
|
if (!((_g = values == null ? void 0 : values.bookings) == null ? void 0 : _g.length)) {
|
|
@@ -607,5 +618,6 @@ var checkHolderIsError = (state) => {
|
|
|
607
618
|
formatProductBundle,
|
|
608
619
|
formatProductOption,
|
|
609
620
|
formatProductPrice,
|
|
610
|
-
formatValues
|
|
621
|
+
formatValues,
|
|
622
|
+
getHasMultiDayProduct
|
|
611
623
|
});
|
|
@@ -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;
|