Browse Source

新增了登录注册页面

苏楷涵 6 years ago
parent
commit
81d3e57777

+ 167 - 192
.idea/workspace.xml

@@ -30,90 +30,38 @@
       <file leaf-file-name="manage.html" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/resources/static/manage.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1152">
-              <caret line="48" column="12" lean-forward="false" selection-start-line="48" selection-start-column="12" selection-end-line="48" selection-end-column="12" />
+            <state relative-caret-position="144">
+              <caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="69" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="MyException.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/common/MyException.java">
+      <file leaf-file-name="login_register.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/login_register.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="336">
-              <caret line="16" column="7" lean-forward="false" selection-start-line="16" selection-start-column="7" selection-end-line="16" selection-end-column="7" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="ExceptionHandle.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionHandle.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="312">
-              <caret line="15" column="30" lean-forward="false" selection-start-line="15" selection-start-column="30" selection-end-line="15" selection-end-column="30" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="CourseService.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/service/CourseService.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="306">
-              <caret line="27" column="14" lean-forward="true" selection-start-line="27" selection-start-column="14" selection-end-line="27" selection-end-column="14" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="NodeBody.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/vo/NodeBody.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="480">
-              <caret line="22" column="1" lean-forward="false" selection-start-line="22" selection-start-column="1" selection-end-line="22" selection-end-column="1" />
+            <state relative-caret-position="48">
+              <caret line="2" column="23" lean-forward="true" selection-start-line="2" selection-start-column="23" selection-end-line="2" selection-end-column="23" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="CourseManagerApplication.java" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/CourseManagerApplication.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="168">
-              <caret line="7" column="6" lean-forward="true" selection-start-line="7" selection-start-column="6" selection-end-line="7" selection-end-column="6" />
-              <folding>
-                <element signature="imports" expanded="true" />
-                <element signature="e#482#483#0" expanded="true" />
-                <element signature="e#556#557#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="ExceptionEnum.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionEnum.java">
+      <file leaf-file-name="entrance.html" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/main/resources/static/entrance.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="456">
-              <caret line="21" column="35" lean-forward="false" selection-start-line="21" selection-start-column="35" selection-end-line="21" selection-end-column="35" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
+            <state relative-caret-position="216">
+              <caret line="9" column="27" lean-forward="true" selection-start-line="9" selection-start-column="27" selection-end-line="9" selection-end-column="27" />
+              <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="ExceptionResult.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionResult.java">
+      <file leaf-file-name="style.css" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/css/style.css">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="384">
-              <caret line="16" column="27" lean-forward="false" selection-start-line="16" selection-start-column="27" selection-end-line="16" selection-end-column="27" />
+            <state relative-caret-position="216">
+              <caret line="33" column="5" lean-forward="true" selection-start-line="33" selection-start-column="5" selection-end-line="33" selection-end-column="5" />
               <folding />
             </state>
           </provider>
@@ -122,19 +70,21 @@
       <file leaf-file-name="mainFunction.js" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/mainFunction.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="8040">
-              <caret line="335" column="42" lean-forward="false" selection-start-line="335" selection-start-column="42" selection-end-line="335" selection-end-column="42" />
+            <state relative-caret-position="208">
+              <caret line="347" column="39" lean-forward="false" selection-start-line="347" selection-start-column="39" selection-end-line="347" selection-end-column="39" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="pom.xml" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/pom.xml">
+      <file leaf-file-name="customPlugin.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/customPlugin.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1248">
-              <caret line="52" column="20" lean-forward="false" selection-start-line="52" selection-start-column="20" selection-end-line="52" selection-end-column="20" />
-              <folding />
+            <state relative-caret-position="-216">
+              <caret line="36" column="39" lean-forward="false" selection-start-line="36" selection-start-column="39" selection-end-line="36" selection-end-column="39" />
+              <folding>
+                <element signature="n#!!doc" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -148,6 +98,7 @@
         <option value="JUnit4 Test Class" />
         <option value="Class" />
         <option value="Enum" />
+        <option value="HTML File" />
       </list>
     </option>
   </component>
@@ -196,13 +147,16 @@
         <option value="$PROJECT_DIR$/src/main/java/com/unow/web/CourseController.java" />
         <option value="$PROJECT_DIR$/src/main/resources/static/public/js/mainFunction.js" />
         <option value="$PROJECT_DIR$/pom.xml" />
-        <option value="$PROJECT_DIR$/src/main/resources/static/manage.html" />
         <option value="$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionPage.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/unow/common/MyException.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionResult.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionHandle.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/unow/common/ExceptionEnum.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/unow/service/CourseService.java" />
