Merge branch 'pipipi-pikachu:master' into master

This commit is contained in:
missile-xuan 2021-07-20 08:18:58 +08:00 committed by GitHub
commit 66c3718998
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 9 deletions

View File

@ -1,6 +1,6 @@
import { computed } from 'vue'
import { MutationTypes, useStore } from '@/store'
import { decrypt } from '@/utils/crypto'
import { pasteCustomClipboardString } from '@/utils/clipboard'
import { PPTElement, Slide } from '@/types/slides'
import { createRandomCode } from '@/utils/common'
import { createElementIdMap } from '@/utils/element'
@ -93,13 +93,7 @@ export default () => {
const onlySlide = options?.onlySlide || false
const onlyElements = options?.onlyElements || false
let clipboardData
try {
clipboardData = JSON.parse(decrypt(text))
}
catch {
clipboardData = text
}
const clipboardData = pasteCustomClipboardString(text)
// 元素或页面
if (typeof clipboardData === 'object') {

View File

@ -1,4 +1,5 @@
import Clipboard from 'clipboard'
import { decrypt } from '@/utils/crypto'
/**
*
@ -37,4 +38,17 @@ export const readClipboard = (): Promise<string> => {
}
else reject('浏览器不支持或禁止访问剪贴板,请使用快捷键 Ctrl + V')
})
}
// 解析加密后的剪贴板内容
export const pasteCustomClipboardString = (text: string) => {
let clipboardData
try {
clipboardData = JSON.parse(decrypt(text))
}
catch {
clipboardData = text
}
return clipboardData
}

View File

@ -12,6 +12,7 @@
<script lang="ts">
import { defineComponent, onUnmounted, ref, watch } from 'vue'
import { pasteCustomClipboardString } from '@/utils/clipboard'
export default defineComponent({
name: 'custom-textarea',
@ -56,7 +57,12 @@ export default defineComponent({
const clipboardDataFirstItem = e.clipboardData.items[0]
if (clipboardDataFirstItem && clipboardDataFirstItem.kind === 'string' && clipboardDataFirstItem.type === 'text/plain') {
clipboardDataFirstItem.getAsString(text => emit('updateValue', text))
clipboardDataFirstItem.getAsString(text => {
const clipboardData = pasteCustomClipboardString(text)
if (typeof clipboardData === 'object') return
emit('updateValue', text)
document.execCommand('insertText', false, text)
})
}
}
}