@pisell/private-materials 3.3.95 → 3.3.96

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 (143) 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 +11 -11
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +11 -11
  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 +167 -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.js +7 -1
  19. package/es/components/Sales/Summary/index.d.ts +10 -0
  20. package/es/components/Sales/Summary/index.js +17 -2
  21. package/es/components/Sales/Summary/serve.d.ts +1 -0
  22. package/es/components/Sales/Summary/serve.js +6 -0
  23. package/es/components/Sales/Summary/utils.d.ts +15 -0
  24. package/es/components/Sales/Summary/utils.js +43 -1
  25. package/es/components/appointmentBooking/components/Cart/Item/index.less +3 -3
  26. package/es/components/appointmentBooking/components/Content/index.js +15 -1
  27. package/es/components/appointmentBooking/components/Content/index.less +1 -1
  28. package/es/components/appointmentBooking/components/Deposit/index.d.ts +6 -0
  29. package/es/components/appointmentBooking/components/Deposit/index.js +27 -7
  30. package/es/components/appointmentBooking/components/Services/index.js +23 -27
  31. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.js +25 -20
  32. package/es/components/appointmentBooking/deposit/index.js +4 -2
  33. package/es/components/appointmentBooking/index.js +14 -0
  34. package/es/components/appointmentBooking/index.less +1 -1
  35. package/es/components/booking/components/voucher/index.js +2 -2
  36. package/es/components/booking/info/model.js +5 -0
  37. package/es/components/eftposPay/const.d.ts +4 -1
  38. package/es/components/eftposPay/const.js +3 -1
  39. package/es/components/eftposPay/hooks.d.ts +1 -1
  40. package/es/components/eftposPay/hooks.js +3 -1
  41. package/es/components/eftposPay/index.js +1 -1
  42. package/es/components/eftposPay/linkly/const.d.ts +23 -0
  43. package/es/components/eftposPay/linkly/const.js +82 -0
  44. package/es/components/eftposPay/linkly/hooks/index.d.ts +2 -0
  45. package/es/components/eftposPay/linkly/hooks/index.js +2 -0
  46. package/es/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
  47. package/es/components/eftposPay/linkly/hooks/normal.js +321 -0
  48. package/es/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
  49. package/es/components/eftposPay/linkly/hooks/useTimeQuery.js +273 -0
  50. package/es/components/eftposPay/linkly/index.d.ts +2 -0
  51. package/es/components/eftposPay/linkly/index.js +197 -0
  52. package/es/components/eftposPay/linkly/service.d.ts +32 -0
  53. package/es/components/eftposPay/linkly/service.js +81 -0
  54. package/es/components/eftposPay/manufacturer.d.ts +1 -0
  55. package/es/components/eftposPay/manufacturer.js +4 -0
  56. package/es/components/eftposPay/pay.d.ts +1 -1
  57. package/es/components/eftposPay/pay.js +6 -2
  58. package/es/components/eftposPay/store/index.d.ts +1 -1
  59. package/es/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +29 -17
  60. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +2 -0
  61. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.js +17 -0
  62. package/es/components/eventBooking/components/Provider/Cart/Item/Total.js +10 -6
  63. package/es/components/eventBooking/components/Provider/Cart/Item/index.js +4 -2
  64. package/es/components/eventBooking/components/bookingDetailModal/index.js +3 -1
  65. package/es/components/eventBooking/locales.d.ts +24 -0
  66. package/es/components/eventBooking/locales.js +27 -3
  67. package/es/components/pay/toC/PaymentMethods/index.js +5 -4
  68. package/es/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
  69. package/es/components/ticketBooking/components/ticketBooking/index.js +120 -1
  70. package/es/components/ticketBooking/locales.d.ts +164 -146
  71. package/es/components/ticketBooking/locales.js +195 -147
  72. package/es/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
  73. package/es/components/ticketBooking/utils/formatProductMessage.js +62 -0
  74. package/es/components/ticketBooking/utils/formatTime.d.ts +31 -0
  75. package/es/components/ticketBooking/utils/formatTime.js +144 -0
  76. package/lib/components/Sales/Cart/index.js +1 -0
  77. package/lib/components/Sales/Cart/utils.d.ts +40 -0
  78. package/lib/components/Sales/Cart/utils.js +117 -0
  79. package/lib/components/Sales/Checkout/index.d.ts +4 -0
  80. package/lib/components/Sales/Checkout/index.js +39 -7
  81. package/lib/components/Sales/Checkout/serve.d.ts +13 -0
  82. package/lib/components/Sales/Checkout/serve.js +7 -2
  83. package/lib/components/Sales/Checkout/utils.js +2 -0
  84. package/lib/components/Sales/Summary/index.d.ts +10 -0
  85. package/lib/components/Sales/Summary/index.js +7 -1
  86. package/lib/components/Sales/Summary/serve.d.ts +1 -0
  87. package/lib/components/Sales/Summary/serve.js +32 -0
  88. package/lib/components/Sales/Summary/utils.d.ts +15 -0
  89. package/lib/components/Sales/Summary/utils.js +30 -1
  90. package/lib/components/appointmentBooking/components/Cart/Item/index.less +3 -3
  91. package/lib/components/appointmentBooking/components/Content/index.js +6 -1
  92. package/lib/components/appointmentBooking/components/Content/index.less +1 -1
  93. package/lib/components/appointmentBooking/components/Deposit/index.d.ts +6 -0
  94. package/lib/components/appointmentBooking/components/Deposit/index.js +36 -4
  95. package/lib/components/appointmentBooking/components/Services/index.js +6 -11
  96. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.js +8 -4
  97. package/lib/components/appointmentBooking/deposit/index.js +4 -2
  98. package/lib/components/appointmentBooking/index.js +11 -0
  99. package/lib/components/appointmentBooking/index.less +1 -1
  100. package/lib/components/booking/components/voucher/index.js +2 -2
  101. package/lib/components/booking/info/model.js +3 -0
  102. package/lib/components/eftposPay/const.d.ts +4 -1
  103. package/lib/components/eftposPay/const.js +2 -0
  104. package/lib/components/eftposPay/hooks.d.ts +1 -1
  105. package/lib/components/eftposPay/hooks.js +11 -4
  106. package/lib/components/eftposPay/index.js +1 -1
  107. package/lib/components/eftposPay/linkly/const.d.ts +23 -0
  108. package/lib/components/eftposPay/linkly/const.js +102 -0
  109. package/lib/components/eftposPay/linkly/hooks/index.d.ts +2 -0
  110. package/lib/components/eftposPay/linkly/hooks/index.js +25 -0
  111. package/lib/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
  112. package/lib/components/eftposPay/linkly/hooks/normal.js +242 -0
  113. package/lib/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
  114. package/lib/components/eftposPay/linkly/hooks/useTimeQuery.js +222 -0
  115. package/lib/components/eftposPay/linkly/index.d.ts +2 -0
  116. package/lib/components/eftposPay/linkly/index.js +208 -0
  117. package/lib/components/eftposPay/linkly/service.d.ts +32 -0
  118. package/lib/components/eftposPay/linkly/service.js +55 -0
  119. package/lib/components/eftposPay/manufacturer.d.ts +1 -0
  120. package/lib/components/eftposPay/manufacturer.js +6 -0
  121. package/lib/components/eftposPay/pay.d.ts +1 -1
  122. package/lib/components/eftposPay/pay.js +13 -2
  123. package/lib/components/eftposPay/store/index.d.ts +1 -1
  124. package/lib/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +16 -3
  125. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +2 -0
  126. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.js +55 -0
  127. package/lib/components/eventBooking/components/Provider/Cart/Item/Total.js +8 -5
  128. package/lib/components/eventBooking/components/Provider/Cart/Item/index.js +4 -2
  129. package/lib/components/eventBooking/components/bookingDetailModal/index.js +1 -1
  130. package/lib/components/eventBooking/locales.d.ts +24 -0
  131. package/lib/components/eventBooking/locales.js +27 -3
  132. package/lib/components/pay/toC/PaymentMethods/index.js +10 -9
  133. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
  134. package/lib/components/ticketBooking/components/ticketBooking/index.js +120 -1
  135. package/lib/components/ticketBooking/locales.d.ts +164 -146
  136. package/lib/components/ticketBooking/locales.js +22 -4
  137. package/lib/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
  138. package/lib/components/ticketBooking/utils/formatProductMessage.js +84 -0
  139. package/lib/components/ticketBooking/utils/formatTime.d.ts +31 -0
  140. package/lib/components/ticketBooking/utils/formatTime.js +139 -0
  141. package/package.json +2 -2
  142. package/es/components/index.d.ts +0 -20
  143. package/lib/components/index.d.ts +0 -20
