@pisell/private-materials 6.3.56 → 6.3.57
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.js +1 -1
- package/build/lowcode/view.js +1 -1
- package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
- package/es/components/booking/forms/table/index.d.ts +1 -0
- package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
- package/es/components/booking/info/service/like/index.d.ts +1 -0
- package/es/components/eftpos/deviceList/index.d.ts +1 -0
- package/es/components/eftpos/group/index.d.ts +1 -0
- package/es/components/eftpos/icon/apiKey.d.ts +1 -0
- package/es/components/eftpos/icon/device.d.ts +1 -0
- package/es/components/eftpos/receipt/index.d.ts +1 -0
- package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
- package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
- package/es/components/eftposPay/component/step/step.d.ts +1 -0
- package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +5 -0
- package/es/components/pay/toC/PaymentMethods/WalletPass/index.js +165 -145
- package/es/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
- package/es/components/pay/toC/PaymentMethods/WalletPass/utils.js +3 -3
- package/es/components/pay/toC/WalletPassBlock/index.js +3 -1
- package/es/components/pay/toC/index.js +65 -31
- package/es/components/pay/toC/model.d.ts +1 -0
- package/es/components/pay/toC/serve.d.ts +18 -0
- package/es/components/pay/toC/serve.js +29 -1
- package/es/components/pay/toC/utils.d.ts +2 -2
- package/es/components/pay/toC/utils.js +4 -0
- package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
- package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
- package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
- package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
- package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
- package/es/components/ticketBooking/components/timeBar/index.js +9 -12
- package/es/plus/clientName/index.d.ts +1 -0
- package/es/pro/pisellPaymentList/example.d.ts +1 -0
- package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
- package/lib/components/booking/forms/table/index.d.ts +1 -0
- package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
- package/lib/components/booking/info/service/like/index.d.ts +1 -0
- package/lib/components/eftpos/deviceList/index.d.ts +1 -0
- package/lib/components/eftpos/group/index.d.ts +1 -0
- package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
- package/lib/components/eftpos/icon/device.d.ts +1 -0
- package/lib/components/eftpos/receipt/index.d.ts +1 -0
- package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
- package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
- package/lib/components/eftposPay/component/step/step.d.ts +1 -0
- package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +5 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/index.js +90 -103
- package/lib/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.js +2 -2
- package/lib/components/pay/toC/WalletPassBlock/index.js +3 -1
- package/lib/components/pay/toC/index.js +52 -19
- package/lib/components/pay/toC/model.d.ts +1 -0
- package/lib/components/pay/toC/serve.d.ts +18 -0
- package/lib/components/pay/toC/serve.js +6 -0
- package/lib/components/pay/toC/utils.d.ts +2 -2
- package/lib/components/pay/toC/utils.js +4 -0
- package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
- package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
- package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
- package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
- package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
- package/lib/components/ticketBooking/components/timeBar/index.js +2 -5
- package/lib/plus/clientName/index.d.ts +1 -0
- package/lib/pro/pisellPaymentList/example.d.ts +1 -0
- package/package.json +3 -3
- package/es/components/booking/info/service/editService/constants.d.ts +0 -1
- package/es/components/pay/toC/locales.d.ts +0 -301
- package/es/components/pay/toC/status.d.ts +0 -13
- package/es/components/systemSettings/registry/locales.d.ts +0 -272
- package/es/components/systemSettings/registry/services.d.ts +0 -77
- package/es/components/systemSettings/registry/types.d.ts +0 -126
- package/es/components/systemSettings/registry/utils/typeValidation.d.ts +0 -16
- package/es/components/systemSettings/registry/utils/validators.d.ts +0 -8
- package/es/components/wallet/utils.d.ts +0 -48
- package/es/components/walletList/locales.d.ts +0 -27
- package/es/components/walletList/types/index.d.ts +0 -194
- package/es/plus/selectHolder/types.d.ts +0 -104
- package/es/plus/selectHolder/utils.d.ts +0 -9
- package/es/plus/walletEditor/components/JsonEditor/index.d.ts +0 -11
- package/es/plus/walletEditor/locales.d.ts +0 -135
- package/es/plus/walletEditor/types.d.ts +0 -52
- package/es/plus/walletPassGallery/locales.d.ts +0 -285
- package/es/plus/walletPassGallery/utils.d.ts +0 -48
- package/es/pro/Login2.0/hooks/index.d.ts +0 -2
- package/es/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +0 -24
- package/es/pro/Login2.0/hooks/useRegisterFlow.d.ts +0 -39
- package/es/pro/Login2.0/hooks/useRegistrationMethods.d.ts +0 -9
- package/es/pro/Login2.0/locales.d.ts +0 -543
- package/es/pro/Login2.0/shared/Header.d.ts +0 -11
- package/es/pro/Login2.0/shared/registerFlow.d.ts +0 -116
- package/es/pro/Login2.0/shared/types.d.ts +0 -232
- package/es/pro/Login2.0/types.d.ts +0 -167
- package/lib/components/booking/info/service/editService/constants.d.ts +0 -1
- package/lib/components/pay/toC/locales.d.ts +0 -301
- package/lib/components/pay/toC/status.d.ts +0 -13
- package/lib/components/systemSettings/registry/locales.d.ts +0 -272
- package/lib/components/systemSettings/registry/services.d.ts +0 -77
- package/lib/components/systemSettings/registry/types.d.ts +0 -126
- package/lib/components/systemSettings/registry/utils/typeValidation.d.ts +0 -16
- package/lib/components/systemSettings/registry/utils/validators.d.ts +0 -8
- package/lib/components/wallet/utils.d.ts +0 -48
- package/lib/components/walletList/locales.d.ts +0 -27
- package/lib/components/walletList/types/index.d.ts +0 -194
- package/lib/plus/selectHolder/types.d.ts +0 -104
- package/lib/plus/selectHolder/utils.d.ts +0 -9
- package/lib/plus/walletEditor/components/JsonEditor/index.d.ts +0 -11
- package/lib/plus/walletEditor/locales.d.ts +0 -135
- package/lib/plus/walletEditor/types.d.ts +0 -52
- package/lib/plus/walletPassGallery/locales.d.ts +0 -285
- package/lib/plus/walletPassGallery/utils.d.ts +0 -48
- package/lib/pro/Login2.0/hooks/index.d.ts +0 -2
- package/lib/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +0 -24
- package/lib/pro/Login2.0/hooks/useRegisterFlow.d.ts +0 -39
- package/lib/pro/Login2.0/hooks/useRegistrationMethods.d.ts +0 -9
- package/lib/pro/Login2.0/locales.d.ts +0 -543
- package/lib/pro/Login2.0/shared/Header.d.ts +0 -11
- package/lib/pro/Login2.0/shared/registerFlow.d.ts +0 -116
- package/lib/pro/Login2.0/shared/types.d.ts +0 -232
- package/lib/pro/Login2.0/types.d.ts +0 -167
|
@@ -47,10 +47,14 @@ var import_index = require("./index.less");
|
|
|
47
47
|
var import_useEngineContext = __toESM(require("../../../../../hooks/useEngineContext"));
|
|
48
48
|
var { Amount } = import_materials.PisellText;
|
|
49
49
|
var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
50
|
-
var _a, _b, _c, _d, _e;
|
|
51
|
-
const { onWalletPassChange, walletPass, walletSetting } = props;
|
|
50
|
+
var _a, _b, _c, _d, _e, _f;
|
|
51
|
+
const { onWalletPassChange, walletPass, walletSetting, orderDetail, total_amount } = props;
|
|
52
52
|
const context = (0, import_useEngineContext.default)();
|
|
53
|
-
const
|
|
53
|
+
const { walletPassEvaluator } = ((_a = context == null ? void 0 : context.appHelper) == null ? void 0 : _a.utils) || {};
|
|
54
|
+
const { detail } = orderDetail;
|
|
55
|
+
const isWalletCode = (_e = (_d = (_c = (_b = context == null ? void 0 : context.appHelper) == null ? void 0 : _b.utils) == null ? void 0 : _c.businessUtils) == null ? void 0 : _d.getAppByModal) == null ? void 0 : _e.call(_d, "wallet");
|
|
56
|
+
const { cards: recommended, transformList, noApplicableVoucher } = walletPass;
|
|
57
|
+
const [selectedVoucherIds, setSelectedVoucherIds] = (0, import_react.useState)([]);
|
|
54
58
|
const [currentWalletPass, setCurrentWalletPass] = (0, import_react.useState)(walletPass);
|
|
55
59
|
const [loading, setLoading] = (0, import_react.useState)(false);
|
|
56
60
|
const [open, setOpen] = (0, import_react.useState)(false);
|
|
@@ -63,80 +67,69 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
63
67
|
details: []
|
|
64
68
|
});
|
|
65
69
|
const isAutoSelect = (0, import_react.useRef)(false);
|
|
66
|
-
const listRef = (0, import_react.useRef)(null);
|
|
67
70
|
const searchValRef = (0, import_react.useRef)(null);
|
|
68
71
|
const pinVerifyModalRef = (0, import_react.useRef)(null);
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
(
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
const allVouchersForCalculation = (0, import_react.useMemo)(() => {
|
|
73
|
+
return [...transformList || [], ...addList || []];
|
|
74
|
+
}, [transformList, addList]);
|
|
75
|
+
const selectedVouchers = (0, import_react.useMemo)(() => {
|
|
76
|
+
return selectedVoucherIds.map((id) => allVouchersForCalculation.find((v) => v.id === id)).filter(Boolean);
|
|
77
|
+
}, [selectedVoucherIds, allVouchersForCalculation]);
|
|
78
|
+
const { displayVouchers, displayOtherVouchers, selectedWithDetails, totalDeduction } = (0, import_react.useMemo)(() => {
|
|
79
|
+
if (!walletPassEvaluator || !allVouchersForCalculation.length || !(order == null ? void 0 : order.total_amount)) {
|
|
80
|
+
return {
|
|
81
|
+
displayVouchers: [...transformList || [], ...noApplicableVoucher || []],
|
|
82
|
+
displayOtherVouchers: addList || [],
|
|
83
|
+
selectedWithDetails: [],
|
|
84
|
+
totalDeduction: 0
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
if (selectedVouchers.length === 0) {
|
|
88
|
+
return {
|
|
89
|
+
displayVouchers: [...transformList || [], ...noApplicableVoucher || []],
|
|
90
|
+
displayOtherVouchers: addList || [],
|
|
91
|
+
selectedWithDetails: [],
|
|
92
|
+
totalDeduction: 0
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const result = walletPassEvaluator.recalculateVouchers(
|
|
96
|
+
allVouchersForCalculation,
|
|
97
|
+
selectedVouchers,
|
|
98
|
+
order.total_amount,
|
|
99
|
+
detail || []
|
|
100
|
+
);
|
|
101
|
+
const currentCustomerVouchers = [];
|
|
102
|
+
const otherCustomerVouchers = [];
|
|
103
|
+
result.allWithUpdatedStatus.forEach((voucher) => {
|
|
104
|
+
if (voucher.customer_id === (order == null ? void 0 : order.customer_id)) {
|
|
105
|
+
currentCustomerVouchers.push(voucher);
|
|
76
106
|
} else {
|
|
77
|
-
|
|
107
|
+
otherCustomerVouchers.push(voucher);
|
|
78
108
|
}
|
|
79
109
|
});
|
|
80
|
-
return
|
|
81
|
-
|
|
110
|
+
return {
|
|
111
|
+
displayVouchers: [...currentCustomerVouchers, ...noApplicableVoucher || []],
|
|
112
|
+
displayOtherVouchers: otherCustomerVouchers,
|
|
113
|
+
selectedWithDetails: result.selectedWithDetails,
|
|
114
|
+
totalDeduction: result.selectedWithDetails.reduce((sum, v) => sum + (v.actualDeduction || 0), 0)
|
|
115
|
+
};
|
|
116
|
+
}, [selectedVouchers, allVouchersForCalculation, transformList, addList, noApplicableVoucher, order == null ? void 0 : order.total_amount, order == null ? void 0 : order.customer_id, detail, walletPassEvaluator]);
|
|
82
117
|
const prepare_payments = (0, import_react.useMemo)(() => {
|
|
83
118
|
return (0, import_utils3.formatWalletPassList2PreparePayments)(
|
|
84
119
|
(0, import_utils.uniqueByKey)(
|
|
85
|
-
(
|
|
120
|
+
(selectedWithDetails || []).concat(searchSelectData.details),
|
|
86
121
|
"id"
|
|
87
122
|
)
|
|
88
123
|
);
|
|
89
|
-
}, [
|
|
124
|
+
}, [selectedWithDetails, searchSelectData]);
|
|
90
125
|
const selectValue = (0, import_react.useMemo)(() => {
|
|
91
|
-
return
|
|
92
|
-
}, [
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const other_exact_codes = (0, import_react.useMemo)(() => {
|
|
97
|
-
const codes = [];
|
|
98
|
-
addList.forEach((item) => {
|
|
99
|
-
if (!selectValue.includes(item.id)) {
|
|
100
|
-
codes.push(item.code);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
return codes;
|
|
104
|
-
}, [addList, selectValue]);
|
|
105
|
-
const refreshList = (0, import_ahooks.useMemoizedFn)(() => {
|
|
106
|
-
var _a2, _b2;
|
|
107
|
-
if ((order == null ? void 0 : order.order_id) && (order == null ? void 0 : order.customer_id)) {
|
|
108
|
-
(_b2 = listRef.current) == null ? void 0 : _b2.init(
|
|
109
|
-
{
|
|
110
|
-
order_id: order.order_id,
|
|
111
|
-
available: 2,
|
|
112
|
-
prepare_payments,
|
|
113
|
-
filter_prepare_wallet_pass: 1,
|
|
114
|
-
sale_channel: ((_a2 = order._order) == null ? void 0 : _a2.sale_channel) || "online-store",
|
|
115
|
-
other_exact_codes
|
|
116
|
-
},
|
|
117
|
-
// 已选择的卡片接口中不会返回,所以追加进入列表
|
|
118
|
-
(val) => {
|
|
119
|
-
const idMap = val.reduce((pre, cur) => {
|
|
120
|
-
return {
|
|
121
|
-
...pre,
|
|
122
|
-
[cur.id]: cur
|
|
123
|
-
};
|
|
124
|
-
}, {});
|
|
125
|
-
setAddList((prevState) => {
|
|
126
|
-
return prevState.map((item) => {
|
|
127
|
-
if (idMap[item.id]) {
|
|
128
|
-
return idMap[item.id];
|
|
129
|
-
}
|
|
130
|
-
return item;
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
return [...currentCustomerWalletPass || [], ...val].filter(
|
|
134
|
-
(item) => !(order == null ? void 0 : order.customer_id) || item.customer_id === (order == null ? void 0 : order.customer_id)
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
);
|
|
126
|
+
return selectedVoucherIds;
|
|
127
|
+
}, [selectedVoucherIds]);
|
|
128
|
+
(0, import_react.useEffect)(() => {
|
|
129
|
+
if (recommended && recommended.length > 0) {
|
|
130
|
+
setSelectedVoucherIds(recommended.map((v) => v.id));
|
|
138
131
|
}
|
|
139
|
-
});
|
|
132
|
+
}, [recommended]);
|
|
140
133
|
(0, import_react.useEffect)(() => {
|
|
141
134
|
if ((order == null ? void 0 : order.order_id) && searchValRef.current) {
|
|
142
135
|
searchList(searchValRef.current, true);
|
|
@@ -147,16 +140,16 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
147
140
|
setOrder(res);
|
|
148
141
|
setOpen(true);
|
|
149
142
|
setCurrentWalletPass(walletPass);
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
143
|
+
if (recommended && recommended.length > 0) {
|
|
144
|
+
setSelectedVoucherIds(recommended.map((v) => v.id));
|
|
145
|
+
}
|
|
153
146
|
};
|
|
154
147
|
const searchList = async ({ code, customer_pin_key }, isSelectChange) => {
|
|
155
148
|
var _a2;
|
|
156
149
|
if (!(order == null ? void 0 : order.order_id)) return;
|
|
157
150
|
setLoading(true);
|
|
158
151
|
try {
|
|
159
|
-
const
|
|
152
|
+
const baseResult = await (0, import_serve.searchMachineCodeList)({
|
|
160
153
|
order_id: order.order_id,
|
|
161
154
|
code,
|
|
162
155
|
prepare_payments,
|
|
@@ -164,7 +157,7 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
164
157
|
sale_channel: ((_a2 = order._order) == null ? void 0 : _a2.sale_channel) || "online-store",
|
|
165
158
|
customer_pin_key
|
|
166
159
|
});
|
|
167
|
-
if (!
|
|
160
|
+
if (!baseResult) {
|
|
168
161
|
if (!isSelectChange) {
|
|
169
162
|
(0, import_materials.PisellToast)({
|
|
170
163
|
content: import_utils.locales.getText("tocPay.text.walletSearchEmpty")
|
|
@@ -175,6 +168,11 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
175
168
|
if (isSelectChange && !searchValRef.current) {
|
|
176
169
|
return;
|
|
177
170
|
}
|
|
171
|
+
let result = walletPassEvaluator.searchVoucherFormat({
|
|
172
|
+
vouchers: baseResult,
|
|
173
|
+
orderTotalAmount: order.total_amount,
|
|
174
|
+
products: detail
|
|
175
|
+
});
|
|
178
176
|
setSearchData(
|
|
179
177
|
(0, import_utils2.formatMachineCodeServer2CardList)(
|
|
180
178
|
[...searchSelectData.details, ...result],
|
|
@@ -237,23 +235,23 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
237
235
|
});
|
|
238
236
|
};
|
|
239
237
|
const handleSelectOk = () => {
|
|
240
|
-
|
|
241
|
-
(0
|
|
242
|
-
[
|
|
243
|
-
...walletPassSelectCards || [],
|
|
244
|
-
...searchSelectData.details
|
|
245
|
-
],
|
|
246
|
-
"id"
|
|
247
|
-
)
|
|
238
|
+
const otherCustomerSearchVouchers = searchSelectData.details.filter(
|
|
239
|
+
(item) => item.customer_id !== (order == null ? void 0 : order.customer_id)
|
|
248
240
|
);
|
|
249
241
|
setAddList((prevState) => {
|
|
250
242
|
return (0, import_utils.uniqueByKey)(
|
|
251
|
-
[...prevState, ...
|
|
243
|
+
[...prevState, ...otherCustomerSearchVouchers],
|
|
252
244
|
"id"
|
|
253
|
-
).filter(
|
|
254
|
-
(item) => !(order == null ? void 0 : order.customer_id) || item.customer_id !== (order == null ? void 0 : order.customer_id)
|
|
255
245
|
);
|
|
256
246
|
});
|
|
247
|
+
const newSelectedIds = (0, import_utils.uniqueByKey)(
|
|
248
|
+
[
|
|
249
|
+
...selectedWithDetails || [],
|
|
250
|
+
...searchSelectData.details
|
|
251
|
+
],
|
|
252
|
+
"id"
|
|
253
|
+
).map((v) => v.id);
|
|
254
|
+
setSelectedVoucherIds(newSelectedIds);
|
|
257
255
|
handleSearchModalClose();
|
|
258
256
|
};
|
|
259
257
|
const handleAddChange = (0, import_ahooks.useMemoizedFn)(
|
|
@@ -265,26 +263,15 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
265
263
|
});
|
|
266
264
|
}
|
|
267
265
|
);
|
|
268
|
-
const changeWalletPass = (cards) => {
|
|
269
|
-
setCurrentWalletPass == null ? void 0 : setCurrentWalletPass({
|
|
270
|
-
cards,
|
|
271
|
-
amount: (0, import_utils3.calcWalletPassListAmount)(cards)
|
|
272
|
-
});
|
|
273
|
-
setTimeout(() => {
|
|
274
|
-
refreshList();
|
|
275
|
-
});
|
|
276
|
-
};
|
|
277
266
|
const handleSelectChange = (val, details, type) => {
|
|
278
|
-
|
|
279
|
-
if (type === "other") {
|
|
280
|
-
cards = currentCustomerWalletPass.concat(cards);
|
|
281
|
-
} else if (type === "current") {
|
|
282
|
-
cards = otherCustomerWalletPass.concat(cards);
|
|
283
|
-
}
|
|
284
|
-
changeWalletPass(cards);
|
|
267
|
+
setSelectedVoucherIds(val);
|
|
285
268
|
};
|
|
286
269
|
const handleRedeem = () => {
|
|
287
|
-
onWalletPassChange == null ? void 0 : onWalletPassChange(
|
|
270
|
+
onWalletPassChange == null ? void 0 : onWalletPassChange({
|
|
271
|
+
...currentWalletPass,
|
|
272
|
+
cards: selectedWithDetails,
|
|
273
|
+
amount: totalDeduction
|
|
274
|
+
});
|
|
288
275
|
setOpen(false);
|
|
289
276
|
};
|
|
290
277
|
const handleWalletClose = () => {
|
|
@@ -309,16 +296,16 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
309
296
|
onCancel: () => handleWalletClose(),
|
|
310
297
|
cancelVisible: false,
|
|
311
298
|
destroyOnClose: true,
|
|
312
|
-
okText: /* @__PURE__ */ import_react.default.createElement("div", null, import_utils.locales.getText("tocPay.text.redeem"), " ", /* @__PURE__ */ import_react.default.createElement(Amount, { value:
|
|
299
|
+
okText: /* @__PURE__ */ import_react.default.createElement("div", null, import_utils.locales.getText("tocPay.text.redeem"), " ", /* @__PURE__ */ import_react.default.createElement(Amount, { value: totalDeduction })),
|
|
313
300
|
onOk: handleRedeem
|
|
314
301
|
},
|
|
315
302
|
/* @__PURE__ */ import_react.default.createElement("div", { className: "", style: { marginTop: 24 } }, /* @__PURE__ */ import_react.default.createElement(import_MultiModeSearch.default, { onChange: handleSearch }), /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-pass-modal-multi-selection-available" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-pass-modal-multi-selection-available-title" }, /* @__PURE__ */ import_react.default.createElement(import_icons.InfoCircleOutlined, { className: "wallet-pass-modal-multi-selection-available-title-icon" }), import_utils.locales.getText("tocPay.text.multipleSelectionAvailable")), /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-pass-modal-multi-selection-available-desc" }, import_utils.locales.getText(
|
|
316
303
|
"tocPay.text.youCanSelectMultipleWalletPassesToCombineForPayment"
|
|
317
|
-
)(walletSetting.name))),
|
|
304
|
+
)(walletSetting.name))), displayOtherVouchers.length > 0 && /* @__PURE__ */ import_react.default.createElement(
|
|
318
305
|
import_List.default,
|
|
319
306
|
{
|
|
320
307
|
walletSetting,
|
|
321
|
-
data:
|
|
308
|
+
data: (0, import_utils2.formatMachineCodeServer2CardList)(displayOtherVouchers, selectValue),
|
|
322
309
|
title: import_utils.locales.getText("tocPay.text.couponCodesAdded"),
|
|
323
310
|
onChange: handleOtherChange,
|
|
324
311
|
value: selectValue,
|
|
@@ -331,9 +318,9 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
331
318
|
walletSetting,
|
|
332
319
|
title: walletSetting.name,
|
|
333
320
|
onChange: handleCurrentChange,
|
|
334
|
-
|
|
321
|
+
data: (0, import_utils2.formatMachineCodeServer2CardList)(displayVouchers, selectValue),
|
|
335
322
|
value: selectValue,
|
|
336
|
-
|
|
323
|
+
loading
|
|
337
324
|
}
|
|
338
325
|
))
|
|
339
326
|
), /* @__PURE__ */ import_react.default.createElement(
|
|
@@ -348,7 +335,7 @@ var WalletPass = (0, import_react.forwardRef)((props, ref) => {
|
|
|
348
335
|
okText: import_utils.locales.getText("tocPay.text.select"),
|
|
349
336
|
onOk: handleSelectOk,
|
|
350
337
|
okButtonProps: {
|
|
351
|
-
disabled: ((
|
|
338
|
+
disabled: ((_f = searchSelectData.ids) == null ? void 0 : _f.length) === 0
|
|
352
339
|
}
|
|
353
340
|
},
|
|
354
341
|
/* @__PURE__ */ import_react.default.createElement("div", { className: "", style: { marginTop: 24 } }, /* @__PURE__ */ import_react.default.createElement(
|
|
@@ -56,6 +56,12 @@ export declare type WalletPassDataType = {
|
|
|
56
56
|
metadata?: {
|
|
57
57
|
validity_type: string;
|
|
58
58
|
};
|
|
59
|
+
/** 前端计算 可用最大金额 */
|
|
60
|
+
_available_max_amount?: number;
|
|
61
|
+
/** 前端计算 统一可用状态 */
|
|
62
|
+
_unified_available_status?: 0 | 1;
|
|
63
|
+
/** 前端计算 禁用原因 */
|
|
64
|
+
reason?: string;
|
|
59
65
|
};
|
|
60
66
|
declare type Shop = {
|
|
61
67
|
id: number;
|
|
@@ -53,8 +53,8 @@ var formatMachineCodeServer2CardList = (data, selectId = []) => {
|
|
|
53
53
|
showDetail: false,
|
|
54
54
|
showQrCode: false,
|
|
55
55
|
code: item.code,
|
|
56
|
-
disabled: !item.unified_available_status,
|
|
57
|
-
disabledReason: (_b = item.unified_messages) == null ? void 0 : _b.title,
|
|
56
|
+
disabled: (0, import_utils.isNumber)(item._unified_available_status) ? !item._unified_available_status : !item.unified_available_status,
|
|
57
|
+
disabledReason: (0, import_utils.isNumber)(item._unified_available_status) ? item.reason : (_b = item.unified_messages) == null ? void 0 : _b.title,
|
|
58
58
|
cover: (_c = item.product) == null ? void 0 : _c.cover,
|
|
59
59
|
qrCode: item.code,
|
|
60
60
|
validDate: voucherTime(item),
|
|
@@ -166,7 +166,9 @@ var WalletPassBlock = (props, ref) => {
|
|
|
166
166
|
ref: walletPassRef,
|
|
167
167
|
walletSetting,
|
|
168
168
|
onWalletPassChange,
|
|
169
|
-
walletPass: payGroup == null ? void 0 : payGroup.walletPass
|
|
169
|
+
walletPass: payGroup == null ? void 0 : payGroup.walletPass,
|
|
170
|
+
orderDetail: payGroup == null ? void 0 : payGroup.orderDetail,
|
|
171
|
+
total_amount: payGroup == null ? void 0 : payGroup.total_amount
|
|
170
172
|
}
|
|
171
173
|
), /* @__PURE__ */ import_react.default.createElement(
|
|
172
174
|
import_WalletAvailable.default,
|
|
@@ -49,6 +49,7 @@ var import_usePaymentLogger = __toESM(require("../../../hooks/usePaymentLogger")
|
|
|
49
49
|
var import_utils2 = require("../../../utils");
|
|
50
50
|
var import_payGroup = require("./payGroup");
|
|
51
51
|
var import_locales = __toESM(require("./locales"));
|
|
52
|
+
var import_serve2 = require("./PaymentMethods/WalletPass/serve");
|
|
52
53
|
var import_utils3 = require("./utils");
|
|
53
54
|
var import_status = require("./status");
|
|
54
55
|
var import_index = require("./index.less");
|
|
@@ -154,7 +155,7 @@ var ToCPay = (props, ref) => {
|
|
|
154
155
|
}
|
|
155
156
|
};
|
|
156
157
|
const _getPaymentsAndWalletPass = async (order) => {
|
|
157
|
-
var _a2, _b2;
|
|
158
|
+
var _a2, _b2, _c2;
|
|
158
159
|
paymentLogger.addLog({
|
|
159
160
|
key: "获取支付列表开始",
|
|
160
161
|
value: {
|
|
@@ -162,11 +163,22 @@ var ToCPay = (props, ref) => {
|
|
|
162
163
|
}
|
|
163
164
|
});
|
|
164
165
|
try {
|
|
165
|
-
const data = await
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
const [data, allList, orderBasicDetail] = await Promise.all([
|
|
167
|
+
(0, import_serve.getPaymentsAndWalletPass)({
|
|
168
|
+
order_id: order.order_id,
|
|
169
|
+
total_amount: order.amount,
|
|
170
|
+
sale_channel: order.sale_channel || "online-store"
|
|
171
|
+
}),
|
|
172
|
+
(0, import_serve2.getMachineCodeList)({
|
|
173
|
+
order_id: order.order_id,
|
|
174
|
+
available: 2,
|
|
175
|
+
prepare_payments: [],
|
|
176
|
+
filter_prepare_wallet_pass: 1,
|
|
177
|
+
sale_channel: ((_a2 = order._order) == null ? void 0 : _a2.sale_channel) || "online-store",
|
|
178
|
+
other_exact_codes: []
|
|
179
|
+
}),
|
|
180
|
+
(0, import_serve.getOrderBasicDetail)(order.order_id)
|
|
181
|
+
]);
|
|
170
182
|
const {
|
|
171
183
|
remain_amount = 0,
|
|
172
184
|
wallet_pass_recommend_list,
|
|
@@ -174,39 +186,60 @@ var ToCPay = (props, ref) => {
|
|
|
174
186
|
payment_list,
|
|
175
187
|
walletPass
|
|
176
188
|
} = data || {};
|
|
189
|
+
const products = (orderBasicDetail.detail || []).map((item) => {
|
|
190
|
+
var _a3;
|
|
191
|
+
return {
|
|
192
|
+
...item,
|
|
193
|
+
is_price_include_tax: orderBasicDetail.is_price_include_tax,
|
|
194
|
+
product_bundle: (_a3 = item.product_bundle || []) == null ? void 0 : _a3.map((bundle) => {
|
|
195
|
+
return {
|
|
196
|
+
...bundle,
|
|
197
|
+
is_price_include_tax: orderBasicDetail.is_price_include_tax
|
|
198
|
+
};
|
|
199
|
+
})
|
|
200
|
+
};
|
|
201
|
+
});
|
|
202
|
+
const res = utils.walletPassEvaluator.getRecommendedVouchers({
|
|
203
|
+
orderTotalAmount: Math.min(orderBasicDetail.product_unpaid_total_pay_amount, order.amount),
|
|
204
|
+
products,
|
|
205
|
+
vouchers: allList || []
|
|
206
|
+
});
|
|
207
|
+
const { recommended, transformList, noApplicableVoucher, recommendedAmount } = res;
|
|
177
208
|
paymentLogger.addLog({
|
|
178
209
|
key: "支付数据获取",
|
|
179
210
|
value: ""
|
|
180
211
|
});
|
|
181
|
-
const
|
|
182
|
-
(item) => {
|
|
183
|
-
return {
|
|
184
|
-
...item,
|
|
185
|
-
customer_id: customer_id || item.customer_id
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
);
|
|
212
|
+
const waitAmount2 = new import_decimal.Decimal((order == null ? void 0 : order.amount) || 0).minus(new import_decimal.Decimal(recommendedAmount)).toNumber();
|
|
189
213
|
dispatch({
|
|
190
214
|
type: "setPayGroup",
|
|
191
215
|
payload: {
|
|
192
216
|
// ...state.payGroup,
|
|
193
217
|
order_id: order == null ? void 0 : order.order_id,
|
|
194
218
|
// total_amount: order?.amount,
|
|
219
|
+
orderDetail: orderBasicDetail,
|
|
195
220
|
// 原订单信息
|
|
196
221
|
_order: order,
|
|
197
222
|
payment_group_id: order == null ? void 0 : order.payment_group_id,
|
|
198
223
|
// 支付方式没有walletPass时walletPass设置null
|
|
199
224
|
walletPass: walletPass ? {
|
|
200
|
-
...(
|
|
225
|
+
...(_b2 = state.payGroup) == null ? void 0 : _b2.walletPass,
|
|
201
226
|
...walletPass,
|
|
202
|
-
|
|
203
|
-
cards:
|
|
227
|
+
// 推荐钱包
|
|
228
|
+
cards: recommended,
|
|
229
|
+
// 推荐金额
|
|
230
|
+
amount: recommendedAmount,
|
|
231
|
+
// 不可用钱包
|
|
232
|
+
noApplicableVoucher,
|
|
233
|
+
// 转换列表
|
|
234
|
+
transformList
|
|
235
|
+
// amount: wallet_pass_amount,
|
|
236
|
+
// cards: wallet_pass_recommend_list,
|
|
204
237
|
} : null,
|
|
205
238
|
total_amount: order == null ? void 0 : order.amount,
|
|
206
|
-
wait_amount:
|
|
239
|
+
wait_amount: Math.max(0, waitAmount2)
|
|
207
240
|
}
|
|
208
241
|
});
|
|
209
|
-
await ((
|
|
242
|
+
await ((_c2 = paymentListRef.current) == null ? void 0 : _c2.init(payment_list));
|
|
210
243
|
setTimeout(() => {
|
|
211
244
|
setLoading(false);
|
|
212
245
|
}, 100);
|
|
@@ -60,3 +60,21 @@ export declare const getWalletNameAndPopupStatus: (values: {
|
|
|
60
60
|
* @description: 获取支付结果
|
|
61
61
|
*/
|
|
62
62
|
export declare const getPaymentResult: (values: any) => Promise<any>;
|
|
63
|
+
declare type OrderBasicDetail = {
|
|
64
|
+
id: number;
|
|
65
|
+
status: string;
|
|
66
|
+
payment_status: string;
|
|
67
|
+
order_time: string;
|
|
68
|
+
detail: any[];
|
|
69
|
+
product_unpaid_total_pay_amount: number;
|
|
70
|
+
product_paid_total_pay_amount: number;
|
|
71
|
+
is_price_include_tax: 1 | 0;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* @title: 查询订单基础信息和订单商品信息
|
|
75
|
+
* @description: 查询订单基础信息和订单商品信息
|
|
76
|
+
* @param {string} order_id
|
|
77
|
+
* @return {*}
|
|
78
|
+
*/
|
|
79
|
+
export declare const getOrderBasicDetail: (order_id: string) => Promise<OrderBasicDetail>;
|
|
80
|
+
export {};
|
|
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
// src/components/pay/toC/serve.ts
|
|
20
20
|
var serve_exports = {};
|
|
21
21
|
__export(serve_exports, {
|
|
22
|
+
getOrderBasicDetail: () => getOrderBasicDetail,
|
|
22
23
|
getPaymentInit: () => getPaymentInit,
|
|
23
24
|
getPaymentList: () => getPaymentList,
|
|
24
25
|
getPaymentResult: () => getPaymentResult,
|
|
@@ -77,8 +78,13 @@ var getWalletNameAndPopupStatus = async (values) => {
|
|
|
77
78
|
return data;
|
|
78
79
|
};
|
|
79
80
|
var getPaymentResult = (values) => import_utils.request.getRequest().get(`/h5/pay/order/payment/result`, values);
|
|
81
|
+
var getOrderBasicDetail = async (order_id) => {
|
|
82
|
+
const { data } = await import_utils.request.getRequest().get(`/h5/order/order/${order_id}/basic-detail`, {});
|
|
83
|
+
return data;
|
|
84
|
+
};
|
|
80
85
|
// Annotate the CommonJS export names for ESM import in node:
|
|
81
86
|
0 && (module.exports = {
|
|
87
|
+
getOrderBasicDetail,
|
|
82
88
|
getPaymentInit,
|
|
83
89
|
getPaymentList,
|
|
84
90
|
getPaymentResult,
|
|
@@ -22,7 +22,7 @@ export declare const formatWalletPassParams: (payGroup: PayGroup) => {
|
|
|
22
22
|
order_id: string;
|
|
23
23
|
payment_group_id: number;
|
|
24
24
|
payments: {
|
|
25
|
-
amount: string;
|
|
25
|
+
amount: string | number;
|
|
26
26
|
wallet_pass_use_value: any;
|
|
27
27
|
voucher_id: any;
|
|
28
28
|
tag: any;
|
|
@@ -48,7 +48,7 @@ export declare const isFranchiseeShop: (path?: any, history?: any) => any;
|
|
|
48
48
|
*/
|
|
49
49
|
export declare const getFranchiseeShopId: (path?: any, history?: any) => number;
|
|
50
50
|
export declare const formatFranchiseeRoute: (url: string, history?: any) => string;
|
|
51
|
-
export declare const getAvailableMaxAmount: (data: WalletPassDataType) => string;
|
|
51
|
+
export declare const getAvailableMaxAmount: (data: WalletPassDataType) => string | number;
|
|
52
52
|
export declare const clientPayment: (params: {
|
|
53
53
|
order_id: number;
|
|
54
54
|
type: "aliPay" | "wxPay" | 'google_pay';
|
|
@@ -32,6 +32,7 @@ __export(utils_exports, {
|
|
|
32
32
|
module.exports = __toCommonJS(utils_exports);
|
|
33
33
|
var import_decimal = require("decimal.js");
|
|
34
34
|
var import_status = require("./status");
|
|
35
|
+
var import_utils = require("@pisell/utils");
|
|
35
36
|
var calcWalletPassListAmount = (list) => {
|
|
36
37
|
return list.reduce((pre, cur) => pre.add(new import_decimal.Decimal(String(getAvailableMaxAmount(cur) || 0))), new import_decimal.Decimal("0")).toNumber();
|
|
37
38
|
};
|
|
@@ -84,6 +85,9 @@ var formatFranchiseeRoute = (url, history) => {
|
|
|
84
85
|
return url;
|
|
85
86
|
};
|
|
86
87
|
var getAvailableMaxAmount = (data) => {
|
|
88
|
+
if ((0, import_utils.isNumber)(data._available_max_amount)) {
|
|
89
|
+
return data._available_max_amount;
|
|
90
|
+
}
|
|
87
91
|
return data.tag !== "point_card" ? data.available_max_amount : data == null ? void 0 : data.recommended_usage_amount;
|
|
88
92
|
};
|
|
89
93
|
var clientPayment = (params) => {
|
|
@@ -59,11 +59,8 @@ var TimeBar = (props) => {
|
|
|
59
59
|
(_d = props.setIntervalTime) == null ? void 0 : _d.call(props, false);
|
|
60
60
|
});
|
|
61
61
|
const _onClickToday = (0, import_ahooks.useMemoizedFn)(() => {
|
|
62
|
-
var _a2
|
|
63
|
-
|
|
64
|
-
const newTime = currentTime["subtract"](1, "day");
|
|
65
|
-
(_c = props.onDateChange) == null ? void 0 : _c.call(props, newTime, newTime.format("YYYY-MM-DD HH:mm:ss"));
|
|
66
|
-
(_d = props.setIntervalTime) == null ? void 0 : _d.call(props, false);
|
|
62
|
+
var _a2;
|
|
63
|
+
(_a2 = props.setIntervalTime) == null ? void 0 : _a2.call(props, true);
|
|
67
64
|
});
|
|
68
65
|
const _onClickNow = (0, import_ahooks.useMemoizedFn)(() => {
|
|
69
66
|
var _a2;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* 这个文件演示了如何使用 PisellPaymentList 和 PisellPaymentListItem 组件
|
|
5
5
|
* 包括如何通过 Context 访问父组件配置
|
|
6
6
|
*/
|
|
7
|
+
/// <reference types="react" />
|
|
7
8
|
export declare const BasicExample: () => JSX.Element;
|
|
8
9
|
export declare const ChildrenExample: () => JSX.Element;
|
|
9
10
|
export declare const CustomItemExample: () => JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisell/private-materials",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.57",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"module": "./es/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"@react-spring/web": "^9.6.1",
|
|
63
63
|
"@use-gesture/react": "^10.3.1",
|
|
64
64
|
"@pisell/utils": "3.0.3",
|
|
65
|
+
"@pisell/icon": "0.0.11",
|
|
65
66
|
"@pisell/materials": "6.3.17",
|
|
66
|
-
"@pisell/date-picker": "3.0.6"
|
|
67
|
-
"@pisell/icon": "0.0.11"
|
|
67
|
+
"@pisell/date-picker": "3.0.6"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"react": "^18.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getIsPartyRoomResourceShop: (id: number) => boolean;
|