Skip to content

Commit

Permalink
feat(from): add required in schema
Browse files Browse the repository at this point in the history
  • Loading branch information
anncwb committed Nov 5, 2020
1 parent b6d5e5c commit 2859067
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
8 changes: 7 additions & 1 deletion src/components/Form/src/FormItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,19 @@ export default defineComponent({
rulesMessageJoinLabel,
label,
dynamicRules,
required,
} = props.schema;

if (isFunction(dynamicRules)) {
return dynamicRules(unref(getValuesRef));
}

const rules: ValidationRule[] = cloneDeep(defRules);
let rules: ValidationRule[] = cloneDeep(defRules);

if ((!rules || rules.length === 0) && required) {
rules = [{ required }];
}

const requiredRuleIndex: number = rules.findIndex(
(rule) => Reflect.has(rule, 'required') && !Reflect.has(rule, 'validator')
);
Expand Down
2 changes: 2 additions & 0 deletions src/components/Form/src/types/form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ export interface FormSchema {
component: ComponentType;
// 组件参数
componentProps?: any;
// 必填
required?: boolean;

// 校验规则
rules?: RuleObject[];
Expand Down
8 changes: 4 additions & 4 deletions src/views/demo/form/RuleForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
colProps: {
span: 8,
},
rules: [{ required: true }],
required: true,
},
{
field: 'field2',
Expand All @@ -33,7 +33,7 @@
colProps: {
span: 8,
},
rules: [{ required: true }],
required: true,
},
{
field: 'field3',
Expand All @@ -42,7 +42,7 @@
colProps: {
span: 8,
},
rules: [{ required: true }],
required: true,
},
{
field: 'field4',
Expand All @@ -65,7 +65,7 @@
},
],
},
rules: [{ required: true }],
rules: [{ required: true, message: '请输入aa' }],
},
{
field: 'field5',
Expand Down

0 comments on commit 2859067

Please sign in to comment.