Skip to content

表单表格(SchemaTableForm) ​

/web/src/components/schemaTableForm/SchemaTableForm.vue该组件对上述的 表单组件(SchemaForm) 和 表格组件(SchemaTable) 进行了二次封装,除了这两个组件的基础功能外,还提供了增删改查、导入导出等功能,同时会根据用户权限控制按钮显示。

示例:foolon admin 中的 CRUD 页面均使用该组件。

API ​

Attributes ​

参数说明类型默认值必填
v-model:search-form-model查询表单绑定值FormModel是
v-model:edit-form-model编辑表单绑定值FormModel是
searchOnCreate组件创建时执行查询booleantrue否
showTableOperations是否显示表格操作栏booleantrue否
tableForm表格表单配置SchemaTableForm<T extends FormModel>是
tableProps表格propsTableProps否
searchFormProps查询表单props与Element Plus 的 Form Attributes 的 Form API 一致否
editFormProps编辑表单props与Element Plus 的 Form Attributes 的 Form API 一致否
api接口地址Api是

Events ​

名称说明类型
onTableListSuccess获取分页数据成功后的回调() => void
onTableSaveSuccess保存数据成功后的回调,新增、编辑、导入() => void
onTableDeleteSuccess删除数据成功后的回调() => void
onTableExportSuccess导出数据成功后的回调() => void
onTableIdSuccess查询详情成功后的回调,参数为接口返回的数据(value) => void

Expose ​

名称说明类型
handleSearch分页查询() => void
handleReset查询表单重置() => void
handleDialog新增、查看、编辑弹窗handleDialog
handleExport导出数据() => void
handleImport导入数据,与 Element Plus 的 Upload 上传 中 属性的http-request一致(options:UploadRequestOptions) => void
handleExport导出数据() => void
handleExportTemplate下载导入模板() => void
handleMultipleDelete多选删除,参数为选中的行数据(value: FormModel[]) => void
handleDelete删除一条数据,参数为删除的行数据(value: FormModel) => void
handleEdit编辑数据() => void

类型定义 ​

/web/src/components/schemaTableForm/types/index.d.ts

SchemaTableForm ​

根据数据库表实体的 key 配置查询、编辑、表格项目,每个 key 对应一个项目,可仅对需要的 key 进行配置,项目配置如下:

参数说明类型默认值必填
table表格参数Table否
editForm编辑表单属性EditForm否
searchForm查询表单属性SearchForm否

TableProps ​

参数说明类型默认值必填
props表格的props设置,与Element Plus 的 Table API 一致,去除了data属性否
actionProps操作列的props设置,与Element Plus 的 Table-column API 一致,去除了prop属性否

Table ​

继承了 Element Plus 的 Table-column 属性,删除prop属性,并增加了以下属性:

参数说明类型默认值必填
exportFormatter导出数据格式化,传递参数为当前字段值(value: any) => any否

EditForm ​

参数说明类型默认值必填
rule单挑表单校验规则,与 Element Plus 的 FormItem Attributes 的 rules 一致FormItemRule[]否
props表单项目 porps,与 Element Plus 的 FormItem Attributes 一致,删除了prop属性EditForm否
vIf等同于v-if,控制表单项目是否显示,传递的参数为表单绑定值(model: T) => boolean-否
component表单项目的组件,可参考 Vue3 的渲染函数 hVNode-否
importFormatter导入数据格式化,传递参数为当前字段值(value: any) => any-否

SearchForm ​

参数说明类型默认值必填
rule单挑表单校验规则,与 Element Plus 的 FormItem Attributes 的 rules 一致FormItemRule[]否
props表单项目 porps,与 Element Plus 的 FormItem Attributes 一致,删除了prop属性EditForm否
vIf等同于v-if,控制表单项目是否显示,传递的参数为表单绑定值(model: T) => boolean-否
component表单项目的组件,可参考 Vue3 的渲染函数 hVNode-否

ApiURL ​

参数说明类型默认值必填
list导出列表string是
page分页查询string是
id按id查询string是
create新增string是
update修改string是
import导入string是
delete删除string是

handleDialog ​

ts
type handleDialog = (title: '新增' | '编辑' | '查看', form: FormModel) => void

Released under the MIT License.