大数据正式41之汇通项目
大数据正式41之汇通项目
先睹为快
登录页面
系统管理
部门管理
用户管理
角色管理
模块管理
数据库
数据库
表展示
总设计
具体结构
部门表
模块表
角色-模块表
角色表
角色-用户表
用户信息表
用户表
具体sql
#
/*
SQLyog Ultimate - MySQL GUI v8.2
MySQL - 5.6.24 : Database - ht
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`ht` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `ht`;
/*Table structure for table `dept_p` */
DROP TABLE IF EXISTS `dept_p`;
CREATE TABLE `dept_p` (
`DEPT_ID` varchar(40) NOT NULL,
`PARENT_ID` varchar(40) DEFAULT NULL COMMENT '自关联,多对一',
`DEPT_NAME` varchar(50) DEFAULT NULL,
`STATE` int(11) DEFAULT NULL COMMENT '1启用0停用',
`CREATE_BY` varchar(40) DEFAULT NULL,
`CREATE_DEPT` varchar(40) DEFAULT NULL,
`CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`UPDATE_BY` varchar(40) DEFAULT NULL,
`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`DEPT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `dept_p` */
insert into `dept_p`(`DEPT_ID`,`PARENT_ID`,`DEPT_NAME`,`STATE`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('0','--无上级--','551杀神俱乐部',1,NULL,NULL,'2018-01-08 12:52:39',NULL,'0000-00-00 00:00:00'),('01','0','法师部',1,NULL,NULL,'2018-01-08 12:52:59',NULL,'0000-00-00 00:00:00'),('02','0','打野部',1,NULL,NULL,'2018-01-08 12:53:19',NULL,'0000-00-00 00:00:00'),('03','0','射手部',1,NULL,NULL,'2018-01-08 12:54:10',NULL,'0000-00-00 00:00:00');
/*Table structure for table `module_p` */
DROP TABLE IF EXISTS `module_p`;
CREATE TABLE `module_p` (
`MODULE_ID` varchar(40) NOT NULL,
`PARENT_ID` varchar(40) DEFAULT NULL COMMENT '父模块ID',
`NAME` varchar(100) DEFAULT NULL,
`CTYPE` int(11) DEFAULT NULL COMMENT '1主菜单/2左侧菜单/3按钮',
`STATE` int(11) DEFAULT NULL COMMENT '1启用0停用',
`ORDER_NO` int(11) DEFAULT NULL,
`REMARK` varchar(100) DEFAULT NULL,
`CREATE_BY` varchar(40) DEFAULT NULL,
`CREATE_DEPT` varchar(40) DEFAULT NULL,
`CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`UPDATE_BY` varchar(40) DEFAULT NULL,
`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`MODULE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `module_p` */
insert into `module_p`(`MODULE_ID`,`PARENT_ID`,`NAME`,`CTYPE`,`STATE`,`ORDER_NO`,`REMARK`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('048bc420-b63b-4c46-a7f4-67eb2915d441','b152749f-af17-42c4-96fb-028041e6c442','历史购销合同查询',NULL,1,NULL,'货运管理',NULL,NULL,'2018-01-09 18:44:29',NULL,'0000-00-00 00:00:00'),('1caefd74-d26a-44c5-a1bc-91fa18ff753f','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','合同查询',NULL,1,NULL,'货运管理-合同查询',NULL,NULL,'2018-01-09 18:41:51',NULL,'0000-00-00 00:00:00'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','b152749f-af17-42c4-96fb-028041e6c442','用户管理',NULL,1,NULL,'系统管理-用户管理',NULL,NULL,'2018-01-08 13:38:51',NULL,'0000-00-00 00:00:00'),('317d4c8a-5079-4e79-b324-c4d0f0072d48','453f46e8-f7cb-4621-afac-64185169c7d0','系统代码',NULL,1,NULL,'基础信息',NULL,NULL,'2018-01-09 18:45:13',NULL,'0000-00-00 00:00:00'),('433c572b-0987-4e5c-a382-8c6a68262fa7','b152749f-af17-42c4-96fb-028041e6c442','角色管理',NULL,1,NULL,'系统管理-角色管理',NULL,NULL,'2018-01-08 13:39:19',NULL,'0000-00-00 00:00:00'),('453f46e8-f7cb-4621-afac-64185169c7d0','--无上级--','基础信息',NULL,1,NULL,'基础信息模块',NULL,NULL,'2018-01-08 13:43:21',NULL,'0000-00-00 00:00:00'),('50989970-a6c2-4bab-b131-9810e8194dcf','b152749f-af17-42c4-96fb-028041e6c442','部门管理',NULL,1,NULL,'系统管理-部门管理',NULL,NULL,'2018-01-08 13:37:48',NULL,'0000-00-00 00:00:00'),('5a8b2fb9-8f1c-4103-8cc8-0a2fe74d0870','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','出口报运',NULL,1,NULL,'货运管理-出口报运',NULL,NULL,'2018-01-09 18:42:43',NULL,'0000-00-00 00:00:00'),('6c49a9bc-6406-4f40-91d0-ff38cafaaf4d','b152749f-af17-42c4-96fb-028041e6c442','模块管理',NULL,1,NULL,'系统管理-模块管理',NULL,NULL,'2018-01-08 13:39:52',NULL,'0000-00-00 00:00:00'),('89f15873-e069-418b-b53a-8f41ddae30b0','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','出口跟踪',NULL,1,NULL,'货运管理-出口跟踪',NULL,NULL,'2018-01-09 18:43:16',NULL,'0000-00-00 00:00:00'),('954c86cd-475a-4baf-a70d-83c499ecc94e','453f46e8-f7cb-4621-afac-64185169c7d0','厂家信息',NULL,1,NULL,'基础信息-厂家信息',NULL,NULL,'2018-01-09 18:45:58',NULL,'0000-00-00 00:00:00'),('99bd1061-798e-4010-8da3-329575df5d3f','9e98ed09-a136-45b6-acda-2744b13bfa41','我的常用功能',NULL,1,NULL,'系统首页-我的常用功能',NULL,NULL,'2018-01-09 18:32:21',NULL,'0000-00-00 00:00:00'),('9e98ed09-a136-45b6-acda-2744b13bfa41','--无上级--','系统首页',NULL,1,NULL,'系统首页模块',NULL,NULL,'2018-01-08 13:43:35',NULL,'0000-00-00 00:00:00'),('a12c467b-55f4-4f54-9a93-8e2d8e279494','9e98ed09-a136-45b6-acda-2744b13bfa41','用户设定',NULL,1,NULL,'系统首页-用户设定',NULL,NULL,'2018-01-09 18:33:02',NULL,'0000-00-00 00:00:00'),('b152749f-af17-42c4-96fb-028041e6c442','--无上级--','系统管理',NULL,1,NULL,'系统管理模块',NULL,NULL,'2018-01-08 13:32:34',NULL,'0000-00-00 00:00:00'),('ecf5560d-9f0b-43e2-afc5-0e6814814752','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','出货表',NULL,1,NULL,'货运管理-出货表',NULL,NULL,'2018-01-09 18:41:14',NULL,'0000-00-00 00:00:00'),('f15a824d-dd8c-4f3e-bc96-3e8a99d011ad','9e98ed09-a136-45b6-acda-2744b13bfa41','个人工作台',NULL,1,NULL,'系统首页-个人工作台',NULL,NULL,'2018-01-09 18:31:35',NULL,'0000-00-00 00:00:00'),('f9ded96d-aafa-46b2-b4c3-efe18336f5e4','--无上级--','货运管理',NULL,1,NULL,'货运管理模块',NULL,NULL,'2018-01-08 13:31:34',NULL,'0000-00-00 00:00:00'),('fbde3d1a-ee83-4070-868c-ad7d2d3af40f','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','购销合同',NULL,1,NULL,'货运管理-购销合同',NULL,NULL,'2018-01-09 18:40:38',NULL,'0000-00-00 00:00:00');
/*Table structure for table `role_module_p` */
DROP TABLE IF EXISTS `role_module_p`;
CREATE TABLE `role_module_p` (
`MODULE_ID` varchar(40) DEFAULT NULL,
`ROLE_ID` varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `role_module_p` */
insert into `role_module_p`(`MODULE_ID`,`ROLE_ID`) values ('453f46e8-f7cb-4621-afac-64185169c7d0','3'),('9e98ed09-a136-45b6-acda-2744b13bfa41','3'),('b152749f-af17-42c4-96fb-028041e6c442','3'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','3'),('433c572b-0987-4e5c-a382-8c6a68262fa7','3'),('50989970-a6c2-4bab-b131-9810e8194dcf','3'),('6c49a9bc-6406-4f40-91d0-ff38cafaaf4d','3'),('f9ded96d-aafa-46b2-b4c3-efe18336f5e4','3'),('453f46e8-f7cb-4621-afac-64185169c7d0','1'),('9e98ed09-a136-45b6-acda-2744b13bfa41','1'),('b152749f-af17-42c4-96fb-028041e6c442','1'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','1'),('f9ded96d-aafa-46b2-b4c3-efe18336f5e4','1'),('453f46e8-f7cb-4621-afac-64185169c7d0','2'),('9e98ed09-a136-45b6-acda-2744b13bfa41','2'),('b152749f-af17-42c4-96fb-028041e6c442','2'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','2');
/*Table structure for table `role_p` */
DROP TABLE IF EXISTS `role_p`;
CREATE TABLE `role_p` (
`ROLE_ID` varchar(40) NOT NULL,
`NAME` varchar(30) DEFAULT NULL,
`REMARKS` varchar(100) DEFAULT NULL,
`ORDER_NO` int(11) DEFAULT NULL,
`CREATE_BY` varchar(40) DEFAULT NULL,
`CREATE_DEPT` varchar(40) DEFAULT NULL,
`CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`UPDATE_BY` varchar(40) DEFAULT NULL,
`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`ROLE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `role_p` */
insert into `role_p`(`ROLE_ID`,`NAME`,`REMARKS`,`ORDER_NO`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('1','输出型法师','以一当十',NULL,'白鹏',NULL,'2018-01-08 13:07:16',NULL,'0000-00-00 00:00:00'),('2','打野刺客','专杀脆皮',NULL,'白鹏',NULL,'2018-01-08 13:07:56',NULL,'0000-00-00 00:00:00'),('3','CEO','公司ceo',NULL,'白鹏',NULL,'2018-01-09 18:18:29',NULL,'0000-00-00 00:00:00');
/*Table structure for table `role_user_p` */
DROP TABLE IF EXISTS `role_user_p`;
CREATE TABLE `role_user_p` (
`ROLE_ID` varchar(40) DEFAULT NULL,
`USER_ID` varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `role_user_p` */
insert into `role_user_p`(`ROLE_ID`,`USER_ID`) values ('1','1'),('2','2'),('3','666');
/*Table structure for table `user_info_p` */
DROP TABLE IF EXISTS `user_info_p`;
CREATE TABLE `user_info_p` (
`USER_INFO_ID` varchar(40) NOT NULL,
`NAME` varchar(20) DEFAULT NULL,
`CARD_NO` varchar(20) DEFAULT NULL,
`MANAGER_ID` varchar(40) DEFAULT NULL,
`JOIN_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`SALARY` decimal(8,2) DEFAULT NULL,
`BIRTHDAY` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`GENDER` char(1) DEFAULT NULL,
`STATION` varchar(20) DEFAULT NULL,
`TELEPHONE` varchar(100) DEFAULT NULL,
`USER_LEVEL` char(1) DEFAULT NULL COMMENT '4-普通用户 3-部门经理 2-副总 1-总经理 0-超级管理员',
`REMARK` varchar(600) DEFAULT NULL,
`ORDER_NO` int(11) DEFAULT NULL,
`CREATE_BY` varchar(40) DEFAULT NULL COMMENT '登录人编号',
`CREATE_DEPT` varchar(40) DEFAULT NULL COMMENT '登录人所属部门编号',
`CREATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`UPDATE_BY` varchar(40) DEFAULT NULL,
`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`USER_INFO_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `user_info_p` */
insert into `user_info_p`(`USER_INFO_ID`,`NAME`,`CARD_NO`,`MANAGER_ID`,`JOIN_DATE`,`SALARY`,`BIRTHDAY`,`GENDER`,`STATION`,`TELEPHONE`,`USER_LEVEL`,`REMARK`,`ORDER_NO`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('1','安琪拉','140108199412301212','--无--','2018-01-08 13:01:06','88888.00','1994-12-30 00:00:00','女','法输出','1104561823','4','输出型选手',1,NULL,NULL,'0000-00-00 00:00:00','白鹏','2018-01-08 00:00:00'),('2','李白','140108199512301212','--无--','2018-01-08 13:06:15','66666.00','1995-12-30 00:00:00','男','刺客','1141600388','4','专杀脆皮',2,NULL,NULL,'0000-00-00 00:00:00','白鹏','2018-01-08 00:00:00'),('4','孙尚香','1401081992321','-1','2018-01-09 10:08:04','88866.00','2018-01-09 10:08:04','女','射手输出','1353456687','4','射手超强输出',4,NULL,NULL,'0000-00-00 00:00:00',NULL,'0000-00-00 00:00:00'),('666','白鹏','140108199412306666','--无--','2018-01-09 18:51:30','65535.00','2018-01-09 00:00:00','男','CEO','15034031272','0','管理所有',666,NULL,NULL,'0000-00-00 00:00:00','白鹏','2018-01-09 00:00:00');
/*Table structure for table `user_p` */
DROP TABLE IF EXISTS `user_p`;
CREATE TABLE `user_p` (
`USER_ID` varchar(40) NOT NULL,
`DEPT_ID` varchar(40) DEFAULT NULL,
`USERNAME` varchar(50) DEFAULT NULL,
`PASSWORD` varchar(64) DEFAULT NULL,
`STATE` int(11) DEFAULT NULL COMMENT '1启用0停用',
`CREATE_BY` varchar(40) DEFAULT NULL,
`CREATE_DEPT` varchar(40) DEFAULT NULL,
`CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`UPDATE_BY` varchar(40) DEFAULT NULL,
`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `user_p` */
insert into `user_p`(`USER_ID`,`DEPT_ID`,`USERNAME`,`PASSWORD`,`STATE`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('1','01','anqila','573b1ca71b2cd0a8793cb31bf4c41721',1,'白鹏',NULL,'2018-01-09 11:46:50',NULL,'0000-00-00 00:00:00'),('2','02','libai','3e187c08c33ac48153b6b99cc5493a06',1,'白鹏',NULL,'2018-01-09 11:47:11',NULL,'0000-00-00 00:00:00'),('4','03','sunshangxiang','2b4264aaf551aacf93e734ba25356cbd',1,'白鹏',NULL,'2018-01-09 10:08:04',NULL,'0000-00-00 00:00:00'),('666','0','baipeng','82e873b1b7af77e9078f9989d13dea05',1,'白鹏',NULL,'2018-01-09 18:51:30',NULL,'0000-00-00 00:00:00');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
项目结构
关键代码
main
java
com
peng
controller
- DeptController
- HomeController
- LoginController
- ModuleController
- RoleController
- UserController
mapper
- DeptMapper
- ModuleMapper
- RoleMapper
- UserInfoMapper
- UserMapper
pojo
- BaseEntity
- Dept
- Module
- Role
- User
- UserInfo
service
- DeptService
- DeptServiceImpl
- ModuleService
- ModuleServiceImpl
- RoleService
- RoleServiceImpl
- UserInfoService
- UserInfoServiceImpl
- UserService
- UserServiceImpl
shiro
AuthMatcher
#
package com.peng.shiro;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authc.credential.SimpleCredentialsMatcher;
import org.apache.shiro.crypto.hash.Md5Hash;
/**
* 加密
*
* @author Administrator
*
*/
public class AuthMatcher extends SimpleCredentialsMatcher {
// 对原材料的密码进行加密
@Override
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
// 对原材的密码进行加密
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
String password = String.valueOf(upToken.getPassword());
Md5Hash m5 = new Md5Hash(password, upToken.getUsername(), 3);
upToken.setPassword(m5.toString().toCharArray());
return super.doCredentialsMatch(upToken, info);
}
}
AuthRealm
#
package com.peng.shiro;
import java.util.List;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.SimpleAccountRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.peng.pojo.User;
import com.peng.service.UserService;
/**
* 原材料
*
* @author Administrator
*
*/
public class AuthRealm extends SimpleAccountRealm {
@Autowired
@Qualifier("userService")
private UserService userService;
// 登录原材料
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
// 需要给安全中心提供登录校验的原材料【用户登录的信息】【正确的信息(数据库中的数据)】
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
// 得到正确信息
User user = userService.findByUsername(upToken.getUsername());
// 登录的原材料信息[principal正确信息 credentials用户密码 realName材料类的名称]
AuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getPassword(), this.getName());
return info;
}
// 权限材料
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
// 真正的用户
User user = (User) principals.getPrimaryPrincipal();
List<String> user_permissions = userService.findModuleNamesByUserId(user.getUserId());
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.addStringPermissions(user_permissions);
return info;
}
}
resourse
mybatis
mappers
- DeptMapper.xml
- ModuleMapper.xml
- RoleMapper.xml
- userInfoMapper.xml
UserMapper.xml
#
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.peng.mapper.UserMapper">
<!-- 查询所有的用户 -->
<resultMap type="User" id="userRM" autoMapping="true">
<id column="user_id" property="userId"></id>
<association property="userInfo" javaType="UserInfo">
<id column="user_info_id" property="userInfoId"></id>
<result column="name" property="name"></result>
<result column="card_no" property="cardNo"></result>
<result column="join_date" property="joinDate"></result>
<result column="salary" property="salary"></result>
<result column="birthday" property="birthday"></result>
<result column="gender" property="gender"></result>
<result column="station" property="station"></result>
<result column="telephone" property="telephone"></result>
<result column="user_level" property="userLevel"></result>
<result column="remark" property="remark"></result>
<result column="order_no" property="orderNo"></result>
<result column="create_by" property="createBy"></result>
<result column="create_dept" property="createDept"></result>
<result column="create_time" property="createTime"></result>
<result column="update_by" property="updateBy"></result>
<result column="update_time" property="updateTime"></result>
<association property="managerUserInfo" javaType="UserInfo">
<id column="m_id" property="userInfoId"></id>
<result column="m_name" property="name"></result>
</association>
</association>
<association property="dept" javaType="Dept">
<id column="d_id" property="deptId"></id>
<result column="dept_name" property="deptName"></result>
</association>
</resultMap>
<!-- 查询所有用户信息 -->
<select id="findAll" resultMap="userRM">
SELECT * FROM
(SELECT *FROM
(SELECT user_id,dept_id,username,PASSWORD,state FROM user_p) u
LEFT
JOIN
(SELECT * FROM
user_info_p uip1
LEFT JOIN
(SELECT user_info_id
m_id,NAME m_name FROM user_info_p)uip2
ON uip1.manager_id=uip2.m_id) ui
ON u.user_id=ui.user_info_id) uii
LEFT JOIN
(SELECT dept_id
d_id,dept_name FROM dept_p) dp
ON uii.dept_id=dp.d_id
</select>
<!-- 通过id更改状态 :这里的参数deptIds直接写在collection -->
<update id="changeState">
update user_p set state=#{state} where user_id in
<foreach collection="userIds" item="id" open="(" close=")"
separator=",">#{id}
</foreach>
</update>
<!-- 批量删除user:记得把该user对应的userInfo信息也删除掉 -->
<delete id="deleteUserByIds">
delete from user_p where user_id in
<foreach collection="array" item="id" open="(" close=")"
separator=",">#{id}
</foreach>
</delete>
<!-- 保存用户信息 -->
<insert id="saveUser">
INSERT INTO user_p
(user_id,dept_id,username,PASSWORD,state,create_by)
VALUES(#{userId},#{dept.deptId},#{username},#{password},#{state},#{createBy})
</insert>
<!-- 查询单个用户信息 -->
<select id="findOneById" resultMap="userRM">
select * from(SELECT * FROM
(SELECT *FROM
(SELECT user_id,dept_id,username,PASSWORD,state FROM
user_p) u
LEFT
JOIN
(SELECT * FROM
user_info_p uip1
LEFT JOIN
(SELECT
user_info_id
m_id,NAME m_name FROM user_info_p)uip2
ON
uip1.manager_id=uip2.m_id) ui
ON u.user_id=ui.user_info_id) uii
LEFT
JOIN
(SELECT dept_id
d_id,dept_name FROM dept_p) dp
ON
uii.dept_id=dp.d_id) uall where
uall.user_id=#{userId}
</select>
<!-- 更新用户 -->
<update id="updateUser">
update user_p
<set>
<if test="dept.deptId!=null">dept_id=#{dept.deptId},</if>
<if test="username!=null">username=#{username},</if>
<if test="password!=null">password=#{password},</if>
<if test="state!=null">state=#{state},</if>
<if test="updateBy!=null">update_by=#{updateBy},</if>
<if test="updateTime!=null">update_time=#{updateTime},</if>
</set>
where user_id=#{userId}
</update>
<!-- 登录查询 -->
<select id="login" resultType="User">
select * from user_p where
username=#{userName} and password=#{password}
</select>
<!-- 查询单个用户信息 -->
<select id="findByUsername" resultMap="userRM">
select * from(SELECT *
FROM
(SELECT *FROM
(SELECT user_id,dept_id,username,PASSWORD,state FROM
user_p) u
LEFT
JOIN
(SELECT * FROM
user_info_p uip1
LEFT JOIN
(SELECT
user_info_id
m_id,NAME m_name FROM user_info_p)uip2
ON
uip1.manager_id=uip2.m_id) ui
ON u.user_id=ui.user_info_id) uii
LEFT
JOIN
(SELECT dept_id
d_id,dept_name FROM dept_p) dp
ON
uii.dept_id=dp.d_id) uall where
uall.username=#{username}
</select>
<!-- 查询用户所有的权限 -->
<select id="findModuleNamesByUserId" resultType="java.lang.String">
SELECT DISTINCT NAME FROM module_p WHERE module_id IN((SELECT module_id FROM
role_module_p m WHERE role_id IN(SELECT role_id FROM role_user_p WHERE
user_id=#{userId})))
</select>
</mapper>
sqlMapConfig.xml
#
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 开启驼峰自动映射 -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!--二级缓存的总开关 -->
<setting name="cacheEnabled" value="false" />
</settings>
</configuration>
spring
applicationContext.xml
#
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
<!-- 扫描包 -->
<context:component-scan base-package="com.peng"></context:component-scan>
<!-- 扫描注解 -->
<context:annotation-config></context:annotation-config>
<!-- 配置文件 -->
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:/jdbc_config.properties"></property>
</bean>
<!--c3p0 -->
<bean id="c3p0dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="minPoolSize" value="3"></property> <!--最小连接数 -->
<property name="initialPoolSize" value="5"></property> <!-- 初始化连接数 -->
<property name="acquireIncrement" value="3"></property> <!-- 每次增长的个数 -->
</bean>
</beans>
applicationContext-mybatis.xml
#
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
<!-- sql的会话工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 引入数据源 -->
<property name="dataSource" ref="c3p0dataSource"></property>
<!-- 引入核心配置文件 -->
<property name="configLocation" value="classpath:/mybatis/sqlMapConfig.xml"></property>
<!-- 别名包 -->
<property name="typeAliasesPackage" value="com.peng.pojo" />
<!-- 引入映射文件 -->
<property name="mapperLocations" value="classpath:/mybatis/mappers/*.xml"></property>
</bean>
<!-- Mapper接口的扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.peng.mapper"></property>
</bean>
</beans>
applicationContext-shiro.xml
#
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
<!-- 扫描包 -->
<context:component-scan base-package="com.peng"></context:component-scan>
<!-- 扫描注解 -->
<context:annotation-config></context:annotation-config>
<!-- 1.安全管理器 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager ">
<!-- 3.将原材料注入 -->
<property name="realm" ref="authRealm"></property>
</bean>
<!-- 2.原材料 -->
<bean class="com.peng.shiro.AuthRealm" id="authRealm">
<!-- 5.给原材料加密 -->
<property name="credentialsMatcher" ref="authMatcher"></property>
</bean>
<!-- 4.密码加密 -->
<bean class="com.peng.shiro.AuthMatcher" id="authMatcher"></bean>
<!-- 6.权限认证观察器 -->
<bean
class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"
id="advisor">
<!-- 7.注入安全管理器 -->
<property name="securityManager" ref="securityManager"></property>
</bean>
<!-- 8.shiro的过滤工厂 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- 9.注入安全管理器 -->
<property name="securityManager" ref="securityManager"></property>
<!-- 10.登录地址 (注:默认放行) -->
<property name="loginUrl" value="/tologin.action"></property>
<!-- 11.配置拦截和放行的地址 -->
<property name="filterChainDefinitions">
<value>
<!-- anon:放行;authc拦截 -->
<!-- loginUrl默认放行 -->
/login.action=anon
<!-- /*代表所有请求;/**代表所有请求和资源文件 -->
/staticfile/**=anon
<!-- 拦截所有(除去登录相关的和静态资源) -->
/**=authc
</value>
</property>
</bean>
</beans>
applicationContext-transaction.xml
#
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
<!--配置事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="c3p0dataSource"></property>
</bean>
</beans>
applicationContext-mvc-config.xml
#
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
<!-- 扫描包 -->
<context:component-scan base-package="com.peng"></context:component-scan>
<!-- 扫描注解 -->
<context:annotation-config></context:annotation-config>
<!-- mvc注解 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 资源解析器:前后缀 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages">
</property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 文件上传资源解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"></property>
<property name="maxUploadSize" value="10485760000"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
<!-- 处理静态资源被“/”所拦截的问题 -->
<mvc:default-servlet-handler />
</beans>
jdbc_config.properties
#
jdbc.user=root
jdbc.password=root
jdbc.url=jdbc\:mysql\://localhost\:3306/ht?zeroDateTimeBehavior=convertToNull
jdbc.driver=com.mysql.jdbc.Driver
log4j.properties
#
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
webapp
staticfile【静态资源略】
WEB-INF
pages
basicinfo
left.jsp
#
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../baselist.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
</head>
<body id="left_frame">
<div class="PositionFrame_black" id="PositionFrame"></div>
<!-- begin1 -->
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/document_into.png" /></div>
<div class="panel-header">
<div class="panel-title">基础代码管理</div>
<div class="panel-content">
<ul>
<li>
<a href="#" id="aa_1" onclick="linkHighlighted(this)">系统代码</a>
</li>
<li><a href="${ctx}/basicinfo/factoryAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">厂家信息</a></li>
</ul>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
</body>
</html>
* main.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>模块介绍</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
</head>
<body>
<form>
<div class="textbox"></div>
<div class="modelDiv">
<table class="modelTable" cellspacing="1">
<tr>
<td colspan="2" class="modelTitle">基础信息管理模块介绍</td>
</tr>
<tr>
<td colspan="2" class="subModelTitle">基础代码管理</td>
</tr>
<tr>
<td class="model_intro_left" width="169">系统代码:</td>
<td class="model_intro_right" width="81%">统一管理系统中的基础代码, 相比“基础代码”它结果将形成多级树型结构。</td>
</tr>
<tr>
<td colspan="2" class="subModelTitle">基础信息管理</td>
</tr>
<tr>
<td class="model_intro_left">厂家信息:</td>
<td class="model_intro_right">在购销合同中货物和附件中可选择对应的厂家。</td>
</tr>
<tfoot>
<tr>
<td colspan="2" class="tableFooter"></td>
</tr>
</tfoot>
</table>
</div>
</form>
</body>
</html>
* cargo
* left.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../baselist.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
</head>
<body id="left_frame">
<div class="PositionFrame_black" id="PositionFrame"></div>
<!-- begin1 -->
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/cubes.png"/></div>
<div class="panel-header">
<div class="panel-title">货运管理</div>
<div class="panel-content">
<ul>
<li><a href="${ctx}/cargo/contractAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">购销合同</a></li>
<li><a href="${ctx}/cargo/outProductAction_toedit" onclick="linkHighlighted(this)" target="main" id="aa_1">出货表</a></li>
<li><a href="${ctx}/cargo/export/exportAction_contractList" onclick="linkHighlighted(this)" target="main" id="aa_1">合同查询</a></li>
<li><a href="${ctx}/cargo/export/exportAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">出口报运</a></li>
<li><a href="${ctx}/cargo/export/exportAction_ws" onclick="linkHighlighted(this)" target="main" id="aa_1">出口跟踪</a></li>
<li><a href="${ctx}/cargo/export/contractHisAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">历史购销合同查询</a></li>
</ul>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
</body>
</html>
* main.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>模块介绍</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
</head>
<body>
<form>
<div class="textbox"></div>
<div class="modelDiv">
<table class="modelTable" cellspacing="1">
<tr>
<td colspan="2" class="modelTitle">货运模块介绍</td>
</tr>
<tr>
<td class="subModelTitle">购销合同</td>
<td class="model_intro_right">客户签单后,公司向厂家下达购销合同,包括货物的具体要求和交期。合同按不同厂家打印购销合同单,附件单独打印,由公司驻当地销售人员分发到各工厂。<br>
归档:标识彻底完成的项目,方便统计。在报运时也不能在选这些合同。<br>
</td>
</tr>
<tr>
<td class="subModelTitle">出货表</td>
<td class="model_intro_right">根据合同和指定的船期月份,统计当月的出货情况。<br></td>
</tr>
<tr>
<td class="subModelTitle">出口报运单</td>
<td class="model_intro_right">根据购销合同制定出口商品报运单。报运时可以将多个购销合同形成一单报运;也可以只走部分货物。<br>
分批走货:合同可以多个一起报运; 而一个合同可以分多次走货; 根据合同和合同货物的走货状态可以查看合同的走货情况。
<!-- 修改走货状态:1)合同新增货物、修改货物 2)报运货物修改、删除货物、增补货物、删除报运 -->
</td>
</tr>
<tr>
<td class="subModelTitle">HOME装箱单</td>
<td class="model_intro_right">根据出口报运单制定HOME装箱单,先制作HOME装箱单给客户看,客人同意,则直接制定相应装箱单;如有调整,则重新复制修改出口报运单,可能拆成多个报运。<br></td>
</tr>
<tr>
<td class="subModelTitle">装箱单</td>
<td class="model_intro_right">根据出口报运单制定装箱单,填写发票号、发票时间,以及客人等相关信息。<br></td>
</tr>
<tr>
<td class="subModelTitle">委托书</td>
<td class="model_intro_right">根据装箱制定海运或空运委托书。<br></td>
</tr>
<tr>
<td class="subModelTitle">发票</td>
<td class="model_intro_right">根据装箱制定发票。<br></td>
</tr>
<tr>
<td class="subModelTitle" nowrap>财务出口报运单</td>
<td class="model_intro_right">根据报运制定财务出口报运单。<br></td>
</tr>
<tfoot>
<tr>
<td colspan="2" class="tableFooter"></td>
</tr>
</tfoot>
</table>
</div>
</form>
</body>
</html>
* home
* fmain.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
<title>国际物流汇通商贸</title>
</head>
<frameset rows="125,*" name="topFrameset" border="0">
<frame name="top_frame" scrolling="no" target="middleFrameSet" src="title.action">
<frameset cols="202,*" height="100%" name="middle" frameborder="no" border="0" framespacing="0">
<frame name="leftFrame" class="leftFrame" target="main" scrolling="no" src="home/Left.action" />
<frame name="main" class="rightFrame" src="home/Main.action" />
</frameset>
</frameset>
<noframes>
<body>
<p>此网页使用了框架,但您的浏览器不支持框架。</p>
</body>
</noframes>
</html>
* left.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
<script language="javascript" src="${ctx}/staticfile/js/common.js"></script>
<script language="javascript" src="${ctx}/staticfile/js/ajax/setFastMenu.js"></script>
<script language="javascript" src="${ctx}/staticfile/js/pngfix_map.js"></script>
<script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
<script type="text/javascript" src="${ctx}/staticfile/skin/default/js/toggle.js"></script>
<script language="javascript">
$().ready(function(){
$(fastMenu).hide();
//document.getElementById('aa_3').click(); //默认打开我的留言板页面
});
function showMenu( who ){
if(who=="fastMenu"){
$(fastMenu).show();
$(customerMenu).hide();
}else if(who=="customerMenu"){
$(customerMenu).show();
$(fastMenu).hide();
}
}
</script>
</head>
<body id="left_frame">
<div class="PositionFrame_black" id="PositionFrame"></div>
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/user2.png" /></div>
<div class="panel-header">
<div class="panel-title">个人工作台</div>
<div class="panel-content">
<ul>
<li><a href="${ctx}/staticfile/tomain.action?modelName=home" target="main" id="aa_3" onclick="linkHighlighted(this)">我的留言板</a></li>
<li><a href="${ctx}/staticfile/home/workflow/tasklist.action" target="main" id="aa_2" onclick="linkHighlighted(this)">我的代办任务</a></li>
<li><a href="${ctx}/staticfile/baseinfo/leavebill/list.action" target="main" id="aa_1" onclick="linkHighlighted(this)">请假单管理</a></li>
</ul>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/user1_find.png" /></div>
<div class="panel-header">
<div class="panel-title">我的常用功能</div>
<div style="margin-top:5px;"></div>
<!-- 以上为永久固定栏目,以下为活动栏目 -->
<div style="border-bottom:1px dotted #cee1df;">
切换:<a href="#" onmousemove="javascript:showMenu('fastMenu');">快捷菜单</a>
/
<a href="#" onmousemove="javascript:showMenu('customerMenu');">自定义菜单</a>
</div>
<div id="fastMenu">
<div class="panel-content"></div><a href="#" class="DelFastMenu"><font color="gray">清除常用功能列表</font></a>
</div>
<div id="customerMenu">
<div class="FastMenu"><img src="${ctx}/staticfile/skin/default/images/notice.gif" style="margin-right:5px;" border="0" /><font color="gray">您还没定义您的菜单</font></div>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
<!-- begin1 -->
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/businessman2.png" /></div>
<div class="panel-header">
<div class="panel-title">
用户设定
</div>
<div class="panel-content">
<ul>
<li><a href="${ctx}/sysadmin/userAction_toUpdatePassword" id="aa_2" onclick="linkHighlighted(this)" target="main">个人信息修改</a></li>
<li><a href="#" id="aa_2" onclick="linkHighlighted(this)">系统使用反馈</a></li>
</ul>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
<!-- end1 -->
</body>
</html>
* main.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title></title>
<script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
<style>
.curbody{ CURSOR: url(${ctx}/staticfile/images/olmsg/shubiao.ani);background:url(${ctx}/staticfile/images/olmsg/pic738x571.jpg); }
.msgcontent{ width:218px;overflow:hidden;word-break:break-all;padding:10px;font-size:14px;color:#339966;font-family:Tahoma;line-height:180%; }
.msgcontent p{ text-indent:0px;}
.msgcontent ul( margin:0px;}
.msgbackcontent{ width:218px;overflow:hidden;word-break:break-all;padding:10px;font-size:14px;color:#339966;font-family:Tahoma;line-height:180%; }
.msgbackcontent p{ text-indent:0px;}
.msgbackcontent ul( margin:0px;}
li{ text-indent:0px;margin:0px;list-style:default; }
</style>
</head>
<script language="javascript">
//-- 控制层移动start of script -->
var Obj='';
var index=10000;//z-index;
var color='';
var str='';
document.onmouseup=MUp
document.onmousemove=MMove
function MMove(){
if(Obj!=''){
document.all(Obj).style.left=event.x-pX;
document.all(Obj).style.top=event.y-pY;
}
}
function MUp(){
if(Obj!=''){
document.all(Obj).releaseCapture();
Obj='';
}
var srcEle = event.srcElement;
var children = srcEle.children;
if(children.length>0){
children[1].value = "1"; //isChange
children[2].value = event.x-pX;
children[3].value = event.y-pY;
}
}
function MDown(objtd,id){
Obj=id
document.all(Obj).setCapture()
pX = event.x-document.all(Obj).style.pixelLeft;
pY = event.y-document.all(Obj).style.pixelTop;
}
//-- 控制层移动end of script -->
//获得焦点;
function getFocus(obj)
{
if(obj.style.zIndex!=index)
{
index = index + 2;
var idx = index;
obj.style.zIndex=idx;
//obj.nextSibling.style.zIndex=idx-1;
}
}
//针对未已阅的、未回复的、工作任务
function msgrevoke( id ){
if(confirm("是否确定要撤销此条信息?")){
//_Submit("/home/olmsgRevokeAction.do?flag=revoke&id="+id,null,"撤销");
}
}
//需回复的留言
function msgback( id ){
//_Submit("/home/olmsgUpdateAction.do?flag=back&id="+id,null,"回复");
}
function msgupdate( id , flag ){
if(flag=="read"){
if(!confirm("是否确定已阅此条信息?")){
return false;
}
}else if(flag=="accept"){
if(!confirm("是否确定接受此任务?")){
return false;
}
}else if(flag=="fail"){
if(!confirm("是否确定此任务未完成?")){
return false;
}
}else if(flag=="success"){
if(!confirm("是否确定此任务已完成?")){
return false;
}
}else if(flag=="finished"){
if(!confirm("是否确定完成?")){
return false;
}
}
//_Submit("/home/olmsgUpdateAction.do?flag="+flag+"&id="+id,null,"修改");
}
function msgdel( id ){
if(confirm("是否确定要删除此条信息?")){
//_Submit("/home/olmsgDeleteAction.do?delId="+id,null,"删除");
}
}
function msgstate( id , flag ){
if(flag=="read"){
if(!confirm("是否确定已阅此条信息?")){
return false;
}
}else if(flag=="accept"){
if(!confirm("是否确定接受此任务?")){
return false;
}
}else if(flag=="fail"){
if(!confirm("是否确定此任务未完成?")){
return false;
}
}else if(flag=="success"){
if(!confirm("是否确定此任务已完成?")){
return false;
}
}else if(flag=="finished"){
if(!confirm("是否确定完成?")){
return false;
}
}
//_Submit("/home/olmsgStateAction.do?flag="+flag+"&delId="+id,null,"已阅");
}
function changRowColor(obj){
//obj.removeAttribute("className");
//alert(obj.className);
//obj.setAttribute("bgcolor","#FFECB0");
//obj.sytle.backgroundColor = "#FFECB0";
}
function removeOverRowColor(obj){
//alert(obj.getAttribute("style"));
}
function killErrors() {
return true;
}
window.onerror = killErrors;
</script>
<body class="curbody">
<form name="form2">
<!-- 工具栏部分 ToolBar -->
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="new"><a href="#">新建</a></li>
<li id="save"><a href="#" title="保存留言窗口的位置信息">位置</a></li>
<li id="stat"><a href="#">历史</a></li>
</ul>
</div>
</div>
</div>
</div>
<logic:notEmpty name="olmsgList">
<div id='ff8080813d00613e013d0067909e0009' style='position:absolute;left:122px;top:97px;z-index:1001; height:164px;background:none;' onmousedown='getFocus(this)'>
<table border=0 cellspacing="0" cellpadding="0" width="220">
<tr>
<td style='cursor:move;' onmousedown="MDown(this,'ff8080813d00613e013d0067909e0009')" background="${ctx}/staticfile/images/olmsg/C0FFE51.gif" height="45">
<input type="hidden" name="id" class="input" value="ff8080813d00613e013d0067909e0009" />
<input type="hidden" name="isChange" class="input" value="0" />
<input type="hidden" name="posX" class="input" value="122" />
<input type="hidden" name="posY" class="input" value="97" />
</td>
</tr>
<tr>
<td style='cursor:move;white-space:nowrap;' width='100%' onmousedown="MDown('ff8080813d00613e013d0067909e0009')" background="${ctx}/staticfile/images/olmsg/C0FFE52.gif" >
<div style="float:left;width:130px;padding-left:7px;font-family:Tahoma;color:gray;font-style : oblique;">
2013-02-22 13:37
</div>
<div style="float:right;width:80px;text-align:right;padding-right:7px;">
<a style='cursor:pointer;' title="编辑" onclick="msgupdate('ff8080813d00613e013d0067909e0009','edit')"><img src="${ctx}/staticfile/images/olmsg/doc_edit.gif"/></a>
<a style='cursor:pointer;' title="删除" onclick="msgdel('ff8080813d00613e013d0067909e0009')"><img src="${ctx}/staticfile/images/olmsg/doc_del.gif"/></a>
</div>
</td>
</tr>
<tr>
<td background="${ctx}/staticfile/images/olmsg/C0FFE52.gif">
<div class="msgcontent">
欢迎使用杰管理平台
</div>
</td>
</tr>
<tr>
<td id="tagBPic" background="${ctx}/staticfile/images/olmsg/C0FFE53.gif" height="63">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="50" align="center">
<img border="0" src="${ctx}/staticfile/images/olmsg/2.gif">
</td>
<td style="text-align:right;padding-right:8px;" nowrap>
[备忘]
<!-- [回复] -->
<!-- [回执] -->
<!-- [撤销原因] -->
<!-- state==99[完成] -->
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div id='ff8080813d00613e013d00681494000a' style='position:absolute;left:442px;top:91px;z-index:1002; height:164px;background:none;' onmousedown='getFocus(this)'>
<table border=0 cellspacing="0" cellpadding="0" width="220">
<tr>
<td style='cursor:move;' onmousedown="MDown(this,'ff8080813d00613e013d00681494000a')" background="${ctx}/staticfile/images/olmsg/FFE7E81.gif" height="45">
<input type="hidden" name="id" class="input" value="ff8080813d00613e013d00681494000a" />
<input type="hidden" name="isChange" class="input" value="0" />
<input type="hidden" name="posX" class="input" value="442" />
<input type="hidden" name="posY" class="input" value="91" />
</td>
</tr>
<tr>
<td style='cursor:move;white-space:nowrap;' width='100%' onmousedown="MDown('ff8080813d00613e013d00681494000a')" background="${ctx}/staticfile/images/olmsg/FFE7E82.gif" >
<div style="float:left;width:130px;padding-left:7px;font-family:Tahoma;color:gray;font-style : oblique;">
2013-02-22 13:37
</div>
<div style="float:right;width:80px;text-align:right;padding-right:7px;">
<a style='cursor:pointer;' title="编辑" onclick="msgupdate('ff8080813d00613e013d00681494000a','edit')"><img src="${ctx}/staticfile/images/olmsg/doc_edit.gif"/></a>
<a style='cursor:pointer;' title="删除" onclick="msgdel('ff8080813d00613e013d00681494000a')"><img src="${ctx}/staticfile/images/olmsg/doc_del.gif"/></a>
</div>
</td>
</tr>
<tr>
<td background="${ctx}/staticfile/images/olmsg/FFE7E82.gif">
<div class="msgcontent">
本系统实现货运企业日常管理<br />
包括合同、报运、装箱、委托、发票等业务
</div>
</td>
</tr>
<tr>
<td id="tagBPic" background="${ctx}/staticfile/images/olmsg/FFE7E83.gif" height="63">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="50" align="center">
<img border="0" src="${ctx}/staticfile/images/olmsg/0.gif">
</td>
<td style="text-align:right;padding-right:8px;" nowrap>
[备忘]
<!-- [回复] -->
<!-- [回执] -->
<!-- [撤销原因] -->
<!-- state==99[完成] -->
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</logic:notEmpty>
</form>
</body>
</html>
* title.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<jsp:useBean id="now" class="java.util.Date" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!-- 调用样式表 -->
<link rel="stylesheet" rev="stylesheet" type="text/css"
href="${ctx}/staticfile/skin/default/css/default.css" media="all" />
<link rel="stylesheet" rev="stylesheet" type="text/css"
href="${ctx}/staticfile/skin/default/css/title.css" media="all" />
<script type="text/javascript"
src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
<script language="javascript" src="${ctx}/js/pngfix_map.js"></script>
<script language="javascript" src="${ctx}/js/common.js"></script>
<!-- 调用外部 JavaScript 脚本语言 -->
<script language="javascript">
function CustomTitle() {
var Me = document.getElementById('memos');
var Loin = document.getElementById('logins');
var Lout = document.getElementById('logout');
Me.onmouseover = function() {
document.getElementById('memo').style.background = 'url(${ctx}/staticfile/skin/default/images/title/memo2.gif) no-repeat'
};
Me.onmouseout = function() {
document.getElementById('memo').style.background = 'url(${ctx}/staticfile/skin/default/images/title/memo.gif) no-repeat'
};
Loin.onmouseover = function() {
document.getElementById('small_login').style.background = 'url(${ctx}/staticfile/skin/default/images/title/small_login2.gif) no-repeat'
};
Loin.onmouseout = function() {
document.getElementById('small_login').style.background = 'url(${ctx}/staticfile/skin/default/images/title/small_login.gif) no-repeat'
};
Lout.onmouseover = function() {
document.getElementById('small_login_out').style.background = 'url(${ctx}/staticfile/skin/default/images/title/login_out2.gif) no-repeat left -55px;'
};
Lout.onmouseout = function() {
document.getElementById('small_login_out').style.background = 'url(${ctx}/staticfile/skin/default/images/title/login_out.gif) no-repeat'
};
}
function linkHighlightMenu(obj) {
var links = document.getElementsByTagName('span');
for (var i = 0; i < links.length; i++) {
if (links[i].id.indexOf('topmenu') != -1) {
links[i].style.background = 'url("${ctx}/staticfile/skin/default/images/title/li_dot.gif1") no-repeat right 8px';
links[i].style.color = '';
links[i].style.fontWeight = '';
links[i].style.borderTop = '';
links[i].style.borderLeft = '';
links[i].style.borderRight = '';
links[i].style.padding = '';
}
}
obj.style.background = 'url("${ctx}/staticfile/skin/default/images/title/button_bg.jpg") no-repeat';
obj.style.color = "#fff";
obj.style.fontWeight = 'bold';
obj.style.padding = '6px 11x 5px 13px;';
obj.blur(); //去掉图片的焦点框,使界面看起来漂亮 updated by tony
}
//sendRequest('000001');
var y = -5; //个人信息栏初始Y坐标
var dy = -40; //显示后Y坐标
function doLoginDiv() {
ShowLoginDiv();
}
function HideLoginDiv() {
dy = dy - 5;
MoveHideLoginDiv();
}
function MoveHideLoginDiv() {
if (dy > -40) {
setTimeout("HideLoginDiv()", 10);
} else {
y = -40;
dy = -40;
}
document.getElementById("userInfo").style.top = dy;
}
function ShowLoginDiv() {
y = y + 5;
MoveShowLoginDiv();
}
function MoveShowLoginDiv() {
if (y < -5) {
setTimeout("ShowLoginDiv()", 10);
} else {
dy = -5;
y = -1
}
document.getElementById("userInfo").style.top = y;
}
function ShowFrameDiv(queryString) {
return false; //暂时屏蔽
top.middle.switches.loading.style.display = 'block';
// top.middle.switches.note_iframe.location.href="../home/empmemo/empMemoExpressCreate.jsp";
setTimeout(ShowFrameMain(queryString), 10);
}
function ShowFrameMain(passValue) {
var url = "../home/doConsoleListAction.do"; //../home/empMemoCreateAction.do
var topFrame = top.middle.switches;
document.getElementById('PositionFrame').style.display = "block";
top.middle.contents.left_frame.style.border = "none";
top.middle.contents.left_frame.style.overflow = "hidden";
topFrame.PositionFrame_main.style.display = "block";
topFrame.PositionFrame.style.display = "block";
topFrame.PositionFrame_notebook.style.display = 'block';
topFrame.PositionFrame_notebook2.style.display = 'none';
topFrame.PositionFrame_my_note.style.display = 'block';
//topFrame.note_iframe.location.href=url;
form1.action = url;
form1.method = "post";
form1.target = "note_iframe";
// alert(passValue);
if (passValue) {
form1.innerHTML = '<input type="hidden" name="passTitle" value="' + passValue[0] + '"/>';
form1.innerHTML = form1.innerHTML
+ '<input type="hidden" name="passContent" value="' +passValue[1]+ '"/>';
}
form1.submit();
top.middle.contents.PositionFrame.style.display = "block";
topFrame.loading.style.display = 'none';
topFrame.PositionFrame_main.style.visibility = 'visible';
topFrame.visibility.style.display = 'block';
}
function offset(place) {
var mask = $('#mask');
var targetObj = $('#menuContent');
var maxOffset = targetObj.width() - mask.width();
var currLeft = targetObj.css('left');
// alert(maxOffset + " " + currLeft);
var currLeft = Number(currLeft.substring(0, currLeft.length - 2));
if (place == "right" && (0 - currLeft) <= maxOffset) {
targetObj.css('left', currLeft - 5);
} else if (place == "left" && currLeft < 0) {
targetObj.css('left', currLeft + 5);
}
}
function periodOffset(thisObj, place) {
var intervalId = window.setInterval(function() {
offset(place)
}, 1);
$(thisObj).mouseout(function() {
window.clearInterval(intervalId)
});
}
function checkDirectionKey() {
var mask = $('#mask');
var bodyWidth = $('body').width();
//alert(bodyWidth - 450);
mask.width(bodyWidth - 250); //450
//alert(mask.width());
var targetObj = $('#menuContent');
var maxOffset = targetObj.width() - mask.width();
var currLeft = targetObj.css('left');
// alert(maxOffset + " " + currLeft);
var currLeft = Number(currLeft.substring(0, currLeft.length - 2));
// alert((0-currLeft) <= maxOffset);
if (!(0 - currLeft) <= maxOffset || currLeft < 0) {
$("#rightKey").show("slow");
$("#leftKey").show("slow");
if (!isShow) {
$("#prompt_div").show("slow", function() {
window.setTimeout(function() {
$("#prompt_div").hide("slow")
}, 10000);
isShow = true;
});
}
} else {
$("#rightKey").hide();
$("#leftKey").hide();
$("#prompt_div").hide();
}
}
var isShow = false;
$(function() {
window.onresize = checkDirectionKey;
$("#rightKey").hide();
$("#leftKey").hide();
$("#prompt_div").hide();
checkDirectionKey();
});
function logout() {
return formSubmit("${ctx}/tologinout.action", "_top");
}
function toModule(moduleName) {
top.leftFrame.location.href = moduleName + '/Left.action';
top.main.location.href = moduleName + '/Main.action';
linkHighlightMenu(this);
}
</script>
</head>
<body onSelectStart="return true">
<!-- 文档主题部分开始 -->
<div class="PositionFrame_black" id="PositionFrame"></div>
<div id="userInfo" style="z-index: 999;" onclick="HideLoginDiv()"
title="点击关闭">
<img
src="${ctx}/staticfile/skin/default/images/title/avataronline.gif"
border="0" style="margin-top: -1px;" /> 您好:<strong>${_CURRENT_USER.userInfo.name}</strong> |
您所属单位:<strong> <c:if test="${!empty _CURRENT_USER.dept}">
${_CURRENT_USER.dept.deptName}
</c:if>
</strong> <img
src="${ctx}/staticfile/skin/default/images/title/close.gif"
border="0" />
</div>
<a id="memos" style="cursor: pointer;" onclick="toModule('home');"
target="_top" title="点击切换到系统首页"><div id="memo" class="memo"
title="点击切换到系统首页"></div></a>
<a id="logins" style="cursor: pointer;" onclick="doLoginDiv();"
title="点击显示您的登录信息"><div id="small_login" class="small_login"
title="点击显示您的登录信息"></div></a>
<a id="logout" style="cursor: pointer;" onclick="logout();"
target="_top" title="点击退出系统"><div id="small_login_out"
class="small_login_out" title="点击退出系统"></div></a>
<div class="headerBg">
<div class="top_logo">
<div class="navMenu" style="float: left; text-align: left;">
<div class="titleDate" style="float: left;">
<fmt:formatDate value="${now}" pattern="yyyy年M月d日 E" />
</div>
<div style="height: 29px;">
<span id="leftKey" onmouseover="periodOffset(this, 'left')"><img
src="${ctx}/staticfile/skin/default/images/title/left_arrow.png" /></span>
<div class="mavMeau_top"></div>
<div id="mask">
<div id="menuContent">
<span id="topmenu" onclick="toModule('home');">系统首页</span><span
id="tm_separator"></span>
<shiro:hasPermission name="货运管理">
<span id="topmenu" onclick="toModule('cargo');">货运管理</span>
</shiro:hasPermission>
<span id="tm_separator"></span>
<shiro:hasPermission name="基础信息">
<span id="topmenu" onclick="toModule('baseinfo');">基础信息</span>
</shiro:hasPermission>
<span id="tm_separator"> </span>
<shiro:hasPermission name="系统管理">
<span id="topmenu" onclick="toModule('sysadmin');">系统管理</span>
</shiro:hasPermission>
</div>
<span id="rightKey" onmouseover="periodOffset(this, 'right')"><img
src="${ctx}/staticfile/skin/default/images/title/right_arrow.png" /></span>
</div>
</div>
</div>
</div>
<div id="prompt_div">
<img src="${ctx}/staticfile/skin/default/images/title/prompt.png" /><span
style="position: absolute; top: 2px; left: 35px; z-index: 99999; width: 100%; color: #FFFFFF; text-align: left;">鼠标指向箭头位置<br />可显示更多菜单项
</span>
</div>
<form name="form1" style="display: none;"></form>
<%
//备忘录等使用
%>
</body>
</html>
* stat
* left.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
<script language="javascript" src="${ctx}/staticfile/js/common.js"></script>
<script language="javascript" src="${ctx}/staticfile/js/ajax/setFastMenu.js"></script>
<script language="javascript" src="${ctx}/staticfile/js/pngfix_map.js"></script>
<script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
<script type="text/javascript" src="${ctx}/staticfile/skin/default/js/toggle.js"></script>
</head>
<body id="left_frame">
<!-- begin1 -->
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/document_chart.png" /></div>
<div class="panel-header">
<div class="panel-title">
统计查询
</div>
<div class="panel-content">
<ul>
<li><a href="${ctx}/stat/statChartAction_factorySale" onclick="linkHighlighted(this)" target="main" id="aa_1">生产厂家销售情况</a></li>
<li><a href="${ctx}/stat/statChartAction_productSale" onclick="linkHighlighted(this)" target="main" id="aa_1">产品销售排行</a></li>
<li><a href="${ctx}/stat/statChartAction_onlineInfo" onclick="linkHighlighted(this)" target="main" id="aa_1">系统访问压力图</a></li>
<li><a href="${ctx}/stat/statChartAction_factorySaleEcharts" onclick="linkHighlighted(this)" target="main" id="aa_1">eCharts</a></li>
<li><a href="${ctx}/stat/statChartAction_onlineinfoHighCharts" onclick="linkHighlighted(this)" target="main" id="aa_1">highCharts</a></li>
</ul>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
<!-- end1 -->
</body>
</html>
* main.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>模块介绍</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
</head>
<body>
<form>
<div class="textbox"></div>
<div class="modelDiv">
<table class="modelTable" cellspacing="1">
<tr>
<td colspan="2" class="modelTitle">统计分析介绍</td>
</tr>
<tr>
<td class="subModelTitle">生产厂家销售情况</td>
<td class="model_intro_right">和公司合作的生产厂家销售情况饼形图<br>
</td>
</tr>
<tr>
<td class="subModelTitle">产品销售排行</td>
<td class="model_intro_right">统计公司最畅销的产品是哪些?<br>统计公司最滞销的产品是哪些?</td>
</tr>
<tr>
<td class="subModelTitle">系统访问</td>
<td class="model_intro_right">统计系统一天用户访问系统的情况,何时访问频繁,何时访问较少,方便开发人员对系统进行优化。</td>
</tr>
<tfoot>
<tr>
<td colspan="2" class="tableFooter"></td>
</tr>
</tfoot>
</table>
</div>
</form>
</body>
</html>
* sysadmin
* dept
* JDeptCreate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新增部门</title>
<script type="text/javascript">
//保存错误
if ("${save_error}" != "") {
alert("${save_error}");
}
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('save','_self');this.blur()">新增</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
添加部门
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>部门名称:</td>
<td><input type="text" name="deptName" /></td>
</tr>
<tr>
<td>部门ID:</td>
<td><input type="text" name="deptId" /></td>
</tr>
<tr>
<td>上级部门:</td>
<td><select name="parentDept.deptId">
<option>--无上级--</option>
<c:forEach items="${deptList}" var="dept">
<option value="${dept.deptId}">${dept.deptName}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>部门状态</td>
<td>关闭<input type="radio" name="state" value="0" />开启<input
type="radio" name="state" value="1" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JDeptList.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>部门列表</title>
</head>
<script type="text/javascript">
//没有选部门就更新
if ("${error_up}" != "") {
alert("${error_up}");
}
</script>
<c:set property="error_up" value="" var="error_up">
</c:set>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a href="#"
onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
<li id="new"><a href="#"
onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
<li id="update"><a href="#"
onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
<li id="delete"><a href="#"
onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
<li id="new"><a href="#"
onclick="formSubmit('start','_self');this.blur();">启用</a></li>
<li id="new"><a href="#"
onclick="formSubmit('stop','_self');this.blur();">停用</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
部门列表
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<thead>
<tr>
<td class="tableHeader"><input type="checkbox" name="selid"
onclick="checkAll('deptId',this)"></td>
<td class="tableHeader">序号</td>
<td class="tableHeader">编号</td>
<td class="tableHeader">上级</td>
<td class="tableHeader">名称</td>
<td class="tableHeader">状态</td>
</tr>
</thead>
<tbody class="tableBody">
<c:forEach items="${deptList}" var="d" varStatus="status">
<tr class="odd" onmouseover="this.className='highlight'"
onmouseout="this.className='odd'">
<td><input type="checkbox" name="deptId"
value="${d.deptId}" /></td>
<td>${status.index+1}</td>
<td>${d.deptId}</td>
<td>${d.parentDept.deptName}</td>
<td>${d.deptName}</td>
<td><c:if test="${d.state==1}">
<a href="stop?deptId=${d.deptId}"><font color="green">启用</font></a>
</c:if> <c:if test="${d.state==0}">
<a href="start?deptId=${d.deptId}"><font color="red">停用</font></a>
</c:if></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</form>
</body>
</html>
* JDeptUpdate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>更新部门</title>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('update','_self');this.blur()">修改</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
更新部门
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>部门编号</td>
<td><input type="text" name="deptId" value="${dept.deptId}"
readonly="readonly" /></td>
</tr>
<tr>
<td>部门名称:</td>
<td><input type="text" name="deptName"
value="${dept.deptName}" /></td>
</tr>
<tr>
<td>上级部门:</td>
<td><select name="parentDept.deptId">
<option>--无上级--</option>
<c:forEach items="${deptList}" var="d">
<option value="${d.deptId}"
${dept.parentDept.deptId==d.deptId ? 'selected="selected"':""}>${d.deptName}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>部门状态</td>
<td>关闭<input type="radio" name="state" value="0"
${dept.state==0 ? 'checked="checked"':""} />开启<input
type="radio" name="state" value="1"
${dept.state==1 ? 'checked="checked"':""} /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JDeptView.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>查看部门</title>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
部门详情
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>部门编号</td>
<td><input type="text" name="deptId" value="${dept.deptId}"
readonly="readonly" /></td>
</tr>
<tr>
<td>部门名称:</td>
<td><input type="text" name="deptName"
value="${dept.deptName}" readonly="readonly" /></td>
</tr>
<tr>
<td>上级部门:</td>
<td><select name="parentDept.deptId" readonly="readonly">
<option>--无上级--</option>
<c:forEach items="${deptList}" var="d">
<option value="${d.deptId}"
${dept.parentDept.deptId==d.deptId ? 'selected="selected"':""}>${d.deptName}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>部门状态</td>
<td>关闭<input type="radio" name="state" value="0"
${dept.state==0 ? 'checked="checked"':""} readonly="readonly" />开启<input
type="radio" name="state" value="1"
${dept.state==1 ? 'checked="checked"':""} readonly="readonly" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* login
* login.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>国际物流汇通商贸</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/login.css" media="all" />
<script src="${ctx}/staticfile/components/pngfix/DD_belatedPNG.js"></script>
<script> DD_belatedPNG.fix('*'); </script>
</head>
<body>
<form id="login_main" method="post">
<div id="png">
<div class="box">
<div class="inputstyle">
<div class="inputlable">用户名:
<input type="text" value="tony" name="userName" id="userName" onFocus="this.select();" title="请您输入用户名"/>
<div id="ts" style="z-index:1;">
</div>
</div>
<div class="inputlable">密 码:
<input type="password" value="123456" name="password" id="password" onfocus="$('#ts').css('display','none');this.select();"
onKeyDown="javascript:if(event.keyCode==13){ submitFind(); }" title="请您输入密码"/>
</div>
</div>
<div class="btnstyle">
<input class="loginImgOut" value="" type="button" onclick="formSubmit('${ctx}/login.action','_self');"
onmouseover="this.className='loginImgOver'"
onmouseout="this.className='loginImgOut'"
/>
<input class="resetImgOut" value="" type="button"
onmouseover="this.className='resetImgOver'"
onmouseout="this.className='resetImgOut'"
/>
</div>
<div class="msgtip">
<c:if test="${!empty errorInfo}">
${errorInfo}
</c:if>
</div>
</div>
</div>
</form>
<script type="text/JavaScript">
document.getElementById('login_main').userName.focus();
</script>
</body>
</html>
* logout.jsp
# #
<%@ page contentType="text/html; charset=utf-8"%>
<%@ include file="../../base.jsp" %>
<html>
<head>
</head>
<script type="text/javascript">
window.top.location.href = "login"; //javascript页面跳转,top防止帧框架嵌套难看
</script>
<body>
</body>
</html>
* module
* JModuleCreate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新增模块</title>
<script type="text/javascript">
//保存错误
if ("${save_error}" != "") {
alert("${save_error}");
}
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('save','_self');this.blur()">新增</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
添加模块
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>模块名称:</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>模块描述:</td>
<td><input type="text" name="remark" /></td>
</tr>
<tr>
<td>上级模块:</td>
<td><select name="parentModule.moduleId">
<option>--无上级--</option>
<c:forEach items="${moduleList}" var="module">
<option value="${module.moduleId}">${module.name}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>模块状态</td>
<td>关闭<input type="radio" name="state" value="0" checked="checked"/>开启<input
type="radio" name="state" value="1" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JModuleList.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>模块列表</title>
</head>
<script type="text/javascript">
//没有选模块就更新
if ("${error_up}" != "") {
alert("${error_up}");
}
</script>
<c:set property="error_up" value="" var="error_up">
</c:set>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a href="#"
onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
<li id="new"><a href="#"
onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
<li id="update"><a href="#"
onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
<li id="delete"><a href="#"
onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
<li id="new"><a href="#"
onclick="formSubmit('start','_self');this.blur();">启用</a></li>
<li id="new"><a href="#"
onclick="formSubmit('stop','_self');this.blur();">停用</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
模块列表
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<thead>
<tr>
<td class="tableHeader"><input type="checkbox" name="selid"
onclick="checkAll('moduleId',this)"></td>
<td class="tableHeader">序号</td>
<td class="tableHeader">编号</td>
<td class="tableHeader">上级</td>
<td class="tableHeader">名称</td>
<td class="tableHeader">描述</td>
<td class="tableHeader">状态</td>
</tr>
</thead>
<tbody class="tableBody">
<c:forEach items="${moduleList}" var="m" varStatus="status">
<tr class="odd" onmouseover="this.className='highlight'"
onmouseout="this.className='odd'">
<td><input type="checkbox" name="moduleId"
value="${m.moduleId}" /></td>
<td>${status.index+1}</td>
<td>${m.moduleId}</td>
<td>${m.parentModule.name}</td>
<td>${m.name}</td>
<td>${m.remark}</td>
<td><c:if test="${m.state==1}">
<a href="stop?moduleId=${m.moduleId}"><font color="green">启用</font></a>
</c:if> <c:if test="${m.state==0}">
<a href="start?moduleId=${m.moduleId}"><font color="red">停用</font></a>
</c:if></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</form>
</body>
</html>
* JModuleUpdate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>更新模块</title>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('update','_self');this.blur()">修改</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
更新模块
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>模块编号</td>
<td><input type="text" name="moduleId"
value="${module.moduleId}" readonly="readonly" /></td>
</tr>
<tr>
<td>模块名称:</td>
<td><input type="text" name="name" value="${module.name}" /></td>
</tr>
<tr>
<td>模块名称:</td>
<td><input type="text" name="remark" value="${module.remark}" /></td>
</tr>
<tr>
<td>上级模块:</td>
<td><select name="parentModule.moduleId">
<option>--无上级--</option>
<c:forEach items="${moduleList}" var="m">
<option value="${m.moduleId}"
${module.parentModule.moduleId==m.moduleId ? 'selected="selected"':""}
${module.moduleId==m.moduleId ? 'hidden="hidden"':""}>${m.name}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>部门状态</td>
<td>关闭<input type="radio" name="state" value="0"
${module.state==0 ? 'checked="checked"':""} />开启<input
type="radio" name="state" value="1"
${module.state==1 ? 'checked="checked"':""} /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JModuleView.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>查看模块</title>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
模块详情
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>模块编号</td>
<td><input type="text" name="moduleId"
value="${module.moduleId}" readonly="readonly" /></td>
</tr>
<tr>
<td>模块名称:</td>
<td><input type="text" name="name" value="${module.name}"
readonly="readonly" /></td>
</tr>
<tr>
<td>上级模块:</td>
<td><select name="parentModule.moduleId" readonly="readonly">
<option>--无上级--</option>
<c:forEach items="${moduleList}" var="m">
<option value="${m.moduleId}"
${module.parentModule.moduleId==m.moduleId ? 'selected="selected"':""}>${m.name}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>部门状态</td>
<td>关闭<input type="radio" name="state" value="0"
${module.state==0 ? 'checked="checked"':""} readonly="readonly" />开启<input
type="radio" name="state" value="1"
${module.state==1 ? 'checked="checked"':""} readonly="readonly" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
# #
* role
* JRoleCreate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新增角色</title>
<script type="text/javascript">
//保存错误
if ("${save_error}" != "") {
alert("${save_error}");
}
</script>
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('save','_self');this.blur()">新增</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
添加角色
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>角色ID:</td>
<td><input type="text" name="roleId" /></td>
<td>角色名称:</td>
<td><input type="text" name="name" /></td>
<td>角色描述:</td>
<td><input type="text" name="remarks" /></td>
<td>创建者:</td>
<td><input type="text" name="createBy" /></td>
</table>
</div>
</div>
</form>
</body>
</html>
* JRoleList.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>角色列表</title>
<script type="text/javascript">
//没有角色
if ("${error_up}" != "") {
alert("${error_up}");
}
//保存失败
if ("${error_save}" != "") {
alert("${error_save}");
}
//保存成功
if ("${success_save}" != "") {
alert("${success_save}");
}
</script>
</head>
<c:set property="error_up" value="" var="error_up">
</c:set>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a href="#"
onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
<li id="new"><a href="#"
onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
<li id="update"><a href="#"
onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
<li id="delete"><a href="#"
onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
<li id="delete"><a href="#"
onclick="formSubmit('tomodule','_self');this.blur();">模块</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
角色列表
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<thead>
<tr>
<td class="tableHeader"><input type="checkbox" name="selid"
onclick="checkAll('roleId',this)"></td>
<td class="tableHeader">序号</td>
<td class="tableHeader">名称</td>
<td class="tableHeader">介绍</td>
</tr>
</thead>
<tbody class="tableBody">
<c:forEach items="${roles}" var="role" varStatus="status">
<tr class="odd" onmouseover="this.className='highlight'"
onmouseout="this.className='odd'">
<td><input type="checkbox" name="roleId"
value="${role.roleId}" /></td>
<td>${status.index+1}</td>
<td>${role.name}</td>
<td>${role.remarks}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</form>
</body>
</html>
* JRoleModule.jsp
# #
<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>角色模块分配</title>
<link rel="stylesheet"
href="${ctx}/staticfile/components/zTree/css/zTreeStyle/zTreeStyle.css"
type="text/css">
<script type="text/javascript"
src="${ctx}/staticfile/components/zTree/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript"
src="${ctx}/staticfile/components/zTree/js/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript"
src="${ctx}/staticfile/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script>
<SCRIPT type="text/javascript">
var setting = {
check : {
enable : true
},
data : {
simpleData : {
enable : true
}
}
};
//这里相当于在拿后来传来的数据,后台在传数据的时候,属性名要对应上
var zNodes = ${modulesJSON}
$(document).ready(function() {
$.fn.zTree.init($("#htZtree"), setting, zNodes);
var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
zTreeObj.expandAll(true); //展开所有树节点
});
//获取到所以用户选中的节点id值
//获取所有选择的节点,提交时调用下面函数
function submitCheckedNodes(treeNode) {
var nodes = new Array();
var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
nodes = zTreeObj.getCheckedNodes(true); //取得选中的结点
var str = "";
for (i = 0; i < nodes.length; i++) {
if (str != "") {
str += ",";
}
str += nodes[i].id;
}
$('#moduleIds').val(str); //将拼接完成的字符串放入隐藏域,这样就可以通过post提交
}
</SCRIPT>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="save"><a href="#"
onclick="submitCheckedNodes();formSubmit('saveRoleModule','_self');this.blur();">保存</a></li>
<li id="back"><a href="#"
onclick="window.history.go(-1);this.blur();">返回</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img
src="${ctx}/staticfile/skin/default/images/icon/currency_yen.png" />
角色模块分配
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<!--隐藏域用来传递数据 -->
<input type="hidden" id="roleId" name="roleId" value="${roleId}" />
<input type="hidden" id="moduleIds" name="moduleIds" />
<ul id="htZtree" class="ztree"></ul>
</table>
</div>
</div>
</form>
</body>
</html>
* JRoleUpdate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>修改角色</title>
<script type="text/javascript">
//保存错误
if ("${error_up}" != "") {
alert("${error_up}");
}
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('update','_self');this.blur()">修改</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
修改角色
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>角色ID:</td>
<td><input type="text" name="roleId" value="${role.roleId}"
readonly="readonly" /></td>
</tr>
<tr>
<td>角色名称:</td>
<td><input type="text" name="name" value="${role.name}" /></td>
</tr>
<tr>
<td>角色描述:</td>
<td><input type="text" name="remarks" value="${role.remarks}" /></td>
</tr>
<tr>
<td><font color="#ff0000">修改人:</font></td>
<td><input type="text" name="updateBy"
value="${role.updateBy}" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JRoleView.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>查看角色</title>
<script type="text/javascript">
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
角色详情
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>角色ID:</td>
<td><input type="text" name="roleId" value="${role.roleId}"
readonly="readonly" /></td>
</tr>
<tr>
<td>角色名称:</td>
<td><input type="text" name="name" value="${role.name}"
readonly="readonly" /></td>
</tr>
<tr>
<td>角色描述:</td>
<td><input type="text" name="remarks" value="${role.remarks}"
readonly="readonly" /></td>
</tr>
<tr>
<td>更新者:</td>
<td><input type="text" name="updateBy"
value="${role.updateBy}" readonly="readonly" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* user
* JUserCreate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新增用户</title>
<script type="text/javascript">
//保存错误
if ("${save_error}" != "") {
alert("${save_error}");
}
</script>
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('save','_self');this.blur()">新增</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
添加用户
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>用户ID:</td>
<td><input type="text" name="userId" /></td>
<td>所属部门:</td>
<td><select name="dept.deptId">
<option value="-1">--无--</option>
<c:forEach items="${depts}" var="dept">
<option value="${dept.deptId}">${dept.deptName}</option>
</c:forEach>
</select></td>
<td>用户账户:</td>
<td><input type="text" name="username" /></td>
<td>用户密码:</td>
<td><input type="text" name="password" /></td>
</tr>
<tr>
<td>用户状态</td>
<td>关闭<input type="radio" name="state" value="0" />开启<input
type="radio" name="state" value="1" checked="checked" /></td>
<td>创建者:</td>
<td><input type="text" name="createBy" /></td>
<td>创建时间:</td>
<td><input type="date" name="createTime" /></td>
</tr>
<tr>
<td>真实姓名:</td>
<td><input type="text" name="userInfo.name" /></td>
<td>身份证号:</td>
<td><input type="text" name="userInfo.cardNo" /></td>
<td>上级领导:</td>
<td><select name="userInfo.managerUserInfo.userInfoId">
<option value="-1">--无--</option>
<c:forEach items="${userinfos}" var="userinfo">
<option value="${userinfo.userInfoId}">${userinfo.name}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>薪水:</td>
<td><input type="text" name="userInfo.salary" /></td>
<td>出生日期:</td>
<td><input type="date" name="userInfo.birthday" /></td>
<td>性别:</td>
<td>男<input type="radio" name="userInfo.gender" value="男"
checked="checked" />女<input type="radio" name="userInfo.gender"
value="女" /></td>
<td>职位:</td>
<td><input type="text" name="userInfo.station" /></td>
</tr>
</tr>
<td>电话号码:</td>
<td><input type="text" name="userInfo.telephone" /></td>
<td>员工级别:</td>
<td><select name="userInfo.userLevel">
<option value="4" selected="selected">普通用户</option>
<option value="3">部门经理</option>
<option value="2">副总</option>
<option value="1">总经理</option>
<option value="0">超级管理员</option>
</select></td>
<td>说明:</td>
<td><input type="text" name="userInfo.remark" /></td>
<td>排序号:</td>
<td><input type="text" name="userInfo.orderNo" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JUserList.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用户列表</title>
<script type="text/javascript">
//没有选用户就修改
if ("${error_up}" != "") {
alert("${error_up}");
}
//保存失败
if ("${error_save}" != "") {
alert("${error_save}");
}
//保存成功
if ("${success_save}" != "") {
alert("${success_save}");
}
</script>
</head>
<c:set property="error_up" value="" var="error_up">
</c:set>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a href="#"
onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
<li id="new"><a href="#"
onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
<li id="update"><a href="#"
onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
<li id="delete"><a href="#"
onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
<li id="new"><a href="#"
onclick="formSubmit('start','_self');this.blur();">启用</a></li>
<li id="new"><a href="#"
onclick="formSubmit('stop','_self');this.blur();">停用</a></li>
<li id="new"><a href="#"
onclick="formSubmit('role','_self');this.blur();">分配角色</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
部门列表
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<thead>
<tr>
<td class="tableHeader"><input type="checkbox" name="selid"
onclick="checkAll('userId',this)"></td>
<td class="tableHeader">编号</td>
<td class="tableHeader">序号</td>
<td class="tableHeader">用户名</td>
<td class="tableHeader">昵称</td>
<td class="tableHeader">性别</td>
<td class="tableHeader">薪资</td>
<td class="tableHeader">岗位</td>
<td class="tableHeader">电话</td>
<td class="tableHeader">所属部门</td>
<td class="tableHeader">上级领导</td>
<td class="tableHeader">状态</td>
</tr>
</thead>
<tbody class="tableBody">
<c:forEach items="${users}" var="u" varStatus="status">
<tr class="odd" onmouseover="this.className='highlight'"
onmouseout="this.className='odd'">
<td><input type="checkbox" name="userId"
value="${u.userId}" /></td>
<td>${u.userId}</td>
<td>${status.index+1}</td>
<td>${u.username}</td>
<td>${u.userInfo.name}</td>
<td>${u.userInfo.gender}</td>
<td>${u.userInfo.salary}</td>
<td>${u.userInfo.station}</td>
<td>${u.userInfo.telephone}</td>
<td>${u.dept.deptName}</td>
<td>${u.userInfo.managerUserInfo.name}</td>
<td><c:if test="${u.state==1}">
<a href="stop?userId=${u.userId}"><font color="green">启用</font></a>
</c:if> <c:if test="${u.state==0}">
<a href="start?userId=${u.userId}"><font color="red">停用</font></a>
</c:if></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</form>
</body>
</html>
* JUserRole.jsp
# #
<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用户角色分配</title>
<link rel="stylesheet"
href="${ctx}/staticfile/components/zTree/css/zTreeStyle/zTreeStyle.css"
type="text/css">
<script type="text/javascript"
src="${ctx}/staticfile/components/zTree/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript"
src="${ctx}/staticfile/components/zTree/js/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript"
src="${ctx}/staticfile/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script>
<SCRIPT type="text/javascript">
var setting = {
check : {
enable : true
},
data : {
simpleData : {
enable : true
}
}
};
//这里相当于在拿后来传来的数据,后台在传数据的时候,属性名要对应上
var zNodes = ${rolesJSON}
$(document).ready(function() {
$.fn.zTree.init($("#htZtree"), setting, zNodes);
var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
zTreeObj.expandAll(true); //展开所有树节点
});
//获取到所以用户选中的节点id值
//获取所有选择的节点,提交时调用下面函数
function submitCheckedNodes(treeNode) {
var nodes = new Array();
var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
nodes = zTreeObj.getCheckedNodes(true); //取得选中的结点
var str = "";
for (i = 0; i < nodes.length; i++) {
if (str != "") {
str += ",";
}
str += nodes[i].id;
}
$('#roleIds').val(str); //将拼接完成的字符串放入隐藏域,这样就可以通过post提交
}
</SCRIPT>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="save"><a href="#"
onclick="submitCheckedNodes();formSubmit('saveUserRole','_self');this.blur();">保存</a></li>
<li id="back"><a href="#"
onclick="window.history.go(-1);this.blur();">返回</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img
src="${ctx}/staticfile/skin/default/images/icon/currency_yen.png" />
用户角色分配
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<!--隐藏域用来传递数据 -->
<input type="hidden" id="userId" name="userId" value="${userId}" />
<input type="hidden" id="roleIds" name="roleIds" />
<ul id="htZtree" class="ztree"></ul>
</table>
</div>
</div>
</form>
</body>
</html>
* JUserUpdate.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>修改用户</title>
</script>
<script type="text/javascript">
//保存错误
if ("${error_up}" != "") {
alert("${error_up}");
}
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
<li id="new"><a
onclick="formSubmit('update','_self');this.blur()">修改</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
修改用户
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>用户ID:</td>
<td><input type="text" name="userId" value="${user.userId}"
readonly="readonly" /></td>
<td>所属部门:</td>
<td><select name="dept.deptId">
<option>--无--</option>
<c:forEach items="${depts}" var="dept">
<option value="${dept.deptId}"
${user.dept.deptId==dept.deptId ? "selected='selected'":""}>${dept.deptName}</option>
</c:forEach>
</select></td>
<td>用户账户:</td>
<td><input type="text" name="username"
value="${user.username}" /></td>
<td>用户密码:</td>
<td><input type="text" name="password"
value="${user.password}" /></td>
</tr>
<tr>
<td>用户状态</td>
<td>关闭<input type="radio" name="state" value="0"
${user.state==0? "checked='checked'":""} />开启<input
type="radio" name="state" value="1"
${user.state==1? "checked='checked'":""} /></td>
</tr>
<tr>
<td><font color="#ff0000">修改人:</font></td>
<td><input type="text" name="userInfo.updateBy"
value="${user.userInfo.updateBy}" /></td>
<td>更新时间:</td>
<td><input type="date" name="userInfo.updateTime"
value="<fmt:formatDate value="${user.userInfo.updateTime}" pattern="yyyy-MM-dd"/>" /></td>
</tr>
<tr>
<td>真实姓名:</td>
<td><input type="text" name="userInfo.name"
value="${user.userInfo.name}" /></td>
<td>身份证号:</td>
<td><input type="text" name="userInfo.cardNo"
value="${user.userInfo.cardNo}" /></td>
<td>上级领导:</td>
<td><select name="userInfo.managerUserInfo.userInfoId">
<option>--无--</option>
<c:forEach items="${userinfos}" var="userinfo">
<option value="${userinfo.userInfoId}"
${user.userInfo.managerUserInfo.userInfoId==userinfo.userInfoId ? "selected='selected'":""}>${userinfo.name}</option>
</c:forEach>
</select></td>
<td>薪水:</td>
<td><input type="text" name="userInfo.salary"
value="${user.userInfo.salary}" /></td>
</tr>
<tr>
<td>出生日期:</td>
<td><input type="date" name="userInfo.birthday"
value="<fmt:formatDate value="${user.userInfo.birthday}" pattern="yyyy-MM-dd"/>" /></td>
<td>性别:</td>
<td>男<input type="radio" name="userInfo.gender" value="男"
${user.userInfo.gender=="男" ? "checked='checked'" :""} />女<input
type="radio" name="userInfo.gender" value="女"
${user.userInfo.gender=="女" ? "checked='checked'" :""} /></td>
<td>职位:</td>
<td><input type="text" name="userInfo.station"
value="${user.userInfo.station}" /></td>
<td>电话号码:</td>
<td><input type="text" name="userInfo.telephone"
value="${user.userInfo.telephone}" /></td>
</tr>
<tr>
<td>员工级别:</td>
<td><select name="userInfo.userLevel">
<option value="4"
${user.userInfo.userLevel=="4" ? "selected='selected'":""}>普通用户</option>
<option value="3"
${user.userInfo.userLevel=="3" ? "selected='selected'":""}>部门经理</option>
<option value="2"
${user.userInfo.userLevel=="2" ? "selected='selected'":""}>副总</option>
<option value="1"
${user.userInfo.userLevel=="1" ? "selected='selected'":""}>总经理</option>
<option value="0"
${user.userInfo.userLevel=="0" ? "selected='selected'":""}>超级管理员</option>
</select></td>
<td>说明:</td>
<td><input type="text" name="userInfo.remark"
value="${user.userInfo.remark}" /></td>
<td>排序号:</td>
<td><input type="text" name="userInfo.orderNo"
value="${user.userInfo.orderNo}" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* JUserView.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../baselist.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>查看用户</title>
</script>
</script>
</head>
<body>
<form name="icform" method="post">
<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="view"><a onclick="window.history.back()">返回</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="textbox-title">
<img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
查看用户
</div>
<div>
<div class="eXtremeTable">
<table id="ec_table" class="tableRegion" width="98%">
<tr>
<td>用户ID:</td>
<td><input type="text" name="userId" value="${user.userId}"
readonly="readonly" /></td>
<td>所属部门:</td>
<td><select name="dept.deptId">
<option>--无--</option>
<c:forEach items="${depts}" var="dept">
<option value="${dept.deptId}"
${user.dept.deptId==dept.deptId ? "selected='selected'":""}>${dept.deptName}</option>
</c:forEach>
</select></td>
<td>用户账户:</td>
<td><input type="text" name="username"
value="${user.username}" /></td>
<td>用户密码:</td>
<td><input type="text" name="password"
value="${user.password}" /></td>
</tr>
<tr>
<td>用户状态</td>
<td>关闭<input type="radio" name="state" value="0"
${user.state==0? "checked='checked'":""} />开启<input
type="radio" name="state" value="1"
${user.state==1? "checked='checked'":""} /></td>
</tr>
<tr>
<td><font color="#ff0000">修改人:</font></td>
<td><input type="text" name="userInfo.updateBy"
value="${user.userInfo.updateBy}" /></td>
<td>更新时间:</td>
<td><input type="date" name="userInfo.updateTime"
value="<fmt:formatDate value="${user.userInfo.updateTime}" pattern="yyyy-MM-dd"/>" /></td>
</tr>
<tr>
<td>真实姓名:</td>
<td><input type="text" name="userInfo.name"
value="${user.userInfo.name}" /></td>
<td>身份证号:</td>
<td><input type="text" name="userInfo.cardNo"
value="${user.userInfo.cardNo}" /></td>
<td>上级领导:</td>
<td><select name="userInfo.managerUserInfo.userInfoId">
<option>--无--</option>
<c:forEach items="${userinfos}" var="userinfo">
<option value="${userinfo.userInfoId}"
${user.userInfo.managerUserInfo.userInfoId==userinfo.userInfoId ? "selected='selected'":""}>${userinfo.name}</option>
</c:forEach>
</select></td>
<td>薪水:</td>
<td><input type="text" name="userInfo.salary"
value="${user.userInfo.salary}" /></td>
</tr>
<tr>
<td>出生日期:</td>
<td><input type="date" name="userInfo.birthday"
value="<fmt:formatDate value="${user.userInfo.birthday}" pattern="yyyy-MM-dd"/>" /></td>
<td>性别:</td>
<td>男<input type="radio" name="userInfo.gender" value="男"
${user.userInfo.gender=="男" ? "checked='checked'" :""} />女<input
type="radio" name="userInfo.gender" value="女"
${user.userInfo.gender=="女" ? "checked='checked'" :""} /></td>
<td>职位:</td>
<td><input type="text" name="userInfo.station"
value="${user.userInfo.station}" /></td>
<td>电话号码:</td>
<td><input type="text" name="userInfo.telephone"
value="${user.userInfo.telephone}" /></td>
</tr>
<tr>
<td>员工级别:</td>
<td><select name="userInfo.userLevel">
<option value="4"
${user.userInfo.userLevel=="4" ? "selected='selected'":""}>普通用户</option>
<option value="3"
${user.userInfo.userLevel=="3" ? "selected='selected'":""}>部门经理</option>
<option value="2"
${user.userInfo.userLevel=="2" ? "selected='selected'":""}>副总</option>
<option value="1"
${user.userInfo.userLevel=="1" ? "selected='selected'":""}>总经理</option>
<option value="0"
${user.userInfo.userLevel=="0" ? "selected='selected'":""}>超级管理员</option>
</select></td>
<td>说明:</td>
<td><input type="text" name="userInfo.remark"
value="${user.userInfo.remark}" /></td>
<td>排序号:</td>
<td><input type="text" name="userInfo.orderNo"
value="${user.userInfo.orderNo}" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
* left.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%>
<%@ include file="../baselist.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" rev="stylesheet" type="text/css"
href="${ctx}/staticfile/skin/default/css/left.css" media="all" />
</head>
<body id="left_frame">
<div class="PositionFrame_black" id="PositionFrame"></div>
<!-- begin1 -->
<div id="sidebar" class="sidebar">
<div class="sidebar_t">
<div class="sidebar_t_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_t_r"></div>
</div>
<div class="panel">
<div class="panel_icon">
<img src="${ctx}/staticfile/skin/default/images/icon/user1_lock.png" />
</div>
<div class="panel-header">
<div class="panel-title">权限管理</div>
<div class="panel-content">
<ul>
<shiro:hasPermission name="部门管理">
<li><a href="${ctx}/sysadmin/dept/list"
onclick="linkHighlighted(this)" target="main" id="aa_1">部门管理</a></li>
</shiro:hasPermission>
<shiro:hasPermission name="用户管理">
<li><a href="${ctx}/sysadmin/user/list"
onclick="linkHighlighted(this)" target="main" id="aa_1">用户管理</a></li>
</shiro:hasPermission>
<shiro:hasPermission name="角色管理">
<li><a href="${ctx}/sysadmin/role/list"
onclick="linkHighlighted(this)" target="main" id="aa_1">角色管理</a></li>
</shiro:hasPermission>
<shiro:hasPermission name="模块管理">
<li><a href="${ctx}/sysadmin/module/list"
onclick="linkHighlighted(this)" target="main" id="aa_1">模块管理</a></li>
</shiro:hasPermission>
</ul>
</div>
</div>
</div>
<div class="sidebar_t">
<div class="sidebar_b_l"></div>
<div class="sidebar_t_c"></div>
<div class="sidebar_b_r"></div>
</div>
</div>
</body>
</html>
* main.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>模块介绍</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
</head>
<body>
<form>
<div class="textbox"></div>
<div class="modelDiv">
<table class="modelTable" cellspacing="1">
<tr>
<td colspan="2" class="modelTitle">系统维护模块介绍</td>
</tr>
<tr>
<td colspan="2" class="subModelTitle">权限管理</td>
</tr>
<tr>
<td class="model_intro_left">多维权限控制模型:</td>
<td class="model_intro_right">横向模块权限控制(菜单、按钮、状态、功能点), 纵向数据权限控制(行政部门、职务等级、管辖部门、管辖人员)。
<p>=严密的数据访问控制,充分保障数据的安全性。</p>
</td>
</tr>
<tr>
<td class="model_intro_left">角色管理:</td>
<td class="model_intro_right">对人员角色进行权限分配, 实现用户权限批量设置, 支持细粒度权限控制分配(菜单、按钮、状态、功能点)。</td>
</tr>
<tr>
<td class="model_intro_left" width="169">部门管理:</td>
<td class="model_intro_right" width="81%">对企业部门进行维护和管理。</td>
</tr>
<tr>
<td class="model_intro_left" width="169">用户管理:</td>
<td class="model_intro_right" width="81%">可对系统操作用户进行维护管理, 维护信息包括用户账号、所属部门、功能权限等, 并支持对特殊用户账号锁定禁用操作。
<br/>管辖部门管辖人员:实现对特定部门, 特定人员分管关系。
</td>
</tr>
<tfoot>
<tr>
<td colspan="2" class="tableFooter"></td>
</tr>
</tfoot>
</table>
</div>
</form>
</body>
</html>
* base.jsp
# #
<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<link rel="stylesheet" rev="stylesheet" type="text/css"
href="${ctx}/staticfile/skin/default/css/default.css" media="all" />
<link rel="stylesheet" rev="stylesheet" type="text/css"
href="${ctx}/staticfile/skin/default/css/button.css" media="all" />
<link rel="stylesheet" rev="stylesheet" type="text/css"
href="${ctx}/staticfile/skin/default/css/table.css" media="all" />
<script language="javascript" src="${ctx}/staticfile/js/common.js"></script>
* baselist.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="base.jsp"%>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/css/extreme/extremecomponents.css" />
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/css/extreme/extremesite.css" />
* error.jsp
# #
<%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Error Page</title>
<script language="javascript">
function showDetail()
{
var elm = document.getElementById('detail_system_error_msg');
if(elm.style.display == '') {
elm.style.display = 'none';
}else {
elm.style.display = '';
}
}
</script>
</head>
<body style="font-family:微软雅黑;">
<div id="content" style="text-align:left;">
<table>
<tr>
<td><img alt="system internal error" src="../staticfile/images/error.jpg"/></td>
<td>
<br>
<b>错误信息:</b>
<div style="color:blue;padding:15px;">
<s:property value="exception.message"/>
</div>
<button onclick="history.back();">返回</button>
<p><a href="#" onclick="showDetail();">点击这里查看具体错误消息</a>,
<br/>
报告以下错误消息给系统管理员,可以更加快速的解决问题;
<br/>联系电话:120
</p>
</td>
</tr>
</table>
<div id="detail_system_error_msg" style="display:none;text-align:left;padding-bottom:100px;">
<pre><s:property value="exceptionStack"/></pre>
</div>
</div>
</body>
</html>
* index.jsp
# #
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="base.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>国际物流汇通商贸</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/login.css" media="all" />
<script src="${ctx}/staticfile/components/pngfix/DD_belatedPNG.js"></script>
<script> DD_belatedPNG.fix('*'); </script>
</head>
<body>
<form id="login_main" method="post">
<div id="png">
<div class="box">
<div class="zck">
<div class="inputstyle">
<div class="inputlable">用户名:
<input type="text" value="" name="userName" id="userName" onFocus="this.select();" title="请您输入用户名"/>
<div id="ts" style="z-index:1;">
</div>
</div>
<div class="inputlable">密 码:
<input type="password" value="" name="password" id="password" onfocus="$('#ts').css('display','none');this.select();"
onKeyDown="javascript:if(event.keyCode==13){ submitFind(); }" title="请您输入密码"/>
</div>
</div>
<div class="btnstyle">
<input class="loginImgOut" value="" type="button" onclick="formSubmit('${ctx}/fmain.action','_self');"
onmouseover="this.className='loginImgOver'"
onmouseout="this.className='loginImgOut'"
/>
<input class="resetImgOut" value="" type="button"
onmouseover="this.className='resetImgOver'"
onmouseout="this.className='resetImgOut'"
/>
</div>
</div>
<div class="mirro"></div>
<logic:notEmpty name="loginFailed">
<c:if test="${loginFailed==1}">
<c:set var="errorInfo" value="用户名或密码错误, 请重新输入!"/>
</c:if>
<c:if test="${loginFailed==2}">
<c:set var="errorInfo" value="用户名不存在, 请重新输入!"/>
</c:if>
<div class="erro" id="erro">
<div class="erro_intro">
${errorInfo}
</div>
</div>
</logic:notEmpty>
</div>
</div>
</div>
</form>
<script type="text/JavaScript">
document.getElementById('login_main').userName.focus();
</script>
</body>
</html>
* web.xml
# #
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<!-- 懒加载加载spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring/applicationContext*.xml</param-value>
</context-param>
<!--Spring的ApplicationContext 载入(懒加载) -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- shiro【权限VS安全】过滤器 -->
<filter>
<!-- 此处的name 要和配置文件中 filter工厂的id一样 -->
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<!-- 让shiro过滤器的生命周期 交给web容器管理 -->
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 解决乱码过滤器(只能解决post的,get的需要手动解决) -->
<!-- 乱码过滤器 -->
<filter>
<filter-name>characterFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 分发器 -->
<servlet>
<servlet-name>springmvc_dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 启动spring-mvc配置文件 -->
<param-value>classpath:/spring/spring-mvc-config.xml</param-value>
</init-param>
<!-- 设置优先级 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 分发器的映射 -->
<servlet-mapping>
<servlet-name>springmvc_dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 欢迎界面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
* index.jsp
# #
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
</head>
<script type="text/javascript">
//程序首页,进来就直接发请求
top.location.href = "tologin.action"; //javascript页面跳转,防止页面嵌套,直接跳到最顶部窗口
</script>
<body>
</body>
</html>
pom.xml
#
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.peng</groupId>
<artifactId>ssmm</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>ssmm Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- junit -->
<junit.version>4.12</junit.version>
<!-- spring -->
<spring.version>4.2.3.RELEASE</spring.version>
<!-- mybatis -->
<mybatis.version>3.2.8</mybatis.version>
<mybatis.spring.version>1.2.2</mybatis.spring.version>
<mybatis.paginator.version>1.2.15</mybatis.paginator.version>
<!-- mysql -->
<mysql.version>5.1.32</mysql.version>
<!-- -->
<bonecp-spring.version>0.8.0.RELEASE</bonecp-spring.version>
<!-- -->
<druid.version>1.0.9</druid.version>
<!-- mapper -->
<mapper.version>2.3.2</mapper.version>
<!-- -->
<pagehelper.version>3.4.2</pagehelper.version>
<!-- -->
<jsqlparser.version>0.9.1</jsqlparser.version>
<!-- log4j -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<!--jstl -->
<jstl.version>1.2</jstl.version>
<!--servlet -->
<servlet-api.version>2.5</servlet-api.version>
<!--jsp -->
<jsp-api.version>2.0</jsp-api.version>
<!--c3p0 -->
<c3p0.version>0.9.1.2</c3p0.version>
<jackson.version>2.9.3</jackson.version>
<!-- servlet-api版本号 -->
<servlet_api.version>4.0.0-b07</servlet_api.version>
</properties>
<dependencies>
<!-- ztree -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0.version}</version>
</dependency>
<!-- 日志文件管理包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>${mybatis.paginator.version}</version>
</dependency>
<!-- 通用Mapper,所有的单表的代码都不用编写 -->
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mapper</artifactId>
<version>${mapper.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 超高性能连接池 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java6</artifactId>
<version>2.3.9</version>
<scope>compile</scope>
</dependency>
<!-- Apache Shiro 权限架构 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>${jsqlparser.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- JSP相关 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- 字符加密、解密 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- 数据校验 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
</dependency>
<!-- 上传组件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- servlet_api依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet_api.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8077</port>
<!-- 斜杠代表(代表项目地址:localhost:/8077) -->
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
技术
框架
- Maven+Spring+SpringMVC+Mybatis
图示
登录【权限+加密】s
- Shiro框架
图示
树结构显示
- zTree框架
图示
表模型设计
- PowerDesigner15工具
图示
还没有评论,来说两句吧...