@@ -1,3 +1,4 @@
1
+ import Decimal from 'decimal.js';
1
2
  import { ICalculatePriceParams } from './types';
2
3
  export declare const handleProductInfo: (eventDetail: any, num: number) => {
3
4
  totalPrice: number;
@@ -21,3 +22,42 @@ export declare const getOriginTotalPrice: (params: ICalculatePriceParams) => num
21
22
  export declare const handleCartItemOrigin: (cartItem: any, eventDetail: any) => any;
22
23
  export declare const formatBundleToOrigin: (bundle: any) => any;
23
24
  export declare const formatOptionsToOrigin: (options: any) => any;
25
+ export declare const handleProductDeposit: (cartItem: any, eventDetail: any, num: number) => {
26
+ total: number;
27
+ protocols: any;
28
+ } | null;
29
+ /**
30
+ * 获取商品定金
31
+ * @description 定金基于商品售价来算,最终乘商品数量
32
+ * 1、如果套餐主商品有定金规则,则定金为:(套餐商品总售价 * 定金百分比 + 定金固定金额)* 商品数量
33
+ * 2、如果套餐主商品没有定金规则,子商品有定金规则,则定金为:(套餐子商品售价 * 套餐子商品定金百分比 + 套餐子商品定金固定金额)* 商品数量,最终将所有子商品定金相加
34
+ * 3、普通商品/单规格商品/组合规则商品,定金规则:(商品总售价 * 定金百分比 + 定金固定金额)* 商品数量
35
+ * @param params 参数
36
+ * @returns 商品定金
37
+ */
38
+ export declare const getProductDeposit: (params: {
39
+ cartItem: any;
40
+ product: any;
41
+ bundle?: any;
42
+ options?: any;
43
+ num?: number;
44
+ }) => {
45
+ total: number;
46
+ protocols: any;
47
+ } | null;
48
+ /**
49
+ * 计算商品定金
50
+ * @param params 参数
51
+ * @returns 商品定金
52
+ */
53
+ export declare const calculateProductDeposit: (params: {
54
+ depositData: {
55
+ deposit_fixed?: string;
56
+ deposit_percentage?: string;
57
+ };
58
+ total: string | number;
59
+ num: number;
60
+ }) => {
61
+ result: boolean;
62
+ depositTotal: Decimal;
63
+ };
@@ -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,115 @@ var formatOptionsToOrigin = (options) => {
138
152
  };
139
153
  });
