大数据正式41之汇通项目

小灰灰 2022-06-02 09:23 516阅读 0赞

大数据正式41之汇通项目

先睹为快

  • 登录页面

    • nD8ui2d.png
  • 系统管理

    • 20180109234346673
  • 部门管理

    • vQmnJGD.png
  • 用户管理

    • MYh7JzV.png
  • 角色管理

    • x4Mg7Pg.png
  • 模块管理

    • PnQl7Xf.png

数据库

  • 数据库

    • PrukGwi.png
  • 表展示

    • 总设计

      • 9eVzxfR.png
    • 具体结构

      • 部门表

        • QCXv6a6.png
      • 模块表

        • rvJNS7C.png
      • 角色-模块表

        • 8mYa8k8.png
      • 角色表

        • cz0zwZN.png
      • 角色-用户表

        • wS6QXHq.png
      • 用户信息表

        • xoc70jL.png
      • 用户表

        • tq6zNfL.png
  • 具体sql

    #

    1. /*
    2. SQLyog Ultimate - MySQL GUI v8.2
    3. MySQL - 5.6.24 : Database - ht
    4. *********************************************************************
    5. */
  1. /*!40101 SET NAMES utf8 */;
  2. /*!40101 SET SQL_MODE=''*/;
  3. /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
  4. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  5. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  6. /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  7. CREATE DATABASE /*!32312 IF NOT EXISTS*/`ht` /*!40100 DEFAULT CHARACTER SET utf8 */;
  8. USE `ht`;
  9. /*Table structure for table `dept_p` */
  10. DROP TABLE IF EXISTS `dept_p`;
  11. CREATE TABLE `dept_p` (
  12. `DEPT_ID` varchar(40) NOT NULL,
  13. `PARENT_ID` varchar(40) DEFAULT NULL COMMENT '自关联,多对一',
  14. `DEPT_NAME` varchar(50) DEFAULT NULL,
  15. `STATE` int(11) DEFAULT NULL COMMENT '1启用0停用',
  16. `CREATE_BY` varchar(40) DEFAULT NULL,
  17. `CREATE_DEPT` varchar(40) DEFAULT NULL,
  18. `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  19. `UPDATE_BY` varchar(40) DEFAULT NULL,
  20. `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  21. PRIMARY KEY (`DEPT_ID`)
  22. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  23. /*Data for the table `dept_p` */
  24. 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');
  25. /*Table structure for table `module_p` */
  26. DROP TABLE IF EXISTS `module_p`;
  27. CREATE TABLE `module_p` (
  28. `MODULE_ID` varchar(40) NOT NULL,
  29. `PARENT_ID` varchar(40) DEFAULT NULL COMMENT '父模块ID',
  30. `NAME` varchar(100) DEFAULT NULL,
  31. `CTYPE` int(11) DEFAULT NULL COMMENT '1主菜单/2左侧菜单/3按钮',
  32. `STATE` int(11) DEFAULT NULL COMMENT '1启用0停用',
  33. `ORDER_NO` int(11) DEFAULT NULL,
  34. `REMARK` varchar(100) DEFAULT NULL,
  35. `CREATE_BY` varchar(40) DEFAULT NULL,
  36. `CREATE_DEPT` varchar(40) DEFAULT NULL,
  37. `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  38. `UPDATE_BY` varchar(40) DEFAULT NULL,
  39. `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  40. PRIMARY KEY (`MODULE_ID`)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  42. /*Data for the table `module_p` */
  43. 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');
  44. /*Table structure for table `role_module_p` */
  45. DROP TABLE IF EXISTS `role_module_p`;
  46. CREATE TABLE `role_module_p` (
  47. `MODULE_ID` varchar(40) DEFAULT NULL,
  48. `ROLE_ID` varchar(40) DEFAULT NULL
  49. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  50. /*Data for the table `role_module_p` */
  51. 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');
  52. /*Table structure for table `role_p` */
  53. DROP TABLE IF EXISTS `role_p`;
  54. CREATE TABLE `role_p` (
  55. `ROLE_ID` varchar(40) NOT NULL,
  56. `NAME` varchar(30) DEFAULT NULL,
  57. `REMARKS` varchar(100) DEFAULT NULL,
  58. `ORDER_NO` int(11) DEFAULT NULL,
  59. `CREATE_BY` varchar(40) DEFAULT NULL,
  60. `CREATE_DEPT` varchar(40) DEFAULT NULL,
  61. `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  62. `UPDATE_BY` varchar(40) DEFAULT NULL,
  63. `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  64. PRIMARY KEY (`ROLE_ID`)
  65. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  66. /*Data for the table `role_p` */
  67. 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');
  68. /*Table structure for table `role_user_p` */
  69. DROP TABLE IF EXISTS `role_user_p`;
  70. CREATE TABLE `role_user_p` (
  71. `ROLE_ID` varchar(40) DEFAULT NULL,
  72. `USER_ID` varchar(40) DEFAULT NULL
  73. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  74. /*Data for the table `role_user_p` */
  75. insert into `role_user_p`(`ROLE_ID`,`USER_ID`) values ('1','1'),('2','2'),('3','666');
  76. /*Table structure for table `user_info_p` */
  77. DROP TABLE IF EXISTS `user_info_p`;
  78. CREATE TABLE `user_info_p` (
  79. `USER_INFO_ID` varchar(40) NOT NULL,
  80. `NAME` varchar(20) DEFAULT NULL,
  81. `CARD_NO` varchar(20) DEFAULT NULL,
  82. `MANAGER_ID` varchar(40) DEFAULT NULL,
  83. `JOIN_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  84. `SALARY` decimal(8,2) DEFAULT NULL,
  85. `BIRTHDAY` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  86. `GENDER` char(1) DEFAULT NULL,
  87. `STATION` varchar(20) DEFAULT NULL,
  88. `TELEPHONE` varchar(100) DEFAULT NULL,
  89. `USER_LEVEL` char(1) DEFAULT NULL COMMENT '4-普通用户 3-部门经理 2-副总 1-总经理 0-超级管理员',
  90. `REMARK` varchar(600) DEFAULT NULL,
  91. `ORDER_NO` int(11) DEFAULT NULL,
  92. `CREATE_BY` varchar(40) DEFAULT NULL COMMENT '登录人编号',
  93. `CREATE_DEPT` varchar(40) DEFAULT NULL COMMENT '登录人所属部门编号',
  94. `CREATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  95. `UPDATE_BY` varchar(40) DEFAULT NULL,
  96. `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  97. PRIMARY KEY (`USER_INFO_ID`)
  98. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  99. /*Data for the table `user_info_p` */
  100. 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');
  101. /*Table structure for table `user_p` */
  102. DROP TABLE IF EXISTS `user_p`;
  103. CREATE TABLE `user_p` (
  104. `USER_ID` varchar(40) NOT NULL,
  105. `DEPT_ID` varchar(40) DEFAULT NULL,
  106. `USERNAME` varchar(50) DEFAULT NULL,
  107. `PASSWORD` varchar(64) DEFAULT NULL,
  108. `STATE` int(11) DEFAULT NULL COMMENT '1启用0停用',
  109. `CREATE_BY` varchar(40) DEFAULT NULL,
  110. `CREATE_DEPT` varchar(40) DEFAULT NULL,
  111. `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  112. `UPDATE_BY` varchar(40) DEFAULT NULL,
  113. `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  114. PRIMARY KEY (`USER_ID`)
  115. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  116. /*Data for the table `user_p` */
  117. 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');
  118. /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
  119. /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
  120. /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
  121. /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

项目结构

  • GVHWeNv.png

关键代码

  • 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

              #

              1. package com.peng.shiro;
              2. import org.apache.shiro.authc.AuthenticationInfo;
              3. import org.apache.shiro.authc.AuthenticationToken;
              4. import org.apache.shiro.authc.UsernamePasswordToken;
              5. import org.apache.shiro.authc.credential.SimpleCredentialsMatcher;
              6. import org.apache.shiro.crypto.hash.Md5Hash;
              7. /**
              8. * 加密
              9. *
              10. * @author Administrator
              11. *
              12. */
              13. public class AuthMatcher extends SimpleCredentialsMatcher {
              14. // 对原材料的密码进行加密
              15. @Override
              16. public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
              17. // 对原材的密码进行加密
              18. UsernamePasswordToken upToken = (UsernamePasswordToken) token;
              19. String password = String.valueOf(upToken.getPassword());
              20. Md5Hash m5 = new Md5Hash(password, upToken.getUsername(), 3);
              21. upToken.setPassword(m5.toString().toCharArray());
              22. return super.doCredentialsMatch(upToken, info);
              23. }
              24. }
            • AuthRealm

              #

              1. package com.peng.shiro;
              2. import java.util.List;
              3. import org.apache.shiro.authc.AuthenticationException;
              4. import org.apache.shiro.authc.AuthenticationInfo;
              5. import org.apache.shiro.authc.AuthenticationToken;
              6. import org.apache.shiro.authc.SimpleAuthenticationInfo;
              7. import org.apache.shiro.authc.UsernamePasswordToken;
              8. import org.apache.shiro.authz.AuthorizationInfo;
              9. import org.apache.shiro.authz.SimpleAuthorizationInfo;
              10. import org.apache.shiro.realm.SimpleAccountRealm;
              11. import org.apache.shiro.subject.PrincipalCollection;
              12. import org.springframework.beans.factory.annotation.Autowired;
              13. import org.springframework.beans.factory.annotation.Qualifier;
              14. import com.peng.pojo.User;
              15. import com.peng.service.UserService;
              16. /**
              17. * 原材料
              18. *
              19. * @author Administrator
              20. *
              21. */
              22. public class AuthRealm extends SimpleAccountRealm {
              23. @Autowired
              24. @Qualifier("userService")
              25. private UserService userService;
              26. // 登录原材料
              27. @Override
              28. protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
              29. // 需要给安全中心提供登录校验的原材料【用户登录的信息】【正确的信息(数据库中的数据)】
              30. UsernamePasswordToken upToken = (UsernamePasswordToken) token;
              31. // 得到正确信息
              32. User user = userService.findByUsername(upToken.getUsername());
              33. // 登录的原材料信息[principal正确信息 credentials用户密码 realName材料类的名称]
              34. AuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getPassword(), this.getName());
              35. return info;
              36. }
              37. // 权限材料
              38. @Override
              39. protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
              40. // 真正的用户
              41. User user = (User) principals.getPrimaryPrincipal();
              42. List<String> user_permissions = userService.findModuleNamesByUserId(user.getUserId());
              43. SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
              44. info.addStringPermissions(user_permissions);
              45. return info;
              46. }
              47. }
    • resourse

      • mybatis

        • mappers

          • DeptMapper.xml
          • ModuleMapper.xml
          • RoleMapper.xml
          • userInfoMapper.xml
          • UserMapper.xml

            #

            1. <?xml version="1.0" encoding="UTF-8" ?>
            2. <!DOCTYPE mapper
            3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
            5. <mapper namespace="com.peng.mapper.UserMapper">
            6. <!-- 查询所有的用户 -->
            7. <resultMap type="User" id="userRM" autoMapping="true">
            8. <id column="user_id" property="userId"></id>
            9. <association property="userInfo" javaType="UserInfo">
            10. <id column="user_info_id" property="userInfoId"></id>
            11. <result column="name" property="name"></result>
            12. <result column="card_no" property="cardNo"></result>
            13. <result column="join_date" property="joinDate"></result>
            14. <result column="salary" property="salary"></result>
            15. <result column="birthday" property="birthday"></result>
            16. <result column="gender" property="gender"></result>
            17. <result column="station" property="station"></result>
            18. <result column="telephone" property="telephone"></result>
            19. <result column="user_level" property="userLevel"></result>
            20. <result column="remark" property="remark"></result>
            21. <result column="order_no" property="orderNo"></result>
            22. <result column="create_by" property="createBy"></result>
            23. <result column="create_dept" property="createDept"></result>
            24. <result column="create_time" property="createTime"></result>
            25. <result column="update_by" property="updateBy"></result>
            26. <result column="update_time" property="updateTime"></result>
            27. <association property="managerUserInfo" javaType="UserInfo">
            28. <id column="m_id" property="userInfoId"></id>
            29. <result column="m_name" property="name"></result>
            30. </association>
            31. </association>
            32. <association property="dept" javaType="Dept">
            33. <id column="d_id" property="deptId"></id>
            34. <result column="dept_name" property="deptName"></result>
            35. </association>
            36. </resultMap>
            37. <!-- 查询所有用户信息 -->
            38. <select id="findAll" resultMap="userRM">
            39. SELECT * FROM
            40. (SELECT *FROM
            41. (SELECT user_id,dept_id,username,PASSWORD,state FROM user_p) u
            42. LEFT
            43. JOIN
            44. (SELECT * FROM
            45. user_info_p uip1
            46. LEFT JOIN
            47. (SELECT user_info_id
            48. m_id,NAME m_name FROM user_info_p)uip2
            49. ON uip1.manager_id=uip2.m_id) ui
            50. ON u.user_id=ui.user_info_id) uii
            51. LEFT JOIN
            52. (SELECT dept_id
            53. d_id,dept_name FROM dept_p) dp
            54. ON uii.dept_id=dp.d_id
            55. </select>
            56. <!-- 通过id更改状态 :这里的参数deptIds直接写在collection -->
            57. <update id="changeState">
            58. update user_p set state=#{state} where user_id in
            59. <foreach collection="userIds" item="id" open="(" close=")"
            60. separator=",">#{id}
            61. </foreach>
            62. </update>
            63. <!-- 批量删除user:记得把该user对应的userInfo信息也删除掉 -->
            64. <delete id="deleteUserByIds">
            65. delete from user_p where user_id in
            66. <foreach collection="array" item="id" open="(" close=")"
            67. separator=",">#{id}
            68. </foreach>
            69. </delete>
            70. <!-- 保存用户信息 -->
            71. <insert id="saveUser">
            72. INSERT INTO user_p
            73. (user_id,dept_id,username,PASSWORD,state,create_by)
            74. VALUES(#{userId},#{dept.deptId},#{username},#{password},#{state},#{createBy})
            75. </insert>
            76. <!-- 查询单个用户信息 -->
            77. <select id="findOneById" resultMap="userRM">
            78. select * from(SELECT * FROM
            79. (SELECT *FROM
            80. (SELECT user_id,dept_id,username,PASSWORD,state FROM
            81. user_p) u
            82. LEFT
            83. JOIN
            84. (SELECT * FROM
            85. user_info_p uip1
            86. LEFT JOIN
            87. (SELECT
            88. user_info_id
            89. m_id,NAME m_name FROM user_info_p)uip2
            90. ON
            91. uip1.manager_id=uip2.m_id) ui
            92. ON u.user_id=ui.user_info_id) uii
            93. LEFT
            94. JOIN
            95. (SELECT dept_id
            96. d_id,dept_name FROM dept_p) dp
            97. ON
            98. uii.dept_id=dp.d_id) uall where
            99. uall.user_id=#{userId}
            100. </select>
            101. <!-- 更新用户 -->
            102. <update id="updateUser">
            103. update user_p
            104. <set>
            105. <if test="dept.deptId!=null">dept_id=#{dept.deptId},</if>
            106. <if test="username!=null">username=#{username},</if>
            107. <if test="password!=null">password=#{password},</if>
            108. <if test="state!=null">state=#{state},</if>
            109. <if test="updateBy!=null">update_by=#{updateBy},</if>
            110. <if test="updateTime!=null">update_time=#{updateTime},</if>
            111. </set>
            112. where user_id=#{userId}
            113. </update>
            114. <!-- 登录查询 -->
            115. <select id="login" resultType="User">
            116. select * from user_p where
            117. username=#{userName} and password=#{password}
            118. </select>
            119. <!-- 查询单个用户信息 -->
            120. <select id="findByUsername" resultMap="userRM">
            121. select * from(SELECT *
            122. FROM
            123. (SELECT *FROM
            124. (SELECT user_id,dept_id,username,PASSWORD,state FROM
            125. user_p) u
            126. LEFT
            127. JOIN
            128. (SELECT * FROM
            129. user_info_p uip1
            130. LEFT JOIN
            131. (SELECT
            132. user_info_id
            133. m_id,NAME m_name FROM user_info_p)uip2
            134. ON
            135. uip1.manager_id=uip2.m_id) ui
            136. ON u.user_id=ui.user_info_id) uii
            137. LEFT
            138. JOIN
            139. (SELECT dept_id
            140. d_id,dept_name FROM dept_p) dp
            141. ON
            142. uii.dept_id=dp.d_id) uall where
            143. uall.username=#{username}
            144. </select>
            145. <!-- 查询用户所有的权限 -->
            146. <select id="findModuleNamesByUserId" resultType="java.lang.String">
            147. SELECT DISTINCT NAME FROM module_p WHERE module_id IN((SELECT module_id FROM
            148. role_module_p m WHERE role_id IN(SELECT role_id FROM role_user_p WHERE
            149. user_id=#{userId})))
            150. </select>
            151. </mapper>
        • sqlMapConfig.xml

          #

          1. <?xml version="1.0" encoding="UTF-8" ?>
          2. <!DOCTYPE configuration
          3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
          4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
          5. <configuration>
          6. <settings>
          7. <!-- 开启驼峰自动映射 -->
          8. <setting name="mapUnderscoreToCamelCase" value="true" />
          9. <!--二级缓存的总开关 -->
          10. <setting name="cacheEnabled" value="false" />
          11. </settings>
          12. </configuration>
      • spring

        • applicationContext.xml

          #

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <beans xmlns="http://www.springframework.org/schema/beans"
          3. xmlns:context="http://www.springframework.org/schema/context"
          4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
          6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
          7. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
          8. <!-- 扫描包 -->
          9. <context:component-scan base-package="com.peng"></context:component-scan>
          10. <!-- 扫描注解 -->
          11. <context:annotation-config></context:annotation-config>
          12. <!-- 配置文件 -->
          13. <bean
          14. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
          15. <property name="location" value="classpath:/jdbc_config.properties"></property>
          16. </bean>
          17. <!--c3p0 -->
          18. <bean id="c3p0dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
          19. <property name="driverClass" value="${jdbc.driver}"></property>
          20. <property name="jdbcUrl" value="${jdbc.url}"></property>
          21. <property name="user" value="${jdbc.user}"></property>
          22. <property name="password" value="${jdbc.password}"></property>
          23. <property name="minPoolSize" value="3"></property> <!--最小连接数 -->
          24. <property name="initialPoolSize" value="5"></property> <!-- 初始化连接数 -->
          25. <property name="acquireIncrement" value="3"></property> <!-- 每次增长的个数 -->
          26. </bean>
          27. </beans>
        • applicationContext-mybatis.xml

          #

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <beans xmlns="http://www.springframework.org/schema/beans"
          3. xmlns:context="http://www.springframework.org/schema/context"
          4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
          6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
          7. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
          8. <!-- sql的会话工厂 -->
          9. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
          10. <!-- 引入数据源 -->
          11. <property name="dataSource" ref="c3p0dataSource"></property>
          12. <!-- 引入核心配置文件 -->
          13. <property name="configLocation" value="classpath:/mybatis/sqlMapConfig.xml"></property>
          14. <!-- 别名包 -->
          15. <property name="typeAliasesPackage" value="com.peng.pojo" />
          16. <!-- 引入映射文件 -->
          17. <property name="mapperLocations" value="classpath:/mybatis/mappers/*.xml"></property>
          18. </bean>
          19. <!-- Mapper接口的扫描器 -->
          20. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
          21. <property name="basePackage" value="com.peng.mapper"></property>
          22. </bean>
          23. </beans>
        • applicationContext-shiro.xml

          #

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <beans xmlns="http://www.springframework.org/schema/beans"
          3. xmlns:context="http://www.springframework.org/schema/context"
          4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
          6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
          7. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
          8. <!-- 扫描包 -->
          9. <context:component-scan base-package="com.peng"></context:component-scan>
          10. <!-- 扫描注解 -->
          11. <context:annotation-config></context:annotation-config>
          12. <!-- 1.安全管理器 -->
          13. <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager ">
          14. <!-- 3.将原材料注入 -->
          15. <property name="realm" ref="authRealm"></property>
          16. </bean>
          17. <!-- 2.原材料 -->
          18. <bean class="com.peng.shiro.AuthRealm" id="authRealm">
          19. <!-- 5.给原材料加密 -->
          20. <property name="credentialsMatcher" ref="authMatcher"></property>
          21. </bean>
          22. <!-- 4.密码加密 -->
          23. <bean class="com.peng.shiro.AuthMatcher" id="authMatcher"></bean>
          24. <!-- 6.权限认证观察器 -->
          25. <bean
          26. class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"
          27. id="advisor">
          28. <!-- 7.注入安全管理器 -->
          29. <property name="securityManager" ref="securityManager"></property>
          30. </bean>
          31. <!-- 8.shiro的过滤工厂 -->
          32. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
          33. <!-- 9.注入安全管理器 -->
          34. <property name="securityManager" ref="securityManager"></property>
          35. <!-- 10.登录地址 (注:默认放行) -->
          36. <property name="loginUrl" value="/tologin.action"></property>
          37. <!-- 11.配置拦截和放行的地址 -->
          38. <property name="filterChainDefinitions">
          39. <value>
          40. <!-- anon:放行;authc拦截 -->
          41. <!-- loginUrl默认放行 -->
          42. /login.action=anon
          43. <!-- /*代表所有请求;/**代表所有请求和资源文件 -->
          44. /staticfile/**=anon
          45. <!-- 拦截所有(除去登录相关的和静态资源) -->
          46. /**=authc
          47. </value>
          48. </property>
          49. </bean>
          50. </beans>
        • applicationContext-transaction.xml

          #

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <beans xmlns="http://www.springframework.org/schema/beans"
          3. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
          4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
          6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
          7. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
          8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
          9. <!--配置事务 -->
          10. <tx:annotation-driven transaction-manager="transactionManager" />
          11. <bean id="transactionManager"
          12. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          13. <property name="dataSource" ref="c3p0dataSource"></property>
          14. </bean>
          15. </beans>
        • applicationContext-mvc-config.xml

          #

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <beans xmlns="http://www.springframework.org/schema/beans"
          3. xmlns:context="http://www.springframework.org/schema/context"
          4. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
          6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
          7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
          8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd ">
          9. <!-- 扫描包 -->
          10. <context:component-scan base-package="com.peng"></context:component-scan>
          11. <!-- 扫描注解 -->
          12. <context:annotation-config></context:annotation-config>
          13. <!-- mvc注解 -->
          14. <mvc:annotation-driven></mvc:annotation-driven>
          15. <!-- 资源解析器:前后缀 -->
          16. <bean
          17. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          18. <property name="prefix" value="/WEB-INF/pages">
          19. </property>
          20. <property name="suffix" value=".jsp"></property>
          21. </bean>
          22. <!-- 文件上传资源解析器 -->
          23. <bean id="multipartResolver"
          24. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
          25. <property name="defaultEncoding" value="utf-8"></property>
          26. <property name="maxUploadSize" value="10485760000"></property>
          27. <property name="maxInMemorySize" value="40960"></property>
          28. </bean>
          29. <!-- 处理静态资源被“/”所拦截的问题 -->
          30. <mvc:default-servlet-handler />
          31. </beans>
      • jdbc_config.properties

        #

        1. jdbc.user=root
        2. jdbc.password=root
        3. jdbc.url=jdbc\:mysql\://localhost\:3306/ht?zeroDateTimeBehavior=convertToNull
        4. jdbc.driver=com.mysql.jdbc.Driver
      • log4j.properties

        #

        1. log4j.rootLogger=DEBUG, Console
        2. #Console
        3. log4j.appender.Console=org.apache.log4j.ConsoleAppender
        4. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
        5. log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
        6. log4j.logger.java.sql.ResultSet=INFO
        7. log4j.logger.org.apache=INFO
        8. log4j.logger.java.sql.Connection=DEBUG
        9. log4j.logger.java.sql.Statement=DEBUG
        10. log4j.logger.java.sql.PreparedStatement=DEBUG
    • webapp

      • staticfile【静态资源略】

        • fP8tyG8.png
      • WEB-INF

        • pages

          • basicinfo

            • left.jsp

              #

              1. <%@ page language="java" pageEncoding="UTF-8"%>
              2. <%@ include file="../baselist.jsp" %>
              3. <html xmlns="http://www.w3.org/1999/xhtml">
              4. <head>
              5. <title></title>
              6. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
              7. </head>
              8. <body id="left_frame">
              9. <div class="PositionFrame_black" id="PositionFrame"></div>
  1. <!-- begin1 -->
  2. <div id="sidebar" class="sidebar">
  3. <div class="sidebar_t">
  4. <div class="sidebar_t_l"></div>
  5. <div class="sidebar_t_c"></div>
  6. <div class="sidebar_t_r"></div>
  7. </div>
  8. <div class="panel">
  9. <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/document_into.png" /></div>
  10. <div class="panel-header">
  11. <div class="panel-title">基础代码管理</div>
  12. <div class="panel-content">
  13. <ul>
  14. <li>
  15. <a href="#" id="aa_1" onclick="linkHighlighted(this)">系统代码</a>
  16. </li>
  17. <li><a href="${ctx}/basicinfo/factoryAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">厂家信息</a></li>
  18. </ul>
  19. </div>
  20. </div>
  21. </div>
  22. <div class="sidebar_t">
  23. <div class="sidebar_b_l"></div>
  24. <div class="sidebar_t_c"></div>
  25. <div class="sidebar_b_r"></div>
  26. </div>
  27. </div>
  28. </body>
  29. </html>
  30. * main.jsp
  31. # #
  32. <%@ page language="java" pageEncoding="UTF-8"%>
  33. <%@ include file="../base.jsp" %>
  34. <html xmlns="http://www.w3.org/1999/xhtml">
  35. <head>
  36. <title>模块介绍</title>
  37. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
  38. </head>
  39. <body>
  40. <form>
  41. <div class="textbox"></div>
  42. <div class="modelDiv">
  43. <table class="modelTable" cellspacing="1">
  44. <tr>
  45. <td colspan="2" class="modelTitle">基础信息管理模块介绍</td>
  46. </tr>
  47. <tr>
  48. <td colspan="2" class="subModelTitle">基础代码管理</td>
  49. </tr>
  50. <tr>
  51. <td class="model_intro_left" width="169">系统代码:</td>
  52. <td class="model_intro_right" width="81%">统一管理系统中的基础代码, 相比“基础代码”它结果将形成多级树型结构。</td>
  53. </tr>
  54. <tr>
  55. <td colspan="2" class="subModelTitle">基础信息管理</td>
  56. </tr>
  57. <tr>
  58. <td class="model_intro_left">厂家信息:</td>
  59. <td class="model_intro_right">在购销合同中货物和附件中可选择对应的厂家。</td>
  60. </tr>
  61. <tfoot>
  62. <tr>
  63. <td colspan="2" class="tableFooter"></td>
  64. </tr>
  65. </tfoot>
  66. </table>
  67. </div>
  68. </form>
  69. </body>
  70. </html>
  71. * cargo
  72. * left.jsp
  73. # #
  74. <%@ page language="java" pageEncoding="UTF-8"%>
  75. <%@ include file="../baselist.jsp" %>
  76. <html xmlns="http://www.w3.org/1999/xhtml">
  77. <head>
  78. <title></title>
  79. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
  80. </head>
  81. <body id="left_frame">
  82. <div class="PositionFrame_black" id="PositionFrame"></div>
  83. <!-- begin1 -->
  84. <div id="sidebar" class="sidebar">
  85. <div class="sidebar_t">
  86. <div class="sidebar_t_l"></div>
  87. <div class="sidebar_t_c"></div>
  88. <div class="sidebar_t_r"></div>
  89. </div>
  90. <div class="panel">
  91. <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/cubes.png"/></div>
  92. <div class="panel-header">
  93. <div class="panel-title">货运管理</div>
  94. <div class="panel-content">
  95. <ul>
  96. <li><a href="${ctx}/cargo/contractAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">购销合同</a></li>
  97. <li><a href="${ctx}/cargo/outProductAction_toedit" onclick="linkHighlighted(this)" target="main" id="aa_1">出货表</a></li>
  98. <li><a href="${ctx}/cargo/export/exportAction_contractList" onclick="linkHighlighted(this)" target="main" id="aa_1">合同查询</a></li>
  99. <li><a href="${ctx}/cargo/export/exportAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">出口报运</a></li>
  100. <li><a href="${ctx}/cargo/export/exportAction_ws" onclick="linkHighlighted(this)" target="main" id="aa_1">出口跟踪</a></li>
  101. <li><a href="${ctx}/cargo/export/contractHisAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">历史购销合同查询</a></li>
  102. </ul>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="sidebar_t">
  107. <div class="sidebar_b_l"></div>
  108. <div class="sidebar_t_c"></div>
  109. <div class="sidebar_b_r"></div>
  110. </div>
  111. </div>
  112. </body>
  113. </html>
  114. * main.jsp
  115. # #
  116. <%@ page language="java" pageEncoding="UTF-8"%>
  117. <%@ include file="../base.jsp" %>
  118. <html xmlns="http://www.w3.org/1999/xhtml">
  119. <head>
  120. <title>模块介绍</title>
  121. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
  122. </head>
  123. <body>
  124. <form>
  125. <div class="textbox"></div>
  126. <div class="modelDiv">
  127. <table class="modelTable" cellspacing="1">
  128. <tr>
  129. <td colspan="2" class="modelTitle">货运模块介绍</td>
  130. </tr>
  131. <tr>
  132. <td class="subModelTitle">购销合同</td>
  133. <td class="model_intro_right">客户签单后,公司向厂家下达购销合同,包括货物的具体要求和交期。合同按不同厂家打印购销合同单,附件单独打印,由公司驻当地销售人员分发到各工厂。<br>
  134. 归档:标识彻底完成的项目,方便统计。在报运时也不能在选这些合同。<br>
  135. </td>
  136. </tr>
  137. <tr>
  138. <td class="subModelTitle">出货表</td>
  139. <td class="model_intro_right">根据合同和指定的船期月份,统计当月的出货情况。<br></td>
  140. </tr>
  141. <tr>
  142. <td class="subModelTitle">出口报运单</td>
  143. <td class="model_intro_right">根据购销合同制定出口商品报运单。报运时可以将多个购销合同形成一单报运;也可以只走部分货物。<br>
  144. 分批走货:合同可以多个一起报运; 而一个合同可以分多次走货; 根据合同和合同货物的走货状态可以查看合同的走货情况。
  145. <!-- 修改走货状态:1)合同新增货物、修改货物 2)报运货物修改、删除货物、增补货物、删除报运 -->
  146. </td>
  147. </tr>
  148. <tr>
  149. <td class="subModelTitle">HOME装箱单</td>
  150. <td class="model_intro_right">根据出口报运单制定HOME装箱单,先制作HOME装箱单给客户看,客人同意,则直接制定相应装箱单;如有调整,则重新复制修改出口报运单,可能拆成多个报运。<br></td>
  151. </tr>
  152. <tr>
  153. <td class="subModelTitle">装箱单</td>
  154. <td class="model_intro_right">根据出口报运单制定装箱单,填写发票号、发票时间,以及客人等相关信息。<br></td>
  155. </tr>
  156. <tr>
  157. <td class="subModelTitle">委托书</td>
  158. <td class="model_intro_right">根据装箱制定海运或空运委托书。<br></td>
  159. </tr>
  160. <tr>
  161. <td class="subModelTitle">发票</td>
  162. <td class="model_intro_right">根据装箱制定发票。<br></td>
  163. </tr>
  164. <tr>
  165. <td class="subModelTitle" nowrap>财务出口报运单</td>
  166. <td class="model_intro_right">根据报运制定财务出口报运单。<br></td>
  167. </tr>
  168. <tfoot>
  169. <tr>
  170. <td colspan="2" class="tableFooter"></td>
  171. </tr>
  172. </tfoot>
  173. </table>
  174. </div>
  175. </form>
  176. </body>
  177. </html>
  178. * home
  179. * fmain.jsp
  180. # #
  181. <%@ page language="java" pageEncoding="UTF-8"%>
  182. <html>
  183. <head>
  184. <title>国际物流汇通商贸</title>
  185. </head>
  186. <frameset rows="125,*" name="topFrameset" border="0">
  187. <frame name="top_frame" scrolling="no" target="middleFrameSet" src="title.action">
  188. <frameset cols="202,*" height="100%" name="middle" frameborder="no" border="0" framespacing="0">
  189. <frame name="leftFrame" class="leftFrame" target="main" scrolling="no" src="home/Left.action" />
  190. <frame name="main" class="rightFrame" src="home/Main.action" />
  191. </frameset>
  192. </frameset>
  193. <noframes>
  194. <body>
  195. <p>此网页使用了框架,但您的浏览器不支持框架。</p>
  196. </body>
  197. </noframes>
  198. </html>
  199. * left.jsp
  200. # #
  201. <%@ page language="java" pageEncoding="UTF-8"%>
  202. <%@ include file="../base.jsp" %>
  203. <html xmlns="http://www.w3.org/1999/xhtml">
  204. <head>
  205. <title></title>
  206. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
  207. <script language="javascript" src="${ctx}/staticfile/js/common.js"></script>
  208. <script language="javascript" src="${ctx}/staticfile/js/ajax/setFastMenu.js"></script>
  209. <script language="javascript" src="${ctx}/staticfile/js/pngfix_map.js"></script>
  210. <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
  211. <script type="text/javascript" src="${ctx}/staticfile/skin/default/js/toggle.js"></script>
  212. <script language="javascript">
  213. $().ready(function(){
  214. $(fastMenu).hide();
  215. //document.getElementById('aa_3').click(); //默认打开我的留言板页面
  216. });
  217. function showMenu( who ){
  218. if(who=="fastMenu"){
  219. $(fastMenu).show();
  220. $(customerMenu).hide();
  221. }else if(who=="customerMenu"){
  222. $(customerMenu).show();
  223. $(fastMenu).hide();
  224. }
  225. }
  226. </script>
  227. </head>
  228. <body id="left_frame">
  229. <div class="PositionFrame_black" id="PositionFrame"></div>
  230. <div id="sidebar" class="sidebar">
  231. <div class="sidebar_t">
  232. <div class="sidebar_t_l"></div>
  233. <div class="sidebar_t_c"></div>
  234. <div class="sidebar_t_r"></div>
  235. </div>
  236. <div class="panel">
  237. <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/user2.png" /></div>
  238. <div class="panel-header">
  239. <div class="panel-title">个人工作台</div>
  240. <div class="panel-content">
  241. <ul>
  242. <li><a href="${ctx}/staticfile/tomain.action?modelName=home" target="main" id="aa_3" onclick="linkHighlighted(this)">我的留言板</a></li>
  243. <li><a href="${ctx}/staticfile/home/workflow/tasklist.action" target="main" id="aa_2" onclick="linkHighlighted(this)">我的代办任务</a></li>
  244. <li><a href="${ctx}/staticfile/baseinfo/leavebill/list.action" target="main" id="aa_1" onclick="linkHighlighted(this)">请假单管理</a></li>
  245. </ul>
  246. </div>
  247. </div>
  248. </div>
  249. <div class="sidebar_t">
  250. <div class="sidebar_b_l"></div>
  251. <div class="sidebar_t_c"></div>
  252. <div class="sidebar_b_r"></div>
  253. </div>
  254. </div>
  255. <div id="sidebar" class="sidebar">
  256. <div class="sidebar_t">
  257. <div class="sidebar_t_l"></div>
  258. <div class="sidebar_t_c"></div>
  259. <div class="sidebar_t_r"></div>
  260. </div>
  261. <div class="panel">
  262. <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/user1_find.png" /></div>
  263. <div class="panel-header">
  264. <div class="panel-title">我的常用功能</div>
  265. <div style="margin-top:5px;"></div>
  266. <!-- 以上为永久固定栏目,以下为活动栏目 -->
  267. <div style="border-bottom:1px dotted #cee1df;">
  268. 切换:<a href="#" onmousemove="javascript:showMenu('fastMenu');">快捷菜单</a>
  269. /
  270. <a href="#" onmousemove="javascript:showMenu('customerMenu');">自定义菜单</a>
  271. </div>
  272. <div id="fastMenu">
  273. <div class="panel-content"></div><a href="#" class="DelFastMenu"><font color="gray">清除常用功能列表</font></a>
  274. </div>
  275. <div id="customerMenu">
  276. <div class="FastMenu"><img src="${ctx}/staticfile/skin/default/images/notice.gif" style="margin-right:5px;" border="0" /><font color="gray">您还没定义您的菜单</font></div>
  277. </div>
  278. </div>
  279. </div>
  280. <div class="sidebar_t">
  281. <div class="sidebar_b_l"></div>
  282. <div class="sidebar_t_c"></div>
  283. <div class="sidebar_b_r"></div>
  284. </div>
  285. </div>
  286. <!-- begin1 -->
  287. <div id="sidebar" class="sidebar">
  288. <div class="sidebar_t">
  289. <div class="sidebar_t_l"></div>
  290. <div class="sidebar_t_c"></div>
  291. <div class="sidebar_t_r"></div>
  292. </div>
  293. <div class="panel">
  294. <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/businessman2.png" /></div>
  295. <div class="panel-header">
  296. <div class="panel-title">
  297. 用户设定
  298. </div>
  299. <div class="panel-content">
  300. <ul>
  301. <li><a href="${ctx}/sysadmin/userAction_toUpdatePassword" id="aa_2" onclick="linkHighlighted(this)" target="main">个人信息修改</a></li>
  302. <li><a href="#" id="aa_2" onclick="linkHighlighted(this)">系统使用反馈</a></li>
  303. </ul>
  304. </div>
  305. </div>
  306. </div>
  307. <div class="sidebar_t">
  308. <div class="sidebar_b_l"></div>
  309. <div class="sidebar_t_c"></div>
  310. <div class="sidebar_b_r"></div>
  311. </div>
  312. </div>
  313. <!-- end1 -->
  314. </body>
  315. </html>
  316. * main.jsp
  317. # #
  318. <%@ page language="java" pageEncoding="UTF-8"%>
  319. <%@ include file="../base.jsp" %>
  320. <html xmlns="http://www.w3.org/1999/xhtml">
  321. <html>
  322. <head>
  323. <title></title>
  324. <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
  325. <style>
  326. .curbody{ CURSOR: url(${ctx}/staticfile/images/olmsg/shubiao.ani);background:url(${ctx}/staticfile/images/olmsg/pic738x571.jpg); }
  327. .msgcontent{ width:218px;overflow:hidden;word-break:break-all;padding:10px;font-size:14px;color:#339966;font-family:Tahoma;line-height:180%; }
  328. .msgcontent p{ text-indent:0px;}
  329. .msgcontent ul( margin:0px;}
  330. .msgbackcontent{ width:218px;overflow:hidden;word-break:break-all;padding:10px;font-size:14px;color:#339966;font-family:Tahoma;line-height:180%; }
  331. .msgbackcontent p{ text-indent:0px;}
  332. .msgbackcontent ul( margin:0px;}
  333. li{ text-indent:0px;margin:0px;list-style:default; }
  334. </style>
  335. </head>
  336. <script language="javascript">
  337. //-- 控制层移动start of script -->
  338. var Obj='';
  339. var index=10000;//z-index;
  340. var color='';
  341. var str='';
  342. document.onmouseup=MUp
  343. document.onmousemove=MMove
  344. function MMove(){
  345. if(Obj!=''){
  346. document.all(Obj).style.left=event.x-pX;
  347. document.all(Obj).style.top=event.y-pY;
  348. }
  349. }
  350. function MUp(){
  351. if(Obj!=''){
  352. document.all(Obj).releaseCapture();
  353. Obj='';
  354. }
  355. var srcEle = event.srcElement;
  356. var children = srcEle.children;
  357. if(children.length>0){
  358. children[1].value = "1"; //isChange
  359. children[2].value = event.x-pX;
  360. children[3].value = event.y-pY;
  361. }
  362. }
  363. function MDown(objtd,id){
  364. Obj=id
  365. document.all(Obj).setCapture()
  366. pX = event.x-document.all(Obj).style.pixelLeft;
  367. pY = event.y-document.all(Obj).style.pixelTop;
  368. }
  369. //-- 控制层移动end of script -->
  370. //获得焦点;
  371. function getFocus(obj)
  372. {
  373. if(obj.style.zIndex!=index)
  374. {
  375. index = index + 2;
  376. var idx = index;
  377. obj.style.zIndex=idx;
  378. //obj.nextSibling.style.zIndex=idx-1;
  379. }
  380. }
  381. //针对未已阅的、未回复的、工作任务
  382. function msgrevoke( id ){
  383. if(confirm("是否确定要撤销此条信息?")){
  384. //_Submit("/home/olmsgRevokeAction.do?flag=revoke&id="+id,null,"撤销");
  385. }
  386. }
  387. //需回复的留言
  388. function msgback( id ){
  389. //_Submit("/home/olmsgUpdateAction.do?flag=back&id="+id,null,"回复");
  390. }
  391. function msgupdate( id , flag ){
  392. if(flag=="read"){
  393. if(!confirm("是否确定已阅此条信息?")){
  394. return false;
  395. }
  396. }else if(flag=="accept"){
  397. if(!confirm("是否确定接受此任务?")){
  398. return false;
  399. }
  400. }else if(flag=="fail"){
  401. if(!confirm("是否确定此任务未完成?")){
  402. return false;
  403. }
  404. }else if(flag=="success"){
  405. if(!confirm("是否确定此任务已完成?")){
  406. return false;
  407. }
  408. }else if(flag=="finished"){
  409. if(!confirm("是否确定完成?")){
  410. return false;
  411. }
  412. }
  413. //_Submit("/home/olmsgUpdateAction.do?flag="+flag+"&id="+id,null,"修改");
  414. }
  415. function msgdel( id ){
  416. if(confirm("是否确定要删除此条信息?")){
  417. //_Submit("/home/olmsgDeleteAction.do?delId="+id,null,"删除");
  418. }
  419. }
  420. function msgstate( id , flag ){
  421. if(flag=="read"){
  422. if(!confirm("是否确定已阅此条信息?")){
  423. return false;
  424. }
  425. }else if(flag=="accept"){
  426. if(!confirm("是否确定接受此任务?")){
  427. return false;
  428. }
  429. }else if(flag=="fail"){
  430. if(!confirm("是否确定此任务未完成?")){
  431. return false;
  432. }
  433. }else if(flag=="success"){
  434. if(!confirm("是否确定此任务已完成?")){
  435. return false;
  436. }
  437. }else if(flag=="finished"){
  438. if(!confirm("是否确定完成?")){
  439. return false;
  440. }
  441. }
  442. //_Submit("/home/olmsgStateAction.do?flag="+flag+"&delId="+id,null,"已阅");
  443. }
  444. function changRowColor(obj){
  445. //obj.removeAttribute("className");
  446. //alert(obj.className);
  447. //obj.setAttribute("bgcolor","#FFECB0");
  448. //obj.sytle.backgroundColor = "#FFECB0";
  449. }
  450. function removeOverRowColor(obj){
  451. //alert(obj.getAttribute("style"));
  452. }
  453. function killErrors() {
  454. return true;
  455. }
  456. window.onerror = killErrors;
  457. </script>
  458. <body class="curbody">
  459. <form name="form2">
  460. <!-- 工具栏部分 ToolBar -->
  461. <div id="menubar">
  462. <div id="middleMenubar">
  463. <div id="innerMenubar">
  464. <div id="navMenubar">
  465. <ul>
  466. <li id="new"><a href="#">新建</a></li>
  467. <li id="save"><a href="#" title="保存留言窗口的位置信息">位置</a></li>
  468. <li id="stat"><a href="#">历史</a></li>
  469. </ul>
  470. </div>
  471. </div>
  472. </div>
  473. </div>
  474. <logic:notEmpty name="olmsgList">
  475. <div id='ff8080813d00613e013d0067909e0009' style='position:absolute;left:122px;top:97px;z-index:1001; height:164px;background:none;' onmousedown='getFocus(this)'>
  476. <table border=0 cellspacing="0" cellpadding="0" width="220">
  477. <tr>
  478. <td style='cursor:move;' onmousedown="MDown(this,'ff8080813d00613e013d0067909e0009')" background="${ctx}/staticfile/images/olmsg/C0FFE51.gif" height="45">
  479. <input type="hidden" name="id" class="input" value="ff8080813d00613e013d0067909e0009" />
  480. <input type="hidden" name="isChange" class="input" value="0" />
  481. <input type="hidden" name="posX" class="input" value="122" />
  482. <input type="hidden" name="posY" class="input" value="97" />
  483. </td>
  484. </tr>
  485. <tr>
  486. <td style='cursor:move;white-space:nowrap;' width='100%' onmousedown="MDown('ff8080813d00613e013d0067909e0009')" background="${ctx}/staticfile/images/olmsg/C0FFE52.gif" >
  487. <div style="float:left;width:130px;padding-left:7px;font-family:Tahoma;color:gray;font-style : oblique;">
  488. 2013-02-22 13:37
  489. </div>
  490. <div style="float:right;width:80px;text-align:right;padding-right:7px;">
  491. <a style='cursor:pointer;' title="编辑" onclick="msgupdate('ff8080813d00613e013d0067909e0009','edit')"><img src="${ctx}/staticfile/images/olmsg/doc_edit.gif"/></a>
  492. <a style='cursor:pointer;' title="删除" onclick="msgdel('ff8080813d00613e013d0067909e0009')"><img src="${ctx}/staticfile/images/olmsg/doc_del.gif"/></a>
  493. </div>
  494. </td>
  495. </tr>
  496. <tr>
  497. <td background="${ctx}/staticfile/images/olmsg/C0FFE52.gif">
  498. <div class="msgcontent">
  499. 欢迎使用杰管理平台
  500. </div>
  501. </td>
  502. </tr>
  503. <tr>
  504. <td id="tagBPic" background="${ctx}/staticfile/images/olmsg/C0FFE53.gif" height="63">
  505. <table border="0" width="100%" cellspacing="0" cellpadding="0">
  506. <tr>
  507. <td width="50" align="center">
  508. <img border="0" src="${ctx}/staticfile/images/olmsg/2.gif">
  509. </td>
  510. <td style="text-align:right;padding-right:8px;" nowrap>
  511. [备忘]
  512. <!-- [回复] -->
  513. <!-- [回执] -->
  514. <!-- [撤销原因] -->
  515. <!-- state==99[完成] -->
  516. </td>
  517. </tr>
  518. </table>
  519. </td>
  520. </tr>
  521. </table>
  522. </div>
  523. <div id='ff8080813d00613e013d00681494000a' style='position:absolute;left:442px;top:91px;z-index:1002; height:164px;background:none;' onmousedown='getFocus(this)'>
  524. <table border=0 cellspacing="0" cellpadding="0" width="220">
  525. <tr>
  526. <td style='cursor:move;' onmousedown="MDown(this,'ff8080813d00613e013d00681494000a')" background="${ctx}/staticfile/images/olmsg/FFE7E81.gif" height="45">
  527. <input type="hidden" name="id" class="input" value="ff8080813d00613e013d00681494000a" />
  528. <input type="hidden" name="isChange" class="input" value="0" />
  529. <input type="hidden" name="posX" class="input" value="442" />
  530. <input type="hidden" name="posY" class="input" value="91" />
  531. </td>
  532. </tr>
  533. <tr>
  534. <td style='cursor:move;white-space:nowrap;' width='100%' onmousedown="MDown('ff8080813d00613e013d00681494000a')" background="${ctx}/staticfile/images/olmsg/FFE7E82.gif" >
  535. <div style="float:left;width:130px;padding-left:7px;font-family:Tahoma;color:gray;font-style : oblique;">
  536. 2013-02-22 13:37
  537. </div>
  538. <div style="float:right;width:80px;text-align:right;padding-right:7px;">
  539. <a style='cursor:pointer;' title="编辑" onclick="msgupdate('ff8080813d00613e013d00681494000a','edit')"><img src="${ctx}/staticfile/images/olmsg/doc_edit.gif"/></a>
  540. <a style='cursor:pointer;' title="删除" onclick="msgdel('ff8080813d00613e013d00681494000a')"><img src="${ctx}/staticfile/images/olmsg/doc_del.gif"/></a>
  541. </div>
  542. </td>
  543. </tr>
  544. <tr>
  545. <td background="${ctx}/staticfile/images/olmsg/FFE7E82.gif">
  546. <div class="msgcontent">
  547. 本系统实现货运企业日常管理<br />
  548. 包括合同、报运、装箱、委托、发票等业务
  549. </div>
  550. </td>
  551. </tr>
  552. <tr>
  553. <td id="tagBPic" background="${ctx}/staticfile/images/olmsg/FFE7E83.gif" height="63">
  554. <table border="0" width="100%" cellspacing="0" cellpadding="0">
  555. <tr>
  556. <td width="50" align="center">
  557. <img border="0" src="${ctx}/staticfile/images/olmsg/0.gif">
  558. </td>
  559. <td style="text-align:right;padding-right:8px;" nowrap>
  560. [备忘]
  561. <!-- [回复] -->
  562. <!-- [回执] -->
  563. <!-- [撤销原因] -->
  564. <!-- state==99[完成] -->
  565. </td>
  566. </tr>
  567. </table>
  568. </td>
  569. </tr>
  570. </table>
  571. </div>
  572. </logic:notEmpty>
  573. </form>
  574. </body>
  575. </html>
  576. * title.jsp
  577. # #
  578. <%@ page language="java" pageEncoding="UTF-8"%>
  579. <%@ include file="../base.jsp"%>
  580. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  581. <jsp:useBean id="now" class="java.util.Date" />
  582. <html xmlns="http://www.w3.org/1999/xhtml">
  583. <head>
  584. <title></title>
  585. <!-- 调用样式表 -->
  586. <link rel="stylesheet" rev="stylesheet" type="text/css"
  587. href="${ctx}/staticfile/skin/default/css/default.css" media="all" />
  588. <link rel="stylesheet" rev="stylesheet" type="text/css"
  589. href="${ctx}/staticfile/skin/default/css/title.css" media="all" />
  590. <script type="text/javascript"
  591. src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
  592. <script language="javascript" src="${ctx}/js/pngfix_map.js"></script>
  593. <script language="javascript" src="${ctx}/js/common.js"></script>
  594. <!-- 调用外部 JavaScript 脚本语言 -->
  595. <script language="javascript">
  596. function CustomTitle() {
  597. var Me = document.getElementById('memos');
  598. var Loin = document.getElementById('logins');
  599. var Lout = document.getElementById('logout');
  600. Me.onmouseover = function() {
  601. document.getElementById('memo').style.background = 'url(${ctx}/staticfile/skin/default/images/title/memo2.gif) no-repeat'
  602. };
  603. Me.onmouseout = function() {
  604. document.getElementById('memo').style.background = 'url(${ctx}/staticfile/skin/default/images/title/memo.gif) no-repeat'
  605. };
  606. Loin.onmouseover = function() {
  607. document.getElementById('small_login').style.background = 'url(${ctx}/staticfile/skin/default/images/title/small_login2.gif) no-repeat'
  608. };
  609. Loin.onmouseout = function() {
  610. document.getElementById('small_login').style.background = 'url(${ctx}/staticfile/skin/default/images/title/small_login.gif) no-repeat'
  611. };
  612. Lout.onmouseover = function() {
  613. document.getElementById('small_login_out').style.background = 'url(${ctx}/staticfile/skin/default/images/title/login_out2.gif) no-repeat left -55px;'
  614. };
  615. Lout.onmouseout = function() {
  616. document.getElementById('small_login_out').style.background = 'url(${ctx}/staticfile/skin/default/images/title/login_out.gif) no-repeat'
  617. };
  618. }
  619. function linkHighlightMenu(obj) {
  620. var links = document.getElementsByTagName('span');
  621. for (var i = 0; i < links.length; i++) {
  622. if (links[i].id.indexOf('topmenu') != -1) {
  623. links[i].style.background = 'url("${ctx}/staticfile/skin/default/images/title/li_dot.gif1") no-repeat right 8px';
  624. links[i].style.color = '';
  625. links[i].style.fontWeight = '';
  626. links[i].style.borderTop = '';
  627. links[i].style.borderLeft = '';
  628. links[i].style.borderRight = '';
  629. links[i].style.padding = '';
  630. }
  631. }
  632. obj.style.background = 'url("${ctx}/staticfile/skin/default/images/title/button_bg.jpg") no-repeat';
  633. obj.style.color = "#fff";
  634. obj.style.fontWeight = 'bold';
  635. obj.style.padding = '6px 11x 5px 13px;';
  636. obj.blur(); //去掉图片的焦点框,使界面看起来漂亮 updated by tony
  637. }
  638. //sendRequest('000001');
  639. var y = -5; //个人信息栏初始Y坐标
  640. var dy = -40; //显示后Y坐标
  641. function doLoginDiv() {
  642. ShowLoginDiv();
  643. }
  644. function HideLoginDiv() {
  645. dy = dy - 5;
  646. MoveHideLoginDiv();
  647. }
  648. function MoveHideLoginDiv() {
  649. if (dy > -40) {
  650. setTimeout("HideLoginDiv()", 10);
  651. } else {
  652. y = -40;
  653. dy = -40;
  654. }
  655. document.getElementById("userInfo").style.top = dy;
  656. }
  657. function ShowLoginDiv() {
  658. y = y + 5;
  659. MoveShowLoginDiv();
  660. }
  661. function MoveShowLoginDiv() {
  662. if (y < -5) {
  663. setTimeout("ShowLoginDiv()", 10);
  664. } else {
  665. dy = -5;
  666. y = -1
  667. }
  668. document.getElementById("userInfo").style.top = y;
  669. }
  670. function ShowFrameDiv(queryString) {
  671. return false; //暂时屏蔽
  672. top.middle.switches.loading.style.display = 'block';
  673. // top.middle.switches.note_iframe.location.href="../home/empmemo/empMemoExpressCreate.jsp";
  674. setTimeout(ShowFrameMain(queryString), 10);
  675. }
  676. function ShowFrameMain(passValue) {
  677. var url = "../home/doConsoleListAction.do"; //../home/empMemoCreateAction.do
  678. var topFrame = top.middle.switches;
  679. document.getElementById('PositionFrame').style.display = "block";
  680. top.middle.contents.left_frame.style.border = "none";
  681. top.middle.contents.left_frame.style.overflow = "hidden";
  682. topFrame.PositionFrame_main.style.display = "block";
  683. topFrame.PositionFrame.style.display = "block";
  684. topFrame.PositionFrame_notebook.style.display = 'block';
  685. topFrame.PositionFrame_notebook2.style.display = 'none';
  686. topFrame.PositionFrame_my_note.style.display = 'block';
  687. //topFrame.note_iframe.location.href=url;
  688. form1.action = url;
  689. form1.method = "post";
  690. form1.target = "note_iframe";
  691. // alert(passValue);
  692. if (passValue) {
  693. form1.innerHTML = '<input type="hidden" name="passTitle" value="' + passValue[0] + '"/>';
  694. form1.innerHTML = form1.innerHTML
  695. + '<input type="hidden" name="passContent" value="' +passValue[1]+ '"/>';
  696. }
  697. form1.submit();
  698. top.middle.contents.PositionFrame.style.display = "block";
  699. topFrame.loading.style.display = 'none';
  700. topFrame.PositionFrame_main.style.visibility = 'visible';
  701. topFrame.visibility.style.display = 'block';
  702. }
  703. function offset(place) {
  704. var mask = $('#mask');
  705. var targetObj = $('#menuContent');
  706. var maxOffset = targetObj.width() - mask.width();
  707. var currLeft = targetObj.css('left');
  708. // alert(maxOffset + " " + currLeft);
  709. var currLeft = Number(currLeft.substring(0, currLeft.length - 2));
  710. if (place == "right" && (0 - currLeft) <= maxOffset) {
  711. targetObj.css('left', currLeft - 5);
  712. } else if (place == "left" && currLeft < 0) {
  713. targetObj.css('left', currLeft + 5);
  714. }
  715. }
  716. function periodOffset(thisObj, place) {
  717. var intervalId = window.setInterval(function() {
  718. offset(place)
  719. }, 1);
  720. $(thisObj).mouseout(function() {
  721. window.clearInterval(intervalId)
  722. });
  723. }
  724. function checkDirectionKey() {
  725. var mask = $('#mask');
  726. var bodyWidth = $('body').width();
  727. //alert(bodyWidth - 450);
  728. mask.width(bodyWidth - 250); //450
  729. //alert(mask.width());
  730. var targetObj = $('#menuContent');
  731. var maxOffset = targetObj.width() - mask.width();
  732. var currLeft = targetObj.css('left');
  733. // alert(maxOffset + " " + currLeft);
  734. var currLeft = Number(currLeft.substring(0, currLeft.length - 2));
  735. // alert((0-currLeft) <= maxOffset);
  736. if (!(0 - currLeft) <= maxOffset || currLeft < 0) {
  737. $("#rightKey").show("slow");
  738. $("#leftKey").show("slow");
  739. if (!isShow) {
  740. $("#prompt_div").show("slow", function() {
  741. window.setTimeout(function() {
  742. $("#prompt_div").hide("slow")
  743. }, 10000);
  744. isShow = true;
  745. });
  746. }
  747. } else {
  748. $("#rightKey").hide();
  749. $("#leftKey").hide();
  750. $("#prompt_div").hide();
  751. }
  752. }
  753. var isShow = false;
  754. $(function() {
  755. window.onresize = checkDirectionKey;
  756. $("#rightKey").hide();
  757. $("#leftKey").hide();
  758. $("#prompt_div").hide();
  759. checkDirectionKey();
  760. });
  761. function logout() {
  762. return formSubmit("${ctx}/tologinout.action", "_top");
  763. }
  764. function toModule(moduleName) {
  765. top.leftFrame.location.href = moduleName + '/Left.action';
  766. top.main.location.href = moduleName + '/Main.action';
  767. linkHighlightMenu(this);
  768. }
  769. </script>
  770. </head>
  771. <body onSelectStart="return true">
  772. <!-- 文档主题部分开始 -->
  773. <div class="PositionFrame_black" id="PositionFrame"></div>
  774. <div id="userInfo" style="z-index: 999;" onclick="HideLoginDiv()"
  775. title="点击关闭">
  776. <img
  777. src="${ctx}/staticfile/skin/default/images/title/avataronline.gif"
  778. border="0" style="margin-top: -1px;" /> 您好:<strong>${_CURRENT_USER.userInfo.name}</strong> |
  779. 您所属单位:<strong> <c:if test="${!empty _CURRENT_USER.dept}">
  780. ${_CURRENT_USER.dept.deptName}
  781. </c:if>
  782. </strong> <img
  783. src="${ctx}/staticfile/skin/default/images/title/close.gif"
  784. border="0" />
  785. </div>
  786. <a id="memos" style="cursor: pointer;" onclick="toModule('home');"
  787. target="_top" title="点击切换到系统首页"><div id="memo" class="memo"
  788. title="点击切换到系统首页"></div></a>
  789. <a id="logins" style="cursor: pointer;" onclick="doLoginDiv();"
  790. title="点击显示您的登录信息"><div id="small_login" class="small_login"
  791. title="点击显示您的登录信息"></div></a>
  792. <a id="logout" style="cursor: pointer;" onclick="logout();"
  793. target="_top" title="点击退出系统"><div id="small_login_out"
  794. class="small_login_out" title="点击退出系统"></div></a>
  795. <div class="headerBg">
  796. <div class="top_logo">
  797. <div class="navMenu" style="float: left; text-align: left;">
  798. <div class="titleDate" style="float: left;">
  799. <fmt:formatDate value="${now}" pattern="yyyy年M月d日 E" />
  800. </div>
  801. <div style="height: 29px;">
  802. <span id="leftKey" onmouseover="periodOffset(this, 'left')"><img
  803. src="${ctx}/staticfile/skin/default/images/title/left_arrow.png" /></span>
  804. <div class="mavMeau_top"></div>
  805. <div id="mask">
  806. <div id="menuContent">
  807. <span id="topmenu" onclick="toModule('home');">系统首页</span><span
  808. id="tm_separator"></span>
  809. <shiro:hasPermission name="货运管理">
  810. <span id="topmenu" onclick="toModule('cargo');">货运管理</span>
  811. </shiro:hasPermission>
  812. <span id="tm_separator"></span>
  813. <shiro:hasPermission name="基础信息">
  814. <span id="topmenu" onclick="toModule('baseinfo');">基础信息</span>
  815. </shiro:hasPermission>
  816. <span id="tm_separator"> </span>
  817. <shiro:hasPermission name="系统管理">
  818. <span id="topmenu" onclick="toModule('sysadmin');">系统管理</span>
  819. </shiro:hasPermission>
  820. </div>
  821. <span id="rightKey" onmouseover="periodOffset(this, 'right')"><img
  822. src="${ctx}/staticfile/skin/default/images/title/right_arrow.png" /></span>
  823. </div>
  824. </div>
  825. </div>
  826. </div>
  827. <div id="prompt_div">
  828. <img src="${ctx}/staticfile/skin/default/images/title/prompt.png" /><span
  829. style="position: absolute; top: 2px; left: 35px; z-index: 99999; width: 100%; color: #FFFFFF; text-align: left;">鼠标指向箭头位置<br />可显示更多菜单项
  830. </span>
  831. </div>
  832. <form name="form1" style="display: none;"></form>
  833. <%
  834. //备忘录等使用
  835. %>
  836. </body>
  837. </html>
  838. * stat
  839. * left.jsp
  840. # #
  841. <%@ page language="java" pageEncoding="UTF-8"%>
  842. <%@ include file="../base.jsp" %>
  843. <html xmlns="http://www.w3.org/1999/xhtml">
  844. <head>
  845. <title></title>
  846. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/>
  847. <script language="javascript" src="${ctx}/staticfile/js/common.js"></script>
  848. <script language="javascript" src="${ctx}/staticfile/js/ajax/setFastMenu.js"></script>
  849. <script language="javascript" src="${ctx}/staticfile/js/pngfix_map.js"></script>
  850. <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script>
  851. <script type="text/javascript" src="${ctx}/staticfile/skin/default/js/toggle.js"></script>
  852. </head>
  853. <body id="left_frame">
  854. <!-- begin1 -->
  855. <div id="sidebar" class="sidebar">
  856. <div class="sidebar_t">
  857. <div class="sidebar_t_l"></div>
  858. <div class="sidebar_t_c"></div>
  859. <div class="sidebar_t_r"></div>
  860. </div>
  861. <div class="panel">
  862. <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/document_chart.png" /></div>
  863. <div class="panel-header">
  864. <div class="panel-title">
  865. 统计查询
  866. </div>
  867. <div class="panel-content">
  868. <ul>
  869. <li><a href="${ctx}/stat/statChartAction_factorySale" onclick="linkHighlighted(this)" target="main" id="aa_1">生产厂家销售情况</a></li>
  870. <li><a href="${ctx}/stat/statChartAction_productSale" onclick="linkHighlighted(this)" target="main" id="aa_1">产品销售排行</a></li>
  871. <li><a href="${ctx}/stat/statChartAction_onlineInfo" onclick="linkHighlighted(this)" target="main" id="aa_1">系统访问压力图</a></li>
  872. <li><a href="${ctx}/stat/statChartAction_factorySaleEcharts" onclick="linkHighlighted(this)" target="main" id="aa_1">eCharts</a></li>
  873. <li><a href="${ctx}/stat/statChartAction_onlineinfoHighCharts" onclick="linkHighlighted(this)" target="main" id="aa_1">highCharts</a></li>
  874. </ul>
  875. </div>
  876. </div>
  877. </div>
  878. <div class="sidebar_t">
  879. <div class="sidebar_b_l"></div>
  880. <div class="sidebar_t_c"></div>
  881. <div class="sidebar_b_r"></div>
  882. </div>
  883. </div>
  884. <!-- end1 -->
  885. </body>
  886. </html>
  887. * main.jsp
  888. # #
  889. <%@ page language="java" pageEncoding="UTF-8"%>
  890. <%@ include file="../base.jsp" %>
  891. <html xmlns="http://www.w3.org/1999/xhtml">
  892. <head>
  893. <title>模块介绍</title>
  894. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
  895. </head>
  896. <body>
  897. <form>
  898. <div class="textbox"></div>
  899. <div class="modelDiv">
  900. <table class="modelTable" cellspacing="1">
  901. <tr>
  902. <td colspan="2" class="modelTitle">统计分析介绍</td>
  903. </tr>
  904. <tr>
  905. <td class="subModelTitle">生产厂家销售情况</td>
  906. <td class="model_intro_right">和公司合作的生产厂家销售情况饼形图<br>
  907. </td>
  908. </tr>
  909. <tr>
  910. <td class="subModelTitle">产品销售排行</td>
  911. <td class="model_intro_right">统计公司最畅销的产品是哪些?<br>统计公司最滞销的产品是哪些?</td>
  912. </tr>
  913. <tr>
  914. <td class="subModelTitle">系统访问</td>
  915. <td class="model_intro_right">统计系统一天用户访问系统的情况,何时访问频繁,何时访问较少,方便开发人员对系统进行优化。</td>
  916. </tr>
  917. <tfoot>
  918. <tr>
  919. <td colspan="2" class="tableFooter"></td>
  920. </tr>
  921. </tfoot>
  922. </table>
  923. </div>
  924. </form>
  925. </body>
  926. </html>
  927. * sysadmin
  928. * dept
  929. * JDeptCreate.jsp
  930. # #
  931. <%@ page language="java" pageEncoding="UTF-8"%>
  932. <%@ include file="../../baselist.jsp"%>
  933. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  934. <html xmlns="http://www.w3.org/1999/xhtml">
  935. <head>
  936. <title>新增部门</title>
  937. <script type="text/javascript">
  938. //保存错误
  939. if ("${save_error}" != "") {
  940. alert("${save_error}");
  941. }
  942. </script>
  943. </head>
  944. <body>
  945. <form name="icform" method="post">
  946. <div id="menubar">
  947. <div id="middleMenubar">
  948. <div id="innerMenubar">
  949. <div id="navMenubar">
  950. <ul>
  951. <li id="view"><a onclick="window.history.back()">返回</a></li>
  952. <li id="new"><a
  953. onclick="formSubmit('save','_self');this.blur()">新增</a></li>
  954. </ul>
  955. </div>
  956. </div>
  957. </div>
  958. </div>
  959. <div class="textbox-title">
  960. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  961. 添加部门
  962. </div>
  963. <div>
  964. <div class="eXtremeTable">
  965. <table id="ec_table" class="tableRegion" width="98%">
  966. <tr>
  967. <td>部门名称:</td>
  968. <td><input type="text" name="deptName" /></td>
  969. </tr>
  970. <tr>
  971. <td>部门ID:</td>
  972. <td><input type="text" name="deptId" /></td>
  973. </tr>
  974. <tr>
  975. <td>上级部门:</td>
  976. <td><select name="parentDept.deptId">
  977. <option>--无上级--</option>
  978. <c:forEach items="${deptList}" var="dept">
  979. <option value="${dept.deptId}">${dept.deptName}</option>
  980. </c:forEach>
  981. </select></td>
  982. </tr>
  983. <tr>
  984. <td>部门状态</td>
  985. <td>关闭<input type="radio" name="state" value="0" />开启<input
  986. type="radio" name="state" value="1" /></td>
  987. </tr>
  988. </table>
  989. </div>
  990. </div>
  991. </form>
  992. </body>
  993. </html>
  994. * JDeptList.jsp
  995. # #
  996. <%@ page language="java" pageEncoding="UTF-8"%>
  997. <%@ include file="../../baselist.jsp"%>
  998. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  999. <html xmlns="http://www.w3.org/1999/xhtml">
  1000. <head>
  1001. <title>部门列表</title>
  1002. </head>
  1003. <script type="text/javascript">
  1004. //没有选部门就更新
  1005. if ("${error_up}" != "") {
  1006. alert("${error_up}");
  1007. }
  1008. </script>
  1009. <c:set property="error_up" value="" var="error_up">
  1010. </c:set>
  1011. <body>
  1012. <form name="icform" method="post">
  1013. <div id="menubar">
  1014. <div id="middleMenubar">
  1015. <div id="innerMenubar">
  1016. <div id="navMenubar">
  1017. <ul>
  1018. <li id="view"><a href="#"
  1019. onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
  1020. <li id="new"><a href="#"
  1021. onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
  1022. <li id="update"><a href="#"
  1023. onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
  1024. <li id="delete"><a href="#"
  1025. onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
  1026. <li id="new"><a href="#"
  1027. onclick="formSubmit('start','_self');this.blur();">启用</a></li>
  1028. <li id="new"><a href="#"
  1029. onclick="formSubmit('stop','_self');this.blur();">停用</a></li>
  1030. </ul>
  1031. </div>
  1032. </div>
  1033. </div>
  1034. </div>
  1035. <div class="textbox-title">
  1036. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1037. 部门列表
  1038. </div>
  1039. <div>
  1040. <div class="eXtremeTable">
  1041. <table id="ec_table" class="tableRegion" width="98%">
  1042. <thead>
  1043. <tr>
  1044. <td class="tableHeader"><input type="checkbox" name="selid"
  1045. onclick="checkAll('deptId',this)"></td>
  1046. <td class="tableHeader">序号</td>
  1047. <td class="tableHeader">编号</td>
  1048. <td class="tableHeader">上级</td>
  1049. <td class="tableHeader">名称</td>
  1050. <td class="tableHeader">状态</td>
  1051. </tr>
  1052. </thead>
  1053. <tbody class="tableBody">
  1054. <c:forEach items="${deptList}" var="d" varStatus="status">
  1055. <tr class="odd" onmouseover="this.className='highlight'"
  1056. onmouseout="this.className='odd'">
  1057. <td><input type="checkbox" name="deptId"
  1058. value="${d.deptId}" /></td>
  1059. <td>${status.index+1}</td>
  1060. <td>${d.deptId}</td>
  1061. <td>${d.parentDept.deptName}</td>
  1062. <td>${d.deptName}</td>
  1063. <td><c:if test="${d.state==1}">
  1064. <a href="stop?deptId=${d.deptId}"><font color="green">启用</font></a>
  1065. </c:if> <c:if test="${d.state==0}">
  1066. <a href="start?deptId=${d.deptId}"><font color="red">停用</font></a>
  1067. </c:if></td>
  1068. </tr>
  1069. </c:forEach>
  1070. </tbody>
  1071. </table>
  1072. </div>
  1073. </div>
  1074. </form>
  1075. </body>
  1076. </html>
  1077. * JDeptUpdate.jsp
  1078. # #
  1079. <%@ page language="java" pageEncoding="UTF-8"%>
  1080. <%@ include file="../../baselist.jsp"%>
  1081. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1082. <html xmlns="http://www.w3.org/1999/xhtml">
  1083. <head>
  1084. <title>更新部门</title>
  1085. </head>
  1086. <body>
  1087. <form name="icform" method="post">
  1088. <div id="menubar">
  1089. <div id="middleMenubar">
  1090. <div id="innerMenubar">
  1091. <div id="navMenubar">
  1092. <ul>
  1093. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1094. <li id="new"><a
  1095. onclick="formSubmit('update','_self');this.blur()">修改</a></li>
  1096. </ul>
  1097. </div>
  1098. </div>
  1099. </div>
  1100. </div>
  1101. <div class="textbox-title">
  1102. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1103. 更新部门
  1104. </div>
  1105. <div>
  1106. <div class="eXtremeTable">
  1107. <table id="ec_table" class="tableRegion" width="98%">
  1108. <tr>
  1109. <td>部门编号</td>
  1110. <td><input type="text" name="deptId" value="${dept.deptId}"
  1111. readonly="readonly" /></td>
  1112. </tr>
  1113. <tr>
  1114. <td>部门名称:</td>
  1115. <td><input type="text" name="deptName"
  1116. value="${dept.deptName}" /></td>
  1117. </tr>
  1118. <tr>
  1119. <td>上级部门:</td>
  1120. <td><select name="parentDept.deptId">
  1121. <option>--无上级--</option>
  1122. <c:forEach items="${deptList}" var="d">
  1123. <option value="${d.deptId}"
  1124. ${dept.parentDept.deptId==d.deptId ? 'selected="selected"':""}>${d.deptName}</option>
  1125. </c:forEach>
  1126. </select></td>
  1127. </tr>
  1128. <tr>
  1129. <td>部门状态</td>
  1130. <td>关闭<input type="radio" name="state" value="0"
  1131. ${dept.state==0 ? 'checked="checked"':""} />开启<input
  1132. type="radio" name="state" value="1"
  1133. ${dept.state==1 ? 'checked="checked"':""} /></td>
  1134. </tr>
  1135. </table>
  1136. </div>
  1137. </div>
  1138. </form>
  1139. </body>
  1140. </html>
  1141. * JDeptView.jsp
  1142. # #
  1143. <%@ page language="java" pageEncoding="UTF-8"%>
  1144. <%@ include file="../../baselist.jsp"%>
  1145. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1146. <html xmlns="http://www.w3.org/1999/xhtml">
  1147. <head>
  1148. <title>查看部门</title>
  1149. </head>
  1150. <body>
  1151. <form name="icform" method="post">
  1152. <div id="menubar">
  1153. <div id="middleMenubar">
  1154. <div id="innerMenubar">
  1155. <div id="navMenubar">
  1156. <ul>
  1157. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1158. </ul>
  1159. </div>
  1160. </div>
  1161. </div>
  1162. </div>
  1163. <div class="textbox-title">
  1164. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1165. 部门详情
  1166. </div>
  1167. <div>
  1168. <div class="eXtremeTable">
  1169. <table id="ec_table" class="tableRegion" width="98%">
  1170. <tr>
  1171. <td>部门编号</td>
  1172. <td><input type="text" name="deptId" value="${dept.deptId}"
  1173. readonly="readonly" /></td>
  1174. </tr>
  1175. <tr>
  1176. <td>部门名称:</td>
  1177. <td><input type="text" name="deptName"
  1178. value="${dept.deptName}" readonly="readonly" /></td>
  1179. </tr>
  1180. <tr>
  1181. <td>上级部门:</td>
  1182. <td><select name="parentDept.deptId" readonly="readonly">
  1183. <option>--无上级--</option>
  1184. <c:forEach items="${deptList}" var="d">
  1185. <option value="${d.deptId}"
  1186. ${dept.parentDept.deptId==d.deptId ? 'selected="selected"':""}>${d.deptName}</option>
  1187. </c:forEach>
  1188. </select></td>
  1189. </tr>
  1190. <tr>
  1191. <td>部门状态</td>
  1192. <td>关闭<input type="radio" name="state" value="0"
  1193. ${dept.state==0 ? 'checked="checked"':""} readonly="readonly" />开启<input
  1194. type="radio" name="state" value="1"
  1195. ${dept.state==1 ? 'checked="checked"':""} readonly="readonly" /></td>
  1196. </tr>
  1197. </table>
  1198. </div>
  1199. </div>
  1200. </form>
  1201. </body>
  1202. </html>
  1203. * login
  1204. * login.jsp
  1205. # #
  1206. <%@ page language="java" pageEncoding="UTF-8"%>
  1207. <%@ include file="../../base.jsp" %>
  1208. <html xmlns="http://www.w3.org/1999/xhtml">
  1209. <head>
  1210. <title>国际物流汇通商贸</title>
  1211. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/login.css" media="all" />
  1212. <script src="${ctx}/staticfile/components/pngfix/DD_belatedPNG.js"></script>
  1213. <script> DD_belatedPNG.fix('*'); </script>
  1214. </head>
  1215. <body>
  1216. <form id="login_main" method="post">
  1217. <div id="png">
  1218. <div class="box">
  1219. <div class="inputstyle">
  1220. <div class="inputlable">用户名:
  1221. <input type="text" value="tony" name="userName" id="userName" onFocus="this.select();" title="请您输入用户名"/>
  1222. <div id="ts" style="z-index:1;">
  1223. </div>
  1224. </div>
  1225. <div class="inputlable">密 码:
  1226. <input type="password" value="123456" name="password" id="password" onfocus="$('#ts').css('display','none');this.select();"
  1227. onKeyDown="javascript:if(event.keyCode==13){ submitFind(); }" title="请您输入密码"/>
  1228. </div>
  1229. </div>
  1230. <div class="btnstyle">
  1231. <input class="loginImgOut" value="" type="button" onclick="formSubmit('${ctx}/login.action','_self');"
  1232. onmouseover="this.className='loginImgOver'"
  1233. onmouseout="this.className='loginImgOut'"
  1234. />
  1235. <input class="resetImgOut" value="" type="button"
  1236. onmouseover="this.className='resetImgOver'"
  1237. onmouseout="this.className='resetImgOut'"
  1238. />
  1239. </div>
  1240. <div class="msgtip">
  1241. <c:if test="${!empty errorInfo}">
  1242. ${errorInfo}
  1243. </c:if>
  1244. </div>
  1245. </div>
  1246. </div>
  1247. </form>
  1248. <script type="text/JavaScript">
  1249. document.getElementById('login_main').userName.focus();
  1250. </script>
  1251. </body>
  1252. </html>
  1253. * logout.jsp
  1254. # #
  1255. <%@ page contentType="text/html; charset=utf-8"%>
  1256. <%@ include file="../../base.jsp" %>
  1257. <html>
  1258. <head>
  1259. </head>
  1260. <script type="text/javascript">
  1261.    window.top.location.href = "login"; //javascript页面跳转,top防止帧框架嵌套难看
  1262. </script>
  1263. <body>
  1264. </body>
  1265. </html>
  1266. * module
  1267. * JModuleCreate.jsp
  1268. # #
  1269. <%@ page language="java" pageEncoding="UTF-8"%>
  1270. <%@ include file="../../baselist.jsp"%>
  1271. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1272. <html xmlns="http://www.w3.org/1999/xhtml">
  1273. <head>
  1274. <title>新增模块</title>
  1275. <script type="text/javascript">
  1276. //保存错误
  1277. if ("${save_error}" != "") {
  1278. alert("${save_error}");
  1279. }
  1280. </script>
  1281. </head>
  1282. <body>
  1283. <form name="icform" method="post">
  1284. <div id="menubar">
  1285. <div id="middleMenubar">
  1286. <div id="innerMenubar">
  1287. <div id="navMenubar">
  1288. <ul>
  1289. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1290. <li id="new"><a
  1291. onclick="formSubmit('save','_self');this.blur()">新增</a></li>
  1292. </ul>
  1293. </div>
  1294. </div>
  1295. </div>
  1296. </div>
  1297. <div class="textbox-title">
  1298. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1299. 添加模块
  1300. </div>
  1301. <div>
  1302. <div class="eXtremeTable">
  1303. <table id="ec_table" class="tableRegion" width="98%">
  1304. <tr>
  1305. <td>模块名称:</td>
  1306. <td><input type="text" name="name" /></td>
  1307. </tr>
  1308. <tr>
  1309. <td>模块描述:</td>
  1310. <td><input type="text" name="remark" /></td>
  1311. </tr>
  1312. <tr>
  1313. <td>上级模块:</td>
  1314. <td><select name="parentModule.moduleId">
  1315. <option>--无上级--</option>
  1316. <c:forEach items="${moduleList}" var="module">
  1317. <option value="${module.moduleId}">${module.name}</option>
  1318. </c:forEach>
  1319. </select></td>
  1320. </tr>
  1321. <tr>
  1322. <td>模块状态</td>
  1323. <td>关闭<input type="radio" name="state" value="0" checked="checked"/>开启<input
  1324. type="radio" name="state" value="1" /></td>
  1325. </tr>
  1326. </table>
  1327. </div>
  1328. </div>
  1329. </form>
  1330. </body>
  1331. </html>
  1332. * JModuleList.jsp
  1333. # #
  1334. <%@ page language="java" pageEncoding="UTF-8"%>
  1335. <%@ include file="../../baselist.jsp"%>
  1336. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1337. <html xmlns="http://www.w3.org/1999/xhtml">
  1338. <head>
  1339. <title>模块列表</title>
  1340. </head>
  1341. <script type="text/javascript">
  1342. //没有选模块就更新
  1343. if ("${error_up}" != "") {
  1344. alert("${error_up}");
  1345. }
  1346. </script>
  1347. <c:set property="error_up" value="" var="error_up">
  1348. </c:set>
  1349. <body>
  1350. <form name="icform" method="post">
  1351. <div id="menubar">
  1352. <div id="middleMenubar">
  1353. <div id="innerMenubar">
  1354. <div id="navMenubar">
  1355. <ul>
  1356. <li id="view"><a href="#"
  1357. onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
  1358. <li id="new"><a href="#"
  1359. onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
  1360. <li id="update"><a href="#"
  1361. onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
  1362. <li id="delete"><a href="#"
  1363. onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
  1364. <li id="new"><a href="#"
  1365. onclick="formSubmit('start','_self');this.blur();">启用</a></li>
  1366. <li id="new"><a href="#"
  1367. onclick="formSubmit('stop','_self');this.blur();">停用</a></li>
  1368. </ul>
  1369. </div>
  1370. </div>
  1371. </div>
  1372. </div>
  1373. <div class="textbox-title">
  1374. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1375. 模块列表
  1376. </div>
  1377. <div>
  1378. <div class="eXtremeTable">
  1379. <table id="ec_table" class="tableRegion" width="98%">
  1380. <thead>
  1381. <tr>
  1382. <td class="tableHeader"><input type="checkbox" name="selid"
  1383. onclick="checkAll('moduleId',this)"></td>
  1384. <td class="tableHeader">序号</td>
  1385. <td class="tableHeader">编号</td>
  1386. <td class="tableHeader">上级</td>
  1387. <td class="tableHeader">名称</td>
  1388. <td class="tableHeader">描述</td>
  1389. <td class="tableHeader">状态</td>
  1390. </tr>
  1391. </thead>
  1392. <tbody class="tableBody">
  1393. <c:forEach items="${moduleList}" var="m" varStatus="status">
  1394. <tr class="odd" onmouseover="this.className='highlight'"
  1395. onmouseout="this.className='odd'">
  1396. <td><input type="checkbox" name="moduleId"
  1397. value="${m.moduleId}" /></td>
  1398. <td>${status.index+1}</td>
  1399. <td>${m.moduleId}</td>
  1400. <td>${m.parentModule.name}</td>
  1401. <td>${m.name}</td>
  1402. <td>${m.remark}</td>
  1403. <td><c:if test="${m.state==1}">
  1404. <a href="stop?moduleId=${m.moduleId}"><font color="green">启用</font></a>
  1405. </c:if> <c:if test="${m.state==0}">
  1406. <a href="start?moduleId=${m.moduleId}"><font color="red">停用</font></a>
  1407. </c:if></td>
  1408. </tr>
  1409. </c:forEach>
  1410. </tbody>
  1411. </table>
  1412. </div>
  1413. </div>
  1414. </form>
  1415. </body>
  1416. </html>
  1417. * JModuleUpdate.jsp
  1418. # #
  1419. <%@ page language="java" pageEncoding="UTF-8"%>
  1420. <%@ include file="../../baselist.jsp"%>
  1421. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1422. <html xmlns="http://www.w3.org/1999/xhtml">
  1423. <head>
  1424. <title>更新模块</title>
  1425. </head>
  1426. <body>
  1427. <form name="icform" method="post">
  1428. <div id="menubar">
  1429. <div id="middleMenubar">
  1430. <div id="innerMenubar">
  1431. <div id="navMenubar">
  1432. <ul>
  1433. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1434. <li id="new"><a
  1435. onclick="formSubmit('update','_self');this.blur()">修改</a></li>
  1436. </ul>
  1437. </div>
  1438. </div>
  1439. </div>
  1440. </div>
  1441. <div class="textbox-title">
  1442. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1443. 更新模块
  1444. </div>
  1445. <div>
  1446. <div class="eXtremeTable">
  1447. <table id="ec_table" class="tableRegion" width="98%">
  1448. <tr>
  1449. <td>模块编号</td>
  1450. <td><input type="text" name="moduleId"
  1451. value="${module.moduleId}" readonly="readonly" /></td>
  1452. </tr>
  1453. <tr>
  1454. <td>模块名称:</td>
  1455. <td><input type="text" name="name" value="${module.name}" /></td>
  1456. </tr>
  1457. <tr>
  1458. <td>模块名称:</td>
  1459. <td><input type="text" name="remark" value="${module.remark}" /></td>
  1460. </tr>
  1461. <tr>
  1462. <td>上级模块:</td>
  1463. <td><select name="parentModule.moduleId">
  1464. <option>--无上级--</option>
  1465. <c:forEach items="${moduleList}" var="m">
  1466. <option value="${m.moduleId}"
  1467. ${module.parentModule.moduleId==m.moduleId ? 'selected="selected"':""}
  1468. ${module.moduleId==m.moduleId ? 'hidden="hidden"':""}>${m.name}</option>
  1469. </c:forEach>
  1470. </select></td>
  1471. </tr>
  1472. <tr>
  1473. <td>部门状态</td>
  1474. <td>关闭<input type="radio" name="state" value="0"
  1475. ${module.state==0 ? 'checked="checked"':""} />开启<input
  1476. type="radio" name="state" value="1"
  1477. ${module.state==1 ? 'checked="checked"':""} /></td>
  1478. </tr>
  1479. </table>
  1480. </div>
  1481. </div>
  1482. </form>
  1483. </body>
  1484. </html>
  1485. * JModuleView.jsp
  1486. # #
  1487. <%@ page language="java" pageEncoding="UTF-8"%>
  1488. <%@ include file="../../baselist.jsp"%>
  1489. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1490. <html xmlns="http://www.w3.org/1999/xhtml">
  1491. <head>
  1492. <title>查看模块</title>
  1493. </head>
  1494. <body>
  1495. <form name="icform" method="post">
  1496. <div id="menubar">
  1497. <div id="middleMenubar">
  1498. <div id="innerMenubar">
  1499. <div id="navMenubar">
  1500. <ul>
  1501. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1502. </ul>
  1503. </div>
  1504. </div>
  1505. </div>
  1506. </div>
  1507. <div class="textbox-title">
  1508. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1509. 模块详情
  1510. </div>
  1511. <div>
  1512. <div class="eXtremeTable">
  1513. <table id="ec_table" class="tableRegion" width="98%">
  1514. <tr>
  1515. <td>模块编号</td>
  1516. <td><input type="text" name="moduleId"
  1517. value="${module.moduleId}" readonly="readonly" /></td>
  1518. </tr>
  1519. <tr>
  1520. <td>模块名称:</td>
  1521. <td><input type="text" name="name" value="${module.name}"
  1522. readonly="readonly" /></td>
  1523. </tr>
  1524. <tr>
  1525. <td>上级模块:</td>
  1526. <td><select name="parentModule.moduleId" readonly="readonly">
  1527. <option>--无上级--</option>
  1528. <c:forEach items="${moduleList}" var="m">
  1529. <option value="${m.moduleId}"
  1530. ${module.parentModule.moduleId==m.moduleId ? 'selected="selected"':""}>${m.name}</option>
  1531. </c:forEach>
  1532. </select></td>
  1533. </tr>
  1534. <tr>
  1535. <td>部门状态</td>
  1536. <td>关闭<input type="radio" name="state" value="0"
  1537. ${module.state==0 ? 'checked="checked"':""} readonly="readonly" />开启<input
  1538. type="radio" name="state" value="1"
  1539. ${module.state==1 ? 'checked="checked"':""} readonly="readonly" /></td>
  1540. </tr>
  1541. </table>
  1542. </div>
  1543. </div>
  1544. </form>
  1545. </body>
  1546. </html>
  1547. # #
  1548. * role
  1549. * JRoleCreate.jsp
  1550. # #
  1551. <%@ page language="java" pageEncoding="UTF-8"%>
  1552. <%@ include file="../../baselist.jsp"%>
  1553. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1554. <html xmlns="http://www.w3.org/1999/xhtml">
  1555. <head>
  1556. <title>新增角色</title>
  1557. <script type="text/javascript">
  1558. //保存错误
  1559. if ("${save_error}" != "") {
  1560. alert("${save_error}");
  1561. }
  1562. </script>
  1563. </script>
  1564. </head>
  1565. <body>
  1566. <form name="icform" method="post">
  1567. <div id="menubar">
  1568. <div id="middleMenubar">
  1569. <div id="innerMenubar">
  1570. <div id="navMenubar">
  1571. <ul>
  1572. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1573. <li id="new"><a
  1574. onclick="formSubmit('save','_self');this.blur()">新增</a></li>
  1575. </ul>
  1576. </div>
  1577. </div>
  1578. </div>
  1579. </div>
  1580. <div class="textbox-title">
  1581. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1582. 添加角色
  1583. </div>
  1584. <div>
  1585. <div class="eXtremeTable">
  1586. <table id="ec_table" class="tableRegion" width="98%">
  1587. <tr>
  1588. <td>角色ID:</td>
  1589. <td><input type="text" name="roleId" /></td>
  1590. <td>角色名称:</td>
  1591. <td><input type="text" name="name" /></td>
  1592. <td>角色描述:</td>
  1593. <td><input type="text" name="remarks" /></td>
  1594. <td>创建者:</td>
  1595. <td><input type="text" name="createBy" /></td>
  1596. </table>
  1597. </div>
  1598. </div>
  1599. </form>
  1600. </body>
  1601. </html>
  1602. * JRoleList.jsp
  1603. # #
  1604. <%@ page language="java" pageEncoding="UTF-8"%>
  1605. <%@ include file="../../baselist.jsp"%>
  1606. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1607. <html xmlns="http://www.w3.org/1999/xhtml">
  1608. <head>
  1609. <title>角色列表</title>
  1610. <script type="text/javascript">
  1611. //没有角色
  1612. if ("${error_up}" != "") {
  1613. alert("${error_up}");
  1614. }
  1615. //保存失败
  1616. if ("${error_save}" != "") {
  1617. alert("${error_save}");
  1618. }
  1619. //保存成功
  1620. if ("${success_save}" != "") {
  1621. alert("${success_save}");
  1622. }
  1623. </script>
  1624. </head>
  1625. <c:set property="error_up" value="" var="error_up">
  1626. </c:set>
  1627. <body>
  1628. <form name="icform" method="post">
  1629. <div id="menubar">
  1630. <div id="middleMenubar">
  1631. <div id="innerMenubar">
  1632. <div id="navMenubar">
  1633. <ul>
  1634. <li id="view"><a href="#"
  1635. onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
  1636. <li id="new"><a href="#"
  1637. onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
  1638. <li id="update"><a href="#"
  1639. onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
  1640. <li id="delete"><a href="#"
  1641. onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
  1642. <li id="delete"><a href="#"
  1643. onclick="formSubmit('tomodule','_self');this.blur();">模块</a></li>
  1644. </ul>
  1645. </div>
  1646. </div>
  1647. </div>
  1648. </div>
  1649. <div class="textbox-title">
  1650. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1651. 角色列表
  1652. </div>
  1653. <div>
  1654. <div class="eXtremeTable">
  1655. <table id="ec_table" class="tableRegion" width="98%">
  1656. <thead>
  1657. <tr>
  1658. <td class="tableHeader"><input type="checkbox" name="selid"
  1659. onclick="checkAll('roleId',this)"></td>
  1660. <td class="tableHeader">序号</td>
  1661. <td class="tableHeader">名称</td>
  1662. <td class="tableHeader">介绍</td>
  1663. </tr>
  1664. </thead>
  1665. <tbody class="tableBody">
  1666. <c:forEach items="${roles}" var="role" varStatus="status">
  1667. <tr class="odd" onmouseover="this.className='highlight'"
  1668. onmouseout="this.className='odd'">
  1669. <td><input type="checkbox" name="roleId"
  1670. value="${role.roleId}" /></td>
  1671. <td>${status.index+1}</td>
  1672. <td>${role.name}</td>
  1673. <td>${role.remarks}</td>
  1674. </tr>
  1675. </c:forEach>
  1676. </tbody>
  1677. </table>
  1678. </div>
  1679. </div>
  1680. </form>
  1681. </body>
  1682. </html>
  1683. * JRoleModule.jsp
  1684. # #
  1685. <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
  1686. <%@ include file="../../baselist.jsp"%>
  1687. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
  1688. <html xmlns="http://www.w3.org/1999/xhtml">
  1689. <head>
  1690. <title>角色模块分配</title>
  1691. <link rel="stylesheet"
  1692. href="${ctx}/staticfile/components/zTree/css/zTreeStyle/zTreeStyle.css"
  1693. type="text/css">
  1694. <script type="text/javascript"
  1695. src="${ctx}/staticfile/components/zTree/js/jquery-1.4.4.min.js"></script>
  1696. <script type="text/javascript"
  1697. src="${ctx}/staticfile/components/zTree/js/jquery.ztree.core-3.5.min.js"></script>
  1698. <script type="text/javascript"
  1699. src="${ctx}/staticfile/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script>
  1700. <SCRIPT type="text/javascript">
  1701. var setting = {
  1702. check : {
  1703. enable : true
  1704. },
  1705. data : {
  1706. simpleData : {
  1707. enable : true
  1708. }
  1709. }
  1710. };
  1711. //这里相当于在拿后来传来的数据,后台在传数据的时候,属性名要对应上
  1712. var zNodes = ${modulesJSON}
  1713. $(document).ready(function() {
  1714. $.fn.zTree.init($("#htZtree"), setting, zNodes);
  1715. var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
  1716. zTreeObj.expandAll(true); //展开所有树节点
  1717. });
  1718. //获取到所以用户选中的节点id值
  1719. //获取所有选择的节点,提交时调用下面函数
  1720. function submitCheckedNodes(treeNode) {
  1721. var nodes = new Array();
  1722. var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
  1723. nodes = zTreeObj.getCheckedNodes(true); //取得选中的结点
  1724. var str = "";
  1725. for (i = 0; i < nodes.length; i++) {
  1726. if (str != "") {
  1727. str += ",";
  1728. }
  1729. str += nodes[i].id;
  1730. }
  1731. $('#moduleIds').val(str); //将拼接完成的字符串放入隐藏域,这样就可以通过post提交
  1732. }
  1733. </SCRIPT>
  1734. </head>
  1735. <body>
  1736. <form name="icform" method="post">
  1737. <div id="menubar">
  1738. <div id="middleMenubar">
  1739. <div id="innerMenubar">
  1740. <div id="navMenubar">
  1741. <ul>
  1742. <li id="save"><a href="#"
  1743. onclick="submitCheckedNodes();formSubmit('saveRoleModule','_self');this.blur();">保存</a></li>
  1744. <li id="back"><a href="#"
  1745. onclick="window.history.go(-1);this.blur();">返回</a></li>
  1746. </ul>
  1747. </div>
  1748. </div>
  1749. </div>
  1750. </div>
  1751. <div class="textbox-title">
  1752. <img
  1753. src="${ctx}/staticfile/skin/default/images/icon/currency_yen.png" />
  1754. 角色模块分配
  1755. </div>
  1756. <div>
  1757. <div class="eXtremeTable">
  1758. <table id="ec_table" class="tableRegion" width="98%">
  1759. <!--隐藏域用来传递数据 -->
  1760. <input type="hidden" id="roleId" name="roleId" value="${roleId}" />
  1761. <input type="hidden" id="moduleIds" name="moduleIds" />
  1762. <ul id="htZtree" class="ztree"></ul>
  1763. </table>
  1764. </div>
  1765. </div>
  1766. </form>
  1767. </body>
  1768. </html>
  1769. * JRoleUpdate.jsp
  1770. # #
  1771. <%@ page language="java" pageEncoding="UTF-8"%>
  1772. <%@ include file="../../baselist.jsp"%>
  1773. <html xmlns="http://www.w3.org/1999/xhtml">
  1774. <head>
  1775. <title>修改角色</title>
  1776. <script type="text/javascript">
  1777. //保存错误
  1778. if ("${error_up}" != "") {
  1779. alert("${error_up}");
  1780. }
  1781. </script>
  1782. </head>
  1783. <body>
  1784. <form name="icform" method="post">
  1785. <div id="menubar">
  1786. <div id="middleMenubar">
  1787. <div id="innerMenubar">
  1788. <div id="navMenubar">
  1789. <ul>
  1790. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1791. <li id="new"><a
  1792. onclick="formSubmit('update','_self');this.blur()">修改</a></li>
  1793. </ul>
  1794. </div>
  1795. </div>
  1796. </div>
  1797. </div>
  1798. <div class="textbox-title">
  1799. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1800. 修改角色
  1801. </div>
  1802. <div>
  1803. <div class="eXtremeTable">
  1804. <table id="ec_table" class="tableRegion" width="98%">
  1805. <tr>
  1806. <td>角色ID:</td>
  1807. <td><input type="text" name="roleId" value="${role.roleId}"
  1808. readonly="readonly" /></td>
  1809. </tr>
  1810. <tr>
  1811. <td>角色名称:</td>
  1812. <td><input type="text" name="name" value="${role.name}" /></td>
  1813. </tr>
  1814. <tr>
  1815. <td>角色描述:</td>
  1816. <td><input type="text" name="remarks" value="${role.remarks}" /></td>
  1817. </tr>
  1818. <tr>
  1819. <td><font color="#ff0000">修改人:</font></td>
  1820. <td><input type="text" name="updateBy"
  1821. value="${role.updateBy}" /></td>
  1822. </tr>
  1823. </table>
  1824. </div>
  1825. </div>
  1826. </form>
  1827. </body>
  1828. </html>
  1829. * JRoleView.jsp
  1830. # #
  1831. <%@ page language="java" pageEncoding="UTF-8"%>
  1832. <%@ include file="../../baselist.jsp"%>
  1833. <html xmlns="http://www.w3.org/1999/xhtml">
  1834. <head>
  1835. <title>查看角色</title>
  1836. <script type="text/javascript">
  1837. </script>
  1838. </head>
  1839. <body>
  1840. <form name="icform" method="post">
  1841. <div id="menubar">
  1842. <div id="middleMenubar">
  1843. <div id="innerMenubar">
  1844. <div id="navMenubar">
  1845. <ul>
  1846. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1847. </ul>
  1848. </div>
  1849. </div>
  1850. </div>
  1851. </div>
  1852. <div class="textbox-title">
  1853. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1854. 角色详情
  1855. </div>
  1856. <div>
  1857. <div class="eXtremeTable">
  1858. <table id="ec_table" class="tableRegion" width="98%">
  1859. <tr>
  1860. <td>角色ID:</td>
  1861. <td><input type="text" name="roleId" value="${role.roleId}"
  1862. readonly="readonly" /></td>
  1863. </tr>
  1864. <tr>
  1865. <td>角色名称:</td>
  1866. <td><input type="text" name="name" value="${role.name}"
  1867. readonly="readonly" /></td>
  1868. </tr>
  1869. <tr>
  1870. <td>角色描述:</td>
  1871. <td><input type="text" name="remarks" value="${role.remarks}"
  1872. readonly="readonly" /></td>
  1873. </tr>
  1874. <tr>
  1875. <td>更新者:</td>
  1876. <td><input type="text" name="updateBy"
  1877. value="${role.updateBy}" readonly="readonly" /></td>
  1878. </tr>
  1879. </table>
  1880. </div>
  1881. </div>
  1882. </form>
  1883. </body>
  1884. </html>
  1885. * user
  1886. * JUserCreate.jsp
  1887. # #
  1888. <%@ page language="java" pageEncoding="UTF-8"%>
  1889. <%@ include file="../../baselist.jsp"%>
  1890. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  1891. <html xmlns="http://www.w3.org/1999/xhtml">
  1892. <head>
  1893. <title>新增用户</title>
  1894. <script type="text/javascript">
  1895. //保存错误
  1896. if ("${save_error}" != "") {
  1897. alert("${save_error}");
  1898. }
  1899. </script>
  1900. </script>
  1901. </head>
  1902. <body>
  1903. <form name="icform" method="post">
  1904. <div id="menubar">
  1905. <div id="middleMenubar">
  1906. <div id="innerMenubar">
  1907. <div id="navMenubar">
  1908. <ul>
  1909. <li id="view"><a onclick="window.history.back()">返回</a></li>
  1910. <li id="new"><a
  1911. onclick="formSubmit('save','_self');this.blur()">新增</a></li>
  1912. </ul>
  1913. </div>
  1914. </div>
  1915. </div>
  1916. </div>
  1917. <div class="textbox-title">
  1918. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  1919. 添加用户
  1920. </div>
  1921. <div>
  1922. <div class="eXtremeTable">
  1923. <table id="ec_table" class="tableRegion" width="98%">
  1924. <tr>
  1925. <td>用户ID:</td>
  1926. <td><input type="text" name="userId" /></td>
  1927. <td>所属部门:</td>
  1928. <td><select name="dept.deptId">
  1929. <option value="-1">--无--</option>
  1930. <c:forEach items="${depts}" var="dept">
  1931. <option value="${dept.deptId}">${dept.deptName}</option>
  1932. </c:forEach>
  1933. </select></td>
  1934. <td>用户账户:</td>
  1935. <td><input type="text" name="username" /></td>
  1936. <td>用户密码:</td>
  1937. <td><input type="text" name="password" /></td>
  1938. </tr>
  1939. <tr>
  1940. <td>用户状态</td>
  1941. <td>关闭<input type="radio" name="state" value="0" />开启<input
  1942. type="radio" name="state" value="1" checked="checked" /></td>
  1943. <td>创建者:</td>
  1944. <td><input type="text" name="createBy" /></td>
  1945. <td>创建时间:</td>
  1946. <td><input type="date" name="createTime" /></td>
  1947. </tr>
  1948. <tr>
  1949. <td>真实姓名:</td>
  1950. <td><input type="text" name="userInfo.name" /></td>
  1951. <td>身份证号:</td>
  1952. <td><input type="text" name="userInfo.cardNo" /></td>
  1953. <td>上级领导:</td>
  1954. <td><select name="userInfo.managerUserInfo.userInfoId">
  1955. <option value="-1">--无--</option>
  1956. <c:forEach items="${userinfos}" var="userinfo">
  1957. <option value="${userinfo.userInfoId}">${userinfo.name}</option>
  1958. </c:forEach>
  1959. </select></td>
  1960. </tr>
  1961. <tr>
  1962. <td>薪水:</td>
  1963. <td><input type="text" name="userInfo.salary" /></td>
  1964. <td>出生日期:</td>
  1965. <td><input type="date" name="userInfo.birthday" /></td>
  1966. <td>性别:</td>
  1967. <td><input type="radio" name="userInfo.gender" value="男"
  1968. checked="checked" /><input type="radio" name="userInfo.gender"
  1969. value="女" /></td>
  1970. <td>职位:</td>
  1971. <td><input type="text" name="userInfo.station" /></td>
  1972. </tr>
  1973. </tr>
  1974. <td>电话号码:</td>
  1975. <td><input type="text" name="userInfo.telephone" /></td>
  1976. <td>员工级别:</td>
  1977. <td><select name="userInfo.userLevel">
  1978. <option value="4" selected="selected">普通用户</option>
  1979. <option value="3">部门经理</option>
  1980. <option value="2">副总</option>
  1981. <option value="1">总经理</option>
  1982. <option value="0">超级管理员</option>
  1983. </select></td>
  1984. <td>说明:</td>
  1985. <td><input type="text" name="userInfo.remark" /></td>
  1986. <td>排序号:</td>
  1987. <td><input type="text" name="userInfo.orderNo" /></td>
  1988. </tr>
  1989. </table>
  1990. </div>
  1991. </div>
  1992. </form>
  1993. </body>
  1994. </html>
  1995. * JUserList.jsp
  1996. # #
  1997. <%@ page language="java" pageEncoding="UTF-8"%>
  1998. <%@ include file="../../baselist.jsp"%>
  1999. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  2000. <html xmlns="http://www.w3.org/1999/xhtml">
  2001. <head>
  2002. <title>用户列表</title>
  2003. <script type="text/javascript">
  2004. //没有选用户就修改
  2005. if ("${error_up}" != "") {
  2006. alert("${error_up}");
  2007. }
  2008. //保存失败
  2009. if ("${error_save}" != "") {
  2010. alert("${error_save}");
  2011. }
  2012. //保存成功
  2013. if ("${success_save}" != "") {
  2014. alert("${success_save}");
  2015. }
  2016. </script>
  2017. </head>
  2018. <c:set property="error_up" value="" var="error_up">
  2019. </c:set>
  2020. <body>
  2021. <form name="icform" method="post">
  2022. <div id="menubar">
  2023. <div id="middleMenubar">
  2024. <div id="innerMenubar">
  2025. <div id="navMenubar">
  2026. <ul>
  2027. <li id="view"><a href="#"
  2028. onclick="formSubmit('toview','_self');this.blur();">查看</a></li>
  2029. <li id="new"><a href="#"
  2030. onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li>
  2031. <li id="update"><a href="#"
  2032. onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li>
  2033. <li id="delete"><a href="#"
  2034. onclick="formSubmit('delete','_self');this.blur();">删除</a></li>
  2035. <li id="new"><a href="#"
  2036. onclick="formSubmit('start','_self');this.blur();">启用</a></li>
  2037. <li id="new"><a href="#"
  2038. onclick="formSubmit('stop','_self');this.blur();">停用</a></li>
  2039. <li id="new"><a href="#"
  2040. onclick="formSubmit('role','_self');this.blur();">分配角色</a></li>
  2041. </ul>
  2042. </div>
  2043. </div>
  2044. </div>
  2045. </div>
  2046. <div class="textbox-title">
  2047. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  2048. 部门列表
  2049. </div>
  2050. <div>
  2051. <div class="eXtremeTable">
  2052. <table id="ec_table" class="tableRegion" width="98%">
  2053. <thead>
  2054. <tr>
  2055. <td class="tableHeader"><input type="checkbox" name="selid"
  2056. onclick="checkAll('userId',this)"></td>
  2057. <td class="tableHeader">编号</td>
  2058. <td class="tableHeader">序号</td>
  2059. <td class="tableHeader">用户名</td>
  2060. <td class="tableHeader">昵称</td>
  2061. <td class="tableHeader">性别</td>
  2062. <td class="tableHeader">薪资</td>
  2063. <td class="tableHeader">岗位</td>
  2064. <td class="tableHeader">电话</td>
  2065. <td class="tableHeader">所属部门</td>
  2066. <td class="tableHeader">上级领导</td>
  2067. <td class="tableHeader">状态</td>
  2068. </tr>
  2069. </thead>
  2070. <tbody class="tableBody">
  2071. <c:forEach items="${users}" var="u" varStatus="status">
  2072. <tr class="odd" onmouseover="this.className='highlight'"
  2073. onmouseout="this.className='odd'">
  2074. <td><input type="checkbox" name="userId"
  2075. value="${u.userId}" /></td>
  2076. <td>${u.userId}</td>
  2077. <td>${status.index+1}</td>
  2078. <td>${u.username}</td>
  2079. <td>${u.userInfo.name}</td>
  2080. <td>${u.userInfo.gender}</td>
  2081. <td>${u.userInfo.salary}</td>
  2082. <td>${u.userInfo.station}</td>
  2083. <td>${u.userInfo.telephone}</td>
  2084. <td>${u.dept.deptName}</td>
  2085. <td>${u.userInfo.managerUserInfo.name}</td>
  2086. <td><c:if test="${u.state==1}">
  2087. <a href="stop?userId=${u.userId}"><font color="green">启用</font></a>
  2088. </c:if> <c:if test="${u.state==0}">
  2089. <a href="start?userId=${u.userId}"><font color="red">停用</font></a>
  2090. </c:if></td>
  2091. </tr>
  2092. </c:forEach>
  2093. </tbody>
  2094. </table>
  2095. </div>
  2096. </div>
  2097. </form>
  2098. </body>
  2099. </html>
  2100. * JUserRole.jsp
  2101. # #
  2102. <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
  2103. <%@ include file="../../baselist.jsp"%>
  2104. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
  2105. <html xmlns="http://www.w3.org/1999/xhtml">
  2106. <head>
  2107. <title>用户角色分配</title>
  2108. <link rel="stylesheet"
  2109. href="${ctx}/staticfile/components/zTree/css/zTreeStyle/zTreeStyle.css"
  2110. type="text/css">
  2111. <script type="text/javascript"
  2112. src="${ctx}/staticfile/components/zTree/js/jquery-1.4.4.min.js"></script>
  2113. <script type="text/javascript"
  2114. src="${ctx}/staticfile/components/zTree/js/jquery.ztree.core-3.5.min.js"></script>
  2115. <script type="text/javascript"
  2116. src="${ctx}/staticfile/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script>
  2117. <SCRIPT type="text/javascript">
  2118. var setting = {
  2119. check : {
  2120. enable : true
  2121. },
  2122. data : {
  2123. simpleData : {
  2124. enable : true
  2125. }
  2126. }
  2127. };
  2128. //这里相当于在拿后来传来的数据,后台在传数据的时候,属性名要对应上
  2129. var zNodes = ${rolesJSON}
  2130. $(document).ready(function() {
  2131. $.fn.zTree.init($("#htZtree"), setting, zNodes);
  2132. var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
  2133. zTreeObj.expandAll(true); //展开所有树节点
  2134. });
  2135. //获取到所以用户选中的节点id值
  2136. //获取所有选择的节点,提交时调用下面函数
  2137. function submitCheckedNodes(treeNode) {
  2138. var nodes = new Array();
  2139. var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
  2140. nodes = zTreeObj.getCheckedNodes(true); //取得选中的结点
  2141. var str = "";
  2142. for (i = 0; i < nodes.length; i++) {
  2143. if (str != "") {
  2144. str += ",";
  2145. }
  2146. str += nodes[i].id;
  2147. }
  2148. $('#roleIds').val(str); //将拼接完成的字符串放入隐藏域,这样就可以通过post提交
  2149. }
  2150. </SCRIPT>
  2151. </head>
  2152. <body>
  2153. <form name="icform" method="post">
  2154. <div id="menubar">
  2155. <div id="middleMenubar">
  2156. <div id="innerMenubar">
  2157. <div id="navMenubar">
  2158. <ul>
  2159. <li id="save"><a href="#"
  2160. onclick="submitCheckedNodes();formSubmit('saveUserRole','_self');this.blur();">保存</a></li>
  2161. <li id="back"><a href="#"
  2162. onclick="window.history.go(-1);this.blur();">返回</a></li>
  2163. </ul>
  2164. </div>
  2165. </div>
  2166. </div>
  2167. </div>
  2168. <div class="textbox-title">
  2169. <img
  2170. src="${ctx}/staticfile/skin/default/images/icon/currency_yen.png" />
  2171. 用户角色分配
  2172. </div>
  2173. <div>
  2174. <div class="eXtremeTable">
  2175. <table id="ec_table" class="tableRegion" width="98%">
  2176. <!--隐藏域用来传递数据 -->
  2177. <input type="hidden" id="userId" name="userId" value="${userId}" />
  2178. <input type="hidden" id="roleIds" name="roleIds" />
  2179. <ul id="htZtree" class="ztree"></ul>
  2180. </table>
  2181. </div>
  2182. </div>
  2183. </form>
  2184. </body>
  2185. </html>
  2186. * JUserUpdate.jsp
  2187. # #
  2188. <%@ page language="java" pageEncoding="UTF-8"%>
  2189. <%@ include file="../../baselist.jsp"%>
  2190. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  2191. <html xmlns="http://www.w3.org/1999/xhtml">
  2192. <head>
  2193. <title>修改用户</title>
  2194. </script>
  2195. <script type="text/javascript">
  2196. //保存错误
  2197. if ("${error_up}" != "") {
  2198. alert("${error_up}");
  2199. }
  2200. </script>
  2201. </head>
  2202. <body>
  2203. <form name="icform" method="post">
  2204. <div id="menubar">
  2205. <div id="middleMenubar">
  2206. <div id="innerMenubar">
  2207. <div id="navMenubar">
  2208. <ul>
  2209. <li id="view"><a onclick="window.history.back()">返回</a></li>
  2210. <li id="new"><a
  2211. onclick="formSubmit('update','_self');this.blur()">修改</a></li>
  2212. </ul>
  2213. </div>
  2214. </div>
  2215. </div>
  2216. </div>
  2217. <div class="textbox-title">
  2218. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  2219. 修改用户
  2220. </div>
  2221. <div>
  2222. <div class="eXtremeTable">
  2223. <table id="ec_table" class="tableRegion" width="98%">
  2224. <tr>
  2225. <td>用户ID:</td>
  2226. <td><input type="text" name="userId" value="${user.userId}"
  2227. readonly="readonly" /></td>
  2228. <td>所属部门:</td>
  2229. <td><select name="dept.deptId">
  2230. <option>--无--</option>
  2231. <c:forEach items="${depts}" var="dept">
  2232. <option value="${dept.deptId}"
  2233. ${user.dept.deptId==dept.deptId ? "selected='selected'":""}>${dept.deptName}</option>
  2234. </c:forEach>
  2235. </select></td>
  2236. <td>用户账户:</td>
  2237. <td><input type="text" name="username"
  2238. value="${user.username}" /></td>
  2239. <td>用户密码:</td>
  2240. <td><input type="text" name="password"
  2241. value="${user.password}" /></td>
  2242. </tr>
  2243. <tr>
  2244. <td>用户状态</td>
  2245. <td>关闭<input type="radio" name="state" value="0"
  2246. ${user.state==0? "checked='checked'":""} />开启<input
  2247. type="radio" name="state" value="1"
  2248. ${user.state==1? "checked='checked'":""} /></td>
  2249. </tr>
  2250. <tr>
  2251. <td><font color="#ff0000">修改人:</font></td>
  2252. <td><input type="text" name="userInfo.updateBy"
  2253. value="${user.userInfo.updateBy}" /></td>
  2254. <td>更新时间:</td>
  2255. <td><input type="date" name="userInfo.updateTime"
  2256. value="<fmt:formatDate value="${user.userInfo.updateTime}" pattern="yyyy-MM-dd"/>" /></td>
  2257. </tr>
  2258. <tr>
  2259. <td>真实姓名:</td>
  2260. <td><input type="text" name="userInfo.name"
  2261. value="${user.userInfo.name}" /></td>
  2262. <td>身份证号:</td>
  2263. <td><input type="text" name="userInfo.cardNo"
  2264. value="${user.userInfo.cardNo}" /></td>
  2265. <td>上级领导:</td>
  2266. <td><select name="userInfo.managerUserInfo.userInfoId">
  2267. <option>--无--</option>
  2268. <c:forEach items="${userinfos}" var="userinfo">
  2269. <option value="${userinfo.userInfoId}"
  2270. ${user.userInfo.managerUserInfo.userInfoId==userinfo.userInfoId ? "selected='selected'":""}>${userinfo.name}</option>
  2271. </c:forEach>
  2272. </select></td>
  2273. <td>薪水:</td>
  2274. <td><input type="text" name="userInfo.salary"
  2275. value="${user.userInfo.salary}" /></td>
  2276. </tr>
  2277. <tr>
  2278. <td>出生日期:</td>
  2279. <td><input type="date" name="userInfo.birthday"
  2280. value="<fmt:formatDate value="${user.userInfo.birthday}" pattern="yyyy-MM-dd"/>" /></td>
  2281. <td>性别:</td>
  2282. <td><input type="radio" name="userInfo.gender" value="男"
  2283. ${user.userInfo.gender=="男" ? "checked='checked'" :""} /><input
  2284. type="radio" name="userInfo.gender" value="女"
  2285. ${user.userInfo.gender=="女" ? "checked='checked'" :""} /></td>
  2286. <td>职位:</td>
  2287. <td><input type="text" name="userInfo.station"
  2288. value="${user.userInfo.station}" /></td>
  2289. <td>电话号码:</td>
  2290. <td><input type="text" name="userInfo.telephone"
  2291. value="${user.userInfo.telephone}" /></td>
  2292. </tr>
  2293. <tr>
  2294. <td>员工级别:</td>
  2295. <td><select name="userInfo.userLevel">
  2296. <option value="4"
  2297. ${user.userInfo.userLevel=="4" ? "selected='selected'":""}>普通用户</option>
  2298. <option value="3"
  2299. ${user.userInfo.userLevel=="3" ? "selected='selected'":""}>部门经理</option>
  2300. <option value="2"
  2301. ${user.userInfo.userLevel=="2" ? "selected='selected'":""}>副总</option>
  2302. <option value="1"
  2303. ${user.userInfo.userLevel=="1" ? "selected='selected'":""}>总经理</option>
  2304. <option value="0"
  2305. ${user.userInfo.userLevel=="0" ? "selected='selected'":""}>超级管理员</option>
  2306. </select></td>
  2307. <td>说明:</td>
  2308. <td><input type="text" name="userInfo.remark"
  2309. value="${user.userInfo.remark}" /></td>
  2310. <td>排序号:</td>
  2311. <td><input type="text" name="userInfo.orderNo"
  2312. value="${user.userInfo.orderNo}" /></td>
  2313. </tr>
  2314. </table>
  2315. </div>
  2316. </div>
  2317. </form>
  2318. </body>
  2319. </html>
  2320. * JUserView.jsp
  2321. # #
  2322. <%@ page language="java" pageEncoding="UTF-8"%>
  2323. <%@ include file="../../baselist.jsp"%>
  2324. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  2325. <html xmlns="http://www.w3.org/1999/xhtml">
  2326. <head>
  2327. <title>查看用户</title>
  2328. </script>
  2329. </script>
  2330. </head>
  2331. <body>
  2332. <form name="icform" method="post">
  2333. <div id="menubar">
  2334. <div id="middleMenubar">
  2335. <div id="innerMenubar">
  2336. <div id="navMenubar">
  2337. <ul>
  2338. <li id="view"><a onclick="window.history.back()">返回</a></li>
  2339. </ul>
  2340. </div>
  2341. </div>
  2342. </div>
  2343. </div>
  2344. <div class="textbox-title">
  2345. <img src="../../staticfile/skin/default/images/icon/currency_yen.png" />
  2346. 查看用户
  2347. </div>
  2348. <div>
  2349. <div class="eXtremeTable">
  2350. <table id="ec_table" class="tableRegion" width="98%">
  2351. <tr>
  2352. <td>用户ID:</td>
  2353. <td><input type="text" name="userId" value="${user.userId}"
  2354. readonly="readonly" /></td>
  2355. <td>所属部门:</td>
  2356. <td><select name="dept.deptId">
  2357. <option>--无--</option>
  2358. <c:forEach items="${depts}" var="dept">
  2359. <option value="${dept.deptId}"
  2360. ${user.dept.deptId==dept.deptId ? "selected='selected'":""}>${dept.deptName}</option>
  2361. </c:forEach>
  2362. </select></td>
  2363. <td>用户账户:</td>
  2364. <td><input type="text" name="username"
  2365. value="${user.username}" /></td>
  2366. <td>用户密码:</td>
  2367. <td><input type="text" name="password"
  2368. value="${user.password}" /></td>
  2369. </tr>
  2370. <tr>
  2371. <td>用户状态</td>
  2372. <td>关闭<input type="radio" name="state" value="0"
  2373. ${user.state==0? "checked='checked'":""} />开启<input
  2374. type="radio" name="state" value="1"
  2375. ${user.state==1? "checked='checked'":""} /></td>
  2376. </tr>
  2377. <tr>
  2378. <td><font color="#ff0000">修改人:</font></td>
  2379. <td><input type="text" name="userInfo.updateBy"
  2380. value="${user.userInfo.updateBy}" /></td>
  2381. <td>更新时间:</td>
  2382. <td><input type="date" name="userInfo.updateTime"
  2383. value="<fmt:formatDate value="${user.userInfo.updateTime}" pattern="yyyy-MM-dd"/>" /></td>
  2384. </tr>
  2385. <tr>
  2386. <td>真实姓名:</td>
  2387. <td><input type="text" name="userInfo.name"
  2388. value="${user.userInfo.name}" /></td>
  2389. <td>身份证号:</td>
  2390. <td><input type="text" name="userInfo.cardNo"
  2391. value="${user.userInfo.cardNo}" /></td>
  2392. <td>上级领导:</td>
  2393. <td><select name="userInfo.managerUserInfo.userInfoId">
  2394. <option>--无--</option>
  2395. <c:forEach items="${userinfos}" var="userinfo">
  2396. <option value="${userinfo.userInfoId}"
  2397. ${user.userInfo.managerUserInfo.userInfoId==userinfo.userInfoId ? "selected='selected'":""}>${userinfo.name}</option>
  2398. </c:forEach>
  2399. </select></td>
  2400. <td>薪水:</td>
  2401. <td><input type="text" name="userInfo.salary"
  2402. value="${user.userInfo.salary}" /></td>
  2403. </tr>
  2404. <tr>
  2405. <td>出生日期:</td>
  2406. <td><input type="date" name="userInfo.birthday"
  2407. value="<fmt:formatDate value="${user.userInfo.birthday}" pattern="yyyy-MM-dd"/>" /></td>
  2408. <td>性别:</td>
  2409. <td><input type="radio" name="userInfo.gender" value="男"
  2410. ${user.userInfo.gender=="男" ? "checked='checked'" :""} /><input
  2411. type="radio" name="userInfo.gender" value="女"
  2412. ${user.userInfo.gender=="女" ? "checked='checked'" :""} /></td>
  2413. <td>职位:</td>
  2414. <td><input type="text" name="userInfo.station"
  2415. value="${user.userInfo.station}" /></td>
  2416. <td>电话号码:</td>
  2417. <td><input type="text" name="userInfo.telephone"
  2418. value="${user.userInfo.telephone}" /></td>
  2419. </tr>
  2420. <tr>
  2421. <td>员工级别:</td>
  2422. <td><select name="userInfo.userLevel">
  2423. <option value="4"
  2424. ${user.userInfo.userLevel=="4" ? "selected='selected'":""}>普通用户</option>
  2425. <option value="3"
  2426. ${user.userInfo.userLevel=="3" ? "selected='selected'":""}>部门经理</option>
  2427. <option value="2"
  2428. ${user.userInfo.userLevel=="2" ? "selected='selected'":""}>副总</option>
  2429. <option value="1"
  2430. ${user.userInfo.userLevel=="1" ? "selected='selected'":""}>总经理</option>
  2431. <option value="0"
  2432. ${user.userInfo.userLevel=="0" ? "selected='selected'":""}>超级管理员</option>
  2433. </select></td>
  2434. <td>说明:</td>
  2435. <td><input type="text" name="userInfo.remark"
  2436. value="${user.userInfo.remark}" /></td>
  2437. <td>排序号:</td>
  2438. <td><input type="text" name="userInfo.orderNo"
  2439. value="${user.userInfo.orderNo}" /></td>
  2440. </tr>
  2441. </table>
  2442. </div>
  2443. </div>
  2444. </form>
  2445. </body>
  2446. </html>
  2447. * left.jsp
  2448. # #
  2449. <%@ page language="java" pageEncoding="UTF-8"%>
  2450. <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%>
  2451. <%@ include file="../baselist.jsp"%>
  2452. <html xmlns="http://www.w3.org/1999/xhtml">
  2453. <head>
  2454. <title></title>
  2455. <link rel="stylesheet" rev="stylesheet" type="text/css"
  2456. href="${ctx}/staticfile/skin/default/css/left.css" media="all" />
  2457. </head>
  2458. <body id="left_frame">
  2459. <div class="PositionFrame_black" id="PositionFrame"></div>
  2460. <!-- begin1 -->
  2461. <div id="sidebar" class="sidebar">
  2462. <div class="sidebar_t">
  2463. <div class="sidebar_t_l"></div>
  2464. <div class="sidebar_t_c"></div>
  2465. <div class="sidebar_t_r"></div>
  2466. </div>
  2467. <div class="panel">
  2468. <div class="panel_icon">
  2469. <img src="${ctx}/staticfile/skin/default/images/icon/user1_lock.png" />
  2470. </div>
  2471. <div class="panel-header">
  2472. <div class="panel-title">权限管理</div>
  2473. <div class="panel-content">
  2474. <ul>
  2475. <shiro:hasPermission name="部门管理">
  2476. <li><a href="${ctx}/sysadmin/dept/list"
  2477. onclick="linkHighlighted(this)" target="main" id="aa_1">部门管理</a></li>
  2478. </shiro:hasPermission>
  2479. <shiro:hasPermission name="用户管理">
  2480. <li><a href="${ctx}/sysadmin/user/list"
  2481. onclick="linkHighlighted(this)" target="main" id="aa_1">用户管理</a></li>
  2482. </shiro:hasPermission>
  2483. <shiro:hasPermission name="角色管理">
  2484. <li><a href="${ctx}/sysadmin/role/list"
  2485. onclick="linkHighlighted(this)" target="main" id="aa_1">角色管理</a></li>
  2486. </shiro:hasPermission>
  2487. <shiro:hasPermission name="模块管理">
  2488. <li><a href="${ctx}/sysadmin/module/list"
  2489. onclick="linkHighlighted(this)" target="main" id="aa_1">模块管理</a></li>
  2490. </shiro:hasPermission>
  2491. </ul>
  2492. </div>
  2493. </div>
  2494. </div>
  2495. <div class="sidebar_t">
  2496. <div class="sidebar_b_l"></div>
  2497. <div class="sidebar_t_c"></div>
  2498. <div class="sidebar_b_r"></div>
  2499. </div>
  2500. </div>
  2501. </body>
  2502. </html>
  2503. * main.jsp
  2504. # #
  2505. <%@ page language="java" pageEncoding="UTF-8"%>
  2506. <%@ include file="../base.jsp" %>
  2507. <html xmlns="http://www.w3.org/1999/xhtml">
  2508. <head>
  2509. <title>模块介绍</title>
  2510. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/>
  2511. </head>
  2512. <body>
  2513. <form>
  2514. <div class="textbox"></div>
  2515. <div class="modelDiv">
  2516. <table class="modelTable" cellspacing="1">
  2517. <tr>
  2518. <td colspan="2" class="modelTitle">系统维护模块介绍</td>
  2519. </tr>
  2520. <tr>
  2521. <td colspan="2" class="subModelTitle">权限管理</td>
  2522. </tr>
  2523. <tr>
  2524. <td class="model_intro_left">多维权限控制模型:</td>
  2525. <td class="model_intro_right">横向模块权限控制(菜单、按钮、状态、功能点), 纵向数据权限控制(行政部门、职务等级、管辖部门、管辖人员)。
  2526. <p>=严密的数据访问控制,充分保障数据的安全性。</p>
  2527. </td>
  2528. </tr>
  2529. <tr>
  2530. <td class="model_intro_left">角色管理:</td>
  2531. <td class="model_intro_right">对人员角色进行权限分配, 实现用户权限批量设置, 支持细粒度权限控制分配(菜单、按钮、状态、功能点)。</td>
  2532. </tr>
  2533. <tr>
  2534. <td class="model_intro_left" width="169">部门管理:</td>
  2535. <td class="model_intro_right" width="81%">对企业部门进行维护和管理。</td>
  2536. </tr>
  2537. <tr>
  2538. <td class="model_intro_left" width="169">用户管理:</td>
  2539. <td class="model_intro_right" width="81%">可对系统操作用户进行维护管理, 维护信息包括用户账号、所属部门、功能权限等, 并支持对特殊用户账号锁定禁用操作。
  2540. <br/>管辖部门管辖人员:实现对特定部门, 特定人员分管关系。
  2541. </td>
  2542. </tr>
  2543. <tfoot>
  2544. <tr>
  2545. <td colspan="2" class="tableFooter"></td>
  2546. </tr>
  2547. </tfoot>
  2548. </table>
  2549. </div>
  2550. </form>
  2551. </body>
  2552. </html>
  2553. * base.jsp
  2554. # #
  2555. <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
  2556. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  2557. <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
  2558. <c:set var="ctx" value="${pageContext.request.contextPath}" />
  2559. <link rel="stylesheet" rev="stylesheet" type="text/css"
  2560. href="${ctx}/staticfile/skin/default/css/default.css" media="all" />
  2561. <link rel="stylesheet" rev="stylesheet" type="text/css"
  2562. href="${ctx}/staticfile/skin/default/css/button.css" media="all" />
  2563. <link rel="stylesheet" rev="stylesheet" type="text/css"
  2564. href="${ctx}/staticfile/skin/default/css/table.css" media="all" />
  2565. <script language="javascript" src="${ctx}/staticfile/js/common.js"></script>
  2566. * baselist.jsp
  2567. # #
  2568. <%@ page language="java" pageEncoding="UTF-8"%>
  2569. <%@ include file="base.jsp"%>
  2570. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/css/extreme/extremecomponents.css" />
  2571. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/css/extreme/extremesite.css" />
  2572. * error.jsp
  2573. # #
  2574. <%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" %>
  2575. <%@taglib prefix="s" uri="/struts-tags"%>
  2576. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2577. <html>
  2578. <head>
  2579. <title>Error Page</title>
  2580. <script language="javascript">
  2581. function showDetail()
  2582. {
  2583. var elm = document.getElementById('detail_system_error_msg');
  2584. if(elm.style.display == '') {
  2585. elm.style.display = 'none';
  2586. }else {
  2587. elm.style.display = '';
  2588. }
  2589. }
  2590. </script>
  2591. </head>
  2592. <body style="font-family:微软雅黑;">
  2593. <div id="content" style="text-align:left;">
  2594. <table>
  2595. <tr>
  2596. <td><img alt="system internal error" src="../staticfile/images/error.jpg"/></td>
  2597. <td>
  2598. <br>
  2599. <b>错误信息:</b>
  2600. <div style="color:blue;padding:15px;">
  2601. <s:property value="exception.message"/>
  2602. </div>
  2603. <button onclick="history.back();">返回</button>
  2604. <p><a href="#" onclick="showDetail();">点击这里查看具体错误消息</a>,
  2605. <br/>
  2606. 报告以下错误消息给系统管理员,可以更加快速的解决问题;
  2607. <br/>联系电话:120
  2608. </p>
  2609. </td>
  2610. </tr>
  2611. </table>
  2612. <div id="detail_system_error_msg" style="display:none;text-align:left;padding-bottom:100px;">
  2613. <pre><s:property value="exceptionStack"/></pre>
  2614. </div>
  2615. </div>
  2616. </body>
  2617. </html>
  2618. * index.jsp
  2619. # #
  2620. <%@ page language="java" pageEncoding="UTF-8"%>
  2621. <%@ include file="base.jsp" %>
  2622. <html xmlns="http://www.w3.org/1999/xhtml">
  2623. <head>
  2624. <title>国际物流汇通商贸</title>
  2625. <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/login.css" media="all" />
  2626. <script src="${ctx}/staticfile/components/pngfix/DD_belatedPNG.js"></script>
  2627. <script> DD_belatedPNG.fix('*'); </script>
  2628. </head>
  2629. <body>
  2630. <form id="login_main" method="post">
  2631. <div id="png">
  2632. <div class="box">
  2633. <div class="zck">
  2634. <div class="inputstyle">
  2635. <div class="inputlable">用户名:
  2636. <input type="text" value="" name="userName" id="userName" onFocus="this.select();" title="请您输入用户名"/>
  2637. <div id="ts" style="z-index:1;">
  2638. </div>
  2639. </div>
  2640. <div class="inputlable">密 码:
  2641. <input type="password" value="" name="password" id="password" onfocus="$('#ts').css('display','none');this.select();"
  2642. onKeyDown="javascript:if(event.keyCode==13){ submitFind(); }" title="请您输入密码"/>
  2643. </div>
  2644. </div>
  2645. <div class="btnstyle">
  2646. <input class="loginImgOut" value="" type="button" onclick="formSubmit('${ctx}/fmain.action','_self');"
  2647. onmouseover="this.className='loginImgOver'"
  2648. onmouseout="this.className='loginImgOut'"
  2649. />
  2650. <input class="resetImgOut" value="" type="button"
  2651. onmouseover="this.className='resetImgOver'"
  2652. onmouseout="this.className='resetImgOut'"
  2653. />
  2654. </div>
  2655. </div>
  2656. <div class="mirro"></div>
  2657. <logic:notEmpty name="loginFailed">
  2658. <c:if test="${loginFailed==1}">
  2659. <c:set var="errorInfo" value="用户名或密码错误, 请重新输入!"/>
  2660. </c:if>
  2661. <c:if test="${loginFailed==2}">
  2662. <c:set var="errorInfo" value="用户名不存在, 请重新输入!"/>
  2663. </c:if>
  2664. <div class="erro" id="erro">
  2665. <div class="erro_intro">
  2666. ${errorInfo}
  2667. </div>
  2668. </div>
  2669. </logic:notEmpty>
  2670. </div>
  2671. </div>
  2672. </div>
  2673. </form>
  2674. <script type="text/JavaScript">
  2675. document.getElementById('login_main').userName.focus();
  2676. </script>
  2677. </body>
  2678. </html>
  2679. * web.xml
  2680. # #
  2681. <!DOCTYPE web-app PUBLIC
  2682. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  2683. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  2684. <web-app>
  2685. <!-- 懒加载加载spring -->
  2686. <context-param>
  2687. <param-name>contextConfigLocation</param-name>
  2688. <param-value>classpath:/spring/applicationContext*.xml</param-value>
  2689. </context-param>
  2690. <!--Spring的ApplicationContext 载入(懒加载) -->
  2691. <listener>
  2692. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  2693. </listener>
  2694. <!-- shiro【权限VS安全】过滤器 -->
  2695. <filter>
  2696. <!-- 此处的name 要和配置文件中 filter工厂的id一样 -->
  2697. <filter-name>shiroFilter</filter-name>
  2698. <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  2699. <init-param>
  2700. <!-- 让shiro过滤器的生命周期 交给web容器管理 -->
  2701. <param-name>targetFilterLifecycle</param-name>
  2702. <param-value>true</param-value>
  2703. </init-param>
  2704. </filter>
  2705. <filter-mapping>
  2706. <filter-name>shiroFilter</filter-name>
  2707. <url-pattern>/*</url-pattern>
  2708. </filter-mapping>
  2709. <!-- 解决乱码过滤器(只能解决post的,get的需要手动解决) -->
  2710. <!-- 乱码过滤器 -->
  2711. <filter>
  2712. <filter-name>characterFilter</filter-name>
  2713. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  2714. <init-param>
  2715. <param-name>encoding</param-name>
  2716. <param-value>utf-8</param-value>
  2717. </init-param>
  2718. <init-param>
  2719. <param-name>forceEncoding</param-name>
  2720. <param-value>true</param-value>
  2721. </init-param>
  2722. </filter>
  2723. <filter-mapping>
  2724. <filter-name>characterFilter</filter-name>
  2725. <url-pattern>/*</url-pattern>
  2726. </filter-mapping>
  2727. <!-- 分发器 -->
  2728. <servlet>
  2729. <servlet-name>springmvc_dispatcher</servlet-name>
  2730. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  2731. <init-param>
  2732. <param-name>contextConfigLocation</param-name>
  2733. <!-- 启动spring-mvc配置文件 -->
  2734. <param-value>classpath:/spring/spring-mvc-config.xml</param-value>
  2735. </init-param>
  2736. <!-- 设置优先级 -->
  2737. <load-on-startup>1</load-on-startup>
  2738. </servlet>
  2739. <!-- 分发器的映射 -->
  2740. <servlet-mapping>
  2741. <servlet-name>springmvc_dispatcher</servlet-name>
  2742. <url-pattern>/</url-pattern>
  2743. </servlet-mapping>
  2744. <!-- 欢迎界面 -->
  2745. <welcome-file-list>
  2746. <welcome-file>index.jsp</welcome-file>
  2747. </welcome-file-list>
  2748. </web-app>
  2749. * index.jsp
  2750. # #
  2751. <%@ page contentType="text/html; charset=utf-8"%>
  2752. <html>
  2753. <head>
  2754. </head>
  2755. <script type="text/javascript">
  2756. //程序首页,进来就直接发请求
  2757. top.location.href = "tologin.action"; //javascript页面跳转,防止页面嵌套,直接跳到最顶部窗口
  2758. </script>
  2759. <body>
  2760. </body>
  2761. </html>
  • pom.xml

    #

    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    3. <modelVersion>4.0.0</modelVersion>
    4. <groupId>com.peng</groupId>
    5. <artifactId>ssmm</artifactId>
    6. <packaging>war</packaging>
    7. <version>0.0.1-SNAPSHOT</version>
    8. <name>ssmm Maven Webapp</name>
    9. <url>http://maven.apache.org</url>
    10. <properties>
    11. <!-- junit -->
    12. <junit.version>4.12</junit.version>
    13. <!-- spring -->
    14. <spring.version>4.2.3.RELEASE</spring.version>
    15. <!-- mybatis -->
    16. <mybatis.version>3.2.8</mybatis.version>
    17. <mybatis.spring.version>1.2.2</mybatis.spring.version>
    18. <mybatis.paginator.version>1.2.15</mybatis.paginator.version>
    19. <!-- mysql -->
    20. <mysql.version>5.1.32</mysql.version>
    21. <!-- -->
    22. <bonecp-spring.version>0.8.0.RELEASE</bonecp-spring.version>
    23. <!-- -->
    24. <druid.version>1.0.9</druid.version>
    25. <!-- mapper -->
    26. <mapper.version>2.3.2</mapper.version>
    27. <!-- -->
    28. <pagehelper.version>3.4.2</pagehelper.version>
    29. <!-- -->
    30. <jsqlparser.version>0.9.1</jsqlparser.version>
    31. <!-- log4j -->
    32. <slf4j.version>1.7.7</slf4j.version>
    33. <log4j.version>1.2.17</log4j.version>
    34. <!--jstl -->
    35. <jstl.version>1.2</jstl.version>
    36. <!--servlet -->
    37. <servlet-api.version>2.5</servlet-api.version>
    38. <!--jsp -->
    39. <jsp-api.version>2.0</jsp-api.version>
    40. <!--c3p0 -->
    41. <c3p0.version>0.9.1.2</c3p0.version>
    42. <jackson.version>2.9.3</jackson.version>
    43. <!-- servlet-api版本号 -->
    44. <servlet_api.version>4.0.0-b07</servlet_api.version>
    45. </properties>
    46. <dependencies>
    47. <!-- ztree -->
    48. <dependency>
    49. <groupId>com.fasterxml.jackson.core</groupId>
    50. <artifactId>jackson-databind</artifactId>
    51. <version>${jackson.version}</version>
    52. </dependency>
    53. <!-- c3p0 -->
    54. <dependency>
    55. <groupId>c3p0</groupId>
    56. <artifactId>c3p0</artifactId>
    57. <version>${c3p0.version}</version>
    58. </dependency>
    59. <!-- 日志文件管理包 -->
    60. <dependency>
    61. <groupId>log4j</groupId>
    62. <artifactId>log4j</artifactId>
    63. <version>${log4j.version}</version>
    64. </dependency>
    65. <!-- Spring -->
    66. <dependency>
    67. <groupId>org.springframework</groupId>
    68. <artifactId>spring-context</artifactId>
    69. <version>${spring.version}</version>
    70. </dependency>
    71. <dependency>
    72. <groupId>org.springframework</groupId>
    73. <artifactId>spring-webmvc</artifactId>
    74. <version>${spring.version}</version>
    75. </dependency>
    76. <dependency>
    77. <groupId>org.springframework</groupId>
    78. <artifactId>spring-jdbc</artifactId>
    79. <version>${spring.version}</version>
    80. </dependency>
    81. <dependency>
    82. <groupId>org.springframework</groupId>
    83. <artifactId>spring-aspects</artifactId>
    84. <version>${spring.version}</version>
    85. </dependency>
    86. <!-- Mybatis -->
    87. <dependency>
    88. <groupId>org.mybatis</groupId>
    89. <artifactId>mybatis</artifactId>
    90. <version>${mybatis.version}</version>
    91. </dependency>
    92. <dependency>
    93. <groupId>org.mybatis</groupId>
    94. <artifactId>mybatis-spring</artifactId>
    95. <version>${mybatis.spring.version}</version>
    96. </dependency>
    97. <dependency>
    98. <groupId>com.github.miemiedev</groupId>
    99. <artifactId>mybatis-paginator</artifactId>
    100. <version>${mybatis.paginator.version}</version>
    101. </dependency>
    102. <!-- 通用Mapper,所有的单表的代码都不用编写 -->
    103. <dependency>
    104. <groupId>com.github.abel533</groupId>
    105. <artifactId>mapper</artifactId>
    106. <version>${mapper.version}</version>
    107. </dependency>
    108. <!-- MySql -->
    109. <dependency>
    110. <groupId>mysql</groupId>
    111. <artifactId>mysql-connector-java</artifactId>
    112. <version>${mysql.version}</version>
    113. </dependency>
    114. <!-- 超高性能连接池 -->
    115. <dependency>
    116. <groupId>com.zaxxer</groupId>
    117. <artifactId>HikariCP-java6</artifactId>
    118. <version>2.3.9</version>
    119. <scope>compile</scope>
    120. </dependency>
    121. <!-- Apache Shiro 权限架构 -->
    122. <dependency>
    123. <groupId>org.apache.shiro</groupId>
    124. <artifactId>shiro-all</artifactId>
    125. <version>1.2.3</version>
    126. </dependency>
    127. <!-- 分页插件 -->
    128. <dependency>
    129. <groupId>com.github.pagehelper</groupId>
    130. <artifactId>pagehelper</artifactId>
    131. <version>${pagehelper.version}</version>
    132. </dependency>
    133. <dependency>
    134. <groupId>com.github.jsqlparser</groupId>
    135. <artifactId>jsqlparser</artifactId>
    136. <version>${jsqlparser.version}</version>
    137. </dependency>
    138. <dependency>
    139. <groupId>org.slf4j</groupId>
    140. <artifactId>slf4j-log4j12</artifactId>
    141. <version>${slf4j.version}</version>
    142. </dependency>
    143. <!-- JSP相关 -->
    144. <dependency>
    145. <groupId>jstl</groupId>
    146. <artifactId>jstl</artifactId>
    147. <version>${jstl.version}</version>
    148. </dependency>
    149. <dependency>
    150. <groupId>javax.servlet</groupId>
    151. <artifactId>servlet-api</artifactId>
    152. <version>${servlet-api.version}</version>
    153. <scope>provided</scope>
    154. </dependency>
    155. <dependency>
    156. <groupId>javax.servlet</groupId>
    157. <artifactId>jsp-api</artifactId>
    158. <version>${jsp-api.version}</version>
    159. <scope>provided</scope>
    160. </dependency>
    161. <!-- 字符加密、解密 -->
    162. <dependency>
    163. <groupId>commons-codec</groupId>
    164. <artifactId>commons-codec</artifactId>
    165. <version>1.9</version>
    166. </dependency>
    167. <!-- 数据校验 -->
    168. <dependency>
    169. <groupId>org.hibernate</groupId>
    170. <artifactId>hibernate-validator</artifactId>
    171. <version>5.1.3.Final</version>
    172. </dependency>
    173. <!-- 上传组件包 -->
    174. <dependency>
    175. <groupId>commons-fileupload</groupId>
    176. <artifactId>commons-fileupload</artifactId>
    177. <version>1.3.1</version>
    178. </dependency>
    179. <dependency>
    180. <groupId>commons-io</groupId>
    181. <artifactId>commons-io</artifactId>
    182. <version>2.4</version>
    183. </dependency>
    184. <dependency>
    185. <groupId>commons-codec</groupId>
    186. <artifactId>commons-codec</artifactId>
    187. <version>1.9</version>
    188. </dependency>
    189. <!-- servlet_api依赖 -->
    190. <dependency>
    191. <groupId>javax.servlet</groupId>
    192. <artifactId>javax.servlet-api</artifactId>
    193. <version>${servlet_api.version}</version>
    194. <scope>provided</scope>
    195. </dependency>
    196. </dependencies>
    197. <build>
    198. <plugins>
    199. <!-- tomcat插件 -->
    200. <plugin>
    201. <groupId>org.apache.tomcat.maven</groupId>
    202. <artifactId>tomcat7-maven-plugin</artifactId>
    203. <version>2.2</version>
    204. <configuration>
    205. <port>8077</port>
    206. <!-- 斜杠代表(代表项目地址:localhost:/8077) -->
    207. <path>/</path>
    208. </configuration>
    209. </plugin>
    210. </plugins>
    211. </build>
    212. </project>

技术

  • 框架

    • Maven+Spring+SpringMVC+Mybatis
    • 图示

      • 99DkYv4.png
  • 登录【权限+加密】s

    • Shiro框架
    • 图示

      • jY5OQU5.png
  • 树结构显示

    • zTree框架
    • 图示

      • 0Wtl3ad.png
  • 表模型设计

    • PowerDesigner15工具
    • 图示

      • J4PgWqX.png

发表评论

表情:
评论列表 (有 0 条评论,516人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据正式2

    大数据正式2 用户身份与用户组记录的文件 在Linux系统当中,默认情况下所有的系统上的账号信息都记录在/etc/passwd这个文件内(包括root用户),