vue-ueditor-wrap百度富文本的使用

我的ueditor的文件放到public下的static下

ueditor我取的是下面链接的项目里的,因为其他的总是少几个文件,真是愁GitHub - haochuan9421/vue-ueditor-wrap: 🚴Vue + 🚄UEditor + v-model双向绑定🚀

 对应的这个得配置,UEDITOR_HOME_URL: '/static/ueditor/' ,

下载vue-ueditor-wrap : npm install vue-ueditor-wrap

 文件的引入,具体路径看自己的文件夹

<div class="projBox">
	    <vue-ueditor-wrap
	      ref="uEditor"
	      v-model="mainContent"
		  :config="myConfig"
		  @ready="ready"
		  @beforeInit="addCustomButtom" 
	    ></vue-ueditor-wrap>
		<el-upload
		  :action="uploadUrl"
		  :before-upload="handleBeforeUpload"
		  :on-success="handleUploadSuccess"
		  :on-error="handleUploadError"
		  name="file"
		  :show-file-list="false"
		  :headers="headers"
		  style="display: none"
		  ref="upload"
		>
		</el-upload>
</div>

利用addCustomButtom 方法增加自定义按钮,this.img是我自己引入的项目里的图片文件,使用新增的按钮的点击方法触发上传图片,避免了ueditor原本复杂的上传图片的配置

methods: {
			ready(n) {
				this.editorInstance=n
			},
			addCustomButtom (editorId) {
			      var that = this
			      window.UE.registerUI('test-button',  (editor, uiName) => {
			        // 注册按钮执行时的 command 命令,使用命令默认就会带有回退操作
			        // editor.registerCommand(uiName, {
			        //   execCommand: function () {
			        //     editor.execCommand('inserthtml', `<span>这是一段由自定义按钮添加的文字</span>`)
			        //   }
			        // })
			
			        // 创建一个 button
			        const btn = new window.UE.ui.Button({
			          // 按钮的名字
			          name: uiName,
			          // 提示
			          title: '上传图片',
			          // 需要添加的额外样式,可指定 icon 图标,图标路径参考常见问题 2
			          cssRules: 'background-image: url('+this.img+') !important;background-size: cover',
			          // 点击时执行的命令
			          onclick: function () {
							console.log('xxx')
							console.log(that.$refs.upload)
							that.$refs.upload.$children[0].$refs.input.click();
			          }
			        })
			        // 粘贴后的事件
			        editor.addListener('afterpaste', function (cmd,html) {
			        
			        })
			        // 粘贴前的事件
			        editor.addListener('beforepaste',(cmd, html)=> {
			
			        })
			
			        // 因为你是添加 button,所以需要返回这个 button
			        return btn
			      })
			},
			// 上传前校检格式和大小
			handleBeforeUpload(file) {
			  // 校检文件大小
			  if (this.fileSize) {
			    const isLt = file.size / 1024 / 1024 < this.fileSize;
			    if (!isLt) {
			      this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
			      return false;
			    }
			  }
			  return true;
			},
			handleUploadSuccess(res, file) {
                const that = this
                // 创建实例对象
				var img = new Image()

				// 图片地址
				img.src = imgURL
//根据图片大小,超过375则使用固定百分比,适配移动端的显示,做到移动和pc展示一致
				img.onload = function(){
					if(img.width > 375){
						that.editorInstance.execCommand('inserthtml', `<img style="width:98%;" src="`+(process.env.VUE_APP_API_URL + res.enclosureId.enclosureRoute) +`" >`);
					}else{
						that.editorInstance.execCommand('inserthtml', `<img src="`+(process.env.VUE_APP_API_URL + res.enclosureId.enclosureRoute) +`" >`);
					}
				};
			  
			},
			handleUploadError() {
			  this.$message.error("图片插入失败");
			},

		},

 ueditor的配置可以自行去ueditor的ueditor.config.js文件里配置,也可像我这样页面中配置,

