checkbox 多选框

一组可选项中进行多项选择时

代码演示

checkbox 多选框 - 图1

基础样例

最简单的用法。

  1. import { Component } from '@angular/core';
  2. import { of } from 'rxjs';
  3. import { delay } from 'rxjs/operators';
  4. import { NzMessageService } from 'ng-zorro-antd/message';
  5. import { SFSchema, SFCascaderWidgetSchema, SFCheckboxWidgetSchema } from '@delon/form';
  6. @Component({
  7. selector: 'form-checkbox-simple',
  8. template: `
  9. <sf [schema]="schema" (formSubmit)="submit($event)"></sf>
  10. `,
  11. })
  12. export class FormCheckboxSimpleComponent {
  13. schema: SFSchema = {
  14. properties: {
  15. // 单个多选框
  16. single: {
  17. type: 'boolean',
  18. title: '同意本协议',
  19. description: '《用户协议》',
  20. ui: {
  21. widget: 'checkbox',
  22. } as SFCascaderWidgetSchema,
  23. default: true,
  24. },
  25. // 多选框组
  26. mulit: {
  27. type: 'string',
  28. title: 'Mulit',
  29. enum: ['Apple', 'Pear', 'Orange'],
  30. ui: {
  31. widget: 'checkbox',
  32. span: 8, // 指定每一项 8 个单元的布局
  33. checkAll: true,
  34. } as SFCheckboxWidgetSchema,
  35. default: ['Apple'],
  36. },
  37. // 异步数据
  38. async: {
  39. type: 'string',
  40. title: 'Async',
  41. ui: {
  42. widget: 'checkbox',
  43. asyncData: () =>
  44. of([{ label: 'Apple', value: 'Apple' }, { label: 'Pear', value: 'Pear' }, { label: 'Orange', value: 'Orange' }]).pipe(
  45. delay(200),
  46. ),
  47. } as SFCheckboxWidgetSchema,
  48. default: ['Apple'],
  49. },
  50. },
  51. };
  52. constructor(public msg: NzMessageService) {}
  53. submit(value: any) {
  54. this.msg.success(JSON.stringify(value));
  55. }
  56. }

API

schema 属性

成员说明类型默认值
[enum]数据源,当数据源存在于表示一组多选框SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[title]enum 时表示多选框文本内容string-
[description]enum 时表示多选框后帮助信息string-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[span]指定每个选框单元格数量,参考布局number-
[styleType]radio的样式default, buttondefault
[checkAll]是否需要全选boolean-
[checkAllText]全选按钮文本string全选
[change]值变更事件,参数:单个多选框为 boolean,否则为 SFSchemaEnum[](res: boolean | SFSchemaEnum[]) => void-