fastlion-amis
Version:
一种MIS页面生成工具
124 lines (123 loc) • 8.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var antd_1 = require("antd");
var icons_1 = require("@ant-design/icons");
var shell_1 = require("../../utils/shell");
var icons_2 = require("../icons");
var FingerPrint = function (_a) {
var _b, _c, _d, _e;
var userData = _a.userData, onDataChange = _a.onDataChange;
var _f = (0, react_1.useState)('正在检查设备是否已连接……'), deviceTip = _f[0], setDeviceTip = _f[1];
var _g = (0, react_1.useState)(), fingerData = _g[0], setFingerData = _g[1];
(0, react_1.useEffect)(function () {
if (shell_1.Shell.hasShell()) {
shell_1.Shell.openFinger(1, function () { }, handleFingerCallback);
}
return function () {
if (shell_1.Shell.hasShell()) {
shell_1.Shell.closeFinger();
}
};
}, []);
(0, react_1.useEffect)(function () {
onDataChange(fingerData);
}, [fingerData]);
var handleFingerCallback = function (res) {
var _a;
var code = res.code;
if (code != undefined) {
if (code == 0) {
var data = res.data;
if (data.isFinger === true) {
setFingerData({ fingerprint: data.finger, fingertype: data.fingerType });
setDeviceTip('识别成功, 请移开手指');
}
}
else {
if (code != -63 && code != 999) {
setDeviceTip((_a = res.msg) !== null && _a !== void 0 ? _a : "code=".concat(code));
}
}
}
else {
var data = res.data;
setDeviceTip(data.text);
}
};
return (react_1.default.createElement("div", { className: 'fingerprint-content' },
react_1.default.createElement("div", { className: 'fingerprint-content-header' },
react_1.default.createElement("span", { className: 'fingerprint-content-header-title' }, "\u6307\u7EB9\u5F55\u5165"),
react_1.default.createElement("div", { className: 'fingerprint-content-header-tip' },
react_1.default.createElement(icons_1.InfoCircleFilled, { style: { color: '#3574ee', fontSize: 20 } }),
"\u00A0\u00A0",
react_1.default.createElement("span", null, "\u8BBE\u7F6E\u6307\u7EB9\u524D\uFF0C\u8BF7\u786E\u8BA4\u7528\u6237\u4FE1\u606F"))),
react_1.default.createElement("div", { className: 'fingerprint-content-body' },
react_1.default.createElement("div", { className: 'fingerprint-content-body-left' },
react_1.default.createElement("div", { className: 'fingerprint-content-body-left-top' },
react_1.default.createElement(icons_2.Icon, { className: 'fingerprint-content-body-left-top-icon', icon: 'finger', color: '#3574ee', size: 100 }),
react_1.default.createElement("span", { className: 'fingerprint-content-body-left-top-tip' }, deviceTip)),
react_1.default.createElement("span", { className: 'fingerprint-content-body-left-bottom', style: { color: fingerData == undefined ? 'gray' : '#3574ee' } }, fingerData == undefined ? '等待识别' : '识别成功')),
react_1.default.createElement("div", { className: 'fingerprint-content-body-right' },
react_1.default.createElement("div", { className: 'fingerprint-content-body-right-item' },
react_1.default.createElement("span", { className: 'label' }, "\u5DE5\u53F7"),
react_1.default.createElement("div", { className: 'value' }, (_b = userData === null || userData === void 0 ? void 0 : userData.LOGINACCOUNT) !== null && _b !== void 0 ? _b : '')),
react_1.default.createElement("div", { className: 'fingerprint-content-body-right-item' },
react_1.default.createElement("span", { className: 'label' }, "\u59D3\u540D"),
react_1.default.createElement("div", { className: 'value' }, (_c = userData === null || userData === void 0 ? void 0 : userData.USERNAME) !== null && _c !== void 0 ? _c : '')),
react_1.default.createElement("div", { className: 'fingerprint-content-body-right-item' },
react_1.default.createElement("span", { className: 'label' }, "\u90E8\u95E8"),
react_1.default.createElement("div", { className: 'value' }, (_d = userData === null || userData === void 0 ? void 0 : userData.DEPARTMENT) !== null && _d !== void 0 ? _d : '')),
react_1.default.createElement("div", { className: 'fingerprint-content-body-right-item' },
react_1.default.createElement("span", { className: 'label' }, "\u5C97\u4F4D"),
react_1.default.createElement("div", { className: 'value' }, (_e = userData === null || userData === void 0 ? void 0 : userData.JOBNAME) !== null && _e !== void 0 ? _e : ''))))));
};
var FingerPrintModal = function (props) {
var visible = props.visible, userData = props.userData, env = props.env, onClose = props.onClose;
var _a = (0, react_1.useState)(false), confirmLoading = _a[0], setConfirmLoading = _a[1];
var fingerData = (0, react_1.useRef)();
var handleOk = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var uuid, data, api, payload;
var _a, _b;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
if (!fingerData.current) return [3 /*break*/, 2];
setConfirmLoading(true);
uuid = (_b = (_a = window.deviceInfo) === null || _a === void 0 ? void 0 : _a.uuid) !== null && _b !== void 0 ? _b : '';
data = { userId: userData.USERID, uuid: uuid, fingerType: Number(fingerData.current.fingertype), fingerprint: fingerData.current.fingerprint };
api = {
method: 'post',
url: '/api/v1/finger/register',
data: {
userId: "${userId}",
uuid: "${uuid}",
fingerType: "${fingerType}",
fingerprint: "${fingerprint}"
}
};
return [4 /*yield*/, env.fetcher(api, data).finally(function () { return setConfirmLoading(false); })];
case 1:
payload = _c.sent();
if (payload.ok) {
shell_1.Shell.addFinger(userData.userId, fingerData.current.fingerprint, Number(fingerData.current.fingertype));
antd_1.message.success(payload.msg);
onClose();
}
else {
antd_1.message.error(payload.msg);
}
return [3 /*break*/, 3];
case 2:
antd_1.message.warning('请先录入指纹');
_c.label = 3;
case 3: return [2 /*return*/];
}
});
}); };
return (react_1.default.createElement(antd_1.Modal, { width: 800, className: 'fingerprint-modal', visible: visible, destroyOnClose: true, closable: false, maskClosable: false, keyboard: false, confirmLoading: confirmLoading, bodyStyle: { padding: '18px 24px' }, onCancel: function () { return onClose(); }, onOk: function () { return handleOk(); }, okText: '\u786E\u5B9A', cancelText: '\u53D6\u6D88' },
react_1.default.createElement(FingerPrint, { userData: userData, onDataChange: function (data) { return fingerData.current = data; } })));
};
exports.default = FingerPrintModal;
//# sourceMappingURL=./components/Lion/FingerprintModal.js.map