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

View File

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

View File

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

View File

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

View File

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