1,vue中安装wangEditor
使用的npm安装 npm install wangeditor --save
2.直接上代码:
组件:
<template lang="html">
<div class="editor">
<div ref="toolbar" class="toolbar">
</div>
<div ref="editor" class="text">
</div>
</div>
</template>
<script>
import E from 'wangeditor'
import emojiJSON from './emoji.json' // 这个是自己引入的表情包,默认的表情包太少 大家可以在最后面找
export default {
name: 'editoritem',
data() {
return {
// uploadPath,
editor: null,
info_: null,
emojiList: emojiJSON
}
},
model: {
prop: 'value',
event: 'change'
},
props: {
value: {
type: String,
default: ''
},
isClear: {
type: Boolean,
default: false
}
},
watch: {
isClear(val) {
// 触发清除文本域内容
if (val) {
this.editor.txt.clear()
this.info_ = null
}
},
value: function(value) {
if (value !== this.editor.txt.html()) {
this.editor.txt.html(this.value)
}
}
//value为编辑框输入的内容,这里我监听了一下值,当父组件调用得时候,如果给value赋值了,子组件将会显示父组件赋给的值
},
mounted() {
this.seteditor()
this.editor.txt.html(this.value)
},
methods: {
seteditor() {
// http://192.168.2.125:8080/admin/storage/create
this.editor = new E(this.$refs.toolbar, this.$refs.editor)
this.editor.customConfig.emotions = [
{
title: '默认',
type: 'image',
content: this.emojiList
}
]
this.editor.customConfig.uploadImgShowBase64 = false // base 64 存储图片
this.editor.customConfig.uploadImgServer = 'http://otp.cdinfotech.top/file/upload_images'// 配置服务器端地址
this.editor.customConfig.uploadImgHeaders = { }// 自定义 header
this.editor.customConfig.uploadFileName = 'file' // 后端接受上传文件的参数名
this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M
this.editor.customConfig.uploadImgMaxLength = 6 // 限制一次最多上传 3 张图片
this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间
// 配置菜单
this.editor.customConfig.menus = [
'emoticon', // 表情
]
this.editor.customConfig.onchange = (html) => {
this.info_ = html // 绑定当前逐渐地值
this.$emit('change', this.info_) // 将内容同步到父组件中
}
// 创建富文本编辑器
this.editor.create()
}
}
}
</script>
<style lang="css">
.editor {
width: 100%;
margin: 0 auto;
position: relative;
z-index: 0;
}
.toolbar {
border: 1px solid #ccc;
}
.text {
border: 1px solid #ccc;
min-height: 500px;
}
</style>
引入组件
<template>
<div>
<div class="WeLanguage">
<h1>自定义欢迎语</h1>
<el-form ref="weLanguageForm">
<el-form-item>
<div class="weLanguageTemWrap" v-for="(item,index) in weLanguageForm">
<div class="weLanguageTemTitle">
<span class="welcomeLange">网站欢迎语</span>
<span>
<el-select v-model="item.weLanguageValue" multiple placeholder="请选择">
<el-option
v-for="iteml in weLanguageOptions"
:key="iteml.value"
:label="iteml.label"
:value="iteml.value">
</el-option>
</el-select>
</span>
</div>
<editor-bar v-model="item.editorText" :isClear="isClear" @change="change"></editor-bar>
</div>
</el-form-item>
<el-form-item>
<div @click="addWelLange">添加</div>
</el-form-item>
<el-form-item>
<xyy-button>保存</xyy-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import XyyButton from "../../components/xyy/xyy-button/index";
import EditorBar from './kindeditor';
export default {
name: 'WeLanguage',
components: {
XyyButton,
EditorBar
},
data() {
return {
// editorTextCopy: '', // 第一个content-change 事件回掉改变的对象
weLanguageForm: [{
weLanguageValue: '', // 第1个欢迎语 选择组
editorText: '', // 第1个欢迎语的初始化值
}],
isClear: false,
weLanguageOptions: [{ // 选择组
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}]
}
},
methods: {
change(val) {
console.log(val)
},
addWelLange() {
this.weLanguageForm.push({ weLanguageValue: '',editorText: '' })
console.log(this.weLanguageForm)
}
}
};
</script>
<style lang="scss">
.WeLanguage {
width: 724px;
height: auto;
margin: 0 auto;
border: 1px solid #ccc;
position: relative;
font-size: 14px;
h1{
font-size: 16px;
}
.weLanguageTemTitle {
width: 100%;
height: 39px;
line-height: 39px;
background: rgba(245, 247, 250, 1);
border-radius: 2px 2px 0px 0px;
display: flex;
justify-content: space-between;
.welcomeLange {
padding-left: 12px;
}
.el-select {
width: 448px !important;
height: 28px;
.el-input {
line-height: 28px !important;
}
.el-input__inner {
@extend .el-select;
}
}
}
.addWelWords {
width: 723px;
height: 32px;
line-height: 32px;
text-align: center;
color: rgba(87, 87, 102, 1);;
background: rgba(255, 255, 255, 1);
border-radius: 2px;
border: 1px solid rgba(220, 223, 230, 1);
cursor: pointer;
}
}
</style>
自定义表情包
[{
"alt": "[微笑]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/0.gif"
}, {
"alt": "[撇嘴]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/1.gif"
}, {
"alt": "[色]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/2.gif"
}, {
"alt": "[发呆]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/3.gif"
}, {
"alt": "[得意]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/4.gif"
}, {
"alt": "[流泪]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/5.gif"
}, {
"alt": "[害羞]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/6.gif"
}, {
"alt": "[闭嘴]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/7.gif"
}, {
"alt": "[睡]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/8.gif"
}, {
"alt": "[大哭]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/9.gif"
}, {
"alt": "[尴尬]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/10.gif"
}, {
"alt": "[发怒]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/11.gif"
}, {
"alt": "[调皮]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/12.gif"
}, {
"alt": "[呲牙]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/13.gif"
}, {
"alt": "[惊讶]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/14.gif"
}, {
"alt": "[难过]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/15.gif"
}, {
"alt": "[酷]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/16.gif"
}, {
"alt": "[冷汗]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/17.gif"
}, {
"alt": "[抓狂]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/18.gif"
}, {
"alt": "[吐]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/19.gif"
}, {
"alt": "[偷笑]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/20.gif"
}, {
"alt": "[愉快]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/21.gif"
}, {
"alt": "[白眼]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/22.gif"
}, {
"alt": "[傲慢]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/23.gif"
}, {
"alt": "[饥饿]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/24.gif"
}, {
"alt": "[困]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/25.gif"
}, {
"alt": "[惊恐]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/26.gif"
}, {
"alt": "[流汗]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/27.gif"
}, {
"alt": "[憨笑]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/28.gif"
}, {
"alt": "[悠闲]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/29.gif"
}, {
"alt": "[奋斗]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/30.gif"
}, {
"alt": "[咒骂]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/31.gif"
}, {
"alt": "[疑问]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/32.gif"
}, {
"alt": "[嘘]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/33.gif"
}, {
"alt": "[晕]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/34.gif"
}, {
"alt": "[疯了]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/35.gif"
}, {
"alt": "[哀]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/36.gif"
}, {
"alt": "[骷髅]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/37.gif"
}, {
"alt": "[敲打]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/38.gif"
}, {
"alt": "[再见]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/39.gif"
}, {
"alt": "[擦汗]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/40.gif"
}, {
"alt": "[抠鼻]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/41.gif"
}, {
"alt": "[鼓掌]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/42.gif"
}, {
"alt": "[糗大了]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/43.gif"
}, {
"alt": "[坏笑]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/44.gif"
}, {
"alt": "[左哼哼]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/45.gif"
}, {
"alt": "[右哼哼]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/46.gif"
}, {
"alt": "[哈欠]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/47.gif"
}, {
"alt": "[鄙视]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/48.gif"
}, {
"alt": "[委屈]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/49.gif"
}, {
"alt": "[快哭了]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/50.gif"
}, {
"alt": "[阴险]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/51.gif"
}, {
"alt": "[亲亲]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/52.gif"
}, {
"alt": "[吓]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/53.gif"
}, {
"alt": "[可怜]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/54.gif"
}, {
"alt": "[菜刀]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/55.gif"
}, {
"alt": "[西瓜]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/56.gif"
}, {
"alt": "[啤酒]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/57.gif"
}, {
"alt": "[篮球]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/58.gif"
}, {
"alt": "[乒乓]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/59.gif"
}, {
"alt": "[咖啡]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/60.gif"
}, {
"alt": "[饭]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/61.gif"
}, {
"alt": "[猪头]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/62.gif"
}, {
"alt": "[玫瑰]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/63.gif"
}, {
"alt": "[凋谢]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/64.gif"
}, {
"alt": "[嘴唇]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/65.gif"
}, {
"alt": "[爱心]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/66.gif"
}, {
"alt": "[心碎]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/67.gif"
}, {
"alt": "[蛋糕]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/68.gif"
}, {
"alt": "[闪电]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/69.gif"
}, {
"alt": "[炸弹]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/70.gif"
}, {
"alt": "[刀]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/71.gif"
}, {
"alt": "[足球]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/72.gif"
}, {
"alt": "[瓢虫]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/73.gif"
}, {
"alt": "[便便]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/74.gif"
}, {
"alt": "[月亮]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/75.gif"
}, {
"alt": "[太阳]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/76.gif"
}, {
"alt": "[礼物]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/77.gif"
}, {
"alt": "[拥抱]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/78.gif"
}, {
"alt": "[强]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/79.gif"
}, {
"alt": "[弱]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/80.gif"
}, {
"alt": "[握手]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/81.gif"
}, {
"alt": "[胜利]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/82.gif"
}, {
"alt": "[抱拳]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/83.gif"
}, {
"alt": "[勾引]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/84.gif"
}, {
"alt": "[拳头]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/85.gif"
}, {
"alt": "[差劲]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/86.gif"
}, {
"alt": "[爱你]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/87.gif"
}, {
"alt": "[NO]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/88.gif"
}, {
"alt": "[OK]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/89.gif"
}, {
"alt": "[爱情]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/90.gif"
}, {
"alt": "[飞吻]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/91.gif"
}, {
"alt": "[跳跳]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/92.gif"
}, {
"alt": "[发抖]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/93.gif"
}, {
"alt": "[怄火]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/94.gif"
}, {
"alt": "[转圈]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/95.gif"
}, {
"alt": "[磕头]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/96.gif"
}, {
"alt": "[回头]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/97.gif"
}, {
"alt": "[跳绳]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/98.gif"
}, {
"alt": "[投降]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/99.gif"
}, {
"alt": "[激动]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/100.gif"
}, {
"alt": "[乱舞]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/101.gif"
}, {
"alt": "[献吻]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/102.gif"
}, {
"alt": "[左太极]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/103.gif"
}, {
"alt": "[右太极]",
"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji/104.gif"
}]
官网链接:http://www.wangeditor.com/index.html
我写了两篇关于wangEditor的文章,一个是单独引入的,一个一个页面引入动态引入多个的,此文章是引入多个的
本文介绍了在Vue项目中如何通过npm安装wangeditor,并提供了组件代码示例,展示了如何在一个页面上动态引入并使用多个wangEditor编辑器。同时,提到了自定义表情包的配置,并给出了wangEditor官网链接,以及作者关于wangEditor的其他相关文章。
3607





