• vue封装wangEditor


    components下面创建WangEditor.vue

    <template>
      <div>
        <toolbar
          style="border-bottom: 1px solid #ccc"
          :editor="editor"
          :defaultConfig="toolbarConfig"
          :mode="mode"
        />
        <editor
          style="height: 500px; overflow-y: hidden"
          v-model="modifiedContent"
          :defaultConfig="defaultEditorConfig"
          :mode="mode"
          @onCreated="onCreated"
          @onChange="sendMessage"
        />
      </div>
    </template>
    
    <script>
    import globalConfig from "@/config";
    const { zixun_host } = globalConfig;
    import Vue from "vue";
    import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
    const defaultEditorConfig = {
      // JS 语法
      MENU_CONF: {},
      // 其他属性...
    };
    // 修改 uploadImage 菜单配置
    defaultEditorConfig.MENU_CONF["uploadImage"] = {
      server: "上传图片地址",
      fieldName: "file",
      maxFileSize: 5 * 1024 * 1024, // 5M
      timeout: 30 * 1000, // 30秒
      //【注意】不需要修改的不用写,wangEditor 会去 merge 当前其他配置
    };
    export default Vue.extend({
      name: "WangEditor",
      props: {
        content: String,
        toolbarConfig: Object,
      },
      data() {
        return {
          modifiedContent: "",
          headers: {
            Authorization:"token"
          },
          editor: null,
          defaultEditorConfig: defaultEditorConfig,
          mode: "default", // or 'simple'
        };
      },
      components: {
        Editor,
        Toolbar,
      },
      /**
       * 通过监听props的变化,在watch选项中进行处理。
       * @author  我
       */
      watch: {
        content(newVal) {
          this.modifiedContent = newVal;
        },
        modifiedContent(newVal) {
          // 在这里可以进行进一步处理
          //   console.log("Modified Content:", newVal);
        },
      },
      beforeDestroy() {
        const editor = this.editor;
        if (editor == null) return;
        editor.destroy(); // 组件销毁时,及时销毁编辑器
      },
      created() {},
      mounted() {},
      methods: {
        //编辑器创建完毕时的回调函数。
        onCreated(editor) {
          this.editor = Object.seal(editor); // 一定要用 Object.seal() ,否则会报错
          console.log(this.editor);
        },
        sendMessage() {
          this.$emit("message-sent", this.modifiedContent);
        },
      },
    });
    </script>
    <style src="@wangeditor/editor/dist/css/style.css"></style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91

    main.js中注册这个全局组件
    通过这种方式,可以在每个页面上使用组件,而无需在每个页面中重复导入和注册"@wangeditor/editor-for-vue"组件。记得确保已经安装好"@wangeditor/editor-for-vue"依赖。
    组件之间可以通过props和事件来进行参数传递
    使用 ↓

    		<div style="border: 1px solid #ccc; width: 500px">
              <WangEditor
                :content="form.content"
                :toolbarConfig="toolbarConfig"
                @message-sent="handleMessage"
              />
            div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    const toolbarConfig = {};
    toolbarConfig.excludeKeys = [
      "todo", //待办
      "emotion", //表情
      "insertLink", //超链接
      "insertVideo", //表情
      "insertImage", //网络图片
      "group-video", //视频
      "codeBlock", //代码块
      "divider", //分割线
      "fullScreen", //全屏
    ];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    data() {
        return {
          form: formInit(),
          toolbarConfig: toolbarConfig,
        };
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    	/**
         * 接收组件传来的值
         * @author  我
         */
        handleMessage(message) {
          console.log("Received message:", message);
          this.form.content = message;
        },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    15-弹性盒模型
    Go语言之集合类型
    力扣(LeetCode)116. 填充每个节点的下一个右侧节点指针(C++)
    上海亚商投顾:沪指探底回升跌0.75% 旅游板块集体大涨
    选择排序(学习笔记)
    ShowMeAI —— Show u 三连
    02.Pandas数据读取
    java基础---NIO
    【云原生之k8s】kubernetes原理
    【操作系统】之进程(线程)同步
  • 原文地址:https://blog.csdn.net/weixin_44860425/article/details/132735665