+        <option value="$PROJECT_DIR$/src/main/resources/static/public/css/style.css" />
+        <option value="$PROJECT_DIR$/src/main/resources/static/public/js/login_register.js" />
+        <option value="$PROJECT_DIR$/src/main/resources/static/manage.html" />
+        <option value="$PROJECT_DIR$/src/main/resources/static/entrance.html" />
       </list>
     </option>
   </component>
@@ -335,7 +289,7 @@
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="com" type="462c0819:PsiDirectoryNode" />
               <item name="unow" type="462c0819:PsiDirectoryNode" />
-              <item name="service" type="462c0819:PsiDirectoryNode" />
+              <item name="web" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
@@ -344,13 +298,71 @@
               <item name="main" type="462c0819:PsiDirectoryNode" />
               <item name="resources" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
+              <item name="course-manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="static" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
+              <item name="course-manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="static" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
+              <item name="course-manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="static" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
+              <item name="css" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
+              <item name="course-manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="static" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
+              <item name="js" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
+              <item name="course-manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="static" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
+              <item name="plugins" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="course-manager" type="b2602c69:ProjectViewProjectNode" />
+              <item name="course-manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="static" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
+              <item name="plugins" type="462c0819:PsiDirectoryNode" />
+              <item name="bootstrap-dialog" type="462c0819:PsiDirectoryNode" />
+            </path>
           </expand>
           <select />
         </subPane>
       </pane>
       <pane id="PackagesPane" />
-      <pane id="Scope" />
       <pane id="Scratches" />
+      <pane id="Scope" />
       <pane id="AndroidView" />
     </panes>
   </component>
@@ -378,6 +390,7 @@
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
     <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary" value="JUnit4" />
+    <property name="DefaultHtmlFileTemplate" value="HTML File" />
   </component>
   <component name="RecentsManager">
     <key name="CreateTestDialog.RecentsKey">
@@ -654,6 +667,9 @@
       <workItem from="1544662509153" duration="4212000" />
       <workItem from="1544717967019" duration="2078000" />
       <workItem from="1544747953537" duration="303000" />
+      <workItem from="1544978183989" duration="1034000" />
+      <workItem from="1545012692326" duration="941000" />
+      <workItem from="1545052860026" duration="3527000" />
     </task>
     <servers />
   </component>
@@ -690,10 +706,11 @@
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="30068000" />
+    <option name="totallyTimeSpent" value="35570000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="-9" y="-9" width="1938" height="1048" extended-state="6" />
+    <editor active="true" />
     <layout>
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -703,13 +720,13 @@
       <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32991362" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.47215497" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.47215497" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3292978" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.28671706" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.30183586" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="Problems" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
       <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32991362" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@@ -717,8 +734,8 @@
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
@@ -735,43 +752,15 @@
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
-      <option name="time" value="4" />
+      <option name="time" value="5" />
     </breakpoint-manager>
     <watches-manager />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="840">
-          <caret line="35" column="21" lean-forward="false" selection-start-line="35" selection-start-column="21" selection-end-line="35" selection-end-column="21" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/mapper/CourseMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="312">
-          <caret line="14" column="27" lean-forward="false" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/CourseManagerApplication.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="432">
-          <caret line="22" column="0" lean-forward="false" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-            <element signature="e#482#483#0" expanded="true" />
-            <element signature="e#556#557#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
           <caret line="10" column="16" lean-forward="false" selection-start-line="10" selection-start-column="16" selection-end-line="10" selection-end-column="16" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -779,9 +768,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="504">
           <caret line="28" column="14" lean-forward="false" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -808,9 +794,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="576">
           <caret line="35" column="16" lean-forward="false" selection-start-line="35" selection-start-column="16" selection-end-line="35" selection-end-column="16" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -825,7 +808,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
           <caret line="10" column="16" lean-forward="false" selection-start-line="10" selection-start-column="16" selection-end-line="10" selection-end-column="16" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -835,8 +817,6 @@
           <caret line="22" column="0" lean-forward="true" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
           <folding>
             <element signature="imports" expanded="true" />
-            <element signature="e#482#483#0" expanded="true" />
-            <element signature="e#556#557#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -845,9 +825,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="504">
           <caret line="21" column="20" lean-forward="false" selection-start-line="21" selection-start-column="20" selection-end-line="21" selection-end-column="20" />
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -874,9 +851,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="672">
           <caret line="38" column="0" lean-forward="true" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -891,7 +865,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
           <caret line="10" column="16" lean-forward="false" selection-start-line="10" selection-start-column="16" selection-end-line="10" selection-end-column="16" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -901,8 +874,6 @@
           <caret line="18" column="0" lean-forward="true" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
           <folding>
             <element signature="imports" expanded="true" />
-            <element signature="e#482#483#0" expanded="true" />
-            <element signature="e#556#557#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -911,9 +882,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="408">
           <caret line="21" column="20" lean-forward="false" selection-start-line="21" selection-start-column="20" selection-end-line="21" selection-end-column="20" />
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -921,9 +889,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="600">
           <caret line="34" column="29" lean-forward="true" selection-start-line="34" selection-start-column="29" selection-end-line="34" selection-end-column="29" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -957,7 +922,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
           <caret line="10" column="16" lean-forward="false" selection-start-line="10" selection-start-column="16" selection-end-line="10" selection-end-column="16" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -967,8 +931,6 @@
           <caret line="11" column="24" lean-forward="false" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
           <folding>
             <element signature="imports" expanded="true" />
-            <element signature="e#482#483#0" expanded="true" />
-            <element signature="e#556#557#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -977,9 +939,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="408">
           <caret line="21" column="20" lean-forward="false" selection-start-line="21" selection-start-column="20" selection-end-line="21" selection-end-column="20" />
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -987,9 +946,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="624">
           <caret line="35" column="0" lean-forward="false" selection-start-line="35" selection-start-column="0" selection-end-line="35" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -1022,7 +978,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
           <caret line="10" column="16" lean-forward="false" selection-start-line="10" selection-start-column="16" selection-end-line="10" selection-end-column="16" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1045,34 +1000,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="552">
           <caret line="30" column="28" lean-forward="false" selection-start-line="30" selection-start-column="28" selection-end-line="30" selection-end-column="28" />
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/customPlugin.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/web/CourseController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1416">
-          <caret line="68" column="37" lean-forward="false" selection-start-line="68" selection-start-column="37" selection-end-line="68" selection-end-column="37" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/mainFunction.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="8040">
-          <caret line="335" column="42" lean-forward="false" selection-start-line="335" selection-start-column="42" selection-end-line="335" selection-end-column="42" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1084,20 +1011,12 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/static/manage.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1152">
-          <caret line="48" column="12" lean-forward="false" selection-start-line="48" selection-start-column="12" selection-end-line="48" selection-end-column="12" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/common/MyException.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="336">
           <caret line="16" column="7" lean-forward="false" selection-start-line="16" selection-start-column="7" selection-end-line="16" selection-end-column="7" />
           <folding>
-            <element signature="imports" expanded="true" />
+            <element signature="imports" expanded="false" />
           </folding>
         </state>
       </provider>
@@ -1115,7 +1034,7 @@
         <state relative-caret-position="312">
           <caret line="15" column="30" lean-forward="false" selection-start-line="15" selection-start-column="30" selection-end-line="15" selection-end-column="30" />
           <folding>
-            <element signature="imports" expanded="true" />
+            <element signature="imports" expanded="false" />
           </folding>
         </state>
       </provider>
@@ -1131,36 +1050,92 @@
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/vo/CourseResult.java" />
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/web/CourseController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="232">
+          <caret line="63" column="16" lean-forward="true" selection-start-line="63" selection-start-column="16" selection-end-line="63" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/customPlugin.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-216">
+          <caret line="36" column="39" lean-forward="false" selection-start-line="36" selection-start-column="39" selection-end-line="36" selection-end-column="39" />
+          <folding>
+            <element signature="n#!!doc" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/css/style.css">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="216">
+          <caret line="33" column="5" lean-forward="true" selection-start-line="33" selection-start-column="5" selection-end-line="33" selection-end-column="5" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/vo/NodeBody.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="480">
+        <state relative-caret-position="321">
           <caret line="22" column="1" lean-forward="false" selection-start-line="22" selection-start-column="1" selection-end-line="22" selection-end-column="1" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/service/CourseService.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/CourseManagerApplication.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="306">
-          <caret line="27" column="14" lean-forward="true" selection-start-line="27" selection-start-column="14" selection-end-line="27" selection-end-column="14" />
+        <state relative-caret-position="177">
+          <caret line="22" column="0" lean-forward="true" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/CourseManagerApplication.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/unow/service/CourseService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="7" column="6" lean-forward="true" selection-start-line="7" selection-start-column="6" selection-end-line="7" selection-end-column="6" />
+        <state relative-caret-position="-1047">
+          <caret line="27" column="14" lean-forward="false" selection-start-line="27" selection-start-column="14" selection-end-line="27" selection-end-column="14" />
           <folding>
             <element signature="imports" expanded="true" />
-            <element signature="e#482#483#0" expanded="true" />
-            <element signature="e#556#557#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/mainFunction.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="208">
+          <caret line="347" column="39" lean-forward="false" selection-start-line="347" selection-start-column="39" selection-end-line="347" selection-end-column="39" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/static/manage.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="144">
+          <caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="69" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/static/public/js/login_register.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="48">
+          <caret line="2" column="23" lean-forward="true" selection-start-line="2" selection-start-column="23" selection-end-line="2" selection-end-column="23" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/static/entrance.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="216">
+          <caret line="9" column="27" lean-forward="true" selection-start-line="9" selection-start-column="27" selection-end-line="9" selection-end-column="27" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
   <component name="masterDetails">
     <states>

