From 271dbf196eb058dc790e27160d076993dc388bd6 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 11 四月 2024 10:54:11 +0800
Subject: [PATCH] 富文本组件编写
---
Source/ProjectWeb/src/main.js | 24 +-
Source/ProjectWeb/src/components/form-component/richText.vue | 228 +++++++++++++++++++++++++
Source/ProjectWeb/src/views/custom-ui/test.vue | 285 +++++++++++++++++++++++-------
3 files changed, 456 insertions(+), 81 deletions(-)
diff --git a/Source/ProjectWeb/src/components/form-component/richText.vue b/Source/ProjectWeb/src/components/form-component/richText.vue
new file mode 100644
index 0000000..662bc32
--- /dev/null
+++ b/Source/ProjectWeb/src/components/form-component/richText.vue
@@ -0,0 +1,228 @@
+<template>
+ <div id='quillEditorQiniu'>
+ <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload begin-->
+ <el-upload
+ :accept="'image'"
+ :action="uploadImgUrl"
+ :before-upload="beforeEditorUpload"
+ :headers="headers"
+ :on-error="uploadEditorError"
+ :on-success="uploadEditorSuccess"
+ :show-file-list="false"
+ class="avatar-uploader">
+ </el-upload>
+ <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload end-->
+ <quill-editor ref="customQuillEditor" v-model="content" :options="editorOption" class="editor">
+ </quill-editor>
+ </div>
+</template>
+
+<script>
+import {getToken} from "@/util/auth";
+
+const toolbarOptions = [
+ ['bold', 'italic', 'underline', 'strike'], // 鍔犵矖 鏂滀綋 涓嬪垝绾� 鍒犻櫎绾�
+ ['blockquote', 'code-block'], // 寮曠敤 浠g爜鍧�
+ [{header: 1}, {header: 2}], // 1銆�2 绾ф爣棰�
+ [{list: 'ordered'}, {list: 'bullet'}], // 鏈夊簭銆佹棤搴忓垪琛�
+ [{script: 'sub'}, {script: 'super'}], // 涓婃爣/涓嬫爣
+ [{indent: '-1'}, {indent: '+1'}], // 缂╄繘
+ [{size: ['small', false, 'large', 'huge']}], // 瀛椾綋澶у皬
+ [{header: [1, 2, 3, 4, 5, 6, false]}], // 鏍囬
+ [{color: []}, {background: []}], // 瀛椾綋棰滆壊 瀛椾綋鑳屾櫙棰滆壊
+ [{font: []}], // 瀛椾綋绉嶇被
+ [{align: []}], // 瀵归綈鏂瑰紡
+ ['image'], // 閾炬帴 鍥剧墖
+ ['clean'] // 娓呴櫎鏂囨湰鏍煎紡
+];
+export default {
+ data() {
+ return {
+ headers: {
+ Authorization: "Bearer " + getToken(),
+ },
+ uploadImgUrl: "/v1/admin/common/upload",
+ uploadUrlPath: "娌℃湁鏂囦欢涓婁紶",
+ quillUpdateImg: false,
+ content: '', //鏈�缁堜繚瀛樼殑鍐呭
+ editorOption: {
+ theme: 'snow',
+ placeholder: '璇疯緭鍏ュ唴瀹�',
+ modules: {
+ toolbar: {
+ container: toolbarOptions, // 宸ュ叿鏍�
+ handlers: {
+ image: function (value) {
+ if (value) {
+ document.querySelector('#quillEditorQiniu .avatar-uploader input').click()
+ } else {
+ this.quill.format('image', false);
+ }
+ },
+ }
+ }
+ }
+ },
+ }
+ },
+ methods: {
+ //涓婁紶鍥剧墖涔嬪墠async
+ beforeEditorUpload(file) {
+ const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif'
+ if (!isJPG) {
+ this.$message.error('涓婁紶鍥剧墖鍙兘鏄� JPG锛孭NG, GIF 鏍煎紡!')
+ } else {
+ //鏄剧ず涓婁紶鍔ㄧ敾
+ this.quillUpdateImg = true;
+ }
+ },
+ // 涓婁紶鍥剧墖鎴愬姛
+ uploadEditorSuccess(res, file) {
+ console.log("涓婁紶鎴愬姛")
+ // this.$emit('upload',res, file)
+ console.log(res, file);
+ //鎷兼帴鍑轰笂浼犵殑鍥剧墖鍦ㄦ湇鍔″櫒鐨勫畬鏁村湴鍧�
+ let imgUrl = res.data.url;
+ let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1);
+ console.log(type);
+ // 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
+ let quill = this.$refs.customQuillEditor.quill;
+ // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
+ let length = quill.getSelection().index;
+ // 鎻掑叆鍥剧墖||瑙嗛 res.info涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
+ if (type == 'mp4' || type == 'MP4') {
+ quill.insertEmbed(length, 'video', imgUrl)
+ } else {
+ quill.insertEmbed(length, 'image', imgUrl)
+ }
+ // 璋冩暣鍏夋爣鍒版渶鍚�
+ quill.setSelection(length + 1)
+ //鍙栨秷涓婁紶鍔ㄧ敾
+ this.quillUpdateImg = false;
+ },
+ // 涓婁紶(鏂囦欢)鍥剧墖澶辫触
+ uploadEditorError(res, file) {
+ console.log(res);
+ console.log(file);
+ //椤甸潰鎻愮ず
+ this.$message.error('涓婁紶鍥剧墖澶辫触')
+ //鍙栨秷涓婁紶鍔ㄧ敾
+ this.quillUpdateImg = false;
+ },
+ //涓婁紶缁勪欢杩斿洖鐨勭粨鏋�
+ uploadResult: function (res) {
+ this.uploadUrlPath = res;
+ },
+ openContent: function () {
+ console.log(this.content)
+ },
+
+ },
+ created() {
+
+ },
+ //鍙墽琛屼竴娆★紝鍔犺浇鎵ц
+ mounted() {
+ console.log("寮�濮嬪姞杞�")
+ // 鍒濆缁欑紪杈戝櫒璁剧疆title
+ },
+ watch: {
+ content(newVal, oldVal) {
+ //this.$emit('input', newVal);
+ console.log(newVal)
+ console.log(oldVal)
+ }
+ },
+
+
+}
+</script>
+
+<style>
+.editor {
+ line-height: normal !important;
+ height: 400px;
+ margin-bottom: 50px;
+}
+
+.ql-snow .ql-tooltip[data-mode="link"]::before {
+ content: "璇疯緭鍏ラ摼鎺ュ湴鍧�:";
+}
+
+.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
+ border-right: 0px;
+ content: "淇濆瓨";
+ padding-right: 0px;
+}
+
+
+.ql-snow .ql-picker.ql-size .ql-picker-label::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item::before {
+ content: "14px";
+}
+
+.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
+ content: "10px";
+}
+
+.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
+ content: "18px";
+}
+
+.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
+ content: "32px";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item::before {
+ content: "鏂囨湰";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
+ content: "鏍囬1";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
+ content: "鏍囬2";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
+ content: "鏍囬3";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
+ content: "鏍囬4";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
+ content: "鏍囬5";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
+ content: "鏍囬6";
+}
+
+.ql-snow .ql-picker.ql-font .ql-picker-label::before,
+.ql-snow .ql-picker.ql-font .ql-picker-item::before {
+ content: "鏍囧噯瀛椾綋";
+}
+
+.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
+.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
+ content: "琛嚎瀛椾綋";
+}
+
+.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
+.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
+ content: "绛夊瀛椾綋";
+}
+</style>
diff --git a/Source/ProjectWeb/src/main.js b/Source/ProjectWeb/src/main.js
index acf22d9..8c1ddde 100644
--- a/Source/ProjectWeb/src/main.js
+++ b/Source/ProjectWeb/src/main.js
@@ -31,6 +31,20 @@
import dynamicTableForm from '@/components/dynamic-components/dynamic-table-form'
//鍥哄畾琛ㄥ崟缁勪欢
import dynamicForm from '@/components/dynamic-components/dynamic-form'
+//瀵屾枃鏈粍浠�
+import richText from '@/components/form-component/richText'
+
+// 娉ㄥ唽鍏ㄥ眬瀹瑰櫒
+Vue.component('basicContainer', basicContainer);
+Vue.component('basicBlock', basicBlock);
+Vue.component('thirdRegister', thirdRegister);
+Vue.component('avueUeditor', avueUeditor);
+Vue.component('flowDesign', flowDesign);
+Vue.component('tenantPackage', tenantPackage);
+Vue.component('dynamicButton', dynamicButton);
+Vue.component('dynamicTableForm', dynamicTableForm);
+Vue.component('dynamicForm', dynamicForm);
+Vue.component('richText', richText);
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
@@ -52,16 +66,6 @@
calcHeight: 65,
i18n: (key, value) => i18n.t(key, value)
});
-// 娉ㄥ唽鍏ㄥ眬瀹瑰櫒
-Vue.component('basicContainer', basicContainer);
-Vue.component('basicBlock', basicBlock);
-Vue.component('thirdRegister', thirdRegister);
-Vue.component('avueUeditor', avueUeditor);
-Vue.component('flowDesign', flowDesign);
-Vue.component('tenantPackage', tenantPackage);
-Vue.component('dynamicButton', dynamicButton);
-Vue.component('dynamicTableForm', dynamicTableForm);
-Vue.component('dynamicForm', dynamicForm);
// 鍔犺浇鐩稿叧url鍦板潃
Object.keys(urls).forEach(key => {
Vue.prototype[key] = urls[key];
diff --git a/Source/ProjectWeb/src/views/custom-ui/test.vue b/Source/ProjectWeb/src/views/custom-ui/test.vue
index c4ac63c..b405076 100644
--- a/Source/ProjectWeb/src/views/custom-ui/test.vue
+++ b/Source/ProjectWeb/src/views/custom-ui/test.vue
@@ -1,93 +1,236 @@
<template>
- <div>
- <quill-editor
- class="editor"
- v-model="content"
- ref="quillEditor"
- :options="editorOptions"
- ></quill-editor>
- </div>
+ <div id='quillEditorQiniu'>
+ <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload begin-->
+ <el-upload
+ :accept="'image'"
+ :action="uploadImgUrl"
+ :before-upload="beforeEditorUpload"
+ :headers="headers"
+ :on-error="uploadEditorError"
+ :on-success="uploadEditorSuccess"
+ :show-file-list="false"
+ class="avatar-uploader">
+ </el-upload>
+ <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload end-->
+ <quill-editor ref="customQuillEditor" v-model="content" :options="editorOption" class="editor">
+ </quill-editor>
+ </div>
</template>
<script>
+import {getToken} from "@/util/auth";
+
const toolbarOptions = [
- ['bold', 'italic', 'underline', 'strike'], // 鍔犵矖 鏂滀綋 涓嬪垝绾� 鍒犻櫎绾�
- ['blockquote', 'code-block'], // 寮曠敤 浠g爜鍧�
- [{ header: 1 }, { header: 2 }], // 1銆�2 绾ф爣棰�
- [{ list: 'ordered' }, { list: 'bullet' }], // 鏈夊簭銆佹棤搴忓垪琛�
- [{ script: 'sub' }, { script: 'super' }], // 涓婃爣/涓嬫爣
- [{ indent: '-1' }, { indent: '+1' }], // 缂╄繘
- // [{'direction': 'rtl'}], // 鏂囨湰鏂瑰悜
- [{ size: ['small', false, 'large', 'huge'] }], // 瀛椾綋澶у皬
- [{ header: [1, 2, 3, 4, 5, 6, false] }], // 鏍囬
- [{ color: [] }, { background: [] }], // 瀛椾綋棰滆壊銆佸瓧浣撹儗鏅鑹�
- [{ font: [] }], // 瀛椾綋绉嶇被
- [{ align: [] }], // 瀵归綈鏂瑰紡
- ['clean'], // 娓呴櫎鏂囨湰鏍煎紡
- // ['link', 'image', 'video'] // 閾炬帴銆佸浘鐗�
- ['link', 'image'] // 閾炬帴銆佸浘鐗�
-]
+ ['bold', 'italic', 'underline', 'strike'], // 鍔犵矖 鏂滀綋 涓嬪垝绾� 鍒犻櫎绾�
+ ['blockquote', 'code-block'], // 寮曠敤 浠g爜鍧�
+ [{header: 1}, {header: 2}], // 1銆�2 绾ф爣棰�
+ [{list: 'ordered'}, {list: 'bullet'}], // 鏈夊簭銆佹棤搴忓垪琛�
+ [{script: 'sub'}, {script: 'super'}], // 涓婃爣/涓嬫爣
+ [{indent: '-1'}, {indent: '+1'}], // 缂╄繘
+ [{size: ['small', false, 'large', 'huge']}], // 瀛椾綋澶у皬
+ [{header: [1, 2, 3, 4, 5, 6, false]}], // 鏍囬
+ [{color: []}, {background: []}], // 瀛椾綋棰滆壊 瀛椾綋鑳屾櫙棰滆壊
+ [{font: []}], // 瀛椾綋绉嶇被
+ [{align: []}], // 瀵归綈鏂瑰紡
+ ['link', 'image'], // 閾炬帴 鍥剧墖
+ ['clean'] // 娓呴櫎鏂囨湰鏍煎紡
+];
export default {
- name:'test',
data() {
return {
- content: '',
- editorOptions: {
- // Quill缂栬緫鍣ㄧ殑閫夐」
- placeholder: '璇疯緭鍏ュ唴瀹癸紒',
- modules:{
- toolbar:{
- container:toolbarOptions
+ headers: {
+ Authorization: "Bearer " + getToken(),
+ },
+ uploadImgUrl: "/v1/admin/common/upload",
+ uploadUrlPath: "娌℃湁鏂囦欢涓婁紶",
+ quillUpdateImg: false,
+ content: '', //鏈�缁堜繚瀛樼殑鍐呭
+ editorOption: {
+ theme: 'snow',
+ placeholder: '璇疯緭鍏ュ唴瀹�',
+ modules: {
+ toolbar: {
+ container: toolbarOptions, // 宸ュ叿鏍�
+ handlers: {
+ image: function (value) {
+ if (value) {
+ document.querySelector('#quillEditorQiniu .avatar-uploader input').click()
+ } else {
+ this.quill.format('image', false);
+ }
+ },
+ link: function (value) {
+ if (value) {
+ const href = prompt('璇疯緭鍏ラ摼鎺ュ湴鍧�锛�');
+ this.quill.format('link', href)
+ } else {
+ this.quill.format('link', false)
+ }
+ },
+ }
}
}
-
- }
- };
- },
- mounted() {
- let self = this;
- const editor = this.$refs.quillEditor.quill;
- const toolbar = editor.getModule('toolbar');
- toolbar.addHandler('image', () => {
- self.selectLocalImage();
- });
+ },
+ }
},
methods: {
- selectLocalImage() {
- const input = document.createElement('input');
- input.setAttribute('type', 'file');
- input.click();
- input.onchange = () => {
- const file = input.files[0];
- if (file) {
- // 鍦ㄨ繖閲岃皟鐢ㄤ綘鐨勫浘鐗囦笂浼犻�昏緫锛屽苟鑾峰彇鍥剧墖鐨刄RL
- // 鍋囪浣犱笂浼犲悗寰楀埌浜嗗浘鐗嘦RL
- const url = '浣犵殑鍥剧墖URL';
- // 鎻掑叆鍥剧墖鍒扮紪杈戝櫒
- this.insertToEditor(url);
- }
- };
+ //涓婁紶鍥剧墖涔嬪墠async
+ beforeEditorUpload(file) {
+ const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif'
+ if (!isJPG) {
+ this.$message.error('涓婁紶鍥剧墖鍙兘鏄� JPG锛孭NG, GIF 鏍煎紡!')
+ } else {
+ //鏄剧ず涓婁紶鍔ㄧ敾
+ this.quillUpdateImg = true;
+ }
},
- insertToEditor(url) {
- const range = this.$refs.quillEditor.quill.getSelection();
- this.$refs.quillEditor.quill.insertEmbed(range.index, 'image', url);
+ // 涓婁紶鍥剧墖鎴愬姛
+ uploadEditorSuccess(res, file) {
+ console.log("涓婁紶鎴愬姛")
+ // this.$emit('upload',res, file)
+ console.log(res, file);
+ //鎷兼帴鍑轰笂浼犵殑鍥剧墖鍦ㄦ湇鍔″櫒鐨勫畬鏁村湴鍧�
+ let imgUrl = res.data.url;
+ let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1);
+ console.log(type);
+ // 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
+ let quill = this.$refs.customQuillEditor.quill;
+ // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
+ let length = quill.getSelection().index;
+ // 鎻掑叆鍥剧墖||瑙嗛 res.info涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
+ if (type == 'mp4' || type == 'MP4') {
+ quill.insertEmbed(length, 'video', imgUrl)
+ } else {
+ quill.insertEmbed(length, 'image', imgUrl)
+ }
+ // 璋冩暣鍏夋爣鍒版渶鍚�
+ quill.setSelection(length + 1)
+ //鍙栨秷涓婁紶鍔ㄧ敾
+ this.quillUpdateImg = false;
+ },
+ // 涓婁紶(鏂囦欢)鍥剧墖澶辫触
+ uploadEditorError(res, file) {
+ console.log(res);
+ console.log(file);
+ //椤甸潰鎻愮ず
+ this.$message.error('涓婁紶鍥剧墖澶辫触')
+ //鍙栨秷涓婁紶鍔ㄧ敾
+ this.quillUpdateImg = false;
+ },
+ //涓婁紶缁勪欢杩斿洖鐨勭粨鏋�
+ uploadResult: function (res) {
+ this.uploadUrlPath = res;
+ },
+ openContent: function () {
+ console.log(this.content)
+ },
+
+ },
+ created() {
+
+ },
+ //鍙墽琛屼竴娆★紝鍔犺浇鎵ц
+ mounted() {
+ console.log("寮�濮嬪姞杞�")
+ // 鍒濆缁欑紪杈戝櫒璁剧疆title
+ },
+ watch: {
+ content(newVal, oldVal) {
+ //this.$emit('input', newVal);
+ console.log(newVal)
+ console.log(oldVal)
}
- }
-};
+ },
+
+
+}
</script>
-<style lang="scss" scoped>
+
+<style>
.editor {
line-height: normal !important;
height: 400px;
margin-bottom: 50px;
}
-//.ql-snow .ql-tooltip[data-mode="link"]::before {
-// content: "璇疯緭鍏ラ摼鎺ュ湴鍧�:";
-//}
-//.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
-// border-right: 0px;
-// content: "淇濆瓨";
-// padding-right: 0px;
-//}
+.ql-snow .ql-tooltip[data-mode="link"]::before {
+ content: "璇疯緭鍏ラ摼鎺ュ湴鍧�:";
+}
+
+.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
+ border-right: 0px;
+ content: "淇濆瓨";
+ padding-right: 0px;
+}
+
+
+.ql-snow .ql-picker.ql-size .ql-picker-label::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item::before {
+ content: "14px";
+}
+
+.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
+ content: "10px";
+}
+
+.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
+ content: "18px";
+}
+
+.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
+.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
+ content: "32px";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item::before {
+ content: "鏂囨湰";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
+ content: "鏍囬1";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
+ content: "鏍囬2";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
+ content: "鏍囬3";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
+ content: "鏍囬4";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
+ content: "鏍囬5";
+}
+
+.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
+.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
+ content: "鏍囬6";
+}
+
+.ql-snow .ql-picker.ql-font .ql-picker-label::before,
+.ql-snow .ql-picker.ql-font .ql-picker-item::before {
+ content: "鏍囧噯瀛椾綋";
+}
+
+.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
+.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
+ content: "琛嚎瀛椾綋";
+}
+
+.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
+.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
+ content: "绛夊瀛椾綋";
+}
</style>
--
Gitblit v1.9.3