elementui上傳圖片回顯功能實現(xiàn)
更新時間:2023年07月18日 11:06:04 作者:不完美女孩-
這篇文章主要介紹了elementui上傳圖片回顯,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
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è)務結束證明材料
let validateImage = (rule, value, callback) => {
// console.log(this.AddDateModel.fileId);
//驗證器
if (this.AddDateModel.fileId.length <= 0) {
//為true代表圖片在 false報錯
callback(new Error("請上傳業(yè)務結束證明材料"));
} 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è)務申請材料
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("上傳圖片大小不能超過 20MB!");
this.$refs.upload.clearFiles();
this.otherFiles = null;
return;
}
this.otherFiles = file.raw;
// FormData 對象
var formData = new FormData();
// 文件對象
formData.append("file", this.otherFiles);
formData.append("filePath", "yuanchengyiliao");
let config = {
headers: {
"Content-Type": "multipart/form-data",
},
methods: "post",
};
// 調取接口 上傳參數
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);
});
},顯示數據的方法中
async bussEdit(row) {
//調取接口然后把數據傳到photoList中,我只上傳一張圖片,就直接寫,上傳多張的,循環(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;
},到此這篇關于elementui上傳圖片 回顯的文章就介紹到這了,更多相關elementui上傳圖片 回顯內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Javascript 實現(xiàn)計算器時間功能詳解及實例(二)
這篇文章主要介紹了Javascript 實現(xiàn)計算器時間功能詳解及實例的相關資料,需要的朋友可以參考下2017-01-01
bootstrap table實現(xiàn)x-editable的行單元格編輯及解決數據Empty和支持多樣式問題
本文著重解決x-editable編輯的數據動態(tài)添加和顯示數據為Empty的問題,還有給表格單元格的內容設置多樣式,使得顯示多樣化,需要的朋友可以參考下2017-08-08
HTA版JSMin(省略修飾語若干)基于javascript語言編寫
JSMin是一種很有用的ECMAScript代碼減肥工具,雖然它只是一種較為初級的工具,但用它來對付我自己編寫的大部分ECMAScript代碼效果都很不錯,而且在我這里也從未發(fā)生過減肥后代碼出錯之類的問題。2009-12-12

