@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.
Files changed (133) 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.js +1 -1
  6. package/build/lowcode/view.js +1 -1
  7. package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  8. package/es/components/booking/forms/table/index.d.ts +1 -0
  9. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  10. package/es/components/booking/info/service/like/index.d.ts +1 -0
  11. package/es/components/eftpos/deviceList/index.d.ts +1 -0
  12. package/es/components/eftpos/group/index.d.ts +1 -0
  13. package/es/components/eftpos/icon/apiKey.d.ts +1 -0
  14. package/es/components/eftpos/icon/device.d.ts +1 -0
  15. package/es/components/eftpos/receipt/index.d.ts +1 -0
  16. package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
  17. package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
  18. package/es/components/eftposPay/component/step/step.d.ts +1 -0
  19. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  20. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  21. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  22. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  23. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  24. package/es/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +5 -0
  25. package/es/components/pay/toC/PaymentMethods/WalletPass/index.js +165 -145
  26. package/es/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
  27. package/es/components/pay/toC/PaymentMethods/WalletPass/utils.js +3 -3
  28. package/es/components/pay/toC/WalletPassBlock/index.js +3 -1
  29. package/es/components/pay/toC/index.js +65 -31
  30. package/es/components/pay/toC/model.d.ts +1 -0
  31. package/es/components/pay/toC/serve.d.ts +18 -0
  32. package/es/components/pay/toC/serve.js +29 -1
  33. package/es/components/pay/toC/utils.d.ts +2 -2
  34. package/es/components/pay/toC/utils.js +4 -0
  35. package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
  36. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  37. package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  38. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  39. package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
  40. package/es/components/ticketBooking/components/timeBar/index.js +9 -12
  41. package/es/plus/clientName/index.d.ts +1 -0
  42. package/es/pro/pisellPaymentList/example.d.ts +1 -0
  43. package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  44. package/lib/components/booking/forms/table/index.d.ts +1 -0
  45. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  46. package/lib/components/booking/info/service/like/index.d.ts +1 -0
  47. package/lib/components/eftpos/deviceList/index.d.ts +1 -0
  48. package/lib/components/eftpos/group/index.d.ts +1 -0
  49. package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
  50. package/lib/components/eftpos/icon/device.d.ts +1 -0
  51. package/lib/components/eftpos/receipt/index.d.ts +1 -0
  52. package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
  53. package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
  54. package/lib/components/eftposPay/component/step/step.d.ts +1 -0
  55. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  56. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  57. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  58. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  59. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  60. package/lib/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +5 -0
  61. package/lib/components/pay/toC/PaymentMethods/WalletPass/index.js +90 -103
  62. package/lib/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
  63. package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.js +2 -2
  64. package/lib/components/pay/toC/WalletPassBlock/index.js +3 -1
  65. package/lib/components/pay/toC/index.js +52 -19
  66. package/lib/components/pay/toC/model.d.ts +1 -0
  67. package/lib/components/pay/toC/serve.d.ts +18 -0
  68. package/lib/components/pay/toC/serve.js +6 -0
  69. package/lib/components/pay/toC/utils.d.ts +2 -2
  70. package/lib/components/pay/toC/utils.js +4 -0
  71. package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
  72. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  73. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  74. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  75. package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
  76. package/lib/components/ticketBooking/components/timeBar/index.js +2 -5
  77. package/lib/plus/clientName/index.d.ts +1 -0
  78. package/lib/pro/pisellPaymentList/example.d.ts +1 -0
  79. package/package.json +3 -3
  80. package/es/components/booking/info/service/editService/constants.d.ts +0 -1
  81. package/es/components/pay/toC/locales.d.ts +0 -301
  82. package/es/components/pay/toC/status.d.ts +0 -13
  83. package/es/components/systemSettings/registry/locales.d.ts +0 -272
  84. package/es/components/systemSettings/registry/services.d.ts +0 -77
  85. package/es/components/systemSettings/registry/types.d.ts +0 -126
  86. package/es/components/systemSettings/registry/utils/typeValidation.d.ts +0 -16
  87. package/es/components/systemSettings/registry/utils/validators.d.ts +0 -8
  88. package/es/components/wallet/utils.d.ts +0 -48
  89. package/es/components/walletList/locales.d.ts +0 -27
  90. package/es/components/walletList/types/index.d.ts +0 -194
  91. package/es/plus/selectHolder/types.d.ts +0 -104
  92. package/es/plus/selectHolder/utils.d.ts +0 -9
  93. package/es/plus/walletEditor/components/JsonEditor/index.d.ts +0 -11
  94. package/es/plus/walletEditor/locales.d.ts +0 -135
  95. package/es/plus/walletEditor/types.d.ts +0 -52
  96. package/es/plus/walletPassGallery/locales.d.ts +0 -285
  97. package/es/plus/walletPassGallery/utils.d.ts +0 -48
  98. package/es/pro/Login2.0/hooks/index.d.ts +0 -2
  99. package/es/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +0 -24
  100. package/es/pro/Login2.0/hooks/useRegisterFlow.d.ts +0 -39
  101. package/es/pro/Login2.0/hooks/useRegistrationMethods.d.ts +0 -9
  102. package/es/pro/Login2.0/locales.d.ts +0 -543
  103. package/es/pro/Login2.0/shared/Header.d.ts +0 -11
  104. package/es/pro/Login2.0/shared/registerFlow.d.ts +0 -116
  105. package/es/pro/Login2.0/shared/types.d.ts +0 -232
  106. package/es/pro/Login2.0/types.d.ts +0 -167
  107. package/lib/components/booking/info/service/editService/constants.d.ts +0 -1
  108. package/lib/components/pay/toC/locales.d.ts +0 -301
  109. package/lib/components/pay/toC/status.d.ts +0 -13
  110. package/lib/components/systemSettings/registry/locales.d.ts +0 -272
  111. package/lib/components/systemSettings/registry/services.d.ts +0 -77
  112. package/lib/components/systemSettings/registry/types.d.ts +0 -126
  113. package/lib/components/systemSettings/registry/utils/typeValidation.d.ts +0 -16
  114. package/lib/components/systemSettings/registry/utils/validators.d.ts +0 -8
  115. package/lib/components/wallet/utils.d.ts +0 -48
  116. package/lib/components/walletList/locales.d.ts +0 -27
  117. package/lib/components/walletList/types/index.d.ts +0 -194
  118. package/lib/plus/selectHolder/types.d.ts +0 -104
  119. package/lib/plus/selectHolder/utils.d.ts +0 -9
  120. package/lib/plus/walletEditor/components/JsonEditor/index.d.ts +0 -11
  121. package/lib/plus/walletEditor/locales.d.ts +0 -135
  122. package/lib/plus/walletEditor/types.d.ts +0 -52
  123. package/lib/plus/walletPassGallery/locales.d.ts +0 -285
  124. package/lib/plus/walletPassGallery/utils.d.ts +0 -48
  125. package/lib/pro/Login2.0/hooks/index.d.ts +0 -2
  126. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +0 -24
  127. package/lib/pro/Login2.0/hooks/useRegisterFlow.d.ts +0 -39
  128. package/lib/pro/Login2.0/hooks/useRegistrationMethods.d.ts +0 -9
  129. package/lib/pro/Login2.0/locales.d.ts +0 -543
  130. package/lib/pro/Login2.0/shared/Header.d.ts +0 -11
  131. package/lib/pro/Login2.0/shared/registerFlow.d.ts +0 -116
  132. package/lib/pro/Login2.0/shared/types.d.ts +0 -232
  133. 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 isWalletCode = (_d = (_c = (_b = (_a = context == null ? void 0 : context.appHelper) == null ? void 0 : _a.utils) == null ? void 0 : _b.businessUtils) == null ? void 0 : _c.getAppByModal) == null ? void 0 : _d.call(_c, "wallet");
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 { cards: walletPassSelectCards, amount } = currentWalletPass || {};
70
- const [currentCustomerWalletPass, otherCustomerWalletPass] = (0, import_react.useMemo)(() => {
71
- const current = [];
72
- const other = [];
73
- (walletPassSelectCards || []).forEach((item) => {
74
- if (item.customer_id === (order == null ? void 0 : order.customer_id)) {
75
- current.push(item);
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
- other.push(item);
107
+ otherCustomerVouchers.push(voucher);
78
108
  }
79
109
  });
80
- return [current, other];
81
- }, [walletPassSelectCards, order == null ? void 0 : order.customer_id]);
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
- (walletPassSelectCards || []).concat(searchSelectData.details),
120
+ (selectedWithDetails || []).concat(searchSelectData.details),
86
121
  "id"
