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查询表单propsElement Plus 的 Form Attributes 的 Form API 一致
editFormProps编辑表单propsElement 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 Attributesrules 一致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 Attributesrules 一致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.