Commit a0c3197454b59a231cf6d27048b2e9c0bd7bf77f
1 parent
3713487c
perf: update form types
Showing
12 changed files
with
100 additions
and
22 deletions
CHANGELOG.zh_CN.md
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | ### ✨ Features |
4 | 4 | |
5 | +- 更新组件文档 | |
5 | 6 | - 面包屑支持显示图标 |
6 | 7 | - 新增 tinymce 富文本组件 |
7 | 8 | - 表单新增 submitOnReset 控制是否在重置时重新发起请求 |
... | ... | @@ -19,7 +20,6 @@ |
19 | 20 | - 关闭多标签页 tabs 动画 |
20 | 21 | - 升级 vite 版本为`v1.0.0.rc6` |
21 | 22 | - 删除中文路径警告。rc6 已修复 |
22 | -- 更新部分组件文档 | |
23 | 23 | |
24 | 24 | ### 🐛 Bug Fixes |
25 | 25 | ... | ... |
README.en-US.md
... | ... | @@ -228,11 +228,11 @@ yarn clean:lib # Delete node_modules, supported window |
228 | 228 | - [x] System performance optimization |
229 | 229 | - [x] Data import and export |
230 | 230 | - [x] Global error handling |
231 | +- [x] Rich text component | |
231 | 232 | |
232 | 233 | ## Developing features |
233 | 234 | |
234 | 235 | - [ ] Upload component |
235 | -- [ ] Rich text component | |
236 | 236 | - [ ] Theme configuration |
237 | 237 | - [ ] Dark theme |
238 | 238 | - [ ] Build CDN | ... | ... |
README.md
src/components/Button/types.ts
0 → 100644
1 | +import { VNodeChild } from 'vue'; | |
2 | + | |
3 | +export interface BasicButtonProps { | |
4 | + /** | |
5 | + * can be set to primary ghost dashed danger(added in 2.7) or omitted (meaning default) | |
6 | + * @default 'default' | |
7 | + * @type string | |
8 | + */ | |
9 | + type?: 'primary' | 'danger' | 'dashed' | 'ghost' | 'default'; | |
10 | + | |
11 | + /** | |
12 | + * set the original html type of button | |
13 | + * @default 'button' | |
14 | + * @type string | |
15 | + */ | |
16 | + htmlType?: 'button' | 'submit' | 'reset' | 'menu'; | |
17 | + | |
18 | + /** | |
19 | + * set the icon of button | |
20 | + * @type string | |
21 | + */ | |
22 | + icon?: VNodeChild | JSX.Element; | |
23 | + | |
24 | + /** | |
25 | + * can be set to circle or circle-outline or omitted | |
26 | + * @type string | |
27 | + */ | |
28 | + shape?: 'circle' | 'circle-outline'; | |
29 | + | |
30 | + /** | |
31 | + * can be set to small large or omitted | |
32 | + * @default 'default' | |
33 | + * @type string | |
34 | + */ | |
35 | + size?: 'small' | 'large' | 'default'; | |
36 | + | |
37 | + /** | |
38 | + * set the loading status of button | |
39 | + * @default false | |
40 | + * @type boolean | { delay: number } | |
41 | + */ | |
42 | + loading?: boolean | { delay: number }; | |
43 | + | |
44 | + /** | |
45 | + * disabled state of button | |
46 | + * @default false | |
47 | + * @type boolean | |
48 | + */ | |
49 | + disabled?: boolean; | |
50 | + | |
51 | + /** | |
52 | + * make background transparent and invert text and border colors, added in 2.7 | |
53 | + * @default false | |
54 | + * @type boolean | |
55 | + */ | |
56 | + ghost?: boolean; | |
57 | + | |
58 | + /** | |
59 | + * option to fit button width to its parent width | |
60 | + * @default false | |
61 | + * @type boolean | |
62 | + */ | |
63 | + block?: boolean; | |
64 | + | |
65 | + onClick?: (e?: Event) => void; | |
66 | +} | ... | ... |
src/components/Form/src/types/form.ts
1 | -import type { Form, ValidationRule } from 'ant-design-vue/types/form/form'; | |
1 | +import type { Form, NamePath, ValidationRule } from 'ant-design-vue/types/form/form'; | |
2 | 2 | import type { VNode } from 'vue'; |
3 | 3 | import type { BasicButtonProps } from '/@/components/Button/types'; |
4 | 4 | import type { FormItem } from './formItem'; |
... | ... | @@ -12,16 +12,23 @@ export interface RenderCallbackParams { |
12 | 12 | model: any; |
13 | 13 | field: string; |
14 | 14 | } |
15 | + | |
16 | +export interface ButtonProps extends BasicButtonProps { | |
17 | + text?: string; | |
18 | +} | |
19 | + | |
15 | 20 | export interface FormActionType extends Form { |
16 | - submit(): Promise<void>; | |
17 | - setFieldsValue<T>(values: T): void; | |
18 | - resetFields(): Promise<any>; | |
21 | + submit: () => Promise<void>; | |
22 | + setFieldsValue: <T>(values: T) => void; | |
23 | + resetFields: () => Promise<any>; | |
19 | 24 | getFieldsValue: () => any; |
20 | 25 | clearValidate: (name?: string | string[]) => void; |
21 | - updateSchema(data: Partial<FormSchema> | Partial<FormSchema>[]): void; | |
22 | - setProps(formProps: Partial<FormProps>): void; | |
23 | - removeSchemaByFiled(field: string | string[]): void; | |
24 | - appendSchemaByField(schema: FormSchema, prefixField?: string): void; | |
26 | + updateSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => void; | |
27 | + setProps: (formProps: Partial<FormProps>) => void; | |
28 | + removeSchemaByFiled: (field: string | string[]) => void; | |
29 | + appendSchemaByField: (schema: FormSchema, prefixField?: string) => void; | |
30 | + validateFields: (nameList?: NamePath[]) => Promise<any>; | |
31 | + validate: (nameList?: NamePath[]) => Promise<any>; | |
25 | 32 | } |
26 | 33 | export type RegisterFn = (formInstance: FormActionType) => void; |
27 | 34 | |
... | ... | @@ -38,7 +45,7 @@ export interface FormProps { |
38 | 45 | wrapperCol?: Partial<ColEx>; |
39 | 46 | |
40 | 47 | // 通用col配置 |
41 | - baseColProps?: any; | |
48 | + baseColProps?: Partial<ColEx>; | |
42 | 49 | |
43 | 50 | // 表单配置规则 |
44 | 51 | schemas?: FormSchema[]; |
... | ... | @@ -55,7 +62,7 @@ export interface FormProps { |
55 | 62 | // 时间区间字段映射成多个 |
56 | 63 | fieldMapToTime?: FieldMapToTime; |
57 | 64 | // 自动设置placeholder |
58 | - autoSetPlaceHolder: boolean; | |
65 | + autoSetPlaceHolder?: boolean; | |
59 | 66 | // 校验信息是否加入label |
60 | 67 | rulesMessageJoinLabel?: boolean; |
61 | 68 | // 是否显示收起展开按钮 |
... | ... | @@ -66,10 +73,10 @@ export interface FormProps { |
66 | 73 | showActionButtonGroup?: boolean; |
67 | 74 | |
68 | 75 | // 重置按钮配置 |
69 | - resetButtonOptions?: Partial<BasicButtonProps>; | |
76 | + resetButtonOptions?: Partial<ButtonProps>; | |
70 | 77 | |
71 | 78 | // 确认按钮配置 |
72 | - submitButtonOptions?: Partial<BasicButtonProps>; | |
79 | + submitButtonOptions?: Partial<ButtonProps>; | |
73 | 80 | |
74 | 81 | // 操作列配置 |
75 | 82 | actionColOptions?: Partial<ColEx>; |
... | ... | @@ -129,7 +136,7 @@ export interface FormSchema { |
129 | 136 | render?: (renderCallbackParams: RenderCallbackParams) => VNode | VNode[] | string; |
130 | 137 | |
131 | 138 | // 渲染 col内容,需要外层包裹 form-item |
132 | - renderColContent?: (renderCallbackParams: RenderCallbackParams) => VNode | VNode[]; | |
139 | + renderColContent?: (renderCallbackParams: RenderCallbackParams) => VNode | VNode[] | string; | |
133 | 140 | |
134 | 141 | renderComponentContent?: (renderCallbackParams: RenderCallbackParams) => any; |
135 | 142 | ... | ... |
src/components/Table/src/const.ts
... | ... | @@ -2,21 +2,32 @@ import { SorterResult } from 'ant-design-vue/types/table/table'; |
2 | 2 | |
3 | 3 | export const ROW_KEY = 'key'; |
4 | 4 | |
5 | +// 可选的每页显示条数; | |
5 | 6 | export const PAGE_SIZE_OPTIONS = ['10', '50', '80', '100']; |
6 | 7 | |
8 | +// 每页显示条数 | |
7 | 9 | export const PAGE_SIZE = ~~PAGE_SIZE_OPTIONS[0]; |
8 | 10 | |
11 | +// 通用接口字段设置 | |
12 | +// 支持 xxx.xxx.xxx格式 | |
9 | 13 | export const FETCH_SETTING = { |
14 | + // 传给后台的当前页字段名 | |
10 | 15 | pageField: 'page', |
16 | + // 传给后台的每页显示记录数字段名 | |
11 | 17 | sizeField: 'pageSize', |
18 | + // 接口返回的表格数据字段名 | |
12 | 19 | listField: 'items', |
20 | + // 接口返回的表格总数字段名 | |
13 | 21 | totalField: 'total', |
14 | 22 | }; |
15 | 23 | |
24 | +// 配置通用排序函数 | |
16 | 25 | export function DEFAULT_SORT_FN(sortInfo: SorterResult<any>) { |
17 | 26 | const { field, order } = sortInfo; |
18 | 27 | return { |
28 | + // 传给后台的排序字段你 | |
19 | 29 | field, |
30 | + // 传给后台的排序方式 asc/desc | |
20 | 31 | order, |
21 | 32 | }; |
22 | 33 | } | ... | ... |
src/views/demo/comp/transition/index.vue
src/views/demo/form/CustomerForm.vue
src/views/demo/form/DynamicForm.vue
... | ... | @@ -6,7 +6,6 @@ |
6 | 6 | <a-button @click="appendField" class="mr-2">往字段3后面插入字段10</a-button> |
7 | 7 | <a-button @click="deleteField" class="mr-2">删除字段11</a-button> |
8 | 8 | </div> |
9 | - <div class="mb-4"> </div> | |
10 | 9 | <CollapseContainer title="动态表单示例,动态根据表单内其他值改变"> |
11 | 10 | <BasicForm @register="register" /> |
12 | 11 | </CollapseContainer> | ... | ... |
src/views/demo/form/RefForm.vue
src/views/demo/form/RuleForm.vue
... | ... | @@ -6,7 +6,6 @@ |
6 | 6 | <a-button @click="getFormValues" class="mr-2">获取表单值</a-button> |
7 | 7 | <a-button @click="setFormValues" class="mr-2">设置表单值</a-button> |
8 | 8 | </div> |
9 | - <div class="mb-4"> </div> | |
10 | 9 | <CollapseContainer title="表单校验"> |
11 | 10 | <BasicForm @register="register" @submit="handleSubmit" /> |
12 | 11 | </CollapseContainer> | ... | ... |