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 = {};
var zNodes = [
{name : '系统管理'},
{name : '用户管理', children : [{name : '用户添加'}, {name : '用户修改'}]},
{name : '权限管理'}
];
$.fn.zTree.init($("#ztree1"), setting, zNodes);
2、使用简单json数据构造ztree
var setting2 = {
data : {
simpleData : {
enable : true
}
}
};
var zNodes2 = [
{id : '1', pId : '0', name : '系统管理'},
{id : '2', pId : '0', name : '用户管理'},
{id : '21', pId : '2', name : '用户添加'},
{id : '22', pId : '2', name : '用户修改'},
{id : '3', pId : '0', name : '权限管理'}
];
$.fn.zTree.init($("#ztree2"), setting2, zNodes2);
3、发送ajax请求获取菜单数据构造ztree
var setting3 = {
data : {
simpleData : {
enable : true
}
}
};
var url = "${pageContext.request.contextPath}/json/menu.json";
$.post(url, {}, function(data) {
$.fn.zTree.init($("#ztree3"), setting3, data);
}, 'json');
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 id="mm">
<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) {
$('#editStaffWindow').window("open");
$('#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 shiro框架调用流程
- 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、项目第十天
- 流程变量(设置、获取)
- 组任务(候选人、候选组)
- 排他网关的使用(常用)
- spring 整合 activiti框架
- 在bos中实现流程定义管理
1.11、项目第十一天
- 流程实例管理(查询流程、查看流程实例运行状态(查询部署id、图片名称、查询坐标))
- 数据同步(将用户和角色数据同步到activiti对应的用户表和组表中去)
- 设计物流配送流程
- 启动物流配送流程
- 查询组任务、拾取组任务
- 查询个人任务、办理个人任务