@pisell/private-materials 6.4.42 → 6.4.43

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 (188) 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/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +146 -146
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +8 -8
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +8 -8
  11. package/es/components/booking/components/actionButtons/index.js +37 -42
  12. package/es/components/booking/components/actionButtons/index.less +0 -28
  13. package/es/components/booking/components/footer/amount.d.ts +3 -3
  14. package/es/components/booking/components/footer/amount.js +13 -2
  15. package/es/components/booking/components/footer/index.js +168 -68
  16. package/es/components/booking/components/footer/utils.js +62 -33
  17. package/es/components/booking/info/model.js +5 -0
  18. package/es/components/booking/info/service/addService/index.js +2 -1
  19. package/es/components/booking/info2/index.js +42 -2
  20. package/es/components/booking/info2/service/addService/index.js +2 -1
  21. package/es/components/booking/info2/service/editService/index.js +12 -4
  22. package/es/components/checkout/PaymentModal.d.ts +2 -0
  23. package/es/components/checkout/PaymentModal.js +395 -240
  24. package/es/components/checkout/components/AdditionalModule/index.less +1 -1
  25. package/es/components/checkout/components/AmountSummary/index.js +161 -54
  26. package/es/components/checkout/components/CashPaymentModule/index.d.ts +5 -3
  27. package/es/components/checkout/components/CashPaymentModule/index.js +114 -137
  28. package/es/components/checkout/components/CashPaymentModule/index.less +200 -176
  29. package/es/components/checkout/components/PaymentDetailModal/index.js +2 -2
  30. package/es/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.d.ts +29 -0
  31. package/es/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.js +210 -0
  32. package/es/components/checkout/components/PaymentOptionsModule/index.d.ts +2 -4
  33. package/es/components/checkout/components/PaymentOptionsModule/index.js +12 -114
  34. package/es/components/checkout/components/PaymentOptionsModule/index.less +29 -0
  35. package/es/components/checkout/components/SavePayLaterHandler/index.js +1 -1
  36. package/es/components/checkout/components/SearchAndClientModule/index.js +40 -39
  37. package/es/components/checkout/components/WalletPassModule/index.js +3 -2
  38. package/es/components/checkout/components/WalletPassModule/utils.js +6 -1
  39. package/es/components/checkout/hooks/useWalletPass.d.ts +1 -1
  40. package/es/components/checkout/hooks/useWalletPass.js +2 -0
  41. package/es/components/checkout/index.less +1 -1
  42. package/es/components/checkout/locales.d.ts +33 -0
  43. package/es/components/checkout/locales.js +39 -3
  44. package/es/components/checkout/types.d.ts +1 -0
  45. package/es/components/eftposPay/hooks.d.ts +1 -1
  46. package/es/components/eftposPay/store/index.d.ts +2 -2
  47. package/es/components/shoppingCart/components/Cart/Product.js +143 -71
  48. package/es/components/shoppingCart/components/Cart/index.js +1 -1
  49. package/es/components/shoppingCart/components/Cart/index.less +31 -0
  50. package/es/components/shoppingCart/locales.d.ts +3 -0
  51. package/es/components/shoppingCart/locales.js +12 -3
  52. package/es/components/ticketBooking/utils/index.js +2 -1
  53. package/es/pro/pisellPriceKeyboardPopover/PisellPriceKeyboardPopover.js +1 -1
  54. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.d.ts +5 -0
  55. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.js +148 -0
  56. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.less +23 -0
  57. package/es/pro/pisellSimplePriceKeyboardPopover/index.d.ts +2 -0
  58. package/es/pro/pisellSimplePriceKeyboardPopover/index.js +1 -0
  59. package/es/pro/pisellSimplePriceKeyboardPopover/types.d.ts +33 -0
  60. package/es/pro/pisellSimplePriceKeyboardPopover/types.js +1 -0
  61. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.d.ts +4 -0
  62. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.js +310 -0
  63. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.d.ts +13 -0
  64. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.js +349 -0
  65. package/es/pro/priceKeyboard/components/cashKeyboard/index.d.ts +11 -0
  66. package/es/pro/priceKeyboard/components/cashKeyboard/index.js +49 -0
  67. package/es/pro/priceKeyboard/components/cashKeyboard/index.less +103 -0
  68. package/es/pro/priceKeyboard/components/cashKeyboard/locales.d.ts +39 -0
  69. package/es/pro/priceKeyboard/components/cashKeyboard/locales.js +41 -0
  70. package/es/pro/priceKeyboard/components/cashKeyboard/types.d.ts +97 -0
  71. package/es/pro/priceKeyboard/components/cashKeyboard/types.js +1 -0
  72. package/es/pro/priceKeyboard/components/discountKeyboard/index.d.ts +22 -0
  73. package/es/pro/priceKeyboard/components/discountKeyboard/index.js +442 -0
  74. package/es/pro/priceKeyboard/components/discountKeyboard/index.less +47 -0
  75. package/es/pro/priceKeyboard/components/discountKeyboard/locales.d.ts +42 -0
  76. package/es/pro/priceKeyboard/components/discountKeyboard/locales.js +44 -0
  77. package/es/pro/priceKeyboard/components/discountKeyboard/types.d.ts +17 -0
  78. package/es/pro/priceKeyboard/components/discountKeyboard/types.js +1 -0
  79. package/es/pro/priceKeyboard/components/paymentKeyboard/index.d.ts +11 -0
  80. package/es/pro/priceKeyboard/components/paymentKeyboard/index.js +444 -0
  81. package/es/pro/priceKeyboard/components/paymentKeyboard/index.less +64 -0
  82. package/es/pro/priceKeyboard/components/paymentKeyboard/locales.d.ts +45 -0
  83. package/es/pro/priceKeyboard/components/paymentKeyboard/locales.js +47 -0
  84. package/es/pro/priceKeyboard/components/paymentKeyboard/types.d.ts +39 -0
  85. package/es/pro/priceKeyboard/components/paymentKeyboard/types.js +1 -0
  86. package/es/pro/priceKeyboard/components/shortcuts/index.d.ts +17 -0
  87. package/es/pro/priceKeyboard/components/shortcuts/index.js +47 -0
  88. package/es/pro/priceKeyboard/components/shortcuts/index.less +39 -0
  89. package/es/pro/priceKeyboard/hooks/keyActions.d.ts +28 -0
  90. package/es/pro/priceKeyboard/hooks/keyActions.js +252 -0
  91. package/es/pro/priceKeyboard/hooks/rightItems.d.ts +27 -0
  92. package/es/pro/priceKeyboard/hooks/rightItems.js +50 -0
  93. package/es/pro/priceKeyboard/index.d.ts +3 -0
  94. package/es/pro/priceKeyboard/index.js +3 -0
  95. package/es/pro/priceKeyboard/index.less +215 -0
  96. package/es/pro/priceKeyboard/utils.d.ts +31 -0
  97. package/es/pro/priceKeyboard/utils.js +51 -0
  98. package/es/pro/skuDetailModal/index.js +19 -16
  99. package/lib/components/booking/components/actionButtons/index.js +31 -28
  100. package/lib/components/booking/components/actionButtons/index.less +0 -28
  101. package/lib/components/booking/components/footer/amount.d.ts +3 -3
  102. package/lib/components/booking/components/footer/amount.js +10 -4
  103. package/lib/components/booking/components/footer/index.js +107 -40
  104. package/lib/components/booking/components/footer/utils.js +35 -7
  105. package/lib/components/booking/info/model.js +3 -0
  106. package/lib/components/booking/info/service/addService/index.js +2 -1
  107. package/lib/components/booking/info2/index.js +18 -1
  108. package/lib/components/booking/info2/service/addService/index.js +2 -1
  109. package/lib/components/booking/info2/service/editService/index.js +12 -4
  110. package/lib/components/checkout/PaymentModal.d.ts +2 -0
  111. package/lib/components/checkout/PaymentModal.js +152 -73
  112. package/lib/components/checkout/components/AdditionalModule/index.less +1 -1
  113. package/lib/components/checkout/components/AmountSummary/index.js +114 -40
  114. package/lib/components/checkout/components/CashPaymentModule/index.d.ts +5 -3
  115. package/lib/components/checkout/components/CashPaymentModule/index.js +103 -140
  116. package/lib/components/checkout/components/CashPaymentModule/index.less +200 -176
  117. package/lib/components/checkout/components/PaymentDetailModal/index.js +2 -2
  118. package/lib/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.d.ts +29 -0
  119. package/lib/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.js +172 -0
  120. package/lib/components/checkout/components/PaymentOptionsModule/index.d.ts +2 -4
  121. package/lib/components/checkout/components/PaymentOptionsModule/index.js +11 -123
  122. package/lib/components/checkout/components/PaymentOptionsModule/index.less +29 -0
  123. package/lib/components/checkout/components/SavePayLaterHandler/index.js +1 -1
  124. package/lib/components/checkout/components/SearchAndClientModule/index.js +3 -29
  125. package/lib/components/checkout/components/WalletPassModule/index.js +3 -2
  126. package/lib/components/checkout/components/WalletPassModule/utils.js +4 -1
  127. package/lib/components/checkout/hooks/useWalletPass.d.ts +1 -1
  128. package/lib/components/checkout/hooks/useWalletPass.js +2 -0
  129. package/lib/components/checkout/index.less +1 -1
  130. package/lib/components/checkout/locales.d.ts +33 -0
  131. package/lib/components/checkout/locales.js +39 -3
  132. package/lib/components/checkout/types.d.ts +1 -0
  133. package/lib/components/eftposPay/hooks.d.ts +1 -1
  134. package/lib/components/eftposPay/store/index.d.ts +2 -2
  135. package/lib/components/shoppingCart/components/Cart/Product.js +111 -51
  136. package/lib/components/shoppingCart/components/Cart/index.js +1 -1
  137. package/lib/components/shoppingCart/components/Cart/index.less +31 -0
  138. package/lib/components/shoppingCart/locales.d.ts +3 -0
  139. package/lib/components/shoppingCart/locales.js +6 -3
  140. package/lib/components/ticketBooking/index.js +5 -1
  141. package/lib/components/ticketBooking/utils/index.js +2 -1
  142. package/lib/pro/pisellPriceKeyboardPopover/PisellPriceKeyboardPopover.js +2 -2
  143. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.d.ts +5 -0
  144. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.js +144 -0
  145. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.less +23 -0
  146. package/lib/pro/pisellSimplePriceKeyboardPopover/index.d.ts +2 -0
  147. package/lib/pro/pisellSimplePriceKeyboardPopover/index.js +35 -0
  148. package/lib/pro/pisellSimplePriceKeyboardPopover/types.d.ts +33 -0
  149. package/lib/pro/pisellSimplePriceKeyboardPopover/types.js +17 -0
  150. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.d.ts +4 -0
  151. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.js +332 -0
  152. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.d.ts +13 -0
  153. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.js +399 -0
  154. package/lib/pro/priceKeyboard/components/cashKeyboard/index.d.ts +11 -0
  155. package/lib/pro/priceKeyboard/components/cashKeyboard/index.js +76 -0
  156. package/lib/pro/priceKeyboard/components/cashKeyboard/index.less +103 -0
  157. package/lib/pro/priceKeyboard/components/cashKeyboard/locales.d.ts +39 -0
  158. package/lib/pro/priceKeyboard/components/cashKeyboard/locales.js +65 -0
  159. package/lib/pro/priceKeyboard/components/cashKeyboard/types.d.ts +97 -0
  160. package/lib/pro/priceKeyboard/components/cashKeyboard/types.js +17 -0
  161. package/lib/pro/priceKeyboard/components/discountKeyboard/index.d.ts +22 -0
  162. package/lib/pro/priceKeyboard/components/discountKeyboard/index.js +485 -0
  163. package/lib/pro/priceKeyboard/components/discountKeyboard/index.less +47 -0
  164. package/lib/pro/priceKeyboard/components/discountKeyboard/locales.d.ts +42 -0
  165. package/lib/pro/priceKeyboard/components/discountKeyboard/locales.js +68 -0
  166. package/lib/pro/priceKeyboard/components/discountKeyboard/types.d.ts +17 -0
  167. package/lib/pro/priceKeyboard/components/discountKeyboard/types.js +17 -0
  168. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.d.ts +11 -0
  169. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.js +488 -0
  170. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.less +64 -0
  171. package/lib/pro/priceKeyboard/components/paymentKeyboard/locales.d.ts +45 -0
  172. package/lib/pro/priceKeyboard/components/paymentKeyboard/locales.js +71 -0
  173. package/lib/pro/priceKeyboard/components/paymentKeyboard/types.d.ts +39 -0
  174. package/lib/pro/priceKeyboard/components/paymentKeyboard/types.js +17 -0
  175. package/lib/pro/priceKeyboard/components/shortcuts/index.d.ts +17 -0
  176. package/lib/pro/priceKeyboard/components/shortcuts/index.js +79 -0
  177. package/lib/pro/priceKeyboard/components/shortcuts/index.less +39 -0
  178. package/lib/pro/priceKeyboard/hooks/keyActions.d.ts +28 -0
  179. package/lib/pro/priceKeyboard/hooks/keyActions.js +176 -0
  180. package/lib/pro/priceKeyboard/hooks/rightItems.d.ts +27 -0
  181. package/lib/pro/priceKeyboard/hooks/rightItems.js +81 -0
  182. package/lib/pro/priceKeyboard/index.d.ts +3 -0
  183. package/lib/pro/priceKeyboard/index.js +45 -0
  184. package/lib/pro/priceKeyboard/index.less +215 -0
  185. package/lib/pro/priceKeyboard/utils.d.ts +31 -0
  186. package/lib/pro/priceKeyboard/utils.js +75 -0
  187. package/lib/pro/skuDetailModal/index.js +18 -22
  188. package/package.json +4 -4
