import { translateValueByKey } from '@oinone/kunlun-engine'; import { ViewType } from '@oinone/kunlun-meta'; import { SPI } from '@oinone/kunlun-spi'; import { Widget } from '@oinone/kunlun-vue-widget'; import { FormFieldWidget } from '../../../basic'; import { FormStringInputFieldWidget } from '../../../field'; import { isValidatorSuccess, type ValidatorInfo } from '../../../typing'; import type { HomepageConfigRule } from '../typing'; @SPI.ClassFactory( FormFieldWidget.Token({ viewType: ViewType.Form, widget: 'AdvancedHomepageSettingRuleNameWidget' }) ) export class AdvancedHomepageSettingRuleNameWidget extends FormStringInputFieldWidget { @Widget.Inject('useHomepageSetting') protected useHomepageSetting; public async validator(): Promise { const res = await super.validator(); if (!isValidatorSuccess(res)) { return res; } const rule = this.formData as HomepageConfigRule; const isUnique: boolean = this.useHomepageSetting.checkRuleName(rule); if (!isUnique) { return this.validatorError(translateValueByKey('规则名称应用下唯一')); } return this.validatorSuccess(); } }