@pangtou/render-core
v1.0.27
Published
`pt-render` 的无框架 runtime helper。
Readme
@pangtou/render-core
pt-render 的无框架 runtime helper。
当前内容:
- form / table / field / event API helper
- runtime tree slots / children helper
该包不依赖 Vue,不依赖 Element Plus。
当前可直接使用的类型入口
import type { PTRenderExpose } from '@pangtou/render-core'如果你只需要 pt-render 暴露实例的类型,而不想把类型依赖挂在 Vue framework 包上,直接从这里取。
当前 expose 能力
type PTRenderExpose = {
build(): void
form<T extends Record<string, any> = Record<string, any>>(scope?: string): PTRenderFormApi<T>
table<T = any>(scope?: string): PTRenderTableApi<T>
field(name: string, scope?: string): PTRenderFieldApi
event: PTRenderEventApi
}其中:
form()提供表单显示隐藏、禁用启用、重置、校验、读写数据、编辑、提交能力table()提供列表数据、query、where、分页、排序、选中态和刷新能力field()提供单字段值、显隐、禁用、选项更新能力event提供 runtime 事件总线订阅与派发能力
使用示例
import { ref } from 'vue'
import type { PTRenderExpose } from '@pangtou/render-core'
type UserForm = {
username: string
nickname: string
}
type UserRow = {
id: number
username: string
status: string
}
const renderRef = ref<PTRenderExpose | null>(null)
async function demo() {
await renderRef.value?.form<UserForm>().setData(
{ username: 'Tom', nickname: 'Cat' },
{ silent: true },
)
const formData = renderRef.value?.form<UserForm>().getData()
await renderRef.value?.table<UserRow>().setQuery({
filters: [{ field: 'username', operator: 'like', value: formData?.username }],
sorts: [{ field: 'created_at', direction: 'desc' }],
})
await renderRef.value?.table<UserRow>().resetWhere()
await renderRef.value?.table<UserRow>().refresh()
}