Yumin 6 éve
commit
2dba3895b8
100 módosított fájl, 8083 hozzáadás és 0 törlés
  1. 27 0
      .classpath
  2. 17 0
      .gitattributes
  3. 49 0
      .gitignore
  4. 46 0
      .project
  5. 12 0
      .settings/.jsdtscope
  6. 6 0
      .settings/com.genuitec.eclipse.core.prefs
  7. 4 0
      .settings/org.eclipse.core.resources.prefs
  8. 11 0
      .settings/org.eclipse.jdt.core.prefs
  9. 9 0
      .settings/org.eclipse.wst.common.component
  10. 11 0
      .settings/org.eclipse.wst.common.project.facet.core.xml
  11. 1 0
      .settings/org.eclipse.wst.jsdt.ui.superType.container
  12. 1 0
      .settings/org.eclipse.wst.jsdt.ui.superType.name
  13. 4 0
      README.md
  14. 28 0
      WebRoot/404.jsp
  15. 3 0
      WebRoot/META-INF/MANIFEST.MF
  16. 16 0
      WebRoot/WEB-INF/classes/applicationContext.xml
  17. 24 0
      WebRoot/WEB-INF/classes/dbconfig.properties
  18. 17 0
      WebRoot/WEB-INF/classes/ecache.xml
  19. 76 0
      WebRoot/WEB-INF/classes/excelMap.properties
  20. 21 0
      WebRoot/WEB-INF/classes/log4j.properties
  21. 20 0
      WebRoot/WEB-INF/classes/mybatis-config.xml
  22. 142 0
      WebRoot/WEB-INF/classes/spring-mvc.xml
  23. 87 0
      WebRoot/WEB-INF/classes/spring-mybatis.xml
  24. 1 0
      WebRoot/WEB-INF/classes/system.properties
  25. 23 0
      WebRoot/WEB-INF/jsp/Jsp模板.jsp
  26. 73 0
      WebRoot/WEB-INF/jsp/admin/addAdmin.jsp
  27. 162 0
      WebRoot/WEB-INF/jsp/admin/admin.jsp
  28. 59 0
      WebRoot/WEB-INF/jsp/admin/editAdmin.jsp
  29. 83 0
      WebRoot/WEB-INF/jsp/batches/addBatch.jsp
  30. 161 0
      WebRoot/WEB-INF/jsp/batches/batches.jsp
  31. 152 0
      WebRoot/WEB-INF/jsp/batches/showBatches.jsp
  32. 22 0
      WebRoot/WEB-INF/jsp/buttom.jsp
  33. 90 0
      WebRoot/WEB-INF/jsp/course/addCourse.jsp
  34. 159 0
      WebRoot/WEB-INF/jsp/course/course.jsp
  35. 22 0
      WebRoot/WEB-INF/jsp/course/courseStatistics-question-panal.jsp
  36. 506 0
      WebRoot/WEB-INF/jsp/course/courseStatistics.jsp
  37. 87 0
      WebRoot/WEB-INF/jsp/course/editCourse.jsp
  38. 134 0
      WebRoot/WEB-INF/jsp/course/showCourse.jsp
  39. 46 0
      WebRoot/WEB-INF/jsp/course/showCourseLea.jsp
  40. 56 0
      WebRoot/WEB-INF/jsp/course/showCourseStu.jsp
  41. 50 0
      WebRoot/WEB-INF/jsp/course/showCourseTea.jsp
  42. 207 0
      WebRoot/WEB-INF/jsp/dataImport/dataImport.jsp
  43. 90 0
      WebRoot/WEB-INF/jsp/dataImport/import-result.jsp
  44. 43 0
      WebRoot/WEB-INF/jsp/error.jsp
  45. 292 0
      WebRoot/WEB-INF/jsp/eval/eval.jsp
  46. 200 0
      WebRoot/WEB-INF/jsp/eval/showEval.jsp
  47. 219 0
      WebRoot/WEB-INF/jsp/evalTable/addEvalTable.jsp
  48. 257 0
      WebRoot/WEB-INF/jsp/evalTable/editEvalTable.jsp
  49. 151 0
      WebRoot/WEB-INF/jsp/evalTable/evalTable.jsp
  50. 186 0
      WebRoot/WEB-INF/jsp/evalTable/showEvalTable.jsp
  51. 63 0
      WebRoot/WEB-INF/jsp/head.jsp
  52. 76 0
      WebRoot/WEB-INF/jsp/header.jspf
  53. 207 0
      WebRoot/WEB-INF/jsp/index.jsp
  54. 125 0
      WebRoot/WEB-INF/jsp/leaEval/leaEval.jsp
  55. 212 0
      WebRoot/WEB-INF/jsp/leaEval/showLeaEval.jsp
  56. 127 0
      WebRoot/WEB-INF/jsp/left.jsp
  57. 112 0
      WebRoot/WEB-INF/jsp/model/resetPwd.jsp
  58. 27 0
      WebRoot/WEB-INF/jsp/model/seasonSelectForm.jsp
  59. 168 0
      WebRoot/WEB-INF/jsp/privilege/privilege.jsp
  60. 115 0
      WebRoot/WEB-INF/jsp/resetPwd.jsp
  61. 212 0
      WebRoot/WEB-INF/jsp/stuEval/showStuEval.jsp
  62. 100 0
      WebRoot/WEB-INF/jsp/stuEval/stuEval.jsp
  63. 115 0
      WebRoot/WEB-INF/jsp/student/addteacher.jsp
  64. 112 0
      WebRoot/WEB-INF/jsp/student/editTeacher.jsp
  65. 217 0
      WebRoot/WEB-INF/jsp/student/showStudent.jsp
  66. 26 0
      WebRoot/WEB-INF/jsp/student/student-info-table.jsp
  67. 230 0
      WebRoot/WEB-INF/jsp/student/student.jsp
  68. 161 0
      WebRoot/WEB-INF/jsp/student/studentStatistics.jsp
  69. 212 0
      WebRoot/WEB-INF/jsp/teaEval/showTeaEval.jsp
  70. 99 0
      WebRoot/WEB-INF/jsp/teaEval/teaEval.jsp
  71. 102 0
      WebRoot/WEB-INF/jsp/teaEval/teaStuEval.jsp
  72. 56 0
      WebRoot/WEB-INF/jsp/teaEval/teaStuEval_showStudents.jsp
  73. 115 0
      WebRoot/WEB-INF/jsp/teacher/addteacher.jsp
  74. 112 0
      WebRoot/WEB-INF/jsp/teacher/editTeacher.jsp
  75. 119 0
      WebRoot/WEB-INF/jsp/teacher/showTeacher.jsp
  76. 22 0
      WebRoot/WEB-INF/jsp/teacher/teacher-info-table.jsp
  77. 140 0
      WebRoot/WEB-INF/jsp/teacher/teacher.jsp
  78. 195 0
      WebRoot/WEB-INF/jsp/teacher/teacherStatistics.jsp
  79. 46 0
      WebRoot/WEB-INF/jsp/template/add-template.jsp
  80. 46 0
      WebRoot/WEB-INF/jsp/template/edit-template.jsp
  81. 175 0
      WebRoot/WEB-INF/jsp/template/template.jsp
  82. 76 0
      WebRoot/WEB-INF/jsp/test.jsp
  83. BIN
      WebRoot/WEB-INF/lib/activation.jar
  84. BIN
      WebRoot/WEB-INF/lib/antlr-2.7.6.jar
  85. BIN
      WebRoot/WEB-INF/lib/aopalliance-1.0.jar
  86. BIN
      WebRoot/WEB-INF/lib/aspectjweaver.jar
  87. BIN
      WebRoot/WEB-INF/lib/cglib-2.2.jar
  88. BIN
      WebRoot/WEB-INF/lib/classloader-leak-prevention-1.10.0.jar
  89. BIN
      WebRoot/WEB-INF/lib/commons-collections-3.1.jar
  90. BIN
      WebRoot/WEB-INF/lib/commons-fileupload-1.3.1.jar
  91. BIN
      WebRoot/WEB-INF/lib/commons-io-2.2.jar
  92. BIN
      WebRoot/WEB-INF/lib/commons-lang3-3.3.2.jar
  93. BIN
      WebRoot/WEB-INF/lib/commons-logging.jar
  94. BIN
      WebRoot/WEB-INF/lib/dom4j-1.6.1.jar
  95. BIN
      WebRoot/WEB-INF/lib/druid-1.0.5.jar
  96. BIN
      WebRoot/WEB-INF/lib/fastjson-1.1.32.jar
  97. BIN
      WebRoot/WEB-INF/lib/guava-18.0.jar
  98. BIN
      WebRoot/WEB-INF/lib/jackson-annotations-2.4.1.jar
  99. BIN
      WebRoot/WEB-INF/lib/jackson-core-2.4.4.jar
  100. BIN
      WebRoot/WEB-INF/lib/jackson-databind-2.4.1.jar

+ 27 - 0
.classpath

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="config"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
+		<attributes>
+			<attribute name="owner.project.facets" value="java"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="com.genuitec.runtime.library/com.genuitec.generic_7.0">
+		<attributes>
+			<attribute name="owner.project.facets" value="jst.web"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+	<classpathentry kind="con" path="com.genuitec.runtime.library/com.genuitec.jstl_1.2.2">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.dependency" value="WEB-INF/lib"/>
+			<attribute name="owner.project.facets" value="jst.web.jstl"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jackson-core-2.4.4.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jackson-databind-2.4.1.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jackson-annotations-2.4.1.jar"/>
+	<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
+</classpath>

+ 17 - 0
.gitattributes

@@ -0,0 +1,17 @@
+# Auto detect text files and perform LF normalization
+* text=auto
+
+# Custom for Visual Studio
+*.cs     diff=csharp
+
+# Standard to msysgit
+*.doc	 diff=astextplain
+*.DOC	 diff=astextplain
+*.docx diff=astextplain
+*.DOCX diff=astextplain
+*.dot  diff=astextplain
+*.DOT  diff=astextplain
+*.pdf  diff=astextplain
+*.PDF	 diff=astextplain
+*.rtf	 diff=astextplain
+*.RTF	 diff=astextplain

+ 49 - 0
.gitignore

