@pisell/private-materials 6.4.5 → 6.4.6
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/meta.js +1 -1
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +4 -4
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +4 -4
- package/es/components/booking/components/footer/amount.d.ts +6 -2
- package/es/components/booking/components/footer/amount.js +77 -55
- package/es/components/booking/components/footer/index.js +11 -11
- package/es/components/checkout/PaymentModal.d.ts +1 -0
- package/es/components/checkout/PaymentModal.js +22 -19
- package/es/components/checkout/components/WalletPassModule/components/DiscountWallet/DiscountTextMode.js +6 -1
- package/es/components/checkout/components/WalletPassModule/components/WalletPassTextMode/index.js +6 -1
- package/es/components/ticketBooking/components/ticketBooking/index.js +46 -4
- package/es/components/ticketBooking/locales.d.ts +12 -0
- package/es/components/ticketBooking/locales.js +15 -3
- package/lib/components/booking/components/footer/amount.d.ts +6 -2
- package/lib/components/booking/components/footer/amount.js +63 -38
- package/lib/components/booking/components/footer/index.js +2 -2
- package/lib/components/checkout/PaymentModal.d.ts +1 -0
- package/lib/components/checkout/PaymentModal.js +14 -16
- package/lib/components/checkout/components/WalletPassModule/components/DiscountWallet/DiscountTextMode.js +3 -1
- package/lib/components/checkout/components/WalletPassModule/components/WalletPassTextMode/index.js +3 -1
- package/lib/components/ticketBooking/components/ticketBooking/index.js +31 -2
- package/lib/components/ticketBooking/locales.d.ts +12 -0
- package/lib/components/ticketBooking/locales.js +15 -3
- package/package.json +1 -1
@@ -57,6 +57,10 @@ declare const _default: {
|
|
57
57
|
'pisell2.product.card.minute': (val: number) => string;
|
58
58
|
'pisell2.ticket-booking.reload': string;
|
59
59
|
'pisell2.text.scan-global-failed': string;
|
60
|
+
'pisell2.ticket-booking.terminal-upgrade-title': string;
|
61
|
+
'pisell2.ticket-booking.terminal-upgrade-description': string;
|
62
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': string;
|
63
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': string;
|
60
64
|
};
|
61
65
|
'zh-CN': {
|
62
66
|
'pisell2.ticket-booking.info': string;
|
@@ -116,6 +120,10 @@ declare const _default: {
|
|
116
120
|
'pisell2.product.card.minute': (val: number) => string;
|
117
121
|
'pisell2.ticket-booking.reload': string;
|
118
122
|
'pisell2.text.scan-global-failed': string;
|
123
|
+
'pisell2.ticket-booking.terminal-upgrade-title': string;
|
124
|
+
'pisell2.ticket-booking.terminal-upgrade-description': string;
|
125
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': string;
|
126
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': string;
|
119
127
|
};
|
120
128
|
'zh-HK': {
|
121
129
|
'pisell2.ticket-booking.info': string;
|
@@ -175,6 +183,10 @@ declare const _default: {
|
|
175
183
|
'pisell2.product.card.minute': (val: number) => string;
|
176
184
|
'pisell2.ticket-booking.reload': string;
|
177
185
|
'pisell2.text.scan-global-failed': string;
|
186
|
+
'pisell2.ticket-booking.terminal-upgrade-title': string;
|
187
|
+
'pisell2.ticket-booking.terminal-upgrade-description': string;
|
188
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': string;
|
189
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': string;
|
178
190
|
};
|
179
191
|
};
|
180
192
|
export default _default;
|
@@ -69,7 +69,11 @@ export default {
|
|
69
69
|
return "".concat(val > 1 ? ' minutes' : ' minute');
|
70
70
|
},
|
71
71
|
'pisell2.ticket-booking.reload': 'Reload',
|
72
|
-
'pisell2.text.scan-global-failed': 'No matching results'
|
72
|
+
'pisell2.text.scan-global-failed': 'No matching results',
|
73
|
+
'pisell2.ticket-booking.terminal-upgrade-title': 'Terminal Version Reminder',
|
74
|
+
'pisell2.ticket-booking.terminal-upgrade-description': 'Your Terminal version is outdated. Please upgrade Terminal to use all features.',
|
75
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': 'I understand',
|
76
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': 'Cancel'
|
73
77
|
},
|
74
78
|
'zh-CN': {
|
75
79
|
'pisell2.ticket-booking.info': '信息',
|
@@ -141,7 +145,11 @@ export default {
|
|
141
145
|
return '分钟';
|
142
146
|
},
|
143
147
|
'pisell2.ticket-booking.reload': '重新加载',
|
144
|
-
'pisell2.text.scan-global-failed': '无搜索结果'
|
148
|
+
'pisell2.text.scan-global-failed': '无搜索结果',
|
149
|
+
'pisell2.ticket-booking.terminal-upgrade-title': 'Terminal版本提醒',
|
150
|
+
'pisell2.ticket-booking.terminal-upgrade-description': '检测到您的Terminal版本较低,请升级Terminal以使用完整功能',
|
151
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': '我知道了',
|
152
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': '取消'
|
145
153
|
},
|
146
154
|
'zh-HK': {
|
147
155
|
'pisell2.ticket-booking.info': '資訊',
|
@@ -213,6 +221,10 @@ export default {
|
|
213
221
|
return '分鐘';
|
214
222
|
},
|
215
223
|
'pisell2.ticket-booking.reload': '重新載入',
|
216
|
-
'pisell2.text.scan-global-failed': '無搜索結果'
|
224
|
+
'pisell2.text.scan-global-failed': '無搜索結果',
|
225
|
+
'pisell2.ticket-booking.terminal-upgrade-title': 'Terminal版本提醒',
|
226
|
+
'pisell2.ticket-booking.terminal-upgrade-description': '檢測到您的Terminal版本較低,請升級Terminal以使用完整功能',
|
227
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': '我知道了',
|
228
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': '取消'
|
217
229
|
}
|
218
230
|
};
|
@@ -3,10 +3,14 @@ export declare const getIsPriceIncludeTax: (state: any) => any;
|
|
3
3
|
/**
|
4
4
|
* 总金额
|
5
5
|
* @param state
|
6
|
-
* @param options
|
6
|
+
* @param options isEdit: 预约信息是否发生变动
|
7
7
|
* @returns
|
8
8
|
*/
|
9
|
-
export declare const getSumTotal: (state: any,
|
9
|
+
export declare const getSumTotal: (state: any, options: {
|
10
|
+
[key: string]: any;
|
11
|
+
isEdit: boolean;
|
12
|
+
ScheduleModule: any;
|
13
|
+
}) => {
|
10
14
|
productAmount: number;
|
11
15
|
duration: string;
|
12
16
|
tax: number;
|
@@ -64,7 +64,9 @@ var getProductExpectAmount = (state, isEdit) => {
|
|
64
64
|
} else {
|
65
65
|
const quantity = item._extend.quantity || 1;
|
66
66
|
price += Number(item._extend.total) * Number(quantity);
|
67
|
-
price += getRelationDetailsTotal(
|
67
|
+
price += getRelationDetailsTotal(
|
68
|
+
item._extend.relation_details || []
|
69
|
+
);
|
68
70
|
duration += import_utils.flexibleObj.getValue(item._extend.duration);
|
69
71
|
}
|
70
72
|
}
|
@@ -137,7 +139,6 @@ var processItemsTax = (items, state, options) => {
|
|
137
139
|
{
|
138
140
|
...item,
|
139
141
|
total: unitPrice.toNumber(),
|
140
|
-
price: item._extend.total,
|
141
142
|
quantity: 1
|
142
143
|
},
|
143
144
|
state,
|
@@ -160,8 +161,33 @@ var processItemsTax = (items, state, options) => {
|
|
160
161
|
);
|
161
162
|
item._extend.original_tax_fee = originalTaxPerItem.toNumber();
|
162
163
|
item._extend.tax_fee = discountedTaxPerItem.toNumber();
|
163
|
-
|
164
|
-
|
164
|
+
let addTimeTotalTax = new import_decimal.default(0);
|
165
|
+
if (Array.isArray(item._extend.relation_details)) {
|
166
|
+
for (let atItem of item._extend.relation_details) {
|
167
|
+
const _originTotal = new import_decimal.default(
|
168
|
+
atItem.selling_price || atItem.price || 0
|
169
|
+
);
|
170
|
+
let _discountedTotal = _originTotal;
|
171
|
+
if (productExpectAmount > 0) {
|
172
|
+
_discountedTotal = _originTotal.minus(
|
173
|
+
_originTotal.dividedBy(productExpectAmount).times(shopDiscount)
|
174
|
+
);
|
175
|
+
}
|
176
|
+
const addTimeTaxPerItem = getProductItemTax(
|
177
|
+
{
|
178
|
+
...atItem,
|
179
|
+
total: _discountedTotal,
|
180
|
+
// 可能包含原有数据,或前端临时数据
|
181
|
+
quantity: atItem.product_quantity || atItem.num || 1
|
182
|
+
},
|
183
|
+
state,
|
184
|
+
{ tax_rate, is_price_include_tax }
|
185
|
+
);
|
186
|
+
addTimeTotalTax = addTimeTotalTax.plus(addTimeTaxPerItem);
|
187
|
+
}
|
188
|
+
}
|
189
|
+
originTax = originTax.plus(originalTaxPerItem.times(quantity)).plus(addTimeTotalTax);
|
190
|
+
tax = tax.plus(discountedTaxPerItem.times(quantity)).plus(addTimeTotalTax);
|
165
191
|
}
|
166
192
|
return { originTax, tax };
|
167
193
|
};
|
@@ -175,20 +201,20 @@ var getTax = (state, options) => {
|
|
175
201
|
let totalTax = new import_decimal.default(0);
|
176
202
|
if ((state == null ? void 0 : state.service) || (state == null ? void 0 : state.addons)) {
|
177
203
|
if ((_b = state == null ? void 0 : state.service) == null ? void 0 : _b.value) {
|
178
|
-
const serviceResult = processItemsTax(
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
);
|
204
|
+
const serviceResult = processItemsTax(state.service.value, state, {
|
205
|
+
tax_rate,
|
206
|
+
is_price_include_tax,
|
207
|
+
computed
|
208
|
+
});
|
183
209
|
totalOriginTax = totalOriginTax.plus(serviceResult.originTax);
|
184
210
|
totalTax = totalTax.plus(serviceResult.tax);
|
185
211
|
}
|
186
212
|
if ((_c = state == null ? void 0 : state.addons) == null ? void 0 : _c.value) {
|
187
|
-
const addonsResult = processItemsTax(
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
);
|
213
|
+
const addonsResult = processItemsTax(state.addons.value, state, {
|
214
|
+
tax_rate,
|
215
|
+
is_price_include_tax,
|
216
|
+
computed
|
217
|
+
});
|
192
218
|
totalOriginTax = totalOriginTax.plus(addonsResult.originTax);
|
193
219
|
totalTax = totalTax.plus(addonsResult.tax);
|
194
220
|
}
|
@@ -276,9 +302,9 @@ var isProductMatchSurchargeCondition = (item, options) => {
|
|
276
302
|
};
|
277
303
|
var getSurcharge = (state, options) => {
|
278
304
|
var _a;
|
279
|
-
const { ScheduleModule, surcharge_list, scheduleById } = options;
|
305
|
+
const { isEdit, ScheduleModule, surcharge_list, scheduleById } = options;
|
280
306
|
const { bookingDetail, bookingId } = state;
|
281
|
-
if (bookingId) {
|
307
|
+
if (!isEdit && bookingId) {
|
282
308
|
if (Array.isArray(bookingDetail == null ? void 0 : bookingDetail.surcharge)) {
|
283
309
|
return (((_a = state.bookingDetail) == null ? void 0 : _a.surcharge) || []).map(
|
284
310
|
(d, index) => {
|
@@ -321,8 +347,10 @@ var getSurcharge = (state, options) => {
|
|
321
347
|
ScheduleModule
|
322
348
|
})) {
|
323
349
|
matchedItems.push({
|
324
|
-
total: Number(item._extend.
|
325
|
-
|
350
|
+
total: Number(item._extend.total),
|
351
|
+
addTimeTotal: getRelationDetailsTotal(
|
352
|
+
item._extend.relation_details || []
|
353
|
+
),
|
326
354
|
quantity: item._extend.quantity || 1
|
327
355
|
});
|
328
356
|
}
|
@@ -336,7 +364,7 @@ var getSurcharge = (state, options) => {
|
|
336
364
|
ScheduleModule
|
337
365
|
})) {
|
338
366
|
matchedItems.push({
|
339
|
-
total: Number(item._extend.
|
367
|
+
total: Number(item._extend.total),
|
340
368
|
quantity: item._extend.quantity || 1
|
341
369
|
});
|
342
370
|
}
|
@@ -350,7 +378,8 @@ var getSurcharge = (state, options) => {
|
|
350
378
|
for (let item of matchedItems) {
|
351
379
|
const itemPrice = new import_decimal.default(Math.max(0, item.total || 0));
|
352
380
|
const itemQuantity = new import_decimal.default(item.quantity || 1);
|
353
|
-
const
|
381
|
+
const addTimeTotal = new import_decimal.default(item.addTimeTotal || 0);
|
382
|
+
const itemSurcharge = itemPrice.times(itemQuantity).plus(addTimeTotal).times(percentageRate);
|
354
383
|
configTotal = configTotal.plus(itemSurcharge);
|
355
384
|
}
|
356
385
|
}
|
@@ -376,10 +405,13 @@ var getSurcharge = (state, options) => {
|
|
376
405
|
}
|
377
406
|
return surchargeWithAmount;
|
378
407
|
};
|
379
|
-
var getSurchargeAmount = (state, surcharge) => {
|
408
|
+
var getSurchargeAmount = (state, surcharge, options) => {
|
380
409
|
const { bookingDetail, bookingId } = state;
|
381
|
-
|
382
|
-
|
410
|
+
const { isEdit } = options;
|
411
|
+
if (!isEdit) {
|
412
|
+
if (bookingDetail && bookingId) {
|
413
|
+
return Number(bookingDetail.surcharge_fee);
|
414
|
+
}
|
383
415
|
}
|
384
416
|
if (!Array.isArray(surcharge)) return 0;
|
385
417
|
return surcharge.reduce((total, item) => {
|
@@ -434,26 +466,25 @@ var getSumTotalAmount = ({
|
|
434
466
|
}) => {
|
435
467
|
return expectAmount + roundingAmount;
|
436
468
|
};
|
437
|
-
var getSumTotal = (state,
|
469
|
+
var getSumTotal = (state, options) => {
|
438
470
|
const { productExpectAmount, duration } = getProductExpectAmount(
|
439
471
|
state,
|
440
|
-
isEdit
|
472
|
+
options.isEdit
|
441
473
|
);
|
442
474
|
const shopDiscount = getShopDiscount(state);
|
443
475
|
const roundingAmount = getRoundingAmount(state);
|
444
476
|
const paySurchargeFee = getPaySurchargeFee(state);
|
445
|
-
const surcharge = getSurcharge(state,
|
446
|
-
const surchargeAmount = getSurchargeAmount(state, surcharge);
|
477
|
+
const surcharge = getSurcharge(state, options);
|
478
|
+
const surchargeAmount = getSurchargeAmount(state, surcharge, options);
|
447
479
|
const computed = {
|
448
480
|
productExpectAmount,
|
449
481
|
shopDiscount
|
450
482
|
};
|
451
483
|
const { tax, originTax } = getTax(state, {
|
452
|
-
isEdit,
|
453
484
|
computed,
|
454
|
-
...
|
485
|
+
...options
|
455
486
|
});
|
456
|
-
const taxInfo = getTaxInfo(state,
|
487
|
+
const taxInfo = getTaxInfo(state, options);
|
457
488
|
const paidAmount = getPaidAmount(state);
|
458
489
|
const orderPaidAmount = getOrderPaidAmount(state);
|
459
490
|
const totalRefundAmount = getTotalRefundAmount(state);
|
@@ -463,10 +494,7 @@ var getSumTotal = (state, { isEdit, ScheduleModule, ...rest }) => {
|
|
463
494
|
surchargeAmount,
|
464
495
|
shopDiscount,
|
465
496
|
state,
|
466
|
-
options
|
467
|
-
isEdit,
|
468
|
-
...rest
|
469
|
-
}
|
497
|
+
options
|
470
498
|
});
|
471
499
|
const originExpectAmount = getExpectAmount({
|
472
500
|
price: productExpectAmount,
|
@@ -474,10 +502,7 @@ var getSumTotal = (state, { isEdit, ScheduleModule, ...rest }) => {
|
|
474
502
|
surchargeAmount,
|
475
503
|
shopDiscount: 0,
|
476
504
|
state,
|
477
|
-
options
|
478
|
-
isEdit,
|
479
|
-
...rest
|
480
|
-
}
|
505
|
+
options
|
481
506
|
});
|
482
507
|
const sumTotalAmount = getSumTotalAmount({ expectAmount, roundingAmount });
|
483
508
|
const notPaidAmount = Number((0, import_utils2.formatAmount)(sumTotalAmount, 2, "")) - orderPaidAmount;
|
@@ -476,7 +476,6 @@ var Footer = (props) => {
|
|
476
476
|
showDetail
|
477
477
|
}
|
478
478
|
};
|
479
|
-
console.log("💳 Footer: Setting payment modal data:", modalData);
|
480
479
|
setPaymentModalData(modalData);
|
481
480
|
setIsPaymentModalOpen(true);
|
482
481
|
setCheckoutLoading(false);
|
@@ -1315,9 +1314,10 @@ var Footer = (props) => {
|
|
1315
1314
|
onDelete: handleNoteDelete,
|
1316
1315
|
onCancel: handleNoteCancel
|
1317
1316
|
}
|
1318
|
-
),
|
1317
|
+
), /* @__PURE__ */ import_react.default.createElement(
|
1319
1318
|
import_PaymentModal.default,
|
1320
1319
|
{
|
1320
|
+
open: isPaymentModalOpen,
|
1321
1321
|
data: paymentModalData,
|
1322
1322
|
callback: paymentCallback || void 0,
|
1323
1323
|
state,
|
@@ -75,6 +75,7 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
75
75
|
({
|
76
76
|
cartData,
|
77
77
|
orderInfo,
|
78
|
+
isModalOpen,
|
78
79
|
onPaymentComplete,
|
79
80
|
onPaymentCancel,
|
80
81
|
onStatusChange,
|
@@ -98,7 +99,6 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
98
99
|
const utils = context.appHelper.utils || {};
|
99
100
|
const { pisellos, getData, pisellosAllModule, interaction } = utils;
|
100
101
|
const Toast = (0, import_useToast.default)();
|
101
|
-
const paymentResultToast = (0, import_PaymentResultToast.usePaymentResultToast)();
|
102
102
|
const checkoutRef = (0, import_react.useRef)(null);
|
103
103
|
const savePayLaterHandlerRef = (0, import_react.useRef)(null);
|
104
104
|
const [customAmount, setCustomAmount] = (0, import_react.useState)("");
|
@@ -267,8 +267,7 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
267
267
|
};
|
268
268
|
(0, import_react.useEffect)(() => {
|
269
269
|
var _a2;
|
270
|
-
|
271
|
-
if (checkoutModule && orderInfo) {
|
270
|
+
if (checkoutModule && orderInfo && isModalOpen) {
|
272
271
|
try {
|
273
272
|
const currentAmount = checkoutModule.getStateAmount();
|
274
273
|
if (currentAmount) {
|
@@ -286,8 +285,7 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
286
285
|
}
|
287
286
|
} else {
|
288
287
|
}
|
289
|
-
|
290
|
-
if (checkoutModule) {
|
288
|
+
if (checkoutModule && isModalOpen) {
|
291
289
|
checkoutModule.getPaymentMethodsAsync().then((paymentMethods2) => {
|
292
290
|
setPaymentMethods(paymentMethods2);
|
293
291
|
const isShowCashPayment = paymentMethods2.some(
|
@@ -304,7 +302,7 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
304
302
|
}
|
305
303
|
}, [checkoutModule, orderInfo]);
|
306
304
|
(0, import_react.useEffect)(() => {
|
307
|
-
if (customAmount && checkoutModule && currency && orderInfo) {
|
305
|
+
if (customAmount && checkoutModule && currency && orderInfo && isModalOpen) {
|
308
306
|
try {
|
309
307
|
setRecommendAmounts(
|
310
308
|
checkoutModule.payment.cash.getRecommendedAmount(
|
@@ -318,7 +316,7 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
318
316
|
}
|
319
317
|
}, [customAmount, checkoutModule, currency, orderInfo]);
|
320
318
|
(0, import_react.useEffect)(() => {
|
321
|
-
if (checkoutModule && checkoutModule.core) {
|
319
|
+
if (checkoutModule && checkoutModule.core && isModalOpen) {
|
322
320
|
try {
|
323
321
|
const core = checkoutModule.core;
|
324
322
|
if (core.effects && typeof core.effects.on === "function") {
|
@@ -876,6 +874,7 @@ var PaymentContent = (0, import_react.forwardRef)(
|
|
876
874
|
}
|
877
875
|
);
|
878
876
|
var PaymentModal = ({
|
877
|
+
open,
|
879
878
|
data,
|
880
879
|
callback,
|
881
880
|
onClose,
|
@@ -1054,7 +1053,7 @@ var PaymentModal = ({
|
|
1054
1053
|
console.log("Payment cancelled");
|
1055
1054
|
callback == null ? void 0 : callback({ status: "cancelled" });
|
1056
1055
|
const checkout = pisellos.getModule("checkout");
|
1057
|
-
checkout.
|
1056
|
+
checkout.cancelCurrentOrderAsync();
|
1058
1057
|
onClose == null ? void 0 : onClose(reset || false);
|
1059
1058
|
};
|
1060
1059
|
const CustomHeader = () => /* @__PURE__ */ import_react.default.createElement(
|
@@ -1146,7 +1145,6 @@ var PaymentModal = ({
|
|
1146
1145
|
const responseData = (_a3 = data2.response) == null ? void 0 : _a3.data;
|
1147
1146
|
const paymentStatus = responseData == null ? void 0 : responseData.payment_status;
|
1148
1147
|
const orderTotalAmount = Number((responseData == null ? void 0 : responseData.total_amount) || 0);
|
1149
|
-
const gapAmount = Number((responseData == null ? void 0 : responseData.amount_gap) || 0);
|
1150
1148
|
const currentChangeGivenAmount = Number(
|
1151
1149
|
((_b3 = responseData == null ? void 0 : responseData.payment_info) == null ? void 0 : _b3.current_change_given_amount) || 0
|
1152
1150
|
);
|
@@ -1155,7 +1153,7 @@ var PaymentModal = ({
|
|
1155
1153
|
const statusClassName = (0, import_PaymentResultToastUtils.calculateStatusClassName)(paymentStatus);
|
1156
1154
|
const autoCloseConfig = (0, import_PaymentResultToastUtils.calculateAutoCloseConfig)(
|
1157
1155
|
paymentStatus,
|
1158
|
-
!!
|
1156
|
+
!!currentChangeGivenAmount
|
1159
1157
|
);
|
1160
1158
|
(0, import_PaymentResultToastUtils.displayPaymentResultToast)(
|
1161
1159
|
{
|
@@ -1173,7 +1171,7 @@ var PaymentModal = ({
|
|
1173
1171
|
toastInfo: {
|
1174
1172
|
status: paymentStatus,
|
1175
1173
|
amount: orderTotalAmount,
|
1176
|
-
gapAmount,
|
1174
|
+
gapAmount: currentChangeGivenAmount,
|
1177
1175
|
failureReason
|
1178
1176
|
}
|
1179
1177
|
};
|
@@ -1223,10 +1221,10 @@ var PaymentModal = ({
|
|
1223
1221
|
console.error("Failed to initialize checkout data:", error);
|
1224
1222
|
}
|
1225
1223
|
};
|
1226
|
-
if (data) {
|
1224
|
+
if (data && open) {
|
1227
1225
|
initCheckoutData();
|
1228
1226
|
}
|
1229
|
-
}, [data]);
|
1227
|
+
}, [data, open]);
|
1230
1228
|
const paymentResultToastConfig = {
|
1231
1229
|
context,
|
1232
1230
|
pisellos,
|
@@ -1522,19 +1520,18 @@ var PaymentModal = ({
|
|
1522
1520
|
paymentResultToastConfig,
|
1523
1521
|
generateActionButtons
|
1524
1522
|
);
|
1525
|
-
console.log("✅ PaymentModal: Rendering PisellContainer with open=true");
|
1526
1523
|
return /* @__PURE__ */ import_react.default.createElement(import_PaymentResultToast.PaymentResultToastProvider, null, /* @__PURE__ */ import_react.default.createElement(
|
1527
1524
|
import_materials.PisellContainer,
|
1528
1525
|
{
|
1529
1526
|
renderType: "modal",
|
1530
1527
|
props: {
|
1531
|
-
open
|
1528
|
+
open,
|
1532
1529
|
onCancel: () => {
|
1533
1530
|
handlePaymentCancel(false);
|
1534
1531
|
},
|
1535
1532
|
title: /* @__PURE__ */ import_react.default.createElement(CustomHeader, null),
|
1536
1533
|
width: 880,
|
1537
|
-
destroyOnClose:
|
1534
|
+
destroyOnClose: false,
|
1538
1535
|
maskClosable: false,
|
1539
1536
|
footer: null,
|
1540
1537
|
closeIcon: null,
|
@@ -1558,6 +1555,7 @@ var PaymentModal = ({
|
|
1558
1555
|
PaymentContent,
|
1559
1556
|
{
|
1560
1557
|
ref: paymentContentRef,
|
1558
|
+
isModalOpen: open,
|
1561
1559
|
cartData: (0, import_lodash.cloneDeep)(data),
|
1562
1560
|
orderInfo,
|
1563
1561
|
onPaymentComplete: handlePaymentComplete,
|
@@ -33,6 +33,8 @@ __export(DiscountTextMode_exports, {
|
|
33
33
|
});
|
34
34
|
module.exports = __toCommonJS(DiscountTextMode_exports);
|
35
35
|
var import_react = __toESM(require("react"));
|
36
|
+
var import_materials = require("@pisell/materials");
|
37
|
+
var Amount = import_materials.PisellText.Amount;
|
36
38
|
var DiscountTextMode = ({
|
37
39
|
cardData,
|
38
40
|
selectedWalletIds
|
@@ -44,7 +46,7 @@ var DiscountTextMode = ({
|
|
44
46
|
className: "discount-text-item selected"
|
45
47
|
},
|
46
48
|
/* @__PURE__ */ import_react.default.createElement("span", { className: "discount-text-name" }, card.name),
|
47
|
-
/* @__PURE__ */ import_react.default.createElement("span", { className: "discount-text-amount" }, "-",
|
49
|
+
/* @__PURE__ */ import_react.default.createElement("span", { className: "discount-text-amount" }, "-", /* @__PURE__ */ import_react.default.createElement(Amount, { value: card.savedAmount, showCurrencySymbol: true }))
|
48
50
|
)) : /* @__PURE__ */ import_react.default.createElement("div", { className: "discount-text-empty" }));
|
49
51
|
};
|
50
52
|
var DiscountTextMode_default = DiscountTextMode;
|
package/lib/components/checkout/components/WalletPassModule/components/WalletPassTextMode/index.js
CHANGED
@@ -33,7 +33,9 @@ __export(WalletPassTextMode_exports, {
|
|
33
33
|
});
|
34
34
|
module.exports = __toCommonJS(WalletPassTextMode_exports);
|
35
35
|
var import_react = __toESM(require("react"));
|
36
|
+
var import_materials = require("@pisell/materials");
|
36
37
|
var import_index = require("./index.less");
|
38
|
+
var Amount = import_materials.PisellText.Amount;
|
37
39
|
var WalletPassTextMode = ({
|
38
40
|
cardData,
|
39
41
|
selectedWalletIds
|
@@ -45,7 +47,7 @@ var WalletPassTextMode = ({
|
|
45
47
|
className: "wallet-pass-text-item selected"
|
46
48
|
},
|
47
49
|
/* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-pass-text-name" }, card.name),
|
48
|
-
/* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-pass-text-amount" }, "-",
|
50
|
+
/* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-pass-text-amount" }, "-", /* @__PURE__ */ import_react.default.createElement(Amount, { value: card.redeem, showCurrencySymbol: true }))
|
49
51
|
)) : /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-pass-text-empty" }));
|
50
52
|
};
|
51
53
|
var WalletPassTextMode_default = WalletPassTextMode;
|
@@ -262,6 +262,7 @@ var TicketBooking = () => {
|
|
262
262
|
const _timerRef = (0, import_react.useRef)();
|
263
263
|
const _callbackFnRef = (0, import_react.useRef)();
|
264
264
|
const [activeBookingId, setActiveBookingId] = (0, import_react.useState)(0);
|
265
|
+
const [showTerminalUpgradeModal, setShowTerminalUpgradeModal] = (0, import_react.useState)(false);
|
265
266
|
const pisellFloatingPanelRef = (0, import_react.useRef)(null);
|
266
267
|
const closeRef = (0, import_react.useRef)(null);
|
267
268
|
const bookingTicket = (0, import_bookingTicket.useBookingTicket)();
|
@@ -273,6 +274,21 @@ var TicketBooking = () => {
|
|
273
274
|
const { selectCustomer } = (0, import_pisellos.useCustomer)({
|
274
275
|
changeCustomerToGlobalState
|
275
276
|
});
|
277
|
+
const checkTerminalVersion = (0, import_ahooks.useMemoizedFn)(() => {
|
278
|
+
if (isTerminal()) {
|
279
|
+
const userAgent = navigator.userAgent;
|
280
|
+
if (userAgent.includes("terminal")) {
|
281
|
+
const terminalVersionMatch = userAgent.match(/terminal\/[\d.]+\((\d+)\)/i);
|
282
|
+
if (terminalVersionMatch && terminalVersionMatch[1]) {
|
283
|
+
const buildNumberStr = terminalVersionMatch[1];
|
284
|
+
const buildNumber = parseInt(buildNumberStr, 10);
|
285
|
+
if (!isNaN(buildNumber) && buildNumber > 0 && buildNumber < 766) {
|
286
|
+
setShowTerminalUpgradeModal(true);
|
287
|
+
}
|
288
|
+
}
|
289
|
+
}
|
290
|
+
}
|
291
|
+
});
|
276
292
|
(0, import_react.useMemo)(() => {
|
277
293
|
openScan((data) => {
|
278
294
|
handleScan(data);
|
@@ -334,6 +350,7 @@ var TicketBooking = () => {
|
|
334
350
|
);
|
335
351
|
_setShopOpeningHours();
|
336
352
|
_setIntervalTime(true);
|
353
|
+
checkTerminalVersion();
|
337
354
|
(_d2 = interaction == null ? void 0 : interaction.utils) == null ? void 0 : _d2.mountFunction(
|
338
355
|
"bookingTicket",
|
339
356
|
"clearAllCart",
|
@@ -352,8 +369,6 @@ var TicketBooking = () => {
|
|
352
369
|
"booking",
|
353
370
|
"voidBooking",
|
354
371
|
(orderId) => {
|
355
|
-
(0, import_serve.voidAppointment)(orderId);
|
356
|
-
enableAllScanListeners();
|
357
372
|
}
|
358
373
|
);
|
359
374
|
return () => {
|
@@ -387,6 +402,8 @@ var TicketBooking = () => {
|
|
387
402
|
intervalSetTime: isInterval
|
388
403
|
});
|
389
404
|
};
|
405
|
+
(0, import_react.useEffect)(() => {
|
406
|
+
}, []);
|
390
407
|
const getDataFromHost = () => {
|
391
408
|
try {
|
392
409
|
const is_price_include_tax = getData("is_price_include_tax");
|
@@ -1133,6 +1150,18 @@ var TicketBooking = () => {
|
|
1133
1150
|
currentDate,
|
1134
1151
|
onBookingClick: handleBookingClick
|
1135
1152
|
}
|
1153
|
+
), /* @__PURE__ */ import_react.default.createElement(
|
1154
|
+
import_materials.PisellModal.Information,
|
1155
|
+
{
|
1156
|
+
open: showTerminalUpgradeModal,
|
1157
|
+
title: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-title"),
|
1158
|
+
describe: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-description"),
|
1159
|
+
okText: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-ok"),
|
1160
|
+
cancelText: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-cancel"),
|
1161
|
+
closable: true,
|
1162
|
+
onOk: () => setShowTerminalUpgradeModal(false),
|
1163
|
+
onCancel: () => setShowTerminalUpgradeModal(false)
|
1164
|
+
}
|
1136
1165
|
));
|
1137
1166
|
};
|
1138
1167
|
var ticketBooking_default = TicketBooking;
|
@@ -57,6 +57,10 @@ declare const _default: {
|
|
57
57
|
'pisell2.product.card.minute': (val: number) => string;
|
58
58
|
'pisell2.ticket-booking.reload': string;
|
59
59
|
'pisell2.text.scan-global-failed': string;
|
60
|
+
'pisell2.ticket-booking.terminal-upgrade-title': string;
|
61
|
+
'pisell2.ticket-booking.terminal-upgrade-description': string;
|
62
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': string;
|
63
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': string;
|
60
64
|
};
|
61
65
|
'zh-CN': {
|
62
66
|
'pisell2.ticket-booking.info': string;
|
@@ -116,6 +120,10 @@ declare const _default: {
|
|
116
120
|
'pisell2.product.card.minute': (val: number) => string;
|
117
121
|
'pisell2.ticket-booking.reload': string;
|
118
122
|
'pisell2.text.scan-global-failed': string;
|
123
|
+
'pisell2.ticket-booking.terminal-upgrade-title': string;
|
124
|
+
'pisell2.ticket-booking.terminal-upgrade-description': string;
|
125
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': string;
|
126
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': string;
|
119
127
|
};
|
120
128
|
'zh-HK': {
|
121
129
|
'pisell2.ticket-booking.info': string;
|
@@ -175,6 +183,10 @@ declare const _default: {
|
|
175
183
|
'pisell2.product.card.minute': (val: number) => string;
|
176
184
|
'pisell2.ticket-booking.reload': string;
|
177
185
|
'pisell2.text.scan-global-failed': string;
|
186
|
+
'pisell2.ticket-booking.terminal-upgrade-title': string;
|
187
|
+
'pisell2.ticket-booking.terminal-upgrade-description': string;
|
188
|
+
'pisell2.ticket-booking.terminal-upgrade-ok': string;
|
189
|
+
'pisell2.ticket-booking.terminal-upgrade-cancel': string;
|
178
190
|
};
|
179
191
|
};
|
180
192
|
export default _default;
|
@@ -83,7 +83,11 @@ var locales_default = {
|
|
83
83
|
"pisell2.product.card.day.event": (val) => `${val > 1 ? " events" : " event"}`,
|
84
84
|
"pisell2.product.card.minute": (val) => `${val > 1 ? " minutes" : " minute"}`,
|
85
85
|
"pisell2.ticket-booking.reload": "Reload",
|
86
|
-
"pisell2.text.scan-global-failed": "No matching results"
|
86
|
+
"pisell2.text.scan-global-failed": "No matching results",
|
87
|
+
"pisell2.ticket-booking.terminal-upgrade-title": "Terminal Version Reminder",
|
88
|
+
"pisell2.ticket-booking.terminal-upgrade-description": "Your Terminal version is outdated. Please upgrade Terminal to use all features.",
|
89
|
+
"pisell2.ticket-booking.terminal-upgrade-ok": "I understand",
|
90
|
+
"pisell2.ticket-booking.terminal-upgrade-cancel": "Cancel"
|
87
91
|
},
|
88
92
|
"zh-CN": {
|
89
93
|
"pisell2.ticket-booking.info": "信息",
|
@@ -145,7 +149,11 @@ var locales_default = {
|
|
145
149
|
"pisell2.product.card.day.event": (val) => "个活动",
|
146
150
|
"pisell2.product.card.minute": (val) => "分钟",
|
147
151
|
"pisell2.ticket-booking.reload": "重新加载",
|
148
|
-
"pisell2.text.scan-global-failed": "无搜索结果"
|
152
|
+
"pisell2.text.scan-global-failed": "无搜索结果",
|
153
|
+
"pisell2.ticket-booking.terminal-upgrade-title": "Terminal版本提醒",
|
154
|
+
"pisell2.ticket-booking.terminal-upgrade-description": "检测到您的Terminal版本较低,请升级Terminal以使用完整功能",
|
155
|
+
"pisell2.ticket-booking.terminal-upgrade-ok": "我知道了",
|
156
|
+
"pisell2.ticket-booking.terminal-upgrade-cancel": "取消"
|
149
157
|
},
|
150
158
|
"zh-HK": {
|
151
159
|
"pisell2.ticket-booking.info": "資訊",
|
@@ -207,6 +215,10 @@ var locales_default = {
|
|
207
215
|
"pisell2.product.card.day.event": (val) => "个活動",
|
208
216
|
"pisell2.product.card.minute": (val) => "分鐘",
|
209
217
|
"pisell2.ticket-booking.reload": "重新載入",
|
210
|
-
"pisell2.text.scan-global-failed": "無搜索結果"
|
218
|
+
"pisell2.text.scan-global-failed": "無搜索結果",
|
219
|
+
"pisell2.ticket-booking.terminal-upgrade-title": "Terminal版本提醒",
|
220
|
+
"pisell2.ticket-booking.terminal-upgrade-description": "檢測到您的Terminal版本較低,請升級Terminal以使用完整功能",
|
221
|
+
"pisell2.ticket-booking.terminal-upgrade-ok": "我知道了",
|
222
|
+
"pisell2.ticket-booking.terminal-upgrade-cancel": "取消"
|
211
223
|
}
|
212
224
|
};
|