@pisell/private-materials 3.3.83 → 3.3.84

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 (173) 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 +5 -5
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +5 -5
  11. package/es/businessModel/SalesModel/Sales/index.js +37 -4
  12. package/es/components/Sales/Resource/index.js +2 -2
  13. package/es/components/Sales/Resource/serve.d.ts +7 -0
  14. package/es/components/Sales/Resource/serve.js +10 -0
  15. package/es/components/appointmentBooking/components/Cart/Item/index.less +3 -3
  16. package/es/components/appointmentBooking/components/Content/index.less +1 -1
  17. package/es/components/appointmentBooking/components/Header/index.js +8 -14
  18. package/es/components/appointmentBooking/components/Services/index.js +38 -36
  19. package/es/components/appointmentBooking/components/Voucher/index.js +1 -1
  20. package/es/components/appointmentBooking/index.js +14 -0
  21. package/es/components/appointmentBooking/index.less +1 -1
  22. package/es/components/appointmentBooking/locales.d.ts +0 -3
  23. package/es/components/appointmentBooking/locales.js +0 -3
  24. package/es/components/booking/components/footer/utils.d.ts +1 -0
  25. package/es/components/booking/components/footer/utils.js +1 -1
  26. package/es/components/booking/components/voucher/index.js +2 -2
  27. package/es/components/booking/editBookingModal/index.d.ts +5 -0
  28. package/es/components/booking/editBookingModal/index.js +386 -0
  29. package/es/components/booking/editBookingModal/index.less +8 -0
  30. package/es/components/booking/editBookingModal/locales.d.ts +21 -0
  31. package/es/components/booking/editBookingModal/locales.js +20 -0
  32. package/es/components/booking/editBookingModal/mock.d.ts +807 -0
  33. package/es/components/booking/editBookingModal/mock.js +2993 -0
  34. package/es/components/booking/editBookingModal/serve.d.ts +51 -0
  35. package/es/components/booking/editBookingModal/serve.js +288 -0
  36. package/es/components/booking/editBookingModal/type.d.ts +12 -0
  37. package/es/components/booking/editBookingModal/type.js +1 -0
  38. package/es/components/booking/editBookingModal/utils.d.ts +12 -0
  39. package/es/components/booking/editBookingModal/utils.js +157 -0
  40. package/es/components/booking/info/service2/utils.d.ts +1 -1
  41. package/es/components/booking/info/service2/utils.js +3 -2
  42. package/es/components/booking/info2/service/addService/utils.d.ts +10 -0
  43. package/es/components/booking/info2/service/addService/utils.js +44 -13
  44. package/es/components/booking/info2/service/editService/Resources/index.js +22 -8
  45. package/es/components/booking/info2/service/editService/Resources/index.less +6 -0
  46. package/es/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.d.ts +7 -0
  47. package/es/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.js +26 -0
  48. package/es/components/booking/info2/service/editService/ResourcesV2/index.d.ts +10 -0
  49. package/es/components/booking/info2/service/editService/ResourcesV2/index.js +308 -0
  50. package/es/components/booking/info2/service/editService/ResourcesV2/index.less +44 -0
  51. package/es/components/booking/info2/utilsByBooking.js +9 -0
  52. package/es/components/booking/locales.d.ts +3 -0
  53. package/es/components/booking/locales.js +3 -0
  54. package/es/components/booking/utils.d.ts +2 -2
  55. package/es/components/eventBooking/components/Provider/Event/index.js +13 -4
  56. package/es/components/eventBooking/components/bookingDetailModal/index.js +19 -3
  57. package/es/components/eventBooking/index.js +21 -7
  58. package/es/components/eventBooking/locales.js +3 -3
  59. package/es/components/index.d.ts +3 -1
  60. package/es/components/index.js +3 -1
  61. package/es/components/pay/toC/PaymentMethods/index.js +5 -4
  62. package/es/components/stepController/components/Content/index.d.ts +7 -0
  63. package/es/components/stepController/components/Content/index.js +9 -0
  64. package/es/components/stepController/components/Content/index.less +8 -0
  65. package/es/components/stepController/components/Footer/index.d.ts +8 -0
  66. package/es/components/stepController/components/Footer/index.js +15 -0
  67. package/es/components/stepController/components/Footer/index.less +39 -0
  68. package/es/components/stepController/components/Header/index.d.ts +20 -0
  69. package/es/components/stepController/components/Header/index.js +97 -0
  70. package/es/components/stepController/components/Header/index.less +21 -0
  71. package/es/components/stepController/index.d.ts +5 -0
  72. package/es/components/stepController/index.js +64 -0
  73. package/es/components/stepController/index.less +11 -0
  74. package/es/components/stepController/locales.d.ts +27 -0
  75. package/es/components/stepController/locales.js +32 -0
  76. package/es/components/stepController/types.d.ts +23 -0
  77. package/es/components/stepController/types.js +1 -0
  78. package/es/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
  79. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
  80. package/es/components/ticketBooking/components/ticketBooking/index.js +257 -138
  81. package/es/components/ticketBooking/locales.d.ts +164 -146
  82. package/es/components/ticketBooking/locales.js +195 -147
  83. package/es/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
  84. package/es/components/ticketBooking/utils/formatProductMessage.js +62 -0
  85. package/es/components/ticketBooking/utils/formatTime.d.ts +31 -0
  86. package/es/components/ticketBooking/utils/formatTime.js +144 -0
  87. package/es/hooks/useWindowSize.d.ts +5 -0
  88. package/es/hooks/useWindowSize.js +26 -0
  89. package/es/index.d.ts +2 -0
  90. package/es/index.js +3 -1
  91. package/lib/businessModel/SalesModel/Sales/index.js +22 -8
  92. package/lib/components/Sales/Resource/index.js +1 -1
  93. package/lib/components/Sales/Resource/serve.d.ts +7 -0
  94. package/lib/components/Sales/Resource/serve.js +9 -2
  95. package/lib/components/appointmentBooking/components/Cart/Item/index.less +3 -3
  96. package/lib/components/appointmentBooking/components/Content/index.less +1 -1
  97. package/lib/components/appointmentBooking/components/Header/index.js +2 -3
  98. package/lib/components/appointmentBooking/components/Services/index.js +19 -18
  99. package/lib/components/appointmentBooking/components/Voucher/index.js +1 -1
  100. package/lib/components/appointmentBooking/index.js +11 -0
  101. package/lib/components/appointmentBooking/index.less +1 -1
  102. package/lib/components/appointmentBooking/locales.d.ts +0 -3
  103. package/lib/components/appointmentBooking/locales.js +0 -3
  104. package/lib/components/booking/components/footer/utils.d.ts +1 -0
  105. package/lib/components/booking/components/footer/utils.js +2 -0
  106. package/lib/components/booking/components/voucher/index.js +11 -23
  107. package/lib/components/booking/editBookingModal/index.d.ts +5 -0
  108. package/lib/components/booking/editBookingModal/index.js +363 -0
  109. package/lib/components/booking/editBookingModal/index.less +8 -0
  110. package/lib/components/booking/editBookingModal/locales.d.ts +21 -0
  111. package/lib/components/booking/editBookingModal/locales.js +44 -0
  112. package/lib/components/booking/editBookingModal/mock.d.ts +807 -0
  113. package/lib/components/booking/editBookingModal/mock.js +3314 -0
  114. package/lib/components/booking/editBookingModal/serve.d.ts +51 -0
  115. package/lib/components/booking/editBookingModal/serve.js +178 -0
  116. package/lib/components/booking/editBookingModal/type.d.ts +12 -0
  117. package/lib/components/booking/editBookingModal/type.js +17 -0
  118. package/lib/components/booking/editBookingModal/utils.d.ts +12 -0
  119. package/lib/components/booking/editBookingModal/utils.js +158 -0
  120. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  121. package/lib/components/booking/info/service2/utils.js +2 -2
  122. package/lib/components/booking/info2/service/addService/utils.d.ts +10 -0
  123. package/lib/components/booking/info2/service/addService/utils.js +27 -4
  124. package/lib/components/booking/info2/service/editService/Resources/index.js +54 -10
  125. package/lib/components/booking/info2/service/editService/Resources/index.less +6 -0
  126. package/lib/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.d.ts +7 -0
  127. package/lib/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.js +53 -0
  128. package/lib/components/booking/info2/service/editService/ResourcesV2/index.d.ts +10 -0
  129. package/lib/components/booking/info2/service/editService/ResourcesV2/index.js +311 -0
  130. package/lib/components/booking/info2/service/editService/ResourcesV2/index.less +44 -0
  131. package/lib/components/booking/info2/utilsByBooking.js +6 -0
  132. package/lib/components/booking/locales.d.ts +3 -0
  133. package/lib/components/booking/locales.js +3 -0
  134. package/lib/components/booking/utils.d.ts +2 -2
  135. package/lib/components/eventBooking/components/Provider/Event/index.js +10 -3
  136. package/lib/components/eventBooking/components/bookingDetailModal/index.js +9 -3
  137. package/lib/components/eventBooking/index.js +11 -7
  138. package/lib/components/eventBooking/locales.js +3 -3
  139. package/lib/components/index.d.ts +3 -1
  140. package/lib/components/index.js +6 -0
  141. package/lib/components/pay/toC/PaymentMethods/index.js +10 -9
  142. package/lib/components/stepController/components/Content/index.d.ts +7 -0
  143. package/lib/components/stepController/components/Content/index.js +40 -0
  144. package/lib/components/stepController/components/Content/index.less +8 -0
  145. package/lib/components/stepController/components/Footer/index.d.ts +8 -0
  146. package/lib/components/stepController/components/Footer/index.js +49 -0
  147. package/lib/components/stepController/components/Footer/index.less +39 -0
  148. package/lib/components/stepController/components/Header/index.d.ts +20 -0
  149. package/lib/components/stepController/components/Header/index.js +104 -0
  150. package/lib/components/stepController/components/Header/index.less +21 -0
  151. package/lib/components/stepController/index.d.ts +5 -0
  152. package/lib/components/stepController/index.js +89 -0
  153. package/lib/components/stepController/index.less +11 -0
  154. package/lib/components/stepController/locales.d.ts +27 -0
  155. package/lib/components/stepController/locales.js +50 -0
  156. package/lib/components/stepController/types.d.ts +23 -0
  157. package/lib/components/stepController/types.js +17 -0
  158. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
  159. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
  160. package/lib/components/ticketBooking/components/ticketBooking/index.js +263 -139
  161. package/lib/components/ticketBooking/locales.d.ts +164 -146
  162. package/lib/components/ticketBooking/locales.js +22 -4
  163. package/lib/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
  164. package/lib/components/ticketBooking/utils/formatProductMessage.js +84 -0
  165. package/lib/components/ticketBooking/utils/formatTime.d.ts +31 -0
  166. package/lib/components/ticketBooking/utils/formatTime.js +139 -0
  167. package/lib/hooks/useWindowSize.d.ts +5 -0
  168. package/lib/hooks/useWindowSize.js +51 -0
  169. package/lib/index.d.ts +2 -0
  170. package/lib/index.js +6 -0
  171. package/lowcode/edit-booking-modal/meta.ts +53 -0
  172. package/lowcode/step-controller/meta.ts +88 -0
  173. package/package.json +3 -3
