import { Component, OnInit, ViewChild } from '@angular/core'; import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; import { _HttpClient } from '@delon/theme'; import { NzMessageService } from 'ng-zorro-antd/message'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; import { map } from 'rxjs/operators'; import { SystemService } from '../../../services/system.service'; @Component({ selector: 'app-system-add', templateUrl: './staff-modal.component.html' }) export class SystemStaffStaffModalComponent implements OnInit { @ViewChild('sf', { static: false }) sf!: SFComponent; i: any; schema!: SFSchema; ui!: SFUISchema; constructor(private modal: NzModalRef, public msgSrv: NzMessageService, public service: SystemService) {} ngOnInit(): void { this.initSF(this.i); } initSF(staff: any) { this.schema = { properties: { staffName: { title: '员工姓名', type: 'string', maxLength: 11, ui: { widget: staff?.appUserId ? 'text' : 'string', placeholder: '请输入员工姓名' }, default: staff.name }, telephone: { title: '手机号码', type: 'string', format: 'mobile', maxLength: 11, ui: { widget: staff?.appUserId ? 'text' : 'string', placeholder: '请输入员工手机号' }, default: staff.telephone }, roleId: { title: '角色', type: 'string', ui: { widget: 'select', placeholder: '请选择员工角色', mode: 'multiple', maxMultipleCount: 5, asyncData: () => { return this.service.request(this.service.$api_getAppRoleList).pipe( map((res: any) => { return res .filter((role: any) => role.roleCode !== 'Administrator') .map((item: any) => { return { label: item.roleName, value: item.id }; }); }) ); } }, default: staff?.roleId || null } }, required: ['staffName', 'telephone', 'roleId'] }; this.ui = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; } sure() { if (!this.sf.value.roleId || this.sf.value.roleId.length === 0) { this.service.msgSrv.error('员工角色不能为空!'); return; } if (this.i.userId === 0) { const params: any = { ...this.sf.value }; this.service.request(this.service.$api_add_staff, params).subscribe(res => { if (res) { this.service.msgSrv.success('保存成功!'); this.modal.close(true); } }); } else { const params: any = { appUserId: this.i.appUserId, ...this.sf.value }; this.service.request(this.service.$api_edit_staff, params).subscribe(res => { if (res) { this.service.msgSrv.success('编辑成功!'); this.modal.close(true); } }); } } close() { this.modal.destroy(); } }