拆分通知中心的富文本编辑器

This commit is contained in:
biss committed 2026-08-11 11:26:09 +08:00
1 parent 43908176ff
commit ebc759a53e
3 files changed
+84 -119

No files matched your search

@@ -0,0 +1,79 @@
<script setup lang="ts">
import { Ckeditor } from '@ckeditor/ckeditor5-vue'
import {
AutoLink,
BlockQuote,
Bold,
ClassicEditor,
Essentials,
Heading,
Image,
ImageCaption,
ImageInsert,
ImageInsertViaUrl,
ImageResize,
ImageStyle,
ImageToolbar,
Italic,
Link,
LinkImage,
List,
Paragraph,
Table,
TableCaption,
TableCellProperties,
TableColumnResize,
TableProperties,
TableToolbar,
type EditorConfig,
} from 'ckeditor5'
import 'ckeditor5/ckeditor5.css'
const model = defineModel<string>({ required: true })
const editorConfig: EditorConfig = {
licenseKey: import.meta.env.VITE_CKEDITOR_LICENSE_KEY || 'GPL',
plugins: [
Essentials, Paragraph, Heading, Bold, Italic, Link, AutoLink, List, BlockQuote,
Image, ImageCaption, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle,
ImageToolbar, LinkImage, Table, TableCaption, TableCellProperties,
TableColumnResize, TableProperties, TableToolbar,
],
toolbar: {
items: [
'heading', '|', 'bold', 'italic', 'link', '|', 'insertTable', 'insertImage',
'|', 'bulletedList', 'numberedList', 'blockQuote', '|', 'undo', 'redo',
],
shouldNotGroupWhenFull: false,
},
heading: {
options: [
{ model: 'paragraph', title: '正文', class: 'ck-heading_paragraph' },
{ model: 'heading2', view: 'h2', title: '标题', class: 'ck-heading_heading2' },
{ model: 'heading3', view: 'h3', title: '小标题', class: 'ck-heading_heading3' },
],
},
link: { addTargetToExternalLinks: true, defaultProtocol: 'https://' },
image: {
insert: { integrations: ['insertImageViaUrl'] },
toolbar: [
'toggleImageCaption', 'imageTextAlternative', '|', 'imageStyle:inline',
'imageStyle:wrapText', 'imageStyle:breakText', '|', 'resizeImage', 'linkImage',
],
},
table: {
contentToolbar: [
'tableColumn', 'tableRow', 'mergeTableCells', 'toggleTableCaption',
'tableProperties', 'tableCellProperties',
],
},
}
</script>
<template>
<Ckeditor
v-model="model"
:editor="ClassicEditor"
:config="editorConfig"
/>
</template>