@@ -0,0 +1,49 @@
+
+*.class
+
+# Windows image file caches
+Thumbs.db
+ehthumbs.db
+
+# Folder config file
+Desktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msm
+*.msp
+
+
+# Windows shortcuts
+*.lnk
+
+.idea/*
+
+# =========================
+# Operating System Files
+# =========================
+
+# OSX
+# =========================
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk

+ 46 - 0
.project

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>TQE</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+	</natures>
+</projectDescription>

+ 12 - 0
.settings/.jsdtscope

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="WebRoot"/>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
+		<attributes>
+			<attribute name="hide" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary/StandardBrowser/html5"/>
+	<classpathentry kind="output" path=""/>
+</classpath>

+ 6 - 0
.settings/com.genuitec.eclipse.core.prefs

@@ -0,0 +1,6 @@
+clsCnt=78
+eclipse.preferences.version=1
+locCnt=5824
+pkgCnt=10
+sTime=2015\u5E745\u67083\u65E5 \u661F\u671F\u65E5 \u4E0B\u534810\u65F619\u520607\u79D2 CST
+srcCnt=2

+ 4 - 0
.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//WebRoot/404.jsp=UTF-8
+encoding//WebRoot/WEB-INF/jsp/course/showCourseStu.jsp=UTF-8
+encoding/<project>=UTF-8

+ 11 - 0
.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7

+ 9 - 0
.settings/org.eclipse.wst.common.component

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="TQE">
+        <wb-resource deploy-path="/" source-path="/WebRoot" tag="defaultRootSource"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/config"/>
+        <property name="context-root" value="TQE"/>
+        <property name="java-output-path" value="/TQE/WebRoot/WEB-INF/classes"/>
+    </wb-module>
+</project-modules>

+ 11 - 0
.settings/org.eclipse.wst.common.project.facet.core.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <runtime name="com.genuitec.runtime.generic.jee70"/>
+  <fixed facet="java"/>
+  <fixed facet="jst.web"/>
+  <fixed facet="wst.jsdt.web"/>
+  <installed facet="java" version="1.7"/>
+  <installed facet="jst.web" version="3.1"/>
+  <installed facet="jst.web.jstl" version="1.2.2"/>
+  <installed facet="wst.jsdt.web" version="1.0"/>
+</faceted-project>

+ 1 - 0
.settings/org.eclipse.wst.jsdt.ui.superType.container

@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 1 - 0
.settings/org.eclipse.wst.jsdt.ui.superType.name

@@ -0,0 +1 @@
+Window

+ 4 - 0
README.md

@@ -0,0 +1,4 @@
+# TQE
+教学质量评估系统 Teaching Quality Evaluation System
+
+完成教学的评教和评教结果的展示

+ 28 - 0
WebRoot/404.jsp

@@ -0,0 +1,28 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%
+String path = request.getContextPath();
+String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<!doctype html>
+<html>
+<head>
+    <title>404|页面未找到</title>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width" />
+    <link rel="stylesheet" href="<%=path%>/css/404.css">
+</head>
+<body>
+    <div id="error">
+      <a href="<%=path%>">
+        <img src="${pageContext.request.contextPath}/image/404.png" alt="404 page not found"  />
+      </a>
+      <script type="text/javascript">
+      function goback(){
+    	  window.history.go(-1);
+      }
+      setTimeout("goback()", 3000);
+      		
+      </script>
+    </div>
+</body>
+</html>

+ 3 - 0
WebRoot/META-INF/MANIFEST.MF

@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+

+ 16 - 0
WebRoot/WEB-INF/classes/applicationContext.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans 	http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+						http://www.springframework.org/schema/context 	http://www.springframework.org/schema/context/spring-context-2.5.xsd 
+          				http://www.springframework.org/schema/aop  		http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+						http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+						 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
+						http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
+	
+</beans>
+     
+    

+ 24 - 0
WebRoot/WEB-INF/classes/dbconfig.properties

@@ -0,0 +1,24 @@
+url:jdbc:mysql://localhost:3306/tqe?characterEncoding=utf-8
+driverClassName:com.mysql.jdbc.Driver
+username:root
+password:root
+
+
+ 
+maxActive:20
+initialSize:1
+maxWait:60000
+minIdle:10
+#maxIdle:15
+ 
+timeBetweenEvictionRunsMillis:60000
+minEvictableIdleTimeMillis:300000
+ 
+testWhileIdle:true
+testOnBorrow:false
+testOnReturn:false
+maxOpenPreparedStatements:20
+
+removeAbandoned:false
+removeAbandonedTimeout:1800
+logAbandoned:true

+ 17 - 0
WebRoot/WEB-INF/classes/ecache.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="ehcache.xsd">
+
+	<diskStore path="java.io.tmpdir" />
+	<defaultCache maxElementsInMemory="10000" eternal="false"
+		timeToIdleSeconds="30" timeToLiveSeconds="30" overflowToDisk="false" />
+	<!-- 配置自定义缓存 maxElementsInMemory:缓存中允许创建的最大对象数 eternal:缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期。 
+		timeToIdleSeconds:缓存数据的钝化时间,也就是在一个元素消亡之前, 两次访问时间的最大时间间隔值,这只能在元素不是永久驻留时有效, 
+		如果该值是 0 就意味着元素可以停顿无穷长的时间。 timeToLiveSeconds:缓存数据的生存时间,也就是一个元素从构建到消亡的最大时间间隔值, 
+		这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。 overflowToDisk:内存不足时,是否启用磁盘缓存。 memoryStoreEvictionPolicy:缓存满了之后的淘汰算法。 -->
+
+	<cache name="MCache" maxElementsInMemory="10000" eternal="true"
+		overflowToDisk="false" timeToIdleSeconds="0" timeToLiveSeconds="600"
+		memoryStoreEvictionPolicy="LFU" />
+</ehcache>

+ 76 - 0
WebRoot/WEB-INF/classes/excelMap.properties

@@ -0,0 +1,76 @@
+\u6559\u5E08\u53F7=id
+\u59D3\u540D=name
+\u6027\u522B=sex
+\u51FA\u751F\u65E5\u671F=birthday
+\u8054\u7CFB\u7535\u8BDD=phone
+\u901A\u8BAF\u5730\u5740=addr
+\u90AE\u653F\u7F16\u7801=postId
+\u7535\u5B50\u90AE\u7BB1=email
+\u56FD\u7C4D=nation
+\u8BC1\u4EF6\u7C7B\u578B=idType
+\u8BC1\u4EF6\u53F7\u7801=idNumber
+\u6C11\u65CF=folk
+\u653F\u6CBB\u9762\u8C8C=politicalStatus
+\u9662\u7CFB=department
+\u804C\u79F0=title
+\u53C2\u52A0\u5DE5\u4F5C\u65F6\u95F4=workDate
+
+teacher.id=\u6559\u5E08\u53F7
+teacher.name=\u59D3\u540D
+teacher.sex=\u6027\u522B
+teacher.birthday=\u51FA\u751F\u65E5\u671F
+teacher.phone=\u8054\u7CFB\u7535\u8BDD
+teacher.addr=\u901A\u8BAF\u5730\u5740
+teacher.postId=\u90AE\u653F\u7F16\u7801
+teacher.email=\u7535\u5B50\u90AE\u7BB1
+teacher.nation=\u56FD\u7C4D
+teacher.idType=\u8BC1\u4EF6\u7C7B\u578B
+teacher.idNumber=\u8BC1\u4EF6\u53F7\u7801
+teacher.folk=\u6C11\u65CF
+teacher.politicalStatus=\u653F\u6CBB\u9762\u8C8C
+teacher.department=\u9662\u7CFB
+teacher.title=\u804C\u79F0
+teacher.workDate=\u53C2\u52A0\u5DE5\u4F5C\u65F6\u95F4
+
+
+course.cid=\u8BFE\u7A0B\u53F7
+course.cno=\u8BFE\u5E8F\u53F7
+course.name=\u8BFE\u7A0B\u540D\u79F0
+course.campus=\u6821\u533A
+course.department=\u5F00\u8BFE\u9662\u7CFB
+course.stuNumber=\u9009\u8BFE\u4EBA\u6570
+course.peroid=\u8BFE\u7A0B\u73ED\u603B\u5B66\u65F6
+course.credit=\u8BFE\u7A0B\u5B66\u5206
+course.attr=\u9009\u8BFE\u5C5E\u6027
+course.examMode=\u8003\u8BD5\u65B9\u5F0F
+course.nature=\u8BFE\u7A0B\u73ED\u6027\u8D28
+course.teacherId=\u4E3B\u8BB2\u6559\u5E08\u53F7
+course.season=\u4E3B\u8BB2\u6559\u5E08\u53F7
+course.combine=\u5408\u73ED
+
+student.sid=\u5B66\u53F7
+student.name=\u59D3\u540D
+student.sex=\u6027\u522B
+student.birthday=\u51FA\u751F\u65E5\u671F
+student.idNumber=\u8BC1\u4EF6\u53F7\u7801
+student.nation=\u6C11\u65CF
+student.politicalStatus=\u653F\u6CBB\u9762\u8C8C
+student.language=\u5916\u8BED\u8BED\u79CD
+student.department=\u9662\u7CFB
+student.major=\u4E13\u4E1A
+student.clazz=\u73ED\u7EA7
+student.field=\u4E13\u4E1A\u65B9\u5411
+student.educationBackground=\u5B66\u751F\u7C7B\u522B
+student.grade=\u5E74\u7EA7
+student.campus=\u6821\u533A
+student.hasRoll=\u662F\u5426\u6709\u5B66\u7C4D
+student.atSchool=\u662F\u5426\u5728\u6821
+student.style=\u5B66\u4E60\u65B9\u5F0F
+
+sc.cno=\u8BFE\u5E8F\u53F7
+sc.cid=\u8BFE\u7A0B\u53F7
+sc.sid=\u5B66\u751F\u5B66\u53F7
+sc.attr=\u8BFE\u7A0B\u73ED\u5C5E\u6027
+
+filter.course.attr=\u91CD\u4FEE\u91CD\u8003
+filter.sc.attr=\u91CD\u4FEE\u91CD\u8003

+ 21 - 0
WebRoot/WEB-INF/classes/log4j.properties

@@ -0,0 +1,21 @@
+log4j.rootLogger=INFO,Console,logfile
+  
+#Console  
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Threshold=DEBUG
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
+log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  
+
+#RollingFile
+log4j.appender.logfile=org.apache.log4j.RollingFileAppender
+log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myweb.log
+log4j.appender.logfile.MaxFileSize=1MB
+log4j.appender.logfile.MaxBackupIndex=10
+log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.logfile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
+
+log4j.logger.java.sql.ResultSet=INFO
+log4j.logger.java.sql.Connection=INFO
+log4j.logger.java.sql.Statement=INFO
+log4j.logger.java.sql.PreparedStatement=DEBUG
+

+ 20 - 0
WebRoot/WEB-INF/classes/mybatis-config.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>   
+<!DOCTYPE configuration   
+    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"   
+    "http://mybatis.org/dtd/mybatis-3-config.dtd">   
+    
+<configuration>   
+    <settings>   
+<!--         <setting name="cacheEnabled" value="true" />    -->
+        <setting name="useGeneratedKeys" value="true" />   
+        <setting name="defaultExecutorType" value="REUSE" />   
+        <setting name="defaultExecutorType" value="BATCH" />
+        
+    </settings>   
+    <typeAliases>   
+    </typeAliases>
+
+    <typeHandlers>
+        <package name="com.tqe.base.mybatis.handler" />
+    </typeHandlers>
+</configuration>

+ 142 - 0
WebRoot/WEB-INF/classes/spring-mvc.xml

@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
+	xmlns:cache="http://www.springframework.org/schema/cache"
+	xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:task="http://www.springframework.org/schema/task"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+     http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd
+    http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
+    http://www.springframework.org/schema/aop  		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
+    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-3.2.xsd
+    http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
+    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd">
+
+	<!-- 扫描包,默认扫描所有 com.tqe下的所有注解 -->
+	<context:component-scan base-package="com.tqe"/>
+	<aop:aspectj-autoproxy />
+	<!-- mvc注解驱动 -->
+	<mvc:annotation-driven conversion-service="conversionService" >
+		<mvc:argument-resolvers>
+			<bean class="com.tqe.base.web.resolver.PageVOHandlerMethodArgumentResolver" />
+		</mvc:argument-resolvers>
+	</mvc:annotation-driven>
+	<!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在spring主配置文件中才会生效 -->
+	<cache:annotation-driven cache-manager="cacheManager" />
+	<bean
+		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
+
+
+	<!-- spring mvc请求映射 -->
+	<bean
+		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
+		<property name="synchronizeOnSession" value="true"/>
+	</bean>
+
+
+    <bean id="conversionService"
+          class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
+        <property name="converters">
+            <set>
+                <bean class="com.tqe.base.converter.StringConverter"/>
+            </set>
+        </property>
+    </bean>
+
+    <!-- 视图解释类 -->
+	<bean
+		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+		<!-- //Controler 返回的ModeAndView自动到此目录下找对应jsp为后缀的文件 -->
+		<property name="prefix" value="/WEB-INF/jsp/" />
+		<property name="suffix" value=".jsp" /><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
+		<!-- 使用Jsp作为视图解释层 -->
+		<property name="viewClass"
+			value="org.springframework.web.servlet.view.JstlView" />
+	</bean>
+
+
+	<!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理 -->
+	<mvc:resources mapping="/image/**" location="/image/" />
+	<mvc:resources mapping="/css/**" location="/css/" />
+	<mvc:resources mapping="/js/**" location="/js/" />
+	<mvc:resources mapping="/fonts/**" location="/fonts/" />
+
+	<!-- 文件上传 -->
+	<bean id="multipartResolver"
+		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
+		<property name="defaultEncoding" value="utf-8"/>
+		<property name="maxInMemorySize" value="40960"/>
+		<!-- 最大上传20M文件 -->
+		<property name="maxUploadSize" value="20971520"/>
+	</bean>
+
+	<!-- 导入mybatis的配置信息 -->
+	<import resource="spring-mybatis.xml" />
+
+	<!-- 配置拦截器 -->
+	<mvc:interceptors>
+		<mvc:interceptor>
+			<mvc:mapping path="/admin/stuEval*" />
+			<bean class="com.tqe.interceptor.StuEvalInterceptor"/>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/admin/teaEval*" />
+			<bean class="com.tqe.interceptor.TeaEvalInterceptor"/>
+		</mvc:interceptor>
+	</mvc:interceptors>
+
+
+    <bean  class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
+        <property name="messageConverters">
+            <list>
+                <bean class = "org.springframework.http.converter.StringHttpMessageConverter">
+                    <property name = "supportedMediaTypes">
+                        <list>
+                            <value>text/plain;charset=UTF-8</value>
+                        </list>
+                    </property>
+                </bean>
+            </list>
+        </property>
+    </bean>
+
+    <!-- 配置responseBody 结果返回json数据 -->
+	<bean id="jsonConverter"
+		class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
+
+    </bean>
+		
+		<!-- spring自己的换管理器,这里定义了两个缓存位置名称 ,既注解中的value -->
+	<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
+		<property name="caches">
+			<set>
+				<bean
+					class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"
+					p:name="mCache" />
+			</set>
+		</property>
+	</bean>
+
+
+    <!--  全局异常处理 -->
+    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
+        <!-- 定义默认的异常处理页面,当该异常类型的注册时使用 -->
+        <property name="defaultErrorView" value="error"/>
+        <!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception -->
+        <property name="exceptionAttribute" value="ex"/>
+        <!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->
+        <property name="exceptionMappings">
+            <props>
+                <prop key="com.tqe.base.exception.UserNotExistException">error</prop>
+                <!-- 这里还可以继续扩展对不同异常类型的处理 -->
+            </props>
+        </property>
+    </bean>
+
+    <!-- Spring Task 定时任务 -->
+    <task:annotation-driven scheduler="springScheduler" mode="proxy"/>
+    <task:scheduler id="springScheduler" pool-size="10"/>
+</beans>

+ 87 - 0
WebRoot/WEB-INF/classes/spring-mybatis.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:cache="http://www.springframework.org/schema/cache"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans 	http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+						http://www.springframework.org/schema/context 	http://www.springframework.org/schema/context/spring-context-2.5.xsd 
+          				http://www.springframework.org/schema/aop  		http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+						http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+						http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
+						http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
+						 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
+            http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd">
+
+
+	<bean id="propertyConfigurer"
+		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="locations">
+			<list>
+				<value>classpath:dbconfig.properties</value>
+			</list>
+		</property>
+	</bean>
+
+	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
+		destroy-method="close">
+		<property name="url" value="${url}" />
+		<property name="username" value="${username}" />
+		<property name="password" value="${password}" />
+		<property name="driverClassName" value="${driverClassName}" />
+
+		<property name="maxActive" value="${maxActive}" />
+		<property name="initialSize" value="${initialSize}" />
+		<property name="maxWait" value="${maxWait}" />
+		<property name="minIdle" value="${minIdle}" />
+
+		<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
+		<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
+
+		<property name="testWhileIdle" value="${testWhileIdle}" />
+		<property name="testOnBorrow" value="${testOnBorrow}" />
+		<property name="testOnReturn" value="${testOnReturn}" />
+		<property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
+
+		<property name="removeAbandoned" value="${removeAbandoned}" />
+		<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
+		<property name="logAbandoned" value="${logAbandoned}" />
+
+        <property name="proxyFilters">
+            <list>
+                <ref bean="wall-filter"/>
+            </list>
+        </property>
+
+    </bean>
+
+	<!-- 创建SqlSessionFactory,同时指定数据源 -->
+	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
+		<property name="dataSource" ref="dataSource" />
+		<property name="configLocation" value="classpath:mybatis-config.xml" />
+	</bean>
+
+	<!-- Spring自动扫描MybatisMapper文件 -->
+	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
+		<property name="basePackage" value="com.tqe.dao" />
+	</bean>
+
+    <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
+        <property name="dbType" value="mysql" />
+        <property name="config" ref="wall-filter-config" />
+        <property name="throwException" value="false"/>
+    </bean>
+
+    <bean id="wall-filter-config" class="com.alibaba.druid.wall.WallConfig" init-method="init">
+        <property name="selectWhereAlwayTrueCheck" value="false"/>
+        <property name="selectUnionCheck" value="false"/>
+        <property name="dir" value="META-INF/druid/wall/mysql" />
+    </bean>
+
+
+
+	
+
+</beans>
+     
+    

+ 1 - 0
WebRoot/WEB-INF/classes/system.properties

@@ -0,0 +1 @@
+adminEmail=827605162@qq.com

+ 23 - 0
WebRoot/WEB-INF/jsp/Jsp模板.jsp

@@ -0,0 +1,23 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="header.jspf" %>
+  </head>
+  
+  <body>
+    	<div class="container">
+    		<%@ include file="head.jsp" %>
+    		<div class="row" style="margin-top: 70px">
+    			<div class="col-sm-2">
+					<%@ include file="left.jsp" %>
+    			</div>
+    			<div class="col-sm-10">
+    					我的代码区域
+    			</div>
+    		</div>
+    		
+    	</div>
+    	<%@ include file="buttom.jsp" %>
+  </body>
+</html>

+ 73 - 0
WebRoot/WEB-INF/jsp/admin/addAdmin.jsp

@@ -0,0 +1,73 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
+<div class="container-fluid">
+    <div class="row">
+        <form action="${pageContext.request.contextPath }/admin/admin/save" class="form-horizontal" role="form"
+              id="add-admin-form" method="post">
+            <div class="form-group">
+
+                <label for="username" class="col-xs-3 control-label">管理员账号</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="username" id="username" required>
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label for="password" class="col-xs-3 control-label">输入密码</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="password" id="password" required>
+                </div>
+            </div>
+            <div class="form-group">
+                <label for="rePassword" class="col-xs-3 control-label">确认输入密码</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" id="rePassword" equalTo="#password" required>
+                </div>
+            </div>
+            <div class="form-group">
+                <label for="name" class="col-xs-3 control-label">姓名</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="name" id="name" required>
+                </div>
+            </div>
+            <div class="form-group">
+                <label for="position" class="col-xs-3 control-label">职位</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="position" id="position" required>
+                </div>
+            </div>
+
+
+            <div class="form-group">
+                <div class="col-xs-4 col-xs-offset-3">
+                    <a type="button" class="btn btn-default btn-lg" data-dismiss="modal" icon="remove">关闭</a>
+                </div>
+
+                <div class="col-xs-4 ">
+                    <button type="submit" class="btn btn-primary  btn-lg " icon="plus">添加管理员</button>
+                </div>
+
+            </div>
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript">
+    $(function() {
+        $("#add-admin-form").validate({
+            rules:{
+                password:"required",
+                rePassword:{
+                    required:true,
+                    equalTo:"#password"
+                }
+            }
+        });
+    });
+</script>
+						
+

+ 162 - 0
WebRoot/WEB-INF/jsp/admin/admin.jsp

@@ -0,0 +1,162 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+</style>
+    <script
+            src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+<title>管理员列表</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		    <%@ include file="../head.jsp"%>
+        </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+
+				<div class="panel panel-default">
+					<div class="panel-heading">管理员列表</div>
+					<div class="panel-body">
+						<table class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+									<td>管理员账号</td>
+									<td>管理员姓名</td>
+									<td>管理员职位</td>
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${adminList}" var="a">
+									<tr>
+
+										<td>${a.username }</td>
+										<td>${a.name }</td>
+										<td>${a.position }</td>
+
+                                        <c:if test="${ sessionScope.admin.name=='admin' || sessionScope.admin.id==a.id }">
+                                            <td><a admin-id="${a.id}"
+                                                class="btn btn-info btn-sm" data-toggle="modal" data-target="#edit-admin-modal" icon="edit">
+                                                修改</a>
+
+                                                <c:if test="${ sessionScope.admin.name=='admin'}">
+                                                    <a class="btn btn-danger btn-sm" onclick="return confirm('您确认要删除吗?')"
+                                                       href="${pageContext.request.contextPath}/admin/admin/delete?id=${a.id}" icon="remove">删除</a>
+                                                </c:if>
+
+                                            </td>
+
+                                        </c:if>
+                                        <c:if test="${sessionScope.admin.name!='admin' && sessionScope.admin.id!=a.id}">
+                                            <td>不可修改</td>
+                                        </c:if>
+
+									</tr>
+								</c:forEach>
+
+							</tbody>
+						</table>
+                        <c:if test="${sessionScope.admin.name=='admin'}">
+                            <div class="row">
+                                <div class="col-xs-6 col-xs-offset-5">
+                                    <div class="no1">
+                                        <a class="btn btn-primary" icon="plus" data-toggle="modal" data-target="#add-admin-modal">添加管理员</a>
+                                    </div>
+
+                                </div>
+                            </div>
+                        </c:if>
+
+
+					</div>
+
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+
+
+
+    <!-- 添加管理员Modal -->
+    <div class="modal fade" id="add-admin-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+                    <h4 class="modal-title" id="add-admin-modal-title">添加管理员</h4>
+                </div>
+                <div class="modal-body">
+                    <jsp:include page="addAdmin.jsp"/>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- 修改管理员Modal -->
+    <div class="modal fade" id="edit-admin-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+                    <h4 class="modal-title" id="edit-admin-modal-title">修改管理员</h4>
+                </div>
+                <div class="modal-body">
+                    <jsp:include page="editAdmin.jsp"/>
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+
+
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+
+
+    <script type="text/javascript">
+        $(function(){
+            $('#edit-admin-modal').on('show.bs.modal', function (event) {
+                var button = $(event.relatedTarget);
+                var adminId = button.attr('admin-id');
+                var modal = $(this);
+                $.get("${contextPath}/admin/admin/getInfo",{id:adminId},function(data){
+                    if(data.success){
+                        var admin = data.item;
+                        modal.find("#edit-username").html(admin.username);
+                        modal.find("#edit-password").val("******");
+                        modal.find("#edit-id").val(admin.id);
+                        modal.find("#edit-name").val(admin.name);
+                        modal.find("#edit-position").val(admin.position);
+                    }else{
+                        alert(data.message);
+                    }
+                });
+            });
+            autoAddIcon();
+
+        });
+
+    </script>
+</body>
+</html>
+

+ 59 - 0
WebRoot/WEB-INF/jsp/admin/editAdmin.jsp

@@ -0,0 +1,59 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
+<div class="container-fluid">
+    <div class="row">
+        <form action="${pageContext.request.contextPath }/admin/admin/update" class="form-horizontal" role="form"
+              id="edit-admin-form" method="post">
+            <div class="form-group">
+
+                <label for="edit-username" class="col-xs-3 control-label">管理员账号</label>
+
+                <div class="col-xs-8">
+                    <p class="form-control-static" id="edit-username"></p>
+                    <input type="hidden" id="edit-id" name="id" />
+                </div>
+            </div>
+
+
+            <div class="form-group">
+                <label for="edit-name" class="col-xs-3 control-label">姓名</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="name" id="edit-name" required>
+                </div>
+            </div>
+            <div class="form-group">
+                <label for="edit-position" class="col-xs-3 control-label">职位</label>
+
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="position" id="edit-position" required>
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label for="edit-password" class="col-xs-3 control-label">修改密码</label>
+                <div class="col-xs-8">
+                    <input type="text" class="form-control inputxt" name="password" id="edit-password" value="******" required>
+                </div>
+            </div>
+
+            <div class="form-group">
+                <div class="col-xs-4 col-xs-offset-3">
+                    <a type="button" class="btn btn-default btn-lg" data-dismiss="modal" icon="remove">关闭</a>
+                </div>
+
+                <div class="col-xs-4 ">
+                    <button type="submit" class="btn btn-primary  btn-lg " icon="saved">修改管理员</button>
+                </div>
+
+            </div>
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript">
+    $(function() {
+        $("#edit-admin-form").validate();
+    });
+</script>
+
+

+ 83 - 0
WebRoot/WEB-INF/jsp/batches/addBatch.jsp

@@ -0,0 +1,83 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page language="java" pageEncoding="UTF-8" %>
+
+<style type="text/css">
+
+</style>
+
+<div class="container-fluid">
+    <div class="row">
+        <form action="${pageContext.request.contextPath }/admin/batches/save"
+              class="form-horizontal" role="form" id="add-batch-form" method="post">
+            <div class="form-group">
+                <label class="col-sm-2 control-label">学期</label>
+
+                <div class="col-sm-5">
+                    <select name="season" class="form-control" id="season">
+                        <option value="${applicationScope.curSeason}">当前学期:${applicationScope.curSeason}</option>
+                        <c:forEach begin="2015" end="${applicationScope.curYear+1}" step="1" var="s">
+                            <option value="${s}春">${s}春</option>
+                            <option value="${s}秋">${s}秋</option>
+                        </c:forEach>
+                    </select>
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label for="name" class="col-sm-2 control-label">批次名</label>
+
+                <div class="col-sm-10" id="item">
+                    <input type="text" class="form-control" name="name" id="name" required="required"
+                           value="${applicationScope.curSeason} ">
+                </div>
+            </div>
+
+
+            <div class="form-group">
+                <label for="name" class="col-sm-2 control-label">开始时间</label>
+                <div class="col-sm-5" >
+                    <input type="text" class="form-control" name="beginDate" id="beginDate" required="required"
+                            onClick="WdatePicker()">
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label for="name" class="col-sm-2 control-label">结束时间</label>
+                <div class="col-sm-5" >
+                    <input type="text" class="form-control" name="endDate" id="endDate" required="required"
+                           onClick="WdatePicker()">
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label class="col-sm-2 control-label">说明</label>
+                <div class="col-sm-10">
+                    <p class="form-control-static">批次一旦创建后 批次名不可修改 不可删除 请仔细核对信息</p>
+                </div>
+            </div>
+
+            <div>
+                <div class="form-group">
+
+                    <div class="col-sm-4 col-sm-offset-2">
+                        <button type="submit" class="btn btn-primary  btn-lg ">提交新批次</button>
+                    </div>
+                    <div class="col-sm-4">
+                        <button type="button" class="btn btn-default btn-lg" data-dismiss="modal">关闭</button>
+                    </div>
+                </div>
+            </div>
+        </form>
+
+    </div>
+
+</div>
+
+<script type="text/javascript">
+    $(function () {
+        $("#season").change(function () {
+            $("#name").val($(this).find("option:selected").val() + " ");
+        });
+        $("#add-batch-form").validate();
+    });
+</script>

+ 161 - 0
WebRoot/WEB-INF/jsp/batches/batches.jsp

@@ -0,0 +1,161 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教批次</title>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+    <script
+            src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+
+
+
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						批次列表
+					</div>
+					<div class="panel-body">
+
+                        <div class="bs-callout bs-callout-info">
+                            <a class="btn btn-info btn-lg" data-toggle="modal" icon="plus" data-target="#add-batch-modal">生成新批次</a>
+
+                            <form class="form-inline" method="post" action="${pageContext.request.contextPath}/admin/batches"
+                                  style=" margin-top: 30px">
+                                <div class="form-group">
+                                    <label for="season" >选择学期查看课程:</label>
+                                    <select name="season" class="form-control auto-select" id="season" key="${condition.season}">
+                                        <option value="">当前学期:${applicationScope.curSeason}</option>
+                                        <c:forEach begin="2015" end="${applicationScope.curYear+1}" step="1" var="s">
+                                            <option  value="${s}春">${s}春</option>
+                                            <option  value="${s}秋">${s}秋</option>
+                                        </c:forEach>
+                                    </select>
+                                    <button type="submit" class="btn btn-primary ">
+                                        <span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索
+                                    </button>
+                                </div>
+
+                            </form>
+                        </div>
+
+						<table class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+                                    <td>批次号</td>
+									<td>批次名</td>
+									<td>学期</td>
+                                    <td>状态</td>
+									<td>开始/结束时间</td>
+                                    <td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${batchesList }" var="b">
+									<tr>
+                                        <td>${b.id}</td>
+										<td><a 
+											href="${pageContext.request.contextPath}/admin/batches/show/${b.id}">${b.name}</a></td>
+										<td>${b.season}</td>
+                                        <td><span class="batch-status">${b.batchStatus}</span></td>
+                                        <td><fm:formatDate value="${b.beginDate}"  dateStyle="medium"/> ~
+                                            <fm:formatDate value="${b.endDate}"  dateStyle="medium"/></td>
+                                        <td>
+                                            <a href="${pageContext.request.contextPath}/admin/batches/show/${b.id}" icon="zoom-in" class="btn btn-primary">查看批次</a>
+                                            <a href="${pageContext.request.contextPath}/admin/batches/delete"  bid="${b.id}" icon="remove" class="btn btn-danger remove-batch">删除批次</a>
+                                        </td>
+									</tr>
+								</c:forEach>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</div>
+		</div>
+
+
+
+        <!-- 添加批次Modal -->
+        <div class="modal fade" id="add-batch-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+                        <h4 class="modal-title" id="add-admin-modal-title">添加新批次</h4>
+                    </div>
+                    <div class="modal-body">
+                        <jsp:include page="addBatch.jsp"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+
+
+		<script type="text/javascript">
+    			$(function(){
+    				$(".delete").click(function(){
+    					var mes;
+         				$.post("../../problem/delete/"+$(this).attr("name"),{"id":$(this).attr("name")},function(date){
+         					mes= date.mes;
+         				});
+         				if(mes == 'success'){
+         					alert("删除成功");
+         					$(this).parent().parent("tr").fadeOut(2000);
+         				}else{
+         					alert("删除失败!有  用户的申请 使用了改试卷,不可删除");
+         				}
+         				
+        			});
+    			});
+    		</script>
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+	<script language="javascript" type="text/javascript"
+		src="${pageContext.request.contextPath}/js/My97DatePicker/WdatePicker.js"></script>
+    <script type="text/javascript">
+        $(function(){
+            batchStatusRender();
+            autoAddIcon();
+            $(".remove-batch").click(function(e){
+                e.preventDefault();
+                if(confirm("您确认要删除该批次吗?只有新建的批次才可以删除!")){
+                    var bid = $(this).attr('bid');
+                    if(bid){
+                        $.post($(this).attr('href'),{bid:bid},function(data){
+                            if(data.success){
+                                showGlobalNotification("删除批次成功!");
+                                location.reload();
+                            }else{
+                                showGlobalNotification("删除批次失败!只有新建的批次才可以删除");
+                            }
+                        });
+                    }else{
+                        showGlobalNotification("删除失败!未知的批次号 id:"+bid);
+                    }
+                }
+            });
+            autoSelect();
+            $("#season").change(function(){
+                $(this).parents('form').submit();
+            });
+        });
+    </script>
+</body>
+</html>

+ 152 - 0
WebRoot/WEB-INF/jsp/batches/showBatches.jsp

@@ -0,0 +1,152 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教批次详情|${batches.name}</title>
+<style type="text/css">
+
+</style>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div style="text-align: center;margin-top: 100px">
+					<h2>${batches.name}</h2>
+				</div>
+				<div class="row">
+							<div class="panel panel-primary" id="part0">
+								<div class="panel-heading">
+									<h3 class="panel-title">详细信息</h3>
+								</div>
+								<div class="panel-body">
+									<input type="hidden" value="${batches.id}" id="id"/>
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>评教批次名</td>
+											<td>学期</td>
+											<td>评教开始日期</td>
+											<td>评教截止日期</td>
+											<td>操作</td>
+										</tr>
+										<tr>
+											
+											<td>${batches.name}</td>
+											<td>${batches.season}</td>
+											
+											<td class="new"><fm:formatDate value="${batches.beginDate}" pattern="yyyy-MM-dd"/></td>
+											<td class="new"><fm:formatDate value="${batches.endDate}" pattern="yyyy-MM-dd"/></td>
+											
+											<td class="old"><input type="date" class="form-control" value="<fm:formatDate value="${batches.beginDate}" pattern="yyyy-MM-dd"/>" id="beginDate" onClick="WdatePicker()"></td>
+											
+											<td class="old"><input type="date" class="form-control" value="<fm:formatDate value="${batches.endDate}" pattern="yyyy-MM-dd"/>" id="endDate" onClick="WdatePicker()"></td>
+											
+											<td class="new"><button class="btn btn-warning" id="edit">修改</button></td>
+											<td class="old"><button class="btn btn-warning" id="save">保存</button>
+                                                <button class="btn btn-info" id="cancel">取消</button></td>
+										</tr>
+									</table>
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>默认学生评估表</td>
+											<td>默认教师评估表</td>
+											<td>默认领导评估表</td>
+											<td>默认教师评价学生表</td>
+										</tr>
+										<tr>
+											
+											<td class="new evalTable"><a target="_blank" href="${pageContext.request.contextPath}/admin/evalTable/show/${batches.stuEvalId}">${batches.stuEval.title}</a></td>
+											<td class="old"><a class="btn btn-info" target="_blank" href="${pageContext.request.contextPath}/admin/evalTable?action=stuEval&bid=${batches.id}&type=stu">点此更换默认<Strong>学生</Strong>评教指标表</a></td>
+											
+											<td class="new evalTable"><a target="_blank" href="${pageContext.request.contextPath}/admin/evalTable/show/${batches.teaEvalId}">${batches.teaEval.title}</a></td>
+											<td class="old"><a class="btn btn-info" target="_blank" href="${pageContext.request.contextPath}/admin/evalTable?action=teaEval&bid=${batches.id}&type=tea">点此更换默认<Strong>教师</Strong>评教指标表</a></td>
+											
+											<td class="new evalTable"><a target="_blank" href="${pageContext.request.contextPath}/admin/evalTable/show/${batches.leadEvalId}">${batches.leadEval.title}</a></td>
+											<td class="old"><a class="btn btn-info" target="_blank" href="${pageContext.request.contextPath}/admin/evalTable?action=leadEval&bid=${batches.id}&type=lea">点此更换默认<Strong>领导</Strong>评教指标表</a></td>
+											
+											<td class="new evalTable"><a target="_blank" href="${pageContext.request.contextPath}/admin/evalTable/show/${batches.teaStuEvalId}">${batches.teaStuEval.title}</a></td>
+											<td class="old"><a class="btn btn-info" target="_blank" href="${pageContext.request.contextPath}/admin/evalTable?action=teaStuEval&bid=${batches.id}&type=teaStu">点此更换默认<Strong>教师评学生</Strong>指标表</a></td>
+										</tr>
+									</table>
+								</div>
+							</div>
+
+                            <%--
+							<div class="panel panel-primary" id="part1">
+								<div class="panel-heading">
+									<h3 class="panel-title">学生评教</h3>
+								</div>
+								<div class="panel-body">${evalTable.note }</div>
+							</div>
+
+							<div class="panel panel-primary" id="part2">
+								<div class="panel-heading">
+									<h3 class="panel-title">教师评教</h3>
+								</div>
+								<div class="panel-body">
+								</div>
+							</div>
+
+							<div class="panel panel-primary" id="part3">
+								<div class="panel-heading">
+									<h3 class="panel-title">领教评教</h3>
+								</div>
+								<div class="panel-body">
+								</div>
+							</div>
+							--%>
+
+
+				</div>
+				<!-- 第一行结束 -->
+			</div>
+		</div>
+
+	</div>
+	<script type="text/javascript">
+		$(function(){
+			$(".old").css("display","none");
+
+			$("#edit").click(function(){
+				$(".new").css("display","none");
+				$(".old").css("display","");
+			});
+			$("#save").click(function(){
+				$(".new").css("display","");
+				$(".old").css("display","none");
+				var beginDate = $("#beginDate").val();
+				var endDate = $("#endDate").val();
+				if(new Date(beginDate)>=new Date(endDate)){
+					alert("起始日期必须大于截止日期");
+					return false;
+				}
+				var id = $("#id").val();
+				$.post("../update",{beginDate:beginDate,endDate:endDate,id:id},function(data){
+                    alert(data.message);
+					window.location.reload();
+				});
+				
+			});
+            $("#cancel").click(function(){
+                $(".new").css("display","");
+                $(".old").css("display","none");
+            });
+            $("td.evalTable").each(function(){
+               var $this = $(this);
+               if($this.find("a").html().trim() <= 0){
+                   $this.hide();
+                   $this.next().show();
+               }
+            });
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+	<script  type="text/javascript" src="${pageContext.request.contextPath}/js/My97DatePicker/WdatePicker.js"></script>
+</body>
+</html>

+ 22 - 0
WebRoot/WEB-INF/jsp/buttom.jsp

@@ -0,0 +1,22 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<hr>
+
+<!--导航条 -->
+<div  id="global-notification" >
+    <div class="alert alert-danger alert-dismissible" role="alert"  >
+
+        <span id="global-notification-text"></span>
+    </div>
+</div>
+
+<!-- 修改密码Model -->
+<div class="modal fade" id="reset-pwd" tabindex="-1" role="dialog"  aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+
+        </div>
+    </div>
+</div>
+
+

+ 90 - 0
WebRoot/WEB-INF/jsp/course/addCourse.jsp

@@ -0,0 +1,90 @@
+
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>添加管理员</title>
+</head>
+
+<body>
+	<div class="container">
+		<%@ include file="../head.jsp" %>
+		<div class="row " >
+			<div class="col-xs-3">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-xs-9 ">
+				<div class="panel panel-primary">
+					<div class="panel-heading">管理员信息填写</div>
+
+					<div class="panel-body">
+					<div class="row">
+						<div class="col-xs-8 col-xs-offset-2">
+							<form action="${pageContext.request.contextPath }/admin/admin/save" class="form-horizontal" role="form" id="form" method="post">
+								<div class="form-group">
+									
+									<label for="inputEmail3" class="col-xs-3 control-label">管理员账号</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" name="username" id="username" >
+									</div>
+								</div>
+								
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">输入密码</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" name="password" id="username">
+									</div>
+								</div>
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">确认输入密码</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" id="username">
+									</div>
+								</div>
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">姓名</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" name="name" id="username"	>
+									</div>
+								</div>
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">职位</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" name="position" id="username"	>
+									</div>
+								</div>
+								<div class="form-group" data-toggle="tooltip" data-placement="top" title="可多选" onmouseover="$(this).tooltip('show')">
+									<label for="inputEmail3" class="col-xs-3 control-label">权限</label>
+									<div class="col-xs-9">
+										<c:forEach items="${privilegeList}" var="p">
+											<label class="checkbox-inline">
+											  <input type="checkbox"  name="privilegeIds" value="${p.id}"/> ${p.name}
+											</label>
+										</c:forEach>
+									</div>
+								</div>
+								<div>
+									
+									<div class="form-group">    
+										 <div class="col-xs-6 col-xs-offset-4">
+											<button type="submit" class="btn btn-primary  btn-lg ">提交管理员</button>																			 
+										 </div>
+									</div>
+								</div>
+						</form>
+						</div>
+					
+					</div>
+						
+					</div>
+				</div>
+			</div>
+		</div>
+
+	</div>
+<!-- 	container -->
+	<%@ include file="../buttom.jsp" %>
+</body>
+</html>
+

+ 159 - 0
WebRoot/WEB-INF/jsp/course/course.jsp

@@ -0,0 +1,159 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+</style>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+<title>课程列表</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		    <%@ include file="../head.jsp"%>
+        </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+
+				<div class="panel panel-default">
+					<div class="panel-heading">课程列表</div>
+
+					<div class="panel-body">
+						<div class="bs-callout bs-callout-info">
+							<form class="form-inline" method="post" action="${pageContext.request.contextPath}/admin/course">
+								<div class="form-group">
+									<label for="department" >学院:</label>
+									<select  class="form-control" id="department" name="did" >
+										<option value="">不限</option>
+										<c:forEach items="${ departmentList}" var="dep" >
+											<c:if test="${dep.id != condition.did}">
+												<option value="${dep.id}">${dep.name }</option>
+											</c:if>
+											<c:if test="${dep.id == condition.did}">
+												<option value="${dep.id}" selected="selected">${dep.name }</option>
+											</c:if>
+										</c:forEach>
+									</select>
+									
+								</div>
+                                <div class="form-group">
+                                    <input type="hidden" id="condition-season" value="${condition.season}">
+                                    <label for="season" >学期:</label>
+                                    <select name="season" class="form-control" id="season" >
+                                        <option value="${applicationScope.curSeason}">当前学期:${applicationScope.curSeason}</option>
+                                        <c:forEach begin="2015" end="${applicationScope.curYear+1}" step="1" var="s">
+                                            <option  value="${s}春">${s}春</option>
+                                            <option  value="${s}秋">${s}秋</option>
+                                        </c:forEach>
+                                    </select>
+                                </div>
+								<div class="form-group">
+									<label for="cname" >课程名:</label> <input type="text"
+										class="form-control" id="cname" name="cname">
+								</div>
+								<div class="form-group">
+									<label for="cid" >课程号:</label> <input type="text"
+										class="form-control" id="cid" name="cid">
+								</div>
+								<div class="form-group">
+									<label for="tname" >教师名:</label> <input type="text"
+										class="form-control" id="tname" name="tname">
+								</div>
+
+								<button type="submit" class="btn btn-primary btn-lg">
+									<span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索
+								</button>
+							</form>
+
+
+						</div>
+						<table class="table table-hover table-striped  table-condensed ">
+							<thead>
+								<tr class="info">
+									<td>课程名</td>
+									<td>课程号</td>
+									<td>课序号</td>
+									<td>教师名</td>
+									<td>学院</td>
+									<td>学期</td>
+									<td>学生数</td>
+									<td>学分</td>
+									<td width="10%">合班</td>
+									<!--
+									<td>操作</td>
+									 -->
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${courseList}" var="c">
+									<tr>
+
+										<td><a href="${pageContext.request.contextPath}/admin/course/show/${c.cid}/${c.cno}">${c.name }</a></td>
+										<td>${c.cid }</td>
+										<td>${c.cno }</td>
+										<td>${c.teacher.name }</td>
+										<td>${c.department }</td>
+										<td>${c.season }</td>
+										<td>${c.stuNumber }</td>
+										<td>${c.credit }</td>
+										<td>${c.combine }</td>
+										<!--
+										<td><a href="admin/edit/${admin.id }"
+											class="btn btn-info"><span
+												class=" glyphicon glyphicon-edit"></span>&nbsp;&nbsp;修改</a></td>
+										 -->
+										<td><a href="${pageContext.request.contextPath}/admin/course/show/${c.cid}/${c.cno}"
+											class="btn btn-sm btn-danger" ><span
+												class=" glyphicon glyphicon-zoom-in"></span>查看评教详情</a></td>
+									</tr>
+								</c:forEach>
+
+							</tbody>
+						</table>
+						<!-- 
+						<div class="row">
+							<div class="col-xs-6 col-xs-offset-5">
+								<div class="no1">
+									<a class="btn btn-primary " href="admin/add">添加管理员</a>
+								</div>
+
+							</div>
+
+						</div>
+						 -->
+					</div>
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.nodefault.js"></script>
+
+    <script type="text/javascript">
+        $(function(){
+            autoSeasonSelect();
+            $('table').has("thead").dataTable($.extend(true,dataTableDefaultOptions,{
+                language:{
+                    zeroRecords:'<h2>请从上面搜索栏中选择要查看的数据</h2>'
+                }
+            }));
+        });
+    </script>
+</body>
+</html>
+

+ 22 - 0
WebRoot/WEB-INF/jsp/course/courseStatistics-question-panal.jsp

@@ -0,0 +1,22 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<div class="panel panel-default">
+    <div class="panel-heading"> <code>${v.count}</code> ${quest.key}</div>
+    <!-- Table -->
+    <table class="table table-hover table-condensed">
+        <thead>
+        <tr >
+            <td>#</td>
+            <td>内容</td>
+        </tr>
+        </thead>
+
+        <tbody>
+        <c:forEach varStatus="vs" var="q" items="${quest.value}">
+            <tr>
+                <td>${vs.count}</td>
+                <td>${q}</td>
+            </tr>
+        </c:forEach>
+        </tbody>
+    </table>
+</div>

+ 506 - 0
WebRoot/WEB-INF/jsp/course/courseStatistics.jsp

@@ -0,0 +1,506 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+    <%@ include file="../header.jspf"%>
+    <style type="text/css">
+        .no1 {
+            margin-top: 30px;
+        }
+        .eval-level-cnts{
+            height: 400px;
+        }
+        .eval-table-item-cnts{
+            height: 400px;
+        }
+    </style>
+
+    <title>课程列表</title>
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+    <%@ include file="../head.jsp"%>
+        </div>
+    <div class="row " >
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp"%>
+        </div>
+        <div class="col-sm-10 ">
+            <input type="hidden" id="cid" name="cid" value="${courseModel.course.cid}"/>
+            <input type="hidden" id="cno" name="cno" value="${courseModel.course.cno}"/>
+            <input type="hidden" id="bid" name="bid" value="${courseBatch.batch.id}"/>
+            <div class="bs-callout bs-callout-danger">
+                <ol class="breadcrumb">
+                    <li><a href="${pageContext.request.contextPath}/admin/course">课程列表</a></li>
+                    <li>
+                        <a href="${pageContext.request.contextPath}/admin/course/show/${courseModel.course.cid}/${courseModel.course.cno}">
+                        课程详情
+                        </a>
+                    </li>
+                    <li class="active">课程统计信息</li>
+                </ol>
+                <div class="row">
+                    <div class="col-sm-3">
+                        <h4 >${course.teacher.name} -- ${course.name} (${course.season })</h4>
+                        <hr>
+                        <h5>${course.department } </h5>
+                        <h5>课程号-课序号 :${course.cid}-${course.cno}</h5>
+                        <h5>合班:${course.combine }</h5>
+                    </div>
+                    <div class="col-sm-9">
+                        <table class="table no-border" style="text-align: center">
+                            <tr class="thead">
+                                <td>角色</td>
+                                <td>平均得分</td>
+                                <td>各批次平均得分</td>
+                                <td>得分统计</td>
+                            </tr>
+                            <tr>
+                                <td>学生评教</td>
+                                <td> <code>${course.stuEvalAvgScore}</code>分 </td>
+                                <td> <code>${course.stuEvalScores}</code>分 </td>
+                                <td> <div class="eval-process-bar progress" value="${course.stuEvalLevelCnts}">${course.stuEvalLevelCnts}</div> </td>
+                            </tr>
+                            <tr>
+                                <td>教师评教</td>
+                                <td><code>${course.teaEvalAvgScore}</code>分 </td>
+                                <td> <code>${course.teaEvalScores}</code>分 </td>
+                                <td> <div class="eval-process-bar" value="${course.teaEvalLevelCnts}"></div> </td>
+                            </tr>
+                            <tr>
+                                <td>领导评教</td>
+                                <td> <code>${course.leaEvalAvgScore}</code>分</td>
+                                <td> <code>${course.leaEvalScores}</code>分 </td>
+                                <td> <div class="eval-process-bar" value="${course.leaEvalLevelCnts}"></div> </td>
+                            </tr>
+                        </table>
+                    </div>
+                </div>
+            </div>
+            <div class="bs-callout bs-callout-info">
+                <h4>该课程的所有批次:</h4>
+                    <table
+                            class="table table-hover table-striped  table-condensed">
+                        <thead>
+                        <tr class="info">
+                            <td>序号</td>
+                            <td>批次名</td>
+                            <td>学期</td>
+                            <td>开始/结束时间</td>
+                        </tr>
+                        </thead>
+                        <tbody>
+                             <c:forEach items="${courseModel.batchesList}" var="b" varStatus="s">
+                                 <tr>
+                                     <td>${s.count}</td>
+                                     <td><a class="btn btn-primary" data-toggle="tooltip" data-placement="right" title="点击查看课程统计信息"
+                                             href="${pageContext.request.contextPath}/admin/statistics/course?cid=${courseModel.course.cid}&cno=${courseModel.course.cno}&bid=${b.batches.id}">
+                                             ${b.batches.name}
+                                        </a>
+                                     </td>
+                                     <td>${b.batches.season}</td>
+                                     <td><fm:formatDate value="${b.batches.beginDate}"  dateStyle="medium"/> ~
+                                         <fm:formatDate value="${b.batches.endDate}"  dateStyle="medium"/></td>
+
+                                 </tr>
+                              </c:forEach>
+                        </tbody>
+                    </table>
+            </div>
+
+            <div class="bs-callout bs-callout-info">
+                <h4 class="panel-heading">
+                    <a
+                            href="${pageContext.request.contextPath}/admin/batches/show/${courseBatch.batch.id}"
+                            target="_blank">${courseBatch.batch.name}</a>
+                    <a style="padding-left: 50px;"
+                       href="${pageContext.request.contextPath}/admin/evalTable/show/${courseBatch.batch.stuEvalId}"
+                       target="_blank">点我查看评教表</a>
+                    <a style="padding-left: 30px;">
+                        评教时间: <fm:formatDate value="${courseBatch.batch.beginDate}"  dateStyle="medium"/> ~ <fm:formatDate value="${courseBatch.batch.endDate}"  dateStyle="medium"/>
+                    </a>
+                </h4>
+                <hr>
+                <h4 class="">学生评教进程: 已评 <code>${courseBatch.stuEvalCnt}</code> 人/ 共 <code>${courseBatch.stuEvalTotal}</code> 人</h4>
+                <div class="progress stu-eval-progress" style="margin-top: 20px">
+                    <div
+                            class="progress-bar progress-bar-info progress-bar-striped active"
+                            role="progressbar" aria-valuenow="10" aria-valuemin="0"
+                            aria-valuemax="100" style="min-width:15%;" id="level">
+
+                    </div>
+                </div>
+                <hr>
+                <div class="row" style="margin-top: 20px;">
+                    <div class="col-sm-4">
+                        <h4>学生评教平均得分:<code>${courseBatch.stuEvalAvgScore}</code>分</h4>
+                        <div id="stu-eval-level-cnts" class="eval-level-cnts" ></div>
+                    </div>
+                    <div class="col-sm-4">
+                        <h4>教师评教平均得分:<code>${courseBatch.teaEvalAvgScore}</code>分</h4>
+                        <div id="tea-eval-level-cnts" class="eval-level-cnts" ></div>
+                    </div>
+                    <div class="col-sm-4">
+                        <h4>领导评教平均得分:<code>${courseBatch.leaEvalAvgScore}</code>分</h4>
+                        <div id="lea-eval-level-cnts" class="eval-level-cnts" ></div>
+                    </div>
+                </div>
+
+                <hr>
+                <div class="row" style="margin-top: 20px;">
+                    <div class="col-sm-6">
+                        <h4>学生评教打分表统计</h4>
+                        <div id="stu-eval-table-item-cnts" class="eval-table-item-cnts" ></div>
+                    </div>
+                    <div class="col-sm-6">
+                        <h4>教师评教打分表统计</h4>
+                        <div id="tea-eval-table-item-cnts" class="eval-table-item-cnts" ></div>
+                    </div>
+                    <div class="col-sm-6">
+                        <h4>领导评教打分表统计</h4>
+                        <div id="lea-eval-table-item-cnts" class="eval-table-item-cnts" ></div>
+                    </div>
+
+                </div>
+                <hr>
+
+                <div style="margin-top: 20px">
+                    <div role="tabpanel">
+
+                        <!-- Nav tabs -->
+                        <ul class="nav nav-tabs" role="tablist">
+                            <li role="presentation" class="active"><a href="#student"
+                                                                      aria-controls="student" role="tab" data-toggle="tab"><h4>学生问题回答和建议</h4></a></li>
+                            <li role="presentation"><a href="#teacher"
+                                                       aria-controls="teacher" role="tab" data-toggle="tab"><h4>教师问题回答和建议</h4></a></li>
+                            <li role="presentation"><a href="#leader"
+                                                       aria-controls="leader" role="tab" data-toggle="tab"><h4>领导问题回答和建议</h4></a></li>
+                        </ul>
+
+                        <!-- Tab panes -->
+                        <div role="tabpanel" class="tab-content" >
+                            <!-- 学生评论信息 -->
+                            <div role="tabpanel" class="tab-pane active"  id="student" >
+                                <c:if test="${courseBatch.stuQuestionList == null}">
+                                    <h3>暂无评教数据</h3>
+                                </c:if>
+                                <c:forEach var="quest" items="${courseBatch.stuQuestionList}" varStatus="v">
+
+                                        <div class="panel panel-info ">
+                                            <div class="panel-heading" style="text-align: center"><h4> <code>${v.count}</code> ${quest.key}</h4></div>
+                                            <!-- Table -->
+                                            <table class="table table-hover table-condensed">
+
+                                                <tbody>
+                                                    <c:forEach varStatus="vs" var="q" items="${quest.value}">
+                                                        <tr>
+                                                            <td># ${vs.count}</td>
+                                                            <td>${q}</td>
+                                                        </tr>
+                                                    </c:forEach>
+                                                </tbody>
+                                            </table>
+                                        </div>
+
+                                </c:forEach>
+                            </div>
+
+                            <!-- 教师评论信息 -->
+                            <div role="tabpanel" class="tab-pane " id="teacher">
+                                <c:if test="${courseBatch.teaQuestionList == null}">
+                                    <h3>暂无评教数据</h3>
+                                </c:if>
+                                <c:forEach var="quest" items="${courseBatch.teaQuestionList}" varStatus="v">
+                                        <div class="panel panel-default">
+                                            <div class="panel-heading" style="text-align: center"><h4> <code>${v.count}</code> ${quest.key}</h4></div>
+                                            <!-- Table -->
+                                            <table class="table table-hover table-condensed">
+
+
+                                                <tbody>
+                                                <c:forEach varStatus="vs" var="q" items="${quest.value}">
+                                                    <tr>
+                                                        <td># ${vs.count}</td>
+                                                        <td>${q}</td>
+                                                    </tr>
+                                                </c:forEach>
+                                                </tbody>
+                                            </table>
+                                        </div>
+                                </c:forEach>
+                            </div>
+
+
+
+                            <!-- 领导评论信息 -->
+                            <div role="tabpanel" class="tab-pane" id="leader">
+                                <c:if test="${courseBatch.leaQuestionList == null}">
+                                    <h3>暂无评教数据</h3>
+                                </c:if>
+                                <c:forEach var="quest" items="${courseBatch.leaQuestionList}" varStatus="v">
+                                        <div class="panel panel-default">
+                                            <div class="panel-heading" style="text-align: center"><h4> <code>${v.count}</code> ${quest.key}</h4></div>
+                                            <!-- Table -->
+                                            <table class="table table-hover table-condensed">
+
+                                                <tbody>
+                                                    <c:forEach varStatus="vs" var="q" items="${quest.value}">
+                                                        <tr>
+                                                            <td># ${vs.count}</td>
+                                                            <td>${q}</td>
+                                                        </tr>
+                                                    </c:forEach>
+                                                </tbody>
+                                            </table>
+                                        </div>
+                                </c:forEach>
+                            </div>
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+</div>
+<%@ include file="../buttom.jsp"%>
+
+<script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/course/eval-process-bar.js"></script>
+<script type="text/javascript">
+
+    function fillCourseBatchInfo(courseBatch){
+        var stuEvalTotal = courseBatch.stuEvalTotal;
+        var stuEvalCnt = courseBatch.stuEvalCnt;
+        var stuEvalPercent = parseInt((stuEvalCnt/stuEvalTotal)*100);
+        $(".stu-eval-progress").find(".progress-bar").css("width",stuEvalPercent);
+        $(".stu-eval-progress").find(".progress-bar").html("评教已进行:"+stuEvalPercent+"%");
+
+        var stuEvalLevelCntsChart = echarts.init(document.getElementById('stu-eval-level-cnts'),echartTheme);
+
+        var stuEvalLevelCnts = courseBatch.stuEvalLevelCnts;
+        var teaEvalLevelCnts = courseBatch.teaEvalLevelCnts;
+        var leaEvalLevelCnts = courseBatch.leaEvalLevelCnts;
+
+        // 指定图表的配置项和数据
+        var option = {
+            tooltip: {
+                trigger: 'item',
+                formatter: "{a} <br/>{b}个: {c} ({d}%)"
+            },
+            legend: {
+                orient: 'horizontal',
+                x: 'top',
+                data:['优秀','良好','一般','差']
+            },
+            series: [
+                {
+                    name:'学生评教等级',
+                    type:'pie',
+                    radius: ['30%', '50%'],
+                    avoidLabelOverlap: false,
+                    label: {
+                        normal: {
+                            show: true,
+                            formatter: "{b}{c}个\n({d}%)"
+                        }
+                    },
+                    labelLine: {
+                        normal: {
+                            show: false
+                        }
+                    },
+
+                    data:[
+                        {value:stuEvalLevelCnts[0], name:'优秀',select:true},
+                        {value:stuEvalLevelCnts[1], name:'良好'},
+                        {value:stuEvalLevelCnts[2], name:'一般'},
+                        {value:stuEvalLevelCnts[3], name:'差'}
+                    ]
+                }
+            ]
+        };
+
+
+        stuEvalLevelCntsChart.setOption(option);
+
+        //教师评教等级饼图绘制
+        option.series[0].data = [
+            {value: teaEvalLevelCnts[0], name: '优秀', select: true},
+            {value: teaEvalLevelCnts[1], name: '良好'},
+            {value: teaEvalLevelCnts[2], name: '一般'},
+            {value: teaEvalLevelCnts[3], name: '差'}
+        ];
+        option.series[0].name = "教师评教等级";
+        var teaEvalLevelCntsChart = echarts.init(document.getElementById('tea-eval-level-cnts'),echartTheme);
+        teaEvalLevelCntsChart.setOption(option);
+
+        //领导评教等级饼图绘制
+        option.series[0].data = [
+            {value: leaEvalLevelCnts[0], name: '优秀', select: true},
+            {value: leaEvalLevelCnts[1], name: '良好'},
+            {value: leaEvalLevelCnts[2], name: '一般'},
+            {value: leaEvalLevelCnts[3], name: '差'}
+        ];
+        option.series[0].name = "领导评教等级";
+        var leaEvalLevelCntsChart = echarts.init(document.getElementById('lea-eval-level-cnts'),echartTheme);
+        leaEvalLevelCntsChart.setOption(option);
+
+
+
+        fillTableItemLevelInfo(courseBatch,'stu');
+        fillTableItemLevelInfo(courseBatch,'tea');
+        fillTableItemLevelInfo(courseBatch,'lea');
+        //TODO
+    }
+
+    /**
+     *  打分表的 表项的统计图的绘制
+     */
+    function fillTableItemLevelInfo(courseBatch,type) {
+        var id = type+'-eval-table-item-cnts';
+        var evalTableItemChart = echarts.init(document.getElementById(id),echartTheme);
+
+        var evalTable = $.parseJSON(courseBatch.stuEvalTableJsonString);
+        if(type=='tea'){
+            evalTable = $.parseJSON(courseBatch.teaEvalTableJsonString);
+        }
+        if(type=='lea'){
+            evalTable = $.parseJSON(courseBatch.leaEvalTableJsonString);
+        }
+        if(!evalTable){
+            $("#"+id).html("<h3 style='text-align: center;margin-top: 30px;'>暂无评教数据</h3>");
+            return ;
+        }
+        var tableItemList = evalTable.tableItemList;
+        var itemList = [];
+
+        var bestCnt=[];
+        var goodCnt=[];
+        var avgCnt=[];
+        var badCnt=[];
+        $.each(tableItemList,function(){
+            var itemName = this.context;
+            var item = {
+                value:itemName + "\n \n 平均得分: "+this.avgScore+" 分/共"+this.maxLevel+"分("+this.percent+"%)",
+                textStyle:{
+                    fontSize:15
+                }
+            };
+            itemList.push(item);
+            bestCnt.push(this.scoreLevelCnts[0]);
+            goodCnt.push(this.scoreLevelCnts[1]);
+            avgCnt.push(this.scoreLevelCnts[2]);
+            badCnt.push(this.scoreLevelCnts[3]);
+        });
+
+
+        var option = {
+            tooltip : {
+                trigger: 'axis',
+                axisPointer : {            // 坐标轴指示器,坐标轴触发有效
+                    type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                }
+            },
+            legend: {
+                data: ['优','良','中','差']
+            },
+            grid: {
+                left: '5%',
+                right: '4%',
+                bottom: '3%',
+                containLabel: true
+            },
+            xAxis:  {
+                type: 'value'
+            },
+            yAxis: {
+                type: 'category',
+                data: itemList
+            },
+            series: [
+                {
+                    name: '优',
+                    type: 'bar',
+                    stack: '总量',
+                    label: {
+                        normal: {
+                            show: true,
+                            position: 'inside',
+                            formatter: "{a}{c}个"
+                        }
+                    },
+                    data: bestCnt
+                },
+                {
+                    name: '良',
+                    type: 'bar',
+                    stack: '总量',
+                    label: {
+                        normal: {
+                            show: true,
+                            position: 'inside',
+                            formatter: "{a}{c}个"
+                        }
+                    },
+                    data: goodCnt
+                },
+                {
+                    name: '中',
+                    type: 'bar',
+                    stack: '总量',
+                    label: {
+                        normal: {
+                            show: true,
+                            position: 'inside',
+                            formatter: "{a}{c}个"
+                        }
+                    },
+                    data: avgCnt
+                },
+                {
+                    name: '差',
+                    type: 'bar',
+                    stack: '总量',
+                    label: {
+                        normal: {
+                            show: true,
+                            position: 'inside',
+                            formatter: "{a}{c}个"
+                        }
+                    },
+                    data: badCnt
+                }
+            ]
+        };
+        evalTableItemChart.setOption(option);
+    }
+
+
+
+    $(function(){
+
+        var cid= $("#cid").val();
+        var cno= $("#cno").val();
+        var bid= $("#bid").val();
+
+        $.get("../course-batch/info",{cid:cid,cno:cno,bid:bid},function(data){
+            if(data.success){
+                var courseBatch = data.item;
+                fillCourseBatchInfo(courseBatch);
+
+            }else{
+                showGlobalNotification(data.msg);
+            }
+        });
+        $('[data-toggle="tooltip"]').tooltip();
+    });
+</script>
+<script src="${pageContext.request.contextPath}/js/echarts/echarts.common.min.js"></script>
+<script src="${pageContext.request.contextPath}/js/echarts/macarons.js"></script>
+
+</body>
+</html>
+

