import { SubmitHandler, SubmitValue } from '@oinone/kunlun-engine'; import { ModelFieldType, ViewType } from '@oinone/kunlun-meta'; import { SPI } from '@oinone/kunlun-spi'; import { Widget } from '@oinone/kunlun-vue-widget'; import { BaseFieldWidget } from '../../../../basic'; import { isValidatorSuccess, type ValidatorInfo } from '../../../../typing'; import { encrypt } from '../../../../util'; import { FormStringFieldWidget } from '../FormStringFieldWidget'; /** * 单值且ttype为string的默认组件 */ @SPI.ClassFactory( BaseFieldWidget.Token({ viewType: [ViewType.Form, ViewType.Search], ttype: ModelFieldType.String }) ) export class FormStringInputFieldWidget extends FormStringFieldWidget { public submit(submitValue: SubmitValue) { let finalValue = this.value; /** * 数据提交的时候,如果判断当前字段是否需要加密 */ if (this.crypto && finalValue) { finalValue = encrypt(finalValue); } return SubmitHandler.DEFAULT(this.field, this.itemName, submitValue, finalValue); } @Widget.Reactive() protected get translation() { return !!this.getDsl().translation; } public async validator(): Promise { const res = await this.validatorSpecific(this.value); if (!isValidatorSuccess(res)) { return res; } if (this.value == null) { return this.validatorSuccess(); } return this.validateLength(this.value); } } /** * @deprecated 6.0.0 please using FormStringInputFieldWidget */ export const FormStringFieldSingleWidget = FormStringInputFieldWidget;