+ 78 - 0
src/main/resources/static/entrance.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <script src="public/bootstrap/jquery-3.1.1.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="public/css/style.css">
+    <link rel="stylesheet" type="text/css" href="public/plugins/bootstrap-dialog/bootstrap-dialog.min.css">
+
+    <title>app task</title>
+    <script>
+        $.ajax({
+            url:'manage/isLogin',
+            type:'get',
+            success:function(){
+                window.location.href='manage.html'
+            }
+        })
+    </script>
+</head>
+<body>
+    <div class="box">
+        <div class="login_container container">
+            <div class="form">
+                <h2>登录</h2>
+                <div class="cont">
+                    <label>
+                        <span>用户名</span><input type="text" name="userName" id="username" class="input login_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <span>密码</span><input type="password" name="userPassword" id="password" class="input login_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <button class="btn" id="login_btn">登录</button>
+                    </label>
+                </div>
+            </div>
+
+            <div class="tab">
+                <span>没有账号?</span>
+                <a href="javascript:void(0)" id="to_reg">注册</a>
+            </div>
+        </div>
+        <div class="register_container container">
+            <div class="form">
+                <h2>注册</h2>
+                <div class="cont">
+                    <label>
+                        <span>用户名</span><input type="text" name="userName" id="register_username" class="input reg_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <span>密码</span><input type="password" name="userPassword" id="register_password" class="input reg_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <span>确认密码</span><input type="password" id="register_password_agian" name="userPasswordConfirm" class="input reg_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <button class="btn" id="reg_btn">注册</button>
+                    </label>
+                </div>
+            </div>
+
+            <div class="tab">
+                <span>已注册?</span>
+                <a href="javascript:void(0)" id="to_login">登录</a>
+            </div>
+        </div>
+    </div>
+    <script src="public/js/login_register.js"></script>
+
+</body>
+</html>

+ 19 - 3
src/main/resources/static/manage.html

@@ -23,6 +23,19 @@
 			cursor:pointer;
 		}
 	</style>
+
+    <!--bootstrap基础引用 start-->
+  <script type="text/javascript" src="public/bootstrap/jquery-3.1.1.min.js"></script>
+  <script>
+    $.ajax({
+      url:'manage/isLogin',
+      type:'get',
+      error:function(){
+//          window.location.href='entrance.html'
+      }
+    })
+
+  </script>
 </head>
 	
   <body>
@@ -218,18 +231,21 @@
     <!--弹出框 移动根节点权限 end-->
 
 	<!-- js文件-->
-
-	<!--bootstrap基础引用 start-->
-    <script type="text/javascript" src="public/bootstrap/jquery-3.1.1.min.js"></script>
+    <!--bootstrap基础引用 start-->
     <script type="text/javascript" src="public/bootstrap/bootstrap.min.js"></script>
     <!--bootstrap基础引用 end-->
+    <!--bootstrap-treeview start-->
     <script type="text/javascript" src="public/plugins/bootstrap-treeview/bootstrap-treeview.js"></script>
     <!--bootstrap-treeview end-->
+    <!--bootstrap-dialog start-->
     <script type="text/javascript" src="public/plugins/bootstrap-dialog/bootstrap-dialog.min.js"></script>
     <!--bootstrap-dialog end-->
+    <!-- customPlugin.js start-->
     <script type="text/javascript" src="public/js/customPlugin.js"></script>
+    <!-- customPlugin.js end-->
     <!-- mainFunction.js start-->
     <script type="text/javascript" src="public/js/mainFunction.js"></script>
+    <!-- mainFunction.js end-->
   </body>
 
 </html>

+ 222 - 0
src/main/resources/static/public/css/style.css

