├── Changelog.md ├── static └── easyui │ └── jquery-easyui │ ├── themes │ ├── icons │ │ ├── cut.png │ │ ├── no.png │ │ ├── ok.png │ │ ├── sum.png │ │ ├── tip.png │ │ ├── back.png │ │ ├── blank.gif │ │ ├── help.png │ │ ├── print.png │ │ ├── redo.png │ │ ├── undo.png │ │ ├── cancel.png │ │ ├── edit_add.png │ │ ├── filesave.png │ │ ├── mini_add.png │ │ ├── pencil.png │ │ ├── reload.png │ │ ├── search.png │ │ ├── mini_edit.png │ │ ├── edit_remove.png │ │ └── mini_refresh.png │ ├── black │ │ ├── images │ │ │ ├── Thumbs.db │ │ │ ├── blank.gif │ │ │ ├── loading.gif │ │ │ ├── combo_arrow.png │ │ │ ├── menu_arrows.png │ │ │ ├── panel_tools.png │ │ │ ├── tabs_icons.png │ │ │ ├── tree_icons.png │ │ │ ├── datebox_arrow.png │ │ │ ├── layout_arrows.png │ │ │ ├── linkbutton_bg.png │ │ │ ├── slider_handle.png │ │ │ ├── accordion_arrows.png │ │ │ ├── calendar_arrows.png │ │ │ ├── datagrid_icons.png │ │ │ ├── messager_icons.png │ │ │ ├── pagination_icons.png │ │ │ ├── searchbox_button.png │ │ │ ├── spinner_arrows.png │ │ │ └── validatebox_warning.png │ │ ├── validatebox.css │ │ ├── combobox.css │ │ ├── dialog.css │ │ ├── datebox.css │ │ ├── progressbar.css │ │ ├── menubutton.css │ │ ├── propertygrid.css │ │ ├── messager.css │ │ ├── accordion.css │ │ ├── splitbutton.css │ │ ├── combo.css │ │ ├── spinner.css │ │ ├── pagination.css │ │ ├── searchbox.css │ │ ├── layout.css │ │ ├── slider.css │ │ ├── window.css │ │ ├── tooltip.css │ │ └── menu.css │ ├── gray │ │ ├── images │ │ │ ├── Thumbs.db │ │ │ ├── blank.gif │ │ │ ├── loading.gif │ │ │ ├── combo_arrow.png │ │ │ ├── menu_arrows.png │ │ │ ├── panel_tools.png │ │ │ ├── tabs_icons.png │ │ │ ├── tree_icons.png │ │ │ ├── datagrid_icons.png │ │ │ ├── datebox_arrow.png │ │ │ ├── layout_arrows.png │ │ │ ├── linkbutton_bg.png │ │ │ ├── messager_icons.png │ │ │ ├── slider_handle.png │ │ │ ├── spinner_arrows.png │ │ │ ├── accordion_arrows.png │ │ │ ├── calendar_arrows.png │ │ │ ├── pagination_icons.png │ │ │ ├── searchbox_button.png │ │ │ └── validatebox_warning.png │ │ ├── validatebox.css │ │ ├── combobox.css │ │ ├── dialog.css │ │ ├── datebox.css │ │ ├── progressbar.css │ │ ├── menubutton.css │ │ ├── propertygrid.css │ │ ├── messager.css │ │ ├── accordion.css │ │ ├── splitbutton.css │ │ ├── combo.css │ │ ├── spinner.css │ │ ├── pagination.css │ │ ├── searchbox.css │ │ ├── layout.css │ │ ├── slider.css │ │ ├── window.css │ │ ├── tooltip.css │ │ └── menu.css │ ├── metro │ │ ├── images │ │ │ ├── Thumbs.db │ │ │ ├── blank.gif │ │ │ ├── loading.gif │ │ │ ├── combo_arrow.png │ │ │ ├── menu_arrows.png │ │ │ ├── panel_tools.png │ │ │ ├── tabs_icons.png │ │ │ ├── tree_icons.png │ │ │ ├── datebox_arrow.png │ │ │ ├── layout_arrows.png │ │ │ ├── linkbutton_bg.png │ │ │ ├── slider_handle.png │ │ │ ├── accordion_arrows.png │ │ │ ├── calendar_arrows.png │ │ │ ├── datagrid_icons.png │ │ │ ├── messager_icons.png │ │ │ ├── pagination_icons.png │ │ │ ├── searchbox_button.png │ │ │ ├── spinner_arrows.png │ │ │ └── validatebox_warning.png │ │ ├── validatebox.css │ │ ├── combobox.css │ │ ├── dialog.css │ │ ├── datebox.css │ │ ├── progressbar.css │ │ ├── menubutton.css │ │ ├── propertygrid.css │ │ ├── messager.css │ │ ├── accordion.css │ │ ├── splitbutton.css │ │ ├── combo.css │ │ ├── spinner.css │ │ ├── pagination.css │ │ ├── searchbox.css │ │ ├── window.css │ │ ├── layout.css │ │ ├── slider.css │ │ ├── tooltip.css │ │ ├── menu.css │ │ └── panel.css │ ├── default │ │ ├── images │ │ │ ├── Thumbs.db │ │ │ ├── blank.gif │ │ │ ├── loading.gif │ │ │ ├── combo_arrow.png │ │ │ ├── menu_arrows.png │ │ │ ├── panel_tools.png │ │ │ ├── tabs_icons.png │ │ │ ├── tree_icons.png │ │ │ ├── datagrid_icons.png │ │ │ ├── datebox_arrow.png │ │ │ ├── layout_arrows.png │ │ │ ├── linkbutton_bg.png │ │ │ ├── messager_icons.png │ │ │ ├── slider_handle.png │ │ │ ├── spinner_arrows.png │ │ │ ├── accordion_arrows.png │ │ │ ├── calendar_arrows.png │ │ │ ├── pagination_icons.png │ │ │ ├── searchbox_button.png │ │ │ └── validatebox_warning.png │ │ ├── validatebox.css │ │ ├── combobox.css │ │ ├── dialog.css │ │ ├── datebox.css │ │ ├── progressbar.css │ │ ├── menubutton.css │ │ ├── propertygrid.css │ │ ├── messager.css │ │ ├── accordion.css │ │ ├── splitbutton.css │ │ ├── combo.css │ │ ├── spinner.css │ │ ├── pagination.css │ │ ├── searchbox.css │ │ ├── layout.css │ │ ├── slider.css │ │ ├── window.css │ │ ├── tooltip.css │ │ └── menu.css │ ├── bootstrap │ │ ├── images │ │ │ ├── Thumbs.db │ │ │ ├── blank.gif │ │ │ ├── loading.gif │ │ │ ├── combo_arrow.png │ │ │ ├── menu_arrows.png │ │ │ ├── panel_tools.png │ │ │ ├── tabs_icons.png │ │ │ ├── tree_icons.png │ │ │ ├── datagrid_icons.png │ │ │ ├── datebox_arrow.png │ │ │ ├── layout_arrows.png │ │ │ ├── linkbutton_bg.png │ │ │ ├── messager_icons.png │ │ │ ├── slider_handle.png │ │ │ ├── spinner_arrows.png │ │ │ ├── accordion_arrows.png │ │ │ ├── calendar_arrows.png │ │ │ ├── pagination_icons.png │ │ │ ├── searchbox_button.png │ │ │ └── validatebox_warning.png │ │ ├── validatebox.css │ │ ├── combobox.css │ │ ├── dialog.css │ │ ├── datebox.css │ │ ├── progressbar.css │ │ ├── menubutton.css │ │ ├── propertygrid.css │ │ ├── messager.css │ │ ├── accordion.css │ │ ├── splitbutton.css │ │ ├── combo.css │ │ ├── spinner.css │ │ ├── pagination.css │ │ ├── searchbox.css │ │ ├── layout.css │ │ ├── slider.css │ │ ├── window.css │ │ ├── tooltip.css │ │ └── menu.css │ └── icon.css │ ├── plugins │ ├── jquery.splitbutton.js │ ├── jquery.droppable.js │ ├── jquery.numberspinner.js │ └── jquery.progressbar.js │ ├── locale │ ├── easyui-lang-zh_TW.js │ ├── easyui-lang-en.js │ └── easyui-lang-zh_CN.js │ └── src │ └── jquery.droppable.js ├── src ├── lib │ └── lib.go ├── rbac │ ├── common.go │ ├── group.go │ ├── node.go │ └── user.go └── models │ └── GroupModel.go ├── admin.go ├── conf └── app.conf ├── views ├── easyui │ ├── public │ │ ├── header.tpl │ │ └── login.tpl │ └── rbac │ │ └── roletouserlist.tpl └── index.tpl ├── doc └── 1.md ├── Router.go └── README.md /Changelog.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ### VERSION = "0.1.1" 4 | 5 | 1.添加了多数据库的支持,目前支持MySQL,PostgreSQL,sqlite3. 6 | 7 | 2.支持自动建库 8 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/cut.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/no.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/ok.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/sum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/sum.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/tip.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/back.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/blank.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/help.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/print.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/redo.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/undo.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/cancel.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/edit_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/edit_add.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/filesave.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/mini_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/mini_add.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/pencil.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/reload.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/search.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/mini_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/mini_edit.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/Thumbs.db -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/blank.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/Thumbs.db -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/blank.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/loading.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/edit_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/edit_remove.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icons/mini_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/icons/mini_refresh.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/Thumbs.db -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/blank.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/loading.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/Thumbs.db -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/blank.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/loading.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/combo_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/menu_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/panel_tools.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/tabs_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/tree_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/Thumbs.db -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/blank.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/loading.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/loading.gif -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/combo_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/menu_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/panel_tools.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/tabs_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/tree_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/combo_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/menu_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/panel_tools.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/tabs_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/tree_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/datebox_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/layout_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/linkbutton_bg.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/slider_handle.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/combo_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/menu_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/panel_tools.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/tabs_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/tree_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/datagrid_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/datebox_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/layout_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/linkbutton_bg.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/messager_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/slider_handle.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/spinner_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/datebox_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/layout_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/linkbutton_bg.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/slider_handle.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/accordion_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/calendar_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/datagrid_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/messager_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/pagination_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/searchbox_button.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/spinner_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/combo_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/menu_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/panel_tools.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/tabs_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/tree_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/datagrid_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/datebox_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/layout_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/linkbutton_bg.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/messager_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/slider_handle.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/spinner_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/accordion_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/calendar_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/pagination_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/searchbox_button.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/accordion_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/calendar_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/datagrid_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/messager_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/pagination_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/searchbox_button.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/spinner_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/datagrid_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/datebox_arrow.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/layout_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/linkbutton_bg.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/messager_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/slider_handle.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/spinner_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/accordion_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/calendar_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/pagination_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/searchbox_button.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/gray/images/validatebox_warning.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/black/images/validatebox_warning.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/accordion_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/calendar_arrows.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/pagination_icons.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/searchbox_button.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/default/images/validatebox_warning.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/metro/images/validatebox_warning.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/admin/HEAD/static/easyui/jquery-easyui/themes/bootstrap/images/validatebox_warning.png -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | background-image: url('images/validatebox_warning.png'); 3 | background-repeat: no-repeat; 4 | background-position: right center; 5 | border-color: #ffa8a8; 6 | background-color: #fff3f3; 7 | color: #000; 8 | } 9 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | background-image: url('images/validatebox_warning.png'); 3 | background-repeat: no-repeat; 4 | background-position: right center; 5 | border-color: #ffa8a8; 6 | background-color: #fff3f3; 7 | color: #000; 8 | } 9 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | background-image: url('images/validatebox_warning.png'); 3 | background-repeat: no-repeat; 4 | background-position: right center; 5 | border-color: #ffa8a8; 6 | background-color: #fff3f3; 7 | color: #000; 8 | } 9 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | background-image: url('images/validatebox_warning.png'); 3 | background-repeat: no-repeat; 4 | background-position: right center; 5 | border-color: #ffa8a8; 6 | background-color: #fff3f3; 7 | color: #000; 8 | } 9 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | background-image: url('images/validatebox_warning.png'); 3 | background-repeat: no-repeat; 4 | background-position: right center; 5 | border-color: #ffa8a8; 6 | background-color: #fff3f3; 7 | color: #000; 8 | } 9 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group { 3 | font-size: 12px; 4 | padding: 3px; 5 | padding-right: 0px; 6 | } 7 | .combobox-gitem { 8 | padding-left: 10px; 9 | } 10 | .combobox-group { 11 | font-weight: bold; 12 | } 13 | .combobox-item-hover { 14 | background-color: #777; 15 | color: #fff; 16 | } 17 | .combobox-item-selected { 18 | background-color: #0052A3; 19 | color: #fff; 20 | } 21 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group { 3 | font-size: 12px; 4 | padding: 3px; 5 | padding-right: 0px; 6 | } 7 | .combobox-gitem { 8 | padding-left: 10px; 9 | } 10 | .combobox-group { 11 | font-weight: bold; 12 | } 13 | .combobox-item-hover { 14 | background-color: #e2e2e2; 15 | color: #000000; 16 | } 17 | .combobox-item-selected { 18 | background-color: #0092DC; 19 | color: #fff; 20 | } 21 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group { 3 | font-size: 12px; 4 | padding: 3px; 5 | padding-right: 0px; 6 | } 7 | .combobox-gitem { 8 | padding-left: 10px; 9 | } 10 | .combobox-group { 11 | font-weight: bold; 12 | } 13 | .combobox-item-hover { 14 | background-color: #E6E6E6; 15 | color: #444; 16 | } 17 | .combobox-item-selected { 18 | background-color: #CCE6FF; 19 | color: #000; 20 | } 21 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group { 3 | font-size: 12px; 4 | padding: 3px; 5 | padding-right: 0px; 6 | } 7 | .combobox-gitem { 8 | padding-left: 10px; 9 | } 10 | .combobox-group { 11 | font-weight: bold; 12 | } 13 | .combobox-item-hover { 14 | background-color: #e6e6e6; 15 | color: #00438a; 16 | } 17 | .combobox-item-selected { 18 | background-color: #0081c2; 19 | color: #fff; 20 | } 21 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group { 3 | font-size: 12px; 4 | padding: 3px; 5 | padding-right: 0px; 6 | } 7 | .combobox-gitem { 8 | padding-left: 10px; 9 | } 10 | .combobox-group { 11 | font-weight: bold; 12 | } 13 | .combobox-item-hover { 14 | background-color: #eaf2ff; 15 | color: #000000; 16 | } 17 | .combobox-item-selected { 18 | background-color: #FBEC88; 19 | color: #000000; 20 | } 21 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/dialog.css: -------------------------------------------------------------------------------- 1 | .dialog-content { 2 | overflow: auto; 3 | } 4 | .dialog-toolbar { 5 | padding: 2px 5px; 6 | } 7 | .dialog-tool-separator { 8 | float: left; 9 | height: 24px; 10 | border-left: 1px solid #444; 11 | border-right: 1px solid #777; 12 | margin: 2px 1px; 13 | } 14 | .dialog-button { 15 | padding: 5px; 16 | text-align: right; 17 | } 18 | .dialog-button .l-btn { 19 | margin-left: 5px; 20 | } 21 | .dialog-toolbar, 22 | .dialog-button { 23 | background: #555; 24 | } 25 | .dialog-toolbar { 26 | border-bottom: 1px solid #222; 27 | } 28 | .dialog-button { 29 | border-top: 1px solid #222; 30 | } 31 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/dialog.css: -------------------------------------------------------------------------------- 1 | .dialog-content { 2 | overflow: auto; 3 | } 4 | .dialog-toolbar { 5 | padding: 2px 5px; 6 | } 7 | .dialog-tool-separator { 8 | float: left; 9 | height: 24px; 10 | border-left: 1px solid #ccc; 11 | border-right: 1px solid #fff; 12 | margin: 2px 1px; 13 | } 14 | .dialog-button { 15 | padding: 5px; 16 | text-align: right; 17 | } 18 | .dialog-button .l-btn { 19 | margin-left: 5px; 20 | } 21 | .dialog-toolbar, 22 | .dialog-button { 23 | background: #fafafa; 24 | } 25 | .dialog-toolbar { 26 | border-bottom: 1px solid #ddd; 27 | } 28 | .dialog-button { 29 | border-top: 1px solid #ddd; 30 | } 31 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/dialog.css: -------------------------------------------------------------------------------- 1 | .dialog-content { 2 | overflow: auto; 3 | } 4 | .dialog-toolbar { 5 | padding: 2px 5px; 6 | } 7 | .dialog-tool-separator { 8 | float: left; 9 | height: 24px; 10 | border-left: 1px solid #ddd; 11 | border-right: 1px solid #fff; 12 | margin: 2px 1px; 13 | } 14 | .dialog-button { 15 | padding: 5px; 16 | text-align: right; 17 | } 18 | .dialog-button .l-btn { 19 | margin-left: 5px; 20 | } 21 | .dialog-toolbar, 22 | .dialog-button { 23 | background: #fff; 24 | } 25 | .dialog-toolbar { 26 | border-bottom: 1px solid #ddd; 27 | } 28 | .dialog-button { 29 | border-top: 1px solid #ddd; 30 | } 31 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/dialog.css: -------------------------------------------------------------------------------- 1 | .dialog-content { 2 | overflow: auto; 3 | } 4 | .dialog-toolbar { 5 | padding: 2px 5px; 6 | } 7 | .dialog-tool-separator { 8 | float: left; 9 | height: 24px; 10 | border-left: 1px solid #ccc; 11 | border-right: 1px solid #fff; 12 | margin: 2px 1px; 13 | } 14 | .dialog-button { 15 | padding: 5px; 16 | text-align: right; 17 | } 18 | .dialog-button .l-btn { 19 | margin-left: 5px; 20 | } 21 | .dialog-toolbar, 22 | .dialog-button { 23 | background: #F5F5F5; 24 | } 25 | .dialog-toolbar { 26 | border-bottom: 1px solid #e6e6e6; 27 | } 28 | .dialog-button { 29 | border-top: 1px solid #e6e6e6; 30 | } 31 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/dialog.css: -------------------------------------------------------------------------------- 1 | .dialog-content { 2 | overflow: auto; 3 | } 4 | .dialog-toolbar { 5 | padding: 2px 5px; 6 | } 7 | .dialog-tool-separator { 8 | float: left; 9 | height: 24px; 10 | border-left: 1px solid #ccc; 11 | border-right: 1px solid #fff; 12 | margin: 2px 1px; 13 | } 14 | .dialog-button { 15 | padding: 5px; 16 | text-align: right; 17 | } 18 | .dialog-button .l-btn { 19 | margin-left: 5px; 20 | } 21 | .dialog-toolbar, 22 | .dialog-button { 23 | background: #F4F4F4; 24 | } 25 | .dialog-toolbar { 26 | border-bottom: 1px solid #dddddd; 27 | } 28 | .dialog-button { 29 | border-top: 1px solid #dddddd; 30 | } 31 | -------------------------------------------------------------------------------- /src/lib/lib.go: -------------------------------------------------------------------------------- 1 | package lib 2 | 3 | import ( 4 | "crypto/md5" 5 | "encoding/hex" 6 | "strconv" 7 | ) 8 | 9 | //create md5 string 10 | func Strtomd5(s string) string { 11 | h := md5.New() 12 | h.Write([]byte(s)) 13 | rs := hex.EncodeToString(h.Sum(nil)) 14 | return rs 15 | } 16 | 17 | //password hash function 18 | func Pwdhash(str string) string { 19 | return Strtomd5(str) 20 | } 21 | 22 | func StringsToJson(str string) string { 23 | rs := []rune(str) 24 | jsons := "" 25 | for _, r := range rs { 26 | rint := int(r) 27 | if rint < 128 { 28 | jsons += string(r) 29 | } else { 30 | jsons += "\\u" + strconv.FormatInt(int64(rint), 16) // json 31 | } 32 | } 33 | 34 | return jsons 35 | } 36 | -------------------------------------------------------------------------------- /admin.go: -------------------------------------------------------------------------------- 1 | package admin 2 | 3 | import ( 4 | "fmt" 5 | "mime" 6 | "os" 7 | 8 | "github.com/astaxie/beego" 9 | . "github.com/beego/admin/src/lib" 10 | "github.com/beego/admin/src/models" 11 | ) 12 | 13 | const VERSION = "0.1.1" 14 | 15 | func Run() { 16 | //初始化 17 | initialize() 18 | 19 | fmt.Println("Starting....") 20 | 21 | fmt.Println("Start ok") 22 | } 23 | func initialize() { 24 | mime.AddExtensionType(".css", "text/css") 25 | //判断初始化参数 26 | initArgs() 27 | 28 | models.Connect() 29 | 30 | router() 31 | beego.AddFuncMap("stringsToJson", StringsToJson) 32 | } 33 | func initArgs() { 34 | args := os.Args 35 | for _, v := range args { 36 | if v == "-syncdb" { 37 | models.Syncdb() 38 | os.Exit(0) 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | height: 18px; 6 | padding: 2px 5px; 7 | text-align: center; 8 | } 9 | .datebox-button a { 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #555; 33 | } 34 | .datebox-button a { 35 | color: #fff; 36 | } 37 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | height: 18px; 6 | padding: 2px 5px; 7 | text-align: center; 8 | } 9 | .datebox-button a { 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #fafafa; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | height: 18px; 6 | padding: 2px 5px; 7 | text-align: center; 8 | } 9 | .datebox-button a { 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #fff; 33 | } 34 | .datebox-button a { 35 | color: #777; 36 | } 37 | -------------------------------------------------------------------------------- /conf/app.conf: -------------------------------------------------------------------------------- 1 | appname = admin 2 | httpport = 8080 3 | runmode = dev 4 | 5 | 6 | sessionon = true 7 | 8 | ############################DB###################### 9 | db_host = localhost 10 | db_port = 3306 11 | db_user = root 12 | db_pass = root 13 | db_name = admin 14 | db_type = mysql 15 | ##################################################### 16 | 17 | template_type=easyui 18 | 19 | ############################RBAC##################### 20 | rbac_role_table = role 21 | rbac_node_table = node 22 | rbac_group_table = group 23 | rbac_user_table = user 24 | #admin用户名 此用户登录不用认证 25 | rbac_admin_user = admin 26 | 27 | #默认需要认证模块 28 | not_auth_package = public,static 29 | #默认认证类型 0 不认证 1 登录认证 2 实时认证 30 | user_auth_type = 1 31 | #默认登录网关 32 | rbac_auth_gateway = /public/login 33 | ##################################################### 34 | 35 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | height: 18px; 6 | padding: 2px 5px; 7 | text-align: center; 8 | } 9 | .datebox-button a { 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #F5F5F5; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | height: 18px; 6 | padding: 2px 5px; 7 | text-align: center; 8 | } 9 | .datebox-button a { 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #F4F4F4; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #000; 24 | } 25 | .progressbar-text { 26 | color: #fff; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0052A3; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 0px 0px 0px 0px; 5 | -webkit-border-radius: 0px 0px 0px 0px; 6 | border-radius: 0px 0px 0px 0px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 0px 0 0 0px; 19 | -webkit-border-radius: 0px 0 0 0px; 20 | border-radius: 0px 0 0 0px; 21 | } 22 | .progressbar { 23 | border-color: #ddd; 24 | } 25 | .progressbar-text { 26 | color: #444; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #CCE6FF; 31 | color: #000; 32 | } 33 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #D4D4D4; 24 | } 25 | .progressbar-text { 26 | color: #333; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0081c2; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #D3D3D3; 24 | } 25 | .progressbar-text { 26 | color: #000000; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0092DC; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #95B8E7; 24 | } 25 | .progressbar-text { 26 | color: #000000; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #FBEC88; 31 | color: #000000; 32 | } 33 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/menubutton.css: -------------------------------------------------------------------------------- 1 | .m-btn-downarrow { 2 | display: inline-block; 3 | width: 16px; 4 | height: 16px; 5 | line-height: 16px; 6 | font-size: 12px; 7 | _vertical-align: middle; 8 | } 9 | a.m-btn-active { 10 | background-position: bottom right; 11 | } 12 | a.m-btn-active span.l-btn-left { 13 | background-position: bottom left; 14 | } 15 | a.m-btn-plain-active { 16 | background: transparent; 17 | padding: 0 5px 0 0; 18 | border-width: 1px; 19 | border-style: solid; 20 | -moz-border-radius: 5px 5px 5px 5px; 21 | -webkit-border-radius: 5px 5px 5px 5px; 22 | border-radius: 5px 5px 5px 5px; 23 | } 24 | .m-btn-downarrow { 25 | background: url('images/menu_arrows.png') no-repeat 2px center; 26 | } 27 | a.m-btn-plain-active { 28 | border-color: #555; 29 | background-color: #777; 30 | color: #fff; 31 | } 32 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/menubutton.css: -------------------------------------------------------------------------------- 1 | .m-btn-downarrow { 2 | display: inline-block; 3 | width: 16px; 4 | height: 16px; 5 | line-height: 16px; 6 | font-size: 12px; 7 | _vertical-align: middle; 8 | } 9 | a.m-btn-active { 10 | background-position: bottom right; 11 | } 12 | a.m-btn-active span.l-btn-left { 13 | background-position: bottom left; 14 | } 15 | a.m-btn-plain-active { 16 | background: transparent; 17 | padding: 0 5px 0 0; 18 | border-width: 1px; 19 | border-style: solid; 20 | -moz-border-radius: 0px 0px 0px 0px; 21 | -webkit-border-radius: 0px 0px 0px 0px; 22 | border-radius: 0px 0px 0px 0px; 23 | } 24 | .m-btn-downarrow { 25 | background: url('images/menu_arrows.png') no-repeat 2px center; 26 | } 27 | a.m-btn-plain-active { 28 | border-color: #ddd; 29 | background-color: #E6E6E6; 30 | color: #444; 31 | } 32 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/menubutton.css: -------------------------------------------------------------------------------- 1 | .m-btn-downarrow { 2 | display: inline-block; 3 | width: 16px; 4 | height: 16px; 5 | line-height: 16px; 6 | font-size: 12px; 7 | _vertical-align: middle; 8 | } 9 | a.m-btn-active { 10 | background-position: bottom right; 11 | } 12 | a.m-btn-active span.l-btn-left { 13 | background-position: bottom left; 14 | } 15 | a.m-btn-plain-active { 16 | background: transparent; 17 | padding: 0 5px 0 0; 18 | border-width: 1px; 19 | border-style: solid; 20 | -moz-border-radius: 5px 5px 5px 5px; 21 | -webkit-border-radius: 5px 5px 5px 5px; 22 | border-radius: 5px 5px 5px 5px; 23 | } 24 | .m-btn-downarrow { 25 | background: url('images/menu_arrows.png') no-repeat 2px center; 26 | } 27 | a.m-btn-plain-active { 28 | border-color: #ccc; 29 | background-color: #e2e2e2; 30 | color: #000000; 31 | } 32 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/menubutton.css: -------------------------------------------------------------------------------- 1 | .m-btn-downarrow { 2 | display: inline-block; 3 | width: 16px; 4 | height: 16px; 5 | line-height: 16px; 6 | font-size: 12px; 7 | _vertical-align: middle; 8 | } 9 | a.m-btn-active { 10 | background-position: bottom right; 11 | } 12 | a.m-btn-active span.l-btn-left { 13 | background-position: bottom left; 14 | } 15 | a.m-btn-plain-active { 16 | background: transparent; 17 | padding: 0 5px 0 0; 18 | border-width: 1px; 19 | border-style: solid; 20 | -moz-border-radius: 5px 5px 5px 5px; 21 | -webkit-border-radius: 5px 5px 5px 5px; 22 | border-radius: 5px 5px 5px 5px; 23 | } 24 | .m-btn-downarrow { 25 | background: url('images/menu_arrows.png') no-repeat 2px center; 26 | } 27 | a.m-btn-plain-active { 28 | border-color: #ddd; 29 | background-color: #e6e6e6; 30 | color: #00438a; 31 | } 32 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/menubutton.css: -------------------------------------------------------------------------------- 1 | .m-btn-downarrow { 2 | display: inline-block; 3 | width: 16px; 4 | height: 16px; 5 | line-height: 16px; 6 | font-size: 12px; 7 | _vertical-align: middle; 8 | } 9 | a.m-btn-active { 10 | background-position: bottom right; 11 | } 12 | a.m-btn-active span.l-btn-left { 13 | background-position: bottom left; 14 | } 15 | a.m-btn-plain-active { 16 | background: transparent; 17 | padding: 0 5px 0 0; 18 | border-width: 1px; 19 | border-style: solid; 20 | -moz-border-radius: 5px 5px 5px 5px; 21 | -webkit-border-radius: 5px 5px 5px 5px; 22 | border-radius: 5px 5px 5px 5px; 23 | } 24 | .m-btn-downarrow { 25 | background: url('images/menu_arrows.png') no-repeat 2px center; 26 | } 27 | a.m-btn-plain-active { 28 | border-color: #b7d2ff; 29 | background-color: #eaf2ff; 30 | color: #000000; 31 | } 32 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #222; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #3d3d3d; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #222; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #3d3d3d; 28 | } 29 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #ddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #f3f3f3; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #ddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #f3f3f3; 28 | } 29 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #ddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #ffffff; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #ddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #ffffff; 28 | } 29 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #e6e6e6; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #F2F2F2; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #e6e6e6; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #F2F2F2; 28 | } 29 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #dddddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #E0ECFF; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #dddddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #E0ECFF; 28 | } 29 | -------------------------------------------------------------------------------- /views/easyui/public/header.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Beego admin 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /doc/1.md: -------------------------------------------------------------------------------- 1 | ## 使用教程 2 | 3 | ### 简介 4 | 整个beego admin 本身就是一套基于beego开发得后台系统。 5 | 6 | 它需要数据库得支持才能使用,因为它自带了权限管理系统。 7 | 8 | 它有自己得一套模版及样式。目前有得版本是基于jquery easyi。 9 | 10 | 根据README配置好以后,进入后台,你会发现本身已经有了4个节点。 11 | 12 | 它们分别是 13 | 14 | 1. 节点管理 15 | 2. 用户管理 16 | 3. 分组管理 17 | 4. 角色管理 18 | 19 | 20 | #### 用户管理 21 | 用户管理就是指登录后台得用户,默认有一个超级用户admin,这个用户可以操作所有得节点,有最高权限。 22 | 23 | 新建一个用户,填写资料以后,这个用户可以登录后台,但是无任何操作权限。需要关联角色才有角色全权限。 24 | 25 | 26 | #### 节点管理 27 | 节点是后台操作得关键。它分3层结构 28 | 29 | 第一层是package。 30 | 31 | 第二层是controller。 32 | 33 | 第三层是method. 34 | 35 | 它对应了go中得这三个概念。 36 | 当然,你也可以自定义你自己得概念,只要url符合权限规范就可以。 37 | 38 | 目前需要用户手动添加节点,后期版本会添加自动生成节点功能。 39 | 40 | 41 | #### 角色管理 42 | 角色是关联用户与节点得中间桥梁,一个用户可以有多个角色,一个角色也可以有多个节点。 43 | 44 | 这就能够很精确得分配用户权限,从而更灵活得控制权限安全。 45 | 46 | 47 | #### 分组管理 48 | 分组管理是为了再项目功能越来越复杂所衍生得一个功能,它再节点上又分出了一层,每个分组下都可以挂靠一部分 49 | 业务上相关类型的节点。 50 | 51 | 但是它不体现再url上,仅仅是逻辑上得分组。 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/messager.css: -------------------------------------------------------------------------------- 1 | .messager-body { 2 | padding: 10px; 3 | overflow: hidden; 4 | } 5 | .messager-button { 6 | text-align: center; 7 | padding-top: 10px; 8 | } 9 | .messager-icon { 10 | float: left; 11 | width: 32px; 12 | height: 32px; 13 | margin: 0 10px 10px 0; 14 | } 15 | .messager-error { 16 | background: url('images/messager_icons.png') no-repeat scroll -64px 0; 17 | } 18 | .messager-info { 19 | background: url('images/messager_icons.png') no-repeat scroll 0 0; 20 | } 21 | .messager-question { 22 | background: url('images/messager_icons.png') no-repeat scroll -32px 0; 23 | } 24 | .messager-warning { 25 | background: url('images/messager_icons.png') no-repeat scroll -96px 0; 26 | } 27 | .messager-progress { 28 | padding: 10px; 29 | } 30 | .messager-p-msg { 31 | margin-bottom: 5px; 32 | } 33 | .messager-body .messager-input { 34 | width: 100%; 35 | padding: 1px 0; 36 | border: 1px solid #000; 37 | } 38 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/messager.css: -------------------------------------------------------------------------------- 1 | .messager-body { 2 | padding: 10px; 3 | overflow: hidden; 4 | } 5 | .messager-button { 6 | text-align: center; 7 | padding-top: 10px; 8 | } 9 | .messager-icon { 10 | float: left; 11 | width: 32px; 12 | height: 32px; 13 | margin: 0 10px 10px 0; 14 | } 15 | .messager-error { 16 | background: url('images/messager_icons.png') no-repeat scroll -64px 0; 17 | } 18 | .messager-info { 19 | background: url('images/messager_icons.png') no-repeat scroll 0 0; 20 | } 21 | .messager-question { 22 | background: url('images/messager_icons.png') no-repeat scroll -32px 0; 23 | } 24 | .messager-warning { 25 | background: url('images/messager_icons.png') no-repeat scroll -96px 0; 26 | } 27 | .messager-progress { 28 | padding: 10px; 29 | } 30 | .messager-p-msg { 31 | margin-bottom: 5px; 32 | } 33 | .messager-body .messager-input { 34 | width: 100%; 35 | padding: 1px 0; 36 | border: 1px solid #ddd; 37 | } 38 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/messager.css: -------------------------------------------------------------------------------- 1 | .messager-body { 2 | padding: 10px; 3 | overflow: hidden; 4 | } 5 | .messager-button { 6 | text-align: center; 7 | padding-top: 10px; 8 | } 9 | .messager-icon { 10 | float: left; 11 | width: 32px; 12 | height: 32px; 13 | margin: 0 10px 10px 0; 14 | } 15 | .messager-error { 16 | background: url('images/messager_icons.png') no-repeat scroll -64px 0; 17 | } 18 | .messager-info { 19 | background: url('images/messager_icons.png') no-repeat scroll 0 0; 20 | } 21 | .messager-question { 22 | background: url('images/messager_icons.png') no-repeat scroll -32px 0; 23 | } 24 | .messager-warning { 25 | background: url('images/messager_icons.png') no-repeat scroll -96px 0; 26 | } 27 | .messager-progress { 28 | padding: 10px; 29 | } 30 | .messager-p-msg { 31 | margin-bottom: 5px; 32 | } 33 | .messager-body .messager-input { 34 | width: 100%; 35 | padding: 1px 0; 36 | border: 1px solid #95B8E7; 37 | } 38 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/messager.css: -------------------------------------------------------------------------------- 1 | .messager-body { 2 | padding: 10px; 3 | overflow: hidden; 4 | } 5 | .messager-button { 6 | text-align: center; 7 | padding-top: 10px; 8 | } 9 | .messager-icon { 10 | float: left; 11 | width: 32px; 12 | height: 32px; 13 | margin: 0 10px 10px 0; 14 | } 15 | .messager-error { 16 | background: url('images/messager_icons.png') no-repeat scroll -64px 0; 17 | } 18 | .messager-info { 19 | background: url('images/messager_icons.png') no-repeat scroll 0 0; 20 | } 21 | .messager-question { 22 | background: url('images/messager_icons.png') no-repeat scroll -32px 0; 23 | } 24 | .messager-warning { 25 | background: url('images/messager_icons.png') no-repeat scroll -96px 0; 26 | } 27 | .messager-progress { 28 | padding: 10px; 29 | } 30 | .messager-p-msg { 31 | margin-bottom: 5px; 32 | } 33 | .messager-body .messager-input { 34 | width: 100%; 35 | padding: 1px 0; 36 | border: 1px solid #D3D3D3; 37 | } 38 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/messager.css: -------------------------------------------------------------------------------- 1 | .messager-body { 2 | padding: 10px; 3 | overflow: hidden; 4 | } 5 | .messager-button { 6 | text-align: center; 7 | padding-top: 10px; 8 | } 9 | .messager-icon { 10 | float: left; 11 | width: 32px; 12 | height: 32px; 13 | margin: 0 10px 10px 0; 14 | } 15 | .messager-error { 16 | background: url('images/messager_icons.png') no-repeat scroll -64px 0; 17 | } 18 | .messager-info { 19 | background: url('images/messager_icons.png') no-repeat scroll 0 0; 20 | } 21 | .messager-question { 22 | background: url('images/messager_icons.png') no-repeat scroll -32px 0; 23 | } 24 | .messager-warning { 25 | background: url('images/messager_icons.png') no-repeat scroll -96px 0; 26 | } 27 | .messager-progress { 28 | padding: 10px; 29 | } 30 | .messager-p-msg { 31 | margin-bottom: 5px; 32 | } 33 | .messager-body .messager-input { 34 | width: 100%; 35 | padding: 1px 0; 36 | border: 1px solid #D4D4D4; 37 | } 38 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #666; 30 | border-color: #000; 31 | } 32 | .accordion .accordion-header { 33 | background: #3d3d3d; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #0052A3; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #fff; 41 | } 42 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #fff; 30 | border-color: #ddd; 31 | } 32 | .accordion .accordion-header { 33 | background: #ffffff; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #CCE6FF; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #000; 41 | } 42 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #ffffff; 30 | border-color: #D3D3D3; 31 | } 32 | .accordion .accordion-header { 33 | background: #f3f3f3; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #0092DC; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #fff; 41 | } 42 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #ffffff; 30 | border-color: #D4D4D4; 31 | } 32 | .accordion .accordion-header { 33 | background: #F2F2F2; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #0081c2; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #fff; 41 | } 42 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #ffffff; 30 | border-color: #95B8E7; 31 | } 32 | .accordion .accordion-header { 33 | background: #E0ECFF; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #FBEC88; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #000000; 41 | } 42 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn-downarrow { 2 | display: inline-block; 3 | margin: 0 0 0 4px; 4 | padding: 0 0 0 1px; 5 | width: 14px; 6 | height: 16px; 7 | line-height: 16px; 8 | border-width: 0; 9 | border-style: solid; 10 | font-size: 12px; 11 | _vertical-align: middle; 12 | } 13 | a.s-btn-active { 14 | background-position: bottom right; 15 | } 16 | a.s-btn-active span.l-btn-left { 17 | background-position: bottom left; 18 | } 19 | a.s-btn-plain-active { 20 | background: transparent; 21 | padding: 0 5px 0 0; 22 | border-width: 1px; 23 | border-style: solid; 24 | -moz-border-radius: 5px 5px 5px 5px; 25 | -webkit-border-radius: 5px 5px 5px 5px; 26 | border-radius: 5px 5px 5px 5px; 27 | } 28 | .s-btn-downarrow { 29 | background: url('images/menu_arrows.png') no-repeat 2px center; 30 | border-color: #cccccc; 31 | } 32 | a:hover.l-btn .s-btn-downarrow, 33 | a.s-btn-active .s-btn-downarrow, 34 | a.s-btn-plain-active .s-btn-downarrow { 35 | background-position: 1px center; 36 | padding: 0; 37 | border-width: 0 0 0 1px; 38 | } 39 | a.s-btn-plain-active { 40 | border-color: #555; 41 | background-color: #777; 42 | color: #fff; 43 | } 44 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn-downarrow { 2 | display: inline-block; 3 | margin: 0 0 0 4px; 4 | padding: 0 0 0 1px; 5 | width: 14px; 6 | height: 16px; 7 | line-height: 16px; 8 | border-width: 0; 9 | border-style: solid; 10 | font-size: 12px; 11 | _vertical-align: middle; 12 | } 13 | a.s-btn-active { 14 | background-position: bottom right; 15 | } 16 | a.s-btn-active span.l-btn-left { 17 | background-position: bottom left; 18 | } 19 | a.s-btn-plain-active { 20 | background: transparent; 21 | padding: 0 5px 0 0; 22 | border-width: 1px; 23 | border-style: solid; 24 | -moz-border-radius: 0px 0px 0px 0px; 25 | -webkit-border-radius: 0px 0px 0px 0px; 26 | border-radius: 0px 0px 0px 0px; 27 | } 28 | .s-btn-downarrow { 29 | background: url('images/menu_arrows.png') no-repeat 2px center; 30 | border-color: #b3b3b3; 31 | } 32 | a:hover.l-btn .s-btn-downarrow, 33 | a.s-btn-active .s-btn-downarrow, 34 | a.s-btn-plain-active .s-btn-downarrow { 35 | background-position: 1px center; 36 | padding: 0; 37 | border-width: 0 0 0 1px; 38 | } 39 | a.s-btn-plain-active { 40 | border-color: #ddd; 41 | background-color: #E6E6E6; 42 | color: #444; 43 | } 44 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn-downarrow { 2 | display: inline-block; 3 | margin: 0 0 0 4px; 4 | padding: 0 0 0 1px; 5 | width: 14px; 6 | height: 16px; 7 | line-height: 16px; 8 | border-width: 0; 9 | border-style: solid; 10 | font-size: 12px; 11 | _vertical-align: middle; 12 | } 13 | a.s-btn-active { 14 | background-position: bottom right; 15 | } 16 | a.s-btn-active span.l-btn-left { 17 | background-position: bottom left; 18 | } 19 | a.s-btn-plain-active { 20 | background: transparent; 21 | padding: 0 5px 0 0; 22 | border-width: 1px; 23 | border-style: solid; 24 | -moz-border-radius: 5px 5px 5px 5px; 25 | -webkit-border-radius: 5px 5px 5px 5px; 26 | border-radius: 5px 5px 5px 5px; 27 | } 28 | .s-btn-downarrow { 29 | background: url('images/menu_arrows.png') no-repeat 2px center; 30 | border-color: #bbb; 31 | } 32 | a:hover.l-btn .s-btn-downarrow, 33 | a.s-btn-active .s-btn-downarrow, 34 | a.s-btn-plain-active .s-btn-downarrow { 35 | background-position: 1px center; 36 | padding: 0; 37 | border-width: 0 0 0 1px; 38 | } 39 | a.s-btn-plain-active { 40 | border-color: #ddd; 41 | background-color: #e6e6e6; 42 | color: #00438a; 43 | } 44 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn-downarrow { 2 | display: inline-block; 3 | margin: 0 0 0 4px; 4 | padding: 0 0 0 1px; 5 | width: 14px; 6 | height: 16px; 7 | line-height: 16px; 8 | border-width: 0; 9 | border-style: solid; 10 | font-size: 12px; 11 | _vertical-align: middle; 12 | } 13 | a.s-btn-active { 14 | background-position: bottom right; 15 | } 16 | a.s-btn-active span.l-btn-left { 17 | background-position: bottom left; 18 | } 19 | a.s-btn-plain-active { 20 | background: transparent; 21 | padding: 0 5px 0 0; 22 | border-width: 1px; 23 | border-style: solid; 24 | -moz-border-radius: 5px 5px 5px 5px; 25 | -webkit-border-radius: 5px 5px 5px 5px; 26 | border-radius: 5px 5px 5px 5px; 27 | } 28 | .s-btn-downarrow { 29 | background: url('images/menu_arrows.png') no-repeat 2px center; 30 | border-color: #bfbfbf; 31 | } 32 | a:hover.l-btn .s-btn-downarrow, 33 | a.s-btn-active .s-btn-downarrow, 34 | a.s-btn-plain-active .s-btn-downarrow { 35 | background-position: 1px center; 36 | padding: 0; 37 | border-width: 0 0 0 1px; 38 | } 39 | a.s-btn-plain-active { 40 | border-color: #ccc; 41 | background-color: #e2e2e2; 42 | color: #000000; 43 | } 44 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn-downarrow { 2 | display: inline-block; 3 | margin: 0 0 0 4px; 4 | padding: 0 0 0 1px; 5 | width: 14px; 6 | height: 16px; 7 | line-height: 16px; 8 | border-width: 0; 9 | border-style: solid; 10 | font-size: 12px; 11 | _vertical-align: middle; 12 | } 13 | a.s-btn-active { 14 | background-position: bottom right; 15 | } 16 | a.s-btn-active span.l-btn-left { 17 | background-position: bottom left; 18 | } 19 | a.s-btn-plain-active { 20 | background: transparent; 21 | padding: 0 5px 0 0; 22 | border-width: 1px; 23 | border-style: solid; 24 | -moz-border-radius: 5px 5px 5px 5px; 25 | -webkit-border-radius: 5px 5px 5px 5px; 26 | border-radius: 5px 5px 5px 5px; 27 | } 28 | .s-btn-downarrow { 29 | background: url('images/menu_arrows.png') no-repeat 2px center; 30 | border-color: #aac5e7; 31 | } 32 | a:hover.l-btn .s-btn-downarrow, 33 | a.s-btn-active .s-btn-downarrow, 34 | a.s-btn-plain-active .s-btn-downarrow { 35 | background-position: 1px center; 36 | padding: 0; 37 | border-width: 0 0 0 1px; 38 | } 39 | a.s-btn-plain-active { 40 | border-color: #b7d2ff; 41 | background-color: #eaf2ff; 42 | color: #000000; 43 | } 44 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/combo.css: -------------------------------------------------------------------------------- 1 | .combo { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .combo .combo-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0px 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .combo-arrow { 26 | width: 18px; 27 | height: 20px; 28 | overflow: hidden; 29 | display: inline-block; 30 | vertical-align: top; 31 | cursor: pointer; 32 | opacity: 0.6; 33 | filter: alpha(opacity=60); 34 | } 35 | .combo-arrow-hover { 36 | opacity: 1.0; 37 | filter: alpha(opacity=100); 38 | } 39 | .combo-panel { 40 | overflow: auto; 41 | } 42 | .combo-arrow { 43 | background: url('images/combo_arrow.png') no-repeat center center; 44 | } 45 | .combo, 46 | .combo-panel { 47 | background-color: #666; 48 | } 49 | .combo { 50 | border-color: #000; 51 | background-color: #666; 52 | } 53 | .combo-arrow { 54 | background-color: #3d3d3d; 55 | } 56 | .combo-arrow-hover { 57 | background-color: #777; 58 | } 59 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/combo.css: -------------------------------------------------------------------------------- 1 | .combo { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .combo .combo-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0px 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .combo-arrow { 26 | width: 18px; 27 | height: 20px; 28 | overflow: hidden; 29 | display: inline-block; 30 | vertical-align: top; 31 | cursor: pointer; 32 | opacity: 0.6; 33 | filter: alpha(opacity=60); 34 | } 35 | .combo-arrow-hover { 36 | opacity: 1.0; 37 | filter: alpha(opacity=100); 38 | } 39 | .combo-panel { 40 | overflow: auto; 41 | } 42 | .combo-arrow { 43 | background: url('images/combo_arrow.png') no-repeat center center; 44 | } 45 | .combo, 46 | .combo-panel { 47 | background-color: #fff; 48 | } 49 | .combo { 50 | border-color: #ddd; 51 | background-color: #fff; 52 | } 53 | .combo-arrow { 54 | background-color: #ffffff; 55 | } 56 | .combo-arrow-hover { 57 | background-color: #E6E6E6; 58 | } 59 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/combo.css: -------------------------------------------------------------------------------- 1 | .combo { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .combo .combo-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0px 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .combo-arrow { 26 | width: 18px; 27 | height: 20px; 28 | overflow: hidden; 29 | display: inline-block; 30 | vertical-align: top; 31 | cursor: pointer; 32 | opacity: 0.6; 33 | filter: alpha(opacity=60); 34 | } 35 | .combo-arrow-hover { 36 | opacity: 1.0; 37 | filter: alpha(opacity=100); 38 | } 39 | .combo-panel { 40 | overflow: auto; 41 | } 42 | .combo-arrow { 43 | background: url('images/combo_arrow.png') no-repeat center center; 44 | } 45 | .combo, 46 | .combo-panel { 47 | background-color: #ffffff; 48 | } 49 | .combo { 50 | border-color: #D3D3D3; 51 | background-color: #ffffff; 52 | } 53 | .combo-arrow { 54 | background-color: #f3f3f3; 55 | } 56 | .combo-arrow-hover { 57 | background-color: #e2e2e2; 58 | } 59 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/combo.css: -------------------------------------------------------------------------------- 1 | .combo { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .combo .combo-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0px 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .combo-arrow { 26 | width: 18px; 27 | height: 20px; 28 | overflow: hidden; 29 | display: inline-block; 30 | vertical-align: top; 31 | cursor: pointer; 32 | opacity: 0.6; 33 | filter: alpha(opacity=60); 34 | } 35 | .combo-arrow-hover { 36 | opacity: 1.0; 37 | filter: alpha(opacity=100); 38 | } 39 | .combo-panel { 40 | overflow: auto; 41 | } 42 | .combo-arrow { 43 | background: url('images/combo_arrow.png') no-repeat center center; 44 | } 45 | .combo, 46 | .combo-panel { 47 | background-color: #ffffff; 48 | } 49 | .combo { 50 | border-color: #D4D4D4; 51 | background-color: #ffffff; 52 | } 53 | .combo-arrow { 54 | background-color: #F2F2F2; 55 | } 56 | .combo-arrow-hover { 57 | background-color: #e6e6e6; 58 | } 59 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/combo.css: -------------------------------------------------------------------------------- 1 | .combo { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .combo .combo-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0px 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .combo-arrow { 26 | width: 18px; 27 | height: 20px; 28 | overflow: hidden; 29 | display: inline-block; 30 | vertical-align: top; 31 | cursor: pointer; 32 | opacity: 0.6; 33 | filter: alpha(opacity=60); 34 | } 35 | .combo-arrow-hover { 36 | opacity: 1.0; 37 | filter: alpha(opacity=100); 38 | } 39 | .combo-panel { 40 | overflow: auto; 41 | } 42 | .combo-arrow { 43 | background: url('images/combo_arrow.png') no-repeat center center; 44 | } 45 | .combo, 46 | .combo-panel { 47 | background-color: #ffffff; 48 | } 49 | .combo { 50 | border-color: #95B8E7; 51 | background-color: #ffffff; 52 | } 53 | .combo-arrow { 54 | background-color: #E0ECFF; 55 | } 56 | .combo-arrow-hover { 57 | background-color: #eaf2ff; 58 | } 59 | -------------------------------------------------------------------------------- /src/rbac/common.go: -------------------------------------------------------------------------------- 1 | package rbac 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | . "github.com/beego/admin/src" 6 | m "github.com/beego/admin/src/models" 7 | ) 8 | 9 | type CommonController struct { 10 | beego.Controller 11 | Templatetype string //ui template type 12 | } 13 | 14 | func (this *CommonController) Rsp(status bool, str string) { 15 | this.Data["json"] = &map[string]interface{}{"status": status, "info": str} 16 | this.ServeJSON() 17 | } 18 | 19 | func (this *CommonController) GetTemplatetype() string { 20 | templatetype := beego.AppConfig.String("template_type") 21 | if templatetype == "" { 22 | templatetype = "easyui" 23 | } 24 | return templatetype 25 | } 26 | 27 | func (this *CommonController) GetTree() []Tree { 28 | nodes, _ := m.GetNodeTree(0, 1) 29 | tree := make([]Tree, len(nodes)) 30 | for k, v := range nodes { 31 | tree[k].Id = v["Id"].(int64) 32 | tree[k].Text = v["Title"].(string) 33 | children, _ := m.GetNodeTree(v["Id"].(int64), 2) 34 | tree[k].Children = make([]Tree, len(children)) 35 | for k1, v1 := range children { 36 | tree[k].Children[k1].Id = v1["Id"].(int64) 37 | tree[k].Children[k1].Text = v1["Title"].(string) 38 | tree[k].Children[k1].Attributes.Url = "/" + v["Name"].(string) + "/" + v1["Name"].(string) 39 | } 40 | } 41 | return tree 42 | } 43 | 44 | func init() { 45 | 46 | //验证权限 47 | AccessRegister() 48 | } 49 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/spinner.css: -------------------------------------------------------------------------------- 1 | .spinner { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .spinner .spinner-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .spinner-arrow { 26 | display: inline-block; 27 | overflow: hidden; 28 | vertical-align: top; 29 | margin: 0; 30 | padding: 0; 31 | } 32 | .spinner-arrow-up, 33 | .spinner-arrow-down { 34 | opacity: 0.6; 35 | filter: alpha(opacity=60); 36 | display: block; 37 | font-size: 1px; 38 | width: 18px; 39 | height: 10px; 40 | } 41 | .spinner-arrow-hover { 42 | opacity: 1.0; 43 | filter: alpha(opacity=100); 44 | } 45 | .spinner-arrow-up { 46 | background: url('images/spinner_arrows.png') no-repeat 1px center; 47 | } 48 | .spinner-arrow-down { 49 | background: url('images/spinner_arrows.png') no-repeat -15px center; 50 | } 51 | .spinner { 52 | border-color: #000; 53 | } 54 | .spinner-arrow { 55 | background-color: #3d3d3d; 56 | } 57 | .spinner-arrow-hover { 58 | background-color: #777; 59 | } 60 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/spinner.css: -------------------------------------------------------------------------------- 1 | .spinner { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .spinner .spinner-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .spinner-arrow { 26 | display: inline-block; 27 | overflow: hidden; 28 | vertical-align: top; 29 | margin: 0; 30 | padding: 0; 31 | } 32 | .spinner-arrow-up, 33 | .spinner-arrow-down { 34 | opacity: 0.6; 35 | filter: alpha(opacity=60); 36 | display: block; 37 | font-size: 1px; 38 | width: 18px; 39 | height: 10px; 40 | } 41 | .spinner-arrow-hover { 42 | opacity: 1.0; 43 | filter: alpha(opacity=100); 44 | } 45 | .spinner-arrow-up { 46 | background: url('images/spinner_arrows.png') no-repeat 1px center; 47 | } 48 | .spinner-arrow-down { 49 | background: url('images/spinner_arrows.png') no-repeat -15px center; 50 | } 51 | .spinner { 52 | border-color: #D3D3D3; 53 | } 54 | .spinner-arrow { 55 | background-color: #f3f3f3; 56 | } 57 | .spinner-arrow-hover { 58 | background-color: #e2e2e2; 59 | } 60 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/spinner.css: -------------------------------------------------------------------------------- 1 | .spinner { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .spinner .spinner-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .spinner-arrow { 26 | display: inline-block; 27 | overflow: hidden; 28 | vertical-align: top; 29 | margin: 0; 30 | padding: 0; 31 | } 32 | .spinner-arrow-up, 33 | .spinner-arrow-down { 34 | opacity: 0.6; 35 | filter: alpha(opacity=60); 36 | display: block; 37 | font-size: 1px; 38 | width: 18px; 39 | height: 10px; 40 | } 41 | .spinner-arrow-hover { 42 | opacity: 1.0; 43 | filter: alpha(opacity=100); 44 | } 45 | .spinner-arrow-up { 46 | background: url('images/spinner_arrows.png') no-repeat 1px center; 47 | } 48 | .spinner-arrow-down { 49 | background: url('images/spinner_arrows.png') no-repeat -15px center; 50 | } 51 | .spinner { 52 | border-color: #ddd; 53 | } 54 | .spinner-arrow { 55 | background-color: #ffffff; 56 | } 57 | .spinner-arrow-hover { 58 | background-color: #E6E6E6; 59 | } 60 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/spinner.css: -------------------------------------------------------------------------------- 1 | .spinner { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .spinner .spinner-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .spinner-arrow { 26 | display: inline-block; 27 | overflow: hidden; 28 | vertical-align: top; 29 | margin: 0; 30 | padding: 0; 31 | } 32 | .spinner-arrow-up, 33 | .spinner-arrow-down { 34 | opacity: 0.6; 35 | filter: alpha(opacity=60); 36 | display: block; 37 | font-size: 1px; 38 | width: 18px; 39 | height: 10px; 40 | } 41 | .spinner-arrow-hover { 42 | opacity: 1.0; 43 | filter: alpha(opacity=100); 44 | } 45 | .spinner-arrow-up { 46 | background: url('images/spinner_arrows.png') no-repeat 1px center; 47 | } 48 | .spinner-arrow-down { 49 | background: url('images/spinner_arrows.png') no-repeat -15px center; 50 | } 51 | .spinner { 52 | border-color: #D4D4D4; 53 | } 54 | .spinner-arrow { 55 | background-color: #F2F2F2; 56 | } 57 | .spinner-arrow-hover { 58 | background-color: #e6e6e6; 59 | } 60 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/spinner.css: -------------------------------------------------------------------------------- 1 | .spinner { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | vertical-align: middle; 10 | } 11 | .spinner .spinner-text { 12 | font-size: 12px; 13 | border: 0px; 14 | line-height: 20px; 15 | height: 20px; 16 | margin: 0; 17 | padding: 0 2px; 18 | *margin-top: -1px; 19 | *height: 18px; 20 | *line-height: 18px; 21 | _height: 18px; 22 | _line-height: 18px; 23 | vertical-align: baseline; 24 | } 25 | .spinner-arrow { 26 | display: inline-block; 27 | overflow: hidden; 28 | vertical-align: top; 29 | margin: 0; 30 | padding: 0; 31 | } 32 | .spinner-arrow-up, 33 | .spinner-arrow-down { 34 | opacity: 0.6; 35 | filter: alpha(opacity=60); 36 | display: block; 37 | font-size: 1px; 38 | width: 18px; 39 | height: 10px; 40 | } 41 | .spinner-arrow-hover { 42 | opacity: 1.0; 43 | filter: alpha(opacity=100); 44 | } 45 | .spinner-arrow-up { 46 | background: url('images/spinner_arrows.png') no-repeat 1px center; 47 | } 48 | .spinner-arrow-down { 49 | background: url('images/spinner_arrows.png') no-repeat -15px center; 50 | } 51 | .spinner { 52 | border-color: #95B8E7; 53 | } 54 | .spinner-arrow { 55 | background-color: #E0ECFF; 56 | } 57 | .spinner-arrow-hover { 58 | background-color: #eaf2ff; 59 | } 60 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/pagination.css: -------------------------------------------------------------------------------- 1 | .pagination { 2 | zoom: 1; 3 | } 4 | .pagination table { 5 | float: left; 6 | height: 30px; 7 | } 8 | .pagination td { 9 | border: 0; 10 | } 11 | .pagination-btn-separator { 12 | float: left; 13 | height: 24px; 14 | border-left: 1px solid #444; 15 | border-right: 1px solid #777; 16 | margin: 3px 1px; 17 | } 18 | .pagination .pagination-num { 19 | border-width: 1px; 20 | border-style: solid; 21 | margin: 0 2px; 22 | padding: 2px; 23 | width: 2em; 24 | height: auto; 25 | } 26 | .pagination-page-list { 27 | margin: 0px 6px; 28 | padding: 1px 2px; 29 | width: auto; 30 | height: auto; 31 | border-width: 1px; 32 | border-style: solid; 33 | } 34 | .pagination-info { 35 | float: right; 36 | margin: 0 6px 0 0; 37 | padding: 0; 38 | height: 30px; 39 | line-height: 30px; 40 | font-size: 12px; 41 | } 42 | .pagination span { 43 | font-size: 12px; 44 | } 45 | .pagination-first { 46 | background: url('images/pagination_icons.png') no-repeat 0 0; 47 | } 48 | .pagination-prev { 49 | background: url('images/pagination_icons.png') no-repeat -16px 0; 50 | } 51 | .pagination-next { 52 | background: url('images/pagination_icons.png') no-repeat -32px 0; 53 | } 54 | .pagination-last { 55 | background: url('images/pagination_icons.png') no-repeat -48px 0; 56 | } 57 | .pagination-load { 58 | background: url('images/pagination_icons.png') no-repeat -64px 0; 59 | } 60 | .pagination-loading { 61 | background: url('images/loading.gif') no-repeat; 62 | } 63 | .pagination-page-list, 64 | .pagination .pagination-num { 65 | border-color: #000; 66 | } 67 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/pagination.css: -------------------------------------------------------------------------------- 1 | .pagination { 2 | zoom: 1; 3 | } 4 | .pagination table { 5 | float: left; 6 | height: 30px; 7 | } 8 | .pagination td { 9 | border: 0; 10 | } 11 | .pagination-btn-separator { 12 | float: left; 13 | height: 24px; 14 | border-left: 1px solid #ddd; 15 | border-right: 1px solid #fff; 16 | margin: 3px 1px; 17 | } 18 | .pagination .pagination-num { 19 | border-width: 1px; 20 | border-style: solid; 21 | margin: 0 2px; 22 | padding: 2px; 23 | width: 2em; 24 | height: auto; 25 | } 26 | .pagination-page-list { 27 | margin: 0px 6px; 28 | padding: 1px 2px; 29 | width: auto; 30 | height: auto; 31 | border-width: 1px; 32 | border-style: solid; 33 | } 34 | .pagination-info { 35 | float: right; 36 | margin: 0 6px 0 0; 37 | padding: 0; 38 | height: 30px; 39 | line-height: 30px; 40 | font-size: 12px; 41 | } 42 | .pagination span { 43 | font-size: 12px; 44 | } 45 | .pagination-first { 46 | background: url('images/pagination_icons.png') no-repeat 0 0; 47 | } 48 | .pagination-prev { 49 | background: url('images/pagination_icons.png') no-repeat -16px 0; 50 | } 51 | .pagination-next { 52 | background: url('images/pagination_icons.png') no-repeat -32px 0; 53 | } 54 | .pagination-last { 55 | background: url('images/pagination_icons.png') no-repeat -48px 0; 56 | } 57 | .pagination-load { 58 | background: url('images/pagination_icons.png') no-repeat -64px 0; 59 | } 60 | .pagination-loading { 61 | background: url('images/loading.gif') no-repeat; 62 | } 63 | .pagination-page-list, 64 | .pagination .pagination-num { 65 | border-color: #ddd; 66 | } 67 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/pagination.css: -------------------------------------------------------------------------------- 1 | .pagination { 2 | zoom: 1; 3 | } 4 | .pagination table { 5 | float: left; 6 | height: 30px; 7 | } 8 | .pagination td { 9 | border: 0; 10 | } 11 | .pagination-btn-separator { 12 | float: left; 13 | height: 24px; 14 | border-left: 1px solid #ccc; 15 | border-right: 1px solid #fff; 16 | margin: 3px 1px; 17 | } 18 | .pagination .pagination-num { 19 | border-width: 1px; 20 | border-style: solid; 21 | margin: 0 2px; 22 | padding: 2px; 23 | width: 2em; 24 | height: auto; 25 | } 26 | .pagination-page-list { 27 | margin: 0px 6px; 28 | padding: 1px 2px; 29 | width: auto; 30 | height: auto; 31 | border-width: 1px; 32 | border-style: solid; 33 | } 34 | .pagination-info { 35 | float: right; 36 | margin: 0 6px 0 0; 37 | padding: 0; 38 | height: 30px; 39 | line-height: 30px; 40 | font-size: 12px; 41 | } 42 | .pagination span { 43 | font-size: 12px; 44 | } 45 | .pagination-first { 46 | background: url('images/pagination_icons.png') no-repeat 0 0; 47 | } 48 | .pagination-prev { 49 | background: url('images/pagination_icons.png') no-repeat -16px 0; 50 | } 51 | .pagination-next { 52 | background: url('images/pagination_icons.png') no-repeat -32px 0; 53 | } 54 | .pagination-last { 55 | background: url('images/pagination_icons.png') no-repeat -48px 0; 56 | } 57 | .pagination-load { 58 | background: url('images/pagination_icons.png') no-repeat -64px 0; 59 | } 60 | .pagination-loading { 61 | background: url('images/loading.gif') no-repeat; 62 | } 63 | .pagination-page-list, 64 | .pagination .pagination-num { 65 | border-color: #95B8E7; 66 | } 67 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/pagination.css: -------------------------------------------------------------------------------- 1 | .pagination { 2 | zoom: 1; 3 | } 4 | .pagination table { 5 | float: left; 6 | height: 30px; 7 | } 8 | .pagination td { 9 | border: 0; 10 | } 11 | .pagination-btn-separator { 12 | float: left; 13 | height: 24px; 14 | border-left: 1px solid #ccc; 15 | border-right: 1px solid #fff; 16 | margin: 3px 1px; 17 | } 18 | .pagination .pagination-num { 19 | border-width: 1px; 20 | border-style: solid; 21 | margin: 0 2px; 22 | padding: 2px; 23 | width: 2em; 24 | height: auto; 25 | } 26 | .pagination-page-list { 27 | margin: 0px 6px; 28 | padding: 1px 2px; 29 | width: auto; 30 | height: auto; 31 | border-width: 1px; 32 | border-style: solid; 33 | } 34 | .pagination-info { 35 | float: right; 36 | margin: 0 6px 0 0; 37 | padding: 0; 38 | height: 30px; 39 | line-height: 30px; 40 | font-size: 12px; 41 | } 42 | .pagination span { 43 | font-size: 12px; 44 | } 45 | .pagination-first { 46 | background: url('images/pagination_icons.png') no-repeat 0 0; 47 | } 48 | .pagination-prev { 49 | background: url('images/pagination_icons.png') no-repeat -16px 0; 50 | } 51 | .pagination-next { 52 | background: url('images/pagination_icons.png') no-repeat -32px 0; 53 | } 54 | .pagination-last { 55 | background: url('images/pagination_icons.png') no-repeat -48px 0; 56 | } 57 | .pagination-load { 58 | background: url('images/pagination_icons.png') no-repeat -64px 0; 59 | } 60 | .pagination-loading { 61 | background: url('images/loading.gif') no-repeat; 62 | } 63 | .pagination-page-list, 64 | .pagination .pagination-num { 65 | border-color: #D3D3D3; 66 | } 67 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/pagination.css: -------------------------------------------------------------------------------- 1 | .pagination { 2 | zoom: 1; 3 | } 4 | .pagination table { 5 | float: left; 6 | height: 30px; 7 | } 8 | .pagination td { 9 | border: 0; 10 | } 11 | .pagination-btn-separator { 12 | float: left; 13 | height: 24px; 14 | border-left: 1px solid #ccc; 15 | border-right: 1px solid #fff; 16 | margin: 3px 1px; 17 | } 18 | .pagination .pagination-num { 19 | border-width: 1px; 20 | border-style: solid; 21 | margin: 0 2px; 22 | padding: 2px; 23 | width: 2em; 24 | height: auto; 25 | } 26 | .pagination-page-list { 27 | margin: 0px 6px; 28 | padding: 1px 2px; 29 | width: auto; 30 | height: auto; 31 | border-width: 1px; 32 | border-style: solid; 33 | } 34 | .pagination-info { 35 | float: right; 36 | margin: 0 6px 0 0; 37 | padding: 0; 38 | height: 30px; 39 | line-height: 30px; 40 | font-size: 12px; 41 | } 42 | .pagination span { 43 | font-size: 12px; 44 | } 45 | .pagination-first { 46 | background: url('images/pagination_icons.png') no-repeat 0 0; 47 | } 48 | .pagination-prev { 49 | background: url('images/pagination_icons.png') no-repeat -16px 0; 50 | } 51 | .pagination-next { 52 | background: url('images/pagination_icons.png') no-repeat -32px 0; 53 | } 54 | .pagination-last { 55 | background: url('images/pagination_icons.png') no-repeat -48px 0; 56 | } 57 | .pagination-load { 58 | background: url('images/pagination_icons.png') no-repeat -64px 0; 59 | } 60 | .pagination-loading { 61 | background: url('images/loading.gif') no-repeat; 62 | } 63 | .pagination-page-list, 64 | .pagination .pagination-num { 65 | border-color: #D4D4D4; 66 | } 67 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/plugins/jquery.splitbutton.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery EasyUI 1.3.4 3 | * 4 | * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. 5 | * 6 | * Licensed under the GPL or commercial licenses 7 | * To use it on other terms please contact us: info@jeasyui.com 8 | * http://www.gnu.org/licenses/gpl.txt 9 | * http://www.jeasyui.com/license_commercial.php 10 | * 11 | */ 12 | (function($){ 13 | function _1(_2){ 14 | var _3=$.data(_2,"splitbutton").options; 15 | $(_2).menubutton(_3); 16 | }; 17 | $.fn.splitbutton=function(_4,_5){ 18 | if(typeof _4=="string"){ 19 | var _6=$.fn.splitbutton.methods[_4]; 20 | if(_6){ 21 | return _6(this,_5); 22 | }else{ 23 | return this.menubutton(_4,_5); 24 | } 25 | } 26 | _4=_4||{}; 27 | return this.each(function(){ 28 | var _7=$.data(this,"splitbutton"); 29 | if(_7){ 30 | $.extend(_7.options,_4); 31 | }else{ 32 | $.data(this,"splitbutton",{options:$.extend({},$.fn.splitbutton.defaults,$.fn.splitbutton.parseOptions(this),_4)}); 33 | $(this).removeAttr("disabled"); 34 | } 35 | _1(this); 36 | }); 37 | }; 38 | $.fn.splitbutton.methods={options:function(jq){ 39 | var _8=jq.menubutton("options"); 40 | var _9=$.data(jq[0],"splitbutton").options; 41 | $.extend(_9,{disabled:_8.disabled,toggle:_8.toggle,selected:_8.selected}); 42 | return _9; 43 | }}; 44 | $.fn.splitbutton.parseOptions=function(_a){ 45 | var t=$(_a); 46 | return $.extend({},$.fn.linkbutton.parseOptions(_a),$.parser.parseOptions(_a,["menu",{plain:"boolean",duration:"number"}])); 47 | }; 48 | $.fn.splitbutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"s-btn-active",btn2:"s-btn-plain-active",arrow:"s-btn-downarrow",trigger:"s-btn-downarrow"}}); 49 | })(jQuery); 50 | 51 | -------------------------------------------------------------------------------- /src/rbac/group.go: -------------------------------------------------------------------------------- 1 | package rbac 2 | 3 | import ( 4 | m "github.com/beego/admin/src/models" 5 | ) 6 | 7 | type GroupController struct { 8 | CommonController 9 | } 10 | 11 | func (this *GroupController) Index() { 12 | if this.IsAjax() { 13 | page, _ := this.GetInt64("page") 14 | page_size, _ := this.GetInt64("rows") 15 | sort := this.GetString("sort") 16 | order := this.GetString("order") 17 | if len(order) > 0 { 18 | if order == "desc" { 19 | sort = "-" + sort 20 | } 21 | } else { 22 | sort = "Id" 23 | } 24 | nodes, count := m.GetGrouplist(page, page_size, sort) 25 | this.Data["json"] = &map[string]interface{}{"total": count, "rows": &nodes} 26 | this.ServeJSON() 27 | return 28 | } else { 29 | this.TplName = this.GetTemplatetype() + "/rbac/group.tpl" 30 | } 31 | 32 | } 33 | func (this *GroupController) AddGroup() { 34 | g := m.Group{} 35 | if err := this.ParseForm(&g); err != nil { 36 | //handle error 37 | this.Rsp(false, err.Error()) 38 | return 39 | } 40 | id, err := m.AddGroup(&g) 41 | if err == nil && id > 0 { 42 | this.Rsp(true, "Success") 43 | return 44 | } else { 45 | this.Rsp(false, err.Error()) 46 | return 47 | } 48 | 49 | } 50 | 51 | func (this *GroupController) UpdateGroup() { 52 | g := m.Group{} 53 | if err := this.ParseForm(&g); err != nil { 54 | //handle error 55 | this.Rsp(false, err.Error()) 56 | return 57 | } 58 | id, err := m.UpdateGroup(&g) 59 | if err == nil && id > 0 { 60 | this.Rsp(true, "Success") 61 | return 62 | } else { 63 | this.Rsp(false, err.Error()) 64 | return 65 | } 66 | 67 | } 68 | 69 | func (this *GroupController) DelGroup() { 70 | Id, _ := this.GetInt64("Id") 71 | status, err := m.DelGroupById(Id) 72 | if err == nil && status > 0 { 73 | this.Rsp(true, "Success") 74 | return 75 | } else { 76 | this.Rsp(false, err.Error()) 77 | return 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/searchbox.css: -------------------------------------------------------------------------------- 1 | .searchbox { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | } 10 | .searchbox .searchbox-text { 11 | font-size: 12px; 12 | border: 0; 13 | margin: 0; 14 | padding: 0; 15 | line-height: 20px; 16 | height: 20px; 17 | *margin-top: -1px; 18 | *height: 18px; 19 | *line-height: 18px; 20 | _height: 18px; 21 | _line-height: 18px; 22 | vertical-align: baseline; 23 | } 24 | .searchbox .searchbox-prompt { 25 | font-size: 12px; 26 | color: #ccc; 27 | } 28 | .searchbox-button { 29 | width: 18px; 30 | height: 20px; 31 | overflow: hidden; 32 | display: inline-block; 33 | vertical-align: top; 34 | cursor: pointer; 35 | opacity: 0.6; 36 | filter: alpha(opacity=60); 37 | } 38 | .searchbox-button-hover { 39 | opacity: 1.0; 40 | filter: alpha(opacity=100); 41 | } 42 | .searchbox a.l-btn-plain { 43 | height: 20px; 44 | border: 0; 45 | padding: 0 6px 0 0; 46 | vertical-align: top; 47 | -moz-border-radius: 0; 48 | -webkit-border-radius: 0; 49 | border-radius: 0; 50 | opacity: 0.6; 51 | filter: alpha(opacity=60); 52 | } 53 | .searchbox a.l-btn .l-btn-left { 54 | padding: 2px 0 2px 4px; 55 | } 56 | .searchbox a.l-btn-plain:hover { 57 | -moz-border-radius: 0; 58 | -webkit-border-radius: 0; 59 | border-radius: 0; 60 | border: 0; 61 | padding: 0 6px 0 0; 62 | opacity: 1.0; 63 | filter: alpha(opacity=100); 64 | } 65 | .searchbox a.m-btn-plain-active { 66 | -moz-border-radius: 0; 67 | -webkit-border-radius: 0; 68 | border-radius: 0; 69 | } 70 | .searchbox-button { 71 | background: url('images/searchbox_button.png') no-repeat center center; 72 | } 73 | .searchbox { 74 | border-color: #000; 75 | background-color: #fff; 76 | } 77 | .searchbox a.l-btn-plain { 78 | background: #3d3d3d; 79 | } 80 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/searchbox.css: -------------------------------------------------------------------------------- 1 | .searchbox { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | } 10 | .searchbox .searchbox-text { 11 | font-size: 12px; 12 | border: 0; 13 | margin: 0; 14 | padding: 0; 15 | line-height: 20px; 16 | height: 20px; 17 | *margin-top: -1px; 18 | *height: 18px; 19 | *line-height: 18px; 20 | _height: 18px; 21 | _line-height: 18px; 22 | vertical-align: baseline; 23 | } 24 | .searchbox .searchbox-prompt { 25 | font-size: 12px; 26 | color: #ccc; 27 | } 28 | .searchbox-button { 29 | width: 18px; 30 | height: 20px; 31 | overflow: hidden; 32 | display: inline-block; 33 | vertical-align: top; 34 | cursor: pointer; 35 | opacity: 0.6; 36 | filter: alpha(opacity=60); 37 | } 38 | .searchbox-button-hover { 39 | opacity: 1.0; 40 | filter: alpha(opacity=100); 41 | } 42 | .searchbox a.l-btn-plain { 43 | height: 20px; 44 | border: 0; 45 | padding: 0 6px 0 0; 46 | vertical-align: top; 47 | -moz-border-radius: 0; 48 | -webkit-border-radius: 0; 49 | border-radius: 0; 50 | opacity: 0.6; 51 | filter: alpha(opacity=60); 52 | } 53 | .searchbox a.l-btn .l-btn-left { 54 | padding: 2px 0 2px 4px; 55 | } 56 | .searchbox a.l-btn-plain:hover { 57 | -moz-border-radius: 0; 58 | -webkit-border-radius: 0; 59 | border-radius: 0; 60 | border: 0; 61 | padding: 0 6px 0 0; 62 | opacity: 1.0; 63 | filter: alpha(opacity=100); 64 | } 65 | .searchbox a.m-btn-plain-active { 66 | -moz-border-radius: 0; 67 | -webkit-border-radius: 0; 68 | border-radius: 0; 69 | } 70 | .searchbox-button { 71 | background: url('images/searchbox_button.png') no-repeat center center; 72 | } 73 | .searchbox { 74 | border-color: #D3D3D3; 75 | background-color: #fff; 76 | } 77 | .searchbox a.l-btn-plain { 78 | background: #f3f3f3; 79 | } 80 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/searchbox.css: -------------------------------------------------------------------------------- 1 | .searchbox { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | } 10 | .searchbox .searchbox-text { 11 | font-size: 12px; 12 | border: 0; 13 | margin: 0; 14 | padding: 0; 15 | line-height: 20px; 16 | height: 20px; 17 | *margin-top: -1px; 18 | *height: 18px; 19 | *line-height: 18px; 20 | _height: 18px; 21 | _line-height: 18px; 22 | vertical-align: baseline; 23 | } 24 | .searchbox .searchbox-prompt { 25 | font-size: 12px; 26 | color: #ccc; 27 | } 28 | .searchbox-button { 29 | width: 18px; 30 | height: 20px; 31 | overflow: hidden; 32 | display: inline-block; 33 | vertical-align: top; 34 | cursor: pointer; 35 | opacity: 0.6; 36 | filter: alpha(opacity=60); 37 | } 38 | .searchbox-button-hover { 39 | opacity: 1.0; 40 | filter: alpha(opacity=100); 41 | } 42 | .searchbox a.l-btn-plain { 43 | height: 20px; 44 | border: 0; 45 | padding: 0 6px 0 0; 46 | vertical-align: top; 47 | -moz-border-radius: 0; 48 | -webkit-border-radius: 0; 49 | border-radius: 0; 50 | opacity: 0.6; 51 | filter: alpha(opacity=60); 52 | } 53 | .searchbox a.l-btn .l-btn-left { 54 | padding: 2px 0 2px 4px; 55 | } 56 | .searchbox a.l-btn-plain:hover { 57 | -moz-border-radius: 0; 58 | -webkit-border-radius: 0; 59 | border-radius: 0; 60 | border: 0; 61 | padding: 0 6px 0 0; 62 | opacity: 1.0; 63 | filter: alpha(opacity=100); 64 | } 65 | .searchbox a.m-btn-plain-active { 66 | -moz-border-radius: 0; 67 | -webkit-border-radius: 0; 68 | border-radius: 0; 69 | } 70 | .searchbox-button { 71 | background: url('images/searchbox_button.png') no-repeat center center; 72 | } 73 | .searchbox { 74 | border-color: #ddd; 75 | background-color: #fff; 76 | } 77 | .searchbox a.l-btn-plain { 78 | background: #ffffff; 79 | } 80 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/searchbox.css: -------------------------------------------------------------------------------- 1 | .searchbox { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | } 10 | .searchbox .searchbox-text { 11 | font-size: 12px; 12 | border: 0; 13 | margin: 0; 14 | padding: 0; 15 | line-height: 20px; 16 | height: 20px; 17 | *margin-top: -1px; 18 | *height: 18px; 19 | *line-height: 18px; 20 | _height: 18px; 21 | _line-height: 18px; 22 | vertical-align: baseline; 23 | } 24 | .searchbox .searchbox-prompt { 25 | font-size: 12px; 26 | color: #ccc; 27 | } 28 | .searchbox-button { 29 | width: 18px; 30 | height: 20px; 31 | overflow: hidden; 32 | display: inline-block; 33 | vertical-align: top; 34 | cursor: pointer; 35 | opacity: 0.6; 36 | filter: alpha(opacity=60); 37 | } 38 | .searchbox-button-hover { 39 | opacity: 1.0; 40 | filter: alpha(opacity=100); 41 | } 42 | .searchbox a.l-btn-plain { 43 | height: 20px; 44 | border: 0; 45 | padding: 0 6px 0 0; 46 | vertical-align: top; 47 | -moz-border-radius: 0; 48 | -webkit-border-radius: 0; 49 | border-radius: 0; 50 | opacity: 0.6; 51 | filter: alpha(opacity=60); 52 | } 53 | .searchbox a.l-btn .l-btn-left { 54 | padding: 2px 0 2px 4px; 55 | } 56 | .searchbox a.l-btn-plain:hover { 57 | -moz-border-radius: 0; 58 | -webkit-border-radius: 0; 59 | border-radius: 0; 60 | border: 0; 61 | padding: 0 6px 0 0; 62 | opacity: 1.0; 63 | filter: alpha(opacity=100); 64 | } 65 | .searchbox a.m-btn-plain-active { 66 | -moz-border-radius: 0; 67 | -webkit-border-radius: 0; 68 | border-radius: 0; 69 | } 70 | .searchbox-button { 71 | background: url('images/searchbox_button.png') no-repeat center center; 72 | } 73 | .searchbox { 74 | border-color: #D4D4D4; 75 | background-color: #fff; 76 | } 77 | .searchbox a.l-btn-plain { 78 | background: #F2F2F2; 79 | } 80 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/searchbox.css: -------------------------------------------------------------------------------- 1 | .searchbox { 2 | display: inline-block; 3 | white-space: nowrap; 4 | margin: 0; 5 | padding: 0; 6 | border-width: 1px; 7 | border-style: solid; 8 | overflow: hidden; 9 | } 10 | .searchbox .searchbox-text { 11 | font-size: 12px; 12 | border: 0; 13 | margin: 0; 14 | padding: 0; 15 | line-height: 20px; 16 | height: 20px; 17 | *margin-top: -1px; 18 | *height: 18px; 19 | *line-height: 18px; 20 | _height: 18px; 21 | _line-height: 18px; 22 | vertical-align: baseline; 23 | } 24 | .searchbox .searchbox-prompt { 25 | font-size: 12px; 26 | color: #ccc; 27 | } 28 | .searchbox-button { 29 | width: 18px; 30 | height: 20px; 31 | overflow: hidden; 32 | display: inline-block; 33 | vertical-align: top; 34 | cursor: pointer; 35 | opacity: 0.6; 36 | filter: alpha(opacity=60); 37 | } 38 | .searchbox-button-hover { 39 | opacity: 1.0; 40 | filter: alpha(opacity=100); 41 | } 42 | .searchbox a.l-btn-plain { 43 | height: 20px; 44 | border: 0; 45 | padding: 0 6px 0 0; 46 | vertical-align: top; 47 | -moz-border-radius: 0; 48 | -webkit-border-radius: 0; 49 | border-radius: 0; 50 | opacity: 0.6; 51 | filter: alpha(opacity=60); 52 | } 53 | .searchbox a.l-btn .l-btn-left { 54 | padding: 2px 0 2px 4px; 55 | } 56 | .searchbox a.l-btn-plain:hover { 57 | -moz-border-radius: 0; 58 | -webkit-border-radius: 0; 59 | border-radius: 0; 60 | border: 0; 61 | padding: 0 6px 0 0; 62 | opacity: 1.0; 63 | filter: alpha(opacity=100); 64 | } 65 | .searchbox a.m-btn-plain-active { 66 | -moz-border-radius: 0; 67 | -webkit-border-radius: 0; 68 | border-radius: 0; 69 | } 70 | .searchbox-button { 71 | background: url('images/searchbox_button.png') no-repeat center center; 72 | } 73 | .searchbox { 74 | border-color: #95B8E7; 75 | background-color: #fff; 76 | } 77 | .searchbox a.l-btn-plain { 78 | background: #E0ECFF; 79 | } 80 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/icon.css: -------------------------------------------------------------------------------- 1 | .icon-blank{ 2 | background:url('icons/blank.gif') no-repeat center center; 3 | } 4 | .icon-add{ 5 | background:url('icons/edit_add.png') no-repeat center center; 6 | } 7 | .icon-edit{ 8 | background:url('icons/pencil.png') no-repeat center center; 9 | } 10 | .icon-remove{ 11 | background:url('icons/edit_remove.png') no-repeat center center; 12 | } 13 | .icon-save{ 14 | background:url('icons/filesave.png') no-repeat center center; 15 | } 16 | .icon-cut{ 17 | background:url('icons/cut.png') no-repeat center center; 18 | } 19 | .icon-ok{ 20 | background:url('icons/ok.png') no-repeat center center; 21 | } 22 | .icon-no{ 23 | background:url('icons/no.png') no-repeat center center; 24 | } 25 | .icon-cancel{ 26 | background:url('icons/cancel.png') no-repeat center center; 27 | } 28 | .icon-reload{ 29 | background:url('icons/reload.png') no-repeat center center; 30 | } 31 | .icon-search{ 32 | background:url('icons/search.png') no-repeat center center; 33 | } 34 | .icon-print{ 35 | background:url('icons/print.png') no-repeat center center; 36 | } 37 | .icon-help{ 38 | background:url('icons/help.png') no-repeat center center; 39 | } 40 | .icon-undo{ 41 | background:url('icons/undo.png') no-repeat center center; 42 | } 43 | .icon-redo{ 44 | background:url('icons/redo.png') no-repeat center center; 45 | } 46 | .icon-back{ 47 | background:url('icons/back.png') no-repeat center center; 48 | } 49 | .icon-sum{ 50 | background:url('icons/sum.png') no-repeat center center; 51 | } 52 | .icon-tip{ 53 | background:url('icons/tip.png') no-repeat center center; 54 | } 55 | 56 | .icon-mini-add{ 57 | background:url('icons/mini_add.png') no-repeat center center; 58 | } 59 | .icon-mini-edit{ 60 | background:url('icons/mini_edit.png') no-repeat center center; 61 | } 62 | .icon-mini-refresh{ 63 | background:url('icons/mini_refresh.png') no-repeat center center; 64 | } -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/window.css: -------------------------------------------------------------------------------- 1 | .window { 2 | overflow: hidden; 3 | padding: 5px; 4 | border-width: 1px; 5 | border-style: solid; 6 | } 7 | .window .window-header { 8 | background: transparent; 9 | padding: 0px 0px 6px 0px; 10 | } 11 | .window .window-body { 12 | border-width: 1px; 13 | border-style: solid; 14 | border-top-width: 0px; 15 | } 16 | .window .window-body-noheader { 17 | border-top-width: 1px; 18 | } 19 | .window .window-header .panel-icon, 20 | .window .window-header .panel-tool { 21 | top: 50%; 22 | margin-top: -11px; 23 | } 24 | .window .window-header .panel-icon { 25 | left: 1px; 26 | } 27 | .window .window-header .panel-tool { 28 | right: 1px; 29 | } 30 | .window .window-header .panel-with-icon { 31 | padding-left: 18px; 32 | } 33 | .window-proxy { 34 | position: absolute; 35 | overflow: hidden; 36 | } 37 | .window-proxy-mask { 38 | position: absolute; 39 | filter: alpha(opacity=5); 40 | opacity: 0.05; 41 | } 42 | .window-mask { 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | width: 100%; 47 | height: 100%; 48 | filter: alpha(opacity=40); 49 | opacity: 0.40; 50 | font-size: 1px; 51 | *zoom: 1; 52 | overflow: hidden; 53 | } 54 | .window, 55 | .window-shadow { 56 | position: absolute; 57 | -moz-border-radius: 0px 0px 0px 0px; 58 | -webkit-border-radius: 0px 0px 0px 0px; 59 | border-radius: 0px 0px 0px 0px; 60 | } 61 | .window-shadow { 62 | background: #eee; 63 | -moz-box-shadow: 2px 2px 3px #ededed; 64 | -webkit-box-shadow: 2px 2px 3px #ededed; 65 | box-shadow: 2px 2px 3px #ededed; 66 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 67 | } 68 | .window, 69 | .window .window-body { 70 | border-color: #ddd; 71 | } 72 | .window { 73 | background-color: #ffffff; 74 | } 75 | .window-proxy { 76 | border: 1px dashed #ddd; 77 | } 78 | .window-proxy-mask, 79 | .window-mask { 80 | background: #eee; 81 | } 82 | -------------------------------------------------------------------------------- /views/index.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Beego 6 | 7 | 8 | 62 | 63 | 64 | 65 |
66 |
67 |
68 |
69 |