@@ -0,0 +1,172 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.tsx
30
+ var PaymentMethodItem_exports = {};
31
+ __export(PaymentMethodItem_exports, {
32
+ default: () => PaymentMethodItem_default
33
+ });
34
+ module.exports = __toCommonJS(PaymentMethodItem_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_classnames = __toESM(require("classnames"));
37
+ var import_utils = require("@pisell/utils");
38
+ var import_materials = require("@pisell/materials");
39
+ var import_antd = require("antd");
40
+ var import_priceKeyboard = require("../../../../pro/priceKeyboard");
41
+ var import_index = require("./index.less");
42
+ var PaymentMethodItem = ({
43
+ method,
44
+ amountSymbol,
45
+ customAmount,
46
+ disabled = false,
47
+ onClick,
48
+ getText
49
+ }) => {
50
+ const [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(false);
51
+ const calculateSurcharge = (method2) => {
52
+ if (!(method2 == null ? void 0 : method2.is_surcharge)) return 0;
53
+ const baseAmount = Number(customAmount) || 0;
54
+ if (Number(method2.percentage)) {
55
+ return baseAmount * Number(method2.percentage) + Number(method2.fixed || 0);
56
+ }
57
+ return Number(method2.fixed || 0);
58
+ };
59
+ const calculateTotalAmount = (method2) => {
60
+ const baseAmount = Number(customAmount) || 0;
61
+ const surcharge = calculateSurcharge(method2);
62
+ return baseAmount + surcharge;
63
+ };
64
+ const handleRightButtonClick = (e) => {
65
+ e.preventDefault();
66
+ if (disabled || !onClick) {
67
+ return;
68
+ }
69
+ onClick({
70
+ ...method,
71
+ surcharge: String((0, import_utils.formatAmount)(calculateSurcharge(method), 2, amountSymbol))
72
+ });
73
+ };
74
+ const renderPaymentIcon = (method2) => {
75
+ if (method2.code === "EFTPOS") {
76
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container"), style: { background: "#FE8279" } }, /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-credit", style: { fontSize: "26px", color: "#ffffff" } }));
77
+ }
78
+ switch (String(method2.type)) {
79
+ case "credit-card":
80
+ case "eftpos":
81
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container"), style: { background: "#FE8279" } }, /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-credit", style: { fontSize: "26px", color: "#ffffff" } }));
82
+ default:
83
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container"), style: { background: "#D277E4" } }, /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-custom", style: { fontSize: "26px", color: "#ffffff" } }));
84
+ }
85
+ };
86
+ const isEftpos = method.code === "EFTPOS" || method.type === "eftpos";
87
+ const renderLeftContent = () => /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-payment-method-left") }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container") }, renderPaymentIcon(method)), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-payment-info") }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-payment-info-inner") }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-payment-name") }, method.name), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-payment-info-inner-surcharge") }, !!(method == null ? void 0 : method.is_surcharge) && calculateSurcharge(method) !== 0 && /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-surcharge-text") }, (getText == null ? void 0 : getText("pisell2.payment-options.surcharge-label", "Surcharge")) || "Surcharge", ":", (0, import_utils.formatAmount)(calculateSurcharge(method), 2, amountSymbol)), !isEftpos && /* @__PURE__ */ import_react.default.createElement(
88
+ "div",
89
+ {
90
+ className: (0, import_classnames.default)("payment-options-module-surcharge-text"),
91
+ style: { cursor: "pointer" }
92
+ },
93
+ /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-edit-05", style: { fontSize: "24px", color: disabled ? "#D0D5DD" : "#7F56DA" } })
94
+ )))));
95
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
96
+ "button",
97
+ {
98
+ className: (0, import_classnames.default)(
99
+ "payment-options-module-payment-method-item",
100
+ {
101
+ "payment-options-module-pointer": !disabled,
102
+ "payment-options-module-disabled": disabled
103
+ }
104
+ ),
105
+ type: "button",
106
+ disabled
107
+ },
108
+ !isEftpos ? /* @__PURE__ */ import_react.default.createElement(
109
+ import_antd.Popover,
110
+ {
111
+ content: /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
112
+ import_priceKeyboard.PaymentKeyboard,
113
+ {
114
+ paymentOriginalValue: String(customAmount || 0),
115
+ paymentDefaultValue: String(customAmount || 0),
116
+ enableExceedMaxAmount: !isEftpos,
117
+ payment: {
118
+ enable: true
119
+ },
120
+ surcharge: {
121
+ enable: !!(method == null ? void 0 : method.is_surcharge) && calculateSurcharge(method) !== 0
122
+ },
123
+ surchargeDefaultValue: {
124
+ percent: method.percentage ? String(Number(method.percentage) * 100) : "",
125
+ fixed: method.fixed ? String(method.fixed) : ""
126
+ },
127
+ selectType: "light",
128
+ onChange: (value) => {
129
+ console.log(value);
130
+ },
131
+ onPay: (args) => {
132
+ var _a, _b;
133
+ console.log(args);
134
+ setIsKeyboardVisible(false);
135
+ if (onClick) {
136
+ onClick({
137
+ ...method,
138
+ fixed: Number(((_a = args.surcharge) == null ? void 0 : _a.fixed) || 0),
139
+ percentage: ((_b = args.surcharge) == null ? void 0 : _b.percent) ? Number(args.surcharge.percent) / 100 : 0,
140
+ totalAmount: String((0, import_utils.formatAmount)(args.amount, 2))
141
+ });
142
+ }
143
+ }
144
+ }
145
+ )),
146
+ trigger: "click",
147
+ open: isKeyboardVisible,
148
+ onOpenChange: setIsKeyboardVisible,
149
+ placement: "bottom",
150
+ overlayClassName: "payment-keyboard-popover",
151
+ arrow: true,
152
+ destroyTooltipOnHide: true
153
+ },
154
+ /* @__PURE__ */ import_react.default.createElement("div", null, renderLeftContent())
155
+ ) : renderLeftContent(),
156
+ /* @__PURE__ */ import_react.default.createElement(
157
+ "div",
158
+ { className: (0, import_classnames.default)("payment-options-module-payment-method-right"), onClick: handleRightButtonClick },
159
+ // 右侧按钮,如果是eftpos,则显示Pay按钮
160
+ isEftpos ? /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "primary", className: (0, import_classnames.default)("payment-options-module-pay-button"), disabled }, getText == null ? void 0 : getText("pay", "Pay")) : /* @__PURE__ */ import_react.default.createElement(
161
+ "div",
162
+ {
163
+ className: (0, import_classnames.default)(
164
+ "payment-options-module-selection-button"
165
+ )
166
+ },
167
+ /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-a-arrow-circle-right2", style: { fontSize: "30px", color: disabled ? "#D0D5DD" : "#7F56DA" } })
168
+ )
169
+ )
170
+ ));
171
+ };
172
+ var PaymentMethodItem_default = PaymentMethodItem;
@@ -1,9 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { PaymentOptionsModuleProps, PaymentMethod } from '../../types';
2
+ import { ExtendedPaymentMethod } from './PaymentMethodItem';
3
+ import { PaymentOptionsModuleProps } from '../../types';
3
4
  import './index.less';