@@ -128,6 +128,7 @@ export default {
128
128
  'pisell1.text.resource-error-message-3': function pisell1TextResourceErrorMessage3(x, y, z) {
129
129
  return "".concat(x, " is fully booked between ").concat(y, " and ").concat(z, ", but your team member can still book appointments.");
130
130
  },
131
+ 'pisell1.text.resource-error-message-unbound': 'This booking product is not associated with the target resource.',
131
132
  'pisell1.text.no-addons': 'No addons',
132
133
  'pisell1.text.no-resource': 'No resource',
133
134
  'pisell1.text.no-payments': 'No payments',
@@ -454,6 +455,7 @@ export default {
454
455
  'pisell1.text.resource-error-message-3': function pisell1TextResourceErrorMessage3(x, y, z) {
455
456
  return "".concat(x, "\u5728").concat(y, "\u5230").concat(z, "\u4E4B\u95F4\u5DF2\u7EA6\u6EE1\uFF0C\u4F46\u60A8\u7684\u56E2\u961F\u6210\u5458\u4ECD\u7136\u53EF\u4EE5\u9884\u7EA6\u3002");
456
457
  },
458
+ 'pisell1.text.resource-error-message-unbound': '该预约商品未关联目标资源。',
457
459
  'pisell2.text.flexible': "灵活",
458
460
  'pisell2.text.order-discount': "折扣",
459
461
  'pisell2.text.no-product-added': '未添加商品',
@@ -772,6 +774,7 @@ export default {
772
774
  'pisell1.text.resource-error-message-3': function pisell1TextResourceErrorMessage3(x, y, z) {
773
775
  return "".concat(x, "\u5728").concat(y, "\u5230").concat(z, "\u4E4B\u9593\u5DF2\u7D04\u6EFF\uFF0C\u4F46\u60A8\u7684\u5718\u968A\u6210\u54E1\u4ECD\u7136\u53EF\u4EE5\u9810\u7D04\u3002");
774
776
  },
777
+ 'pisell1.text.resource-error-message-unbound': '該預約商品未關聯目標資源。',
775
778
  'pisell2.text.flexible': "靈活",
776
779
  'pisell2.text.order-discount': "折扣",
777
780
  'pisell2.text.no-product-added': '未添加商品',
@@ -165,10 +165,10 @@ export declare const getProductTotalPrice: (item: any) => number;
165
165
  export declare const getDuration: (duration: number | {
166
166
  type: string;
167
167
  value: number;
168
- }) => number | "flexible" | {
168
+ }) => number | {
169
169
  type: string;
170
170
  value: number;
171
- };
171
+ } | "flexible";
172
172
  export declare const isWalkIn: (customer_id?: number | string) => boolean;
173
173
  export declare const getIsEdit: (state: any) => boolean;
174
174
  export {};
@@ -7,7 +7,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
7
  import React, { useEffect, useState } from 'react';
8
8
  import { isMobile, locales } from '@pisell/utils';
9
9
  import { Skeleton } from 'antd';
10
- import { useEvent, useSales, useEventDetail, useStep } from "../../../../Sales";
10
+ import { useEvent, useSales, useEventDetail, useStep, useCustomer } from "../../../../Sales";
11
11
  import BookingServiceList from "../../bookingServiceList";
12
12
  import BookingDetailModal from "../../bookingDetailModal";
13
13
  import "./index.less";
@@ -31,6 +31,8 @@ var Event = function Event() {
31
31
  lists = _useState2[0],
32
32
  setLists = _useState2[1];
33
33
  var customer = useLoginUser();
34
+ var _useCustomer = useCustomer(),
35
+ appUtils = _useCustomer.appUtils;
34
36
  useEffect(function () {
35
37
  var _data$stepData;
36
38
  var eventList = (eventData === null || eventData === void 0 ? void 0 : eventData.eventList) || [];
@@ -45,16 +47,23 @@ var Event = function Event() {
45
47
  }
46
48
  }, [eventData === null || eventData === void 0 ? void 0 : eventData.eventList]);
47
49
  useEffect(function () {
48
- var _data$resourceData;
50
+ var _data$resourceData, _appUtils$getHistory, _history$location;
49
51
  var id = data === null || data === void 0 || (_data$resourceData = data.resourceData) === null || _data$resourceData === void 0 || (_data$resourceData = _data$resourceData.currentResourceItem) === null || _data$resourceData === void 0 ? void 0 : _data$resourceData.id;
50
52
  if (!id) return;
51
- getEventList.run({
53
+ var history = (appUtils === null || appUtils === void 0 || (_appUtils$getHistory = appUtils.getHistory) === null || _appUtils$getHistory === void 0 ? void 0 : _appUtils$getHistory.call(appUtils)) || {};
54
+ var query = history === null || history === void 0 || (_history$location = history.location) === null || _history$location === void 0 ? void 0 : _history$location.query;
55
+ var params = {
52
56
  event_item_resource_id: id,
53
57
  skip: 1,
54
58
  num: 100,
55
59
  customer_id: customer === null || customer === void 0 ? void 0 : customer.id,
56
60
  open_quotation: 1
57
- });
61
+ };
62
+ if (query !== null && query !== void 0 && query.ids) {
63
+ var _query$ids;
64
+ params.ids = query === null || query === void 0 || (_query$ids = query.ids) === null || _query$ids === void 0 ? void 0 : _query$ids.split(',');
65
+ }
66
+ getEventList.run(params);
58
67
  }, [data === null || data === void 0 || (_data$resourceData2 = data.resourceData) === null || _data$resourceData2 === void 0 || (_data$resourceData2 = _data$resourceData2.currentResourceItem) === null || _data$resourceData2 === void 0 ? void 0 : _data$resourceData2.id, customer === null || customer === void 0 ? void 0 : customer.id]);
59
68
 
60
69
  /**
@@ -16,7 +16,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
16
  import React, { useMemo, useRef, useState, useEffect } from 'react';
17
17
  import { PisellModal, PisellAnchor, PisellImageCarousels } from '@pisell/materials';
18
18
  import EventCard from "../eventCard";
19
- import { useCart, useEventDetail } from "../../../Sales";
19
+ import { useCart, useEventDetail, useInit } from "../../../Sales";
20
20
  import { isMobile, locales } from '@pisell/utils';
21
21
  import Schedule from "./components/Schedule";
22
22
  import Resource from "./components/Resource";
@@ -25,7 +25,7 @@ import OrderProductModal from "../Provider/OrderProductModal/index";
25
25
  import "./index.less";
26
26
  import useEngineContext from "../../../../hooks/useEngineContext";
27
27
  var BookingDetailModal = function BookingDetailModal(props) {
28
- var _detail$introduction2;
28
+ var _initData$boardSettin2, _detail$introduction2;
29
29
  var modalContentRef = useRef(null);
30
30
  var context = useEngineContext();
31
31
  var _ref = context.appHelper || {},
@@ -43,6 +43,8 @@ var BookingDetailModal = function BookingDetailModal(props) {
43
43
  addToCart = _useCart.addToCart,
44
44
  checkBeforeAddToCart = _useCart.checkBeforeAddToCart,
45
45
  checkBeforeAddToCartResquest = _useCart.checkBeforeAddToCartResquest;
46
+ var _useInit = useInit(),
47
+ initData = _useInit.initData;
46
48
  var _useState = useState('introduction'),
47
49
  _useState2 = _slicedToArray(_useState, 2),
48
50
  activeTab = _useState2[0],
@@ -59,6 +61,20 @@ var BookingDetailModal = function BookingDetailModal(props) {
59
61
  var isUserClickRef = useRef(false); // 添加用户点击标记
60
62
  var scrollTimeoutRef = useRef(null);
61
63
 
64
+ /**
65
+ * @title: 按钮确认文案
66
+ * @description:
67
+ * @param {*} useMemo
68
+ * @return {*}
69
+ * @Author: WangHan
70
+ * @Date: 2025-06-26 15:34
71
+ */
72
+ var buttonText = useMemo(function () {
73
+ var _initData$boardSettin, _utils$translation;
74
+ var config = (initData === null || initData === void 0 || (_initData$boardSettin = initData.boardSetting) === null || _initData$boardSettin === void 0 || (_initData$boardSettin = _initData$boardSettin.config) === null || _initData$boardSettin === void 0 ? void 0 : _initData$boardSettin.product_display_setting) || {};
75
+ return (utils === null || utils === void 0 || (_utils$translation = utils.translation) === null || _utils$translation === void 0 ? void 0 : _utils$translation.call(utils, config === null || config === void 0 ? void 0 : config.booking_event_v2_product_detail_button)) || locales.getText('pisell2.event.add.to.cart');
76
+ }, [initData === null || initData === void 0 || (_initData$boardSettin2 = initData.boardSetting) === null || _initData$boardSettin2 === void 0 || (_initData$boardSettin2 = _initData$boardSettin2.config) === null || _initData$boardSettin2 === void 0 ? void 0 : _initData$boardSettin2.product_display_setting]);
77
+
62
78
  /**
63
79
  * @title: 详情锚点
64
80
  * @description:
@@ -377,7 +393,7 @@ var BookingDetailModal = function BookingDetailModal(props) {
377
393
  destroyOnClose: true,
378
394
  className: "booking-detail-modal",
379
395
  onCancel: onCloseEventDetail,
380
- okText: locales.getText('pisell2.event.add.to.cart'),
396
+ okText: buttonText,
381
397
  cancelVisible: false,
382
398
  onOk: handleOk,
383
399
  width: isMobile() ? '100%' : 600,
@@ -36,14 +36,28 @@ var Content = function Content() {
36
36
  * @Author: WangHan
37
37
  * @Date: 2025-01-17 14:25
38
38
  */
39
+ // useEffect(() => {
40
+ // if (!form_id) return;
41
+
42
+ // getResourceList.run({
43
+ // form_id: form_id,
44
+ // shop_id: shop_id,
45
+ // form_data_status: 'active',
46
+ // });
47
+ // }, [form_id]);
39
48
  useEffect(function () {
40
- if (!form_id) return;
41
- getResourceList.run({
42
- form_id: form_id,
43
- shop_id: shop_id,
44
- form_data_status: 'active'
45
- });
46
- }, [form_id]);
49
+ var _utils$getHistory, _history$location;
50
+ var history = (utils === null || utils === void 0 || (_utils$getHistory = utils.getHistory) === null || _utils$getHistory === void 0 ? void 0 : _utils$getHistory.call(utils)) || {};
51
+ var query = history === null || history === void 0 || (_history$location = history.location) === null || _history$location === void 0 ? void 0 : _history$location.query;
52
+ var params = {
53
+ front_end_cache_id: (query === null || query === void 0 ? void 0 : query.cacheId) || ''
54
+ };
55
+ if (query !== null && query !== void 0 && query.ids) {
56
+ var _query$ids;
57
+ params.event_item_ids = query === null || query === void 0 || (_query$ids = query.ids) === null || _query$ids === void 0 ? void 0 : _query$ids.split(',');
58
+ }
59
+ getResourceList.run(params);
60
+ }, []);
47
61
  return /*#__PURE__*/React.createElement("div", {
48
62
  className: "event-booking-wrap ".concat(isMobile() ? 'event-booking-mobile-wrap' : '')
49
63
  }, /*#__PURE__*/React.createElement(Header, null), /*#__PURE__*/React.createElement(EventContent, null), isMobile() && (currentStepData === null || currentStepData === void 0 ? void 0 : currentStepData.key) !== 'select-category' ? /*#__PURE__*/React.createElement(Footer, null) : null);
