| | |
| | | <template> |
| | | <div class="editor"> |
| | | <div ref="toolbar" class="toolbar" :class="showTop"></div> |
| | | <div ref="editor" class="text"></div> |
| | | <div ref="toolbar" class="toolbar" :class="showTop"> |
| | | </div> |
| | | <div ref="editor" class="text"> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import E from 'wangeditor'; |
| | | import E from 'wangeditor' |
| | | // import {uploadNew,downloadNew} from '@/api/upload'; |
| | | // import defaultUrl from "@/api/defaultUrl"; |
| | | export default { |
| | |
| | | editor: null, |
| | | info_: null, |
| | | // defaultUrl:defaultUrl, |
| | | defaultUrl: '' |
| | | }; |
| | | defaultUrl:'', |
| | | } |
| | | }, |
| | | model: { |
| | | prop: 'value', |
| | |
| | | showTop: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | isClear(val) { |
| | | // 触发清除文本域内容 |
| | | if (val) { |
| | | this.editor.txt.clear(); |
| | | this.info_ = null; |
| | | this.editor.txt.clear() |
| | | this.info_ = null |
| | | } |
| | | }, |
| | | value: function (value) { |
| | | if (value !== this.editor.txt.html()) { |
| | | this.editor.txt.html(this.value); |
| | | this.editor.txt.html(this.value) |
| | | } |
| | | } |
| | | //value为编辑框输入的内容,这里我监听了一下值,当父组件调用得时候,如果给value赋值了,子组件将会显示父组件赋给的值 |
| | | }, |
| | | mounted() { |
| | | var that = this; |
| | | that.setEditor(); |
| | | that.editor.txt.html(that.value); |
| | | var that =this |
| | | that.setEditor() |
| | | that.editor.txt.html(that.value) |
| | | }, |
| | | methods: { |
| | | setEditor() { |
| | | var that = this; |
| | | this.editor = new E(this.$refs.toolbar, this.$refs.editor); |
| | | var that =this |
| | | this.editor = new E(this.$refs.toolbar, this.$refs.editor) |
| | | // 配置菜单 |
| | | this.editor.config.menus = [ |
| | | 'head', // 标题 |
| | |
| | | 'code', // 插入代码 |
| | | 'undo', // 撤销 |
| | | 'redo' // 重复 |
| | | ]; |
| | | ] |
| | | |
| | | //配置上传图片 |
| | | this.editor.config.uploadImgShowBase64 = false; // base 64 存储图片 |
| | | this.editor.config.uploadImgServer = 'http://otp.cdinfotech.top/file/upload_images'; // 配置服务器端地址 |
| | | this.editor.config.uploadImgHeaders = {}; // 自定义 header |
| | | this.editor.config.uploadFileName = 'file'; // 后端接受上传文件的参数名 |
| | | this.editor.config.uploadImgMaxSize = 2 * 1024 * 1024; // 将图片大小限制为 2M |
| | | this.editor.config.uploadImgMaxLength = 1; // 限制一次最多上传 3 张图片 |
| | | this.editor.config.uploadImgTimeout = 3 * 60 * 1000; // 设置超时时间 |
| | | this.editor.config.uploadImgShowBase64 = false // base 64 存储图片 |
| | | this.editor.config.uploadImgServer = 'http://otp.cdinfotech.top/file/upload_images'// 配置服务器端地址 |
| | | this.editor.config.uploadImgHeaders = { }// 自定义 header |
| | | this.editor.config.uploadFileName = 'file' // 后端接受上传文件的参数名 |
| | | this.editor.config.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M |
| | | this.editor.config.uploadImgMaxLength = 1 // 限制一次最多上传 3 张图片 |
| | | this.editor.config.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间 |
| | | this.editor.config.uploadImgHooks = { |
| | | fail: (xhr, editor, result) => { |
| | | // 插入图片失败回调 |
| | |
| | | //循环插入图片 |
| | | // for (let i = 0; i < 1; i++) { |
| | | // console.log(result) |
| | | let url = 'http://otp.cdinfotech.top' + result.url; |
| | | insertImg(url); |
| | | let url = "http://otp.cdinfotech.top"+result.url |
| | | insertImg(url) |
| | | // } |
| | | } |
| | | }; |
| | | } |
| | | this.editor.config.customUploadImg = function (files, insert) { |
| | | let form = new FormData(); |
| | | form.append('file', files[0]); |
| | | form.append('dir', 'temp1'); |
| | | form.append('dir', 'temp1') |
| | | // uploadNew(form).then(res=>{ |
| | | // if(res.result){ |
| | | // let url = that.defaultUrl+`/upload/downloadNew?path=`+encodeURI(res.data.fileUrl) |
| | |
| | | // } |
| | | // |
| | | // }) |
| | | }; |
| | | } |
| | | |
| | | this.editor.config.onchange = (html) => { |
| | | this.info_ = html; // 绑定当前逐渐地值 |
| | | this.$emit('change', this.info_); // 将内容同步到父组件中 |
| | | }; |
| | | this.info_ = html // 绑定当前逐渐地值 |
| | | this.$emit('change', this.info_) // 将内容同步到父组件中 |
| | | } |
| | | // 创建富文本编辑器 |
| | | this.editor.create(); |
| | | this.editor.create() |
| | | //是否可编辑 |
| | | if (this.showTop == 'hiddenClass') { |
| | | this.editor.disable(); |
| | | this.editor.disable() |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | |
| | | } |
| | | .hiddenClass { |
| | | display: none; |
| | | |
| | | } |
| | | </style> |