@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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +11 -11
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +11 -11
- package/es/components/Sales/Cart/index.js +5 -1
- package/es/components/Sales/Cart/utils.d.ts +40 -0
- package/es/components/Sales/Cart/utils.js +167 -0
- package/es/components/Sales/Checkout/index.d.ts +4 -0
- package/es/components/Sales/Checkout/index.js +52 -8
- package/es/components/Sales/Checkout/serve.d.ts +13 -0
- package/es/components/Sales/Checkout/serve.js +16 -2
- package/es/components/Sales/Checkout/utils.js +7 -1
- package/es/components/Sales/Summary/index.d.ts +10 -0
- package/es/components/Sales/Summary/index.js +17 -2
- package/es/components/Sales/Summary/serve.d.ts +1 -0
- package/es/components/Sales/Summary/serve.js +6 -0
- package/es/components/Sales/Summary/utils.d.ts +15 -0
- package/es/components/Sales/Summary/utils.js +43 -1
- package/es/components/appointmentBooking/components/Cart/Item/index.less +3 -3
- package/es/components/appointmentBooking/components/Content/index.js +15 -1
- package/es/components/appointmentBooking/components/Content/index.less +1 -1
- package/es/components/appointmentBooking/components/Deposit/index.d.ts +6 -0
- package/es/components/appointmentBooking/components/Deposit/index.js +27 -7
- package/es/components/appointmentBooking/components/Services/index.js +23 -27
- package/es/components/appointmentBooking/deposit/components/PolicyModal/index.js +25 -20
- package/es/components/appointmentBooking/deposit/index.js +4 -2
- package/es/components/appointmentBooking/index.js +14 -0
- package/es/components/appointmentBooking/index.less +1 -1
- package/es/components/booking/components/voucher/index.js +2 -2
- package/es/components/booking/info/model.js +5 -0
- package/es/components/eftposPay/const.d.ts +4 -1
- package/es/components/eftposPay/const.js +3 -1
- package/es/components/eftposPay/hooks.d.ts +1 -1
- package/es/components/eftposPay/hooks.js +3 -1
- package/es/components/eftposPay/index.js +1 -1
- package/es/components/eftposPay/linkly/const.d.ts +23 -0
- package/es/components/eftposPay/linkly/const.js +82 -0
- package/es/components/eftposPay/linkly/hooks/index.d.ts +2 -0
- package/es/components/eftposPay/linkly/hooks/index.js +2 -0
- package/es/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
- package/es/components/eftposPay/linkly/hooks/normal.js +321 -0
- package/es/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
- package/es/components/eftposPay/linkly/hooks/useTimeQuery.js +273 -0
- package/es/components/eftposPay/linkly/index.d.ts +2 -0
- package/es/components/eftposPay/linkly/index.js +197 -0
- package/es/components/eftposPay/linkly/service.d.ts +32 -0
- package/es/components/eftposPay/linkly/service.js +81 -0
- package/es/components/eftposPay/manufacturer.d.ts +1 -0
- package/es/components/eftposPay/manufacturer.js +4 -0
- package/es/components/eftposPay/pay.d.ts +1 -1
- package/es/components/eftposPay/pay.js +6 -2
- package/es/components/eftposPay/store/index.d.ts +1 -1
- package/es/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +29 -17
- package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +2 -0
- package/es/components/eventBooking/components/Provider/Cart/Deposit/index.js +17 -0
- package/es/components/eventBooking/components/Provider/Cart/Item/Total.js +10 -6
- package/es/components/eventBooking/components/Provider/Cart/Item/index.js +4 -2
- package/es/components/eventBooking/components/bookingDetailModal/index.js +3 -1
- package/es/components/eventBooking/locales.d.ts +24 -0
- package/es/components/eventBooking/locales.js +27 -3
- package/es/components/pay/toC/PaymentMethods/index.js +5 -4
- package/es/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
- package/es/components/ticketBooking/components/ticketBooking/index.js +120 -1
- package/es/components/ticketBooking/locales.d.ts +164 -146
- package/es/components/ticketBooking/locales.js +195 -147
- package/es/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
- package/es/components/ticketBooking/utils/formatProductMessage.js +62 -0
- package/es/components/ticketBooking/utils/formatTime.d.ts +31 -0
- package/es/components/ticketBooking/utils/formatTime.js +144 -0
- package/lib/components/Sales/Cart/index.js +1 -0
- package/lib/components/Sales/Cart/utils.d.ts +40 -0
- package/lib/components/Sales/Cart/utils.js +117 -0
- package/lib/components/Sales/Checkout/index.d.ts +4 -0
- package/lib/components/Sales/Checkout/index.js +39 -7
- package/lib/components/Sales/Checkout/serve.d.ts +13 -0
- package/lib/components/Sales/Checkout/serve.js +7 -2
- package/lib/components/Sales/Checkout/utils.js +2 -0
- package/lib/components/Sales/Summary/index.d.ts +10 -0
- package/lib/components/Sales/Summary/index.js +7 -1
- package/lib/components/Sales/Summary/serve.d.ts +1 -0
- package/lib/components/Sales/Summary/serve.js +32 -0
- package/lib/components/Sales/Summary/utils.d.ts +15 -0
- package/lib/components/Sales/Summary/utils.js +30 -1
- package/lib/components/appointmentBooking/components/Cart/Item/index.less +3 -3
- package/lib/components/appointmentBooking/components/Content/index.js +6 -1
- package/lib/components/appointmentBooking/components/Content/index.less +1 -1
- package/lib/components/appointmentBooking/components/Deposit/index.d.ts +6 -0
- package/lib/components/appointmentBooking/components/Deposit/index.js +36 -4
- package/lib/components/appointmentBooking/components/Services/index.js +6 -11
- package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.js +8 -4
- package/lib/components/appointmentBooking/deposit/index.js +4 -2
- package/lib/components/appointmentBooking/index.js +11 -0
- package/lib/components/appointmentBooking/index.less +1 -1
- package/lib/components/booking/components/voucher/index.js +2 -2
- package/lib/components/booking/info/model.js +3 -0
- package/lib/components/eftposPay/const.d.ts +4 -1
- package/lib/components/eftposPay/const.js +2 -0
- package/lib/components/eftposPay/hooks.d.ts +1 -1
- package/lib/components/eftposPay/hooks.js +11 -4
- package/lib/components/eftposPay/index.js +1 -1
- package/lib/components/eftposPay/linkly/const.d.ts +23 -0
- package/lib/components/eftposPay/linkly/const.js +102 -0
- package/lib/components/eftposPay/linkly/hooks/index.d.ts +2 -0
- package/lib/components/eftposPay/linkly/hooks/index.js +25 -0
- package/lib/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
- package/lib/components/eftposPay/linkly/hooks/normal.js +242 -0
- package/lib/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
- package/lib/components/eftposPay/linkly/hooks/useTimeQuery.js +222 -0
- package/lib/components/eftposPay/linkly/index.d.ts +2 -0
- package/lib/components/eftposPay/linkly/index.js +208 -0
- package/lib/components/eftposPay/linkly/service.d.ts +32 -0
- package/lib/components/eftposPay/linkly/service.js +55 -0
- package/lib/components/eftposPay/manufacturer.d.ts +1 -0
- package/lib/components/eftposPay/manufacturer.js +6 -0
- package/lib/components/eftposPay/pay.d.ts +1 -1
- package/lib/components/eftposPay/pay.js +13 -2
- package/lib/components/eftposPay/store/index.d.ts +1 -1
- package/lib/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +16 -3
- package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +2 -0
- package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.js +55 -0
- package/lib/components/eventBooking/components/Provider/Cart/Item/Total.js +8 -5
- package/lib/components/eventBooking/components/Provider/Cart/Item/index.js +4 -2
- package/lib/components/eventBooking/components/bookingDetailModal/index.js +1 -1
- package/lib/components/eventBooking/locales.d.ts +24 -0
- package/lib/components/eventBooking/locales.js +27 -3
- package/lib/components/pay/toC/PaymentMethods/index.js +10 -9
- package/lib/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
- package/lib/components/ticketBooking/components/ticketBooking/index.js +120 -1
- package/lib/components/ticketBooking/locales.d.ts +164 -146
- package/lib/components/ticketBooking/locales.js +22 -4
- package/lib/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
- package/lib/components/ticketBooking/utils/formatProductMessage.js +84 -0
- package/lib/components/ticketBooking/utils/formatTime.d.ts +31 -0
- package/lib/components/ticketBooking/utils/formatTime.js +139 -0
- package/package.json +2 -2
- package/es/components/index.d.ts +0 -20
- 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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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(
|
|
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
|
};
|
|
@@ -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
|
|
42
|
-
const {
|
|
43
|
-
|
|
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
|
+
});
|