-
-
-
-
-
-
+**init/useTable.ts**:
+- 顶部定义 `INIT_SORT: TableSort`
+- 顶部定义 `tableColumns: TableColumnsType`(customRender 用 `h()`)
+- `createInitState()` 工厂返回 `TableState`
+- 暴露 `{ table, dataSourceChange, resetTable, resizeColumn }`
-
-
+**init/usePage.ts**:
+- import `useAntdStaticMethods from '@utils/antDesign/popUp'`
+- 子组件 ref 必须在此定义:`ref<{ openModal: ... } | null>(null)`
+- `buildParams()` 统一构造请求参数
+- `listRequest()` 链式 `.then().catch().finally()`
+- `searchQuery` 设 `table.pagination.current = 1` 后 `listRequest()`
+- `resetQuery` 顺序 `resetSearch → resetTable → listRequest`
+- 删除强制 `Modal.confirm` + `okType: 'danger'`
+- `onMounted` 通过 `loadData()` 统一触发
-
-
-
-
-
- 导出列表数据
-
-
-
- 查看导出任务
-
-
+**<页面key>.vue**:
+- 顶部 statCards 可选
+- FilterBar 用 default slot 写裸 a-form-item
+- TableCard 接 `:table` 对象
+- **toolbar slot 仅在用户指定了 add/import/export/batch 时才生成**;只读查询页 toolbar slot 整段省略
+- 顶部 toolbar 按钮才加 icon(PlusOutlined / UploadOutlined / DownloadOutlined / DeleteOutlined)
+- **操作列 `` 一律无图标**(与 vue 项目一致)
+- 操作列多个按钮之间用 `` 分隔
+- 操作列只读页只需 `查看详情`,挂 InfoDrawer
+- `@import "@assets/styles/listPage.less"`
-
-
-
-
-
-