elementui上傳圖片回顯功能實(shí)現(xiàn)
elementui上傳圖片回顯
<el-upload class="avatar-uploader" ref="otherLicense" action :auto-upload="false" :on-preview="handlePicPreview" :on-remove="handleRemove" :file-list="form.fileList" :limit="imgLimit" :on-change="otherSectionFile" list-type="picture-card" multiple > <i class="el-icon-plus"></i> </el-upload> <!-- 上傳圖片放大 --> <el-dialog :visible.sync="dialogVisible"> <img width="100%" :src="dialogImageUrl" alt="" /> </el-dialog>
data中
// 業(yè)務(wù)結(jié)束證明材料 let validateImage = (rule, value, callback) => { // console.log(this.AddDateModel.fileId); //驗(yàn)證器 if (this.AddDateModel.fileId.length <= 0) { //為true代表圖片在 false報(bào)錯(cuò) callback(new Error("請(qǐng)上傳業(yè)務(wù)結(jié)束證明材料")); } else { callback(); } }; AddDateModel: { fileId:[] }, // 回顯圖片的路徑 photoList: [{ url: "" }], // 放大圖片的路徑 dialogImageUrl: "", // 上傳圖片放大彈出框 dialogVisible: false, imgLimit: 9, //最多可上傳幾張圖片 AddDateRules: { fileId: [ { required: true, validator: validateImage, trigger: "blur" }, ], },
methods中
handlePicPreview(file) { this.dialogImageUrl = file.url; this.dialogVisible = true; }, // 業(yè)務(wù)申請(qǐng)材料 handleRemove(file, fileList) { this.AddDateModel.fileId.map((item, index) => { if (item.uid == file.uid) { this.AddDateModel.fileId.splice(index, 1); } }); }, otherSectionFile(file) { const typeArr = ["image/png", "image/gif", "image/jpeg", "image/jpg"]; const isJPG = typeArr.indexOf(file.raw.type) !== -1; const isLt20M = file.size / 1024 / 1024 < 20; if (!isJPG) { this.$message.error("只能是圖片!"); this.$refs.upload.clearFiles(); this.otherFiles = null; return; } if (!isLt20M) { this.$message.error("上傳圖片大小不能超過(guò) 20MB!"); this.$refs.upload.clearFiles(); this.otherFiles = null; return; } this.otherFiles = file.raw; // FormData 對(duì)象 var formData = new FormData(); // 文件對(duì)象 formData.append("file", this.otherFiles); formData.append("filePath", "yuanchengyiliao"); let config = { headers: { "Content-Type": "multipart/form-data", }, methods: "post", }; // 調(diào)取接口 上傳參數(shù) this.$axios.hosUpload(formData, config).then((res) => { // console.log(file) let result = res.data.data; let arr = []; for (let i = 0; i < result.length; i++) { // console.log(result[i]) arr.push(result[i].pictureId); } file.pictureId = arr.join("||"); this.AddDateModel.fileId.push(file); // console.log(this.AddDateModel.fileId); }); },
顯示數(shù)據(jù)的方法中
async bussEdit(row) { //調(diào)取接口然后把數(shù)據(jù)傳到photoList中,我只上傳一張圖片,就直接寫(xiě),上傳多張的,循環(huán)就好了。 this.photoList[0].url = 圖片路徑; }, // 回顯 fileCoList: [], //圖片回顯 if (row.fileId) { // console.log(row.fileId) let imgss = []; let imgLen = row.fileId.split(","); for (let i = 0; i < imgLen.length; i++) { imgss.push(imgLen[i]); } // console.log(imgss.join(',')) this.$nextTick(() => { this.$refs.addinmanfill.getFile(imgss.join(",")); }); } else { this.$nextTick(() => { this.$refs.addinmanfill.getFile(''); }); } watch: { fileCoList: { deep: true, handler() { if (this.fileCoList) { this.AddDateModel.fileId = this.fileCoList; } }, }, }, async getFile(ids) { let idsdata = _qs.stringify({ ids: ids, }); let res = await this.$axios.sysgetFile(idsdata); // console.log(res.data.data); let result = res.data.data; result.map((item) => { // console.log(item) item.url = this.GLOBAL.BASE_URL + item.url; item.pictureId = item.id; }); // console.log(result) this.fileCoList = result; },
到此這篇關(guān)于elementui上傳圖片 回顯的文章就介紹到這了,更多相關(guān)elementui上傳圖片 回顯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- elementUI使用el-upload上傳文件寫(xiě)法及避坑總結(jié)(上傳圖片/視頻到本地/服務(wù)器及回顯+刪除)
- 解決ElementUI組件中el-upload上傳圖片不顯示問(wèn)題
- vue中使用elementUI組件手動(dòng)上傳圖片功能
- vue+elementUI的select下拉框回顯為數(shù)字問(wèn)題
- vue+elementUI下拉框回顯問(wèn)題及解決方式
- VUE使用ElementUI下拉框 @change事件數(shù)據(jù)不回顯問(wèn)題
- vue?ElementUI級(jí)聯(lián)選擇器回顯問(wèn)題解決
- Vue+elementUI實(shí)現(xiàn)多圖片上傳與回顯功能(含回顯后繼續(xù)上傳或刪除)
相關(guān)文章
微信頁(yè)面倒計(jì)時(shí)代碼(解決safari不兼容date的問(wèn)題)
本文主要分享了微信頁(yè)面倒計(jì)時(shí)代碼(pc端),并在文章結(jié)尾分析了safari不兼容date的原因以及解決方法,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹
這篇文章主要介紹了微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹,本文講解了發(fā)送給好友、分享函數(shù)、隱藏工具欄、隱藏三個(gè)點(diǎn)按鈕等功能,需要的朋友可以參考下2015-05-05Javascript 實(shí)現(xiàn)計(jì)算器時(shí)間功能詳解及實(shí)例(二)
這篇文章主要介紹了Javascript 實(shí)現(xiàn)計(jì)算器時(shí)間功能詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01bootstrap table實(shí)現(xiàn)x-editable的行單元格編輯及解決數(shù)據(jù)Empty和支持多樣式問(wèn)題
本文著重解決x-editable編輯的數(shù)據(jù)動(dòng)態(tài)添加和顯示數(shù)據(jù)為Empty的問(wèn)題,還有給表格單元格的內(nèi)容設(shè)置多樣式,使得顯示多樣化,需要的朋友可以參考下2017-08-08JS實(shí)現(xiàn)隨機(jī)亂撞彩色圓球特效的方法
這篇文章主要介紹了JS實(shí)現(xiàn)隨機(jī)亂撞彩色圓球特效的方法,可實(shí)現(xiàn)彩色小球的碰撞效果,涉及隨機(jī)函數(shù)與頁(yè)面樣式的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05js setTimeout()函數(shù)介紹及應(yīng)用以倒計(jì)時(shí)為例
setTimeout() 方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式,下面有個(gè)倒計(jì)時(shí)的示例,需要的朋友可以學(xué)習(xí)下2013-12-12HTA版JSMin(省略修飾語(yǔ)若干)基于javascript語(yǔ)言編寫(xiě)
JSMin是一種很有用的ECMAScript代碼減肥工具,雖然它只是一種較為初級(jí)的工具,但用它來(lái)對(duì)付我自己編寫(xiě)的大部分ECMAScript代碼效果都很不錯(cuò),而且在我這里也從未發(fā)生過(guò)減肥后代碼出錯(cuò)之類的問(wèn)題。2009-12-12