+ 87 - 0
WebRoot/WEB-INF/jsp/course/editCourse.jsp

@@ -0,0 +1,87 @@
+
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+
+<title>修改管理员</title>
+</head>
+
+<body>
+	<div class="container">
+		<%@ include file="../head.jsp" %>
+		<div class="row " >
+			<div class="col-xs-3">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-xs-9 ">
+				<div class="panel panel-primary">
+					<div class="panel-heading">修改管理员信息</div>
+
+					<div class="panel-body">
+					<div class="row">
+						<div class="col-xs-8 col-xs-offset-2">
+							<form action="${pageContext.request.contextPath}/admin/admin/update" class="form-horizontal" role="form" id="form" method="post">
+								<div class="form-group">
+									
+									<label for="inputEmail3" class="col-xs-3 control-label">管理员账号</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" id="username" name="username" value="${admin.username }">
+										<input type="hidden" name="id" value="${admin.id }">
+									</div>
+								</div>
+								
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">输入新密码</label>
+									<div class="col-xs-9">
+										<input type="password" class="form-control inputxt" id="password" name="password" placeholder="password" value="${admin.password }">
+									</div>
+								</div>
+								
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">姓名</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" id="name" name="name" value="${admin.name }">
+									</div>
+								</div>
+								<div class="form-group">
+									<label for="inputEmail3" class="col-xs-3 control-label">职位</label>
+									<div class="col-xs-9">
+										<input type="text" class="form-control inputxt" name="position"  id="position"value="${admin.position }">
+									</div>
+								</div>
+								<div class="form-group" data-toggle="tooltip" data-placement="top" title="可多选" onmouseover="$(this).tooltip('show')">
+									<label for="inputEmail3" class="col-xs-3 control-label">权限</label>
+									<div class="col-xs-9">
+										<c:forEach items="${privilegeList}" var="p">
+											<label class="checkbox-inline">
+											  <f:checkbox  path="admin.privilegeIds" name="privilegeIds" value="${p.id}"/> ${p.name}
+											</label>
+										</c:forEach>
+									</div>
+								</div>
+								<div>
+									
+									<div class="form-group">    
+										 <div class="col-xs-6 col-xs-offset-4">				
+											<button type="submit" class="btn btn-primary  btn-lg "><span class="glyphicon glyphicon-floppy-saved"></span>&nbsp;&nbsp;确认修改管理员信息</button>																			 
+										 </div>
+									</div>
+								</div>
+						</form>
+						</div>
+					
+					</div>
+						
+					</div>
+				</div>
+			</div>
+		</div>
+
+	</div>
+<!-- 	container -->
+	<%@ include file="../buttom.jsp" %>
+</body>
+</html>
+

+ 134 - 0
WebRoot/WEB-INF/jsp/course/showCourse.jsp

@@ -0,0 +1,134 @@
+
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+
+<title>课程评教详情|${course.name}</title>
+
+    <link rel="stylesheet"
+          href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"></link>
+</head>
+<style>
+	.tab-pane{
+		padding-top: 5px;
+	}
+    .course-batch-bs-callout{
+        padding-bottom: 50px;
+    }
+</style>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		    <%@ include file="../head.jsp"%>
+        </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+                <div class="bs-callout bs-callout-danger">
+                    <ol class="breadcrumb">
+                        <li><a href="${pageContext.request.contextPath}/admin/course">课程列表</a></li>
+                        <li class="active">课程详情</li>
+                    </ol>
+                    <div class="row">
+                        <div class="col-sm-3">
+                            <h4>
+
+                                <a icon="user" href="${pageContext.request.contextPath}/admin/teacher/show?tid=${course.teacher.id}">
+                                    ${course.teacher.name}
+                                </a> <br><span icon="book"> ${course.name}</span> (${course.season })
+                            </h4>
+                            <hr>
+                            <h5>${course.department } </h5>
+                            <h5>课程号-课序号 :${course.cid}-${course.cno}</h5>
+                            <h5>合班:${course.combine }</h5>
+                        </div>
+                        <div class="col-sm-9">
+                            <table class="table no-border" style="text-align: center">
+                                <tr class="thead">
+                                    <td>角色</td>
+                                    <td>平均得分</td>
+                                    <td>各批次平均得分</td>
+                                    <td>得分统计</td>
+                                </tr>
+                               <tr>
+                                   <td>学生评教</td>
+                                   <td> <code>${course.stuEvalAvgScore}</code>分 </td>
+                                   <td> <code>${course.stuEvalScores}</code>分 </td>
+                                   <td> <div class="eval-process-bar progress" value="${course.stuEvalLevelCnts}">${course.stuEvalLevelCnts}</div> </td>
+                               </tr>
+                                <tr>
+                                    <td>教师评教</td>
+                                    <td><code>${course.teaEvalAvgScore}</code>分 </td>
+                                    <td> <code>${course.teaEvalScores}</code>分 </td>
+                                    <td> <div class="eval-process-bar progress" value="${course.teaEvalLevelCnts}"></div> </td>
+                                </tr>
+                                <tr>
+                                    <td>领导评教</td>
+                                    <td> <code>${course.leaEvalAvgScore}</code>分</td>
+                                    <td> <code>${course.leaEvalScores}</code>分 </td>
+                                    <td> <div class="eval-process-bar progress" value="${course.leaEvalLevelCnts}"></div> </td>
+                                </tr>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+
+				<div role="tabpanel">
+
+					<!-- Nav tabs -->
+					<ul class="nav nav-tabs" role="tablist">
+						<li role="presentation" class="active"><a href="#student"
+							aria-controls="student" role="tab" data-toggle="tab">学生评教信息</a></li>
+						<li role="presentation"><a href="#teacher"
+							aria-controls="profile" role="tab" data-toggle="tab">教师评教信息</a></li>
+						<li role="presentation"><a href="#leader"
+							aria-controls="messages" role="tab" data-toggle="tab">领导评教信息</a></li>
+					</ul>
+
+					<!-- Tab panes -->
+					<div class="tab-content">
+						<!-- 学生评教信息表 -->
+						<div role="tabpanel" class="tab-pane active" style="padding-top: 10px;" id="student">
+							<jsp:include page="showCourseStu.jsp"/>
+
+						</div>
+
+						<!-- 教师评教信息表 -->
+						<div role="tabpanel" class="tab-pane" id="teacher">
+							<%@ include file="showCourseTea.jsp"%>
+						</div>
+						
+						<!-- 教师评教信息表 -->
+						<div role="tabpanel" class="tab-pane" id="leader">
+							<%@ include file="showCourseLea.jsp"%>
+						</div>
+					</div>
+
+				</div>
+
+			</div>
+		</div>
+
+	</div>
+	<!-- 	container -->
+	<%@ include file="../buttom.jsp"%>
+    <script
+            src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+    <script src="${pageContext.request.contextPath}/js/tqe/course/eval-process-bar.js"></script>
+
+    <script  type="text/javascript">
+
+        $(function(){
+            autoAddIcon();
+        });
+    </script>
+</body>
+</html>
+

+ 46 - 0
WebRoot/WEB-INF/jsp/course/showCourseLea.jsp

@@ -0,0 +1,46 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+
+    <c:forEach items="${courseModel.batchesList}" var="b">
+            <div class="bs-callout bs-callout-${b.batches.batchStatus=='已结束'?'grey':'danger'} course-batch-bs-callout">
+                <h4 class="panel-heading">
+                    <a
+                            href="${pageContext.request.contextPath}/admin/batches/show/${b.batches.id}"
+                            target="_blank">${b.batches.name}</a>
+                    <a style="padding-left: 30px;">
+                        <span class="glyphicon glyphicon-time"></span> 评教时间: <fm:formatDate value="${b.batches.beginDate}"  dateStyle="medium"/> ~ <fm:formatDate value="${b.batches.endDate}"  dateStyle="medium"/>
+                    </a>
+                    <button style="" class="btn btn-info"
+                       href="${pageContext.request.contextPath}/admin/evalTable/show/${b.batches.leadEvalId}"
+                       target="_blank">  <span class="glyphicon glyphicon-file"></span> 点我查看评教表</button>
+                    <button style="" class="btn btn-danger" href="${pageContext.request.contextPath}/admin/statistics/course?cid=${course.cid}&cno=${course.cno}&bid=${b.batches.id}"
+                       target="_blank">  <span class="glyphicon glyphicon-stats"></span> 点我查看课程统计</button>
+                </h4>
+                <h5>
+
+                </h5>
+                    <table
+                            class="table table-hover table-striped  table-condensed">
+                        <thead>
+                        <tr>
+                            <td>领导名</td>
+                            <td>评分</td>
+                            <td>等级</td>
+                            <td>评教结果</td>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <c:forEach items="${b.leaTableList}" var="leaTable">
+                            <tr>
+                                <td>${leaTable.leader.name}</td>
+                                <td>${leaTable.score}</td>
+                                <td>${leaTable.level}</td>
+                                <td><a
+                                        href="${pageContext.request.contextPath}/admin/eval/show/leader/${leaTable.id}" target="_blank"
+                                        class="btn btn-warning">查看该评价</a></td>
+                            </tr>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+            </div>
+    </c:forEach>

+ 56 - 0
WebRoot/WEB-INF/jsp/course/showCourseStu.jsp

@@ -0,0 +1,56 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fm" uri="http://java.sun.com/jsp/jstl/fmt" %>
+
+            <c:forEach items="${courseModel.batchesList}" var="b">
+                <%--<div role="tabpanel" class="tab-pane" style="padding: 10px">--%>
+                    <div class="bs-callout bs-callout-${b.batches.batchStatus=='已结束'?'grey':'info'} course-batch-bs-callout ">
+                        <h4 class="panel-heading">
+                            <a
+                                    href="${pageContext.request.contextPath}/admin/batches/show/${b.batches.id}"
+                                    target="_blank">${b.batches.name}</a>
+
+                            <a style="padding-left: 30px;">
+                                <span class="glyphicon glyphicon-time"></span>
+                                评教时间: <fm:formatDate value="${b.batches.beginDate}"  dateStyle="medium"/> ~ <fm:formatDate value="${b.batches.endDate}"  dateStyle="medium"/>
+                                (${b.batches.batchStatus})
+                            </a>
+                            <button style="" class="btn btn-info"
+                                   href="${pageContext.request.contextPath}/admin/evalTable/show/${b.batches.stuEvalId}"
+                                   target="_blank"><span class="glyphicon glyphicon-file"></span> 点我查看评教表</button>
+                            <button style="" class="btn btn-danger" href="${pageContext.request.contextPath}/admin/statistics/course?cid=${course.cid}&cno=${course.cno}&bid=${b.batches.id}"
+                               target="_blank"><span class="glyphicon glyphicon-stats"></span> 点我查看课程统计</button>
+                        </h4>
+                            <table
+                                    class="table table-hover table-striped  table-condensed">
+                                <thead>
+                                <tr>
+                                    <td>学号</td>
+                                    <td>学生姓名</td>
+                                    <td>评分</td>
+                                    <td>等级</td>
+                                    <td>评教结果</td>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                <c:forEach items="${b.stuTableList}" var="st">
+                                    <tr>
+                                        <td>${st.student.sid}</td>
+                                        <td><a target="_blank" href="${pageContext.request.contextPath}/admin/student/show?sid=${st.student.sid}">
+                                                ${st.student.name}
+                                            </a>
+                                        </td>
+
+                                        <td>${st.score}</td>
+                                        <td>${st.level}</td>
+                                        <td><a
+                                                href="${pageContext.request.contextPath}/admin/eval/show/student/${st.id}" target="_blank"
+                                                class="btn btn-warning">查看该评价</a></td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                    </div>
+                <%--</div>--%>
+            </c:forEach>
+<!-- panel panel-primary -->

+ 50 - 0
WebRoot/WEB-INF/jsp/course/showCourseTea.jsp

@@ -0,0 +1,50 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+
+
+    <c:forEach items="${courseModel.batchesList}" var="b">
+            <div class="bs-callout bs-callout-${b.batches.batchStatus=='已结束'?'grey':'warning'} course-batch-bs-callout">
+                <h4 class="panel-heading">
+                    <a
+                            href="${pageContext.request.contextPath}/admin/batches/show/${b.batches.id}"
+                            target="_blank">${b.batches.name}</a>
+                    <a style="padding-left: 30px;">
+                        <span class="glyphicon glyphicon-time"></span> 评教时间: <fm:formatDate value="${b.batches.beginDate}"  dateStyle="medium"/> ~ <fm:formatDate value="${b.batches.endDate}"  dateStyle="medium"/>
+                    </a>
+                    <button style="" class="btn btn-info"
+                       href="${pageContext.request.contextPath}/admin/evalTable/show/${b.batches.teaEvalId}"
+                       target="_blank"><span class="glyphicon glyphicon-file"></span> 点我查看评教表</button>
+                    <button style="" class="btn btn-danger" href="${pageContext.request.contextPath}/admin/statistics/course?cid=${course.cid}&cno=${course.cno}&bid=${b.batches.id}"
+                       target="_blank"><span class="glyphicon glyphicon-stats"></span> 点我查看课程统计</button>
+                </h4>
+                <h5>
+
+                </h5>
+                    <table
+                            class="table table-hover table-striped  table-condensed">
+                        <thead>
+                        <tr>
+                            <td>教师号</td>
+                            <td>教师姓名</td>
+                            <td>评分</td>
+                            <td>等级</td>
+                            <td>评教结果</td>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <c:forEach items="${b.teaTableList}" var="tea">
+                            <tr>
+                                <td>${tea.teacher.id}</td>
+                                <td>${tea.teacher.name}</td>
+
+                                <td>${tea.score}</td>
+                                <td>${tea.level}</td>
+                                <td><a
+                                        href="${pageContext.request.contextPath}/admin/eval/show/teacher/${tea.id}" target="_blank"
+                                        class="btn btn-warning">查看该评价</a></td>
+                            </tr>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+            </div>
+    </c:forEach>

+ 207 - 0
WebRoot/WEB-INF/jsp/dataImport/dataImport.jsp

@@ -0,0 +1,207 @@
+<%@ page language="java" pageEncoding="UTF-8" %>
+
+<html>
+<head>
+    <%@ include file="../header.jspf" %>
+    <title>数据导入首页</title>
+    <style type="text/css" >
+        .form-horizontal{
+            margin-bottom: 0px;
+        }
+        well > ul{
+            padding-left: 10px;
+        }
+
+    </style>
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <%@ include file="../head.jsp" %>
+    </div>
+    <div class="row">
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp" %>
+        </div>
+        <div class="col-sm-10">
+            <div class="panel panel-default">
+                <div class="panel-heading">数据导入</div>
+                <div class="panel-body" style="padding-top: 0px">
+                    <div class="row" >
+                        <div class="alert alert-warning" >导入文件前请先查看右侧的文件上传说明!文件上传前必须进行
+                            <a target="_blank"
+                               href="${pageContext.request.contextPath}/image/tqe-excel-upload-convert.jpg">格式转换</a>!
+                        </div>
+                        <div class="col-sm-9">
+                            <div class="error-message-container row">
+                                <div class="col-sm-8 col-sm-offset-2">
+                                    <div class="alert alert-danger alert-dismissible" role="alert">
+                                        <button type="button" class="close" data-dismiss="alert">
+                                            <span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+                                        </button>
+                                        <span class="error-message">${error}</span>
+                                    </div>
+                                </div>
+                            </div>
+
+
+                            <div class="bs-callout bs-callout-info" style="margin-top: 0px">
+                                <h4>课程信息上传</h4>
+                                <form class="form-horizontal" name="import-teacher-form"
+                                      action="${pageContext.request.contextPath}/admin/dataImport/course"
+                                      enctype="multipart/form-data" method="post">
+                                    <div class="form-group">
+                                        <label class="col-sm-3 control-label">学期</label>
+
+                                        <div class="col-sm-3">
+                                            <select name="season" class="form-control" id="season">
+                                                <option value="${applicationScope.curSeason}">
+                                                    当前学期:${applicationScope.curSeason}</option>
+                                                <c:forEach begin="2015" end="${applicationScope.curYear+1}" step="1"
+                                                           var="s">
+                                                    <option value="${s}春">${s}春</option>
+                                                    <option value="${s}秋">${s}秋</option>
+                                                </c:forEach>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="course-file" class="col-sm-3 control-label">要上传的课程文件</label>
+
+                                        <div class="col-sm-5">
+                                            <input type="file" class="form-control" name="courseFile" id="course-file">
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-2 col-sm-5">
+                                            <button type="submit" class="btn btn-info">导入课程信息</button>
+                                        </div>
+                                    </div>
+                                </form>
+                            </div>
+
+
+                            <div class="bs-callout bs-callout-warning">
+                                <h4>学生选课信息上传</h4>
+
+                                <form class="form-horizontal" name="import-teacher-form"
+                                      action="${pageContext.request.contextPath}/admin/dataImport/sc"
+                                      enctype="multipart/form-data" method="post">
+                                    <div class="form-group">
+                                        <label for="sc-file" class="col-sm-3 control-label">要上传的学生选课文件</label>
+
+                                        <div class="col-sm-5">
+                                            <input type="file" class="form-control" name="scFile" id="sc-file">
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-2 col-sm-5">
+                                            <button type="submit" class="btn btn-warning">导入学生选课信息</button>
+                                        </div>
+                                    </div>
+                                </form>
+                            </div>
+
+
+                            <div class="bs-callout bs-callout-info">
+                                <h4>教师信息上传</h4>
+
+                                <form class="form-horizontal" name="import-teacher-form"
+                                      action="${pageContext.request.contextPath}/admin/dataImport/teacher"
+                                      enctype="multipart/form-data" method="post">
+                                    <div class="form-group">
+                                        <label for="teacher-file" class="col-sm-3 control-label">要上传的教师文件</label>
+
+                                        <div class="col-sm-5">
+                                            <input type="file" class="form-control" name="teacherFile"
+                                                   id="teacher-file">
+                                        </div>
+                                    </div>
+
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-2 col-sm-5">
+                                            <button type="submit" class="btn btn-info">导入教师信息</button>
+                                        </div>
+                                    </div>
+                                </form>
+                            </div>
+
+
+                            <div class="bs-callout bs-callout-warning">
+                                <h4>学生信息上传</h4>
+
+                                <form class="form-horizontal" name="import-teacher-form"
+                                      action="${pageContext.request.contextPath}/admin/dataImport/student"
+                                      enctype="multipart/form-data" method="post">
+                                    <div class="form-group">
+                                        <label for="student-file" class="col-sm-3 control-label">要上传的学生文件</label>
+
+                                        <div class="col-sm-5">
+                                            <input type="file" class="form-control" name="studentFile" id="student-file"
+                                                   required="required">
+                                        </div>
+                                    </div>
+
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-2 col-sm-5">
+                                            <button type="submit" class="btn btn-warning">导入学生信息</button>
+                                        </div>
+                                    </div>
+                                </form>
+                            </div>
+                        </div>
+
+                        <div class="col-sm-3">
+                            <div class="well text-danger">
+                                文件导入说明:
+                                <ul>
+                                    <li>上传文件必须为EXCEL文件,文件以.xls后缀</li>
+                                    <li>上传文件大小不能大于10MB</li>
+                                    <li>从教务系统下载的EXCEL必须要转换成兼容的Excel 2003 文件</li>
+                                    <li><a target="_blank"
+                                           href="${pageContext.request.contextPath}/image/tqe-excel-upload-convert.jpg"
+                                           class="btn btn-danger btn-sm">点我查看上传<br>格式转换说明</a></li>
+                                </ul>
+
+                                常见错误说明
+                            </div>
+                        </div>
+
+
+                    </div>
+                </div>
+
+
+            </div>
+
+
+        </div>
+
+
+    </div>
+
+    <%@ include file="../buttom.jsp" %>
+
+
+</div>
+<script type="text/javascript">
+    $(function () {
+        showErrorMessage();
+        $("form").submit(function () {
+            var $this = $(this);
+            var season = $this.find("#season").val();
+            var fileName = $this.find("input[type='file']").val();
+            var meg = "您确定要提交表单吗?\n请您仔细核对,文件上传后不可取消!\n文件名:\t" + fileName;
+            if (season) {
+                meg += "\n学期:\t" + season + "!!\n";
+            }
+            if (!confirm(meg)) {
+                return false;
+            }
+            return true;
+        });
+    });
+</script>
+</body>
+</html>

