综合干狼人综合首页,日本а中文在线天堂,中国av一区,日韩va亚洲va欧洲va国产

21
2023/06

Vue——wangEditor子組件

發(fā)布時間:2023-06-21 10:13:36
發(fā)布者:MaiMai
瀏覽量:
0

上一篇我們已經創(chuàng)建了wangEdit.vue子組件,在里面編譯如下:

dom結構中需要引入工具欄和編輯器兩部分,如圖所示:

1687313982446.png

代碼部分:

<script>

import store from '@/store'

import {Editor, Toolbar} from '@wangeditor/editor-for-vue'


import { DomEditor } from '@wangeditor/editor'



export default {

  name: 'wangEditor',

  components: {Editor, Toolbar},

  props: [

    'editorParams'

  ],

  data() {

    return {

      // 富文本編輯器對象

      editor: null,

      // 富文本內容

      content: null,

      // 富文本占位內容

      placeholder: null,

      // 富文本上傳圖片的地址

      uploadImageUrl: null,

      // 富文本最小高度

      height: '300px',

      // 富文本是否禁用

      isDisabled: false,

      // 工具欄配置

      toolbarConfig: {

        // 顯示指定的菜單項

        // toolbarKeys: [],

        // 隱藏指定的菜單項

        excludeKeys: [

          // 隱藏全屏按鈕

          "fullScreen"

        ],

      },

      // 編輯器配置

      editorConfig: {

        placeholder: '請輸入內容......',

        MENU_CONF: ['uploadImage']

      }

    }

  },

  watch: {

    /**

     * 深度監(jiān)聽富文本參數(shù)

     */

    'editorParams': {

      handler: function (newVal, oldVal) {

        if (newVal != null) {

          this.content = newVal.content

          this.editorConfig.placeholder = this.placeholder

          this.uploadImageUrl = newVal.uploadImageUrl

          this.setUploadImageConfig()

          this.height = newVal.height

          this.isDisabled = newVal.isDisabled

        }

      },

      immediate: true,

      deep: true

    }

  },

  methods: {

    /**

     * 實例化富文本編輯器

     */

    onCreated(editor) {

      this.editor = Object.seal(editor)

      this.setIsDisabled()

    },

    /**

     * 監(jiān)聽富文本編輯器

     */

    onChange(editor) {

      // console.log('onChange =>', editor.getHtml())

    },

    /**

     * this.editor.getConfig().spellcheck = false

     * 由于在配置中關閉拼寫檢查,值雖然設置成功,但是依然顯示紅色波浪線

     * 因此在富文本編輯器組件掛載完成后,操作 Dom 元素設置拼寫檢查 spellcheck 為假

     */

    async setSpellCheckFasle() {

      let doms = await document.getElementsByClassName('w-e-scroll')

      for (let vo of doms) {

        if (vo) {

          if (vo.children.length > 0) {

            vo.children[0].setAttribute('spellcheck', 'false')

          }

        }

      }

    },

    /**

     * 設置富文本是否禁用

     */

    async setIsDisabled() {

      if (this.editor) {

        this.isDisabled ? (this.editor.disable()) : (this.editor.enable())

      }

    },

    /**

     * 上傳圖片配置

     */

    setUploadImageConfig() {

      this.editorConfig.placeholder = this.placeholder

      this.editorConfig.MENU_CONF['uploadImage'] = {

        fieldName: 'file', // 文件字段名(后端需要對應的字段), 默認值 'wangeditor-uploaded-image'

        maxFileSize: 6 * 1024 * 1024, // 單個文件的最大體積限制,默認為 2M,此次設置為 6M

        maxNumberOfFiles: 30, // 最多可上傳幾個文件,默認為 100

        allowedFileTypes: ['image/*'], // 選擇文件時的類型限制,默認為 ['image/*'] ,若不想限制,則設置為 []

        meta: {// 自定義上傳參數(shù),例如傳遞驗證的 token 等,參數(shù)會被添加到 formData 中,一起上傳到服務端

          'TENANT-ID': store.getters.userInfo.tenantId,

          Authorization: 'Bearer ' + store.getters.access_token

        },

        metaWithUrl: false, // 將 meta 拼接到 URL 參數(shù)中,默認 false

        headers: {// 設置 HTTP 請求頭信息

          'TENANT-ID': store.getters.userInfo.tenantId,

          Authorization: 'Bearer ' + store.getters.access_token

        },

        server: this.uploadImageUrl, // 上傳圖片接口地址

        withCredentials: false, // 跨域是否傳遞 cookie ,默認為 false

        timeout: 5 * 1000, // 超時時間,默認為 10 秒,此次設置為 5 秒

        // 自定義插入圖片

        customInsert(res, insertFn) {

          // 因為自定義插入導致onSuccess與onFailed回調函數(shù)不起作用,自己手動處理

          // 注意此處將返回的文件路徑拼接出來放入,注意應該是完整地址,res為上傳后接口返回的數(shù)據(jù)

          let file_url = '';

          insertFn(file_url, res.data.fileName, file_url);

        },

        // 上傳之前觸發(fā)

        onBeforeUpload(file) {

          return file

        },

        // 上傳進度的回調函數(shù)

        onProgress(progress) {

          console.log('progress', progress)

        },

        // 單個文件上傳成功之后

        onSuccess(file, res) {

          console.log(`${file.name} 上傳成功`, res)

        },

        // 單個文件上傳失敗

        onFailed(file, res) {

          console.log(`${file.name} 上傳失敗`, res)

        },

        // 上傳錯誤,或者觸發(fā) timeout 超時

        onError(file, err, res) {

          console.log(`${file.name} 上傳出錯`, err, res)

        }

      }

    },

    /**

     * 獲取編輯器文本內容

     */

    getEditorText() {

      const editor = this.editor

      if (editor != null) {

        return editor.getText()

      }

    },

    /**

     * 獲取編輯器Html內容

     */

    getEditorHtml() {

      const editor = this.editor

      // 下方三行用來獲取編輯器工具欄分組

      // const toolbar = DomEditor.getToolbar(this.editor)

      // const curToolbarConfig = toolbar.getConfig()

      // console.log( curToolbarConfig.toolbarKeys )

      if (editor != null) {

        return editor.getHtml()

      }

    },

    /**

     * 填充編輯器Html內容

     */

    setEditorHtml(html) {

      const editor = this.editor

      if (editor != null) {

        editor.setHtml(html)

      }

    }

  },

  created() {


  },

  mounted() {

    this.setSpellCheckFasle() // 設置拼寫檢查 spellcheck 為假

    document.activeElement.blur() // 取消富文本自動聚焦且禁止虛擬鍵盤彈出

  },

  /**

   * 銷毀富文本編輯器

   */

  beforeDestroy() {

    const editor = this.editor

    if (editor != null) {

      editor.destroy()

    }

  }

}

