Skip to content

Commit 4b7accc

Browse files
committed
chore(schema generator): 优化表单生成器
1 parent 683380e commit 4b7accc

File tree

9 files changed

+16
-75
lines changed

9 files changed

+16
-75
lines changed

packages/demo/src/schema-generator/views/editor/common/editorData.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ export function editorItem2SchemaFieldProps(editorItem, formData) {
8383
// baseValue
8484
const {
8585
schemaOptions: baseSchemaOptions,
86-
uiOptions: baseUiOptions
86+
uiOptions: {
87+
required,
88+
...baseUiOptions
89+
} = {}
8790
} = editorItem.componentValue.baseValue;
8891

8992
// options
@@ -95,10 +98,7 @@ export function editorItem2SchemaFieldProps(editorItem, formData) {
9598
// rules
9699
const {
97100
schemaOptions: ruleSchemaOptions,
98-
uiOptions: {
99-
required = false,
100-
ruleUiOptions
101-
} = {}
101+
uiOptions: ruleUiOptions,
102102
} = editorItem.componentValue.rules || {};
103103

104104
// schema

packages/demo/src/schema-generator/views/editor/common/registerExtraElementComponent.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Vue from 'vue';
66

77
const ExtraComponents = {
88
// 需要额外注册的 Field,通过图片选择图片加链接
9-
LinkImgField: () => import('../fieldComponents/linkImgField/LinkImgField')
9+
// LinkImgField: () => import('../fieldComponents/linkImgField/LinkImgField')
1010
};
1111

1212
Object.entries(ExtraComponents).forEach(([key, value]) => {

packages/demo/src/schema-generator/views/editor/viewComponents/Input/index.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,6 @@ export default {
7272
type: 'number'
7373
}
7474
}
75-
},
76-
uiOptions: {
77-
type: 'object',
78-
properties: {
79-
required: {
80-
title: '必填',
81-
type: 'boolean',
82-
default: false
83-
}
84-
}
8575
}
8676
}
8777
}

packages/demo/src/schema-generator/views/editor/viewComponents/InputNumber/index.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,6 @@ export default {
7474
type: 'number'
7575
},
7676
}
77-
},
78-
uiOptions: {
79-
type: 'object',
80-
properties: {
81-
required: {
82-
title: '必填',
83-
type: 'boolean',
84-
default: false
85-
}
86-
}
8777
}
8878
}
8979
}

packages/demo/src/schema-generator/views/editor/viewComponents/MultiSelect/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,5 @@ export default {
5959
}
6060
}
6161
}
62-
}, 'array')
62+
}, 'array', true)
6363
};

packages/demo/src/schema-generator/views/editor/viewComponents/MultiUpload/index.js

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,6 @@ export default {
3737
}
3838
}
3939
}
40-
},
41-
rules: {
42-
type: 'object',
43-
title: '数据校验',
44-
required: [],
45-
properties: {
46-
uiOptions: {
47-
type: 'object',
48-
properties: {
49-
required: {
50-
title: '必填',
51-
type: 'boolean',
52-
default: false
53-
}
54-
}
55-
}
56-
}
5740
}
5841
})
5942
};

packages/demo/src/schema-generator/views/editor/viewComponents/Slider/index.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,6 @@ export default {
7777
type: 'number'
7878
},
7979
}
80-
},
81-
uiOptions: {
82-
type: 'object',
83-
properties: {
84-
required: {
85-
title: '必填',
86-
type: 'boolean',
87-
default: false
88-
}
89-
}
9080
}
9181
}
9282
}

packages/demo/src/schema-generator/views/editor/viewComponents/Upload/index.js

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,6 @@ export default {
3434
}
3535
}
3636
}
37-
},
38-
rules: {
39-
type: 'object',
40-
title: '数据校验',
41-
required: [],
42-
properties: {
43-
uiOptions: {
44-
type: 'object',
45-
properties: {
46-
required: {
47-
title: '必填',
48-
type: 'boolean',
49-
default: false
50-
}
51-
}
52-
}
53-
}
5437
}
5538
})
5639
};

packages/demo/src/schema-generator/views/editor/viewComponents/genSchema.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import { formatFormLabelWidth } from '../common/editorData';
66

7-
function genBaseVal(type = 'string') {
7+
function genBaseVal(type = 'string', isMultiSelect = false) {
88
return {
99
title: '基础配置',
1010
type: 'object',
@@ -56,7 +56,7 @@ function genBaseVal(type = 'string') {
5656
uiOptions: {
5757
type: 'object',
5858
properties: {
59-
...!['array', 'object'].includes(type) ? {
59+
...!['array', 'object'].includes(type) || isMultiSelect ? {
6060
width: {
6161
title: '宽度',
6262
type: 'string',
@@ -73,6 +73,11 @@ function genBaseVal(type = 'string') {
7373
}
7474
}
7575
},
76+
required: {
77+
title: '必填',
78+
type: 'boolean',
79+
default: false
80+
},
7681
disabled: {
7782
title: '禁用',
7883
type: 'boolean',
@@ -98,7 +103,7 @@ function genBaseVal(type = 'string') {
98103
};
99104
}
100105

101-
export default (schema, type) => ({
106+
export default (schema, type, isMultiSelect) => ({
102107
type: 'object',
103108
required: ['property'],
104109
properties: {
@@ -108,7 +113,7 @@ export default (schema, type) => ({
108113
'ui:placeholder': '请输入属性名',
109114
'err:required': '属性名必填'
110115
},
111-
baseValue: genBaseVal(type),
116+
baseValue: genBaseVal(type, isMultiSelect),
112117
...schema
113118
}
114119
});

0 commit comments

Comments
 (0)