librelist archives

« back to archive

bamboo后台管理系统总结

bamboo后台管理系统总结

From:
Victor Young
Date:
2011-09-29 @ 08:18
1 主要功能
===========

1.1 登录
---------


需要在工程中使用registerMainUser函数注册主用户模型,后台系统登录即使用这个模型的login方法进行,故在工程中主用户模型尽量继承自bamboo.models.user模型。

1.2 查看模型列表
-----------------
    登录后在主界面左侧会看到模型列表,该模型列表取自MODEL_LIST全局变量,工程中通过registerModel注册的所有模型都会在此呈现。

1.3 查看实例列表
-----------------
    点击某个模型后,会在主界面右侧看到选定模型的实例列表,可以使用上方的filter对数据进行筛选。有添加、编辑、删除三个按钮,可以进行相关操作。

1.4 添加实例
---------
    类似编辑功能

1.5 编辑实例
---------


选择实例后点击编辑按钮,会弹出一个新的tab,可以对该实例进行编辑,此处利用了新加入的{**}渲染tag,控件的类型和特性由字段描述表中的widget_type等指定。

1.6 删除实例
---------
    选择实例后点击删除按钮,会弹出对话框询问是否删除。

2 实现
=======

2.1 web端
----------
    使用了DWZ富客户端框架,可以较为方便的通过html标签属性的设置来实现ajax请求。

2.2 后台
---------

在工程中新建了一个admin文件夹,所有web端和后台文件均放于此,在handler_entry中通过registerModule注册admin.lua,即可使用。

2.3 {**}渲染tag的实现
----------------------
    利用字段描述表,为其建立一个到html代码的映射,中间通过了一个易于生成html代码的中间表来过渡。

3 可改进之处
=============
   1) 后台入口目前固定为/admin,可改进为可配置的
   2) {**}渲染tag中实现外键和上传部分实现有待进一步完善
   3) {**}渲染tag中如何保证灵活性有待进一步探讨
   4) 字段描述表可考虑使用类进行封装,使其意义更明确,思路更清晰
   5)

比如a有一个外键连向b,b也有一个外键连向a,有些情况下后台管理中如若断开了a到b的外键,需要再手动断开b到a的外键,可考虑在外键操作时提供一个触发器自动完成这个功能
   6) 可对实例添加批量操作
   7) 权限和登录判断的错误处理可以改进