穿梭框

双栏穿梭选择框。

导入模块

非内置模块,需要额外在 json-schema.module.ts 导入 TransferWidgetModule

注意事项

  • default 值被当成 direction: 'right' 表示右栏中

代码演示

基础样例

最简单的用法。

expand code expand code
import { Component, inject } from '@angular/core';
import { of, delay } from 'rxjs';

import { YelonFormModule, SFSchema } from '@yelon/form';
import { SFTransferWidgetSchema } from '@yelon/form/widgets/transfer';
import { NzMessageService } from 'ng-zorro-antd/message';

@Component({
  selector: 'form-transfer-simple',
  template: ` <sf [schema]="schema" (formSubmit)="submit($event)" /> `,
  standalone: true,
  imports: [YelonFormModule]
})
export class FormTransferSimpleComponent {
  private readonly msg = inject(NzMessageService);
  schema: SFSchema = {
    properties: {
      roles: {
        type: 'number',
        title: '角色',
        enum: [
          { title: 'DNS管理', value: 10 },
          { title: 'ECS管理', value: 11 },
          { title: 'OSS管理', value: 12 },
          { title: 'RDS管理', value: 13 }
        ],
        ui: {
          widget: 'transfer',
          titles: ['未拥有', '已拥有']
        } as SFTransferWidgetSchema,
        default: [11, 12]
      },
      roles2: {
        type: 'number',
        title: '角色',
        ui: {
          widget: 'transfer',
          titles: ['未拥有', '已拥有'],
          asyncData: () =>
            of([
              { title: 'DNS管理', value: 10 },
              { title: 'ECS管理', value: 11 },
              { title: 'OSS管理', value: 12 },
              { title: 'RDS管理', value: 13 }
            ]).pipe(delay(10))
        } as SFTransferWidgetSchema,
        default: [11, 12]
      }
    }
  };

  submit(value: {}): void {
    this.msg.success(JSON.stringify(value));
  }
}

API

schema属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[titles]标题集合,顺序从左至右string[]['', '']
[operations]操作文案集合,顺序从下至上string[]['', '']
[listStyle]两个穿梭框的自定义样式,以ngStyle写法标题object-
[itemUnit]单数单位string项目
[itemsUnit]复数单位string项目
[showSearch]是否显示搜索框booleanfalse
[filterOption]接收 inputValueoption 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false--
[searchPlaceholder]搜索框的默认值string-
[notFoundContent]当列表为空时显示的内容string-
[canMove]穿梭时二次校验。function-
[change]选项在两栏之间转移时的回调函数(options: TransferChange) => void-
[searchChange]搜索框内容时改变时的回调函数(options: TransferSearchChange) => void-
[selectChange]选中项发生改变时的回调函数(options: TransferSelectChange) => void-
Loading...