day60_BOS项目_12

1、项目复习

1.1、项目第一天

  • 1、项目概述
  • 2、搭建开发环境(数据库、web项目、svn)
  • 3、jQuery EasyUI
    • 详解如下:
    1、layout 页面布局
    2、accordion 折叠面板
        <div class="easyui-accordion" data-options="fit:true">
            <div title="面板一">test1</div>
            <div title="面板二">test2</div>
        </div>
    3、tabs 选项卡面板
        <div class="easyui-tabs" data-options="fit:true">
            <div title="面板一"></div>
            <div titlte="面板二"></div>
        </div>
  • 4、jQuery ztree 树形插件
  • 详解如下:
    1、使用标准json数据构造ztree
        var setting = {};
        // 构造json数据
        var zNodes = [ 
            // 每个json对象对应一个节点数据
            {name : '系统管理'}, 
            // 每个json对象对应一个节点数据
            {name : '用户管理'children : [{name : '用户添加'}, {name : '用户修改'}]}, 
            // 每个json对象对应一个节点数据
            {name : '权限管理'
        ];
        // 创建ztree
        $.fn.zTree.init($("#ztree1"), setting, zNodes);
    2、使用简单json数据构造ztree
        var setting2 = {
            data : {
                simpleData : {
                    // 启用简单json数据描述节点数据 
                    enable : true
                }
            }
        }; 
        // 构造json数据
        var zNodes2 = [ 
            // 每个json对象对应一个节点数据
            {id : '1'pId : '0'name : '系统管理'},
            // 每个json对象对应一个节点数据
            {id : '2'pId : '0'name : '用户管理'},
            {id : '21'pId : '2'name : '用户添加'},
            {id : '22'pId : '2'name : '用户修改'},
            // 每个json对象对应一个节点数据
            {id : '3'pId : '0'name : '权限管理'}
        ];
        // 创建ztree
        $.fn.zTree.init($("#ztree2"), setting2, zNodes2);
    3、发送ajax请求获取菜单数据构造ztree
        var setting3 = {
            data : {
                simpleData : {
                    // 启用简单json数据描述节点数据 
                    enable : true
                }
            }
        };
        // 发送ajax请求获取json数据构造ztree
        var url = "${pageContext.request.contextPath}/json/menu.json";
        $.post(url, {}, function(data{
            // 创建ztree
            $.fn.zTree.init($("#ztree3"), setting3, data);
        }, 'json');
  • 5、PD使用,设计数据模型

1.2、项目第二天

  • 设计BaseDaoBaseAction
  • 设计BaseAction
  • 实现用户登录功能和退出功能
  • jQuery EasyUI 的 messager 消息提示控件
    • 1、alert 消息提示框
    • 2、show 消息提示框(在屏幕的右下角显示一个消息窗口)
    • 3、confirm 消息确认框
    • 4、prompt 带有输入功能的消息确认框
    • 5、progress 显示进度提示框
  • jQuery EasyUI 的 menubutton 菜单按钮
    示例代码如下:
    <a data-options="iconCls:'icon-help',menu:'#mm'" class="easyui-menubutton">控制面板</a>
    <!-- 使用div制作下拉菜单选项 -->
    <div id="mm">
        <!-- 使用子div制作具体的一个选项 -->
        <div onclick="alert(111)" data-options="iconCls:'icon-edit'">修改密码</div>
        <div>联系管理员</div>
        <div class="menu-sep"></div>
        <div>退出系统</div>
    </div>
  • 自定义struts2拦截器,实现用户未登录时自动跳转到登录页面
  • 基于ajax实现修改密码功能
    • 1、window创建使用 --> easyui-window
    • 2、EasyUI的validatebox
    • 3、发送ajax提交修改后的密码

1.3、项目第三天

  • 整体分析基础设置部分需求
  • 实现取派员添加
    • 1、扩展手机号校验规则 --> 使用正则表达式校验手机号
    • 2、为保存按钮绑定事件
  • jQuery EasyUI 的 datagrid 数据网格控件 的使用方式
    • 1、将静态HTML代码渲染成datagrid样式
    • 2、由datagrid发送ajax请求获取服务端json数据,构造datagrid
    • 3、使用EasyUI提供的API(js代码)动态构造一个datagrid
  • 使用datagrid实现取派员分页查询
  • 取派员批量删除(逻辑删除)
  • 取派员修改功能
    • 1、使用datagrid行双击事件处理函数onDblClickRow,弹出修改窗口,并且回显数据(注意:页面上本来就有数据,直接回显即可,就不用去数据库查了)
      示例代码如下:
    rowIndex:被双击行的索引,从 0 开始
    rowData:被双击行对应的记录(对应的数据)
    // 当用户双击一行时触发该事件
    function doDblClickRow(rowIndex, rowData// rowData => id:xxx,name:xxx,...
        // 打开修改取派员窗口
        $('#editStaffWindow').window("open");
        // 回显数据
        // $("input[name=name]").val(rowData.name); // 显示姓名
        $('#editStaffForm').form("load", rowData);  // 显示整个表格的数据
    }

1.4、项目第四天

  • 实现区域批量导入功能
    • 1、jQuery OCUpload(一键上传插件)
    • 2、apache POI 解析Excel文件内容
    • 3、使用 pinyin4J 生成简码和城市编码
  • 实现区域的分页查询,重构分页代码(将Action中的属性和方法统一提取到BaseAction中)
  • 实现分区的添加功能
    • 1、jQuery EasyUI 的combobox下拉框 使用(2种方式)
  • 解决区域分页查询的bug
  • 实现分区分页查询(没有过滤条件)
  • 实现分区组合条件分页查询
  • 分区数据导出功能
    • 1、查询所有数据
    • 2、使用POI创建一个Excel文件,并且写入数据
    • 3、文件下载

1.5、项目第五天

  • 定区添加功能
    • 1、使用combobox下拉框展示取派员
    • 2、使用datagrid数据表格展示分区数据
  • 定区分页查询
  • hessian入门 --> 远程调用技术
    • httpClient --> 模拟浏览器效果(淘淘商城大量使用)
    • dubbo --> 阿里巴巴,后期自学内容
  • 基于hessian实现定区关联客户

1.6、项目第六天

  • 业务受理分析(业务通知单、工单、工作单)
  • 实现业务受理、自动分单业务功能
  • 数据网格datagrid的编辑功能的使用
    • onAfterEdit:function(rowIndex,rowData,changes) { // 数据网格的事件:当前行结束编辑状态时触发 }
  • 基于数据网格datagrid编辑功能实现工作单快速录入功能

1.7、项目第七天

  • 权限概述(认证、授权)
  • 常见的权限控制的方式(URL、方法注解)
  • 权限数据模型(权限表、角色表、用户表、角色权限关系表、用户角色关系表)
  • apache hiro框架调用流程
    • shiro的程序运行流程:Application Code --> Subject --> Shiro SecurityManager --> Realm
  • 将shiro引入bos项目进行认证和授权
  • shiro提供的权限控制方式
    • 1、URL拦截
    • 2、方法注解
    • 3、页面标签(shiro标签库)
    • 4、代码级别(编码方式)

1.8、项目第八天

  • 权限管理(初始化权限(通过sql脚本)、查询、添加)
  • 角色管理(添加、查询)
  • 用户管理(添加、查询)
  • 修改自定义BOSRealm中的授权方法,通过查询数据库获得登录人的权限
  • 使用ehcache 缓存权限数据
  • 系统的左侧菜单根据当前登录用户的权限动态展示

1.9、项目第九天

  • 工作流概念
  • 安装eclipse插件 --> 流程设计器
  • activiti框架底层有数据库支持,对应23张表
  • 创建+了解23张表
    • 1、act_re_*
    • 2、act_ru_*
    • 3、act_id_*
    • 4、act_hi_*
    • 5、act_ge_*
  • 使用activiti的API操作流程
    • 1、部署流程定义
    • 2、查询流程定义
    • 3、查看png图片
    • 4、启动流程实例
    • 5、查询流程实例
    • 6、查询组任务
    • 7、拾取组任务
    • 8、查询个人任务
    • 9、办理个人任务

1.10、项目第十天

  • 流程变量(设置、获取)
  • 组任务(候选人、候选组)
    • 1、查询组任务
    • 2、拾取组任务
  • 排他网关的使用(常用)
  • spring 整合 activiti框架
  • 在bos中实现流程定义管理

1.11、项目第十一天

  • 流程实例管理(查询流程、查看流程实例运行状态(查询部署id、图片名称、查询坐标))
  • 数据同步(将用户和角色数据同步到activiti对应的用户表和组表中去)
  • 设计物流配送流程
  • 启动物流配送流程
  • 查询组任务、拾取组任务
  • 查询个人任务、办理个人任务

猜你喜欢

转载自www.cnblogs.com/chenmingjun/p/9817415.html