cms/entcms/json/cms_content_list.json
yumoqing 569c8e6715 refactor: CMS从Sage子模块重构为独立ahserver Web应用
架构变更:
- CMS作为独立进程运行(端口9090),不再嵌入Sage
- 使用ahserver框架,复用rbac模块做认证授权
- 所有模块共享sage数据库(配置在conf/config.json)

新增文件:
- app/cms.py: 独立Web应用主入口(webapp(init))
- app/global_func.py: 全局函数(get_module_dbname/UiWindow等)
- conf/config.json: 应用配置模板(数据库/路径/处理器/Redis)
- start.sh/stop.sh: 进程管理脚本
- pyproject.toml: 顶层Python包配置

路径重构(去掉/entcms前缀):
- 官网首页: /entcms/index.ui → /index.ui
- 管理后台: /entcms/admin.ui → /admin.ui
- API: /entcms/api/xxx.dspy → /api/xxx.dspy
- CRUD: /entcms/cms_content_list → /cms_content_list
- dingdingflow保持/dingdingflow前缀(映射子目录)

config.json路径映射:
- entcms/wwwroot → / (根路径)
- dingdingflow/wwwroot → /dingdingflow
- bricks/dist → /bricks

构建脚本(build.sh):
- 创建独立venv(py3/)
- 安装核心依赖(apppublic/sqlor/ahserver/bricks/rbac等)
- json2ddl生成CMS业务表DDL
- xls2ui生成CRUD UI
- 生成systemd服务文件

load_path.py更新:
- entcms: 所有路径去掉/entcms前缀
- dingdingflow: 保持/dingdingflow前缀
- 查找set_role_perm.py支持CMS和Sage两种环境

init_superuser.py更新:
- 支持CMS独立环境(自动检测py3/conf)
- 创建superuser角色并分配全部权限
2026-05-27 17:20:36 +08:00

97 lines
3.0 KiB
JSON

{
"tblname": "cms_content",
"alias": "cms_content_list",
"title": "内容管理",
"params": {
"sortby": [
"sort_order asc",
"created_at desc"
],
"logined_userorgid": "org_id",
"data_filter": {
"AND": [
{
"field": "title",
"op": "LIKE",
"var": "title"
},
{
"field": "content_type",
"op": "=",
"var": "content_type"
},
{
"field": "status",
"op": "=",
"var": "status"
}
]
},
"browserfields": {
"exclouded": [
"body",
"extra_json"
],
"alters": {
"content_type": {
"uitype": "code",
"data": [
{
"value": "banner",
"text": "Banner"
},
{
"value": "product",
"text": "产品"
},
{
"value": "case",
"text": "案例"
},
{
"value": "news",
"text": "新闻"
}
]
},
"status": {
"uitype": "code",
"data": [
{
"value": "draft",
"text": "草稿"
},
{
"value": "pending",
"text": "待审批"
},
{
"value": "approved",
"text": "已审批"
},
{
"value": "published",
"text": "已发布"
},
{
"value": "archived",
"text": "已归档"
}
]
},
"category_id": {
"uitype": "code",
"dataurl": "{{entire_url('../api/category_options.dspy')}}",
"data_field": "options",
"textField": "text",
"valueField": "value"
}
}
},
"editable": {
"new_data_url": "{{entire_url('api/cms_content_create.dspy')}}",
"update_data_url": "{{entire_url('api/cms_content_update.dspy')}}",
"delete_data_url": "{{entire_url('api/cms_content_delete.dspy')}}"
}
}
}