From 6d9bf15a7de44fc7d8c42dc4a7c7bded4e9c6ece Mon Sep 17 00:00:00 2001 From: pipipi-pikachu Date: Fri, 6 Aug 2021 00:04:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=96=87=E6=9C=AC=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E6=92=A4=E9=94=80=E6=97=B6=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/prosemirror/index.ts | 2 +- src/views/components/element/ProsemirrorEditor.vue | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/utils/prosemirror/index.ts b/src/utils/prosemirror/index.ts index 2875197e..42a75bb9 100644 --- a/src/utils/prosemirror/index.ts +++ b/src/utils/prosemirror/index.ts @@ -10,7 +10,7 @@ const schema = new Schema({ marks: schemaMarks, }) -const createDocument = (content: string) => { +export const createDocument = (content: string) => { const htmlString = `
${content}
` const parser = new window.DOMParser() const element = parser.parseFromString(htmlString, 'text/html').body.firstElementChild diff --git a/src/views/components/element/ProsemirrorEditor.vue b/src/views/components/element/ProsemirrorEditor.vue index d7a7158a..c85b1938 100644 --- a/src/views/components/element/ProsemirrorEditor.vue +++ b/src/views/components/element/ProsemirrorEditor.vue @@ -11,7 +11,7 @@ import { debounce } from 'lodash' import { MutationTypes, useStore } from '@/store' import { EditorView } from 'prosemirror-view' import { toggleMark, wrapIn, selectAll } from 'prosemirror-commands' -import { initProsemirrorEditor } from '@/utils/prosemirror/' +import { initProsemirrorEditor, createDocument } from '@/utils/prosemirror' import { getTextAttrs } from '@/utils/prosemirror/utils' import emitter, { EmitterEvents, RichTextCommand } from '@/utils/emitter' import { alignmentCommand } from '@/utils/prosemirror/commands/setTextAlign' @@ -92,7 +92,9 @@ export default defineComponent({ watch(textContent, () => { if (!editorView) return if (editorView.hasFocus()) return - editorView.dom.innerHTML = textContent.value + + const { doc, tr } = editorView.state + editorView.dispatch(tr.replaceRangeWith(0, doc.content.size, createDocument(textContent.value))) }) // 打开/关闭编辑器的编辑模式