Skip to content

Commit 2859067

Browse files
committed
feat(from): add required in schema
1 parent b6d5e5c commit 2859067

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

src/components/Form/src/FormItem.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,19 @@ export default defineComponent({
102102
rulesMessageJoinLabel,
103103
label,
104104
dynamicRules,
105+
required,
105106
} = props.schema;
106107

107108
if (isFunction(dynamicRules)) {
108109
return dynamicRules(unref(getValuesRef));
109110
}
110111

111-
const rules: ValidationRule[] = cloneDeep(defRules);
112+
let rules: ValidationRule[] = cloneDeep(defRules);
113+
114+
if ((!rules || rules.length === 0) && required) {
115+
rules = [{ required }];
116+
}
117+
112118
const requiredRuleIndex: number = rules.findIndex(
113119
(rule) => Reflect.has(rule, 'required') && !Reflect.has(rule, 'validator')
114120
);

src/components/Form/src/types/form.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ export interface FormSchema {
112112
component: ComponentType;
113113
// 组件参数
114114
componentProps?: any;
115+
// 必填
116+
required?: boolean;
115117

116118
// 校验规则
117119
rules?: RuleObject[];

src/views/demo/form/RuleForm.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
colProps: {
2525
span: 8,
2626
},
27-
rules: [{ required: true }],
27+
required: true,
2828
},
2929
{
3030
field: 'field2',
@@ -33,7 +33,7 @@
3333
colProps: {
3434
span: 8,
3535
},
36-
rules: [{ required: true }],
36+
required: true,
3737
},
3838
{
3939
field: 'field3',
@@ -42,7 +42,7 @@
4242
colProps: {
4343
span: 8,
4444
},
45-
rules: [{ required: true }],
45+
required: true,
4646
},
4747
{
4848
field: 'field4',
@@ -65,7 +65,7 @@
6565
},
6666
],
6767
},
68-
rules: [{ required: true }],
68+
rules: [{ required: true, message: '请输入aa' }],
6969
},
7070
{
7171
field: 'field5',

0 commit comments

Comments
 (0)