123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- <!-- @format -->
- <template>
- <view class="app-container">
- <view class="setps">
- <u-steps :current="current">
- <u-steps-item title="第一步"> </u-steps-item>
- <u-steps-item title="第二步"></u-steps-item>
- <u-steps-item title="注册完成"></u-steps-item>
- </u-steps>
- </view>
- <view class="component">
- <component
- :formdData.sync="formdData"
- v-if="componentsKey[current] == 'uploadLicense'"
- :is="'uploadLicense'"
- ></component>
- <component
- :formdData.sync="formdData"
- :authorizerRef.sync="authorizerRef"
- v-if="componentsKey[current] == 'authorizer'"
- :is="'authorizer'"
- ></component>
- <component
- :formdData.sync="formdData"
- v-if="componentsKey[current] == 'recognition'"
- :is="'recognition'"
- >
- </component>
- </view>
- <view class="btn">
- <u-button
- class="custom-style"
- @click="handlePre"
- :plain="true"
- shape="circle"
- type="primary"
- >{{ current == 0 ? "退出注册" : "上一步" }}</u-button
- >
- <u-button
- class="custom-style"
- @click="handleNext"
- shape="circle"
- type="primary"
- >{{
- formdData.isPass && current == 2 ? "完成注册" : "下一步"
- }}</u-button
- >
- </view>
- <view style="height: 100rpx"></view>
- </view>
- </template>
- <script>
- import { idcardOCR } from "@/api/companiesRegistered";
- import { submitMiUser } from "@/api/personRegistered";
- import uploadLicense from "@/components/personRegistered/uploadLicense";
- import authorizer from "@/components/personRegistered/authorizer";
- import recognition from "@/components/personRegistered/recognition";
- export default {
- components: {
- uploadLicense,
- authorizer,
- recognition,
- },
- data() {
- return {
- authorizerRef: null,
- formdData: {
- cardFrontImg: null, //身份证正面
- cardBackImg: null, //身份证背面
- isPass: false, //是否通过
- personCardOrcResult: {
- name: "", //用户名
- idNum: "", //身份证号
- phone: "", //联系人手机号
- pwd: "", //单位联系电话
- pwdReset: "",
- }, //申请人信息
- recognition: {},
- },
- componentsKey: {
- 0: "uploadLicense",
- 1: "authorizer",
- 2: "recognition",
- },
- current: 0,
- };
- },
- created() {
- // this.handlefinish();
- },
- methods: {
- //ocr识别
- async handleOcr() {
- if (!(this.formdData.cardBackImg && this.formdData.cardFrontImg)) {
- uni.showToast({
- title: "请先上传身份证正反面照片",
- //将值设置为 success 或者直接不用写icon这个参数
- icon: "none",
- //显示持续时间为 2秒
- duration: 2000,
- });
- return;
- }
- uni.showLoading({
- title: "智能识别中...",
- });
- try {
- let {
- data: { idcardDownOcrResult, idcardUpOcrResult },
- } = await idcardOCR([
- this.formdData.cardBackImg,
- this.formdData.cardFrontImg,
- ]);
- this.formdData.personCardOrcResult.name = idcardUpOcrResult.name;
- this.formdData.personCardOrcResult.idNum = idcardUpOcrResult.idNum;
- this.current++;
- setTimeout(() => {
- uni.hideLoading();
- }, 2000);
- } catch (error) {
- uni.showLoading({
- title: "识别错误",
- });
- setTimeout(() => {
- uni.hideLoading();
- }, 2000);
- } finally {
- }
- },
- //个人信息校验
- handlePerson() {
- this.authorizerRef.validate().then((res) => {
- this.current++;
- });
- },
- //下一步
- handleNext() {
- if (this.componentsKey[this.current] == "uploadLicense") {
- this.handleOcr();
- } else if (this.componentsKey[this.current] == "authorizer") {
- this.handlePerson();
- } else if (this.componentsKey[this.current] == "recognition") {
- if (this.formdData.isPass) {
- this.handlefinish();
- }
- }
- },
- //完成注册
- async handlefinish() {
- try {
- uni.showLoading({
- title: "提交中...",
- });
- await submitMiUser({
- idCardUp: this.formdData.cardFrontImg,
- idCardDown: this.formdData.cardBackImg,
- idCard: this.formdData.personCardOrcResult.idNum,
- name: this.formdData.personCardOrcResult.name,
- pwd: this.formdData.personCardOrcResult.pwd,
- phone: this.formdData.personCardOrcResult.phone,
- });
- uni.showToast({
- title: "提交成功",
- //显示持续时间为 2秒
- duration: 2000,
- });
- setTimeout(() => {
- uni.navigateTo({
- url: `/pages/personRegistered/bindCompanies?name=${this.formdData.personCardOrcResult.name}&idNum=${this.formdData.personCardOrcResult.idNum}&password=${this.formdData.personCardOrcResult.pwd}`,
- success: (res) => {},
- fail: () => {},
- complete: () => {},
- });
- }, 2000);
- } catch (error) {
- } finally {
- uni.hideLoading();
- }
- },
- //上一步
- handlePre() {
- if (this.current == 0) {
- uni.navigateBack({
- delta: 1,
- });
- return;
- }
- this.current--;
- },
- },
- };
- </script>
- <style>
- .component {
- width: 95%;
- margin: 40rpx auto;
- }
- ::v-deep .u-button {
- width: 280rpx !important;
- height: 70rpx !important;
- font-size: 30rpx !important;
- }
- .btn {
- z-index: 99;
- display: flex;
- justify-content: space-between;
- align-items: center;
- background: #fff;
- padding: 20rpx;
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- }
- .app-container {
- height: 100vh;
- background: rgb(248, 249, 250);
- }
- .setps {
- width: 95%;
- margin: 10rpx auto;
- background: #fff;
- padding: 20rpx;
- border-radius: 6px;
- }
- </style>
|