data() {
			return {
				editorInstance: null,
				mainContent: '',
				uploadUrl: process.env.VUE_APP_BASE_API + "/system/enclosure/upload",
				headers: {
					Authorization: "Bearer " + getToken()
				},
				type: 'url',
				fileSize: 5,
				img: addimage,
				myConfig: {
					toolbars: [
						[
							'anchor', //锚点
							'undo', //撤销
							'redo', //重做
							'bold', //加粗
							'indent', //首行缩进
							// 'snapscreen', //截图
							'italic', //斜体
							'underline', //下划线
							'strikethrough', //删除线
							'subscript', //下标
							'fontborder', //字符边框
							'superscript', //上标
							'formatmatch', //格式刷
							'source', //源代码
							'blockquote', //引用
							'pasteplain', //纯文本粘贴模式
							'selectall', //全选
							// 'print', //打印
							// 'preview', //预览
							'horizontal', //分隔线
							'removeformat', //清除格式
							'time', //时间
							'date', //日期
							'unlink', //取消链接
							'insertrow', //前插入行
							'insertcol', //前插入列
							'mergeright', //右合并单元格
							'mergedown', //下合并单元格
							'deleterow', //删除行
							'deletecol', //删除列
							'splittorows', //拆分成行
							'splittocols', //拆分成列
							'splittocells', //完全拆分单元格
							'deletecaption', //删除表格标题
							'inserttitle', //插入标题
							'mergecells', //合并多个单元格
							'deletetable', //删除表格
							'cleardoc', //清空文档
							'insertparagraphbeforetable', //"表格前插入行"
							'insertcode', //代码语言
							'fontfamily', //字体
							'fontsize', //字号
							'paragraph', //段落格式
							// 'simpleupload', //单图上传
							// 'insertimage', //多图上传
							'edittable', //表格属性
							'edittd', //单元格属性
							'link', //超链接
							// 'emotion', //表情
							'spechars', //特殊字符
							'searchreplace', //查询替换
							// 'map', //Baidu地图
							// 'gmap', //Google地图
							// 'insertvideo', //视频
							'help', //帮助
							'justifyleft', //居左对齐
							'justifyright', //居右对齐
							'justifycenter', //居中对齐
							'justifyjustify', //两端对齐
							'forecolor', //字体颜色
							'backcolor', //背景色
							'insertorderedlist', //有序列表
							'insertunorderedlist', //无序列表
							'fullscreen', //全屏
							'directionalityltr', //从左向右输入
							'directionalityrtl', //从右向左输入
							'rowspacingtop', //段前距
							'rowspacingbottom', //段后距
							// 'pagebreak', //分页
							'insertframe', //插入Iframe
							'imagenone', //默认
							'imageleft', //左浮动
							'imageright', //右浮动
							// 'attachment', //附件
							'imagecenter', //居中
							'wordimage', //图片转存
							'lineheight', //行间距
							'edittip ', //编辑提示
							'customstyle', //自定义标题
							'autotypeset', //自动排版
							// 'webapp', //百度应用
							'touppercase', //字母大写
							'tolowercase', //字母小写
							// 'background', //背景
							'template', //模板
							// 'scrawl', //涂鸦
							// 'music', //音乐
							'inserttable', //插入表格
							// 'drafts', // 从草稿箱加载
							'charts', // 图表
						]
					],
					enableAutoSave: false,
					// 编辑器不自动被内容撑高
					autoHeightEnabled: false,
					// 初始容器高度
					initialFrameHeight: 400,
					// 初始容器宽度
					initialFrameWidth: '100%',
					// 上传文件接口(这个地址是我为了方便各位体验文件上传功能搭建的临时接口,请勿在生产环境使用!!!)
					serverUrl: process.env.VUE_APP_BASE_API + "/system/enclosure/upload",
					// UEditor 资源文件的存放路径,如果你使用的是 vue-cli 生成的项目,通常不需要设置该选项,vue-ueditor-wrap 会自动处理常见的情况,如果需要特殊配置,参考下方的常见问题2
					UEDITOR_HOME_URL: '/static/ueditor/',
					uploadUrl: process.env.VUE_APP_BASE_API + "/system/enclosure/upload",
					token: 'Bearer ' + getToken(),

				}
			}
		}

 到这就可以用了,反正我可以了......

 参考文章https://blog.csdn.net/weixin_44872995/article/details/121614349

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了禁止vue-ueditor-wrap文本编辑器的编辑功能,你可以在使用组件的地方加上一个属性来禁用编辑。根据引用和引用中的代码,你可以在main.js和App.vue中添加以下代码: 在main.js中: ``` import VueUeditorWrap from 'vue-ueditor-wrap' Vue.component('vue-ueditor-wrap', { ...VueUeditorWrap, props: { disabled: { type: Boolean, default: false } }, mounted: function() { if (this.disabled) { this.$refs.ueditor.setDisabled() } } }) new Vue({ render: h => h(App), }).$mount('#app') ``` 在App.vue中: ``` <template> <div id="app"> <VueUeditorWrap :disabled="true"></VueUeditorWrap> </div> </template> <script> import VueUeditorWrap from 'vue-ueditor-wrap' export default { components: { VueUeditorWrap } } </script> ``` 这样设置之后,vue-ueditor-wrap文本编辑器就会被禁用,用户将无法编辑其中的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue-ueditor-wrap百度文本使用](https://blog.csdn.net/qq_52883064/article/details/129875979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue项目引入vue-ueditor-wrap文本编辑器](https://blog.csdn.net/weixin_45966674/article/details/123498254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值