两类页面
| 内置页 | 扩展页 | |
|---|---|---|
| 定义 | 数据库 sys.page_def | 磁盘 user-ext/{name}/ |
| 地址 | /page/run?param={页面 id} | /user-ext/{name}/index.html |
| SQL 白名单从哪来 | 解析页面 JSON | 同名 index.json 的 sql_ids |
| 会话里的键 | page:{页面 id} | ext:{html 路径} |
| 菜单怎么指 | sys.menu.page_id | sys.menu.external_url |
内置页
Body 里每一项是一个组件,Type 决定加载哪段引擎脚本。当前可用的类型:
| Type | 画出来的东西 |
|---|---|
data_grid | 表格 |
tree_grid | 树表 |
simple_form | 表单 |
pivot_grid | 透视表,可带图 |
file_manager | 文件管理 |
sub_file_manager | 先选一条业务记录,再管它下面的文件 |
role_treemenu_cfg | 角色和菜单树 |
加载器里还登记了 select_box 和 button,当前仓库没有这两个脚本。新页面用表格工具栏上的选择框和按钮。
扩展页
内置组件表达不了时用扩展页。一个目录四件套:
user-ext/{name}/
index.html
index.js
index.css
index.json 含 title、sql_ids、notessql_ids 是这一页允许调用的 sys.page_sql.id。漏写一条,调用时就是 403。改完 sql_ids 要重新打开页面,会话里的白名单不会热更新。
目录名以小写字母开头,只含 a-z、0-9、_。user-ext/demo_scaffold/ 是模板。部署成 jar 时,user-ext/ 放在 jar 旁边,不打进 jar。