本文主要介绍将vue集成到一个支持图片缩放和拖动的富文本编辑器中,帮助大家更好的理解和使用vue框架。感兴趣的朋友可以了解一下。

需求:

根据业务需求,你需要能够上传图片,上传的图片在移动终端上可以占据全屏宽度,所以你需要能够等比例缩放上传的图片,你还需要能够拖动、缩放和改变图片的大小。尝试了几个第三方的富文本编辑器,很难找到一个完全符合你要求的。经过多次尝试,最终选择了wangEditor富文本编辑器。一开始用的是vue2Editor的富文本编辑器。vue2Editor本身不支持图片拖动,但是提供了一种可配置的图片拖动方法,需要借助Quill.js来实现图片拖动。虽然满足了业务需求,但是在移动端的显示效果不是很理想。这一次,编辑器主要需要在移动终端上显示上传的富文本。为了达到预期的效果,它需要能够修改图像的百分比。当img标签的width属性设置为100%时,可以满足需求。最近wangEditor的一个新版本(4版)可以满足需求,最后被选中进行实用开发。

效果图:

https://codes90.oss-cn-hangzhou.aliyuncs.com/2022/09/1664410321-c68ad3db5f46b17.png

代码和相关配置如下:

安装插件

npm i编辑器-保存

//或者

纱线添加王编辑器

编辑器配置

模板

‘ w_editor ‘

!-富文本编辑器-

div id=’w_view’/div

/div

/模板

脚本

//引入富文本

从“wangeditor”导入WE;

//引入elementUI消息模块(用于提示信息)

从“element-ui”导入{ Message };

导出默认值{

名称:’ WEditor ‘,

道具:{

//默认值

defaultText: { type: String,默认值:’ ‘ },

//富文本更新的值

richText: { type: String,默认值:’ ‘ }

},

data() {

返回{

//编辑器实例

编辑:null,

//富文本菜单选项配置

菜单项:[

‘头部’,

粗体’,

字体大小’,

字体名称’,

斜体’,

下划线’,

缩进’,

‘行高’,

前景色’,

背景色’,

链接’,

列表’,

对齐’,

图像’,

‘视频’

]

};

},

观察:{

//监听默认值

defaultText(nv,ov) {

如果(nv!=”) {

this . editor . txt . html(NV);

这个。$emit(‘update:rich-text ‘,NV);

}

}

},

已安装(){

this . init editor();

},

方法:{

//初始化编辑器

initEditor() {

//获取编辑器dom节点

const editor=new WE(‘ # w _ view ‘);

//配置编辑器

editor . config . showlinkimg=false;/*隐藏插入网络图片的功能*/

editor . config . onchange time out=400;/*配置触发onchange的时间和频率,默认为200 ms */

editor . config . uploadimgmaxlength=1;/*限制您一次可以发送的最大图片数量*/

//editor . config . show full screen=false;/*配置是否显示全屏功能按钮*/

editor.config.menus=[.this . menuitem];/*自定义系统菜单*/

//editor . config . upload img maxsize=5 * 1024 * 1024/*限制图片大小*/;

editor . config . custom alert=err={

Message.error(错误);

};

//同步监控更改和更新数据。

editor . config . onchange=new html={

//异步更新组件的富文本值的更改

这个。$emit(‘update:rich-text ‘,new html);

};

//自定义上传图片

editor . config . customuploadimg=(result files,insertImgFn)={

/**

*结果文件:图像上传文件流

* insertImgFn:在rtf中插入图片。

*生成图片的URL地址作为结果返回。

* */

//这个方法让重写后的阿里云图片OSS直传插件为自己所用。

这个。$oss(结果文件[0],结果文件[0][‘name’])。然后(url={

!URL insertImgFn(URL);/* oss图像上传,将图像插入编辑器*/

});

};

//创建编辑器

editor . create();

this.editor=editor

}

},

销毁前(){

//销毁编辑器

this . editor . destroy();

this.editor=null

}

};

/脚本

注意:具体参数配置请参考编辑器文档的用户说明。

在组件中使用分离的编辑器:

模板

div class=’编辑器’

埃尔-卡影子=’永远不会’

div slot=’ header ‘ class=’ clear fix ‘

Span富文本编辑器/span

/div

div class=” card _ center ”

we ditor:default text=’ default text ‘:rich text . sync=’ rich text ‘/

/div

/电子名片

/div

/模板

脚本

//引入封装的编辑器

从“@/components/WEditor”导入we ditor;

导出默认值{

姓名:’编辑’,

组件:{ WEditor },

data() {

返回{

//默认值

默认文本: ”,

//富文本更新的值

richText:“”

};

},

已创建(){

//等待组件加载并赋值。

这个。$nextTick(()={

this . default text=` p style=’ text-align:center;’img src=https://a5 img . PNC dn . cn/2021/0310/1615366398251 . png width=’ 30% ‘ style=’ text-align:center;最大宽度:100%;’/p `;

});

}

};

/脚本

这就是vue集成支持图像缩放和拖动的富文本编辑器的细节。更多关于vue的富文本编辑器的信息,请关注脚本之家的其他相关文章!

来源:剧本之家

链接:https://www.jb51.net/article/205012.htm

发表回复

后才能评论