Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -3,7 +3,7 @@ | |||||||
|     <div nz-row> |     <div nz-row> | ||||||
|       <div nz-col nzSpan="24" style="display: flex;align-items: center;"> |       <div nz-col nzSpan="24" style="display: flex;align-items: center;"> | ||||||
|         <img width="32" height="32" src="./assets/images/user/logo.svg" [routerLink]="['/']" /> |         <img width="32" height="32" src="./assets/images/user/logo.svg" [routerLink]="['/']" /> | ||||||
|         <label class="title ml-sm">运营管理平台</label> |         <label class="title ml-sm">运多星网络货运管理平台</label> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|   </nz-header> |   </nz-header> | ||||||
|  | |||||||
| @ -11,7 +11,7 @@ | |||||||
|                 <ng-template sf-template="username" let-i let-ui="ui" let-schema="schema"> |                 <ng-template sf-template="username" let-i let-ui="ui" let-schema="schema"> | ||||||
|                   <nz-input-group [nzSuffix]="inputClearTpl"> |                   <nz-input-group [nzSuffix]="inputClearTpl"> | ||||||
|                     <input type="text" nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" |                     <input type="text" nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" | ||||||
|                       placeholder="请输入手机号" /> |                       (keyup.enter)="submit()" placeholder="请输入手机号" /> | ||||||
|                   </nz-input-group> |                   </nz-input-group> | ||||||
|                   <ng-template #inputClearTpl> |                   <ng-template #inputClearTpl> | ||||||
|                     <i nz-icon class="ant-input-clear-icon" nzTheme="fill" nzType="close-circle" *ngIf="i.value" |                     <i nz-icon class="ant-input-clear-icon" nzTheme="fill" nzType="close-circle" *ngIf="i.value" | ||||||
| @ -21,7 +21,7 @@ | |||||||
|                 <ng-template sf-template="password" let-i let-ui="ui" let-schema="schema"> |                 <ng-template sf-template="password" let-i let-ui="ui" let-schema="schema"> | ||||||
|                   <nz-input-group [nzSuffix]="inputClearTpl"> |                   <nz-input-group [nzSuffix]="inputClearTpl"> | ||||||
|                     <input [type]="isPasswordType?'password':'text'" nz-input [ngModel]="i.value" |                     <input [type]="isPasswordType?'password':'text'" nz-input [ngModel]="i.value" | ||||||
|                       (ngModelChange)="i.setValue($event)" placeholder="请输入密码" /> |                       (ngModelChange)="i.setValue($event)" placeholder="请输入密码" (keyup.enter)="submit()" /> | ||||||
|                   </nz-input-group> |                   </nz-input-group> | ||||||
|                   <ng-template #inputClearTpl> |                   <ng-template #inputClearTpl> | ||||||
|                     <i *ngIf="i.value && isPasswordType" nz-icon class="ant-input-clear-icon" style="font-size: 18px;" |                     <i *ngIf="i.value && isPasswordType" nz-icon class="ant-input-clear-icon" style="font-size: 18px;" | ||||||
| @ -37,7 +37,7 @@ | |||||||
|                 <ng-template sf-template="phone" let-i let-ui="ui" let-schema="schema"> |                 <ng-template sf-template="phone" let-i let-ui="ui" let-schema="schema"> | ||||||
|                   <nz-input-group [nzSuffix]="inputClearTpl"> |                   <nz-input-group [nzSuffix]="inputClearTpl"> | ||||||
|                     <input type="text" nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" |                     <input type="text" nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" | ||||||
|                       placeholder="请输入手机号" /> |                       (keyup.enter)="submit()" placeholder="请输入手机号" /> | ||||||
|                   </nz-input-group> |                   </nz-input-group> | ||||||
|                   <ng-template #inputClearTpl> |                   <ng-template #inputClearTpl> | ||||||
|                     <i nz-icon class="ant-input-clear-icon" nzTheme="fill" nzType="close-circle" *ngIf="i.value" |                     <i nz-icon class="ant-input-clear-icon" nzTheme="fill" nzType="close-circle" *ngIf="i.value" | ||||||
| @ -48,7 +48,7 @@ | |||||||
|                   <nz-input-group nzSearch [nzSuffix]="suffixTemplateInfo"> |                   <nz-input-group nzSearch [nzSuffix]="suffixTemplateInfo"> | ||||||
|                     <input nz-input type="text" placeholder="验证码" [attr.id]="me.id" [disabled]="me.disabled" |                     <input nz-input type="text" placeholder="验证码" [attr.id]="me.id" [disabled]="me.disabled" | ||||||
|                       [attr.disabled]="me.disabled" [nzSize]="ui.size" [ngModel]="me.formProperty.value" |                       [attr.disabled]="me.disabled" [nzSize]="ui.size" [ngModel]="me.formProperty.value" | ||||||
|                       (ngModelChange)="me.setValue($event)" /> |                       (ngModelChange)="me.setValue($event)" (keyup.enter)="submit()" /> | ||||||
|                   </nz-input-group> |                   </nz-input-group> | ||||||
|                 </ng-template> |                 </ng-template> | ||||||
|               </sf> |               </sf> | ||||||
|  | |||||||
| @ -1,109 +1,115 @@ | |||||||
| <div class="main"> | <div class="main"> | ||||||
|   <page-grid> |   <page-grid> | ||||||
|     <nz-steps [nzCurrent]="step" class="step-title"> |     <nz-steps [nzCurrent]="step" nzLabelPlacement="vertical" class="step-title"> | ||||||
|       <nz-step nzTitle="安全验证"></nz-step> |       <nz-step nzTitle="安全验证"></nz-step> | ||||||
|       <nz-step nzTitle="重设密码"></nz-step> |       <nz-step nzTitle="重设密码"></nz-step> | ||||||
|       <nz-step nzTitle="完成"></nz-step> |       <nz-step nzTitle="完成"></nz-step> | ||||||
|     </nz-steps> |     </nz-steps> | ||||||
|  |  | ||||||
|     <div class="steps-content"> |     <div class="steps-content"> | ||||||
|       <ng-container *ngIf="step === 0"> |       <ng-container *ngIf="step === 0"> | ||||||
|  |         <div nz-row> | ||||||
|  |           <div nz-col nzOffset="7" nzMd="9"> | ||||||
|             <form nz-form [formGroup]="formGroup1" class="myForm"> |             <form nz-form [formGroup]="formGroup1" class="myForm"> | ||||||
|               <nz-form-item> |               <nz-form-item> | ||||||
|                 <nz-form-label nzSpan="6" nzRequired nzFor="phone">手机号</nz-form-label> |                 <nz-form-label nzSpan="6" nzRequired nzFor="phone">手机号</nz-form-label> | ||||||
|                 <nz-form-control nzSpan="18" nzErrorTip="请输入正确的手机号"> |                 <nz-form-control nzSpan="18" nzErrorTip="请输入正确的手机号"> | ||||||
|               <nz-input-group nzPrefixIcon="user"> |                   <input type="text" nz-input formControlName="phone" maxlength="11" nzSize="large" | ||||||
|                 <input type="text" nz-input formControlName="phone" maxlength="11" placeholder="请输入手机号" /> |                     placeholder="请输入手机号" /> | ||||||
|               </nz-input-group> |  | ||||||
|                 </nz-form-control> |                 </nz-form-control> | ||||||
|               </nz-form-item> |               </nz-form-item> | ||||||
|               <nz-form-item> |               <nz-form-item> | ||||||
|                 <nz-form-label nzSpan="6" nzRequired nzFor="smsVerifyCode">验证码</nz-form-label> |                 <nz-form-label nzSpan="6" nzRequired nzFor="smsVerifyCode">验证码</nz-form-label> | ||||||
|                 <nz-form-control nzSpan="18"> |                 <nz-form-control nzSpan="18"> | ||||||
|               <div class="valid-code"> |                   <nz-input-group [nzSuffix]="suffixTemplateInfo" nzSize="large"> | ||||||
|                 <nz-input-group nzPrefixIcon="lock"> |                     <input type="text" nz-input formControlName="smsVerifyCode" maxlength="6" placeholder="请输入验证码" /> | ||||||
|                   <input [disabled]="true" type="text" nz-input formControlName="smsVerifyCode" maxlength="6" placeholder="请输入验证码" /> |  | ||||||
|                   </nz-input-group> |                   </nz-input-group> | ||||||
|                 <button |  | ||||||
|                   class="btn-code" |  | ||||||
|                   nz-button |  | ||||||
|                   nzType="link" |  | ||||||
|                   [disabled]="count > 0" |  | ||||||
|                   [nzLoading]="service.http.loading" |  | ||||||
|                   (click)="getCaptcha()" |  | ||||||
|                 > |  | ||||||
|                   {{ count > 0 ? '请等待' + count + 's' : ('获取验证码') }} |  | ||||||
|                 </button> |  | ||||||
|               </div> |  | ||||||
|                 </nz-form-control> |                 </nz-form-control> | ||||||
|               </nz-form-item> |               </nz-form-item> | ||||||
|               <nz-form-item> |               <nz-form-item> | ||||||
|             <nz-form-control nzSpan="18" nzOffset="6"> |                 <nz-form-control nzSpan="6" nzOffset="6"> | ||||||
|               <button |                   <button class="btn-submit" [disabled]="!formGroup1.valid" [nzLoading]="service.http.loading" nz-button | ||||||
|                 class="btn-submit" |                     nzBlock="true" nzType="primary" (click)="formSubmit()"> | ||||||
|                 [disabled]="!formGroup1.valid" |  | ||||||
|                 [nzLoading]="service.http.loading" |  | ||||||
|                 nz-button |  | ||||||
|                 nzBlock="true" |  | ||||||
|                 nzType="primary" |  | ||||||
|                 (click)="formSubmit()" |  | ||||||
|               > |  | ||||||
|                     下一步 |                     下一步 | ||||||
|                   </button> |                   </button> | ||||||
|                 </nz-form-control> |                 </nz-form-control> | ||||||
|               </nz-form-item> |               </nz-form-item> | ||||||
|             </form> |             </form> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|       </ng-container> |       </ng-container> | ||||||
|       <!-- <app-captcha #dun [phone]="this.formGroup1.value.phone" (done)="captchaDone($event)"></app-captcha> --> |  | ||||||
|  |  | ||||||
|       <ng-container *ngIf="step === 1"> |       <ng-container *ngIf="step === 1"> | ||||||
|  |         <div nz-row> | ||||||
|  |           <div nz-col nzOffset="7" nzMd="17"> | ||||||
|             <form nz-form [formGroup]="formGroup2" class="myForm"> |             <form nz-form [formGroup]="formGroup2" class="myForm"> | ||||||
|               <nz-form-item> |               <nz-form-item> | ||||||
|             <nz-form-label nzSpan="6" nzRequired nzFor="passWord">新的密码</nz-form-label> |                 <nz-form-label nzSpan="4" nzRequired nzFor="passWord">设置新密码</nz-form-label> | ||||||
|             <nz-form-control nzSpan="18" [nzErrorTip]="passwordErrorTpl"> |                 <nz-form-control nzSpan="8"> | ||||||
|               <input |                   <nz-input-group [nzSuffix]="passWordType" nzSize="large"> | ||||||
|                 nz-input |                     <input nz-input [type]="isPassWordHide?'password':'text'" formControlName="passWord" | ||||||
|                 type="password" |                       (ngModelChange)="validateConfirmPassword()" placeholder="请输入新密码" /> | ||||||
|                 formControlName="passWord" |                   </nz-input-group> | ||||||
|                 (ngModelChange)="validateConfirmPassword()" |                   <ng-template #passWordType> | ||||||
|                 placeholder="请输入密码" |                     <i nz-icon [nzType]="isPassWordHide?'eye-invisible':'eye'" (click)="isPassWordHide=!isPassWordHide" | ||||||
|               /> |                       nzTheme="outline" style="color: #bdb7b7;font-size: 18px;cursor: pointer;"></i> | ||||||
|               <ng-template #passwordErrorTpl let-control> |                     <!-- <ng-container *ngIf="control.hasError('required')"> 请输入确认密码! </ng-container> | ||||||
|                 <ng-container *ngIf="control.hasError('required')"> 请输入确认密码! </ng-container> |  | ||||||
|                     <ng-container *ngIf="control.hasError('minLength') || control.hasError('pattern')"> |                     <ng-container *ngIf="control.hasError('minLength') || control.hasError('pattern')"> | ||||||
|                       8-16个字符,支持字母、数字、符号“_”和“-”,必须包含字母和数字! |                       8-16个字符,支持字母、数字、符号“_”和“-”,必须包含字母和数字! | ||||||
|                 </ng-container> |                     </ng-container> --> | ||||||
|                   </ng-template> |                   </ng-template> | ||||||
|                 </nz-form-control> |                 </nz-form-control> | ||||||
|  |                 <div class="input-tootip"> | ||||||
|  |                   <div *ngIf="formGroup2?.value?.passWord;else NodataTemplate"> | ||||||
|  |                     <i *ngIf="formGroup2?.controls?.passWord?.errors" nz-icon nzType="close-circle" nzTheme="fill" | ||||||
|  |                       class="valid-icon"></i> | ||||||
|  |                     <i *ngIf="!formGroup2?.controls?.passWord?.errors" nz-icon nzType="check-circle" nzTheme="fill" | ||||||
|  |                       class="invalid-icon"></i> | ||||||
|  |                   </div> | ||||||
|  |                   <label class="tootip-label"> 8-16个字符,支持字母、数字、符号“_”和“-”,必须包含字母和数字</label> | ||||||
|  |                 </div> | ||||||
|               </nz-form-item> |               </nz-form-item> | ||||||
|               <nz-form-item> |               <nz-form-item> | ||||||
|             <nz-form-label nzSpan="6" nzRequired nzFor="passWordTo">确认密码</nz-form-label> |                 <nz-form-label nzSpan="4" nzRequired nzFor="passWordTo">重复新密码</nz-form-label> | ||||||
|             <nz-form-control nzSpan="18" nzDisableAutoTips [nzErrorTip]="passwordToErrorTpl"> |                 <nz-form-control nzSpan="8" nzDisableAutoTips> | ||||||
|               <input nz-input type="password" formControlName="passWordTo" placeholder="再次输入密码" /> |                   <nz-input-group [nzSuffix]="confirmPassWordType" nzSize="large"> | ||||||
|               <ng-template #passwordToErrorTpl let-control> |                     <input nz-input [type]="isConfirmPassWordHide?'password':'text'" formControlName="passWordTo" | ||||||
|                 <ng-container *ngIf="control.hasError('required')"> 请输入确认密码! </ng-container> |                       placeholder="再次输入密码" /> | ||||||
|                 <ng-container *ngIf="control.hasError('passWordTo')"> 两次输入的密码不一致! </ng-container> |                   </nz-input-group> | ||||||
|  |                   <ng-template #confirmPassWordType> | ||||||
|  |                     <i nz-icon [nzType]="isConfirmPassWordHide?'eye-invisible':'eye'" | ||||||
|  |                       (click)="isConfirmPassWordHide=!isConfirmPassWordHide" nzTheme="outline" | ||||||
|  |                       style="color: #bdb7b7;font-size: 18px;cursor: pointer;"></i> | ||||||
|  |                     <!-- <ng-container *ngIf="control.hasError('required')"> 请输入确认密码! </ng-container> | ||||||
|  |                     <ng-container *ngIf="control.hasError('passWordTo')"> 两次输入的密码不一致! </ng-container> --> | ||||||
|                   </ng-template> |                   </ng-template> | ||||||
|                 </nz-form-control> |                 </nz-form-control> | ||||||
|  |                 <div class="input-tootip"> | ||||||
|  |                   <div *ngIf="formGroup2?.value?.passWordTo;else NodataTemplate"> | ||||||
|  |                     <i *ngIf="formGroup2?.controls?.passWordTo?.errors" nz-icon nzType="close-circle" nzTheme="fill" | ||||||
|  |                       class="valid-icon"></i> | ||||||
|  |                     <i *ngIf="!formGroup2?.controls?.passWordTo?.errors" nz-icon nzType="check-circle" nzTheme="fill" | ||||||
|  |                       class="invalid-icon"></i> | ||||||
|  |                   </div> | ||||||
|  |                   <label class="tootip-label">设置新密码与重复新密码保持一致</label> | ||||||
|  |                 </div> | ||||||
|               </nz-form-item> |               </nz-form-item> | ||||||
|               <nz-form-item> |               <nz-form-item> | ||||||
|             <nz-form-control nzSpan="18" nzOffset="6"> |                 <nz-form-control nzSpan="6" nzOffset="6"> | ||||||
|               <button |                   <button [disabled]="!formGroup2.valid" [nzLoading]="service.http.loading" nz-button nzBlock="true" | ||||||
|                 [disabled]="!formGroup2.valid" |                     nzType="primary" (click)="formSubmit()"> | ||||||
|                 [nzLoading]="service.http.loading" |                     确认 | ||||||
|                 nz-button |  | ||||||
|                 nzBlock="true" |  | ||||||
|                 nzType="primary" |  | ||||||
|                 (click)="formSubmit()" |  | ||||||
|               > |  | ||||||
|                 下一步 |  | ||||||
|                   </button> |                   </button> | ||||||
|                 </nz-form-control> |                 </nz-form-control> | ||||||
|               </nz-form-item> |               </nz-form-item> | ||||||
|             </form> |             </form> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|       </ng-container> |       </ng-container> | ||||||
|  |  | ||||||
|       <ng-container *ngIf="step === 2"> |       <ng-container *ngIf="step === 2"> | ||||||
|         <result [type]="result ? 'success' : 'error'" [title]="title" [description]="subTitle" style="margin-top: 3rem"> |         <result [type]="result ? 'success' : 'error'" [title]="title" [description]="subTitle" | ||||||
|  |           style="margin-top: 3rem;margin-bottom: 5rem;"> | ||||||
|           <ng-template #title> |           <ng-template #title> | ||||||
|             <div class="title" style="font-size: 24px"> |             <div class="title" style="font-size: 24px"> | ||||||
|               <!-- {{ 'app.register-result.msg' | translate: params }} --> |               <!-- {{ 'app.register-result.msg' | translate: params }} --> | ||||||
| @ -127,3 +133,12 @@ | |||||||
|     </div> |     </div> | ||||||
|   </page-grid> |   </page-grid> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|  | <ng-template #suffixTemplateInfo> | ||||||
|  |   <ng-container *ngIf="count < 1; else intervalTemplate"> | ||||||
|  |     <span class="msg-btn" style="color: #3370ff; cursor: pointer" (click)="getCaptcha()">获取验证码</span> | ||||||
|  |   </ng-container> | ||||||
|  |   <ng-template #intervalTemplate> 请等待{{ count }}s </ng-template> | ||||||
|  | </ng-template> | ||||||
|  |  | ||||||
|  | <ng-template #NodataTemplate><label class="dot">●</label></ng-template> | ||||||
| @ -1,6 +1,28 @@ | |||||||
| @import '~@delon/theme/index'; |  | ||||||
|  |  | ||||||
| :host { | :host { | ||||||
|  |   ::ng-deep { | ||||||
|  |     .ant-steps { | ||||||
|  |       margin: 0 auto; | ||||||
|  |       width : 500px; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after { | ||||||
|  |       background-color: #999494; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail::after { | ||||||
|  |       background-color: #999494; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .ant-spin-container { | ||||||
|  |       background-color: #f8f8f8; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .ant-form-item-label>label { | ||||||
|  |       height: 40px; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |  | ||||||
|   .main { |   .main { | ||||||
|     max-width: 1200px; |     max-width: 1200px; | ||||||
|     margin   : 0 auto; |     margin   : 0 auto; | ||||||
| @ -10,20 +32,20 @@ | |||||||
|   page-grid { |   page-grid { | ||||||
|     width           : 100%; |     width           : 100%; | ||||||
|     height          : 100%; |     height          : 100%; | ||||||
|     margin: 100px auto; |  | ||||||
|     background-color: #fff; |     background-color: #fff; | ||||||
|  |     margin          : 100px auto; | ||||||
|  |  | ||||||
|     .myForm { |     .myForm { | ||||||
|       width: 25rem; |       margin-top   : 3rem; | ||||||
|       margin: 5rem auto; |       margin-bottom: 5rem; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     .steps-content { |     .steps-content { | ||||||
|       min-height: 250px; |  | ||||||
|       margin-top      : 16px; |       margin-top      : 16px; | ||||||
|       background-color: #fafafa; |  | ||||||
|       border          : 1px dashed #e9e9e9; |       border          : 1px dashed #e9e9e9; | ||||||
|       border-radius   : 6px; |       border-radius   : 6px; | ||||||
|  |       background-color: #ffffff; | ||||||
|  |       min-height      : 250px; | ||||||
|       // text-align: center; |       // text-align: center; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -34,45 +56,31 @@ | |||||||
|     button { |     button { | ||||||
|       margin-right: 8px; |       margin-right: 8px; | ||||||
|     } |     } | ||||||
|     .step-title{ |  | ||||||
|       padding: 8px; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .input-tootip { | ||||||
| .content { |   width       : 250px; | ||||||
|   background-color: #f0f3f7; |   padding-left: 20px; | ||||||
| } |  | ||||||
| .main { |  | ||||||
|   max-width: 1200px; |  | ||||||
|   margin: 0 auto; |  | ||||||
| } |  | ||||||
| .header { |  | ||||||
|   background: #fff; |  | ||||||
| } |  | ||||||
| .layout { |  | ||||||
|   min-height: 100vh; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .logo { |  | ||||||
|   display     : flex; |   display     : flex; | ||||||
|   margin: 16px 0; |   display     : flex; | ||||||
|   line-height: 32px; |   align-items : center; | ||||||
|   dt { |  | ||||||
|     width: 95px; |   .dot { | ||||||
|     height: 32px; |     font-size: 21px; | ||||||
|     img { |     color    : #bdb8b8; | ||||||
|       vertical-align: top; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|   dd { |  | ||||||
|     flex: 1; |  | ||||||
|     margin-bottom: 0; |  | ||||||
|     padding: 0 10px; |  | ||||||
|     color: #1890ff; |  | ||||||
|     font-weight: 500; |  | ||||||
|     font-size: 24px; |  | ||||||
|   } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   .valid-icon { | ||||||
|  |     color: rgb(217 0 27); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .invalid-icon { | ||||||
|  |     color: rgb(82 196 26); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .tootip-label { | ||||||
|  |     margin-left: 8px; | ||||||
|  |     font-size  : 12px; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -1,7 +1,6 @@ | |||||||
| import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | ||||||
| import { FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; | import { FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; | ||||||
| import { Router } from '@angular/router'; | import { Router } from '@angular/router'; | ||||||
| import { CaptchaComponent } from '@shared'; |  | ||||||
| import { interval } from 'rxjs'; | import { interval } from 'rxjs'; | ||||||
| import { take } from 'rxjs/operators'; | import { take } from 'rxjs/operators'; | ||||||
| import { EAUserService } from 'src/app/shared/services/business/user.service'; | import { EAUserService } from 'src/app/shared/services/business/user.service'; | ||||||
| @ -9,30 +8,29 @@ import { EAUserService } from 'src/app/shared/services/business/user.service'; | |||||||
| @Component({ | @Component({ | ||||||
|   selector: 'app-routes-password-retrieve-password', |   selector: 'app-routes-password-retrieve-password', | ||||||
|   templateUrl: './retrieve-password.component.html', |   templateUrl: './retrieve-password.component.html', | ||||||
|   styleUrls: ['./retrieve-password.component.less'], |   styleUrls: ['./retrieve-password.component.less'] | ||||||
| }) | }) | ||||||
| export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | ||||||
|   @ViewChild('dun', { static: false }) |  | ||||||
|   private dun!: CaptchaComponent; |  | ||||||
|   step = 0; |   step = 0; | ||||||
|   count = 0; |   count = 0; | ||||||
|   interval$: any; |  | ||||||
|   formGroup1!: FormGroup; |   formGroup1!: FormGroup; | ||||||
|   formGroup2!: FormGroup; |   formGroup2!: FormGroup; | ||||||
|   confirmPasswordValidator!: ValidatorFn; |   confirmPasswordValidator!: ValidatorFn; | ||||||
|   result = true; |   result = true; | ||||||
|  |  | ||||||
|  |   isPassWordHide = true; | ||||||
|  |   isConfirmPassWordHide = true; | ||||||
|  |  | ||||||
|   constructor(private fb: FormBuilder, public service: EAUserService, private router: Router, private cdr: ChangeDetectorRef) {} |   constructor(private fb: FormBuilder, public service: EAUserService, private router: Router, private cdr: ChangeDetectorRef) {} | ||||||
|  |  | ||||||
|   ngAfterViewInit(): void { |   ngAfterViewInit(): void {} | ||||||
|     this.dun.init(); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   ngOnInit() { |   ngOnInit() { | ||||||
|     this.initForm(); |     this.initForm(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   initForm() { |   initForm() { | ||||||
|     this.confirmPasswordValidator = (control) => { |     this.confirmPasswordValidator = control => { | ||||||
|       if (!control.value) { |       if (!control.value) { | ||||||
|         return { error: true, required: true }; |         return { error: true, required: true }; | ||||||
|       } else if (control.value !== this.formGroup2.controls.passWord.value) { |       } else if (control.value !== this.formGroup2.controls.passWord.value) { | ||||||
| @ -44,7 +42,7 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|     this.formGroup1 = this.fb.group({ |     this.formGroup1 = this.fb.group({ | ||||||
|       phone: [null, [Validators.required]], |       phone: [null, [Validators.required]], | ||||||
|       smsVerifyCode: [null, [Validators.required]], |       smsVerifyCode: [null, [Validators.required]], | ||||||
|       voucher: [null, [Validators.required]], |       voucher: [null, [Validators.required]] | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     this.formGroup2 = this.fb.group({ |     this.formGroup2 = this.fb.group({ | ||||||
| @ -54,12 +52,12 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|           Validators.required, |           Validators.required, | ||||||
|           Validators.maxLength(16), |           Validators.maxLength(16), | ||||||
|           Validators.minLength(8), |           Validators.minLength(8), | ||||||
|           Validators.pattern('^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z-_]{8,16}$'), |           Validators.pattern('^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z-_]{8,16}$') | ||||||
|         ], |         ] | ||||||
|       ], |       ], | ||||||
|       passWordTo: [null, [this.confirmPasswordValidator, Validators.maxLength(16), Validators.minLength(8)]], |       passWordTo: [null, [this.confirmPasswordValidator, Validators.maxLength(16), Validators.minLength(8)]], | ||||||
|       voucher: [null, [Validators.required]], |       voucher: [null, [Validators.required]], | ||||||
|       phone: [null, [Validators.required]], |       phone: [null, [Validators.required]] | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @ -76,7 +74,7 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|  |  | ||||||
|   submitForm1() { |   submitForm1() { | ||||||
|     for (const i in this.formGroup1.controls) { |     for (const i in this.formGroup1.controls) { | ||||||
|       if (true) { |       if (this.formGroup1.controls[i]) { | ||||||
|         this.formGroup1.controls[i].markAsDirty(); |         this.formGroup1.controls[i].markAsDirty(); | ||||||
|         this.formGroup1.controls[i].updateValueAndValidity(); |         this.formGroup1.controls[i].updateValueAndValidity(); | ||||||
|       } |       } | ||||||
| @ -88,13 +86,14 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|     if (this.formGroup1.valid) { |     if (this.formGroup1.valid) { | ||||||
|       const param = Object.assign({}, this.formGroup1.value); |       const param = Object.assign({}, this.formGroup1.value); | ||||||
|       this.service.http.post(this.service.$forgetPasswordVerifyIdentity, param).subscribe((res: any) => { |       this.service.http.post(this.service.$forgetPasswordVerifyIdentity, param).subscribe((res: any) => { | ||||||
|  |         // console.log(res, 'submitForm1'); | ||||||
|         if (res.success === true) { |         if (res.success === true) { | ||||||
|           this.formGroup2.patchValue( |           this.formGroup2.patchValue( | ||||||
|             { |             { | ||||||
|               voucher: res.data.voucher, |               voucher: res.data.voucher, | ||||||
|               phone: this.formGroup1.value.phone, |               phone: this.formGroup1.value.phone | ||||||
|             }, |             }, | ||||||
|             { onlySelf: true }, |             { onlySelf: true } | ||||||
|           ); |           ); | ||||||
|           this.step = 1; |           this.step = 1; | ||||||
|           // clearInterval(this.interval$); |           // clearInterval(this.interval$); | ||||||
| @ -108,7 +107,7 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|  |  | ||||||
|   submitForm2() { |   submitForm2() { | ||||||
|     for (const i in this.formGroup2.controls) { |     for (const i in this.formGroup2.controls) { | ||||||
|       if (true) { |       if (this.formGroup2.controls[i]) { | ||||||
|         this.formGroup2.controls[i].markAsDirty(); |         this.formGroup2.controls[i].markAsDirty(); | ||||||
|         this.formGroup2.controls[i].updateValueAndValidity(); |         this.formGroup2.controls[i].updateValueAndValidity(); | ||||||
|       } |       } | ||||||
| @ -152,15 +151,15 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|           if (res.success) { |           if (res.success) { | ||||||
|             this.formGroup1.patchValue( |             this.formGroup1.patchValue( | ||||||
|               { |               { | ||||||
|                 voucher: res?.data?.voucher, |                 voucher: res?.data?.voucher | ||||||
|               }, |               }, | ||||||
|               { onlySelf: true }, |               { onlySelf: true } | ||||||
|             ); |             ); | ||||||
|             if (res?.data?.code === '1') { |             if (res?.data?.code === '1') { | ||||||
|               this.codeCountDown(); |               this.codeCountDown(); | ||||||
|               this.service.msgSrv.success('验证码已发送到该账号绑定的手机号!'); |               this.service.msgSrv.success('验证码已发送到该账号绑定的手机号!'); | ||||||
|             } else if (res?.data?.code === '503046') { |             } else if (res?.data?.code === '503046') { | ||||||
|               this.dun.popUp(); |               // this.dun.popUp(); | ||||||
|             } else { |             } else { | ||||||
|               this.service.msgSrv.error('获取验证码失败!'); |               this.service.msgSrv.error('获取验证码失败!'); | ||||||
|             } |             } | ||||||
| @ -176,19 +175,11 @@ export class UserRetrievePasswordComponent implements OnInit, AfterViewInit { | |||||||
|     this.count = 59; |     this.count = 59; | ||||||
|     interval(1000) |     interval(1000) | ||||||
|       .pipe(take(60)) |       .pipe(take(60)) | ||||||
|       .subscribe((x) => { |       .subscribe(x => { | ||||||
|         this.count = 59 - (x + 1); |         this.count = 59 - (x + 1); | ||||||
|         this.cdr.detectChanges(); |         this.cdr.detectChanges(); | ||||||
|       }); |       }); | ||||||
|   } |   } | ||||||
|   /* 网易盾验证通过 */ |  | ||||||
|   captchaDone(validate: any) { |  | ||||||
|     this.codeCountDown(); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   refreshPage() { |  | ||||||
|     window.location.reload(); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   validateConfirmPassword(): void { |   validateConfirmPassword(): void { | ||||||
|     setTimeout(() => this.formGroup2.controls.passWordTo.updateValueAndValidity()); |     setTimeout(() => this.formGroup2.controls.passWordTo.updateValueAndValidity()); | ||||||
|  | |||||||
| @ -33,7 +33,7 @@ export class UserCenterComponentsDriverComponent implements OnInit { | |||||||
|     }; |     }; | ||||||
|     if (this.sf?.value.effectiveDate) { |     if (this.sf?.value.effectiveDate) { | ||||||
|       Object.assign(params, { |       Object.assign(params, { | ||||||
|         time: { |         createTime: { | ||||||
|           start: this.sf?.value.effectiveDate[0], |           start: this.sf?.value.effectiveDate[0], | ||||||
|           end: this.sf?.value.effectiveDate[1] |           end: this.sf?.value.effectiveDate[1] | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -233,7 +233,7 @@ export class FreightComponentsListNewComponent implements OnInit { | |||||||
|             change: args => { |             change: args => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|                 this.sf1.setValue('/licensePhoto', args.fileList[0].response.data.fullFilePath); |                 this.sf1.setValue('/licensePhoto', args.fileList[0].response.data.fullFilePath); | ||||||
|                 this.checkBusinessLicense(args.fileList[0].response.data.fullFileWatermarkPath); |                 this.checkBusinessLicense(args.fileList[0].response.data.fullFilePath); | ||||||
|               } |               } | ||||||
|             } |             } | ||||||
|           } as SFUploadWidgetSchema |           } as SFUploadWidgetSchema | ||||||
| @ -242,7 +242,7 @@ export class FreightComponentsListNewComponent implements OnInit { | |||||||
|           title: '统一社会信用代码', |           title: '统一社会信用代码', | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           minLength: 1, |           minLength: 1, | ||||||
|           maxLength: 18, |           maxLength: 30, | ||||||
|           ui: { |           ui: { | ||||||
|             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|             optionalHelp: |             optionalHelp: | ||||||
| @ -331,7 +331,6 @@ export class FreightComponentsListNewComponent implements OnInit { | |||||||
|             precision: 0 |             precision: 0 | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         unit: { title: '', type: 'string', ui: { widget: 'text', class: 'input-back' }, default: '万元' }, |  | ||||||
|         enterpriseRegistrationTime: { |         enterpriseRegistrationTime: { | ||||||
|           title: '成立日期', |           title: '成立日期', | ||||||
|           type: 'string', |           type: 'string', | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "app": { |   "app": { | ||||||
|     "name": "运多星运营平台", |     "name": "运多星网络货运管理平台", | ||||||
|     "description": "运多星运营平台" |     "description": "运多星网络货运管理平台" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -28,3 +28,11 @@ input::-webkit-inner-spin-button { | |||||||
| input[type="number"] { | input[type="number"] { | ||||||
|     -moz-appearance: textfield; |     -moz-appearance: textfield; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .alain-pro__sider-logo h1{ | ||||||
|  |     font-size: 17px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .alain-pro__sider-logo{ | ||||||
|  |     padding-left: 12px; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user