Welcome to Beego!

70 |

71 | Beego is a simple & powerful Go web framework which is inspired by tornado and sinatra. 72 |
73 | Official website: {{.Website}} 74 |
75 | Contact me: {{.Email}} 76 |

77 |
78 |
79 |
80 |
81 | 82 | 83 | -------------------------------------------------------------------------------- /views/easyui/public/login.tpl: -------------------------------------------------------------------------------- 1 | {{template "../public/header.tpl"}} 2 | 48 | 49 |
50 |
51 |
52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
用户名:
密码:
60 |
61 |
62 |
63 | 64 | -------------------------------------------------------------------------------- /Router.go: -------------------------------------------------------------------------------- 1 | package admin 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | "github.com/beego/admin/src/rbac" 6 | ) 7 | 8 | func router() { 9 | beego.Router("/", &rbac.MainController{}, "*:Index") 10 | beego.Router("/public/index", &rbac.MainController{}, "*:Index") 11 | beego.Router("/public/login", &rbac.MainController{}, "*:Login") 12 | beego.Router("/public/logout", &rbac.MainController{}, "*:Logout") 13 | beego.Router("/public/changepwd", &rbac.MainController{}, "*:Changepwd") 14 | 15 | beego.Router("/rbac/user/AddUser", &rbac.UserController{}, "*:AddUser") 16 | beego.Router("/rbac/user/UpdateUser", &rbac.UserController{}, "*:UpdateUser") 17 | beego.Router("/rbac/user/DelUser", &rbac.UserController{}, "*:DelUser") 18 | beego.Router("/rbac/user/index", &rbac.UserController{}, "*:Index") 19 | 20 | beego.Router("/rbac/node/AddAndEdit", &rbac.NodeController{}, "*:AddAndEdit") 21 | beego.Router("/rbac/node/DelNode", &rbac.NodeController{}, "*:DelNode") 22 | beego.Router("/rbac/node/index", &rbac.NodeController{}, "*:Index") 23 | 24 | beego.Router("/rbac/group/AddGroup", &rbac.GroupController{}, "*:AddGroup") 25 | beego.Router("/rbac/group/UpdateGroup", &rbac.GroupController{}, "*:UpdateGroup") 26 | beego.Router("/rbac/group/DelGroup", &rbac.GroupController{}, "*:DelGroup") 27 | beego.Router("/rbac/group/index", &rbac.GroupController{}, "*:Index") 28 | 29 | beego.Router("/rbac/role/AddAndEdit", &rbac.RoleController{}, "*:AddAndEdit") 30 | beego.Router("/rbac/role/DelRole", &rbac.RoleController{}, "*:DelRole") 31 | beego.Router("/rbac/role/AccessToNode", &rbac.RoleController{}, "*:AccessToNode") 32 | beego.Router("/rbac/role/AddAccess", &rbac.RoleController{}, "*:AddAccess") 33 | beego.Router("/rbac/role/RoleToUserList", &rbac.RoleController{}, "*:RoleToUserList") 34 | beego.Router("/rbac/role/AddRoleToUser", &rbac.RoleController{}, "*:AddRoleToUser") 35 | beego.Router("/rbac/role/Getlist", &rbac.RoleController{}, "*:Getlist") 36 | beego.Router("/rbac/role/index", &rbac.RoleController{}, "*:Index") 37 | } 38 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/locale/easyui-lang-zh_TW.js: -------------------------------------------------------------------------------- 1 | if ($.fn.pagination){ 2 | $.fn.pagination.defaults.beforePageText = '第'; 3 | $.fn.pagination.defaults.afterPageText = '共{pages}頁'; 4 | $.fn.pagination.defaults.displayMsg = '顯示{from}到{to},共{total}記錄'; 5 | } 6 | if ($.fn.datagrid){ 7 | $.fn.datagrid.defaults.loadMsg = '正在處理,請稍待。。。'; 8 | } 9 | if ($.fn.treegrid && $.fn.datagrid){ 10 | $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; 11 | } 12 | if ($.messager){ 13 | $.messager.defaults.ok = '確定'; 14 | $.messager.defaults.cancel = '取消'; 15 | } 16 | if ($.fn.validatebox){ 17 | $.fn.validatebox.defaults.missingMessage = '該輸入項為必輸項'; 18 | $.fn.validatebox.defaults.rules.email.message = '請輸入有效的電子郵件地址'; 19 | $.fn.validatebox.defaults.rules.url.message = '請輸入有效的URL地址'; 20 | $.fn.validatebox.defaults.rules.length.message = '輸入內容長度必須介於{0}和{1}之間'; 21 | $.fn.validatebox.defaults.rules.remote.message = '請修正此欄位'; 22 | } 23 | if ($.fn.numberbox){ 24 | $.fn.numberbox.defaults.missingMessage = '該輸入項為必輸項'; 25 | } 26 | if ($.fn.combobox){ 27 | $.fn.combobox.defaults.missingMessage = '該輸入項為必輸項'; 28 | } 29 | if ($.fn.combotree){ 30 | $.fn.combotree.defaults.missingMessage = '該輸入項為必輸項'; 31 | } 32 | if ($.fn.combogrid){ 33 | $.fn.combogrid.defaults.missingMessage = '該輸入項為必輸項'; 34 | } 35 | if ($.fn.calendar){ 36 | $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; 37 | $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; 38 | } 39 | if ($.fn.datebox){ 40 | $.fn.datebox.defaults.currentText = '今天'; 41 | $.fn.datebox.defaults.closeText = '關閉'; 42 | $.fn.datebox.defaults.okText = '確定'; 43 | $.fn.datebox.defaults.missingMessage = '該輸入項為必輸項'; 44 | } 45 | if ($.fn.datetimebox && $.fn.datebox){ 46 | $.extend($.fn.datetimebox.defaults,{ 47 | currentText: $.fn.datebox.defaults.currentText, 48 | closeText: $.fn.datebox.defaults.closeText, 49 | okText: $.fn.datebox.defaults.okText, 50 | missingMessage: $.fn.datebox.defaults.missingMessage 51 | }); 52 | } 53 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/plugins/jquery.droppable.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery EasyUI 1.3.4 3 | * 4 | * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. 5 | * 6 | * Licensed under the GPL or commercial licenses 7 | * To use it on other terms please contact us: info@jeasyui.com 8 | * http://www.gnu.org/licenses/gpl.txt 9 | * http://www.jeasyui.com/license_commercial.php 10 | * 11 | */ 12 | (function($){ 13 | function _1(_2){ 14 | $(_2).addClass("droppable"); 15 | $(_2).bind("_dragenter",function(e,_3){ 16 | $.data(_2,"droppable").options.onDragEnter.apply(_2,[e,_3]); 17 | }); 18 | $(_2).bind("_dragleave",function(e,_4){ 19 | $.data(_2,"droppable").options.onDragLeave.apply(_2,[e,_4]); 20 | }); 21 | $(_2).bind("_dragover",function(e,_5){ 22 | $.data(_2,"droppable").options.onDragOver.apply(_2,[e,_5]); 23 | }); 24 | $(_2).bind("_drop",function(e,_6){ 25 | $.data(_2,"droppable").options.onDrop.apply(_2,[e,_6]); 26 | }); 27 | }; 28 | $.fn.droppable=function(_7,_8){ 29 | if(typeof _7=="string"){ 30 | return $.fn.droppable.methods[_7](this,_8); 31 | } 32 | _7=_7||{}; 33 | return this.each(function(){ 34 | var _9=$.data(this,"droppable"); 35 | if(_9){ 36 | $.extend(_9.options,_7); 37 | }else{ 38 | _1(this); 39 | $.data(this,"droppable",{options:$.extend({},$.fn.droppable.defaults,$.fn.droppable.parseOptions(this),_7)}); 40 | } 41 | }); 42 | }; 43 | $.fn.droppable.methods={options:function(jq){ 44 | return $.data(jq[0],"droppable").options; 45 | },enable:function(jq){ 46 | return jq.each(function(){ 47 | $(this).droppable({disabled:false}); 48 | }); 49 | },disable:function(jq){ 50 | return jq.each(function(){ 51 | $(this).droppable({disabled:true}); 52 | }); 53 | }}; 54 | $.fn.droppable.parseOptions=function(_a){ 55 | var t=$(_a); 56 | return $.extend({},$.parser.parseOptions(_a,["accept"]),{disabled:(t.attr("disabled")?true:undefined)}); 57 | }; 58 | $.fn.droppable.defaults={accept:null,disabled:false,onDragEnter:function(e,_b){ 59 | },onDragOver:function(e,_c){ 60 | },onDragLeave:function(e,_d){ 61 | },onDrop:function(e,_e){ 62 | }}; 63 | })(jQuery); 64 | 65 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | position: relative; 3 | overflow: hidden; 4 | margin: 0; 5 | padding: 0; 6 | z-index: 0; 7 | } 8 | .layout-panel { 9 | position: absolute; 10 | overflow: hidden; 11 | } 12 | .layout-panel-east, 13 | .layout-panel-west { 14 | z-index: 2; 15 | } 16 | .layout-panel-north, 17 | .layout-panel-south { 18 | z-index: 3; 19 | } 20 | .layout-expand { 21 | position: absolute; 22 | padding: 0px; 23 | font-size: 1px; 24 | cursor: pointer; 25 | z-index: 1; 26 | } 27 | .layout-expand .panel-header, 28 | .layout-expand .panel-body { 29 | background: transparent; 30 | filter: none; 31 | overflow: hidden; 32 | } 33 | .layout-expand .panel-header { 34 | border-bottom-width: 0px; 35 | } 36 | .layout-split-proxy-h, 37 | .layout-split-proxy-v { 38 | position: absolute; 39 | font-size: 1px; 40 | display: none; 41 | z-index: 5; 42 | } 43 | .layout-split-proxy-h { 44 | width: 5px; 45 | cursor: e-resize; 46 | } 47 | .layout-split-proxy-v { 48 | height: 5px; 49 | cursor: n-resize; 50 | } 51 | .layout-mask { 52 | position: absolute; 53 | background: #fafafa; 54 | filter: alpha(opacity=10); 55 | opacity: 0.10; 56 | z-index: 4; 57 | } 58 | .layout-button-up { 59 | background: url('images/layout_arrows.png') no-repeat -16px -16px; 60 | } 61 | .layout-button-down { 62 | background: url('images/layout_arrows.png') no-repeat -16px 0; 63 | } 64 | .layout-button-left { 65 | background: url('images/layout_arrows.png') no-repeat 0 0; 66 | } 67 | .layout-button-right { 68 | background: url('images/layout_arrows.png') no-repeat 0 -16px; 69 | } 70 | .layout-split-proxy-h, 71 | .layout-split-proxy-v { 72 | background-color: #cccccc; 73 | } 74 | .layout-split-north { 75 | border-bottom: 5px solid #444; 76 | } 77 | .layout-split-south { 78 | border-top: 5px solid #444; 79 | } 80 | .layout-split-east { 81 | border-left: 5px solid #444; 82 | } 83 | .layout-split-west { 84 | border-right: 5px solid #444; 85 | } 86 | .layout-expand { 87 | background-color: #3d3d3d; 88 | } 89 | .layout-expand-over { 90 | background-color: #3d3d3d; 91 | } 92 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | position: relative; 3 | overflow: hidden; 4 | margin: 0; 5 | padding: 0; 6 | z-index: 0; 7 | } 8 | .layout-panel { 9 | position: absolute; 10 | overflow: hidden; 11 | } 12 | .layout-panel-east, 13 | .layout-panel-west { 14 | z-index: 2; 15 | } 16 | .layout-panel-north, 17 | .layout-panel-south { 18 | z-index: 3; 19 | } 20 | .layout-expand { 21 | position: absolute; 22 | padding: 0px; 23 | font-size: 1px; 24 | cursor: pointer; 25 | z-index: 1; 26 | } 27 | .layout-expand .panel-header, 28 | .layout-expand .panel-body { 29 | background: transparent; 30 | filter: none; 31 | overflow: hidden; 32 | } 33 | .layout-expand .panel-header { 34 | border-bottom-width: 0px; 35 | } 36 | .layout-split-proxy-h, 37 | .layout-split-proxy-v { 38 | position: absolute; 39 | font-size: 1px; 40 | display: none; 41 | z-index: 5; 42 | } 43 | .layout-split-proxy-h { 44 | width: 5px; 45 | cursor: e-resize; 46 | } 47 | .layout-split-proxy-v { 48 | height: 5px; 49 | cursor: n-resize; 50 | } 51 | .layout-mask { 52 | position: absolute; 53 | background: #fafafa; 54 | filter: alpha(opacity=10); 55 | opacity: 0.10; 56 | z-index: 4; 57 | } 58 | .layout-button-up { 59 | background: url('images/layout_arrows.png') no-repeat -16px -16px; 60 | } 61 | .layout-button-down { 62 | background: url('images/layout_arrows.png') no-repeat -16px 0; 63 | } 64 | .layout-button-left { 65 | background: url('images/layout_arrows.png') no-repeat 0 0; 66 | } 67 | .layout-button-right { 68 | background: url('images/layout_arrows.png') no-repeat 0 -16px; 69 | } 70 | .layout-split-proxy-h, 71 | .layout-split-proxy-v { 72 | background-color: #b3b3b3; 73 | } 74 | .layout-split-north { 75 | border-bottom: 5px solid #fff; 76 | } 77 | .layout-split-south { 78 | border-top: 5px solid #fff; 79 | } 80 | .layout-split-east { 81 | border-left: 5px solid #fff; 82 | } 83 | .layout-split-west { 84 | border-right: 5px solid #fff; 85 | } 86 | .layout-expand { 87 | background-color: #ffffff; 88 | } 89 | .layout-expand-over { 90 | background-color: #ffffff; 91 | } 92 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | position: relative; 3 | overflow: hidden; 4 | margin: 0; 5 | padding: 0; 6 | z-index: 0; 7 | } 8 | .layout-panel { 9 | position: absolute; 10 | overflow: hidden; 11 | } 12 | .layout-panel-east, 13 | .layout-panel-west { 14 | z-index: 2; 15 | } 16 | .layout-panel-north, 17 | .layout-panel-south { 18 | z-index: 3; 19 | } 20 | .layout-expand { 21 | position: absolute; 22 | padding: 0px; 23 | font-size: 1px; 24 | cursor: pointer; 25 | z-index: 1; 26 | } 27 | .layout-expand .panel-header, 28 | .layout-expand .panel-body { 29 | background: transparent; 30 | filter: none; 31 | overflow: hidden; 32 | } 33 | .layout-expand .panel-header { 34 | border-bottom-width: 0px; 35 | } 36 | .layout-split-proxy-h, 37 | .layout-split-proxy-v { 38 | position: absolute; 39 | font-size: 1px; 40 | display: none; 41 | z-index: 5; 42 | } 43 | .layout-split-proxy-h { 44 | width: 5px; 45 | cursor: e-resize; 46 | } 47 | .layout-split-proxy-v { 48 | height: 5px; 49 | cursor: n-resize; 50 | } 51 | .layout-mask { 52 | position: absolute; 53 | background: #fafafa; 54 | filter: alpha(opacity=10); 55 | opacity: 0.10; 56 | z-index: 4; 57 | } 58 | .layout-button-up { 59 | background: url('images/layout_arrows.png') no-repeat -16px -16px; 60 | } 61 | .layout-button-down { 62 | background: url('images/layout_arrows.png') no-repeat -16px 0; 63 | } 64 | .layout-button-left { 65 | background: url('images/layout_arrows.png') no-repeat 0 0; 66 | } 67 | .layout-button-right { 68 | background: url('images/layout_arrows.png') no-repeat 0 -16px; 69 | } 70 | .layout-split-proxy-h, 71 | .layout-split-proxy-v { 72 | background-color: #bbb; 73 | } 74 | .layout-split-north { 75 | border-bottom: 5px solid #eee; 76 | } 77 | .layout-split-south { 78 | border-top: 5px solid #eee; 79 | } 80 | .layout-split-east { 81 | border-left: 5px solid #eee; 82 | } 83 | .layout-split-west { 84 | border-right: 5px solid #eee; 85 | } 86 | .layout-expand { 87 | background-color: #F2F2F2; 88 | } 89 | .layout-expand-over { 90 | background-color: #F2F2F2; 91 | } 92 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | position: relative; 3 | overflow: hidden; 4 | margin: 0; 5 | padding: 0; 6 | z-index: 0; 7 | } 8 | .layout-panel { 9 | position: absolute; 10 | overflow: hidden; 11 | } 12 | .layout-panel-east, 13 | .layout-panel-west { 14 | z-index: 2; 15 | } 16 | .layout-panel-north, 17 | .layout-panel-south { 18 | z-index: 3; 19 | } 20 | .layout-expand { 21 | position: absolute; 22 | padding: 0px; 23 | font-size: 1px; 24 | cursor: pointer; 25 | z-index: 1; 26 | } 27 | .layout-expand .panel-header, 28 | .layout-expand .panel-body { 29 | background: transparent; 30 | filter: none; 31 | overflow: hidden; 32 | } 33 | .layout-expand .panel-header { 34 | border-bottom-width: 0px; 35 | } 36 | .layout-split-proxy-h, 37 | .layout-split-proxy-v { 38 | position: absolute; 39 | font-size: 1px; 40 | display: none; 41 | z-index: 5; 42 | } 43 | .layout-split-proxy-h { 44 | width: 5px; 45 | cursor: e-resize; 46 | } 47 | .layout-split-proxy-v { 48 | height: 5px; 49 | cursor: n-resize; 50 | } 51 | .layout-mask { 52 | position: absolute; 53 | background: #fafafa; 54 | filter: alpha(opacity=10); 55 | opacity: 0.10; 56 | z-index: 4; 57 | } 58 | .layout-button-up { 59 | background: url('images/layout_arrows.png') no-repeat -16px -16px; 60 | } 61 | .layout-button-down { 62 | background: url('images/layout_arrows.png') no-repeat -16px 0; 63 | } 64 | .layout-button-left { 65 | background: url('images/layout_arrows.png') no-repeat 0 0; 66 | } 67 | .layout-button-right { 68 | background: url('images/layout_arrows.png') no-repeat 0 -16px; 69 | } 70 | .layout-split-proxy-h, 71 | .layout-split-proxy-v { 72 | background-color: #aac5e7; 73 | } 74 | .layout-split-north { 75 | border-bottom: 5px solid #E6EEF8; 76 | } 77 | .layout-split-south { 78 | border-top: 5px solid #E6EEF8; 79 | } 80 | .layout-split-east { 81 | border-left: 5px solid #E6EEF8; 82 | } 83 | .layout-split-west { 84 | border-right: 5px solid #E6EEF8; 85 | } 86 | .layout-expand { 87 | background-color: #E0ECFF; 88 | } 89 | .layout-expand-over { 90 | background-color: #E0ECFF; 91 | } 92 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | position: relative; 3 | overflow: hidden; 4 | margin: 0; 5 | padding: 0; 6 | z-index: 0; 7 | } 8 | .layout-panel { 9 | position: absolute; 10 | overflow: hidden; 11 | } 12 | .layout-panel-east, 13 | .layout-panel-west { 14 | z-index: 2; 15 | } 16 | .layout-panel-north, 17 | .layout-panel-south { 18 | z-index: 3; 19 | } 20 | .layout-expand { 21 | position: absolute; 22 | padding: 0px; 23 | font-size: 1px; 24 | cursor: pointer; 25 | z-index: 1; 26 | } 27 | .layout-expand .panel-header, 28 | .layout-expand .panel-body { 29 | background: transparent; 30 | filter: none; 31 | overflow: hidden; 32 | } 33 | .layout-expand .panel-header { 34 | border-bottom-width: 0px; 35 | } 36 | .layout-split-proxy-h, 37 | .layout-split-proxy-v { 38 | position: absolute; 39 | font-size: 1px; 40 | display: none; 41 | z-index: 5; 42 | } 43 | .layout-split-proxy-h { 44 | width: 5px; 45 | cursor: e-resize; 46 | } 47 | .layout-split-proxy-v { 48 | height: 5px; 49 | cursor: n-resize; 50 | } 51 | .layout-mask { 52 | position: absolute; 53 | background: #fafafa; 54 | filter: alpha(opacity=10); 55 | opacity: 0.10; 56 | z-index: 4; 57 | } 58 | .layout-button-up { 59 | background: url('images/layout_arrows.png') no-repeat -16px -16px; 60 | } 61 | .layout-button-down { 62 | background: url('images/layout_arrows.png') no-repeat -16px 0; 63 | } 64 | .layout-button-left { 65 | background: url('images/layout_arrows.png') no-repeat 0 0; 66 | } 67 | .layout-button-right { 68 | background: url('images/layout_arrows.png') no-repeat 0 -16px; 69 | } 70 | .layout-split-proxy-h, 71 | .layout-split-proxy-v { 72 | background-color: #bfbfbf; 73 | } 74 | .layout-split-north { 75 | border-bottom: 5px solid #efefef; 76 | } 77 | .layout-split-south { 78 | border-top: 5px solid #efefef; 79 | } 80 | .layout-split-east { 81 | border-left: 5px solid #efefef; 82 | } 83 | .layout-split-west { 84 | border-right: 5px solid #efefef; 85 | } 86 | .layout-expand { 87 | background-color: #f3f3f3; 88 | } 89 | .layout-expand-over { 90 | background-color: #f3f3f3; 91 | } 92 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/slider.css: -------------------------------------------------------------------------------- 1 | .slider-disabled { 2 | opacity: 0.5; 3 | filter: alpha(opacity=50); 4 | } 5 | .slider-h { 6 | height: 22px; 7 | } 8 | .slider-v { 9 | width: 22px; 10 | } 11 | .slider-inner { 12 | position: relative; 13 | height: 6px; 14 | top: 7px; 15 | border-width: 1px; 16 | border-style: solid; 17 | border-radius: 5px; 18 | } 19 | .slider-handle { 20 | position: absolute; 21 | display: block; 22 | outline: none; 23 | width: 20px; 24 | height: 20px; 25 | top: -7px; 26 | margin-left: -10px; 27 | } 28 | .slider-tip { 29 | position: absolute; 30 | display: inline-block; 31 | line-height: 12px; 32 | font-size: 12px; 33 | white-space: nowrap; 34 | top: -22px; 35 | } 36 | .slider-rule { 37 | position: relative; 38 | top: 15px; 39 | } 40 | .slider-rule span { 41 | position: absolute; 42 | display: inline-block; 43 | font-size: 0; 44 | height: 5px; 45 | border-width: 0 0 0 1px; 46 | border-style: solid; 47 | } 48 | .slider-rulelabel { 49 | position: relative; 50 | top: 20px; 51 | } 52 | .slider-rulelabel span { 53 | position: absolute; 54 | display: inline-block; 55 | font-size: 12px; 56 | } 57 | .slider-v .slider-inner { 58 | width: 6px; 59 | left: 7px; 60 | top: 0; 61 | float: left; 62 | } 63 | .slider-v .slider-handle { 64 | left: 3px; 65 | margin-top: -10px; 66 | } 67 | .slider-v .slider-tip { 68 | left: -10px; 69 | margin-top: -6px; 70 | } 71 | .slider-v .slider-rule { 72 | float: left; 73 | top: 0; 74 | left: 16px; 75 | } 76 | .slider-v .slider-rule span { 77 | width: 5px; 78 | height: 'auto'; 79 | border-left: 0; 80 | border-width: 1px 0 0 0; 81 | border-style: solid; 82 | } 83 | .slider-v .slider-rulelabel { 84 | float: left; 85 | top: 0; 86 | left: 23px; 87 | } 88 | .slider-handle { 89 | background: url('images/slider_handle.png') no-repeat; 90 | } 91 | .slider-inner { 92 | border-color: #000; 93 | background: #3d3d3d; 94 | } 95 | .slider-rule span { 96 | border-color: #000; 97 | } 98 | .slider-rulelabel span { 99 | color: #fff; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/slider.css: -------------------------------------------------------------------------------- 1 | .slider-disabled { 2 | opacity: 0.5; 3 | filter: alpha(opacity=50); 4 | } 5 | .slider-h { 6 | height: 22px; 7 | } 8 | .slider-v { 9 | width: 22px; 10 | } 11 | .slider-inner { 12 | position: relative; 13 | height: 6px; 14 | top: 7px; 15 | border-width: 1px; 16 | border-style: solid; 17 | border-radius: 0px; 18 | } 19 | .slider-handle { 20 | position: absolute; 21 | display: block; 22 | outline: none; 23 | width: 20px; 24 | height: 20px; 25 | top: -7px; 26 | margin-left: -10px; 27 | } 28 | .slider-tip { 29 | position: absolute; 30 | display: inline-block; 31 | line-height: 12px; 32 | font-size: 12px; 33 | white-space: nowrap; 34 | top: -22px; 35 | } 36 | .slider-rule { 37 | position: relative; 38 | top: 15px; 39 | } 40 | .slider-rule span { 41 | position: absolute; 42 | display: inline-block; 43 | font-size: 0; 44 | height: 5px; 45 | border-width: 0 0 0 1px; 46 | border-style: solid; 47 | } 48 | .slider-rulelabel { 49 | position: relative; 50 | top: 20px; 51 | } 52 | .slider-rulelabel span { 53 | position: absolute; 54 | display: inline-block; 55 | font-size: 12px; 56 | } 57 | .slider-v .slider-inner { 58 | width: 6px; 59 | left: 7px; 60 | top: 0; 61 | float: left; 62 | } 63 | .slider-v .slider-handle { 64 | left: 3px; 65 | margin-top: -10px; 66 | } 67 | .slider-v .slider-tip { 68 | left: -10px; 69 | margin-top: -6px; 70 | } 71 | .slider-v .slider-rule { 72 | float: left; 73 | top: 0; 74 | left: 16px; 75 | } 76 | .slider-v .slider-rule span { 77 | width: 5px; 78 | height: 'auto'; 79 | border-left: 0; 80 | border-width: 1px 0 0 0; 81 | border-style: solid; 82 | } 83 | .slider-v .slider-rulelabel { 84 | float: left; 85 | top: 0; 86 | left: 23px; 87 | } 88 | .slider-handle { 89 | background: url('images/slider_handle.png') no-repeat; 90 | } 91 | .slider-inner { 92 | border-color: #ddd; 93 | background: #ffffff; 94 | } 95 | .slider-rule span { 96 | border-color: #ddd; 97 | } 98 | .slider-rulelabel span { 99 | color: #444; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/slider.css: -------------------------------------------------------------------------------- 1 | .slider-disabled { 2 | opacity: 0.5; 3 | filter: alpha(opacity=50); 4 | } 5 | .slider-h { 6 | height: 22px; 7 | } 8 | .slider-v { 9 | width: 22px; 10 | } 11 | .slider-inner { 12 | position: relative; 13 | height: 6px; 14 | top: 7px; 15 | border-width: 1px; 16 | border-style: solid; 17 | border-radius: 5px; 18 | } 19 | .slider-handle { 20 | position: absolute; 21 | display: block; 22 | outline: none; 23 | width: 20px; 24 | height: 20px; 25 | top: -7px; 26 | margin-left: -10px; 27 | } 28 | .slider-tip { 29 | position: absolute; 30 | display: inline-block; 31 | line-height: 12px; 32 | font-size: 12px; 33 | white-space: nowrap; 34 | top: -22px; 35 | } 36 | .slider-rule { 37 | position: relative; 38 | top: 15px; 39 | } 40 | .slider-rule span { 41 | position: absolute; 42 | display: inline-block; 43 | font-size: 0; 44 | height: 5px; 45 | border-width: 0 0 0 1px; 46 | border-style: solid; 47 | } 48 | .slider-rulelabel { 49 | position: relative; 50 | top: 20px; 51 | } 52 | .slider-rulelabel span { 53 | position: absolute; 54 | display: inline-block; 55 | font-size: 12px; 56 | } 57 | .slider-v .slider-inner { 58 | width: 6px; 59 | left: 7px; 60 | top: 0; 61 | float: left; 62 | } 63 | .slider-v .slider-handle { 64 | left: 3px; 65 | margin-top: -10px; 66 | } 67 | .slider-v .slider-tip { 68 | left: -10px; 69 | margin-top: -6px; 70 | } 71 | .slider-v .slider-rule { 72 | float: left; 73 | top: 0; 74 | left: 16px; 75 | } 76 | .slider-v .slider-rule span { 77 | width: 5px; 78 | height: 'auto'; 79 | border-left: 0; 80 | border-width: 1px 0 0 0; 81 | border-style: solid; 82 | } 83 | .slider-v .slider-rulelabel { 84 | float: left; 85 | top: 0; 86 | left: 23px; 87 | } 88 | .slider-handle { 89 | background: url('images/slider_handle.png') no-repeat; 90 | } 91 | .slider-inner { 92 | border-color: #D4D4D4; 93 | background: #F2F2F2; 94 | } 95 | .slider-rule span { 96 | border-color: #D4D4D4; 97 | } 98 | .slider-rulelabel span { 99 | color: #333; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/slider.css: -------------------------------------------------------------------------------- 1 | .slider-disabled { 2 | opacity: 0.5; 3 | filter: alpha(opacity=50); 4 | } 5 | .slider-h { 6 | height: 22px; 7 | } 8 | .slider-v { 9 | width: 22px; 10 | } 11 | .slider-inner { 12 | position: relative; 13 | height: 6px; 14 | top: 7px; 15 | border-width: 1px; 16 | border-style: solid; 17 | border-radius: 5px; 18 | } 19 | .slider-handle { 20 | position: absolute; 21 | display: block; 22 | outline: none; 23 | width: 20px; 24 | height: 20px; 25 | top: -7px; 26 | margin-left: -10px; 27 | } 28 | .slider-tip { 29 | position: absolute; 30 | display: inline-block; 31 | line-height: 12px; 32 | font-size: 12px; 33 | white-space: nowrap; 34 | top: -22px; 35 | } 36 | .slider-rule { 37 | position: relative; 38 | top: 15px; 39 | } 40 | .slider-rule span { 41 | position: absolute; 42 | display: inline-block; 43 | font-size: 0; 44 | height: 5px; 45 | border-width: 0 0 0 1px; 46 | border-style: solid; 47 | } 48 | .slider-rulelabel { 49 | position: relative; 50 | top: 20px; 51 | } 52 | .slider-rulelabel span { 53 | position: absolute; 54 | display: inline-block; 55 | font-size: 12px; 56 | } 57 | .slider-v .slider-inner { 58 | width: 6px; 59 | left: 7px; 60 | top: 0; 61 | float: left; 62 | } 63 | .slider-v .slider-handle { 64 | left: 3px; 65 | margin-top: -10px; 66 | } 67 | .slider-v .slider-tip { 68 | left: -10px; 69 | margin-top: -6px; 70 | } 71 | .slider-v .slider-rule { 72 | float: left; 73 | top: 0; 74 | left: 16px; 75 | } 76 | .slider-v .slider-rule span { 77 | width: 5px; 78 | height: 'auto'; 79 | border-left: 0; 80 | border-width: 1px 0 0 0; 81 | border-style: solid; 82 | } 83 | .slider-v .slider-rulelabel { 84 | float: left; 85 | top: 0; 86 | left: 23px; 87 | } 88 | .slider-handle { 89 | background: url('images/slider_handle.png') no-repeat; 90 | } 91 | .slider-inner { 92 | border-color: #D3D3D3; 93 | background: #f3f3f3; 94 | } 95 | .slider-rule span { 96 | border-color: #D3D3D3; 97 | } 98 | .slider-rulelabel span { 99 | color: #000000; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/slider.css: -------------------------------------------------------------------------------- 1 | .slider-disabled { 2 | opacity: 0.5; 3 | filter: alpha(opacity=50); 4 | } 5 | .slider-h { 6 | height: 22px; 7 | } 8 | .slider-v { 9 | width: 22px; 10 | } 11 | .slider-inner { 12 | position: relative; 13 | height: 6px; 14 | top: 7px; 15 | border-width: 1px; 16 | border-style: solid; 17 | border-radius: 5px; 18 | } 19 | .slider-handle { 20 | position: absolute; 21 | display: block; 22 | outline: none; 23 | width: 20px; 24 | height: 20px; 25 | top: -7px; 26 | margin-left: -10px; 27 | } 28 | .slider-tip { 29 | position: absolute; 30 | display: inline-block; 31 | line-height: 12px; 32 | font-size: 12px; 33 | white-space: nowrap; 34 | top: -22px; 35 | } 36 | .slider-rule { 37 | position: relative; 38 | top: 15px; 39 | } 40 | .slider-rule span { 41 | position: absolute; 42 | display: inline-block; 43 | font-size: 0; 44 | height: 5px; 45 | border-width: 0 0 0 1px; 46 | border-style: solid; 47 | } 48 | .slider-rulelabel { 49 | position: relative; 50 | top: 20px; 51 | } 52 | .slider-rulelabel span { 53 | position: absolute; 54 | display: inline-block; 55 | font-size: 12px; 56 | } 57 | .slider-v .slider-inner { 58 | width: 6px; 59 | left: 7px; 60 | top: 0; 61 | float: left; 62 | } 63 | .slider-v .slider-handle { 64 | left: 3px; 65 | margin-top: -10px; 66 | } 67 | .slider-v .slider-tip { 68 | left: -10px; 69 | margin-top: -6px; 70 | } 71 | .slider-v .slider-rule { 72 | float: left; 73 | top: 0; 74 | left: 16px; 75 | } 76 | .slider-v .slider-rule span { 77 | width: 5px; 78 | height: 'auto'; 79 | border-left: 0; 80 | border-width: 1px 0 0 0; 81 | border-style: solid; 82 | } 83 | .slider-v .slider-rulelabel { 84 | float: left; 85 | top: 0; 86 | left: 23px; 87 | } 88 | .slider-handle { 89 | background: url('images/slider_handle.png') no-repeat; 90 | } 91 | .slider-inner { 92 | border-color: #95B8E7; 93 | background: #E0ECFF; 94 | } 95 | .slider-rule span { 96 | border-color: #95B8E7; 97 | } 98 | .slider-rulelabel span { 99 | color: #000000; 100 | } 101 | -------------------------------------------------------------------------------- /src/rbac/node.go: -------------------------------------------------------------------------------- 1 | package rbac 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/astaxie/beego/orm" 7 | m "github.com/beego/admin/src/models" 8 | ) 9 | 10 | type NodeController struct { 11 | CommonController 12 | } 13 | 14 | func (this *NodeController) Rsp(status bool, str string) { 15 | this.Data["json"] = &map[string]interface{}{"status": status, "info": str} 16 | this.ServeJSON() 17 | } 18 | 19 | func (this *NodeController) Index() { 20 | if this.IsAjax() { 21 | groupid, _ := this.GetInt64("group_id") 22 | nodes, count := m.GetNodelistByGroupid(groupid) 23 | for i := 0; i < len(nodes); i++ { 24 | if nodes[i]["Pid"] != 0 { 25 | nodes[i]["_parentId"] = nodes[i]["Pid"] 26 | } else { 27 | nodes[i]["state"] = "closed" 28 | } 29 | } 30 | if len(nodes) < 1 { 31 | nodes = []orm.Params{} 32 | } 33 | this.Data["json"] = &map[string]interface{}{"total": count, "rows": &nodes} 34 | this.ServeJSON() 35 | return 36 | } else { 37 | grouplist := m.GroupList() 38 | b, _ := json.Marshal(grouplist) 39 | this.Data["grouplist"] = string(b) 40 | this.TplName = this.GetTemplatetype() + "/rbac/node.tpl" 41 | } 42 | 43 | } 44 | func (this *NodeController) AddAndEdit() { 45 | n := m.Node{} 46 | if err := this.ParseForm(&n); err != nil { 47 | //handle error 48 | this.Rsp(false, err.Error()) 49 | return 50 | } 51 | var id int64 52 | var err error 53 | Nid, _ := this.GetInt64("Id") 54 | if Nid > 0 { 55 | id, err = m.UpdateNode(&n) 56 | } else { 57 | group_id, _ := this.GetInt64("Group_id") 58 | group := new(m.Group) 59 | group.Id = group_id 60 | n.Group = group 61 | if n.Pid != 0 { 62 | n1, _ := m.ReadNode(n.Pid) 63 | n.Level = n1.Level + 1 64 | } else { 65 | n.Level = 1 66 | } 67 | id, err = m.AddNode(&n) 68 | } 69 | if err == nil && id > 0 { 70 | this.Rsp(true, "Success") 71 | return 72 | } else { 73 | this.Rsp(false, err.Error()) 74 | return 75 | } 76 | 77 | } 78 | 79 | func (this *NodeController) DelNode() { 80 | Id, _ := this.GetInt64("Id") 81 | status, err := m.DelNodeById(Id) 82 | if err == nil && status > 0 { 83 | this.Rsp(true, "Success") 84 | return 85 | } else { 86 | this.Rsp(false, err.Error()) 87 | return 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/locale/easyui-lang-en.js: -------------------------------------------------------------------------------- 1 | if ($.fn.pagination){ 2 | $.fn.pagination.defaults.beforePageText = 'Page'; 3 | $.fn.pagination.defaults.afterPageText = 'of {pages}'; 4 | $.fn.pagination.defaults.displayMsg = 'Displaying {from} to {to} of {total} items'; 5 | } 6 | if ($.fn.datagrid){ 7 | $.fn.datagrid.defaults.loadMsg = 'Processing, please wait ...'; 8 | } 9 | if ($.fn.treegrid && $.fn.datagrid){ 10 | $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; 11 | } 12 | if ($.messager){ 13 | $.messager.defaults.ok = 'Ok'; 14 | $.messager.defaults.cancel = 'Cancel'; 15 | } 16 | if ($.fn.validatebox){ 17 | $.fn.validatebox.defaults.missingMessage = 'This field is required.'; 18 | $.fn.validatebox.defaults.rules.email.message = 'Please enter a valid email address.'; 19 | $.fn.validatebox.defaults.rules.url.message = 'Please enter a valid URL.'; 20 | $.fn.validatebox.defaults.rules.length.message = 'Please enter a value between {0} and {1}.'; 21 | $.fn.validatebox.defaults.rules.remote.message = 'Please fix this field.'; 22 | } 23 | if ($.fn.numberbox){ 24 | $.fn.numberbox.defaults.missingMessage = 'This field is required.'; 25 | } 26 | if ($.fn.combobox){ 27 | $.fn.combobox.defaults.missingMessage = 'This field is required.'; 28 | } 29 | if ($.fn.combotree){ 30 | $.fn.combotree.defaults.missingMessage = 'This field is required.'; 31 | } 32 | if ($.fn.combogrid){ 33 | $.fn.combogrid.defaults.missingMessage = 'This field is required.'; 34 | } 35 | if ($.fn.calendar){ 36 | $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; 37 | $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 38 | } 39 | if ($.fn.datebox){ 40 | $.fn.datebox.defaults.currentText = 'Today'; 41 | $.fn.datebox.defaults.closeText = 'Close'; 42 | $.fn.datebox.defaults.okText = 'Ok'; 43 | $.fn.datebox.defaults.missingMessage = 'This field is required.'; 44 | } 45 | if ($.fn.datetimebox && $.fn.datebox){ 46 | $.extend($.fn.datetimebox.defaults,{ 47 | currentText: $.fn.datebox.defaults.currentText, 48 | closeText: $.fn.datebox.defaults.closeText, 49 | okText: $.fn.datebox.defaults.okText, 50 | missingMessage: $.fn.datebox.defaults.missingMessage 51 | }); 52 | } 53 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/plugins/jquery.numberspinner.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery EasyUI 1.3.4 3 | * 4 | * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. 5 | * 6 | * Licensed under the GPL or commercial licenses 7 | * To use it on other terms please contact us: info@jeasyui.com 8 | * http://www.gnu.org/licenses/gpl.txt 9 | * http://www.jeasyui.com/license_commercial.php 10 | * 11 | */ 12 | (function($){ 13 | function _1(_2){ 14 | $(_2).addClass("numberspinner-f"); 15 | var _3=$.data(_2,"numberspinner").options; 16 | $(_2).spinner(_3).numberbox(_3); 17 | }; 18 | function _4(_5,_6){ 19 | var _7=$.data(_5,"numberspinner").options; 20 | var v=parseFloat($(_5).numberbox("getValue")||_7.value)||0; 21 | if(_6==true){ 22 | v-=_7.increment; 23 | }else{ 24 | v+=_7.increment; 25 | } 26 | $(_5).numberbox("setValue",v); 27 | }; 28 | $.fn.numberspinner=function(_8,_9){ 29 | if(typeof _8=="string"){ 30 | var _a=$.fn.numberspinner.methods[_8]; 31 | if(_a){ 32 | return _a(this,_9); 33 | }else{ 34 | return this.spinner(_8,_9); 35 | } 36 | } 37 | _8=_8||{}; 38 | return this.each(function(){ 39 | var _b=$.data(this,"numberspinner"); 40 | if(_b){ 41 | $.extend(_b.options,_8); 42 | }else{ 43 | $.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_8)}); 44 | } 45 | _1(this); 46 | }); 47 | }; 48 | $.fn.numberspinner.methods={options:function(jq){ 49 | var _c=$.data(jq[0],"numberspinner").options; 50 | return $.extend(_c,{value:jq.numberbox("getValue"),originalValue:jq.numberbox("options").originalValue}); 51 | },setValue:function(jq,_d){ 52 | return jq.each(function(){ 53 | $(this).numberbox("setValue",_d); 54 | }); 55 | },getValue:function(jq){ 56 | return jq.numberbox("getValue"); 57 | },clear:function(jq){ 58 | return jq.each(function(){ 59 | $(this).spinner("clear"); 60 | $(this).numberbox("clear"); 61 | }); 62 | },reset:function(jq){ 63 | return jq.each(function(){ 64 | var _e=$(this).numberspinner("options"); 65 | $(this).numberspinner("setValue",_e.originalValue); 66 | }); 67 | }}; 68 | $.fn.numberspinner.parseOptions=function(_f){ 69 | return $.extend({},$.fn.spinner.parseOptions(_f),$.fn.numberbox.parseOptions(_f),{}); 70 | }; 71 | $.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(_10){ 72 | _4(this,_10); 73 | }}); 74 | })(jQuery); 75 | 76 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/window.css: -------------------------------------------------------------------------------- 1 | .window { 2 | overflow: hidden; 3 | padding: 5px; 4 | border-width: 1px; 5 | border-style: solid; 6 | } 7 | .window .window-header { 8 | background: transparent; 9 | padding: 0px 0px 6px 0px; 10 | } 11 | .window .window-body { 12 | border-width: 1px; 13 | border-style: solid; 14 | border-top-width: 0px; 15 | } 16 | .window .window-body-noheader { 17 | border-top-width: 1px; 18 | } 19 | .window .window-header .panel-icon, 20 | .window .window-header .panel-tool { 21 | top: 50%; 22 | margin-top: -11px; 23 | } 24 | .window .window-header .panel-icon { 25 | left: 1px; 26 | } 27 | .window .window-header .panel-tool { 28 | right: 1px; 29 | } 30 | .window .window-header .panel-with-icon { 31 | padding-left: 18px; 32 | } 33 | .window-proxy { 34 | position: absolute; 35 | overflow: hidden; 36 | } 37 | .window-proxy-mask { 38 | position: absolute; 39 | filter: alpha(opacity=5); 40 | opacity: 0.05; 41 | } 42 | .window-mask { 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | width: 100%; 47 | height: 100%; 48 | filter: alpha(opacity=40); 49 | opacity: 0.40; 50 | font-size: 1px; 51 | *zoom: 1; 52 | overflow: hidden; 53 | } 54 | .window, 55 | .window-shadow { 56 | position: absolute; 57 | -moz-border-radius: 5px 5px 5px 5px; 58 | -webkit-border-radius: 5px 5px 5px 5px; 59 | border-radius: 5px 5px 5px 5px; 60 | } 61 | .window-shadow { 62 | background: #777; 63 | -moz-box-shadow: 2px 2px 3px #787878; 64 | -webkit-box-shadow: 2px 2px 3px #787878; 65 | box-shadow: 2px 2px 3px #787878; 66 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 67 | } 68 | .window, 69 | .window .window-body { 70 | border-color: #000; 71 | } 72 | .window { 73 | background-color: #3d3d3d; 74 | background: -webkit-linear-gradient(top,#454545 0,#383838 20%); 75 | background: -moz-linear-gradient(top,#454545 0,#383838 20%); 76 | background: -o-linear-gradient(top,#454545 0,#383838 20%); 77 | background: linear-gradient(to bottom,#454545 0,#383838 20%); 78 | background-repeat: repeat-x; 79 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); 80 | } 81 | .window-proxy { 82 | border: 1px dashed #000; 83 | } 84 | .window-proxy-mask, 85 | .window-mask { 86 | background: #000; 87 | } 88 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/window.css: -------------------------------------------------------------------------------- 1 | .window { 2 | overflow: hidden; 3 | padding: 5px; 4 | border-width: 1px; 5 | border-style: solid; 6 | } 7 | .window .window-header { 8 | background: transparent; 9 | padding: 0px 0px 6px 0px; 10 | } 11 | .window .window-body { 12 | border-width: 1px; 13 | border-style: solid; 14 | border-top-width: 0px; 15 | } 16 | .window .window-body-noheader { 17 | border-top-width: 1px; 18 | } 19 | .window .window-header .panel-icon, 20 | .window .window-header .panel-tool { 21 | top: 50%; 22 | margin-top: -11px; 23 | } 24 | .window .window-header .panel-icon { 25 | left: 1px; 26 | } 27 | .window .window-header .panel-tool { 28 | right: 1px; 29 | } 30 | .window .window-header .panel-with-icon { 31 | padding-left: 18px; 32 | } 33 | .window-proxy { 34 | position: absolute; 35 | overflow: hidden; 36 | } 37 | .window-proxy-mask { 38 | position: absolute; 39 | filter: alpha(opacity=5); 40 | opacity: 0.05; 41 | } 42 | .window-mask { 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | width: 100%; 47 | height: 100%; 48 | filter: alpha(opacity=40); 49 | opacity: 0.40; 50 | font-size: 1px; 51 | *zoom: 1; 52 | overflow: hidden; 53 | } 54 | .window, 55 | .window-shadow { 56 | position: absolute; 57 | -moz-border-radius: 5px 5px 5px 5px; 58 | -webkit-border-radius: 5px 5px 5px 5px; 59 | border-radius: 5px 5px 5px 5px; 60 | } 61 | .window-shadow { 62 | background: #ccc; 63 | -moz-box-shadow: 2px 2px 3px #cccccc; 64 | -webkit-box-shadow: 2px 2px 3px #cccccc; 65 | box-shadow: 2px 2px 3px #cccccc; 66 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 67 | } 68 | .window, 69 | .window .window-body { 70 | border-color: #D3D3D3; 71 | } 72 | .window { 73 | background-color: #f3f3f3; 74 | background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); 75 | background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); 76 | background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); 77 | background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%); 78 | background-repeat: repeat-x; 79 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); 80 | } 81 | .window-proxy { 82 | border: 1px dashed #D3D3D3; 83 | } 84 | .window-proxy-mask, 85 | .window-mask { 86 | background: #ccc; 87 | } 88 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/window.css: -------------------------------------------------------------------------------- 1 | .window { 2 | overflow: hidden; 3 | padding: 5px; 4 | border-width: 1px; 5 | border-style: solid; 6 | } 7 | .window .window-header { 8 | background: transparent; 9 | padding: 0px 0px 6px 0px; 10 | } 11 | .window .window-body { 12 | border-width: 1px; 13 | border-style: solid; 14 | border-top-width: 0px; 15 | } 16 | .window .window-body-noheader { 17 | border-top-width: 1px; 18 | } 19 | .window .window-header .panel-icon, 20 | .window .window-header .panel-tool { 21 | top: 50%; 22 | margin-top: -11px; 23 | } 24 | .window .window-header .panel-icon { 25 | left: 1px; 26 | } 27 | .window .window-header .panel-tool { 28 | right: 1px; 29 | } 30 | .window .window-header .panel-with-icon { 31 | padding-left: 18px; 32 | } 33 | .window-proxy { 34 | position: absolute; 35 | overflow: hidden; 36 | } 37 | .window-proxy-mask { 38 | position: absolute; 39 | filter: alpha(opacity=5); 40 | opacity: 0.05; 41 | } 42 | .window-mask { 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | width: 100%; 47 | height: 100%; 48 | filter: alpha(opacity=40); 49 | opacity: 0.40; 50 | font-size: 1px; 51 | *zoom: 1; 52 | overflow: hidden; 53 | } 54 | .window, 55 | .window-shadow { 56 | position: absolute; 57 | -moz-border-radius: 5px 5px 5px 5px; 58 | -webkit-border-radius: 5px 5px 5px 5px; 59 | border-radius: 5px 5px 5px 5px; 60 | } 61 | .window-shadow { 62 | background: #ccc; 63 | -moz-box-shadow: 2px 2px 3px #cccccc; 64 | -webkit-box-shadow: 2px 2px 3px #cccccc; 65 | box-shadow: 2px 2px 3px #cccccc; 66 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 67 | } 68 | .window, 69 | .window .window-body { 70 | border-color: #D4D4D4; 71 | } 72 | .window { 73 | background-color: #F2F2F2; 74 | background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%); 75 | background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%); 76 | background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%); 77 | background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%); 78 | background-repeat: repeat-x; 79 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); 80 | } 81 | .window-proxy { 82 | border: 1px dashed #D4D4D4; 83 | } 84 | .window-proxy-mask, 85 | .window-mask { 86 | background: #ccc; 87 | } 88 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/window.css: -------------------------------------------------------------------------------- 1 | .window { 2 | overflow: hidden; 3 | padding: 5px; 4 | border-width: 1px; 5 | border-style: solid; 6 | } 7 | .window .window-header { 8 | background: transparent; 9 | padding: 0px 0px 6px 0px; 10 | } 11 | .window .window-body { 12 | border-width: 1px; 13 | border-style: solid; 14 | border-top-width: 0px; 15 | } 16 | .window .window-body-noheader { 17 | border-top-width: 1px; 18 | } 19 | .window .window-header .panel-icon, 20 | .window .window-header .panel-tool { 21 | top: 50%; 22 | margin-top: -11px; 23 | } 24 | .window .window-header .panel-icon { 25 | left: 1px; 26 | } 27 | .window .window-header .panel-tool { 28 | right: 1px; 29 | } 30 | .window .window-header .panel-with-icon { 31 | padding-left: 18px; 32 | } 33 | .window-proxy { 34 | position: absolute; 35 | overflow: hidden; 36 | } 37 | .window-proxy-mask { 38 | position: absolute; 39 | filter: alpha(opacity=5); 40 | opacity: 0.05; 41 | } 42 | .window-mask { 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | width: 100%; 47 | height: 100%; 48 | filter: alpha(opacity=40); 49 | opacity: 0.40; 50 | font-size: 1px; 51 | *zoom: 1; 52 | overflow: hidden; 53 | } 54 | .window, 55 | .window-shadow { 56 | position: absolute; 57 | -moz-border-radius: 5px 5px 5px 5px; 58 | -webkit-border-radius: 5px 5px 5px 5px; 59 | border-radius: 5px 5px 5px 5px; 60 | } 61 | .window-shadow { 62 | background: #ccc; 63 | -moz-box-shadow: 2px 2px 3px #cccccc; 64 | -webkit-box-shadow: 2px 2px 3px #cccccc; 65 | box-shadow: 2px 2px 3px #cccccc; 66 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 67 | } 68 | .window, 69 | .window .window-body { 70 | border-color: #95B8E7; 71 | } 72 | .window { 73 | background-color: #E0ECFF; 74 | background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); 75 | background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); 76 | background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); 77 | background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%); 78 | background-repeat: repeat-x; 79 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); 80 | } 81 | .window-proxy { 82 | border: 1px dashed #95B8E7; 83 | } 84 | .window-proxy-mask, 85 | .window-mask { 86 | background: #ccc; 87 | } 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## beego admin 2 | 3 | 基于beego,jquery easyui ,bootstrap的一个后台管理系统 4 | 5 | VERSION = "0.1.1" 6 | 7 | ## 获取安装 8 | 9 | 执行以下命令,就能够在你的`GOPATH/src` 目录下发现beego admin 10 | ```bash 11 | $ go get github.com/beego/admin 12 | ``` 13 | 14 | ## 初次使用 15 | 16 | ### 创建应用 17 | 首先,使用bee工具创建一个应用程序,参考[`http://beego.me/quickstart`](beego的入门) 18 | ``` 19 | $ bee new hello 20 | ``` 21 | 创建成功以后,你能得到一个名叫hello的应用程序, 22 | 现在开始可以使用它了。找到到刚刚新建的程序`hello/routers/router.go`这个文件 23 | ```go 24 | import ( 25 | "hello/controllers" //自身业务包 26 | "github.com/astaxie/beego" //beego 包 27 | "github.com/beego/admin" //admin 包 28 | ) 29 | 30 | ``` 31 | 引入admin代码,再`init`函数中使用它 32 | ```go 33 | func init() { 34 | admin.Run() 35 | beego.Router("/", &controllers.MainController{}) 36 | } 37 | ``` 38 | ### 配置文件 39 | 40 | 数据库目前仅支持MySQL,PostgreSQL,sqlite3,后续会添加更多的数据库支持。 41 | 42 | 数据库的配置信息需要填写,程序会根据配置自动建库 43 | MySQL数据库链接信息 44 | ``` 45 | db_host = localhost 46 | db_port = 3306 47 | db_user = root 48 | db_pass = root 49 | db_name = admin 50 | db_type = mysql 51 | ``` 52 | postgresql数据库链接信息 53 | ``` 54 | db_host = localhost 55 | db_port = 5432 56 | db_user = postgres 57 | db_pass = postgres 58 | db_name = admin 59 | db_type = postgres 60 | db_sslmode=disable 61 | ``` 62 | sqlite3数据库链接信息 63 | ``` 64 | ###db_path 是指数据库保存的路径,默认是在项目的根目录 65 | db_path = ./ 66 | db_name = admin 67 | db_type = sqlite3 68 | ``` 69 | 把以上信息配置成你自己数据库的信息。 70 | 71 | 还有一部分权限系统需要配置的信息 72 | ``` 73 | sessionon = true 74 | rbac_role_table = role 75 | rbac_node_table = node 76 | rbac_group_table = group 77 | rbac_user_table = user 78 | #admin用户名 此用户登录不用认证 79 | rbac_admin_user = admin 80 | 81 | #默认不需要认证模块 82 | not_auth_package = public,static 83 | #默认认证类型 0 不认证 1 登录认证 2 实时认证 84 | user_auth_type = 1 85 | #默认登录网关 86 | rbac_auth_gateway = /public/login 87 | #默认模版 88 | template_type=easyui 89 | ``` 90 | 以上配置信息都需要加入到hello/conf/app.conf文件中, 可以参考admin/conf/app.conf的配置。 91 | 92 | ### 复制静态文件 93 | 94 | 最后还需要把js,css,image,tpl这些文件复制过来。 95 | ```bash 96 | $ cd $GOPATH/src/hello 97 | $ cp -R ../github.com/beego/admin/static ./ 98 | $ cp -R ../github.com/beego/admin/views ./ 99 | 100 | ``` 101 | ### 编译项目 102 | 103 | 全部做好了以后。就可以编译了,进入hello目录 104 | ``` 105 | $ go build 106 | ``` 107 | 首次启动需要创建数据库、初始化数据库表。 108 | ```bash 109 | $ ./hello -syncdb 110 | ``` 111 | 好了,现在可以通过浏览器地址访问了[`http://localhost:8080/`](http://localhost:8080/) 112 | 113 | 默认得用户名密码都是admin 114 | 115 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/tooltip.css: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | position: absolute; 3 | display: none; 4 | z-index: 9900000; 5 | outline: none; 6 | opacity: 1; 7 | filter: alpha(opacity=100); 8 | padding: 5px; 9 | border-width: 1px; 10 | border-style: solid; 11 | border-radius: 5px; 12 | -moz-border-radius: 5px 5px 5px 5px; 13 | -webkit-border-radius: 5px 5px 5px 5px; 14 | border-radius: 5px 5px 5px 5px; 15 | } 16 | .tooltip-content { 17 | font-size: 12px; 18 | } 19 | .tooltip-arrow-outer, 20 | .tooltip-arrow { 21 | position: absolute; 22 | width: 0; 23 | height: 0; 24 | line-height: 0; 25 | font-size: 0; 26 | border-style: solid; 27 | border-width: 6px; 28 | border-color: transparent; 29 | _border-color: tomato; 30 | _filter: chroma(color=tomato); 31 | } 32 | .tooltip-right .tooltip-arrow-outer { 33 | left: 0; 34 | top: 50%; 35 | margin: -6px 0 0 -13px; 36 | } 37 | .tooltip-right .tooltip-arrow { 38 | left: 0; 39 | top: 50%; 40 | margin: -6px 0 0 -12px; 41 | } 42 | .tooltip-left .tooltip-arrow-outer { 43 | right: 0; 44 | top: 50%; 45 | margin: -6px -13px 0 0; 46 | } 47 | .tooltip-left .tooltip-arrow { 48 | right: 0; 49 | top: 50%; 50 | margin: -6px -12px 0 0; 51 | } 52 | .tooltip-top .tooltip-arrow-outer { 53 | bottom: 0; 54 | left: 50%; 55 | margin: 0 0 -13px -6px; 56 | } 57 | .tooltip-top .tooltip-arrow { 58 | bottom: 0; 59 | left: 50%; 60 | margin: 0 0 -12px -6px; 61 | } 62 | .tooltip-bottom .tooltip-arrow-outer { 63 | top: 0; 64 | left: 50%; 65 | margin: -13px 0 0 -6px; 66 | } 67 | .tooltip-bottom .tooltip-arrow { 68 | top: 0; 69 | left: 50%; 70 | margin: -12px 0 0 -6px; 71 | } 72 | .tooltip { 73 | background-color: #666; 74 | border-color: #000; 75 | color: #fff; 76 | } 77 | .tooltip-right .tooltip-arrow-outer { 78 | border-right-color: #000; 79 | } 80 | .tooltip-right .tooltip-arrow { 81 | border-right-color: #666; 82 | } 83 | .tooltip-left .tooltip-arrow-outer { 84 | border-left-color: #000; 85 | } 86 | .tooltip-left .tooltip-arrow { 87 | border-left-color: #666; 88 | } 89 | .tooltip-top .tooltip-arrow-outer { 90 | border-top-color: #000; 91 | } 92 | .tooltip-top .tooltip-arrow { 93 | border-top-color: #666; 94 | } 95 | .tooltip-bottom .tooltip-arrow-outer { 96 | border-bottom-color: #000; 97 | } 98 | .tooltip-bottom .tooltip-arrow { 99 | border-bottom-color: #666; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/tooltip.css: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | position: absolute; 3 | display: none; 4 | z-index: 9900000; 5 | outline: none; 6 | opacity: 1; 7 | filter: alpha(opacity=100); 8 | padding: 5px; 9 | border-width: 1px; 10 | border-style: solid; 11 | border-radius: 5px; 12 | -moz-border-radius: 0px 0px 0px 0px; 13 | -webkit-border-radius: 0px 0px 0px 0px; 14 | border-radius: 0px 0px 0px 0px; 15 | } 16 | .tooltip-content { 17 | font-size: 12px; 18 | } 19 | .tooltip-arrow-outer, 20 | .tooltip-arrow { 21 | position: absolute; 22 | width: 0; 23 | height: 0; 24 | line-height: 0; 25 | font-size: 0; 26 | border-style: solid; 27 | border-width: 6px; 28 | border-color: transparent; 29 | _border-color: tomato; 30 | _filter: chroma(color=tomato); 31 | } 32 | .tooltip-right .tooltip-arrow-outer { 33 | left: 0; 34 | top: 50%; 35 | margin: -6px 0 0 -13px; 36 | } 37 | .tooltip-right .tooltip-arrow { 38 | left: 0; 39 | top: 50%; 40 | margin: -6px 0 0 -12px; 41 | } 42 | .tooltip-left .tooltip-arrow-outer { 43 | right: 0; 44 | top: 50%; 45 | margin: -6px -13px 0 0; 46 | } 47 | .tooltip-left .tooltip-arrow { 48 | right: 0; 49 | top: 50%; 50 | margin: -6px -12px 0 0; 51 | } 52 | .tooltip-top .tooltip-arrow-outer { 53 | bottom: 0; 54 | left: 50%; 55 | margin: 0 0 -13px -6px; 56 | } 57 | .tooltip-top .tooltip-arrow { 58 | bottom: 0; 59 | left: 50%; 60 | margin: 0 0 -12px -6px; 61 | } 62 | .tooltip-bottom .tooltip-arrow-outer { 63 | top: 0; 64 | left: 50%; 65 | margin: -13px 0 0 -6px; 66 | } 67 | .tooltip-bottom .tooltip-arrow { 68 | top: 0; 69 | left: 50%; 70 | margin: -12px 0 0 -6px; 71 | } 72 | .tooltip { 73 | background-color: #fff; 74 | border-color: #ddd; 75 | color: #444; 76 | } 77 | .tooltip-right .tooltip-arrow-outer { 78 | border-right-color: #ddd; 79 | } 80 | .tooltip-right .tooltip-arrow { 81 | border-right-color: #fff; 82 | } 83 | .tooltip-left .tooltip-arrow-outer { 84 | border-left-color: #ddd; 85 | } 86 | .tooltip-left .tooltip-arrow { 87 | border-left-color: #fff; 88 | } 89 | .tooltip-top .tooltip-arrow-outer { 90 | border-top-color: #ddd; 91 | } 92 | .tooltip-top .tooltip-arrow { 93 | border-top-color: #fff; 94 | } 95 | .tooltip-bottom .tooltip-arrow-outer { 96 | border-bottom-color: #ddd; 97 | } 98 | .tooltip-bottom .tooltip-arrow { 99 | border-bottom-color: #fff; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/tooltip.css: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | position: absolute; 3 | display: none; 4 | z-index: 9900000; 5 | outline: none; 6 | opacity: 1; 7 | filter: alpha(opacity=100); 8 | padding: 5px; 9 | border-width: 1px; 10 | border-style: solid; 11 | border-radius: 5px; 12 | -moz-border-radius: 5px 5px 5px 5px; 13 | -webkit-border-radius: 5px 5px 5px 5px; 14 | border-radius: 5px 5px 5px 5px; 15 | } 16 | .tooltip-content { 17 | font-size: 12px; 18 | } 19 | .tooltip-arrow-outer, 20 | .tooltip-arrow { 21 | position: absolute; 22 | width: 0; 23 | height: 0; 24 | line-height: 0; 25 | font-size: 0; 26 | border-style: solid; 27 | border-width: 6px; 28 | border-color: transparent; 29 | _border-color: tomato; 30 | _filter: chroma(color=tomato); 31 | } 32 | .tooltip-right .tooltip-arrow-outer { 33 | left: 0; 34 | top: 50%; 35 | margin: -6px 0 0 -13px; 36 | } 37 | .tooltip-right .tooltip-arrow { 38 | left: 0; 39 | top: 50%; 40 | margin: -6px 0 0 -12px; 41 | } 42 | .tooltip-left .tooltip-arrow-outer { 43 | right: 0; 44 | top: 50%; 45 | margin: -6px -13px 0 0; 46 | } 47 | .tooltip-left .tooltip-arrow { 48 | right: 0; 49 | top: 50%; 50 | margin: -6px -12px 0 0; 51 | } 52 | .tooltip-top .tooltip-arrow-outer { 53 | bottom: 0; 54 | left: 50%; 55 | margin: 0 0 -13px -6px; 56 | } 57 | .tooltip-top .tooltip-arrow { 58 | bottom: 0; 59 | left: 50%; 60 | margin: 0 0 -12px -6px; 61 | } 62 | .tooltip-bottom .tooltip-arrow-outer { 63 | top: 0; 64 | left: 50%; 65 | margin: -13px 0 0 -6px; 66 | } 67 | .tooltip-bottom .tooltip-arrow { 68 | top: 0; 69 | left: 50%; 70 | margin: -12px 0 0 -6px; 71 | } 72 | .tooltip { 73 | background-color: #ffffff; 74 | border-color: #D4D4D4; 75 | color: #333; 76 | } 77 | .tooltip-right .tooltip-arrow-outer { 78 | border-right-color: #D4D4D4; 79 | } 80 | .tooltip-right .tooltip-arrow { 81 | border-right-color: #ffffff; 82 | } 83 | .tooltip-left .tooltip-arrow-outer { 84 | border-left-color: #D4D4D4; 85 | } 86 | .tooltip-left .tooltip-arrow { 87 | border-left-color: #ffffff; 88 | } 89 | .tooltip-top .tooltip-arrow-outer { 90 | border-top-color: #D4D4D4; 91 | } 92 | .tooltip-top .tooltip-arrow { 93 | border-top-color: #ffffff; 94 | } 95 | .tooltip-bottom .tooltip-arrow-outer { 96 | border-bottom-color: #D4D4D4; 97 | } 98 | .tooltip-bottom .tooltip-arrow { 99 | border-bottom-color: #ffffff; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/tooltip.css: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | position: absolute; 3 | display: none; 4 | z-index: 9900000; 5 | outline: none; 6 | opacity: 1; 7 | filter: alpha(opacity=100); 8 | padding: 5px; 9 | border-width: 1px; 10 | border-style: solid; 11 | border-radius: 5px; 12 | -moz-border-radius: 5px 5px 5px 5px; 13 | -webkit-border-radius: 5px 5px 5px 5px; 14 | border-radius: 5px 5px 5px 5px; 15 | } 16 | .tooltip-content { 17 | font-size: 12px; 18 | } 19 | .tooltip-arrow-outer, 20 | .tooltip-arrow { 21 | position: absolute; 22 | width: 0; 23 | height: 0; 24 | line-height: 0; 25 | font-size: 0; 26 | border-style: solid; 27 | border-width: 6px; 28 | border-color: transparent; 29 | _border-color: tomato; 30 | _filter: chroma(color=tomato); 31 | } 32 | .tooltip-right .tooltip-arrow-outer { 33 | left: 0; 34 | top: 50%; 35 | margin: -6px 0 0 -13px; 36 | } 37 | .tooltip-right .tooltip-arrow { 38 | left: 0; 39 | top: 50%; 40 | margin: -6px 0 0 -12px; 41 | } 42 | .tooltip-left .tooltip-arrow-outer { 43 | right: 0; 44 | top: 50%; 45 | margin: -6px -13px 0 0; 46 | } 47 | .tooltip-left .tooltip-arrow { 48 | right: 0; 49 | top: 50%; 50 | margin: -6px -12px 0 0; 51 | } 52 | .tooltip-top .tooltip-arrow-outer { 53 | bottom: 0; 54 | left: 50%; 55 | margin: 0 0 -13px -6px; 56 | } 57 | .tooltip-top .tooltip-arrow { 58 | bottom: 0; 59 | left: 50%; 60 | margin: 0 0 -12px -6px; 61 | } 62 | .tooltip-bottom .tooltip-arrow-outer { 63 | top: 0; 64 | left: 50%; 65 | margin: -13px 0 0 -6px; 66 | } 67 | .tooltip-bottom .tooltip-arrow { 68 | top: 0; 69 | left: 50%; 70 | margin: -12px 0 0 -6px; 71 | } 72 | .tooltip { 73 | background-color: #ffffff; 74 | border-color: #95B8E7; 75 | color: #000000; 76 | } 77 | .tooltip-right .tooltip-arrow-outer { 78 | border-right-color: #95B8E7; 79 | } 80 | .tooltip-right .tooltip-arrow { 81 | border-right-color: #ffffff; 82 | } 83 | .tooltip-left .tooltip-arrow-outer { 84 | border-left-color: #95B8E7; 85 | } 86 | .tooltip-left .tooltip-arrow { 87 | border-left-color: #ffffff; 88 | } 89 | .tooltip-top .tooltip-arrow-outer { 90 | border-top-color: #95B8E7; 91 | } 92 | .tooltip-top .tooltip-arrow { 93 | border-top-color: #ffffff; 94 | } 95 | .tooltip-bottom .tooltip-arrow-outer { 96 | border-bottom-color: #95B8E7; 97 | } 98 | .tooltip-bottom .tooltip-arrow { 99 | border-bottom-color: #ffffff; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/tooltip.css: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | position: absolute; 3 | display: none; 4 | z-index: 9900000; 5 | outline: none; 6 | opacity: 1; 7 | filter: alpha(opacity=100); 8 | padding: 5px; 9 | border-width: 1px; 10 | border-style: solid; 11 | border-radius: 5px; 12 | -moz-border-radius: 5px 5px 5px 5px; 13 | -webkit-border-radius: 5px 5px 5px 5px; 14 | border-radius: 5px 5px 5px 5px; 15 | } 16 | .tooltip-content { 17 | font-size: 12px; 18 | } 19 | .tooltip-arrow-outer, 20 | .tooltip-arrow { 21 | position: absolute; 22 | width: 0; 23 | height: 0; 24 | line-height: 0; 25 | font-size: 0; 26 | border-style: solid; 27 | border-width: 6px; 28 | border-color: transparent; 29 | _border-color: tomato; 30 | _filter: chroma(color=tomato); 31 | } 32 | .tooltip-right .tooltip-arrow-outer { 33 | left: 0; 34 | top: 50%; 35 | margin: -6px 0 0 -13px; 36 | } 37 | .tooltip-right .tooltip-arrow { 38 | left: 0; 39 | top: 50%; 40 | margin: -6px 0 0 -12px; 41 | } 42 | .tooltip-left .tooltip-arrow-outer { 43 | right: 0; 44 | top: 50%; 45 | margin: -6px -13px 0 0; 46 | } 47 | .tooltip-left .tooltip-arrow { 48 | right: 0; 49 | top: 50%; 50 | margin: -6px -12px 0 0; 51 | } 52 | .tooltip-top .tooltip-arrow-outer { 53 | bottom: 0; 54 | left: 50%; 55 | margin: 0 0 -13px -6px; 56 | } 57 | .tooltip-top .tooltip-arrow { 58 | bottom: 0; 59 | left: 50%; 60 | margin: 0 0 -12px -6px; 61 | } 62 | .tooltip-bottom .tooltip-arrow-outer { 63 | top: 0; 64 | left: 50%; 65 | margin: -13px 0 0 -6px; 66 | } 67 | .tooltip-bottom .tooltip-arrow { 68 | top: 0; 69 | left: 50%; 70 | margin: -12px 0 0 -6px; 71 | } 72 | .tooltip { 73 | background-color: #ffffff; 74 | border-color: #D3D3D3; 75 | color: #000000; 76 | } 77 | .tooltip-right .tooltip-arrow-outer { 78 | border-right-color: #D3D3D3; 79 | } 80 | .tooltip-right .tooltip-arrow { 81 | border-right-color: #ffffff; 82 | } 83 | .tooltip-left .tooltip-arrow-outer { 84 | border-left-color: #D3D3D3; 85 | } 86 | .tooltip-left .tooltip-arrow { 87 | border-left-color: #ffffff; 88 | } 89 | .tooltip-top .tooltip-arrow-outer { 90 | border-top-color: #D3D3D3; 91 | } 92 | .tooltip-top .tooltip-arrow { 93 | border-top-color: #ffffff; 94 | } 95 | .tooltip-bottom .tooltip-arrow-outer { 96 | border-bottom-color: #D3D3D3; 97 | } 98 | .tooltip-bottom .tooltip-arrow { 99 | border-bottom-color: #ffffff; 100 | } 101 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/plugins/jquery.progressbar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery EasyUI 1.3.4 3 | * 4 | * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. 5 | * 6 | * Licensed under the GPL or commercial licenses 7 | * To use it on other terms please contact us: info@jeasyui.com 8 | * http://www.gnu.org/licenses/gpl.txt 9 | * http://www.jeasyui.com/license_commercial.php 10 | * 11 | */ 12 | (function($){ 13 | function _1(_2){ 14 | $(_2).addClass("progressbar"); 15 | $(_2).html("
"); 16 | return $(_2); 17 | }; 18 | function _3(_4,_5){ 19 | var _6=$.data(_4,"progressbar").options; 20 | var _7=$.data(_4,"progressbar").bar; 21 | if(_5){ 22 | _6.width=_5; 23 | } 24 | _7._outerWidth(_6.width)._outerHeight(_6.height); 25 | _7.find("div.progressbar-text").width(_7.width()); 26 | _7.find("div.progressbar-text,div.progressbar-value").css({height:_7.height()+"px",lineHeight:_7.height()+"px"}); 27 | }; 28 | $.fn.progressbar=function(_8,_9){ 29 | if(typeof _8=="string"){ 30 | var _a=$.fn.progressbar.methods[_8]; 31 | if(_a){ 32 | return _a(this,_9); 33 | } 34 | } 35 | _8=_8||{}; 36 | return this.each(function(){ 37 | var _b=$.data(this,"progressbar"); 38 | if(_b){ 39 | $.extend(_b.options,_8); 40 | }else{ 41 | _b=$.data(this,"progressbar",{options:$.extend({},$.fn.progressbar.defaults,$.fn.progressbar.parseOptions(this),_8),bar:_1(this)}); 42 | } 43 | $(this).progressbar("setValue",_b.options.value); 44 | _3(this); 45 | }); 46 | }; 47 | $.fn.progressbar.methods={options:function(jq){ 48 | return $.data(jq[0],"progressbar").options; 49 | },resize:function(jq,_c){ 50 | return jq.each(function(){ 51 | _3(this,_c); 52 | }); 53 | },getValue:function(jq){ 54 | return $.data(jq[0],"progressbar").options.value; 55 | },setValue:function(jq,_d){ 56 | if(_d<0){ 57 | _d=0; 58 | } 59 | if(_d>100){ 60 | _d=100; 61 | } 62 | return jq.each(function(){ 63 | var _e=$.data(this,"progressbar").options; 64 | var _f=_e.text.replace(/{value}/,_d); 65 | var _10=_e.value; 66 | _e.value=_d; 67 | $(this).find("div.progressbar-value").width(_d+"%"); 68 | $(this).find("div.progressbar-text").html(_f); 69 | if(_10!=_d){ 70 | _e.onChange.call(this,_d,_10); 71 | } 72 | }); 73 | }}; 74 | $.fn.progressbar.parseOptions=function(_11){ 75 | return $.extend({},$.parser.parseOptions(_11,["width","height","text",{value:"number"}])); 76 | }; 77 | $.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_12,_13){ 78 | }}; 79 | })(jQuery); 80 | 81 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/src/jquery.droppable.js: -------------------------------------------------------------------------------- 1 | /** 2 | * droppable - jQuery EasyUI 3 | * 4 | * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. 5 | * 6 | * Licensed under the GPL or commercial licenses 7 | * To use it on other terms please contact us: info@jeasyui.com 8 | * http://www.gnu.org/licenses/gpl.txt 9 | * http://www.jeasyui.com/license_commercial.php 10 | */ 11 | (function($){ 12 | function init(target){ 13 | $(target).addClass('droppable'); 14 | $(target).bind('_dragenter', function(e, source){ 15 | $.data(target, 'droppable').options.onDragEnter.apply(target, [e, source]); 16 | }); 17 | $(target).bind('_dragleave', function(e, source){ 18 | $.data(target, 'droppable').options.onDragLeave.apply(target, [e, source]); 19 | }); 20 | $(target).bind('_dragover', function(e, source){ 21 | $.data(target, 'droppable').options.onDragOver.apply(target, [e, source]); 22 | }); 23 | $(target).bind('_drop', function(e, source){ 24 | $.data(target, 'droppable').options.onDrop.apply(target, [e, source]); 25 | }); 26 | } 27 | 28 | $.fn.droppable = function(options, param){ 29 | if (typeof options == 'string'){ 30 | return $.fn.droppable.methods[options](this, param); 31 | } 32 | 33 | options = options || {}; 34 | return this.each(function(){ 35 | var state = $.data(this, 'droppable'); 36 | if (state){ 37 | $.extend(state.options, options); 38 | } else { 39 | init(this); 40 | $.data(this, 'droppable', { 41 | options: $.extend({}, $.fn.droppable.defaults, $.fn.droppable.parseOptions(this), options) 42 | }); 43 | } 44 | }); 45 | }; 46 | 47 | $.fn.droppable.methods = { 48 | options: function(jq){ 49 | return $.data(jq[0], 'droppable').options; 50 | }, 51 | enable: function(jq){ 52 | return jq.each(function(){ 53 | $(this).droppable({disabled:false}); 54 | }); 55 | }, 56 | disable: function(jq){ 57 | return jq.each(function(){ 58 | $(this).droppable({disabled:true}); 59 | }); 60 | } 61 | }; 62 | 63 | $.fn.droppable.parseOptions = function(target){ 64 | var t = $(target); 65 | return $.extend({}, $.parser.parseOptions(target, ['accept']), { 66 | disabled: (t.attr('disabled') ? true : undefined) 67 | }); 68 | }; 69 | 70 | $.fn.droppable.defaults = { 71 | accept:null, 72 | disabled:false, 73 | onDragEnter:function(e, source){}, 74 | onDragOver:function(e, source){}, 75 | onDragLeave:function(e, source){}, 76 | onDrop:function(e, source){} 77 | }; 78 | })(jQuery); 79 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/locale/easyui-lang-zh_CN.js: -------------------------------------------------------------------------------- 1 | if ($.fn.pagination){ 2 | $.fn.pagination.defaults.beforePageText = '第'; 3 | $.fn.pagination.defaults.afterPageText = '共{pages}页'; 4 | $.fn.pagination.defaults.displayMsg = '显示{from}到{to},共{total}记录'; 5 | } 6 | if ($.fn.datagrid){ 7 | $.fn.datagrid.defaults.loadMsg = '正在处理,请稍待。。。'; 8 | } 9 | if ($.fn.treegrid && $.fn.datagrid){ 10 | $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; 11 | } 12 | if ($.messager){ 13 | $.messager.defaults.ok = '确定'; 14 | $.messager.defaults.cancel = '取消'; 15 | } 16 | if ($.fn.validatebox){ 17 | $.fn.validatebox.defaults.missingMessage = '该输入项为必输项'; 18 | $.fn.validatebox.defaults.rules.email.message = '请输入有效的电子邮件地址'; 19 | $.fn.validatebox.defaults.rules.url.message = '请输入有效的URL地址'; 20 | $.fn.validatebox.defaults.rules.length.message = '输入内容长度必须介于{0}和{1}之间'; 21 | $.fn.validatebox.defaults.rules.remote.message = '请修正该字段'; 22 | } 23 | if ($.fn.numberbox){ 24 | $.fn.numberbox.defaults.missingMessage = '该输入项为必输项'; 25 | } 26 | if ($.fn.combobox){ 27 | $.fn.combobox.defaults.missingMessage = '该输入项为必输项'; 28 | } 29 | if ($.fn.combotree){ 30 | $.fn.combotree.defaults.missingMessage = '该输入项为必输项'; 31 | } 32 | if ($.fn.combogrid){ 33 | $.fn.combogrid.defaults.missingMessage = '该输入项为必输项'; 34 | } 35 | if ($.fn.calendar){ 36 | $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; 37 | $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; 38 | } 39 | if ($.fn.datebox){ 40 | $.fn.datebox.defaults.currentText = '今天'; 41 | $.fn.datebox.defaults.closeText = '关闭'; 42 | $.fn.datebox.defaults.okText = '确定'; 43 | $.fn.datebox.defaults.missingMessage = '该输入项为必输项'; 44 | $.fn.datebox.defaults.formatter = function(date){ 45 | var y = date.getFullYear(); 46 | var m = date.getMonth()+1; 47 | var d = date.getDate(); 48 | return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d); 49 | }; 50 | $.fn.datebox.defaults.parser = function(s){ 51 | if (!s) return new Date(); 52 | var ss = s.split('-'); 53 | var y = parseInt(ss[0],10); 54 | var m = parseInt(ss[1],10); 55 | var d = parseInt(ss[2],10); 56 | if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ 57 | return new Date(y,m-1,d); 58 | } else { 59 | return new Date(); 60 | } 61 | }; 62 | } 63 | if ($.fn.datetimebox && $.fn.datebox){ 64 | $.extend($.fn.datetimebox.defaults,{ 65 | currentText: $.fn.datebox.defaults.currentText, 66 | closeText: $.fn.datebox.defaults.closeText, 67 | okText: $.fn.datebox.defaults.okText, 68 | missingMessage: $.fn.datebox.defaults.missingMessage 69 | }); 70 | } 71 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/black/menu.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | position: absolute; 3 | margin: 0; 4 | padding: 2px; 5 | border-width: 1px; 6 | border-style: solid; 7 | overflow: hidden; 8 | } 9 | .menu-item { 10 | position: relative; 11 | margin: 0; 12 | padding: 0; 13 | overflow: hidden; 14 | white-space: nowrap; 15 | cursor: pointer; 16 | border-width: 1px; 17 | border-style: solid; 18 | } 19 | .menu-text { 20 | height: 20px; 21 | line-height: 20px; 22 | float: left; 23 | padding-left: 28px; 24 | } 25 | .menu-icon { 26 | position: absolute; 27 | width: 16px; 28 | height: 16px; 29 | left: 2px; 30 | top: 50%; 31 | margin-top: -8px; 32 | } 33 | .menu-rightarrow { 34 | position: absolute; 35 | width: 16px; 36 | height: 16px; 37 | right: 0; 38 | top: 50%; 39 | margin-top: -8px; 40 | } 41 | .menu-line { 42 | position: absolute; 43 | left: 26px; 44 | top: 0; 45 | height: 2000px; 46 | font-size: 1px; 47 | } 48 | .menu-sep { 49 | margin: 3px 0px 3px 25px; 50 | font-size: 1px; 51 | } 52 | .menu-active { 53 | -moz-border-radius: 5px 5px 5px 5px; 54 | -webkit-border-radius: 5px 5px 5px 5px; 55 | border-radius: 5px 5px 5px 5px; 56 | } 57 | .menu-item-disabled { 58 | opacity: 0.5; 59 | filter: alpha(opacity=50); 60 | cursor: default; 61 | } 62 | .menu-text, 63 | .menu-text span { 64 | font-size: 12px; 65 | } 66 | .menu-shadow { 67 | position: absolute; 68 | -moz-border-radius: 5px 5px 5px 5px; 69 | -webkit-border-radius: 5px 5px 5px 5px; 70 | border-radius: 5px 5px 5px 5px; 71 | background: #777; 72 | -moz-box-shadow: 2px 2px 3px #787878; 73 | -webkit-box-shadow: 2px 2px 3px #787878; 74 | box-shadow: 2px 2px 3px #787878; 75 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 76 | } 77 | .menu-rightarrow { 78 | background: url('images/menu_arrows.png') no-repeat -32px center; 79 | } 80 | .menu-line { 81 | border-left: 1px solid #444; 82 | border-right: 1px solid #777; 83 | } 84 | .menu-sep { 85 | border-top: 1px solid #444; 86 | border-bottom: 1px solid #777; 87 | } 88 | .menu { 89 | background-color: #666; 90 | border-color: #444; 91 | color: #fff; 92 | } 93 | .menu-content { 94 | background: #666; 95 | } 96 | .menu-item { 97 | border-color: transparent; 98 | _border-color: #666; 99 | } 100 | .menu-active { 101 | border-color: #555; 102 | color: #fff; 103 | background: #777; 104 | } 105 | .menu-active-disabled { 106 | border-color: transparent; 107 | background: transparent; 108 | color: #fff; 109 | } 110 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/menu.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | position: absolute; 3 | margin: 0; 4 | padding: 2px; 5 | border-width: 1px; 6 | border-style: solid; 7 | overflow: hidden; 8 | } 9 | .menu-item { 10 | position: relative; 11 | margin: 0; 12 | padding: 0; 13 | overflow: hidden; 14 | white-space: nowrap; 15 | cursor: pointer; 16 | border-width: 1px; 17 | border-style: solid; 18 | } 19 | .menu-text { 20 | height: 20px; 21 | line-height: 20px; 22 | float: left; 23 | padding-left: 28px; 24 | } 25 | .menu-icon { 26 | position: absolute; 27 | width: 16px; 28 | height: 16px; 29 | left: 2px; 30 | top: 50%; 31 | margin-top: -8px; 32 | } 33 | .menu-rightarrow { 34 | position: absolute; 35 | width: 16px; 36 | height: 16px; 37 | right: 0; 38 | top: 50%; 39 | margin-top: -8px; 40 | } 41 | .menu-line { 42 | position: absolute; 43 | left: 26px; 44 | top: 0; 45 | height: 2000px; 46 | font-size: 1px; 47 | } 48 | .menu-sep { 49 | margin: 3px 0px 3px 25px; 50 | font-size: 1px; 51 | } 52 | .menu-active { 53 | -moz-border-radius: 0px 0px 0px 0px; 54 | -webkit-border-radius: 0px 0px 0px 0px; 55 | border-radius: 0px 0px 0px 0px; 56 | } 57 | .menu-item-disabled { 58 | opacity: 0.5; 59 | filter: alpha(opacity=50); 60 | cursor: default; 61 | } 62 | .menu-text, 63 | .menu-text span { 64 | font-size: 12px; 65 | } 66 | .menu-shadow { 67 | position: absolute; 68 | -moz-border-radius: 0px 0px 0px 0px; 69 | -webkit-border-radius: 0px 0px 0px 0px; 70 | border-radius: 0px 0px 0px 0px; 71 | background: #eee; 72 | -moz-box-shadow: 2px 2px 3px #ededed; 73 | -webkit-box-shadow: 2px 2px 3px #ededed; 74 | box-shadow: 2px 2px 3px #ededed; 75 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 76 | } 77 | .menu-rightarrow { 78 | background: url('images/menu_arrows.png') no-repeat -32px center; 79 | } 80 | .menu-line { 81 | border-left: 1px solid #ddd; 82 | border-right: 1px solid #fff; 83 | } 84 | .menu-sep { 85 | border-top: 1px solid #ddd; 86 | border-bottom: 1px solid #fff; 87 | } 88 | .menu { 89 | background-color: #ffffff; 90 | border-color: #ddd; 91 | color: #444; 92 | } 93 | .menu-content { 94 | background: #fff; 95 | } 96 | .menu-item { 97 | border-color: transparent; 98 | _border-color: #ffffff; 99 | } 100 | .menu-active { 101 | border-color: #ddd; 102 | color: #444; 103 | background: #E6E6E6; 104 | } 105 | .menu-active-disabled { 106 | border-color: transparent; 107 | background: transparent; 108 | color: #444; 109 | } 110 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/bootstrap/menu.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | position: absolute; 3 | margin: 0; 4 | padding: 2px; 5 | border-width: 1px; 6 | border-style: solid; 7 | overflow: hidden; 8 | } 9 | .menu-item { 10 | position: relative; 11 | margin: 0; 12 | padding: 0; 13 | overflow: hidden; 14 | white-space: nowrap; 15 | cursor: pointer; 16 | border-width: 1px; 17 | border-style: solid; 18 | } 19 | .menu-text { 20 | height: 20px; 21 | line-height: 20px; 22 | float: left; 23 | padding-left: 28px; 24 | } 25 | .menu-icon { 26 | position: absolute; 27 | width: 16px; 28 | height: 16px; 29 | left: 2px; 30 | top: 50%; 31 | margin-top: -8px; 32 | } 33 | .menu-rightarrow { 34 | position: absolute; 35 | width: 16px; 36 | height: 16px; 37 | right: 0; 38 | top: 50%; 39 | margin-top: -8px; 40 | } 41 | .menu-line { 42 | position: absolute; 43 | left: 26px; 44 | top: 0; 45 | height: 2000px; 46 | font-size: 1px; 47 | } 48 | .menu-sep { 49 | margin: 3px 0px 3px 25px; 50 | font-size: 1px; 51 | } 52 | .menu-active { 53 | -moz-border-radius: 5px 5px 5px 5px; 54 | -webkit-border-radius: 5px 5px 5px 5px; 55 | border-radius: 5px 5px 5px 5px; 56 | } 57 | .menu-item-disabled { 58 | opacity: 0.5; 59 | filter: alpha(opacity=50); 60 | cursor: default; 61 | } 62 | .menu-text, 63 | .menu-text span { 64 | font-size: 12px; 65 | } 66 | .menu-shadow { 67 | position: absolute; 68 | -moz-border-radius: 5px 5px 5px 5px; 69 | -webkit-border-radius: 5px 5px 5px 5px; 70 | border-radius: 5px 5px 5px 5px; 71 | background: #ccc; 72 | -moz-box-shadow: 2px 2px 3px #cccccc; 73 | -webkit-box-shadow: 2px 2px 3px #cccccc; 74 | box-shadow: 2px 2px 3px #cccccc; 75 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 76 | } 77 | .menu-rightarrow { 78 | background: url('images/menu_arrows.png') no-repeat -32px center; 79 | } 80 | .menu-line { 81 | border-left: 1px solid #ccc; 82 | border-right: 1px solid #fff; 83 | } 84 | .menu-sep { 85 | border-top: 1px solid #ccc; 86 | border-bottom: 1px solid #fff; 87 | } 88 | .menu { 89 | background-color: #fff; 90 | border-color: #e6e6e6; 91 | color: #333; 92 | } 93 | .menu-content { 94 | background: #ffffff; 95 | } 96 | .menu-item { 97 | border-color: transparent; 98 | _border-color: #fff; 99 | } 100 | .menu-active { 101 | border-color: #ddd; 102 | color: #00438a; 103 | background: #e6e6e6; 104 | } 105 | .menu-active-disabled { 106 | border-color: transparent; 107 | background: transparent; 108 | color: #333; 109 | } 110 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/default/menu.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | position: absolute; 3 | margin: 0; 4 | padding: 2px; 5 | border-width: 1px; 6 | border-style: solid; 7 | overflow: hidden; 8 | } 9 | .menu-item { 10 | position: relative; 11 | margin: 0; 12 | padding: 0; 13 | overflow: hidden; 14 | white-space: nowrap; 15 | cursor: pointer; 16 | border-width: 1px; 17 | border-style: solid; 18 | } 19 | .menu-text { 20 | height: 20px; 21 | line-height: 20px; 22 | float: left; 23 | padding-left: 28px; 24 | } 25 | .menu-icon { 26 | position: absolute; 27 | width: 16px; 28 | height: 16px; 29 | left: 2px; 30 | top: 50%; 31 | margin-top: -8px; 32 | } 33 | .menu-rightarrow { 34 | position: absolute; 35 | width: 16px; 36 | height: 16px; 37 | right: 0; 38 | top: 50%; 39 | margin-top: -8px; 40 | } 41 | .menu-line { 42 | position: absolute; 43 | left: 26px; 44 | top: 0; 45 | height: 2000px; 46 | font-size: 1px; 47 | } 48 | .menu-sep { 49 | margin: 3px 0px 3px 25px; 50 | font-size: 1px; 51 | } 52 | .menu-active { 53 | -moz-border-radius: 5px 5px 5px 5px; 54 | -webkit-border-radius: 5px 5px 5px 5px; 55 | border-radius: 5px 5px 5px 5px; 56 | } 57 | .menu-item-disabled { 58 | opacity: 0.5; 59 | filter: alpha(opacity=50); 60 | cursor: default; 61 | } 62 | .menu-text, 63 | .menu-text span { 64 | font-size: 12px; 65 | } 66 | .menu-shadow { 67 | position: absolute; 68 | -moz-border-radius: 5px 5px 5px 5px; 69 | -webkit-border-radius: 5px 5px 5px 5px; 70 | border-radius: 5px 5px 5px 5px; 71 | background: #ccc; 72 | -moz-box-shadow: 2px 2px 3px #cccccc; 73 | -webkit-box-shadow: 2px 2px 3px #cccccc; 74 | box-shadow: 2px 2px 3px #cccccc; 75 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 76 | } 77 | .menu-rightarrow { 78 | background: url('images/menu_arrows.png') no-repeat -32px center; 79 | } 80 | .menu-line { 81 | border-left: 1px solid #ccc; 82 | border-right: 1px solid #fff; 83 | } 84 | .menu-sep { 85 | border-top: 1px solid #ccc; 86 | border-bottom: 1px solid #fff; 87 | } 88 | .menu { 89 | background-color: #fafafa; 90 | border-color: #ddd; 91 | color: #444; 92 | } 93 | .menu-content { 94 | background: #ffffff; 95 | } 96 | .menu-item { 97 | border-color: transparent; 98 | _border-color: #fafafa; 99 | } 100 | .menu-active { 101 | border-color: #b7d2ff; 102 | color: #000000; 103 | background: #eaf2ff; 104 | } 105 | .menu-active-disabled { 106 | border-color: transparent; 107 | background: transparent; 108 | color: #444; 109 | } 110 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/gray/menu.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | position: absolute; 3 | margin: 0; 4 | padding: 2px; 5 | border-width: 1px; 6 | border-style: solid; 7 | overflow: hidden; 8 | } 9 | .menu-item { 10 | position: relative; 11 | margin: 0; 12 | padding: 0; 13 | overflow: hidden; 14 | white-space: nowrap; 15 | cursor: pointer; 16 | border-width: 1px; 17 | border-style: solid; 18 | } 19 | .menu-text { 20 | height: 20px; 21 | line-height: 20px; 22 | float: left; 23 | padding-left: 28px; 24 | } 25 | .menu-icon { 26 | position: absolute; 27 | width: 16px; 28 | height: 16px; 29 | left: 2px; 30 | top: 50%; 31 | margin-top: -8px; 32 | } 33 | .menu-rightarrow { 34 | position: absolute; 35 | width: 16px; 36 | height: 16px; 37 | right: 0; 38 | top: 50%; 39 | margin-top: -8px; 40 | } 41 | .menu-line { 42 | position: absolute; 43 | left: 26px; 44 | top: 0; 45 | height: 2000px; 46 | font-size: 1px; 47 | } 48 | .menu-sep { 49 | margin: 3px 0px 3px 25px; 50 | font-size: 1px; 51 | } 52 | .menu-active { 53 | -moz-border-radius: 5px 5px 5px 5px; 54 | -webkit-border-radius: 5px 5px 5px 5px; 55 | border-radius: 5px 5px 5px 5px; 56 | } 57 | .menu-item-disabled { 58 | opacity: 0.5; 59 | filter: alpha(opacity=50); 60 | cursor: default; 61 | } 62 | .menu-text, 63 | .menu-text span { 64 | font-size: 12px; 65 | } 66 | .menu-shadow { 67 | position: absolute; 68 | -moz-border-radius: 5px 5px 5px 5px; 69 | -webkit-border-radius: 5px 5px 5px 5px; 70 | border-radius: 5px 5px 5px 5px; 71 | background: #ccc; 72 | -moz-box-shadow: 2px 2px 3px #cccccc; 73 | -webkit-box-shadow: 2px 2px 3px #cccccc; 74 | box-shadow: 2px 2px 3px #cccccc; 75 | filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); 76 | } 77 | .menu-rightarrow { 78 | background: url('images/menu_arrows.png') no-repeat -32px center; 79 | } 80 | .menu-line { 81 | border-left: 1px solid #ccc; 82 | border-right: 1px solid #fff; 83 | } 84 | .menu-sep { 85 | border-top: 1px solid #ccc; 86 | border-bottom: 1px solid #fff; 87 | } 88 | .menu { 89 | background-color: #f3f3f3; 90 | border-color: #D3D3D3; 91 | color: #444; 92 | } 93 | .menu-content { 94 | background: #ffffff; 95 | } 96 | .menu-item { 97 | border-color: transparent; 98 | _border-color: #f3f3f3; 99 | } 100 | .menu-active { 101 | border-color: #ccc; 102 | color: #000000; 103 | background: #e2e2e2; 104 | } 105 | .menu-active-disabled { 106 | border-color: transparent; 107 | background: transparent; 108 | color: #444; 109 | } 110 | -------------------------------------------------------------------------------- /src/rbac/user.go: -------------------------------------------------------------------------------- 1 | package rbac 2 | 3 | import ( 4 | m "github.com/beego/admin/src/models" 5 | ) 6 | 7 | type UserController struct { 8 | CommonController 9 | } 10 | 11 | func (this *UserController) Index() { 12 | page, _ := this.GetInt64("page") 13 | page_size, _ := this.GetInt64("rows") 14 | sort := this.GetString("sort") 15 | order := this.GetString("order") 16 | // 获取搜索条件 17 | Username__exact := this.GetString("Username__exact") 18 | Nickname__contains := this.GetString("Nickname__contains") 19 | 20 | // 先声明map 21 | var searchMap map[string]string 22 | // 再使用make函数创建一个非nil的map,nil map不能赋值 23 | searchMap = make(map[string]string) 24 | // 最后给已声明的map赋值 25 | if len(Username__exact) > 0 { 26 | searchMap["Username__exact"] = Username__exact 27 | } 28 | if len(Nickname__contains) > 0 { 29 | searchMap["Nickname__contains"] = Nickname__contains 30 | } 31 | if len(order) > 0 { 32 | if order == "desc" { 33 | sort = "-" + sort 34 | } 35 | } else { 36 | sort = "Id" 37 | } 38 | users, count := m.Getuserlist(page, page_size, sort, searchMap) 39 | if this.IsAjax() { 40 | 41 | this.Data["json"] = &map[string]interface{}{"total": count, "rows": &users} 42 | this.ServeJSON() 43 | return 44 | } else { 45 | tree := this.GetTree() 46 | this.Data["tree"] = &tree 47 | this.Data["users"] = &users 48 | if this.GetTemplatetype() != "easyui" { 49 | this.Layout = this.GetTemplatetype() + "/public/layout.tpl" 50 | } 51 | this.TplName = this.GetTemplatetype() + "/rbac/user.tpl" 52 | } 53 | 54 | } 55 | 56 | func (this *UserController) AddUser() { 57 | u := m.User{} 58 | if err := this.ParseForm(&u); err != nil { 59 | //handle error 60 | this.Rsp(false, err.Error()) 61 | return 62 | } 63 | id, err := m.AddUser(&u) 64 | if err == nil && id > 0 { 65 | this.Rsp(true, "Success") 66 | return 67 | } else { 68 | this.Rsp(false, err.Error()) 69 | return 70 | } 71 | 72 | } 73 | 74 | func (this *UserController) UpdateUser() { 75 | u := m.User{} 76 | if err := this.ParseForm(&u); err != nil { 77 | //handle error 78 | this.Rsp(false, err.Error()) 79 | return 80 | } 81 | id, err := m.UpdateUser(&u) 82 | if err == nil && id > 0 { 83 | this.Rsp(true, "Success") 84 | return 85 | } else { 86 | this.Rsp(false, err.Error()) 87 | return 88 | } 89 | 90 | } 91 | 92 | func (this *UserController) DelUser() { 93 | Id, _ := this.GetInt64("Id") 94 | status, err := m.DelUserById(Id) 95 | if err == nil && status > 0 { 96 | this.Rsp(true, "Success") 97 | return 98 | } else { 99 | this.Rsp(false, err.Error()) 100 | return 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /views/easyui/rbac/roletouserlist.tpl: -------------------------------------------------------------------------------- 1 | {{template "../public/header.tpl"}} 2 | 64 | 65 |
66 |
67 |
68 | 当前组: 69 | 保存 70 |
71 |
72 | 全选 73 | 全否 74 |
75 |
76 | 77 | -------------------------------------------------------------------------------- /static/easyui/jquery-easyui/themes/metro/panel.css: -------------------------------------------------------------------------------- 1 | .panel { 2 | overflow: hidden; 3 | text-align: left; 4 | } 5 | .panel-header, 6 | .panel-body { 7 | border-width: 1px; 8 | border-style: solid; 9 | } 10 | .panel-header { 11 | padding: 5px; 12 | position: relative; 13 | } 14 | .panel-title { 15 | background: url('images/blank.gif') no-repeat; 16 | } 17 | .panel-header-noborder { 18 | border-width: 0 0 1px 0; 19 | } 20 | .panel-body { 21 | overflow: auto; 22 | border-top-width: 0px; 23 | } 24 | .panel-body-noheader { 25 | border-top-width: 1px; 26 | } 27 | .panel-body-noborder { 28 | border-width: 0px; 29 | } 30 | .panel-with-icon { 31 | padding-left: 18px; 32 | } 33 | .panel-icon, 34 | .panel-tool { 35 | position: absolute; 36 | top: 50%; 37 | margin-top: -8px; 38 | height: 16px; 39 | overflow: hidden; 40 | } 41 | .panel-icon { 42 | left: 5px; 43 | width: 16px; 44 | } 45 | .panel-tool { 46 | right: 5px; 47 | width: auto; 48 | } 49 | .panel-tool a { 50 | display: inline-block; 51 | width: 16px; 52 | height: 16px; 53 | opacity: 0.6; 54 | filter: alpha(opacity=60); 55 | margin: 0 0 0 2px; 56 | vertical-align: top; 57 | } 58 | .panel-tool a:hover { 59 | opacity: 1; 60 | filter: alpha(opacity=100); 61 | background-color: #E6E6E6; 62 | -moz-border-radius: -2px -2px -2px -2px; 63 | -webkit-border-radius: -2px -2px -2px -2px; 64 | border-radius: -2px -2px -2px -2px; 65 | } 66 | .panel-loading { 67 | padding: 11px 0px 10px 30px; 68 | } 69 | .panel-noscroll { 70 | overflow: hidden; 71 | } 72 | .panel-fit, 73 | .panel-fit body { 74 | height: 100%; 75 | margin: 0; 76 | padding: 0; 77 | border: 0; 78 | overflow: hidden; 79 | } 80 | .panel-loading { 81 | background: url('images/loading.gif') no-repeat 10px 10px; 82 | } 83 | .panel-tool-close { 84 | background: url('images/panel_tools.png') no-repeat -16px 0px; 85 | } 86 | .panel-tool-min { 87 | background: url('images/panel_tools.png') no-repeat 0px 0px; 88 | } 89 | .panel-tool-max { 90 | background: url('images/panel_tools.png') no-repeat 0px -16px; 91 | } 92 | .panel-tool-restore { 93 | background: url('images/panel_tools.png') no-repeat -16px -16px; 94 | } 95 | .panel-tool-collapse { 96 | background: url('images/panel_tools.png') no-repeat -32px 0; 97 | } 98 | .panel-tool-expand { 99 | background: url('images/panel_tools.png') no-repeat -32px -16px; 100 | } 101 | .panel-header, 102 | .panel-body { 103 | border-color: #ddd; 104 | } 105 | .panel-header { 106 | background-color: #ffffff; 107 | } 108 | .panel-body { 109 | background-color: #fff; 110 | color: #444; 111 | font-size: 12px; 112 | } 113 | .panel-title { 114 | font-size: 12px; 115 | font-weight: bold; 116 | color: #777; 117 | height: 16px; 118 | line-height: 16px; 119 | } 120 | -------------------------------------------------------------------------------- /src/models/GroupModel.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "errors" 5 | "log" 6 | 7 | "github.com/astaxie/beego" 8 | "github.com/astaxie/beego/orm" 9 | "github.com/astaxie/beego/validation" 10 | ) 11 | 12 | //分组表 13 | type Group struct { 14 | Id int64 15 | Name string `orm:"size(100)" form:"Name" valid:"Required"` 16 | Title string `orm:"size(100)" form:"Title" valid:"Required"` 17 | Status int `orm:"default(2)" form:"Status" valid:"Range(1,2)"` 18 | Sort int `orm:"default(1)" form:"Sort" valid:"Numeric"` 19 | Nodes []*Node `orm:"reverse(many)"` 20 | } 21 | 22 | func (g *Group) TableName() string { 23 | return beego.AppConfig.String("rbac_group_table") 24 | } 25 | 26 | func init() { 27 | orm.RegisterModel(new(Group)) 28 | } 29 | 30 | func checkGroup(g *Group) (err error) { 31 | valid := validation.Validation{} 32 | b, _ := valid.Valid(&g) 33 | if !b { 34 | for _, err := range valid.Errors { 35 | log.Println(err.Key, err.Message) 36 | return errors.New(err.Message) 37 | } 38 | } 39 | return nil 40 | } 41 | 42 | //get group list 43 | func GetGrouplist(page int64, page_size int64, sort string) (groups []orm.Params, count int64) { 44 | o := orm.NewOrm() 45 | group := new(Group) 46 | qs := o.QueryTable(group) 47 | var offset int64 48 | if page <= 1 { 49 | offset = 0 50 | } else { 51 | offset = (page - 1) * page_size 52 | } 53 | qs.Limit(page_size, offset).OrderBy(sort).Values(&groups) 54 | count, _ = qs.Count() 55 | return groups, count 56 | } 57 | 58 | func AddGroup(g *Group) (int64, error) { 59 | if err := checkGroup(g); err != nil { 60 | return 0, err 61 | } 62 | o := orm.NewOrm() 63 | group := new(Group) 64 | group.Name = g.Name 65 | group.Title = g.Title 66 | group.Sort = g.Sort 67 | group.Status = g.Status 68 | id, err := o.Insert(group) 69 | return id, err 70 | } 71 | 72 | func UpdateGroup(g *Group) (int64, error) { 73 | if err := checkGroup(g); err != nil { 74 | return 0, err 75 | } 76 | o := orm.NewOrm() 77 | group := make(orm.Params) 78 | if len(g.Name) > 0 { 79 | group["Name"] = g.Name 80 | } 81 | if len(g.Title) > 0 { 82 | group["Title"] = g.Title 83 | } 84 | if g.Status != 0 { 85 | group["Status"] = g.Status 86 | } 87 | if g.Sort != 0 { 88 | group["Sort"] = g.Sort 89 | } 90 | if len(group) == 0 { 91 | return 0, errors.New("update field is empty") 92 | } 93 | var table Group 94 | num, err := o.QueryTable(table).Filter("Id", g.Id).Update(group) 95 | return num, err 96 | } 97 | 98 | func DelGroupById(Id int64) (int64, error) { 99 | o := orm.NewOrm() 100 | status, err := o.Delete(&Group{Id: Id}) 101 | return status, err 102 | } 103 | 104 | func GroupList() (groups []orm.Params) { 105 | o := orm.NewOrm() 106 | group := new(Group) 107 | qs := o.QueryTable(group) 108 | qs.Values(&groups, "id", "title") 109 | return groups 110 | } 111 | --------------------------------------------------------------------------------