import {Component, OnInit} from '@angular/core'; import {LocalStorageService} from '../../services/local-storage.service'; import { DATA, ROUTENAME, MENUNAME, CHILDMENUNAME, INIT_FLAG, ADMIN_INFO_OBJECT, TOKEN } from '../../services/local-storage.namespace'; import {LoginService} from '../../services/login.service'; import {NzMessageService, NzModalService} from 'ng-zorro-antd'; import {Router} from '@angular/router'; import {IconService} from '../../services/icon.service'; import {CommonsService} from '../../services/commons.service'; import {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms'; import {ValidatorsService} from '../../services/validators.service'; import {Md5} from 'ts-md5'; import {environment} from '../../../environments/environment'; import {HttpClient} from '@angular/common/http'; import {CompanyTwoPwdService} from '../../services/company-two-pwd.service'; @Component({ selector: 'app-navigation', templateUrl: './navigation.component.html', styleUrls: ['./navigation.component.less'] }) export class NavigationComponent implements OnInit { visibleUpdatePwd = false; // 修改密码抽屉 validateForm: FormGroup; // 定义表单 passwordVisible = false; isCollapsed = false; userInfo: any; menuList: any; routeName: string; switchValue = false; constructor( private storage: LocalStorageService, private loginService: LoginService, private message: NzMessageService, private commonsService: CommonsService, private companyTwoPwdService: CompanyTwoPwdService, private http: HttpClient, // http请求 private iconService: IconService, private modal: NzModalService, private common: CommonsService, private fb: FormBuilder, // 表单 private router: Router, ) { } ngOnInit(): void { this.validateForm = this.fb.group({ oldPassword: [null, [Validators.required, ValidatorsService.minLength(6), ValidatorsService.maxLength(16)]], newPassword: [null, [Validators.required, ValidatorsService.minLength(6), ValidatorsService.maxLength(16)]], checkNewPassword: [null, [Validators.required, this.checkPwd]], }); this.routeName = this.storage.get(ROUTENAME) == null ? 'index' : this.storage.get(ROUTENAME); this.userInfo = this.storage.getList(ADMIN_INFO_OBJECT); this.commonsService.mappingSysNameOl('RECHARGE', data => { this.switchValue = data['return_data']['codeValue'] === '1'; }); this.menuList = this.storage.getList(ADMIN_INFO_OBJECT)['menuList']; // 定义菜单数据 this.common.getDictionaries(data => { if (data['return_code'] === '000000') { console.log(data); } else { this.message.error(data['return_msg']); } }); } public activeLi(routeName): void { this.routeName = routeName; this.storage.set(ROUTENAME, routeName); } // 菜单姓名 public getRouteName(menuName, childMenuName): void { this.storage.set(MENUNAME, menuName); this.storage.set(CHILDMENUNAME, childMenuName); } // 登出 public loginOut(): void { this.loginService.loginOut(data => { if (data.return_code === '000000') { this.storage.set(ADMIN_INFO_OBJECT, null); this.storage.set(INIT_FLAG, false); this.storage.set(TOKEN, null); this.router.navigateByUrl('/adminLogin').then(); } else { this.message.warning(data.return_msg); } }); } // 返回 public getBack(): void { history.back(); } clickSwitch(): void { this.switchValue = !this.switchValue; this.commonsService.updateDictionary('RECHARGE', this.switchValue === true ? '1' : '0', data => { if (data['return_code'] === '000000') { this.message.success(data['return_data']); } else { this.message.error(data['return_msg']); } }); } // 打开抽屉 openUpdatePwd(): void { this.visibleUpdatePwd = true; } // 关闭抽屉 closeUser(): void { this.visibleUpdatePwd = false; } // 提交表单 submitForm(value): void { // 表单验证 // tslint:disable-next-line:forin for (const i in this.validateForm.controls) { this.validateForm.controls[i].markAsDirty(); this.validateForm.controls[i].updateValueAndValidity(); } if (this.validateForm.status == null || this.validateForm.status !== 'VALID') { this.modal.info({ nzTitle: '提示', nzContent: '请正确填写必填信息', }); return; } const timeNum = new Date().getTime(); const signStr = 'userId=' + this.storage.get(ADMIN_INFO_OBJECT)['secUser'].id + '&newPassword=' + value.newPassword + '&nonceStr=' + timeNum; // 定义请求数据 const params = { userId: this.storage.get(ADMIN_INFO_OBJECT)['secUser'].id, oldPassword: value.oldPassword, newPassword: value.newPassword, nonceStr: timeNum, sign: String(Md5.hashStr(signStr)).toLocaleUpperCase(), }; this.http.post(environment.baseUrl + '/secUser/sendUserPass', params).subscribe(data => { if (data['return_code'] === '000000') { this.modal.success({ nzTitle: '提示', nzContent: '密码修改成功', nzOkText: '重新登录', nzOkType: 'primary', nzOnOk: () => this.loginOut() }); } else { this.modal.warning({ nzTitle: '提示', nzContent: data['return_msg'], nzOkText: '取消', nzOkType: 'primary', }); } setTimeout(() => { }, 1000); }, error => { this.message.create('error', `未知错误!`); }); } /** * 新密码校验两次密码是否一致 * @param control */ checkPwd = (control: FormControl): { [s: string]: boolean } => { if (!control.value) { return {required: true}; } else if (control.value !== this.validateForm.controls.newPassword.value) { return {confirm: true, error: true}; } return {}; } }