iview图片上传功能

14 篇文章 0 订阅

 如下图片:这里结合iview里面表单验证做的

完整代码如何 

<template>
    <div>
        <div class="navigation">
          <p>
            <span>管理首页&nbsp;>&nbsp;应用&nbsp;>&nbsp;抢单侠>&nbsp;信贷管理>&nbsp;{{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>确认添加该模板?</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>确认修改该模板?</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>

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沫熙瑾年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值