From abfd26bb700d93a92da6a04703b0187d4acaaeb5 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 22 十二月 2021 10:13:02 +0800
Subject: [PATCH] refactor: move ts folder to shared folder

---
 PAMapp/pages/login/index.vue |  123 ++++++++++++++++++++++------------------
 1 files changed, 67 insertions(+), 56 deletions(-)

diff --git a/PAMapp/pages/login/index.vue b/PAMapp/pages/login/index.vue
index a05f29c..8e60407 100644
--- a/PAMapp/pages/login/index.vue
+++ b/PAMapp/pages/login/index.vue
@@ -170,7 +170,6 @@
       <PopUpFrame
         :isOpen.sync="registerDialogVisible"
         :dialogWidth="'90%'"
-        :drawerSize="'95%'"
         class="pam-register-dialog"
         @closePopUp="isReadContract = false"
       >
@@ -198,8 +197,7 @@
               @scroll="detectContractReadStatus">
               <h3>����犖鞈��鈭��</h3>
               <p class="mt-10">
-              �摰�犖鞈��風瘜��������犖鞈����������
-              �銝�����
+              �摰�犖鞈��風瘜��������犖鞈���������銝�����
               <p>
 
               <p class="mt-10">
@@ -218,13 +216,11 @@
               </p>
 
               <p class="mt-10">
-              �������������平���暑�������銝剛瘞���������犖鞈�
-              ����
+              �������������平���暑�������銝剛瘞���������犖鞈���
               </p>
 
               <p class="mt-10">
-              鈭���������摰���甈∩誑憭�璆凋�撱��恐撠����誑��隞
-              ���������銋����嚗�������犖鞈���
+              鈭���������摰���甈∩誑憭�璆凋�撱��恐撠����誑��隞���������銋����嚗�������犖鞈���
               </p>
 
               <p class="mt-10">
@@ -282,12 +278,11 @@
 
       <PopUpFrame class="pam-popUpFrame"
         :isOpen.sync="emailOtpConfirmVisable"
-        :drawerSize="'35%'"
       >
         <div class="pam-popUp-title text--center">撌脣������</div>
         <div class="pam-popUp-title text--center">{{email}}</div>
         <div class="pam-popUp-title text--center">隢��摮隞嗡蒂摰������</div>
-        <div class="pam-popUp-confirm-bolck pam-paragraph">
+        <div class="pam-popUp-confirm-bolck mt-30">
           <div class="text--center">
             <el-button
                 type="primary"
@@ -300,18 +295,17 @@
       <PopUpFrame class="pam-popUpFrame"
         :isOpen.sync="registerSuccessConfirmVisable"
         @closePopUp="confirmApplySuccess"
-        :drawerSize="'35%'"
       >
           <div class="pam-popUp-title text--center">
             甇∟�����������垣閰g�“���誑�����{ connectDevice === 'MOBILE' ? '����Ⅳ' : 'Email'}}���蝜�
           </div>
           <div class="pam-popUp-txt text--center mb-10 mt-5"
           >�撠�歲��...{{autoRedirectCounter}}蝘�</div>
-          <div class="pam-popUp-confirm-bolck pam-paragraph">
+          <div class="pam-popUp-confirm-bolck mt-30">
             <div class="text--center">
               <el-button
                   type="primary"
-                  @click="confirmApplySuccess"
+                  @click="registerSuccessConfirmVisable = false"
               >������</el-button>
             </div>
           </div>
@@ -320,17 +314,16 @@
       <PopUpFrame class="pam-popUpFrame"
         :isOpen.sync="phoneSuccessConfirmVisable"
         @closePopUp="confirmApplySuccess"
-        :drawerSize="'30%'"
       >
           <div class="pam-popUp-title text--center"
           >甇∟�������</div>
           <div class="pam-popUp-txt text--center mb-30 mt-5 xsTxt"
           >�撠�歲��...{{autoRedirectCounter}}蝘�</div>
