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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

上傳圖片的組件uploader:

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

method中

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

vant上傳的圖片是已經(jīng)base64處理了的,可以直接向后臺發(fā)了

補(bǔ)充知識:vue +vant + crodova實(shí)現(xiàn)圖片上傳、圖片預(yù)覽、圖片刪除

函數(shù)調(diào)用方法使用圖片預(yù)覽有坑,圖片不顯示

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://m.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'>確認(rèn)提交</van-button> </van-form> <van-action-sheet v-model='show' :actions='actions' @select='onSelect' cancel-text='取消' close-on-click-action /> <loading :showLoading='showLoad'></loading> // 使用函數(shù)調(diào)用圖片預(yù)覽方法,圖片無法顯示所以改用組件調(diào)用 <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: ’從手機(jī)相冊選擇’ }], 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) }, // 圖片預(yù)覽 preView(index) { this.startIndex = index this.preList = [] this.file_path.forEach((item) => { this.preList.push(this.IP + item) }) this.imgShow = true }, // 關(guān)閉預(yù)覽 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 調(diào)取相機(jī)拍照 navigator.camera.getPicture(success, error, {}) function success(imageURI) { that.showLoad = true // file uri 上傳服務(wù)器 that.fileUpload(imageURI) } function error() { this.$toast(’打開相機(jī)失敗’) } }, // 使用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) // 字符串轉(zhuǎn)對象 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 圖片上傳加顯示的案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美一级网站| 日韩高清不卡一区二区| 9国产精品视频| 婷婷亚洲五月色综合| 韩国精品主播一区二区在线观看| 久久精品动漫| 亚洲精品护士| 亚洲精品极品| 视频一区在线播放| 在线日韩成人| 另类亚洲自拍| 日本中文字幕不卡| 一区二区三区网站| 国产精品字幕| 国产精品视区| 免费视频久久| 国产亚洲精品v| aa亚洲婷婷| 老鸭窝一区二区久久精品| 超碰在线99| 美女av在线免费看| 欧美国产日韩电影| 国产精品theporn| 精品国产一区二区三区av片| 国产精品毛片久久久| 欧美国产先锋| 日韩高清成人在线| 国产精品一区二区精品| 国产极品久久久久久久久波多结野 | 国产美女亚洲精品7777| 欧美视频二区| 欧美激情 亚洲a∨综合| 久久精品一区二区国产| 另类综合日韩欧美亚洲| 美女视频网站久久| 97se综合| 最新亚洲国产| 老司机免费视频一区二区| 四虎成人av| 蜜臀91精品国产高清在线观看| 国产精品原创| 米奇777超碰欧美日韩亚洲| 麻豆久久精品| 国产欧美日韩在线一区二区| 午夜在线播放视频欧美| 日韩**一区毛片| 国产精品一区二区三区美女| 亚洲特级毛片| 国产精品99久久免费观看| 亚洲精品精选| 国产一区二区久久久久| 黄色成人精品网站| 另类综合日韩欧美亚洲| 国产91精品对白在线播放| 亚洲在线观看| 中文在线免费视频| 欧美三级网址| 亚洲一区二区免费看| 黑丝一区二区三区| 亚洲精品无播放器在线播放| 国产乱码精品一区二区三区亚洲人 | 国产美女亚洲精品7777| 日韩精品亚洲一区二区三区免费| 日韩影院在线观看| 青青国产91久久久久久| 欧美日韩尤物久久| 蜜桃av一区二区在线观看| 久久久久久久欧美精品| 99久久久久国产精品| 爽好多水快深点欧美视频| 日韩一区二区三区高清在线观看| www.九色在线| 日韩一区精品视频| 亚洲精品黄色| 高清av不卡| 亚洲精品高潮| 五月精品视频| 欧美黄色精品| 亚洲影院天堂中文av色| 水蜜桃久久夜色精品一区| 亚洲18在线| 国产精品高颜值在线观看| 久久高清免费观看| 麻豆精品视频在线观看视频| 国产欧美一区二区精品久久久 | 91精品国产自产在线观看永久∴| 麻豆精品视频在线观看免费| 亚洲精品少妇| 国产精品一区二区av日韩在线| 国产精品久久久一区二区| 日韩精品电影| 精品国产一区二区三区av片| 免费黄网站欧美| 久久精品国产99国产精品| 深夜福利亚洲| 免费毛片在线不卡| 香蕉成人久久| 自拍日韩欧美| 久久男女视频| 欧美激情三区| 三级一区在线视频先锋| 久久国产影院| 成人亚洲精品| 欧美黄色精品| 日韩高清在线观看一区二区| 91久久亚洲| 国产精品高颜值在线观看| 久久精品一本| 欧美亚洲tv| 中文字幕日韩高清在线| 日韩午夜av| 高清在线一区| 美女性感视频久久| 中文字幕一区二区三区四区久久 | 久久久国产精品网站| 日韩中文字幕区一区有砖一区| 91精品韩国| 日韩高清中文字幕一区二区| 国产亚洲观看| 国产情侣久久| 亚洲精品成人一区| 亚洲人成毛片在线播放女女| 亚洲精品99| 日韩午夜精品| 五月天久久网站| 久久久久国产一区二区| 亚洲深夜影院| 久久中文字幕导航| 五月亚洲婷婷 | 尤物tv在线精品| 国产精品**亚洲精品| 先锋亚洲精品| 黄色在线一区| 老司机精品久久| 欧美日韩一二| av亚洲免费| 精品久久视频| 久久精品九色| 亚洲免费高清| 久久国产精品亚洲77777| 岛国av免费在线观看| 18国产精品| 日韩不卡免费视频| 亚洲精品福利| 成人看片网站| 久久九九国产| 日韩不卡免费高清视频| 久久国产精品成人免费观看的软件| 国产成人精品亚洲线观看| 国产福利电影在线播放| 欧美韩日一区| 免费在线小视频| 久久精品青草| 久久亚洲专区| 在线 亚洲欧美在线综合一区| 婷婷综合在线| 91成人精品在线| 国产精品中文字幕制服诱惑| 日本视频一区二区| 国产精品a级| 欧美精品三级在线| 国语对白精品一区二区| 日本久久黄色| av亚洲免费| 免费不卡在线观看| 国产亚洲电影| 久久精品九色| 免费视频一区二区| 爽好久久久欧美精品| 久久久久久婷| 日韩免费福利视频| 在线天堂中文资源最新版| 国产超碰精品| 蜜桃视频一区二区三区| 超碰在线99| 青青伊人久久| 日韩高清在线观看一区二区| 欧美日韩水蜜桃| 亚洲激情国产| 日韩精品一卡二卡三卡四卡无卡| 日本国产一区| 精品理论电影在线| 国产精品亚洲人成在99www| 精品视频91| 99精品国产一区二区三区| 色8久久久久| 麻豆精品新av中文字幕| 午夜国产精品视频| 日韩精品成人| 欧美日韩精品在线一区| 中文字幕日韩亚洲| 国产精品99在线观看| 亚洲成人三区| 久久久国产精品网站| 婷婷成人基地| 夜夜精品视频| 你懂的国产精品| 精品久久美女| 首页国产欧美久久| 久久久久久久久成人|