@@ -0,0 +1,222 @@
+body {
+    margin: 0;
+    padding: 0;
+    background: -webkit-radial-gradient(top, circle cover, #3c3b52 0%, #252233 80%)
+}
+
+a {
+    text-decoration: none;
+}
+
+.box {
+    display: -webkit-flex;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    position: relative;
+}
+
+.container {
+    display: flex;
+    background:#fff;
+    width: 450px;
+    height: 500px;
+    overflow: auto;
+    box-shadow: 2px 1px 6px #CC9999;
+    flex-direction: column;
+    position: absolute;
+}
+
+@keyframes fadeIn {
+    0% {
+        opacity: 0;
+        left: 910px;
+    }
+
+    20% {
+        opacity: 0.2;
+        left: 728px;
+    }
+
+    40% {
+        opacity: 0.4;
+        left: 546px;
+    }
+
+    60% {
+        opacity: 0.6;
+        left: 364px;
+    }
+
+    80% {
+        opacity: 0.8;
+        left: 182px;
+    }
+
+    100% {
+        opacity: 1;
+        left: 0;
+    }
+}
+
+.fadeIn {
+    animation: fadeIn .3s linear forwards;
+}
+
+@keyframes fadeOut {
+    0% {
+        opacity: 1;
+        left: 0;
+    }
+
+    20% {
+        opacity: 0.8;
+        left: 182px;
+    }
+
+    40% {
+        opacity: 0.6;
+        left: 364px;
+    }
+
+    60% {
+        opacity: 0.4;
+        left: 546px;
+    }
+
+    80% {
+        opacity: 0.2;
+        left: 728px;
+    }
+
+    100% {
+        opacity: 0;
+        left: 910px;
+    }
+}
+
+.fadeOut {
+    animation: fadeOut .3s linear forwards;
+}
+
+.register_container {
+    opacity: 0;
+    right: 0;
+    top: 0;
+    left: 910px;
+    bottom: 0;
+    margin: auto;
+}
+
+.login_container {
+    opacity: 1;
+    right: 0;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    margin: auto;
+}
+
+.form {
+    height: 90%;
+    display: flex;
+    flex-direction: column;
+}
+
+.form h2 {
+    flex: 1;
+    align-self: center;
+    font-size: 40px;
+    line-height: 80px;
+    color: #0084FF
+}
+
+.form .cont {
+    flex: 5;
+    align-self: center;
+    display: flex;
+    width: 100%;
+    flex-direction: column;
+}
+
+.form .cont label {
+    position: relative;
+    align-self: center;
+    width: 60%;
+    height: 20%;
+    margin-bottom: 20px;
+    display: flex;
+    flex-direction: row;
+}
+
+@keyframes scaleFont {
+    0% {
+        transform: scale(1);
+    }
+    50% {
+        transform: scale(.9);
+        bottom: 40%;
+    }
+    100% {
+        transform: scale(.8);
+        bottom: 60%;
+    }
+}
+
+.form .cont label span {
+    position: absolute;
+    font-size: 20px;
+    display: inline;
+    bottom: 8%;
+    animation: scaleFont 0.3s ease;
+    animation-fill-mode: forwards; /* 保存动画最后状态 */
+}
+
+.form .input {
+    border: none;
+    border-bottom: 1px solid #e6e6e6;
+    outline: none;
+    width: 100%;
+    align-self: flex-end;
+    height: 30px;
+    font-size: 20px;
+}
+
+.form .line {
+    width: 0;
+    position: absolute;
+    background-color: blue;
+    height: 2px;
+    margin: 0 auto;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    transition: width .3s linear;
+}
+
+.form .btn {
+    border: none;
+    width: 100%;
+    height: 80%;
+    background: #0084FF;
+    color: #fff;
+    font-size: 25px;
+    border-radius: 11px;
+    align-self: flex-end;
+}
+
+.form .btn:hover {
+    background-color: #005eb6;
+    cursor: pointer;
+}
+
+.tab {
+    height: 12%;
+    width: 100%;
+    border-top: 1px solid #EBEBEB;
+    background: #f6f6f6;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 20px;
+}

+ 110 - 0
src/main/resources/static/public/js/login_register.js

@@ -0,0 +1,110 @@
+
+// 登录按钮的实现
+$("#login_btn").click(function () {
+    if ( $("#username").val() == ""||
+        $("#login_password").val() =="")
+    {
+        alert("请将信息填写完整");
+        return false;
+    }
+    $.ajax({
+        type:"POST",
+        url:"manage/login",
+        data:{
+            username:$("#username").val(),
+            password:$("#login_password").val()
+        },
+        success:function(data){
+            window.location.href='manage.html'
+        },
+        error:function(){
+            alert("账号密码错误")
+        }
+    })
+})
+
+//注册按钮的实现
+$("#reg_btn").click(function () {
+    if ($("#register_username").val() == "" ||
+        $("#register_password").val() == "" ||
+        $("#register_password_agian").val() == "")
+    {
+        alert("请将信息填写完整");
+        return false;
+    }else if ( $("#register_password").val() != $("#register_password_agian").val() ){
+        alert("两次密码不一致!")
+        return false;
+    }
+    else{
+        $.ajax({
+            type:"POST",
+            url:"manage/register",
+            data:{
+                username:$("#register_username").val(),
+                password:$("#register_password").val(),
+            },
+            success:function(data){
+                alert("注册成功!")
+            },
+            error:function(){
+                alert("账号已存在!")
+            }
+        })
+    }
+})
+
+// 设置高度自适应浏览器视窗
+document.getElementsByClassName('box')[0].style.height = document.documentElement.clientHeight + 'px'
+
+/**
+ * 页面效果
+ */
+let input_list = document.getElementsByClassName('input')   // 获取所有input标签
+function input_focus(e) {
+    e.previousElementSibling.style.animationPlayState = 'running'
+    e.nextElementSibling.style.width = '100%'
+}
+function input_blur(e, value) {
+    if (value != '') {
+        return
+    }
+    e.nextElementSibling.style.width = '0'
+}
+// 绑定获取焦点和失去焦点事件
+for (let i of input_list) {
+    // animationPlayState控制动画的状态 paused(停止) 和 running(开始)
+    i.previousElementSibling.style.animationPlayState = 'paused'
+    i.setAttribute('onfocus', 'input_focus(this)')
+    i.setAttribute('onblur', 'input_blur(this, this.value)')
+}
+// 页面切换
+let reg_link = document.getElementById('to_reg')
+let login_link = document.getElementById('to_login')
+reg_link.addEventListener('click', function() {
+    login_link.parentElement.parentElement.classList.remove('fadeOut')
+    login_link.parentElement.parentElement.classList.add('fadeIn')
+    this.parentElement.parentElement.classList.add('fadeOut')
+    this.parentElement.parentElement.classList.remove('fadeIn')
+    // 重新绑定焦点事件
+    for (let i of input_list) {
+        i.value = ''
+        // animationPlayState控制动画的状态 paused(停止) 和 running(开始)
+        i.previousElementSibling.style.animationPlayState = 'paused'
+        i.setAttribute('onfocus', 'input_focus(this)')
+        i.setAttribute('onblur', 'input_blur(this, this.value)')
+    }
+})
+login_link.addEventListener('click', function() {
+    reg_link.parentElement.parentElement.classList.remove('fadeOut')
+    reg_link.parentElement.parentElement.classList.add('fadeIn')
+    this.parentElement.parentElement.classList.add('fadeOut')
+    this.parentElement.parentElement.classList.remove('fadeIn')
+    // 重新绑定焦点事件
+    for (let i of input_list) {
+        i.value = ''
+        // animationPlayState控制动画的状态 paused(停止) 和 running(开始)
+        i.previousElementSibling.style.animationPlayState = 'paused'
+        i.setAttribute('onfocus', 'input_focus(this)')
+        i.setAttribute('onblur', 'input_blur(this, this.value)')
+    }
+})

+ 78 - 0
target/classes/static/entrance.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <script src="public/bootstrap/jquery-3.1.1.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="public/css/style.css">
+    <link rel="stylesheet" type="text/css" href="public/plugins/bootstrap-dialog/bootstrap-dialog.min.css">
+
+    <title>app task</title>
+    <script>
+        $.ajax({
+            url:'manage/isLogin',
+            type:'get',
+            success:function(){
+                window.location.href='manage.html'
+            }
+        })
+    </script>
+</head>
+<body>
+    <div class="box">
+        <div class="login_container container">
+            <div class="form">
+                <h2>登录</h2>
+                <div class="cont">
+                    <label>
+                        <span>用户名</span><input type="text" name="userName" id="username" class="input login_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <span>密码</span><input type="password" name="userPassword" id="password" class="input login_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <button class="btn" id="login_btn">登录</button>
+                    </label>
+                </div>
+            </div>
+
+            <div class="tab">
+                <span>没有账号?</span>
+                <a href="javascript:void(0)" id="to_reg">注册</a>
+            </div>
+        </div>
+        <div class="register_container container">
+            <div class="form">
+                <h2>注册</h2>
+                <div class="cont">
+                    <label>
+                        <span>用户名</span><input type="text" name="userName" id="register_username" class="input reg_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <span>密码</span><input type="password" name="userPassword" id="register_password" class="input reg_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <span>确认密码</span><input type="password" id="register_password_agian" name="userPasswordConfirm" class="input reg_input">
+                        <div class="line"></div>
+                    </label>
+                    <label>
+                        <button class="btn" id="reg_btn">注册</button>
+                    </label>
+                </div>
+            </div>
+
+            <div class="tab">
+                <span>已注册?</span>
+                <a href="javascript:void(0)" id="to_login">登录</a>
+            </div>
+        </div>
+    </div>
+    <script src="public/js/login_register.js"></script>
+
+</body>
+</html>

+ 19 - 3
target/classes/static/manage.html

@@ -23,6 +23,19 @@
 			cursor:pointer;
 		}
 	</style>