140
154
  };
155
+ var handleProductDeposit = (cartItem, eventDetail, num) => {
156
+ var _a;
157
+ const { productDetail } = eventDetail;
158
+ const { origin, bundle, options, product_variant_id } = productDetail;
159
+ let deposit = null;
160
+ const product = origin;
161
+ if (product_variant_id) {
162
+ product.product_variant_id = product_variant_id;
163
+ }
164
+ if (((_a = origin == null ? void 0 : origin.custom_deposit_data) == null ? void 0 : _a.has_deposit) == 1) {
165
+ deposit = getProductDeposit({ cartItem, product, bundle, options, num });
166
+ }
167
+ return deposit;
168
+ };
169
+ var getProductDeposit = (params) => {
170
+ var _a, _b;
171
+ const { cartItem, product, bundle, options } = params;
172
+ const num = (params == null ? void 0 : params.num) || 1;
173
+ if (((_a = product == null ? void 0 : product.custom_deposit_data) == null ? void 0 : _a.has_deposit) == 1) {
174
+ let total = new import_decimal.default(0);
175
+ const {
176
+ deposit_fixed,
177
+ deposit_percentage,
178
+ deposit_policy_data,
179
+ self_deposit_policy_ids
180
+ } = (product == null ? void 0 : product.custom_deposit_data) || {};
181
+ const allProtocols = deposit_policy_data || [];
182
+ let productHasDeposit = false;
183
+ const protocolIds = [];
184
+ if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
185
+ const { depositTotal, result } = calculateProductDeposit({
186
+ depositData: product == null ? void 0 : product.custom_deposit_data,
187
+ total: (cartItem == null ? void 0 : cartItem.total) || 0,
188
+ num
189
+ });
190
+ if (result) {
191
+ total = depositTotal;
192
+ protocolIds.push(...self_deposit_policy_ids || []);
193
+ productHasDeposit = true;
194
+ }
195
+ } else {
196
+ if (product == null ? void 0 : product.product_variant_id) {
197
+ const variantProduct = (_b = product == null ? void 0 : product.variant) == null ? void 0 : _b.find(
198
+ (item) => (item == null ? void 0 : item.id) === (product == null ? void 0 : product.product_variant_id)
199
+ );
200
+ if (variantProduct) {
201
+ const depositData = variantProduct == null ? void 0 : variantProduct.custom_deposit_data;
202
+ const { depositTotal, result } = calculateProductDeposit({
203
+ depositData,
204
+ total: (cartItem == null ? void 0 : cartItem.total) || 0,
205
+ num
206
+ });
207
+ if (result) {
208
+ total = depositTotal;
209
+ protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
210
+ productHasDeposit = true;
211
+ }
212
+ }
213
+ }
214
+ if (bundle == null ? void 0 : bundle.length) {
215
+ total = bundle.reduce((accumulator, currBundleProduct) => {
216
+ const depositData = currBundleProduct == null ? void 0 : currBundleProduct.custom_deposit_data;
217
+ const { depositTotal, result } = calculateProductDeposit({
218
+ depositData,
219
+ total: currBundleProduct == null ? void 0 : currBundleProduct.price,
220
+ num: (currBundleProduct == null ? void 0 : currBundleProduct.num) || 1
221
+ });
222
+ if (result) {
223
+ protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
224
+ productHasDeposit = true;
225
+ return accumulator.plus(depositTotal);
226
+ }
227
+ return accumulator;
228
+ }, new import_decimal.default(0));
229
+ }
230
+ }
231
+ if (productHasDeposit) {
232
+ const ids = new Set(protocolIds);
233
+ const protocols = allProtocols.filter((item) => ids.has(item.id));
234
+ return { total: total.toNumber(), protocols };
235
+ }
236
+ return null;
237
+ }
238
+ return null;
239
+ };
240
+ var calculateProductDeposit = (params) => {
241
+ const { depositData, total, num } = params;
242
+ if (!depositData) {
243
+ return { result: false, depositTotal: new import_decimal.default(0) };
244
+ }
245
+ const { deposit_fixed, deposit_percentage } = depositData || {};
246
+ if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
247
+ const depositFixed = new import_decimal.default(deposit_fixed || 0);
248
+ const depositPercent = new import_decimal.default(deposit_percentage || 0);
249
+ const productTotalPrice = new import_decimal.default(total || 0);
250
+ const deposit = depositFixed.plus(depositPercent.times(productTotalPrice));
251
+ return { depositTotal: deposit.times(num), result: true };
252
+ }
253
+ return { result: false, depositTotal: new import_decimal.default(0) };
254
+ };
141
255
  // Annotate the CommonJS export names for ESM import in node:
