Files
bbq/src/app/routes/sys-setting/components/role-management/edit/edit.component.ts
wangshiming 5b1d5d7ea8 fix bug
2022-04-26 10:21:05 +08:00

133 lines
3.6 KiB
TypeScript

import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFSchemaEnumType, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { EAEnvironmentService } from '@shared';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { delay, map } from 'rxjs/operators';
import { SystemService } from '../../../services/system.service';
import { SettingMenuComponent } from '../menu/menu.component';
@Component({
selector: 'app-cuc-edit',
templateUrl: './edit.component.html',
styleUrls: ['./edit.less']
})
export class SettingRoleEditComponent implements OnInit {
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('menu', { static: false })
menu!: SettingMenuComponent;
roleInfoData: any = {};
authorityAssistId: any[] = [];
params: any;
changeValue: boolean = false
schema!: SFSchema;
authority: any[] = [];
constructor(private modal: NzModalRef, public service: SystemService) {}
ngOnInit(): void {
this.initSF();
if (this.params.id) {
this.getRoleInfo();
}
}
initSF() {
this.schema = {
properties: {
roleName: {
title: '角色名称',
type: 'string',
default: this.roleInfoData.roleName,
maxLength: 20,
ui: {
placeholder: '请输入角色名称'
}
},
roleDescription: {
title: '角色描述',
type: 'string',
maxLength: 50,
default: this.roleInfoData.roleDescription,
ui: {
autosize: { minRows: 3 },
hidden: this.params.lookType === 'detail',
placeholder: '请输入角色描述',
widget: 'textarea'
}
}
},
required: ['roleName']
};
}
getRoleInfo() {
this.roleInfoData = []
const params = {
id: this.params.id
};
console.log(this.params.infoUrl)
this.service.request(this.params.infoUrl, params).subscribe(res => {
if (res) {
this.roleInfoData = res;
this.initSF();
}
});
}
getData(res: { authority: any[]; authorityAssistId: any[] }) {
console.log('修改了');
this.authority = res.authority;
this.authorityAssistId = res.authorityAssistId;
}
close() {
this.modal.destroy();
}
changeIF(value: any) {
console.log(value);
console.log('54545');
this.changeValue = true
}
sure() {
if (!this.sf?.valid) {
this.service.msgSrv.warning('角色名称不能为空');
return;
}
console.log(this.changeValue);
const auths = this.menu?.washTree();
if (auths.authorityAssistId.length === 0) {
this.service.msgSrv.warning('请选择权限!');
return;
}
const params: any = {
id: this.params.id,
...this.sf.value,
authority: auths.authority,
authorityAssistId: auths.authorityAssistId
};
if (this.params.id === 0) {
delete params.id;
}
if (this.params?.type === 'freight') {
Object.assign(params, { enterpriseId: 0, enterpriseProjectId: 0 });
}
if (this.params.id) {
this.service.request(this.params.updateUrl, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('编辑成功');
this.modal.close(true);
}
});
} else {
this.service.request(this.params.addUrl, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('新增成功');
this.modal.close(true);
}
});
}
}
}