+
+    <!--bootstrap基础引用 start-->
+  <script type="text/javascript" src="public/bootstrap/jquery-3.1.1.min.js"></script>
+  <script>
+    $.ajax({
+      url:'manage/isLogin',
+      type:'get',
+      error:function(){
+//          window.location.href='entrance.html'
+      }
+    })
+
+  </script>
 </head>
 	
   <body>
@@ -218,18 +231,21 @@
     <!--弹出框 移动根节点权限 end-->
 
 	<!-- js文件-->
-
-	<!--bootstrap基础引用 start-->
-    <script type="text/javascript" src="public/bootstrap/jquery-3.1.1.min.js"></script>
+    <!--bootstrap基础引用 start-->
     <script type="text/javascript" src="public/bootstrap/bootstrap.min.js"></script>
     <!--bootstrap基础引用 end-->
+    <!--bootstrap-treeview start-->
     <script type="text/javascript" src="public/plugins/bootstrap-treeview/bootstrap-treeview.js"></script>
     <!--bootstrap-treeview end-->
+    <!--bootstrap-dialog start-->
     <script type="text/javascript" src="public/plugins/bootstrap-dialog/bootstrap-dialog.min.js"></script>
     <!--bootstrap-dialog end-->
+    <!-- customPlugin.js start-->
     <script type="text/javascript" src="public/js/customPlugin.js"></script>