142
256
  0 && (module.exports = {
257
+ calculateProductDeposit,
143
258
  formatBundleToOrigin,
144
259
  formatOptionsToOrigin,
145
260
  getOriginTotalPrice,
261
+ getProductDeposit,
146
262
  getTotalPrice,
147
263
  handleCartItemOrigin,
264
+ handleProductDeposit,
148
265
  handleProductInfo
149
266
  });
@@ -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
  });
@@ -79,6 +79,8 @@ var formatValues = (state, excludeDisabled, otherValue) => {
79
79
  } else {
80
80
  data = state.cartData.cartItems;
81
81
  }
82
+ const is_deposit = data.find((v) => v.deposit) ? 1 : 0;
83
+ values.is_deposit = is_deposit;
82
84
  values.bookings = formatBookings(data);
83
85
  return values;
84
86
  };
@@ -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
  * 计算商品小计(不含其他费用)
@@ -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
@@ -1,5 +1,5 @@
1
1
  .appointment-cart-item-wrap {
2
- height: calc(100vh - 100px);
2
+ height: calc(var(--vh, 1vh) * 100 - 100px);
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
 
@@ -39,7 +39,7 @@
39
39
  flex-direction: column;
40
40
  align-items: start;
41
41
 
42
- >div {
42
+ > div {
43
43
  display: flex;
44
44
  align-items: center;
45
45
  justify-content: space-between;
@@ -105,4 +105,4 @@
105
105
  flex: none;
106
106
  z-index: 10;
107
107
  }
108
- }
108
+ }
@@ -190,6 +190,10 @@ var Layout = () => {
190
190
  if (isDateSelectedFirst && key === "select-date") return false;
191
191
  return key !== "confirm-information";
192
192
  }, [isDateSelectedFirst, (_e = currentStep == null ? void 0 : currentStep.step) == null ? void 0 : _e.key]);