script>

<style src="@wangeditor/editor/dist/css/style.css">style>


<style lang="less" scoped>

.w-e-full-screen-container {

  z-index: 99;

}


.w-e-for-vue {

  margin: 0;

  border: 1px solid #ccc;


  .w-e-for-vue-toolbar {

    border-bottom: 1px solid #ccc;

  }


  .w-e-for-vue-editor {

    height: auto;


    /deep/ .w-e-text-container {


      .w-e-text-placeholder {

        top: 6px;

        color: #666;

      }


      pre {


        code {

          text-shadow: unset;

        }

      }


      p {

        margin: 5px 0;

        font-size: 14px; // 設置編輯器的默認字體大小為14px

      }

    }

  }

}

style>

有關子組件傳值的內容可以點擊此鏈接>>查看。

到這里,擁有完整功能的富文本編輯器就完成了。

關鍵詞:
返回列表
综合干狼人综合首页,日本а中文在线天堂,中国av一区,日韩va亚洲va欧洲va国产
国产亚洲精品久久久久久| 一区二区三区精品在线观看| 亚洲精品成人久久电影| 日韩一区二区精品在线观看| 日韩精品一区二区三区视频播放| 中文字幕日韩一区二区| 伊人久久综合97精品| 亚洲的天堂在线中文字幕| 亚洲高清免费一级二级三级| 日韩一区二区三区免费看| 亚洲激情在线观看| 久久嫩草精品久久久精品一| 日韩欧美一级二级| 中文字幕亚洲欧美在线| 色综合天天综合网天天看片| 亚洲国产sm捆绑调教视频| 中文字幕亚洲欧美在线不卡| 日韩欧美视频一区| 国产一区二区导航在线播放| 天天色综合天天| 91精选在线观看| 日韩精品一区二区三区视频在线观看| 91精品在线一区二区| 欧美精品乱码久久久久久按摩| 亚洲精品日韩一| 亚洲一区在线观看免费| 日韩三级视频中文字幕| 在线视频国内一区二区| 久久99精品一区二区三区三区| 午夜精品免费在线观看| 亚洲资源在线观看| 亚洲成av人片一区二区| 亚洲精品在线电影| 国产丝袜美腿一区二区三区| 精品午夜久久福利影院| 91精品国产综合久久精品麻豆| 日韩av最新在线观看| 欧美精品在线视频| 日韩欧美亚洲成人| 色综合久久久久综合体桃花网| 亚洲日本成人女熟在线观看| 在线观看国产成人av片| 在线观看国产成人av片| 亚洲另类一区二区| 日韩一级大片在线| 精品一区二区精品| 在线观看久久久久久| 亚洲国产成人爱av在线播放| 久久er99热精品一区二区| 91精品国产高清一区二区三区| 亚洲精品视频免费观看| 久久久久久久久97黄色工厂| 国产剧情一区在线| 亚洲一区二区不卡免费| 欧美福利视频导航| 欧美日韩一区二区免费视频| 久久成人久久鬼色| 欧美精品三级日韩久久| 久久综合国产精品| 亚洲经典中文字幕| 国产农村妇女毛片精品久久麻豆| 激情五月播播久久久精品| 精品写真视频在线观看| 日韩视频一区二区| 欧美精品一区二区三区很污很色的| 日韩视频免费观看高清完整版在线观看| 欧美日韩你懂的| 欧美性生交xxxxx久久久| 国产精品一区一区| 精品久久久久久亚洲精品| 欧美日韩激情一区二区| 色综合久久99| 日韩欧美视频一区| 欧美色xxxx| 中文字幕一区二区三区乱码在线| 国产成人亚洲综合a∨猫咪| 亚洲欧洲另类国产综合| 午夜伦欧美伦电影理论片| 亚洲成人黄色在线观看| 国产精品自拍网站| 亚洲精品菠萝久久久久久久| 欧美成人bangbros| 久久久精品中文字幕麻豆发布| 色综合久久88色综合天天免费| 欧美精品久久一区二区三区| 欧美成人综合网站| 中文字幕欧美视频在线| 欧美日韩国产丝袜另类| 国产亚洲精品久久久久久牛牛| 精品盗摄一区二区三区| 91精品1区2区| 精品成人a区在线观看| 欧美精品在线视频| 国产麻豆精品在线观看| 午夜视频一区二区三区| 亚洲欧洲av一区二区三区久久| 国产精品欧美久久久久无广告| 一区二区日韩电影| 亚洲va在线va天堂| 亚洲免费看黄网站| 午夜伊人狠狠久久| 亚洲国产精品一区二区久久| 在线观看国产精品91| 亚洲欧美日韩精品久久| 亚洲综合免费观看高清在线观看| 中文av一区特黄| 亚洲视频在线观看三级| 精品成人一区二区三区| 久久蜜桃av一区二区天堂| 欧美日韩一区二区三区高清| 亚洲精品xxx| 国产成人高清在线| 国产午夜精品一区二区| 亚洲女在线观看| 国产毛片精品国产一区二区三区| 精品亚洲国内自在自线福利| 亚洲免费大片在线观看| 欧美日韩一卡二卡三卡| 亚洲精品视频中文字幕| 91精品久久久久久久99蜜桃| 亚洲免费观看高清完整版在线| 亚洲黄色av网站| 久久久欧美精品sm网站| 国产乱对白刺激视频不卡| 精品久久久香蕉免费精品视频| 一区二区三区精品99久久| 国产久卡久卡久卡久卡视频精品| 亚洲福利一区二区三区| 9色porny自拍视频一区二区| 精品久久久免费| 久久久久99精品一区| 亚洲国产高清高潮精品美女| 国产亚洲精品7777| 久久综合精品国产一区二区三区| 日韩欧美一区二区在线| 亚洲欧美在线视频| 欧美日韩中文字幕日韩欧美| 欧美刺激午夜性久久久久久久| 色丁香久综合在线久综合在线观看| 中文字幕色av一区二区三区| 在线免费看av不卡| 亚洲精品丝袜日韩| 色欧美片视频在线观看在线视频| 一区二区三区在线视频免费观看| 91官网在线免费观看| 亚洲一区二区在线视频| 中文字幕av不卡| 亚洲欧洲综合另类| 夜夜嗨av一区二区三区免费区| 欧美久久久久中文字幕| 中文字幕一区二区三中文字幕| 日韩视频免费观看高清在线视频| 精品国产一区二区亚洲人成毛片| 欧美剧在线免费观看网站| 在线观看免费一区| 欧美精品一区在线观看| 亚洲国产精品一区二区久久| 一本大道亚洲视频| 亚洲国产又黄又爽女人高潮的| 中文字幕一区二区三区不卡| 91福利小视频| 51精品视频一区二区三区| 欧美高清视频在线高清观看mv色露露十八| 国产亚洲人成网站在线观看| 国产偷亚洲偷欧美偷精品| 久久99国产精品久久99| 精品美女被调教视频大全网站| 欧美酷刑日本凌虐凌虐| 欧美一二三区在线观看| 久久久午夜电影| 亚洲人成网站777色婷婷| 日韩免费视频线观看| 激情亚洲综合在线| 亚洲一区精品在线| 欧美性猛交丰臀xxxxx网站| 成人午夜视频网站| 欧美三级视频在线播放| 岛国精品视频在线播放| 日韩美女一区二区三区| 亚洲国产成人精品一区二区| 国产精品视频yy9299一区| 日韩精品在线网站| 亚洲男人av在线| 婷婷开心久久网| 福利一区视频在线观看| 国产一区二区久久| 亚洲一区二区三区四区五区黄| 成人免费精品视频| 亚洲成在人线av| 国产精品一区二区免费不卡| 中文久久乱码一区二区| 一区二区三区在线视频观看| 亚洲日本中文字幕免费在线不卡| 欧美精品粉嫩高潮一区二区| 亚洲一区二区三区三| 欧美日韩在线播放三区四区| 一区二区三区不卡视频在线观看| 樱桃视频在线观看一区| 亚洲精品中文字幕av| 久久国产精品99精品国产|