+    <!-- customPlugin.js end-->
     <!-- mainFunction.js start-->
     <script type="text/javascript" src="public/js/mainFunction.js"></script>
+    <!-- mainFunction.js end-->
   </body>
 
 </html>

+ 222 - 0
target/classes/static/public/css/style.css

@@ -0,0 +1,222 @@
+body {
+    margin: 0;
+    padding: 0;
+    background: -webkit-radial-gradient(top, circle cover, #3c3b52 0%, #252233 80%)
+}
+
+a {
+    text-decoration: none;
+}
+
+.box {
+    display: -webkit-flex;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    position: relative;
+}
+
+.container {
+    display: flex;
+    background:#fff;
+    width: 450px;
+    height: 500px;
+    overflow: auto;
+    box-shadow: 2px 1px 6px #CC9999;
+    flex-direction: column;
+    position: absolute;
+}
+
+@keyframes fadeIn {
+    0% {
+        opacity: 0;
+        left: 910px;
+    }
+
+    20% {
+        opacity: 0.2;
+        left: 728px;
+    }
+
+    40% {
+        opacity: 0.4;
+        left: 546px;
+    }
+
+    60% {
+        opacity: 0.6;
+        left: 364px;
+    }
+
+    80% {
+        opacity: 0.8;
+        left: 182px;
+    }
+
+    100% {
+        opacity: 1;
+        left: 0;
+    }
+}
+
+.fadeIn {
+    animation: fadeIn .3s linear forwards;
+}
+
+@keyframes fadeOut {
+    0% {
+        opacity: 1;
+        left: 0;
+    }
+
+    20% {
+        opacity: 0.8;
+        left: 182px;
+    }
+
+    40% {
+        opacity: 0.6;
+        left: 364px;
+    }
+
+    60% {
+        opacity: 0.4;
+        left: 546px;
+    }
+
+    80% {
+        opacity: 0.2;
+        left: 728px;
+    }
+
+    100% {
+        opacity: 0;
+        left: 910px;
+    }
+}
+
+.fadeOut {
+    animation: fadeOut .3s linear forwards;
+}
+
+.register_container {
+    opacity: 0;
+    right: 0;
+    top: 0;
+    left: 910px;
+    bottom: 0;
+    margin: auto;
+}
+
+.login_container {
+    opacity: 1;
+    right: 0;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    margin: auto;
+}
+
+.form {
+    height: 90%;
+    display: flex;
+    flex-direction: column;
+}
+
+.form h2 {
+    flex: 1;
+    align-self: center;
+    font-size: 40px;
+    line-height: 80px;
+    color: #0084FF
+}
+
+.form .cont {
+    flex: 5;
+    align-self: center;
+    display: flex;
+    width: 100%;
+    flex-direction: column;
+}
+
+.form .cont label {
+    position: relative;
+    align-self: center;
+    width: 60%;
+    height: 20%;
+    margin-bottom: 20px;
+    display: flex;
+    flex-direction: row;
+}
+
+@keyframes scaleFont {
+    0% {
+        transform: scale(1);
+    }
+    50% {
+        transform: scale(.9);
+        bottom: 40%;
+    }
+    100% {
+        transform: scale(.8);
+        bottom: 60%;
+    }
+}
+
+.form .cont label span {
+    position: absolute;
+    font-size: 20px;
+    display: inline;
+    bottom: 8%;
+    animation: scaleFont 0.3s ease;
+    animation-fill-mode: forwards; /* 保存动画最后状态 */
+}
+
+.form .input {
+    border: none;
+    border-bottom: 1px solid #e6e6e6;
+    outline: none;
+    width: 100%;
+    align-self: flex-end;
+    height: 30px;
+    font-size: 20px;
+}
+
+.form .line {
+    width: 0;
+    position: absolute;
+    background-color: blue;
+    height: 2px;
+    margin: 0 auto;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    transition: width .3s linear;
+}
+
+.form .btn {
+    border: none;
+    width: 100%;
+    height: 80%;
+    background: #0084FF;
+    color: #fff;
+    font-size: 25px;
+    border-radius: 11px;
+    align-self: flex-end;
+}
+
+.form .btn:hover {
+    background-color: #005eb6;
+    cursor: pointer;
+}
+
+.tab {
+    height: 12%;
+    width: 100%;
+    border-top: 1px solid #EBEBEB;
+    background: #f6f6f6;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 20px;
+}

+ 110 - 0
target/classes/static/public/js/login_register.js

@@ -0,0 +1,110 @@
+
+// 登录按钮的实现
+$("#login_btn").click(function () {
+    if ( $("#username").val() == ""||
+        $("#login_password").val() =="")
+    {
+        alert("请将信息填写完整");
+        return false;
+    }
+    $.ajax({
+        type:"POST",
+        url:"manage/login",
+        data:{
+            username:$("#username").val(),
+            password:$("#login_password").val()
+        },
+        success:function(data){
+            window.location.href='manage.html'
+        },
+        error:function(){
+            alert("账号密码错误")
+        }
+    })
+})
+
+//注册按钮的实现
+$("#reg_btn").click(function () {
+    if ($("#register_username").val() == "" ||
+        $("#register_password").val() == "" ||
+        $("#register_password_agian").val() == "")
+    {
+        alert("请将信息填写完整");
+        return false;
+    }else if ( $("#register_password").val() != $("#register_password_agian").val() ){
+        alert("两次密码不一致!")
+        return false;
+    }
+    else{
+        $.ajax({
+            type:"POST",
+            url:"manage/register",
+            data:{
+                username:$("#register_username").val(),
+                password:$("#register_password").val(),
+            },
+            success:function(data){
+                alert("注册成功!")
+            },
+            error:function(){
+                alert("账号已存在!")
+            }
+        })
+    }
+})
+
+// 设置高度自适应浏览器视窗
+document.getElementsByClassName('box')[0].style.height = document.documentElement.clientHeight + 'px'
+
+/**
+ * 页面效果
+ */
+let input_list = document.getElementsByClassName('input')   // 获取所有input标签
+function input_focus(e) {
+    e.previousElementSibling.style.animationPlayState = 'running'
+    e.nextElementSibling.style.width = '100%'
+}
+function input_blur(e, value) {
+    if (value != '') {
+        return
+    }
+    e.nextElementSibling.style.width = '0'
+}
+// 绑定获取焦点和失去焦点事件
+for (let i of input_list) {
+    // animationPlayState控制动画的状态 paused(停止) 和 running(开始)
+    i.previousElementSibling.style.animationPlayState = 'paused'
+    i.setAttribute('onfocus', 'input_focus(this)')
+    i.setAttribute('onblur', 'input_blur(this, this.value)')
+}
+// 页面切换
+let reg_link = document.getElementById('to_reg')
+let login_link = document.getElementById('to_login')
+reg_link.addEventListener('click', function() {
+    login_link.parentElement.parentElement.classList.remove('fadeOut')
+    login_link.parentElement.parentElement.classList.add('fadeIn')
+    this.parentElement.parentElement.classList.add('fadeOut')
+    this.parentElement.parentElement.classList.remove('fadeIn')
+    // 重新绑定焦点事件
+    for (let i of input_list) {
+        i.value = ''
+        // animationPlayState控制动画的状态 paused(停止) 和 running(开始)
+        i.previousElementSibling.style.animationPlayState = 'paused'
+        i.setAttribute('onfocus', 'input_focus(this)')
+        i.setAttribute('onblur', 'input_blur(this, this.value)')
+    }
+})
+login_link.addEventListener('click', function() {
+    reg_link.parentElement.parentElement.classList.remove('fadeOut')
+    reg_link.parentElement.parentElement.classList.add('fadeIn')
+    this.parentElement.parentElement.classList.add('fadeOut')
+    this.parentElement.parentElement.classList.remove('fadeIn')
+    // 重新绑定焦点事件
+    for (let i of input_list) {
+        i.value = ''
+        // animationPlayState控制动画的状态 paused(停止) 和 running(开始)
+        i.previousElementSibling.style.animationPlayState = 'paused'
+        i.setAttribute('onfocus', 'input_focus(this)')
+        i.setAttribute('onblur', 'input_blur(this, this.value)')
+    }
+})