<!--个贷-网贷简版视图--> <template> <div> <title-bar title="客户简版信息" @clickLeft="onClick"> <van-icon slot="left" name="cross" size="24" /> </title-bar> <div class="content-box"> <div class="tips-text"><span>获取客户授权可以查看全景视图信息</span></div> <div class="userInfo-box"> <div class="user-name"> <svg class="icon" style="width: 36px; height: 36px" aria-hidden="true" > <use xlink:href="#icon-yonghu"></use> </svg> <div class="text-1">{{ userInfo.CUSTOMERNAME }}</div> <div :class="{ activeClass: arrowStatus }" class="badge-box"> <span v-if="userSelectedInfo.IS_LOAN_OVDUE == '1'" class="d-tag tag-green tag-position" >贷款逾期</span > <span v-if="userSelectedInfo.IS_CRDCD_OVDUE == '1'" class="d-tag tag-gold tag-position" >信用卡逾期</span > <span v-if="userSelectedInfo.IS_BLKLIST_CST == '1'" class="d-tag tag-blue tag-position" >名单客户</span > <span v-if="userSelectedInfo.IS_PAYROLL_SALARY == '1'" class="d-tag tag-green tag-position" >代发工资</span > <span v-if="userSelectedInfo.HAS_HOS_FUND_ACCT == '1'" class="d-tag tag-gold tag-position" >公积金存款帐户</span > <span v-if="userSelectedInfo.IS_HOS_LOAN_CST == '1'" class="d-tag tag-blue tag-position" >住房按揭帐户</span > <span v-if="userSelectedInfo.HAS_OFFI_CARD == '1'" class="d-tag tag-green tag-position" >公务卡</span > <span v-if="userSelectedInfo.CRDCD_FLAG == '1'" class="d-tag tag-gold tag-position" >信用卡</span > </div> </div> <div class="user-line1"> <div>{{ getAge }}岁</div> <div style="margin-left: 25px">{{ userInfo.SEX }}</div> <div style="margin-left: 25px">{{ userInfo.MARRIAGE }}</div> <div style="margin-left: 25px"> <span>身份证号: {{ getCertId }}</span> </div> </div> <div class="user-line1"> <div> <span>手机号码: {{ getPhoneNum }}</span> </div> </div> <div class="user-line2"> <div> <span>成为我行客户时间: {{ getTime }}</span> </div> </div> </div> <div class="tableCls"> <van-button class="submitstyle2" round type="info" @click="onClick"> 知道了 </van-button> <van-button class="submitstyle" round type="info" @click="getRight"> 获取用户授权 </van-button> </div> <van-dialog :show-cancel-button="false" :show-confirm-button="false" v-model="dialogShow" > <div class="dialog-box" style="position: relative"> <div class="dialog-title">发送验证码</div> <div class="tips-style">验证码将发送至客户手机:{{ getPhoneNum }}</div> <div class="message-box"> <van-field v-model="vertifyCode" center type="digit" clearable label="" placeholder="请输入验证码" > <template #button> <div class="send-font-style" v-if="showSendBut" @click="sendMessage" > 获取验证码 </div> <div class="send-font-style" v-if="!showSendBut" disabled> <CountDown :time="time" @finish="finish" format="ss秒后重新获取" /> </div> </template> </van-field> <div class="content-line" /> </div> <div class="dialog-but-box"> <van-button class="submitstyle3" size="small" round block native-type="button" @click="dialogShow = false" > 取消 </van-button> <van-button @click="onConfirm" color="#ff574c" native-type="button" class="submitstyle3" style="color: #fff" round size="small" type="default" >确认</van-button > </div> </div> </van-dialog> <base-popup v-model="flagPopup4" title="授权提示"> <div class="popup-content4"> <div @click="face_recognition" class="face-recognition"> <div></div> <div>客户人脸识别</div> </div> <div @click="sms_verification" class="sms-verification"> <div></div> <div>客户短信验证</div> </div> </div> </base-popup> </div> </div> </template> <script lang="ts"> import { Component, Vue } from "vue-property-decorator"; import BasePopup from "@/components/general/BasePopup.vue"; import nettyApi from "@/constants/api/ms-netty/netty.api.ts"; import systemApi from "@/constants/api/ms-system/system.api.ts"; import IF from "@/public/factory/InterFaceFactory"; import { NativeUI } from "@/public/ts/NativeUI"; import { Popup } from "vant"; import { CountDown } from "vant"; /** * @Description:客户验证 * @author wanghang * @date 2021-2-09 11:32:27 */ @Component({ name: "PersonSimplifyView", components: { BasePopup, CountDown, Popup }, }) export default class PersonSimplifyView extends Vue { IdentTp = ""; //证件类型 IdentTp_list = [ //证件类型 { value: "20", text: "身份证" }, { value: "26", text: "其它 " }, ]; IdentNo = ""; //证件号码 CstNm = this.$route.query.CUSTOMERNAME; //客户名称 vtype = ""; placeholder = "请输入"; ret_code = ""; shouFlag = ""; show = false; userInfo = this.$store.getters.getCusInfo; dialogShow = false; vertifyCode = ""; dialogTitle = "输入验证码"; dialogMessage = "请输入"; customerId = this.$route.query.customerId; time = 1000 * 60; //一分钟失效 showSendBut = true; arrowStatus = false; //箭头方向,下为false userSelectedInfo = {}; //个人客户信息查询 typeInfo = this.$route.params.typeInfo; phoneNum = ""; title = "客户信息"; flagPopup4 = false; activated() { this.dialogShow = false; this.flagPopup4 = false; } onClick() { this.$router.go(-1); } //验证验证码是否正确 onConfirm() { if (this.vertifyCode != "") { this.checkCode(); } else { NativeUI.toast("验证码不能空"); } } finish() { this.showSendBut = !this.showSendBut; //发送验证码按钮返回原状 } sendMessage() { this.sendPersonalCustInfo(); } sendPersonalCustInfo() { const param = { funCode: "S2021122316564680", mobileNo: this.phoneNum, params: { NAME: this.userInfo.CUSTOMERNAME, }, tc: nettyApi.TRADE_CODE.sendMessage, }; NativeUI.showWaiting("正在发送..."); return IF.transferDataInter(nettyApi.commonRq, param).then((res: any) => { NativeUI.closeWaiting(); if (res.rc == "1") { NativeUI.toast("发送成功!"); this.showSendBut = !this.showSendBut; } else { NativeUI.closeWaiting(); NativeUI.toast("验证码发送失败"); } }); } //验证发送的短信验证码 checkCode() { const param = { tc: "MCEP", checkNum: this.vertifyCode, mobileNo: this.phoneNum, mcepAuthInfo: { channel: "1", authSystem: "002", authType: "1", authorName: this.userInfo.CUSTOMERNAME, authCustno: this.userInfo.CUSTOMERID, passiveAuthorName: sessionStorage.getItem("userName"), passiveAuthorNo: sessionStorage.getItem("workcode"), authTime: "1", authEvent: "个人用户验证", }, }; NativeUI.showWaiting("正在查询..."); return IF.transferDataInter(systemApi.checkVerifactionCode, param).then( (res: any) => { NativeUI.closeWaiting(); if (res.data.rc == 1) { this.$store.commit("setEmpty"); this.$store.commit("setCusInfo", this.userInfo); this.$router.push({ path: "/PersonalDetails", // params: { // userInfo: this.userInfo, // }, }); } else { // NativeUI.toast(res.data.message); NativeUI.toast("验证码输入错误"); } } ); } //处理时间格式 formatDate(date: any) { let month = (date.getMonth() + 1).toString(); if (month.length == 1) { month = "0" + month; } let day = date.getDate().toString(); // if (day.length == 1) { // day = "0" + day; // } return date.getFullYear() + month + day; } getRight() { this.flagPopup4 = true; } face_recognition() { console.log("人脸识别"); } sms_verification() { this.flagPopup4 = false; this.dialogShow = true; } // 个人客户信息查询 selectPeronalInfo() { const param = { CUST_NO: this.userInfo.CUSTOMERID, //'1001785074', CUST_NAME: this.userInfo.CUSTOMERNAME, //'杨章' tc: nettyApi.TRADE_CODE.selectPeronInfo, }; NativeUI.showWaiting("正在查询..."); return IF.transferDataInter(nettyApi.commonRq, param).then((res: any) => { NativeUI.closeWaiting(); if (res.rc == "1") { this.userSelectedInfo = res; } else { NativeUI.closeWaiting(); NativeUI.toast(res.msg); } }); } // 查询手机号码 selectPersonInfo() { let param = { CUSTOMERID: this.userInfo.CUSTOMERID, tc: nettyApi.TRADE_CODE.selectPersonInfoDetail, }; NativeUI.showWaiting("正在查询..."); return IF.transferDataInter(nettyApi.commonRq, param).then((res: any) => { NativeUI.closeWaiting(); if (res.rc == "1") { this.phoneNum = res.MOBILETELEPHONE; NativeUI.closeWaiting(); } else { NativeUI.closeWaiting(); NativeUI.toast(res.msg); } }); } mounted() { this.selectPeronalInfo(); this.selectPersonInfo(); } get getAge() { var temp = this.userInfo.CERTID; temp = temp.slice(6, 14); var now = this.formatDate(new Date()); let res = now.slice(0, 4) - temp.slice(0, 4); if ( now.slice(4, 6) == temp.slice(4, 6) && now.slice(6, 8) < temp.slice(6, 8) ) { res -= 1; } return res; } get getCertId() { //返回加密的身份证号 var res = ""; for (let i = 0; i < this.userInfo.CERTID.length; i++) { if (i >= 4 && i <= 13) { res += "*"; } else { res += this.userInfo.CERTID[i]; } } return res; } //返回加星号的手机号 get getPhoneNum() { var res = ""; let num = this.phoneNum; for (let i = 0; i < num.length; i++) { if (i >= 3 && i <= 6) { res += "*"; } else { res += num[i]; } } return res; } //返回客户时间 get getTime() { var res = ""; var strs = this.userInfo.INPUTDATE.split("/"); res += strs[0] + "年"; res += strs[1] + "月"; res += strs[2] + "日"; return res; } } </script> <style scoped> .d-button { margin: 40px auto; } .tableCls { margin: 0 20%; display: flex; justify-content: space-around; } .submitstyle { margin-top: 50px; z-index: 1000; width: 40%; height: 46px; color: #fff; background-color: #ff574c; border-color: #ff574c; font-size: 16px; text-align: center; font-weight: 400; } .submitstyle2 { margin-top: 50px; z-index: 1000; width: 40%; height: 46px; color: #999; background-color: #fff; border-color: #999; font-size: 16px; text-align: center; font-weight: 400; } .userInfo-box { width: auto; height: auto; margin: 0 15px; border-radius: 10px; box-shadow: 0 0 15px rgba(170, 170, 170, 0.349); } .tips-text { font-size: 14px; color: #f59701; margin: 15px; } .user-name { padding-top: 20px; margin-left: 25px; line-height: 48px; display: flex; align-items: center; } .text-1 { margin-left: 5px; font-size: 18px; font-weight: bold; } .text-2 { margin-left: 5px; color: #169bd5; background-color: #ddf3f7; font-size: 12px; } .user-line1 { display: flex; line-height: 36px; margin-left: 65px; font-size: 14px; } .user-line2 { display: flex; line-height: 36px; padding-bottom: 20px; margin-left: 65px; font-size: 14px; } .dialog-but-box { width: 100%; margin-top: 10px; height: 40px; display: flex; justify-content: space-around; align-items: center; } ::v-deep .van-button--small { width: 83px; } .badge-box { /* width: 90%; */ line-height: 18px; margin-left: 55px; margin-right: 20px; height: auto; font-size: 12px; display: flex; align-items: center; flex-wrap: nowrap; } .tag-position { margin-left: 5px; margin-top: 5px; } .up-down-box { width: 10%; } .activeClass { height: auto; } .dialog-box { margin: 0 auto; background: #fff; display: flex; flex-direction: column; align-items: center; width: 300px; height: 200px; } .dialog-content { font-size: 16px; color: #333; margin: 30px 0; } .dialog-content2 { font-size: 16px; color: #333; margin-bottom: 20px; } .dialog-but { background-color: #ff574c; border-color: #ff574c; width: 205px; height: 36px; font-size: 14px; } .submitstyle3 { width: 40%; } .dialog-title { margin-top: 10%; font-size: 16px; font-weight: bold; color: #333; } .send-font-style { color: #ff574c; flex: 1; } .message-box { margin-top: 5px; margin-left: 20px; } ::v-deep .van-field__button { width: 120px; } .content-line { height: 1px; background-color: rgb(230, 225, 225); margin-left: 10px; width: 80%; } .tips-style { font-size: 14px; line-height: 24px; margin-left: 50px; margin-top: 10px; display: flex; width: 100%; justify-content: flex-start; } ::v-deep .van-count-down { color: #ff574c; } .content-box { margin: 30px 10%; margin-top: 80px; } .popup-content4 { width: 55%; margin: 0 auto; display: flex; justify-content: space-around; align-items: center; } .popup-content4 div { width: 45%; } .face-recognition > div:nth-child(1), .sms-verification > div:nth-child(1) { width: 100%; padding-top: 100%; padding-bottom: 20%; border: 1px solid rgba(215, 215, 215, 1); border-radius: 10px; } .face-recognition > div:nth-child(2), .sms-verification > div:nth-child(2) { width: 100%; text-align: center; color: #333333; font-family: "Arial Normal", "Arial"; margin-top: 5%; } </style>