vue 一个页面使用多个wangEditor

本文介绍了在Vue项目中如何通过npm安装wangeditor,并提供了组件代码示例,展示了如何在一个页面上动态引入并使用多个wangEditor编辑器。同时,提到了自定义表情包的配置,并给出了wangEditor官网链接,以及作者关于wangEditor的其他相关文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值