+ 90 - 0
WebRoot/WEB-INF/jsp/dataImport/import-result.jsp

@@ -0,0 +1,90 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
+
+<html>
+<head>
+    <%@ include file="../header.jspf" %>
+    <title >数据导入结果</title>
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <%@ include file="../head.jsp" %>
+    </div>
+    <div class="row" >
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp" %>
+        </div>
+        <div class="col-sm-8">
+
+            <div class="row">
+
+                <div class="error-message-container row">
+                    <div class="col-sm-8 col-sm-offset-2">
+                        <div class="alert alert-danger alert-dismissible" role="alert">
+                            <button type="button" class="close" data-dismiss="alert">
+                                <span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+                            </button>
+                            <span class="error-message">${error}${importResult.message}</span>
+                        </div>
+                    </div>
+                </div>
+
+
+                <div class="bs-callout bs-callout-info">
+
+                    <a href="${pageContext.request.contextPath}/admin/dataImport" class="btn btn-primary btn-lg">  《《 点我返回数据导入首页  </a>
+                    <br>
+                    <h4 style="margin-top: 40px;">文件导入结果</h4>
+                    <table class="table" style="text-align: left">
+                        <tr>
+                            <td>导入的数据类型:</td>
+                            <td>${importResult.importType} 信息导入</td>
+                        </tr>
+                        <tr>
+                            <td>解析到要导入的记录个数:</td>
+                            <td>${importResult.size}</td>
+                        </tr>
+                        <tr>
+                            <td>导入成功数:</td>
+                            <td>${importResult.successCnt}</td>
+                        </tr>
+                        <tr>
+                            <td>数据库已经存在个数:</td>
+                            <td>${importResult.existCnt}</td>
+                        </tr>
+                        <tr>
+                            <td>导入失败数:</td>
+                            <td>${importResult.failCnt}</td>
+                        </tr>
+                    </table>
+                    <div class="well">
+                        <h4>导入失败原因:</h4>
+                        <ul>
+                        <c:forEach var="meg"  items="${importResult.failMegs}">
+                            <li>${meg}</li>
+                        </c:forEach>
+                        </ul>
+                    </div>
+
+
+                    <a href="${pageContext.request.contextPath}/admin/dataImport" class="btn btn-primary btn-lg">  《《 点我返回数据导入首页  </a>
+                </div>
+
+
+            </div>
+        </div>
+
+    </div>
+
+    <%@ include file="../buttom.jsp" %>
+
+
+</div>
+<script type="text/javascript">
+    $(function () {
+        showErrorMessage();
+    });
+</script>
+</body>
+</html>

+ 43 - 0
WebRoot/WEB-INF/jsp/error.jsp

@@ -0,0 +1,43 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="header.jspf" %>
+  </head>
+  
+  <body>
+    	<div class="container">
+    		<%@ include file="head.jsp" %>
+    		<div class="row" style="margin-top: 70px ">
+    				<div class="jumbotron">
+					  <h2>${msg}</h2>
+					  <br>
+					  <center ><p id="cnt" style="color: red">5秒后返回主页...</p> <p><a class="btn btn-primary" onclick="history.go(-1);">点我立即返回</a></p></center>
+					 
+					</div>
+    		</div>
+    		
+    	</div>
+    	<script type="text/javascript">
+    		var cnt = 5;
+	    	function count(){
+				cnt--;
+				if(cnt>0){
+					$("#cnt").html(cnt+"秒后返回");
+				}else{
+					window.history.go(-1);
+				}
+			
+				
+			};
+			$(function(){
+				//setTimeout("'", 3000);
+	    		
+	    		setInterval('count()', 1000);
+			});
+    		
+    		
+    	</script>
+    	<%@ include file="buttom.jsp" %>
+  </body>
+</html>

+ 292 - 0
WebRoot/WEB-INF/jsp/eval/eval.jsp

@@ -0,0 +1,292 @@
+<%@ page language="java" pageEncoding="UTF-8" %>
+
+<html>
+<head>
+    <%@ include file="../header.jspf" %>
+    <title>开始评教|${evalTable.title}</title>
+    <style type="text/css">
+        .quest {
+            font-size: medium;
+            margin-top: 20px
+        }
+
+        .questArea {
+            margin-top: 10px;
+            padding-left: 50px
+        }
+
+        .nav-left {
+            position: fixed;
+            width: 60px;
+            height: 60px
+        }
+    </style>
+</head>
+
+<body>
+<div class="container-fluid">
+    <%@ include file="../head.jsp" %>
+    <div class="row" style="margin-top: 70px">
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp" %>
+        </div>
+        <div class="col-sm-10">
+
+            <div class="row">
+
+                <!--左侧的导航条 -->
+                <%--<div class="col-xs-1">--%>
+                <%--<ul class="nav nav-pills nav-stacked nav-left" role="tablist"--%>
+                <%--id="nav">--%>
+                <%--<li role="presentation" class="pre active"><a href="#part1">评教须知</a></li>--%>
+                <%--<li role="presentation" class="pre"><a href="#part2">表头</a></li>--%>
+                <%--<li role="presentation" class="pre"><a href="#part3">表单项</a></li>--%>
+                <%--</ul>--%>
+                <%--</div>--%>
+                <!--左侧的导航条 -->
+
+                <div class="col-xs-12">
+                    <div class="row">
+                        <div class="col-sm-8">
+                            <div class="bs-callout bs-callout-warning">
+                                <div class="row">
+                                    <div class="col-sm-6">
+                                        <div style="text-align: center">
+                                            <h2><span icon="bookmark"></span>${course.name } -- ${course.teacher.name }</h2>
+
+                                            <h3>${evalTable.title}</h3>
+
+                                        </div>
+                                    </div>
+                                    <div class="col-sm-6">
+                                        <table class="table table-condensed table-hover  no-border"
+                                               style="text-align: left;">
+                                            <tr>
+                                                <td>学院:</td>
+                                                <td>${course.department }</td>
+                                            </tr>
+                                            <tr>
+                                                <td>学期:</td>
+                                                <td>${course.season }</td>
+                                            </tr>
+                                            <tr>
+                                                <td>批次:</td>
+                                                <td>${batches.name }</td>
+                                            </tr>
+                                            <tr>
+                                                <td>评教开始日期:</td>
+                                                <td><fm:formatDate value="${batches.beginDate}"
+                                                                   dateStyle="medium"/></td>
+                                            </tr>
+                                            <tr>
+                                                <td>评教截止时间:</td>
+                                                <td><fm:formatDate value="${batches.endDate }" dateStyle="medium"/></td>
+                                            </tr>
+                                        </table>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-sm-4">
+                            <div class=" bs-callout bs-callout-danger" id="part1">
+                                <h4 icon="warning-sign">评教须知:</h4>
+                                <p>${evalTable.note }</p>
+                            </div>
+                        </div>
+                    </div>
+
+                    <form
+                            action="${pageContext.request.contextPath}/admin/eval/save/${type}"
+                            method="post" id="eval-form">
+                        <input type="hidden" name="eid" value="${evalTable.id}">
+                        <input type="hidden" name="cid" value="${ course.cid}">
+                        <input type="hidden" name="cno" value="${ course.cno}">
+                        <input type="hidden" name="bid" value="${ batches.id}">
+                        <input type="hidden" name="sid" value="${sessionScope.student.sid}${requestScope.sid}">
+                        <input type="hidden" name="tid" value="${sessionScope.teacher.id}">
+                        <input type="hidden" name="lid" value="${sessionScope.leader.id}">
+                        <input type="hidden" name="score" id="sum1" value="">
+                        <input type="hidden" name="level" id="level1" value="">
+                        <!--评教须知: -->
+
+
+                        <div class=" bs-callout bs-callout-info" id="part2">
+                            <h4>请如实填写表单信息:</h4>
+                            <table class="table table-hover ">
+                                <c:forEach items="${evalTable.itemList}" var="item"
+                                           varStatus="s">
+                                    <tr>
+                                        <td style="width: 100px;">${item.context}:</td>
+                                        <td><input type="text" class="form-control" name="itemList[${s.index}].ans"
+                                                   required="required"></td>
+                                    </tr>
+
+                                </c:forEach>
+                            </table>
+                        </div>
+
+
+                        <!-- 打分表和评价 -->
+                        <div class="panel panel-primary" id="part3">
+                            <div class="panel-heading">
+                                <h3 class="panel-title">打分表和评价</h3>
+                            </div>
+                            <div class="panel-body">
+                                <table class="table table-striped table-hover table-bordered table-condensed"
+                                       style="text-align: center">
+                                    <thead>
+                                    <tr hight="10px">
+                                        <td width="8%">序号</td>
+                                        <td>评价项目</td>
+                                        <td>评分</td>
+                                        <td>评价等级及参考分数(A B C D)</td>
+
+                                    </tr>
+                                    </thead>
+                                    <tbody>
+                                    <c:forEach items="${evalTable.tableItemList}" var="item"
+                                               varStatus="s">
+                                        <tr>
+                                            <td>${s.count}</td>
+                                            <td>${item.context}</td>
+
+                                            <td>
+                                                <select class="form-control score" required="required"
+                                                        name="tableItemList[${s.index}].ans" min="0" max="100">
+                                                    <option value="0">未选</option>
+                                                    <c:forTokens items="${item.level}" delims=" " var="num">
+                                                        <option value="${num}">${num}</option>
+                                                    </c:forTokens>
+                                                </select>
+                                            </td>
+
+                                            <td>${item.level}</td>
+
+                                        </tr>
+
+                                    </c:forEach>
+                                    <tr class="warning">
+                                        <td>评价级别</td>
+                                        <td>
+                                            <div class="progress">
+                                                <div
+                                                        class="progress-bar progress-bar-danger progress-bar-striped active"
+                                                        role="progressbar" aria-valuenow="20" aria-valuemin="0"
+                                                        aria-valuemax="100" style="min-width:10%;width: 0%" id="level">
+                                                    0分
+                                                </div>
+                                            </div>
+                                        </td>
+                                        <td>总分</td>
+                                        <td id="sum">0分</td>
+                                    </tr>
+                                    </tbody>
+                                </table>
+                                <c:forEach items="${evalTable.questionList}" var="que"
+                                           varStatus="s">
+
+                                    <div class="quest">
+                                        <code>${s.count}.</code>
+                                            ${que.context }
+                                    </div>
+                                    <div class="questArea">
+                                        <textarea class="form-control question-ans" name="questionList[${s.index}].ans"
+                                                  required="required" rows="8"></textarea>
+                                    </div>
+                                </c:forEach>
+
+                                <div style="text-align: center;margin-top: 100px;">
+                                    <c:if test="${type=='student' || type=='teacher' || type=='leader' || type=='teaStu'}">
+                                        <button icon="saved" class="btn btn-info btn-lg btn-block"
+                                               onclick="return confirm('一旦提交,不可修改,确认要提交吗?');"
+                                               type="submit" >点此提交评价</button>
+                                    </c:if>
+
+                                </div>
+                            </div>
+
+                        </div>
+
+                    </form>
+                </div>
+            </div>
+            <!-- 第一行结束 -->
+        </div>
+    </div>
+
+</div>
+<script
+        src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+<script
+        src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+<script type="text/javascript">
+    $(function () {
+        $(".score").bind('change click ready', function () {
+            var sum = 0;
+            $.each($(".score"), function () {
+                sum += parseInt($(this).val());
+            });
+            var lev;
+            if (sum < 60) {
+                $("#level").removeClass("progress-bar-warning")
+                        .removeClass("progress-bar-info")
+                        .removeClass("progress-bar-success")
+                        .addClass("progress-bar-danger");
+                lev = '差';
+            } else if (sum < 75) {
+                $("#level").removeClass("progress-bar-danger")
+                        .removeClass("progress-bar-info")
+                        .removeClass("progress-bar-success")
+                        .addClass("progress-bar-warning");
+                lev = '一般';
+
+            } else if (sum < 90) {
+                $("#level").removeClass("progress-bar-danger")
+                        .removeClass("progress-bar-warning")
+                        .removeClass("progress-bar-success")
+                        .addClass("progress-bar-info");
+                lev = '良好';
+
+            } else {
+                $("#level").removeClass("progress-bar-warning")
+                        .removeClass("progress-bar-info")
+                        .removeClass("progress-bar-danger")
+                        .addClass("progress-bar-success");
+                lev = '优秀';
+
+            }
+            $("#level").css("width", sum + "%");
+            $("#level").html(sum + "分   " + lev);
+            $("#sum").html(sum + "分   " + lev);
+            $("#sum1").val(sum);
+            $("#level1").val(lev);
+        });
+    });
+
+    $(function () {
+
+        $("#eval-form").validate({
+            submitHandler: function (form) {
+                var success = true;
+                $(".score").each(function () {
+                    var $score = $(this);
+                    var value = $score.find("option:selected").val();
+                    if (value == 0) {
+                        $score.focus();
+                        alert("您还有评分没有选择");
+                        success = false;
+                        return false;
+                    }
+                });
+                if (success) {
+                    form.submit();
+                }
+
+            }
+        });
+        autoAddIcon();
+    });
+</script>
+<%@ include file="../buttom.jsp" %>
+</body>
+</html>

+ 200 - 0
WebRoot/WEB-INF/jsp/eval/showEval.jsp

