fastlion-amis
Version:
一种MIS页面生成工具
52 lines (51 loc) • 3.02 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var index_1 = (0, tslib_1.__importDefault)(require("antd/lib/popover/index"));
var index_2 = (0, tslib_1.__importDefault)(require("antd/lib/menu/index"));
require("./index.scss");
var clipboard_1 = (0, tslib_1.__importDefault)(require("clipboard"));
var msgsub_1 = (0, tslib_1.__importDefault)(require("../../utils/msgsub"));
exports.default = (function (props) {
var _a = (0, react_1.useState)(false), visible = _a[0], setVisible = _a[1];
(0, react_1.useEffect)(function () {
if (document.querySelector(".lion-copybtn"))
return;
var lionBtn = document.createElement('button');
lionBtn.setAttribute("class", "lion-copybtn");
lionBtn.setAttribute("data-clipboard-action", "cut");
lionBtn.setAttribute("data-clipboard-text", "");
lionBtn.style.cssText = "display:none";
document.body.appendChild(lionBtn);
}, []);
(0, react_1.useEffect)(function () {
if (window.clipboard)
return;
window.clipboard = new clipboard_1.default('.lion-copybtn');
window.clipboard.on('success', function (e) {
var _a;
msgsub_1.default._success('复制成功', (_a = props.env) === null || _a === void 0 ? void 0 : _a.getModalContainer);
});
window.clipboard.on('error', function (e) {
var _a;
msgsub_1.default._error('复制失败', (_a = props.env) === null || _a === void 0 ? void 0 : _a.getModalContainer);
});
}, []);
var handleClick = function (e, value) {
e === null || e === void 0 ? void 0 : e.domEvent.preventDefault();
var copyBtn = document.querySelector('.lion-copybtn');
copyBtn === null || copyBtn === void 0 ? void 0 : copyBtn.setAttribute('data-clipboard-text', value ? value : '');
copyBtn.click();
setVisible(false);
};
var showItems = props.showItems, env = props.env, children = props.children;
return (react_1.default.createElement(index_1.default, { visible: visible, overlayClassName: "lion-copy-item", destroyTooltipOnHide: true, placement: "bottom", arrowPointAtCenter: true, getPopupContainer: env === null || env === void 0 ? void 0 : env.getModalContainer, trigger: ["contextMenu"], onVisibleChange: function (visible) {
setVisible(visible);
}, content: react_1.default.createElement(index_2.default, null, showItems.map(function (item, index) {
return react_1.default.createElement(index_2.default.Item, { onClick: function (e) { handleClick(e, item.value); }, key: index },
react_1.default.createElement("span", { className: item.icon, style: { marginRight: '10px' } }),
item.label);
})) }, children));
});
//# sourceMappingURL=./renderers/Lion/components/LionCopyItem/index.js.map
;