oak-general-business/lib/pages/icon/web.js

52 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var jsx_runtime_1 = require("react/jsx-runtime");
var iconfont_json_1 = tslib_1.__importDefault(require("./iconfont.json"));
var icon_1 = tslib_1.__importDefault(require("../../components/icon"));
var web_module_less_1 = tslib_1.__importDefault(require("./web.module.less"));
/**
* 复制文本到剪切板中
*
* @export
* @param {*} value 需要复制的文本
* @param {*} cb 复制成功后的回调
*/
function copy(value, cb) {
// 动态创建 textarea 标签
var textarea = document.createElement('textarea');
// 将该 textarea 设为 readonly 防止 iOS 下自动唤起键盘,同时将 textarea 移出可视区域
textarea.readOnly = 'readonly';
textarea.style.position = 'absolute';
textarea.style.left = '-9999px';
// 将要 copy 的值赋给 textarea 标签的 value 属性
// 网上有些例子是赋值给innerText,这样也会赋值成功,但是识别不了\r\n的换行符赋值给value属性就可以
textarea.value = value;
// 将 textarea 插入到 body 中
document.body.appendChild(textarea);
// 选中值并复制
textarea.select();
textarea.setSelectionRange(0, textarea.value.length);
document.execCommand('Copy');
document.body.removeChild(textarea);
if (cb && Object.prototype.toString.call(cb) === '[object Function]') {
cb();
}
}
function Render(props) {
var methods = props.methods;
var icons = iconfont_json_1.default.glyphs;
return ((0, jsx_runtime_1.jsx)("div", tslib_1.__assign({ className: web_module_less_1.default.container }, { children: (0, jsx_runtime_1.jsx)("ul", tslib_1.__assign({ className: web_module_less_1.default.dibBox }, { children: icons.map(function (ele) {
return ((0, jsx_runtime_1.jsxs)("li", tslib_1.__assign({ className: web_module_less_1.default.dib, onClick: function () {
var content = "<OakIcon name='".concat(ele.name, "' />");
copy(content, function () {
methods.setMessage({
type: 'success',
content: content,
});
});
} }, { children: [(0, jsx_runtime_1.jsx)("div", tslib_1.__assign({ className: web_module_less_1.default.iconBox }, { children: (0, jsx_runtime_1.jsx)(icon_1.default, { name: ele.name, size: 40 }) })), (0, jsx_runtime_1.jsx)("div", tslib_1.__assign({ className: web_module_less_1.default.name }, { children: ele.name }))] })));
}) })) })));
}
exports.default = Render;