feat(signing): 签署任务固化文书 HTML 并交互化渲染

This commit is contained in:
yelan
2026-09-14 09:13:07 +08:00
parent 1b576c6095
commit 545326bd81
10 changed files with 328 additions and 116 deletions
@@ -6,7 +6,6 @@ import type { CampusRecord, DepartmentRecord } from '@/api/management/types'
import EditorCkPane from './editors/EditorCkPane.vue'
import EditorTipTapPane from './editors/EditorTipTapPane.vue'
import EditorTinyPane from './editors/EditorTinyPane.vue'
import EditorWangPane from './editors/EditorWangPane.vue'
import type { DocumentTemplate, TemplateEditorForm } from '../types'
@@ -26,7 +25,7 @@ const emit = defineEmits<{
// Word 自维护方案:科室把文书从 Word/WPS 直接粘贴进来(保留表格与基本格式),
// 或上传 .docx 由 mammoth 转换;签署时由交互管线识别"勾选"表并转为签署域。
// 富文本引擎做成可切换的三套(对比 Word 粘贴保真度),存储统一为编辑器产出的 HTML。
type EditorEngine = 'wangeditor' | 'ckeditor5' | 'tinymce' | 'tiptap'
type EditorEngine = 'wangeditor' | 'ckeditor5' | 'tiptap'
interface EditorPaneHandle {
getText: () => string
@@ -36,7 +35,6 @@ interface EditorPaneHandle {
const engineComponents = {
wangeditor: EditorWangPane,
ckeditor5: EditorCkPane,
tinymce: EditorTinyPane,
tiptap: EditorTipTapPane,
}
@@ -51,11 +49,6 @@ const engineOptions: Array<{ key: EditorEngine; label: string; note: string }> =
label: 'CKEditor 5',
note: 'PasteFromOffice 插件,Word 粘贴保真最强(GPL2)',
},
{
key: 'tinymce',
label: 'TinyMCE',
note: '均衡之选(MIT)',
},
{
key: 'tiptap',
label: 'TipTap',