-          <div class="pam-popUp-confirm-bolck pam-paragraph">
+          <div class="pam-popUp-confirm-bolck mt-30">
             <div class="text--center">
               <el-button
                   type="primary"
-                  @click="confirmApplySuccess"
+                  @click="phoneSuccessConfirmVisable = false"
               >������</el-button>
             </div>
           </div>
@@ -342,10 +335,14 @@
 <script lang="ts">
 import { namespace } from 'nuxt-property-decorator';
 import { Vue, Component, Ref } from 'vue-property-decorator';
-import { LoginRequest, LoginVerify, loginVerify, OtpInfo, register, RegisterInfo, sendOtp } from '~/assets/ts/api/consultant';
-import ErrorMessageBox from '~/assets/ts/errorService';
-import { OtpErrorCode } from '~/assets/ts/models/enum/otpErrorCode';
-import { Role } from '~/assets/ts/models/enum/Role';
+import ErrorMessageBox from '~/shared/errorService';
+import { OtpErrorCode } from '~/shared/models/enum/otpErrorCode';
+import { Role } from '~/shared/models/enum/role';
+import { LoginRequest } from '~/shared/models/loginRequest.model';
+import { LoginVerify } from '~/shared/models/loginVerify.model';
+import { OtpInfo } from '~/shared/models/otpInfo.model';
+import { RegisterInfo } from '~/shared/models/registerInfo';
+import loginService from '~/shared/services/login.service';
 
 const roleStorage = namespace('localStorage');
 
@@ -360,14 +357,14 @@
   phoneNumber = '';
   otpCode = '';
   onPhoneVerifyStep: 'APPLY_OTP' | 'INPUT_OTP' | 'SUBMIT_OTP' = 'APPLY_OTP';
-  otpCounterSec = 900;
+  otpCounterSec = 300;
   otpResendCounter = 30;
   otpInterval: any;
   phoneOtpInfo!: OtpInfo;
 
   email = '';
   onEmailVerifyResendStatus: 'APPLY_OTP' | 'CAN_RESEND' = 'APPLY_OTP';
-  emailCounterSec = 900;
+  emailCounterSec = 300;
   emailResendCounter = 30;
   emailOtpCode = '';
   emailResendInterval: any;
@@ -389,6 +386,8 @@
   applyAccount_onAction = false;
 
   previousPath = '';
+
+  /////////////////////////////////////////////////////
   mounted() {
     const phoneOtpTime = localStorage.getItem('phoneOtpTime');
     const emailOtpTime = localStorage.getItem('emailOtpTime');
@@ -401,6 +400,22 @@
       this.emailDiffTime(parseEmailOtpTime);
     }
   }
+
+  beforeRouteEnter (to, from, next) {
+      next(vm => {
+        console.log(from.path, 'beforeRouteEnter');
+        vm.previousPath = from.path;
+      })
+  }
+
+  destroyed() {
+    this.removeOtpTime();
+    clearInterval(this.otpInterval);
+    clearInterval(this.emailResendInterval);
+    clearInterval(this.autoRedirectInterval);
+  }
+
+  //////////////////////////////////////////////////////////
 
   detectContractReadStatus(event: any): void {
     const scrollTop = Math.round(event.target.scrollTop);
@@ -452,7 +467,7 @@
       loginType: isMobile ? 'SMS' : 'EMAIL',
       account: isMobile ? this.phoneNumber : this.email,
     }
