Skip to content

DslTable

DSL 驱动的表格组件,根据 zen_meta 自动渲染列、操作按钮。

基本用法

tsx
import { DslTable } from '@/modules/dsl/DslTable'

<DslTable
  meta={meta}
  data={articles}
  basePath="/admin/articles"
  createText="新建文章"
  onCreate={() => setModalOpen(true)}
  onEdit={(record) => { setEditing(record); setModalOpen(true) }}
/>

Props

Prop类型必填说明
metaDslMetazen_meta JSON
dataRecord<string, any>[]表格数据
basePathstring资源基础路径
createTextstring新建按钮文字
onCreate() => void新建回调(modal 模式)
onEdit(record) => void编辑回调(modal 模式)
showActionsboolean是否显示操作列,默认 true
serverSideboolean服务端分页模式
paginationPaginationConfig分页配置
onServerChange(params) => void服务端请求回调
rowSelectionobject行选择配置
onBulkDelete(ids) => void批量删除回调

自动渲染逻辑

DslTable 读取 meta.display.list.columns 自动生成列:

  • link: true → 标题列,点击跳转详情
  • badge: true → 彩色标签
  • format: :relative_time → 相对时间
  • format: :currency → ¥ 前缀
  • thumbnail: true → 图片缩略图