@@ -35,7 +35,7 @@ export default {
35
35
  'pisell2.event.campus': 'Campus',
36
36
  'pisell2.event.resource': 'Location',
37
37
  'pisell2.event.booking.options': 'Booking options',
38
- 'pisell2.event.add.to.cart': 'Add to cart',
38
+ 'pisell2.event.add.to.cart': 'Add to Cart',
39
39
  'pisell2.event.description': 'Description',
40
40
  'pisell2.event.view.more': 'View more',
41
41
  'pisell2.event.view.less': 'View less',
@@ -120,7 +120,7 @@ export default {
120
120
  'pisell2.event.campus': '校区',
121
121
  'pisell2.event.resource': '资源',
122
122
  'pisell2.event.booking.options': '预约选项',
123
- 'pisell2.event.add.to.cart': '添加到购物车',
123
+ 'pisell2.event.add.to.cart': '加入购物车',
124
124
  'pisell2.event.description': '描述',
125
125
  'pisell2.event.view.more': '查看更多',
126
126
  'pisell2.event.view.less': '收起',
@@ -205,7 +205,7 @@ export default {
205
205
  'pisell2.event.campus': '校區',
206
206
  'pisell2.event.resource': '資源',
207
207
  'pisell2.event.booking.options': '預約選項',
208
- 'pisell2.event.add.to.cart': '添加到購物車',
208
+ 'pisell2.event.add.to.cart': '加入購物車',
209
209
  'pisell2.event.description': '描述',
210
210
  'pisell2.event.view.more': '查看更多',
211
211
  'pisell2.event.view.less': '收起',
@@ -15,4 +15,6 @@ import WorkspaceListDetail from './workSpaceListDetail/';
15
15
  import WorkspaceList from './workSpaceList';
16
16
  import PisellSelectCustomerModal from './pisellSelectCustomerModal';
17
17
  import SubTotal from './subTotal';
18
- export { Login, BookingInfo, Booking, BookingNotes, BookingAddons, BookingForms, Schedules, ProductExtension, RuleSetting, TaxSelect, ToCPay, PisellSelectCustomerModal, Wallet, WalletList, WorkspaceList, WorkspaceListDetail, SubTotal, };
18
+ import StepController from './stepController';
19
+ import EditBookingModal from './booking/editBookingModal';
20
+ export { Login, BookingInfo, Booking, BookingNotes, BookingAddons, BookingForms, Schedules, ProductExtension, RuleSetting, TaxSelect, ToCPay, PisellSelectCustomerModal, Wallet, WalletList, WorkspaceList, WorkspaceListDetail, SubTotal, StepController, EditBookingModal };
@@ -15,4 +15,6 @@ import WorkspaceListDetail from "./workSpaceListDetail/";
15
15
  import WorkspaceList from "./workSpaceList";
16
16
  import PisellSelectCustomerModal from "./pisellSelectCustomerModal";
17
17
  import SubTotal from "./subTotal";
18
- export { Login, BookingInfo, Booking, BookingNotes, BookingAddons, BookingForms, Schedules, ProductExtension, RuleSetting, TaxSelect, ToCPay, PisellSelectCustomerModal, Wallet, WalletList, WorkspaceList, WorkspaceListDetail, SubTotal };
18
+ import StepController from "./stepController";
19
+ import EditBookingModal from "./booking/editBookingModal";
20
+ export { Login, BookingInfo, Booking, BookingNotes, BookingAddons, BookingForms, Schedules, ProductExtension, RuleSetting, TaxSelect, ToCPay, PisellSelectCustomerModal, Wallet, WalletList, WorkspaceList, WorkspaceListDetail, SubTotal, StepController, EditBookingModal };
@@ -35,7 +35,7 @@ var isOfflinePayment = function isOfflinePayment(type) {
35
35
  return ['pisell.bank_deposit', 'pisell.offline_payment', 'pisell.other.cashmanual', 'pisell.custom_bank_transfer'].includes(type);
36
36
  };
37
37
  var PaymentMethods = function PaymentMethods(props, ref) {
38
- var _context$appHelper;
38
+ var _context$appHelper, _interaction$utils, _interaction$utils$is;
39
39
  var MWCreditCardRef = useRef(null);
40
40
  var SuperPayAliPayH5Ref = useRef(null);
41
41
  var StripePayRef = useRef(null);
@@ -118,10 +118,11 @@ var PaymentMethods = function PaymentMethods(props, ref) {
118
118
  return _ref2.apply(this, arguments);
119
119
  };
120
120
  }();
121
+ console.log('paymentResult isAppEnv', interaction === null || interaction === void 0 || (_interaction$utils = interaction.utils) === null || _interaction$utils === void 0 || (_interaction$utils$is = _interaction$utils.isAppEnv) === null || _interaction$utils$is === void 0 ? void 0 : _interaction$utils$is.call(_interaction$utils), interaction, context);
121
122
  useEffect(function () {
122
- var _interaction$utils, _interaction$utils$is, _interaction$utils2, _interaction$utils2$i;
123
- console.log('paymentResult isAppEnv', interaction === null || interaction === void 0 || (_interaction$utils = interaction.utils) === null || _interaction$utils === void 0 || (_interaction$utils$is = _interaction$utils.isAppEnv) === null || _interaction$utils$is === void 0 ? void 0 : _interaction$utils$is.call(_interaction$utils));
124
- if (interaction !== null && interaction !== void 0 && (_interaction$utils2 = interaction.utils) !== null && _interaction$utils2 !== void 0 && (_interaction$utils2$i = _interaction$utils2.isAppEnv) !== null && _interaction$utils2$i !== void 0 && _interaction$utils2$i.call(_interaction$utils2)) {
123
+ var _interaction$utils2, _interaction$utils2$i, _interaction$utils3, _interaction$utils3$i;
124
+ console.log('paymentResult isAppEnv', interaction === null || interaction === void 0 || (_interaction$utils2 = interaction.utils) === null || _interaction$utils2 === void 0 || (_interaction$utils2$i = _interaction$utils2.isAppEnv) === null || _interaction$utils2$i === void 0 ? void 0 : _interaction$utils2$i.call(_interaction$utils2));
125
+ if (interaction !== null && interaction !== void 0 && (_interaction$utils3 = interaction.utils) !== null && _interaction$utils3 !== void 0 && (_interaction$utils3$i = _interaction$utils3.isAppEnv) !== null && _interaction$utils3$i !== void 0 && _interaction$utils3$i.call(_interaction$utils3)) {
125
126
  interaction.utils.mountFunction('global', 'paymentResult', function (strResult) {
126
127
  console.log('paymentResult', strResult);
127
128
  if (!isJson(strResult)) return;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ export interface ContentProps {
4
+ children?: React.ReactNode;
5
+ }
6
+ declare const Content: React.FC<ContentProps>;
7
+ export default Content;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import "./index.less";
3
+ var Content = function Content(_ref) {
4
+ var children = _ref.children;
5
+ return /*#__PURE__*/React.createElement("div", {
6
+ className: "pisell-step-controller-content"
7
+ }, children);
8
+ };
9
+ export default Content;
@@ -0,0 +1,8 @@
1
+ .pisell-step-controller-content {
2
+ flex: 1;
3
+ width: 1000px;
4
+ max-width: 100%;
5
+ border-right: 1px solid var(--Gray-100, #f2f4f7);
6
+ border-left: 1px solid var(--Gray-100, #f2f4f7);
7
+ background: #fff;
8
+ }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ export interface FooterProps {
4
+ isMobile?: boolean;
5
+ children?: React.ReactNode;
6
+ }
7
+ declare const Footer: React.FC<FooterProps>;
8
+ export default Footer;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import classNames from 'classnames';
3
+ import "./index.less";
4
+ var Footer = function Footer(_ref) {
5
+ var isMobile = _ref.isMobile,
6
+ children = _ref.children;
7
+ return /*#__PURE__*/React.createElement("div", {
8
+ className: classNames('pisell-step-controller-footer-wrap', {
9
+ 'pisell-step-controller-footer-wrap-mobile': isMobile
10
+ })
11
+ }, /*#__PURE__*/React.createElement("div", {
12
+ className: "pisell-step-controller-footer"
13
+ }, children));
14
+ };
15
+ export default Footer;
@@ -0,0 +1,39 @@
1
+ .pisell-step-controller-footer-wrap {
2
+ position: sticky;
3
+ left: 0;
4
+ right: 0;
5
+ bottom: 0;
6
+ width: 100%;
7
+ background: #fff;
8
+ // box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);
9
+ padding: 24px;
10
+ z-index: 100;
11
+ border-top: 1px solid var(--Gray-100, #f2f4f7);
12
+
13
+ .pisell-step-controller-footer {
14
+ width: 1000px;
15
+ margin: 0 auto;
16
+ max-width: 100%;
17
+ display: flex;
18
+ gap: 12px;
19
+ justify-content: flex-end;
20
+
21
+ .pisell-section-headers-main {
22
+ color: var(--Gray-900, #101828);
23
+ font-size: 14px;
24
+ font-weight: 400;
25
+ line-height: 20px;
26
+ justify-content: start;
27
+
28
+ .select-text {
29
+ font-size: 18px;
30
+ font-weight: 600;
31
+ line-height: 24px;
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ .pisell-step-controller-footer-wrap-mobile {
38
+ border-top: 1px solid #eaecf0;
39
+ }
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Step } from '../../types';
3
+ import './index.less';
4
+ export interface HeaderProps {
5
+ steps: Step[];
6
+ currentStepIndex: number;
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ onBack?: (key: string) => void;
10
+ onClose?: () => void;
11
+ confirmCloseProps?: {
12
+ isConfirmClose?: boolean;
13
+ title?: string;
14
+ content?: string;
15
+ okText?: string;
16
+ cancelText?: string;
17
+ };
18
+ }
19
+ declare const Header: React.FC<HeaderProps>;
20
+ export default Header;
@@ -0,0 +1,97 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ 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."); }
3
+ 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); }
4
+ 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; }
5
+ 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; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import React, { useState } from 'react';
8
+ import { PisellHeaderProgressBar, PisellModal } from '@pisell/materials';
9
+ import { locales } from '@pisell/utils';
10
+ import "./index.less";
11
+ var Header = function Header(_ref) {
12
+ var _steps$currentStepInd;
13
+ var steps = _ref.steps,
14
+ currentStepIndex = _ref.currentStepIndex,
15
+ style = _ref.style,
16
+ onBack = _ref.onBack,
17
+ onClose = _ref.onClose,
18
+ confirmCloseProps = _ref.confirmCloseProps;
19
+ var _useState = useState(false),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ open = _useState2[0],
22
+ setOpen = _useState2[1];
23
+
24
+ /**
25
+ * @title: 点击关闭
26
+ * @description:
27
+ * @return {*}
28
+ * @Author: WangHan
29
+ * @Date: 2025-01-14 22:41
30
+ */
31
+ var handleClose = function handleClose() {
32
+ // 二次确认
33
+ if (confirmCloseProps !== null && confirmCloseProps !== void 0 && confirmCloseProps.isConfirmClose) {
34
+ setOpen(true);
35
+ } else {
36
+ onClose === null || onClose === void 0 || onClose();
37
+ }
38
+ };
39
+
40
+ /**
41
+ * @title: 点击退出
42
+ * @description:
43
+ * @return {*}
44
+ * @Author: WangHan
45
+ * @Date: 2025-02-10 17:46
46
+ */
47
+ var handleOk = function handleOk() {
48
+ setOpen(false);
49
+ onClose === null || onClose === void 0 || onClose();
50
+ };
51
+
52
+ /**
53
+ * @title: 返回上一步
54
+ * @description:
55
+ * @return {*}
56
+ * @Author: WangHan
57
+ * @Date: 2025-06-12 16:44
58
+ */
59
+ var handleBack = function handleBack() {
60
+ if (!steps) return;
61
+ if (currentStepIndex > 0) {
62
+ var prevKey = steps[currentStepIndex - 1].key;
63
+ onBack === null || onBack === void 0 || onBack(prevKey);
64
+ }
65
+ };
66
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PisellHeaderProgressBar, {
67
+ className: "pisell-step-controller-header",
68
+ style: style,
69
+ stepText: locales.getText('pisell2.step.controller.step')(currentStepIndex + 1),
70
+ title: steps === null || steps === void 0 || (_steps$currentStepInd = steps[currentStepIndex]) === null || _steps$currentStepInd === void 0 ? void 0 : _steps$currentStepInd.description,
71
+ showClose: true,
72
+ onBack: handleBack,
73
+ onClose: handleClose,
74
+ enableBorder: true,
75
+ borderColor: "#EAECF0",
76
+ showBack: currentStepIndex > 0 || false
77
+ }), /*#__PURE__*/React.createElement(PisellModal.Information, {
78
+ open: open,
79
+ title: (confirmCloseProps === null || confirmCloseProps === void 0 ? void 0 : confirmCloseProps.title) || '',
80
+ describe: (confirmCloseProps === null || confirmCloseProps === void 0 ? void 0 : confirmCloseProps.content) || '',
81
+ okText: (confirmCloseProps === null || confirmCloseProps === void 0 ? void 0 : confirmCloseProps.okText) || '',
82
+ cancelText: (confirmCloseProps === null || confirmCloseProps === void 0 ? void 0 : confirmCloseProps.cancelText) || '',
83
+ closable: true,
84
+ okButtonProps: {
85
+ style: {
86
+ backgroundColor: '#D92D20'
87
+ }
88
+ },
89
+ onCancel: function onCancel() {
90
+ setOpen(false);
91
+ },
92
+ onOk: function onOk() {
93
+ return handleOk();
94
+ }
95
+ }));
96
+ };
97
+ export default Header;
@@ -0,0 +1,21 @@
1
+ .pisell-step-controller-header {
2
+ .pisell-section-headers-content {
3
+ width: 1000px;
4
+ margin: 0 auto;
5
+ max-width: 100%;
6
+
7
+ .pisell-section-headers-main {
8
+ color: var(--Gray-900, #101828);
9
+ font-size: 14px;
10
+ font-weight: 400;
11
+ line-height: 20px;
12
+ justify-content: start;
13
+
14
+ .select-text {
15
+ font-size: 18px;
16
+ font-weight: 600;
17
+ line-height: 24px;
18
+ }
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { StepControllerProps } from './types';
3
+ import './index.less';
4
+ declare const StepController: React.FC<StepControllerProps>;
5
+ export default StepController;
@@ -0,0 +1,64 @@
1
+ import React, { useMemo } from 'react';
2
+ import classNames from 'classnames';
3
+ import { locales } from '@pisell/utils';
4
+ import { usePisellConfig } from '@pisell/materials';
5
+ import useEngineContext from "../../hooks/useEngineContext";
6
+ import { useWindowSize } from "../../hooks/useWindowSize";
7
+ import Header from "./components/Header";
8
+ import Footer from "./components/Footer";
9
+ import Content from "./components/Content";
10
+ import localeTexts from "./locales";
11
+ import "./index.less";
12
+ var StepController = function StepController(_ref) {
13
+ var _context$engine;
14
+ var steps = _ref.steps,
15
+ currentStep = _ref.currentStep,
16
+ children = _ref.children,
17
+ onBack = _ref.onBack,
18
+ confirmCloseProps = _ref.confirmCloseProps,
19
+ showFooter = _ref.showFooter,
20
+ footerContent = _ref.footerContent,
21
+ onClose = _ref.onClose;
22
+ var context = useEngineContext();
23
+ locales.init(localeTexts, (context === null || context === void 0 || (_context$engine = context.engine) === null || _context$engine === void 0 || (_context$engine = _context$engine.props) === null || _context$engine === void 0 ? void 0 : _context$engine.locale) || 'en');
24
+
25
+ // 监听窗口大小变化,重新计算vh
26
+ useWindowSize({
27
+ debounceMs: 200
28
+ });
29
+
30
+ /**
31
+ * @title: 是否是移动端
32
+ * @description:
33
+ * @return {*}
34
+ * @Author: WangHan
35
+ * @Date: 2025-06-12 15:56
36
+ */
37
+ var isMobile = useMemo(function () {
38
+ var config = usePisellConfig();
39
+ var platform = (config === null || config === void 0 ? void 0 : config.platform) || 'h5';
40
+ return platform === 'h5';
41
+ }, []);
42
+ var currentStepIndex = useMemo(function () {
43
+ return (steps === null || steps === void 0 ? void 0 : steps.findIndex(function (step) {
44
+ return step.key === currentStep;
45
+ })) || 0;
46
+ }, [steps, currentStep]);
47
+ return /*#__PURE__*/React.createElement("div", {
48
+ className: classNames('pisell-step-controller', {
49
+ 'pisell-step-controller-mobile': isMobile
50
+ })
51
+ }, /*#__PURE__*/React.createElement(Header, {
52
+ steps: steps,
53
+ currentStepIndex: currentStepIndex,
54
+ confirmCloseProps: confirmCloseProps,
55
+ onBack: onBack,
56
+ onClose: onClose
57
+ }), /*#__PURE__*/React.createElement(Content, {
58
+ children: children
59
+ }), showFooter && footerContent ? /*#__PURE__*/React.createElement(Footer, {
60
+ children: footerContent,
61
+ isMobile: isMobile
62
+ }) : null);
63
+ };
64
+ export default StepController;
@@ -0,0 +1,11 @@
1
+ .pisell-step-controller {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ height: calc(var(--vh, 1vh) * 100);
6
+ box-sizing: border-box;
7
+ overflow-y: auto;
8
+ }
9
+
10
+ .pisell-step-controller-mobile {
11
+ }
@@ -0,0 +1,27 @@
1
+ declare const _default: {
2
+ en: {
3
+ 'pisell2.step.controller.step': (step: number) => string;
4
+ 'pisell2.step.controller.sendEmail': string;
5
+ 'pisell2.step.controller.copy': string;
6
+ 'pisell2.step.controller.download': string;
7
+ 'pisell2.step.controller.preview': string;
8
+ 'pisell2.step.controller.continue': string;
9
+ };
10
+ 'zh-CN': {
11
+ 'pisell2.step.controller.step': (step: number) => string;
12
+ 'pisell2.step.controller.sendEmail': string;
13
+ 'pisell2.step.controller.copy': string;
14
+ 'pisell2.step.controller.download': string;
15
+ 'pisell2.step.controller.preview': string;
16
+ 'pisell2.step.controller.continue': string;
17
+ };
18
+ 'zh-HK': {
19
+ 'pisell2.step.controller.step': (step: number) => string;
20
+ 'pisell2.step.controller.sendEmail': string;
21
+ 'pisell2.step.controller.copy': string;
22
+ 'pisell2.step.controller.download': string;
23
+ 'pisell2.step.controller.preview': string;
24
+ 'pisell2.step.controller.continue': string;
25
+ };
26
+ };
27
+ export default _default;
@@ -0,0 +1,32 @@
1
+ export default {
2
+ en: {
3
+ 'pisell2.step.controller.step': function pisell2StepControllerStep(step) {
4
+ return "Step ".concat(step || 1);
5
+ },
6
+ 'pisell2.step.controller.sendEmail': 'Send Email',
7
+ 'pisell2.step.controller.copy': 'Copy',
8
+ 'pisell2.step.controller.download': 'Download',
9
+ 'pisell2.step.controller.preview': 'Preview',
10
+ 'pisell2.step.controller.continue': 'Continue'
11
+ },
12
+ 'zh-CN': {
13
+ 'pisell2.step.controller.step': function pisell2StepControllerStep(step) {
14
+ return "\u6B65\u9AA4 ".concat(step || 1);
15
+ },
16
+ 'pisell2.step.controller.sendEmail': '发送邮件',
17
+ 'pisell2.step.controller.copy': '复制',
18
+ 'pisell2.step.controller.download': '下载',
19
+ 'pisell2.step.controller.preview': '预览',
20
+ 'pisell2.step.controller.continue': '继续'
21
+ },
22
+ 'zh-HK': {
23
+ 'pisell2.step.controller.step': function pisell2StepControllerStep(step) {
24
+ return "\u6B65\u9A5F ".concat(step || 1);
25
+ },
26
+ 'pisell2.step.controller.sendEmail': '發送郵件',
27
+ 'pisell2.step.controller.copy': '複製',
28
+ 'pisell2.step.controller.download': '下載',
29
+ 'pisell2.step.controller.preview': '預覽',
30
+ 'pisell2.step.controller.continue': '繼續'
31
+ }
32
+ };