فهرست منبع

人工商户进件

july 4 سال پیش
والد
کامیت
5875a52864
3فایلهای تغییر یافته به همراه923 افزوده شده و 17 حذف شده
  1. 8 0
      src/api/desk/artificial-invite-micro.js
  2. 16 17
      src/views/desk/artificial-invite-micro.vue
  3. 899 0
      src/views/desk/artificial-invite.vue

+ 8 - 0
src/api/desk/artificial-invite-micro.js

@@ -7,3 +7,11 @@ export const inviteMicro = (row) => {
     data: row
   })
 }
+
+export const invite = (row) => {
+  return request({
+    url: '/api/ldt_shop/shop/invite',
+    method: 'post',
+    data: row
+  })
+}

+ 16 - 17
src/views/desk/artificial-invite-micro.vue

@@ -13,24 +13,24 @@
       <div v-show="active==1" style="margin-top: 50px;">
         <el-form :model="merchantCorporationForm" :rules="merchantCorporationRules" ref="merchantCorporationForm"
                  label-width="170px" class="demo-ruleForm">
-          <el-form-item prop="idCardFront" label="法人身份证件正面照片" style="width: 45%;">
+          <el-form-item prop="legalLicenceFrontUrl" label="法人身份证件正面照片" style="width: 45%;">
             <el-upload :headers="headers" name="image" class="avatar-uploader" action="/api/ocr/idcard"
                        :show-file-list="false" :on-success="handleUploadLegalLicenceFront">
-              <img v-if="merchantCorporationForm.idCardFront" :src="merchantCorporationForm.idCardFront" class="avatar">
+              <img v-if="merchantCorporationForm.legalLicenceFrontUrl" :src="merchantCorporationForm.legalLicenceFrontUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
           </el-form-item>
-          <el-form-item prop="idCardContrary" label="法人身份证件反面照片" style="width: 45%;">
+          <el-form-item prop="legalLicenceBackUrl" label="法人身份证件反面照片" style="width: 45%;">
             <el-upload :headers="headers" name="image" class="avatar-uploader" action="/api/ocr/idcard"
                        :show-file-list="false" :on-success="handleUploadLegalLicenceBack">
-              <img v-if="merchantCorporationForm.idCardContrary" :src="merchantCorporationForm.idCardContrary"
+              <img v-if="merchantCorporationForm.legalLicenceBackUrl" :src="merchantCorporationForm.legalLicenceBackUrl"
                    class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
           </el-form-item>
 
-          <el-form-item :required="true" label="法人姓名" prop="legalPerson">
-            <el-input v-model="merchantCorporationForm.legalPerson"></el-input>
+          <el-form-item :required="true" label="法人姓名" prop="legalName">
+            <el-input v-model="merchantCorporationForm.legalName"></el-input>
           </el-form-item>
           <el-form-item :required="true" label="法人证件号码" prop="legalLicenceNo">
             <el-input v-model="merchantCorporationForm.legalLicenceNo"></el-input>
@@ -156,7 +156,7 @@ export default {
         /**
          * 法人姓名【legalName】
          */
-        legalPerson: "",
+        legalName: "",
         /**
          * 法人证件类型
          */
@@ -168,11 +168,11 @@ export default {
         /**
          * 身份证-正面【legalLicenceFrontUrl】
          */
-        idCardFront: "",
+        legalLicenceFrontUrl: "",
         /**
          * 身份证-反面【legalLicenceBackUrl】
          */
-        idCardContrary: "",
+        legalLicenceBackUrl: "",
         /**
          * 性别
          */
@@ -267,17 +267,17 @@ export default {
       bankAccountTypeList: [{label: "借记卡", value: "DEBIT_CARD"}],
 
       merchantCorporationRules: {
-        idCardFront: [{
+        legalLicenceFrontUrl: [{
           required: true,
           message: '请上传法人身份证件正面照片',
           trigger: 'blur'
         }],
-        idCardContrary: [{
+        legalLicenceBackUrl: [{
           required: true,
           message: '请上传法人身份证件反面照片',
           trigger: 'blur'
         }],
-        legalPerson: [{
+        legalName: [{
           required: true,
           message: '请输入法人姓名',
           trigger: 'blur'
@@ -393,7 +393,6 @@ export default {
       this.getBankCode();
       this.cascadeMenuChange("00", this.province);
 
-      // this.getBankAccountType()
       this.accountInfoForm.bankCode = this.bankAccountTypeList[0].value
       this.accountInfoForm.bankCodeLabel = this.bankAccountTypeList[0].label
       const jsonData = "[\n" +
@@ -611,11 +610,11 @@ export default {
       }
       //商场法人信息
       this.merchantCorporationForm = {
-        legalPerson: source.name,
+        legalName: source.name,
         legalLicenceType: "ID_CARD",
         legalLicenceNo: source.id,
-        idCardFront: e.data[1].link,
-        idCardContrary: "",
+        legalLicenceFrontUrl: e.data[1].link,
+        legalLicenceBackUrl: "",
         gender: source.gender,
         addr: source.addr,
         nationality: source.nationality,
@@ -633,7 +632,7 @@ export default {
         return
       }
       this.merchantCorporationForm.validDate = e.data[0].validDate
-      this.merchantCorporationForm.idCardContrary = e.data[1].link
+      this.merchantCorporationForm.legalLicenceBackUrl = e.data[1].link
     },
   }
 };

+ 899 - 0
src/views/desk/artificial-invite.vue

@@ -0,0 +1,899 @@
+<template>
+  <basic-container>
+    <div>
+      <el-steps :active="active" align-center>
+        <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-step v-if="totalStep==6" title="产品信息"></el-step>
+      </el-steps>
+
+
+      <div v-show="active==1" style="margin-top: 50px;">
+        <el-form :model="merchantCorporationForm" :rules="merchantCorporationRules" ref="merchantCorporationForm"
+                 label-width="170px" class="demo-ruleForm">
+          <el-form-item prop="legalLicenceFrontUrl" label="法人身份证件正面照片" style="width: 45%;">
+            <el-upload :headers="headers" name="image" class="avatar-uploader" action="/api/ocr/idcard"
+                       :show-file-list="false" :on-success="handleUploadLegalLicenceFront">
+              <img v-if="merchantCorporationForm.legalLicenceFrontUrl" :src="merchantCorporationForm.legalLicenceFrontUrl" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+          <el-form-item prop="legalLicenceBackUrl" label="法人身份证件反面照片" style="width: 45%;">
+            <el-upload :headers="headers" name="image" class="avatar-uploader" action="/api/ocr/idcard"
+                       :show-file-list="false" :on-success="handleUploadLegalLicenceBack">
+              <img v-if="merchantCorporationForm.legalLicenceBackUrl" :src="merchantCorporationForm.legalLicenceBackUrl"
+                   class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+
+          <el-form-item :required="true" label="法人姓名" prop="legalName">
+            <el-input v-model="merchantCorporationForm.legalName"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="法人证件号码" prop="legalLicenceNo">
+            <el-input v-model="merchantCorporationForm.legalLicenceNo"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div v-show="active==2" style="margin-top: 50px;">
+        <el-form :model="merchantContactForm" :rules="merchantContactRules" ref="merchantContactForm"
+                 label-width="150px"
+                 class="demo-ruleForm">
+          <el-form-item :required="true" label="商场联系人姓名" prop="contactName">
+            <el-input v-model="merchantContactForm.contactName"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="商户联系人证件号码" prop="contactLicenceNo">
+            <el-input v-model="merchantContactForm.contactLicenceNo"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="商户联系人手机号" prop="contactMobile">
+            <el-input v-model="merchantContactForm.contactMobile"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="商场联系人邮箱" prop="contactEmail">
+            <el-input v-model="merchantContactForm.contactEmail"></el-input>
+          </el-form-item>
+          <el-form-item label="客服电话" prop="servicePhone">
+            <el-input v-model="merchantContactForm.servicePhone"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div v-show="active==3" style="margin-top: 50px;">
+        <el-form :model="merchantSubjectForm" :rules="merchantSubjectRules" ref="merchantSubjectForm"
+                 label-width="150px"
+                 class="demo-ruleForm">
+          <el-form-item prop="businessLicense" label="商场营业执照" style="width: 45%;">
+            <el-upload :headers="headers" name="image" class="avatar-uploader" action="/api/ocr/bizilicense"
+                       :show-file-list="false" :on-success="handleUploadBusinessLicense" :before-upload="compressImg">
+              <img v-if="merchantSubjectForm.businessLicense" :src="merchantSubjectForm.businessLicense" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+          <el-form-item :required="true" label="商场全称" prop="signName">
+            <el-input v-model="merchantSubjectForm.signName"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="营业执照编号" prop="licenceNo">
+            <el-input v-model="merchantSubjectForm.licenceNo"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="商场简称" prop="shortName">
+            <el-input v-model="merchantSubjectForm.shortName"></el-input>
+          </el-form-item>
+          <el-form-item :required="true" label="开户许可证编号" prop="openAccountLicenceNo">
+            <el-input v-model="merchantSubjectForm.openAccountLicenceNo"></el-input>
+          </el-form-item>
+          <el-form-item prop="openAccountLicenceUrl" label="开户许可证照片" style="width: 45%;">
+            <el-upload :headers="headers" class="avatar-uploader" action="/api/blade-resource/oss/endpoint/put-file"
+                       :show-file-list="false" :on-success="handleUploadOpenAccountLicence"
+                       :before-upload="compressImg">
+              <img v-if="merchantSubjectForm.openAccountLicenceUrl" :src="merchantSubjectForm.openAccountLicenceUrl"
+                   class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+          <el-form-item prop="handLicenceUrl" label="手持营业执照在经营场所的照片" style="width: 45%;">
+            <el-upload :headers="headers" class="avatar-uploader" action="/api/blade-resource/oss/endpoint/put-file"
+                       ref="compressImgHandLicenceUrl"
+                       :show-file-list="false" :on-success="handleUploadHandLicenceUrl" :before-upload="compressImg">
+              <img v-if="merchantSubjectForm.handLicenceUrl" :src="merchantSubjectForm.handLicenceUrl" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div v-show="active==4" style="margin-top: 50px;">
+        <el-form :model="settlementAccountForm" :rules="settlementAccountRules" ref="settlementAccountForm"
+                 label-width="150px">
+          <el-form-item :required="true" label="银行账户号码" prop="bankCardNo">
+            <el-input v-model="settlementAccountForm.bankCardNo"></el-input>
+          </el-form-item>
+          <el-form-item label="银行账户类型">
+            <el-select @change="bankAccountTypeChange" v-model="settlementAccountForm.bankAccountTypeLabel"
+                       placeholder="请选择银行账户类型">
+              <el-option v-for="(item,index) in bankAccountTypeList" :key="index" :label="item.label"
+                         :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="银行账户开户总行">
+            <el-select filterable remote :remote-method="remoteMethod" @change="bankCodeChange"
+                       v-model="settlementAccountForm.bankCodeLabel" placeholder="请选择银行账户开户总行">
+              <el-option v-for="(item,index) in bankCodeList" :key="index" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div v-show="active==5" style="margin-top: 50px;">
+        <el-form :model="businessAddressForm" :rules="businessAddressRules" ref="businessAddressForm"
+                 label-width="150px"
+                 class="demo-ruleForm">
+          <el-form-item label="省份" :required="true" prop="province">
+            <el-select v-model="businessAddressForm.province" placeholder="请选择省份">
+              <el-option v-for="(item,index) in province" :key="index" :label="item.label"
+                         :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="市区" :required="true" prop="city">
+            <el-select v-model="businessAddressForm.city" placeholder="请选择市区">
+              <el-option v-for="(item,index) in city" :key="index" :label="item.label"
+                         :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="区省" :required="true" prop="district">
+            <el-select v-model="businessAddressForm.district" placeholder="请选择区县">
+              <el-option v-for="(item,index) in district" :key="index" :label="item.label"
+                         :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item :required="true" label="详情地址" prop="address">
+            <el-input v-model="businessAddressForm.address"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div v-show="active==6" style="margin-top: 50px;">
+        <el-form :model="productInfoForm" :rules="productInfoRules" ref="productInfoForm"
+                 label-width="150px">
+          <el-tooltip placement="right" effect="light">
+            <div slot="content">
+              例如:<br/>
+              <pre>{{ this.tooltip }}</pre>
+            </div>
+            <el-form-item :required="true" label="开通产品信息json" prop="productInfo" style="width: 800px;">
+              <el-input type="textarea" :rows="6" v-model="productInfoForm.productInfo"></el-input>
+            </el-form-item>
+          </el-tooltip>
+        </el-form>
+      </div>
+
+      <div style="display: flex;justify-content: flex-end;margin-top: 50px">
+        <el-button v-if="active!=1" @click="active--">上一步</el-button>
+        <el-button v-if="active!=totalStep" type="primary" @click="next">下一步</el-button>
+        <el-button :disabled="confirm" v-else type="primary" @click="next">确认</el-button>
+      </div>
+
+    </div>
+  </basic-container>
+</template>
+
+<script>
+import {dictionaryPage} from "../../api/system/dictbiz.js";
+import {compress} from "../../util/compress";
+import {getLazyTree} from "../../api/base/region";
+import {invite} from "../../api/desk/artificial-invite-micro";
+
+export default {
+  data() {
+    return {
+      active: 1,
+      confirm: false,
+      totalStep: 6,
+      mallDetail: {},
+      province: [],
+      city: [],
+      district: [],
+      //商场法人信息
+      merchantCorporationForm: {
+        /**
+         * 法人姓名【legalName】
+         */
+        legalName: "",
+        /**
+         * 法人证件类型
+         */
+        legalLicenceType: "ID_CARD",
+        /**
+         * 法人证件号码
+         */
+        legalLicenceNo: "",
+        /**
+         * 身份证-正面【legalLicenceFrontUrl】
+         */
+        legalLicenceFrontUrl: "",
+        /**
+         * 身份证-反面【legalLicenceBackUrl】
+         */
+        legalLicenceBackUrl: "",
+        /**
+         * 性别
+         */
+        gender: "",
+        /**
+         * 住址
+         */
+        addr: "",
+        /**
+         * 民族
+         */
+        nationality: "",
+        /**
+         * 有效日期
+         */
+        validDate: "",
+      },
+
+      //商场联系人信息
+      merchantContactForm: {
+        /**
+         * 商户联系人姓名
+         */
+        contactName: "",
+        /**
+         * 商户联系人证件号码
+         */
+        contactLicenceNo: "",
+        /**
+         * 商户联系人手机号
+         */
+        contactMobile: "",
+        /**
+         * 商户联系人邮箱
+         */
+        contactEmail: "",
+        /**
+         * 客服电话
+         */
+        servicePhone: "",
+      },
+      /**
+       * 商场主体信息
+       */
+      merchantSubjectForm: {
+        /**
+         * 商户签约类型
+         */
+        signType: "ENTERPRISE",
+        /**
+         * 企业名称【商户全称】
+         */
+        enterpriseName: "",
+        /**
+         * 组成形式
+         */
+        typeOfOrganization: "",
+        /**
+         * 企业类型
+         */
+        typeOfEnterprise: "",
+        /**
+         * 经营范围
+         */
+        businessScope: "",
+        /**
+         * 注册资本
+         */
+        registeredCapital: "",
+        /**
+         * 实收资本
+         */
+        paidInCapital: "",
+        /**
+         * 营业期限
+         */
+        validPeriod: "",
+        /**
+         * 成立日期
+         */
+        registeredDate: "",
+        /**
+         * 注册号
+         */
+        regNum: "",
+        /**
+         * 商户证件编号
+         */
+        licenceNo: "",
+        /**
+         * 营业执照【易宝:商户证件照片】
+         */
+        businessLicense: "",
+        /**
+         * 商户签约名称
+         */
+        signName: "",
+        /**
+         * 商户简称
+         */
+        shortName: "",
+        /**
+         * 开户许可证编号
+         */
+        openAccountLicenceNo: "",
+        /**
+         * 开户许可证照片
+         */
+        openAccountLicenceUrl: "",
+        /**
+         * 手持营业执照在经营场所的照片
+         */
+        handLicenceUrl: "",
+      },
+
+      /**
+       * 商城经营地址
+       */
+      businessAddressForm: {},
+
+      /**
+       * 结算账户信息
+       */
+      settlementAccountForm: {
+        /**
+         * 结算方向
+         */
+        settlementDirection: "",
+        /**
+         * 银行账户类型
+         */
+        bankAccountType: "",
+        bankAccountTypeLabel: "",
+        /**
+         * 银行账户号码
+         */
+        bankCardNo: "",
+        /**
+         * 银行账户开户总行编码
+         */
+        bankCode: "",
+        bankCodeLabel: ""
+      },
+
+      /**
+       * 商城经营地址
+       */
+      businessAddressForm: {
+        /**
+         * 省
+         */
+        province: "",
+        /**
+         * 市
+         */
+        city: "",
+        /**
+         * 区
+         */
+        district: "",
+        /**
+         * 详情地址
+         */
+        address: "",
+      },
+
+      /**
+       * 产品信息
+       */
+      productInfoForm: {
+        productInfo: "",
+      },
+
+      //银行账户开户总行编码
+      bankCodeList: [],
+      //账户类型
+      bankAccountTypeList: [{label: "企业对公账户", value: "ENTERPRISE_ACCOUNT"}],
+
+      merchantCorporationRules: {
+        legalLicenceFrontUrl: [{
+          required: true,
+          message: '请上传法人身份证件正面照片',
+          trigger: 'blur'
+        }],
+        legalLicenceBackUrl: [{
+          required: true,
+          message: '请上传法人身份证件反面照片',
+          trigger: 'blur'
+        }],
+        legalName: [{
+          required: true,
+          message: '请输入法人姓名',
+          trigger: 'blur'
+        }],
+        legalLicenceNo: [{
+          required: true,
+          message: '请输入法人证件号码',
+          trigger: 'blur'
+        }],
+      },
+      merchantContactRules: {
+        contactName: [{
+          required: true,
+          message: '请输入商场联系人姓名',
+          trigger: 'blur'
+        }],
+        contactLicenceNo: [{
+          required: true,
+          message: '请输入商场联系人证件号码',
+          trigger: 'blur'
+        }],
+        contactMobile: [{
+          required: true,
+          message: '请输入商场联系人手机号',
+          trigger: 'blur'
+        }],
+        contactEmail: [{
+          required: true,
+          message: '请输入商场联系人邮箱',
+          trigger: 'blur'
+        }],
+      },
+      merchantSubjectRules: {
+        businessLicense: [{
+          required: true,
+          message: '请上传商场营业执照',
+          trigger: 'blur'
+        }],
+        signName: [{
+          required: true,
+          message: '请输入商场全称',
+          trigger: 'blur'
+        }],
+        licenceNo: [{
+          required: true,
+          message: '请输入营业执照编号',
+          trigger: 'blur'
+        }],
+        shortName: [{
+          required: true,
+          message: '请输入商场简称',
+          trigger: 'blur'
+        }],
+        openAccountLicenceNo: [{
+          required: true,
+          message: '请输入开户许可证编号',
+          trigger: 'blur'
+        }],
+        openAccountLicenceUrl: [{
+          required: true,
+          message: '请上传开户许可证照',
+          trigger: 'blur'
+        }],
+        handLicenceUrl: [{
+          required: true,
+          message: '请上传手持营业执照在经营场所的照片',
+          trigger: 'blur'
+        }],
+      },
+      settlementAccountRules: {
+        bankAccountType: [{
+          required: true,
+          message: '请选择银行账户类型',
+          trigger: 'blur'
+        }],
+        bankCardNo: [{
+          required: true,
+          message: '请输入银行账户号码',
+          trigger: 'blur'
+        }],
+        bankCode: [{
+          required: true,
+          message: '请选择银行账户开户总行',
+          trigger: 'blur'
+        }],
+      },
+      businessAddressRules: {
+        province: [{
+          required: true,
+          message: '请输入省',
+          trigger: 'blur'
+        }],
+        city: [{
+          required: true,
+          message: '请输入市',
+          trigger: 'blur'
+        }],
+        district: [{
+          required: true,
+          message: '请输入区',
+          trigger: 'blur'
+        }],
+        address: [{
+          required: true,
+          message: '请输入详情地址',
+          trigger: 'blur'
+        }],
+      },
+      productInfoRules: {
+        productInfo: [{
+          required: true,
+          message: "请输入产品信息json",
+          trigger: 'blur',
+        }]
+      },
+      headers: {}
+    };
+  },
+  created() {
+    this.init()
+  },
+  watch: {
+    "businessAddressForm.province": {
+      handler(value) {
+        let parentCode = this.province.find(ele => {
+          return ele.title === value;
+        });
+        if (parentCode == null) {
+          return;
+        }
+        parentCode = parentCode.key;
+        this.cascadeMenuChange(parentCode, this.city);
+      }
+    },
+    "businessAddressForm.city": {
+      handler(value) {
+        let parentCode = this.city.find(ele => {
+          return ele.title === value;
+        });
+        if (parentCode == null) {
+          return;
+        }
+        parentCode = parentCode.key;
+        this.cascadeMenuChange(parentCode, this.district);
+      }
+    }
+  },
+  methods: {
+    init() {
+      this.headers = {
+        "Authorization": "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
+        "Blade-Auth": JSON.parse(localStorage.getItem("saber-token")).content
+      }
+      this.getBankCode()
+      this.cascadeMenuChange("00", this.province);
+
+      this.settlementAccountForm.bankCode = this.bankAccountTypeList[0].value
+      this.settlementAccountForm.bankCodeLabel = this.bankAccountTypeList[0].label
+
+      const jsonData = "[\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"0.28\",\n" +
+        "          \"productCode\":\"USER_SCAN_WECHAT_OFFLINE\",\n" +
+        "          \"rateType\":\"SINGLE_PERCENT\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      },\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"0.28\",\n" +
+        "          \"productCode\":\"USER_SCAN_ALIPAY_OFFLINE\",\n" +
+        "          \"rateType\":\"SINGLE_PERCENT\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      },\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"0.28\",\n" +
+        "          \"productCode\":\"WECHAT_OFFIACCOUNT_WECHAT_OFFLINE\",\n" +
+        "          \"rateType\":\"SINGLE_PERCENT\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      },\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"0.28\",\n" +
+        "          \"productCode\":\"MINI_PROGRAM_WECHAT_OFFLINE\",\n" +
+        "          \"rateType\":\"SINGLE_PERCENT\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      },\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"0.28\",\n" +
+        "          \"productCode\":\"MINI_PROGRAM_ALIPAY_OFFLINE\",\n" +
+        "          \"rateType\":\"SINGLE_PERCENT\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      },\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"1\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"\",\n" +
+        "          \"productCode\":\"D1_MANUAL\",\n" +
+        "          \"rateType\":\"SINGLE_FIXED\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      },\n" +
+        "      {\n" +
+        "          \"fixedRate\":\"1\",\n" +
+        "          \"paymentMethod\":\"REAL_TIME\",\n" +
+        "          \"percentRate\":\"1\",\n" +
+        "          \"productCode\":\"ENTERPRISE_WITHDRAW_STANDARD_REALTIME\",\n" +
+        "          \"rateType\":\"SINGLE_FIXED\",\n" +
+        "          \"undertaker\":\"SETTLED_MERCHANT\"\n" +
+        "      }\n" +
+        "    ]";
+      this.tooltip = JSON.stringify(JSON.parse(jsonData), null, 4);
+    },
+
+    /**
+     *
+     * 省市区级联菜单改变
+     * @param parentId
+     * @param index
+     */
+    cascadeMenuChange(parentCode, dic) {
+      getLazyTree(parentCode).then((res) => {
+        dic.length = 0;
+        res.data.data.forEach(ele => {
+          ele.label = ele.title;
+          ele.value = ele.title;
+          dic.push(ele);
+        })
+      });
+    },
+
+    //银行信息 begin
+    getBankCode(keyword) {
+      let params = {
+        current: 1,
+        size: 300,
+        code: 'bank_type',
+        keyword
+      }
+      dictionaryPage(params).then(res => {
+        let list = res.data.data.records
+        if (this.$isEmpty(keyword)) {
+          list.shift()
+        }
+        list.forEach((item, index) => {
+          let obj = {
+            label: JSON.parse(item.dictValue).name,
+            value: item.dictKey
+          }
+          this.bankCodeList.push(obj)
+        })
+        if (this.$isNotEmpty(this.bankCodeList)) {
+          this.settlementAccountForm.bankCode = this.bankCodeList[0].value
+          this.settlementAccountForm.bankCodeLabel = this.bankCodeList[0].label
+        }
+      })
+    },
+    getBankAccountType() {
+      let params = {
+        current: 1,
+        size: 10,
+        code: 'bank_account_type',
+      }
+      dictionaryPage(params).then(res => {
+        let list = res.data.data.records
+        list.shift()
+        list.forEach((item, index) => {
+          let obj = {
+            label: item.dictValue,
+            value: item.dictKey
+          }
+          this.bankAccountTypeList.push(obj)
+        })
+        if (this.$isNotEmpty(this.bankAccountTypeList)) {
+          this.settlementAccountForm.bankAccountType = this.bankAccountTypeList[0].value
+          this.settlementAccountForm.bankAccountTypeLabel = this.bankAccountTypeList[0].label
+        }
+      })
+    },
+    bankAccountTypeChange(e) {
+      let list = this.bankAccountTypeList.filter(item => item.value == e)
+      this.settlementAccountForm.bankAccountTypeLabel = list[0].label
+      this.settlementAccountForm.bankAccountType = list[0].value
+      this.$forceUpdate()
+    },
+    bankCodeChange(e) {
+      let list = this.bankCodeList.filter(item => item.value == e)
+      this.settlementAccountForm.bankCodeLabel = list[0].label
+      this.settlementAccountForm.bankCode = list[0].value
+      this.$forceUpdate()
+    },
+    remoteMethod(query) {
+      console.log(query);
+      this.bankCodeList = []
+      this.getBankCode(query)
+    },
+
+    preview() {
+      this.active--
+    },
+    //下一步
+    next() {
+      switch (this.active) {
+        case 1:
+          this.validForm('merchantCorporationForm')
+          break;
+        case 2:
+          this.validForm('merchantContactForm')
+          break;
+        case 3:
+          this.validForm('merchantSubjectForm')
+          break;
+        case 4:
+          this.validForm('settlementAccountForm')
+          break;
+        case 5:
+          this.validForm('businessAddressForm')
+          break;
+        case 6:
+          this.validForm('productInfoForm')
+          break;
+        default:
+          break;
+      }
+    },
+    validForm(formName) {
+      console.log(formName);
+      this.$refs[formName].validate((valid) => {
+        if (!valid) {
+          return false;
+        }
+        if (this.active == this.totalStep) {
+          this.submit()
+        } else {
+          this.active++
+        }
+      });
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+    async submit() {
+      this.confirm = true;
+
+      const auditForm = {};
+      auditForm.merchantSubjectInfo = this.merchantSubjectForm;
+      auditForm.merchantCorporationInfo = this.merchantCorporationForm;
+      auditForm.merchantContactInfo = this.merchantContactForm;
+      auditForm.businessAddressInfo = this.businessAddressForm;
+      auditForm.settlementAccountInfo = this.settlementAccountForm;
+      auditForm.productInfo = JSON.parse(this.productInfoForm.productInfo);
+
+      invite(auditForm).then(res => {
+        this.$message({
+          type: "success",
+          message: "修改成功!"
+        });
+      })
+      this.$emit("finish", {});
+
+    },
+    /**
+     * 上传法人身份证正面照
+     * @param {Object} e
+     */
+    handleUploadLegalLicenceFront(e) {
+      let source = e.data[0]
+      if (source.errmsg != "ok") {
+        this.$message.error('非法证件照');
+        return
+      }
+      //商场法人信息
+      this.merchantCorporationForm = {
+        legalName: source.name,
+        legalLicenceType: "ID_CARD",
+        legalLicenceNo: source.id,
+        legalLicenceFrontUrl: e.data[1].link,
+        legalLicenceBackUrl: "",
+        gender: source.gender,
+        addr: source.addr,
+        nationality: source.nationality,
+        validDate: source.validDate,
+      }
+      this.initMerchantContactForm()
+    },
+    initMerchantContactForm() {
+      this.merchantContactForm.contactLicenceNo = this.merchantCorporationForm.legalLicenceNo
+      this.merchantContactForm.contactName = this.mallDetail.personName
+      this.merchantContactForm.contactMobile = this.mallDetail.personTel
+      this.merchantContactForm.servicePhone = this.mallDetail.personTel
+    },
+    /**
+     * 上传法人身份证反面
+     * @param {Object} e
+     */
+    handleUploadLegalLicenceBack(e) {
+      if (e.data[0].errmsg != "ok") {
+        this.$message.error('非法证件照');
+        return
+      }
+      this.merchantCorporationForm.validDate = e.data[0].validDate
+      this.merchantCorporationForm.legalLicenceBackUrl = e.data[1].link
+    },
+    /**
+     * 上传营业执照
+     * @param {Object} e
+     */
+    handleUploadBusinessLicense(e) {
+      let source = e.data[0]
+      if (source.errmsg != "ok") {
+        this.$message.error('非法证件照');
+        return
+      }
+      Object.keys(this.merchantSubjectForm).forEach(key => {
+        this.merchantSubjectForm[key] = source[key]
+      })
+      this.merchantSubjectForm.signType = "ENTERPRISE"
+      this.merchantSubjectForm.signName = this.merchantSubjectForm.enterpriseName
+      this.merchantSubjectForm.shortName = this.mallDetail.mallName
+      this.merchantSubjectForm.licenceNo = source.regNum
+      this.merchantSubjectForm.businessLicense = e.data[1].link
+      console.log(this.merchantSubjectForm);
+    },
+    /**
+     * 上传开户证件照
+     * @param {Object} e
+     */
+    handleUploadOpenAccountLicence(e) {
+      this.merchantSubjectForm.openAccountLicenceUrl = e.data.link
+    },
+
+    /**
+     * 上传手持营业执照的照片
+     * @param {Object} e
+     */
+    handleUploadHandLicenceUrl(e) {
+      this.merchantSubjectForm.handLicenceUrl = e.data.link
+    },
+    compressImg(file) {
+      return new Promise((resolve, reject) => {
+        compress(file, 400).then((res) => {
+          //console.log(res);
+          resolve(res.compressFile);
+        }, (err) => {
+        });
+      })
+    },
+  }
+};
+</script>
+
+<style>
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+
+.avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}
+
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 178px;
+  height: 178px;
+  line-height: 178px;
+  text-align: center;
+}
+
+.avatar {
+  width: 178px;
+  height: 178px;
+  display: block;
+}
+</style>