1.0.2 • Published 6 years ago

xiaomaer-richeditor v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

富文本编辑器组件

xiaomaer-richeditor

概述

基于umeditor的react富文本编辑器组件。

API

参数说明类型默认值是否必传
id唯一标示string'richeditor'Yes
value富文本编辑器的值,默认为空【注意:受控的方式使用该组件,由于设置value时,调用setContent方法会触发selectionchange事件,导致光标所在位置失效,插入图片、链接等内容位置不正确,拖拽异常等,故不推荐使用】string-No
defaultValue富文本编辑器默认值,仅初始化时使用一次,默认为空string-No
videoConfig视频相关配置object-No
height编辑器高度(包括工具栏)number400No
minheight编辑器最小高度(包括工具栏)number120No
zIndex编辑器z-indexnumber10001No
editStatus是否可编辑booleantrueNo
errorMsg报错信息string'请填写正确信息'No
errorStatus是否报错booleanfalseNo
imageUrl本地上传时请求的上传地址string当前页面地址No
pastedImageUrl自行粘贴图片上传的接口返回,组装成图片url,此参数优先于imagePathFunctionnullNo
imagePath使用组合方式组装返回的url,需要设置正确的路径,如果设置了getImageRtnUrl,此参数不起作用string当前页面地址No
parameter本地上传时的参数,开头不加 &string-No
localUpload开启本地上传功能booleanfalseNo
fileType文件类型Array-No
fileSize文件大小string-No
fileSizeMessage文件大小错误提示string-No
fileTypeMessage文件格式错误提示string-No
toolbar自定义工具栏Array-No
onChangevalue是指当前富文本中的value,haveContent(boolean)指当前文本框中是否有内容function(value,haveContet){}-No
onBlur当前富文本编辑器失去光标时触发(value是指当前富文本中的value,haveContent(boolean)指当前文本框中是否有内容)function(value,haveContet){}-No
onFocus当前富文本编辑器获得光标时触发function-No
onUploadSuccess图片上传成功回调function-No
onUploadFailure图片上传失败回调function-No
autoHeightEnabled是否可以根据内容自动增高booleantrueNo
initialStyle默认样式,需要指定具体的选择器来设置string-No
translation多语言支持object{ lang: 'zh-cn'} ('zh-cn''zh_CN''en''en_US''zh-tw'zh_TW')No
pasteFormat自定义格式化方法 可以对复制的文本进行格式化处理(html) => {return html}-No
draggable是否允许拖拽调整编辑器大小booleanfalseNo
retainOnlyLabelPasted粘贴只保留标签,去除标签所有属性booleanfalseNo
pasteplain是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴booleanfalseNo
filterTxtRules纯文本粘贴模式下的过滤规则object默认值见umeditor.config.js配置No
placeholder配置编辑器提示文字string'你想说点什么…'No

数据格式

videoConfig数据格式:

{
  "autoplay": true, //自动播放,默认false
  "controls": true,// 默认false
  "loop": true //循环播放,默认false
}

toolbar的默认值:

[
  'source | undo redo | bold italic underline strikethrough | forecolor | fullscreen |',
  'insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize',
  '| justifyleft justifycenter justifyright justifyjustify indent outdent |',
  'link unlink | image video music',
  '| horizontal preview inserttable ',
    ]

注意

  • 该组件插入视频仅支持mp4格式,win7下由于系统限制,最小支持48x48,最大支持1920x1088

richeditor参数

  id:"richeditor", //唯一标示,必须
  value:this.decode("<p><a href="https://www.baidu.com/" target="_blank" title="bd">bd</a><br/></p>"),  //富文本内显示的值,默认为空,demode()方法为解码方法
  videoConfig: { //视频相关配置
      autoplay: true, //自动播放,默认false
      controls: true,// 默认false
      loop: true //循环播放,默认false
  },
  height:240,//编辑器高度,默认240
  zIndex: 10001,//编辑器z-index,默认10001
  editStatus : true,  //是否可编辑,true为可编辑,false为不可编辑,只读状态(readonly)
  errorMsg: "出错了~~~!", //报错信息,默认为‘请填写正确信息’
  errorStatus: true, //是否报错
  imageUrl: "https://demo-cloud.italent.link/api/v2/Data/File/",  //本地上传时请求的上传地址,默认为当前页面地址
  parameter: "app=BeisenCloudDemo&metaObjName=BeisenCloudDemo.ceshi0602",  //本地上传时的参数,开头不加 &
  localUpload: true, //开启本地上传功能,默认false
  fileType: ['.jpeg','.jpg','.gif','.png','.bmp'],
  fileSize: '10M',
  fileSizeMessage: '上传图片不允许超过10M',
  fileTypeMessage: '上传图片格式错误,默认只支持jpeg,jpg,gif,png,bmp',
  toolbar:[
          'source | undo redo | bold italic underline strikethrough | forecolor | fullscreen |',
          'insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,
          '| justifyleft justifycenter justifyright justifyjustify indent outdent |',
          'link unlink | image video music',
          '| horizontal preview inserttable ',
      ], //自定义工具栏,默认为'source | undo redo | bold italic underline strikethrough | forecolor |','insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,'| justifyleft justifycenter justifyright justifyjustify indent outdent |','link unlink | image video music','| horizontal preview inserttable ',
  onChange : function(value,haveContet){} //函数参数value是指当前富文本中的value,haveContent(boolean)是指当前文本框中是否有内容
  onUploadSuccess:() => {},//图片上传成功回调
  onUploadFailure:() => {},//图片上传失败回调  
  translation: {
    lang: 'zh-cn'  // { zh-cn | en } 目前只支持这两种
  }
  pasteFormat: (html) => {return html} // 自定义格式化方法 可以对复制的文本进行格式化处理

richeditor调用方法

1.安装npm组件包

npm install xiaomaer-richeditor --save-dev

2.引用组件

import RichEditor from "xiaomaer-richeditor"

3.传入参数 该参数为上述参数,传入方式使用: {...props}

  class Demo extends Component{
  constructor(props) {
    super(props);
    this.state = {
      value: ""
    }
  }
  decode(str){
      return str
          .replace(/"/g, '"')
          .replace(/'/g, "'")
          .replace(/&lt;/g, '<')
          .replace(/&gt;/g, '>')
          .replace(/&amp;/g, '&');
  }
 encode(str) {
    return str
        .replace(/&/g, '&amp;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#39;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;');
  }
  render () {
    //视频测试地址mp4: http://f.us.sinaimg.cn/001jqIlHlx07jXQjrcEU01040200WPGC0k010.mp4?label=mp4_ld&template=300x120.28&Expires=1526894899&ssig=ZZ4YhH%2Bl%2F8&KID=unistore,video
    //http://www.w3school.com.cn/i/movie.ogg
    //http://video.699pic.com/videos/69/64/54/qgE4wF14Rye61523696454.mp4
    let options ={
      value:"http://video.699pic.com/videos/69/64/54/qgE4wF14Rye61523696454.mp4",
       videoConfig: { //视频相关配置
        autoplay: false, //自动播放,默认false
        controls: true,// 默认false
        loop: true //循环播放,默认false
      },
      height: 240,//编辑器高度,默认240
      zIndex:10001,//编辑器z-index,默认10001
      editStatus : true,
      errorMsg: "出错了~~~!", //报错信息,默认为‘请填写正确信息’
      errorStatus: true, //是否报错
      imageUrl: "http://demo-cloud.italent.link/api/v2/Data/File",  //本地上传时的上传地址,默认为当前页面地址
      parameter: "app=BeisenCloudDemo&metaObjName=BeisenCloudDemo.123",  //本地上传时的参数,开头不加 &
      localUpload: true, //开启本地上传功能
      oolbar:[
        'source | undo redo | bold italic underline strikethrough | forecolor | fullscreen |',
        'insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,
        '| justifyleft justifycenter justifyright justifyjustify indent outdent |',
        'link unlink | image video music',
        '| horizontal preview inserttable ',
    ], //自定义工具栏,默认为'source | undo redo | bold italic underline strikethrough | forecolor |','insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,'| justifyleft justifycenter justifyright justifyjustify indent outdent |','link unlink | image video music','| horizontal preview inserttable ',
    onChange : function(value,haveContet){
      console.log(value)
    },
    onUploadSuccess: () => {console.log('文件上传成功')},
    onUploadFailure: () => {console.log('文件上传失败')},
    pasteFormat: (html) => {return html.replace(/font-family: PingFangSC-Regular;/g,'');}
    }
    return (
      <div style={{"width":"1000px"}}>
        <RichEditor id="richeditor1" {...options}/>
      </div>
    )
  }
}
render(<Demo />, document.getElementById('content'))