@pisell/private-materials 3.4.3 → 3.4.4

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 (183) 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 +13 -13
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +4 -4
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +7 -7
  11. package/es/components/Sales/Cart/index.js +5 -1
  12. package/es/components/Sales/Cart/utils.d.ts +40 -0
  13. package/es/components/Sales/Cart/utils.js +187 -0
  14. package/es/components/Sales/Checkout/index.d.ts +4 -0
  15. package/es/components/Sales/Checkout/index.js +52 -8
  16. package/es/components/Sales/Checkout/serve.d.ts +13 -0
  17. package/es/components/Sales/Checkout/serve.js +16 -2
  18. package/es/components/Sales/Checkout/utils.d.ts +1 -0
  19. package/es/components/Sales/Checkout/utils.js +9 -2
  20. package/es/components/Sales/Customer/index.d.ts +25 -0
  21. package/es/components/Sales/Event/Detail.d.ts +1 -0
  22. package/es/components/Sales/Event/Detail.js +45 -11
  23. package/es/components/Sales/Event/serve.d.ts +10 -0
  24. package/es/components/Sales/Event/serve.js +25 -0
  25. package/es/components/Sales/Summary/index.d.ts +10 -0
  26. package/es/components/Sales/Summary/index.js +17 -2
  27. package/es/components/Sales/Summary/serve.d.ts +1 -0
  28. package/es/components/Sales/Summary/serve.js +6 -0
  29. package/es/components/Sales/Summary/utils.d.ts +16 -1
  30. package/es/components/Sales/Summary/utils.js +43 -1
  31. package/es/components/appointmentBooking/components/Content/index.js +15 -1
  32. package/es/components/appointmentBooking/components/Deposit/index.d.ts +6 -0
  33. package/es/components/appointmentBooking/components/Deposit/index.js +27 -7
  34. package/es/components/appointmentBooking/components/Form/index.d.ts +4 -0
  35. package/es/components/appointmentBooking/components/Form/utils.d.ts +8 -0
  36. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.js +25 -20
  37. package/es/components/appointmentBooking/deposit/index.js +4 -2
  38. package/es/components/booking/components/TabProduct/tabs/index.js +1 -5
  39. package/es/components/booking/components/browserSelect/index.js +1 -1
  40. package/es/components/booking/components/footer/index.js +32 -24
  41. package/es/components/booking/forms/model.js +5 -5
  42. package/es/components/booking/info/service/Lists.d.ts +2 -0
  43. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  44. package/es/components/booking/info/service/like/index.js +1 -1
  45. package/es/components/booking/info/utils.js +1 -1
  46. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  47. package/es/components/booking/info2/service/index.d.ts +4 -0
  48. package/es/components/booking/info2/utils.d.ts +4 -0
  49. package/es/components/booking/info2/utilsByBooking.js +9 -3
  50. package/es/components/booking/materiels/startTime/index.js +1 -1
  51. package/es/components/booking/notes/NoteBlock/NoteItem/index.js +1 -1
  52. package/es/components/booking/notes/NoteBlock/index.js +11 -11
  53. package/es/components/booking/notes/model.js +5 -5
  54. package/es/components/booking/payments/model.js +5 -5
  55. package/es/components/booking/utils.d.ts +2 -2
  56. package/es/components/eftposPay/amount.d.ts +1 -1
  57. package/es/components/eftposPay/device.d.ts +1 -1
  58. package/es/components/eftposPay/hooks.d.ts +2 -2
  59. package/es/components/eftposPay/store/index.d.ts +5 -5
  60. package/es/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +29 -17
  61. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +2 -0
  62. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.js +17 -0
  63. package/es/components/eventBooking/components/Provider/Cart/Item/Total.js +10 -6
  64. package/es/components/eventBooking/components/Provider/Cart/Item/index.js +4 -2
  65. package/es/components/eventBooking/components/bookingDetailModal/index.js +6 -3
  66. package/es/components/eventBooking/locales.d.ts +24 -0
  67. package/es/components/eventBooking/locales.js +27 -3
  68. package/es/components/listComponent/index.js +5 -5
  69. package/es/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.js +18 -3
  70. package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.d.ts +1 -1
  71. package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.js +7 -2
  72. package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.less +8 -0
  73. package/es/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.js +18 -3
  74. package/es/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +113 -0
  75. package/es/components/pay/toC/locales.d.ts +3 -0
  76. package/es/components/pay/toC/locales.js +3 -0
  77. package/es/components/pay/toC/utils.d.ts +57 -0
  78. package/es/components/productExtension/card/index.js +3 -3
  79. package/es/components/productExtension/fields/Actor/CutOffTime/index.js +1 -1
  80. package/es/components/productExtension/fields/Forms/index.js +12 -12
  81. package/es/components/productExtension/fields/SelectProducts/ProductItemPreview/index.js +1 -1
  82. package/es/components/productExtension/fields/SelectProducts/server.js +2 -2
  83. package/es/components/productExtension/fields/SelectResourcesTable/server.js +2 -2
  84. package/es/components/productExtension/server.js +2 -2
  85. package/es/components/ruleSetting/ruleBorder/index.js +1 -1
  86. package/es/components/schedules/calendar/index.js +4 -4
  87. package/es/components/schedules/calendar/serve.js +2 -2
  88. package/es/components/schedules/components/CurrentDay/index.js +5 -5
  89. package/es/components/schedules/components/CurrentDay/serve.js +2 -2
  90. package/es/components/schedules/components/DropdownSort/index.js +1 -1
  91. package/es/components/schedules/components/ResourceList/index.js +1 -1
  92. package/es/components/schedules/components/Search/index.js +5 -5
  93. package/es/components/schedules/model.js +5 -5
  94. package/es/components/schedules/openHours/index.js +1 -1
  95. package/es/components/schedules/openHours/serve.js +2 -2
  96. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.js +1 -1
  97. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.js +5 -5
  98. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/index.js +4 -4
  99. package/es/components/schedules/products/ProductDetailDrawer/index.js +3 -3
  100. package/es/components/schedules/products/serve.js +2 -2
  101. package/es/components/schedules/products/utils.js +5 -5
  102. package/es/components/schedules/resources/detail/detailContent.js +2 -2
  103. package/es/components/schedules/resources/detail/index.js +10 -10
  104. package/es/components/schedules/resources/list/index.js +2 -2
  105. package/es/components/schedules/resources/relationProduct/index.js +1 -1
  106. package/es/components/schedules/resources/serve.js +2 -2
  107. package/es/components/schedules/schedules/ScheduleDetailDrawer/index.js +9 -9
  108. package/es/components/schedules/utils.d.ts +1 -1
  109. package/es/components/schedules/utils.js +4 -4
  110. package/es/components/selectModal/index.js +2 -2
  111. package/es/components/shoppingCart/components/Cart/Product.d.ts +3 -0
  112. package/es/components/ticketBooking/components/menuBar/index.js +38 -2
  113. package/es/components/ticketBooking/components/menuBar/index.less +8 -0
  114. package/es/components/ticketBooking/locales.d.ts +174 -0
  115. package/es/components/ticketBooking/locales.js +6 -3
  116. package/es/hooks/useComponents.js +1 -1
  117. package/es/utils/index.d.ts +1 -1
  118. package/lib/components/Sales/Cart/index.js +1 -0
  119. package/lib/components/Sales/Cart/utils.d.ts +40 -0
  120. package/lib/components/Sales/Cart/utils.js +129 -0
  121. package/lib/components/Sales/Checkout/index.d.ts +4 -0
  122. package/lib/components/Sales/Checkout/index.js +39 -7
  123. package/lib/components/Sales/Checkout/serve.d.ts +13 -0
  124. package/lib/components/Sales/Checkout/serve.js +7 -2
  125. package/lib/components/Sales/Checkout/utils.d.ts +1 -0
  126. package/lib/components/Sales/Checkout/utils.js +5 -2
  127. package/lib/components/Sales/Customer/index.d.ts +25 -0
  128. package/lib/components/Sales/Event/Detail.d.ts +1 -0
  129. package/lib/components/Sales/Event/Detail.js +37 -12
  130. package/lib/components/Sales/Event/serve.d.ts +10 -0
  131. package/lib/components/Sales/Event/serve.js +7 -0
  132. package/lib/components/Sales/Summary/index.d.ts +10 -0
  133. package/lib/components/Sales/Summary/index.js +7 -1
  134. package/lib/components/Sales/Summary/serve.d.ts +1 -0
  135. package/lib/components/Sales/Summary/serve.js +32 -0
  136. package/lib/components/Sales/Summary/utils.d.ts +16 -1
  137. package/lib/components/Sales/Summary/utils.js +30 -1
  138. package/lib/components/appointmentBooking/components/Content/index.js +6 -1
  139. package/lib/components/appointmentBooking/components/Deposit/index.d.ts +6 -0
  140. package/lib/components/appointmentBooking/components/Deposit/index.js +36 -4
  141. package/lib/components/appointmentBooking/components/Form/index.d.ts +4 -0
  142. package/lib/components/appointmentBooking/components/Form/utils.d.ts +8 -0
  143. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.js +8 -4
  144. package/lib/components/appointmentBooking/deposit/index.js +4 -2
  145. package/lib/components/booking/components/footer/index.js +24 -11
  146. package/lib/components/booking/info/service/Lists.d.ts +2 -0
  147. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  148. package/lib/components/booking/info/utils.js +3 -1
  149. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  150. package/lib/components/booking/info2/service/index.d.ts +4 -0
  151. package/lib/components/booking/info2/utils.d.ts +4 -0
  152. package/lib/components/booking/info2/utilsByBooking.js +4 -1
  153. package/lib/components/booking/utils.d.ts +2 -2
  154. package/lib/components/eftposPay/amount.d.ts +1 -1
  155. package/lib/components/eftposPay/device.d.ts +1 -1
  156. package/lib/components/eftposPay/hooks.d.ts +2 -2
  157. package/lib/components/eftposPay/store/index.d.ts +5 -5
  158. package/lib/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +16 -4
  159. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +2 -0
  160. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.js +55 -0
  161. package/lib/components/eventBooking/components/Provider/Cart/Item/Total.js +8 -5
  162. package/lib/components/eventBooking/components/Provider/Cart/Item/index.js +4 -2
  163. package/lib/components/eventBooking/components/bookingDetailModal/index.js +4 -3
  164. package/lib/components/eventBooking/locales.d.ts +24 -0
  165. package/lib/components/eventBooking/locales.js +27 -3
  166. package/lib/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.js +13 -1
  167. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.d.ts +1 -1
  168. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.js +2 -2
  169. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.less +8 -0
  170. package/lib/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.js +13 -1
  171. package/lib/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +113 -0
  172. package/lib/components/pay/toC/locales.d.ts +3 -0
  173. package/lib/components/pay/toC/locales.js +3 -0
  174. package/lib/components/pay/toC/utils.d.ts +57 -0
  175. package/lib/components/schedules/utils.d.ts +1 -1
  176. package/lib/components/schedules/utils.js +1 -1
  177. package/lib/components/shoppingCart/components/Cart/Product.d.ts +3 -0
  178. package/lib/components/ticketBooking/components/menuBar/index.js +42 -2
  179. package/lib/components/ticketBooking/components/menuBar/index.less +8 -0
  180. package/lib/components/ticketBooking/locales.d.ts +174 -0
  181. package/lib/components/ticketBooking/locales.js +6 -3
  182. package/lib/utils/index.d.ts +1 -1
  183. package/package.json +4 -4
