Github优秀案例开源项目红红火火恍恍惚惚

序:自己写的后台框架开源给大家,仅供学习,不喜勿喷.

2019-07-18  本文已影响2631人  M_SRC

为了快速开发, 我做了这个框架, 可以使用注解开发菜单页面, 风格统一, 也可以单独写页面, 展示独特的内容.
闲话不多说, 先上项目地址和图片, 喜欢的可以下载下来研究研究.
Git地址:https://github.com/huhuanan/m


固定的后台样式, 由于没有美工, 只能先凑合一下了.

简要说明

  1. 后台框架是自己写的, 没有使用目前流行的框架, 仅使用了一些工具jar.
  2. 框架是比较老旧的WebProject模式, 个人觉得比较通俗易懂.
  3. 后台框架是JAVA语言, 仅支持一个Mysql数据库.
  4. 使用的开发工具是MyEclipse CI 2018.8.0
  5. 后台页面是单页面模式, 使用的是iView样式.

先说这么多吧, 文件下载完后开始配置, 让它运行起来看看效果.

1. 文件目录, 建议放到MyEclipse的Workspaces目录下
2. 使用MyEclipse导入项目
3. 项目结构 (导入后需要修改项目jre配置)
4. 配置文件和创建数据库

修改src/dbconfig.properties的数据库链接地址



创建数据库 (不用创建表, 配置table_schema会自动创建表和插入默认数据)

CREATE SCHEMA mdb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
5. 运行

部署运行Tomcat就可以看到效果了
访问http://127.0.0.1/admin
默认 用户名admin 密码123456

框架有很多开发便利的功能


    @ActionFormMeta(title="管理员组信息",
        rows={
            @FormRowMeta(fields={
                @FormFieldMeta(field = "model.oid", type = FormFieldType.HIDDEN),
                @FormFieldMeta(title="名称",field="model.name",type=FormFieldType.TEXT,hint="请输入名称",span=16),
                @FormFieldMeta(title="排序",titleWidth=80,field="model.sort",type=FormFieldType.INT,hint="请输入排序",span=8)
            }),
            @FormRowMeta(fields={@FormFieldMeta(title="描述", field = "model.description", type = FormFieldType.TEXTAREA,rows=5,hint="请输入描述")})
        },
        buttons={
            @FormButtonMeta(title = "保存", url = "action/manageAdminGroup/doSave",success=FormSuccessMethod.REFRESH_OTHER)
        },
        others={
            @FormOtherMeta(title = "菜单权限", url = "action/manageGroupMenuLink/toList?method=groupMenuLinkData",
                linkField=@LinkFieldMeta(field="params[adminGroup.oid]",valueField="model.oid")
            )
        }
    )
    public ActionResult toEdit() throws Exception{
        if(null!=model&&!StringUtil.isSpace(model.getOid())){
            model=ModelQueryUtil.getModel(model);
        }
        return getFormResult(this,ActionFormPage.EDIT);
    }
    /**
     * 查询列表
     * @return
     */
    @ActionTableMeta(dataUrl = "action/manageAdminGroup/adminGroupData",
            modelClass="manage.model.AdminGroup",
            searchField="name,description",searchHint="请输入名称或者描述",
        cols = { 
            @ActionTableColMeta(field = "oid", title = "",type=TableColType.INDEX),
            @ActionTableColMeta(field = "name", title = "名称", width=130,sort=true,initSort=TableColSort.DESC),
            @ActionTableColMeta(field = "description", title = "描述", width=200),
            @ActionTableColMeta(field = "sort", title = "排序", width=100,align="left"),
            @ActionTableColMeta(field = "status", title = "状态",type=TableColType.STATUS,power="manage_system_power",dictionaryType="status",align="center"),
            @ActionTableColMeta(field = "oid",title="操作",width=220,align="center",buttons={
                @ButtonMeta(title="修改", event = ButtonEvent.MODAL,modalWidth=700, url = "action/manageAdminGroup/toEdit",
                    params={@ParamMeta(name = "model.oid", field="oid")},success=SuccessMethod.REFRESH,style=ButtonStyle.NORMAL,
                    power="manage_system_power"
                ),
                @ButtonMeta(title="菜单权限", event = ButtonEvent.MODAL,modalWidth=800,  url = "action/manageGroupMenuLink/setGroupMenuPage", 
                    params={@ParamMeta(name = "model.adminGroup.oid", field="oid")}, style=ButtonStyle.NONE,
                    power="manage_system_power"
                ),
                @ButtonMeta(title="操作权限", event = ButtonEvent.MODAL,modalWidth=350,  url = "action/manageAdminGroupPower/setAdminGroupPowerPage", 
                    params={@ParamMeta(name = "model.adminGroup.oid", field="oid")}, style=ButtonStyle.NONE,success=SuccessMethod.MUST_REFRESH,
                    power="manage_system_power"
                ),
            })
        },
        querys = {
            @QueryMeta(field = "name", name = "名称", type = QueryType.TEXT, hint="请输入名称", likeMode=true),
            @QueryMeta(field = "description", name = "描述", type = QueryType.TEXT, hint="请输入描述", likeMode=true)
        },
        buttons = {
            @ButtonMeta(title="新增", event = ButtonEvent.MODAL,modalWidth=700,  url = "action/manageAdminGroup/toEdit", 
                success=SuccessMethod.REFRESH,style=ButtonStyle.NORMAL,
                power="manage_system_power"
            )
        }
    )
    public JSONMessage adminGroupData(){
        return getListDataResult(null);
    }

点筛选可以筛选查询


    @DocumentMeta(
        method=@DocumentMethodMeta(title="获取数据字典",description=""),
        params={@DocumentParamMeta(name="model.type",description="数据字典类型",type=FieldType.STRING,length=20,notnull=true)
        }
    )
    public JSONMessage getDict(){
        JSONMessage result=new JSONMessage();
        try {
            result.push("list", DictionaryUtil.get(model.getType()));
            result.push("code", 0);
        } catch (Exception e) {
            result.push("code", 1);
            result.push("msg", e.getMessage());
            if(RuntimeData.getDebug()) e.printStackTrace();
        }
        return result;
    }

数据库操作可根据对象来执行

//插入一个model  还有更新和删除 
ModelUpdateUtil.insertModel(model);
//更新指定属性   还有根据条件更新一批数据
ModelUpdateUtil.updateModel(model,new String[]{"name","value","sort"});
//根据model的注解检查model属性  还有根据属性组合判断唯一的方法
ModelCheckUtil.check(model);
//查询返回List<model>
ModelQueryList.getModelList(DictionaryData.class, 
    new String[]{"oid","name"}, 
    null, 
    QueryCondition.eq("status", "0")
);

还要很多很多功能, 以后会慢慢讲解, 有兴趣的可以关注我, 或者加我微信.

想了解哪些方面的功能, 也可以加我微信, 我会提前编辑文章.
后续我会在源码上做个小例子, 让大家可以更快的了解开发的便利.

上一篇 下一篇

猜你喜欢

热点阅读