|
|
|
import { ApplicationRef, Component, ComponentFactoryResolver, Injector, OnInit } from '@angular/core';
|
|
|
|
import { HttpClient } from '@angular/common/http'
|
|
|
|
import { Data } from '../../interface'
|
|
|
|
import { Router, ActivatedRoute } from '@angular/router'
|
|
|
|
import { CacheTokenService } from '../../http-interceptors/cache-token.service'//引入服务
|
|
|
|
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
|
|
|
|
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-login',
|
|
|
|
templateUrl: './login.component.html',
|
|
|
|
styleUrls: ['./login.component.scss'],
|
|
|
|
})
|
|
|
|
export class LoginComponent implements OnInit {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute, public token: CacheTokenService, public snackBar: MatSnackBar, public dialog: MatDialog) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
this.automaticLogin()
|
|
|
|
}
|
|
|
|
|
|
|
|
errmsg: string = ''
|
|
|
|
|
|
|
|
onSubmit(e) {
|
|
|
|
this.http.post('/api/Account/SignIn', {
|
|
|
|
name: e.name,
|
|
|
|
password: e.password
|
|
|
|
}).subscribe((data: Data) => {
|
|
|
|
sessionStorage.setItem("level", data.level);
|
|
|
|
sessionStorage.setItem("token", data.token);
|
|
|
|
sessionStorage.setItem("refreshToken", data.refreshToken);
|
|
|
|
sessionStorage.setItem("isDefaultPassword", data.isDefaultPassword);//是否需要修改默认密码
|
|
|
|
this.http.get('/api/Account/NavMenus').subscribe((data: any) => {
|
|
|
|
let isHave = data.find(item => { return item.url == "/statisticanalysis/home" })
|
|
|
|
let isHaveGis = data.find(item => { return item.url == "/gis" })
|
|
|
|
if (isHave) {
|
|
|
|
this.router.navigate([`/statisticanalysis/home`])
|
|
|
|
this.dialogChangePassword()
|
|
|
|
return
|
|
|
|
} else if (isHaveGis) {
|
|
|
|
this.router.navigate([`/gis`])
|
|
|
|
this.dialogChangePassword()
|
|
|
|
return
|
|
|
|
} else if (data.length != 0) {
|
|
|
|
this.router.navigate([`/keyUnit`])
|
|
|
|
this.dialogChangePassword()
|
|
|
|
return
|
|
|
|
} else {
|
|
|
|
this.snackBar.open('该用户角色未分配任何菜单', '确定', {
|
|
|
|
duration: 3000
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
if (e.notlogin) { //7天免登录时
|
|
|
|
localStorage.setItem("isnologin", "true")
|
|
|
|
localStorage.setItem("token", data.token)
|
|
|
|
localStorage.setItem("refreshToken", data.refreshToken)
|
|
|
|
}
|
|
|
|
//调用服务中的function刷新token
|
|
|
|
this.token.startUp()
|
|
|
|
},
|
|
|
|
(err) => { this.errmsg = err }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dialogChangePassword() {
|
|
|
|
if (sessionStorage.getItem('isDefaultPassword') == 'true') {
|
|
|
|
let dialogRef = this.dialog.open(ChangepasswordComponent2,
|
|
|
|
{ width: '348px' });
|
|
|
|
|
|
|
|
dialogRef.afterClosed().subscribe((data) => {
|
|
|
|
sessionStorage.setItem('isDefaultPassword', 'false')
|
|
|
|
this.lookUpdateData()
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
this.lookUpdateData()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//查看更新内容
|
|
|
|
lookUpdateData() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let dialogRef = this.dialog.open(lookUpdateDataComponent,
|
|
|
|
{ width: '668px' });
|
|
|
|
|
|
|
|
dialogRef.afterClosed().subscribe((data) => {
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//7天免登录自动登录
|
|
|
|
automaticLogin() {
|
|
|
|
let isNoLogin = localStorage.getItem("isnologin")
|
|
|
|
if (isNoLogin) { //7天免登录时
|
|
|
|
let token = localStorage.getItem("token");
|
|
|
|
let refreshToken = localStorage.getItem("refreshToken");
|
|
|
|
this.http.post('/api/Account/RefreshToken', {
|
|
|
|
token: token,
|
|
|
|
refreshToken: refreshToken
|
|
|
|
}).subscribe((data: any) => {
|
|
|
|
sessionStorage.setItem("level", data.level);
|
|
|
|
sessionStorage.setItem("token", data.token);
|
|
|
|
sessionStorage.setItem("refreshToken", data.refreshToken);
|
|
|
|
this.token.startUp()
|
|
|
|
this.router.navigate(['/keyUnit'])
|
|
|
|
this.snackBar.open('已自动登录', '确定', { duration: 3000 });
|
|
|
|
})
|
|
|
|
} //if
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//打开弹窗
|
|
|
|
open() {
|
|
|
|
this.snackBar.open('请联系管理员', '确定', {
|
|
|
|
duration: 3000
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-changepassword',
|
|
|
|
templateUrl: './changePassword.html',
|
|
|
|
styleUrls: ['./changepassword.scss']
|
|
|
|
})
|
|
|
|
|
|
|
|
export class ChangepasswordComponent2 implements OnInit {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, public snackBar: MatSnackBar,
|
|
|
|
public dialogRef: MatDialogRef<ChangepasswordComponent2>) { }
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
}
|
|
|
|
errmsg: string = ''
|
|
|
|
|
|
|
|
onSubmit(e) {
|
|
|
|
this.http.put(
|
|
|
|
'/api/Account/Password',
|
|
|
|
{
|
|
|
|
newPassword: e.newPassword,
|
|
|
|
password: 'SHya119!@'
|
|
|
|
}
|
|
|
|
).subscribe(data => {
|
|
|
|
this.dialogRef.close(data);
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('密码修改成功', '确定', config);
|
|
|
|
}, (err) => { this.errmsg = err }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-lookUpdateData',
|
|
|
|
templateUrl: './lookUpdateData.html',
|
|
|
|
styleUrls: ['./lookUpdateData.scss']
|
|
|
|
})
|
|
|
|
|
|
|
|
export class lookUpdateDataComponent implements OnInit {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, public snackBar: MatSnackBar,
|
|
|
|
public dialogRef: MatDialogRef<lookUpdateDataComponent>) { }
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
}
|
|
|
|
onSubmit(e) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|