Преглед на файлове

监听粘贴组件事件

dsy преди 3 дни
родител
ревизия
887a910d17
променени са 1 файла, в които са добавени 12 реда и са изтрити 0 реда
  1. 12 0
      src/views/book/courseware/create/index.vue

+ 12 - 0
src/views/book/courseware/create/index.vue

@@ -101,14 +101,25 @@ export default {
         this.handleMiddleScroll();
       }
     });
+    window.addEventListener('keydown', this.handlePaste);
   },
   beforeDestroy() {
     const middle = this.$refs.createMiddle;
     if (middle) {
       middle.removeEventListener('scroll', this.handleMiddleScroll);
     }
+    window.removeEventListener('keydown', this.handlePaste);
   },
   methods: {
+    /**
+     * @description 监听粘贴事件,触发粘贴组件方法
+     * @param {KeyboardEvent} event 键盘事件
+     */
+    handlePaste(event) {
+      if (event.ctrlKey && event.key === 'v') {
+        this.pasteComponent('bottom');
+      }
+    },
     judgeIsHasChange() {
       if (this.isChange) {
         this.visibleWarn = true;
@@ -155,6 +166,7 @@ export default {
      * @param {String} position 放入位置类型
      */
     pasteComponent(position) {
+      if (!this.isEdit) return;
       if (!this.copyData) {
         this.$message.warning('请先复制组件');
         return;