@@ -1,6 +1,8 @@
1
+ var __create = Object.create;
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
4
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
7
  var __export = (target, all) => {
6
8
  for (var name in all)
@@ -14,19 +16,31 @@ var __copyProps = (to, from, except, desc) => {
14
16
  }
15
17
  return to;
16
18
  };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
17
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
28
 
19
29
  // src/components/Sales/Cart/utils.ts
20
30
  var utils_exports = {};
21
31
  __export(utils_exports, {
32
+ calculateProductDeposit: () => calculateProductDeposit,
22
33
  formatBundleToOrigin: () => formatBundleToOrigin,
23
34
  formatOptionsToOrigin: () => formatOptionsToOrigin,
24
35
  getOriginTotalPrice: () => getOriginTotalPrice,
36
+ getProductDeposit: () => getProductDeposit,
25
37
  getTotalPrice: () => getTotalPrice,
26
38
  handleCartItemOrigin: () => handleCartItemOrigin,
39
+ handleProductDeposit: () => handleProductDeposit,
27
40
  handleProductInfo: () => handleProductInfo
28
41
  });
29
42
  module.exports = __toCommonJS(utils_exports);
43
+ var import_decimal = __toESM(require("decimal.js"));
30
44
  var handleProductInfo = (eventDetail, num) => {
31
45
  var _a;
32
46
  const { productDetail, bookingOptionItem } = eventDetail;
@@ -138,12 +152,127 @@ var formatOptionsToOrigin = (options) => {
138
152
  };
139
153
  });
