@pisell/materials 2.2.32 → 2.2.34
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 +7 -7
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +5 -5
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +17 -17
- package/es/components/iconfont/index.js +1 -1
- package/es/components/pisellInformationEntry/Input/index.js +9 -3
- package/es/components/pisellInformationEntry/constants.d.ts +10 -0
- package/es/components/pisellInformationEntry/constants.js +10 -0
- package/es/components/pisellInformationEntry/hooks/useTerminalPeripherals.d.ts +8 -0
- package/es/components/pisellInformationEntry/hooks/useTerminalPeripherals.js +54 -0
- package/es/components/pisellInformationEntry/index.js +21 -4
- package/es/components/pisellInformationEntry/index.less +1 -1
- package/es/components/pisellLoading/index.d.ts +2 -0
- package/es/components/pisellLoading/index.js +3 -1
- package/es/components/pisellStatisticList/index.less +2 -1
- package/es/components/pisellWalletPassCard/index.d.ts +2 -0
- package/es/components/pisellWalletPassCard/index.js +16 -4
- package/es/components/pisellWalletPassCard/index.less +4 -0
- package/es/components/select-time/RightPanel/index.d.ts +2 -2
- package/es/components/select-time/RightPanel/index.js +7 -7
- package/es/components/virtual-keyboard/Keyboard/index.d.ts +1 -0
- package/es/components/virtual-keyboard/Keyboard/index.js +10 -2
- package/es/locales/en-US.d.ts +2 -0
- package/es/locales/en-US.js +3 -1
- package/es/locales/zh-CN.d.ts +2 -0
- package/es/locales/zh-CN.js +3 -1
- package/es/locales/zh-TW.d.ts +2 -0
- package/es/locales/zh-TW.js +3 -1
- package/lib/components/iconfont/index.js +1 -1
- package/lib/components/pisellInformationEntry/Input/index.js +9 -1
- package/lib/components/pisellInformationEntry/constants.d.ts +10 -0
- package/lib/components/pisellInformationEntry/constants.js +12 -0
- package/lib/components/pisellInformationEntry/hooks/useTerminalPeripherals.d.ts +8 -0
- package/lib/components/pisellInformationEntry/hooks/useTerminalPeripherals.js +83 -0
- package/lib/components/pisellInformationEntry/index.js +18 -2
- package/lib/components/pisellInformationEntry/index.less +1 -1
- package/lib/components/pisellLoading/index.d.ts +2 -0
- package/lib/components/pisellLoading/index.js +2 -1
- package/lib/components/pisellStatisticList/index.less +2 -1
- package/lib/components/pisellWalletPassCard/index.d.ts +2 -0
- package/lib/components/pisellWalletPassCard/index.js +8 -4
- package/lib/components/pisellWalletPassCard/index.less +4 -0
- package/lib/components/select-time/RightPanel/index.d.ts +2 -2
- package/lib/components/virtual-keyboard/Keyboard/index.d.ts +1 -0
- package/lib/components/virtual-keyboard/Keyboard/index.js +15 -2
- package/lib/locales/en-US.d.ts +2 -0
- package/lib/locales/en-US.js +3 -1
- package/lib/locales/zh-CN.d.ts +2 -0
- package/lib/locales/zh-CN.js +3 -1
- package/lib/locales/zh-TW.d.ts +2 -0
- package/lib/locales/zh-TW.js +3 -1
- package/lowcode/pisell-card-list/meta.ts +60 -24
- package/lowcode/pisell-information-entry/meta.ts +22 -7
- package/lowcode/pisell-loading/meta.ts +8 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2
2
|
import { createFromIconfontCN } from '@ant-design/icons';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
var MyIcon = createFromIconfontCN({
|
|
5
|
-
scriptUrl: 'https://
|
|
5
|
+
scriptUrl: 'https://static.pisellcdn.com/pisell2iconfont.js' // 在 iconfont.cn 上生成
|
|
6
6
|
});
|
|
7
7
|
|
|
8
8
|
var IconFont = function IconFont(props) {
|
|
@@ -11,7 +11,7 @@ import Iconfont from "../../iconfont";
|
|
|
11
11
|
import "./index.less";
|
|
12
12
|
import { getText } from "../../../locales";
|
|
13
13
|
var PisellEntryInput = function PisellEntryInput(props) {
|
|
14
|
-
var
|
|
14
|
+
var _onChange = props.onChange,
|
|
15
15
|
searchDescribe = props.searchDescribe;
|
|
16
16
|
var _useState = useState(''),
|
|
17
17
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -25,7 +25,13 @@ var PisellEntryInput = function PisellEntryInput(props) {
|
|
|
25
25
|
autoFocus: true,
|
|
26
26
|
value: value,
|
|
27
27
|
onChange: function onChange(e) {
|
|
28
|
-
|
|
28
|
+
setValue(e.target.value);
|
|
29
|
+
if (!e.target.value) {
|
|
30
|
+
_onChange(e.target.value);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
onPressEnter: function onPressEnter(e) {
|
|
34
|
+
_onChange(value);
|
|
29
35
|
},
|
|
30
36
|
style: {
|
|
31
37
|
flex: 1
|
|
@@ -40,7 +46,7 @@ var PisellEntryInput = function PisellEntryInput(props) {
|
|
|
40
46
|
}), /*#__PURE__*/React.createElement(Button, {
|
|
41
47
|
size: "large",
|
|
42
48
|
onClick: function onClick() {
|
|
43
|
-
return
|
|
49
|
+
return _onChange(value);
|
|
44
50
|
},
|
|
45
51
|
disabled: !value
|
|
46
52
|
}, getText('pisell-information-entry-input-search'))), /*#__PURE__*/React.createElement("div", {
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { EntryModeType } from './index';
|
|
2
2
|
export declare const entryModeTextIcon: Record<EntryModeType['type'], any>;
|
|
3
|
+
export declare const entryModeErrorTextIcon: {
|
|
4
|
+
scanner: {
|
|
5
|
+
icon: string;
|
|
6
|
+
text: string;
|
|
7
|
+
};
|
|
8
|
+
nfc: {
|
|
9
|
+
icon: string;
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
3
13
|
export declare const passiveModeType: string[];
|
|
@@ -16,6 +16,16 @@ export var entryModeTextIcon = {
|
|
|
16
16
|
text: 'NFC ready'
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
+
export var entryModeErrorTextIcon = {
|
|
20
|
+
scanner: {
|
|
21
|
+
icon: 'pisell2-a-Scanner11',
|
|
22
|
+
text: 'Scanner'
|
|
23
|
+
},
|
|
24
|
+
nfc: {
|
|
25
|
+
icon: 'pisell2-a-NFC1',
|
|
26
|
+
text: 'NFC'
|
|
27
|
+
}
|
|
28
|
+
};
|
|
19
29
|
|
|
20
30
|
// 没有操作界面的输入模式
|
|
21
31
|
export var passiveModeType = ['scanner', 'nfc'];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare type Peripherals = {
|
|
2
|
+
scanner: 'none' | 'connected' | 'disconnect';
|
|
3
|
+
nfc: 'none' | 'connected' | 'disconnect';
|
|
4
|
+
};
|
|
5
|
+
declare const useTerminalPeripherals: (onChange?: ((val: string) => void) | undefined) => {
|
|
6
|
+
peripheralsStatus: Peripherals;
|
|
7
|
+
};
|
|
8
|
+
export default useTerminalPeripherals;
|
|
@@ -0,0 +1,54 @@
|
|
|
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(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useEffect, useState } from 'react';
|
|
8
|
+
import useEngineContext from "../../../hooks/useEngineContext";
|
|
9
|
+
var useTerminalPeripherals = function useTerminalPeripherals(onChange) {
|
|
10
|
+
var _context$appHelper;
|
|
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
|
+
var _useState = useState({
|
|
15
|
+
scanner: 'none',
|
|
16
|
+
nfc: 'none'
|
|
17
|
+
}),
|
|
18
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
19
|
+
peripheralsStatus = _useState2[0],
|
|
20
|
+
setPeripheralsStatus = _useState2[1];
|
|
21
|
+
useEffect(function () {
|
|
22
|
+
var _interaction$utils, _interaction$utils$mo, _interaction$utils2, _interaction$utils2$p, _interaction$utils3, _interaction$utils3$m;
|
|
23
|
+
// 获取外部设备扫描结果
|
|
24
|
+
interaction === null || interaction === void 0 ? void 0 : (_interaction$utils = interaction.utils) === null || _interaction$utils === void 0 ? void 0 : (_interaction$utils$mo = _interaction$utils.mountFunction) === null || _interaction$utils$mo === void 0 ? void 0 : _interaction$utils$mo.call(_interaction$utils, 'global', 'peripheralsResult', function (strVal) {
|
|
25
|
+
try {
|
|
26
|
+
var _val = JSON.parse(strVal);
|
|
27
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(_val.value);
|
|
28
|
+
} catch (err) {
|
|
29
|
+
console.error(err);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// 主动获取设备连接状态
|
|
34
|
+
interaction === null || interaction === void 0 ? void 0 : (_interaction$utils2 = interaction.utils) === null || _interaction$utils2 === void 0 ? void 0 : (_interaction$utils2$p = _interaction$utils2.postMessageToApp) === null || _interaction$utils2$p === void 0 ? void 0 : _interaction$utils2$p.call(_interaction$utils2, {
|
|
35
|
+
module: 'global',
|
|
36
|
+
key: 'get_peripherals_status',
|
|
37
|
+
data: {}
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// 设备当前连接状态返回
|
|
41
|
+
interaction === null || interaction === void 0 ? void 0 : (_interaction$utils3 = interaction.utils) === null || _interaction$utils3 === void 0 ? void 0 : (_interaction$utils3$m = _interaction$utils3.mountFunction) === null || _interaction$utils3$m === void 0 ? void 0 : _interaction$utils3$m.call(_interaction$utils3, 'global', 'peripheralsStatus', function (strPeripherals) {
|
|
42
|
+
try {
|
|
43
|
+
var peripherals = JSON.parse(strPeripherals);
|
|
44
|
+
setPeripheralsStatus(peripherals);
|
|
45
|
+
} catch (err) {
|
|
46
|
+
console.error(err);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}, []);
|
|
50
|
+
return {
|
|
51
|
+
peripheralsStatus: peripheralsStatus
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export default useTerminalPeripherals;
|
|
@@ -19,11 +19,12 @@ import classNames from 'classnames';
|
|
|
19
19
|
import usePisellConfig from "../pisell-config-provider/hooks/usePisellConfig";
|
|
20
20
|
import PisellCard from "../pisellCard";
|
|
21
21
|
import Iconfont from "../iconfont";
|
|
22
|
-
import { entryModeTextIcon, passiveModeType } from "./constants";
|
|
22
|
+
import { entryModeErrorTextIcon, entryModeTextIcon, passiveModeType } from "./constants";
|
|
23
23
|
import Scan from "./Scan";
|
|
24
24
|
import Button from "../button";
|
|
25
25
|
import Input from "./Input";
|
|
26
26
|
import { hasCamera } from "./utils";
|
|
27
|
+
import useTerminalPeripherals from "./hooks/useTerminalPeripherals";
|
|
27
28
|
import "./index.less";
|
|
28
29
|
var CardButton = function CardButton(props) {
|
|
29
30
|
var icon = props.icon,
|
|
@@ -44,6 +45,8 @@ var PisellInformationEntry = function PisellInformationEntry(props) {
|
|
|
44
45
|
_useState2 = _slicedToArray(_useState, 2),
|
|
45
46
|
currentType = _useState2[0],
|
|
46
47
|
setCurrentType = _useState2[1];
|
|
48
|
+
var _useTerminalPeriphera = useTerminalPeripherals(onChange),
|
|
49
|
+
peripheralsStatus = _useTerminalPeriphera.peripheralsStatus;
|
|
47
50
|
|
|
48
51
|
// 可用录入模式
|
|
49
52
|
var _useState3 = useState(entryModes),
|
|
@@ -72,11 +75,20 @@ var PisellInformationEntry = function PisellInformationEntry(props) {
|
|
|
72
75
|
return item.type !== 'scanCode';
|
|
73
76
|
});
|
|
74
77
|
case 5:
|
|
78
|
+
available = available.filter(function (item) {
|
|
79
|
+
if (item.type === 'scanner') {
|
|
80
|
+
return peripheralsStatus.scanner !== 'none';
|
|
81
|
+
}
|
|
82
|
+
if (item.type === 'nfc') {
|
|
83
|
+
return peripheralsStatus.nfc !== 'none';
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
});
|
|
75
87
|
if (available.length === 1) {
|
|
76
88
|
setCurrentType(available[0].type);
|
|
77
89
|
}
|
|
78
90
|
setAvailableEntryModes(available);
|
|
79
|
-
case
|
|
91
|
+
case 8:
|
|
80
92
|
case "end":
|
|
81
93
|
return _context.stop();
|
|
82
94
|
}
|
|
@@ -87,7 +99,7 @@ var PisellInformationEntry = function PisellInformationEntry(props) {
|
|
|
87
99
|
};
|
|
88
100
|
}();
|
|
89
101
|
getEntryModes();
|
|
90
|
-
}, [entryModes]);
|
|
102
|
+
}, [entryModes, peripheralsStatus]);
|
|
91
103
|
var handleChange = function handleChange(val) {
|
|
92
104
|
onChange === null || onChange === void 0 ? void 0 : onChange(val);
|
|
93
105
|
};
|
|
@@ -164,10 +176,15 @@ var PisellInformationEntry = function PisellInformationEntry(props) {
|
|
|
164
176
|
className: "pisell-information-entry-modes"
|
|
165
177
|
}, availableEntryModes.map(function (item) {
|
|
166
178
|
var detail = entryModeTextIcon[item.type];
|
|
179
|
+
var icon = detail.icon;
|
|
180
|
+
if (['scanner', 'nfc'].includes(item.type)) {
|
|
181
|
+
var disconnect = entryModeErrorTextIcon[item.type];
|
|
182
|
+
icon = peripheralsStatus[item.type] === 'connected' ? detail.icon : disconnect.icon;
|
|
183
|
+
}
|
|
167
184
|
return /*#__PURE__*/React.createElement(CardButton, {
|
|
168
185
|
bordered: !passiveModeType.includes(item.type),
|
|
169
186
|
icon: /*#__PURE__*/React.createElement(Iconfont, {
|
|
170
|
-
type:
|
|
187
|
+
type: icon,
|
|
171
188
|
className: "pisell-card-button-icon"
|
|
172
189
|
}),
|
|
173
190
|
className: classNames('pisell-information-entry-item', _defineProperty({}, 'pisell-entry-ready', passiveModeType.includes(item.type))),
|
|
@@ -13,6 +13,8 @@ export interface PisellLoadingProps extends SpinProps {
|
|
|
13
13
|
mask?: boolean | MaskType;
|
|
14
14
|
/** 是否全屏 */
|
|
15
15
|
fullscreen?: boolean;
|
|
16
|
+
/** 延迟显示加载效果的时间(防止闪烁) */
|
|
17
|
+
delay?: number;
|
|
16
18
|
}
|
|
17
19
|
declare const PisellLoading: (props: PisellLoadingProps) => React.JSX.Element;
|
|
18
20
|
export default PisellLoading;
|
|
@@ -8,7 +8,8 @@ var PisellLoading = function PisellLoading(props) {
|
|
|
8
8
|
var children = props.children,
|
|
9
9
|
fullscreen = props.fullscreen,
|
|
10
10
|
mask = props.mask,
|
|
11
|
-
loading = props.loading
|
|
11
|
+
loading = props.loading,
|
|
12
|
+
delay = props.delay;
|
|
12
13
|
var ref = useRef(null);
|
|
13
14
|
var _ref = mask || {},
|
|
14
15
|
_ref$backgroundColor = _ref.backgroundColor,
|
|
@@ -32,6 +33,7 @@ var PisellLoading = function PisellLoading(props) {
|
|
|
32
33
|
className: 'pisell-loading-wrapper'
|
|
33
34
|
}, /*#__PURE__*/React.createElement(Spin, {
|
|
34
35
|
fullscreen: fullscreen,
|
|
36
|
+
delay: delay,
|
|
35
37
|
spinning: loading,
|
|
36
38
|
indicator: /*#__PURE__*/React.createElement(IconFont, {
|
|
37
39
|
type: 'pisell2-loader2',
|
|
@@ -31,10 +31,11 @@
|
|
|
31
31
|
}
|
|
32
32
|
.pisell-lowcode-statistic-list-item-children-label {
|
|
33
33
|
color: var(--Base-White, #fff);
|
|
34
|
-
font-size:
|
|
34
|
+
font-size: 14px;
|
|
35
35
|
font-weight: 400;
|
|
36
36
|
line-height: 18px; /* 150% */
|
|
37
37
|
margin-right: 4px;
|
|
38
|
+
opacity: 0.7;
|
|
38
39
|
}
|
|
39
40
|
.pisell-lowcode-statistic-list-item-children-value {
|
|
40
41
|
color: var(--Base-White, #fff);
|
|
@@ -42,10 +42,16 @@ var PisellWalletPassCard = function PisellWalletPassCard(props) {
|
|
|
42
42
|
_props$showQrCode = props.showQrCode,
|
|
43
43
|
showQrCode = _props$showQrCode === void 0 ? true : _props$showQrCode,
|
|
44
44
|
_props$showBalanceSym = props.showBalanceSymbol,
|
|
45
|
-
showBalanceSymbol = _props$showBalanceSym === void 0 ? true : _props$showBalanceSym
|
|
45
|
+
showBalanceSymbol = _props$showBalanceSym === void 0 ? true : _props$showBalanceSym,
|
|
46
|
+
_props$showDisabledRe = props.showDisabledReason,
|
|
47
|
+
showDisabledReason = _props$showDisabledRe === void 0 ? true : _props$showDisabledRe,
|
|
48
|
+
_props$showDiscount = props.showDiscount,
|
|
49
|
+
showDiscount = _props$showDiscount === void 0 ? false : _props$showDiscount,
|
|
50
|
+
discount = props.discount;
|
|
46
51
|
return /*#__PURE__*/React.createElement("div", {
|
|
47
52
|
className: classNames('pisell-wallet-pass-card', {
|
|
48
|
-
'pisell-card-disabled': disabled
|
|
53
|
+
'pisell-card-disabled': disabled,
|
|
54
|
+
'pisell-card-disabled-hide-disabled-reason': disabled && !showDisabledReason
|
|
49
55
|
}),
|
|
50
56
|
style: showCover ? {
|
|
51
57
|
backgroundImage: "url('".concat(cover || 'data:image/jpeg;base64,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', "')")
|
|
@@ -73,7 +79,13 @@ var PisellWalletPassCard = function PisellWalletPassCard(props) {
|
|
|
73
79
|
useThousandsSeparator: true,
|
|
74
80
|
value: balance,
|
|
75
81
|
showCurrencySymbol: showBalanceSymbol
|
|
76
|
-
}))
|
|
82
|
+
})), showDiscount && /*#__PURE__*/React.createElement("div", {
|
|
83
|
+
className: "pisell-card-amount-item"
|
|
84
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: "pisell-card-amount-item-label"
|
|
86
|
+
}, getText('pisell-discount-card-title')), /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
className: "pisell-card-amount-item-value"
|
|
88
|
+
}, discount, "% ", getText('pisell-discount-card-unit')))), /*#__PURE__*/React.createElement("div", {
|
|
77
89
|
className: "pisell-card-code-wrap"
|
|
78
90
|
}, /*#__PURE__*/React.createElement("div", {
|
|
79
91
|
className: "pisell-card-code"
|
|
@@ -83,7 +95,7 @@ var PisellWalletPassCard = function PisellWalletPassCard(props) {
|
|
|
83
95
|
value: qrCode,
|
|
84
96
|
preview: true,
|
|
85
97
|
size: 60
|
|
86
|
-
}))), (disabled || disabledReason) && /*#__PURE__*/React.createElement("div", {
|
|
98
|
+
}))), (disabled || disabledReason) && showDisabledReason && /*#__PURE__*/React.createElement("div", {
|
|
87
99
|
className: "pisell-card-warn-message"
|
|
88
100
|
}, /*#__PURE__*/React.createElement(Iconfont, {
|
|
89
101
|
className: "pisell-card-icon",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
border-radius: 12px;
|
|
9
9
|
background-size: cover;
|
|
10
10
|
height: 190px;
|
|
11
|
+
background-position: center center;
|
|
11
12
|
.pisell-card-name-wrap {
|
|
12
13
|
display: flex;
|
|
13
14
|
justify-content: space-between;
|
|
@@ -97,4 +98,7 @@
|
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
}
|
|
101
|
+
}
|
|
102
|
+
.pisell-card-disabled-hide-disabled-reason {
|
|
103
|
+
height: 165px !important;
|
|
100
104
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { useMemo, useEffect } from
|
|
1
|
+
import React, { useMemo, useEffect } from 'react';
|
|
2
2
|
import "./index.less";
|
|
3
3
|
import { sliceDayIntoFiveMinutes, findNextSlice } from "../utils";
|
|
4
|
-
import classNames from
|
|
4
|
+
import classNames from 'classnames';
|
|
5
5
|
var RightPanel = function RightPanel(props) {
|
|
6
6
|
var value = props.value,
|
|
7
7
|
onChange = props.onChange,
|
|
@@ -19,8 +19,8 @@ var RightPanel = function RightPanel(props) {
|
|
|
19
19
|
timeSlices: list,
|
|
20
20
|
date: value
|
|
21
21
|
});
|
|
22
|
-
var scrollDom = document.querySelector(
|
|
23
|
-
var timeDom = document.querySelector("#time".concat(nextTime.replace(
|
|
22
|
+
var scrollDom = document.querySelector('.select-time-right-panel-list');
|
|
23
|
+
var timeDom = document.querySelector("#time".concat(nextTime.replace(':', '')));
|
|
24
24
|
if (scrollDom && timeDom) {
|
|
25
25
|
scrollDom.scrollTop = timeDom.offsetTop;
|
|
26
26
|
}
|
|
@@ -31,11 +31,11 @@ var RightPanel = function RightPanel(props) {
|
|
|
31
31
|
className: "select-time-right-panel-list"
|
|
32
32
|
}, list.map(function (d) {
|
|
33
33
|
return /*#__PURE__*/React.createElement("div", {
|
|
34
|
-
className: classNames(
|
|
35
|
-
|
|
34
|
+
className: classNames('select-time-right-panel-item', {
|
|
35
|
+
'select-time-right-panel-item-active': d.value === value
|
|
36
36
|
}),
|
|
37
37
|
key: d.value,
|
|
38
|
-
id:
|
|
38
|
+
id: 'time' + d.value.replace(':', ''),
|
|
39
39
|
onClick: function onClick() {
|
|
40
40
|
onChange(d.value);
|
|
41
41
|
}
|
|
@@ -15,6 +15,7 @@ export interface KeyboardProps {
|
|
|
15
15
|
onChange?: (value?: ItemValue) => void;
|
|
16
16
|
items?: Item[];
|
|
17
17
|
rightItems?: Item[];
|
|
18
|
+
keydown?: boolean;
|
|
18
19
|
}
|
|
19
20
|
declare const _default: React.MemoExoticComponent<(props: KeyboardProps) => React.JSX.Element>;
|
|
20
21
|
export default _default;
|
|
@@ -9,7 +9,7 @@ import { Button } from 'antd';
|
|
|
9
9
|
import "./index.less";
|
|
10
10
|
import classNames from 'classnames';
|
|
11
11
|
import { useEventListener, useMemoizedFn, useSize } from 'ahooks';
|
|
12
|
-
var list = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'ok'];
|
|
12
|
+
var list = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '+', 'ok'];
|
|
13
13
|
var defaultArr = [];
|
|
14
14
|
var Keyboard = function Keyboard(props) {
|
|
15
15
|
var _props$items = props.items,
|
|
@@ -17,15 +17,23 @@ var Keyboard = function Keyboard(props) {
|
|
|
17
17
|
className = props.className,
|
|
18
18
|
style = props.style,
|
|
19
19
|
onChange = props.onChange,
|
|
20
|
-
rightItems = props.rightItems
|
|
20
|
+
rightItems = props.rightItems,
|
|
21
|
+
_props$keydown = props.keydown,
|
|
22
|
+
keydown = _props$keydown === void 0 ? true : _props$keydown;
|
|
21
23
|
var contentRef = useRef(null);
|
|
22
24
|
var size = useSize(contentRef);
|
|
23
25
|
useEventListener('keydown', function (ev) {
|
|
24
26
|
console.log('ev', ev);
|
|
27
|
+
if (!keydown) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
25
30
|
var key = ev.key;
|
|
26
31
|
if (key === 'Enter') {
|
|
27
32
|
key = 'ok';
|
|
28
33
|
}
|
|
34
|
+
if (key === 'keydown') {
|
|
35
|
+
key = '+';
|
|
36
|
+
}
|
|
29
37
|
if (list.includes(key)) {
|
|
30
38
|
// let dom = document.querySelector(`#virtual-keyboard-${ev.key}`);
|
|
31
39
|
// if (dom) {
|
package/es/locales/en-US.d.ts
CHANGED
|
@@ -112,5 +112,7 @@ declare const _default: {
|
|
|
112
112
|
'pisell-adjust-price-discount-percentage': string;
|
|
113
113
|
'pisell-adjust-price-total-after-discount': string;
|
|
114
114
|
'pisell-adjust-price-discount-can-be-maximum': string;
|
|
115
|
+
'pisell-discount-card-title': string;
|
|
116
|
+
'pisell-discount-card-unit': string;
|
|
115
117
|
};
|
|
116
118
|
export default _default;
|
package/es/locales/en-US.js
CHANGED
|
@@ -137,5 +137,7 @@ export default {
|
|
|
137
137
|
'pisell-adjust-price-discount-amount': "Amount",
|
|
138
138
|
'pisell-adjust-price-discount-percentage': "Percentage",
|
|
139
139
|
'pisell-adjust-price-total-after-discount': "Total after discount: ",
|
|
140
|
-
'pisell-adjust-price-discount-can-be-maximum': "Discount can be maximum"
|
|
140
|
+
'pisell-adjust-price-discount-can-be-maximum': "Discount can be maximum",
|
|
141
|
+
'pisell-discount-card-title': 'Discount',
|
|
142
|
+
'pisell-discount-card-unit': 'off'
|
|
141
143
|
};
|
package/es/locales/zh-CN.d.ts
CHANGED
|
@@ -112,5 +112,7 @@ declare const _default: {
|
|
|
112
112
|
'pisell-adjust-price-discount-percentage': string;
|
|
113
113
|
'pisell-adjust-price-total-after-discount': string;
|
|
114
114
|
'pisell-adjust-price-discount-can-be-maximum': string;
|
|
115
|
+
'pisell-discount-card-title': string;
|
|
116
|
+
'pisell-discount-card-unit': string;
|
|
115
117
|
};
|
|
116
118
|
export default _default;
|
package/es/locales/zh-CN.js
CHANGED
|
@@ -137,5 +137,7 @@ export default {
|
|
|
137
137
|
'pisell-adjust-price-discount-amount': "金额",
|
|
138
138
|
'pisell-adjust-price-discount-percentage': "百分比",
|
|
139
139
|
'pisell-adjust-price-total-after-discount': "打折后总价",
|
|
140
|
-
'pisell-adjust-price-discount-can-be-maximum': "折扣最高可达"
|
|
140
|
+
'pisell-adjust-price-discount-can-be-maximum': "折扣最高可达",
|
|
141
|
+
'pisell-discount-card-title': '折扣',
|
|
142
|
+
'pisell-discount-card-unit': '折扣'
|
|
141
143
|
};
|
package/es/locales/zh-TW.d.ts
CHANGED
|
@@ -112,5 +112,7 @@ declare const _default: {
|
|
|
112
112
|
'pisell-adjust-price-discount-percentage': string;
|
|
113
113
|
'pisell-adjust-price-total-after-discount': string;
|
|
114
114
|
'pisell-adjust-price-discount-can-be-maximum': string;
|
|
115
|
+
'pisell-discount-card-title': string;
|
|
116
|
+
'pisell-discount-card-unit': string;
|
|
115
117
|
};
|
|
116
118
|
export default _default;
|
package/es/locales/zh-TW.js
CHANGED
|
@@ -137,5 +137,7 @@ export default {
|
|
|
137
137
|
'pisell-adjust-price-discount-amount': "金額",
|
|
138
138
|
'pisell-adjust-price-discount-percentage': "百分比",
|
|
139
139
|
'pisell-adjust-price-total-after-discount': "打折后總價",
|
|
140
|
-
'pisell-adjust-price-discount-can-be-maximum': "折扣最高可達"
|
|
140
|
+
'pisell-adjust-price-discount-can-be-maximum': "折扣最高可達",
|
|
141
|
+
'pisell-discount-card-title': '折扣',
|
|
142
|
+
'pisell-discount-card-unit': '折扣'
|
|
141
143
|
};
|
|
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(iconfont_exports);
|
|
|
35
35
|
var import_icons = require("@ant-design/icons");
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var MyIcon = (0, import_icons.createFromIconfontCN)({
|
|
38
|
-
scriptUrl: "https://
|
|
38
|
+
scriptUrl: "https://static.pisellcdn.com/pisell2iconfont.js"
|
|
39
39
|
// 在 iconfont.cn 上生成
|
|
40
40
|
});
|
|
41
41
|
var IconFont = (props) => {
|
|
@@ -46,7 +46,15 @@ var PisellEntryInput = (props) => {
|
|
|
46
46
|
{
|
|
47
47
|
autoFocus: true,
|
|
48
48
|
value,
|
|
49
|
-
onChange: (e) =>
|
|
49
|
+
onChange: (e) => {
|
|
50
|
+
setValue(e.target.value);
|
|
51
|
+
if (!e.target.value) {
|
|
52
|
+
onChange(e.target.value);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
onPressEnter: (e) => {
|
|
56
|
+
onChange(value);
|
|
57
|
+
},
|
|
50
58
|
style: { flex: 1 },
|
|
51
59
|
prefix: /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { style: { color: "#667085" }, type: "pisell2-search-lg" }),
|
|
52
60
|
allowClear: true
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { EntryModeType } from './index';
|
|
2
2
|
export declare const entryModeTextIcon: Record<EntryModeType['type'], any>;
|
|
3
|
+
export declare const entryModeErrorTextIcon: {
|
|
4
|
+
scanner: {
|
|
5
|
+
icon: string;
|
|
6
|
+
text: string;
|
|
7
|
+
};
|
|
8
|
+
nfc: {
|
|
9
|
+
icon: string;
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
3
13
|
export declare const passiveModeType: string[];
|
|
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
// src/components/pisellInformationEntry/constants.ts
|
|
20
20
|
var constants_exports = {};
|
|
21
21
|
__export(constants_exports, {
|
|
22
|
+
entryModeErrorTextIcon: () => entryModeErrorTextIcon,
|
|
22
23
|
entryModeTextIcon: () => entryModeTextIcon,
|
|
23
24
|
passiveModeType: () => passiveModeType
|
|
24
25
|
});
|
|
@@ -41,9 +42,20 @@ var entryModeTextIcon = {
|
|
|
41
42
|
text: "NFC ready"
|
|
42
43
|
}
|
|
43
44
|
};
|
|
45
|
+
var entryModeErrorTextIcon = {
|
|
46
|
+
scanner: {
|
|
47
|
+
icon: "pisell2-a-Scanner11",
|
|
48
|
+
text: "Scanner"
|
|
49
|
+
},
|
|
50
|
+
nfc: {
|
|
51
|
+
icon: "pisell2-a-NFC1",
|
|
52
|
+
text: "NFC"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
44
55
|
var passiveModeType = ["scanner", "nfc"];
|
|
45
56
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46
57
|
0 && (module.exports = {
|
|
58
|
+
entryModeErrorTextIcon,
|
|
47
59
|
entryModeTextIcon,
|
|
48
60
|
passiveModeType
|
|
49
61
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare type Peripherals = {
|
|
2
|
+
scanner: 'none' | 'connected' | 'disconnect';
|
|
3
|
+
nfc: 'none' | 'connected' | 'disconnect';
|
|
4
|
+
};
|
|
5
|
+
declare const useTerminalPeripherals: (onChange?: ((val: string) => void) | undefined) => {
|
|
6
|
+
peripheralsStatus: Peripherals;
|
|
7
|
+
};
|
|
8
|
+
export default useTerminalPeripherals;
|