Vue中富文本上传图片功能

1创建富文本

<template>
 
            <div style="border: 1px solid #ccc">
              <Toolbar
                style="border-bottom: 1px solid #ccc"
                :editor="editorRef"
                :defaultConfig="toolbarConfig"
                mode="defofault"
              />
              <Editor
                style="height: 500px; overflow-y: hidden"
                v-model="form.eva"
                :defaultConfig="editorConfig"
                mode="default "
                @onCreated="handleCreated"
              />
            </div>
        
</template>

import '@wangeditor/editor/dist/css/style.css'; // 引入 css
import { onBeforeUnmount, shallowRef, onMounted } from 'vue';
import { Editor, Toolbar } from '@wangeditor/editor-for-vue';

2配置富文本‘

const imUr = ref('');
// 编辑器实例,必须用 shallowRef
const editorRef = shallowRef();

// 内容 HTML
const valueHtml = ref();
//功能区
const toolbarConfig = {};
const editorConfig = {
  placeholder: '请输入内容...',
}

// 组件销毁时,也及时销毁编辑器
onBeforeUnmount(() => {
  const editor = editorRef.value;
  if (editor == null) return;
  editor.destroy();
});

const handleCreated = (editor) => {
  editorRef.value = editor; // 记录 editor 实例,重要!
};

3.添加自定义上传

//在editorConfig 添加
const editorConfig = {
  placeholder: '请输入内容...',
   MENU_CONF: {
    uploadImage: {
      async customUpload(file, insertFn) {
        console.log(file);
        const forms = new FormData();
        forms.append("参数", file); // 获取上传图片信息
        //  请求接口
        axios
          .post("上传接口", forms, {
            headers: {
              "content-type": "multipart/form-data",
            },
          })
          .then((res) => {
            console.log(res);
            imUr.value = res.data.front_file
            if (res.data.status == 200) {
              console.log(res);

            }
            // file 即选中的文件
            // 自己实现上传,并得到图片 url alt href
            // 最后插入图片
            insertFn( 'http//'+imUr.value , alt, href)
          });


      },


    }
  },
}

注意:打开和关闭表单时可能会出现富文本销毁失效报错

解决:在富文本中添加v-if,在打开或关闭表单事件中添加相应状态

<div style="border: 1px solid #ccc" v-if="text">
              <Toolbar
                style="border-bottom: 1px solid #ccc"
                :editor="editorRef"
                :defaultConfig="toolbarConfig"
                mode="defofault"
              />
              <Editor
                style="height: 500px; overflow-y: hidden"
                v-model="form.eva"
                :defaultConfig="editorConfig"
                mode="default "
                @onCreated="handleCreated"
              />
            </div>
const text=ref()

3

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值