zhouhao
2022-01-06 9abeee7af6047d4c75908b2d12d48b22f261e1cd
人脸识别
1 files added
8 files modified
184 ■■■■■ changed files
src/api/config.js 2 ●●● patch | view | raw | blame | history
src/api/index.js 24 ●●●● patch | view | raw | blame | history
src/assets/img/img_fail.png patch | view | raw | blame | history
src/assets/img/loading.png patch | view | raw | blame | history
src/assets/img/successw.png patch | view | raw | blame | history
src/views/main/addBankcard.vue 67 ●●●● patch | view | raw | blame | history
src/views/main/queryres.vue 87 ●●●●● patch | view | raw | blame | history
webpack.common.js 2 ●●● patch | view | raw | blame | history
webpack.dev.js 2 ●●● patch | view | raw | blame | history
src/api/config.js
@@ -82,7 +82,7 @@
}
const $http = axios.create({
    baseURL: '/lism',
    baseURL: '/flb/cab',
    timeout: 90000,
    headers: {
        'Content-Type': 'application/json; charset=UTF-8'
src/api/index.js
@@ -11,22 +11,22 @@
const api = {
    //绑卡初始化
    bankCardInit(data) {
        return $http.post('/bankCard/init', data);
    //刷新人脸识别失败后订单状态
    refreshFaceStatus(data) {
        return $http.post('/inside/getBizStatus', data);
    },
      //银行卡ocr
      bankCardOcr(data) {
        return $http.post('/bankCard/ocr', data);
      //授信前置页面调取接口
      getFrontData(data) {
        return $http.post('/inside/getFrontData', data);
    },
      //绑卡验证码
      bankCardAuthMsg(data) {
        return $http.post('/bankCard/authMsg', data);
      //获取人脸识别跳转地址
      getFaceUrl(data) {
        return $http.post('/inside/getFaceUrl', data);
    },
      //绑卡签约
      bankCardAgree(data) {
        return $http.post('/bankCard/agreePayAuth', data);
      //获取人脸识别状态
      getApplyStatus(data) {
        return $http.post('/inside/getApplyStatus', data);
    },
    //绑卡人脸识别
src/assets/img/img_fail.png

src/assets/img/loading.png
src/assets/img/successw.png

src/views/main/addBankcard.vue
@@ -1,7 +1,7 @@
<template>
  <div class='text-main'>
    <van-nav-bar  :title="title"  left-arrow  @click-left="onClickLeft" />
    <!-- <van-nav-bar  :title="title"  left-arrow  @click-left="onClickLeft" /> -->
    <van-form validate-first ref="credRef">
      <div  class="bes-title"><div> 分销个人</div></div>
      <!-- <van-field v-model.trim="dataForm.bankCardNo" label="银行卡号" placeholder="请输入银行卡号" :rules="bankId" name="bankId" clearable>
@@ -11,19 +11,19 @@
      </van-field> -->
      <!-- <van-field readonly clickable name="noName" :value="bankName" label="银行名称" placeholder="请选择银行名称" @click="showPicker = true"  :rules="noName"  right-icon="arrow"/> -->
      <div>
      <van-field v-model.trim="dataForm.bankCardMblNo"   label="姓名:"    readonly/>
      <van-field v-model.trim="dataForm.bankCardMblNo"  label="身份证号:"  readonly/>
      <van-field v-model.trim="dataForm.name"   label="姓名:"    readonly/>
      <van-field v-model.trim="dataForm.idNo"  label="身份证号:"  readonly/>
      </div>
      <!-- <van-field v-model.trim="dataForm.verCode" center clearable label="短信验证码" :rules="codeRules" placeholder="请输入短信验证码" >
      <van-field v-model.trim="dataForm.verCode" center clearable label="短信验证码" :rules="codeRules" placeholder="请输入短信验证码" >
        <template #button>
          <van-button size="small" color="#E43A28" @click.stop="getCode"  native-type="button" :disabled="isdisabled">{{codeText}}</van-button>
          <van-button size="small" color="#6cc3bb" @click.stop="getCode"  native-type="button" :disabled="isdisabled">{{codeText}}</van-button>
        </template>
      </van-field> -->
      </van-field>
      <div class="index-title">
        <van-checkbox v-model="checked" style="height:30px; margin-right:5px" checked-color="#6cc3bb"></van-checkbox>
        <div  v-if="orderType==1"> 阅读并同意<span  style="border-bottom:1px solid #00F; color:#00F"  @click="show=true">《信息授权函》</span>的签订</div>
        <div  v-if="orderType==2"> 阅读并同意<span  style="border-bottom:1px solid #00F; color:#00F"  @click="showx=true">《保理付款服务合同》</span>的签订</div>
        <div  v-if="bizType==0 && $route.query.types!=1"  style="color:#999999;font-size:12px"> 阅读并同意<span  style="border-bottom:1px solid #00F; color:#00F"  @click="show=true">《信息授权函》</span>的签订</div>
        <div  v-if="bizType==1 && $route.query.types!=1"  style="color:#999999;font-size:12px"> 阅读并同意<span  style="border-bottom:1px solid #00F; color:#00F"  @click="showx=true">《保理付款服务合同》</span>的签订</div>
      </div>
      <div style="margin: 16px;margin-top:30px">
        <van-button round block  color="#6cc3bb" @click="onFailed" native-type="submit">确认</van-button>
@@ -66,9 +66,8 @@
    //这里存放数据
    return {
      dataForm: {
        bankCode:'',
        bankCardNo:''
      },
      dataInfo:{},
      ishowFile:true,
      dataObj :{},
      showPicker: false,
@@ -80,9 +79,8 @@
      show: false,
      showx: false,
      bankName:'',
      orderId:this.$route.query.orderId,   //订单编号
      orderType:this.$route.query.orderType,  //订单类型
      title:this.$route.query.orderType==1?'授信信息确认':'签约信息确认',
      bizId:this.$route.query.bizId,   //订单编号
      bizType:this.$route.query.bizType,  //订单类型
      codeText: '获取验证码',
      noName: [
        {
@@ -157,29 +155,15 @@
  //方法集合
  methods: {
    bankCardNoInit() {
         console.log(this.orderId)
         console.log(this.orderType)
      // this.$api.bankCardInit({ orderId: this.orderId}).then(res => {
      //   if (res.body.orderStatus==0){  // 待绑卡
      //    this.dataForm.bankCardMblNo =res.body.mblNo
      //    this.dataObj =res.body
      //    this.agreementextw = repstrw(this.dataObj.userName,this.dataObj.idNo);
      //    this.agreementext = repstr(this.dataObj.userName,this.dataObj.idNo);
      //   }else if(res.body.orderStatus==1){ //待活体签约
      //                 this.$api.faceIdUrl({orderId: this.orderId}).then(res => {
      //               window.location.href =res.body.url
      //       })
      //   }else if(res.body.orderStatus==2){ //待审批状态
      //          this.$router.push({path:'/main/queryres',query:{orderId: this.orderId}})
      //   }else if(res.body.orderStatus==3){ //已拒绝
      //       this.$router.push({path:'/main/queryres',query:{orderNo: this.$route.query.orderId,orderStatus:3}})
      //   }else if(res.body.orderStatus==4){ //待签约
      //       this.$router.push({path:'/main/findPre',query:{orderId: this.$route.query.orderId}})
      //   }
      //   else if(res.body.orderStatus==5){//待支付首期款
      //   }
      // })
        let  objForm ={bizId:this.bizId,bizType:this.bizType}
          this.$api.refreshFaceStatus(objForm).then(res=>{
             this.dataInfo  =res.body
            if (this.dataInfo.status==0){
                this.$api.getFrontData(objForm).then(res=>{
                     this.dataForm  =res.body
                })
            }
          })
    },
    onClickLeft(){
     
@@ -192,6 +176,16 @@
    onFailed() {
      let mes  = `请阅读并同意${this.orderType==1?'信息授权函':'保理付款服务合同'}`
       if (!this.checked) return this.$notify(mes)
             let objUrl
            if (process.env.NODE_ENV === "development") {  //开发环境
             objUrl = `https://t.finlean.com/comn_business/#/main/queryres?bizId=${this.bizId}&bizType=${this.bizType}`
            }  else{  //生产
              objUrl = `${window.location.origin}/#/main/queryres?bizId=${this.bizId}&bizType=${this.bizType}`
            }
           const objForm ={bizId:this.bizId,bizType:this.bizType,callbackUrl:objUrl}
          this.$api.getFaceUrl(objForm).then(res=>{
                 window.location.href=res.body.faceUrl
          })
      // this.$refs.credRef.validate().then(() => {
      //   // 验证通过
      //   if (this.dataForm.verCode ==undefined || this.dataForm.verCode =='') return this.$notify('请输入验证码')
@@ -310,6 +304,7 @@
  },
  //生命周期 - 创建完成(可以访问当前this实例)
  created() {
    console.log(process.env.NODE_ENV )
    this.bankCardNoInit()
  },
  //生命周期 - 挂载完成(可以访问DOM元素)
src/views/main/queryres.vue
@@ -3,15 +3,14 @@
  <div class='text-main'>
    <van-nav-bar title="审核结果" />
    <div style="  text-align: center;">
      <img width="70%" height="180" src="../../assets/img/success.png"   v-if="ResultIs"/>
      <img width="70%" height="180" src="../../assets/img/img_fail.png"   v-else >
      <img  height="180" src="../../assets/img/loading.png"  v-if="!ResultIs" />
      <img  height="180" src="../../assets/img/img_fail.png" v-if="ResultIs" />
    </div>
    <div class="content">
      <p class="content-text"> {{datastr}}</p>
      <p class="content-text" v-if="isActive">{{examineStr}}</p>
      <!-- <p class="content-text" v-if="isActive">{{examineStr}}</p> -->
      <div class="btn-content">
      <van-button color="#E43A28" @click="returnApp"  round  plain hairline v-if="!ResultIs">返回</van-button>
      <van-button  color="#E43A28" @click="checkBtn" round v-if="!ResultIs && examineIs">重新校验</van-button>
      <van-button  color="#E43A28" @click="checkBtn" round v-if="ResultIs">重新校验</van-button>
      </div>
    </div>
  </div>
@@ -23,11 +22,11 @@
  data() {
    //这里存放数据
    return {
      datastr: '活体校验中....',
      datastr: '活体校验中,请稍等....',
      examineStr:'正在审核订单,请稍后...',
      isActive: false,
      orderNo:0,
      ResultIs:true,
      ResultIs:false,
      examineIs:true
    };
  },
@@ -39,31 +38,19 @@
  methods: {
    bankCardNoInit() {
      var slfe = this
      let  objForm ={bizId:this.bizId,bizType:this.bizType}
      var t2 = window.setInterval(function () {
        slfe.$api.bankCardInit({ orderId:   slfe.orderNo }).then(res => {
          if (res.body.orderStatus == 0) {  // 待绑卡
                    window.clearInterval(t2)  // 去除定时器
            slfe.$router.push({ path: '/', query: { orderId:  slfe.orderNo } })
          } else if (res.body.orderStatus == 1) { //待活体签约
                    window.clearInterval(t2)  // 去除定时器
            slfe.$api.faceIdUrl({ orderId:  slfe.orderNo }).then(res => {
              window.location.href = res.body.url
            })
          } else if (res.body.orderStatus == 2) { //待审批状态
            // slfe.$router.push({ path: '/main/queryres', query: { orderId:  slfe.orderNo } })
          } else if (res.body.orderStatus == 3) { //已拒绝
                        // this.examineStr="订单审核失败!"
                        // this.ResultIs =false
                        // this.examineIs=false
                        window.clearInterval(t2)  // 去除定时器
                      window.location.href ="https://www.shouxinshibai.com/"
          } else if (res.body.orderStatus == 4) { //待签约
                    window.clearInterval(t2)  // 去除定时器
            slfe.$router.push({ path: '/main/findPre', query: { orderId:  slfe.orderNo } })
          }
          else if (res.body.orderStatus == 5) {//待支付首期款
                  window.clearInterval(t2)  // 去除定时器
          }
        slfe.$api.refreshFaceStatus({objForm}).then(res => {
                //  window.clearInterval(t2)  // 去除定时器
            if(res.body.status==1){   //人脸识别未出结果
                 slfe.$api.getApplyStatus({...objForm,status:res.body.status}).then(res=>{
                     if(res.body.faceResult==0){
                          this.ResultIs =true
                     }
                 })
            }else{
            }
        })
      }, 5000)
    },
@@ -87,30 +74,22 @@
  },
  //生命周期 - 创建完成(可以访问当前this实例)
  created() {
    if(this.getQueryVariable('orderNo')){
          this.orderNo=this.getQueryVariable('orderNo')
    }else{
            this.orderNo=this.$route.query.orderNo
    }
    // if(this.getQueryVariable('orderNo')){
    //       this.orderNo=this.getQueryVariable('orderNo')
    // }else{
    //         this.orderNo=this.$route.query.orderNo
    // }
    let  orderStatus =this.$route.query.orderStatus
    if(orderStatus && orderStatus==3){
            this.datastr='正在审核订单,请稍后...'
          //  this.bankCardNoInit()
             window.location.href ="https://www.shouxinshibai.com/"
    }else{
    //         this.$api.faceIdResult({orderId:  this.orderNo}).then(res=>{
    //            this.datastr="活体校验成功"
    //            this.isActive =true
    //            this.ResultIs =true
    //           this.bankCardNoInit()
    // }).catch(err=>{
    //   this.ResultIs =false
    //   this.datastr =err.errMsg
    // })
    this.datastr='正在审核订单,请稍后...'
    this.bankCardNoInit()
    }
    // let  orderStatus =this.$route.query.orderStatus
    // if(orderStatus && orderStatus==3){
    //         this.datastr='正在审核订单,请稍后...'
    //       //  this.bankCardNoInit()
    //          window.location.href ="https://www.shouxinshibai.com/"
    // }else{
    // this.datastr='正在审核订单,请稍后...'
    // // this.bankCardNoInit()
    // }
  },
  //生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {
webpack.common.js
@@ -79,7 +79,7 @@
                    options: {
                        limit: 10000,
                        outputPath: 'img/',
                        publicPath:env ?`${srcUrl}img`:`/img`
                        publicPath:env ?`${srcUrl}/img`:`/img`
                    }
                }]
            },
webpack.dev.js
@@ -26,7 +26,7 @@
        port: 8011,
        // 代理配置
        proxy:{
            "/lism": {
            "/flb/cab": {
                // target: 'http://192.168.1.46:8096',
                target: 'https://t.finlean.com',
                // target: 'https://pre.finlean.com',