import { ActiveRecord, RuntimeM2MField, SubmitRelationHandler, SubmitValue } from '@oinone/kunlun-engine'; import { ModelFieldType, ViewType } from '@oinone/kunlun-meta'; import { SPI } from '@oinone/kunlun-spi'; import { SelectMode } from '@oinone/kunlun-vue-ui-common'; import { Widget } from '@oinone/kunlun-vue-widget'; import { FormFieldWidget, TableSelectFieldWidget } from '../../../../basic'; @SPI.ClassFactory( FormFieldWidget.Token({ viewType: [ViewType.Form, ViewType.Search], ttype: ModelFieldType.ManyToMany, widget: ['TableSelect', 'SelectTable'] }) ) export class FormM2MTableSelectFieldWidget extends TableSelectFieldWidget< ActiveRecord, ActiveRecord[], RuntimeM2MField > { @Widget.Reactive() protected mode: SelectMode = SelectMode.multiple; public async submit(submitValue: SubmitValue) { const { field, itemName, value, viewMode, submitCache, submitType, relationUpdateType } = this; return SubmitRelationHandler.M2M( field, itemName, submitValue, value, viewMode, submitCache, submitType, relationUpdateType ); } }