日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue+Vant 圖片上傳加顯示的案例

瀏覽:6日期:2022-11-06 17:47:57

前端開發想省時間就是要找框架呀!找框架!

vant中上傳圖片組件:https://youzan.github.io/vant/#/zh-CN/uploader

上傳圖片的組件uploader:

<van-uploader :after-read='onRead' accept='image/*' multiple> <imgclass='head-img' src='http://www.b3g6.com/static/images/addpic.png' ref='goodsImg'/> </van-uploader>

method中

methods: { //選擇圖片后執行 onRead(file) { console.log(file); //將原圖片顯示為選擇的圖片 this.$refs.goodsImg.src = file.content; } }

vant上傳的圖片是已經base64處理了的,可以直接向后臺發了

補充知識:vue +vant + crodova實現圖片上傳、圖片預覽、圖片刪除

函數調用方法使用圖片預覽有坑,圖片不顯示

Vue+Vant 圖片上傳加顯示的案例

<template> <div class='add-check-page'> <head-com :title='title'></head-com> <van-form @submit='onSubmit'> <h2 class='van-doc-demo-block__title'>添加照片</h2> <van-field name='uploader' class='pic-uploader'> <template #input> <template v-for='(item, index) in file_path'> <div :key='index'> <van-image fit='cover' :src='http://www.b3g6.com/bcjs/IP + item' @click='preView(index)'><template v-slot:loading> <van-loading type='spinner' size='20' /></template> </van-image> <van-icon name='close' @click='delPic(index)' /> </div> </template> <van-icon @click='picture' :name='require(’#/images/add_check_icon.png’)' /> <van-uploader multiple :after-read='afterRead' style='display:none'> <van-button :icon='require(’#/images/add_check_icon.png’)' type='default' /> </van-uploader> </template> </van-field> <van-button block type='default' native-type='submit'>確認提交</van-button> </van-form> <van-action-sheet v-model='show' :actions='actions' @select='onSelect' cancel-text='取消' close-on-click-action /> <loading :showLoading='showLoad'></loading> // 使用函數調用圖片預覽方法,圖片無法顯示所以改用組件調用 <van-image-preview v-if='imgShow' v-model='imgShow' :images='preList' :start-position='startIndex' @closed='handleClose' ></van-image-preview> </div></template><script>import headCom from ’_c/header/index.vue’import loading from ’_c/loading/index.vue’export default { components: { headCom, loading }, data() { return { // 公司id id: ’’, id2: ’’, title: ’’, file_name: [], file_path: [], content: ’’, show: false, actions: [{ name: ’拍攝’ }, { name: ’從手機相冊選擇’ }], showLoad: false, imgPre: ’’, imgShow: false, preList: [], startIndex: 0 } }, beforeRouteLeave(to, from, next) { if (this.imgPre) { this.imgPre.close() } next() }, created() { this.id = this.$route.params.id if (this.$route.name === ’editCheck’) { this.title = ’編輯記錄’ this.getInfo() } else { this.title = ’添加記錄’ } }, methods: { async getInfo() { this.showLoad = true try { let data = { id: this.id } let res = await this.$api.check.edit(data) this.content = res.detail.content this.id2 = res.detail.company_id res.photo_list.forEach((item) => { this.file_name.push(item.file_name) this.file_path.push(item.file_path) }) this.showLoad = false } catch (error) { this.showLoad = false this.$toast(error.msg) } }, async onSubmit(values) { this.showLoad = true try { let data = {} if (this.$route.name === ’editCheck’) { data = { id: this.id, company_id: this.id2, content: values.content, file_names: [...this.file_name], file_paths: [...this.file_path] } await this.$api.check.editPost(data) } else { // 添加 data = { company_id: this.id, content: values.content, file_names: [...this.file_name], file_paths: [...this.file_path] } await this.$api.check.addPost(data) } this.showLoad = false this.$router.go(-1) } catch (error) { this.$toast(error.msg) } }, // 刪除圖片 delPic(index) { this.file_path.splice(index, 1) this.file_name.splice(index, 1) }, // 圖片預覽 preView(index) { this.startIndex = index this.preList = [] this.file_path.forEach((item) => { this.preList.push(this.IP + item) }) this.imgShow = true }, // 關閉預覽 handleClose() { this.preList = [] this.imgShow = false }, async afterRead(file) { this.showLoad = true try { if (file.length) { file.forEach(async (item) => { let res = await this.$api.base.upload(item) this.file_name.push(res.name) this.file_path.push(res.url) this.showLoad = false }) } else { let res = await this.$api.base.upload(file) this.file_name.push(res.name) this.file_path.push(res.url) this.showLoad = false } } catch (e) { this.showLoad = false this.$toast(e.data) } }, picture() { this.show = true }, // 選擇添加圖片方式 onSelect(item) { this.show = false if (item.name === ’拍攝’) { this.takePhoto() } else { let dl = document.getElementById(’photo’) dl.click() } }, // 拍照上傳 takePhoto() { let that = this // crodova 調取相機拍照 navigator.camera.getPicture(success, error, {}) function success(imageURI) { that.showLoad = true // file uri 上傳服務器 that.fileUpload(imageURI) } function error() { this.$toast(’打開相機失敗’) } }, // 使用cordova FileUpload上傳圖片 fileUpload: function(imageURI) { let that = this let FileUploadOptions = window.FileUploadOptions let FileTransfer = window.FileTransfer let options = new FileUploadOptions() options.fileKey = ’file’ options.fileName = imageURI.substr(imageURI.lastIndexOf(’/’) + 1) options.mimeType = ’image/jpeg’ let ft = new FileTransfer() ft.upload(imageURI, encodeURI(this.API + ’/user/uploadImg’), function(data) { let resString = data.response let resObject = JSON.parse(resString) // 字符串轉對象 if (resObject.code === 1) { that.file_name.push(resObject.data.name) that.file_path.push(resObject.data.url) that.showLoad = false } else { that.showLoad = false that.$toast(resObject.msg) } }) } }}</script>

以上這篇Vue+Vant 圖片上傳加顯示的案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
色一区二区三区四区| 国产专区精品| 精品国产欧美日韩| 日韩黄色在线观看| 欧美日韩精品一区二区三区视频 | 蜜芽一区二区三区| 成人欧美一区二区三区的电影| 欧美日韩黄网站| 久久福利在线| 亚洲自啪免费| 亚洲永久av| 日本中文字幕一区二区| 国产精品久久久久久模特 | 精品在线99| 日韩av资源网| 久久久久久久久久久妇女| 国产探花一区二区| 99在线观看免费视频精品观看| 国产精品chinese| 日本欧美在线看| 久久影院一区二区三区| 国产一区91| 色爱av综合网| 国产传媒在线观看| 九九久久婷婷| 激情欧美国产欧美| 欧美中文字幕一区二区| 伊人网在线播放| 久久亚洲国产| 亚洲欧美久久| 欧美国产美女| 欧美激情精品| 欧美日韩一区二区综合| 97人人精品| 亚洲精品极品少妇16p| 黄页网站一区| aⅴ色国产欧美| 亚洲成人va| 久久精品国产亚洲夜色av网站| 久久成人国产| 91福利精品在线观看| 久久av一区二区三区| 麻豆国产欧美日韩综合精品二区| 欧美极品中文字幕| 国产精品二区影院| 天堂中文av在线资源库| 日韩视频在线一区二区三区| 日韩区欧美区| 夜鲁夜鲁夜鲁视频在线播放| 日韩精品成人| 亚洲影视一区| 亚洲激情精品| 老牛影视一区二区三区| 樱桃成人精品视频在线播放| 三级欧美在线一区| 动漫av一区| 欧美日韩1区2区3区| 国产网站在线| 日韩综合一区二区三区| 成人在线免费观看91| 国产中文一区| 亚洲伊人影院| 欧美亚洲国产一区| 精品网站999| 奇米色欧美一区二区三区| 亚洲午夜在线| 麻豆精品av| 久久av偷拍| 国产欧美午夜| 欧美日韩一区二区三区不卡视频 | 国产精品久久久久av蜜臀| 老司机久久99久久精品播放免费| 日韩在线中文| 日韩综合精品| 日本久久成人网| 亲子伦视频一区二区三区| 国产激情在线播放| 国产网站在线| 激情久久久久久久| 久久激情中文| 婷婷六月综合| 99国产精品久久久久久久成人热| 91精品蜜臀一区二区三区在线| 成人免费电影网址| 99精品99| 国产日韩欧美一区二区三区在线观看| 高清一区二区三区av| 精品丝袜久久| 日本不卡不码高清免费观看 | 精品91福利视频| 欧美三级网址| 精品女同一区二区三区在线观看| 亚洲精品无吗| 老色鬼久久亚洲一区二区| 国产精品亲子伦av一区二区三区| 在线精品一区| aⅴ色国产欧美| 尤物网精品视频| 男人的天堂久久精品| 免费在线成人网| 亚洲精品黄色| 日韩福利视频网| а√天堂8资源中文在线| 国产成人免费av一区二区午夜| 美女av在线免费看| 成人国产精选| 成人日韩在线| 国产成人精品亚洲线观看 | 日韩.com| 久久久精品区| 六月婷婷一区| 欧美日韩三区| 中日韩男男gay无套| 福利片在线一区二区| 国产精品伦理久久久久久| 久久裸体视频| 亚洲一区欧美激情| 精品久久91| 国产一区二区三区视频在线| 国产精品国产一区| 久久久久久色 | 美女网站视频一区| 亚洲男人在线| 国产一区国产二区国产三区| 六月天综合网| 国产成人调教视频在线观看| 在线观看一区| 伊人网在线播放| 久久久久午夜电影| 亚州精品视频| 蜜桃久久av一区| 久久九九电影| 92国产精品| 国产中文在线播放| 九九九精品视频| 国产精品1区| 国产精品一区二区av日韩在线| 在线综合亚洲| 免费看黄色91| 亚洲精品麻豆| 欧美在线看片| 日韩二区三区四区| 天堂久久一区| 欧美视频久久| 欧美成人一二区| 美女性感视频久久| 成人在线免费观看网站| 亚洲精品国产嫩草在线观看 | 老牛国内精品亚洲成av人片| 国产欧美日韩一区二区三区四区| 亚洲精品在线二区| 日韩激情av在线| 精品一区二区三区中文字幕在线| 欧美日韩中文| 成人在线免费观看91| 久久国产中文字幕| 亚洲欧美网站| 国产精品66| 四虎4545www国产精品 | 99国产精品视频免费观看一公开| 99国产精品一区二区| 三级在线观看一区二区 | 一区二区三区网站| 久久不卡日韩美女| 欧美国产91| 国产精品中文字幕亚洲欧美| 综合日韩av| 日韩精品三区四区| 电影亚洲精品噜噜在线观看| 一区二区三区网站| 色老板在线视频一区二区| 婷婷精品在线| 桃色一区二区| 国产精品尤物| 亚洲欧美专区| 国产在线日韩| zzzwww在线看片免费| 日韩1区2区3区| 亚洲一区欧美激情| 久久一区二区三区电影| 国产情侣一区在线| 中文字幕日韩高清在线| 欧美一区二区性| 日韩久久精品| caoporn视频在线| 精品久久97| 久久精品国产在热久久| 老司机精品久久| 亚洲国产一区二区三区在线播放| 国产精品毛片久久| 久久亚洲黄色| 久久亚洲道色| 成人日韩av| 97国产精品| 国产成人精选| 久久婷婷丁香| 在线成人直播| 亚洲一卡久久| 亚洲精品高潮| 欧美啪啪一区|