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的文章,一个是单独引入的,一个一个页面引入动态引入多个的,此文章是引入多个的