From c608e73287a70d54c4064c4322d5b36fbb4d859c Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Mon, 17 Jan 2022 16:24:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A2=84=E6=A1=88=E8=BD=A6=E8=BE=86=E5=BD=92=E5=B1=9E=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entry-plan-look/entry-plan-look.component.ts | 2 +- tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts b/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts index 58fb14f..1797bfd 100644 --- a/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts +++ b/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts @@ -706,7 +706,7 @@ export class EntryPlanLookComponent implements OnInit { sessionStorage.setItem("buildingTypeId", this.unittypeId) sessionStorage.setItem("editable", "1") let companyId = sessionStorage.getItem("companyId") - window.open(`/keyUnit/editunitinfo?id=${companyId}`); + window.open(`/keyUnit/editunitinfo?id=${companyId}&orName=${this.route.snapshot.queryParams.orName}&orId=${this.route.snapshot.queryParams.orId}`); } } } diff --git a/tsconfig.json b/tsconfig.json index 6435d0e..cc7e648 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,7 @@ "module": "esnext", "moduleResolution": "node", "importHelpers": true, - "target": "es2015", + "target": "es2015",//es6 "allowJs": true, "typeRoots": [ "node_modules/@types" From 00d86bbb343484b0c97c5fd448ad8fa329063b6e Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Mon, 17 Jan 2022 17:04:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=B8=8D=E5=85=81=E8=AE=B8=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/ui/role/role.component.ts | 382 ++++++++++++++++-------------- 1 file changed, 201 insertions(+), 181 deletions(-) diff --git a/src/app/ui/role/role.component.ts b/src/app/ui/role/role.component.ts index 144f439..2294b79 100644 --- a/src/app/ui/role/role.component.ts +++ b/src/app/ui/role/role.component.ts @@ -1,11 +1,11 @@ import { Component, OnInit, Inject } from '@angular/core'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { FormControl } from '@angular/forms'; import { HttpClient } from '@angular/common/http'; import { CacheTokenService } from '../../http-interceptors/cache-token.service' // import format from 'date-fns/format'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; +import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; +import { FlatTreeControl } from '@angular/cdk/tree'; import { TreeService } from '../../http-interceptors/tree.service' import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; @@ -25,37 +25,37 @@ export interface roledata { }) export class RoleComponent implements OnInit { - constructor(private http: HttpClient,public dialog: MatDialog,public createtime:CacheTokenService,private tree:TreeService,public snackBar: MatSnackBar) { } - displayedColumns: string[] = ['name','createtiome', 'edit']; + constructor(private http: HttpClient, public dialog: MatDialog, public createtime: CacheTokenService, private tree: TreeService, public snackBar: MatSnackBar) { } + displayedColumns: string[] = ['name', 'createtiome', 'edit']; dataSource: any - public compare(property){ - return function(a,b){ + public compare(property) { + return function (a, b) { var value1 = a[property]; var value2 = b[property]; return value1 - value2; } } //获取角色列表并且给排头和排尾赋是否为首尾 - getlist(){ - this.http.get('/api/Roles').subscribe( (data:Array)=>{ + getlist() { + this.http.get('/api/Roles').subscribe((data: Array) => { this.dataSource = data this.dataSource[0].isTop = true; - this.dataSource[this.dataSource.length-1].isBottom = true + this.dataSource[this.dataSource.length - 1].isBottom = true }) } //初始化视图 - ngOnInit() { + ngOnInit() { this.getlist() } //向上按钮 - up(node){ + up(node) { let newdate = new Date(); - function getDate(date){ + function getDate(date) { //date是传过来的时间戳,注意需为13位,10位需*1000 //也可以不传,获取的就是当前时间 var time = new Date(date); - var year= time.getFullYear() //年 + var year = time.getFullYear() //年 var month = ("0" + (time.getMonth() + 1)).slice(-2); //月 var day = ("0" + time.getDate()).slice(-2); //日 var mydate = year + "-" + month + "-" + day; @@ -63,40 +63,50 @@ export class RoleComponent implements OnInit { } let time = getDate(newdate) this.http.put(//把上一节点order换成点击的节点 - `/api/Roles/${this.dataSource[node.order -1].id}`, + `/api/Roles/${this.dataSource[node.order - 1].id}`, { - id:this.dataSource[node.order -1].id, - name: this.dataSource[node.order -1].name, + id: this.dataSource[node.order - 1].id, + name: this.dataSource[node.order - 1].name, order: node.order, enabled: true, - creationTime:time, + creationTime: time, } - ).subscribe(data=>{ + ).subscribe(data => { this.getlist() + }, err => { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open(err ? err : '内置角色不允许移动', '确定', config); }) this.http.put(//把当前节点order换成上一点击的节点 - `/api/Roles/${node.id}`, + `/api/Roles/${node.id}`, { - id:node.id, + id: node.id, name: node.name, - order: node.order-1, + order: node.order - 1, enabled: true, - creationTime:time, + creationTime: time, } - ).subscribe(data=>{ + ).subscribe(data => { this.getlist() + }, err => { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open(err ? err : '内置角色不允许移动', '确定', config); }) } //向下按钮 - down(node){ + down(node) { let newdate = new Date(); - function getDate(date){ + function getDate(date) { //date是传过来的时间戳,注意需为13位,10位需*1000 //也可以不传,获取的就是当前时间 var time = new Date(date); - var year= time.getFullYear() //年 + var year = time.getFullYear() //年 var month = ("0" + (time.getMonth() + 1)).slice(-2); //月 var day = ("0" + time.getDate()).slice(-2); //日 var mydate = year + "-" + month + "-" + day; @@ -104,78 +114,88 @@ export class RoleComponent implements OnInit { } let time = getDate(newdate) this.http.put(//把下一节点order换成点击的节点 - `/api/Roles/${this.dataSource[node.order + 1].id}`, + `/api/Roles/${this.dataSource[node.order + 1].id}`, { - id:this.dataSource[node.order + 1].id, + id: this.dataSource[node.order + 1].id, name: this.dataSource[node.order + 1].name, order: node.order, enabled: true, - creationTime:time, + creationTime: time, } - ).subscribe(data=>{ + ).subscribe(data => { this.getlist() + }, err => { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open(err ? err : '内置角色不允许移动', '确定', config); }) this.http.put(//把当前节点order换成下一点击的节点 - `/api/Roles/${node.id}`, + `/api/Roles/${node.id}`, { - id:node.id, + id: node.id, name: node.name, order: node.order + 1, enabled: true, - creationTime:time, + creationTime: time, } - ).subscribe(data=>{ + ).subscribe(data => { this.getlist() + }, err => { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open(err ? err : '内置角色不允许移动', '确定', config); }) } //创建按钮并且弹出对话框 - createuser(){ + createuser() { const dialogRef = this.dialog.open(CreateRole, {//调用open方法打开对话框并且携带参数过去 width: '600px', - height:'658px', - data: {name: this.createuser.name,data: this.dataSource,length:this.dataSource.length} + height: '658px', + data: { name: this.createuser.name, data: this.dataSource, length: this.dataSource.length } }); dialogRef.afterClosed().subscribe( - data=>{ + data => { this.getlist() } ); } //删除按钮 - deleteduser(roledata){ + deleteduser(roledata) { var isdeleted = confirm("确定要删除此用户吗?") - if(isdeleted){ + if (isdeleted) { //请求删除接口 - this.http.delete(`/api/Roles/${roledata.id}`).subscribe( data=>{ + this.http.delete(`/api/Roles/${roledata.id}`).subscribe(data => { this.getlist() }) } } //编辑按钮 - allot(roledata){ + allot(roledata) { const dialogRef = this.dialog.open(EditRole, {//调用open方法打开对话框并且携带参数过去 width: '600px', - height:'658px', - data: {id:roledata.id,name:roledata.name,order:roledata.order}//把点击的id传过去 + height: '658px', + data: { id: roledata.id, name: roledata.name, order: roledata.order }//把点击的id传过去 }); dialogRef.afterClosed().subscribe( - data=>{ + data => { this.getlist() } ); } //启用或禁用按钮 - open(roledata){ + open(roledata) { let newdate = new Date(); - function getDate(date){ + function getDate(date) { //date是传过来的时间戳,注意需为13位,10位需*1000 //也可以不传,获取的就是当前时间 var time = new Date(date); - var year= time.getFullYear() //年 + var year = time.getFullYear() //年 var month = ("0" + (time.getMonth() + 1)).slice(-2); //月 var day = ("0" + time.getDate()).slice(-2); //日 var mydate = year + "-" + month + "-" + day; @@ -183,21 +203,21 @@ export class RoleComponent implements OnInit { } let time = getDate(newdate) this.http.put( - `/api/Roles/${roledata['id']}`, + `/api/Roles/${roledata['id']}`, { - id:roledata['id'], + id: roledata['id'], name: roledata.name, order: roledata.order, enabled: !roledata.enabled, creationTime: time, } ).subscribe( - data=>{ + data => { this.getlist() } ) } - + } @@ -217,7 +237,7 @@ export class CreateRole { expandable: !!node.children && node.children.length > 0, name: node.name, level: level, - id:node.id + id: node.id }; } treeControl = new FlatTreeControl( @@ -231,21 +251,21 @@ export class CreateRole { myControl = new FormControl(); //注入MatDialogRef,可以用来关闭对话框 //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService,public snackBar: MatSnackBar) {} - olddata =[] + constructor(private http: HttpClient, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data, private tree: TreeService, public snackBar: MatSnackBar) { } + olddata = [] olddata2 = [] xxx = {} jjj = {} //用于存放选中的数组 checkedMap = {} //初始化两棵tree - ngOnInit(){ - this.http.get('/api/Permissions').subscribe((data: any[])=>{ - this.olddata =data + ngOnInit() { + this.http.get('/api/Permissions').subscribe((data: any[]) => { + this.olddata = data this.dataSource.data = this.tree.toTree(data); this.treeControl.expandAll() - this.dataSource.data.forEach(item=>{ - if(item.children){ + this.dataSource.data.forEach(item => { + if (item.children) { var childarr = [] item.children.forEach(n => { childarr.push(n.id) @@ -253,15 +273,15 @@ export class CreateRole { this.xxx[item.id] = childarr } }) - + }) - - this.http.get('/api/NavMenus').subscribe((data: any[])=>{ - this.olddata2 =data + + this.http.get('/api/NavMenus').subscribe((data: any[]) => { + this.olddata2 = data this.dataSource2.data = this.tree.toTree(data); this.treeControl.expandAll() - this.dataSource2.data.forEach(item=>{ - if(item.children){ + this.dataSource2.data.forEach(item => { + if (item.children) { var childarr = [] item.children.forEach(n => { childarr.push(n.id) @@ -273,25 +293,25 @@ export class CreateRole { } //选中后子节点默认选中 - selectedAll(event, node){ - this.olddata.forEach(item=>{ - if(item.parentId == node.id){ + selectedAll(event, node) { + this.olddata.forEach(item => { + if (item.parentId == node.id) { this.checkedMap[item.id] = event.checked; } }) // console.log(this.olddata2,node ) - var menus =[] //导航菜单可能有三级 用于存储第二级 + var menus = [] //导航菜单可能有三级 用于存储第二级 //选中一级菜单 - this.olddata2.forEach(item=>{ - if(item.parentId == node.id){ + this.olddata2.forEach(item => { + if (item.parentId == node.id) { this.checkedMap[item.id] = event.checked; menus.push(item) } }) //将二级菜单也选中 - menus.forEach(item=>{ - if(item.children){ + menus.forEach(item => { + if (item.children) { item.children.forEach(n => { this.checkedMap[n.id] = event.checked; }); @@ -300,37 +320,37 @@ export class CreateRole { } //数据权限tree的全选功能 - leftTreeAll(event,form){ + leftTreeAll(event, form) { const values = form.value; for (let key in values) { - if(key.indexOf("second")){ + if (key.indexOf("second")) { this.checkedMap[key.split('.')[1]] = event.checked; } } } - //菜单权限tree的全选功能 - rightTreeAll(event,form){ + //菜单权限tree的全选功能 + rightTreeAll(event, form) { const values = form.value; for (let key in values) { - if(key.indexOf("first")){ + if (key.indexOf("first")) { this.checkedMap[key.split('.')[1]] = event.checked; } } } - + hasChild = (_: number, node: any) => node.expandable; onNoClick(): void { this.dialogRef.close(); } //提交 - onSubmit(value){ + onSubmit(value) { let newdate = new Date(); - function getDate(date){ + function getDate(date) { //date是传过来的时间戳,注意需为13位,10位需*1000 //也可以不传,获取的就是当前时间 var time = new Date(date); - var year= time.getFullYear() //年 + var year = time.getFullYear() //年 var month = ("0" + (time.getMonth() + 1)).slice(-2); //月 var day = ("0" + time.getDate()).slice(-2); //日 var mydate = year + "-" + month + "-" + day; @@ -338,84 +358,84 @@ export class CreateRole { } let time = getDate(newdate) this.http.post( - '/api/Roles', + '/api/Roles', { - id:"", + id: "", name: value.name, order: this.data.data[this.data.data.length - 1].order + 1, enabled: true, creationTime: time, } ).subscribe( - data=>{ + data => { var id = data['id'] // console.log(value) var keydata = [] //菜单权限id集合 var keydata2 = [] //数据权限id集合 - for(let i in value){ - if(value[i]){ - if(i.indexOf("first") && i!="name"){ - keydata.push(i.split('.')[1]) + for (let i in value) { + if (value[i]) { + if (i.indexOf("first") && i != "name") { + keydata.push(i.split('.')[1]) } - if(i.indexOf("second") && i!="name"){ - keydata2.push(i.split('.')[1]) + if (i.indexOf("second") && i != "name") { + keydata2.push(i.split('.')[1]) } } } - function includes(arr1, arr2) { - return arr2.every(val => arr1.includes(val)); + function includes(arr1, arr2) { + return arr2.every(val => arr1.includes(val)); } const orginalList = [...keydata2]; orginalList.forEach((item) => { // forEach 里面 splice 有问题,详见 https://blog.csdn.net/qq_38128179/article/details/92798157 - if (item in this.xxx) { // 根据 key,可以直接在 对象 里面获取数据 - const datachildarrboxArr = this.xxx[item]; - if (!includes(keydata2, datachildarrboxArr)) { // 如果不全部包含 - keydata2.splice(keydata2.findIndex(items => items == item), 1); - } + if (item in this.xxx) { // 根据 key,可以直接在 对象 里面获取数据 + const datachildarrboxArr = this.xxx[item]; + if (!includes(keydata2, datachildarrboxArr)) { // 如果不全部包含 + keydata2.splice(keydata2.findIndex(items => items == item), 1); } + } }); this.http.post( `/api/Roles/${id}/Permissions`, keydata2 ).subscribe( - data=>{ + data => { this.http.post( `/api/Roles/${id}/NavMenus`, keydata ).subscribe( - data=>{ + data => { this.dialogRef.close(); const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('创建成功','确定',config); + this.snackBar.open('创建成功', '确定', config); }, - err=>{ + err => { this.dialogRef.close(); const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('创建菜单权限失败','确定',config); + this.snackBar.open('创建菜单权限失败', '确定', config); } ) }, - err=>{ + err => { this.dialogRef.close(); const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('创建数据权限失败','确定',config); + this.snackBar.open('创建数据权限失败', '确定', config); } ) }, - err=>{ + err => { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('角色名称不符合规范','确定',config); + this.snackBar.open('角色名称不符合规范', '确定', config); } ) } @@ -441,8 +461,8 @@ export class EditRole { expandable: !!node.children && node.children.length > 0, name: node.name, level: level, - id:node.id, - children:node.children + id: node.id, + children: node.children }; } treeControl = new FlatTreeControl( @@ -457,43 +477,43 @@ export class EditRole { myControl = new FormControl(); //注入MatDialogRef,可以用来关闭对话框 //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,public snackBar: MatSnackBar,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService) {} - - olddata =[] //原始所有--数据权限 - olddata2 =[] //原始所有--菜单权限 + constructor(private http: HttpClient, public dialogRef: MatDialogRef, public snackBar: MatSnackBar, @Inject(MAT_DIALOG_DATA) public data, private tree: TreeService) { } + + olddata = [] //原始所有--数据权限 + olddata2 = [] //原始所有--菜单权限 newdata = [] newdata2 = [] placeholdername = this.data.name datachildarrbox = {} //数据权限存放有children的 父id:子id1 子id2 子id3 menuchildarrbox = {} //菜单权限存放有children的 父id:子id1 子id2 子id3 checkedMap = {} - ngOnInit(){ + ngOnInit() { //获得角色的数据权限,选中的checked为true - this.http.get(`/api/Roles/${this.data.id}/Permissions`).subscribe((data: any[])=>{ - this.olddata =data + this.http.get(`/api/Roles/${this.data.id}/Permissions`).subscribe((data: any[]) => { + this.olddata = data this.newdata = this.tree.toTree(this.olddata) //如果子节点存在选中则父节点默认选中 - this.newdata.forEach(item=>{ - if(item.children){ + this.newdata.forEach(item => { + if (item.children) { item.children.forEach(element => { - if(element.checked){ + if (element.checked) { this.checkedMap[item.id] = true } }); } }) - data.forEach(item=>{ - if(item.checked){ + data.forEach(item => { + if (item.checked) { this.checkedMap[item.id] = true; } }) this.dataSource.data = this.newdata; this.treeControl.expandAll() - this.dataSource.data.forEach(item=>{ - if(item.children){ + this.dataSource.data.forEach(item => { + if (item.children) { var childarr = [] item.children.forEach(n => { childarr.push(n.id) @@ -505,20 +525,20 @@ export class EditRole { //获得角色的菜单权限,选中的checked为true - this.http.get(`/api/Roles/${this.data.id}/NavMenus`).subscribe((data: any[])=>{ - this.olddata2 =data + this.http.get(`/api/Roles/${this.data.id}/NavMenus`).subscribe((data: any[]) => { + this.olddata2 = data this.newdata2 = this.tree.toTree(this.olddata2) data.forEach(item => { - if(item.checked){ + if (item.checked) { this.checkedMap[item.id] = item.checked; } - }); - + }); + this.dataSource2.data = this.newdata2; this.treeControl.expandAll() - this.dataSource2.data.forEach(item=>{ - if(item.children){ + this.dataSource2.data.forEach(item => { + if (item.children) { var childarr = [] item.children.forEach(n => { childarr.push(n.id) @@ -530,24 +550,24 @@ export class EditRole { } //选中对应小组 - selectedAll(event, node){ - this.olddata.forEach(item=>{ - if(item.parentId == node.id){ + selectedAll(event, node) { + this.olddata.forEach(item => { + if (item.parentId == node.id) { this.checkedMap[item.id] = event.checked; } }) // console.log(this.olddata2,node ) - var menus =[] //导航菜单可能有三级 用于存储第二级 + var menus = [] //导航菜单可能有三级 用于存储第二级 //选中一级菜单 - this.olddata2.forEach(item=>{ - if(item.parentId == node.id){ + this.olddata2.forEach(item => { + if (item.parentId == node.id) { this.checkedMap[item.id] = event.checked; menus.push(item) } }) //将二级菜单也选中 - menus.forEach(item=>{ - if(item.children){ + menus.forEach(item => { + if (item.children) { item.children.forEach(n => { this.checkedMap[n.id] = event.checked; }); @@ -562,93 +582,93 @@ export class EditRole { } - onSubmit(value){ + onSubmit(value) { var keydata = [] //存储选中的菜单权限 var keydata2 = [] //存储选中的数据权限 - - for(let i in value){ - if(value[i]){ - if(i.indexOf("first") && i!="name" && i!="order"){ - keydata.push(i.split('.')[1]) + + for (let i in value) { + if (value[i]) { + if (i.indexOf("first") && i != "name" && i != "order") { + keydata.push(i.split('.')[1]) } - if(i.indexOf("second") && i!="name" && i!="order"){ - keydata2.push(i.split('.')[1]) + if (i.indexOf("second") && i != "name" && i != "order") { + keydata2.push(i.split('.')[1]) } } } let newdate = new Date(); - function getDate(date){ + function getDate(date) { //date是传过来的时间戳,注意需为13位,10位需*1000 //也可以不传,获取的就是当前时间 var time = new Date(date); - var year= time.getFullYear() //年 + var year = time.getFullYear() //年 var month = ("0" + (time.getMonth() + 1)).slice(-2); //月 var day = ("0" + time.getDate()).slice(-2); //日 var mydate = year + "-" + month + "-" + day; return mydate } let time = getDate(newdate) - if(this.data['id'] != "0" && this.data['id'] != "1"){ + if (this.data['id'] != "0" && this.data['id'] != "1") { this.http.put( - `/api/Roles/${this.data['id']}`, + `/api/Roles/${this.data['id']}`, { - id:this.data['id'], + id: this.data['id'], name: value.name, order: this.data.order, enabled: true, - creationTime:time, + creationTime: time, } - ).subscribe(data=>{ - + ).subscribe(data => { + }, - err=>{ - 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('修改角色姓名请求失败', '确定', config); + }) function includes(arr1, arr2) { return arr2.every(val => arr1.includes(val)); } const orginalList = [...keydata2]; orginalList.forEach((item) => { // forEach 里面 splice 有问题,详见 https://blog.csdn.net/qq_38128179/article/details/92798157 - if (item in this.datachildarrbox) { // 根据 key,可以直接在 对象 里面获取数据 - const datachildarrboxArr = this.datachildarrbox[item]; - if (!includes(keydata2, datachildarrboxArr)) { // 如果不全部包含 - keydata2.splice(keydata2.findIndex(items => items == item), 1); - } + if (item in this.datachildarrbox) { // 根据 key,可以直接在 对象 里面获取数据 + const datachildarrboxArr = this.datachildarrbox[item]; + if (!includes(keydata2, datachildarrboxArr)) { // 如果不全部包含 + keydata2.splice(keydata2.findIndex(items => items == item), 1); } + } }); this.http.post( `/api/Roles/${this.data.id}/Permissions`, keydata2 - ).subscribe(data=>{ + ).subscribe(data => { }, - err=>{ - 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('分配数据权限请求失败', '确定', config); + }) } this.http.post( `/api/Roles/${this.data.id}/NavMenus`, keydata ).subscribe( - data=>{ + data => { this.dialogRef.close(); const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('编辑成功','确定',config); + this.snackBar.open('编辑成功', '确定', config); }, - err=>{ + err => { this.dialogRef.close(); const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('分配菜单权限失败','确定',config); + this.snackBar.open('分配菜单权限失败', '确定', config); } ) // this.http.put( @@ -662,7 +682,7 @@ export class EditRole { // } // ).subscribe( // data=>{ - + // }, @@ -674,7 +694,7 @@ export class EditRole { // } // ) - + } }