133 lines
3.6 KiB
TypeScript
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);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|