npm-wps-editor

rich text editor for vue (based on quill)

Usage no npm install needed!

<script type="module">
  import npmWpsEditor from 'https://cdn.skypack.dev/npm-wps-editor';
</script>

README

vue rich text editor

vue 富文本编辑器组件,基于@quill新增图片上传和视频上传,欢迎issues

安装

NPM

npm install vue-word-editor --save 

依赖 quill,axios,vue

配置

遵循Quill原有配置:https://quilljs.com/docs/configuration/

新增配置

上传图片和上传视频的配置 ( uploadImage / uploadVideo )

属性 类型 说明
url String 上传图片的地址
name String formData字段名
uploadBefore Function 上传之前触发,参数返回file文件,返回false则不上传
uploadProgress Function 上传中触发,参数返回上传中结果
uploadSuccess Function 上传成功触发,参数返回上传后的结果和注入方法
uploadError Function 上传失败触发,参数返回错误
showProgress Boolean 是否展示上传进度条(可自行在uploadProgress定义)
headers Object 上传的头信息

使用

普通SPA使用

参考 /example

<template>
  <div id="app">
    <VueEditor :config="config"/>
  </div>
</template>
<script>
import VueEditor from "vue-word-editor";
import "quill/dist/quill.snow.css"

export default {
name: 'app',

data(){
  return {
    config: {
      // 上传图片的配置
      uploadImage: {
        url: "http://localhost:3000/upload",
        name: "file",
        // res是结果,insert方法会把内容注入到编辑器中,res.data.url是资源地址
        uploadSuccess(res, insert){
          insert("http://localhost:3000" + res.data.url)
        }
      },
       
      // 上传视频的配置
      uploadVideo: {
        url: "http://localhost:3000/upload",
        name: "file",
        uploadSuccess(res, insert){
          insert("http://localhost:3000" + res.data.url)
        }
      }
    }
  }
},

components: {
  VueEditor
},
}
</script>

SSR在Nuxtjs中使用

加个判断再引入即可

import "quill/dist/quill.snow.css"
let VueEditor;

if (process.browser) {
    VueEditor = require('vue-word-editor').default
}

获取内容

1.给组件添加ref

<VueEditor :config="config" ref="vueEditor"/>

2.获取富文本

this.$refs.vueEditor.editor.root.innerHTML

如果想要调用quill对象的方法,可以使用this.$refs.vueEditor.editor访问quill对象