@cw-devops/bk-magic-vue
Version:
基于蓝鲸 Magicbox 和 Vue 的前端组件库
59 lines (54 loc) • 1.75 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = global || self, factory(global.library = {}));
}(this, function (exports) { 'use strict';
var bkCopy = {
bind: function bind(el, _ref, vnode) {
var value = _ref.value;
el.$value = value;
el.copyHandler = function () {
var that = vnode.context;
if (!el.$value) {
that.$bkMessage({
theme: 'warning',
message: '无复制内容',
delay: 2000,
dismissable: false
});
return;
}
var textarea = document.createElement('textarea');
textarea.readOnly = true;
textarea.style.position = 'absolute';
textarea.style.left = '-9999px';
textarea.value = el.$value;
document.body.appendChild(textarea);
textarea.select();
var result = document.execCommand('Copy');
if (result) {
that.$bkMessage({
theme: 'success',
message: '复制成功',
delay: 2000,
dismissable: false
});
}
document.body.removeChild(textarea);
};
el.addEventListener('click', el.copyHandler);
},
componentUpdated: function componentUpdated(el, _ref2) {
var value = _ref2.value;
el.$value = value;
},
unbind: function unbind(el) {
el.removeEventListener('click', el.copyHandler);
}
};
bkCopy.install = function (Vue) {
Vue.directive('bkCopy', bkCopy);
};
exports.default = bkCopy;
Object.defineProperty(exports, '__esModule', { value: true });
}));