iview實現(xiàn)圖片上傳功能
本文實例為大家分享了iview實現(xiàn)圖片上傳的具體代碼,供大家參考,具體內(nèi)容如下
如下圖片:這里結(jié)合iview里面表單驗證做的

完整代碼如何
<template>
<div>
<div class="navigation">
<p>
<span>管理首頁 > 應(yīng)用 > 搶單俠> 信貸管理> {{title}}</span>
</p>
</div>
<div class="clearfix contentcss sales-statis">
<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80">
<FormItem label="模板名稱:" prop="templatename">
<Input v-model="formValidate.templatename" placeholder="請輸入模板名稱" style="width:240px"></Input>
</FormItem>
<FormItem label="模板類別:" prop="templatetype">
<Select v-model="formValidate.templatetype" placeholder="請選擇模板類別" style='width:240px;'>
<Option v-for="item in templateList" :value="item.templateCode" :key="item.templateCode">{{ item.templateName }}</Option>
</Select>
</FormItem>
<FormItem label="開放范圍:" prop="openrange">
<Select v-model="formValidate.openrange" placeholder="請選擇開放范圍" style='width:240px;'>
<Option v-for="item in openrangeList" :value="item.openrangeCode" :key="item.openrangeCode">{{ item.openrangeName }}</Option>
</Select>
</FormItem>
<FormItem label="上傳圖片:" prop="productlogo">
<Upload
action=""
:before-upload="handleUploadicon"
:show-upload-list="false"
:format="['jpg','jpeg','png', 'gif']"
:on-format-error="handleFormatError1">
<img class="iconlabelUrl" :src="formValidate.labelUrl" alt="">
<Input v-model="formValidate.productlogo" disabled style="width: 120px;margin-top:24px" class="left ml5 hidden"></Input>
<!-- <Button type="ghost" icon="ios-cloud-upload-outline">上傳文件</Button> -->
</Upload>
</FormItem>
<FormItem>
<Button type="primary" @click="handleSubmit('formValidate')" style='width:100px'>保存</Button>
<Button @click="handleReset('formValidate')" style="margin-left: 8px;width:100px">返回</Button>
</FormItem>
</Form>
</div>
</div>
</template>
<script>
export default{
data(){
return{
title:'',
openrangeList:[
{openrangeCode:'1',openrangeName:'全部用戶'},
{openrangeCode:'2',openrangeName:'會員用戶'},
],
templateList:[
{templateCode:'1',templateName:'海報'},
{templateCode:'2',templateName:'名片'}
],
formValidate: {
productlogo:'',
templatename:'',
templatetype:'1',
openrange:'1',
labelUrl: require("../../image/moren.png")
},
ruleValidate:{
templatename:[
{required: true, message: '請輸入模板名稱', trigger: 'change'},
],
productlogo:[
{ required: true, message: "請上傳圖片", trigger: "blur" }
]
}
}
},
methods:{
handleUploadicon(file) {
let splic = file.name.split(".");
if (
splic[splic.length - 1] == "png" ||
splic[splic.length - 1] == "jpg" ||
splic[splic.length - 1] == "gif" ||
splic[splic.length - 1] == "jpeg"
) {
let formData = new FormData();
formData.append("file", file);
let config = {
headers: {
"Content-Type": "multipart/form-data"
}
};
this.http
.post(BASE_URL + "/fileUpload", formData, config)
.then(resp => {
if (resp.code == "success") {
this.formValidate.labelUrl = resp.data;
this.formValidate.productlogo = resp.data;
} else {
}
})
.catch(() => {});
return false;
}
},
handleFormatError1(file) {
this.$Message.info("圖片格式不正確,請上傳正確的圖片格式");
},
handleSubmit (name) {
this.$refs[name].validate((valid) => {
if (valid) {
if(this.title = '添加模板'){
this.$Modal.confirm({
title: "溫馨提示",
content: "<p>確認(rèn)添加該模板?</p>",
onOk: () => {
let data = {
exhibitionName : this.formValidate.templatename,
exhibitionType : this.formValidate.templatetype,
openType : this.formValidate.openrange,
exhibitionPath : this.formValidate.productlogo
}
this.http.post(BASE_URL+'后臺保存接口',data)
.then(data=>{
if(data.code=='success'){
this.$Message.success('添加成功');
this.$router.push('/exhibition')
}else{
this.$Message.error('添加失敗')
}
}).catch(err=>{
console.log(err)
})
},
onCancel: () => {}
});
}else{
this.$Modal.confirm({
title: "溫馨提示",
content: "<p>確認(rèn)修改該模板?</p>",
onOk: () => {
let data = {
exhibitionName : this.formValidate.templatename,
exhibitionType : this.formValidate.templatetype,
openType : this.formValidate.openrange,
exhibitionPath : this.formValidate.productlogo
}
this.http.posst(BASE_URL+'后臺修改接口',data)
.then(data=>{
if(data.data=='success'){
this.$Message.success('修改成功');
this.$router.push('/exhibition')
}else{
this.$Message.error('修改失敗')
}
}).catch(err=>{
console.log(err)
})
},
onCancel: () => {}
});
}
}
})
},
handleReset(name){
this.$refs[name].resetFields()
this.$router.push('/exhibition')
}
},
mounted(){
if(this.$route.query.id){
this.title = '添加模板'
}else{
this.title = '編輯模板'
let data = {
exhibitionCode:this.$route.query.exhibitionCode
}
this.http.post(BASE_URL+'/loan/exhibition/getByCode',data)
.then(data=>{
if(data.code=='success'){
this.formValidate.templatename=data.data.exhibitionName,
this.formValidate.templatetype=data.data.exhibitionType,
this.formValidate.openrange=data.data.openType,
this.formValidate.labelUrl= data.data.exhibitionPath,
this.formValidate.productlogo=data.data.exhibitionPath
}
})
}
}
}
</script>
<style lang="less" scoped>
.title{
height:60px;line-height:60px;background:#fff;
font-size: 20px;text-indent: 20px;
}
.ivu-form .ivu-form-item-label{
text-align: justify !important
}
.iconlabelUrl {
width: 240px;
height: 120px;
}
</style>
關(guān)于vue.js組件的教程,請大家點擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
element tree懶加載:load="loadNode"只觸發(fā)一次的解決方案
本文主要介紹了element tree懶加載:load="loadNode"只觸發(fā)一次的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
vue-cli 使用axios的操作方法及整合axios的多種方法
這篇文章主要介紹了vue-cli 使用axios的操作方法及整合axios的多種方法,vue-cli整合axios的多種方法,小編一一給大家列出來了,大家根據(jù)自身需要選擇,需要的朋友可以參考下2018-09-09
SpringBoot+Vue開發(fā)之Login校驗規(guī)則、實現(xiàn)登錄和重置事件
這篇文章主要介紹了SpringBoot+Vue開發(fā)之Login校驗規(guī)則、實現(xiàn)登錄和重置事件,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
vue報錯Failed to execute 'appendChild&apos
這篇文章主要為大家介紹了vue報錯Failed to execute 'appendChild' on 'Node'解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

