您的位置:首页 > 大数据

大数据正式41之汇通项目

2018-01-09 23:43 288 查看

大数据正式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
3284e
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工具

图示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: