zhaoxiaoqiang
2021-08-30 151dcafcc9b5a91b544b65bd6a0e822cbd60e19b
src/views/user/register-home.vue
@@ -16,18 +16,15 @@
        </div>
      </v-navbar>
      <div class="register-home-box">
        <!-- 步骤一 -->
        <div class="step1" v-if="step == 0">
          <van-field v-model.trim="form.merName" clearable maxlength='80' placeholder="请输入商户名称" />
          <van-field v-model.trim="form.licenseNo" clearable maxlength='20' placeholder="请输入营业执照号" />
          <van-field v-model.trim="form.legalName" clearable maxlength='12' placeholder="请输入法人姓名" />
          <van-field v-model.trim="form.legalIdNo" clearable maxlength='18' placeholder="请输入法人身份证号" />
          <van-field v-model.trim="form.merName" clearable maxlength="80" placeholder="请输入商户名称" />
          <van-field v-model.trim="form.licenseNo" clearable maxlength="20" placeholder="请输入营业执照号" />
          <van-field v-model.trim="form.legalName" clearable maxlength="12" placeholder="请输入法人姓名" />
          <van-field v-model.trim="form.legalIdNo" clearable maxlength="18" placeholder="请输入法人身份证号" />
          <van-field v-model.trim="form.addrText" clearable :readonly="true" right-icon="arrow" @click="isShowArea = !isShowArea" placeholder="请选择省市区" />
          <van-field v-model.trim="form.dtlAddr" clearable maxlength='64' placeholder="请输入您的详细地址" />
          <van-field v-model.trim="form.dtlAddr" clearable maxlength="64" placeholder="请输入您的详细地址" />
          <!-- 扫码进入页面的没有邀请码 -->
          <van-button :color="$store.state.backColor" class="btn" @click="nextStep">下一步</van-button>
          <!-- <van-cell v-if="ShowqrCode" :readonly="true" :value="form.licenseNo"
@@ -35,34 +32,22 @@
          </van-cell> -->
        </div>
        <!-- 步骤二 -->
        <div class="step2" v-if="step == 1">
          <van-field v-model.trim="form.priName" clearable maxlength='12' placeholder="请输入负责人姓名" />
          <van-field v-model.trim="form.priMblNo" type="tel" clearable maxlength='11' placeholder="请输入负责人手机号" />
          <van-field v-model.trim="form.priName" clearable maxlength="12" placeholder="请输入负责人姓名" />
          <van-field v-model.trim="form.priMblNo" type="tel" clearable maxlength="11" placeholder="请输入负责人手机号" />
          <div class="tips" :style="{color:$store.state.backColor}">*该手机号将作为登录用户名,密码将通过短信下发至手机</div>
          <van-field style="margin-top: 0.3rem" v-model.trim="form.priEmail" clearable placeholder="请输入联系人邮箱" />
          <van-button :color="$store.state.backColor" class="btn" @click="nextStep">下一步</van-button>
        </div>
        <!-- 步骤三 -->
        <div class="step3" v-if="step == 2">
          <div>
            <p class="content-box">
              <b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【审慎阅读】</b>您的申请注册流程中点击同意前,应当认真阅读以下协议。请您务必审慎阅读、充分理解协议中相关条款内容。阅读协议的过程中,<u>如果您不同意相关协议或其中任何条款规定,您应立即停止注册程序。</u>
            </p>
            <p class="content-box"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【审慎阅读】</b>您的申请注册流程中点击同意前,应当认真阅读以下协议。请您务必审慎阅读、充分理解协议中相关条款内容。阅读协议的过程中,<u>如果您不同意相关协议或其中任何条款规定,您应立即停止注册程序。</u></p>
            <div class="agreement-title" :style="{color:$store.state.backColor}"  @click="showAgreementFunc(1)">《平台使用协议》</div>
            <!--<div class="agreement-title" @click="showAgreementFunc(2)">《智分期商户协议》</div>-->
          </div>
@@ -80,9 +65,8 @@
        </div>
      </van-popup>
      <van-popup v-model="isShowArea" position="bottom" :close-on-click-overlay="false">
        <van-area ref='Area' :area-list='areaList' @cancel="closeAreaModal" @confirm="setAreaValue"></van-area>
        <van-area ref="Area" :area-list="areaList" @cancel="closeAreaModal" @confirm="setAreaValue"></van-area>
      </van-popup>
    </div>
    <div style="font-size: 12px; color: #666;text-align: center;width: 100%;margin-top: 20px;">
@@ -92,63 +76,56 @@
</template>
<script>
  import createUserProtocol from '@/utils/createUserProtocol';
  import {
    SET_APP_LOADING
  } from '@/store/mutations-types';
  import {
    mapState,
    mapMutations
  } from 'vuex';
import createUserProtocol from "@/utils/createUserProtocol";
import { SET_APP_LOADING } from "@/store/mutations-types";
import { mapState, mapMutations } from "vuex";
  export default {
    name: "register-home",
    data() {
      return {
        form: {
          //第一步
          inviteCode: '', //邀请码
          merName: '', //商户名称
          licenseNo: '', //营业执照号
          legalName: '', //法人姓名
          legalIdNo: '', //法人身份证号
          orgId: '',
          orgType: '',
        inviteCode: "", //邀请码
        merName: "", //商户名称
        licenseNo: "", //营业执照号
        legalName: "", //法人姓名
        legalIdNo: "", //法人身份证号
        orgId: "",
        orgType: "",
          // orgId: '100001',
          // orgType: '1',
          dtlAddr: '',
        dtlAddr: "",
          addr: {
            province: {
              code: '',
              name: ''
            code: "",
            name: "",
            },
            city: {
              code: '',
              name: ''
            code: "",
            name: "",
            },
            area: {
              code: '',
              name: ''
            code: "",
            name: "",
            },
            dtlAddr: '' //详细地址
          dtlAddr: "", //详细地址
          },
          addrText: '',
        addrText: "",
          //第二步
          priName: '', //负责人姓名
          priMblNo: '', //请输入负责人手机号
          priEmail: '', //请输入联系人邮箱
        priName: "", //负责人姓名
        priMblNo: "", //请输入负责人手机号
        priEmail: "", //请输入联系人邮箱
          protocol: ''
        protocol: "",
        },
        isShowArea: false,
        getQr: false,
        saveText: '下一步',
      saveText: "下一步",
        step: 0,
        ShowAgreen: false,
        Agreend: '',
      Agreend: "",
        ShowqrCode:true,
@@ -157,72 +134,70 @@
          {
            key: "legalName",
            message: "请输入法人代表姓名",
            type: "isEmpty"
          type: "isEmpty",
          },
          {
            key: "legalIdNo",
            message: "请输入法人代表身份证号",
            type: "isEmpty"
          type: "isEmpty",
          },
          {
            key: "legalIdNo",
            message: "请输入正确的身份证号",
            type: "isIdCard"
          type: "isIdCard",
          },
          {
            key: "addrText",
            message: "请选择省市区",
            type: "isEmpty"
          type: "isEmpty",
          },
          {
            key: "dtlAddr",
            message: "请输入详细地址",
            rule: /\S/
          rule: /\S/,
          },
        ],
        //第二步验证
        ruleTwo: [{
      ruleTwo: [
        {
            key: "priName",
            message: "请输入负责人姓名",
            type: "isEmpty"
          type: "isEmpty",
          },
          {
            key: "priMblNo",
            message: "请输入负责人手机号",
            type: "isEmpty"
          type: "isEmpty",
          },
          {
            key: "priMblNo",
            message: "请输入正确的负责人手机号",
            type: "isTel"
          type: "isTel",
          },
          {
            key: "priEmail",
            message: "请输入联系人邮箱",
            type: "isEmpty"
          type: "isEmpty",
          },
          {
            key: "priEmail",
            message: "请输入正确的联系人邮箱",
            type: "isEmail"
          type: "isEmail",
          },
        ]
      }
      ],
    };
    },
    computed: {
      ...mapState(['areaList']),
    ...mapState(["areaList"]),
      orgId() {
        return this.$route.query.orgId || '';
      }
      return this.$route.query.orgId || "";
    },
    },
    created() {
      if(this.$route.query.orgId){
        this.form.orgId = this.$route.query.orgId || '';
        this.form.orgType = this.$route.query.orgType || '';
      this.form.orgId = this.$route.query.orgId || "";
      this.form.orgType = this.$route.query.orgType || "";
        this.ShowqrCode = false;
      }
      this.form.inviteCode = 158875;
@@ -232,7 +207,7 @@
      ...mapMutations([SET_APP_LOADING]),
      back() {
        if (this.step === 0) {
          this.$router.go(-1)
        this.$router.go(-1);
        }
        this.step--;
      },
@@ -242,48 +217,47 @@
        this.ShowAgreen = true;
        let protocol = createUserProtocol(this.form); //协议二
        this.form.protocol = protocol;
        which === 1 ? this.Agreend = agreement5 : this.Agreend = protocol;
      which === 1 ? (this.Agreend = agreement5) : (this.Agreend = protocol);
      },
      // 验证form参数
      validatorForm(rule = []) {
        return this.$validator(this.form, rule).check(item => {
          this.$notify(item.message)
        })
      return this.$validator(this.form, rule).check((item) => {
        this.$notify(item.message);
      });
      },
      //关闭地区弹窗
      closeAreaModal() {
        this.isShowArea = false;
        this.$refs.Area.reset()
      this.$refs.Area.reset();
      },
      //保存 地区选择
      setAreaValue(arr) {
        this.form.addrText = arr[0].name + '-' + arr[1].name + '-' + arr[2].name;
      this.form.addrText = arr[0].name + "-" + arr[1].name + "-" + arr[2].name;
        this.form.addr = {
          province: {
            code: arr[0].code,
            name: arr[0].name
          name: arr[0].name,
          },
          city: {
            code: arr[1].code,
            name: arr[1].name
          name: arr[1].name,
          },
          area: {
            code: arr[2].code,
            name: arr[2].name
          name: arr[2].name,
          },
        }
      };
        this.isShowArea = false;
        this.$refs.Area.reset()
      this.$refs.Area.reset();
      },
      nextStep() {
        /**
         *  第一步
         * */
        if (this.step === 0) {
          if (!this.validatorForm(this.ruleOne)) return
        if (!this.validatorForm(this.ruleOne)) return;
          // if(!this.$route.query.orgId){
          //   if (!this.getQr) {
          //     this.$notify('请识别二维码');
@@ -295,59 +269,55 @@
         *  第二步
         * */
        if (this.step === 1) {
          if (!this.validatorForm(this.ruleTwo)) return
          this.saveText = '同意协议';
        if (!this.validatorForm(this.ruleTwo)) return;
        this.saveText = "同意协议";
        }
        /**
         *  第三步
         * */
        if (this.step === 2) {
          this.form.addr.dtlAddr = this.form.dtlAddr
        this.form.addr.dtlAddr = this.form.dtlAddr;
          this.form.protocol = createUserProtocol(this.form); //协议二
          let sysPlat = localStorage.sib_mer_sysPlat
          if (sysPlat === 'undefined' || sysPlat === '1') {
            sysPlat = 1
        let sysPlat = localStorage.sib_mer_sysPlat;
        if (sysPlat === "undefined" || sysPlat === "1") {
          sysPlat = 1;
          }
          if (sysPlat === '2') {
            sysPlat = 2
        if (sysPlat === "2") {
          sysPlat = 2;
          }
          this.form.sysPlat = sysPlat
          this.$api.merRegist(this.form).then(res => {
        this.form.sysPlat = sysPlat;
        this.$api
          .merRegist(this.form)
          .then((res) => {
            this.$toast.success(`注册成功,请耐心等待审核!`);
            if(sessionStorage.isddxt == 1){
              this.$router.push('/?platNo=ddxt');
              this.$router.push("/?platNo=ddxt");
            }else{
              this.$router.push('/');
              this.$router.push("/");
            }
          }).catch(err=>{
          })
          .catch((err) => {
            this.step -= 1;
          });
        }
        this.step++;
      },
      //代理所属渠道
      getRegIDAndType() {
        let _this = this;
        window.sessionStorage.removeItem('scene_regInfos');
      window.sessionStorage.removeItem("scene_regInfos");
        if (window.android && window.android.fetchQrCode) {
          _this.SET_APP_LOADING(true);
          window.android.fetchQrCode();
          let count = 0;
          let setInterId = setInterval(function () {
            let _tempStr = window.sessionStorage.getItem(
              'scene_regInfos'
            );
          let _tempStr = window.sessionStorage.getItem("scene_regInfos");
            count++;
            if (_tempStr && _tempStr.length > 0) {
              // QRGoBack 这个值不能修改这里的只是和android 值同步的
              if (_tempStr == 'QRGoBack') {
            if (_tempStr == "QRGoBack") {
                // _this.getQr = false;
                _this.SET_APP_LOADING(false);
              } else {
@@ -366,10 +336,10 @@
        } else {
          wx.scanQRCode({
            needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
            scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
          scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
            success: function (res) {
              var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
              if (result && (result + '').indexOf('orgId') > -1) {
            if (result && (result + "").indexOf("orgId") > -1) {
                result = JSON.parse(result);
                _this.form.orgId = result.orgId;
                _this.form.orgType = result.orgType;
@@ -378,18 +348,19 @@
                }
                _this.getQr = true;
              } else {
                _this.$notify('无效的二维码');
              _this.$notify("无效的二维码");
              }
            }
          },
          });
        }
      },
      initWXToken(parUrl) {
        this.$api.getTokenInfo({
          url: parUrl
        }).then(
      this.$api
        .getTokenInfo({
          url: parUrl,
        })
        .then(
          function (res) {
            if (res.errorCode === 0) {
              // 第二步骤   只需要首页地址分享 ,需要在每次变化时调用
@@ -399,11 +370,7 @@
                timestamp: res.body.timestamp, // 必填,生成签名的时间戳
                nonceStr: res.body.nonceStr, // 必填,生成签名的随机串
                signature: res.body.signature, // 必填,签名,见附录1
                jsApiList: [
                  'checkJsApi',
                  'scanQRCode',
                  'getLocation'
                ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
                jsApiList: ["checkJsApi", "scanQRCode", "getLocation"], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
              });
            }
          },
@@ -412,10 +379,9 @@
            }
          }
        );
      }
    }
  }
    },
  },
};
</script>
<style scoped lang="less">
@@ -423,7 +389,6 @@
    margin-top: 25px;
    color: @c-default;
  }
  .agreenBox {
    width: 80vw;
@@ -439,7 +404,6 @@
    box-sizing: border-box;
  }
  .close-agreen {
    .lh(30px);
    .flex(center, center);
@@ -448,7 +412,6 @@
      font-size: @font-16;
    }
  }
  .register-home {
    padding-top: 44px;
@@ -460,8 +423,6 @@
    .register-home-box {
      padding: 10px 20px 50px;
    }
    .tips {