140
154
  };
155
+ var handleProductDeposit = (cartItem, eventDetail, num) => {
156
+ var _a;
157
+ const { productDetail, bookingOptionItem } = eventDetail;
158
+ const normalProduct = bookingOptionItem == null ? void 0 : bookingOptionItem._originData;
159
+ if (!productDetail && normalProduct) {
160
+ const { custom_deposit_data } = normalProduct;
161
+ if ((custom_deposit_data == null ? void 0 : custom_deposit_data.has_deposit) == 1) {
162
+ return getProductDeposit({ cartItem, product: normalProduct, num });
163
+ } else {
164
+ return null;
165
+ }
166
+ }
167
+ if (!productDetail) {
168
+ return null;
169
+ }
170
+ const { origin, bundle, options, product_variant_id } = productDetail || {};
171
+ let deposit = null;
172
+ const product = origin;
173
+ if (product_variant_id) {
174
+ product.product_variant_id = product_variant_id;
175
+ }
176
+ if (((_a = origin == null ? void 0 : origin.custom_deposit_data) == null ? void 0 : _a.has_deposit) == 1) {
177
+ deposit = getProductDeposit({ cartItem, product, bundle, options, num });
178
+ }
179
+ return deposit;
180
+ };
181
+ var getProductDeposit = (params) => {
182
+ var _a, _b;
183
+ const { cartItem, product, bundle, options } = params;
184
+ const num = (params == null ? void 0 : params.num) || 1;
185
+ if (((_a = product == null ? void 0 : product.custom_deposit_data) == null ? void 0 : _a.has_deposit) == 1) {
186
+ let total = new import_decimal.default(0);
187
+ const {
188
+ deposit_fixed,
189
+ deposit_percentage,
190
+ deposit_policy_data,
191
+ self_deposit_policy_ids
192
+ } = (product == null ? void 0 : product.custom_deposit_data) || {};
193
+ const allProtocols = deposit_policy_data || [];
194
+ let productHasDeposit = false;
195
+ const protocolIds = [];
196
+ if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
197
+ const { depositTotal, result } = calculateProductDeposit({
198
+ depositData: product == null ? void 0 : product.custom_deposit_data,
199
+ total: (cartItem == null ? void 0 : cartItem.total) || 0,
200
+ num
201
+ });
202
+ if (result) {
203
+ total = depositTotal;
204
+ protocolIds.push(...self_deposit_policy_ids || []);
205
+ productHasDeposit = true;
206
+ }
207
+ } else {
208
+ if (product == null ? void 0 : product.product_variant_id) {
209
+ const variantProduct = (_b = product == null ? void 0 : product.variant) == null ? void 0 : _b.find(
210
+ (item) => (item == null ? void 0 : item.id) === (product == null ? void 0 : product.product_variant_id)
211
+ );
212
+ if (variantProduct) {
213
+ const depositData = variantProduct == null ? void 0 : variantProduct.custom_deposit_data;
214
+ const { depositTotal, result } = calculateProductDeposit({
215
+ depositData,
216
+ total: (cartItem == null ? void 0 : cartItem.total) || 0,
217
+ num
218
+ });
219
+ if (result) {
220
+ total = depositTotal;
221
+ protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
222
+ productHasDeposit = true;
223
+ }
224
+ }
225
+ }
226
+ if (bundle == null ? void 0 : bundle.length) {
227
+ total = bundle.reduce((accumulator, currBundleProduct) => {
228
+ const depositData = currBundleProduct == null ? void 0 : currBundleProduct.custom_deposit_data;
229
+ const { depositTotal, result } = calculateProductDeposit({
230
+ depositData,
231
+ total: currBundleProduct == null ? void 0 : currBundleProduct.price,
232
+ num: (currBundleProduct == null ? void 0 : currBundleProduct.num) || 1
233
+ });
234
+ if (result) {
235
+ protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
236
+ productHasDeposit = true;
237
+ return accumulator.plus(depositTotal);
238
+ }
239
+ return accumulator;
240
+ }, new import_decimal.default(0));
241
+ }
242
+ }
243
+ if (productHasDeposit) {
244
+ const ids = new Set(protocolIds);
245
+ const protocols = allProtocols.filter((item) => ids.has(item.id));
246
+ return { total: total.toNumber(), protocols };
247
+ }
248
+ return null;
249
+ }
250
+ return null;
251
+ };
252
+ var calculateProductDeposit = (params) => {
253
+ const { depositData, total, num } = params;
254
+ if (!depositData) {
255
+ return { result: false, depositTotal: new import_decimal.default(0) };
256
+ }
257
+ const { deposit_fixed, deposit_percentage } = depositData || {};
258
+ if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
259
+ const depositFixed = new import_decimal.default(deposit_fixed || 0);
260
+ const depositPercent = new import_decimal.default(deposit_percentage || 0);
261
+ const productTotalPrice = new import_decimal.default(total || 0);
262
+ const deposit = depositFixed.plus(depositPercent.times(productTotalPrice));
263
+ return { depositTotal: deposit.times(num), result: true };
264
+ }
265
+ return { result: false, depositTotal: new import_decimal.default(0) };
266
+ };
141
267
  // Annotate the CommonJS export names for ESM import in node:
