You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

270 lines
8.6 KiB

import { Component, OnInit ,Inject,ViewChild} from '@angular/core';
import { CacheTokenService } from '../http-interceptors/cache-token.service'//引入服务
import { HttpClient,HttpHeaders } from '@angular/common/http';
import { FormControl } from '@angular/forms';
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { IsLoginService } from '../is-login.service'
import { AllFileComponent } from '../ui/all-file/all-file.component';
import { ComponentServiceService } from '../component-service.service';
import { Router,ActivatedRoute } from '@angular/router'
@Component({
selector: 'app-navigation',
templateUrl: './navigation.component.html',
styleUrls: ['./navigation.component.scss']
})
export class NavigationComponent implements OnInit {
constructor(private router:Router,public emitService: ComponentServiceService,public navmenus:CacheTokenService,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public islogin:IsLoginService) { }
@ViewChild('child') child:AllFileComponent; //父组件中获得子组件的引用
allDataBank:any //所有的资料库
selectedDataBank:any //当前选中的资料库
hoverDataBank:any //当前鼠标移入的资料库
isOneClick:boolean //是否第一次进入网页
//支队级菜单
detachmentMenus:any = [
{ id:"支队级-主官", name:"主官" },
{ id:"支队级-副官", name:"副官" },
{ id:"支队级-灭火救援指挥岗位", name:"灭火救援指挥岗位" },
{ id:"支队级-政工岗位", name:"政工岗位" },
{ id:"支队级-后勤与保障岗位", name:"后勤与保障岗位" },
{ id:"支队级-防火监督岗位", name:"防火监督岗位" },
{ id:"支队级-指挥中心", name:"指挥中心" },
{ id:"支队级-安全员", name:"安全员" },
]
//大队级菜单
brigadeMenus:any = [
{ id:"大队级-主官", name:"主官" },
{ id:"大队级-副官", name:"副官" },
{ id:"大队级-灭火救援指挥岗位", name:"灭火救援指挥岗位" },
{ id:"大队级-政工岗位", name:"政工岗位" },
{ id:"大队级-后勤与保障岗位", name:"后勤与保障岗位" },
{ id:"大队级-防火监督岗位", name:"防火监督岗位" },
{ id:"大队级-安全员", name:"安全员" },
]
//消防救援站菜单
rescueStationMenus:any = [
{ id:"消防救援站-消防站指挥员", name:"消防站指挥员" },
{ id:"消防救援站-站长助理", name:"站长助理" },
{ id:"消防救援站-战斗员", name:"战斗员" },
{ id:"消防救援站-供水源", name:"供水源" },
{ id:"消防救援站-训导员", name:"训导员" },
{ id:"消防救援站-通信员", name:"通信员" },
{ id:"消防救援站-无人机飞手", name:"无人机飞手" },
{ id:"消防救援站-消防车驾驶员", name:"消防车驾驶员" },
{ id:"消防救援站-装备技师", name:"装备技师" }
]
//系统管理菜单
systemManagement:any = [
{ id:"用户管理", name:"用户管理" },
]
ngOnInit() {
// this.http.get('/api/DataBanks').subscribe((data:any) => {
// if(data && data.length != 0){
// this.selectedDataBank = data[0].id
// }
// })
// this.getAllDataBank()
this.selectedDataBank = "支队级-主官"
}
darktheme = false;//黑夜主题
switchTheme(dark) {
this.darktheme = dark;
}
defaulttheme(){
this.darktheme = false
}
redtheme(){
this.darktheme = true
}
//点击用户管理
clickUser(item){
this.selectedDataBank = item.id
this.router.navigate([`/home/userManagement`])
}
//新增资料库
// addDataBank(){
// const dialogRef = this.dialog.open(AddDataBank, {//调用open方法打开对话框并且携带参数过去
// width: '260px',
// data: {}
// });
// dialogRef.afterClosed().subscribe(
// (data:any)=>{
// if(data){
// let headers = new HttpHeaders({
// 'Content-Type': 'text/json'
// });
// let options = {
// headers
// };
// let body = JSON.stringify(data.name);
// this.http.post('/api/DataBanks',body,options).subscribe(data => {
// this.getAllDataBank()
// const config = new MatSnackBarConfig();
// config.verticalPosition = 'top';
// config.duration = 3000
// this.snackBar.open('创建资料库成功','确定',config);
// },
// err => {
// const config = new MatSnackBarConfig();
// config.verticalPosition = 'top';
// config.duration = 3000
// this.snackBar.open(err,'确定',config);
// })
// }
// }
// );
// }
//获得所有资料库
// getAllDataBank(){
// this.http.get('/api/DataBanks').subscribe(data => {
// this.allDataBank = data
// // console.log(123,data)
// }
// ,
// err=>{
// // console.log(456,err)
// })
// }
//点击资料库
clickLi(item){
this.selectedDataBank = item.id
//触发子组件的方法
// this.child.getALLFileList(item.id);
// this.child.selection.clear();
this.router.navigate([`/home`])
this.emitService.eventEmit.emit(item.id);
}
//鼠标移入资料库
liEnter(item){
this.hoverDataBank = item.id
}
//鼠标移出资料库
liLeave(item){
this.hoverDataBank = ""
}
//修改资料库名称
editDataBankName(e,item){
e.stopPropagation()
const dialogRef = this.dialog.open(EditDataBankName, {//调用open方法打开对话框并且携带参数过去
width: '260px',
data: {name:item.name}
});
dialogRef.afterClosed().subscribe(
(data:any)=>{
if(data){
if(data != item.name){
let headers = new HttpHeaders({
'Content-Type': 'text/json'
});
let options = {
headers
};
let body = JSON.stringify(data.name);
this.http.put(`/api/DataBanks/${item.id}`,body,options).subscribe(data => {
// this.getAllDataBank()
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('修改资料库名称成功','确定',config);
})
}
}
}
);
}
//删除资料库
deleteDataBank(e,item){
e.stopPropagation()
var r = confirm(`您确定要删除 ${item.name} 资料库吗?`);
if (r == true) {
this.http.delete(`/api/DataBanks/${item.id}`).subscribe(data => {
// this.getAllDataBank()
let config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('删除成功','确定',config);
},
err=>{
let config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('删除失败,请联系管理员','确定',config);
})
}
}
}
//新增资料库
@Component({
selector: 'adddatabank',
templateUrl: './adddatabank.html',
styleUrls: ['./navigation.component.scss']
})
export class AddDataBank {
myControl = new FormControl();
constructor(private http: HttpClient,public dialogRef: MatDialogRef<AddDataBank>,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) {}
onNoClick(): void {
this.dialogRef.close();
}
onSubmit(value){
if ( value.name.includes('/') ) {
let config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('名称不允许有特殊字符','确定',config);
} else {
this.dialogRef.close(value);
}
}
}
//更改资料库名称
@Component({
selector: 'editdatabankname',
templateUrl: './editdatabankname.html',
styleUrls: ['./navigation.component.scss']
})
export class EditDataBankName {
myControl = new FormControl();
constructor(private http: HttpClient,public dialogRef: MatDialogRef<EditDataBankName>,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) {}
dataBankName:any = this.data.name//要修改的资料库原名称
onNoClick(): void {
this.dialogRef.close();
}
onSubmit(value){
if ( value.name.includes('/') ) {
let config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('名称不允许有特殊字符','确定',config);
} else {
this.dialogRef.close(value);
}
}
}