vue实现步骤条

<template>

    <div class="register ">

      <div style="position: relative;bottom: 360px;width:1050px">

        <el-steps :active="active" finish-status="success" simple>

          <el-step title="基础信息"></el-step>

          <el-step title="企业信息"></el-step>

          <el-step title="法人信息"></el-step>

          <el-step title="账户信息"></el-step>

          <el-step title="入驻完成"></el-step>

        </el-steps>

      </div>

      <el-form :model="registerForm" ref="registerForm" class="register-form" label-width="180px" :rules="registerRules">

      <div v-show="active == 0">

          <div style="height: 600px;">

            <el-form-item prop="contact" label="联系人:" >

              <el-input v-model="registerForm.contact" type="text" auto-complete="off" placeholder="请输入联系人" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="contactPhone" label="联系电话:" >

              <el-input v-model="registerForm.contactPhone" type="text" auto-complete="off" placeholder="请输入联系电话" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="contactMail" label="联系邮箱:" >

              <el-input v-model="registerForm.contactMail" type="text" auto-complete="off" placeholder="请输入联系邮箱" clearable>

              </el-input>

            </el-form-item>

            <el-form-item label="服务区域" prop="serArea">

              <el-cascader size="large" :options="pcaTextArr" v-model="selectedOptions" placeholder="请选择服务区域"  @change="handleChange"></el-cascader>

            </el-form-item>

            <el-form-item prop="regPerFacaImageList" label="企业门头照:" >

              <el-upload

                list-type="picture-card"

                :action="url"

                accept="image/*"

                :headers="Headers"

                :on-success="handleregPerFacaImage"

                :before-remove="handleRemoveregPerFacaImage"

                :file-list="fileList"

              ><i class="el-icon-plus"> </i>

              </el-upload>    

            </el-form-item>

            <el-form-item prop="regPerEnvImageList" label="企业办公环境:" >

              <el-upload

                list-type="picture-card"

                :action="url"

                accept="image/*"

                :headers="Headers"

                :on-success="handleregPerEnvImage"

                :before-remove="handleRemoveregPerEnvImage"

                :file-list="fileList"

              ><i class="el-icon-plus"> </i>

              </el-upload>    

            </el-form-item>

          </div>

        <div style="text-align: center;">

          <el-button type="primary" @click="next">下一步</el-button>

        </div>

        <div style="text-align: center;"> <span class="link-type" @click="gotologin">《救在身边服务商细则》</span></div>

      </div>

        <div v-show="active == 1" style="margin-bottom: -5px;">

          <div style="height: 600px;">

            <el-form-item prop="name" label="公司名称:">

              <el-input v-model="registerForm.name" type="text" auto-complete="off" placeholder="请输入公司名称" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="usccNo" label="统一社会信用代码:">

              <el-input v-model="registerForm.usccNo" type="text" auto-complete="off" placeholder="请输入统一社会信用代码" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="belong" label="公司类型:" >

              <el-select v-model="registerForm.belong" placeholder="请选择公司类型">

                <el-option label="私营" value="1"></el-option>

                <el-option label="政府" value="2"></el-option>

              </el-select>

            </el-form-item>

            <el-form-item prop="regAddress" label="注册地址:">

              <el-input v-model="registerForm.regAddress" type="text" auto-complete="off" placeholder="请输入注册地址" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="bussScope" label="经营范围:">

              <el-input v-model="registerForm.bussScope" type="textarea" :rows="7" auto-complete="off" placeholder="请输入经营范围" clearable />

            </el-form-item>

            <el-form-item prop="regPerCertImageId" label="营业执照:" >

              <el-upload

              :limit="1"

              :on-exceed="handleExceed"

              list-type="picture-card"

              :action="url"

              accept="image/*"

              :headers="Headers"

              :on-success="handleregPerCertImage"

              :before-remove="handleRemoveregPerCertImage"

              :file-list="fileList"

            ><i class="el-icon-plus"> </i>

            </el-upload>    

            </el-form-item>

          </div>

          <div style="text-align: center;display:flex;">

            <el-button @click="pre">上一步</el-button>

            <el-button type="primary" @click="next">下一步</el-button>

          </div>

          <div style="text-align: center;"> <span class="link-type" @click="gotologin">《救在身边服务商细则》</span></div>

        </div>

        <div v-show="active == 2" style="margin-bottom: -5px;">

          <div style="height: 600px;">

            <el-form-item prop="legalPerName" label="法人代表姓名:">

              <el-input v-model="registerForm.legalPerName" type="text" auto-complete="off" placeholder="请输入法人代表姓名" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="legalPerId" label="法人代表身份证号:">

              <el-input v-model="registerForm.legalPerId" type="text" auto-complete="off" placeholder="请输入法人代表身份证号" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="legalPerValid" label="法人身份证截止日期:">

              <el-input v-model="registerForm.legalPerValid" type="text" auto-complete="off" placeholder="请输入法人身份证截止日期" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="legalPerAddress" label="法人家庭地址:">

              <el-input v-model="registerForm.legalPerAddress" type="text" auto-complete="off" placeholder="请输入法人家庭地址" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="legalPerPhone" label="法人代表手机号:">

              <el-input v-model="registerForm.legalPerPhone" type="text" auto-complete="off" placeholder="请输入法人代表手机号" clearable>

              </el-input>

            </el-form-item>

            <el-form-item prop="legalPerFrontImageId" label="法人身份证:" >

              <div style="width:340px;display: flex;justify-content:space-between">

                <el-upload

                :limit="1"

                :on-exceed="handleExceed"

                list-type="picture-card"

                :action="url"

                accept="image/*"

                :headers="Headers"

                :on-success="handlelegalPerFront"

                :before-remove="handleRemovelegalPerFront"

                :file-list="fileList"

              ><div style="display: flex;flex-direction: column;margin-top: 40px;"><i class="el-icon-plus"></i><span

              style="line-height: 40px;">上传身份证正面</span></div>

            </el-upload>    

                <el-upload

                :limit="1"

                :on-exceed="handleExceed"

                list-type="picture-card"

                :action="url"

                accept="image/*"

                :headers="Headers"

                :on-success="handlelegalPerBack"

                :before-remove="handleRemovelegalPerBack"

                :file-list="fileList"

            ><div style="display: flex;flex-direction: column;margin-top: 40px;"><i class="el-icon-plus"></i><span

              style="line-height: 40px;">上传身份证背面</span></div>

            </el-upload>        

            </div>

            </el-form-item>

          </div>

          <div style="text-align: center;display:flex;">

            <el-button @click="pre">上一步</el-button>

            <el-button type="primary" @click="next">下一步</el-button>

          </div>

          <div style="text-align: center;"> <span class="link-type" @click="gotologin">《救在身边服务商细则》</span></div>

        </div>

        <div v-show="active == 3" style="margin-bottom: -5px;">

          <div style="height: 600px;">

            <el-form-item prop="operBank" label="开户银行:" >

              <el-input v-model="registerForm.operBank" type="text" auto-complete="off" placeholder="请输入开户银行">

              </el-input>

            </el-form-item>

            <el-form-item prop="operBankAccount" label="开户行账号:" >

              <el-input v-model="registerForm.operBankAccount" type="text" auto-complete="off" placeholder="请输入账号">

              </el-input>

            </el-form-item>

            <el-form-item prop="operBankAddress" label="开户行所在地:" >

              <el-input v-model="registerForm.operBankAddress" type="text" auto-complete="off" placeholder="请输入开户行账号">

              </el-input>

            </el-form-item>

            <el-form-item prop="operBankSubbranch" label="所属支行:" >

              <el-input v-model="registerForm.operBankSubbranch" type="text" auto-complete="off" placeholder="请输入所属支行">

              </el-input>

            </el-form-item>

            <el-form-item prop="regPerSmatImageList" label="对公结算材料:" >

              <el-upload

              list-type="picture-card"

              :action="url"

              accept="image/*"

              :headers="Headers"

              :on-success="handleregPerSmatImage"

              :before-remove="handleRemoveregPerSmatImage"

              :file-list="fileList"

            ><i class="el-icon-plus"> </i>

            </el-upload>  

            </el-form-item>

          </div>

          <div style="text-align: center;display:flex;">

            <el-button @click="pre">上一步</el-button>

            <el-button type="primary" @click="applyForm()">提交审核</el-button>

          </div>

          <div style="text-align: center;"> <span class="link-type" @click="gotologin">《救在身边服务商细则》</span></div>

        </div>

      </el-form>

      <div class="register-form" label-width="120px" v-show="active == 4" style="text-align: center;height:680px;padding-top: 150px;">

       <div v-if="status==0">

        <div><img src="@/assets/images/sh.png" alt=""></div>

        <h2>提交成功,审核中...</h2>

        <div style="color: gray;" @click="gotologin()">请耐心等待...点击返回登录</div>

       </div>

       <div v-if="status==1">

        <div><img src="@/assets/images/sh.png" alt=""></div>

        <h2>提交成功,审核通过</h2>

        <div style="color: gray;" @click="gotoindex()">点击跳转首页</div>

       </div>

       <div v-if="status==2">

        <div><img src="@/assets/images/btg.png" alt=""></div>

        <h2>审核不通过</h2>

        <div style="color: gray;">请核对并修改以下信息后,再重新提交。</div>

        <div style="border: 1px solid black;width:800px;height:200px;margin:60px auto;text-align: left;padding: 30px;">

          <p>您提交的内容有如下错误:</p>

          <p style="font-size: 14px;color:grey"><i class="el-icon-circle-close" style="color: red;"/> 你的账户已被冻结</p>

          <p style="font-size: 14px;color:grey"><i class="el-icon-circle-close" style="color: red;"/> 你的账户还不具备申请资格</p>

        </div>

        <div>

          <el-button type="primary" @click="gotoauth()">重新认证</el-button>

        </div>

       </div>

      </div>

      <!--  底部  -->

      <div class="el-register-footer">

        <span>Copyright © 2018-2023  All Rights Reserved.</span>

      </div>

    </div>

  </template>



  <script>

  import {pcaTextArr} from "element-china-area-data";

  import { getToken } from "@/utils/auth";

  export default {

    data() {

      return {

        fileList:[],

        url:process.env.VUE_APP_BASE_API + "/common/upload",

        Headers: {Authorization: "Bearer " + getToken(),},

        selectedOptions:[],

        pcaTextArr,

        status:"",

        active: 0,

        codeUrl: "",

        registerForm: {

          contact:"",             //联系人

          contactPhone:"",        //联系电话

          contactMail:"",         //联系邮箱

          serProvince:"",         //服务区域 省

          serCity:"",             //服务区域 市

          serArea:"",             //服务区域 区

          regPerFacaImageList:[], //企业门头照

          regPerEnvImageList:[],  //企业办公环境



          name:"",                //公司名称

          usccNo:"",              //统一社会信用代码

          belong:"",              //公司类型 1 私营  2 政府

          regAddress:"",          //注册地址

          bussScope:"",           //经营范围

          regPerCertImageId:"",   //营业执照



          legalPerName:"",        //法人代表姓名

          legalPerId:"",          //法人代表身份证号

          legalPerValid:"",       //法人身份证截至日期

          legalPerAddress:"",     //法人家庭地址

          legalPerPhone:"",       //法人代表手机号

          legalPerFrontImageId:"",//法人身份证正面

          legalPerBackImageId:"", //法人身份证反面



          operBank:"",            //开户银行

          operBankAccount:"",     //开户行帐号

          operBankAddress:"",     //开户行所在地

          operBankSubbranch:"",   //所属支行

          regPerSmatImageList:[], //对公结算材料



        },

        registerRules: {

          contact: [

                  { required: true, message: "请输入联系人" ,trigger: "blur"},

                  { pattern: /^[\u4E00-\u9FA5]{1,}$/, message: "只能输入汉字", trigger: "blur"}

                  ],

          contactPhone: [

                        { required: true, trigger: "blur", message: "请输入联系电话"},

                        { pattern: /^1[3-9]\d{9}$/, message: "请输入合法格式的联系电话", trigger: "blur"}

                        ],

          contactMail: [{ required: true, trigger: "blur", message: "请输入联系邮箱" },

                        { pattern: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/, message: "请输入合法格式的联系邮箱", trigger: "blur"}

                        ],

          serArea: [ { required: true, trigger: "blur", message: "请选择服务区域"},],

          regPerFacaImageList: [{ required: true, trigger: "blur", message: "请上传企业门头照" },],

          regPerEnvImageList: [ { required: true, trigger: "blur", message: "请上传企业办公环境"},],



          name: [{ required: true, trigger: "blur", message: "请输入公司名称" },],

          usccNo: [ { required: true, trigger: "blur", message: "请输入统一社会信用代码"},],

          belong: [{ required: true, trigger: "blur", message: "请选择公司类型" },],

          regAddress: [ { required: true, trigger: "blur", message: "请输入注册地址"},],

          bussScope: [{ required: true, trigger: "blur", message: "请输入经营范围" },],

          regPerCertImageId: [ { required: true, trigger: "blur", message: "请上传营业执照"},],



          legalPerName: [{ required: true, trigger: "blur", message: "请输入法人代表姓名" },

                        { pattern: /^[\u4E00-\u9FA5]{1,}$/, message: "只能输入汉字", trigger: "blur"}

                        ],

          legalPerId: [ { required: true, trigger: "blur", message: "请输入法人代表身份证号"},],

          legalPerValid: [ { required: true, trigger: "blur", message: "请输入法人身份证截至日期"},],

          legalPerAddress: [{ required: true, trigger: "blur", message: "请输入法人家庭地址" },],

          legalPerPhone: [{ required: true, trigger: "blur", message: "请输入法人代表手机号" },

                           { pattern: /^1[3-9]\d{9}$/, message: "请输入合法格式的联系电话", trigger: "blur"}

                          ],

          legalPerFrontImageId: [ { required: true, trigger: "blur", message: "请上传法人身份证正面"},],

          legalPerBackImageId: [{ required: true, trigger: "blur", message: "请上传法人身份证反面" },],



          operBank: [ { required: true, trigger: "blur", message: "请输入开户银行"},],

          operBankAccount: [{ required: true, trigger: "blur", message: "请输入开户行帐号" },],

          operBankAddress: [ { required: true, trigger: "blur", message: "请输入开户行所在地"},],

          operBankSubbranch: [ { required: true, trigger: "blur", message: "请输入所属支行"},],

          regPerSmatImageList: [ { required: true, trigger: "blur", message: "请上传对公结算材料"},],

        },

        arr:[]

      };

    },

    created() {

     this.getprofile()

    },

    watch: {

      // registerForm: {

      //   deep: true,

      //   // immediate: true,

      //   handler(newVal) {

      //     console.log(newVal)

      //   },

      // },

    },

    methods: {

      gotoindex(){

        this.$router.push('/index/index');

      },

      gotologin(){

        this.$store.dispatch('LogOut').then(() => {

          location.href = '/index';

        })

      },

      getprofile(){

        this.$service.get(`/merchant/isPerfect`).then(res => {

          if(res.code==200){

            this.status = res.msg;

            if(this.status){

              this.active = 4;

            }else{

              this.active = 0;

            }    

          }else{

            this.$message({

              type: 'error', // success error warning

              message: res.msg,

              duration: 2000,

            })

          }

          }).catch(() => {});

      },

         //省市区选择

         handleChange(){

        this.registerForm.serProvince = this.selectedOptions[0];

        this.registerForm.serCity = this.selectedOptions[1];

        this.registerForm.serArea = this.selectedOptions[2];

      },

       //企业门头照

       handleregPerFacaImage(res){

        if(res.code == 200){

          this.registerForm.regPerFacaImageList.push(res.data.id)

        }

      },

       //企业办公环境

       handleregPerEnvImage(res){

        if(res.code == 200){

          this.registerForm.regPerEnvImageList.push(res.data.id)

        }

      },

         //营业执照

         handleregPerCertImage(res){

        if(res.code == 200){

          this.registerForm.regPerCertImageId = res.data.id;

        }

      },

        //身份证正面

        handlelegalPerFront(res){

        if(res.code == 200){

          this.registerForm.legalPerFrontImageId = res.data.id;

        }

      },

         //身份证反面

         handlelegalPerBack(res){

        if(res.code == 200){

          this.registerForm.legalPerBackImageId = res.data.id;

        }

      },

        //对公结算材料

        handleregPerSmatImage(res){

        if(res.code == 200){

          this.registerForm.regPerSmatImageList.push(res.data.id)

        }

      },

       //删除企业门头图片

       handleRemoveregPerFacaImage(file){

        const fileid = file.response.data.id;

        const index = this.registerForm.regPerFacaImageList.findIndex((item) => item === fileid);

        this.registerForm.regPerFacaImageList.splice(index, 1);

      },  

     //删除办公环境图片

      handleRemoveregPerEnvImage(file) {

        const fileid = file.response.data.id;

        const index = this.registerForm.regPerEnvImageList.findIndex((item) => item === fileid);

        this.registerForm.regPerEnvImageList.splice(index, 1);

     },

      //删除营业执照

      handleRemoveregPerCertImage(){

        this.registerForm.regPerCertImageId = '';

      },

      //删除身份证正面

      handleRemovelegalPerFront(){

        this.registerForm.legalPerFrontImageId = '';

      },

      //删除身份证背面

      handleRemovelegalPerBack(){

        this.registerForm.legalPerBackImageId = '';

      },

      //删除对公材料

      handleRemoveregPerSmatImage(file){

        const fileid = file.response.data.id;

        const index = this.registerForm.regPerSmatImageList.findIndex((item) => item === fileid);

        this.registerForm.regPerSmatImageList.splice(index, 1);

      },

      //图片超出

      handleExceed(){

        this.$message.warning(`当前限制选择 1 张图片`);

      },

      //提交表单

      applyForm(){

        this.$refs.registerForm.validate(valid => {

        if (valid) {

          let body = this.registerForm;

          this.$service.post(`/merchant`,body).then(res => {

          if(res.code==200){

           console.log(this.registerForm);

          this.next();

         }

        }).catch(() => {});

        }else {

          this.$message({

            type: 'error', // success error warning

            message: "请输入必填项",

            duration: 2000,

          })

        }

      });

   

       

      },

      gotoauth(){

        this.active = 0

      },

      // 步骤条下一步的方法

      next() {

        if (this.active++ > 3) this.active = 0

      },

      // 步骤条上一步的方法

      pre() {

        if (this.active-- < 2) this.active = 0

      },

    }

  };

  </script>



  <style rel="stylesheet/scss" lang="scss" scoped>

  ::v-deep .el-form-item--medium .el-form-item__content{

    line-height: 10px;

  }

  ::v-deep .el-cascader{

    width: 100%;

  }

  .el-select{

    width: 100%;

  }

  .register {

    display: flex;

    justify-content: center;

    align-items: center;

    height: 100%;

    background-image: url("../assets/images/login-background.jpg");

    background-size: cover;

  }



  .title {

    margin: 0px auto 30px auto;

    text-align: center;

    color: #707070;

  }

  .register-tip {

    font-size: 13px;

    text-align: center;

    color: #bfbfbf;

  }



  .register-form {

    position: absolute;

    border-radius: 6px;

    background: #ffffff;

    width: 1050px;

    padding: 25px 25px 5px 25px;



    .el-input {

      height: 35px;

      input {

        height: 35px;

      }

    }



    .input-icon {

      height: 35px;

      width: 14px;

      margin-left: 2px;

    }

  }



  .register-tip {

    font-size: 13px;

    text-align: center;

    color: #bfbfbf;

  }



  .el-register-footer {

    height: 40px;

    line-height: 40px;

    position: fixed;

    bottom: 0;

    width: 100%;

    text-align: center;

    color: #fff;

    font-family: Arial;

    font-size: 12px;

    letter-spacing: 1px;

  }



  .el-button {

    width: 500px;

  }</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值