| /* |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| import Vue from 'vue' |
| import Clipboard from 'clipboard' |
| |
| function clipboardSuccess() { |
| Vue.prototype.$message({ |
| message: 'Copy successfully', |
| type: 'success', |
| duration: 1500 |
| }) |
| } |
| |
| function clipboardError() { |
| Vue.prototype.$message({ |
| message: 'Copy failed', |
| type: 'error' |
| }) |
| } |
| |
| export default function handleClipboard(text, event) { |
| const clipboard = new Clipboard(event.target, { |
| text: () => text |
| }) |
| clipboard.on('success', () => { |
| clipboardSuccess() |
| clipboard.off('error') |
| clipboard.off('success') |
| clipboard.destroy() |
| }) |
| clipboard.on('error', () => { |
| clipboardError() |
| clipboard.off('error') |
| clipboard.off('success') |
| clipboard.destroy() |
| }) |
| clipboard.onClick(event) |
| } |