vue+tinymce富文本编辑框

npm install tinymce
npm install @tinymce/tinymce-vue

@tinymce/tinymce-vue^3.0.1

tinymce^5.1.0
 

<template>
  <editor id='tinymce'
          v-model='tinymceHtml'
          :init='init'></editor>
</template>

<script>
import { uploadImg } from '@/api/system/config'
import tinymce from 'tinymce/tinymce'
import 'tinymce/themes/silver/theme'
import Editor from '@tinymce/tinymce-vue'
import "tinymce/plugins/image"; // 插入上传图片插件
import "tinymce/plugins/link"; //超链接插件
import "tinymce/plugins/code"; //代码块插件
import "tinymce/plugins/table"; // 插入表格插件
import "tinymce/plugins/lists"; // 列表插件
import 'tinymce/plugins/contextmenu' //右键菜单插件
import 'tinymce/plugins/wordcount' // 字数统计插件
import 'tinymce/plugins/colorpicker' //选择颜色插件
import 'tinymce/plugins/textcolor' //文本颜色插件
import 'tinymce/plugins/fullscreen' //全屏
import 'tinymce/plugins/paste'
export default {
  name: 'tinymce',
  data () {
    return {
      tinymceHtml: this.value,
      init: {
        language_url: '/tinymce/langs/zh_CN.js',
        language: 'zh_CN',
        skin_url: '/tinymce/skins/ui/oxide',
        height: 500,
        toolbar: false,
        plugins: 'link lists image code table colorpicker textcolor wordcount contextmenu',
        //toolbar: 'imagetools bold italic underline strikethrough blockquote | forecolor backcolor | formatselect | fontsizeselect | fontselect | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists link unlink image media table | removeformat | undo redo  | fullscreen',
        branding: false,
        paste_data_images: true,
        images_upload_handler: (blobInfo, success, failure) => {
          if (blobInfo.blob().size / 1024 / 1024 > 2) {
            failure("上传失败,图片大小请控制在 2M 以内");
          } else {
            let params = new FormData();
            params.append("file", blobInfo.blob())
            //自己后台的上传接口
            uploadImg(params).then(res => {
              success(res.url);
            })
          }
        }

      },
    }
  },
  props: ['value'],
  mounted () {
    tinymce.init({})
  },
  watch: {
    value (newValue) {
      this.tinymceHtml = newValue
    },
    tinymceHtml (newValue) {
      this.$emit('input', newValue)
    }
  },
  components: { Editor }
}
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值