107 lines
3.1 KiB
TypeScript
107 lines
3.1 KiB
TypeScript
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',
|
|
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();
|
|
}
|
|
}
|