【后台管理系统】—— Ant Design Pro结合插件(一)

本文介绍了如何在后台管理系统中结合使用富文本编辑器Braft-editor、图片裁剪功能和统计图表。在Braft-editor中,通过dangerouslySetInnerHTML处理内容,并进行七牛云前缀和多媒体标签的转换。图片裁剪部分,使用了Modal弹框和Cropper组件,配合beforeUpload方法上传至七牛云。最后,展示了如何集成bizCharts库创建统计图表。
摘要由CSDN通过智能技术生成

一、富文本braft-editor

  • 安装并引用
    npm install braft-editor --save
    
    import BraftEditor from 'braft-editor'
    import 'braft-editor/dist/index.css'
    
  • state中初始内容

    editorState: BraftEditor.createEditorState(),
    
  • 表单中使用<BraftEditor/>

     <FormItem label="教程正文" {...formLayout}>
            {getFieldDecorator('content', {
                    validateTrigger: 'onBlur',
                    rules: [{
                        required: true,
                        validator: (_, value, callback) => {
                        if (value.isEmpty()) {
                            callback('请输入正文内容')
                        } else {
                            callback()
                        }
                        }
                    }],
                    // 内容必须通过BraftEditor.createEditorState()转化为可读的格式
                    initialValue: current && detail ? BraftEditor.createEditorState(defaultContent(detail.content)) : ''
                    })(
                        <BraftEditor
                            className="my-editor"
                            controls={controls}                         // 按需添加控件按钮
                            extendControls={extendControls}             // 自定义控件按钮
                            placeholder="请输入正文内容"
                            media={
          {                                    // 媒体对象
                                uploadFn: handleUploadFn,               // 上传七牛云服务器获取url
                                validateFn: handleValidateFn,           // 上传文件的限制
                                accepts: {                              //  可上传格式
                                  image: 'image/png, image/jpeg, image/jpg, image/gif, image/webp, image/apng, image/svg',
                                  video: 'video/mp4',
                                  audio: 'audio/mp3, audio/mp4, audio/ogg, audio/mpeg'
                                }
                            }}
                            onChange={this.handleContentChange}         // 内容更改方法
                        />
                    )}
    </FormItem>
    
  • 打开弹框时处理获取到的HTML格式的content,转化为插件可读格式,同时字符串切割替换转换后台传来的七牛云前缀与安卓ios视频图片需要的标签处理
    showEditModal = item => {
        const { dispatch } = this.props;
    
        let content = '';
        if(item.content){
          content = item.content;
          let contentObj = JSON.parse(BraftEditor.createEditorState(content).toRAW());
          let urlArr;
          Object.keys(contentObj.entityMap).forEach((key) => {
            if(contentObj.entityMap[key].data.url){
              urlArr = contentObj.entityMap[key].data.url.split('/')
              console.log('编辑时', urlArr)
              if(urlArr.length == 2){  //ios视频前缀yihezo
                urlArr.splice(0,1);
                contentObj.entityMap[key].data.url = `${setFile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值