> vue-quill-editor 默認的是以base64保存圖片,會直接把圖片base64和內容文本一同以字符串的形式提交到后端。 現在這樣不科學
##### 安裝 vue-quill-editor
```
npm i vue-quill-editor --save
```
> 富文本示例代碼
https://github.com/gek6/letou_hr/blob/master/letou_admin_web/src/views/rich_text/rich_text.vue
> 圖片直傳七牛云
https://github.com/gek6/letou_hr/blob/master/letou_admin_web/src/api/upload.js
##### 思路
- 用自定義的方法代替quill-editor中的圖片點擊事件
- 點擊上傳圖片的icon后,去觸發file類型 input 的點擊事件,選擇圖片。(我這用的是餓了么的上傳組件,上傳到七牛云我已經寫好了)
- 監聽input的 onchange 拿到選擇的文件數據,然后是要上傳到自己服務器呢 還是上傳到七牛云 就隨意了。
- 上傳完成以后 將圖片的遠程路徑 添加到富文本內容區域
##### 頁面內引入
```
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import { quillEditor } from 'vue-quill-editor'
//注冊組件
components: {
quillEditor
},
```
```
<div class="rich_box">
<!--富文本組件-->
<quill-editor v-model="content" ref="myQuillEditor" :options="options"></quill-editor>
</div>
<!--餓了么上傳組件,也可以用input代替,都是隱藏起來-->
<el-upload
class="avatar-uploader"
action=""
:http-request="to_upload_img"
:show-file-list="false"
style="display: none"
>
<i class="el-icon-plus avatar-uploader-icon" id="imgInput"></i>
</el-upload>
```
##### 添加自定義方法
```
//mounted鉤子中 替換插件圖標點擊事件
// 為圖片ICON綁定事件 getModule 為編輯器的內部屬性
this.$refs.myQuillEditor.quill.getModule('toolbar').addHandler('image', this.imgHandler)
```
```
// 點擊圖片ICON觸發事件
imgHandler(state) {
console.log(state)
this.addRange = this.$refs.myQuillEditor.quill.getSelection()
if (state) {
// let fileInput = document.getElementById('imgInput')
// fileInput.click() // 加一個觸發事件
// 選擇并上傳一張圖片
let fileInput = document.getElementById('imgInput')
fileInput.click() // 加一個觸發事件
}
},
```
```
to_upload_img(formdata){
return new Promise((resolve,reject)=>{
upload_img(formdata).then(res=>{
// 圖片的遠程路徑
let value = res.key;
// 將圖片添加到富文本內容區域
this.addRange = this.$refs.myQuillEditor.quill.getSelection();
// 調用編輯器的 insertEmbed 方法,插入URL
this.$refs.myQuillEditor.quill.insertEmbed(this.addRange !== null ? this.addRange.index : 0, 'image', value, Quill.sources.USER)
})
})
}
```
- vue-quill-editor
- 添加自定義上傳圖片功能(上傳至服務器或七牛云)
- 微信web JSSDK
- 常用CSS
- 實現單行、多行文本溢出顯示省略號
- 濾鏡(filter)
- GIT
- win7 設置自動保存帳號密碼
- git 官方圖形界面GUI 漢化
- 阿里OSS
- 阿里云OSS 瀏覽器直傳
- uni-app H5直傳OSS
- html2canvas無法使用OSS圖片的問題
- 常用NPM包
- 日期格式化 - dateformat
- H5-API
- 文件讀取器 - FileReader
- 二進制大對象 - Blob
- JS-常用 功能
- 檢驗手機號
- 檢驗身份證
- 檢驗是否是漢字
- 獲取瀏覽器參數
- 手機類型判斷
- 生成隨機字符串
- wordpress
- 下載-安裝
- 創建一個新的主題(模板)
- ueditor直傳OSS
- RESTFul API
- 軟件工具
- Cmder 代替windows cmd的好玩意
- H5頁面控制臺(vconsole)
- ThinkPHP
- Linux系統LNMP集成環境
- 安裝命令
- 安裝PHP多版本
- 管理虛擬機
- 安裝composer
- 設置根目錄為public無效的問題
- 路由
- TP5 route 無法生效
- 路由添加版本號