4
- interface ExtendedPaymentMethod extends PaymentMethod {
5
- is_surcharge?: boolean;
6
- }
7
5
  interface ExtendedPaymentOptionsModuleProps extends PaymentOptionsModuleProps {
8
6
  amountSymbol?: string;
9
7
  paymentMethods?: ExtendedPaymentMethod[];
@@ -33,11 +33,11 @@ __export(PaymentOptionsModule_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(PaymentOptionsModule_exports);
35
35
  var import_ScrollableList = __toESM(require("../ScrollableList/index"));
36
+ var import_PaymentMethodItem = __toESM(require("./PaymentMethodItem"));
36
37
  var import_react = __toESM(require("react"));
37
38
  var import_classnames = __toESM(require("classnames"));
38
39
  var import_index = require("./index.less");
39
40
  var import_utils = require("@pisell/utils");
40
- var import_materials = require("@pisell/materials");
41
41
  var import_ahooks = require("ahooks");
42
42
  var import_useEngineContext = __toESM(require("../../../../hooks/useEngineContext"));
43
43
  var import_locales = __toESM(require("../../locales"));
@@ -77,29 +77,13 @@ function PaymentOptionsModule({
77
77
  const filteredPaymentMethods = paymentMethods.filter(
78
78
  (item) => !(item.type === "app" && item.code === "EFTPOS_LINKLY") && (["custom"].includes(item.type) || SHOW_METHODS_CODE.includes(item.code))
79
79
  );
80
- const calculateSurcharge = (method) => {
81
- if (!(method == null ? void 0 : method.is_surcharge)) return 0;
82
- const baseAmount = Number(customAmount) || 0;
83
- if (Number(method.percentage)) {
84
- return baseAmount * Number(method.percentage) + Number(method.fixed || 0);
85
- }
86
- return Number(method.fixed || 0);
87
- };
88
- const calculateTotalAmount = (method) => {
89
- const baseAmount = Number(customAmount) || 0;
90
- const surcharge = calculateSurcharge(method);
91
- return baseAmount + surcharge;
92
- };
93
80
  const { run: handlePaymentClick } = (0, import_ahooks.useDebounceFn)(
94
81
  (method) => {
95
82
  if (disabled) {
96
83
  return;
97
84
  }
98
85
  if (typeof onClick === "function") {
99
- onClick({
100
- ...method,
101
- surcharge: String((0, import_utils.formatAmount)(calculateSurcharge(method), 2, amountSymbol))
102
- });
86
+ onClick(method);
103
87
  }
104
88
  },
105
89
  {
@@ -107,18 +91,6 @@ function PaymentOptionsModule({
107
91
  // 500ms 防抖延迟
108
92
  }
109
93
  );
110
- const renderPaymentIcon = (method) => {
111
- if (method.code === "EFTPOS") {
112
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container"), style: { background: "#FE8279" } }, /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-credit", style: { fontSize: "26px", color: "#ffffff" } }));
113
- }
114
- switch (String(method.type)) {
115
- case "credit-card":
116
- case "eftpos":
117
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container"), style: { background: "#FE8279" } }, /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-credit", style: { fontSize: "26px", color: "#ffffff" } }));
118
- default:
119
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container"), style: { background: "#D277E4" } }, /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-custom", style: { fontSize: "26px", color: "#ffffff" } }));
120
- }
121
- };
122
94
  return /* @__PURE__ */ import_react.default.createElement(
123
95
  "div",
124
96
  {
@@ -131,7 +103,7 @@ function PaymentOptionsModule({
131
103
  import_ScrollableList.default,
132
104
  {
133
105
  height: "100%",
134
- maxHeight: 330,
106
+ maxHeight: 314,
135
107
  gradientColor: "rgba(139, 92, 246, 0.1)",
136
108
  gradientHeight: 50,
137
109
  columnCount: showCashPayment ? 1 : 2,
@@ -149,100 +121,16 @@ function PaymentOptionsModule({
149
121
  }
150
122
  },
151
123
  filteredPaymentMethods.map((method) => /* @__PURE__ */ import_react.default.createElement(
152
- "button",
124
+ import_PaymentMethodItem.default,
153
125
  {
154
126
  key: method.id,
155
- onClick: (e) => {
156
- e.preventDefault();
157
- handlePaymentClick(method);
158
- },
159
- className: (0, import_classnames.default)(
160
- "payment-options-module-payment-method-item",
161
- {
162
- "payment-options-module-pointer": !disabled,
163
- "payment-options-module-disabled": disabled
164
- }
165
- ),
166
- type: "button",
167
- disabled
168
- },
169
- /* @__PURE__ */ import_react.default.createElement(
170
- "div",
171
- {
172
- className: (0, import_classnames.default)(
173
- "payment-options-module-payment-method-left"
174
- )
175
- },
176
- /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("payment-options-module-icon-container") }, renderPaymentIcon(method)),
177
- /* @__PURE__ */ import_react.default.createElement(
178
- "div",
179
- {
180
- className: (0, import_classnames.default)("payment-options-module-payment-info")
181
- },
182
- /* @__PURE__ */ import_react.default.createElement(
183
- "div",
184
- {
185
- className: (0, import_classnames.default)(
186
- "payment-options-module-payment-info-inner"
187
- )
188
- },
189
- /* @__PURE__ */ import_react.default.createElement(
190
- "div",
191
- {
192
- className: (0, import_classnames.default)(
193
- "payment-options-module-payment-name"
194
- )
195
- },
196
- method.name
197
- ),
198
- !!(method == null ? void 0 : method.is_surcharge) && calculateSurcharge(method) !== 0 && /* @__PURE__ */ import_react.default.createElement(
199
- "div",
200
- {
201
- className: (0, import_classnames.default)(
202
- "payment-options-module-surcharge-text"
203
- )
204
- },
205
- getText("pisell2.payment-options.surcharge-label", "Surcharge"),
206
- ":",
207
- (0, import_utils.formatAmount)(
208
- calculateSurcharge(method),
209
- 2,
210
- amountSymbol
211
- )
212
- )
213
- )
214
- )
215
- ),
216
- /* @__PURE__ */ import_react.default.createElement(
217
- "div",
218
- {
219
- className: (0, import_classnames.default)(
220
- "payment-options-module-payment-method-right"
221
- )
222
- },
223
- method.code !== "EFTPOS" && method.type !== "eftpos" && /* @__PURE__ */ import_react.default.createElement(
224
- "div",
225
- {
226
- className: (0, import_classnames.default)(
227
- "payment-options-module-amount",
228
- "payment-options-module-theme-color"
229
- )
230
- },
231
- (0, import_utils.formatAmount)(calculateTotalAmount(method), 2, amountSymbol)
232
- ),
233
- /* @__PURE__ */ import_react.default.createElement(
234
- "div",
235
- {
236
- className: (0, import_classnames.default)(
237
- "payment-options-module-selection-button",
238
- {
239
- "payment-options-module-selection-button-disabled": disabled
240
- }
241
- )
242
- },
243
- /* @__PURE__ */ import_react.default.createElement(import_materials.Iconfont, { type: "pisell2-a-arrow-circle-right2", style: { fontSize: "30px", color: "#7F56DA" } })
244
- )
245
- )
127
+ method,
128
+ amountSymbol,
129
+ customAmount,
130
+ disabled,
131
+ onClick: handlePaymentClick,
132
+ getText
133
+ }
246
134
  ))
247
135
  ))
248
136
  );
@@ -44,6 +44,7 @@
44
44
  align-items: center;
45
45
  display: flex;
46
46
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
47
+ gap: 12px;
47
48
  }
48
49
 
49
50
 
@@ -94,6 +95,14 @@
94
95
  align-items: center;
95
96
  gap: 8px;
96
97
  display: flex;
98
+ flex: 1;
99
+ background: none;
100
+ border: none;
101
+ cursor: pointer;
102
+ padding: 0;
103
+ margin: 0;
104
+ outline: none;
105
+ box-shadow: none;
97
106
  }
98
107
 
99
108
 
@@ -224,6 +233,20 @@
224
233
  cursor: pointer;
225
234
  }
226
235
 
236
+ .payment-options-module-pay-button{
237
+ background: var(--theme-color, #7F56DA);
238
+ &:disabled {
239
+ background: #D0D5DD;
240
+ color: #fff;
241
+ }
242
+ }
243
+
244
+ .payment-options-module-payment-info-inner-surcharge{
245
+ display: flex;
246
+ align-items: center;
247
+ gap: 8px;
248
+ }
249
+
227
250
  /* Disabled state styles */
228
251
  .payment-options-module-disabled {
229
252
  cursor: unset !important;
@@ -258,3 +281,9 @@
258
281
  /* 标题保持正常颜色 */
259
282
  }
260
283
  }
284
+
285
+ .payment-keyboard-popover {
286
+ .pisell-lowcode-popover-inner{
287
+ padding: 0;
288
+ }
289
+ }
@@ -93,7 +93,7 @@ var SavePayLaterHandler = (0, import_react.forwardRef)(({
93
93
  mask: true,
94
94
  maskClosable: false,
95
95
  centered: true,
96
- width: 500,
96
+ width: 530,
97
97
  title: getText("pisell2.checkout.wallet-balance-confirm.title"),
98
98
  footer: null,
99
99
  className: "wallet-balance-confirm-modal",
@@ -48,7 +48,7 @@ var SearchAndClientModule = (props) => {
48
48
  const bookingTicket = (0, import_pisellos.useBookingTicket)();
49
49
  const handleSearch = (0, import_ahooks.useDebounceFn)(
50
50
  async (keyword) => {
51
- var _a, _b, _c, _d, _e;
51
+ var _a, _b, _c, _d;
52
52
  if (!!keyword) {
53
53
  setLoading(true);
54
54
  try {
@@ -61,18 +61,9 @@ var SearchAndClientModule = (props) => {
61
61
  return;
62
62
  }
63
63
  if ("type" in res && res.type == "walletCode") {
64
- if (disabledSwitch) {
65
- (_b = Toast == null ? void 0 : Toast.info) == null ? void 0 : _b.call(
66
- Toast,
67
- import_utils.locales.getText(
68
- "pisell2.checkout.client-card.tip.partially-paid"
69
- )
70
- );
71
- return;
72
- }
73
64
  const { customer, ...rest } = res.data;
74
65
  if (!customer) {
75
- (_c = Toast == null ? void 0 : Toast.info) == null ? void 0 : _c.call(
66
+ (_b = Toast == null ? void 0 : Toast.info) == null ? void 0 : _b.call(
76
67
  Toast,
77
68
  import_utils.locales.getText("pisell2.checkout.wallet-pass-module.no-result")
78
69
  );
@@ -82,7 +73,7 @@ var SearchAndClientModule = (props) => {
82
73
  ...customer,
83
74
  latest_wallet_detail: rest
84
75
  };
85
- (_e = (_d = clientCardRef.current) == null ? void 0 : _d.handleSetClient) == null ? void 0 : _e.call(_d, _customer, {
76
+ (_d = (_c = clientCardRef.current) == null ? void 0 : _c.handleSetClient) == null ? void 0 : _d.call(_c, _customer, {
86
77
  sameClientTip: import_utils.locales.getText(
87
78
  "pisell2.checkout.client-card.tip.same-client"
88
79
  )
@@ -139,23 +130,6 @@ var SearchAndClientModule = (props) => {
139
130
  size: "default"
140
131
  }
141
132
  };
142
- if (disabledSwitch === true) {
143
- _props = {
144
- open: false,
145
- buttonProps: {
146
- icon,
147
- size: "default",
148
- onClick: () => {
149
- var _a;
150
- (_a = Toast == null ? void 0 : Toast.info) == null ? void 0 : _a.call(
151
- Toast,
152
- import_utils.locales.getText("pisell2.checkout.client-card.tip.partially-paid")
153
- );
154
- },
155
- style: { cursor: "not-allowed" }
156
- }
157
- };
158
- }
159
133
  return _props;
160
134
  }, [Toast, disabledSwitch]);
161
135
  return /* @__PURE__ */ import_react.default.createElement(
@@ -122,10 +122,11 @@ var WalletPassModule = (0, import_react.forwardRef)(
122
122
  return selectedWalletIds.length + selectedDiscountList.length;
123
123
  }, [selectedWalletIds.length, selectedDiscountList.length]);
124
124
  const discountDisabled = (0, import_react.useMemo)(() => {
125
+ if (Number(orderInfo == null ? void 0 : orderInfo.totalAmount) === 0) return true;
125
126
  return !!(paymentItems == null ? void 0 : paymentItems.some((item) => {
126
- return !import_constants.WALLET_PASS_CODE_ARRAY.includes(item.code);
127
+ return !import_constants.WALLET_PASS_CODE_ARRAY.includes(item.code) && !item.isSynced;
127
128
  }));
128
- }, [paymentItems]);
129
+ }, [paymentItems, orderInfo]);
129
130
  if (cardData.length === 0 && availableDiscountList.length === 0) {
130
131
  return null;
131
132
  }
@@ -105,6 +105,9 @@ var formatDiscountWalletData = (data, selectId = []) => {
105
105
  } else {
106
106
  name = item.product_name;
107
107
  }
108
+ if (!name && item.isEditMode) {
109
+ name = item.name;
110
+ }
108
111
  return {
109
112
  ...item,
110
113
  id: item.id,
@@ -124,7 +127,7 @@ var formatDiscountWalletData = (data, selectId = []) => {
124
127
  code: item.code,
125
128
  disabled: item.isDisabled,
126
129
  showStatus: true,
127
- cardStatus: item.isDisabled ? "conflict" : void 0,
130
+ cardStatus: item.isEditMode ? "lastPayment" : item.isDisabled ? "conflict" : void 0,
128
131
  cover: (_c = item.product) == null ? void 0 : _c.cover,
129
132
  qrCode: item.code,
130
133
  validDate: voucherTime(item, "expire_time"),
@@ -17,7 +17,7 @@ export declare const useWalletPass: (props: {
17
17
  cardData: any;
18
18
  handleSelectWallet: (value: number[]) => void;
19
19
  selectedWalletIds: any[];
20
- expiredWalletIds: any[];
20
+ expiredWalletIds: any;
21
21
  expiredWalletData: any;
22
22
  disabledWalletData: any[];
23
23
  clearAllSelectedWallet: () => void;
@@ -326,6 +326,7 @@ var useWalletPass = (props) => {
326
326
  handleWalletRecommendListUpdated
327
327
  );
328
328
  core.effects.on("checkout:onPaymentStarted", handlePaymentStarted);
329
+ core.effects.on("checkout:onPaymentItemAdded", handlePaymentStarted);
329
330
  core.effects.on(
330
331
  "wallet:onUserIdentificationCodesUpdated",
331
332
  handleUserIdentificationCodesUpdated
@@ -354,6 +355,7 @@ var useWalletPass = (props) => {
354
355
  handleWalletRecommendListUpdated
355
356
  );
356
357
  core.effects.off("checkout:onPaymentStarted", handlePaymentStarted);
358
+ core.effects.off("checkout:onPaymentItemAdded", handlePaymentStarted);
357
359
  core.effects.off(
358
360
  "wallet:onUserIdentificationCodesUpdated",
359
361
  handleUserIdentificationCodesUpdated
@@ -69,7 +69,7 @@
69
69
  display: grid;
70
70
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); // 强制等宽分配
71
71
  grid-template-rows: auto auto;
72
- gap: 16px;
72
+ gap: 8px 16px;
73
73
  background-color: #f6f2ff;
74
74
  padding: 16px 16px 0 16px;
75
75
  border-radius: 0 0 12px 12px;
@@ -23,6 +23,7 @@ declare const _default: {
23
23
  'balance.due': string;
24
24
  'deposit.due': string;
25
25
  'partial.paid': string;
26
+ 'deposit.partial.paid': string;
26
27
  'split.payment': string;
27
28
  cash: string;
28
29
  rounding: string;
@@ -78,6 +79,7 @@ declare const _default: {
78
79
  'wallet-pass-module-disabled-modal-title': string;
79
80
  'wallet-pass-module-disabled-modal-empty': string;
80
81
  'wallet-pass-module-discount-partially-paid': string;
82
+ 'wallet-pass-module-discount-order-free': string;
81
83
  'additional.options': string;
82
84
  'add.tip': string;
83
85
  'service.charge': string;
@@ -153,6 +155,15 @@ declare const _default: {
153
155
  'pisell2.checkout.sync-retry-hint': string;
154
156
  'pisell2.checkout.tips': string;
155
157
  retry: string;
158
+ 'cash-payment-title': string;
159
+ 'cash-payment-balance-due': string;
160
+ 'cash-payment-cash-received': string;
161
+ 'cash-payment-change-due': string;
162
+ 'cash-payment-rounding': string;
163
+ 'cash-payment-other': string;
164
+ 'cash-payment-reset': string;
165
+ 'cash-payment-pay': string;
166
+ 'cash-payment-amount-cannot-be-zero': string;
156
167
  };
157
168
  'zh-CN': {
158
169
  'order.total': string;
@@ -178,6 +189,7 @@ declare const _default: {
178
189
  'balance.due': string;
179
190
  'deposit.due': string;
180
191
  'partial.paid': string;
192
+ 'deposit.partial.paid': string;
181
193
  'split.payment': string;
182
194
  cash: string;
183
195
  rounding: string;
@@ -233,6 +245,7 @@ declare const _default: {
233
245
  'wallet-pass-module-disabled-modal-title': string;
234
246
  'wallet-pass-module-disabled-modal-empty': string;
235
247
  'wallet-pass-module-discount-partially-paid': string;
248
+ 'wallet-pass-module-discount-order-free': string;
236
249
  'additional.options': string;
237
250
  'add.tip': string;
238
251
  'service.charge': string;
@@ -308,6 +321,15 @@ declare const _default: {
308
321
  'pisell2.checkout.sync-retry-hint': string;
309
322
  'pisell2.checkout.tips': string;
310
323
  retry: string;
324
+ 'cash-payment-title': string;
325
+ 'cash-payment-balance-due': string;
326
+ 'cash-payment-cash-received': string;
327
+ 'cash-payment-change-due': string;
328
+ 'cash-payment-rounding': string;
329
+ 'cash-payment-other': string;
330
+ 'cash-payment-reset': string;
331
+ 'cash-payment-pay': string;
332
+ 'cash-payment-amount-cannot-be-zero': string;
311
333
  };
312
334
  'zh-HK': {
313
335
  'order.total': string;
@@ -333,6 +355,7 @@ declare const _default: {
333
355
  'balance.due': string;
334
356
  'deposit.due': string;
335
357
  'partial.paid': string;
358
+ 'deposit.partial.paid': string;
336
359
  'split.payment': string;
337
360
  cash: string;
338
361
  rounding: string;
@@ -394,6 +417,7 @@ declare const _default: {
394
417
  'wallet-pass-module-disabled-modal-title': string;
395
418
  'wallet-pass-module-disabled-modal-empty': string;
396
419
  'wallet-pass-module-discount-partially-paid': string;
420
+ 'wallet-pass-module-discount-order-free': string;
397
421
  'pisell2.checkout.search-section.placeholder': string;
398
422
  'pisell2.checkout.discount.percentage.off': (value: string) => string;
399
423
  'pisell2.checkout.discount.fixed_amount': string;
@@ -463,6 +487,15 @@ declare const _default: {
463
487
  'pisell2.checkout.sync-retry-hint': string;
464
488
  'pisell2.checkout.tips': string;
465
489
  retry: string;
490
+ 'cash-payment-title': string;
491
+ 'cash-payment-balance-due': string;
492
+ 'cash-payment-cash-received': string;
493
+ 'cash-payment-change-due': string;
494
+ 'cash-payment-rounding': string;
495
+ 'cash-payment-other': string;
496
+ 'cash-payment-reset': string;
497
+ 'cash-payment-pay': string;
498
+ 'cash-payment-amount-cannot-be-zero': string;
466
499
  };
467
500
  };
468
501
  export default _default;