mirror of
https://github.com/vbenjs/vben-admin-thin-next.git
synced 2025-01-23 17:50:22 +08:00
perf: update form types
This commit is contained in:
parent
3713487c85
commit
a0c3197454
@ -2,6 +2,7 @@
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 更新组件文档
|
||||
- 面包屑支持显示图标
|
||||
- 新增 tinymce 富文本组件
|
||||
- 表单新增 submitOnReset 控制是否在重置时重新发起请求
|
||||
@ -19,7 +20,6 @@
|
||||
- 关闭多标签页 tabs 动画
|
||||
- 升级 vite 版本为`v1.0.0.rc6`
|
||||
- 删除中文路径警告。rc6 已修复
|
||||
- 更新部分组件文档
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
|
@ -228,11 +228,11 @@ yarn clean:lib # Delete node_modules, supported window
|
||||
- [x] System performance optimization
|
||||
- [x] Data import and export
|
||||
- [x] Global error handling
|
||||
- [x] Rich text component
|
||||
|
||||
## Developing features
|
||||
|
||||
- [ ] Upload component
|
||||
- [ ] Rich text component
|
||||
- [ ] Theme configuration
|
||||
- [ ] Dark theme
|
||||
- [ ] Build CDN
|
||||
|
@ -226,11 +226,11 @@ yarn clean:lib # 删除node_modules,兼容window系统
|
||||
- [x] 数据导入导出
|
||||
- [x] 系统性能优化
|
||||
- [x] 全局错误处理
|
||||
- [x] 富文本组件
|
||||
|
||||
## 正在开发的功能
|
||||
|
||||
- [ ] 上传组件
|
||||
- [ ] 富文本组件
|
||||
- [ ] 主题配置
|
||||
- [ ] 黑暗主题
|
||||
- [ ] 打包 CDN
|
||||
|
66
src/components/Button/types.ts
Normal file
66
src/components/Button/types.ts
Normal file
@ -0,0 +1,66 @@
|
||||
import { VNodeChild } from 'vue';
|
||||
|
||||
export interface BasicButtonProps {
|
||||
/**
|
||||
* can be set to primary ghost dashed danger(added in 2.7) or omitted (meaning default)
|
||||
* @default 'default'
|
||||
* @type string
|
||||
*/
|
||||
type?: 'primary' | 'danger' | 'dashed' | 'ghost' | 'default';
|
||||
|
||||
/**
|
||||
* set the original html type of button
|
||||
* @default 'button'
|
||||
* @type string
|
||||
*/
|
||||
htmlType?: 'button' | 'submit' | 'reset' | 'menu';
|
||||
|
||||
/**
|
||||
* set the icon of button
|
||||
* @type string
|
||||
*/
|
||||
icon?: VNodeChild | JSX.Element;
|
||||
|
||||
/**
|
||||
* can be set to circle or circle-outline or omitted
|
||||
* @type string
|
||||
*/
|
||||
shape?: 'circle' | 'circle-outline';
|
||||
|
||||
/**
|
||||
* can be set to small large or omitted
|
||||
* @default 'default'
|
||||
* @type string
|
||||
*/
|
||||
size?: 'small' | 'large' | 'default';
|
||||
|
||||
/**
|
||||
* set the loading status of button
|
||||
* @default false
|
||||
* @type boolean | { delay: number }
|
||||
*/
|
||||
loading?: boolean | { delay: number };
|
||||
|
||||
/**
|
||||
* disabled state of button
|
||||
* @default false
|
||||
* @type boolean
|
||||
*/
|
||||
disabled?: boolean;
|
||||
|
||||
/**
|
||||
* make background transparent and invert text and border colors, added in 2.7
|
||||
* @default false
|
||||
* @type boolean
|
||||
*/
|
||||
ghost?: boolean;
|
||||
|
||||
/**
|
||||
* option to fit button width to its parent width
|
||||
* @default false
|
||||
* @type boolean
|
||||
*/
|
||||
block?: boolean;
|
||||
|
||||
onClick?: (e?: Event) => void;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import type { Form, ValidationRule } from 'ant-design-vue/types/form/form';
|
||||
import type { Form, NamePath, ValidationRule } from 'ant-design-vue/types/form/form';
|
||||
import type { VNode } from 'vue';
|
||||
import type { BasicButtonProps } from '/@/components/Button/types';
|
||||
import type { FormItem } from './formItem';
|
||||
@ -12,16 +12,23 @@ export interface RenderCallbackParams {
|
||||
model: any;
|
||||
field: string;
|
||||
}
|
||||
|
||||
export interface ButtonProps extends BasicButtonProps {
|
||||
text?: string;
|
||||
}
|
||||
|
||||
export interface FormActionType extends Form {
|
||||
submit(): Promise<void>;
|
||||
setFieldsValue<T>(values: T): void;
|
||||
resetFields(): Promise<any>;
|
||||
submit: () => Promise<void>;
|
||||
setFieldsValue: <T>(values: T) => void;
|
||||
resetFields: () => Promise<any>;
|
||||
getFieldsValue: () => any;
|
||||
clearValidate: (name?: string | string[]) => void;
|
||||
updateSchema(data: Partial<FormSchema> | Partial<FormSchema>[]): void;
|
||||
setProps(formProps: Partial<FormProps>): void;
|
||||
removeSchemaByFiled(field: string | string[]): void;
|
||||
appendSchemaByField(schema: FormSchema, prefixField?: string): void;
|
||||
updateSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => void;
|
||||
setProps: (formProps: Partial<FormProps>) => void;
|
||||
removeSchemaByFiled: (field: string | string[]) => void;
|
||||
appendSchemaByField: (schema: FormSchema, prefixField?: string) => void;
|
||||
validateFields: (nameList?: NamePath[]) => Promise<any>;
|
||||
validate: (nameList?: NamePath[]) => Promise<any>;
|
||||
}
|
||||
export type RegisterFn = (formInstance: FormActionType) => void;
|
||||
|
||||
@ -38,7 +45,7 @@ export interface FormProps {
|
||||
wrapperCol?: Partial<ColEx>;
|
||||
|
||||
// 通用col配置
|
||||
baseColProps?: any;
|
||||
baseColProps?: Partial<ColEx>;
|
||||
|
||||
// 表单配置规则
|
||||
schemas?: FormSchema[];
|
||||
@ -55,7 +62,7 @@ export interface FormProps {
|
||||
// 时间区间字段映射成多个
|
||||
fieldMapToTime?: FieldMapToTime;
|
||||
// 自动设置placeholder
|
||||
autoSetPlaceHolder: boolean;
|
||||
autoSetPlaceHolder?: boolean;
|
||||
// 校验信息是否加入label
|
||||
rulesMessageJoinLabel?: boolean;
|
||||
// 是否显示收起展开按钮
|
||||
@ -66,10 +73,10 @@ export interface FormProps {
|
||||
showActionButtonGroup?: boolean;
|
||||
|
||||
// 重置按钮配置
|
||||
resetButtonOptions?: Partial<BasicButtonProps>;
|
||||
resetButtonOptions?: Partial<ButtonProps>;
|
||||
|
||||
// 确认按钮配置
|
||||
submitButtonOptions?: Partial<BasicButtonProps>;
|
||||
submitButtonOptions?: Partial<ButtonProps>;
|
||||
|
||||
// 操作列配置
|
||||
actionColOptions?: Partial<ColEx>;
|
||||
@ -129,7 +136,7 @@ export interface FormSchema {
|
||||
render?: (renderCallbackParams: RenderCallbackParams) => VNode | VNode[] | string;
|
||||
|
||||
// 渲染 col内容,需要外层包裹 form-item
|
||||
renderColContent?: (renderCallbackParams: RenderCallbackParams) => VNode | VNode[];
|
||||
renderColContent?: (renderCallbackParams: RenderCallbackParams) => VNode | VNode[] | string;
|
||||
|
||||
renderComponentContent?: (renderCallbackParams: RenderCallbackParams) => any;
|
||||
|
||||
|
@ -2,21 +2,32 @@ import { SorterResult } from 'ant-design-vue/types/table/table';
|
||||
|
||||
export const ROW_KEY = 'key';
|
||||
|
||||
// 可选的每页显示条数;
|
||||
export const PAGE_SIZE_OPTIONS = ['10', '50', '80', '100'];
|
||||
|
||||
// 每页显示条数
|
||||
export const PAGE_SIZE = ~~PAGE_SIZE_OPTIONS[0];
|
||||
|
||||
// 通用接口字段设置
|
||||
// 支持 xxx.xxx.xxx格式
|
||||
export const FETCH_SETTING = {
|
||||
// 传给后台的当前页字段名
|
||||
pageField: 'page',
|
||||
// 传给后台的每页显示记录数字段名
|
||||
sizeField: 'pageSize',
|
||||
// 接口返回的表格数据字段名
|
||||
listField: 'items',
|
||||
// 接口返回的表格总数字段名
|
||||
totalField: 'total',
|
||||
};
|
||||
|
||||
// 配置通用排序函数
|
||||
export function DEFAULT_SORT_FN(sortInfo: SorterResult<any>) {
|
||||
const { field, order } = sortInfo;
|
||||
return {
|
||||
// 传给后台的排序字段你
|
||||
field,
|
||||
// 传给后台的排序方式 asc/desc
|
||||
order,
|
||||
};
|
||||
}
|
||||
|
@ -59,7 +59,6 @@
|
||||
Select,
|
||||
FadeTransition,
|
||||
ScaleTransition,
|
||||
|
||||
SlideYTransition,
|
||||
ScrollYTransition,
|
||||
SlideYReverseTransition,
|
||||
|
@ -1,6 +1,5 @@
|
||||
<template>
|
||||
<div class="m-4">
|
||||
<div class="mb-4"> </div>
|
||||
<CollapseContainer title="自定义表单">
|
||||
<BasicForm @register="register" @submit="handleSubmit" />
|
||||
</CollapseContainer>
|
||||
|
@ -6,7 +6,6 @@
|
||||
<a-button @click="appendField" class="mr-2">往字段3后面插入字段10</a-button>
|
||||
<a-button @click="deleteField" class="mr-2">删除字段11</a-button>
|
||||
</div>
|
||||
<div class="mb-4"> </div>
|
||||
<CollapseContainer title="动态表单示例,动态根据表单内其他值改变">
|
||||
<BasicForm @register="register" />
|
||||
</CollapseContainer>
|
||||
|
@ -53,7 +53,6 @@
|
||||
修改查询按钮
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="mb-4"> </div>
|
||||
<CollapseContainer title="使用ref调用表单内部函数示例">
|
||||
<BasicForm
|
||||
:schemas="schemas"
|
||||
|
@ -6,7 +6,6 @@
|
||||
<a-button @click="getFormValues" class="mr-2">获取表单值</a-button>
|
||||
<a-button @click="setFormValues" class="mr-2">设置表单值</a-button>
|
||||
</div>
|
||||
<div class="mb-4"> </div>
|
||||
<CollapseContainer title="表单校验">
|
||||
<BasicForm @register="register" @submit="handleSubmit" />
|
||||
</CollapseContainer>
|
||||
|
@ -53,7 +53,6 @@
|
||||
修改查询按钮
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="mb-4"> </div>
|
||||
<CollapseContainer title="useForm示例">
|
||||
<BasicForm @register="register" @submit="handleSubmit" />
|
||||
</CollapseContainer>
|
||||
|
Loading…
Reference in New Issue
Block a user