Merge "fix: Fix the validate message for some fields with empty value"

This commit is contained in:
Zuul 2021-12-20 07:31:51 +00:00 committed by Gerrit Code Review
commit 17f029b8ad
5 changed files with 18 additions and 6 deletions

View File

@ -259,7 +259,9 @@ export default class FormItem extends React.Component {
getSelectTableValidator = (rule, value) => {
if (!value || value.selectedRowKeys.length === 0) {
return Promise.reject(t('Please select!'));
return Promise.reject(
new Error(rule.placeholder || `${t('Please select')}${rule.label}!`)
);
}
return Promise.resolve();
};
@ -288,6 +290,7 @@ export default class FormItem extends React.Component {
name,
hidden,
label,
placeholder,
} = this.props;
if (hidden) {
return [];
@ -299,9 +302,16 @@ export default class FormItem extends React.Component {
const newRule = {};
const requiredRule = {};
if (required) {
if (tip && type.indexOf('select-table') < 0) {
if (type && type.includes('select-table')) {
requiredRule.required = true;
requiredRule.message = `${t('Please input') + label}!`;
requiredRule.validator = (rule, value) =>
this.getSelectTableValidator({ ...rule, ...this.props }, value);
} else if (type && type.includes('select')) {
requiredRule.required = true;
requiredRule.message = placeholder || `${t('Please select') + label}!`;
} else if (tip) {
requiredRule.required = true;
requiredRule.message = placeholder || `${t('Please input') + label}!`;
} else {
newRule.required = required;
}
@ -311,9 +321,7 @@ export default class FormItem extends React.Component {
}
if (validator) {
newRule.validator = validator;
} else if (type.indexOf('select-table') >= 0 && required) {
newRule.validator = this.getSelectTableValidator;
} else if (type.indexOf('textarea') >= 0 && name === 'description') {
} else if (type && type.includes('textarea') && name === 'description') {
newRule.validator = this.getDescriptionValidator;
}
if (!isEmpty(newRule)) {

View File

@ -171,6 +171,7 @@ export class BaseStep extends Base {
{
name: 'flavor',
label: t('Specification'),
type: 'select-table',
component: (
<FlavorSelectTable isIronic="true" onChange={this.onFlavorChange} />
),

View File

@ -110,6 +110,7 @@ export class Resize extends ModalAction {
{
name: 'newFlavor',
label: t('Flavor'),
type: 'select-table',
component: (
<FlavorSelectTable flavor={flavor} onChange={this.onFlavorChange} />
),

View File

@ -109,6 +109,7 @@ export class ResizeOnline extends ModalAction {
{
name: 'newFlavor',
label: t('Flavor'),
type: 'select-table',
component: (
<FlavorSelectTable
flavor={flavor}

View File

@ -363,6 +363,7 @@ export class BaseStep extends Base {
{
name: 'flavor',
label: t('Specification'),
type: 'select-table',
component: this.getFlavorComponent(),
required: true,
wrapperCol: {