|
|
|
|
@ -30,38 +30,21 @@
|
|
|
|
|
import { QuillEditor, Quill } from '@vueup/vue-quill';
|
|
|
|
|
import '@vueup/vue-quill/dist/vue-quill.snow.css';
|
|
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
|
|
import { ComponentInternalInstance } from "vue";
|
|
|
|
|
import { propTypes } from '@/utils/propTypes';
|
|
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
|
|
|
/* 编辑器的内容 */
|
|
|
|
|
modelValue: {
|
|
|
|
|
type: String,
|
|
|
|
|
},
|
|
|
|
|
modelValue: propTypes.string,
|
|
|
|
|
/* 高度 */
|
|
|
|
|
height: {
|
|
|
|
|
type: Number,
|
|
|
|
|
default: null,
|
|
|
|
|
},
|
|
|
|
|
height: propTypes.number.def(400),
|
|
|
|
|
/* 最小高度 */
|
|
|
|
|
minHeight: {
|
|
|
|
|
type: Number,
|
|
|
|
|
default: null,
|
|
|
|
|
},
|
|
|
|
|
minHeight: propTypes.number.def(400),
|
|
|
|
|
/* 只读 */
|
|
|
|
|
readOnly: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
readOnly: propTypes.bool.def(false),
|
|
|
|
|
/* 上传文件大小限制(MB) */
|
|
|
|
|
fileSize: {
|
|
|
|
|
type: Number,
|
|
|
|
|
default: 5,
|
|
|
|
|
},
|
|
|
|
|
fileSize: propTypes.number.def(5),
|
|
|
|
|
/* 类型(base64格式、url格式) */
|
|
|
|
|
type: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: "url",
|
|
|
|
|
}
|
|
|
|
|
type: propTypes.string.def('url')
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
|
@ -166,16 +149,20 @@ const handleUploadError = (err: any) => {
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
.editor, .ql-toolbar {
|
|
|
|
|
.editor,
|
|
|
|
|
.ql-toolbar {
|
|
|
|
|
white-space: pre-wrap !important;
|
|
|
|
|
line-height: normal !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.quill-img {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ql-snow .ql-tooltip[data-mode="link"]::before {
|
|
|
|
|
content: "请输入链接地址:";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
|
|
|
|
|
border-right: 0;
|
|
|
|
|
content: "保存";
|
|
|
|
|
@ -190,14 +177,17 @@ const handleUploadError = (err: any) => {
|
|
|
|
|
.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";
|
|
|
|
|
@ -207,26 +197,32 @@ const handleUploadError = (err: any) => {
|
|
|
|
|
.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";
|
|
|
|
|
@ -236,10 +232,12 @@ const handleUploadError = (err: any) => {
|
|
|
|
|
.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: "等宽字体";
|
|
|
|
|
|