-    sendOtp(loginInfo).then(otpInfo => {
+    loginService.sendOtp(loginInfo).then(otpInfo => {
       if (otpInfo.success) {
         this.storageOtpTime(type, otpInfo);
         this.startOtpSetting(type);
@@ -491,8 +506,8 @@
     this.applyAccount_onAction = true;
     const registerInfo = this.setRegisterInfo();
 
-    register(registerInfo).then(res => {
-      this.storageIdToken(res.data.id_token);
+    loginService.register(registerInfo).then(res => {
+      this.storageIdToken(res.id_token);
       this.storageRole(Role.USER);
       this.storagePhoneOrEmail(registerInfo);
       this.autoRedirect();
@@ -505,33 +520,14 @@
   confirmApplySuccess(): void {
     this.phoneSuccessConfirmVisable = false;
     this.registerSuccessConfirmVisable = false;
-    this.$router.push('/');
+    this.redirect();
   }
-
-  private autoRedirect() {
-    this.autoRedirectInterval = setInterval(() => {
-      this.autoRedirectCounter -= 1;
-
-      if (this.autoRedirectCounter === 0) {
-        clearInterval(this.autoRedirectInterval);
-        const backToPrevious = ['questionnaire', 'myConsultantList'];
-        const find = backToPrevious.findIndex(item => this.previousPath.includes(item));
-        find > -1 ? this.$router.go(-1) : this.$router.push('/');
-      }
-    }, 1000)
-  }
-
-  beforeRouteEnter (to, from, next) {
-      next(vm => {
-        vm.previousPath = from.path;
-      })
-    }
 
   login() {
     const login: LoginVerify = this.setLoginInfo();
     this.removeOtpTime();
-    loginVerify(login).then(res => {
-      this.storageIdToken(res.data.id_token);
+    loginService.loginVerify(login).then(res => {
+      this.storageIdToken(res.id_token);
       this.storageRole(Role.USER);
       this.phoneSuccessConfirmVisable = true;
       this.autoRedirect();
@@ -540,6 +536,9 @@
       this.checkHttpErrorStatus(error);
     });
   }
+
+
+  //////////////////////////////////////////////////////////////////
   private checkHttpErrorStatus(error:any):void{
     switch (error.response.status) {
         case 401:
@@ -561,11 +560,22 @@
       }
   }
 
-  destroyed() {
-    this.removeOtpTime();
-    clearInterval(this.otpInterval);
-    clearInterval(this.emailResendInterval);
-    clearInterval(this.autoRedirectInterval);
+  private autoRedirect() {
+    this.autoRedirectInterval = setInterval(() => {
+      this.autoRedirectCounter -= 1;
+
+      if (this.autoRedirectCounter === 0) {
+        clearInterval(this.autoRedirectInterval);
+        this.redirect();
+      }
+    }, 1000)
+  }
+
+  private redirect() {
+    const backToPrevious = ['questionnaire', 'myConsultantList'];
+    const find = backToPrevious.findIndex(item => this.previousPath.includes(item));
+    console.log(this.previousPath, find, 'redirect');
+    find > -1 ? this.$router.go(-1) : this.$router.push('/');
   }
 
   private phoneDiffTime(parseOtpTime: any) {
@@ -608,11 +618,11 @@
     if (type === 'MOBILE') {
       clearInterval(this.otpInterval);
       this.otpResendCounter = 30;
-      this.otpCounterSec = 900;
+      this.otpCounterSec = 300;
     } else {
       clearInterval(this.emailResendInterval);
       this.emailResendCounter = 30;
-      this.emailCounterSec = 900;
+      this.emailCounterSec = 300;
     }
   }
 
@@ -741,10 +751,11 @@
   }
 
 .pam-register-dialog__contract {
-  $DEVICE_EXTRA_HEIGHT: 42px;
+  $DEVICE_EXTRA_HEIGHT: 80px;
   $ALIGN_PADDING: 60px;
-  $TOP_CONTENT_HEIGHT: 186px;
-  $BOTTOM_CONTENT_HEIGHT: 131px;
+  $TOP_CONTENT_HEIGHT: 211px;
+  $BOTTOM_CONTENT_HEIGHT: 141px;
+  // text-align:start;
   max-height: calc(100vh - $DEVICE_EXTRA_HEIGHT - $ALIGN_PADDING - $TOP_CONTENT_HEIGHT - $BOTTOM_CONTENT_HEIGHT);
   overflow-y: scroll;
   border-radius: 6px;

--
Gitblit v1.8.0