嗨森逛PC管理端
 
 
 
 
high-web/src/app/admin/navigation/navigation.component.ts

193 lines
6.6 KiB

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 {};
}
}