@pisell/private-materials 6.6.47 → 6.6.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +1 -1
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +1 -1
  9. package/es/components/appointmentBooking/components/Voucher/index.js +7 -22
  10. package/es/components/booking/addons/index.js +2 -3
  11. package/es/components/booking/components/footer/amount.js +6 -1
  12. package/es/components/booking/components/footer/index.js +0 -7
  13. package/es/components/booking/components/footer/utils.d.ts +1 -1
  14. package/es/components/booking/components/footer/utils.js +5 -7
  15. package/es/components/booking/components/voucher/index.js +0 -6
  16. package/es/components/booking/components/voucher/index.less +1 -4
  17. package/es/components/booking/components/voucherModal/index.less +0 -1
  18. package/es/components/booking/hooks/useClearCart.d.ts +1 -1
  19. package/es/components/booking/hooks/useClearCart.js +39 -9
  20. package/es/components/booking/info/service/index.less +4 -2
  21. package/es/components/booking/info2/cartClientCard/index.js +82 -2
  22. package/es/components/booking/info2/serve.d.ts +8 -0
  23. package/es/components/booking/info2/serve.js +52 -0
  24. package/es/components/booking/info2/service/editService/index.js +3 -9
  25. package/es/components/booking/info2/service/index.js +4 -5
  26. package/es/components/booking/locales.d.ts +20 -0
  27. package/es/components/booking/locales.js +20 -0
  28. package/es/components/checkout/components/WalletPassModule/index.js +0 -1
  29. package/es/components/checkout/components/WalletPassModule/utils.d.ts +0 -1
  30. package/es/components/checkout/components/WalletPassModule/utils.js +3 -17
  31. package/es/components/checkout/hooks/useWalletPass.d.ts +1 -1
  32. package/es/components/checkout/hooks/useWalletPass.js +192 -316
  33. package/es/components/eftposPay/hooks.d.ts +1 -1
  34. package/es/components/eftposPay/store/index.d.ts +2 -2
  35. package/es/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +0 -5
  36. package/es/components/pay/toC/PaymentMethods/WalletPass/index.js +145 -166
  37. package/es/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +0 -6
  38. package/es/components/pay/toC/PaymentMethods/WalletPass/utils.js +3 -3
  39. package/es/components/pay/toC/WalletPassBlock/index.js +1 -3
  40. package/es/components/pay/toC/index.js +27 -66
  41. package/es/components/pay/toC/model.d.ts +0 -1
  42. package/es/components/pay/toC/serve.d.ts +0 -18
  43. package/es/components/pay/toC/serve.js +1 -29
  44. package/es/components/pay/toC/utils.d.ts +2 -2
  45. package/es/components/pay/toC/utils.js +0 -4
  46. package/es/components/shoppingCart/components/Cart/index.less +1 -0
  47. package/es/components/shoppingCart/hooks/useClearCart.d.ts +1 -1
  48. package/es/components/shoppingCart/hooks/useClearCart.js +41 -11
  49. package/es/components/ticketBooking/components/addServiceVariant/addService.js +4 -7
  50. package/es/components/ticketBooking/index.js +5 -2
  51. package/es/plus/clinetSearch/index.d.ts +1 -0
  52. package/es/plus/clinetSearch/index.js +9 -3
  53. package/es/plus/clinetSearch/index.less +13 -0
  54. package/lib/components/appointmentBooking/components/Voucher/index.js +2 -10
  55. package/lib/components/booking/addons/index.js +2 -3
  56. package/lib/components/booking/components/footer/amount.js +6 -1
  57. package/lib/components/booking/components/footer/index.js +0 -9
  58. package/lib/components/booking/components/footer/utils.d.ts +1 -1
  59. package/lib/components/booking/components/footer/utils.js +3 -5
  60. package/lib/components/booking/components/voucher/index.js +0 -6
  61. package/lib/components/booking/components/voucher/index.less +1 -4
  62. package/lib/components/booking/components/voucherModal/index.less +0 -1
  63. package/lib/components/booking/hooks/useClearCart.d.ts +1 -1
  64. package/lib/components/booking/hooks/useClearCart.js +28 -6
  65. package/lib/components/booking/info/service/index.less +4 -2
  66. package/lib/components/booking/info2/cartClientCard/index.js +46 -2
  67. package/lib/components/booking/info2/serve.d.ts +8 -0
  68. package/lib/components/booking/info2/serve.js +12 -0
  69. package/lib/components/booking/info2/service/editService/index.js +19 -25
  70. package/lib/components/booking/info2/service/index.js +4 -2
  71. package/lib/components/booking/locales.d.ts +20 -0
  72. package/lib/components/booking/locales.js +20 -0
  73. package/lib/components/checkout/components/WalletPassModule/index.js +0 -1
  74. package/lib/components/checkout/components/WalletPassModule/utils.d.ts +0 -1
  75. package/lib/components/checkout/components/WalletPassModule/utils.js +2 -18
  76. package/lib/components/checkout/hooks/useWalletPass.d.ts +1 -1
  77. package/lib/components/checkout/hooks/useWalletPass.js +108 -157
  78. package/lib/components/eftposPay/hooks.d.ts +1 -1
  79. package/lib/components/eftposPay/store/index.d.ts +2 -2
  80. package/lib/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +0 -5
  81. package/lib/components/pay/toC/PaymentMethods/WalletPass/index.js +103 -90
  82. package/lib/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +0 -6
  83. package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.js +2 -2
  84. package/lib/components/pay/toC/WalletPassBlock/index.js +1 -3
  85. package/lib/components/pay/toC/index.js +11 -52
  86. package/lib/components/pay/toC/model.d.ts +0 -1
  87. package/lib/components/pay/toC/serve.d.ts +0 -18
  88. package/lib/components/pay/toC/serve.js +0 -6
  89. package/lib/components/pay/toC/utils.d.ts +2 -2
  90. package/lib/components/pay/toC/utils.js +0 -4
  91. package/lib/components/shoppingCart/components/Cart/index.less +1 -0
  92. package/lib/components/shoppingCart/hooks/useClearCart.d.ts +1 -1
  93. package/lib/components/shoppingCart/hooks/useClearCart.js +42 -11
  94. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +7 -11
  95. package/lib/components/ticketBooking/index.js +4 -2
  96. package/lib/plus/clinetSearch/index.d.ts +1 -0
  97. package/lib/plus/clinetSearch/index.js +10 -0
  98. package/lib/plus/clinetSearch/index.less +13 -0
  99. package/package.json +2 -2
  100. package/lowcode/eco-cup-list/meta.ts +0 -63
  101. package/lowcode/eco-customer-list/meta.ts +0 -63