193
+ const depositProtocolRequest = (id) => {
194
+ var _a2;
195
+ return (_a2 = appointmentBooking == null ? void 0 : appointmentBooking.getProtocol) == null ? void 0 : _a2.call(appointmentBooking, id);
196
+ };
193
197
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, !isRetailTemplate ? /* @__PURE__ */ import_react.default.createElement(import_Header.default, null) : null, /* @__PURE__ */ import_react.default.createElement(
194
198
  "div",
195
199
  {
@@ -214,7 +218,8 @@ var Layout = () => {
214
218
  onConfirm: () => closePolicy(true),
215
219
  item: policyParams == null ? void 0 : policyParams.content,
216
220
  onChange: () => setLoading(false),
217
- isHideCheckout: false
221
+ isHideCheckout: false,
222
+ depositProtocolRequest
218
223
  }
219
224
  ) : null);
220
225
  };
@@ -107,7 +107,7 @@
107
107
  margin-top: 0;
108
108
 
109
109
  .appointment-cart-item-wrap {
110
- height: calc(100vh - 16px) !important;
110
+ height: calc(var(--vh, 1vh) * 100 - 16px) !important;
111
111
  }
112
112
  }
113
113
  }
@@ -1,3 +1,9 @@
1
1
  import './index.less';
2
+ export declare const DepositContent: (props: {
3
+ isAgreeDepositPolicy: boolean;
4
+ setIsAgreeDepositPolicy: (value: boolean) => void;
5
+ deposit: any;
6
+ depositProtocolRequest?: any;
7
+ }) => JSX.Element;
2
8
  declare const Deposit: () => JSX.Element;
3
9
  export default Deposit;
@@ -29,6 +29,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/components/appointmentBooking/components/Deposit/index.tsx
30
30
  var Deposit_exports = {};
31
31
  __export(Deposit_exports, {
32
+ DepositContent: () => DepositContent,
32
33
  default: () => Deposit_default
33
34
  });
34
35
  module.exports = __toCommonJS(Deposit_exports);
@@ -38,9 +39,13 @@ var import_deposit = __toESM(require("../../deposit"));
38
39
  var import_context = require("../../context");
39
40
  var import_utils = require("@pisell/utils");
40
41
  var import_index = require("./index.less");
41
- var Deposit = () => {
42
- const { setIsAgreeDepositPolicy, isAgreeDepositPolicy, summary } = (0, import_context.useAppointmentBookingContext)();
43
- const { deposit } = summary;
42
+ var DepositContent = (props) => {
43
+ const {
44
+ isAgreeDepositPolicy,
45
+ setIsAgreeDepositPolicy,
46
+ deposit,
47
+ depositProtocolRequest
48
+ } = props;
44
49
  return /* @__PURE__ */ import_react.default.createElement("div", { className: "appointment-deposit-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "appointment-deposit-top" }, /* @__PURE__ */ import_react.default.createElement("span", null, import_utils.locales.getText("pisell2.appointment.deposit")), /* @__PURE__ */ import_react.default.createElement(
45
50
  import_materials.PisellText.Amount,
46
51
  {
@@ -54,8 +59,35 @@ var Deposit = () => {
54
59
  total: deposit == null ? void 0 : deposit.total,
55
60
  protocols: deposit == null ? void 0 : deposit.protocols,
56
61
  isAgreePolicy: isAgreeDepositPolicy,
57
- onChange: (value) => setIsAgreeDepositPolicy(value)
62
+ onChange: (value) => setIsAgreeDepositPolicy(value),
63
+ depositProtocolRequest
58
64
  }
59
65
  ));
60
66
  };
67
+ var Deposit = () => {
68
+ const {
69
+ setIsAgreeDepositPolicy,
70
+ isAgreeDepositPolicy,
71
+ summary,
72
+ appointmentBooking
73
+ } = (0, import_context.useAppointmentBookingContext)();
74
+ const { deposit } = summary;
75
+ const depositProtocolRequest = (id) => {
76
+ var _a;
77
+ return (_a = appointmentBooking == null ? void 0 : appointmentBooking.getProtocol) == null ? void 0 : _a.call(appointmentBooking, id);
78
+ };
79
+ return /* @__PURE__ */ import_react.default.createElement(
80
+ DepositContent,
81
+ {
82
+ isAgreeDepositPolicy: !!isAgreeDepositPolicy,
83
+ setIsAgreeDepositPolicy,
84
+ deposit,
85
+ depositProtocolRequest
86
+ }
87
+ );
88
+ };
61
89
  var Deposit_default = Deposit;
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ DepositContent
93
+ });