142
268
  0 && (module.exports = {
269
+ calculateProductDeposit,
143
270
  formatBundleToOrigin,
144
271
  formatOptionsToOrigin,
145
272
  getOriginTotalPrice,
273
+ getProductDeposit,
146
274
  getTotalPrice,
147
275
  handleCartItemOrigin,
276
+ handleProductDeposit,
148
277
  handleProductInfo
149
278
  });
@@ -5,6 +5,9 @@ interface PayProps {
5
5
  order_id: string;
6
6
  amount: number;
7
7
  sale_channel?: string;
8
+ is_deposit?: number;
9
+ deposit_amount?: number;
10
+ total_amount?: number;
8
11
  }
9
12
  interface CheckoutContextType {
10
13
  onCheckBeforeBooking: (data: any) => Promise<{
@@ -15,6 +18,7 @@ interface CheckoutContextType {
15
18
  onPay: (payProps: PayProps) => void;
16
19
  createBooking: any;
17
20
  checkBeforeBooking: any;
21
+ freePay: any;
18
22
  }
19
23
  interface CheckoutProviderProps {
20
24
  children: React.ReactNode;
@@ -41,6 +41,7 @@ var import_useEngineContext = __toESM(require("../../../hooks/useEngineContext")
41
41
  var import_ahooks = require("ahooks");
42
42
  var import_serve = require("./serve");
43
43
  var import_Cart = require("../Cart");
44
+ var import_utils = require("../../appointmentBooking/utils");
44
45
  var defaultState = {};
45
46
  var CheckoutContext = (0, import_react.createContext)(
46
47
  void 0
@@ -54,6 +55,7 @@ var CheckoutProvider = ({
54
55
  const { updateDisabledCartItem } = (0, import_Cart.useCart)();
55
56
  const checkoutCallback = (0, import_react.useRef)(null);
56
57
  const checkRef = (0, import_react.useRef)(null);
58
+ const payRef = (0, import_react.useRef)(null);
57
59
  const checkBeforeBooking = (0, import_ahooks.useRequest)(import_serve.checkBeforeBookingApi, {
58
60
  manual: true,
59
61
  onSuccess: (res) => {
@@ -76,6 +78,17 @@ var CheckoutProvider = ({
76
78
  checkoutCallback.current({ success: false, err });
77
79
  }
78
80
  });
81
+ const freePay = (0, import_ahooks.useRequest)(import_serve.freePayApi, {
82
+ manual: true,
83
+ onSuccess: (res) => {
84
+ var _a, _b;
85
+ if (res == null ? void 0 : res.status) {
86
+ goPaymentFinish((_a = payRef.current) == null ? void 0 : _a.order_id, (_b = payRef.current) == null ? void 0 : _b.total_amount);
87
+ } else {
88
+ (0, import_utils.Toast)(res == null ? void 0 : res.message);
89
+ }
90
+ }
91
+ });
79
92
  const onCheckBeforeBooking = (data2) => {
80
93
  return new Promise((resolve) => {
81
94
  checkRef.current = (res) => {
@@ -94,21 +107,40 @@ var CheckoutProvider = ({
94
107
  createBooking.runAsync(data2);
95
108
  });
96
109
  };
110
+ const goPaymentFinish = (order_id, amount) => {
111
+ var _a;
112
+ const url = `/payment-finish/success?order_id=${order_id}&amount=${Number(
113
+ amount
114
+ )}`;
115
+ (_a = utils == null ? void 0 : utils.history) == null ? void 0 : _a.replace(url);
116
+ };
97
117
  const onPay = (payProps) => {
98
- utils.action({
99
- type: "pisell1.payment",
100
- data: payProps,
101
- callback: (e) => {
102
- checkoutCallback.current && checkoutCallback.current(e);
118
+ payRef.current = payProps;
119
+ const { is_deposit, deposit_amount, total_amount } = payProps;
120
+ const _total = is_deposit ? deposit_amount || 0 : total_amount || 0;
121
+ if (_total > 0) {
122
+ utils.action({
123
+ type: "pisell1.payment",
124
+ data: { ...payProps, total_amount: _total },
125
+ callback: (e) => {
126
+ checkoutCallback.current && checkoutCallback.current(e);
127
+ }
128
+ });
129
+ } else {
130
+ if (is_deposit) {
131
+ goPaymentFinish(payProps.order_id, _total);
132
+ return;
103
133
  }
104
- });
134
+ freePay.runAsync(payProps.order_id);
135
+ }
105
136
  };
106
137
  const contextValue = {
107
138
  onCheckBeforeBooking,
108
139
  onCheckout,
109
140
  onPay,
110
141
  createBooking,
111
- checkBeforeBooking
142
+ checkBeforeBooking,
143
+ freePay
112
144
  };
113
145
  return /* @__PURE__ */ import_react.default.createElement(CheckoutContext.Provider, { value: contextValue }, children);
114
146
  };
@@ -1,2 +1,15 @@
1
+ /**
2
+ * @title: 下单前置校验接口
3
+ * @param {any} data
4
+ */
1
5
  export declare const checkBeforeBookingApi: (data: any) => Promise<any>;
6
+ /**
7
+ * @title: 创建订单
8
+ * @param {any} data
9
+ */
2
10
  export declare const createBookingApi: (data: any) => Promise<any>;
11
+ /**
12
+ * @title: 免费支付
13
+ * @param {string} orderId
14
+ */
15
+ export declare const freePayApi: (orderId: string) => Promise<any>;
@@ -20,7 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  var serve_exports = {};
21
21
  __export(serve_exports, {
22
22
  checkBeforeBookingApi: () => checkBeforeBookingApi,
23
- createBookingApi: () => createBookingApi
23
+ createBookingApi: () => createBookingApi,
24
+ freePayApi: () => freePayApi
24
25
  });
25
26
  module.exports = __toCommonJS(serve_exports);
26
27
  var import_utils = require("../../../utils");
@@ -30,8 +31,12 @@ var checkBeforeBookingApi = (data) => {
30
31
  var createBookingApi = (data) => {
31
32
  return import_utils.request.getRequest().post("/h5/eventbookingv2/order", data);
32
33
  };
34
+ var freePayApi = (orderId) => {
35
+ return import_utils.request.getRequest().post(`/h5/pay/order/free-pay/${orderId}`, {});
36
+ };
33
37
  // Annotate the CommonJS export names for ESM import in node:
34
38
  0 && (module.exports = {
35
39
  checkBeforeBookingApi,
36
- createBookingApi
40
+ createBookingApi,
41
+ freePayApi
37
42
  });
@@ -29,6 +29,7 @@ export declare const formatValues: (params: {
29
29
  platform: 'h5' | 'pc';
30
30
  excludeDisabled?: boolean;
31
31
  extra?: Record<string, any>;
32
+ otherValue?: Record<string, any>;
32
33
  }) => any;
33
34
  /**
34
35
  * @title: 获取拉开表单弹窗参数
@@ -63,7 +63,7 @@ var formatBookings = (list) => {
63
63
  };
64
64
  var formatValues = (params) => {
65
65
  var _a, _b;
66
- const { state, platform, excludeDisabled, extra } = params;
66
+ const { state, otherValue, platform, excludeDisabled, extra } = params;
67
67
  let values = {
68
68
  type: "event_booking_v2",
69
69
  platform: platform === "pc" ? "PC" : "H5",
@@ -72,7 +72,8 @@ var formatValues = (params) => {
72
72
  bookings: [],
73
73
  shop_note: "",
74
74
  schedule_date: "",
75
- ...extra || {}
75
+ ...extra || {},
76
+ ...otherValue || {}
76
77
  };
77
78
  console.log("values", values);
78
79
  let data = [];
@@ -81,6 +82,8 @@ var formatValues = (params) => {
81
82
  } else {
82
83
  data = state.cartData.cartItems;
83
84
  }
85
+ const is_deposit = data.find((v) => v.deposit) ? 1 : 0;
86
+ values.is_deposit = is_deposit;
84
87
  values.bookings = formatBookings(data);
85
88
  return values;
86
89
  };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ interface CustomerData {
3
+ }
4
+ interface CustomerContextType {
5
+ appContext: any;
6
+ appUtils: any;
7
+ isLogin: () => boolean;
8
+ openLoginModal: (params: any) => void;
9
+ getUserInfo: () => any;
10
+ }
11
+ interface CustomerProviderProps {
12
+ children: React.ReactNode;
13
+ }
14
+ export declare const CustomerContext: React.Context<CustomerContextType | undefined>;
15
+ export declare const CustomerProvider: React.FC<CustomerProviderProps>;
16
+ /**
17
+ * 使用步骤管理的Hook
18
+ * @throws {Error} 如果在StepProvider外部使用会抛出错误
19
+ * @returns {StepContextType} 步骤管理上下文
20
+ */
21
+ export declare const useCustomer: () => CustomerContextType;
22
+ declare const _default: {
23
+ defaultState: CustomerData;
24
+ };
25
+ export default _default;
@@ -14,6 +14,7 @@ interface EventDetailContextType {
14
14
  currentBookingOption: any;
15
15
  selectEventDetailProductDetail: (productDetail: any) => void;
16
16
  checkBeforeSelectEventDetail: () => boolean;
17
+ getProductDetailRequest: any;
17
18
  }
18
19
  interface EventDetailProviderProps {
19
20
  children: React.ReactNode;
@@ -196,20 +196,44 @@ var EventDetailProvider = ({
196
196
  }
197
197
  }
198
198
  );
199
+ const getProductDetailRequest = (0, import_ahooks.useRequest)(import_serve.getProductDetailApi, {
200
+ manual: true,
201
+ loadingDelay: 200
202
+ });
199
203
  const selectEventDetailBookingOptions = (id) => {
200
- var _a;
204
+ var _a, _b, _c;
201
205
  const { introduction, bookingOptions } = detailRef.current || {};
202
206
  const option = (_a = bookingOptions == null ? void 0 : bookingOptions.filter((v) => v.value === id)) == null ? void 0 : _a[0];
203
- _setDetail({
204
- introduction: {
205
- ...introduction,
206
- price: option.price,
207
- origin_price: option.original_price
208
- },
209
- selectedProduct: option
210
- // 选中的活动关联的商品
211
- });
212
- _setCurrentBookingOption(id);
207
+ const setSelectedData = (data) => {
208
+ _setDetail({
209
+ introduction: {
210
+ ...introduction,
211
+ price: data == null ? void 0 : data.price,
212
+ origin_price: data == null ? void 0 : data.original_price
213
+ },
214
+ selectedProduct: data
215
+ // 选中的活动关联的商品
216
+ });
217
+ _setCurrentBookingOption(id);
218
+ };
219
+ if (((_b = option == null ? void 0 : option._originData) == null ? void 0 : _b.is_eject) === 0) {
220
+ getProductDetailRequest.runAsync(id, {
221
+ open_deposit: 1,
222
+ front_end_cache_id: ((_c = introduction == null ? void 0 : introduction._originData) == null ? void 0 : _c.id) + "_" + id
223
+ }).then((res) => {
224
+ var _a2;
225
+ const custom_deposit_data = (_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.custom_deposit_data;
226
+ const newOption = { ...option };
227
+ if (custom_deposit_data && newOption._originData) {
228
+ newOption._originData.custom_deposit_data = custom_deposit_data;
229
+ }
230
+ setSelectedData(newOption);
231
+ }).catch(() => {
232
+ setSelectedData(option);
233
+ });
234
+ } else {
235
+ setSelectedData(option);
236
+ }
213
237
  };
214
238
  const selectEventDetailProductDetail = (productDetail) => {
215
239
  _setDetail({ productDetail });
@@ -233,7 +257,8 @@ var EventDetailProvider = ({
233
257
  getEventDetailSelectDate,
234
258
  currentBookingOption,
235
259
  selectEventDetailProductDetail,
236
- checkBeforeSelectEventDetail
260
+ checkBeforeSelectEventDetail,
261
+ getProductDetailRequest
237
262
  };
238
263
  return /* @__PURE__ */ import_react.default.createElement(EventDetailContext.Provider, { value: contextValue }, children);
239
264
  };
@@ -37,3 +37,13 @@ export declare const getProductPrice: (params: {
37
37
  customer_id: number;
38
38
  schedule_date?: string;
39
39
  }) => Promise<any>;
40
+ /**
41
+ * 获取商品详情
42
+ * @param id 商品id
43
+ * @param params 参数
44
+ * @returns
45
+ */
46
+ export declare const getProductDetailApi: (id: number, params: {
47
+ open_deposit?: string | number;
48
+ front_end_cache_id?: string;
49
+ }) => Promise<any>;
@@ -24,6 +24,7 @@ __export(serve_exports, {
24
24
  getEventDetailSelectDateApi: () => getEventDetailSelectDateApi,
25
25
  getEventDetailTeacherApi: () => getEventDetailTeacherApi,
26
26
  getEventListApi: () => getEventListApi,
27
+ getProductDetailApi: () => getProductDetailApi,
27
28
  getProductPrice: () => getProductPrice
28
29
  });
29
30
  module.exports = __toCommonJS(serve_exports);
@@ -46,6 +47,11 @@ var getEventDetailSelectDateApi = (id, params) => {
46
47
  });
47
48
  };
48
49
  var getProductPrice = async (params) => import_utils.request.getRequest().post(`/h5/product/query/price`, params);
50
+ var getProductDetailApi = async (id, params) => {
51
+ return import_utils.request.getRequest().get(`/h5/product/standard/show/${id}`, params, {
52
+ useCache: true
53
+ });
54
+ };
49
55
  // Annotate the CommonJS export names for ESM import in node:
50
56
  0 && (module.exports = {
51
57
  getEventDetailBookingOptionsApi,
@@ -53,5 +59,6 @@ var getProductPrice = async (params) => import_utils.request.getRequest().post(`
53
59
  getEventDetailSelectDateApi,
54
60
  getEventDetailTeacherApi,
55
61
  getEventListApi,
62
+ getProductDetailApi,
56
63
  getProductPrice
57
64
  });
@@ -7,6 +7,16 @@ interface SummaryContextType {
7
7
  taxTitle?: string;
8
8
  totalTaxFee?: string;
9
9
  isPriceIncludeTax?: 0 | 1;
10
+ deposit?: {
11
+ total: string;
12
+ protocols: any[];
13
+ hasDeposit: boolean;
14
+ };
15
+ isAgreeDepositPolicy: boolean;
16
+ setIsAgreeDepositPolicy: (value: boolean) => void;
17
+ getDepositProtocol: (params: {
18
+ id: string;
19
+ }) => Promise<any>;
10
20
  }
11
21
  interface SummaryProviderProps {
12
22
  children: React.ReactNode;
@@ -39,6 +39,7 @@ var import_react = __toESM(require("react"));
39
39
  var import_Cart = require("../Cart");
40
40
  var import_utils = require("./utils");
41
41
  var import_Init = require("../Init");
42
+ var import_serve = require("./serve");
42
43
  var defaultState = {};
43
44
  var SummaryContext = (0, import_react.createContext)(
44
45
  void 0
@@ -48,6 +49,7 @@ var SummaryProvider = ({
48
49
  }) => {
49
50
  const { cartData } = (0, import_Cart.useCart)();
50
51
  const { initData } = (0, import_Init.useInit)();
52
+ const [isAgreeDepositPolicy, setIsAgreeDepositPolicy] = (0, import_react.useState)(false);
51
53
  const summaryData = (0, import_react.useMemo)(() => {
52
54
  return (0, import_utils.calculatePriceDetails)(
53
55
  (initData == null ? void 0 : initData.shop) || {},
@@ -61,7 +63,11 @@ var SummaryProvider = ({
61
63
  total: summaryData.total,
62
64
  taxTitle: summaryData.taxTitle,
63
65
  totalTaxFee: summaryData.totalTaxFee,
64
- isPriceIncludeTax: summaryData.isPriceIncludeTax
66
+ isPriceIncludeTax: summaryData.isPriceIncludeTax,
67
+ deposit: summaryData.deposit,
68
+ isAgreeDepositPolicy,
69
+ setIsAgreeDepositPolicy,
70
+ getDepositProtocol: import_serve.getDepositProtocolApi
65
71
  };
66
72
  return /* @__PURE__ */ import_react.default.createElement(SummaryContext.Provider, { value: contextValue }, children);
67
73
  };
@@ -0,0 +1 @@
1
+ export declare const getDepositProtocolApi: (id: string) => Promise<any>;
@@ -0,0 +1,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/components/Sales/Summary/serve.ts
20
+ var serve_exports = {};
21
+ __export(serve_exports, {
22
+ getDepositProtocolApi: () => getDepositProtocolApi
23
+ });
24
+ module.exports = __toCommonJS(serve_exports);
25
+ var import_utils = require("../../../utils");
26
+ var getDepositProtocolApi = (id) => {
27
+ return import_utils.request.getRequest().get(`/h5/shop-policy/${id}`, {});
28
+ };
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {
31
+ getDepositProtocolApi
32
+ });
@@ -10,6 +10,11 @@ interface PriceDetail {
10
10
  taxTitle?: string;
11
11
  totalTaxFee?: string;
12
12
  isPriceIncludeTax?: 0 | 1;
13
+ deposit?: {
14
+ total: string;
15
+ protocols: any[];
16
+ hasDeposit: boolean;
17
+ };
13
18
  }
14
19
  /**
15
20
  * 计算商品小计(不含其他费用)
@@ -25,7 +30,7 @@ export declare const calculateSubtotal: (items: CartItem[]) => string;
25
30
  * @return {*}
26
31
  * @Author: xiangfeng.xue
27
32
  */
28
- export declare const calculateTaxFee: (shopInfo: any, items: CartItem[]) => "0.00" | Decimal;
33
+ export declare const calculateTaxFee: (shopInfo: any, items: CartItem[]) => Decimal | "0.00";
29
34
  /**
30
35
  * 计算所有价格明细
31
36
  * @param items - 购物车商品数组
@@ -33,4 +38,14 @@ export declare const calculateTaxFee: (shopInfo: any, items: CartItem[]) => "0.0
33
38
  * @returns 价格明细对象
34
39
  */
35
40
  export declare const calculatePriceDetails: (shopInfo: any, items: CartItem[]) => PriceDetail;
41
+ /**
42
+ * @title: 计算定金
43
+ * @param items - 购物车商品数组
44
+ * @returns 定金字符串,保留2位小数
45
+ */
46
+ export declare const calculateDeposit: (items: CartItem[]) => {
47
+ total: string;
48
+ protocols: any[];
49
+ hasDeposit: never;
50
+ } | undefined;
36
51
  export {};
@@ -29,6 +29,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/components/Sales/Summary/utils.ts
30
30
  var utils_exports = {};
31
31
  __export(utils_exports, {
32
+ calculateDeposit: () => calculateDeposit,
32
33
  calculatePriceDetails: () => calculatePriceDetails,
33
34
  calculateSubtotal: () => calculateSubtotal,
34
35
  calculateTaxFee: () => calculateTaxFee
@@ -65,16 +66,44 @@ var calculatePriceDetails = (shopInfo, items) => {
65
66
  const totalTaxFee = new import_decimal.default(calculateTaxFee(shopInfo, items));
66
67
  console.log("totalTaxFee", totalTaxFee.toFixed(2));
67
68
  const total = (shopInfo == null ? void 0 : shopInfo.is_price_include_tax) ? subtotal : subtotal.plus(totalTaxFee);
69
+ const deposit = calculateDeposit(items);
68
70
  return {
69
71
  subtotal: subtotal.toFixed(2),
70
72
  total: total.toFixed(2),
71
73
  taxTitle: shopInfo == null ? void 0 : shopInfo.tax_title,
72
74
  totalTaxFee: totalTaxFee.toFixed(2),
73
- isPriceIncludeTax: shopInfo == null ? void 0 : shopInfo.is_price_include_tax
75
+ isPriceIncludeTax: shopInfo == null ? void 0 : shopInfo.is_price_include_tax,
76
+ deposit
74
77
  };
75
78
  };
79
+ var calculateDeposit = (items) => {
80
+ if (!(items == null ? void 0 : items.length)) {
81
+ return void 0;
82
+ }
83
+ const protocols = [];
84
+ let hasDeposit = false;
85
+ const total = items.reduce((sum, item) => {
86
+ var _a, _b, _c;
87
+ if (item == null ? void 0 : item.deposit) {
88
+ hasDeposit = true;
89
+ const cartItemTotalPrice = new import_decimal.default(((_a = item == null ? void 0 : item.deposit) == null ? void 0 : _a.total) || 0);
90
+ (_c = (_b = item == null ? void 0 : item.deposit) == null ? void 0 : _b.protocols) == null ? void 0 : _c.forEach((protocol) => {
91
+ if (protocols.findIndex((p) => p.id === protocol.id) === -1) {
92
+ protocols.push(protocol);
93
+ }
94
+ });
95
+ return sum.plus(cartItemTotalPrice);
96
+ }
97
+ return sum;
98
+ }, new import_decimal.default(0));
99
+ if (hasDeposit) {
100
+ return { total: total.toFixed(2), protocols, hasDeposit };
101
+ }
102
+ return void 0;
103
+ };
76
104
  // Annotate the CommonJS export names for ESM import in node:
77
105
  0 && (module.exports = {
106
+ calculateDeposit,
78
107
  calculatePriceDetails,
79
108
  calculateSubtotal,
80
109
  calculateTaxFee