@@ -291,6 +291,10 @@ var locales_default = {
291
291
  "pisell2.booking.info.text.clear-all": "Clear all",
292
292
  "pisell2.booking.info.text.add-holder": "Select",
293
293
  "pisell2.booking.info.text.select-holder-title": "Who would you like to book this event for?",
294
+ "pisell2.booking.info.text.clear-cart-modal.title": "Clear Cart",
295
+ "pisell2.booking.info.text.clear-cart-modal.content": "This will remove all items from the cart and cannot be undone. Continue?",
296
+ "pisell2.booking.info.text.clear-cart-modal.confirm": "Clear All",
297
+ "pisell2.booking.info.text.clear-cart-modal.cancel": "Cancel",
294
298
  "pisell2.booking.info.text.create-new": "Create new",
295
299
  "pisell2.booking.info.text.form-agreement-yes": "Yes",
296
300
  "pisell2.booking.info.text.form-agreement-no": "No",
@@ -659,6 +663,10 @@ var locales_default = {
659
663
  "pisell2.booking.info.text.clear-all": "清空",
660
664
  "pisell2.booking.info.text.add-holder": "请选择",
661
665
  "pisell2.booking.info.text.select-holder-title": "您想为谁预订这个活动?",
666
+ "pisell2.booking.info.text.clear-cart-modal.title": "清空购物车",
667
+ "pisell2.booking.info.text.clear-cart-modal.content": "此操作将移除购物车中的所有商品,且无法恢复,是否继续?",
668
+ "pisell2.booking.info.text.clear-cart-modal.confirm": "确认清空",
669
+ "pisell2.booking.info.text.clear-cart-modal.cancel": "取消",
662
670
  "pisell2.booking.info.text.create-new": "新建",
663
671
  "pisell2.booking.info.text.form-agreement-yes": "是",
664
672
  "pisell2.booking.info.text.form-agreement-no": "否",
@@ -1027,6 +1035,10 @@ var locales_default = {
1027
1035
  "pisell2.booking.info.text.clear-all": "清空",
1028
1036
  "pisell2.booking.info.text.add-holder": "请选择",
1029
1037
  "pisell2.booking.info.text.select-holder-title": "您想为谁预订这个活动?",
1038
+ "pisell2.booking.info.text.clear-cart-modal.title": "清空購物車",
1039
+ "pisell2.booking.info.text.clear-cart-modal.content": "此操作將移除購物車中的所有商品,且無法恢復,是否繼續?",
1040
+ "pisell2.booking.info.text.clear-cart-modal.confirm": "確認清空",
1041
+ "pisell2.booking.info.text.clear-cart-modal.cancel": "取消",
1030
1042
  "pisell2.booking.info.text.create-new": "新建",
1031
1043
  "pisell2.booking.info.text.form-agreement-yes": "是",
1032
1044
  "pisell2.booking.info.text.form-agreement-no": "否",
@@ -1387,6 +1399,10 @@ var locales_default = {
1387
1399
  "pisell2.booking.info.text.clear": "クリア",
1388
1400
  "pisell2.booking.info.text.clear-cart": "カートをクリア",
1389
1401
  "pisell2.booking.info.text.clear-all": "すべてクリア",
1402
+ "pisell2.booking.info.text.clear-cart-modal.title": "カートを空にする",
1403
+ "pisell2.booking.info.text.clear-cart-modal.content": "この操作によりカート内のすべての商品が削除され、元に戻せません。続行しますか?",
1404
+ "pisell2.booking.info.text.clear-cart-modal.confirm": "すべて削除",
1405
+ "pisell2.booking.info.text.clear-cart-modal.cancel": "キャンセル",
1390
1406
  "pisell2.booking.info.text.add-holder": "選択",
1391
1407
  "pisell2.booking.info.text.select-holder-title": "このイベントを誰のために予約しますか?",
1392
1408
  "pisell2.booking.info.text.create-new": "新規作成",
@@ -1729,6 +1745,10 @@ var locales_default = {
1729
1745
  "pisell2.booking.info.text.clear": "Limpar",
1730
1746
  "pisell2.booking.info.text.clear-cart": "Limpar carrinho",
1731
1747
  "pisell2.booking.info.text.clear-all": "Limpar tudo",
1748
+ "pisell2.booking.info.text.clear-cart-modal.title": "Esvaziar carrinho",
1749
+ "pisell2.booking.info.text.clear-cart-modal.content": "Esta ação irá remover todos os itens do carrinho e não pode ser desfeita. Deseja continuar?",
1750
+ "pisell2.booking.info.text.clear-cart-modal.confirm": "Esvaziar tudo",
1751
+ "pisell2.booking.info.text.clear-cart-modal.cancel": "Cancelar",
1732
1752
  "pisell2.booking.info.text.add-holder": "Selecionar",
1733
1753
  "pisell2.booking.info.text.select-holder-title": "Para quem você gostaria de reservar este evento?",
1734
1754
  "pisell2.booking.info.text.create-new": "Criar novo",
@@ -68,7 +68,6 @@ var WalletPassModule = (0, import_react.forwardRef)(
68
68
  } = (0, import_useWalletPass.useWalletPass)({
69
69
  onSelectChange,
70
70
  customAmount,
71
- totalAmount: Number(orderInfo == null ? void 0 : orderInfo.totalAmount) || 0,
72
71
  clientId
73
72
  });
74
73
  const [expiredModalVisible, setExpiredModalVisible] = (0, import_react.useState)(false);
@@ -1,7 +1,6 @@
1
1
  declare type WalletPassDataType = Record<string, any>;
2
2
  export declare const getAvailableMaxAmount: (data: WalletPassDataType) => any;
3
3
  export declare const voucherTime: (data: WalletPassDataType, key?: string) => any;
4
- export declare const getVoucherAvailableStatus: (item: any) => boolean;
5
4
  export declare const formatMachineCodeServer2CardList: (data: WalletPassDataType[], selectId?: number[], otherProps?: Record<string, any>) => any;
6
5
  export declare const formatDiscountWalletData: (data: any, selectId?: number[]) => any;
7
6
  export interface WalletPassUsageUnit {
@@ -33,7 +33,6 @@ __export(utils_exports, {
33
33
  formatMachineCodeServer2CardList: () => formatMachineCodeServer2CardList,
34
34
  getAvailableMaxAmount: () => getAvailableMaxAmount,
35
35
  getPointCardAmount: () => getPointCardAmount,
36
- getVoucherAvailableStatus: () => getVoucherAvailableStatus,
37
36
  isSameContent: () => isSameContent,
38
37
  voucherTime: () => voucherTime
39
38
  });
@@ -44,9 +43,6 @@ var import_materials = require("@pisell/materials");
44
43
  var import_decimal = __toESM(require("decimal.js"));
45
44
  var Amount = import_materials.PisellText.Amount;
46
45
  var getAvailableMaxAmount = (data) => {
47
- if ((0, import_utils.isNumber)(data._available_max_amount)) {
48
- return data._available_max_amount;
49
- }
50
46
  return data.tag !== "point_card" ? data.available_max_amount : data == null ? void 0 : data.recommended_usage_amount;
51
47
  };
52
48
  var voucherTime = (data, key = "expire_date") => {
@@ -59,20 +55,9 @@ var voucherTime = (data, key = "expire_date") => {
59
55
  }
60
56
  return import_utils.locales.getText("pisell2.text.walletPassPermanent");
61
57
  };
62
- var getVoucherAvailableStatus = (item) => {
63
- return item.unified_available_status === 1 && ((0, import_utils.isNumber)(item._unified_available_status) ? !!item._unified_available_status : true);
64
- };
65
58
  var formatMachineCodeServer2CardList = (data, selectId = [], otherProps = {}) => {
66
59
  return (data || []).map((item) => {
67
60
  var _a, _b;
68
- let disabled = false;
69
- if (item.unified_available_status === 0) {
70
- disabled = true;
71
- } else {
72
- if ((0, import_utils.isNumber)(item._unified_available_status)) {
73
- disabled = !item._unified_available_status;
74
- }
75
- }
76
61
  return {
77
62
  id: item.id,
78
63
  name: item.product_name,
@@ -89,8 +74,8 @@ var formatMachineCodeServer2CardList = (data, selectId = [], otherProps = {}) =>
89
74
  showQrCode: false,
90
75
  showStatus: true,
91
76
  code: item.code,
92
- disabled,
93
- disabledReason: (0, import_utils.isNumber)(item._unified_available_status) && item._unified_available_status !== 1 ? item.reason : (_a = item.unified_messages) == null ? void 0 : _a.title,
77
+ disabled: !item.unified_available_status,
78
+ disabledReason: (_a = item.unified_messages) == null ? void 0 : _a.title,
94
79
  cover: (_b = item.product) == null ? void 0 : _b.cover,
95
80
  qrCode: item.code,
96
81
  validDate: voucherTime(item),
@@ -168,7 +153,6 @@ var isSameContent = (arr1, arr2) => {
168
153
  formatMachineCodeServer2CardList,
169
154
  getAvailableMaxAmount,
170
155
  getPointCardAmount,
171
- getVoucherAvailableStatus,
172
156
  isSameContent,
173
157
  voucherTime
174
158
  });
@@ -9,7 +9,6 @@ export declare const useWalletPass: (props: {
9
9
  }[]) => void) | undefined;
10
10
  customAmount?: string | undefined;
11
11
  clientId?: number | undefined;
12
- totalAmount?: number | undefined;
13
12
  }) => {
14
13
  walletRecommendList: any[];
15
14
  userIdentificationCodes: any[];
@@ -30,6 +29,7 @@ export declare const useWalletPass: (props: {
30
29
  selectedDiscountList: any;
31
30
  handleSelectDiscount: (this: unknown, value: number[], option: any) => void;
32
31
  customerName: any;
32
+ fetchWalletRecommendList: (this: unknown, params: any) => Promise<any>;
33
33
  fetchUserIdentificationCodes: (this: unknown, params: any) => Promise<any>;
34
34
  getCachedWalletRecommendList: (this: unknown) => any;
35
35
  getCachedUserIdentificationCodes: (this: unknown) => any;
@@ -44,27 +44,24 @@ var import_utils3 = require("../../booking/utils");
44
44
  var import_pisellos = require("../../ticketBooking/hooks/pisellos");
45
45
  var import_useShopDiscountModule = require("../../ticketBooking/hooks/pisellos/useShopDiscountModule");
46
46
  var useWalletPass = (props) => {
47
- const { onSelectChange, customAmount, clientId, totalAmount } = props;
47
+ const { onSelectChange, customAmount, clientId } = props;
48
48
  const logger = (0, import_usePaymentLogger.default)();
49
49
  const { executeIfActive } = (0, import_pisellos.useActiveExecute)();
50
50
  const [walletRecommendList, setWalletRecommendList] = (0, import_react.useState)([]);
51
51
  const [userIdentificationCodes, setUserIdentificationCodes] = (0, import_react.useState)(
52
52
  []
53
53
  );
54
- const [transformList, setTransformList] = (0, import_react.useState)([]);
55
- const [noApplicableVoucher, setNoApplicableVoucher] = (0, import_react.useState)([]);
56
54
  const initialOrderedDataRef = (0, import_react.useRef)([]);
57
55
  const initialDiscountOrderRef = (0, import_react.useRef)([]);
58
56
  const confirmedEditAmountIdsRef = (0, import_react.useRef)([]);
57
+ const timeoutRef = (0, import_react.useRef)(null);
59
58
  const [searchIdentificationCodeList, setSearchIdentificationCodeList] = (0, import_react.useState)([]);
60
59
  const [orderInfo, setOrderInfo] = (0, import_react.useState)({});
61
60
  const [selectedWallet, setSelectedWallet] = (0, import_react.useState)([]);
62
61
  const selectedWalletRef = (0, import_react.useRef)([]);
63
- const [selectedVoucherIds, setSelectedVoucherIds] = (0, import_react.useState)([]);
64
62
  const [disabledWalletData, setDisabledWalletData] = (0, import_react.useState)([]);
65
63
  const notSetWalletSelectRef = (0, import_react.useRef)(false);
66
64
  const showBestToastRef = (0, import_react.useRef)(false);
67
- const [products, setProducts] = (0, import_react.useState)([]);
68
65
  const selectedWalletIds = (0, import_react.useMemo)(() => {
69
66
  return selectedWallet.map((item) => item.id);
70
67
  }, [selectedWallet]);
@@ -76,10 +73,6 @@ var useWalletPass = (props) => {
76
73
  const checkoutModule = pisellos.getModule("checkout");
77
74
  const shopDiscount = (0, import_useShopDiscountModule.useShopDiscountModule)();
78
75
  const paymentModule = checkoutModule == null ? void 0 : checkoutModule.payment;
79
- const walletPassEvaluator = (0, import_react.useMemo)(() => {
80
- var _a, _b;
81
- return (_b = (_a = paymentModule == null ? void 0 : paymentModule.window) == null ? void 0 : _a.getWalletPassEvaluator) == null ? void 0 : _b.call(_a);
82
- }, []);
83
76
  const setWalletSelect = (0, import_ahooks.useMemoizedFn)((data2) => {
84
77
  setSelectedWallet(data2);
85
78
  selectedWalletRef.current = data2;
@@ -170,61 +163,34 @@ var useWalletPass = (props) => {
170
163
  return orderedResult;
171
164
  }
172
165
  );
173
- const allVouchersForCalculation = (0, import_react.useMemo)(() => {
174
- return [...transformList || [], ...searchIdentificationCodeList || []];
175
- }, [transformList, searchIdentificationCodeList]);
176
- const selectedVouchers = (0, import_react.useMemo)(() => {
177
- return selectedVoucherIds.map((id) => allVouchersForCalculation.find((v) => v.id === id)).filter(Boolean);
178
- }, [selectedVoucherIds, allVouchersForCalculation]);
179
- const { displayVouchers, displayOtherVouchers, selectedWithDetails, totalDeduction } = (0, import_react.useMemo)(() => {
180
- if (!walletPassEvaluator || !allVouchersForCalculation.length || !totalAmount) {
181
- return {
182
- displayVouchers: [...transformList || [], ...noApplicableVoucher || []],
183
- displayOtherVouchers: searchIdentificationCodeList || [],
184
- selectedWithDetails: [],
185
- totalDeduction: 0
186
- };
187
- }
188
- const result = walletPassEvaluator.recalculateVouchers(
189
- allVouchersForCalculation,
190
- selectedVouchers,
191
- totalAmount,
192
- products || []
193
- );
194
- const currentCustomerVouchers = [];
195
- const otherCustomerVouchers = [];
196
- result.allWithUpdatedStatus.forEach((voucher) => {
197
- const isSearchVoucher = searchIdentificationCodeList.some((item) => item.id === voucher.id);
198
- if (isSearchVoucher) {
199
- otherCustomerVouchers.push(voucher);
200
- } else {
201
- currentCustomerVouchers.push(voucher);
202
- }
203
- });
204
- return {
205
- displayVouchers: [...currentCustomerVouchers, ...noApplicableVoucher || []],
206
- displayOtherVouchers: otherCustomerVouchers,
207
- selectedWithDetails: result.selectedWithDetails,
208
- totalDeduction: result.selectedWithDetails.reduce((sum, v) => sum + (v.actualDeduction || 0), 0)
209
- };
210
- }, [selectedVouchers, allVouchersForCalculation, transformList, searchIdentificationCodeList, noApplicableVoucher, totalAmount, products]);
211
- (0, import_ahooks.useUpdateEffect)(() => {
212
- notifySelectChange(selectedWithDetails);
213
- setLoading(false);
214
- }, [selectedWithDetails]);
215
166
  const data = (0, import_react.useMemo)(() => {
216
167
  return (0, import_utils2.formatMachineCodeServer2CardList)(
217
168
  (0, import_utils.uniqueByKey)(
218
169
  mergeDataWithInitialOrder([
219
170
  ...selectedWallet,
220
- ...displayVouchers,
221
- ...displayOtherVouchers
171
+ ...userIdentificationCodes
222
172
  ]),
223
173
  "id"
224
174
  ),
225
- selectedVoucherIds
175
+ selectedWalletIds
226
176
  );
227
- }, [displayVouchers, displayOtherVouchers, selectedVoucherIds, selectedWallet]);
177
+ }, [userIdentificationCodes, selectedWalletIds, selectedWallet]);
178
+ const fetchWalletRecommendList = (0, import_ahooks.useMemoizedFn)(async (params) => {
179
+ setLoading(true);
180
+ setError(null);
181
+ try {
182
+ const result = await paymentModule.wallet.getWalletPassRecommendListAsync(
183
+ params
184
+ );
185
+ setWalletRecommendList(result);
186
+ return result;
187
+ } catch (err) {
188
+ setError(err instanceof Error ? err.message : "获取钱包推荐列表失败");
189
+ throw err;
190
+ } finally {
191
+ setLoading(false);
192
+ }
193
+ });
228
194
  const fetchUserIdentificationCodes = (0, import_ahooks.useMemoizedFn)(async (params) => {
229
195
  setLoading(true);
230
196
  setError(null);
@@ -267,69 +233,37 @@ var useWalletPass = (props) => {
267
233
  });
268
234
  const handleSearchIdentificationCodeCompleted = (0, import_ahooks.useMemoizedFn)((data2) => {
269
235
  const { currentSearchResults, cachedSearchResults } = data2;
270
- let formattedResults = currentSearchResults;
271
- if (walletPassEvaluator && currentSearchResults.length > 0 && totalAmount) {
272
- formattedResults = walletPassEvaluator.searchVoucherFormat({
273
- vouchers: currentSearchResults,
274
- orderTotalAmount: totalAmount,
275
- products: products || []
276
- });
277
- }
278
- let formattedCachedResults = cachedSearchResults || [];
279
- if (walletPassEvaluator && cachedSearchResults && cachedSearchResults.length > 0 && totalAmount) {
280
- formattedCachedResults = walletPassEvaluator.searchVoucherFormat({
281
- vouchers: cachedSearchResults,
282
- orderTotalAmount: totalAmount,
283
- products: products || []
284
- });
285
- }
286
- const mergedSearchResults = (0, import_utils.uniqueByKey)(
287
- [...formattedCachedResults || [], ...formattedResults],
288
- "id"
289
- );
290
236
  let isAvailableData = [];
291
237
  let isDisabledData = [];
292
- if (formattedResults.length > 0) {
293
- formattedResults.forEach((item) => {
294
- if ((0, import_utils2.getVoucherAvailableStatus)(item)) {
238
+ if (currentSearchResults.length > 0) {
239
+ currentSearchResults.forEach((item) => {
240
+ if (!!item.unified_available_status) {
295
241
  isAvailableData.push(item);
296
242
  } else {
297
243
  isDisabledData.push(item);
298
244
  }
299
245
  });
300
246
  }
301
- const availableData = mergedSearchResults.filter((item) => (0, import_utils2.getVoucherAvailableStatus)(item));
302
- const allDisabledData = mergedSearchResults.filter((item) => !(0, import_utils2.getVoucherAvailableStatus)(item));
303
- setDisabledWalletData(allDisabledData);
247
+ setDisabledWalletData(isDisabledData);
304
248
  let newValues = [...selectedWalletRef.current];
305
249
  if (isAvailableData.length === 1) {
306
250
  newValues = [...selectedWalletRef.current, ...isAvailableData];
307
251
  }
308
- setSearchIdentificationCodeList(availableData);
309
- setNoApplicableVoucher(allDisabledData);
252
+ setSearchIdentificationCodeList(cachedSearchResults);
310
253
  setWalletSelect(newValues);
311
- setSelectedVoucherIds(newValues.map((item) => item.id));
254
+ handleFetchUserIdentificationCodes(newValues.map((item) => item.id));
312
255
  });
313
256
  const onOrderCreated = (0, import_ahooks.useMemoizedFn)(() => {
314
- var _a, _b;
315
257
  const orderInfo2 = checkoutModule.getOrderOriginalData();
316
258
  setOrderInfo(orderInfo2);
317
259
  const recommendList = getCachedWalletRecommendList();
318
260
  const userIdentificationCodes2 = getCachedUserIdentificationCodes();
319
- const walletInitData = ((_b = (_a = paymentModule == null ? void 0 : paymentModule.wallet) == null ? void 0 : _a.getStoredWalletInitData) == null ? void 0 : _b.call(_a)) || {};
320
- const transformListData = walletInitData.transformList || userIdentificationCodes2;
321
- const noApplicableVoucherData = walletInitData.noApplicableVoucher || [];
322
- const productsData = walletInitData.products || [];
323
261
  const initialData = [...recommendList, ...userIdentificationCodes2];
324
262
  setWalletRecommendList(recommendList);
325
- setUserIdentificationCodes(userIdentificationCodes2);
326
- setTransformList(transformListData);
327
- setNoApplicableVoucher(noApplicableVoucherData);
328
- setProducts(productsData);
263
+ setUserIdentificationCodes(initialData);
329
264
  initialOrderedDataRef.current = initialData;
330
265
  if (!notSetWalletSelectRef.current) {
331
266
  setWalletSelect(recommendList);
332
- setSelectedVoucherIds(recommendList.map((item) => item.id));
333
267
  const select = paymentModule.wallet.formatWalletPassList2PreparePayments(recommendList).map((item) => ({
334
268
  code: item.tag,
335
269
  voucher_id: item.voucher_id,
@@ -345,7 +279,6 @@ var useWalletPass = (props) => {
345
279
  onSelectChange == null ? void 0 : onSelectChange(select);
346
280
  } else {
347
281
  setWalletSelect([]);
348
- setSelectedVoucherIds([]);
349
282
  notSetWalletSelectRef.current = false;
350
283
  onSelectChange == null ? void 0 : onSelectChange([]);
351
284
  }
@@ -383,7 +316,7 @@ var useWalletPass = (props) => {
383
316
  });
384
317
  const handlePaymentStarted = (0, import_ahooks.useMemoizedFn)(
385
318
  async (params) => {
386
- if (params.paymentMethodCode !== "VOUCHER_BATCH" && Number(customAmount || 0) > 0) {
319
+ if (params.paymentMethodCode !== "VOUCHER_BATCH") {
387
320
  notSetWalletSelectRef.current = true;
388
321
  await checkoutModule.initWalletData({
389
322
  order_wait_pay_amount: Number(customAmount)
@@ -465,6 +398,14 @@ var useWalletPass = (props) => {
465
398
  );
466
399
  };
467
400
  }, [paymentModule]);
401
+ (0, import_react.useEffect)(() => {
402
+ return () => {
403
+ if (timeoutRef.current) {
404
+ clearTimeout(timeoutRef.current);
405
+ timeoutRef.current = null;
406
+ }
407
+ };
408
+ }, []);
468
409
  const allList = (0, import_react.useMemo)(() => {
469
410
  const reversedSearchData = [...searchIdentificationCodeList].reverse();
470
411
  return [
@@ -484,22 +425,33 @@ var useWalletPass = (props) => {
484
425
  )
485
426
  ).map((item) => item.code);
486
427
  });
487
- const notifySelectChange = (0, import_ahooks.useMemoizedFn)((selectedDetails) => {
488
- const prepare_payments = paymentModule.wallet.formatWalletPassList2PreparePayments(selectedDetails);
489
- const select = prepare_payments.map((item) => ({
490
- voucher_id: item.voucher_id,
491
- amount: item.amount,
492
- code: item.tag,
493
- wallet_pass_usage_unit: item.wallet_pass_usage_unit,
494
- wallet_pass_use_value: item.wallet_pass_use_value
495
- }));
496
- logger == null ? void 0 : logger.addLog({
497
- type: "info",
498
- title: "useWalletPass_notifySelectChange 通知外部选择变化",
499
- metadata: { selectedDetails, select }
500
- });
501
- onSelectChange == null ? void 0 : onSelectChange(select);
502
- });
428
+ const handleFetchUserIdentificationCodes = (0, import_ahooks.useMemoizedFn)(
429
+ (value, walletRecommendList2) => {
430
+ const val = (0, import_utils.uniqueByKey)(walletRecommendList2 || allList, "id").filter(
431
+ (item) => value.includes(item.id)
432
+ );
433
+ const prepare_payments = paymentModule.wallet.formatWalletPassList2PreparePayments(val);
434
+ const select = prepare_payments.map((item) => ({
435
+ voucher_id: item.voucher_id,
436
+ amount: item.amount,
437
+ code: item.tag,
438
+ wallet_pass_usage_unit: item.wallet_pass_usage_unit,
439
+ wallet_pass_use_value: item.wallet_pass_use_value
440
+ }));
441
+ logger == null ? void 0 : logger.addLog({
442
+ type: "info",
443
+ title: "useWalletPass_handleFetchUserIdentificationCodes onSelectChange 开始调用",
444
+ metadata: {}
445
+ });
446
+ onSelectChange == null ? void 0 : onSelectChange(select);
447
+ fetchUserIdentificationCodes({
448
+ prepare_payments,
449
+ available: 2,
450
+ filter_prepare_wallet_pass: 1,
451
+ other_exact_codes: getOtherExactCodes()
452
+ });
453
+ }
454
+ );
503
455
  const handleSearchIdentificationCode = (0, import_ahooks.useMemoizedFn)((value) => {
504
456
  return paymentModule.wallet.searchIdentificationCodeAsync({
505
457
  code: value,
@@ -509,27 +461,11 @@ var useWalletPass = (props) => {
509
461
  });
510
462
  });
511
463
  const handleSelectWallet = (0, import_ahooks.useMemoizedFn)((value) => {
512
- setLoading(true);
513
- const deselectedIds = selectedVoucherIds.filter(
514
- (id) => !value.includes(id)
515
- );
516
- if (deselectedIds.length > 0) {
517
- const needResetIds = deselectedIds.filter((id) => {
518
- const voucher = allVouchersForCalculation.find((v) => v.id === id);
519
- return (voucher == null ? void 0 : voucher.edit_current_amount) !== void 0;
520
- });
521
- if (needResetIds.length > 0) {
522
- updateWalletDataById(needResetIds, { edit_current_amount: void 0 });
523
- confirmedEditAmountIdsRef.current = confirmedEditAmountIdsRef.current.filter(
524
- (id) => !needResetIds.includes(id)
525
- );
526
- }
527
- }
528
- setSelectedVoucherIds(value);
529
- const val = allVouchersForCalculation.filter(
464
+ const val = userIdentificationCodes.filter(
530
465
  (item) => value.includes(item.id)
531
466
  );
532
467
  setWalletSelect(val);
468
+ handleFetchUserIdentificationCodes(value);
533
469
  });
534
470
  const expiredWalletIds = (0, import_react.useMemo)(() => {
535
471
  return (0, import_utils.uniqueByKey)(allList, "id").filter(
@@ -547,12 +483,12 @@ var useWalletPass = (props) => {
547
483
  }, [allList]);
548
484
  const clearAllSelectedWallet = (0, import_ahooks.useMemoizedFn)(() => {
549
485
  var _a;
550
- if (confirmedEditAmountIdsRef.current.length > 0) {
551
- updateWalletDataById(confirmedEditAmountIdsRef.current, {
552
- edit_current_amount: void 0
553
- });
554
- confirmedEditAmountIdsRef.current = [];
555
- }
486
+ logger == null ? void 0 : logger.addLog({
487
+ type: "info",
488
+ title: "useWalletPass_clearAllSelectedWallet onSelectChange 开始调用",
489
+ metadata: {}
490
+ });
491
+ onSelectChange == null ? void 0 : onSelectChange([]);
556
492
  if (selectedWalletIds.length === 0 && selectedDiscountList.length === 0) {
557
493
  return;
558
494
  }
@@ -576,14 +512,7 @@ var useWalletPass = (props) => {
576
512
  return;
577
513
  }
578
514
  setWalletSelect([]);
579
- setSelectedVoucherIds([]);
580
- logger == null ? void 0 : logger.addLog({
581
- type: "info",
582
- title: "useWalletPass_clearAllSelectedWallet 立即通知外部清空",
583
- metadata: {}
584
- });
585
- onSelectChange == null ? void 0 : onSelectChange([]);
586
- setLoading(false);
515
+ handleFetchUserIdentificationCodes([]);
587
516
  });
588
517
  const isCurrentSelectionBest = (0, import_ahooks.useMemoizedFn)(() => {
589
518
  if (walletRecommendList.length === 0) return true;
@@ -630,9 +559,12 @@ var useWalletPass = (props) => {
630
559
  import_utils.locales.getText("wallet-pass-module-already-best-combination")
631
560
  );
632
561
  } else {
633
- const select = searchIdentificationCodeList.filter((item) => (0, import_utils2.getVoucherAvailableStatus)(item));
562
+ const select = searchIdentificationCodeList.filter((item) => item.unified_available_status);
634
563
  setWalletSelect(select);
635
- setSelectedVoucherIds(select.map((item) => item.id));
564
+ handleFetchUserIdentificationCodes(
565
+ select.map((item) => item.id),
566
+ select
567
+ );
636
568
  if (select.length) {
637
569
  Toast == null ? void 0 : Toast.success(
638
570
  import_utils.locales.getText("wallet-pass-module-best-combination-selected")
@@ -661,12 +593,14 @@ var useWalletPass = (props) => {
661
593
  } else {
662
594
  if (hasGoodPass && !isBestDiscount) return;
663
595
  setWalletSelect(newWalletRecommendList);
664
- setSelectedVoucherIds(newWalletRecommendList.map((item) => item.id));
596
+ handleFetchUserIdentificationCodes(
597
+ newWalletRecommendList.map((item) => item.id),
598
+ newWalletRecommendList
599
+ );
665
600
  Toast == null ? void 0 : Toast.success(
666
601
  import_utils.locales.getText("wallet-pass-module-best-combination-selected")
667
602
  );
668
603
  }
669
- setLoading(false);
670
604
  });
671
605
  const handleSelectDiscount = (0, import_ahooks.useMemoizedFn)((value, option) => {
672
606
  var _a, _b, _c;
@@ -713,12 +647,6 @@ var useWalletPass = (props) => {
713
647
  updateData
714
648
  );
715
649
  setUserIdentificationCodes(newUserIdentificationCodes);
716
- const newTransformList = updateArrayItemById(
717
- transformList,
718
- targetId,
719
- updateData
720
- );
721
- setTransformList(newTransformList);
722
650
  const newSearchIdentificationCodeList = updateArrayItemById(
723
651
  searchIdentificationCodeList,
724
652
  targetId,
@@ -734,7 +662,6 @@ var useWalletPass = (props) => {
734
662
  return {
735
663
  newWalletRecommendList,
736
664
  newUserIdentificationCodes,
737
- newTransformList,
738
665
  newSearchIdentificationCodeList,
739
666
  newSelectedWallet
740
667
  };
@@ -743,21 +670,44 @@ var useWalletPass = (props) => {
743
670
  const handleConfirmEditAmount = (0, import_ahooks.useMemoizedFn)(
744
671
  (value, id, data2) => {
745
672
  if (value === 0) {
746
- const filteredIds = selectedVoucherIds.filter(
673
+ const filteredIds = selectedWalletIds.filter(
747
674
  (walletId) => walletId !== data2.id
748
675
  );
749
676
  handleSelectWallet(filteredIds);
750
677
  return;
751
678
  }
752
- setLoading(true);
753
679
  if (!confirmedEditAmountIdsRef.current.includes(data2.id)) {
754
680
  confirmedEditAmountIdsRef.current.push(data2.id);
755
681
  }
756
682
  updateWalletDataById(data2.id, { edit_current_amount: value });
683
+ if (timeoutRef.current) {
684
+ clearTimeout(timeoutRef.current);
685
+ }
686
+ timeoutRef.current = setTimeout(() => {
687
+ handleFetchUserIdentificationCodes(selectedWalletIds);
688
+ timeoutRef.current = null;
689
+ });
757
690
  }
758
691
  );
759
692
  const handleBeforeEditAmount = (0, import_ahooks.useMemoizedFn)(
760
693
  async (value, index, data2) => {
694
+ const result = await paymentModule.wallet.searchIdentificationCodeAsync(
695
+ {
696
+ code: data2.code,
697
+ prepare_payments: paymentModule.wallet.formatWalletPassList2PreparePayments(
698
+ selectedWalletRef.current.filter(
699
+ (item) => item.id !== data2.id
700
+ )
701
+ )
702
+ },
703
+ { noCache: true }
704
+ );
705
+ if (result.data && result.data.length > 0) {
706
+ const resultItem = result.data.find((item) => item.id === data2.id);
707
+ if (resultItem) {
708
+ updateWalletDataById(data2.id, resultItem);
709
+ }
710
+ }
761
711
  return true;
762
712
  }
763
713
  );
@@ -782,6 +732,7 @@ var useWalletPass = (props) => {
782
732
  selectedDiscountList,
783
733
  handleSelectDiscount,
784
734
  customerName,
735
+ fetchWalletRecommendList,
785
736
  fetchUserIdentificationCodes,
786
737
  getCachedWalletRecommendList,
787
738
  getCachedUserIdentificationCodes,
@@ -19,7 +19,7 @@ export declare const useStoreRef: <T extends {
19
19
  readonly netRef: React.MutableRefObject<boolean | undefined>;
20
20
  readonly symbolRef: React.MutableRefObject<string>;
21
21
  readonly amountRef: React.MutableRefObject<string | number>;
22
- readonly eftposRef: React.MutableRefObject<"stripe" | "payo" | "tyro" | "windcave" | "linkly" | "huifu">;
22
+ readonly eftposRef: React.MutableRefObject<"stripe" | "tyro" | "windcave" | "payo" | "linkly" | "huifu">;
23
23
  readonly clientRef: React.MutableRefObject<ClientEnum>;
24
24
  readonly dataRef: React.MutableRefObject<import("./store").State>;
25
25
  };
@@ -301,8 +301,8 @@ export declare const backUpFree: (payload: Partial<State>) => {
301
301
  amount?: string | number | undefined;
302
302
  mode?: "pay" | "refund" | "fullPay" | "query" | undefined;
303
303
  order_id?: string | number | undefined;
304
- eftpos?: "stripe" | "payo" | "tyro" | "windcave" | "linkly" | "huifu" | undefined;
305
- action?: "pay" | "amount" | "deviceList" | undefined;
304
+ eftpos?: "stripe" | "tyro" | "windcave" | "payo" | "linkly" | "huifu" | undefined;
305
+ action?: "amount" | "pay" | "deviceList" | undefined;
306
306
  key?: number | undefined;
307
307
  step?: number | undefined;
308
308
  title?: string | undefined;
@@ -15,16 +15,11 @@ export interface WalletPassProps {
15
15
  walletPass: {
16
16
  cards: WalletPassDataType[];
17
17
  amount: number;
18
- recommended?: WalletPassDataType[];
19
- transformList?: WalletPassDataType[];
20
- noApplicableVoucher?: WalletPassDataType[];
21
18
  };
22
19
  walletSetting: {
23
20
  name: string;
24
21
  popup_status: 0 | 1;
25
22
  };
26
- orderDetail: any;
27
- total_amount: number;
28
23
  }
29
24
  declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<WalletPassProps & React.RefAttributes<WalletPassRef>>>;
30
25
  export default _default;