87
122
  )
88
123
  );
89
- }, [walletPassSelectCards, searchSelectData]);
124
+ }, [selectedWithDetails, searchSelectData]);
90
125
  const selectValue = (0, import_react.useMemo)(() => {
91
- return (walletPassSelectCards == null ? void 0 : walletPassSelectCards.map((item) => item.id)) || [];
92
- }, [walletPassSelectCards]);
93
- const otherCustomerWalletPassList = (0, import_react.useMemo)(() => {
94
- return (0, import_utils2.formatMachineCodeServer2CardList)(addList, selectValue);
95
- }, [addList, selectValue]);
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
- setTimeout(() => {
151
- refreshList();
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 result = await (0, import_serve.searchMachineCodeList)({
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 (!result) {
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
- changeWalletPass(
241
- (0, import_utils.uniqueByKey)(
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, ...searchSelectData.details],
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
- let cards = details.map((item) => item.originData);
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(currentWalletPass);
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: amount })),
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))), otherCustomerWalletPassList.length > 0 && /* @__PURE__ */ import_react.default.createElement(
304
+ )(walletSetting.name))), displayOtherVouchers.length > 0 && /* @__PURE__ */ import_react.default.createElement(
318
305
  import_List.default,
319
306
  {
320
307
  walletSetting,
321
- data: otherCustomerWalletPassList,
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
- ref: listRef,
321
+ data: (0, import_utils2.formatMachineCodeServer2CardList)(displayVouchers, selectValue),
335
322
  value: selectValue,
336
- onLoadingChange: setLoading
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: ((_e = searchSelectData.ids) == null ? void 0 : _e.length) === 0
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 (0, import_serve.getPaymentsAndWalletPass)({
166
- order_id: order.order_id,
167
- total_amount: order.amount,
168
- sale_channel: order.sale_channel || "online-store"
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 withCustomerIdList = (wallet_pass_recommend_list || []).map(
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
- ...(_a2 = state.payGroup) == null ? void 0 : _a2.walletPass,
225
+ ...(_b2 = state.payGroup) == null ? void 0 : _b2.walletPass,
201
226
  ...walletPass,
202
- amount: wallet_pass_amount,
203
- cards: withCustomerIdList
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: remain_amount
239
+ wait_amount: Math.max(0, waitAmount2)
207
240
  }
208
241
  });
209
- await ((_b2 = paymentListRef.current) == null ? void 0 : _b2.init(payment_list));
242
+ await ((_c2 = paymentListRef.current) == null ? void 0 : _c2.init(payment_list));
210
243
  setTimeout(() => {
211
244
  setLoading(false);
212
245
  }, 100);
@@ -29,6 +29,7 @@ export interface PayGroup {
29
29
  pay_number?: string;
30
30
  _order: any;
31
31
  front_order_uuid?: string;
32
+ orderDetail: any;
32
33
  }
33
34
  export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
34
35
  state: FormState;
@@ -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) => {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CalendarDataItem } from "../type";
2
3
  declare type CalendarItemProps = {
3
4
  month: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./index.less";
2
3
  declare const ProductDetail: ({ form, currentProduct, }: {
3
4
  form: any;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./index.less";
2
3
  declare const ProductDetailByDate: () => JSX.Element;
3
4
  export default ProductDetailByDate;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Empty: (props: any) => JSX.Element;
3
4
  export default Empty;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Content: () => JSX.Element;
3
4
  export default Content;
@@ -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, _b2, _c, _d;
63
- const currentTime = (_b2 = (_a2 = state.modalState) == null ? void 0 : _a2.date) == null ? void 0 : _b2.value;
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;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  import { IClientNameProps } from './type';
3
4
  declare const ClientName: ({ className, dataSource, style }: IClientNameProps) => JSX.Element | null;
@@ -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.56",
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;