亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue-quill-editor+plupload富文本編輯器實例詳解

2019-11-19 12:40:14
字體:
來源:轉載
供稿:網友

1,先給vue項目中下載vue-quill-editor依賴npm install vue-quill-editor --save

2,下載plupload依賴npm install plupload --save

3,在組件中分別引入對應的js

import { quillEditor }from 'vue-quill-editor'import '@/assets/js/crypto1/crypto/crypto.js'import '@/assets/js/crypto1/hmac/hmac.js'import '@/assets/js/crypto1/sha1/sha1.js'import Base64from '@/assets/js/base64.js'import pluploadfrom 'plupload'

4,編寫plupload上傳圖片需要的事件以及參數

let accessid = '阿里oss申請的accessid'let accesskey = '阿里oss申請的accesskey'let host = '阿里oss的存儲文件地址'let bucket = 'image'let g_dirname = ''let g_object_name = ''let g_object_name_type = ''var timestamplet now = timestamp = Date.parse(new Date())/ 1000let pos = ''let suffix = ''var policyText = {'expiration': '2020-01-01T12:00:00.000Z',// 設置該Policy的失效時間,超過這個失效時間之后,就沒有辦法通過這個policy上傳文件了 'conditions': [['content-length-range',0,1048576000]// 設置上傳文件的大小限制 ]}var policyBase64 = Base64.encode(JSON.stringify(policyText))let message = policyBase64var bytes = Crypto.HMAC(Crypto.SHA1,message,accesskey, {asBytes: true})var signature = Crypto.util.bytesToBase64(bytes)// 選擇上傳名字是本地文件名字還是隨機文件名字function check_object_radio () {g_object_name_type = 'random_name'}// 默認是上傳到根目錄function get_dirname () {g_dirname = 'image/'}// 獲得隨機的字符串function random_string (len) {len = len || 32 var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678' var maxPos = chars.length var pwd = '' for (var i = 0;i < len;i++) {pwd += chars.charAt(Math.floor(Math.random()* maxPos))}return pwd}// 獲取文件后綴function get_suffix (filename) {pos = filename.lastIndexOf('.')suffix = '' if (pos !== -1) {suffix = filename.substring(pos)}return suffix}// 獲取文件名字function calculate_object_name (filename) {if (g_object_name_type === 'local_name') {g_object_name += filename }else if (g_object_name_type === 'random_name') {suffix = get_suffix(filename)g_object_name = random_string(10)+ new Date().getTime()+ suffix  // g_object_name = filename }return ''}function get_uploaded_object_name (filename) {if (g_object_name_type === 'local_name') {var tmp_name = g_object_name  tmp_name = tmp_name.replace(filename,filename)return tmp_name }else if (g_object_name_type === 'random_name') {return g_object_name }}// 設置上傳參數function set_upload_param (up,filename,ret) {// g_object_name = g_dirname if (filename !== '') {suffix = get_suffix(filename)calculate_object_name(filename)}let new_multipart_params = {'Filename': g_dirname + g_object_name,'key': g_dirname + g_object_name,'policy': policyBase64,'OSSAccessKeyId': accessid,'success_action_status': '200',// 讓服務端返回200,不然,默認會返回204  'signature': signature }console.log(g_object_name)up.setOption({'url': host,'multipart_params': new_multipart_params })up.start()}const toolbarOptions = [['bold','italic','underline','strike'],// toggled buttons ['blockquote','code-block'],[{'header': 1}, {'header': 2}],// custom button values [{'list': 'ordered'}, {'list': 'bullet'}],[{'script': 'sub'}, {'script': 'super'}],// superscript/subscript [{'indent': '-1'}, {'indent': '+1'}],// outdent/indent [{'direction': 'rtl'}],// text direction [{'size': ['small',false,'large','huge']}],// custom dropdown [{'header': [1,2,3,4,5,6,false]}],[{'color': []}, {'background': []}],// dropdown with defaults from theme [{'font': []}],[{'align': []}],['link','image'],['clean']// remove formatting button]export default {name: 'AddNotice',components: {quillEditor},data () {return {loading: false,textarea_name: '',textarea_nei: '',content: null,editorOption:{placeholder: '',theme: 'snow',// or 'bubble'      modules: {toolbar: {container: toolbarOptions,// 工具欄        handlers: {'image': function (value) {if (value) {// alert(1)           document.querySelector('#selectfiles').click()}else {this.quill.format('image',false);}}}}}}}},props: {Notice_id: Number,AddNotice_id: Number  },watch: {},methods: {data_qing () {this.textarea_name = ''    this.content = ''   },AddNoticeOff () {this.$emit('AddNoticeOff')},gonggao_push () {this.loading = true    let data = {token: this.token(),id: this.AddNotice_id,match_id: this.Notice_id,title: this.textarea_name,content: this.content    }this.$axios.post('/match/Notice/NoticeSave',this.$qs.stringify(data)).then((res)=> {this.loading = false      console.log(res)if (res.data.code === '200') {this.$emit('AddNoticeOff')this.$emit('notice_ajax',0)}}).catch((err)=> {this.loading = false     console.log(err)})},escape2Html (str) {var arrEntities = {'lt': '<','gt': '>','nbsp': ' ','amp': '&','quot': '"'}return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function (all,t) {return arrEntities[t]})},data_zhan () {let data = {token: this.token(),id: this.AddNotice_id    }this.$axios.post('/match/Notice/NoticeInfo',this.$qs.stringify(data)).then((res)=> {let new_data = res.data.data      if (res.data.code === '200') {this.textarea_name = new_data.title       this.content = this.escape2Html(new_data.content)console.log(this.escape2Html(new_data.content))}}).catch((err)=> {console.log(err)})}},computed: {},created () {},mounted () {var that = this   var uploader = new plupload.Uploader({runtimes: 'html5,flash,silverlight,html4',browse_button: 'selectfiles',multi_selection: true,// container: document.getElementById('container'),    flash_swf_url: './../assets/plupload-2.1.2/js/Moxie.swf',silverlight_xap_url: './../assets/plupload-2.1.2/js/Moxie.xap',url: host,init: {PostInit: function () {console.log(7777)},QueueChanged: function (up) {// 數組變化是發生      console.log(up)},FileFiltered: function (up,files) {var fileSize = (Math.round(files.size * 100 / (1024 * 1024))/ 100).toString()// MB      if (fileSize > 10) {uploader.removeFile(files)}},// 圖片成功添加到上傳隊列中后的事件     FilesAdded: function (up,files) {console.log(111)plupload.each(files,function (v,i) {})console.log(files)set_upload_param(uploader,'',false)},BeforeUpload: function (up,file) {console.log(3333)check_object_radio()get_dirname()set_upload_param(up,file.name,true)},UploadProgress: function (up,file) {console.log(file.percent)// 進度條設置     },FileUploaded: function (up,file,info) {console.log(555)// 獲取富文本組件實例      console.log(that.$refs)let quill = that.$refs.myQuillEditor.quillif (info.status === 200) {console.log(get_uploaded_object_name(file.name))let url = host+'/'+g_dirname+get_uploaded_object_name(file.name)// 獲取光標所在位置       let length = quill.getSelection().index;// 插入圖片 res.info為服務器返回的圖片地址       quill.insertEmbed(length,'image',url)// 調整光標到最后       quill.setSelection(length + 1)}else {this.$message.error('圖片插入失敗')}},Error: function (up,err) {// document.getElementById('console').appendChild(document.createTextNode("/nError xml:" + err.response))     }}})uploader.init()},destroyed () {}}

總結

以上所述是小編給大家介紹的vue-quill-editor+plupload富文本編輯器實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲欧美日韩一区二区| 国产精品国产三级国产专播精品人| 亚洲国产日韩欧美在线动漫| 国产精品久久久久久久美男| 一本色道久久88亚洲综合88| 综合久久五月天| 亚洲一二在线观看| 亚洲国产精品视频在线观看| 色老头一区二区三区在线观看| 国产国产精品人在线视| 国产精品国产自产拍高清av水多| 这里只有精品在线观看| 亚洲一区二区日本| 欧美区在线播放| 欧美一级成年大片在线观看| 亚洲第一精品夜夜躁人人爽| 欧美第一页在线| 亚洲裸体xxxx| 亚洲美女久久久| 亚洲精品一区二区三区婷婷月| 日韩中文字幕视频在线观看| 国产日韩欧美在线看| 久久人人爽人人爽人人片av高清| 国产99久久久欧美黑人| 国内精品久久久久伊人av| 在线精品高清中文字幕| 欧美裸体xxxx极品少妇软件| 九九热在线精品视频| 疯狂蹂躏欧美一区二区精品| 亚洲摸下面视频| 91久久久在线| 日韩中文字幕在线| 2021久久精品国产99国产精品| 精品久久久在线观看| 国产一区二区三区在线免费观看| 国产成人一区二区三区| 日本中文字幕不卡免费| 91在线观看免费观看| 欧美另类极品videosbestfree| 中日韩午夜理伦电影免费| 九色成人免费视频| 欧美老女人在线视频| 久操成人在线视频| 欧美在线亚洲一区| 麻豆精品精华液| 国产在线观看一区二区三区| 欧美大尺度电影在线观看| 欧美激情综合色综合啪啪五月| 国产午夜精品美女视频明星a级| 欧美一级高清免费| 91美女高潮出水| 久久躁日日躁aaaaxxxx| 亚洲国产精品大全| 日韩av在线免播放器| 97av在线播放| 91香蕉国产在线观看| 色中色综合影院手机版在线观看| 欧美成年人在线观看| 国产精品91久久久| 97久久精品国产| 亚洲激情中文字幕| 欧美中文字幕在线视频| 欧美国产日产韩国视频| 91精品久久久久| 亚洲色图欧美制服丝袜另类第一页| 日韩中文综合网| 国产精品久久久久久久av电影| 91色p视频在线| 91极品女神在线| 高清欧美性猛交xxxx| 疯狂做受xxxx欧美肥白少妇| 欧美大全免费观看电视剧大泉洋| 日韩中文在线视频| 欧美激情第1页| 国产ts人妖一区二区三区| 亚洲a级在线播放观看| 国产精品久久久久久一区二区| 亚洲视频在线免费看| 日本三级久久久| 2018国产精品视频| 欧美成人合集magnet| 亚洲国产精品久久久久秋霞不卡| 亚洲精品免费网站| 国产欧美一区二区| 成人女保姆的销魂服务| 国产精品丝袜视频| 热久久这里只有| 精品国产一区二区三区四区在线观看| 在线播放亚洲激情| 亚洲毛片在线免费观看| 欧美黄色三级网站| 欧美裸体xxxx极品少妇| 日本久久亚洲电影| 亚洲国产精品一区二区三区| 欧美理论在线观看| 国产精品日韩久久久久| 久久精品成人一区二区三区| 欧美一级淫片播放口| 色悠久久久久综合先锋影音下载| 国产精品夜色7777狼人| 亚洲成人久久一区| 久久九九热免费视频| 亚洲毛茸茸少妇高潮呻吟| 97久久精品人搡人人玩| 欧亚精品在线观看| 国产一区二中文字幕在线看| 日韩有码在线观看| 中文字幕不卡av| 91国产精品91| 亚洲自拍小视频| 成人性生交大片免费看视频直播| 中文字幕日韩在线视频| 在线视频欧美日韩精品| 国产日本欧美一区| 亚洲女人天堂视频| 色琪琪综合男人的天堂aⅴ视频| 日韩精品中文字幕在线播放| 日韩有码视频在线| 亚洲tv在线观看| 视频在线观看99| 欧美日韩成人免费| 欧美日韩亚洲天堂| 欧美一区二区影院| 97视频在线观看免费| 川上优av一区二区线观看| 国产一区二区三区在线播放免费观看| 中文字幕欧美亚洲| 欧美裸体xxxx极品少妇| 日韩av网址在线观看| 国产精品专区h在线观看| 国产z一区二区三区| 日韩福利伦理影院免费| 久久影视免费观看| 欧美在线欧美在线| 久久夜色精品国产亚洲aⅴ| 高清欧美性猛交xxxx黑人猛交| 亚洲区在线播放| 欧美一区在线直播| 成人观看高清在线观看免费| 精品久久久国产精品999| 日韩av电影免费观看高清| 法国裸体一区二区| 91av成人在线| 色偷偷噜噜噜亚洲男人| 2019中文字幕在线| 日韩中文第一页| 成人久久久久久久| 久久电影一区二区| 欧美日韩国产麻豆| 综合136福利视频在线| 色综合老司机第九色激情| 欧美精品免费播放| 按摩亚洲人久久| 日韩一区av在线| 国产精品十八以下禁看| 欧美在线观看一区二区三区| 久久精品国产2020观看福利| 日韩欧美亚洲一二三区| 国产精品羞羞答答| 超碰97人人做人人爱少妇| 91精品久久久久久| 欧美一区二三区| 亚洲女人天堂av| 久久中文字幕在线|