@@ -0,0 +1,200 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教指标显示|${evalTable.title}</title>
+<style type="text/css">
+		.quest {font-size: medium;margin-top: 20px}
+		.questArea {margin-top: 10px;padding-left: 50px}
+		.nav-left {position: fixed;width: 60px;height: 60px}
+	</style>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+
+				<div class="row">
+					<!--左侧的导航条 -->
+					<div class="col-xs-1">
+						<ul class="nav nav-pills nav-stacked nav-left" role="tablist"
+							id="nav">
+							<li role="presentation" class="pre active"><a href="#part1">评教须知</a></li>
+							<li role="presentation" class="pre"><a href="#part2">表单</a></li>
+							<li role="presentation" class="pre"><a href="#part3">表项</a></li>
+						</ul>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<div class="col-xs-11">
+					<hr>
+                        <div class=" bs-callout bs-callout-info" >
+                            <div style="text-align: center;">
+                                <h2>${evalTable.title }</h2>
+                                <h3>${stuTable.course.name }</h3>
+                                <h3>${table.course.name }</h3>
+                            </div>
+                            <table class="table table-hover table-striped  table-condensed">
+                                <tr class="info">
+                                    <td>学院</td>
+                                    <td>学期</td>
+                                    <td>批次</td>
+                                    <td>开始日期</td>
+                                    <td>截止日期</td>
+                                </tr>
+                                <tr>
+                                    <td>${table.course.department }</td>
+                                    <td>${table.course.season }</td>
+                                    <td>${table.batches.name }</td>
+                                    <td><fm:formatDate value="${table.batches.beginDate}" pattern="yyyy-MM-dd"/></td>
+                                    <td><fm:formatDate value="${table.batches.endDate }" pattern="yyyy-MM-dd"/></td>
+                                </tr>
+                            </table>
+                        </div>
+
+						<hr>
+							<!--评教须知: -->
+                            <div class=" bs-callout bs-callout-danger" id="part1">
+                                <h4>评教须知:</h4>
+                                <p>${evalTable.note }</p>
+                            </div>
+
+							<div class="bs-callout bs-callout-info" id="part2">
+									<h4 >请如实填写表单信息</h4>
+									<table class="table table-striped table-hover table-bordered table-condensed">
+
+										<c:forEach items="${evalTable.itemList}" var="item"
+											varStatus="s" >
+											<tr>
+												<td style="width: 100px;">${item.context}:</td>
+												<td><input type="text" class="form-control" name="itemList[${s.index}].ans" required="required" disabled="disabled"
+												      value="${item.ans }"></td>
+											</tr>
+
+										</c:forEach>
+									</table>
+							</div>
+
+
+							<!-- 打分表和评价 -->
+							<div class="bs-callout bs-callout-info" id="part3">
+									<h4 >打分表和评价</h4>
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>序号</td>
+											<td>评价项目</td>
+											<td>评价等级及参考分数(A B C D)</td>
+											<td>得分</td>
+										</tr>
+										<c:forEach items="${evalTable.tableItemList}" var="item"
+											varStatus="s">
+											<tr>
+												<td>${s.count}</td>
+												<td>${item.context}</td>
+												<td>${item.level}</td>
+												<td><input type="number" class="form-control score" disabled="disabled"
+													required="required"  name="tableItemList[${s.index}].ans" min="0" max="100" value="${item.ans}"></td>
+											</tr>
+
+										</c:forEach>
+										<tr class="warning">
+											<td>评价级别</td>
+											<td >
+												<div class="progress">
+													<div
+														class="progress-bar progress-bar-danger progress-bar-striped active" 
+														role="progressbar" aria-valuenow="20" aria-valuemin="0"
+														aria-valuemax="100" style="min-width:10%;width:0%" id="level">
+														${evalTable.score}分
+													</div>
+												</div>
+											</td>
+											<td>总分</td>
+											<td id="sum">${evalTable.score }分  </td>
+										</tr>
+									</table>
+									<c:forEach items="${evalTable.questionList}" var="que"
+										varStatus="s">
+
+										<div class="quest">
+											<code>${s.count}.</code>
+											${que.context }
+										</div>
+										<div class="questArea">
+											<textarea class="form-control" name="questionList[${s.index}].ans" required="required" disabled="disabled">${que.ans}</textarea>
+										</div>
+									</c:forEach>
+									
+									<div style="text-align: center;margin-top: 100px;">
+											<a class="btn btn-warning btn-lg btn-block" onclick="closeWindow();"
+												 >关闭窗口</a>
+										
+									</div>
+									
+
+							</div>
+
+					</div>
+				</div>
+				<!-- 第一行结束 -->
+			</div>
+		</div>
+
+	</div>
+	<script
+	src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+<script
+	src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+	<script type="text/javascript">
+		$(function() {
+				var sum = 0;
+				$.each($(".score"), function() {
+					sum += parseInt($(this).val());
+				});
+				var lev;
+				if(sum<60){
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-danger");
+					lev = '差';
+				}else if(sum<75){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-warning");
+					lev = '一般';
+					
+				}else if(sum<90){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-warning")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-info");
+					lev = '良好';
+					
+				}else{
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-danger")
+					.addClass("progress-bar-success");
+					lev = '优秀';
+					
+				}
+				$("#level").css("width",sum+"%");
+				$("#level").html(sum+"分   "+lev);
+				$("#sum").html(sum+"分   "+lev);
+		});
+		
+		$(function() {
+			$("#form").validate();
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 219 - 0
WebRoot/WEB-INF/jsp/evalTable/addEvalTable.jsp

@@ -0,0 +1,219 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>创建新指标</title>
+<style type="text/css">
+.quest {
+	font-size: medium;
+	margin-top: 50px
+}
+
+.questArea {
+	margin-top: 10px;
+	padding-left: 50px
+}
+
+.nav-left {
+	position: fixed;
+	width: 60px;
+	height: 60px
+}
+</style>
+    <script
+            src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+    <link rel="stylesheet"
+          href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div class="panel panel-primary">
+					<div class="panel-heading">创建新的评教指标</div>
+
+					<div class="panel-body">
+						<form
+							action="${pageContext.request.contextPath }/admin/evalTable/save"
+							class="form-horizontal" role="form" id="add-evalTable-form" method="post">
+
+                            <div class="form-group">
+                                <label for="type" class="col-xs-2 control-label">评教指标类型</label>
+                                <div class="col-xs-3">
+                                    <select type="text" class="form-control" name="type" required="required"
+                                           id="type">
+                                        <option value="学生评教师">学生评教师</option>
+                                        <option value="教师评教师">教师评教师</option>
+                                        <option value="教师评学生">教师评学生</option>
+                                        <option value="领导评教师">领导评教师</option>
+                                    </select>
+                                </div>
+                            </div>
+
+							<div class="form-group">
+
+								<label for="title" class="col-xs-2 control-label">评教指标标题</label>
+								<div class="col-xs-10">
+									<input type="text" class="form-control inputxt" name="title" required="required"
+										id="title">
+								</div>
+							</div>
+							
+							<div class="form-group">
+								<label for="note" class="col-xs-2 control-label">评教须知</label>
+								<div class="col-xs-8">
+									<textarea rows="5" cols="100%" class="form-control" name="note" id="note" required="required"></textarea>
+								</div>
+                                <div class="col-xs-2">
+
+                                    <a class="btn btn-primary" id="note-template-btn">插入须知模板</a>
+                                </div>
+							</div>
+							
+							<div class="form-group">
+								<label class="col-xs-2 control-label">输入表头项</label>
+								<div class="col-xs-10" id="item">
+									<div class="col-xs-4 item" style="margin-top: 5px;">
+										<input type="text" class="form-control inputxt" required="required"
+											name="itemList[0].context">
+									</div>
+									<div class="col-xs-4">
+										<button class="btn btn-primary" id="addItem">
+											<span class="glyphicon glyphicon-plus-sign"
+												aria-hidden="true">添加新表头项</span>
+										</button>
+									</div>
+                                    <div class="col-xs-4">
+                                        <button class="btn btn-warning" id="removeItem">
+											<span class="glyphicon glyphicon-remove-sign"
+                                                  aria-hidden="true">删除最后一个</span>
+                                        </button>
+
+                                    </div>
+
+								</div>
+
+							</div>
+
+							
+
+							<div class="form-group">
+								<label class="col-xs-2 control-label">评教表单项</label>
+								<div class="col-xs-10" id="tableItem">
+									<div class="col-xs-6">
+										<div class="alert alert-info" role="alert">请在下面 ↓ ↓ ↓ 输入评教表格的信息</div>
+									</div>
+									<div class="col-xs-6">
+										<div class="alert alert-success" role="alert">
+											请在下面  ↓ ↓ ↓ 输入评教等级或评分<br>
+											<code>不同等级评分之间使用 空格 或者 逗号 隔开</code>
+											<br>例如:<code>10 8 5 2</code> 或者 <code>10,8,5,2</code>
+										</div>
+
+									</div>
+									<div class="tableItem row" style="padding-top: 20px;">
+
+										<div class="col-xs-6 context">
+											<input type="text" class="form-control tableitem-context" required="required"
+												name="tableItemList[0].context" >
+										</div>
+										<div class="col-xs-6 level">
+											<input type="text" class="form-control tableitem-level"	required="required"
+												name="tableItemList[0].level" >
+										</div>
+									</div>
+
+									<div class="col-xs-2">
+										<button class="btn btn-primary" id="addTableItem">
+											<span class="glyphicon glyphicon-plus-sign"
+												aria-hidden="true">添加表单新项</span>
+										</button>
+									</div>
+                                    <div class="col-xs-2">
+                                        <button class="btn btn-primary" id="tableitem-template-btn">
+											<span class="glyphicon glyphicon-plus-sign"
+                                                  aria-hidden="true">插入模板记录</span>
+                                        </button>
+                                    </div>
+                                    <div class="col-xs-2">
+                                        <button class="btn btn-warning" id="removeTableItem">
+											<span class="glyphicon glyphicon-remove-sign"
+                                                  aria-hidden="true">删除最后一个</span>
+                                        </button>
+
+                                    </div>
+
+								</div>
+							</div>
+
+							<div class="form-group">
+								<label class="col-xs-2 control-label">问题和建议</label>
+								<div class="col-xs-10" id="question">
+									<div class="col-xs-12 question" style="margin-top: 5px;">
+										<input type="text" class="form-control inputxt" required="required"
+											name="questionList[0].context">
+									</div>
+									<div class="col-xs-3">
+										<button class="btn btn-primary" id="addQuestion">
+											<span class="glyphicon glyphicon-plus-sign"
+												aria-hidden="true"> 添加问题和建议项</span>
+
+										</button>
+									</div>
+                                    <div class="col-xs-3">
+                                        <button class="btn btn-warning" id="removeQuestion">
+											<span class="glyphicon glyphicon-remove-sign"
+                                                  aria-hidden="true">删除最后一个</span>
+                                        </button>
+                                    </div>
+
+								</div>
+
+							</div>
+
+							<div>
+
+								<div class="form-group">
+									<div class="col-xs-6 col-xs-offset-4">
+										<button type="submit" class="btn btn-primary  btn-lg ">提交新指标</button>
+									</div>
+								</div>
+							</div>
+						</form>
+
+
+					</div>
+					<!-- panel body end -->
+				</div>
+				<!-- panel end -->
+			</div>
+			<!-- col-sm-10 -->
+
+		</div>
+
+	</div>
+    <script
+            src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/template.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/evaltable/edit-evaltable.js"></script>
+
+	<script type="text/javascript">
+	$(function(){
+		initEditEvalTableBtnEvent();
+        $("#add-evalTable-form").validate();
+
+	});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 257 - 0
WebRoot/WEB-INF/jsp/evalTable/editEvalTable.jsp

@@ -0,0 +1,257 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>创建新指标</title>
+<style type="text/css">
+.quest {
+	font-size: medium;
+	margin-top: 50px
+}
+
+.questArea {
+	margin-top: 10px;
+	padding-left: 50px
+}
+
+.nav-left {
+	position: fixed;
+	width: 60px;
+	height: 60px
+}
+</style>
+    <script
+            src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+    <link rel="stylesheet"
+          href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div class="panel panel-primary">
+					<div class="panel-heading">修改评教指标</div>
+
+					<div class="panel-body">
+						<form
+							action="${pageContext.request.contextPath }/admin/evalTable/update"
+							class="form-horizontal" role="form" id="form" method="post">
+							<input value="${evalTable.id }" type="hidden" name="eid">
+
+                            <div class="form-group">
+                                <label for="type" class="col-xs-2 control-label">评教指标类型</label>
+                                <div class="col-xs-3">
+                                    <select class="form-control auto-select" name="type" required="required"
+                                            id="type" key="${evalTable.type}" >
+                                        <option value="学生评教师">学生评教师</option>
+                                        <option value="教师评教师">教师评教师</option>
+                                        <option value="教师评学生">教师评学生</option>
+                                        <option value="领导评教师">领导评教师</option>
+                                    </select>
+                                </div>
+                            </div>
+
+							<div class="form-group">
+
+								<label class="col-xs-2 control-label">评教指标标题</label>
+								<div class="col-xs-10">
+									<input type="text" class="form-control" name="title"
+										required="required" id="username" value="${evalTable.title}">
+								</div>
+							</div>
+
+							<div class="form-group">
+								<label class="col-xs-2 control-label">评教须知</label>
+								<div class="col-xs-8">
+									<textarea rows="5" cols="100%" name="note" class="form-control"
+										required="required" id="note">${evalTable.note}</textarea>
+								</div>
+                                <div class="col-xs-2">
+
+                                    <a class="btn btn-primary" id="note-template-btn">插入须知模板</a>
+                                </div>
+							</div>
+
+							<div class="form-group">
+								<label class="col-xs-2 control-label">输入表头项</label>
+								<div class="col-xs-10" id="item">
+									<c:forEach items="${evalTable.itemList}" var="item"
+										varStatus="s">
+										<div class="col-xs-4 item" style="margin-top: 5px;">
+											<input type="text" class="form-control inputxt"
+												required="required" name="itemList[${s.index }].context"
+												value="${item.context}">
+										</div>
+
+									</c:forEach>
+
+									<div class="col-xs-4">
+										<button class="btn btn-primary" id="addItem">
+											<span class="glyphicon glyphicon-plus-sign"
+												aria-hidden="true">添加新表头项</span>
+										</button>
+									</div>
+									<div class="col-xs-4">
+										<button class="btn btn-warning" id="removeItem">
+											<span class="glyphicon glyphicon-remove-sign"
+												aria-hidden="true">删除最后一个</span>
+										</button>
+
+									</div>
+
+								</div>
+
+							</div>
+
+
+
+							<div class="form-group">
+								<label class="col-xs-2 control-label">评教表单项</label>
+								<div class="col-xs-10" id="tableItem">
+									<div class="col-xs-6">
+										<div class="alert alert-info" role="alert">请在下面 ↓ ↓ ↓
+											输入评教表格的信息</div>
+									</div>
+									<div class="col-xs-6">
+										<div class="alert alert-success" role="alert">
+											请在下面 ↓ ↓ ↓ 输入评教等级或评分<br>
+											<code>不同等级评分之间使用 空格 逗号 隔开</code>
+											<br>例如:
+											<code>10 8 5 2</code>
+											或者
+											<code>10,8,5,2</code>
+										</div>
+
+									</div>
+									<c:forEach items="${evalTable.tableItemList}" var="item"
+										varStatus="s">
+										<div class="tableItem row" style="padding-top: 20px;">
+
+
+											<div class="col-xs-6 context">
+												<input type="text" class="form-control tableitem-context " required="required"
+													name="tableItemList[${s.index }].context"
+													value="${item.context }">
+											</div>
+											<div class="col-xs-6 level">
+												<input type="text" class="form-control tableitem-levle" required="required"
+													name="tableItemList[${s.index }].level"
+													value="${item.level }">
+											</div>
+
+
+										</div>
+									</c:forEach>
+
+									<div class="col-xs-3">
+										<button class="btn btn-primary" id="addTableItem">
+											<span class="glyphicon glyphicon-plus-sign"
+												aria-hidden="true">添加表单新项</span>
+										</button>
+
+									</div>
+                                    <div class="col-xs-2">
+                                        <button class="btn btn-primary" id="tableitem-template-btn">
+											<span class="glyphicon glyphicon-plus-sign"
+                                                  aria-hidden="true">插入模板记录</span>
+                                        </button>
+                                    </div>
+									<div class="col-xs-3">
+										<button class="btn btn-warning" id="removeTableItem">
+											<span class="glyphicon glyphicon-remove-sign"
+												aria-hidden="true">删除最后一个</span>
+										</button>
+
+									</div>
+
+
+								</div>
+							</div>
+
+							<div class="form-group">
+								<label class="col-xs-2 control-label">问题和建议</label>
+								<div class="col-xs-10" id="question">
+									<c:forEach items="${evalTable.questionList}" var="item"
+										varStatus="s">
+										<div class="col-xs-12 question" style="margin-top: 5px;">
+
+											<input type="text" class="form-control inputxt"
+												required="required" name="questionList[${s.index}].context"
+												value="${ item.context}">
+
+										</div>
+									</c:forEach>
+									<div class="col-xs-3">
+										<button class="btn btn-primary" id="addQuestion">
+											<span class="glyphicon glyphicon-plus-sign"
+												aria-hidden="true"> 添加问题和建议项</span>
+
+										</button>
+										
+									</div>
+
+									<div class="col-xs-3">
+										<button class="btn btn-warning" id="removeQuestion">
+											<span class="glyphicon glyphicon-remove-sign"
+												aria-hidden="true">删除最后一个</span>
+										</button>
+									</div>
+								</div>
+							</div>
+
+
+                            <div class="form-group">
+                                <label class="col-sm-2 control-label">修改说明</label>
+                                <div class="col-sm-10" >
+                                    <p class="form-control-static text-danger " style="font-size: 18px;">
+                                        强烈不建议您对评教指标进行大幅度的修改,否则将会影响已经评教的数据的统计!!!<br>
+                                        您只能在该指标表没有使用的时候才可以修改成功</p>
+                                </div>
+                            </div>
+
+							<div>
+								<div class="form-group">
+									<div class="col-xs-6 col-xs-offset-4">
+										<button type="submit" class="btn btn-primary  btn-lg ">确认修改指标</button>
+									</div>
+								</div>
+							</div>
+						</form>
+
+
+					</div>
+					<!-- panel body end -->
+				</div>
+				<!-- panel end -->
+			</div>
+			<!-- col-sm-10 -->
+
+		</div>
+
+	</div>
+    <script
+            src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/template.js"></script>
+
+    <script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/evaltable/edit-evaltable.js"></script>
+	<script type="text/javascript">
+		$(function() {
+            initEditEvalTableBtnEvent();
+
+            autoSelect();
+            $("#edit-evalTable-form").validate();
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 151 - 0
WebRoot/WEB-INF/jsp/evalTable/evalTable.jsp

@@ -0,0 +1,151 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教指标</title>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+
+
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						指标列表
+					</div>
+					<div class="panel-body">
+                        <div class="bs-callout bs-callout-info">
+                            <a href="${pageContext.request.contextPath}/admin/evalTable/add"
+                               class="btn btn-info btn-lg " icon="plus">生成新指标</a>
+
+                            <form class="form-inline" method="post" action="${pageContext.request.contextPath}/admin/evalTable"
+                                    style=" margin-top: 30px">
+                                <div class="form-group">
+                                    <label for="type">指标类型</label>
+                                    <select type="text" class="form-control auto-select" name="type" id="type" key="${condition.type}">
+                                        <option value="">不限</option>
+                                        <option value="学生评教师">学生评教师</option>
+                                        <option value="教师评教师">教师评教师</option>
+                                        <option value="教师评学生">教师评学生</option>
+                                        <option value="领导评教师">领导评教师</option>
+                                    </select>
+                                    <button type="submit" class="btn btn-primary ">
+                                        <span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索
+                                    </button>
+                                </div>
+
+                            </form>
+                        </div>
+
+						<table class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+
+									<td>指标标题</td>
+                                    <td>指标类型</td>
+									<td>生成时间</td>
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${evalTableList }" var="e">
+									<tr>
+
+										<td><a target="_blank"
+											href="${pageContext.request.contextPath}/admin/evalTable/show/${e.id}">${e.title }</a></td>
+                                        <td>${e.type}</td>
+										<td><fm:formatDate value="${e.createDate}"
+												pattern="yyyy-MM-dd" /></td>
+										<td>
+                                            <a href="${pageContext.request.contextPath}/admin/evalTable/edit/${e.id}" class="btn btn-sm btn-info update" icon="edit">修改</a>
+                                            <a href="${pageContext.request.contextPath}/admin/evalTable/delete" id="${e.id}" icon="remove" class="btn btn-sm btn-danger delete">删除</a>
+                                        </td>
+										<!--	评教指标暂时不能删除 
+										<td></td>
+										 -->
+										
+										<c:if test="${param.action == 'stuEval'}">
+											<td>
+											<a
+												href="${pageContext.request.contextPath}/admin/batches/setEval/student/${param.bid}/${e.id}"
+												class="btn btn-lg btn-danger">点此选为默认学生评教指标表</a>
+												</td>
+										</c:if>
+										
+										<c:if test="${param.action == 'teaEval'}">
+											<td>
+											<a
+												href="${pageContext.request.contextPath}/admin/batches/setEval/teacher/${param.bid}/${e.id}"
+												class="btn btn-lg btn-danger">点此选为默认教师评教指标表</a>
+												</td>
+										</c:if>
+										
+										<c:if test="${param.action == 'leadEval'}">
+											<td>
+											<a
+												href="${pageContext.request.contextPath}/admin/batches/setEval/lead/${param.bid}/${e.id}"
+												class="btn btn-lg btn-danger">点此选为默认领导评教指标表</a>
+												</td>
+										</c:if>
+										
+										<c:if test="${param.action == 'teaStuEval'}">
+											<td>
+											<a
+												href="${pageContext.request.contextPath}/admin/batches/setEval/teaStu/${param.bid}/${e.id}"
+												class="btn btn-lg btn-danger">点此选为默认教师评价学生表</a>
+												</td>
+										</c:if>
+									</tr>
+								</c:forEach>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</div>
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+    <script type="text/javascript">
+
+        $(function() {
+            $(".delete").click(function(e) {
+                e.preventDefault();
+                var eid = $(this).attr("id");
+                if(eid){
+                    if(confirm("您确认要删除该评教表吗?只有没有被使用的表才可以被删除")){
+                        $.post($(this).attr("href"),{eid:eid},function(data){
+                            if(data.success){
+                                location.reload();
+                            }else{
+                                showGlobalNotification("删除评教表失败!该评教表已经被使用;");
+                            }
+                        });
+                    }
+                }else{
+                    showGlobalNotification("未知的表Id: eid:"+eid);
+                }
+
+            });
+            $("#type").change(function(){
+                $(this).parents('form').submit();
+            });
+            autoAddIcon();
+            autoSelect();
+        });
+    </script>
+</body>
+</html>

+ 186 - 0
WebRoot/WEB-INF/jsp/evalTable/showEvalTable.jsp

@@ -0,0 +1,186 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教指标显示|${evalTable.title}</title>
+<style type="text/css">
+
+.quest {
+	font-size: medium;
+	margin-top: 50px
+}
+
+.questArea {
+	margin-top: 10px;
+	padding-left: 50px
+}
+
+.nav-left {
+	position: fixed;
+	width: 60px;
+	height: 60px
+}
+
+</style>
+</head>
+
+<body >
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div style="text-align: center;margin-top: 100px">
+					<h2>${evalTable.title }</h2>
+				</div>
+				<div class="row">
+
+					<!--左侧的导航条 -->
+					<div class="col-xs-12"  >
+						
+						<form
+							action="${pageContext.request.contextPath}/admin/paper/answer"
+							method="post">
+							<input type="hidden" name="id" value="${evalTable.id}">
+
+                            <div class=" bs-callout bs-callout-danger" id="part1">
+
+                                <h4>评教须知:</h4>
+
+                                <p>${evalTable.note }</p>
+                            </div>
+
+                            <div class=" bs-callout bs-callout-info" id="part2">
+                                <h4>请如实填写表单信息:</h4>
+                                <table class="table table-striped table-hover ">
+                                    <c:forEach items="${evalTable.itemList}" var="item"
+                                               varStatus="s">
+                                        <tr>
+                                            <td style="width: 10%;"><p class="">${item.context}:<p></td>
+                                            <td ><input type="text" class="form-control"/></td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </div>
+
+
+
+
+							<!-- 问答题 -->
+							<div class="bs-callout bs-callout-info" id="part3">
+									<h4 class="panel-title">打分表和评价</h4>
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>序号</td>
+											<td>评价项目</td>
+											<td>评价等级及参考分数(A B C D)</td>
+											<td>得分</td>
+										</tr>
+										<c:forEach items="${evalTable.tableItemList}" var="item"
+											varStatus="s">
+											<tr>
+												<td>${s.count}</td>
+												<td>${item.context}</td>
+												<td>
+													${item.level}
+												
+												</td>
+												<td>
+													<select type="number" class="form-control score" required="required">
+														<c:forTokens items="${item.level}" delims=" " var="num">
+															<option value="${num}">${num}</option>
+														</c:forTokens>
+													</select>	
+												</td>
+											</tr>
+
+										</c:forEach>
+										<tr class="warning">
+											<td>评价级别</td>
+											<td >
+												<div class="progress">
+													<div
+														class="progress-bar progress-bar-danger progress-bar-striped active" 
+														role="progressbar" aria-valuenow="20" aria-valuemin="0"
+														aria-valuemax="100" style="min-width:10%;width: 0%" id="level">
+														0分
+													</div>
+												</div>
+											</td>
+											<td>总分</td>
+											<td id="sum">0分</td>
+										</tr>
+									</table>
+									<c:forEach items="${evalTable.questionList}" var="que"
+										varStatus="s">
+
+										<div class="quest">
+											<code>${s.count}.</code>
+											${que.context }
+										</div>
+										<div class="questArea">
+											<textarea class="form-control"></textarea>
+										</div>
+									</c:forEach>
+
+
+							</div>
+
+						</form>
+					</div>
+				</div>
+				<!-- 第一行结束 -->
+			</div>
+		</div>
+
+	</div>
+	<script type="text/javascript">
+		$(function() {
+
+
+			$(".score").bind('change click ready',function() {
+				var sum = 0;
+				$.each($(".score"), function() {
+					sum += parseInt($(this).val());
+				});
+				var lev;
+				if(sum<60){
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-danger");
+					lev = '差';
+				}else if(sum<75){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-warning");
+					lev = '一般';
+					
+				}else if(sum<90){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-warning")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-info");
+					lev = '良好';
+					
+				}else{
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-danger")
+					.addClass("progress-bar-success");
+					lev = '优秀';
+					
+				}
+				$("#level").css("width",sum+"%");
+				$("#level").html(sum+"分   "+lev);
+				$("#sum").html(sum+"分   "+lev);
+			});
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 63 - 0
WebRoot/WEB-INF/jsp/head.jsp

@@ -0,0 +1,63 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<!--导航条 -->
+<nav class="navbar navbar-default navbar-fixed-top ">
+
+	<div class="container-fluid">
+		<div class="navbar-header">
+			<button type="button" class="navbar-toggle collapsed"
+				data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+				<span class="sr-only">Toggle navigation</span> <span
+					class="icon-bar"></span> <span class="icon-bar"></span> <span
+					class="icon-bar"></span>
+			</button>
+			<a class="navbar-brand" href="#"></a>
+		</div>
+
+		<!-- Collect the nav links, forms, and other content for toggling -->
+		<div class="collapse navbar-collapse"
+			id="bs-example-navbar-collapse-1">
+			<ul class="nav navbar-nav">
+				<%--<li ><a--%>
+					<%--href="${pageContext.request.contextPath}/admin/admin"><span--%>
+						<%--class="glyphicon glyphicon-home"></span>&nbsp;&nbsp;后台管理</a></li>--%>
+                <li><a ><span class="glyphicon glyphicon-home"></span> 教学质量评教</a></li>
+			</ul>
+			<form class="navbar-form navbar-left" role="search"></form>
+			<ul class="nav navbar-nav navbar-right">
+                <li >
+                    <p class="navbar-text">
+                        您好,
+                        ${sessionScope.teacher.name}
+                        ${sessionScope.student.name}${sessionScope.admin.name}
+                        ${sessionScope.leader.name}
+                    </p>
+
+                </li>
+                <li>
+                    <a href="${pageContext.request.contextPath}/admin/profile">
+                        <span class="glyphicon glyphicon-user"></span>
+                        我的信息
+                    </a>
+                </li>
+
+				<%--<li><a--%>
+					<%--href="${pageContext.request.contextPath}/admin/resetPwdUI" ><span--%>
+                        <%--class="glyphicon glyphicon-edit"></span>  修改密码</a></li>--%>
+                <c:if test="${sessionScope.admin!=null}">
+                    <li><a data-toggle="modal" data-target="#reset-pwd" href="#"
+                           data-remote="${pageContext.request.contextPath}/admin/resetPwdUI">
+                        <span class="glyphicon glyphicon-edit"></span>  修改密码</a></li>
+                </c:if>
+
+				<li ><a
+					href="${pageContext.request.contextPath}/logout"><span
+						class="glyphicon glyphicon-log-in"></span>&nbsp;&nbsp;退出登陆</a></li>
+
+			</ul>
+		</div>
+		<!-- /.navbar-collapse -->
+	</div>
+	<!-- /.container-fluid -->
+</nav>
+
+

+ 76 - 0
WebRoot/WEB-INF/jsp/header.jspf

@@ -0,0 +1,76 @@
+
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="fm" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="st" uri="http://www.springframework.org/tags"%>
+<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
+<!-- 
+	<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form"%>
+	 -->
+	 
+<meta name="renderer" content="webkit">
+<meta name="viewport" content="width=device-width,initial-scal=1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+
+
+  
+<link rel="stylesheet"
+	href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
+<link rel="stylesheet"  href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+
+<script src="${pageContext.request.contextPath}/js/jquery-1.11.1.min.js"></script>
+<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
+
+
+<!--[if lte IE 9]>
+<script src="${pageContext.request.contextPath}/js/html5shiv.js"></script>
+<script src="${pageContext.request.contextPath}/js/respond.min.js"></script>
+<![endif]-->
+
+<script type="text/javascript"
+	src="${pageContext.request.contextPath}/js/tree.js"></script>
+<link rel="stylesheet" type="text/css"
+	href="${pageContext.request.contextPath}/css/style.css" />
+<script type="text/javascript"
+	src="${pageContext.request.contextPath}/js/global.js">
+	</script>
+<!-- 
+<link rel="stylesheet" type="text/css"
+	href="${pageContext.request.contextPath}/css/non-responsive.css" />
+ -->
+
+<c:set var="contextPath" scope="request" value="${pageContext.request.contextPath}" />
+
+<style type="text/css">
+input.error {
+	border: 1px solid red;
+}
+
+label.error {
+	padding-left: 12px;
+	padding-bottom: 5px;
+	font-weight: bold;
+	color: #EA5200;
+}
+
+.foot {
+	list-style: none; /* 将默认的列表符号去掉 */
+}
+
+.foot li {
+	float: left;
+}
+
+.foot li a {
+	text-decoration: none;
+	padding: 8px; /* 去掉下划线 */
+}
+blockquote {
+	padding: 10px 20px;
+	margin: 0 0 20px;
+	font-size: 17.5px;
+	border-left: 5px solid #5bc0de;
+}
+</style>
+

+ 207 - 0
WebRoot/WEB-INF/jsp/index.jsp

@@ -0,0 +1,207 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="header.jspf"%>
+<script
+	src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+<script
+	src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+	<script
+			src="${pageContext.request.contextPath}/js/jquery.cookie.js"></script>
+<title>教师质量评估系统</title>
+</head>
+
+<body
+	style="background: url('${pageContext.request.contextPath}/image/adm-login-bg.jpg'); background-size: cover">
+	<div class="container">
+		<div>
+			<h1 class="" style="color: white;font-weight: bold;">
+				教师质量评估系统<small style="color: white;">Teaching Quality
+					Evaluation System</small>
+			</h1>
+
+		</div>
+		<!--登陆表单 -->
+		<div class="row" style="margin-top: 180px; ">
+			<div class="row">
+				<div class="col-sm-5 col-sm-offset-4">
+					<div class="panel panel-primary" style="background:white"
+						data-toggle="tooltip" data-placement="top">
+						<div class="panel-heading">
+							<h2 class="panel-title">系统登录</h2>
+						</div>
+						<div class="panel-body">
+							<!--表单 -->
+							<form action="${pageContext.request.contextPath}/login"
+								class="form-horizontal" role="form" id="form1" name="form1"
+								style="margin-top: 20px" method="post">
+								<div class="form-group" align="center">
+									<label for="username" class="col-sm-3 control-label">用户名:</label>
+									<div class="col-sm-6">
+										<input type="text" class="form-control" id="username" required="required"
+											name="username"  placeholder="请输入学号/教师号/Id">
+									</div>
+								</div>
+								<div class="form-group" align="center">
+									<label for="password" class="col-sm-3 control-label">密码:</label>
+									<div class="col-sm-6">
+										<input type="password" class="form-control" name="password" required="required"
+											id="password">
+									</div>
+									<div class="col-sm-3">
+											<%--<span style="top: 7px" class="glyphicon glyphicon-question-sign"--%>
+												  <%--aria-hidden="true" data-toggle="tooltip" data-placement="top"--%>
+												  <%--title="初始密码默认为身份证后8位" ></span>--%>
+                                            <%--<a href="#" id="init-pwd" class="btn btn-sm btn-default">初始密码?</a>--%>
+									</div>
+								</div>
+                                <c:if test="${ not sessionScope.skipVerify }">
+                                    <div class="form-group" align="center">
+                                        <label for="verificationCode" class="col-sm-3 control-label">验证码</label>
+                                        <div class="col-sm-5">
+                                            <input type="text" class="form-control" name="verificationCode"
+                                                id="verificationCode" required="required">
+                                        </div>
+                                        <div class="col-sm-3">
+                                            <img alt="验证码" class="control-label" id="valif-image"
+                                                src="${pageContext.request.contextPath}/valifImage">
+                                        </div>
+                                    </div>
+                                </c:if>
+
+								<div class="form-group">
+									<div class="col-sm-4 col-sm-offset-2">
+										<div class="radio">
+											<label> <input type="radio" name="type" required="required"
+												 value="student" checked="checked"><span>学生登录</span>
+											</label>
+										</div>
+										<div class="radio">
+											<label> <input type="radio" name="type"
+												 value="teacher" ><span>教师登录</span>
+											</label>
+										</div>
+										<div class="radio">
+											<label> <input type="radio" name="type"
+												 value="admin"><span>管理员登录</span>
+											</label>
+										</div>
+										<div class="radio">
+											<label> <input type="radio" name="type"
+												 value="other"><span>其他</span>
+											</label>
+										</div>
+										
+									</div>
+									<div class="col-sm-6">
+										<button type="submit" class="btn btn-warning" id="login-btn">学生登录</button>
+									</div>
+								</div>
+
+								<div class="form-group error-message-container">
+									<div class="col-sm-8 col-sm-offset-2">
+										<div class="alert alert-danger alert-dismissible" role="alert">
+											<button type="button" class="close" data-dismiss="alert">
+												<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+											</button>
+											<span class="error-message">${error}</span>
+										</div>
+									</div>
+								</div>
+							</form>
+							<!--登陆表单 -->
+						</div>
+					</div>
+
+				</div>
+			</div>
+		</div>
+
+	</div>
+	<!--     	container -->
+	<script type="text/javascript">
+		$(function() {
+			$("#form1").validate({
+				rules : {
+					username : {
+						required : true
+					},
+					password : {
+						required : true,
+						minlength : 3
+					}
+
+				},
+				messages : {
+					username : "请输入用户名",
+					password : {
+						required : "请输入密码",
+						minlength : "长度需要大于3"
+					}
+				}
+			});
+		});
+
+		$(function() {
+			//显示的错误提示框
+			showErrorMessage();
+
+			//根据登录方式显示不同的按钮文字
+			$("input:radio").click(function(){
+                var checkedRadio = $("input:radio:checked");
+				$("#login-btn").html(checkedRadio.next().text());
+                reFetchValifImage();
+			});
+
+            $("#valif-image").click(function(){
+                reFetchValifImage();
+
+            })
+
+			//从cookie中获取用户的登录方式
+			var loginType = $.cookie("loginType");
+			if(loginType){
+				$("input[value='"+loginType+"']").attr("checked","checked");
+				$("#login-btn").html($("input:radio:checked").next().text());
+                if(loginType!='teacher' && loginType!='student'){
+                    reFetchValifImage();
+                }
+
+			}
+
+            $("#init-pwd").click(function(e){
+                e.preventDefault();
+                alert("初始密码默认为身份证后8位\n如果身份证信息不完整,默认为学号\n进入系统后请及时修改密码!");
+            });
+
+		});
+
+		$(function () {
+			$('[data-toggle="tooltip"]').tooltip();
+		})
+
+        function reFetchValifImage(){
+            var checkedRadio = $("input:radio:checked");
+            var type = checkedRadio.val();
+            if(type){
+                var valifImage = $("#valif-image");
+                var imageSrc = valifImage.attr('src');
+                var lastIndex = imageSrc.lastIndexOf('?');
+                if(lastIndex==-1){
+                    lastIndex = imageSrc.length;
+                }
+                imageSrc = imageSrc.substring(0,lastIndex);
+                if(type =='student' || type == 'teacher'){
+                    valifImage.attr('src',imageSrc+"?random="+Math.random());
+                }else{
+                    valifImage.attr('src',imageSrc+"?type=inner&random="+Math.random());
+                }
+            }
+            $("#verificationCode").val('');
+        }
+
+	</script>
+
+</body>
+</html>

+ 125 - 0
WebRoot/WEB-INF/jsp/leaEval/leaEval.jsp

@@ -0,0 +1,125 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+</style>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"></link>
+<title>我可以评教的课程</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+				<div class="panel panel-primary">
+					<div class="panel-heading">请选择要评价的课程</div>
+
+					<div class="panel-body">
+						<blockquote>
+							<form class="form-inline" method="post"
+								action="${pageContext.request.contextPath}/admin/leaEval">
+								<div class="form-group">
+									<label>学院:</label> <select class="form-control"
+										id="department" name="did">
+										<c:forEach items="${ departmentList}" var="dep">
+											<c:if test="${dep.id != condition.did}">
+												<option value="${dep.id}">${dep.name }</option>
+											</c:if>
+											<c:if test="${dep.id == condition.did}">
+												<option value="${dep.id}" selected="selected">${dep.name }</option>
+											</c:if>
+										</c:forEach>
+									</select>
+
+								</div>
+								<div class="form-group">
+									<label>课程名:</label> <input type="text" class="form-control"
+										id="cname" name="cname">
+								</div>
+								<div class="form-group">
+									<label>课程号:</label> <input type="text" class="form-control"
+										id="cid" name="cid">
+								</div>
+								<div class="form-group">
+									<label>教师名:</label> <input type="text" class="form-control"
+										id="tname" name="tname">
+								</div>
+
+								<button type="submit" class="btn btn-primary btn-lg">
+									<span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索
+								</button>
+							</form>
+
+
+						</blockquote>
+						<table
+							class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+									<td>课程名</td>
+									<td>课程号</td>
+									<td>课序号</td>
+									<td>教师名</td>
+									<td>学院</td>
+									<td>学期</td>
+									<td>学生数</td>
+									<!-- 
+									<td>操作</td>
+									 -->
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${courseList}" var="c">
+									<tr>
+
+										<td><a
+											href="${pageContext.request.contextPath}/admin/course/show/${c.cid}/${c.cno}">${c.name }</a></td>
+										<td>${c.cid }</td>
+										<td>${c.cno }</td>
+										<td>${c.teacher.name }</td>
+										<td>${c.department }</td>
+										<td>${c.season }</td>
+										<td>${c.stuNumber }</td>
+										<!-- 
+										<td><a href="admin/edit/${admin.id }"
+											class="btn btn-info"><span
+												class=" glyphicon glyphicon-edit"></span>&nbsp;&nbsp;修改</a></td>
+										 -->
+										<td><a
+											href="${pageContext.request.contextPath}/admin/leaEval/eval/${c.cid}/${c.cno}"
+											class="btn btn-danger"><span
+												class=" glyphicon glyphicon-zoom-in"></span>点击去评教!</a></td>
+									</tr>
+								</c:forEach>
+
+							</tbody>
+						</table>
+
+
+					</div>
+
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+</body>
+</html>
+

+ 212 - 0
WebRoot/WEB-INF/jsp/leaEval/showLeaEval.jsp

@@ -0,0 +1,212 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教指标显示|${evalTable.title}</title>
+<style type="text/css">
+		.quest {font-size: medium;margin-top: 20px}
+		.questArea {margin-top: 10px;padding-left: 50px}
+		.nav-left {position: fixed;width: 60px;height: 60px}
+	</style>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div style="text-align: center;margin-top: 100px">
+					<h2>${evalTable.title }</h2>
+					<h3>${course.name }</h3>
+					<h3>${course.teacher.name }</h3>
+				</div>
+				<div class="row">
+					<!--左侧的导航条 -->
+					<div class="col-xs-1">
+						<ul class="nav nav-pills nav-stacked nav-left" role="tablist"
+							id="nav">
+							<li role="presentation" class="pre active"><a href="#part1">评教须知</a></li>
+							<li role="presentation" class="pre"><a href="#part2">表单</a></li>
+							<li role="presentation" class="pre"><a href="#part3">表项</a></li>
+						</ul>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<div class="col-xs-11">
+					<hr>
+						<table class="table table-hover table-striped table-bordered table-condensed">
+								<tr class="warning">
+									<td>学院</td>
+									<td>学期</td>
+									<td>批次</td>
+									<td>开始日期</td>
+									<td>截止日期</td>
+								</tr>
+									<tr>
+										<td>${course.department }</td>
+										<td>${course.season }</td>
+										<td>${batches.name }</td>
+										<td><fm:formatDate value="${batches.beginDate}" pattern="yyyy-MM-dd"/></td>
+										<td><fm:formatDate value="${batches.endDate }" pattern="yyyy-MM-dd"/></td>
+									</tr>
+						</table>
+						<hr>
+						<form
+							action="${pageContext.request.contextPath}/admin/eval/save/${type}"
+							method="post">
+							<input type="hidden" name="eid" value="${evalTable.id}">
+							<input type="hidden" name="cid" value="${ course.cid}">
+							<input type="hidden" name="cno" value="${ course.cno}">
+							<input type="hidden" name="sid" value="${sessionScope.student.sid}">
+							<input type="hidden" name="sum" id="sum1" value="">
+							<input type="hidden" name="level" id="level1" value="">
+							<!--评教须知: -->
+							<div class="panel panel-primary" id="part1">
+								<div class="panel-heading">
+									<h3 class="panel-title">评教须知:</h3>
+								</div>
+								<div class="panel-body">${evalTable.note}</div>
+							</div>
+
+							<div class="panel panel-primary" id="part2">
+								<div class="panel-heading">
+									<h3 class="panel-title">请如实填写表单信息</h3>
+								</div>
+								<div class="panel-body">
+									<table class="table table-striped table-hover table-bordered">
+
+										<c:forEach items="${evalTable.itemList}" var="item"
+											varStatus="s" >
+											<tr>
+												<td style="width: 100px;">${item.context}:</td>
+												<td><input type="text" class="form-control" name="itemList[${s.index}].ans"></td>
+											</tr>
+
+										</c:forEach>
+									</table>
+								</div>
+							</div>
+
+
+							<!-- 打分表和评价 -->
+							<div class="panel panel-primary" id="part3">
+								<div class="panel-heading">
+									<h3 class="panel-title">打分表和评价</h3>
+								</div>
+								<div class="panel-body">
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>序号</td>
+											<td>评价项目</td>
+											<td>评价等级及参考分数(A B C D)</td>
+											<td>得分</td>
+										</tr>
+										<c:forEach items="${evalTable.tableItemList}" var="item"
+											varStatus="s">
+											<tr>
+												<td>${s.count}</td>
+												<td>${item.context}</td>
+												<td>${item.level}</td>
+												<td><input type="number" class="form-control score"
+													required="required" value="0" name="tableItemList[${s.index}].ans"></td>
+											</tr>
+
+										</c:forEach>
+										<tr class="warning">
+											<td>评价级别</td>
+											<td >
+												<div class="progress">
+													<div
+														class="progress-bar progress-bar-danger progress-bar-striped active" 
+														role="progressbar" aria-valuenow="20" aria-valuemin="0"
+														aria-valuemax="100" style="min-width:10%;width: 0%" id="level">
+														0分
+													</div>
+												</div>
+											</td>
+											<td>总分</td>
+											<td id="sum">0分</td>
+										</tr>
+									</table>
+									<c:forEach items="${evalTable.questionList}" var="que"
+										varStatus="s">
+
+										<div class="quest">
+											<code>${s.count}.</code>
+											${que.context }
+										</div>
+										<div class="questArea">
+											<textarea class="form-control"></textarea>
+										</div>
+									</c:forEach>
+									
+									<div style="text-align: center;margin-top: 100px;">
+										<c:if test="${type=='student'}">
+											<input class="btn btn-info btn-lg btn-block" onclick="return confirm('一旦提交,不可修改,确认要提交');"
+												type="submit" value="提交评价" >
+										</c:if>
+										
+									</div>
+								</div>
+
+							</div>
+
+						</form>
+					</div>
+				</div>
+				<!-- 第一行结束 -->
+			</div>
+		</div>
+
+	</div>
+	<script type="text/javascript">
+		$(function() {
+			$(".score").bind('change click ready',function() {
+				var sum = 0;
+				$.each($(".score"), function() {
+					sum += parseInt($(this).val());
+				});
+				var lev;
+				if(sum<60){
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-danger");
+					lev = '差';
+				}else if(sum<75){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-warning");
+					lev = '一般';
+					
+				}else if(sum<90){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-warning")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-info");
+					lev = '良好';
+					
+				}else{
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-danger")
+					.addClass("progress-bar-success");
+					lev = '优秀';
+					
+				}
+				$("#level").css("width",sum+"%");
+				$("#level").html(sum+"分   "+lev);
+				$("#sum").html(sum+"分   "+lev);
+				$("#sum1").val(sum);
+				$("#level1").val(lev);
+			});
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 127 - 0
WebRoot/WEB-INF/jsp/left.jsp

@@ -0,0 +1,127 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ page import="java.text.*"%>
+<div class="tree well">
+	<div style="margin-left: 15px;margin-top: 10px;">
+		<p>
+			<code><%=DateFormat.getDateInstance(DateFormat.FULL,Locale.SIMPLIFIED_CHINESE).format(
+					new Date())%><br>
+			</code>
+		</p>
+
+	</div>
+	<ul style="margin-left: -40px">
+		<!-- 主菜单 -->
+		<li><span class="glyphicon glyphicon-folder-open"> 主菜单</span>
+			<ul>
+                <c:if test="${sessionScope.admin == null}">
+                    <li class="root"><span><i
+                             ></i>评教中心</span>
+                        <ul>
+                            <li
+                                style="display: ${sessionScope.pMap.stuEval==true ? '' : 'none'}">
+                                <span><i class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/stuEval">学生评教
+                                </a></span>
+                            </li>
+                            <li
+                                style="display: ${sessionScope.pMap.teaEval==true ? '' : 'none'}">
+                                <span><i class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/teaEval">教师评教</a></span>
+                            </li>
+                            <li
+                                style="display: ${sessionScope.pMap.teaStuEval==true ? '' : 'none'}">
+                                <span><i class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/teaStuEval">评教学生</a></span>
+                            </li>
+                            <li
+                                style="display: ${sessionScope.pMap.leaEval==true ? '' : 'none'}">
+                                <span><i class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/leaEval">领导评教</a></span>
+                            </li>
+                        </ul>
+                    </li>
+                </c:if>
+
+
+				<li class="root"><span><i
+						 ></i>数据查询</span>
+					<ul>
+						<li
+							style="display: ${sessionScope.pMap.course==true ? '' : 'none'}"><span><i
+								class="glyphicon glyphicon-leaf"></i> <a
+								href="${pageContext.request.contextPath}/admin/course">课程列表</a></span>
+						</li>
+
+						<li
+							style="display: ${sessionScope.pMap.teacher==true ? '' : 'none'}"><span><i
+								class="glyphicon glyphicon-leaf"></i> <a
+								href="${pageContext.request.contextPath}/admin/teacher">教师列表</a></span>
+						</li>
+
+						<li
+							style="display: ${sessionScope.pMap.student==true ? '' : 'none'}"><span><i
+								class="glyphicon glyphicon-leaf"></i> <a
+								href="${pageContext.request.contextPath}/admin/student">学生列表</a></span>
+						</li>
+					</ul></li>
+
+                <!-- 如果是系统管理员,才显示页面 -->
+                <c:if test="${sessionScope.admin != null}">
+                    <li class="root"><span><i  ></i>评教管理</span>
+                        <ul>
+                            <li
+                                    style="display: ${sessionScope.pMap.evalTable==true ? '' : 'none'}"><span><i
+                                    class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/evalTable">评教指标</a></span>
+                            </li>
+                            <li
+                                    style="display: ${sessionScope.pMap.batches==true ? '' : 'none'}"><span><i
+                                    class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/batches">评教批次</a></span>
+                            </li>
+                        </ul>
+                    </li>
+                    <!--系统管理 -->
+                    <li class="root"><span><i
+                             ></i>系统管理</span>
+                        <ul>
+                            <li
+                                style="display: ${sessionScope.pMap.admin==true ? '' : 'none'}"><span><i
+                                    class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/admin">管理员表</a></span></li>
+                            <li
+                                style="display: ${sessionScope.pMap.privilege==true ? '' : 'none'}"><span><i
+                                    class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/privilege">权限管理</a></span>
+                            </li>
+                            <li
+                                    style="display: ${sessionScope.pMap.dataImport==true ? '' : 'none'}"><span><i
+                                    class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/dataImport">数据导入</a></span>
+                            </li>
+                            <li
+                                    style="display: ${sessionScope.pMap.template==true ? '' : 'none'}"><span><i
+                                    class="glyphicon glyphicon-leaf"></i> <a
+                                    href="${pageContext.request.contextPath}/admin/template">模板管理</a></span>
+                            </li>
+                        </ul>
+                    </li>
+                </c:if>
+
+			</ul></li>
+	</ul>
+	<!-- 主菜单 -->
+
+</div>
+<script>
+	//如果二级目录没有子目录的话 那么就隐藏该级目录
+	$(".tree li.root").map(function(){
+		var $this = $(this);
+
+		if($this.find("li:visible").length<1){
+			$this.hide();
+		}
+	});
+</script>

+ 112 - 0
WebRoot/WEB-INF/jsp/model/resetPwd.jsp

@@ -0,0 +1,112 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<script
+	src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<div class="row" >
+
+				<div class="panel panel-default" >
+					<div class="panel-heading">修改密码</div>
+					<div class="panel-body">
+						<!-- 					  	修改密码 -->
+						<form action="${pageContext.request.contextPath}/admin/resetPwd"
+							class="form-horizontal" role="form" id="form1" method="post">
+							<div class="form-group">
+								<label class="col-xs-3 control-label">原密码</label>
+								<div class="col-xs-8">
+									<input type="password" name="oldPwd" id="oldPwd"
+										class="form-control"/>
+									<input type="hidden" name="id"
+										value="${sessionScope.admin.id}${sessionScope.teacher.id}${sessionScope.student.sid}"/>
+
+								</div>
+                                
+							</div>
+							<div class="form-group">
+								<label class="col-xs-3 control-label">新密码</label>
+								<div class="col-xs-8">
+									<input type="text" name="pwd" id="pwd" class="form-control"/>
+								</div>
+							</div>
+							<div class="form-group">
+								<label class="col-xs-3 control-label">确认新密码</label>
+								<div class="col-xs-8">
+									<input type="text" name="pwd2" id="pwd2" class="form-control"/>
+								</div>
+							</div>
+
+							<div class="form-group">
+								<div class="col-xs-offset-2 col-xs-4">
+									<button type="submit" class="btn btn-primary btn-lg">提交修改</button>
+								</div>
+                                <div class="col-xs-4 ">
+                                    <a type="button"  class="btn btn-default btn-lg model-close" data-dismiss="modal" icon="remove">关闭</a>
+                                </div>
+							</div>
+
+
+						</form>
+						<!-- 						修改密码 -->
+
+					</div>
+				</div>
+
+
+		</div>
+
+	</div>
+	<script type="text/javascript">
+    	$(function() {  
+			$("#form1").validate({
+                submitHandler: function() {
+                    var $form = $("#form1");
+                    $.post($form.attr("action"),$form.serialize(),function(data){
+                        alert(data.message);
+
+                        if(data.success){
+                            $(".model-close").click();
+                        }
+
+                    });
+                    return false;
+                },
+				rules:{
+					oldPwd: {
+						required:true
+					},
+					pwd: {
+						required:true,
+						minlength:3
+					},
+					pwd2: {
+						required:true,
+						equalTo:"#pwd"
+					}
+					
+				},
+				messages:{
+					oldPwd: {
+						required:"请输入原密码"
+					},
+					pwd: {
+						required:"请输入新密码",
+                        minlength:"至少输入3个字符"
+
+					},
+					pwd2: {
+						required:"请输入确认密码",
+						equalTo:"两次密码必须相同"
+					}
+				
+				}
+			});  
+		});
+
+    	</script>
+</body>
+</html>

+ 27 - 0
WebRoot/WEB-INF/jsp/model/seasonSelectForm.jsp

@@ -0,0 +1,27 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<form class="form-inline" id="teacher-course-form" method="post" action="${pageContext.request.contextPath}/admin/${userType}/show">
+
+    <div class="form-group">
+        <input type="hidden" id="tid" name="tid" value="${teacher.id}"/>
+        <input type="hidden" id="sid" name="sid" value="${student.sid}"/>
+        <label for="season" >选择学期查看课程:</label>
+        <select name="season" class="form-control auto-select" id="season" key="${condition.season}">
+            <option value="">当前学期:${applicationScope.curSeason}</option>
+            <c:forEach begin="2015" end="${applicationScope.curYear+1}" step="1" var="s">
+                <option  value="${s}春">${s}春</option>
+                <option  value="${s}秋">${s}秋</option>
+            </c:forEach>
+        </select>
+    </div>
+
+</form>
+
+<script type="text/javascript">
+    $(function(){
+        autoSelect();
+        $("#season").change(function(){
+            $("#teacher-course-form").submit();
+        });
+    });
+</script>

+ 168 - 0
WebRoot/WEB-INF/jsp/privilege/privilege.jsp

@@ -0,0 +1,168 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+
+</style>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+<title>权限管理</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		<%@ include file="../head.jsp"%>
+            </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+				<div class="panel panel-default">
+					<div class="panel-heading">权限查看 与 管理</div>
+                    <div class="alert alert-warning">如果您对该页面内容不了解 请谨慎修改!</div>
+					<div class="panel-body">
+						<table class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+									<td>权限Url</td>
+									<td>权限名称</td>
+									<td>学生</td>
+									<td>教师</td>
+									<td>领导</td>
+									<td>管理员</td>
+									<td style="width: 15%">操作</td>
+								</tr>
+							</thead>
+							<tbody>
+
+								<c:forEach items="${privilegeList}" var="p">
+                                    <c:if test="${p.editable==0 || sessionScope.admin.name!='admin'}">
+                                        <tr>
+
+                                            <td>${p.url}</td>
+                                            <td>${p.name}</td>
+                                            <td >${p.stu}</td>
+                                            <td >${p.tea}</td>
+                                            <td >${p.adm}</td>
+                                            <td >${p.lea}</td>
+                                            <td>不可修改</td>
+                                        </tr>
+                                    </c:if>
+                                    <c:if test="${p.editable == 1 && sessionScope.admin.name=='admin'}">
+                                        <tr>
+                                            <td>${p.url}</td>
+                                            <td>${p.name}</td>
+                                            <td ><input class="${p.id} form-control input-sm stu" disabled="disabled" value="${p.stu}"></td>
+                                            <td ><input class="${p.id} form-control input-sm tea" disabled="disabled" value="${p.tea}"></td>
+                                            <td ><input class="${p.id} form-control input-sm adm" disabled="disabled" value="${p.adm}"></td>
+                                            <td ><input class="${p.id} form-control input-sm lea" disabled="disabled" value="${p.lea}"></td>
+                                            <td>
+                                                <button value="${p.id}"  class="btn btn-info edit">修改</button>
+                                                <button value="${p.id}"  style="display: none" class="btn btn-info cancel" >取消修改</button>
+                                                <button value="${p.id}"  style="display: none" class="btn btn-warning update" >保存修改</button>
+                                            </td>
+                                        </tr>
+                                    </c:if>
+
+								</c:forEach>
+
+							</tbody>
+						</table>
+						<!--
+						<div class="row">
+							<div class="col-xs-6 col-xs-offset-5">
+								<div class="no1">
+									<a class="btn btn-primary " href="admin/add"></a>
+								</div>
+
+							</div>
+
+						</div>
+						 -->
+
+
+					</div>
+
+                    <div class="well">
+                        权限说明:<br>
+                        权限Url 代表角色是否有权限访问该Url,如果角色没有权限访问该Url,那么值为0,否则值为1;
+                    </div>
+
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.nodefault.js"></script>
+
+	<script type="text/javascript">
+		$(function(){
+			$(".edit").click(function(){
+				var id = $(this).val();
+				$("input."+id).removeAttr("disabled");
+				$(this).hide();
+				$(this).siblings().show();
+			});
+			$(".update").click(function(){
+				var id = $(this).val();
+				var stu = $("input."+id+".stu").val();
+				var tea = $("input."+id+".tea").val();
+				var adm = $("input."+id+".adm").val();
+				var lea = $("input."+id+".lea").val();
+				$.post("privilege/update",{"id":id,"stu":stu,"tea":tea,"lea":lea,"adm":adm},function(data){
+					if(data=="success"){
+						alert("修改成功");
+					}else{
+						alert("修改失败!"+data);
+					}
+				});
+				$(this).hide();
+				$(this).siblings().toggle();
+				$("input."+id).attr("disabled","disabled");
+			});
+            $(".cancel").click(function(){
+                var id = $(this).val();
+                $(this).hide();
+                $(this).siblings().toggle();
+                $("input."+id).attr("disabled","disabled");
+            });
+
+
+		});
+		$(function(){
+			$('table').has("thead").dataTable({
+				 "language": {
+			            "lengthMenu": "每页显示 _MENU_ 条纪录 ",
+			            "zeroRecords": "抱歉,没有找到数据",
+			            "info": "当前第  _PAGE_/_PAGES_ 页",
+			            "infoEmpty": "",
+			            "infoFiltered": "(过滤自  _MAX_ 条纪录)",
+			            "search":"搜索:",
+			            "searchPlaceholder":"请输入关键字",
+                         "paginate": {
+                             "first":      "首页",
+                             "last":       "末页",
+                             "next":       "下一页",
+                             "previous":   "上一页"
+                         }
+			        },
+					"lengthMenu": [[-1], [  "所有记录"]],
+                    "dom":"<'float_left'f>r<'float_right'l>t<'float_left'i><'float_right'p>"
+			});
+		});
+	</script>
+</body>
+</html>
+

+ 115 - 0
WebRoot/WEB-INF/jsp/resetPwd.jsp

@@ -0,0 +1,115 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="header.jspf"%>
+<script
+	src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-xs-2">
+				<%@ include file="left.jsp"%>
+			</div>
+			<div class="col-xs-5">
+				<div class="panel panel-primary">
+					<div class="panel-heading">修改密码</div>
+					<div class="panel-body">
+						<!-- 					  	修改密码 -->
+						<form action="${pageContext.request.contextPath}/admin/resetPwd"
+							class="form-horizontal" role="form" id="form1" method="post">
+							<div class="form-group">
+								<label class="col-xs-2 control-label">原密码</label>
+								<div class="col-xs-6">
+									<input type="password" name="oldPwd" id="oldPwd"
+										class="form-control"/>
+									<input type="hidden" name="id"
+										value="${sessionScope.admin.id}${sessionScope.teacher.id}${sessionScope.student.sid}"/>
+
+								</div>
+							</div>
+							<div class="form-group">
+								<label class="col-xs-2 control-label">新密码</label>
+								<div class="col-xs-6">
+									<input type="text" name="pwd" id="pwd" class="form-control"/>
+								</div>
+							</div>
+							<div class="form-group">
+								<label class="col-xs-2 control-label">确认新密码</label>
+								<div class="col-xs-6">
+									<input type="text" name="pwd2" id="pwd2" class="form-control"/>
+								</div>
+							</div>
+
+							<div class="form-group">
+								<div class="col-xs-offset-2 col-xs-10">
+									<button type="submit" class="btn btn-primary">提交修改</button>
+								</div>
+							</div>
+
+							<div class="form-group" id="e2">
+								<div class="col-sm-8 col-sm-offset-2">
+									<div class="alert alert-danger alert-dismissible" role="alert">
+										<button type="button" class="close" data-dismiss="alert">
+											<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+										</button>
+										<span id="e1">${error}</span>
+									</div>
+								</div>
+							</div>
+						</form>
+						<!-- 						修改密码 -->
+
+					</div>
+				</div>
+
+
+			</div>
+		</div>
+
+	</div>
+	<%@ include file="buttom.jsp"%>
+	<script type="text/javascript">
+    	$(function() {  
+			$("#form1").validate({
+				rules:{
+					oldPwd: {
+						required:true
+					},
+					pwd: {
+						required:true,
+						minlength:2
+					},
+					pwd2: {
+						required:true,
+						equalTo:"#pwd"
+					}
+					
+				},
+				messages:{
+					oldPwd: {
+						required:"请输入原密码"
+					},
+					pwd: {
+						required:"请输入密码"
+					},
+					pwd2: {
+						required:"请输入确认密码",
+						equalTo:"两次密码必须相同"
+					}
+				
+				}
+			});  
+		});
+    	$(function() {
+			var p = $("#e1").text();
+			if (p.length == 0) {
+				$("#e2").remove();
+			}
+		});
+    	</script>
+</body>
+</html>

+ 212 - 0
WebRoot/WEB-INF/jsp/stuEval/showStuEval.jsp

@@ -0,0 +1,212 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教指标显示|${evalTable.title}</title>
+<style type="text/css">
+		.quest {font-size: medium;margin-top: 20px}
+		.questArea {margin-top: 10px;padding-left: 50px}
+		.nav-left {position: fixed;width: 60px;height: 60px}
+	</style>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div style="text-align: center;margin-top: 100px">
+					<h2>${evalTable.title }</h2>
+					<h3>${course.name }</h3>
+					<h3>${course.teacher.name }</h3>
+				</div>
+				<div class="row">
+					<!--左侧的导航条 -->
+					<div class="col-xs-1">
+						<ul class="nav nav-pills nav-stacked nav-left" role="tablist"
+							id="nav">
+							<li role="presentation" class="pre active"><a href="#part1">评教须知</a></li>
+							<li role="presentation" class="pre"><a href="#part2">表单</a></li>
+							<li role="presentation" class="pre"><a href="#part3">表项</a></li>
+						</ul>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<div class="col-xs-11">
+					<hr>
+						<table class="table table-hover table-striped table-bordered table-condensed">
+								<tr class="warning">
+									<td>学院</td>
+									<td>学期</td>
+									<td>批次</td>
+									<td>开始日期</td>
+									<td>截止日期</td>
+								</tr>
+									<tr>
+										<td>${course.department }</td>
+										<td>${course.season }</td>
+										<td>${batches.name }</td>
+										<td><fm:formatDate value="${batches.beginDate}" pattern="yyyy-MM-dd"/></td>
+										<td><fm:formatDate value="${batches.endDate }" pattern="yyyy-MM-dd"/></td>
+									</tr>
+						</table>
+						<hr>
+						<form
+							action="${pageContext.request.contextPath}/admin/eval/save/${type}"
+							method="post">
+							<input type="hidden" name="eid" value="${evalTable.id}">
+							<input type="hidden" name="cid" value="${ course.cid}">
+							<input type="hidden" name="cno" value="${ course.cno}">
+							<input type="hidden" name="sid" value="${sessionScope.student.sid}">
+							<input type="hidden" name="sum" id="sum1" value="">
+							<input type="hidden" name="level" id="level1" value="">
+							<!--评教须知: -->
+							<div class="panel panel-primary" id="part1">
+								<div class="panel-heading">
+									<h3 class="panel-title">评教须知:</h3>
+								</div>
+								<div class="panel-body">${evalTable.note}</div>
+							</div>
+
+							<div class="panel panel-primary" id="part2">
+								<div class="panel-heading">
+									<h3 class="panel-title">请如实填写表单信息</h3>
+								</div>
+								<div class="panel-body">
+									<table class="table table-striped table-hover table-bordered">
+
+										<c:forEach items="${evalTable.itemList}" var="item"
+											varStatus="s" >
+											<tr>
+												<td style="width: 100px;">${item.context}:</td>
+												<td><input type="text" class="form-control" name="itemList[${s.index}].ans"></td>
+											</tr>
+
+										</c:forEach>
+									</table>
+								</div>
+							</div>
+
+
+							<!-- 打分表和评价 -->
+							<div class="panel panel-primary" id="part3">
+								<div class="panel-heading">
+									<h3 class="panel-title">打分表和评价</h3>
+								</div>
+								<div class="panel-body">
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>序号</td>
+											<td>评价项目</td>
+											<td>评价等级及参考分数(A B C D)</td>
+											<td>得分</td>
+										</tr>
+										<c:forEach items="${evalTable.tableItemList}" var="item"
+											varStatus="s">
+											<tr>
+												<td>${s.count}</td>
+												<td>${item.context}</td>
+												<td>${item.level}</td>
+												<td><input type="number" class="form-control score"
+													required="required" value="0" name="tableItemList[${s.index}].ans"></td>
+											</tr>
+
+										</c:forEach>
+										<tr class="warning">
+											<td>评价级别</td>
+											<td >
+												<div class="progress">
+													<div
+														class="progress-bar progress-bar-danger progress-bar-striped active" 
+														role="progressbar" aria-valuenow="20" aria-valuemin="0"
+														aria-valuemax="100" style="min-width:10%;width: 0%" id="level">
+														0分
+													</div>
+												</div>
+											</td>
+											<td>总分</td>
+											<td id="sum">0分</td>
+										</tr>
+									</table>
+									<c:forEach items="${evalTable.questionList}" var="que"
+										varStatus="s">
+
+										<div class="quest">
+											<code>${s.count}.</code>
+											${que.context }
+										</div>
+										<div class="questArea">
+											<textarea class="form-control"></textarea>
+										</div>
+									</c:forEach>
+									
+									<div style="text-align: center;margin-top: 100px;">
+										<c:if test="${type=='student'}">
+											<input class="btn btn-info btn-lg btn-block" onclick="return confirm('一旦提交,不可修改,确认要提交');"
+												type="submit" value="提交评价" >
+										</c:if>
+										
+									</div>
+								</div>
+
+							</div>
+
+						</form>
+					</div>
+				</div>
+				<!-- 第一行结束 -->
+			</div>
+		</div>
+
+	</div>
+	<script type="text/javascript">
+		$(function() {
+			$(".score").bind('change click ready',function() {
+				var sum = 0;
+				$.each($(".score"), function() {
+					sum += parseInt($(this).val());
+				});
+				var lev;
+				if(sum<60){
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-danger");
+					lev = '差';
+				}else if(sum<75){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-warning");
+					lev = '一般';
+					
+				}else if(sum<90){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-warning")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-info");
+					lev = '良好';
+					
+				}else{
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-danger")
+					.addClass("progress-bar-success");
+					lev = '优秀';
+					
+				}
+				$("#level").css("width",sum+"%");
+				$("#level").html(sum+"分   "+lev);
+				$("#sum").html(sum+"分   "+lev);
+				$("#sum1").val(sum);
+				$("#level1").val(lev);
+			});
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 100 - 0
WebRoot/WEB-INF/jsp/stuEval/stuEval.jsp

@@ -0,0 +1,100 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+</style>
+
+<title>学生评教中心</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		    <%@ include file="../head.jsp"%>
+        </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+
+				<div class="panel panel-default">
+					<div class="panel-heading">我的课程 | ${batches.name}</div>
+
+					<div class="panel-body">
+                            <table class="table table-hover table-striped table-condensed">
+                                <thead>
+                                    <tr class="info">
+                                        <td>课程名</td>
+                                        <td>教师名</td>
+                                        <td>学院</td>
+                                        <td>学期</td>
+                                        <td>学生数</td>
+                                        <td>学分</td>
+                                        <td>操作</td>
+                                    </tr>
+                                </thead>
+                                <tbody>
+                                    <c:forEach items="${courseList}" var="c">
+                                        <tr>
+                                            <td>
+                                                <a href="${pageContext.request.contextPath}/admin/course/show/${c.cid}/${c.cno}" target="_blank">
+                                                    ${c.name }
+                                                </a>
+                                            </td>
+                                            <td>${c.teacher.name }</td>
+                                            <td>${c.department }</td>
+                                            <td>${c.season }</td>
+                                            <td>${c.stuNumber }</td>
+                                            <td>${c.credit }</td>
+                                            <c:if test="${c.isEvaled=='false'}">
+                                                <td><a href="${pageContext.request.contextPath}/admin/stuEval/eval/${c.cid}/${c.cno}"
+                                                       class="btn btn-danger"><span
+                                                        class=" glyphicon glyphicon-edit"></span>&nbsp;&nbsp;评价</a></td>
+                                            </c:if>
+                                            <c:if test="${c.isEvaled=='true'}">
+                                                <td><button  class="btn btn-default" disabled="disabled"><span
+                                                        class=" glyphicon glyphicon-ok"></span>已评价</button></td>
+                                            </c:if>
+                                        </tr>
+                                    </c:forEach>
+                                </tbody>
+                            </table>
+
+                        <div class="form-group error-message-container">
+                            <div class="col-sm-8 col-sm-offset-2">
+                                <div class="alert alert-danger alert-dismissible" role="alert">
+                                    <button type="button" class="close" data-dismiss="alert">
+                                        <span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+                                    </button>
+                                    <span class="error-message">${message}</span>
+                                </div>
+                            </div>
+                        </div>
+
+					</div>
+
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+	<script>
+		$(function(){
+			showErrorMessage();
+		});
+	</script>
+</body>
+</html>
+

+ 115 - 0
WebRoot/WEB-INF/jsp/student/addteacher.jsp

@@ -0,0 +1,115 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="../header.jspf" %>
+	<title>添加教师</title>
+  </head>
+  
+  <body>
+    	<div class="container-fluid">
+    		<div class="row">
+    			<%@ include file="../head.jsp" %>
+    		</div>
+    		<div class="row" style="margin-top: 70px">
+    				<!--左侧的导航条 -->
+					<div class="col-xs-2">
+						<%@include file="../left.jsp"%>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<!--右侧的内容 -->
+					<div class="col-xs-10">
+						<!-- 面板开始 -->
+						<div class="panel panel-danger">
+						  <div class="panel-heading">
+						    <h1 class="panel-title" style="font-size: 25px">添加教师  Add Teacher</h1>
+						  </div>
+						  <div class="panel-body">
+						  	 <form action="${pageContext.request.contextPath }/admin/teacher/teacherAction!save" class="form-horizontal" role="form" id="form1" method="post">
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教师邮箱</label>
+										<div class="col-xs-10">
+											<input type="email" class="form-control " name="teacher.email" id="email" required  >
+										</div>
+									</div>
+									
+									
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="teacher.password" id="password" required>
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">确认输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="password2" id="password2" required>
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">姓名</label>
+										<div class="col-xs-10">
+											<input type="text" class="form-control  " name="teacher.name" id="username"	required>
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教职工号</label>
+										<div class="col-xs-10">
+											<input type="number" class="form-control  " name="teacher.teacherId" id="teacherId"	required>
+											
+										</div>
+									</div>
+									<div class="form-group" >
+											<label  class="col-xs-2 control-label">推荐课程</label>
+											<div class="col-xs-2">
+												<input type="radio" name="teacher.recommand" value="false" checked="checked">不推荐<br>
+												
+												<input type="radio" name="teacher.recommand" value="true">推荐
+											</div>
+									</div>
+									
+									<div>
+										<div class="form-group">    
+											 <div class="col-xs-6 col-xs-offset-4">
+												<button type="submit" class="btn btn-primary  btn-lg ">保存教师</button>																			 
+											 </div>
+										</div>
+									</div>
+							</form>
+						  </div><!-- panel-body -->
+						</div><!-- panel panel-default -->
+						<!-- 面板结束 -->
+					</div>
+					<!--右侧的内容 -->
+    		</div>
+    		<%@ include file="../buttom.jsp" %>
+    	</div>
+    	<script src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    	<script src="${pageContext.request.contextPath}/js/jquery.metadata.js"></script>
+    	
+		<script src="${pageContext.request.contextPath}/js/messages_zh.js"></script>
+    	<script type="text/javascript">
+    		$(function(){
+    			$("#teacher").css("margin-right","-30px").css("font-size"," 25px");
+    		});
+    		$(function() {  
+    			$("#form1").validate({
+    				rules:{
+    					'teacher.password': {
+    						required:true,
+    						minlength:5
+    					},
+    					password2: {
+    						required:true,
+    						minlength:5,
+    						equalTo:"#password"
+    					}
+    				}
+	    			
+    			});  
+    		});
+    	</script>
+    	
+  </body>
+</html>

+ 112 - 0
WebRoot/WEB-INF/jsp/student/editTeacher.jsp

@@ -0,0 +1,112 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="../header.jspf" %>
+	<title>修改教师</title>
+	
+  </head>
+  
+  <body>
+    	<div class="container-fluid">
+    		<div class="row">
+    			<%@ include file="../head.jsp" %>
+    		</div>
+    		<div class="row" style="margin-top: 70px">
+    				<!--左侧的导航条 -->
+					<div class="col-xs-2">
+						<%@include file="../left.jsp"%>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<!--右侧的内容 -->
+					<div class="col-xs-10">
+						<!-- 面板开始 -->
+						<div class="panel panel-danger">
+						  <div class="panel-heading">
+						    <h1 class="panel-title" style="font-size: 25px">修改管理员  Edit Admin</h1>
+						  </div>
+						  <div class="panel-body">
+						  	 <form action="${pageContext.request.contextPath }/admin/teacher/teacherAction!update" class="form-horizontal" role="form" id="form1" method="post">
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教师邮箱</label>
+										<div class="col-xs-10">
+											<input type="email" class="form-control " name="teacher.email" id="email" required value="${teacher.email }" >
+											<input type="hidden" name="teacher.id" value="${teacher.id }">
+										</div>
+									</div>
+									
+									
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="teacher.password" id="password" required value="${teacher.password }">
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">确认输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="password2" id="password2" required value="${teacher.password }">
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">姓名</label>
+										<div class="col-xs-10">
+											<input type="text" class="form-control  " name="teacher.name" id="username"	required value="${teacher.name }">
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教职工号</label>
+										<div class="col-xs-10">
+											<input type="number" class="form-control  " name="teacher.teacherId" id="teacherId"	required value="${teacher.teacherId }">
+											
+										</div>
+									</div>
+									<div class="form-group" >
+											<label  class="col-xs-2 control-label">推荐课程</label>
+											<div class="col-xs-2">
+												<s:radio list="%{#{'false':'不推荐','true':'推荐'} }" name="teacher.recommand"></s:radio>
+											</div>
+										</div>
+									<div>
+										<div class="form-group">    
+											 <div class="col-xs-6 col-xs-offset-4">
+												<button type="submit" class="btn btn-primary  btn-lg ">保存教师</button>																			 
+											 </div>
+										</div>
+									</div>
+							</form>
+						  </div><!-- panel-body -->
+						</div><!-- panel panel-default -->
+						<!-- 面板结束 -->
+					</div>
+					<!--右侧的内容 -->
+    		</div>
+    		<%@ include file="../buttom.jsp" %>
+    	</div>
+    	<script src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+		<script src="${pageContext.request.contextPath}/js/messages_zh.js"></script>
+    	<script type="text/javascript">
+    	$(function(){
+			$("#teacher").css("margin-right","-30px").css("font-size"," 25px");
+		});
+		$(function() {  
+			$("#form1").validate({
+				rules:{
+					'teacher.password': {
+						required:true,
+						minlength:5
+					},
+					password2: {
+						required:true,
+						minlength:5,
+						equalTo:"#password"
+					}
+				}
+    			
+			});  
+		});
+    	</script>
+    	
+  </body>
+</html>

+ 217 - 0
WebRoot/WEB-INF/jsp/student/showStudent.jsp

@@ -0,0 +1,217 @@
+<%@page import="java.text.DateFormat"%>
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>学生详情</title>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"></link>
+
+
+<style type="text/css">
+.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td
+	{
+	border-top: 0px solid #ddd;
+}
+</style>
+
+</head>
+
+	<div class="container-fluid">
+		<div class="row">
+			<%@ include file="../head.jsp"%>
+		</div>
+		<div class="row">
+			<!--左侧的导航条 -->
+			<div class="col-xs-2">
+				<%@include file="../left.jsp"%>
+			</div>
+			<!--左侧的导航条 -->
+
+			<!--右侧的内容 -->
+			<!-- 学生详情 -->
+			<div class="col-xs-10">
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						学生详情
+					</div>
+					<div class="panel-body ">
+                        <input type="hidden" name="sid" value="${student.sid}">
+
+                        <jsp:include page="student-info-table.jsp"/>
+
+                        <div class="bs-callout bs-callout-info">
+                            <c:set scope="request" var="userType" value="student"/>
+                            <jsp:include page="../model/seasonSelectForm.jsp"/>
+                            <a href="${pageContext.request.contextPath}/admin/student-season/info"
+                               class="btn btn-danger show-stu-statistic" > 查看学生统计信息 </a>
+
+                        </div>
+
+                        <div id="student-season-statistic" class="bs-callout bs-callout-info" style="display: none">
+                            <h4 id="student-season"></h4>
+                            <hr>
+                                <h4>学期平均得分:<code id="stu-avgScore"></code> &nbsp;&nbsp;  评教人数:<code id="stu-table-num"></code>  &nbsp;&nbsp;
+                                    各批次平均得分: <code class="stu-avgScore-list"></code>
+                                </h4>
+                            <br>
+                            <span >得分统计:</span><div  class="eval-process-bar progress avgScore-process-bar" value="" ></div>
+
+                            <hr>
+                            <div class="row table-item-container">
+
+                            </div>
+
+                            <div class="col-sm-6 table-item" style="display: none">
+                                <span class="table-item-key"></span>
+                                (平均得分:<code class="table-item-avgScore"></code>/<code class="table-item-maxLevel"></code>分 <code class="table-item-percent"></code>)
+                                <div class="eval-process-bar progress table-item-level" value="" ></div>
+                            </div>
+
+                            <hr>
+                            <h4>学生收到的评价:</h4>
+                            <div class="row question-container">
+
+                            </div>
+
+                            <div class="col-sm-6 question-item"  style="display: none">
+                                <ul class="list-group">
+                                </ul>
+                            </div>
+                        </div>
+
+
+						<c:forEach items="${courseModel.batchesList}" var="b">
+							<div class="bs-callout bs-callout-danger" style="margin-top: 30px;">
+									<h4>
+										<a
+											href="${pageContext.request.contextPath}/admin/batches/show/${b.batches.id}"
+											target="_blank">${b.batches.name}</a>
+									</h4>
+										<table
+											class="table table-hover table-striped  table-condensed" style="margin-top: 20px;">
+                                            <thead>
+                                                <tr>
+                                                    <td>评价教师</td>
+                                                    <td>评价课程</td>
+                                                    <td>评分</td>
+                                                    <td>等级</td>
+                                                    <td>评教结果</td>
+                                                </tr>
+                                            </thead>
+                                            <tbody>
+                                                <c:forEach items="${b.teaStuTableList}" var="ts">
+                                                    <tr>
+                                                        <td>${ts.tname}</td>
+                                                        <td>${ts.course.name}</td>
+
+                                                        <td>${ts.score}</td>
+                                                        <td>${ts.level}</td>
+                                                        <td><a target="_blank"
+                                                               href="${pageContext.request.contextPath}/admin/eval/show/teaStu/${ts.id}"
+                                                               class="btn btn-warning">查看该评价</a></td>
+                                                    </tr>
+                                                </c:forEach>
+                                            </tbody>
+
+										</table>
+								</div>
+						</c:forEach>
+					</div>
+				</div>
+
+			</div>
+			<!--右侧的内容 -->
+
+
+		</div>
+	</div>
+
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+    <script src="${pageContext.request.contextPath}/js/tqe/course/eval-process-bar.js"></script>
+
+	<script type="text/javascript">
+        function fillTableItem(stuSeason) {
+            var tableItemList = $.parseJSON(stuSeason.resultTableJsonString).tableItemList;
+            var $item = $(".table-item:first");
+            var $itemContainer = $(".table-item-container");
+            $itemContainer.html('');
+            $.each(tableItemList, function () {
+                var item = $item.clone().css("display", "");
+                item.find(".table-item-maxLevel").html(this.maxLevel);
+                item.find(".table-item-percent").html(this.percent + "%");
+                item.find(".table-item-key").html(this.context);
+                item.find(".table-item-avgScore").html(this.avgScore);
+                item.find(".table-item-level").attr("value", "[" + this.scoreLevelCnts + "]");
+                $itemContainer.append(item);
+            });
+        }
+        function fillQuestionList(stuSeason){
+
+            var questList = $.parseJSON(stuSeason.questionListString);
+            var questContainer = $(".question-container");
+            questContainer.html('');
+            var questItem = $(".question-item");
+            $.each(questList,function(){
+                var itemContainer = questItem.clone().css("display","");
+                var qItem = $("<li  class='list-group-item'></li>");
+                itemContainer.find(".list-group").append(qItem.clone().addClass("active").html(this.left));        //问题题目
+                $.each(this.right,function(index,ans){       //问题回答
+                   itemContainer.find(".list-group").append(qItem.clone().html(ans));
+                });
+                questContainer.append(itemContainer);
+            });
+        }
+        $(function(){
+            $(".show-stu-statistic").click(function(e){
+                e.preventDefault();
+                var container = $("#student-season-statistic");
+
+                if(!container.is(":hidden")){    //如果已经打开了 那么关闭了 并返回
+                   container.hide();
+                   $(this).html("查看学生评教统计信息");
+                   return ;
+               }
+               container.show();
+               $(this).html("隐藏学生评教统计信息");
+               var season = $("#season").val();
+               if(season){
+                   var sid = $("input[name='sid']").val();
+                   if(sid){
+                       var $this = $(this);
+                       $.post($this.attr("href"),{sid:sid,season:season},function(data){
+                           if(data.success){
+                                log(data.item);
+
+                               var ss = data.item;
+                               $("#student-season").html(ss.season);
+                               $("#stu-avgScore").html(ss.avgScore+"分");
+
+                               $(".avgScore-process-bar").attr("value","["+ss.levelCnts+"]");
+                               $(".stu-avgScore-list").html(ss.avgScoreList);
+                               $("#stu-table-num").html(ss.resultTableNum+"人");
+
+                               fillTableItem(ss);
+                               fillQuestionList(ss);
+                               renderProcessBar();
+                           } else{
+                               showGlobalNotification(data.message);
+                           }
+                       });
+                   }else{
+                       showGlobalNotification("未知的sid:"+sid);
+                   }
+               }else{
+                   showGlobalNotification("未知的season:"+season)
+               }
+           });
+        });
+    </script>
+
+</body>
+</html>

+ 26 - 0
WebRoot/WEB-INF/jsp/student/student-info-table.jsp

@@ -0,0 +1,26 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<table class="table table-hover table-striped ">
+    <tr class="info">
+        <td>学生名</td>
+        <td>学生号</td>
+        <td>性别</td>
+        <td>院系</td>
+        <td>专业</td>
+        <td>班级</td>
+        <td>平均得分</td>
+        <td>操作</td>
+    <tr>
+        <td>${student.name }</td>
+        <td>${student.sid}</td>
+        <td>${student.sex }</td>
+        <td>${student.department}</td>
+        <td>${student.major }</td>
+        <td>${student.clazz }</td>
+        <td><code>${student.avgScore } 分</code></td>
+        <td>
+            <a  target="_blank" class="btn btn-sm btn-primary"
+                href="${pageContext.request.contextPath}/admin/statistics/student?sid=${student.sid}">统计信息</a>
+        </td>
+
+    </tr>
+</table>

+ 230 - 0
WebRoot/WEB-INF/jsp/student/student.jsp

@@ -0,0 +1,230 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>学生列表</title>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+<style type="text/css">
+
+</style>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<div class="row">
+			<%@ include file="../head.jsp"%>
+		</div>
+		<div class="row" >
+			<!--左侧的导航条 -->
+			<div class="col-sm-2">
+				<%@include file="../left.jsp"%>
+			</div>
+			<!--左侧的导航条 -->
+
+			<!--右侧的内容 -->
+			<div class="col-sm-10">
+				<!-- 面板开始 -->
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						学生列表
+					</div>
+					<div class="panel-body">
+						<div class="bs-callout bs-callout-info">
+							<form class="form-inline" method="post" action="${pageContext.request.contextPath}/admin/student">
+								<div class="form-group">
+									<label >学院:</label>
+									<select  class="form-control auto-select" id="department" name="did" value="${condition.did}">
+										<option value="" selected="selected">不限</option>
+											<c:forEach items="${ departmentList}" var="dep" >
+													<option value="${dep.id}">${dep.name }</option>
+											</c:forEach>
+									</select>
+								</div>
+								<div class="form-group">
+									<label for="major" >专业:</label>
+									  <select  class="form-control auto-select" id="major" name="mid" value="${condition.mid}">
+									  <option value="" selected="selected">不限</option>
+									</select>
+								</div>
+                                <div class="form-group">
+                                    <label for="grade" >年级</label>
+                                    <select  class="form-control auto-select" id="grade" name="grade" value="${condition.grade}">
+                                        <option value="" selected="selected">不限</option>
+                                        <c:forEach begin="2012" end="${applicationScope.curYear}"  var="g">
+                                            <option  value="${g}级">${g}级</option>
+                                        </c:forEach>
+                                    </select>
+                                </div>
+								<div class="form-group">
+									<label for="clazz" >班级:</label>
+										<select  class="form-control auto-select" id="clazz" name="cid" value="${condition.cid}">
+									  <option value="" selected="selected">不限</option>
+									  </select>
+								</div>
+								<div class="form-group">
+									<label for="sname" >姓名:</label> <input type="text"
+										class="form-control" id="sname" name="sname">
+								</div>
+								<div class="form-group">
+									<label for="sid" >学号:</label> <input type="number"
+										class="form-control" id="sid" name="sid">
+								</div>
+
+								<button type="submit" class="btn btn-primary btn-lg">
+									<span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索
+								</button>
+							</form>
+
+
+						</div>
+						<table
+							class="table table-hover table-striped table-bordered table-condensed compact">
+							<thead>
+								<tr class="info">
+									<td>学生姓名</td>
+									<td>学号</td>
+									<td>性别</td>
+									<td>院系</td>
+									<td>专业</td>
+									<td>班级</td>
+									<!-- 
+									<td>方向</td>
+									 -->
+									<td>年级</td>
+									<td>校区</td>
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${studentList}" var="s">
+									<tr>
+										<td><a
+											href="${pageContext.request.contextPath}/admin/student/show?sid=${s.sid}">${s.name}</a></td>
+										<td>${s.sid}</td>
+										<td>${s.sex }</td>
+										<td>${s.department }</td>
+										<td>${s.major }</td>
+										<td>${s.clazz }</td>
+										<!-- 
+										<td>${s.field }</td>
+										 -->
+										<td>${s.grade }</td>
+										<td>${s.campus }</td>
+
+
+										<td><a href="${pageContext.request.contextPath}/admin/student/show?sid=${s.sid}"
+											class="btn btn-primary" icon="zoom-in">查看学生</a></td>
+									</tr>
+								</c:forEach>
+							</tbody>
+
+						</table>
+
+					</div>
+					<!-- panel-body -->
+				</div>
+				<!-- panel panel-default -->
+				<!-- 面板结束 -->
+			</div>
+			<!--右侧的内容 -->
+		</div>
+		<%@ include file="../buttom.jsp"%>
+	</div>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.nodefault.js"></script>
+
+	<script type="text/javascript">
+		$(function(){
+
+            $('table').has("thead").dataTable($.extend(true,dataTableDefaultOptions,{
+                language:{
+                    zeroRecords:'<h2>请从上面搜索栏中选择要查看的数据</h2>'
+                }
+            }));
+
+            autoSelect();
+
+
+			//点击部门 动态加载专业列表
+			$("#department").change(function(){
+				fetchMajorList();
+			});
+			//点击专业,动态加载班级信息列表
+			$("#major").change(function(){
+				fetchClassList();
+			});
+            //年级变化时候 加载班级列表
+            $("#grade").change(function(){
+                fetchClassList();
+            });
+
+            
+            fetchMajorList();
+            fetchClassList();
+
+            autoAddIcon();
+
+
+		});
+
+		function fetchMajorList(){
+			var did = $("#department option:selected").val();
+            console.log('did:'+did);
+			if(did){
+				$.post("../getMajor/"+did,function(data){
+					//alert(data);
+					if(data!=null){
+						$("#major").html("<option value='' selected='selected'>不限</option>");
+						$(data).each(function(){
+							//alert(this.id);
+							//alert(this.name);
+							var opt = $("<option value="+this.id+">"+this.name+"</option>");
+
+							$("#major").append(opt);
+						});
+                        autoSelect();
+					}
+
+				});
+				$("#major option[value='']:selected");
+				$("#clazz option[value='']:selected");
+
+			}
+		}
+
+		function fetchClassList(departmentId ,majorId){
+			var did = $("#department").find("option:selected").val();
+			var mid = $("#major").find("option:selected").val();
+            var grade = $("#grade").find("option:selected").val();
+            log(grade);
+			if(did && mid && grade){
+				$.post("../getClazz",
+                        {
+                            did:did,
+                            mid:mid,
+                            grade:grade
+                        },
+                        function(data){
+					//alert(data);
+					if(data){
+						$("#clazz").html("<option value='' selected='selected'>不限</option>");
+						$(data).each(function(){
+							var opt = $("<option value="+this.id+">"+this.name+"</option>")
+							$("#clazz").append(opt);
+						});
+                        autoSelect();
+					}
+
+				});
+				$("#major option[value='']:selected");
+				$("#clazz option[value='']:selected");
+
+			}
+		}
+	</script>
+</body>
+</html>

+ 161 - 0
WebRoot/WEB-INF/jsp/student/studentStatistics.jsp

@@ -0,0 +1,161 @@
+<%@ page language="java" pageEncoding="UTF-8" %>
+
+<html>
+<head>
+    <%@ include file="../header.jspf" %>
+
+    <title>学生统计详情</title>
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <%@ include file="../head.jsp" %>
+    </div>
+    <div class="row ">
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp" %>
+        </div>
+        <div class="col-sm-10 ">
+
+            <input type="hidden" name="sid" id="sid" value="${student.sid}">
+            <div class="bs-callout bs-callout-danger">
+                <ol class="breadcrumb">
+                    <li><a href="${pageContext.request.contextPath}/admin/student">学生列表</a></li>
+                    <li><a href="${pageContext.request.contextPath}/admin/student/show?sid=${student.sid}">学生详情</a></li>
+                    <li class="active">学生统计信息</li>
+                </ol>
+                <jsp:include page="student-info-table.jsp"/>
+            </div>
+
+
+            <div class="bs-callout bs-callout-info">
+                <row>
+                    <div id="stu-score-trend-chart" style="height: 400px">
+
+                    </div>
+                </row>
+            </div>
+        </div>
+    </div>
+
+</div>
+<%@ include file="../buttom.jsp" %>
+
+<script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/course/eval-process-bar.js"></script>
+<script type="text/javascript">
+
+
+    function fillStuScoreTrendChart(teaVO) {
+        var batchScoreList = teaVO.batchScoreList;
+        if (batchScoreList) {
+            var stuScoreTrendChart = echarts.init(document.getElementById('stu-score-trend-chart'), echartTheme);
+            var batchNames = [];
+            var teaStuScores = [];
+            var teaStuAvg = [];    //全局教师平均得分
+            var bs;
+            $.each(batchScoreList, function (i) {
+                batchNames.push(this.batchName);
+                teaStuScores.push(this.teaStuAvgScore);
+                teaStuAvg.push(this.teaStuAvg);
+            });
+
+            /*debug
+             batchNames=['2015','2016','2017','2018'];
+             stuScores = [65,50,90,86];
+             teaScores = [78,95,83,78];
+             */
+            var option = {
+                title: {
+                    text: '学生评分趋势图',
+                    left: 'center'
+                },
+                tooltip: {
+                    trigger: 'axis'
+                },
+                legend: {
+                    data: ['学生评分', '学生平均'],
+                    left: 'right'
+                },
+                grid: {
+                    left: '3%',
+                    right: '4%',
+                    bottom: '3%',
+                    containLabel: true
+                },
+                xAxis: [
+                    {
+                        type: 'category',
+                        boundaryGap: false,
+                        data: batchNames
+                    }
+                ],
+                yAxis: [
+                    {
+                        type: 'value',
+                        min: 'dataMin',
+                        max: 100
+                    }
+                ],
+                series: [
+                    {
+                        name: '学生评分',
+                        type: 'line',
+                        label: {
+                            normal: {
+                                show: true,
+                                position: 'top'
+                            }
+                        },
+                        lineStyle: {
+                            normal: {
+                                color: "red",
+                                width: 3,
+                            }
+                        },
+                        data: teaStuScores
+                    },
+                    {
+                        name: '学生平均',
+                        type: 'line',
+                        lineStyle: {
+                            normal: {
+                                color: "red",
+                                width: 1,
+                                type: "dashed"
+                            }
+                        },
+                        data: teaStuAvg
+                    }
+                ]
+            };
+            stuScoreTrendChart.setOption(option);
+
+        } else {
+            showGlobalNotification("没有信息需要展示");
+        }
+    }
+
+
+    $(function () {
+
+        var sid = $("#sid").val();
+
+        $.get("../student/vo-info", {sid: sid}, function (data) {
+            if (data.success) {
+                var stuVO = data.item;
+                fillStuScoreTrendChart(stuVO);
+
+            } else {
+                showGlobalNotification(data.msg);
+            }
+        });
+        $('[data-toggle="tooltip"]').tooltip();
+    });
+</script>
+<script src="${pageContext.request.contextPath}/js/echarts/echarts.common.min.js"></script>
+<script src="${pageContext.request.contextPath}/js/echarts/macarons.js"></script>
+
+</body>
+</html>
+

+ 212 - 0
WebRoot/WEB-INF/jsp/teaEval/showTeaEval.jsp

@@ -0,0 +1,212 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>评教指标显示|${evalTable.title}</title>
+<style type="text/css">
+		.quest {font-size: medium;margin-top: 20px}
+		.questArea {margin-top: 10px;padding-left: 50px}
+		.nav-left {position: fixed;width: 60px;height: 60px}
+	</style>
+</head>
+
+<body>
+	<div class="container-fluid">
+		<%@ include file="../head.jsp"%>
+		<div class="row" style="margin-top: 70px">
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10">
+				<div style="text-align: center;margin-top: 100px">
+					<h2>${evalTable.title }</h2>
+					<h3>${course.name }</h3>
+					<h3>${course.teacher.name }</h3>
+				</div>
+				<div class="row">
+					<!--左侧的导航条 -->
+					<div class="col-xs-1">
+						<ul class="nav nav-pills nav-stacked nav-left" role="tablist"
+							id="nav">
+							<li role="presentation" class="pre active"><a href="#part1">评教须知</a></li>
+							<li role="presentation" class="pre"><a href="#part2">表单</a></li>
+							<li role="presentation" class="pre"><a href="#part3">表项</a></li>
+						</ul>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<div class="col-xs-11">
+					<hr>
+						<table class="table table-hover table-striped table-bordered table-condensed">
+								<tr class="warning">
+									<td>学院</td>
+									<td>学期</td>
+									<td>批次</td>
+									<td>开始日期</td>
+									<td>截止日期</td>
+								</tr>
+									<tr>
+										<td>${course.department }</td>
+										<td>${course.season }</td>
+										<td>${batches.name }</td>
+										<td><fm:formatDate value="${batches.beginDate}" pattern="yyyy-MM-dd"/></td>
+										<td><fm:formatDate value="${batches.endDate }" pattern="yyyy-MM-dd"/></td>
+									</tr>
+						</table>
+						<hr>
+						<form
+							action="${pageContext.request.contextPath}/admin/eval/save/${type}"
+							method="post">
+							<input type="hidden" name="eid" value="${evalTable.id}">
+							<input type="hidden" name="cid" value="${ course.cid}">
+							<input type="hidden" name="cno" value="${ course.cno}">
+							<input type="hidden" name="sid" value="${sessionScope.student.sid}">
+							<input type="hidden" name="sum" id="sum1" value="">
+							<input type="hidden" name="level" id="level1" value="">
+							<!--评教须知: -->
+							<div class="panel panel-primary" id="part1">
+								<div class="panel-heading">
+									<h3 class="panel-title">评教须知:</h3>
+								</div>
+								<div class="panel-body">${evalTable.note}</div>
+							</div>
+
+							<div class="panel panel-primary" id="part2">
+								<div class="panel-heading">
+									<h3 class="panel-title">请如实填写表单信息</h3>
+								</div>
+								<div class="panel-body">
+									<table class="table table-striped table-hover table-bordered">
+
+										<c:forEach items="${evalTable.itemList}" var="item"
+											varStatus="s" >
+											<tr>
+												<td style="width: 100px;">${item.context}:</td>
+												<td><input type="text" class="form-control" name="itemList[${s.index}].ans"></td>
+											</tr>
+
+										</c:forEach>
+									</table>
+								</div>
+							</div>
+
+
+							<!-- 打分表和评价 -->
+							<div class="panel panel-primary" id="part3">
+								<div class="panel-heading">
+									<h3 class="panel-title">打分表和评价</h3>
+								</div>
+								<div class="panel-body">
+									<table class="table table-striped table-hover table-bordered">
+										<tr>
+											<td>序号</td>
+											<td>评价项目</td>
+											<td>评价等级及参考分数(A B C D)</td>
+											<td>得分</td>
+										</tr>
+										<c:forEach items="${evalTable.tableItemList}" var="item"
+											varStatus="s">
+											<tr>
+												<td>${s.count}</td>
+												<td>${item.context}</td>
+												<td>${item.level}</td>
+												<td><input type="number" class="form-control score"
+													required="required" value="0" name="tableItemList[${s.index}].ans"></td>
+											</tr>
+
+										</c:forEach>
+										<tr class="warning">
+											<td>评价级别</td>
+											<td >
+												<div class="progress">
+													<div
+														class="progress-bar progress-bar-danger progress-bar-striped active" 
+														role="progressbar" aria-valuenow="20" aria-valuemin="0"
+														aria-valuemax="100" style="min-width:10%;width: 0%" id="level">
+														0分
+													</div>
+												</div>
+											</td>
+											<td>总分</td>
+											<td id="sum">0分</td>
+										</tr>
+									</table>
+									<c:forEach items="${evalTable.questionList}" var="que"
+										varStatus="s">
+
+										<div class="quest">
+											<code>${s.count}.</code>
+											${que.context }
+										</div>
+										<div class="questArea">
+											<textarea class="form-control"></textarea>
+										</div>
+									</c:forEach>
+									
+									<div style="text-align: center;margin-top: 100px;">
+										<c:if test="${type=='student'}">
+											<input class="btn btn-info btn-lg btn-block" onclick="return confirm('一旦提交,不可修改,确认要提交');"
+												type="submit" value="提交评价" >
+										</c:if>
+										
+									</div>
+								</div>
+
+							</div>
+
+						</form>
+					</div>
+				</div>
+				<!-- 第一行结束 -->
+			</div>
+		</div>
+
+	</div>
+	<script type="text/javascript">
+		$(function() {
+			$(".score").bind('change click ready',function() {
+				var sum = 0;
+				$.each($(".score"), function() {
+					sum += parseInt($(this).val());
+				});
+				var lev;
+				if(sum<60){
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-danger");
+					lev = '差';
+				}else if(sum<75){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-warning");
+					lev = '一般';
+					
+				}else if(sum<90){
+					$("#level").removeClass("progress-bar-danger")
+					.removeClass("progress-bar-warning")
+					.removeClass("progress-bar-success")
+					.addClass("progress-bar-info");
+					lev = '良好';
+					
+				}else{
+					$("#level").removeClass("progress-bar-warning")
+					.removeClass("progress-bar-info")
+					.removeClass("progress-bar-danger")
+					.addClass("progress-bar-success");
+					lev = '优秀';
+					
+				}
+				$("#level").css("width",sum+"%");
+				$("#level").html(sum+"分   "+lev);
+				$("#sum").html(sum+"分   "+lev);
+				$("#sum1").val(sum);
+				$("#level1").val(lev);
+			});
+		});
+	</script>
+	<%@ include file="../buttom.jsp"%>
+</body>
+</html>

+ 99 - 0
WebRoot/WEB-INF/jsp/teaEval/teaEval.jsp

@@ -0,0 +1,99 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+</style>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+<title>我的课程组</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		    <%@ include file="../head.jsp"%>
+        </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+
+				<div class="panel panel-default">
+					<div class="panel-heading">我的课程组 | ${batches.name}</div>
+
+					<div class="panel-body">
+						<table class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+									<td>课程名</td>
+									<td>教师名</td>
+									<td>学院</td>
+									<td>学期</td>
+									<td>学生数</td>
+									<td>合班</td>
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${courseList}" var="c">
+									<tr>
+
+										<td>${c.name }</td>
+										<td>${c.teacher.name }</td>
+										<td>${c.department }</td>
+										<td>${c.season }</td>
+										<td>${c.stuNumber }</td>
+										<td>${c.combine }</td>
+										<c:if test="${c.isEvaled=='false'}">
+											<td><a target="_blank" href="${pageContext.request.contextPath}/admin/teaEval/eval?cid=${c.cid}&cno=${c.cno}"
+											class="btn btn-danger"><span
+												class=" glyphicon glyphicon-edit"></span>&nbsp;&nbsp;评价</a></td>
+										</c:if>
+										<c:if test="${c.isEvaled=='true'}">
+											<td><button  class="btn btn-default" disabled="disabled"><span
+												class=" glyphicon glyphicon-ok"></span>已评价</button></td>
+										</c:if>
+									</tr>
+								</c:forEach>
+
+							</tbody>
+						</table>
+                        <div class="form-group error-message-container">
+                            <div class="col-sm-8 col-sm-offset-2">
+                                <div class="alert alert-danger alert-dismissible" role="alert">
+                                    <button type="button" class="close" data-dismiss="alert">
+                                        <span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+                                    </button>
+                                    <span class="error-message">${msg}</span>
+                                </div>
+                            </div>
+                        </div>
+
+					</div>
+
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+
+	<script>
+		$(function(){
+			showErrorMessage();
+		});
+	</script>
+</body>
+</html>
+

+ 102 - 0
WebRoot/WEB-INF/jsp/teaEval/teaStuEval.jsp

@@ -0,0 +1,102 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<style type="text/css">
+.no1 {
+	margin-top: 30px;
+}
+</style>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"></link>
+<title>我的学生</title>
+</head>
+
+<body>
+	<div class="container-fluid">
+        <div class="row">
+		    <%@ include file="../head.jsp"%>
+        </div>
+		<div class="row " >
+			<div class="col-sm-2">
+				<%@ include file="../left.jsp"%>
+			</div>
+			<div class="col-sm-10 ">
+
+				<div class="panel panel-default">
+					<div class="panel-heading">我的学生|${batches.name}</div>
+
+					<div class="panel-body">
+						<table
+							class="table table-hover table-striped table-bordered table-condensed">
+							<thead>
+								<tr class="info">
+									<td>课程名</td>
+									<td>教师名</td>
+									<td>学院</td>
+									<td>学期</td>
+									<td>学生数</td>
+									<td>合班</td>
+									<td>操作</td>
+								</tr>
+							</thead>
+							<tbody>
+								<c:forEach items="${courseList}" var="c">
+									<tr>
+										<td>${c.name }</td>
+										<td>${c.teacher.name }</td>
+										<td>${c.department }</td>
+										<td>${c.season }</td>
+										<td>${c.stuNumber }</td>
+										<td>${c.combine }</td>
+										<td><a
+											href="${pageContext.request.contextPath}/admin/teaStuEval/show?cid=${c.cid}&cno=${c.cno}"
+											class="btn btn-primary" icon="zoom-in">查看学生</a></td>
+									</tr>
+								</c:forEach>
+
+							</tbody>
+						</table>
+
+						<!-- 如果选择了课程 -->
+						<c:if test="${course != null }">
+							<%@include file="teaStuEval_showStudents.jsp" %>
+						</c:if>
+
+                        <div class="form-group error-message-container">
+                            <div class="col-sm-8 col-sm-offset-2">
+                                <div class="alert alert-danger alert-dismissible" role="alert">
+                                    <button type="button" class="close" data-dismiss="alert">
+                                        <span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+                                    </button>
+                                    <span class="error-message">${msg}</span>
+                                </div>
+                            </div>
+                        </div>
+
+					</div>
+
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.nodefault.js"></script>
+	<script>
+		$(function(){
+			showErrorMessage();
+            autoAddIcon();
+            var options = $.extend(true,{},dataTableDefaultOptions);
+            options.order = {};
+            $('table').has("thead").dataTable(options);
+		});
+	</script>
+</body>
+</html>
+

+ 56 - 0
WebRoot/WEB-INF/jsp/teaEval/teaStuEval_showStudents.jsp

@@ -0,0 +1,56 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<h2 class="page-header">${course.name}
+	<small>${course.combine}</small>
+</h2>
+<table
+	class="table table-hover table-striped table-bordered table-condensed">
+	<thead>
+		<tr class="info">
+			<td>学号</td>
+			<td>学生姓名</td>
+			<td>性别</td>
+			<td>操作</td>
+			<td>学号</td>
+			<td>学生姓名</td>
+			<td>性别</td>
+			<td>操作</td>
+		</tr>
+	</thead>
+	<tbody>
+		<c:forEach items="${studentList}" var="stu" varStatus="s">
+			<c:if test="${s.index%2==0 }">
+				<tr>
+			</c:if>
+			<td>${stu.sid }</td>
+			<td>${stu.name }</td>
+			<td>${stu.sex }</td>
+			<c:if test="${stu.isEvaled=='false'}">
+				<td><a icon="edit" target="_blank"
+				href="${pageContext.request.contextPath}/admin/teaStuEval/eval?cid=${course.cid}&cno=${course.cno}&sid=${stu.sid}"
+				class="btn btn-danger">去评价</a></td>
+			</c:if>
+			<c:if test="${stu.isEvaled=='true'}">
+				<td><button class="btn btn-default" disabled="disabled">
+						<span class=" glyphicon glyphicon-ok"></span>已评价
+					</button></td>
+			</c:if>
+			
+			<!-- 
+				<c:if test="${c.isEvaled=='true'}">
+				disabled="disabled"-->
+
+			<!-- 
+				</c:if>
+				-->
+			<c:if test="${s.index%2!=0 }">
+				</tr>
+			</c:if>
+
+
+		</c:forEach>
+
+
+
+	</tbody>
+</table>

+ 115 - 0
WebRoot/WEB-INF/jsp/teacher/addteacher.jsp

@@ -0,0 +1,115 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="../header.jspf" %>
+	<title>添加教师</title>
+  </head>
+  
+  <body>
+    	<div class="container-fluid">
+    		<div class="row">
+    			<%@ include file="../head.jsp" %>
+    		</div>
+    		<div class="row" style="margin-top: 70px">
+    				<!--左侧的导航条 -->
+					<div class="col-xs-2">
+						<%@include file="../left.jsp"%>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<!--右侧的内容 -->
+					<div class="col-xs-10">
+						<!-- 面板开始 -->
+						<div class="panel panel-danger">
+						  <div class="panel-heading">
+						    <h1 class="panel-title" style="font-size: 25px">添加教师  Add Teacher</h1>
+						  </div>
+						  <div class="panel-body">
+						  	 <form action="${pageContext.request.contextPath }/admin/teacher/teacherAction!save" class="form-horizontal" role="form" id="form1" method="post">
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教师邮箱</label>
+										<div class="col-xs-10">
+											<input type="email" class="form-control " name="teacher.email" id="email" required  >
+										</div>
+									</div>
+									
+									
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="teacher.password" id="password" required>
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">确认输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="password2" id="password2" required>
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">姓名</label>
+										<div class="col-xs-10">
+											<input type="text" class="form-control  " name="teacher.name" id="username"	required>
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教职工号</label>
+										<div class="col-xs-10">
+											<input type="number" class="form-control  " name="teacher.teacherId" id="teacherId"	required>
+											
+										</div>
+									</div>
+									<div class="form-group" >
+											<label  class="col-xs-2 control-label">推荐课程</label>
+											<div class="col-xs-2">
+												<input type="radio" name="teacher.recommand" value="false" checked="checked">不推荐<br>
+												
+												<input type="radio" name="teacher.recommand" value="true">推荐
+											</div>
+									</div>
+									
+									<div>
+										<div class="form-group">    
+											 <div class="col-xs-6 col-xs-offset-4">
+												<button type="submit" class="btn btn-primary  btn-lg ">保存教师</button>																			 
+											 </div>
+										</div>
+									</div>
+							</form>
+						  </div><!-- panel-body -->
+						</div><!-- panel panel-default -->
+						<!-- 面板结束 -->
+					</div>
+					<!--右侧的内容 -->
+    		</div>
+    		<%@ include file="../buttom.jsp" %>
+    	</div>
+    	<script src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    	<script src="${pageContext.request.contextPath}/js/jquery.metadata.js"></script>
+    	
+		<script src="${pageContext.request.contextPath}/js/messages_zh.js"></script>
+    	<script type="text/javascript">
+    		$(function(){
+    			$("#teacher").css("margin-right","-30px").css("font-size"," 25px");
+    		});
+    		$(function() {  
+    			$("#form1").validate({
+    				rules:{
+    					'teacher.password': {
+    						required:true,
+    						minlength:5
+    					},
+    					password2: {
+    						required:true,
+    						minlength:5,
+    						equalTo:"#password"
+    					}
+    				}
+	    			
+    			});  
+    		});
+    	</script>
+    	
+  </body>
+</html>

+ 112 - 0
WebRoot/WEB-INF/jsp/teacher/editTeacher.jsp

@@ -0,0 +1,112 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="../header.jspf" %>
+	<title>修改教师</title>
+	
+  </head>
+  
+  <body>
+    	<div class="container-fluid">
+    		<div class="row">
+    			<%@ include file="../head.jsp" %>
+    		</div>
+    		<div class="row" style="margin-top: 70px">
+    				<!--左侧的导航条 -->
+					<div class="col-xs-2">
+						<%@include file="../left.jsp"%>
+					</div>
+					<!--左侧的导航条 -->
+					
+					<!--右侧的内容 -->
+					<div class="col-xs-10">
+						<!-- 面板开始 -->
+						<div class="panel panel-danger">
+						  <div class="panel-heading">
+						    <h1 class="panel-title" style="font-size: 25px">修改管理员  Edit Admin</h1>
+						  </div>
+						  <div class="panel-body">
+						  	 <form action="${pageContext.request.contextPath }/admin/teacher/teacherAction!update" class="form-horizontal" role="form" id="form1" method="post">
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教师邮箱</label>
+										<div class="col-xs-10">
+											<input type="email" class="form-control " name="teacher.email" id="email" required value="${teacher.email }" >
+											<input type="hidden" name="teacher.id" value="${teacher.id }">
+										</div>
+									</div>
+									
+									
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="teacher.password" id="password" required value="${teacher.password }">
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">确认输入密码</label>
+										<div class="col-xs-10">
+											<input type="password" class="form-control  " name="password2" id="password2" required value="${teacher.password }">
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">姓名</label>
+										<div class="col-xs-10">
+											<input type="text" class="form-control  " name="teacher.name" id="username"	required value="${teacher.name }">
+										</div>
+									</div>
+									<div class="form-group">
+										<label   class="col-xs-2 control-label">教职工号</label>
+										<div class="col-xs-10">
+											<input type="number" class="form-control  " name="teacher.teacherId" id="teacherId"	required value="${teacher.teacherId }">
+											
+										</div>
+									</div>
+									<div class="form-group" >
+											<label  class="col-xs-2 control-label">推荐课程</label>
+											<div class="col-xs-2">
+												<s:radio list="%{#{'false':'不推荐','true':'推荐'} }" name="teacher.recommand"></s:radio>
+											</div>
+										</div>
+									<div>
+										<div class="form-group">    
+											 <div class="col-xs-6 col-xs-offset-4">
+												<button type="submit" class="btn btn-primary  btn-lg ">保存教师</button>																			 
+											 </div>
+										</div>
+									</div>
+							</form>
+						  </div><!-- panel-body -->
+						</div><!-- panel panel-default -->
+						<!-- 面板结束 -->
+					</div>
+					<!--右侧的内容 -->
+    		</div>
+    		<%@ include file="../buttom.jsp" %>
+    	</div>
+    	<script src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+		<script src="${pageContext.request.contextPath}/js/messages_zh.js"></script>
+    	<script type="text/javascript">
+    	$(function(){
+			$("#teacher").css("margin-right","-30px").css("font-size"," 25px");
+		});
+		$(function() {  
+			$("#form1").validate({
+				rules:{
+					'teacher.password': {
+						required:true,
+						minlength:5
+					},
+					password2: {
+						required:true,
+						minlength:5,
+						equalTo:"#password"
+					}
+				}
+    			
+			});  
+		});
+    	</script>
+    	
+  </body>
+</html>

+ 119 - 0
WebRoot/WEB-INF/jsp/teacher/showTeacher.jsp

@@ -0,0 +1,119 @@
+<%@page import="java.text.DateFormat"%>
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>教师详情</title>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+
+
+<style type="text/css">
+.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td
+	{
+	border-top: 0px solid #ddd;
+}
+</style>
+
+</head>
+
+<body>
+	<div class="container-fluid">
+		<div class="row">
+			<%@ include file="../head.jsp"%>
+		</div>
+		<div class="row" >
+			<!--左侧的导航条 -->
+			<div class="col-sm-2">
+				<%@include file="../left.jsp"%>
+			</div>
+			<!--左侧的导航条 -->
+
+			<div class="col-sm-10">
+
+
+                <div class="panel panel-default">
+                    <div class="panel-heading">
+                       教师详情
+                    </div>
+                    <div class="panel-body">
+                        <ol class="breadcrumb">
+                            <li><a href="${pageContext.request.contextPath}/admin/teacher">教师列表</a></li>
+                            <li class="active">教师详情</li>
+                        </ol>
+                        <jsp:include page="teacher-info-table.jsp"/>
+
+                        <div class="bs-callout bs-callout-info">
+                            <c:set scope="request" var="userType" value="teacher"/>
+                            <jsp:include page="../model/seasonSelectForm.jsp"/>
+
+                        </div>
+                        <table class="table table-hover table-striped  table-condensed ">
+                            <thead>
+                            <tr class="info">
+                                <td>课程名</td>
+                                <td>课程号/课序号</td>
+                                <td>学期</td>
+                                <td>学生数</td>
+                                <td>平均评分(学生/教师/领导)</td>
+                                <td width="10%">合班</td>
+                                <!--
+                                <td>操作</td>
+                                 -->
+                                <td>操作</td>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            <c:forEach items="${courseList}" var="c">
+                                <tr>
+
+                                    <td><a href="${pageContext.request.contextPath}/admin/course/show/${c.cid}/${c.cno}">${c.name }</a></td>
+                                    <td>${c.cid }/${c.cno}</td>
+                                    <td>${c.season }</td>
+                                    <td>${c.stuNumber }</td>
+                                    <td><code>${c.stuEvalAvgScore}分</code>---<code>${c.teaEvalAvgScore}分</code>---<code>${c.leaEvalAvgScore}分</code></td>
+                                    <td>${c.combine }</td>
+                                    <!--
+										<td><a href="admin/edit/${admin.id }"
+											class="btn btn-info"><span
+												class=" glyphicon glyphicon-edit"></span>&nbsp;&nbsp;修改</a></td>
+										 -->
+                                    <td><a href="${pageContext.request.contextPath}/admin/course/show/${c.cid}/${c.cno}"
+                                           class="btn btn-danger" ><span
+                                            class=" glyphicon glyphicon-zoom-in"></span>查看课程详情</a></td>
+                                </tr>
+                            </c:forEach>
+
+                            </tbody>
+                        </table>
+                    </div>
+                    <!-- panel-body -->
+                </div>
+			</div>
+			<!-- 班级详情 -->
+
+		</div>
+		<!--右侧的内容 -->
+
+
+	</div>
+
+	<%@ include file="../buttom.jsp"%>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+
+
+	<script type="text/javascript">
+        $(function(){
+            autoSelect();
+            $("#season").change(function(){
+                $("#teacher-course-form").submit();
+            });
+        });
+    </script>
+
+</body>
+</html>

+ 22 - 0
WebRoot/WEB-INF/jsp/teacher/teacher-info-table.jsp

@@ -0,0 +1,22 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<table class="table table-hover ">
+    <tr class="info thead">
+        <td>教师名</td>
+        <td>教师号</td>
+        <td>学院</td>
+        <td>职称</td>
+        <td>平均评分(学生/教师)</td>
+        <td>操作</td>
+    </tr>
+    <tr>
+
+        <td>${teacher.name }</td>
+        <td>${teacher.id }</td>
+        <td>${teacher.department }</td>
+        <td>${teacher.title }</td>
+        <td><code>${teacher.stuAvgScore}分</code>--<code>${teacher.teaAvgScore}分</code></td>
+        <td><a class="btn btn-danger" icon="zoom-in" target="_blank"
+               href="${pageContext.request.contextPath}/admin/statistics/teacher?tid=${teacher.id}">查看教师统计</a></td>
+    </tr>
+</table>

+ 140 - 0
WebRoot/WEB-INF/jsp/teacher/teacher.jsp

@@ -0,0 +1,140 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+<%@ include file="../header.jspf"%>
+<title>教师列表</title>
+<link rel="stylesheet"
+	href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"></link>
+
+</head>
+
+<body>
+	<div class="container-fluid">
+		<div class="row">
+			<%@ include file="../head.jsp"%>
+		</div>
+		<div class="row" >
+			<!--左侧的导航条 -->
+			<div class="col-sm-2">
+				<%@include file="../left.jsp"%>
+			</div>
+			<!--左侧的导航条 -->
+
+			<!--右侧的内容 -->
+			<div class="col-sm-10">
+				<!-- 面板开始 -->
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						教师列表
+					</div>
+					<div class="panel-body">
+						<div class="bs-callout bs-callout-info">
+							<form class="form-inline" method="post" action="${pageContext.request.contextPath}/admin/teacher">
+								<div class="form-group">
+									<label for="department">学院:</label>
+									<select  class="form-control" id="department" name="did" >
+										<option value="">不限</option>
+										<c:forEach items="${ departmentList}" var="dep" >
+											<c:if test="${dep.id != condition.did}">
+												<option value="${dep.id}">${dep.name }</option>
+											</c:if>
+											<c:if test="${dep.id == condition.did}">
+												<option value="${dep.id}" selected="selected">${dep.name }</option>
+											</c:if>
+										</c:forEach>
+									</select>
+									
+								</div>
+								<div class="form-group">
+									<label  >教师姓名:</label> <input type="text"
+										class="form-control" id="name" name="tname">
+								</div>
+								<div class="form-group">
+									<label  >教师号:</label> <input type="number"
+										class="form-control" id="sid" name="tid">
+								</div>
+
+								<button type="submit" class="btn btn-primary btn-lg">
+									<span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索
+								</button>
+							</form>
+
+
+						</div>
+						<table
+							class="table table-hover table-striped table-bordered table-condensed">
+							
+							<thead>
+								<tr class="info">
+									<td>姓名</td>
+									<td>教师号</td>
+									<td>教师邮箱</td>
+									<%--<td>证件号码</td>--%>
+									<td>性别</td>
+									<td>院系</td>
+									<td>职称</td>
+                                    <td>操作</td>
+									<!-- 
+									<td>操作</td>
+									 
+									<td>操作</td>
+									-->
+								</tr>
+							</thead>
+							<tbody>
+								
+								<c:forEach items="${teacherList}" var="tea">
+									<tr>
+										<td><a
+											href="${pageContext.request.contextPath}/admin/teacher/show?tid=${tea.id}">${tea.name}</a></td>
+
+										<td>${tea.id}</td>
+										<td>${tea.email }</td>
+										<%--<td>${tea.idNumber }</td>--%>
+										<td>${tea.sex }</td>
+										<td>${tea.department }</td>
+										<td>${tea.title }</td>
+										<td><a href="${pageContext.request.contextPath}/admin/teacher/show?tid=${tea.id}"
+											class="btn btn-sm btn-danger" ><span
+												class=" glyphicon glyphicon-zoom-in"></span>查看评教详情</a></td>
+										<!--
+										<td><a href="teacherAction!edit?id=${tea.id }"
+											class="btn btn-info"><span
+												class=" glyphicon glyphicon-edit"></span>&nbsp;&nbsp;修改</a></td>
+										<td><a href="teacherAction!delete?id=${tea.id}"
+											class="btn btn-danger" onclick="return confirm('确认要删除吗?')"><span
+												class=" glyphicon  glyphicon-trash"></span>&nbsp;&nbsp;删除</a></td>
+										 -->
+									</tr>
+								</c:forEach>
+								
+							</tbody>
+
+						</table>
+
+					</div>
+					<!-- panel-body -->
+				</div>
+				<!-- panel panel-default -->
+				<!-- 面板结束 -->
+			</div>
+			<!--右侧的内容 -->
+		</div>
+		<%@ include file="../buttom.jsp"%>
+	</div>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+	<script
+		src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.nodefault.js"></script>
+	<script type="text/javascript">
+	    $(function(){
+            $('table').has("thead").dataTable($.extend(true,dataTableDefaultOptions,{
+                language:{
+                    zeroRecords:'<h2>请从上面搜索栏中选择要查看的数据</h2>'
+                }
+            }));
+        });
+	</script>
+</body>
+</html>

+ 195 - 0
WebRoot/WEB-INF/jsp/teacher/teacherStatistics.jsp

@@ -0,0 +1,195 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+<head>
+    <%@ include file="../header.jspf"%>
+
+    <title>教师统计详情</title>
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <%@ include file="../head.jsp"%>
+    </div>
+    <div class="row " >
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp"%>
+        </div>
+        <div class="col-sm-10 ">
+
+            <input type="hidden" name="tid" id="tid" value="${teacher.id}">
+            <div class="bs-callout bs-callout-danger">
+                <ol class="breadcrumb">
+                    <li><a href="${pageContext.request.contextPath}/admin/teacher">教师列表</a></li>
+                    <li><a href="${pageContext.request.contextPath}/admin/teacher/show?tid=${teacher.id}">教师详情</a></li>
+                    <li class="active">教师统计信息</li>
+                </ol>
+                    <jsp:include page="teacher-info-table.jsp"/>
+            </div>
+
+
+            <div class="bs-callout bs-callout-info">
+                <row>
+                    <div id="tea-score-trend-chart" style="height: 400px">
+
+                    </div>
+                </row>
+             </div>
+        </div>
+    </div>
+
+</div>
+<%@ include file="../buttom.jsp"%>
+
+<script type="text/javascript" src="${pageContext.request.contextPath}/js/tqe/course/eval-process-bar.js"></script>
+<script type="text/javascript">
+
+
+
+    function fillTeaScoreTrendChart(teaVO) {
+        var batchScoreList = teaVO.batchScoreList;
+        if(batchScoreList){
+            var teaScoreTrendChart = echarts.init(document.getElementById('tea-score-trend-chart'),echartTheme);
+            var batchNames = [];
+            var stuScores = [];
+            var teaScores = [];
+            var stuAvg = [];    //全局学生平均得分
+            var teaAvg = [];    //全局教师平均得分
+            var bs ;
+            $.each(batchScoreList,function(i){
+                batchNames.push(this.batchName);
+                stuScores.push(this.stuAvgScore);
+                teaScores.push(this.teaAvgScore);
+                stuAvg.push(this.stuAvg);
+                teaAvg.push(this.teaAvg);
+            });
+
+            /*debug
+             batchNames=['2015','2016','2017','2018'];
+             stuScores = [65,50,90,86];
+             teaScores = [78,95,83,78];
+             */
+            var option = {
+                title: {
+                    text: '教师评分趋势图',
+                    left: 'center'
+                },
+                tooltip : {
+                    trigger: 'axis'
+                },
+                legend: {
+                    data:['学生评分','学生平均','教师评分','教师平均'],
+                    left: 'right'
+                },
+                grid: {
+                    left: '3%',
+                    right: '4%',
+                    bottom: '3%',
+                    containLabel: true
+                },
+                xAxis : [
+                    {
+                        type : 'category',
+                        boundaryGap : false,
+                        data : batchNames
+                    }
+                ],
+                yAxis : [
+                    {
+                        type : 'value',
+                        min : 'dataMin',
+                        max : 100
+                    }
+                ],
+                series : [
+                    {
+                        name:'学生评分',
+                        type:'line',
+                        label: {
+                            normal: {
+                                show: true,
+                                position: 'top'
+                            }
+                        },
+                        lineStyle:{
+                            normal:{
+                                color:"red",
+                                width:3,
+                            }
+                        },
+                        data:stuScores
+                    },
+                    {
+                        name:'学生平均',
+                        type:'line',
+                        lineStyle:{
+                            normal:{
+                                color:"red",
+                                width:1,
+                                type:"dashed"
+                            }
+                        },
+                        data:stuAvg
+                    },
+                    {
+                        name:'教师评分',
+                        type:'line',
+                        label: {
+                            normal: {
+                                show: true,
+                                position: 'top'
+                            }
+                        },
+                        lineStyle:{
+                            normal:{
+                                color:"blue",
+                                width:3,
+                            }
+                        },
+                        data:teaScores
+                    },
+                    {
+                        name:'教师平均',
+                        type:'line',
+                        lineStyle:{
+                            normal:{
+                                color:"blue",
+                                type:"dashed",
+                                width:1,
+                            }
+                        },
+                        data:teaAvg
+                    }
+                ]
+            };
+            teaScoreTrendChart.setOption(option);
+
+        }else{
+            showGlobalNotification("没有信息需要展示");
+        }
+    }
+
+
+    $(function(){
+
+        var tid= $("#tid").val();
+
+        $.get("../teacher/vo-info",{tid:tid},function(data){
+            if(data.success){
+                var teaVO = data.item;
+                fillTeaScoreTrendChart(teaVO);
+
+            }else{
+                showGlobalNotification(data.msg);
+            }
+        });
+        $('[data-toggle="tooltip"]').tooltip();
+    });
+</script>
+<script src="${pageContext.request.contextPath}/js/echarts/echarts.common.min.js"></script>
+<script src="${pageContext.request.contextPath}/js/echarts/macarons.js"></script>
+
+</body>
+</html>
+

+ 46 - 0
WebRoot/WEB-INF/jsp/template/add-template.jsp

@@ -0,0 +1,46 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
+<div class="container-fluid">
+    <div class="row">
+        <form action="${pageContext.request.contextPath }/admin/template/save" class="form-horizontal" role="form"
+              id="add-template-form" method="post">
+
+            <input name="type" type="hidden" value="${template.type}"/>
+            <c:forEach items="${template.columns}" var="column">
+                <div class="form-group">
+                    <label  class="col-xs-2 control-label">${column}</label>
+                    <div class="col-xs-9">
+                        <textarea rows="3" type="text" class="form-control"
+                                  name="values" required="required"></textarea>
+                    </div>
+                </div>
+            </c:forEach>
+
+
+            <div class="form-group">
+                <div class="col-xs-4 col-xs-offset-3">
+                    <a type="button" class="btn btn-default btn-lg model-close" data-dismiss="modal" icon="remove">关闭</a>
+                </div>
+
+                <div class="col-xs-4 ">
+                    <button type="submit" class="btn btn-primary  btn-lg " icon="saved">保存${template.name}</button>
+                </div>
+
+            </div>
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript">
+    $(function() {
+        $("#add-template-form").validate({
+            submitHandler:function(){
+                ajaxSubmitForm($("#add-template-form"),{
+                    reload:true
+                });
+            }
+        });
+    });
+</script>
+
+

+ 46 - 0
WebRoot/WEB-INF/jsp/template/edit-template.jsp

@@ -0,0 +1,46 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
+<div class="container-fluid">
+    <div class="row">
+        <form action="${pageContext.request.contextPath }/admin/template/update" class="form-horizontal" role="form"
+              id="edit-template-form" method="post">
+
+            <input name="itemId" id="edit-item-id" type="hidden" value=""/>
+            <c:forEach items="${template.columns}" var="column">
+                <div class="form-group">
+                    <label  class="col-xs-2 control-label">${column}</label>
+                    <div class="col-xs-9">
+                        <textarea rows="3" type="text" class="form-control"
+                                  name="values" required="required"></textarea>
+                    </div>
+                </div>
+            </c:forEach>
+
+
+            <div class="form-group">
+                <div class="col-xs-4 col-xs-offset-3">
+                    <a type="button" class="btn btn-default btn-lg model-close" data-dismiss="modal" icon="remove">关闭</a>
+                </div>
+
+                <div class="col-xs-4 ">
+                    <button type="submit" class="btn btn-primary  btn-lg " icon="saved">保存${template.name}</button>
+                </div>
+
+            </div>
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript">
+    $(function() {
+        $("#edit-template-form").validate({
+            submitHandler:function(){
+                ajaxSubmitForm($("#edit-template-form"),{
+                    reload:true
+                });
+            }
+        });
+    });
+</script>
+
+

+ 175 - 0
WebRoot/WEB-INF/jsp/template/template.jsp

@@ -0,0 +1,175 @@
+<%@ page language="java" pageEncoding="UTF-8" %>
+
+<html>
+<head>
+    <%@ include file="../header.jspf" %>
+    <style type="text/css">
+        .no1 {
+            margin-top: 30px;
+        }
+    </style>
+    <script
+            src="${pageContext.request.contextPath}/js/jquery.validate.min.js"></script>
+    <script
+            src="${pageContext.request.contextPath}/js/messages_zh.min.js"></script>
+    <link rel="stylesheet"
+          href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+    <title>模板列表</title>
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <%@ include file="../head.jsp" %>
+    </div>
+    <div class="row ">
+        <div class="col-sm-2">
+            <%@ include file="../left.jsp" %>
+        </div>
+        <div class="col-sm-10 ">
+
+            <div class="panel panel-default">
+                <div class="panel-heading">模板列表</div>
+                <div class="panel-body">
+                    <table class="table table-hover table-striped table-bordered table-condensed">
+                        <thead>
+                            <tr class="info">
+                                <td>模板名</td>
+                                <td>模板类型</td>
+                                <td>模板列名</td>
+                                <td>操作</td>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <c:forEach items="${templateList}" var="t">
+                                <tr>
+                                    <td><a href="${pageContext.request.contextPath}/admin/template?type=${t.type}">
+                                        ${t.name }</a>
+                                    </td>
+                                    <td>${t.type }</td>
+                                    <td>${t.columns }</td>
+                                    <td><a href="${pageContext.request.contextPath}/admin/template?type=${t.type}"
+                                           class="btn btn-info btn-sm"  icon="zoom-in">查看</a>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+
+            </div>
+
+            <c:if test="${template != null}">
+                <div class="panel panel-default">
+                    <div class="panel-heading">${template.name} ( ${template.type} )</div>
+                    <div class="panel-body">
+                        <table class="table table-hover table-striped table-bordered table-condensed">
+                            <thead>
+                            <tr class="info">
+                                <c:forEach items="${template.columns}" var="column">
+                                    <td>${column}</td>
+                                </c:forEach>
+                                <td>操作</td>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            <c:forEach items="${template.items}" var="item">
+                                <tr item-id="${item.id}">
+                                    <c:forEach items="${item.values}" var="value">
+                                        <td class="item-value">${value}</td>
+                                    </c:forEach>
+                                    <td><a data-toggle="modal" data-target="#edit-template-item"
+                                           class="btn btn-info btn-sm"  icon="edit">修改</a>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                            </tbody>
+                        </table>
+                        <div class="row">
+                            <div class="col-xs-6 col-xs-offset-5">
+                                <div class="no1">
+                                    <a class="btn btn-primary" icon="plus" data-toggle="modal"
+                                       data-target="#add-template-item">添加${template.name}</a>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                </div>
+            </c:if>
+        </div>
+    </div>
+</div>
+
+
+<!-- 添加模板Modal -->
+<div class="modal fade" id="add-template-item" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
+                        aria-hidden="true">&times;</span></button>
+                <h4 class="modal-title" id="add-admin-modal-title">添加${template.name}</h4>
+            </div>
+            <div class="modal-body">
+                <jsp:include page="add-template.jsp"/>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- 修改模板Modal -->
+<div class="modal fade" id="edit-template-item" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
+                        aria-hidden="true">&times;</span></button>
+                <h4 class="modal-title" id="edit-admin-modal-title">修改${template.name}</h4>
+            </div>
+            <div class="modal-body">
+                <jsp:include page="edit-template.jsp"/>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<%@ include file="../buttom.jsp" %>
+<script
+        src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+<script
+        src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+
+
+<script type="text/javascript">
+    $(function () {
+
+        $('#edit-template-item').on('show.bs.modal', function (event) {
+            var button = $(event.relatedTarget);
+            var itemId = button.parents('tr').attr('item-id');
+            if(itemId==null){
+                alert('未知的ItemId:'+itemId);
+            }
+            $("#edit-item-id").val(itemId);
+            var values=[];
+            $.each(button.parents('tr').find('.item-value'),function(){
+                values.push($(this).html());
+            });
+            if(values.length>0){
+                $.each($("#edit-template-form").find('textarea'),function(index){
+                    $(this).val(values[index]);
+                });
+            }else{
+                alert('没有找到要修改的记录');
+            }
+
+        });
+        autoAddIcon();
+
+    });
+
+</script>
+</body>
+</html>
+

+ 76 - 0
WebRoot/WEB-INF/jsp/test.jsp

@@ -0,0 +1,76 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+
+<html>
+  <head>
+	<%@ include file="header.jspf" %>
+      <link rel="stylesheet"
+            href="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.css"/>
+  </head>
+  
+  <body>
+    	<div class="container">
+    		<%@ include file="head.jsp" %>
+    		<div class="row" style="margin-top: 100px">
+                <table id="table1" class="table table-hover table-striped table-bordered table-condensed">
+
+                </table>
+    		</div>
+
+    	</div>
+    	<%@ include file="buttom.jsp" %>
+        <script
+                src="${pageContext.request.contextPath}/js/datatables/js/jquery.dataTables.min.js"></script>
+        <script
+                src="${pageContext.request.contextPath}/js/datatables/dataTables.bootstrap.js"></script>
+
+        <script type="text/javascript">
+            $(function(){
+                $.get("${pageContext.request.contextPath}/admin/template/getInfo",
+                        {type:"evaltable-note"},
+                        function(data){
+                            if(data.success){
+                                renderTable(data.item);
+                            }else{
+                                alert('error');
+                            }
+                        });
+            });
+
+            function renderTable(template){
+                var columns = template.columns;
+
+                var items = template.items;
+
+                var dataArr = [];
+                var columnArr = [];
+                for(var i=0;i<items.length;i++){
+                    if(items[i] && items[i].values ){
+                        var data = items[i].values;
+                        data.push(null);
+                        dataArr.push(data);
+                    }
+                }
+
+                for(var i=0;i<columns.length;i++){
+                    var d = {"title":""};
+                    d.title = columns[i];
+                    columnArr.push(d);
+                }
+                columnArr.push({title:'操作'});
+
+                var options = $.extend(true,{},dataTableDefaultOptions,{
+                    columns: columnArr,
+                    data:dataArr,
+                    columnDefs: [ {
+                        "targets": -1,
+                        "data": null,
+                        "defaultContent": "<button class='btn btn-primary'>插入</button>"
+                    } ]
+                });
+                log(options);
+
+                $("#table1").dataTable(options);
+            }
+        </script>
+  </body>
+</html>

BIN
WebRoot/WEB-INF/lib/activation.jar


BIN
WebRoot/WEB-INF/lib/antlr-2.7.6.jar


BIN
WebRoot/WEB-INF/lib/aopalliance-1.0.jar


BIN
WebRoot/WEB-INF/lib/aspectjweaver.jar


BIN
WebRoot/WEB-INF/lib/cglib-2.2.jar


BIN
WebRoot/WEB-INF/lib/classloader-leak-prevention-1.10.0.jar


BIN
WebRoot/WEB-INF/lib/commons-collections-3.1.jar


BIN
WebRoot/WEB-INF/lib/commons-fileupload-1.3.1.jar


BIN
WebRoot/WEB-INF/lib/commons-io-2.2.jar


BIN
WebRoot/WEB-INF/lib/commons-lang3-3.3.2.jar


BIN
WebRoot/WEB-INF/lib/commons-logging.jar


BIN
WebRoot/WEB-INF/lib/dom4j-1.6.1.jar


BIN
WebRoot/WEB-INF/lib/druid-1.0.5.jar


BIN
WebRoot/WEB-INF/lib/fastjson-1.1.32.jar


BIN
WebRoot/WEB-INF/lib/guava-18.0.jar


BIN
WebRoot/WEB-INF/lib/jackson-annotations-2.4.1.jar


BIN
WebRoot/WEB-INF/lib/jackson-core-2.4.4.jar


BIN
WebRoot/WEB-INF/lib/jackson-databind-2.4.1.jar


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott