123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import { ref,nextTick } from "vue";
- export function useInitFroalaEditor() {
- let frolaEditorContentChange=ref(false)
- let lastFocusPosition=ref(null)
- let imgUploadFlag=ref(true)
- let options = {
- toolbarButtons: [
- "insertImage",
- "insertVideo",
- "embedly",
- "insertFile",
- "textColor",
- "bold",
- "italic",
- "underline",
- "strikeThrough",
- "fontFamily",
- "fontSize",
- "color",
- "lineHeight",
- "align",
- "formatOL",
- "formatUL",
- "outdent",
- "indent",
- "quote",
- "insertTable",
- "insertHR",
- "undo",
- "redo",
- ],
- height: 500,
- fontSize: ["6","8","10","12", "13", "14", "15", "16", "18", "20", "24", "28", "32", "36", "40"],
-
- fontSizeDefaultSelection: "16",
- theme: "dark",
- placeholderText: "请输入内容",
- language: "zh_cn",
- imageUploadURL: import.meta.env.VITE_APP_API_URL + '/report/uploadImg',
- videoUploadURL: import.meta.env.VITE_APP_API_URL + '/report/uploadImg',
- fileUploadURL: import.meta.env.VITE_APP_API_URL + '/report/uploadImg',
- imageDefaultWidth: false,
- quickInsertEnabled: false,
-
- toolbarVisibleWithoutSelection: true,
- toolbarSticky: false,
- saveInterval: 0,
- charCounterCount: false,
- events:{
-
- contentChanged:function (){
- frolaEditorContentChange.value=true
- getSelection().rangeCount&&(lastFocusPosition.value=getSelection().getRangeAt(0))
- },
- keyup:function(e,editor){
- nextTick(()=>{
- getSelection().rangeCount&&(lastFocusPosition.value=getSelection().getRangeAt(0))
- })
- },
- click:function(e,editor){
- nextTick(()=>{
- getSelection().rangeCount&&(lastFocusPosition.value=getSelection().getRangeAt(0))
- })
- },
- 'image.beforePasteUpload':function(){
- imgUploadFlag.value=false
- },
- 'image.beforeUpload':function(){
- imgUploadFlag.value=false
- },
- 'image.inserted':function(){
- imgUploadFlag.value=true
- },
- 'image.error':function(){
- imgUploadFlag.value=true
- },
- }
- };
-
- const initFroalaEditor = (el,opts) => {
-
-
-
-
-
-
-
-
-
-
-
- options={...options,...opts}
-
- console.log(options);
- return new FroalaEditor(el, options);
- };
- return {
- lastFocusPosition,
- frolaEditorContentChange,
- imgUploadFlag,
- initFroalaEditor,
- }
- }
|