@pisell/private-materials 6.8.83 → 6.8.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +10 -10
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +9 -9
- package/es/components/booking/components/footer/index.d.ts +1 -0
- package/es/components/booking/info/index.d.ts +1 -0
- package/es/components/checkout/PaymentModal.js +4 -2
- package/es/components/checkout/components/PaymentOptionsModule/index.js +1 -1
- package/es/components/eftposPay/aggregatePayment/hooks/useMicropay.d.ts +7 -0
- package/es/components/eftposPay/aggregatePayment/hooks/useMicropay.js +120 -0
- package/es/components/eftposPay/aggregatePayment/index.d.ts +3 -0
- package/es/components/eftposPay/aggregatePayment/index.js +3 -0
- package/es/components/eftposPay/aggregatePayment/service.d.ts +24 -0
- package/es/components/eftposPay/aggregatePayment/service.js +69 -0
- package/es/components/eftposPay/aggregatePayment/types.d.ts +106 -0
- package/es/components/eftposPay/aggregatePayment/types.js +65 -0
- package/es/components/eftposPay/aggregatePayment/utils/logs.d.ts +110 -0
- package/es/components/eftposPay/aggregatePayment/utils/logs.js +371 -0
- package/es/components/eftposPay/aggregatePayment/utils/payment.d.ts +139 -0
- package/es/components/eftposPay/aggregatePayment/utils/payment.js +1138 -0
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/app.d.ts +1 -1
- package/es/components/eftposPay/app.js +5 -0
- package/es/components/eftposPay/component/fail/failCustom.js +16 -12
- package/es/components/eftposPay/component/fail/index.js +12 -5
- package/es/components/eftposPay/const.d.ts +6 -1
- package/es/components/eftposPay/const.js +3 -0
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +3 -2
- package/es/components/eftposPay/hooks.js +12 -0
- package/es/components/eftposPay/huifu/Action.d.ts +8 -0
- package/es/components/eftposPay/huifu/Action.js +146 -0
- package/es/components/eftposPay/huifu/const.d.ts +5 -0
- package/es/components/eftposPay/huifu/const.js +70 -0
- package/es/components/eftposPay/huifu/hooks.d.ts +25 -0
- package/es/components/eftposPay/huifu/hooks.js +184 -0
- package/es/components/eftposPay/huifu/index.d.ts +5 -0
- package/es/components/eftposPay/huifu/index.js +196 -0
- package/es/components/eftposPay/huifu/index.less +180 -0
- package/es/components/eftposPay/huifu/types.d.ts +14 -0
- package/es/components/eftposPay/huifu/types.js +1 -0
- package/es/components/eftposPay/index.js +5 -1
- package/es/components/eftposPay/locales.d.ts +36 -0
- package/es/components/eftposPay/locales.js +42 -3
- package/es/components/eftposPay/manufacturer.d.ts +1 -0
- package/es/components/eftposPay/manufacturer.js +5 -0
- package/es/components/eftposPay/pay.js +6 -2
- package/es/components/eftposPay/store/index.d.ts +11 -4
- package/es/components/kioskSkuDetail/index.d.ts +3 -0
- package/es/components/kioskSkuDetail/index.js +266 -173
- package/es/components/kioskSkuDetail/index.less +49 -7
- package/es/components/kioskSkuDetail/locales.d.ts +6 -0
- package/es/components/kioskSkuDetail/locales.js +9 -3
- package/es/components/pay/toB/components/Cache/index.d.ts +1 -0
- package/es/components/pay/toB/components/EFTPOS/index.js +8 -1
- package/es/components/pay/toB/types/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentList/serve.js +14 -0
- package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +7 -6
- package/es/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
- package/es/components/ticketBooking/index.d.ts +16 -0
- package/es/plus/skuOptionsSelection/components/VariantCard/index.js +1 -1
- package/es/plus/skuOptionsSelection/locales.d.ts +3 -0
- package/es/plus/skuOptionsSelection/locales.js +3 -0
- package/es/pro/Login2.0/components/LoginCodeInput.js +36 -3
- package/es/pro/Login2.0/steps/CodeInput.js +37 -7
- package/lib/components/booking/components/footer/index.d.ts +1 -0
- package/lib/components/booking/info/index.d.ts +1 -0
- package/lib/components/checkout/PaymentModal.js +5 -2
- package/lib/components/checkout/components/PaymentOptionsModule/index.js +2 -1
- package/lib/components/eftposPay/aggregatePayment/hooks/useMicropay.d.ts +7 -0
- package/lib/components/eftposPay/aggregatePayment/hooks/useMicropay.js +133 -0
- package/lib/components/eftposPay/aggregatePayment/index.d.ts +3 -0
- package/lib/components/eftposPay/aggregatePayment/index.js +42 -0
- package/lib/components/eftposPay/aggregatePayment/service.d.ts +24 -0
- package/lib/components/eftposPay/aggregatePayment/service.js +81 -0
- package/lib/components/eftposPay/aggregatePayment/types.d.ts +106 -0
- package/lib/components/eftposPay/aggregatePayment/types.js +74 -0
- package/lib/components/eftposPay/aggregatePayment/utils/logs.d.ts +110 -0
- package/lib/components/eftposPay/aggregatePayment/utils/logs.js +294 -0
- package/lib/components/eftposPay/aggregatePayment/utils/payment.d.ts +139 -0
- package/lib/components/eftposPay/aggregatePayment/utils/payment.js +752 -0
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/app.d.ts +1 -1
- package/lib/components/eftposPay/app.js +5 -0
- package/lib/components/eftposPay/component/fail/failCustom.js +15 -9
- package/lib/components/eftposPay/component/fail/index.js +4 -1
- package/lib/components/eftposPay/const.d.ts +6 -1
- package/lib/components/eftposPay/const.js +3 -0
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +3 -2
- package/lib/components/eftposPay/hooks.js +16 -0
- package/lib/components/eftposPay/huifu/Action.d.ts +8 -0
- package/lib/components/eftposPay/huifu/Action.js +174 -0
- package/lib/components/eftposPay/huifu/const.d.ts +5 -0
- package/lib/components/eftposPay/huifu/const.js +86 -0
- package/lib/components/eftposPay/huifu/hooks.d.ts +25 -0
- package/lib/components/eftposPay/huifu/hooks.js +186 -0
- package/lib/components/eftposPay/huifu/index.d.ts +5 -0
- package/lib/components/eftposPay/huifu/index.js +200 -0
- package/lib/components/eftposPay/huifu/index.less +180 -0
- package/lib/components/eftposPay/huifu/types.d.ts +14 -0
- package/lib/components/eftposPay/huifu/types.js +17 -0
- package/lib/components/eftposPay/index.js +5 -1
- package/lib/components/eftposPay/locales.d.ts +36 -0
- package/lib/components/eftposPay/locales.js +42 -3
- package/lib/components/eftposPay/manufacturer.d.ts +1 -0
- package/lib/components/eftposPay/manufacturer.js +7 -0
- package/lib/components/eftposPay/pay.js +3 -2
- package/lib/components/eftposPay/store/index.d.ts +11 -4
- package/lib/components/kioskSkuDetail/index.d.ts +3 -0
- package/lib/components/kioskSkuDetail/index.js +180 -113
- package/lib/components/kioskSkuDetail/index.less +49 -7
- package/lib/components/kioskSkuDetail/locales.d.ts +6 -0
- package/lib/components/kioskSkuDetail/locales.js +9 -3
- package/lib/components/pay/toB/components/Cache/index.d.ts +1 -0
- package/lib/components/pay/toB/components/EFTPOS/index.js +8 -1
- package/lib/components/pay/toB/types/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentList/serve.js +15 -0
- package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +7 -6
- package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
- package/lib/components/ticketBooking/index.d.ts +16 -0
- package/lib/plus/skuOptionsSelection/components/VariantCard/index.js +2 -0
- package/lib/plus/skuOptionsSelection/locales.d.ts +3 -0
- package/lib/plus/skuOptionsSelection/locales.js +3 -0
- package/lib/pro/Login2.0/components/LoginCodeInput.js +26 -4
- package/lib/pro/Login2.0/steps/CodeInput.js +27 -5
- package/lowcode/kiosk-sku-detail/meta.ts +229 -94
- package/package.json +1 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useEffect, useState, useCallback } from 'react';
|
|
8
|
+
import useEngineContext from "../../../hooks/useEngineContext";
|
|
9
|
+
export var useTerminal = function useTerminal() {
|
|
10
|
+
var _context$appHelper, _interaction$utils, _interaction$utils$is;
|
|
11
|
+
var context = useEngineContext();
|
|
12
|
+
var _ref = ((_context$appHelper = context.appHelper) === null || _context$appHelper === void 0 ? void 0 : _context$appHelper.utils) || {},
|
|
13
|
+
interaction = _ref.interaction,
|
|
14
|
+
isTerminal = _ref.isTerminal;
|
|
15
|
+
return {
|
|
16
|
+
isTerminal: isTerminal && isTerminal() || (interaction === null || interaction === void 0 || (_interaction$utils = interaction.utils) === null || _interaction$utils === void 0 || (_interaction$utils$is = _interaction$utils.isAppEnv) === null || _interaction$utils$is === void 0 ? void 0 : _interaction$utils$is.call(_interaction$utils))
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 获取扫码设备连接状态
|
|
22
|
+
*/
|
|
23
|
+
export var useScannerDevice = function useScannerDevice() {
|
|
24
|
+
var _context$appHelper2;
|
|
25
|
+
var _useState = useState(false),
|
|
26
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
27
|
+
scannerStatus = _useState2[0],
|
|
28
|
+
setScannerStatus = _useState2[1];
|
|
29
|
+
var context = useEngineContext();
|
|
30
|
+
var _ref2 = ((_context$appHelper2 = context.appHelper) === null || _context$appHelper2 === void 0 ? void 0 : _context$appHelper2.utils) || {},
|
|
31
|
+
interaction = _ref2.interaction;
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
var _interaction$utils2, _interaction$utils2$p, _interaction$utils3, _interaction$utils3$m;
|
|
34
|
+
// 主动获取设备连接状态
|
|
35
|
+
interaction === null || interaction === void 0 || (_interaction$utils2 = interaction.utils) === null || _interaction$utils2 === void 0 || (_interaction$utils2$p = _interaction$utils2.postMessageToApp) === null || _interaction$utils2$p === void 0 || _interaction$utils2$p.call(_interaction$utils2, {
|
|
36
|
+
module: 'global',
|
|
37
|
+
key: 'get_peripherals_status',
|
|
38
|
+
data: {}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// 设备当前连接状态返回
|
|
42
|
+
interaction === null || interaction === void 0 || (_interaction$utils3 = interaction.utils) === null || _interaction$utils3 === void 0 || (_interaction$utils3$m = _interaction$utils3.mountFunction) === null || _interaction$utils3$m === void 0 || _interaction$utils3$m.call(_interaction$utils3, 'global', 'peripheralsStatus', function (strPeripherals) {
|
|
43
|
+
try {
|
|
44
|
+
var peripherals = JSON.parse(strPeripherals);
|
|
45
|
+
setScannerStatus((peripherals === null || peripherals === void 0 ? void 0 : peripherals.scanner) == 'connected');
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.error(err);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}, []);
|
|
51
|
+
return {
|
|
52
|
+
scannerStatus: scannerStatus
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 摄像头激活和状态获取
|
|
58
|
+
*/
|
|
59
|
+
export var useCameraDevice = function useCameraDevice() {
|
|
60
|
+
var _context$appHelper3, _interaction$utils5, _interaction$utils5$i;
|
|
61
|
+
var context = useEngineContext();
|
|
62
|
+
var _ref3 = ((_context$appHelper3 = context.appHelper) === null || _context$appHelper3 === void 0 ? void 0 : _context$appHelper3.utils) || {},
|
|
63
|
+
interaction = _ref3.interaction,
|
|
64
|
+
isTerminal = _ref3.isTerminal;
|
|
65
|
+
var activeCamera = useCallback(function () {
|
|
66
|
+
var _interaction$utils4, _interaction$utils4$p;
|
|
67
|
+
interaction === null || interaction === void 0 || (_interaction$utils4 = interaction.utils) === null || _interaction$utils4 === void 0 || (_interaction$utils4$p = _interaction$utils4.postMessageToApp) === null || _interaction$utils4$p === void 0 || _interaction$utils4$p.call(_interaction$utils4, {
|
|
68
|
+
module: 'global',
|
|
69
|
+
key: 'active_native_scanner',
|
|
70
|
+
data: {
|
|
71
|
+
source: 'eftposPay_huifu'
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}, []);
|
|
75
|
+
return {
|
|
76
|
+
activeCamera: activeCamera,
|
|
77
|
+
cameraStatus: isTerminal && isTerminal() || (interaction === null || interaction === void 0 || (_interaction$utils5 = interaction.utils) === null || _interaction$utils5 === void 0 || (_interaction$utils5$i = _interaction$utils5.isAppEnv) === null || _interaction$utils5$i === void 0 ? void 0 : _interaction$utils5$i.call(_interaction$utils5))
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 获取外部设备扫描结果
|
|
83
|
+
*/
|
|
84
|
+
export var useScanListener = function useScanListener() {
|
|
85
|
+
var _context$appHelper4, _interaction$utils6, _interaction$utils6$i;
|
|
86
|
+
var context = useEngineContext();
|
|
87
|
+
var _ref4 = ((_context$appHelper4 = context.appHelper) === null || _context$appHelper4 === void 0 ? void 0 : _context$appHelper4.utils) || {},
|
|
88
|
+
interaction = _ref4.interaction,
|
|
89
|
+
isTerminal = _ref4.isTerminal;
|
|
90
|
+
var _useState3 = useState({
|
|
91
|
+
type: 'scanner',
|
|
92
|
+
value: ''
|
|
93
|
+
}),
|
|
94
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
95
|
+
scanResult = _useState4[0],
|
|
96
|
+
setScanResult = _useState4[1];
|
|
97
|
+
var isNativeEnv = isTerminal && isTerminal() || (interaction === null || interaction === void 0 || (_interaction$utils6 = interaction.utils) === null || _interaction$utils6 === void 0 || (_interaction$utils6$i = _interaction$utils6.isAppEnv) === null || _interaction$utils6$i === void 0 ? void 0 : _interaction$utils6$i.call(_interaction$utils6));
|
|
98
|
+
useEffect(function () {
|
|
99
|
+
var _interaction$utils7, _interaction$utils7$m;
|
|
100
|
+
// 获取外部设备扫描结果
|
|
101
|
+
interaction === null || interaction === void 0 || (_interaction$utils7 = interaction.utils) === null || _interaction$utils7 === void 0 || (_interaction$utils7$m = _interaction$utils7.mountFunction) === null || _interaction$utils7$m === void 0 || _interaction$utils7$m.call(_interaction$utils7, 'global', 'peripheralsResult', function (strVal) {
|
|
102
|
+
try {
|
|
103
|
+
var val = JSON.parse(strVal);
|
|
104
|
+
setScanResult(val);
|
|
105
|
+
} catch (err) {
|
|
106
|
+
console.error(err);
|
|
107
|
+
setScanResult({
|
|
108
|
+
type: 'scanner',
|
|
109
|
+
value: ''
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// 支持在web环境下监听外部设备扫描结果,使用监听键盘事件
|
|
115
|
+
var inputBuffer = '';
|
|
116
|
+
var lastInputTime = 0;
|
|
117
|
+
var inputTimer = null;
|
|
118
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
119
|
+
// 过滤特殊键
|
|
120
|
+
if (e.key === 'Shift' || e.key === 'Control' || e.key === 'Alt' || e.key === 'Meta' || e.key === 'Tab' || e.key === 'CapsLock' || e.key === 'Escape' || e.key.startsWith('Arrow') || e.ctrlKey || e.metaKey) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
var currentTime = Date.now();
|
|
124
|
+
var timeDiff = currentTime - lastInputTime;
|
|
125
|
+
|
|
126
|
+
// Enter键表示扫码结束
|
|
127
|
+
if (e.key === 'Enter') {
|
|
128
|
+
var trimmedCode = inputBuffer.trim();
|
|
129
|
+
if (trimmedCode.length >= 10) {
|
|
130
|
+
setScanResult({
|
|
131
|
+
type: 'scanner',
|
|
132
|
+
value: trimmedCode
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
inputBuffer = '';
|
|
136
|
+
lastInputTime = 0;
|
|
137
|
+
if (inputTimer) {
|
|
138
|
+
clearTimeout(inputTimer);
|
|
139
|
+
inputTimer = null;
|
|
140
|
+
}
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// 输入间隔 < 30ms 认为是扫码枪
|
|
145
|
+
if (timeDiff < 30 && inputBuffer.length > 0) {
|
|
146
|
+
inputBuffer += e.key;
|
|
147
|
+
} else {
|
|
148
|
+
inputBuffer = e.key;
|
|
149
|
+
}
|
|
150
|
+
lastInputTime = currentTime;
|
|
151
|
+
|
|
152
|
+
// 清除之前的定时器
|
|
153
|
+
if (inputTimer) {
|
|
154
|
+
clearTimeout(inputTimer);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// 100ms 内没有新输入,认为扫码完成
|
|
158
|
+
inputTimer = setTimeout(function () {
|
|
159
|
+
var trimmedCode = inputBuffer.trim();
|
|
160
|
+
if (trimmedCode.length >= 10) {
|
|
161
|
+
setScanResult({
|
|
162
|
+
type: 'scanner',
|
|
163
|
+
value: trimmedCode
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
inputBuffer = '';
|
|
167
|
+
}, 100);
|
|
168
|
+
};
|
|
169
|
+
if (!isNativeEnv) {
|
|
170
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
171
|
+
}
|
|
172
|
+
return function () {
|
|
173
|
+
if (!isNativeEnv) {
|
|
174
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
175
|
+
}
|
|
176
|
+
if (inputTimer) {
|
|
177
|
+
clearTimeout(inputTimer);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}, []);
|
|
181
|
+
return {
|
|
182
|
+
scanResult: scanResult
|
|
183
|
+
};
|
|
184
|
+
};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
import React, { useEffect, useRef } from 'react';
|
|
8
|
+
import { locales } from '@pisell/utils';
|
|
9
|
+
import "./index.less";
|
|
10
|
+
import { useContextData, updateStatus, updateState } from "../store";
|
|
11
|
+
import { ScanAction } from "./Action";
|
|
12
|
+
import { useMicropay } from "../aggregatePayment";
|
|
13
|
+
import { EPaymentStatus } from "../aggregatePayment/types";
|
|
14
|
+
import { useStoreRef, useFail } from "../hooks";
|
|
15
|
+
import { useDispatch, updateNextStep, updateCustom } from "../store";
|
|
16
|
+
import { ModeEnum, StatusEnum } from "../const";
|
|
17
|
+
import { getPayParams } from "../helper";
|
|
18
|
+
import useEngineContext from "../../../hooks/useEngineContext";
|
|
19
|
+
var Huifu = function Huifu(_ref) {
|
|
20
|
+
var _context$appHelper, _data$custom;
|
|
21
|
+
var isNativeApp = _ref.isNativeApp,
|
|
22
|
+
onChange = _ref.onChange;
|
|
23
|
+
var data = useContextData();
|
|
24
|
+
var context = useEngineContext();
|
|
25
|
+
var _ref2 = ((_context$appHelper = context.appHelper) === null || _context$appHelper === void 0 ? void 0 : _context$appHelper.utils) || {},
|
|
26
|
+
interaction = _ref2.interaction;
|
|
27
|
+
|
|
28
|
+
// 数据源
|
|
29
|
+
var _useStoreRef = useStoreRef(),
|
|
30
|
+
statusRef = _useStoreRef.statusRef,
|
|
31
|
+
numRef = _useStoreRef.numRef,
|
|
32
|
+
netRef = _useStoreRef.netRef,
|
|
33
|
+
modeRef = _useStoreRef.modeRef,
|
|
34
|
+
amountRef = _useStoreRef.amountRef,
|
|
35
|
+
orderIdRef = _useStoreRef.orderIdRef,
|
|
36
|
+
deviceRef = _useStoreRef.deviceRef,
|
|
37
|
+
payRef = _useStoreRef.payRef;
|
|
38
|
+
var dispatch = useDispatch();
|
|
39
|
+
var fail = useFail(0);
|
|
40
|
+
var failRef = useRef(fail);
|
|
41
|
+
|
|
42
|
+
// 当前组件数据
|
|
43
|
+
var initRef = useRef(false);
|
|
44
|
+
var unloadRef = useRef(false);
|
|
45
|
+
var clearRef = useRef(null);
|
|
46
|
+
var payment = useMicropay({
|
|
47
|
+
paymentCode: (data === null || data === void 0 || (_data$custom = data.custom) === null || _data$custom === void 0 ? void 0 : _data$custom.custom_payment_code) || 'EFTPOS_HUIFU',
|
|
48
|
+
paymentNum: numRef.current || '',
|
|
49
|
+
shouldContinue: function shouldContinue() {
|
|
50
|
+
return !(unloadRef.current || !netRef.current);
|
|
51
|
+
},
|
|
52
|
+
callback: function callback(_instance, response) {
|
|
53
|
+
console.log('callback = ', response);
|
|
54
|
+
var _ref3 = response || {},
|
|
55
|
+
status = _ref3.status,
|
|
56
|
+
data = _ref3.data;
|
|
57
|
+
if (status === EPaymentStatus.Success) {
|
|
58
|
+
dispatch(updateNextStep());
|
|
59
|
+
// 将所有步骤状态设为完成 resolve
|
|
60
|
+
dispatch(updateCustom({
|
|
61
|
+
card_reader_surcharge: 0,
|
|
62
|
+
receipt: []
|
|
63
|
+
}));
|
|
64
|
+
// 更新支付状态与文案
|
|
65
|
+
dispatch(updateState({
|
|
66
|
+
status: 'success',
|
|
67
|
+
title: locales.getText('page.eftpos-pay.text.successful')(modeRef.current)
|
|
68
|
+
}));
|
|
69
|
+
clearRef.current = setTimeout(function () {
|
|
70
|
+
var params = getPayParams({
|
|
71
|
+
mode: modeRef.current,
|
|
72
|
+
amount: amountRef.current,
|
|
73
|
+
order_id: orderIdRef.current,
|
|
74
|
+
number: numRef.current,
|
|
75
|
+
device: deviceRef.current,
|
|
76
|
+
pay: payRef.current,
|
|
77
|
+
custom: {
|
|
78
|
+
card_reader_surcharge: 0,
|
|
79
|
+
receipt: []
|
|
80
|
+
}
|
|
81
|
+
}, 'success');
|
|
82
|
+
onChange('success', _objectSpread(_objectSpread({}, params), {}, {
|
|
83
|
+
receipt: []
|
|
84
|
+
}));
|
|
85
|
+
}, 1000);
|
|
86
|
+
} else if (status === EPaymentStatus.Failed) {
|
|
87
|
+
var _failRef$current;
|
|
88
|
+
(_failRef$current = failRef.current) === null || _failRef$current === void 0 || _failRef$current.call(failRef, data, false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
useEffect(function () {
|
|
93
|
+
failRef.current = fail;
|
|
94
|
+
}, [fail]);
|
|
95
|
+
useEffect(function () {
|
|
96
|
+
if (statusRef.current === StatusEnum.Success || statusRef.current === StatusEnum.Fail) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (initRef.current) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
initRef.current = true;
|
|
103
|
+
|
|
104
|
+
// 存在支付流水号
|
|
105
|
+
if (numRef.current) {
|
|
106
|
+
console.log('payment.query');
|
|
107
|
+
payment.query();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
console.log('data?.custom =>>>> ', data === null || data === void 0 ? void 0 : data.custom);
|
|
111
|
+
// 如果是退款场景,直接进入退款流程
|
|
112
|
+
var isPay = modeRef.current === ModeEnum.Pay || modeRef.current === ModeEnum.FullPay;
|
|
113
|
+
if (!isPay) {
|
|
114
|
+
var _data$custom2;
|
|
115
|
+
payment.run({
|
|
116
|
+
orderPaymentId: data === null || data === void 0 || (_data$custom2 = data.custom) === null || _data$custom2 === void 0 ? void 0 : _data$custom2.order_payment_id
|
|
117
|
+
});
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
}, []);
|
|
121
|
+
useEffect(function () {
|
|
122
|
+
if (isNativeApp && (data === null || data === void 0 ? void 0 : data.status) === StatusEnum.Init) {
|
|
123
|
+
var _interaction$utils, _interaction$utils$po;
|
|
124
|
+
// 如果是原生App调用并且是init状态,则显示关闭按钮
|
|
125
|
+
interaction === null || interaction === void 0 || (_interaction$utils = interaction.utils) === null || _interaction$utils === void 0 || (_interaction$utils$po = _interaction$utils.postMessageToApp) === null || _interaction$utils$po === void 0 || _interaction$utils$po.call(_interaction$utils, {
|
|
126
|
+
module: 'pos',
|
|
127
|
+
key: 'other',
|
|
128
|
+
data: {
|
|
129
|
+
key: 'show_close_button'
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}, [isNativeApp, data === null || data === void 0 ? void 0 : data.status]);
|
|
134
|
+
|
|
135
|
+
// 页面卸载处理
|
|
136
|
+
useEffect(function () {
|
|
137
|
+
return function () {
|
|
138
|
+
unloadRef.current = true;
|
|
139
|
+
if (clearRef.current) {
|
|
140
|
+
clearTimeout(clearRef.current);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
}, []);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 更新到加载状态
|
|
147
|
+
*/
|
|
148
|
+
var updateToLoading = function updateToLoading() {
|
|
149
|
+
// 如果是原生App调用,进入加载状态则隐藏关闭按钮
|
|
150
|
+
if (isNativeApp) {
|
|
151
|
+
var _interaction$utils2, _interaction$utils2$p;
|
|
152
|
+
interaction === null || interaction === void 0 || (_interaction$utils2 = interaction.utils) === null || _interaction$utils2 === void 0 || (_interaction$utils2$p = _interaction$utils2.postMessageToApp) === null || _interaction$utils2$p === void 0 || _interaction$utils2$p.call(_interaction$utils2, {
|
|
153
|
+
module: 'pos',
|
|
154
|
+
key: 'other',
|
|
155
|
+
data: {
|
|
156
|
+
key: 'hide_close_button'
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
dispatch(updateStatus(StatusEnum.Loading));
|
|
161
|
+
dispatch(updateState({
|
|
162
|
+
title: locales.getText('page.eftpos-pay.text.loading')(modeRef.current)
|
|
163
|
+
}));
|
|
164
|
+
};
|
|
165
|
+
var onClose = function onClose() {
|
|
166
|
+
onChange('fail', {
|
|
167
|
+
number: data.number,
|
|
168
|
+
uniquePaymentNumber: data.number,
|
|
169
|
+
device: data.device,
|
|
170
|
+
order_id: data.order_id
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
var onPayClick = function onPayClick(scanResult) {
|
|
174
|
+
console.log('scanResult = ', scanResult);
|
|
175
|
+
updateToLoading();
|
|
176
|
+
payment.run({
|
|
177
|
+
authCode: scanResult
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
var onScanCallback = function onScanCallback(scanResult) {
|
|
181
|
+
console.log('scanResult = ', scanResult);
|
|
182
|
+
updateToLoading();
|
|
183
|
+
payment.run({
|
|
184
|
+
authCode: scanResult
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, (data === null || data === void 0 ? void 0 : data.status) === StatusEnum.Init && /*#__PURE__*/React.createElement(ScanAction, {
|
|
188
|
+
onClose: onClose,
|
|
189
|
+
onScanCallback: onScanCallback,
|
|
190
|
+
onPayClick: onPayClick,
|
|
191
|
+
isNativeApp: isNativeApp
|
|
192
|
+
}), (data === null || data === void 0 ? void 0 : data.status) === StatusEnum.Loading ? /*#__PURE__*/React.createElement("div", {
|
|
193
|
+
className: "pisell-lowcode__eft-pay-step-item pisell-lowcode__eft-pay-step-item-tip"
|
|
194
|
+
}, locales.getText('page.eftpos-pay.text.processing')) : null);
|
|
195
|
+
};
|
|
196
|
+
export default Huifu;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
.pisell-eftpos-pay-huifu {
|
|
2
|
+
&-scan {
|
|
3
|
+
height: 100%;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
|
|
7
|
+
&-status {
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
&-wrapper {
|
|
11
|
+
position: absolute;
|
|
12
|
+
left: -4px;
|
|
13
|
+
bottom: 4px;
|
|
14
|
+
width: 14px;
|
|
15
|
+
height: 14px;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&-header {
|
|
20
|
+
position: relative;
|
|
21
|
+
padding-bottom: 20px;
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
|
|
25
|
+
&-close {
|
|
26
|
+
position: absolute;
|
|
27
|
+
right: -10px;
|
|
28
|
+
padding: 10px;
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&-divider {
|
|
33
|
+
position: absolute;
|
|
34
|
+
bottom: 0;
|
|
35
|
+
left: -24px;
|
|
36
|
+
right: -24px;
|
|
37
|
+
height: 1px;
|
|
38
|
+
background: #eaecf0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&-title {
|
|
42
|
+
color: #101828;
|
|
43
|
+
font-size: 18px;
|
|
44
|
+
font-weight: 600;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&-content {
|
|
49
|
+
padding-bottom: 24px;
|
|
50
|
+
flex: 1;
|
|
51
|
+
display: flex;
|
|
52
|
+
flex-direction: column;
|
|
53
|
+
gap: 20px;
|
|
54
|
+
|
|
55
|
+
&-title {
|
|
56
|
+
color: #344054;
|
|
57
|
+
font-size: 14px;
|
|
58
|
+
font-weight: 600;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&-scanner {
|
|
62
|
+
padding: 16px;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
gap: 16px;
|
|
66
|
+
border-radius: 12px;
|
|
67
|
+
|
|
68
|
+
&-right {
|
|
69
|
+
flex: 1;
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-direction: column;
|
|
72
|
+
gap: 4px;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&-scanner-active {
|
|
77
|
+
border: 1px solid #75e0a7;
|
|
78
|
+
background: #f6fef9;
|
|
79
|
+
box-shadow: 0 1px 2px 0 rgba(16, 24, 40, 0.05);
|
|
80
|
+
|
|
81
|
+
&-title {
|
|
82
|
+
color: #067647;
|
|
83
|
+
font-size: 14px;
|
|
84
|
+
font-weight: 600;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&-desc {
|
|
88
|
+
color: #067647;
|
|
89
|
+
font-size: 14px;
|
|
90
|
+
font-weight: 400;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&-scanner-unactive {
|
|
95
|
+
border: 1px solid #fda29b;
|
|
96
|
+
background: #fffbfa;
|
|
97
|
+
box-shadow: 0 1px 2px 0 rgba(16, 24, 40, 0.05);
|
|
98
|
+
|
|
99
|
+
&-title {
|
|
100
|
+
color: #b42318;
|
|
101
|
+
font-size: 14px;
|
|
102
|
+
font-weight: 600;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&-desc {
|
|
106
|
+
color: #b42318;
|
|
107
|
+
font-size: 14px;
|
|
108
|
+
font-weight: 400;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&-camera {
|
|
113
|
+
padding: 16px;
|
|
114
|
+
display: flex;
|
|
115
|
+
align-items: center;
|
|
116
|
+
gap: 8px;
|
|
117
|
+
border-radius: 12px;
|
|
118
|
+
background: #f2f4f7;
|
|
119
|
+
cursor: pointer;
|
|
120
|
+
|
|
121
|
+
&-right {
|
|
122
|
+
flex: 1;
|
|
123
|
+
display: flex;
|
|
124
|
+
flex-direction: column;
|
|
125
|
+
gap: 6px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
&-title {
|
|
129
|
+
color: #175cd3;
|
|
130
|
+
font-size: 14px;
|
|
131
|
+
font-weight: 500;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&-desc {
|
|
135
|
+
color: #000;
|
|
136
|
+
font-size: 14px;
|
|
137
|
+
font-weight: 400;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
&-input-wrapper {
|
|
142
|
+
display: flex;
|
|
143
|
+
flex-direction: column;
|
|
144
|
+
gap: 8px;
|
|
145
|
+
|
|
146
|
+
&-title {
|
|
147
|
+
color: #344054;
|
|
148
|
+
font-size: 14px;
|
|
149
|
+
font-weight: 600;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&-tip {
|
|
153
|
+
color: #475467;
|
|
154
|
+
font-size: 14px;
|
|
155
|
+
font-weight: 400;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
&-footer {
|
|
161
|
+
position: relative;
|
|
162
|
+
padding-top: 24px;
|
|
163
|
+
display: flex;
|
|
164
|
+
gap: 12px;
|
|
165
|
+
|
|
166
|
+
&-divider {
|
|
167
|
+
position: absolute;
|
|
168
|
+
top: 0;
|
|
169
|
+
left: -24px;
|
|
170
|
+
right: -24px;
|
|
171
|
+
height: 1px;
|
|
172
|
+
background: #eaecf0;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
&-button {
|
|
176
|
+
height: 48px;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare type Peripherals = {
|
|
2
|
+
scanner: 'none' | 'connected' | 'disconnect';
|
|
3
|
+
nfc: 'none' | 'connected' | 'disconnect';
|
|
4
|
+
};
|
|
5
|
+
export interface HuifuProps {
|
|
6
|
+
isNativeApp?: boolean;
|
|
7
|
+
onChange: (status: any, params: any) => void;
|
|
8
|
+
}
|
|
9
|
+
export interface HuifuActionProps {
|
|
10
|
+
isNativeApp?: boolean;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
onPayClick: (scanResult: string) => void;
|
|
13
|
+
onScanCallback: (scanResult: string) => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -119,7 +119,7 @@ export default (function (props) {
|
|
|
119
119
|
if (props.source === RestoreEumn.Restore) {
|
|
120
120
|
return props.params;
|
|
121
121
|
}
|
|
122
|
-
|
|
122
|
+
var initState = getInitState(props.type, props.params ? _objectSpread(_objectSpread({
|
|
123
123
|
mode: mode
|
|
124
124
|
}, props.params), {}, {
|
|
125
125
|
symbol: current
|
|
@@ -127,6 +127,10 @@ export default (function (props) {
|
|
|
127
127
|
mode: mode,
|
|
128
128
|
symbol: current
|
|
129
129
|
});
|
|
130
|
+
// 手动将 originalParams 添加到 State 根级别
|
|
131
|
+
return _objectSpread(_objectSpread({}, initState), {}, {
|
|
132
|
+
originalParams: props.params || undefined
|
|
133
|
+
});
|
|
130
134
|
}, [mode, props.params, props.type, symbol]);
|
|
131
135
|
var stateRef = useRef(state);
|
|
132
136
|
useEffect(function () {
|
|
@@ -107,6 +107,18 @@ declare const _default: {
|
|
|
107
107
|
'page.eftpos-pay.text.not.connected': string;
|
|
108
108
|
'page.eftpos-pay.text.tyro-btn': (key: string) => string;
|
|
109
109
|
'page.eftpos-pay.text.tyro': (key: string) => string;
|
|
110
|
+
'page.eftpos-pay.text.huifu.scan.title': string;
|
|
111
|
+
'page.eftpos-pay.text.huifu.scan.gun.connected': string;
|
|
112
|
+
'page.eftpos-pay.text.huifu.scan.gun.connected-desc': string;
|
|
113
|
+
'page.eftpos-pay.text.huifu.scan.gun.not-connected': string;
|
|
114
|
+
'page.eftpos-pay.text.huifu.scan.gun.not-connected-desc': string;
|
|
115
|
+
'page.eftpos-pay.text.huifu.scan.camera-title': string;
|
|
116
|
+
'page.eftpos-pay.text.huifu.scan.camera-desc': string;
|
|
117
|
+
'page.eftpos-pay.text.huifu.scan.input-title': string;
|
|
118
|
+
'page.eftpos-pay.text.huifu.scan.input-placeholder': string;
|
|
119
|
+
'page.eftpos-pay.text.huifu.scan.input-tip': string;
|
|
120
|
+
'page.eftpos-pay.text.huifu.scan.cancel': string;
|
|
121
|
+
'page.eftpos-pay.text.huifu.scan.confirm': string;
|
|
110
122
|
};
|
|
111
123
|
'zh-CN': {
|
|
112
124
|
'page.eftpos-pay.text.loading': (mode: string) => string;
|
|
@@ -216,6 +228,18 @@ declare const _default: {
|
|
|
216
228
|
'page.eftpos-pay.text.not.connected': string;
|
|
217
229
|
'page.eftpos-pay.text.tyro-btn': (key: string) => string;
|
|
218
230
|
'page.eftpos-pay.text.tyro': (key: string) => string | string[];
|
|
231
|
+
'page.eftpos-pay.text.huifu.scan.title': string;
|
|
232
|
+
'page.eftpos-pay.text.huifu.scan.gun.connected': string;
|
|
233
|
+
'page.eftpos-pay.text.huifu.scan.gun.connected-desc': string;
|
|
234
|
+
'page.eftpos-pay.text.huifu.scan.gun.not-connected': string;
|
|
235
|
+
'page.eftpos-pay.text.huifu.scan.gun.not-connected-desc': string;
|
|
236
|
+
'page.eftpos-pay.text.huifu.scan.camera-title': string;
|
|
237
|
+
'page.eftpos-pay.text.huifu.scan.camera-desc': string;
|
|
238
|
+
'page.eftpos-pay.text.huifu.scan.input-title': string;
|
|
239
|
+
'page.eftpos-pay.text.huifu.scan.input-placeholder': string;
|
|
240
|
+
'page.eftpos-pay.text.huifu.scan.input-tip': string;
|
|
241
|
+
'page.eftpos-pay.text.huifu.scan.cancel': string;
|
|
242
|
+
'page.eftpos-pay.text.huifu.scan.confirm': string;
|
|
219
243
|
};
|
|
220
244
|
'zh-HK': {
|
|
221
245
|
'page.eftpos-pay.text.loading': (mode: string) => string;
|
|
@@ -325,6 +349,18 @@ declare const _default: {
|
|
|
325
349
|
'page.eftpos-pay.text.not.connected': string;
|
|
326
350
|
'page.eftpos-pay.text.tyro-btn': (key: string) => string;
|
|
327
351
|
'page.eftpos-pay.text.tyro': (key: string) => string | string[];
|
|
352
|
+
'page.eftpos-pay.text.huifu.scan.title': string;
|
|
353
|
+
'page.eftpos-pay.text.huifu.scan.gun.connected': string;
|
|
354
|
+
'page.eftpos-pay.text.huifu.scan.gun.connected-desc': string;
|
|
355
|
+
'page.eftpos-pay.text.huifu.scan.gun.not-connected': string;
|
|
356
|
+
'page.eftpos-pay.text.huifu.scan.gun.not-connected-desc': string;
|
|
357
|
+
'page.eftpos-pay.text.huifu.scan.camera-title': string;
|
|
358
|
+
'page.eftpos-pay.text.huifu.scan.camera-desc': string;
|
|
359
|
+
'page.eftpos-pay.text.huifu.scan.input-title': string;
|
|
360
|
+
'page.eftpos-pay.text.huifu.scan.input-placeholder': string;
|
|
361
|
+
'page.eftpos-pay.text.huifu.scan.input-tip': string;
|
|
362
|
+
'page.eftpos-pay.text.huifu.scan.cancel': string;
|
|
363
|
+
'page.eftpos-pay.text.huifu.scan.confirm': string;
|
|
328
364
|
};
|
|
329
365
|
};
|
|
330
366
|
export default _default;
|