Files
bbq/src/app/routes/sys-setting/components/staff-management/staff-modal/staff-modal.component.ts
Taric Xin a6a0a9f7fb edit
2022-01-04 17:18:05 +08:00

109 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: 32,
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']
};
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,
enterpriseId: 0
};
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();
}
}