Преглед изворни кода

Merge remote-tracking branch 'origin/master'

syyang пре 2 година
родитељ
комит
135b6dfce6
97 измењених фајлова са 39374 додато и 164 уклоњено
  1. 8 8
      .idea/compiler.xml
  2. 1 1
      .idea/misc.xml
  3. 605 56
      .idea/workspace.xml
  4. 2 0
      leiSP-admin/leisp-admin.iml
  5. 9 1
      leiSP-admin/pom.xml
  6. 2 2
      leiSP-admin/src/main/resources/templates/index.html
  7. 13 1
      leiSP-common/pom.xml
  8. 2 2
      leiSP-common/src/main/java/com/sooka/common/config/datasource/DynamicDataSourceContextHolder.java
  9. 2 2
      leiSP-common/src/main/java/com/sooka/common/core/domain/BaseEntity.java
  10. 10 10
      leiSP-common/src/main/java/com/sooka/common/utils/html/HTMLFilter.java
  11. 1 1
      leiSP-common/src/main/java/com/sooka/common/utils/poi/ExcelUtil.java
  12. 6 6
      leiSP-common/src/main/java/com/sooka/common/xss/XssFilter.java
  13. 1 1
      leiSP-framework/leisp-framework.iml
  14. 14 2
      leiSP-framework/pom.xml
  15. 1 1
      leiSP-generator/leisp-generator.iml
  16. 14 2
      leiSP-generator/pom.xml
  17. 1 1
      leiSP-quartz/leisp-quartz.iml
  18. 14 2
      leiSP-quartz/pom.xml
  19. 1 1
      leiSP-system/leisp-system.iml
  20. 18 1
      leiSP-system/pom.xml
  21. 15 15
      leiSP-system/src/main/java/com/sooka/system/service/impl/SysDeptServiceImpl.java
  22. 1 1
      leiSP-system/src/main/java/com/sooka/system/service/impl/SysRoleServiceImpl.java
  23. 13 1
      mybusiness/pom.xml
  24. 14 0
      mybusiness/src/main/java/com/business/slfh/dahua/controller/Dahua2BController.java
  25. 4 1
      mybusiness/src/main/resources/mapper/grid/manager/TUEventOthersMapper.xml
  26. 1 1
      mybusiness/src/main/resources/mapper/grid/visualization/Visualization_Event_Mapper.xml
  27. 5 5
      mybusiness/src/main/resources/templates/business/manager/cameramanager/index.html
  28. 2 2
      mybusiness/src/main/resources/templates/business/visualization/details.html
  29. 1 1
      mybusiness/src/main/resources/templates/business/visualization/evemt.html
  30. 8 5
      mybusiness/src/main/resources/templates/business/visualization/event.html
  31. 13 7
      mybusiness/src/main/resources/templates/business/visualization/frame.html
  32. 153 3
      mybusiness/src/main/resources/templates/business/visualization/map.html
  33. 1 1
      mybusiness/src/main/resources/templates/business/visualization/sxt.html
  34. 35 0
      mybusiness/src/main/resources/templates/dahua/a.txt
  35. 483 0
      mybusiness/src/main/resources/templates/dahua/cn/demo.html
  36. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/d_icon.png
  37. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/d_icon2.png
  38. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/d_icon2_2.png
  39. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/d_icon3.png
  40. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/d_icon3_2.png
  41. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/d_icon_2.png
  42. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/ja_bg.png
  43. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/ja_con.png
  44. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/ja_con2.png
  45. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/ja_jiao.png
  46. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/ja_jiao2.png
  47. 4 0
      mybusiness/src/main/resources/templates/dahua/cn/images/jquery-1.7.1.min.js
  48. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/x_icon.png
  49. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/x_icon2.png
  50. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/x_icon2_2.png
  51. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/x_icon3.png
  52. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/x_icon3_2.png
  53. BIN
      mybusiness/src/main/resources/templates/dahua/cn/images/x_icon_2.png
  54. 433 0
      mybusiness/src/main/resources/templates/dahua/css/demo.css
  55. 1312 0
      mybusiness/src/main/resources/templates/dahua/css/jquery-ui.css
  56. 259 0
      mybusiness/src/main/resources/templates/dahua/demo-dsd.html
  57. 322 0
      mybusiness/src/main/resources/templates/dahua/demo-jkd-1.html
  58. 362 0
      mybusiness/src/main/resources/templates/dahua/demo-jkd-2.html
  59. 362 0
      mybusiness/src/main/resources/templates/dahua/demo-jkd.html
  60. 481 0
      mybusiness/src/main/resources/templates/dahua/demo.html
  61. 479 0
      mybusiness/src/main/resources/templates/dahua/en/demo.html
  62. BIN
      mybusiness/src/main/resources/templates/dahua/images/d_icon.png
  63. BIN
      mybusiness/src/main/resources/templates/dahua/images/d_icon2.png
  64. BIN
      mybusiness/src/main/resources/templates/dahua/images/d_icon2_2.png
  65. BIN
      mybusiness/src/main/resources/templates/dahua/images/d_icon3.png
  66. BIN
      mybusiness/src/main/resources/templates/dahua/images/d_icon3_2.png
  67. BIN
      mybusiness/src/main/resources/templates/dahua/images/d_icon_2.png
  68. BIN
      mybusiness/src/main/resources/templates/dahua/images/ja_b.png
  69. BIN
      mybusiness/src/main/resources/templates/dahua/images/ja_bg.png
  70. BIN
      mybusiness/src/main/resources/templates/dahua/images/ja_con.png
  71. BIN
      mybusiness/src/main/resources/templates/dahua/images/ja_con2.png
  72. 349 0
      mybusiness/src/main/resources/templates/dahua/images/ja_ja.css
  73. BIN
      mybusiness/src/main/resources/templates/dahua/images/ja_jiao.png
  74. BIN
      mybusiness/src/main/resources/templates/dahua/images/ja_jiao2.png
  75. 4 0
      mybusiness/src/main/resources/templates/dahua/images/jquery-1.7.1.min.js
  76. BIN
      mybusiness/src/main/resources/templates/dahua/images/webcam_128px_28911_easyicon.net.png
  77. BIN
      mybusiness/src/main/resources/templates/dahua/images/x_icon.png
  78. BIN
      mybusiness/src/main/resources/templates/dahua/images/x_icon2.png
  79. BIN
      mybusiness/src/main/resources/templates/dahua/images/x_icon2_2.png
  80. BIN
      mybusiness/src/main/resources/templates/dahua/images/x_icon3.png
  81. BIN
      mybusiness/src/main/resources/templates/dahua/images/x_icon3_2.png
  82. BIN
      mybusiness/src/main/resources/templates/dahua/images/x_icon_2.png
  83. 8 0
      mybusiness/src/main/resources/templates/dahua/index.html
  84. 4 0
      mybusiness/src/main/resources/templates/dahua/lib/jquery-1.7.1.min.js
  85. 18706 0
      mybusiness/src/main/resources/templates/dahua/lib/jquery-ui.js
  86. 11008 0
      mybusiness/src/main/resources/templates/dahua/lib/jquery.js
  87. 480 0
      mybusiness/src/main/resources/templates/dahua/lib/json2.js
  88. 5 0
      mybusiness/src/main/resources/templates/dahua/lib/require-2.3.3.min.js
  89. 2 0
      mybusiness/src/main/resources/templates/dahua/lib/sea-3.0.1.min.js
  90. 1408 0
      mybusiness/src/main/resources/templates/dahua/module/WebVideoCtrl.js
  91. 780 0
      mybusiness/src/main/resources/templates/dahua/module/demo.js
  92. 786 0
      mybusiness/src/main/resources/templates/dahua/module/demo_jk.js
  93. 85 0
      mybusiness/src/main/resources/templates/dahua/module/foundation.js
  94. 4 0
      mybusiness/src/main/resources/templates/dahua/module/jquery-1.7.1.min.js
  95. 209 0
      mybusiness/src/main/resources/templates/dahua/module/modifyUI.js
  96. 47 19
      pom.xml
  97. 1 1
      sz_jian.iml

+ 8 - 8
.idea/compiler.xml

@@ -16,14 +16,14 @@
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
-      <module name="leisp-admin" target="1.8" />
-      <module name="leisp-common" target="1.8" />
-      <module name="leisp-framework" target="1.8" />
-      <module name="leisp-generator" target="1.8" />
-      <module name="leisp-quartz" target="1.8" />
-      <module name="leisp-system" target="1.8" />
-      <module name="mybusiness" target="1.8" />
-      <module name="sz_jian" target="1.8" />
+      <module name="leisp-admin" target="8" />
+      <module name="leisp-common" target="8" />
+      <module name="leisp-framework" target="7" />
+      <module name="leisp-generator" target="7" />
+      <module name="leisp-quartz" target="7" />
+      <module name="leisp-system" target="7" />
+      <module name="mybusiness" target="8" />
+      <module name="sz_jian" target="1.5" />
     </bytecodeTargetLevel>
   </component>
 </project>

+ 1 - 1
.idea/misc.xml

@@ -10,7 +10,7 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_10" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/classes" />
   </component>
 </project>

+ 605 - 56
.idea/workspace.xml

@@ -1,7 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="8ad4baec-f819-4a7c-b135-6a76a7a0c72f" name="Default" comment="" />
+    <list default="true" id="8ad4baec-f819-4a7c-b135-6a76a7a0c72f" name="Default" comment="">
+      <change afterPath="$PROJECT_DIR$/mybusiness/src/main/java/com/business/slfh/dahua/controller/Dahua2BController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/leiSP-admin/src/main/resources/templates/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/leiSP-admin/src/main/resources/templates/index.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/manager/cameramanager/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/manager/cameramanager/index.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/details.html" beforeDir="false" afterPath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/details.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/evemt.html" beforeDir="false" afterPath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/evemt.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/event.html" beforeDir="false" afterPath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/event.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/sxt.html" beforeDir="false" afterPath="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/visualization/sxt.html" afterDir="false" />
+    </list>
     <ignored path="$PROJECT_DIR$/leiSP-admin/target/" />
     <ignored path="$PROJECT_DIR$/target/" />
     <ignored path="$PROJECT_DIR$/leiSP-system/target/" />
@@ -18,17 +27,29 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="FileEditorManager">
-    <leaf>
-      <file leaf-file-name="application-druid.yml" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/resources/application-druid.yml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="14" column="104" lean-forward="true" selection-start-line="14" selection-start-column="104" selection-end-line="14" selection-end-column="104" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
+    <leaf />
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Class" />
+      </list>
+    </option>
+  </component>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>sys</find>
+      <find>module</find>
+      <find>所属林场部门</find>
+      <find>selectTResCameraList</find>
+      <find>DataScope</find>
+      <find>电视墙</find>
+      <find>122.141.177.213</find>
+    </findStrings>
+    <dirStrings>
+      <dir>E:\首佳工作目录\辉南-集安\code\hnly\mybusiness\src\main\java\com\business\slfh\manager\cameramanager</dir>
+      <dir>E:\首佳工作目录\辉南-集安\code\hnly</dir>
+    </dirStrings>
   </component>
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -44,6 +65,25 @@
     <option name="CHANGED_PATHS">
       <list>
         <option value="$PROJECT_DIR$/leiSP-admin/src/main/resources/application-druid.yml" />
+        <option value="$PROJECT_DIR$/leiSP-admin/src/main/resources/application.yml" />
+        <option value="$PROJECT_DIR$/leiSP-admin/pom.xml" />
+        <option value="$PROJECT_DIR$/leiSP-common/pom.xml" />
+        <option value="$PROJECT_DIR$/leiSP-generator/pom.xml" />
+        <option value="$PROJECT_DIR$/leiSP-quartz/pom.xml" />
+        <option value="$PROJECT_DIR$/mybusiness/pom.xml" />
+        <option value="$PROJECT_DIR$/leiSP-framework/pom.xml" />
+        <option value="$PROJECT_DIR$/sz_jian.iml" />
+        <option value="$PROJECT_DIR$/leiSP-system/pom.xml" />
+        <option value="$PROJECT_DIR$/pom.xml" />
+        <option value="$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/core/domain/BaseEntity.java" />
+        <option value="$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/config/datasource/DynamicDataSourceContextHolder.java" />
+        <option value="$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/html/HTMLFilter.java" />
+        <option value="$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/xss/XssFilter.java" />
+        <option value="$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/poi/ExcelUtil.java" />
+        <option value="$PROJECT_DIR$/leiSP-system/src/main/java/com/sooka/system/service/impl/SysDeptServiceImpl.java" />
+        <option value="$PROJECT_DIR$/leiSP-system/src/main/java/com/sooka/system/service/impl/SysRoleServiceImpl.java" />
+        <option value="$PROJECT_DIR$/mybusiness/src/main/java/com/business/slfh/dahua/controller/Dahua2BController.java" />
+        <option value="$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/manager/cameramanager/index.html" />
       </list>
     </option>
   </component>
@@ -61,14 +101,32 @@
       </MavenGeneralSettings>
     </option>
   </component>
+  <component name="MavenProjectNavigator">
+    <treeState>
+      <expand>
+        <path>
+          <item name="" type="16c1761:MavenProjectsStructure$RootNode" />
+          <item name="sz_hn" type="9519ce18:MavenProjectsStructure$ProjectNode" />
+        </path>
+        <path>
+          <item name="" type="16c1761:MavenProjectsStructure$RootNode" />
+          <item name="sz_hn" type="9519ce18:MavenProjectsStructure$ProjectNode" />
+          <item name="Lifecycle" type="58874e2:MavenProjectsStructure$LifecycleNode" />
+        </path>
+      </expand>
+      <select />
+    </treeState>
+  </component>
   <component name="NodePackageJsonFileManager">
-    <packageJsonPaths />
+    <packageJsonPaths>
+      <path value="$PROJECT_DIR$/mybusiness/src/main/resources/static/visualization/superMap/libs/iclient8c/resource/Android/phonegap/bin/package.json" />
+    </packageJsonPaths>
   </component>
-  <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-8" />
-    <option name="y" value="-8" />
-    <option name="width" value="1358" />
-    <option name="height" value="726" />
+  <component name="ProjectFrameBounds">
+    <option name="x" value="1968" />
+    <option name="y" value="55" />
+    <option name="width" value="1918" />
+    <option name="height" value="1038" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectView">
@@ -76,6 +134,9 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scope" />
+      <pane id="AndroidView" />
+      <pane id="PackagesPane" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -86,25 +147,30 @@
             <path>
               <item name="sz_jian" type="b2602c69:ProjectViewProjectNode" />
               <item name="hnly" type="462c0819:PsiDirectoryNode" />
-              <item name="leiSP-admin" type="462c0819:PsiDirectoryNode" />
+              <item name="bin" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="sz_jian" type="b2602c69:ProjectViewProjectNode" />
               <item name="hnly" type="462c0819:PsiDirectoryNode" />
-              <item name="leiSP-admin" type="462c0819:PsiDirectoryNode" />
+              <item name="mybusiness" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="sz_jian" type="b2602c69:ProjectViewProjectNode" />
+              <item name="hnly" type="462c0819:PsiDirectoryNode" />
+              <item name="mybusiness" type="462c0819:PsiDirectoryNode" />
               <item name="src" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="sz_jian" type="b2602c69:ProjectViewProjectNode" />
               <item name="hnly" type="462c0819:PsiDirectoryNode" />
-              <item name="leiSP-admin" type="462c0819:PsiDirectoryNode" />
+              <item name="mybusiness" type="462c0819:PsiDirectoryNode" />
               <item name="src" type="462c0819:PsiDirectoryNode" />
               <item name="main" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="sz_jian" type="b2602c69:ProjectViewProjectNode" />
               <item name="hnly" type="462c0819:PsiDirectoryNode" />
-              <item name="leiSP-admin" type="462c0819:PsiDirectoryNode" />
+              <item name="mybusiness" type="462c0819:PsiDirectoryNode" />
               <item name="src" type="462c0819:PsiDirectoryNode" />
               <item name="main" type="462c0819:PsiDirectoryNode" />
               <item name="resources" type="462c0819:PsiDirectoryNode" />
@@ -113,23 +179,32 @@
               <item name="sz_jian" type="b2602c69:ProjectViewProjectNode" />
               <item name="hnly" type="462c0819:PsiDirectoryNode" />
               <item name="mybusiness" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
+              <item name="templates" type="462c0819:PsiDirectoryNode" />
             </path>
           </expand>
           <select />
         </subPane>
       </pane>
-      <pane id="PackagesPane" />
-      <pane id="AndroidView" />
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
+    <property name="RequestMappingsPanelOrder0" value="0" />
+    <property name="RequestMappingsPanelOrder1" value="1" />
+    <property name="RequestMappingsPanelWidth0" value="75" />
+    <property name="RequestMappingsPanelWidth1" value="75" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
+    <property name="dynamic.classpath" value="true" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
-    <property name="settings.editor.selected.configurable" value="MavenSettings" />
+    <property name="project.structure.last.edited" value="Project" />
+    <property name="project.structure.proportion" value="0.0" />
+    <property name="project.structure.side.proportion" value="0.0" />
+    <property name="settings.editor.selected.configurable" value="reference.projectsettings.compiler.javacompiler" />
   </component>
   <component name="RunDashboard">
     <option name="ruleStates">
@@ -163,6 +238,16 @@
       </option>
       <patterns />
     </configuration>
+    <configuration name="LeispApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
+      <module name="leisp-admin" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="SPRING_BOOT_MAIN_CLASS" value="com.LeispApplication" />
+    </configuration>
     <configuration default="true" type="TestNG" factoryName="TestNG">
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
@@ -185,6 +270,11 @@
       <properties />
       <listeners />
     </configuration>
+    <recent_temporary>
+      <list>
+        <item itemvalue="Spring Boot.LeispApplication" />
+      </list>
+    </recent_temporary>
   </component>
   <component name="SvnConfiguration">
     <configuration>C:\Users\Administrator\AppData\Roaming\Subversion</configuration>
@@ -196,48 +286,82 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1665211777232</updated>
-      <workItem from="1665211783486" duration="1220000" />
+      <workItem from="1665211783486" duration="5317000" />
+      <workItem from="1665271580631" duration="6601000" />
+      <workItem from="1665305906966" duration="1232000" />
+      <workItem from="1665308240063" duration="810000" />
+      <workItem from="1665318635325" duration="1897000" />
+      <workItem from="1665359355827" duration="5731000" />
+    </task>
+    <task id="LOCAL-00001" summary="http">
+      <created>1665216030960</created>
+      <option name="number" value="00001" />
+      <option name="presentableId" value="LOCAL-00001" />
+      <option name="project" value="LOCAL" />
+      <updated>1665216030960</updated>
+    </task>
+    <task id="LOCAL-00002" summary="http">
+      <created>1665298116689</created>
+      <option name="number" value="00002" />
+      <option name="presentableId" value="LOCAL-00002" />
+      <option name="project" value="LOCAL" />
+      <updated>1665298116689</updated>
     </task>
+    <task id="LOCAL-00003" summary="http">
+      <created>1665299113207</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1665299113207</updated>
+    </task>
+    <task id="LOCAL-00004" summary="http">
+      <created>1665319094370</created>
+      <option name="number" value="00004" />
+      <option name="presentableId" value="LOCAL-00004" />
+      <option name="project" value="LOCAL" />
+      <updated>1665319094370</updated>
+    </task>
+    <option name="localTasksCounter" value="5" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="1220000" />
+    <option name="totallyTimeSpent" value="21588000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
-    <editor active="true" />
+    <frame x="1968" y="55" width="1918" height="1038" extended-state="0" />
     <layout>
-      <window_info anchor="right" id="Palette" />
-      <window_info anchor="bottom" id="Event Log" side_tool="true" />
-      <window_info anchor="right" id="Maven Projects" />
-      <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" />
-      <window_info id="Capture Tool" />
-      <window_info id="Designer" />
-      <window_info anchor="right" id="Database" />
+      <window_info anchor="right" id="Palette" order="3" />
+      <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
+      <window_info anchor="right" id="Maven Projects" order="3" visible="true" weight="0.13832077" />
+      <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
+      <window_info id="Capture Tool" order="2" />
+      <window_info id="Designer" order="2" />
+      <window_info anchor="right" id="Database" order="3" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info id="UI Designer" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
+      <window_info id="UI Designer" order="2" />
+      <window_info anchor="bottom" id="Debug" order="3" visible="true" weight="0.24263039" />
       <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="right" id="Palette&#9;" />
-      <window_info id="Image Layers" />
-      <window_info anchor="bottom" id="Java Enterprise" />
-      <window_info anchor="right" id="Capture Analysis" />
-      <window_info anchor="bottom" id="Version Control" />
-      <window_info anchor="bottom" id="Run" order="2" />
-      <window_info anchor="bottom" id="Spring" />
-      <window_info anchor="bottom" id="Terminal" />
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25" />
-      <window_info anchor="right" id="Bean Validation" />
-      <window_info id="Web" side_tool="true" />
-      <window_info anchor="right" id="Theme Preview" />
-      <window_info id="Favorites" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" order="7" weight="0.4511111" />
+      <window_info anchor="right" id="Palette&#9;" order="3" />
+      <window_info id="Image Layers" order="2" />
+      <window_info anchor="bottom" id="Java Enterprise" order="7" />
+      <window_info anchor="right" id="Capture Analysis" order="3" />
+      <window_info anchor="bottom" id="Version Control" order="7" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.08555555" />
+      <window_info anchor="bottom" id="Spring" order="7" />
+      <window_info anchor="bottom" id="Terminal" order="7" weight="0.36847946" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.19052745" />
+      <window_info anchor="right" id="Bean Validation" order="3" />
+      <window_info id="Web" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Theme Preview" order="3" />
+      <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
     </layout>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -246,17 +370,430 @@
   <component name="VcsContentAnnotationSettings">
     <option name="myLimit" value="2678400000" />
   </component>
+  <component name="VcsManagerConfiguration">
+    <MESSAGE value="http" />
+    <option name="LAST_COMMIT_MESSAGE" value="http" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <option name="time" value="3" />
+    </breakpoint-manager>
+  </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/resources/application-druid.yml">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="420">
-          <caret line="14" column="104" lean-forward="true" selection-start-line="14" selection-start-column="104" selection-end-line="14" selection-end-column="104" />
+          <caret line="14" column="104" selection-start-line="14" selection-start-column="104" selection-end-line="14" selection-end-column="104" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/poi/ExcelUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="25440">
+          <caret line="848" column="5" selection-start-line="848" selection-start-column="5" selection-end-line="848" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/core/text/Convert.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="16800">
+          <caret line="560" column="24" selection-start-line="560" selection-start-column="16" selection-end-line="560" selection-end-column="24" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/file/MimeTypeUtils.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1260">
+          <caret line="42" column="15" selection-start-line="42" selection-start-column="15" selection-end-line="42" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/xss/XssFilter.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2730">
+          <caret line="91" lean-forward="true" selection-start-line="91" selection-end-line="91" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="8250">
+          <caret line="275" column="21" selection-start-line="275" selection-start-column="21" selection-end-line="275" selection-end-column="21" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/resources/application-druid.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="420">
+          <caret line="14" column="104" selection-start-line="14" selection-start-column="104" selection-end-line="14" selection-end-column="104" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/java/com/LeispApplication.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="420">
+          <caret line="14" column="49" lean-forward="true" selection-start-line="14" selection-start-column="49" selection-end-line="14" selection-end-column="49" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/resources/application.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1290">
+          <caret line="43" column="5" lean-forward="true" selection-start-line="43" selection-start-column="5" selection-end-line="43" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/java/com/LeispApplication.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="270">
+          <caret line="14" column="49" selection-start-line="14" selection-start-column="49" selection-end-line="14" selection-end-column="49" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/resources/application.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="610">
+          <caret line="62" column="5" selection-start-line="43" selection-start-column="5" selection-end-line="62" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/.gitignore">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-generator/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="150">
+          <caret line="5" column="25" selection-start-line="5" selection-start-column="25" selection-end-line="5" selection-end-column="25" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-quartz/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="150">
+          <caret line="5" column="25" selection-start-line="5" selection-start-column="25" selection-end-line="5" selection-end-column="25" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="180">
+          <caret line="6" column="36" lean-forward="true" selection-start-line="6" selection-start-column="36" selection-end-line="6" selection-end-column="36" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-framework/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="132">
+          <caret line="92" column="33" selection-start-line="92" selection-start-column="30" selection-end-line="92" selection-end-column="33" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="330">
+          <caret line="11" column="28" selection-start-line="11" selection-start-column="22" selection-end-line="11" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sz_jian.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="330">
+          <caret line="11" column="9" lean-forward="true" selection-start-line="11" selection-start-column="9" selection-end-line="11" selection-end-column="9" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-system/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="236">
+          <caret line="30" lean-forward="true" selection-start-line="30" selection-end-line="30" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1160">
+          <caret line="291" column="21" selection-start-line="291" selection-start-column="21" selection-end-line="291" selection-end-column="21" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/core/domain/BaseEntity.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="155">
+          <caret line="104" column="32" selection-start-line="104" selection-start-column="32" selection-end-line="104" selection-end-column="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/config/datasource/DynamicDataSourceContextHolder.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="18" column="77" selection-start-line="18" selection-start-column="77" selection-end-line="18" selection-end-column="77" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/html/HTMLFilter.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="104" column="30" selection-start-line="104" selection-start-column="30" selection-end-line="104" selection-end-column="30" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/xss/XssFilter.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2700">
+          <caret line="90" lean-forward="true" selection-start-line="90" selection-end-line="90" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/resources/application-druid.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="420">
+          <caret line="14" column="104" selection-start-line="14" selection-start-column="104" selection-end-line="14" selection-end-column="104" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/core/text/Convert.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="15450">
+          <caret line="560" column="24" selection-start-line="560" selection-start-column="16" selection-end-line="560" selection-end-column="24" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/file/MimeTypeUtils.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="237">
+          <caret line="45" column="19" selection-start-line="45" selection-start-column="19" selection-end-line="45" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/utils/poi/ExcelUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="847" column="33" selection-start-line="847" selection-start-column="33" selection-end-line="847" selection-end-column="33" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://D:/Program Files/Java/jdk1.8.0_151/src.zip!/java/util/function/Function.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-385">
+          <caret line="48" column="6" selection-start-line="48" selection-start-column="6" selection-end-line="48" selection-end-column="6" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-system/src/main/java/com/sooka/system/service/impl/SysDeptServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="155">
+          <caret line="330" column="33" selection-start-line="330" selection-start-column="33" selection-end-line="330" selection-end-column="33" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-system/src/main/java/com/sooka/system/service/impl/SysMenuServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="215">
+          <caret line="115" column="9" selection-start-line="115" selection-start-column="9" selection-end-line="115" selection-end-column="9" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-system/src/main/java/com/sooka/system/service/impl/SysRoleServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="155">
+          <caret line="75" column="42" selection-start-line="75" selection-start-column="42" selection-end-line="75" selection-end-column="42" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-quartz/src/main/java/com/sooka/quartz/util/JobInvokeUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="155">
+          <caret line="113" column="49" selection-start-line="113" selection-start-column="49" selection-end-line="113" selection-end-column="49" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-generator/src/main/java/com/sooka/generator/service/impl/GenTableServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="211" column="9" selection-start-line="211" selection-start-column="9" selection-end-line="211" selection-end-column="9" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-framework/src/main/java/com/sooka/framework/config/DruidConfig.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="297">
+          <caret line="60" selection-start-line="60" selection-end-line="60" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-framework/src/main/java/com/sooka/framework/config/ShiroConfig.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="215">
+          <caret line="272" lean-forward="true" selection-start-line="272" selection-end-line="272" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-quartz/src/main/java/com/sooka/quartz/util/AbstractQuartzJob.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="177">
+          <caret line="32" selection-start-line="32" selection-end-line="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/src/main/java/com/sooka/web/controller/system/SysUserController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="210">
+          <caret line="149" column="43" selection-start-line="149" selection-start-column="43" selection-end-line="149" selection-end-column="43" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/src/main/java/com/business/slfh/tools/businessschedu/CarSchedu.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="245">
+          <caret line="77" column="7" selection-start-line="77" selection-start-column="7" selection-end-line="77" selection-end-column="7" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/src/main/java/com/business/slfh/visualization/event/controller/Visualization_Event_Controller.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="155">
+          <caret line="224" column="62" selection-start-line="224" selection-start-column="62" selection-end-line="224" selection-end-column="62" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/src/main/java/com/business/slfh/dahua/controller/Dahua2BController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="240">
+          <caret line="11" column="16" selection-start-line="11" selection-start-column="16" selection-end-line="11" selection-end-column="16" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#368#369#0" expanded="true" />
+            <element signature="e#417#418#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-admin/pom.xml">
+      <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-3459">
+          <caret line="5" column="25" selection-start-line="5" selection-start-column="20" selection-end-line="5" selection-end-column="25" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/bin/package.bat">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="300">
+          <caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/src/main/resources/templates/business/manager/cameramanager/index.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="480">
+          <caret line="178" column="30" lean-forward="true" selection-start-line="178" selection-start-column="30" selection-end-line="178" selection-end-column="30" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/src/main/resources/mapper/grid/manager/TResCameraMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="440">
+          <caret line="72" column="13" lean-forward="true" selection-start-line="72" selection-start-column="13" selection-end-line="72" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mybusiness/src/main/java/com/business/slfh/manager/cameramanager/service/impl/TResCameraServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="260">
+          <caret line="50" column="10" lean-forward="true" selection-start-line="50" selection-start-column="10" selection-end-line="50" selection-end-column="10" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-common/src/main/java/com/sooka/common/annotation/DataScope.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="200">
+          <caret line="16" column="27" selection-start-line="16" selection-start-column="18" selection-end-line="16" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/leiSP-framework/src/main/java/com/sooka/framework/aspectj/DataScopeAspect.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="207">
+          <caret line="110" column="9" lean-forward="true" selection-start-line="110" selection-start-column="9" selection-end-line="110" selection-end-column="9" />
+          <folding>
+            <element signature="e#847#848#0" expanded="true" />
+            <element signature="e#926#927#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
   </component>
   <component name="masterDetails">
     <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <last-edited>leisp-admin:war</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+                <option value="0.5" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <last-edited>Spring</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.8</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>leisp-admin</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
       <state key="ProjectJDKs.UI">
         <settings>
           <last-edited>1.8</last-edited>
@@ -269,6 +806,18 @@
           </splitter-proportions>
         </settings>
       </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>Maven: ch.qos.logback:logback-classic:1.2.3</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
     </states>
   </component>
 </project>

+ 2 - 0
leiSP-admin/leisp-admin.iml

@@ -22,6 +22,8 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: com.leisp:leiSP-framework:unknown" level="project" />
+    <orderEntry type="library" name="Maven: com.leisp:leiSP-generator:unknown" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.1.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.1.RELEASE" level="project" />

+ 9 - 1
leiSP-admin/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -115,6 +115,14 @@
                     <!--<warName>${project.artifactId}</warName>-->
                 </configuration>
            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
         </plugins>
         <finalName>${project.artifactId}</finalName>
     </build>

+ 2 - 2
leiSP-admin/src/main/resources/templates/index.html

@@ -191,7 +191,7 @@
                 <span class="index-tit">辉南县数字乡村高空“鹰眼”综合服务平台</span>
                 <ul class="nav navbar-top-links navbar-right welcome-message">
                     <!--<li><a id="dsq" title="电视墙" onclick="window.open('https://122.141.177.213:9090/dahua/demo-dsd.html?deptId=100')">电视墙</a></li>-->
-                    <li><a title="插件下载" href="https://122.141.177.213:9090/soft/slfhplug.zip" target="_blank">插件下载</a></li>
+                    <li><a title="插件下载" href="http://117.78.49.164:9091/soft/slfhplug.zip" target="_blank">插件下载</a></li>
                     <li><a title="安卓APP" onclick="showappcode()" onmouseover="$('#appcode').show(100)"
                            onmouseout="$('#appcode').hide(100)">安卓APP</a>
                         <image src="img/appcode.png" id="appcode"
@@ -337,7 +337,7 @@
                 url :"/getuserinfo",
                 success : function (e) {
                     console.log(e)
-                    $("#dsq").attr("href","https://122.141.177.213:9090/dahua/demo-dsd.html?deptId="+e.data.deptId)
+                    $("#dsq").attr("href","http://117.78.49.164:9091/dahua/demo-dsd.html?deptId="+e.data.deptId)
                 }
             })
 

+ 13 - 1
leiSP-common/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -14,6 +14,18 @@
     <description>
         common通用工具
     </description>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
     <dependencies>
 

+ 2 - 2
leiSP-common/src/main/java/com/sooka/common/config/datasource/DynamicDataSourceContextHolder.java

@@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
 
 /**
  * 数据源切换处理
- * 
+ *
  * @author lei_wang
  */
 public class DynamicDataSourceContextHolder
@@ -16,7 +16,7 @@ public class DynamicDataSourceContextHolder
      * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
      *  所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
      */
-    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();
+    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal();
 
     /**
      * 设置数据源的变量

+ 2 - 2
leiSP-common/src/main/java/com/sooka/common/core/domain/BaseEntity.java

@@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * Entity基类
- * 
+ *
  * @author lei_wang
  */
 public class BaseEntity implements Serializable
@@ -102,7 +102,7 @@ public class BaseEntity implements Serializable
     {
         if (params == null)
         {
-            params = new HashMap<>();
+            params = new HashMap();
         }
         return params;
     }

+ 10 - 10
leiSP-common/src/main/java/com/sooka/common/utils/html/HTMLFilter.java

@@ -46,8 +46,8 @@ public final class HTMLFilter
     private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>");
 
     // @xxx could grow large... maybe use sesat's ReferenceMap
-    private static final ConcurrentMap<String, Pattern> P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap<>();
-    private static final ConcurrentMap<String, Pattern> P_REMOVE_SELF_BLANKS = new ConcurrentHashMap<>();
+    private static final ConcurrentMap<String, Pattern> P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap();
+    private static final ConcurrentMap<String, Pattern> P_REMOVE_SELF_BLANKS = new ConcurrentHashMap();
 
     /**
      * set of allowed html elements, along with allowed attributes for each element
@@ -56,7 +56,7 @@ public final class HTMLFilter
     /**
      * counts of open tags for each (allowable) html element
      **/
-    private final Map<String, Integer> vTagCounts = new HashMap<>();
+    private final Map<String, Integer> vTagCounts = new HashMap();
 
     /**
      * html elements which must always be self-closing (e.g. "<img />")
@@ -102,21 +102,21 @@ public final class HTMLFilter
      */
     public HTMLFilter()
     {
-        vAllowed = new HashMap<>();
+        vAllowed = new HashMap();
 
-        final ArrayList<String> a_atts = new ArrayList<>();
+        final ArrayList<String> a_atts = new ArrayList();
         a_atts.add("href");
         a_atts.add("target");
         vAllowed.put("a", a_atts);
 
-        final ArrayList<String> img_atts = new ArrayList<>();
+        final ArrayList<String> img_atts = new ArrayList();
         img_atts.add("src");
         img_atts.add("width");
         img_atts.add("height");
         img_atts.add("alt");
         vAllowed.put("img", img_atts);
 
-        final ArrayList<String> no_atts = new ArrayList<>();
+        final ArrayList<String> no_atts = new ArrayList();
         vAllowed.put("b", no_atts);
         vAllowed.put("strong", no_atts);
         vAllowed.put("i", no_atts);
@@ -358,8 +358,8 @@ public final class HTMLFilter
 
                 final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body);
                 final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body);
-                final List<String> paramNames = new ArrayList<>();
-                final List<String> paramValues = new ArrayList<>();
+                final List<String> paramNames = new ArrayList();
+                final List<String> paramValues = new ArrayList();
                 while (m2.find())
                 {
                     paramNames.add(m2.group(1)); // ([a-z0-9]+)
@@ -567,4 +567,4 @@ public final class HTMLFilter
     {
         return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName));
     }
-}
+}

+ 1 - 1
leiSP-common/src/main/java/com/sooka/common/utils/poi/ExcelUtil.java

@@ -823,7 +823,7 @@ public class ExcelUtil<T>
     private void createExcelField()
     {
         this.fields = new ArrayList<Object[]>();
-        List<Field> tempFields = new ArrayList<>();
+        List<Field> tempFields = new ArrayList();
         tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields()));
         tempFields.addAll(Arrays.asList(clazz.getDeclaredFields()));
         for (Field field : tempFields)

+ 6 - 6
leiSP-common/src/main/java/com/sooka/common/xss/XssFilter.java

@@ -17,7 +17,7 @@ import com.sooka.common.utils.StringUtils;
 
 /**
  * 防止XSS攻击的过滤器
- * 
+ *
  * @author lei_wang
  */
 public class XssFilter implements Filter
@@ -25,14 +25,14 @@ public class XssFilter implements Filter
     /**
      * 排除链接
      */
-    public List<String> excludes = new ArrayList<>();
+    public List<String> excludes = new ArrayList();
 
     /**
      * xss过滤开关
      */
     public boolean enabled = false;
 
-    @Override
+
     public void init(FilterConfig filterConfig) throws ServletException
     {
         String tempExcludes = filterConfig.getInitParameter("excludes");
@@ -51,7 +51,7 @@ public class XssFilter implements Filter
         }
     }
 
-    @Override
+
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
             throws IOException, ServletException
     {
@@ -89,9 +89,9 @@ public class XssFilter implements Filter
         return false;
     }
 
-    @Override
+
     public void destroy()
     {
 
     }
-}
+}

+ 1 - 1
leiSP-framework/leisp-framework.iml

@@ -10,7 +10,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">

+ 14 - 2
leiSP-framework/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -14,6 +14,18 @@
     <description>
         framework框架核心
     </description>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
     <dependencies>
 
@@ -95,4 +107,4 @@
 
     </dependencies>
 
-</project>
+</project>

+ 1 - 1
leiSP-generator/leisp-generator.iml

@@ -10,7 +10,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">

+ 14 - 2
leiSP-generator/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -14,6 +14,18 @@
     <description>
         generator代码生成
     </description>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
     <dependencies>
 
@@ -31,4 +43,4 @@
 
     </dependencies>
 
-</project>
+</project>

+ 1 - 1
leiSP-quartz/leisp-quartz.iml

@@ -10,7 +10,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">

+ 14 - 2
leiSP-quartz/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -14,6 +14,18 @@
     <description>
         quartz定时任务
     </description>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
     <dependencies>
 
@@ -37,4 +49,4 @@
 
     </dependencies>
 
-</project>
+</project>

+ 1 - 1
leiSP-system/leisp-system.iml

@@ -10,7 +10,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">

+ 18 - 1
leiSP-system/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -14,6 +14,18 @@
     <description>
         system系统模块
     </description>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
     <dependencies>
 
@@ -27,4 +39,9 @@
 
     </dependencies>
 
+
+
+
+
+
 </project>

+ 15 - 15
leiSP-system/src/main/java/com/sooka/system/service/impl/SysDeptServiceImpl.java

@@ -22,7 +22,7 @@ import javax.annotation.Resource;
 
 /**
  * 部门管理 服务实现
- * 
+ *
  * @author lei_wang
  */
 @Service
@@ -35,7 +35,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 查询部门管理数据
-     * 
+     *
      * @param dept 部门信息
      * @return 部门信息集合
      */
@@ -48,7 +48,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 查询部门管理树
-     * 
+     *
      * @param dept 部门信息
      * @return 所有部门信息
      */
@@ -63,7 +63,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 查询部门管理树(排除下级)
-     * 
+     *
      * @param dept 部门
      * @return 所有部门信息
      */
@@ -155,7 +155,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 查询部门人数
-     * 
+     *
      * @param parentId 部门ID
      * @return 结果
      */
@@ -169,7 +169,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 查询部门是否存在用户
-     * 
+     *
      * @param deptId 部门ID
      * @return 结果 true 存在 false 不存在
      */
@@ -182,7 +182,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 删除部门管理信息
-     * 
+     *
      * @param deptId 部门ID
      * @return 结果
      */
@@ -194,7 +194,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 新增保存部门信息
-     * 
+     *
      * @param dept 部门信息
      * @return 结果
      */
@@ -213,7 +213,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 修改保存部门信息
-     * 
+     *
      * @param dept 部门信息
      * @return 结果
      */
@@ -241,7 +241,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 修改该部门的父级部门状态
-     * 
+     *
      * @param dept 当前部门
      */
     private void updateParentDeptStatus(SysDept dept)
@@ -254,7 +254,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 修改子元素关系
-     * 
+     *
      * @param deptId 被修改的部门ID
      * @param newAncestors 新的父ID集合
      * @param oldAncestors 旧的父ID集合
@@ -274,7 +274,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 根据部门ID查询信息
-     * 
+     *
      * @param deptId 部门ID
      * @return 部门信息
      */
@@ -286,7 +286,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 根据ID查询所有子部门(正常状态)
-     * 
+     *
      * @param deptId 部门ID
      * @return 子部门数
      */
@@ -298,7 +298,7 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     /**
      * 校验部门名称是否唯一
-     * 
+     *
      * @param dept 部门信息
      * @return 结果
      */
@@ -328,7 +328,7 @@ public class SysDeptServiceImpl implements ISysDeptService
     public Long[] getDeptIdsByUserId(Long userId){
         Long deptId = sysUserMapper.selectUserById(userId).getDeptId();
         List<SysDept> sysDeptList = deptMapper.selectDeptList(new SysDept());
-        Map deptMap = new HashMap<>();
+        Map deptMap = new HashMap();
         for (int i = 0; i < sysDeptList.size(); i++) {
             deptMap.put(sysDeptList.get(i).getDeptId(),sysDeptList.get(i).getParentId());
         }

+ 1 - 1
leiSP-system/src/main/java/com/sooka/system/service/impl/SysRoleServiceImpl.java

@@ -73,7 +73,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     public Set<String> selectRoleKeys(Long userId)
     {
         List<SysRole> perms = roleMapper.selectRolesByUserId(userId);
-        Set<String> permsSet = new HashSet<>();
+        Set<String> permsSet = new HashSet();
         for (SysRole perm : perms)
         {
             if (StringUtils.isNotNull(perm))

+ 13 - 1
mybusiness/pom.xml

@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sz_jian</artifactId>
+        <artifactId>sz_hn</artifactId>
         <groupId>com.leisp</groupId>
         <version>1.0.0</version>
     </parent>
@@ -15,6 +15,18 @@
     <description>
         业务模块
     </description>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
     <dependencies>
 

+ 14 - 0
mybusiness/src/main/java/com/business/slfh/dahua/controller/Dahua2BController.java

@@ -0,0 +1,14 @@
+package com.business.slfh.dahua.controller;
+
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class Dahua2BController {
+
+    @RequestMapping("getDahua2BStr")
+    public void getDahua2BMapping(String str){
+        System.out.println("2bStr=="+str);
+    }
+}

+ 4 - 1
mybusiness/src/main/resources/mapper/grid/manager/TUEventOthersMapper.xml

@@ -34,7 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <sql id="selectTUEventOthersVo">
         select
         (select dept_name from sys_dept where dept_id=t.dept_id) dept_name,
-        t.create_user_id, t.dept_id, t.user_id, t.camera_id, t.needhelp, t.id, t.status, t.remark, t.del_flag, t.create_by, t.create_time, t.update_by, t.update_time, t.name, t.report_type, t.report_content, t.report_time, t.reportor, t.longitude, t.latitude, t.event_status, t.event_level, t.dept_id, t.reserveplan_type from t_u_event_others t
+        t.create_user_id, t.dept_id, t.user_id, t.camera_id, t.needhelp, t.id, t.status, t.remark, t.del_flag, t.create_by, t.create_time, t.update_by, t.update_time, t.name, t.report_type, t.report_content, t.report_time, t.reportor, t.longitude, t.latitude, t.event_status, t.event_level, t.dept_id, t.reserveplan_type, t.report_area from t_u_event_others t
     </sql>
 
     <select id="selectTUEventOthersList" parameterType="TUEventOthers" resultMap="TUEventOthersResult">
@@ -101,6 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="needhelp != null">needhelp,</if>
             <if test="reserveplanType != null">reserveplan_type,</if>
             <if test="createUserId != null">create_user_id,</if>
+            <if test="reportArea != null">report_area,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null and id != ''">#{id},</if>
@@ -126,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="needhelp != null">#{needhelp},</if>
             <if test="reserveplanType != null">#{reserveplanType},</if>
             <if test="createUserId != null">#{createUserId},</if>
+            <if test="reportArea != null">#{reportArea},</if>
         </trim>
     </insert>
 
@@ -154,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="needhelp != null">needhelp = #{needhelp},</if>
             <if test="reserveplanType != null">reserveplan_type=#{reserveplanType},</if>
             <if test="createUserId != null">create_user_id = #{createUserId},</if>
+            <if test="reportArea != null">report_rea = #{reportArea},</if>
         </trim>
         where id = #{id}
     </update>

+ 1 - 1
mybusiness/src/main/resources/mapper/grid/visualization/Visualization_Event_Mapper.xml

@@ -588,7 +588,7 @@
         </if>
         <if test="reservePlanType != 'reserveplan_type_1'">
             ID,NAME,REPORT_TYPE,REPORT_CONTENT,REPORT_TIME,REPORTOR,LONGITUDE,LATITUDE,
-            EVENT_STATUS,EVENT_LEVEL,RESERVEPLAN_TYPE
+            EVENT_STATUS,EVENT_LEVEL,RESERVEPLAN_TYPE,REPORT_AREA
         </if>
         from
             <if test="reservePlanType == 'reserveplan_type_1'">

+ 5 - 5
mybusiness/src/main/resources/templates/business/manager/cameramanager/index.html

@@ -170,13 +170,13 @@
                     field: 'address',
                     title: '详细地址'
                 },
-                {
-                    field: 'orgDeptName',
-                    title: '所属政府部门'
-                },
+                // {
+                //     field: 'orgDeptName',
+                //     title: '所属政府部门'
+                // },
                 {
                     field: 'deptName',
-                    title: '所属林场部门'
+                    title: '所属部门'
                 },
                 {
                     title: '操作',

+ 2 - 2
mybusiness/src/main/resources/templates/business/visualization/details.html

@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <title>智慧林业森林防火</title>
+    <title>数字乡村</title>
     <link rel="stylesheet" th:href="@{/visualization/images/layui.css}">
     <link rel="stylesheet" th:href="@{/visualization/images/zhly_body.css}">
     <link rel="stylesheet" th:href="@{/visualization/images/zhly_page.css}">
@@ -443,7 +443,7 @@
 
     function play_preview(hik_ip,hik_port,hik_username,hik_password) {
         // window.open('/business/manager/hikcameracontroller/demo_window_simple_preview?hik_cameraid='+hik_cameraid)
-        window.open('https://122.141.177.213:9090/dahua/demo-jkd.html?hik_ip='+hik_ip+'&hik_username='+hik_username+"&hik_password="+hik_password+"&port="+hik_port)
+        window.open('http://117.78.49.164:9091/dahua/demo-jkd.html?hik_ip='+hik_ip+'&hik_username='+hik_username+"&hik_password="+hik_password+"&port="+hik_port)
     }
 
 

+ 1 - 1
mybusiness/src/main/resources/templates/business/visualization/evemt.html

@@ -274,7 +274,7 @@
     <div class="fr timing">
         <div class="xl_select fl">
             <div class="se_div clearfix">
-                <p class="on"><span class="jkd"><a href="https://122.141.177.213:9090/dahua/demo-dsd.html">电视墙</a></span><i></i></p>
+                <p class="on"><span class="jkd"><a href="http://117.78.49.164:9091/dahua/demo-dsd.html">电视墙</a></span><i></i></p>
                 <p class="on"><span class="jkd"><a>监控端</a></span><i></i></p>
                 <p><span class="gld"><a th:href="@{/index}" target="_blank">管理端</a></span><i></i></p>
                 <p><span class="dsjd"><a th:href="@{/bigdata/inspection/getBigDataInspection}" target="_blank">大数据端</a></span><i></i></p>

+ 8 - 5
mybusiness/src/main/resources/templates/business/visualization/event.html

@@ -5,7 +5,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <title>智慧林业森林防火</title>
+    <title>数字乡村</title>
     <link rel="stylesheet" th:href="@{/visualization/images/zhly_body.css}">
     <!-- 全局js -->
     <script th:src="@{/js/jquery.min.js}"></script>
@@ -194,7 +194,7 @@
 <!--	头部  开始-->
 
 <div class="header clearfix">
-    <div class="logo_text">集安市智慧林业监管平台</div>
+    <div class="logo_text">辉南县数字乡村高空“鹰眼”综合服务平台</div>
     <div class="fl logo"><img th:src="@{/visualization/images/zhly_tit2.png}"/></div>
     <div class="fr timing">
         <div class="xl_select fl">
@@ -202,8 +202,8 @@
 
                 <p class="on"><span class="jkd"><a>监控端</a></span><i></i></p>
                 <p><span class="gld"><a th:href="@{/index}" target="_blank">管理端</a></span><i></i></p>
-                <p><span class="dsjd"><a th:href="@{/bigdata/inspection/getBigDataInspection}" target="_blank">大数据端</a></span><i></i></p>
-                <p><span class="dsq"><a id="dsq" href="https://122.141.177.213:9090/dahua/demo-dsd.html?deptId="[[${deptId}]] >电视墙</a></span><i></i></p>
+                <!--<p><span class="dsjd"><a th:href="@{/bigdata/inspection/getBigDataInspection}" target="_blank">大数据端</a></span><i></i></p>-->
+                <p><span class="dsq"><a id="dsq" href="http://117.78.49.164:9091/dahua/demo-dsd.html?deptId="[[${deptId}]] >电视墙</a></span><i></i></p>
             </div>
 
         </div>
@@ -336,6 +336,9 @@
 
     <label><input type="checkbox"  name="leftNav" id="sy" />水源</label>
     <label><input type="checkbox"  name="leftNav" id="jywz" />救援物资</label>
+    <label><input type="checkbox"  name="leftNav" id="jgfs" />秸秆焚烧</label>
+    <label><input type="checkbox"  name="leftNav" id="fxfk" />防汛防控</label>
+    <label><input type="checkbox"  name="leftNav" id="ysdw" />野生动物</label>
 </div>
 <!--事件 左侧导航 结束-->
 <!--森林 左侧导航 开始-->
@@ -361,7 +364,7 @@
     });
 
     $(document).ready(function () {
-        $("#dsq").attr("href","https://122.141.177.213:9090/dahua/demo-dsd.html?deptId="+[[${deptId}]])
+        $("#dsq").attr("href","http://117.78.49.164:9091/dahua/demo-dsd.html?deptId="+[[${deptId}]])
     });
 </script>
 </html>

+ 13 - 7
mybusiness/src/main/resources/templates/business/visualization/frame.html

@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <title>智慧梨树监管平台</title>
+    <title>数字乡村</title>
     <link rel="stylesheet" th:href="@{/visualization/images/zhly_body.css}">
     <link rel="stylesheet" th:href="@{/visualization/images/zhly_page.css}">
 </head>
@@ -31,6 +31,9 @@
                     <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_3'">偷盗偷猎:</span>
                     <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_4'">乱砍乱伐:</span>
                     <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_5'">偷砂采石:</span>
+                    <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_6'">秸秆焚烧:</span>
+                    <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_7'">防汛防控:</span>
+                    <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_8'">野生动物:</span>
                     [[${veec.COUNT}]]
                 </li>
             </ul>
@@ -51,6 +54,9 @@
                     <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_3'">偷盗偷猎:</span>
                     <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_4'">乱砍乱伐:</span>
                     <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_5'">偷砂采石:</span>
+                    <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_6'">秸秆焚烧:</span>
+                    <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_7'">防汛防控:</span>
+                    <span th:if="${veec.RESERVEPLAN_TYPE} eq 'reserveplan_type_8'">野生动物:</span>
                     [[${veec.COUNT}]]
                 </li>
             </ul>
@@ -131,7 +137,7 @@
         <h3>新事件</h3>
     </div>
     <ul class="zhly_list1" id="newEvent">
-        <li th:each="vpl : ${Visualization_Pending_List}">
+        <li th:each="vpl : ${Visualization_Pending_List}" th:if="${vpl.EVENT_STATUS eq 'event_status_1' || vpl.EVENT_SIGN eq '0'}">
             <a th:if="${vpl.EVENT_STATUS eq 'event_status_1' || vpl.EVENT_SIGN eq '0'}" th:onclick="flyTo([[${vpl.LATITUDE}]],[[${vpl.LONGITUDE}]])">
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_1'" class="slfh">森林防火</i>
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_2'" class="bch">病虫害</i>
@@ -141,7 +147,7 @@
                 <span th:text="${vpl.NAME}"/>
             </a>
             <div class="clear"></div>
-            <p>
+            <p th:if="${vpl.EVENT_STATUS eq 'event_status_1' || vpl.EVENT_SIGN eq '0'}">
                 <span class="fr">上报时间:<span th:text="${vpl.REPORT_TIME}"/></span>
             </p>
             <script>
@@ -153,7 +159,7 @@
         <h3>处理中</h3>
     </div>
     <ul class="zhly_list1">
-        <li th:each="vpl : ${Visualization_Pending_List}">
+        <li th:each="vpl : ${Visualization_Pending_List}" th:if="${vpl.EVENT_STATUS} eq 'event_status_2'" >
             <a th:if="${vpl.EVENT_STATUS eq 'event_status_2' && vpl.EVENT_SIGN eq '1'}" th:onclick="flyTo([[${vpl.LATITUDE}]],[[${vpl.LONGITUDE}]])">
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_1'" class="slfh">森林防火</i>
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_2'" class="bch">病虫害</i>
@@ -162,7 +168,7 @@
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_5'" class="tscs">偷砂采石</i>
                 <span th:text="${vpl.NAME}"/>
                 <div class="clear"></div>
-                <p>
+                <p th:if="${vpl.EVENT_STATUS} eq 'event_status_2'" >
                     <span class="fr">上报时间:<span th:text="${vpl.REPORT_TIME}"/></span>
                 </p>
             </a>
@@ -173,7 +179,7 @@
         <h3>已办结</h3>
     </div>
     <ul class="zhly_list1">
-        <li th:each="vpl : ${Visualization_Pending_List}">
+        <li th:each="vpl : ${Visualization_Pending_List}" th:if="${vpl.EVENT_STATUS} eq 'event_status_4'" >
             <a th:if="${vpl.EVENT_STATUS} eq 'event_status_4'" th:onclick="flyTo([[${vpl.LATITUDE}]],[[${vpl.LONGITUDE}]])">
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_1'" class="slfh">森林防火</i>
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_2'" class="bch">病虫害</i>
@@ -182,7 +188,7 @@
                 <i th:if="${vpl.RESERVEPLAN_TYPE} eq 'reserveplan_type_5'" class="tscs">偷砂采石</i>
                 <span th:text="${vpl.NAME}"/>
                 <div class="clear"></div>
-                <p>
+                <p th:if="${vpl.EVENT_STATUS} eq 'event_status_4'" >
                     <span class="fr">上报时间:<span th:text="${vpl.REPORT_TIME}"/></span>
                 </p>
             </a>

+ 153 - 3
mybusiness/src/main/resources/templates/business/visualization/map.html

@@ -5,7 +5,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <link rel="stylesheet" th:href="@{/visualization/images/zhly_body.css}">
-    <link th:href="@{/css/bootstrap.min.css}" rel="stylesheet">
+    <link th:href="@{/visualization/superMap/libs/bootstrap/css/bootstrap.min.css}" rel="stylesheet">
 </head>
 <body id="iframe_body" style=" margin: 0;overflow: hidden;width: 100%;height:100%;position: absolute;top: 0;">
 <label id="distanceLength"></label>
@@ -190,6 +190,132 @@
         func(true);
     }
 
+    /**
+     * 添加秸秆焚烧mark
+     * */
+    function jgfsMarker(option,func){
+        var iconUrl = '[[@{/visualization/images/bug.gif}]]';
+        if(option.status == 'event_status_1'){
+            iconUrl = '[[@{/visualization/images/bug-h.gif}]]';
+        }else if(option.status == 'event_status_4'){
+            iconUrl = '[[@{/visualization/images/bug-ok.gif}]]';
+        }
+        var icon = L.icon({
+            iconUrl: iconUrl,
+            iconSize: [65, 67],
+            iconAnchor: [33, 30]
+        });
+        var markName="jgfsMarker"+option.id;
+        markName = L.marker(
+            [option.latitude , option.longitude],
+            {icon: icon}
+        );
+        resultLayer.addLayer(markName);
+        markName.on("mousemove", function () {
+            pop = L.popup({className:'div_tittle'})
+                .setLatLng([option.latitude,option.longitude])
+                .setContent(
+                    "<span class='bch_tit'>秸秆焚烧</span>"+
+                    "<h4>"+option.title+"</h4>"+
+                    "<p>"+option.content+"</p>"
+                ).openOn(map);
+        });
+        markName.on("mouseout", function () {
+            map.closePopup(pop);
+        });
+
+        markName.on("click", function(){
+            var video = $('#fireaudio',parent.document);
+            video[0].pause();
+            detailsDia(option.id,option.reserveplanType);
+        });
+        func(true);
+    }
+
+    /**
+     * 添加防汛防控mark
+     * */
+    function fxfkMarker(option,func){
+        var iconUrl = '[[@{/visualization/images/bug.gif}]]';
+        if(option.status == 'event_status_1'){
+            iconUrl = '[[@{/visualization/images/bug-h.gif}]]';
+        }else if(option.status == 'event_status_4'){
+            iconUrl = '[[@{/visualization/images/bug-ok.gif}]]';
+        }
+        var icon = L.icon({
+            iconUrl: iconUrl,
+            iconSize: [65, 67],
+            iconAnchor: [33, 30]
+        });
+        var markName="fxfkMarker"+option.id;
+        markName = L.marker(
+            [option.latitude , option.longitude],
+            {icon: icon}
+        );
+        resultLayer.addLayer(markName);
+        markName.on("mousemove", function () {
+            pop = L.popup({className:'div_tittle'})
+                .setLatLng([option.latitude,option.longitude])
+                .setContent(
+                    "<span class='bch_tit'>防汛防控</span>"+
+                    "<h4>"+option.title+"</h4>"+
+                    "<p>"+option.content+"</p>"
+                ).openOn(map);
+        });
+        markName.on("mouseout", function () {
+            map.closePopup(pop);
+        });
+
+        markName.on("click", function(){
+            var video = $('#fireaudio',parent.document);
+            video[0].pause();
+            detailsDia(option.id,option.reserveplanType);
+        });
+        func(true);
+    }
+
+    /**
+     * 添加野生动物mark
+     * */
+    function ysdwMarker(option,func){
+        var iconUrl = '[[@{/visualization/images/bug.gif}]]';
+        if(option.status == 'event_status_1'){
+            iconUrl = '[[@{/visualization/images/bug-h.gif}]]';
+        }else if(option.status == 'event_status_4'){
+            iconUrl = '[[@{/visualization/images/bug-ok.gif}]]';
+        }
+        var icon = L.icon({
+            iconUrl: iconUrl,
+            iconSize: [65, 67],
+            iconAnchor: [33, 30]
+        });
+        var markName="ysdwMarker"+option.id;
+        markName = L.marker(
+            [option.latitude , option.longitude],
+            {icon: icon}
+        );
+        resultLayer.addLayer(markName);
+        markName.on("mousemove", function () {
+            pop = L.popup({className:'div_tittle'})
+                .setLatLng([option.latitude,option.longitude])
+                .setContent(
+                    "<span class='bch_tit'>野生动物</span>"+
+                    "<h4>"+option.title+"</h4>"+
+                    "<p>"+option.content+"</p>"
+                ).openOn(map);
+        });
+        markName.on("mouseout", function () {
+            map.closePopup(pop);
+        });
+
+        markName.on("click", function(){
+            var video = $('#fireaudio',parent.document);
+            video[0].pause();
+            detailsDia(option.id,option.reserveplanType);
+        });
+        func(true);
+    }
+
 
     /**
      * 添加偷盗mark
@@ -1105,13 +1231,37 @@
             }
         }
         if (type == 'reserveplan_type_5') {
-            for (var m = 0; m < arr.length; m++) {
-                if (arr[m] == 'tscs') {//偷沙采石
+            for (var n = 0; n < arr.length; n++) {
+                if (arr[n] == 'tscs') {//偷沙采石
                     tscsMarker(json, function (boo) {
                     });
                 }
             }
         }
+        if (type == 'reserveplan_type_6') {
+            for (var o = 0; o < arr.length; o++) {
+                if (arr[o] == 'jgfs') {//秸秆焚烧
+                    jgfsMarker(json, function (boo) {
+                    });
+                }
+            }
+        }
+        if (type == 'reserveplan_type_7') {
+            for (var p = 0; p < arr.length; p++) {
+                if (arr[p] == 'fxfk') {//防汛防控
+                    fxfkMarker(json, function (boo) {
+                    });
+                }
+            }
+        }
+        if (type == 'reserveplan_type_8') {
+            for (var q = 0; q < arr.length; q++) {
+                if (arr[q] == 'ysdw') {//野生动物
+                    ysdwMarker(json, function (boo) {
+                    });
+                }
+            }
+        }
     }
     function showYxt(){
         lkt.remove();//移除轮廓图

+ 1 - 1
mybusiness/src/main/resources/templates/business/visualization/sxt.html

@@ -39,7 +39,7 @@
 </div>
 <div class="sxt_4 clearfix">
     <!--<a href="http://localhost:8899/cams">-->
-        <a href="https://122.141.177.213:9090/dahua/demo-dsd.html" target="_blank">
+        <a href="http://117.78.49.164:9091/dahua/demo-dsd.html" target="_blank">
         <!--<a href="/v/index/evenCamera" target="_blank">-->
         <div class="ztt sxt_div">
             <i></i>

+ 35 - 0
mybusiness/src/main/resources/templates/dahua/a.txt

@@ -0,0 +1,35 @@
+function GetRequest() {
+        var url = location.search; //»ñÈ¡urlÖÐ"?"·ûºóµÄ×Ö´®
+        var theRequest = new Object();
+        if (url.indexOf("?") != -1) {
+            var str = url.substr(1);
+            strs = str.split("&");
+            for (var i = 0; i < strs.length; i++) {
+                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
+            }
+        }
+        console.log("request:", theRequest)
+        //---------------------------------
+        $("#loginip").val(theRequest.hik_ip);
+        $("#port").val(theRequest.port);
+        $("#username").val(theRequest.hik_username);
+        $("#password").val(theRequest.hik_password);
+
+        console.log($("#loginip").val(), $("#port").val(), $("#username").val(), $("#password").val())
+        sleep(output, 3000);
+        clickLogin();
+        sleep(output, 3000);
+        clickStartRealPlay();
+        return theRequest;
+    }
+
+    function sleep(callback, time) {
+        if (typeof callback == "function") {
+            setTimeout(callback, time);
+        }
+    }
+    function output() {
+        console.log(1);
+    }
+
+    $(document).ready(GetRequest);

+ 483 - 0
mybusiness/src/main/resources/templates/dahua/cn/demo.html

@@ -0,0 +1,483 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="Expires" content="0" />
+	<link href="../css/jquery-ui.css" rel="stylesheet">
+	<link href="../css/jquery-ui.css" rel="stylesheet">
+<script src="../module/jquery-1.7.1.min.js"></script>
+    <script>
+        document.write("<link type='text/css' href='../css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+		<script src="../lib/jquery.js"></script>
+	<script src="../lib/jquery-ui.js"></script>
+	<script src="../lib/json2.js"></script>
+   
+
+	<style>
+		.con_left{
+			width:76%;
+			margin-right: 2%;
+			float:left;
+			padding: 1%;
+		}
+		.con_right{
+			width:18%;
+			float: right;
+			padding: 1%;
+		}
+		.con_right input[type="button"]{
+    outline: 0px;
+    color: #ffffff;
+    border: 0px;
+    margin: 2px auto;
+    cursor: pointer;
+    width: 100%;
+    height: 100%;
+		}
+		.ja_table1{
+			width: 100%;
+			margin-bottom: 20px;
+		}
+		.ja_table1 td.tt{
+			font-size: 16px;
+			padding-right: 5px;
+			color: #12abe3;
+			width: 70px;
+			height: 30px;
+			line-height: 30px;
+		}
+		.ja_table1 td select {
+    color: #333;
+    width: 98%;
+    padding: 1%;
+    border: 1px solid #bbbec4;
+    background: none;
+    font-size: 12px;
+    border-radius: 4px;
+    outline: 0px;
+    height: 28px;
+    line-height: 28px;
+}
+		.ja_table1 td select option{
+    color: #333;
+}
+		
+		.ja_table2{
+    background:url(images/ja_bg.png) no-repeat center;
+    background-size: 100% 100%;
+    width: 255px!important;
+    height: 244px!important;
+    margin: 14px auto;
+    float: none;
+}
+.ja_table2 div{
+    float:left;
+    position:relative;
+    height: 81px;
+    width: 82px;
+}
+.ja_table2 div span{
+    position: absolute;
+}
+.ja_table2 div span img{
+    width: 33px;
+}
+.ja_table2 div:hover span img{
+    /*	box-shadow: 3px 3px 3px #eee;*/
+}
+.ja_table2 input[type="button"]{
+    text-indent: -999em;
+    background: none!important;
+    position: absolute;
+    width: 100%!important;
+}
+.ja_table2 input[type="button"]:hover{
+    background: none!important;
+    box-shadow: 0px 0px 0px;
+}
+.ja_table2 .center{
+    text-indent: 1px!important;
+    line-height: 68px;
+    padding-left: 5px;
+}
+.zs_btn span{
+    top: 48px;
+    left: 51px;
+}
+.zs_btn span img{
+    transform: rotate(-45deg);
+}
+.s_btn span {
+    top: 28px;
+    left: 28px;
+}
+.s_btn span img{
+    transform: rotate(0deg);
+}
+.ys_btn span{
+    top: 48px;
+    right: 45px;
+}
+.ys_btn span img{
+    transform: rotate(47deg);
+}
+.z_btn span{
+   top: 23px;
+   left: 25px;
+}
+.z_btn span img{
+    transform: rotate(-90deg);
+}
+.y_btn span{
+    top: 20px;
+    right: 18px;
+}
+.y_btn span img{
+    transform: rotate(90deg);
+}
+.zx_btn span{
+    top: 0px;
+    left: 49px;
+}
+.zx_btn span img{
+    transform: rotate(-140deg);
+}
+.x_btn span{
+   top: 23px;
+   left: 29px;
+}
+.x_btn span img{
+    transform: rotate(180deg);
+}
+.yx_btn span{
+    top: -5px;
+    right: 45px;
+}
+.yx_btn span img{
+    transform: rotate(252deg);
+}
+		.zsc_btn{
+			background: url(images/ja_con.png) no-repeat 23px 19px;
+			background-size: 45px;
+}
+		.zsc_btn:hover{
+			background: url(images/ja_con2.png) no-repeat 23px 19px;
+			background-size: 45px;
+		}
+		.ja_table3{
+			width:90%;
+			margin: 20px auto;
+  
+}
+		.ja_table3 td{
+    position: relative;
+    width: 70px;
+    text-align: center;
+    height: 60px;
+    line-height: 1px;
+    font-size: 16px;
+    color: #129fea;
+			font-weight: 900;
+}
+.ja_table3 td span img{
+    width:34px;
+}
+.ja_table3 input[type="button"]{
+    text-indent: -999em;
+    background: none!important;
+    position: absolute;
+    width:100%;
+    left: 0px;
+    top:0px;
+}
+		.ja_zt{
+			margin-bottom:20px;
+		}
+		.ja_zt input{
+			width:100%;
+			background: repeating-linear-gradient(#e4e8f3,#dcdee3,#acb0b9);
+    height: 35px!important;
+    line-height: 30px;
+    border-radius: 5px;
+    color: #129fea!important;
+    font-size: 16px;
+    font-weight: 900;
+    letter-spacing: 4px;
+    border: 2px solid #a8d8f9!important;
+		}
+		.ja_zt input:hover{
+			background: repeating-linear-gradient(#bbbdc3,#c2c9da,#c8d1e4);
+    border: 2px solid #91cff9!important;
+		}
+		.ja_div,.ja_table1,.ja_zt{
+			width:80%;
+			margin: 20px auto 0px auto;
+			
+			
+		}
+		.ja_div p{
+			font-size: 16px;
+    color: #3aa4f1;
+    margin: 20px 0px 10px 0px;
+			
+		}
+		.ja_div .ja_inp{
+			width:100%;
+			height: 30px;
+			position: relative;
+		}
+		.ja_div .ja_inp .ja_txt{
+			width:90%;
+			padding: 1%;
+    border: 1px solid #bbbec4;
+    background: none;
+    font-size: 12px;
+    border-radius: 4px;
+    outline: 0px;
+    height: 28px;
+    line-height: 28px;
+			position: absolute;
+			top:0px;
+			left: 0px;
+		}
+		.ja_div .ja_inp .ja_btn{
+			width: 60px;
+    position: absolute;
+    top: -2px;
+    right: 0px;
+    height: 36px;
+    z-index: 9;
+    background: repeating-linear-gradient(#bbbdc3,#c2c9da,#c8d1e4);
+    color: #129fe8;
+    font-weight: 900;
+    letter-spacing: 2px;
+		}
+		
+		.plugin {
+    width: 100%;
+    height: 600px;
+}
+		.opinfo{
+			background: #e2e2e2;
+    padding: 5px;
+    line-height: 20px;
+    color: #333;
+			width: 98%;
+			margin: 0px auto;
+			height: 100px;
+			overflow-y: auto;
+		}	
+		.opinfo::-webkit-scrollbar{display:none} 
+		
+	</style>
+<body>
+<div class="con_left">
+    <video style="width:100%;"  preload="auto" autoplay id="my_video_1">
+		<source src="http://119.55.12.182:7086/live/cameraid/1000006%240/substream/1.m3u8" type="application/x-mpegURL">
+	</video>
+	<input type="hidden" id="szIP" name="IP" value="36.135.60.89" />
+<input type="hidden" id="szPort" name="端口" value="2021" />
+<input type="hidden" id="szUsername" name="账号" value="admin" />
+<input type="hidden" id="szPassword" name="密码" value="Admin@666" />
+		
+ 
+
+</div>
+
+	<div class="con_right">
+		
+		<table class="ja_table2" cellpadding="0" cellspacing="0" border="0">
+
+			<tr>
+						<td class="left_btn">
+							<div class="zs_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn zs_btn" value="左上" onmousedown="mouseUPLeftPTZControl(true);" onmouseup="mouseUPLeftPTZControl(false);" title="左上"  />
+							</div>
+							<div class="s_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="上" onmousedown="mouseUpPTZControl(true);" onmouseup="mouseUpPTZControl(false);"  title="上"  />
+								</div>
+							<div class="ys_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右上" onmousedown="mouseUPRightPTZControl(true);" onmouseup="mouseUPRightPTZControl(false);"  title="右上"  />
+							</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="con_btn">
+						
+							<div class="z_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左" onmousedown="mouseLefPTZControl(true);" onmouseup="mouseLefPTZControl(false);"  title="左"  />
+								</div>
+							<div class="zsc_btn">
+							<input type="button" class="center" value=""  />
+								</div>
+							<div class="y_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右" onmousedown="mouseRightPTZControl(true);" onmouseup="mouseRightPTZControl(false);"  title="右"  />
+					</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="right_btn">
+						
+							<div class="zx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左下" onmousedown="mouseDownLeftPTZControl(true);" onmouseup="mouseDownLeftPTZControl(false);"  title="左上"  />
+								</div>
+							<div class="x_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="下" onmousedown="mouseDownPTZControl(true);" onmouseup="mouseDownPTZControl(false);"  title="下"  />
+								</div>
+							<div class="yx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右下" onmousedown="mouseDownRightPTZControl(true);" onmouseup="mouseDownRightPTZControl(false);"  title="右下"  />
+			              </div>
+						</td>
+					</tr>
+		</table>
+		<table class="ja_table3" cellpadding="0" cellspacing="0" border="0">
+			  <tr>
+                <td  class="ja_bb1"><span><img src="images/d_icon.png"/></span><input type="button" class="btn2" value="变倍+" onmousedown="PTZZoomIn(true)" title="变倍+" onmouseup="PTZZoomIn(false)">
+				  </td>
+				  <td>变倍</td>
+                <td class="ja_bb2"><span><img src="images/x_icon.png"/></span><input type="button" class="btn2" value="变倍-" onmousedown="PTZZoomout(true)"  title="变倍-"onmouseup="PTZZoomout(false)"></td>
+            </tr>
+            <tr>
+                <td class="ja_bj1" ><span><img src="images/d_icon2.png"/></span><input type="button" class="btn2" value="变焦+" onmousedown="PTZFocusIn(true)"  title="变焦+"onmouseup="PTZFocusIn(false)"></td>
+				  <td>变焦</td>
+                <td class="ja_bj2"><span><img src="images/x_icon2.png"/></span><input type="button" class="btn2" value="变焦-" onmousedown="PTZFoucusOut(true)"  title="变焦-"onmouseup="PTZFoucusOut(false)"></td>
+            </tr>
+            <tr class="ja_gq">
+                <td class="ja_gq1" ><span><img src="images/d_icon3.png"/></span><input type="button" class="btn2" value="光圈+" onmousedown="PTZIrisIn(true)" title="光圈+" onmouseup="PTZIrisIn(false)"></td>
+				  <td>光圈</td>
+                <td class="ja_gq2"><span><img src="images/x_icon3.png"/></span><input type="button" class="btn2" value="光圈-" onmousedown="PTZIrisOut(true)" onmouseup="PTZIrisOut(false) " title="光圈-"></td>
+            </tr>
+			
+		</table>
+<!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>-->
+	<table class="ja_table1" cellpadding="0" cellspacing="0" border="0">
+			 <tr>
+                <td class="tt">云台速度</td>
+                <td>
+                    <select id="ptzspeed" class="sel">
+                        <option value="1">1</option>
+                        <option value="2">2</option>
+                        <option value="3">3</option>
+                        <option value="4" selected>4</option>
+                        <option value="5">5</option>
+                        <option value="6">6</option>
+                        <option value="7">7</option>
+						<option value="8">8</option>
+                    </select>
+                </td>
+            </tr>
+		</table>
+<!--
+		<div class="ja_div">
+			<p>预览抓图保存路径</p>
+			<div class="ja_inp">
+				<input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+				<input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+			</div>
+		</div>
+-->
+
+</div>
+
+
+<div style="clear: both;"></div>
+ <div id="opinfo" class="opinfo">
+	</div>
+<script src="../module/foundation.js"></script>
+<script src="../module/WebVideoCtrl.js"></script>
+<script src="../module/modifyUI.js"></script>
+<script src="../module/demo.js"></script>
+
+
+
+
+<script>
+
+	
+	$(function(){
+		$(".ja_table2 div").hover(function(){
+			$(this).find('img').attr("src","images/ja_jiao2.png");
+		},function(){
+			$(this).find('img').attr("src","images/ja_jiao.png");
+		});
+		
+		$(".ja_table3 .ja_bb1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon.png");
+		});
+		$(".ja_table3 .ja_bb2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon.png");
+		});
+		$(".ja_table3 .ja_bj1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon2.png");
+		});
+		$(".ja_table3 .ja_bj2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon2.png");
+		});
+		$(".ja_table3 .ja_gq1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon3.png");
+		});
+		$(".ja_table3 .ja_gq2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon3.png");
+		});
+		
+		
+		
+		var hei = $(window).height();
+		$("#my_video_1").height(hei - 180);
+		
+		
+	})
+	
+	
+	
+</script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body>
+</html>

BIN
mybusiness/src/main/resources/templates/dahua/cn/images/d_icon.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/d_icon2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/d_icon2_2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/d_icon3.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/d_icon3_2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/d_icon_2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/ja_bg.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/ja_con.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/ja_con2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/ja_jiao.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/ja_jiao2.png


Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
mybusiness/src/main/resources/templates/dahua/cn/images/jquery-1.7.1.min.js


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/x_icon.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/x_icon2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/x_icon2_2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/x_icon3.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/x_icon3_2.png


BIN
mybusiness/src/main/resources/templates/dahua/cn/images/x_icon_2.png


+ 433 - 0
mybusiness/src/main/resources/templates/dahua/css/demo.css

@@ -0,0 +1,433 @@
+@charset "utf-8";
+* 
+{
+    margin:0;
+    padding:0;
+}
+html
+{
+    width:100%;
+    height:100%;
+    font-size:12px;
+    font-family:Arial, Helvetica, sans-serif;
+    -webkit-text-size-adjust:none;
+    background:#FFFFFF;
+}
+body
+{
+    padding:5px;
+}
+select
+{
+    height:20px;
+    line-height:20px;
+}
+.left
+{
+    float:left;
+}
+.right
+{
+    float:right;
+}
+.freeze
+{
+    position:absolute;
+    text-align:center;
+    background:#343434;
+    color:#FFFFFF;
+    font-size:26px;
+    font-weight:bold;
+    filter:alpha(opacity=60);
+    opacity:0.6;
+}
+.vtop
+{
+    vertical-align:middle;
+    margin-top:-1px;
+}
+/*插件*/
+.plugin
+{
+    width:500px;
+    height:300px;
+}
+fieldset
+{
+    display:block;
+}
+/*本地配置*/
+.localconfig
+{
+    width:480px;
+    padding:10px;
+    border:1px solid #7F9DB9;
+}
+.localconfig .tt
+{
+    width:125px;
+}
+.localconfig .txt
+{
+    width:310px;
+}
+.localconfig .txt2
+{
+    width:300px;
+}
+.localconfig .txt3
+{
+    width:280px;
+}
+.localconfig .btn
+{
+    width:45px;
+    height:22px;
+    line-height:18px;
+}
+.localconfig .btn2
+{
+    width:65px;
+    height:22px;
+    line-height:18px;
+}
+.localconfig .btn3
+{
+    width:65px;
+    height:22px;
+    line-height:18px;
+}
+.localconfig .sel
+{
+    width:120px;
+}
+/*登录*/
+.login
+{
+    width:480px;
+    padding:10px;
+    border:1px solid #7F9DB9;
+}
+.login .tt
+{
+    width:100px;
+}
+.login .txt
+{
+    width:130px;
+}
+.login .btn
+{
+    width:45px;
+    height:22px;
+    line-height:18px;
+}
+.login .btn2
+{
+    width:55px;
+    height:22px;
+    line-height:18px;
+}
+.login .btn3
+{
+    width:80px;
+    height:22px;
+    line-height:18px;
+}
+.login .sel
+{
+    width:130px;
+}
+.login .sel2
+{
+    width:65px;
+}
+/*数字通道*/
+.ipchannel
+{
+    width:480px;
+    padding:10px;
+    border:1px solid #7F9DB9;
+}
+.ipchannel .btn
+{
+    width:130px;
+    height:22px;
+    line-height:18px;
+}
+.ipchannel .digitaltdiv
+{
+    height:100px;
+    overflow:hidden;
+    overflow-y:auto;
+    border:1px solid #7F9DB9;
+    font-size:11px;
+}
+.ipchannel .digitalchannellist th, .ipchannel .digitalchannellist td
+{
+    padding:2px;
+    border:1px solid #7F9DB9;
+    border-collapse:collapse;
+    white-space:nowrap;
+}
+/*预览*/
+.preview
+{
+    width:480px;
+    padding:10px;
+    padding-top:0;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.preview .tt
+{
+    width:60px;
+}
+.preview .txt
+{
+    width:30px;
+}
+.preview .btn
+{
+    width:70px;
+    height:22px;
+    line-height:18px;
+}
+.preview .btn2
+{
+    width:100px;
+    height:22px;
+    line-height:18px;
+}
+.preview .btn3
+{
+    width:100px;
+    height:22px;
+    line-height:18px;
+}
+.preview .sel
+{
+    width:105px;
+}
+/*云台*/
+.ptz
+{
+    width:480px;
+    padding:10px;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.ptz .tt
+{
+    width:40px;
+}
+.ptz .txt
+{
+    width:60px;
+}
+.ptz .btn
+{
+    width:45px;
+    height:22px;
+    line-height:18px;
+}
+.ptz .btn2
+{
+    width:60px;
+    height:22px;
+    line-height:18px;
+}
+.ptz .sel
+{
+    width:65px;
+}
+/*视频参数*/
+.videoparam
+{
+    width:450px;
+    padding:10px;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.videoparam .tt
+{
+    width:60px;
+}
+.videoparam .txt
+{
+    width:60px;
+}
+.videoparam .btn
+{
+    width:45px;
+    height:22px;
+    line-height:18px;
+}
+.videoparam .sel
+{
+    width:65px;
+}
+/*回放*/
+.playback
+{
+    width:480;
+    padding:10px;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.playback .tt
+{
+    width:60px;
+}
+.playback .txt
+{
+    width:140px;
+}
+.playback .btn
+{
+    width:45px;
+    height:22px;
+    line-height:18px;
+}
+.playback .btn2
+{
+    width:82px;
+    height:22px;
+    line-height:18px;
+}
+.playback .sel
+{
+    width:142px;
+}
+.playback .searchdiv
+{
+    height:100px;
+    overflow:hidden;
+    overflow-y:auto;
+    border:1px solid #7F9DB9;
+    font-size:11px;
+}
+.playback .searchlist th, .playback .searchlist td
+{
+    padding:2px;
+    border:1px solid #7F9DB9;
+    border-collapse:collapse;
+    white-space:nowrap;
+}
+/*系统维护*/
+.maintain
+{
+    width:450px;
+    padding:10px;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.maintain .tt
+{
+    width:60px;
+}
+.maintain .txt
+{
+    width:280px;
+}
+.maintain .btn
+{
+    width:45px;
+    height:22px;
+    line-height:18px;
+}
+.maintain .btn2
+{
+    width:100px;
+    height:22px;
+    line-height:18px;
+}
+.maintain .sel
+{
+    width:65px;
+}
+/*操作信息*/
+.operate
+{
+    width:480px;
+    padding:10px;
+    border:1px solid #7F9DB9;
+}
+.operate .opinfo
+{
+    height:150px;
+    border:1px solid #7F9DB9;
+    overflow:auto;
+}
+/*事件回调*/
+.callback
+{
+    width:480px;
+    padding:10px;
+    border:1px solid #7F9DB9;
+}
+.callback .cbinfo
+{
+    height:114px;
+    border:1px solid #7F9DB9;
+    overflow:auto;
+}
+/*IP解析*/
+.ipparse
+{
+    width:450px;
+    padding:10px;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.ipparse .tt
+{
+    width:85px;
+}
+.ipparse .txt
+{
+    width:130px;
+}
+.ipparse .btn
+{
+    width:90px;
+    height:22px;
+    line-height:18px;
+}
+.ipparse .sel
+{
+    width:130px;
+}
+/*绘图*/
+.draw
+{
+    width:450px;
+    padding:10px;
+    padding-top:0;
+    margin-left:10px;
+    border:1px solid #7F9DB9;
+}
+.draw .tt
+{
+    width:60px;
+}
+.draw .txt
+{
+    width:140px;
+}
+.draw .btn
+{
+    width:70px;
+    height:22px;
+    line-height:18px;
+}
+.draw .btn2
+{
+    width:100px;
+    height:22px;
+    line-height:18px;
+}
+.draw .sel
+{
+    width:105px;
+}

Разлика између датотеке није приказан због своје велике величине
+ 1312 - 0
mybusiness/src/main/resources/templates/dahua/css/jquery-ui.css


+ 259 - 0
mybusiness/src/main/resources/templates/dahua/demo-dsd.html

@@ -0,0 +1,259 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="Expires" content="0" />
+	<link href="css/jquery-ui.css" rel="stylesheet">
+	<link href="images/ja_ja.css" rel="stylesheet">
+	<script src="images/jquery-1.7.1.min.js"></script>
+    <script>
+        document.write("<link type='text/css' href='css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+		<script src="lib/jquery.js"></script>
+	<script src="lib/jquery-ui.js"></script>
+	<script src="lib/json2.js"></script>
+
+
+	<style>
+
+	</style>
+<body>
+
+<input type="hidden" id="ptzspeed" name="云台控制速度" value="4" />
+<div class="con_list">
+		<h1><i>--</i>摄像头列表<i>--</i></h1>
+	<ul class="list_ul" id="list">
+		<li><a>暂无可用摄像头</a></li>
+	</ul>
+
+
+</div>
+<div class="con_tent">
+     <div id="divPlugin" class="plugin">
+	</div>
+
+
+
+</div>
+
+	<div class="con_right con_right2">
+		<ul class="top_ul">
+	<li class="on"><a>电视墙</a></li>
+	<!--<li id="jkd"><a>监控端</a></li>-->
+	<!--<li id="gld"><a>管理端</a></li>-->
+	<!--<li id="dsj"><a>大数据端</a></li>-->
+</ul>
+		<table class="ja_table2" cellpadding="0" cellspacing="0" border="0">
+
+			<tr>
+						<td class="left_btn">
+							<div class="zs_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn zs_btn" value="左上" onmousedown="mouseUPLeftPTZControl(true);" onmouseup="mouseUPLeftPTZControl(false);" title="左上"  />
+							</div>
+							<div class="s_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="上" onmousedown="mouseUpPTZControl(true);" onmouseup="mouseUpPTZControl(false);"  title="上"  />
+								</div>
+							<div class="ys_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右上" onmousedown="mouseUPRightPTZControl(true);" onmouseup="mouseUPRightPTZControl(false);"  title="右上"  />
+							</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="con_btn">
+
+							<div class="z_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左" onmousedown="mouseLefPTZControl(true);" onmouseup="mouseLefPTZControl(false);"  title="左"  />
+								</div>
+							<div class="zsc_btn">
+							<input type="button" class="center" value=""  />
+								</div>
+							<div class="y_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右" onmousedown="mouseRightPTZControl(true);" onmouseup="mouseRightPTZControl(false);"  title="右"  />
+					</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="right_btn">
+
+							<div class="zx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左下" onmousedown="mouseDownLeftPTZControl(true);" onmouseup="mouseDownLeftPTZControl(false);"  title="左上"  />
+								</div>
+							<div class="x_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="下" onmousedown="mouseDownPTZControl(true);" onmouseup="mouseDownPTZControl(false);"  title="下"  />
+								</div>
+							<div class="yx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右下" onmousedown="mouseDownRightPTZControl(true);" onmouseup="mouseDownRightPTZControl(false);"  title="右下"  />
+			              </div>
+						</td>
+					</tr>
+		</table>
+		<table class="ja_table3" cellpadding="0" cellspacing="0" border="0">
+			  <tr>
+                <td  class="ja_bb1"><span><img src="images/d_icon.png"/></span><input type="button" class="btn2" value="变倍+" onmousedown="PTZZoomIn(true)" title="变倍+" onmouseup="PTZZoomIn(false)">
+				  </td>
+				  <td>变倍</td>
+                <td class="ja_bb2"><span><img src="images/x_icon.png"/></span><input type="button" class="btn2" value="变倍-" onmousedown="PTZZoomout(true)"  title="变倍-"onmouseup="PTZZoomout(false)"></td>
+            </tr>
+            <tr>
+                <td class="ja_bj1" ><span><img src="images/d_icon2.png"/></span><input type="button" class="btn2" value="变焦+" onmousedown="PTZFocusIn(true)"  title="变焦+"onmouseup="PTZFocusIn(false)"></td>
+				  <td>变焦</td>
+                <td class="ja_bj2"><span><img src="images/x_icon2.png"/></span><input type="button" class="btn2" value="变焦-" onmousedown="PTZFoucusOut(true)"  title="变焦-"onmouseup="PTZFoucusOut(false)"></td>
+            </tr>
+            <tr class="ja_gq">
+                <td class="ja_gq1" ><span><img src="images/d_icon3.png"/></span><input type="button" class="btn2" value="光圈+" onmousedown="PTZIrisIn(true)" title="光圈+" onmouseup="PTZIrisIn(false)"></td>
+				  <td>光圈</td>
+                <td class="ja_gq2"><span><img src="images/x_icon3.png"/></span><input type="button" class="btn2" value="光圈-" onmousedown="PTZIrisOut(true)" onmouseup="PTZIrisOut(false) " title="光圈-"></td>
+            </tr>
+
+		</table>
+
+		<!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>-->
+	<table class="ja_table1" cellpadding="0" cellspacing="0" border="0">
+			 <tr>
+                <td>
+                    <select id="wndNum" class="sel2" onchange="changeWndNum(this.value);">
+                        <option value="1">1x1</option>
+                        <option value="2" selected>2x2</option>
+                        <option value="3">3x3</option>
+                    </select>
+                </td>
+            </tr>
+		</table>
+
+<!--
+		<div class="ja_div">
+			<p>预览抓图保存路径</p>
+			<div class="ja_inp">
+				<input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+				<input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+			</div>
+		</div>
+-->
+
+</div>
+
+
+<div style="clear: both;"></div>
+<!--
+ <div id="opinfo" class="opinfo">
+	</div>
+-->
+<script src="module/foundation.js"></script>
+<script src="module/WebVideoCtrl.js"></script>
+<script src="module/modifyUI.js"></script>
+<script src="module/demo.js"></script>
+
+
+
+
+<script>
+
+
+var deptId;
+   function GetRequest() {
+        var url = location.search; //获取url中"?"符后的字串
+        var theRequest = new Object();
+        if (url.indexOf("?") != -1) {
+            var str = url.substr(1);
+            strs = str.split("&");
+            for (var i = 0; i < strs.length; i++) {
+                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
+            }
+        }
+        console.log("request:", theRequest)
+        //---------------------------------
+        deptId = theRequest.deptId;
+        return theRequest;
+    }
+
+
+
+	$(function(){
+		$(".ja_table2 div").hover(function(){
+			$(this).find('img').attr("src","images/ja_jiao2.png");
+		},function(){
+			$(this).find('img').attr("src","images/ja_jiao.png");
+		});
+
+		$(".ja_table3 .ja_bb1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon.png");
+		});
+		$(".ja_table3 .ja_bb2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon.png");
+		});
+		$(".ja_table3 .ja_bj1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon2.png");
+		});
+		$(".ja_table3 .ja_bj2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon2.png");
+		});
+		$(".ja_table3 .ja_gq1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon3.png");
+		});
+		$(".ja_table3 .ja_gq2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon3.png");
+		});
+
+
+
+		var hei = $(window).height();
+		$("#my_video_1").height(hei - 180);
+
+		$(".con_list").height(hei);
+		$(".con_right2").height(hei);
+
+
+ 
+
+
+
+GetRequest();
+
+		$.ajax({
+			//请求方式
+			type:"post",
+			//文件位置
+			url:"http://117.78.49.164:9091/business/app/Dahua_Controller/queryAllCameras?deptId="+deptId,
+			//返回数据格式为json,也可以是其他格式如
+			dataType: "json",
+			async:true,
+			//请求成功后要执行的函数,拼接html
+			success: function(data){
+			   console.log(data);
+				$('#list').html('');
+				for(var i=0;i<data.length;i++){
+					var o = data[i];
+					$('#list').append('<li onclick="clickLogin(\''+o.hikIp+'\',\''+o.hikPort+'\',\''+o.hikUsername+'\',\''+o.hikPassword+'\')"><a>'+o.name+'</a></li>');
+				}
+			}
+		});
+	});
+
+</script>
+
+</body>
+</html>

+ 322 - 0
mybusiness/src/main/resources/templates/dahua/demo-jkd-1.html

@@ -0,0 +1,322 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="Expires" content="0" />
+	<link href="css/jquery-ui.css" rel="stylesheet">
+	<link href="images/ja_ja.css" rel="stylesheet">
+<script src="images/jquery-1.7.1.min.js"></script>
+    <script>
+        document.write("<link type='text/css' href='css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+		<script src="lib/jquery.js"></script>
+	<script src="lib/jquery-ui.js"></script>
+	<script src="lib/json2.js"></script>
+   
+
+	<style>
+	
+	</style>
+<body>
+
+
+<script>
+function GetRequest() {
+        var url = location.search; //获取url中"?"符后的字串
+        var theRequest = new Object();
+        if (url.indexOf("?") != -1) {
+            var str = url.substr(1);
+            strs = str.split("&");
+            for (var i = 0; i < strs.length; i++) {
+                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
+            }
+        }
+        console.log("request:", theRequest)
+        //---------------------------------
+        $("#szIP").val(theRequest.hik_ip);
+        $("#szPort").val(theRequest.port);
+        $("#szUsername").val(theRequest.hik_username);
+        $("#szPassword").val(theRequest.hik_password);
+
+
+        return theRequest;
+    }
+
+
+function sleep(callback, time) {
+        if (typeof callback == "function") {
+            setTimeout(callback, time);
+        }
+    }
+    function output() {
+        console.log(1);
+	clickLogin();
+	sleep(clickStartRealPlay,2000)
+    }
+	
+
+    $(document).ready(function(){
+        GetRequest();
+	sleep(output,2000);
+    });
+
+</script>
+
+
+
+<input type="hidden" id="szIP" name="IP"  />
+<input type="hidden" id="szPort" name="端口"  />
+<input type="hidden" id="szUsername" name="账号"/>
+<input type="hidden" id="szPassword" name="密码"/>
+<input type="hidden" id="ptzspeed" name="云台控制速度" value="4" />
+	
+	
+
+<div class="con_left">
+     <div id="divPlugin" class="plugin">
+	</div>
+</div>
+
+	<div class="con_right con_right2">
+		<ul class="top_ul">
+	<li><a>电视墙</a></li>
+	<li class="on" id="jkd"><a>监控端</a></li>
+	<li id="gld"><a>管理端</a></li>
+	<li id="dsj"><a>大数据端</a></li>
+</ul>
+		<table class="ja_table2" cellpadding="0" cellspacing="0" border="0">
+
+			<tr>
+						<td class="left_btn">
+							<div class="zs_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn zs_btn" value="左上" onmousedown="mouseUPLeftPTZControl(true);" onmouseup="mouseUPLeftPTZControl(false);" title="左上"  />
+							</div>
+							<div class="s_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="上" onmousedown="mouseUpPTZControl(true);" onmouseup="mouseUpPTZControl(false);"  title="上"  />
+								</div>
+							<div class="ys_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右上" onmousedown="mouseUPRightPTZControl(true);" onmouseup="mouseUPRightPTZControl(false);"  title="右上"  />
+							</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="con_btn">
+						
+							<div class="z_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左" onmousedown="mouseLefPTZControl(true);" onmouseup="mouseLefPTZControl(false);"  title="左"  />
+								</div>
+							<div class="zsc_btn">
+							<input type="button" class="center" value=""  />
+								</div>
+							<div class="y_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右" onmousedown="mouseRightPTZControl(true);" onmouseup="mouseRightPTZControl(false);"  title="右"  />
+					</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="right_btn">
+						
+							<div class="zx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左下" onmousedown="mouseDownLeftPTZControl(true);" onmouseup="mouseDownLeftPTZControl(false);"  title="左上"  />
+								</div>
+							<div class="x_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="下" onmousedown="mouseDownPTZControl(true);" onmouseup="mouseDownPTZControl(false);"  title="下"  />
+								</div>
+							<div class="yx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右下" onmousedown="mouseDownRightPTZControl(true);" onmouseup="mouseDownRightPTZControl(false);"  title="右下"  />
+			              </div>
+						</td>
+					</tr>
+		</table>
+		<table class="ja_table3" cellpadding="0" cellspacing="0" border="0">
+			  <tr>
+                <td  class="ja_bb1"><span><img src="images/d_icon.png"/></span><input type="button" class="btn2" value="变倍+" onmousedown="PTZZoomIn(true)" title="变倍+" onmouseup="PTZZoomIn(false)">
+				  </td>
+				  <td>变倍</td>
+                <td class="ja_bb2"><span><img src="images/x_icon.png"/></span><input type="button" class="btn2" value="变倍-" onmousedown="PTZZoomout(true)"  title="变倍-"onmouseup="PTZZoomout(false)"></td>
+            </tr>
+            <tr>
+                <td class="ja_bj1" ><span><img src="images/d_icon2.png"/></span><input type="button" class="btn2" value="变焦+" onmousedown="PTZFocusIn(true)"  title="变焦+"onmouseup="PTZFocusIn(false)"></td>
+				  <td>变焦</td>
+                <td class="ja_bj2"><span><img src="images/x_icon2.png"/></span><input type="button" class="btn2" value="变焦-" onmousedown="PTZFoucusOut(true)"  title="变焦-"onmouseup="PTZFoucusOut(false)"></td>
+            </tr>
+            <tr class="ja_gq">
+                <td class="ja_gq1" ><span><img src="images/d_icon3.png"/></span><input type="button" class="btn2" value="光圈+" onmousedown="PTZIrisIn(true)" title="光圈+" onmouseup="PTZIrisIn(false)"></td>
+				  <td>光圈</td>
+                <td class="ja_gq2"><span><img src="images/x_icon3.png"/></span><input type="button" class="btn2" value="光圈-" onmousedown="PTZIrisOut(true)" onmouseup="PTZIrisOut(false) " title="光圈-"></td>
+            </tr>
+			
+		</table>
+<!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>
+	<table class="ja_table1" cellpadding="0" cellspacing="0" border="0">
+			 <tr>
+                <td class="tt">云台速度</td>
+                <td>
+                    <select id="ptzspeed" class="sel">
+                        <option value="1">1</option>
+                        <option value="2">2</option>
+                        <option value="3">3</option>
+                        <option value="4" selected>4</option>
+                        <option value="5">5</option>
+                        <option value="6">6</option>
+                        <option value="7">7</option>
+						<option value="8">8</option>
+                    </select>
+                </td>
+            </tr>
+		</table>
+
+		<div class="ja_div">
+			<p>预览抓图保存路径</p>
+			<div class="ja_inp">
+				<input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+				<input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+			</div>
+		</div>
+-->
+<!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>-->
+	<table class="ja_table1" cellpadding="0" cellspacing="0" border="0" style="display:none;">
+			 <tr>
+                <td class="tt">窗口分割</td>
+                <td>
+                    <select id="wndNum" class="sel2" onchange="changeWndNum(this.value);">
+                        <option value="1" selected>1x1</option>
+                        <option value="2" >2x2</option>
+                        <option value="3">3x3</option>
+                        <option value="4">4x4</option>
+						<option value="5">5x5</option>
+						<option value="6">6x6</option>
+                    </select>
+                </td>
+            </tr>
+		</table>
+
+<!--
+		<div class="ja_div">
+			<p>预览抓图保存路径</p>
+			<div class="ja_inp">
+				<input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+				<input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+			</div>
+		</div>
+-->
+
+
+</div>
+
+
+<div style="clear: both;"></div>
+<!--
+ <div id="opinfo" class="opinfo">
+	</div>
+-->
+<script src="module/foundation.js"></script>
+<script src="module/WebVideoCtrl.js"></script>
+<script src="module/modifyUI.js"></script>
+<script src="module/demo_jk.js"></script>
+
+
+
+
+<script>
+
+	
+	$(function(){
+		$(".ja_table2 div").hover(function(){
+			$(this).find('img').attr("src","images/ja_jiao2.png");
+		},function(){
+			$(this).find('img').attr("src","images/ja_jiao.png");
+		});
+		
+		$(".ja_table3 .ja_bb1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon.png");
+		});
+		$(".ja_table3 .ja_bb2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon.png");
+		});
+		$(".ja_table3 .ja_bj1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon2.png");
+		});
+		$(".ja_table3 .ja_bj2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon2.png");
+		});
+		$(".ja_table3 .ja_gq1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon3.png");
+		});
+		$(".ja_table3 .ja_gq2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon3.png");
+		});
+		
+		
+		
+		var hei = $(window).height();
+		$("#my_video_1").height(hei - 180);
+		
+		$(".con_list").height(hei);
+		$(".con_right2").height(hei);
+		
+	})
+	
+
+	
+			
+			
+			
+			
+	
+			
+	
+		
+		
+
+	
+</script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body>
+</html>

+ 362 - 0
mybusiness/src/main/resources/templates/dahua/demo-jkd-2.html

@@ -0,0 +1,362 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta http-equiv="Pragma" content="no-cache"/>
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/>
+    <meta http-equiv="Expires" content="0"/>
+    <link href="css/jquery-ui.css" rel="stylesheet">
+    <link href="images/ja_ja.css" rel="stylesheet">
+    <script src="images/jquery-1.7.1.min.js"></script>
+    <script>
+        document.write("<link type='text/css' href='css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+<script src="lib/jquery.js"></script>
+<script src="lib/jquery-ui.js"></script>
+<script src="lib/json2.js"></script>
+
+
+<style>
+
+</style>
+<body>
+
+
+<script>
+    function GetRequest() {
+        var url = location.search; //获取url中"?"符后的字串
+        var theRequest = new Object();
+        if (url.indexOf("?") != -1) {
+            var str = url.substr(1);
+            strs = str.split("&");
+            for (var i = 0; i < strs.length; i++) {
+                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
+            }
+        }
+        console.log("request:", theRequest)
+        //---------------------------------
+        $("#szIP").val(theRequest.hik_ip);
+        $("#szPort").val(theRequest.port);
+        $("#szUsername").val(theRequest.hik_username);
+        $("#szPassword").val(theRequest.hik_password);
+
+
+        return theRequest;
+    }
+
+
+    function sleep(callback, time) {
+        if (typeof callback == "function") {
+            setTimeout(callback, time);
+        }
+    }
+
+    function output() {
+        console.log(1);
+        clickLogin();
+        sleep(clickStartRealPlay, 2000)
+    }
+
+
+    $(document).ready(function () {
+        GetRequest();
+        sleep(output, 2000);
+    });
+
+</script>
+
+
+<input type="hidden" id="szIP" name="IP"/>
+<input type="hidden" id="szPort" name="端口"/>
+<input type="hidden" id="szUsername" name="账号"/>
+<input type="hidden" id="szPassword" name="密码"/>
+<input type="hidden" id="ptzspeed" name="云台控制速度" value="4"/>
+
+<div>
+    <div class="con_left">
+        <div id="divPlugin" class="plugin">
+        </div>
+    </div>
+
+    <div class="con_right con_right2">
+        <ul class="top_ul">
+            <li><a>电视墙</a></li>
+            <li class="on" id="jkd"><a>监控端</a></li>
+            <li id="gld"><a>管理端</a></li>
+            <li id="dsj"><a>大数据端</a></li>
+        </ul>
+        <table class="ja_table2" cellpadding="0" cellspacing="0" border="0">
+
+            <tr>
+                <td class="left_btn">
+                    <div class="zs_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn zs_btn" value="左上" onmousedown="mouseUPLeftPTZControl(true);"
+                               onmouseup="mouseUPLeftPTZControl(false);" title="左上"/>
+                    </div>
+                    <div class="s_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="上" onmousedown="mouseUpPTZControl(true);"
+                               onmouseup="mouseUpPTZControl(false);" title="上"/>
+                    </div>
+                    <div class="ys_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="右上" onmousedown="mouseUPRightPTZControl(true);"
+                               onmouseup="mouseUPRightPTZControl(false);" title="右上"/>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td class="con_btn">
+
+                    <div class="z_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="左" onmousedown="mouseLefPTZControl(true);"
+                               onmouseup="mouseLefPTZControl(false);" title="左"/>
+                    </div>
+                    <div class="zsc_btn">
+                        <input type="button" class="center" value=""/>
+                    </div>
+                    <div class="y_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="右" onmousedown="mouseRightPTZControl(true);"
+                               onmouseup="mouseRightPTZControl(false);" title="右"/>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td class="right_btn">
+
+                    <div class="zx_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="左下" onmousedown="mouseDownLeftPTZControl(true);"
+                               onmouseup="mouseDownLeftPTZControl(false);" title="左上"/>
+                    </div>
+                    <div class="x_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="下" onmousedown="mouseDownPTZControl(true);"
+                               onmouseup="mouseDownPTZControl(false);" title="下"/>
+                    </div>
+                    <div class="yx_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="右下" onmousedown="mouseDownRightPTZControl(true);"
+                               onmouseup="mouseDownRightPTZControl(false);" title="右下"/>
+                    </div>
+                </td>
+            </tr>
+        </table>
+        <table class="ja_table3" cellpadding="0" cellspacing="0" border="0">
+            <tr>
+                <td class="ja_bb1"><span><img src="images/d_icon.png"/></span><input type="button" class="btn2"
+                                                                                     value="变倍+"
+                                                                                     onmousedown="PTZZoomIn(true)"
+                                                                                     title="变倍+"
+                                                                                     onmouseup="PTZZoomIn(false)">
+                </td>
+                <td>变倍</td>
+                <td class="ja_bb2"><span><img src="images/x_icon.png"/></span><input type="button" class="btn2"
+                                                                                     value="变倍-"
+                                                                                     onmousedown="PTZZoomout(true)"
+                                                                                     title="变倍-"
+                                                                                     onmouseup="PTZZoomout(false)"></td>
+            </tr>
+            <tr>
+                <td class="ja_bj1"><span><img src="images/d_icon2.png"/></span><input type="button" class="btn2"
+                                                                                      value="变焦+"
+                                                                                      onmousedown="PTZFocusIn(true)"
+                                                                                      title="变焦+"
+                                                                                      onmouseup="PTZFocusIn(false)">
+                </td>
+                <td>变焦</td>
+                <td class="ja_bj2"><span><img src="images/x_icon2.png"/></span><input type="button" class="btn2"
+                                                                                      value="变焦-"
+                                                                                      onmousedown="PTZFoucusOut(true)"
+                                                                                      title="变焦-"
+                                                                                      onmouseup="PTZFoucusOut(false)">
+                </td>
+            </tr>
+            <tr class="ja_gq">
+                <td class="ja_gq1"><span><img src="images/d_icon3.png"/></span><input type="button" class="btn2"
+                                                                                      value="光圈+"
+                                                                                      onmousedown="PTZIrisIn(true)"
+                                                                                      title="光圈+"
+                                                                                      onmouseup="PTZIrisIn(false)"></td>
+                <td>光圈</td>
+                <td class="ja_gq2"><span><img src="images/x_icon3.png"/></span><input type="button" class="btn2"
+                                                                                      value="光圈-"
+                                                                                      onmousedown="PTZIrisOut(true)"
+                                                                                      onmouseup="PTZIrisOut(false) "
+                                                                                      title="光圈-"></td>
+            </tr>
+
+        </table>
+        <!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>
+            <table class="ja_table1" cellpadding="0" cellspacing="0" border="0">
+                     <tr>
+                        <td class="tt">云台速度</td>
+                        <td>
+                            <select id="ptzspeed" class="sel">
+                                <option value="1">1</option>
+                                <option value="2">2</option>
+                                <option value="3">3</option>
+                                <option value="4" selected>4</option>
+                                <option value="5">5</option>
+                                <option value="6">6</option>
+                                <option value="7">7</option>
+                                <option value="8">8</option>
+                            </select>
+                        </td>
+                    </tr>
+                </table>
+
+                <div class="ja_div">
+                    <p>预览抓图保存路径</p>
+                    <div class="ja_inp">
+                        <input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+                        <input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+                    </div>
+                </div>
+        -->
+        <!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>-->
+        <table class="ja_table1" cellpadding="0" cellspacing="0" border="0" style="display:none;">
+            <tr>
+                <td class="tt">窗口分割</td>
+                <td>
+                    <select id="wndNum" class="sel2" onchange="changeWndNum(this.value);">
+                        <option value="1" selected>1x1</option>
+                        <option value="2">2x2</option>
+                        <option value="3">3x3</option>
+                        <option value="4">4x4</option>
+                        <option value="5">5x5</option>
+                        <option value="6">6x6</option>
+                    </select>
+                </td>
+            </tr>
+        </table>
+
+        <!--
+                <div class="ja_div">
+                    <p>预览抓图保存路径</p>
+                    <div class="ja_inp">
+                        <input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+                        <input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+                    </div>
+                </div>
+        -->
+    </div>
+
+
+</div>
+
+
+<div style="clear: both;"></div>
+<!--
+ <div id="opinfo" class="opinfo">
+	</div>
+-->
+<script src="module/foundation.js"></script>
+<script src="module/WebVideoCtrl.js"></script>
+<script src="module/modifyUI.js"></script>
+<script src="module/demo_jk.js"></script>
+
+
+<script>
+
+
+    $(function () {
+        $(".ja_table2 div").hover(function () {
+            $(this).find('img').attr("src", "images/ja_jiao2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/ja_jiao.png");
+        });
+
+        $(".ja_table3 .ja_bb1").hover(function () {
+            $(this).find('img').attr("src", "images/d_icon_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/d_icon.png");
+        });
+        $(".ja_table3 .ja_bb2").hover(function () {
+            $(this).find('img').attr("src", "images/x_icon_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/x_icon.png");
+        });
+        $(".ja_table3 .ja_bj1").hover(function () {
+            $(this).find('img').attr("src", "images/d_icon2_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/d_icon2.png");
+        });
+        $(".ja_table3 .ja_bj2").hover(function () {
+            $(this).find('img').attr("src", "images/x_icon2_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/x_icon2.png");
+        });
+        $(".ja_table3 .ja_gq1").hover(function () {
+            $(this).find('img').attr("src", "images/d_icon3_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/d_icon3.png");
+        });
+        $(".ja_table3 .ja_gq2").hover(function () {
+            $(this).find('img').attr("src", "images/x_icon3_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/x_icon3.png");
+        });
+
+
+        var hei = $(window).height();
+        $("#my_video_1").height(hei - 180);
+
+        $(".con_list").height(hei);
+        $(".con_right2").height(hei);
+
+    })
+
+
+</script>
+<script type="text/javascript">
+    function getInfo() {
+        var s = "";
+        s += " 网页可见区域宽:" + document.body.clientWidth + "\n";
+        s += " 网页可见区域高:" + document.body.clientHeight + "\n";
+        s += " 网页可见区域宽:" + document.body.offsetWidth + " (包括边线和滚动条的宽)" + "\n";
+        s += " 网页可见区域高:" + document.body.offsetHeight + " (包括边线的宽)" + "\n";
+        s += " 网页正文全文宽:" + document.body.scrollWidth + "\n";
+        s += " 网页正文全文高:" + document.body.scrollHeight + "\n";
+        s += " 网页被卷去的高(ff):" + document.body.scrollTop + "\n";
+        s += " 网页被卷去的高(ie):" + document.documentElement.scrollTop + "\n";
+        s += " 网页被卷去的左:" + document.body.scrollLeft + "\n";
+        s += " 网页正文部分上:" + window.screenTop + "\n";
+        s += " 网页正文部分左:" + window.screenLeft + "\n";
+        s += " 屏幕分辨率的高:" + window.screen.height + "\n";
+        s += " 屏幕分辨率的宽:" + window.screen.width + "\n";
+        s += " 屏幕可用工作区高度:" + window.screen.availHeight + "\n";
+        s += " 屏幕可用工作区宽度:" + window.screen.availWidth + "\n";
+        s += " 你的屏幕设置是 " + window.screen.colorDepth + " 位彩色" + "\n";
+        s += " 你的屏幕设置 " + window.screen.deviceXDPI + " 像素/英寸" + "\n";
+        return s;
+    }
+    function settingPlugin() {
+        var height = window.screen.height;
+        var width = window.screen.width;
+        if(width == 1920){
+            $("#divPlugin").css("width","500px");
+        }else if(width == 1680){
+            $("#divPlugin").css("width","430px");
+        }else if(width == 1600){
+            $("#divPlugin").css("width","410px");
+        }else if(width == 1440){
+            $("#divPlugin").css("width","370px");
+        }else if(width == 1400){
+            $("#divPlugin").css("width","360px");
+        }else if(width == 1366){
+            $("#divPlugin").css("width","340px");
+        }else if(width == 1360){
+            $("#divPlugin").css("width","330px");
+        }
+    }
+    settingPlugin();
+</script>
+
+</body>
+</html>

+ 362 - 0
mybusiness/src/main/resources/templates/dahua/demo-jkd.html

@@ -0,0 +1,362 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta http-equiv="Pragma" content="no-cache"/>
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/>
+    <meta http-equiv="Expires" content="0"/>
+    <link href="css/jquery-ui.css" rel="stylesheet">
+    <link href="images/ja_ja.css" rel="stylesheet">
+    <script src="images/jquery-1.7.1.min.js"></script>
+    <script>
+        document.write("<link type='text/css' href='css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+<script src="lib/jquery.js"></script>
+<script src="lib/jquery-ui.js"></script>
+<script src="lib/json2.js"></script>
+
+
+<style>
+
+</style>
+<body>
+
+
+<script>
+    function GetRequest() {
+        var url = location.search; //获取url中"?"符后的字串
+        var theRequest = new Object();
+        if (url.indexOf("?") != -1) {
+            var str = url.substr(1);
+            strs = str.split("&");
+            for (var i = 0; i < strs.length; i++) {
+                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
+            }
+        }
+        console.log("request:", theRequest)
+        //---------------------------------
+        $("#szIP").val(theRequest.hik_ip);
+        $("#szPort").val(theRequest.port);
+        $("#szUsername").val(theRequest.hik_username);
+        $("#szPassword").val(theRequest.hik_password);
+
+
+        return theRequest;
+    }
+
+
+    function sleep(callback, time) {
+        if (typeof callback == "function") {
+            setTimeout(callback, time);
+        }
+    }
+
+    function output() {
+        console.log(1);
+        clickLogin();
+        sleep(clickStartRealPlay, 2000)
+    }
+
+
+    $(document).ready(function () {
+        GetRequest();
+        sleep(output, 2000);
+    });
+
+</script>
+
+
+<input type="hidden" id="szIP" name="IP"/>
+<input type="hidden" id="szPort" name="端口"/>
+<input type="hidden" id="szUsername" name="账号"/>
+<input type="hidden" id="szPassword" name="密码"/>
+<input type="hidden" id="ptzspeed" name="云台控制速度" value="4"/>
+
+<div>
+    <div class="con_left">
+        <div id="divPlugin" class="plugin">
+        </div>
+    </div>
+
+    <div class="con_right con_right2">
+        <ul class="top_ul">
+            <li class="on"><a>电视墙</a></li>
+            <!--<li class="on" id="jkd"><a>监控端</a></li>-->
+            <!--<li id="gld"><a>管理端</a></li>-->
+            <!--<li id="dsj"><a>大数据端</a></li>-->
+        </ul>
+        <table class="ja_table2" cellpadding="0" cellspacing="0" border="0">
+
+            <tr>
+                <td class="left_btn">
+                    <div class="zs_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn zs_btn" value="左上" onmousedown="mouseUPLeftPTZControl(true);"
+                               onmouseup="mouseUPLeftPTZControl(false);" title="左上"/>
+                    </div>
+                    <div class="s_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="上" onmousedown="mouseUpPTZControl(true);"
+                               onmouseup="mouseUpPTZControl(false);" title="上"/>
+                    </div>
+                    <div class="ys_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="右上" onmousedown="mouseUPRightPTZControl(true);"
+                               onmouseup="mouseUPRightPTZControl(false);" title="右上"/>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td class="con_btn">
+
+                    <div class="z_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="左" onmousedown="mouseLefPTZControl(true);"
+                               onmouseup="mouseLefPTZControl(false);" title="左"/>
+                    </div>
+                    <div class="zsc_btn">
+                        <input type="button" class="center" value=""/>
+                    </div>
+                    <div class="y_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="右" onmousedown="mouseRightPTZControl(true);"
+                               onmouseup="mouseRightPTZControl(false);" title="右"/>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td class="right_btn">
+
+                    <div class="zx_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="左下" onmousedown="mouseDownLeftPTZControl(true);"
+                               onmouseup="mouseDownLeftPTZControl(false);" title="左上"/>
+                    </div>
+                    <div class="x_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="下" onmousedown="mouseDownPTZControl(true);"
+                               onmouseup="mouseDownPTZControl(false);" title="下"/>
+                    </div>
+                    <div class="yx_btn">
+                        <span><img src="images/ja_jiao.png"/></span>
+                        <input type="button" class="btn " value="右下" onmousedown="mouseDownRightPTZControl(true);"
+                               onmouseup="mouseDownRightPTZControl(false);" title="右下"/>
+                    </div>
+                </td>
+            </tr>
+        </table>
+        <table class="ja_table3" cellpadding="0" cellspacing="0" border="0">
+            <tr>
+                <td class="ja_bb1"><span><img src="images/d_icon.png"/></span><input type="button" class="btn2"
+                                                                                     value="变倍+"
+                                                                                     onmousedown="PTZZoomIn(true)"
+                                                                                     title="变倍+"
+                                                                                     onmouseup="PTZZoomIn(false)">
+                </td>
+                <td>变倍</td>
+                <td class="ja_bb2"><span><img src="images/x_icon.png"/></span><input type="button" class="btn2"
+                                                                                     value="变倍-"
+                                                                                     onmousedown="PTZZoomout(true)"
+                                                                                     title="变倍-"
+                                                                                     onmouseup="PTZZoomout(false)"></td>
+            </tr>
+            <tr>
+                <td class="ja_bj1"><span><img src="images/d_icon2.png"/></span><input type="button" class="btn2"
+                                                                                      value="变焦+"
+                                                                                      onmousedown="PTZFocusIn(true)"
+                                                                                      title="变焦+"
+                                                                                      onmouseup="PTZFocusIn(false)">
+                </td>
+                <td>变焦</td>
+                <td class="ja_bj2"><span><img src="images/x_icon2.png"/></span><input type="button" class="btn2"
+                                                                                      value="变焦-"
+                                                                                      onmousedown="PTZFoucusOut(true)"
+                                                                                      title="变焦-"
+                                                                                      onmouseup="PTZFoucusOut(false)">
+                </td>
+            </tr>
+            <tr class="ja_gq">
+                <td class="ja_gq1"><span><img src="images/d_icon3.png"/></span><input type="button" class="btn2"
+                                                                                      value="光圈+"
+                                                                                      onmousedown="PTZIrisIn(true)"
+                                                                                      title="光圈+"
+                                                                                      onmouseup="PTZIrisIn(false)"></td>
+                <td>光圈</td>
+                <td class="ja_gq2"><span><img src="images/x_icon3.png"/></span><input type="button" class="btn2"
+                                                                                      value="光圈-"
+                                                                                      onmousedown="PTZIrisOut(true)"
+                                                                                      onmouseup="PTZIrisOut(false) "
+                                                                                      title="光圈-"></td>
+            </tr>
+
+        </table>
+        <!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>
+            <table class="ja_table1" cellpadding="0" cellspacing="0" border="0">
+                     <tr>
+                        <td class="tt">云台速度</td>
+                        <td>
+                            <select id="ptzspeed" class="sel">
+                                <option value="1">1</option>
+                                <option value="2">2</option>
+                                <option value="3">3</option>
+                                <option value="4" selected>4</option>
+                                <option value="5">5</option>
+                                <option value="6">6</option>
+                                <option value="7">7</option>
+                                <option value="8">8</option>
+                            </select>
+                        </td>
+                    </tr>
+                </table>
+
+                <div class="ja_div">
+                    <p>预览抓图保存路径</p>
+                    <div class="ja_inp">
+                        <input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+                        <input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+                    </div>
+                </div>
+        -->
+        <!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>-->
+        <table class="ja_table1" cellpadding="0" cellspacing="0" border="0" style="display:none;">
+            <tr>
+                <td class="tt">窗口分割</td>
+                <td>
+                    <select id="wndNum" class="sel2" onchange="changeWndNum(this.value);">
+                        <option value="1" selected>1x1</option>
+                        <option value="2">2x2</option>
+                        <option value="3">3x3</option>
+                        <option value="4">4x4</option>
+                        <option value="5">5x5</option>
+                        <option value="6">6x6</option>
+                    </select>
+                </td>
+            </tr>
+        </table>
+
+        <!--
+                <div class="ja_div">
+                    <p>预览抓图保存路径</p>
+                    <div class="ja_inp">
+                        <input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+                        <input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+                    </div>
+                </div>
+        -->
+    </div>
+
+
+</div>
+
+
+<div style="clear: both;"></div>
+<!--
+ <div id="opinfo" class="opinfo">
+	</div>
+-->
+<script src="module/foundation.js"></script>
+<script src="module/WebVideoCtrl.js"></script>
+<script src="module/modifyUI.js"></script>
+<script src="module/demo_jk.js"></script>
+
+
+<script>
+
+
+    $(function () {
+        $(".ja_table2 div").hover(function () {
+            $(this).find('img').attr("src", "images/ja_jiao2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/ja_jiao.png");
+        });
+
+        $(".ja_table3 .ja_bb1").hover(function () {
+            $(this).find('img').attr("src", "images/d_icon_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/d_icon.png");
+        });
+        $(".ja_table3 .ja_bb2").hover(function () {
+            $(this).find('img').attr("src", "images/x_icon_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/x_icon.png");
+        });
+        $(".ja_table3 .ja_bj1").hover(function () {
+            $(this).find('img').attr("src", "images/d_icon2_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/d_icon2.png");
+        });
+        $(".ja_table3 .ja_bj2").hover(function () {
+            $(this).find('img').attr("src", "images/x_icon2_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/x_icon2.png");
+        });
+        $(".ja_table3 .ja_gq1").hover(function () {
+            $(this).find('img').attr("src", "images/d_icon3_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/d_icon3.png");
+        });
+        $(".ja_table3 .ja_gq2").hover(function () {
+            $(this).find('img').attr("src", "images/x_icon3_2.png");
+        }, function () {
+            $(this).find('img').attr("src", "images/x_icon3.png");
+        });
+
+
+        var hei = $(window).height();
+        $("#my_video_1").height(hei - 180);
+
+        $(".con_list").height(hei);
+        $(".con_right2").height(hei);
+
+    })
+
+
+</script>
+<script type="text/javascript">
+    function getInfo() {
+        var s = "";
+        s += " 网页可见区域宽:" + document.body.clientWidth + "\n";
+        s += " 网页可见区域高:" + document.body.clientHeight + "\n";
+        s += " 网页可见区域宽:" + document.body.offsetWidth + " (包括边线和滚动条的宽)" + "\n";
+        s += " 网页可见区域高:" + document.body.offsetHeight + " (包括边线的宽)" + "\n";
+        s += " 网页正文全文宽:" + document.body.scrollWidth + "\n";
+        s += " 网页正文全文高:" + document.body.scrollHeight + "\n";
+        s += " 网页被卷去的高(ff):" + document.body.scrollTop + "\n";
+        s += " 网页被卷去的高(ie):" + document.documentElement.scrollTop + "\n";
+        s += " 网页被卷去的左:" + document.body.scrollLeft + "\n";
+        s += " 网页正文部分上:" + window.screenTop + "\n";
+        s += " 网页正文部分左:" + window.screenLeft + "\n";
+        s += " 屏幕分辨率的高:" + window.screen.height + "\n";
+        s += " 屏幕分辨率的宽:" + window.screen.width + "\n";
+        s += " 屏幕可用工作区高度:" + window.screen.availHeight + "\n";
+        s += " 屏幕可用工作区宽度:" + window.screen.availWidth + "\n";
+        s += " 你的屏幕设置是 " + window.screen.colorDepth + " 位彩色" + "\n";
+        s += " 你的屏幕设置 " + window.screen.deviceXDPI + " 像素/英寸" + "\n";
+        return s;
+    }
+    function settingPlugin() {
+        var height = window.screen.height;
+        var width = window.screen.width;
+        if(width == 1920){
+            $("#divPlugin").css("width","500px");
+        }else if(width == 1680){
+            $("#divPlugin").css("width","430px");
+        }else if(width == 1600){
+            $("#divPlugin").css("width","410px");
+        }else if(width == 1440){
+            $("#divPlugin").css("width","370px");
+        }else if(width == 1400){
+            $("#divPlugin").css("width","360px");
+        }else if(width == 1366){
+            $("#divPlugin").css("width","340px");
+        }else if(width == 1360){
+            $("#divPlugin").css("width","330px");
+        }
+    }
+    settingPlugin();
+</script>
+
+</body>
+</html>

+ 481 - 0
mybusiness/src/main/resources/templates/dahua/demo.html

@@ -0,0 +1,481 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="Expires" content="0" />
+	<link href="../css/jquery-ui.css" rel="stylesheet">
+	<link href="../css/jquery-ui.css" rel="stylesheet">
+    <script>
+        document.write("<link type='text/css' href='css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+	<script src="../lib/jquery.js"></script>
+	<script src="../lib/jquery-ui.js"></script>
+	<script src="../lib/json2.js"></script>
+   
+
+	<style>
+		.con_left{
+			width:76%;
+			margin-right: 2%;
+			float:left;
+			padding: 1%;
+		}
+		.con_right{
+			width:18%;
+			float: right;
+			padding: 1%;
+		}
+		.con_right input[type="button"]{
+    outline: 0px;
+    color: #ffffff;
+    border: 0px;
+    margin: 2px auto;
+    cursor: pointer;
+    width: 100%;
+    height: 100%;
+		}
+		.ja_table1{
+			width: 100%;
+			margin-bottom: 20px;
+		}
+		.ja_table1 td.tt{
+			font-size: 16px;
+			padding-right: 5px;
+			color: #12abe3;
+			width: 70px;
+			height: 30px;
+			line-height: 30px;
+		}
+		.ja_table1 td select {
+    color: #333;
+    width: 98%;
+    padding: 1%;
+    border: 1px solid #bbbec4;
+    background: none;
+    font-size: 12px;
+    border-radius: 4px;
+    outline: 0px;
+    height: 28px;
+    line-height: 28px;
+}
+		.ja_table1 td select option{
+    color: #333;
+}
+		
+		.ja_table2{
+    background:url(images/ja_bg.png) no-repeat center;
+    background-size: 100% 100%;
+    width: 255px!important;
+    height: 244px!important;
+    margin: 14px auto;
+    float: none;
+}
+.ja_table2 div{
+    float:left;
+    position:relative;
+    height: 81px;
+    width: 82px;
+}
+.ja_table2 div span{
+    position: absolute;
+}
+.ja_table2 div span img{
+    width: 33px;
+}
+.ja_table2 div:hover span img{
+    /*	box-shadow: 3px 3px 3px #eee;*/
+}
+.ja_table2 input[type="button"]{
+    text-indent: -999em;
+    background: none!important;
+    position: absolute;
+    width: 100%!important;
+}
+.ja_table2 input[type="button"]:hover{
+    background: none!important;
+    box-shadow: 0px 0px 0px;
+}
+.ja_table2 .center{
+    text-indent: 1px!important;
+    line-height: 68px;
+    padding-left: 5px;
+}
+.zs_btn span{
+    top: 48px;
+    left: 51px;
+}
+.zs_btn span img{
+    transform: rotate(-45deg);
+}
+.s_btn span {
+    top: 28px;
+    left: 28px;
+}
+.s_btn span img{
+    transform: rotate(0deg);
+}
+.ys_btn span{
+    top: 48px;
+    right: 45px;
+}
+.ys_btn span img{
+    transform: rotate(47deg);
+}
+.z_btn span{
+   top: 23px;
+   left: 25px;
+}
+.z_btn span img{
+    transform: rotate(-90deg);
+}
+.y_btn span{
+    top: 20px;
+    right: 18px;
+}
+.y_btn span img{
+    transform: rotate(90deg);
+}
+.zx_btn span{
+    top: 0px;
+    left: 49px;
+}
+.zx_btn span img{
+    transform: rotate(-140deg);
+}
+.x_btn span{
+   top: 23px;
+   left: 29px;
+}
+.x_btn span img{
+    transform: rotate(180deg);
+}
+.yx_btn span{
+    top: -5px;
+    right: 45px;
+}
+.yx_btn span img{
+    transform: rotate(252deg);
+}
+		.zsc_btn{
+			background: url(images/ja_con.png) no-repeat 23px 19px;
+			background-size: 45px;
+}
+		.zsc_btn:hover{
+			background: url(images/ja_con2.png) no-repeat 23px 19px;
+			background-size: 45px;
+		}
+		.ja_table3{
+			width:90%;
+			margin: 20px auto;
+  
+}
+		.ja_table3 td{
+    position: relative;
+    width: 70px;
+    text-align: center;
+    height: 60px;
+    line-height: 1px;
+    font-size: 16px;
+    color: #129fea;
+			font-weight: 900;
+}
+.ja_table3 td span img{
+    width:34px;
+}
+.ja_table3 input[type="button"]{
+    text-indent: -999em;
+    background: none!important;
+    position: absolute;
+    width:100%;
+    left: 0px;
+    top:0px;
+}
+		.ja_zt{
+			margin-bottom:20px;
+		}
+		.ja_zt input{
+			width:100%;
+			background: repeating-linear-gradient(#e4e8f3,#dcdee3,#acb0b9);
+    height: 35px!important;
+    line-height: 30px;
+    border-radius: 5px;
+    color: #129fea!important;
+    font-size: 16px;
+    font-weight: 900;
+    letter-spacing: 4px;
+    border: 2px solid #a8d8f9!important;
+		}
+		.ja_zt input:hover{
+			background: repeating-linear-gradient(#bbbdc3,#c2c9da,#c8d1e4);
+    border: 2px solid #91cff9!important;
+		}
+		.ja_div,.ja_table1,.ja_zt{
+			width:80%;
+			margin: 20px auto 0px auto;
+			
+			
+		}
+		.ja_div p{
+			font-size: 16px;
+    color: #3aa4f1;
+    margin: 20px 0px 10px 0px;
+			
+		}
+		.ja_div .ja_inp{
+			width:100%;
+			height: 30px;
+			position: relative;
+		}
+		.ja_div .ja_inp .ja_txt{
+			width:90%;
+			padding: 1%;
+    border: 1px solid #bbbec4;
+    background: none;
+    font-size: 12px;
+    border-radius: 4px;
+    outline: 0px;
+    height: 28px;
+    line-height: 28px;
+			position: absolute;
+			top:0px;
+			left: 0px;
+		}
+		.ja_div .ja_inp .ja_btn{
+			width: 60px;
+    position: absolute;
+    top: -2px;
+    right: 0px;
+    height: 36px;
+    z-index: 9;
+    background: repeating-linear-gradient(#bbbdc3,#c2c9da,#c8d1e4);
+    color: #129fe8;
+    font-weight: 900;
+    letter-spacing: 2px;
+		}
+		
+		.plugin {
+    width: 100%;
+    height: 600px;
+}
+		.opinfo{
+			background: #e2e2e2;
+    padding: 5px;
+    line-height: 20px;
+    color: #333;
+			height: 100px;
+			overflow-y: auto;
+		}	
+		.opinfo::-webkit-scrollbar{display:none} 
+		
+	</style>
+<body>
+<div class="con_left">
+    <video style="width:100%;"  preload="auto" autoplay id="my_video_1">
+		<source src="http://119.55.12.182:7086/live/cameraid/1000006%240/substream/1.m3u8" type="application/x-mpegURL">
+	</video>
+	<input type="hidden" id="szIP" name="IP" value="36.135.60.89" />
+<input type="hidden" id="szPort" name="端口" value="2021" />
+<input type="hidden" id="szUsername" name="账号" value="admin" />
+<input type="hidden" id="szPassword" name="密码" value="Admin@666" />
+		
+ 
+
+</div>
+
+	<div class="con_right">
+		
+		<table class="ja_table2" cellpadding="0" cellspacing="0" border="0">
+
+			<tr>
+						<td class="left_btn">
+							<div class="zs_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn zs_btn" value="左上" onmousedown="mouseUPLeftPTZControl(true);" onmouseup="mouseUPLeftPTZControl(false);" title="左上"  />
+							</div>
+							<div class="s_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="上" onmousedown="mouseUpPTZControl(true);" onmouseup="mouseUpPTZControl(false);"  title="上"  />
+								</div>
+							<div class="ys_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右上" onmousedown="mouseUPRightPTZControl(true);" onmouseup="mouseUPRightPTZControl(false);"  title="右上"  />
+							</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="con_btn">
+						
+							<div class="z_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左" onmousedown="mouseLefPTZControl(true);" onmouseup="mouseLefPTZControl(false);"  title="左"  />
+								</div>
+							<div class="zsc_btn">
+							<input type="button" class="center" value=""  />
+								</div>
+							<div class="y_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右" onmousedown="mouseRightPTZControl(true);" onmouseup="mouseRightPTZControl(false);"  title="右"  />
+					</div>
+						</td>
+					</tr>
+					<tr>
+						<td class="right_btn">
+						
+							<div class="zx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="左下" onmousedown="mouseDownLeftPTZControl(true);" onmouseup="mouseDownLeftPTZControl(false);"  title="左上"  />
+								</div>
+							<div class="x_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="下" onmousedown="mouseDownPTZControl(true);" onmouseup="mouseDownPTZControl(false);"  title="下"  />
+								</div>
+							<div class="yx_btn">
+								<span><img src="images/ja_jiao.png"/></span>
+							<input type="button" class="btn " value="右下" onmousedown="mouseDownRightPTZControl(true);" onmouseup="mouseDownRightPTZControl(false);"  title="右下"  />
+			              </div>
+						</td>
+					</tr>
+		</table>
+		<table class="ja_table3" cellpadding="0" cellspacing="0" border="0">
+			  <tr>
+                <td  class="ja_bb1"><span><img src="images/d_icon.png"/></span><input type="button" class="btn2" value="变倍+" onmousedown="PTZZoomIn(true)" title="变倍+" onmouseup="PTZZoomIn(false)">
+				  </td>
+				  <td>变倍</td>
+                <td class="ja_bb2"><span><img src="images/x_icon.png"/></span><input type="button" class="btn2" value="变倍-" onmousedown="PTZZoomout(true)"  title="变倍-"onmouseup="PTZZoomout(false)"></td>
+            </tr>
+            <tr>
+                <td class="ja_bj1" ><span><img src="images/d_icon2.png"/></span><input type="button" class="btn2" value="变焦+" onmousedown="PTZFocusIn(true)"  title="变焦+"onmouseup="PTZFocusIn(false)"></td>
+				  <td>变焦</td>
+                <td class="ja_bj2"><span><img src="images/x_icon2.png"/></span><input type="button" class="btn2" value="变焦-" onmousedown="PTZFoucusOut(true)"  title="变焦-"onmouseup="PTZFoucusOut(false)"></td>
+            </tr>
+            <tr class="ja_gq">
+                <td class="ja_gq1" ><span><img src="images/d_icon3.png"/></span><input type="button" class="btn2" value="光圈+" onmousedown="PTZIrisIn(true)" title="光圈+" onmouseup="PTZIrisIn(false)"></td>
+				  <td>光圈</td>
+                <td class="ja_gq2"><span><img src="images/x_icon3.png"/></span><input type="button" class="btn2" value="光圈-" onmousedown="PTZIrisOut(true)" onmouseup="PTZIrisOut(false) " title="光圈-"></td>
+            </tr>
+			
+		</table>
+<!--	<div class="ja_zt"> <input type="button" class="btn" value="抓图" onclick="clickCapturePic();" /></div>-->
+	<table class="ja_table1" cellpadding="0" cellspacing="0" border="0">
+			 <tr>
+                <td class="tt">云台速度</td>
+                <td>
+                    <select id="ptzspeed" class="sel">
+                        <option value="1">1</option>
+                        <option value="2">2</option>
+                        <option value="3">3</option>
+                        <option value="4" selected>4</option>
+                        <option value="5">5</option>
+                        <option value="6">6</option>
+                        <option value="7">7</option>
+						<option value="8">8</option>
+                    </select>
+                </td>
+            </tr>
+		</table>
+<!--
+		<div class="ja_div">
+			<p>预览抓图保存路径</p>
+			<div class="ja_inp">
+				<input id="LiveSnapshot" type="text"  class="ja_txt txt" />
+				<input type="button"  value="浏览" onclick="clickOpenFileDlg('LiveSnapshot');"  class="ja_btn btn"/>
+			</div>
+		</div>
+-->
+
+</div>
+
+
+<div style="clear: both;"></div>
+ <div id="opinfo" class="opinfo">
+	</div>
+
+<script src="../module/foundation.js"></script>
+<script src="../module/WebVideoCtrl.js"></script>
+<script src="../module/modifyUI.js"></script>
+<script src="../module/demo.js"></script>
+<script src="../module/jquery-1.7.1.min.js"></script>
+
+
+
+<script>
+
+	
+	$(function(){
+		$(".ja_table2 div").hover(function(){
+			$(this).find('img').attr("src","images/ja_jiao2.png");
+		},function(){
+			$(this).find('img').attr("src","images/ja_jiao.png");
+		});
+		
+		$(".ja_table3 .ja_bb1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon.png");
+		});
+		$(".ja_table3 .ja_bb2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon.png");
+		});
+		$(".ja_table3 .ja_bj1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon2.png");
+		});
+		$(".ja_table3 .ja_bj2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon2_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon2.png");
+		});
+		$(".ja_table3 .ja_gq1").hover(function(){
+			$(this).find('img').attr("src","images/d_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/d_icon3.png");
+		});
+		$(".ja_table3 .ja_gq2").hover(function(){
+			$(this).find('img').attr("src","images/x_icon3_2.png");
+		},function(){
+			$(this).find('img').attr("src","images/x_icon3.png");
+		});
+		
+		
+		
+		var hei = $(window).height();
+		$("#my_video_1").height(hei - 180);
+		
+		
+	})
+	
+	
+	
+</script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body>
+</html>

+ 479 - 0
mybusiness/src/main/resources/templates/dahua/en/demo.html

@@ -0,0 +1,479 @@
+<!doctype html>
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="Expires" content="0" />
+	<link href="../css/jquery-ui.css" rel="stylesheet">
+	<link href="../css/jquery-ui.css" rel="stylesheet">
+    <script>
+        document.write("<link type='text/css' href='../css/demo.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
+    </script>
+</head>
+	<script src="../lib/jquery.js"></script>
+	<script src="../lib/jquery-ui.js"></script>
+<body>
+<div class="left">
+    <div id="divPlugin" class="plugin">
+	</div>
+    <fieldset class="login">
+        <legend>Login</legend>
+        <table cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt">IP Address</td>
+                <td><input id="loginip" type="text" class="txt" value="172.27.1.84" /></td>
+                <td class="tt">Port</td>
+                <td><input id="port" type="text" class="txt" value="37777" /></td>
+            </tr>
+			<tr>
+                <td class="tt">Protocal Type</td>
+                <td colspan="2">
+                    <select id="protocolType" class="sel" onchange="changeProtocol(this.value);">
+                        <option value="0">TCP</option>
+                        <option value="4">UDP</option>
+						<option value="3">Multicast</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">User Name</td>
+                <td><input id="username" type="text" class="txt" value="admin" /></td>
+                <td class="tt">Password</td>
+                <td><input id="password" type="password" class="txt" value="admin123" /></td>
+            </tr>
+            <tr>
+                <td class="tt">RTSP Port</td>
+                <td colspan="2"><input id="rtspport" type="text" class="txt" value="37777" />(Optional)</td>
+				<td colspan="4">
+                    <input type="button" class="btn2" value="Login" onclick="clickLogin();" />
+                    <input type="button" class="btn2" value="Logout" onclick="clickLogout();" />
+                </td>
+            </tr>
+		    <tr>
+                <td class="tt">Logged in device</td>
+                <td>
+                    <select id="ips" class="sel" onchange="switchDeviceInfo(this.value);"></select>
+                </td>
+                <td class="tt">Channels</td>
+                <td>
+                    <select id="channels" class="sel"></select>
+                </td>
+            </tr>
+            <tr>
+				<td class="tt">WindowNum</td>
+                <td colspan="2">
+                    <select id="wndNum" class="sel2" onchange="changeWndNum(this.value);">
+                        <option value="1">1x1</option>
+                        <option value="2" selected>2x2</option>
+                        <option value="3">3x3</option>
+                        <option value="4">4x4</option>
+                    </select>
+                </td>
+				<td colspan="4">
+                     <input type="button" class="btn3" value="Full Screen" onclick="clickFullScreen();" />
+                </td>
+            </tr>
+        </table>
+    </fieldset>
+    <fieldset class="localconfig">
+        <legend>Local Configuration</legend>
+        <table cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt">Play Mode</td>
+                <td>
+                    <select id="netsPreach" name="netsPreach" class="sel">
+                        <option value="0">Mini Delay</option>
+                        <option value="1">Real Time</option>
+                        <option value="2">balanced</option>
+                        <option value="3">Fluent</option>
+                    </select>
+                </td>
+                <td class="tt">Video Size</td>
+                <td>
+                    <select id="wndSize" name="wndSize" class="sel">
+                        <option value="0">Full</option>
+                        <option value="1">4:3</option>
+                        <option value="2">16:9</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">Rule Info</td>
+                <td>
+                    <select id="rulesInfo" name="rulesInfo" class="sel">
+                        <option value="1">Enable</option>
+                        <option value="0">Disable</option>
+                    </select>
+                </td>
+                <td class="tt">Snapshot Format</td>
+                <td>
+                    <select id="captureFileFormat" name="captureFileFormat" class="sel">
+                        <option value="0">BMP</option>
+                        <option value="1">JEPG</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">Record Path</td>
+                <td colspan="3"><input id="LiveRecord" type="text" class="txt3" />&nbsp;<input type="button" class="btn2" value="Browse..." onclick="clickOpenFileDlg('LiveRecord');" /></td>
+            </tr>
+            <tr>
+                <td class="tt">Download Path</td>
+                <td colspan="3"><input id="Download" type="text" class="txt3" />&nbsp;<input type="button" class="btn2" value="Browse..." onclick="clickOpenFileDlg('Download');" /></td>
+            </tr>
+            <tr>
+                <td class="tt">Live Snapshot Path</td>
+                <td colspan="3"><input id="LiveSnapshot" type="text" class="txt3" />&nbsp;<input type="button" class="btn2" value="Browse..." onclick="clickOpenFileDlg('LiveSnapshot');" /></td>
+            </tr>
+            <tr>
+                <td class="tt">Playback Snapshot Path</td>
+                <td colspan="3"><input id="PlaybackPicPath" type="text" class="txt3" />&nbsp;<input type="button" class="btn2" value="Browse..." onclick="clickOpenFileDlg('PlaybackPicPath');" /></td>
+            </tr>
+            <tr>
+                <td class="tt">Playback File Path</td>
+                <td colspan="3"><input id="PlaybackFilePath" type="text" class="txt3" />&nbsp;<input type="button" class="btn2" value="Browse..." onclick="clickOpenFileDlg('playbackFilePath');" /></td>
+            </tr>
+        </table>
+    </fieldset>
+    <fieldset class="operate">
+        <legend>Operation Info</legend>
+        <div id="opinfo" class="opinfo"></div>
+    </fieldset>
+</div>
+<div class="left">
+    <fieldset class="preview">
+        <legend>Live</legend>
+        <table cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt" colspan="1">Stream Type</td>
+                <td colspan="1">
+                    <select id="streamtype" class="sel2" onchange="changeStreamType(this.value);">
+                        <option value="1">Main Stream</option>
+                        <option value="2">Second Stream</option>
+                    </select>
+                </td>
+                <td colspan="1">
+                    <input type="button" class="btn2" value="Start Live" onclick="clickStartRealPlay();" />
+                    <input type="button" class="btn2" value="Stop Live" onclick="clickStopRealPlay();" />
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <input type="button" class="btn2" value="Audio Talk" onclick="clickStartVoiceTalk();" />
+				</td>
+				 <td>
+                    <input type="button" class="btn2" value="Stop Talk" onclick="clickStopVoiceTalk();" />
+                </td>
+				<td>
+				</td>
+            </tr>
+        </table>
+    </fieldset>
+    <fieldset class="preview">
+        <legend>AudioVideo Ctrl</legend>
+		<table cellpadding="0" cellspacing="3" border="0">
+            <tr>
+				<td class="tt">
+                    <input type="button" class="btn2" value="Enable Sound" onclick="clickOpenSound();" />
+                </td>
+                <td >
+					<input type="button" class="btn2" value="Disable Sound" onclick="clickCloseSound();" />
+				</td>
+                <td>
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <input type="button" class="btn2" value="Snapshot" onclick="clickCapturePic();" />
+				</td>
+				<td>
+                    <input type="button" class="btn2" value="Start Record" onclick="clickStartRecord();" />
+				</td>
+				<td>
+                    <input type="button" class="btn2" value="Stop Record" onclick="clickStopRecord();" />
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <input type="button" class="btn2" value="Enable Enlarge" onclick="clickEnableEZoom();" />
+				</td>
+				<td>
+                    <input type="button" class="btn2" value="Disable Enlarge" onclick="clickDisableEZoom();" />
+                </td>
+				<td>
+				</td>
+            </tr>
+		</table>
+	</fieldset>
+    <fieldset class="ptz">
+	<legend>PTZ</legend>
+	<div id="tabs">
+	<ul>
+		<li><a href="#tabs-1">PTZ Ctrl</a></li>
+		<li><a href="#tabs-2">Preset</a></li>
+		<li><a href="#tabs-3">Track Routes</a></li>
+		<li><a href="#tabs-4">Track Preset</a></li>
+		<li><a href="#tabs-5">Line Scan</a></li>
+		<li><a href="#tabs-6">Pattern</a></li>
+	</ul>
+	<div id="tabs-1">
+	    <table cellpadding="0" cellspacing="3" border="0" class="left">
+            <tr>
+                <td>
+                    <input type="button" class="btn2" value="Top Left" onmousedown="mouseUPLeftPTZControl(false);" onmouseup="mouseUPLeftPTZControl(true);" />
+                    <input type="button" class="btn2" value="Top" onmousedown="mouseUpPTZControl(false);" onmouseup="mouseUpPTZControl(true);" />
+                    <input type="button" class="btn2" value="Top Right" onmousedown="mouseUPRightPTZControl(false);" onmouseup="mouseUPRightPTZControl(true);" />
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <input type="button" class="btn" value="Left" onmousedown="mouseLefPTZControl(false);" onmouseup="mouseLefPTZControl(true);" />
+                    <input type="button" class="btn" id="openPtzLocate" value="Enable" onclick="openPtzLocate();" />
+					<input type="button" class="btn" id="closePtzLocate" value="Disable" onclick="closePtzLocate();" />
+                    <input type="button" class="btn" value="Right" onmousedown="mouseRightPTZControl(false);" onmouseup="mouseRightPTZControl(true);" />
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <input type="button" class="btn3" value="Bottom Left" onmousedown="mouseDownLeftPTZControl(false);" onmouseup="mouseDownLeftPTZControl(true);" />
+                    <input type="button" class="btn3" value="Bottom" onmousedown="mouseDownPTZControl(false);" onmouseup="mouseDownPTZControl(true);" />
+                    <input type="button" class="btn3" value="Bottom Right" onmousedown="mouseDownRightPTZControl(false);" onmouseup="mouseDownRightPTZControl(true);" />
+                </td>
+            </tr>
+        </table>
+        <table cellpadding="0" cellspacing="3" border="0" class="left">
+            <tr>
+                <td class="tt">Speed</td>
+                <td>
+                    <select id="ptzspeed" class="sel">
+                        <option value="1">1</option>
+                        <option value="2">2</option>
+                        <option value="3">3</option>
+                        <option value="4" selected>4</option>
+                        <option value="5">5</option>
+                        <option value="6">6</option>
+                        <option value="7">7</option>
+                    </select>
+                </td>
+            </tr>
+        </table>
+        <table cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt"><input type="button" class="btn2" value="Zoom+" onmousedown="PTZZoomIn(false)" onmouseup="PTZZoomIn(true)"></td>
+                <td><input type="button" class="btn2" value="Zoom-" onmousedown="PTZZoomout(false)" onmouseup="PTZZoomout(true)"></td>
+            </tr>
+            <tr>
+                <td class="tt"><input type="button" class="btn2" value="Focus+" onmousedown="PTZFocusIn(false)" onmouseup="PTZFocusIn(true)"></td>
+                <td><input type="button" class="btn2" value="Focus-" onmousedown="PTZFoucusOut(false)" onmouseup="PTZFoucusOut(true)"></td>
+            </tr>
+            <tr>
+                <td class="tt"><input type="button" class="btn2" value="Iris+" onmousedown="PTZIrisIn(false)" onmouseup="PTZIrisIn(true)"></td>
+                <td><input type="button" class="btn2" value="Iris-" onmousedown="PTZIrisOut(false)" onmouseup="PTZIrisOut(true)"></td>
+            </tr>
+        </table>
+	</div>
+	<div id="tabs-2">
+		<!--
+        <table cellpadding="0" cellspacing="3" border="0" class="left">
+            <tr>
+                <td class="tt">预置点列表</td>
+                <td>
+                    <select id="presetList" class="sel">
+                    </select>
+                </td>
+            </tr>
+        </table>
+        <table cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt"><input type="button" class="btn2" value="获取" onmousedown="GetPresets()"></td>
+                <td><input type="button" class="btn2" value="定位到" onmousedown="GotoPreset()"></td>
+            </tr>
+            <tr>
+                <td class="tt"><input type="button" class="btn2" value="增加" onmousedown="SetPreset()"></td>
+                <td><input type="button" class="btn2" value="删除" onmousedown="RemovePreset()"></td>
+            </tr>
+        </table>
+		<-->
+	</div>
+	<div id="tabs-3">
+		<table cellpadding="0" cellspacing="3" border="0" >
+            <tr>
+                <td class="tt">PtzTour</td>
+                <td>
+                    <select id="tourIndex" class="sel">
+                        <option value="1" selected>1</option>
+                        <option value="2">2</option>
+                        <option value="3">3</option>
+                        <option value="4">4</option>
+                        <option value="5">5</option>
+                        <option value="6">6</option>
+                        <option value="7">7</option>
+						<option value="8">8</option>
+                    </select>
+                </td>
+				<td class="tt">1~8</td>
+                <td class="tt">
+					<input type="button" class="btn2" value="Start" onmousedown="clickstartTour()"></td>
+					<td><input type="button" class="btn2" value="Stop" onmousedown="clickstopTour()">
+				</td>
+            </tr>
+        </table>
+	</div>
+	<div id="tabs-4">
+	</div>
+	<div id="tabs-5">
+	</div>
+	<div id="tabs-6">
+	</div>
+	</div>
+    </fieldset>
+    <!-- <fieldset class="playback">
+        <legend>Playback</legend>
+        <table width="100%" cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt">Stream Type</td>
+                <td>
+                    <select id="record_streamtype" class="sel">
+                        <option value="1">Main Stream</option>
+                        <option value="2">Second Stream</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">Start Time</td>
+                <td>
+                    <input id="starttime" type="text" class="txt" value="2018-12-18 00:00:00" />(Format:2018-10-24 12:34:56)
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">Stop Time</td>
+                <td>
+                    <input id="endtime" type="text" class="txt" value="2018-12-18 23:59:59" />
+                    <input type="button" class="btn2" value="Search" onclick="clickRecordSearch(0);" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <div id="searchdiv" class="searchdiv">
+                        <table id="searchlist" class="searchlist" cellpadding="0" cellspacing="0" border="0"></table>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <input type="button" class="btn2" value="Start Play" onclick="clickStartPlayback();" />
+                    <input type="button" class="btn2" value="Stop Play" onclick="clickStopPlayback();" />
+                    <input type="button" class="btn2" value="Backward" onclick="clickReversePlayback();" />
+                    <input type="button" class="btn2" value="Single Frame" onclick="clickFrame();" />
+                    <input id="transstream" type="checkbox" class="vtop" />&nbsp;Enable Stream Convert
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <input type="button" class="btn2" value="Pause" onclick="clickPause();" />
+                    <input type="button" class="btn2" value="Resume" onclick="clickResume();" />
+                    <input type="button" class="btn2" value="Play Slow" onclick="clickPlaySlow();" />
+                    <input type="button" class="btn2" value="Play Fast" onclick="clickPlayFast();" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <input type="button" class="btn2" value="Snapshot" onclick="clickCapturePic();" />
+                    <input type="button" class="btn2" value="Start Record" onclick="clickStartRecord('playback');" />
+                    <input type="button" class="btn2" value="Stop Record" onclick="clickStopRecord('playback');" />
+                    <input type="button" class="btn2" value="OSD Time" onclick="clickGetOSDTime();" />&nbsp;<input id="osdtime" type="text" class="txt" readonly />
+                </td>
+            </tr>
+        </table>
+    </fieldset> -->
+    <fieldset class="playback">
+        <legend>People Counting</legend>
+		  <table width="100%" cellpadding="0" cellspacing="3" border="0">
+            <tr>
+                <td class="tt">Rule</td>
+                <td>
+                    <select id="humanFlowRule" class="sel">
+                        <option value="0">Counting In Region</option>
+                        <option value="1">People Counting</option>
+                    </select>
+                </td>
+            </tr>
+			<tr>
+                <td class="tt">Interval</td>
+                <td>
+                    <select id="humanFlowGranularity" class="sel">
+                        <option value="0">Day</option>
+						<option value="1">Month</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">Start Time</td>
+                <td>
+                    <input id="humanFlowStarttime" type="text" class="txt" value="2018-11-22 00:00:00" />(Format:2013-11-11 12:34:56)
+                </td>
+            </tr>
+            <tr>
+                <td class="tt">Stop Time</td>
+                <td>
+                    <input id="humanFlowEndtime" type="text" class="txt" value="2018-11-22 23:59:59" />
+                </td>
+            </tr>
+			 <tr>
+                <td class="tt">Stay Time</td>
+                <td>
+				 <select id="humanFlowMinStayTime" class="sel">
+                        <option value="5">5s</option>
+                        <option value="30">30s</option>
+						<option value="60">60s</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <input type="button" class="btn3" value="Enable Query" onclick="clickStartTrafficDataQuery();" />
+					Query Handle:<input id="humanFlowQueryHandle" type="text" class="txt" value="0" />
+                </td>
+            </tr>
+			 <tr>
+                <td>
+                    <input type="button" class="btn3" value="Get All Info" onclick="clickGetTrafficDataTotalCount();" />
+                </td>
+				<td>
+                    Info Count<input id="humanFlowInfoCount" type="text" class="txt" value="0" />
+                </td>
+            </tr>
+			<tr>
+				<td>
+					<input type="button" class="btn3" value="Get Query Info" onclick="clickQueryTrafficData();" />
+				</td>
+			</tr>
+			<tr>
+                <td colspan="2">
+                    <input type="button" class="btn3" value="Stop Query" onclick="clickStopTrafficDataQuery();" />
+                </td>
+            </tr>
+        </table>
+	</fieldset>
+		<fieldset class="Thermal">
+        <legend>Thermal</legend>
+			<table cellpadding="0" cellspacing="3" border="0">
+				<tr>
+					<td class="tt">Radiometry</td>
+					<td class="tt">
+						<input type="button" class="btn2" value="开启" onmousedown="clickenableCheck(true)"></td>
+					<td><input type="button" class="btn2" value="关闭" onmousedown="clickenableCheck(false)"></td>
+					 <td class="tt">Temper</td>
+                <td colspan="3"><input id="Temper" type="text" class="txt" value=""/></td>
+				</tr>
+			</table>
+	</fieldset>	
+</div>
+<script src="../module/foundation.js"></script>
+<script src="../module/WebVideoCtrl.js"></script>
+<script src="../module/modifyUI.js"></script>
+<script src="../module/demo.js"></script>
+</body>
+</html>

BIN
mybusiness/src/main/resources/templates/dahua/images/d_icon.png


BIN
mybusiness/src/main/resources/templates/dahua/images/d_icon2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/d_icon2_2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/d_icon3.png


BIN
mybusiness/src/main/resources/templates/dahua/images/d_icon3_2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/d_icon_2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/ja_b.png


BIN
mybusiness/src/main/resources/templates/dahua/images/ja_bg.png


BIN
mybusiness/src/main/resources/templates/dahua/images/ja_con.png


BIN
mybusiness/src/main/resources/templates/dahua/images/ja_con2.png


+ 349 - 0
mybusiness/src/main/resources/templates/dahua/images/ja_ja.css

@@ -0,0 +1,349 @@
+@charset "utf-8";
+/* CSS Document */
+
+	body{
+			padding:0px!important;
+			margin: 0px!important;
+			background: #040522;
+		}
+		.con_left{
+			width:76%;
+			margin-right: 2%;
+			float:left;
+			padding: 1%;
+		}
+		.con_right{
+			width:18%;
+			float: right;
+			padding: 1%;
+		}
+		.con_right input[type="button"]{
+    outline: 0px;
+    color: #ffffff;
+    border: 0px;
+    margin: 2px auto;
+    cursor: pointer;
+    width: 100%;
+    height: 100%;
+		}
+		.ja_table1{
+			width: 100%;
+			margin-bottom: 20px;
+		}
+		.ja_table1 td.tt{
+			font-size: 16px;
+			padding-right: 5px;
+			color: #12abe3;
+			width: 70px;
+			height: 30px;
+			line-height: 30px;
+		}
+		.ja_table1 td select {
+    color: #22adf7;
+    width: 98%;
+    padding: 1%;
+    border: 1px solid #21acf4;
+    background: none;
+    font-size: 12px;
+    border-radius: 4px;
+    outline: 0px;
+    height: 28px;
+    line-height: 28px;
+}
+		.ja_table1 td select option{
+    color: #22adf7;
+}
+
+		.ja_table2{
+    background:url(ja_bg.png) no-repeat center;
+    background-size: 100% 100%;
+    width: 255px!important;
+    height: 244px!important;
+    margin: 14px auto;
+    float: none;
+}
+.ja_table2 div{
+    float:left;
+    position:relative;
+    height: 81px;
+    width: 82px;
+}
+.ja_table2 div span{
+    position: absolute;
+}
+.ja_table2 div span img{
+    width: 33px;
+}
+.ja_table2 div:hover span img{
+    /*	box-shadow: 3px 3px 3px #eee;*/
+}
+.ja_table2 input[type="button"]{
+    text-indent: -999em;
+    background: none!important;
+    position: absolute;
+    width: 100%!important;
+}
+.ja_table2 input[type="button"]:hover{
+    background: none!important;
+    box-shadow: 0px 0px 0px;
+}
+.ja_table2 .center{
+    text-indent: 1px!important;
+    line-height: 68px;
+    padding-left: 5px;
+}
+.zs_btn span{
+    top: 48px;
+    left: 51px;
+}
+.zs_btn span img{
+    transform: rotate(-45deg);
+}
+.s_btn span {
+    top: 28px;
+    left: 28px;
+}
+.s_btn span img{
+    transform: rotate(0deg);
+}
+.ys_btn span{
+    top: 48px;
+    right: 45px;
+}
+.ys_btn span img{
+    transform: rotate(47deg);
+}
+.z_btn span{
+   top: 23px;
+   left: 25px;
+}
+.z_btn span img{
+    transform: rotate(-90deg);
+}
+.y_btn span{
+    top: 20px;
+    right: 18px;
+}
+.y_btn span img{
+    transform: rotate(90deg);
+}
+.zx_btn span{
+    top: 0px;
+    left: 49px;
+}
+.zx_btn span img{
+    transform: rotate(-140deg);
+}
+.x_btn span{
+   top: 23px;
+   left: 29px;
+}
+.x_btn span img{
+    transform: rotate(180deg);
+}
+.yx_btn span{
+    top: -5px;
+    right: 45px;
+}
+.yx_btn span img{
+    transform: rotate(252deg);
+}
+		.zsc_btn{
+			background: url(ja_con.png) no-repeat 23px 19px;
+			background-size: 45px;
+}
+		.zsc_btn:hover{
+			background: url(ja_con2.png) no-repeat 23px 19px;
+			background-size: 45px;
+		}
+		.ja_table3{
+			width:90%;
+			margin: 20px auto;
+
+}
+		.ja_table3 td{
+    position: relative;
+    width: 70px;
+    text-align: center;
+    height: 60px;
+    line-height: 1px;
+    font-size: 16px;
+    color: #129fea;
+			font-weight: 900;
+}
+.ja_table3 td span img{
+    width:34px;
+}
+.ja_table3 input[type="button"]{
+    text-indent: -999em;
+    background: none!important;
+    position: absolute;
+    width:100%;
+    left: 0px;
+    top:0px;
+}
+		.ja_zt{
+			margin-bottom:20px;
+		}
+		.ja_zt input{
+			width:100%;
+			background: repeating-linear-gradient(#e4e8f3,#dcdee3,#acb0b9);
+    height: 35px!important;
+    line-height: 30px;
+    border-radius: 5px;
+    color: #129fea!important;
+    font-size: 16px;
+    font-weight: 900;
+    letter-spacing: 4px;
+    border: 2px solid #a8d8f9!important;
+		}
+		.ja_zt input:hover{
+			background: repeating-linear-gradient(#bbbdc3,#c2c9da,#c8d1e4);
+    border: 2px solid #91cff9!important;
+		}
+		.ja_div,.ja_table1,.ja_zt{
+			width:80%;
+			margin: 20px auto 0px auto;
+
+
+		}
+		.ja_div p{
+			font-size: 16px;
+    color: #3aa4f1;
+    margin: 20px 0px 10px 0px;
+
+		}
+		.ja_div .ja_inp{
+			width:100%;
+			height: 30px;
+			position: relative;
+		}
+		.ja_div .ja_inp .ja_txt{
+			width:90%;
+			padding: 1%;
+    border: 1px solid #bbbec4;
+    background: none;
+    font-size: 12px;
+    border-radius: 4px;
+    outline: 0px;
+    height: 28px;
+    line-height: 28px;
+			position: absolute;
+			top:0px;
+			left: 0px;
+		}
+		.ja_div .ja_inp .ja_btn{
+			width: 60px;
+    position: absolute;
+    top: -2px;
+    right: 0px;
+    height: 36px;
+    z-index: 9;
+    background: repeating-linear-gradient(#bbbdc3,#c2c9da,#c8d1e4);
+    color: #129fe8;
+    font-weight: 900;
+    letter-spacing: 2px;
+		}
+
+		.plugin {
+    width: 100%;
+    height: 600px;
+}
+		.opinfo{
+			background: #e2e2e2;
+    padding: 5px;
+    line-height: 20px;
+    color: #333;
+			width: 98%;
+			margin: 0px auto;
+			height: 100px;
+			overflow-y: auto;
+		}
+		.opinfo::-webkit-scrollbar{display:none}
+		.con_list{
+			float:left;
+			width: 10%;
+			background:url(ja_b.png) no-repeat center;
+			padding: 0px 1%;
+			background-size: 100% 100%;
+		}
+		.con_list h1{
+			text-align: center;
+			font-size: 18px;
+			height: 45px;
+			line-height: 45px;
+			color: #69ccef;
+			padding-top: 20px;
+		}
+		.con_list h1 i{
+			margin:0px 5px;
+		}
+		.con_tent{
+			float:left;
+			width: 64%;
+		}
+		.con_right2{
+			width:18%;
+			padding: 0px 1%;
+			background: #0000001a;
+		}
+		.list_ul{
+			margin: 20px 0px;
+			padding-left: 0px;
+		}
+		.list_ul li{
+			list-style: none;
+    background: url(webcam_128px_28911_easyicon.net.png) no-repeat 0px 1px;
+    padding-left: 40px;
+    background-size: 30px 30px;
+    margin-bottom: 15px;
+    min-height: 35px;
+    display: table;
+    width: 72%;
+    padding-top: 1%;
+    padding-bottom: 3%;
+    padding-right: 1%;
+    border-bottom: 1px solid #333;
+    /* background: #000; */
+    box-shadow: 1px 5px 5px #01232f;
+		}
+		.list_ul li a{
+			cursor: pointer;
+			font-size: 15px;
+			color: #fff;
+			display: block;
+		}
+		.list_ul li a:hover{
+			color: #1eb8f9;
+		}
+		.top_ul{
+			height: 100px;
+			margin: 20px 0px;
+			padding: 0px;
+
+		}
+		.top_ul li{
+			float:left;
+			width:100%;
+			text-align: center;
+			color: #fff;
+			list-style: none;
+			margin: 2%;
+		}
+		.top_ul li a{
+			display: block;
+			width: 100%;
+			border: 1px solid #4b4c4e;
+			height: 35px;
+			line-height: 35px;
+			font-size: 16px;
+			border-radius: 4px;
+			text-shadow: 1px 2px 4px #73cee4;
+			cursor: pointer;
+		}
+		.top_ul li.on a{
+			background: #05A7DF;
+		}
+		.top_ul li a:hover{
+			background: #05A7DF;
+		}

BIN
mybusiness/src/main/resources/templates/dahua/images/ja_jiao.png


BIN
mybusiness/src/main/resources/templates/dahua/images/ja_jiao2.png


Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
mybusiness/src/main/resources/templates/dahua/images/jquery-1.7.1.min.js


BIN
mybusiness/src/main/resources/templates/dahua/images/webcam_128px_28911_easyicon.net.png


BIN
mybusiness/src/main/resources/templates/dahua/images/x_icon.png


BIN
mybusiness/src/main/resources/templates/dahua/images/x_icon2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/x_icon2_2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/x_icon3.png


BIN
mybusiness/src/main/resources/templates/dahua/images/x_icon3_2.png


BIN
mybusiness/src/main/resources/templates/dahua/images/x_icon_2.png


+ 8 - 0
mybusiness/src/main/resources/templates/dahua/index.html

@@ -0,0 +1,8 @@
+<!doctype html>
+<html>
+<body>
+<script>
+window.location.href = 'demo-dsd.html';
+</script>
+</body>
+</html>

Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
mybusiness/src/main/resources/templates/dahua/lib/jquery-1.7.1.min.js


Разлика између датотеке није приказан због своје велике величине
+ 18706 - 0
mybusiness/src/main/resources/templates/dahua/lib/jquery-ui.js


Разлика између датотеке није приказан због своје велике величине
+ 11008 - 0
mybusiness/src/main/resources/templates/dahua/lib/jquery.js


+ 480 - 0
mybusiness/src/main/resources/templates/dahua/lib/json2.js

@@ -0,0 +1,480 @@
+/*
+    http://www.JSON.org/json2.js
+    2011-02-23
+
+    Public Domain.
+
+    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+    See http://www.JSON.org/js.html
+
+
+    This code should be minified before deployment.
+    See http://javascript.crockford.com/jsmin.html
+
+    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
+    NOT CONTROL.
+
+
+    This file creates a global JSON object containing two methods: stringify
+    and parse.
+
+        JSON.stringify(value, replacer, space)
+            value       any JavaScript value, usually an object or array.
+
+            replacer    an optional parameter that determines how object
+                        values are stringified for objects. It can be a
+                        function or an array of strings.
+
+            space       an optional parameter that specifies the indentation
+                        of nested structures. If it is omitted, the text will
+                        be packed without extra whitespace. If it is a number,
+                        it will specify the number of spaces to indent at each
+                        level. If it is a string (such as '\t' or '&nbsp;'),
+                        it contains the characters used to indent at each level.
+
+            This method produces a JSON text from a JavaScript value.
+
+            When an object value is found, if the object contains a toJSON
+            method, its toJSON method will be called and the result will be
+            stringified. A toJSON method does not serialize: it returns the
+            value represented by the name/value pair that should be serialized,
+            or undefined if nothing should be serialized. The toJSON method
+            will be passed the key associated with the value, and this will be
+            bound to the value
+
+            For example, this would serialize Dates as ISO strings.
+
+                Date.prototype.toJSON = function (key) {
+                    function f(n) {
+                        // Format integers to have at least two digits.
+                        return n < 10 ? '0' + n : n;
+                    }
+
+                    return this.getUTCFullYear()   + '-' +
+                         f(this.getUTCMonth() + 1) + '-' +
+                         f(this.getUTCDate())      + 'T' +
+                         f(this.getUTCHours())     + ':' +
+                         f(this.getUTCMinutes())   + ':' +
+                         f(this.getUTCSeconds())   + 'Z';
+                };
+
+            You can provide an optional replacer method. It will be passed the
+            key and value of each member, with this bound to the containing
+            object. The value that is returned from your method will be
+            serialized. If your method returns undefined, then the member will
+            be excluded from the serialization.
+
+            If the replacer parameter is an array of strings, then it will be
+            used to select the members to be serialized. It filters the results
+            such that only members with keys listed in the replacer array are
+            stringified.
+
+            Values that do not have JSON representations, such as undefined or
+            functions, will not be serialized. Such values in objects will be
+            dropped; in arrays they will be replaced with null. You can use
+            a replacer function to replace those with JSON values.
+            JSON.stringify(undefined) returns undefined.
+
+            The optional space parameter produces a stringification of the
+            value that is filled with line breaks and indentation to make it
+            easier to read.
+
+            If the space parameter is a non-empty string, then that string will
+            be used for indentation. If the space parameter is a number, then
+            the indentation will be that many spaces.
+
+            Example:
+
+            text = JSON.stringify(['e', {pluribus: 'unum'}]);
+            // text is '["e",{"pluribus":"unum"}]'
+
+
+            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
+            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
+
+            text = JSON.stringify([new Date()], function (key, value) {
+                return this[key] instanceof Date ?
+                    'Date(' + this[key] + ')' : value;
+            });
+            // text is '["Date(---current time---)"]'
+
+
+        JSON.parse(text, reviver)
+            This method parses a JSON text to produce an object or array.
+            It can throw a SyntaxError exception.
+
+            The optional reviver parameter is a function that can filter and
+            transform the results. It receives each of the keys and values,
+            and its return value is used instead of the original value.
+            If it returns what it received, then the structure is not modified.
+            If it returns undefined then the member is deleted.
+
+            Example:
+
+            // Parse the text. Values that look like ISO date strings will
+            // be converted to Date objects.
+
+            myData = JSON.parse(text, function (key, value) {
+                var a;
+                if (typeof value === 'string') {
+                    a =
+/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
+                    if (a) {
+                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+                            +a[5], +a[6]));
+                    }
+                }
+                return value;
+            });
+
+            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
+                var d;
+                if (typeof value === 'string' &&
+                        value.slice(0, 5) === 'Date(' &&
+                        value.slice(-1) === ')') {
+                    d = new Date(value.slice(5, -1));
+                    if (d) {
+                        return d;
+                    }
+                }
+                return value;
+            });
+
+
+    This is a reference implementation. You are free to copy, modify, or
+    redistribute.
+*/
+
+/*jslint evil: true, strict: false, regexp: false */
+
+/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
+    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
+    lastIndex, length, parse, prototype, push, replace, slice, stringify,
+    test, toJSON, toString, valueOf
+*/
+
+
+// Create a JSON object only if one does not already exist. We create the
+// methods in a closure to avoid creating global variables.
+
+var JSON;
+if (!JSON) {
+    JSON = {};
+}
+
+(function () {
+    "use strict";
+
+    function f(n) {
+        // Format integers to have at least two digits.
+        return n < 10 ? '0' + n : n;
+    }
+
+    if (typeof Date.prototype.toJSON !== 'function') {
+
+        Date.prototype.toJSON = function (key) {
+
+            return isFinite(this.valueOf()) ?
+                this.getUTCFullYear()     + '-' +
+                f(this.getUTCMonth() + 1) + '-' +
+                f(this.getUTCDate())      + 'T' +
+                f(this.getUTCHours())     + ':' +
+                f(this.getUTCMinutes())   + ':' +
+                f(this.getUTCSeconds())   + 'Z' : null;
+        };
+
+        String.prototype.toJSON      =
+            Number.prototype.toJSON  =
+            Boolean.prototype.toJSON = function (key) {
+                return this.valueOf();
+            };
+    }
+
+    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+        gap,
+        indent,
+        meta = {    // table of character substitutions
+            '\b': '\\b',
+            '\t': '\\t',
+            '\n': '\\n',
+            '\f': '\\f',
+            '\r': '\\r',
+            '"' : '\\"',
+            '\\': '\\\\'
+        },
+        rep;
+
+
+    function quote(string) {
+
+// If the string contains no control characters, no quote characters, and no
+// backslash characters, then we can safely slap some quotes around it.
+// Otherwise we must also replace the offending characters with safe escape
+// sequences.
+
+        escapable.lastIndex = 0;
+        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
+            var c = meta[a];
+            return typeof c === 'string' ? c :
+                '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+        }) + '"' : '"' + string + '"';
+    }
+
+
+    function str(key, holder) {
+
+// Produce a string from holder[key].
+
+        var i,          // The loop counter.
+            k,          // The member key.
+            v,          // The member value.
+            length,
+            mind = gap,
+            partial,
+            value = holder[key];
+
+// If the value has a toJSON method, call it to obtain a replacement value.
+
+        if (value && typeof value === 'object' &&
+                typeof value.toJSON === 'function') {
+            value = value.toJSON(key);
+        }
+
+// If we were called with a replacer function, then call the replacer to
+// obtain a replacement value.
+
+        if (typeof rep === 'function') {
+            value = rep.call(holder, key, value);
+        }
+
+// What happens next depends on the value's type.
+
+        switch (typeof value) {
+        case 'string':
+            return quote(value);
+
+        case 'number':
+
+// JSON numbers must be finite. Encode non-finite numbers as null.
+
+            return isFinite(value) ? String(value) : 'null';
+
+        case 'boolean':
+        case 'null':
+
+// If the value is a boolean or null, convert it to a string. Note:
+// typeof null does not produce 'null'. The case is included here in
+// the remote chance that this gets fixed someday.
+
+            return String(value);
+
+// If the type is 'object', we might be dealing with an object or an array or
+// null.
+
+        case 'object':
+
+// Due to a specification blunder in ECMAScript, typeof null is 'object',
+// so watch out for that case.
+
+            if (!value) {
+                return 'null';
+            }
+
+// Make an array to hold the partial results of stringifying this object value.
+
+            gap += indent;
+            partial = [];
+
+// Is the value an array?
+
+            if (Object.prototype.toString.apply(value) === '[object Array]') {
+
+// The value is an array. Stringify every element. Use null as a placeholder
+// for non-JSON values.
+
+                length = value.length;
+                for (i = 0; i < length; i += 1) {
+                    partial[i] = str(i, value) || 'null';
+                }
+
+// Join all of the elements together, separated with commas, and wrap them in
+// brackets.
+
+                v = partial.length === 0 ? '[]' : gap ?
+                    '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
+                    '[' + partial.join(',') + ']';
+                gap = mind;
+                return v;
+            }
+
+// If the replacer is an array, use it to select the members to be stringified.
+
+            if (rep && typeof rep === 'object') {
+                length = rep.length;
+                for (i = 0; i < length; i += 1) {
+                    if (typeof rep[i] === 'string') {
+                        k = rep[i];
+                        v = str(k, value);
+                        if (v) {
+                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                        }
+                    }
+                }
+            } else {
+
+// Otherwise, iterate through all of the keys in the object.
+
+                for (k in value) {
+                    if (Object.prototype.hasOwnProperty.call(value, k)) {
+                        v = str(k, value);
+                        if (v) {
+                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                        }
+                    }
+                }
+            }
+
+// Join all of the member texts together, separated with commas,
+// and wrap them in braces.
+
+            v = partial.length === 0 ? '{}' : gap ?
+                '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' :
+                '{' + partial.join(',') + '}';
+            gap = mind;
+            return v;
+        }
+    }
+
+// If the JSON object does not yet have a stringify method, give it one.
+
+    if (typeof JSON.stringify !== 'function') {
+        JSON.stringify = function (value, replacer, space) {
+
+// The stringify method takes a value and an optional replacer, and an optional
+// space parameter, and returns a JSON text. The replacer can be a function
+// that can replace values, or an array of strings that will select the keys.
+// A default replacer method can be provided. Use of the space parameter can
+// produce text that is more easily readable.
+
+            var i;
+            gap = '';
+            indent = '';
+
+// If the space parameter is a number, make an indent string containing that
+// many spaces.
+
+            if (typeof space === 'number') {
+                for (i = 0; i < space; i += 1) {
+                    indent += ' ';
+                }
+
+// If the space parameter is a string, it will be used as the indent string.
+
+            } else if (typeof space === 'string') {
+                indent = space;
+            }
+
+// If there is a replacer, it must be a function or an array.
+// Otherwise, throw an error.
+
+            rep = replacer;
+            if (replacer && typeof replacer !== 'function' &&
+                    (typeof replacer !== 'object' ||
+                    typeof replacer.length !== 'number')) {
+                throw new Error('JSON.stringify');
+            }
+
+// Make a fake root object containing our value under the key of ''.
+// Return the result of stringifying the value.
+
+            return str('', {'': value});
+        };
+    }
+
+
+// If the JSON object does not yet have a parse method, give it one.
+
+    if (typeof JSON.parse !== 'function') {
+        JSON.parse = function (text, reviver) {
+
+// The parse method takes a text and an optional reviver function, and returns
+// a JavaScript value if the text is a valid JSON text.
+
+            var j;
+
+            function walk(holder, key) {
+
+// The walk method is used to recursively walk the resulting structure so
+// that modifications can be made.
+
+                var k, v, value = holder[key];
+                if (value && typeof value === 'object') {
+                    for (k in value) {
+                        if (Object.prototype.hasOwnProperty.call(value, k)) {
+                            v = walk(value, k);
+                            if (v !== undefined) {
+                                value[k] = v;
+                            } else {
+                                delete value[k];
+                            }
+                        }
+                    }
+                }
+                return reviver.call(holder, key, value);
+            }
+
+
+// Parsing happens in four stages. In the first stage, we replace certain
+// Unicode characters with escape sequences. JavaScript handles many characters
+// incorrectly, either silently deleting them, or treating them as line endings.
+
+            text = String(text);
+            cx.lastIndex = 0;
+            if (cx.test(text)) {
+                text = text.replace(cx, function (a) {
+                    return '\\u' +
+                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+                });
+            }
+
+// In the second stage, we run the text against regular expressions that look
+// for non-JSON patterns. We are especially concerned with '()' and 'new'
+// because they can cause invocation, and '=' because it can cause mutation.
+// But just to be safe, we want to reject all unexpected forms.
+
+// We split the second stage into 4 regexp operations in order to work around
+// crippling inefficiencies in IE's and Safari's regexp engines. First we
+// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
+// replace all simple value tokens with ']' characters. Third, we delete all
+// open brackets that follow a colon or comma or that begin the text. Finally,
+// we look to see that the remaining characters are only whitespace or ']' or
+// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
+
+            if (/^[\],:{}\s]*$/
+                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
+                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
+                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+// In the third stage we use the eval function to compile the text into a
+// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
+// in JavaScript: it can begin a block or an object literal. We wrap the text
+// in parens to eliminate the ambiguity.
+
+                j = eval('(' + text + ')');
+
+// In the optional fourth stage, we recursively walk the new structure, passing
+// each name/value pair to a reviver function for possible transformation.
+
+                return typeof reviver === 'function' ?
+                    walk({'': j}, '') : j;
+            }
+
+// If the text is not JSON parseable, then a SyntaxError is thrown.
+
+            throw new SyntaxError('JSON.parse');
+        };
+    }
+}());

Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
mybusiness/src/main/resources/templates/dahua/lib/require-2.3.3.min.js


Разлика између датотеке није приказан због своје велике величине
+ 2 - 0
mybusiness/src/main/resources/templates/dahua/lib/sea-3.0.1.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1408 - 0
mybusiness/src/main/resources/templates/dahua/module/WebVideoCtrl.js


+ 780 - 0
mybusiness/src/main/resources/templates/dahua/module/demo.js

@@ -0,0 +1,780 @@
+//插件加载完毕后,会执行初始化化操作
+$(function () {
+    // 检查插件是否已经安装过
+    WebVideoCtrl.checkPluginInstall().done(function(){
+		WebVideoCtrl.insertPluginObject("divPlugin",500,300);
+		//初始化插件
+		WebVideoCtrl.initPlugin("Dahua3",function () {
+				WebVideoCtrl.setOpInfoCallback(showOPInfo);
+				var left = $("#divPlugin").offset().left + 20;
+				var top = $("#divPlugin").offset().top + window.outerHeight - window.innerHeight;
+				var width = $("#divPlugin").width()*2.58;
+			    var h = $(window).height()-45;
+				var height = $("#divPlugin").height();						
+										
+				WebVideoCtrl.resizeVideo(left, top, width, h);		
+				//创建视频窗口
+				WebVideoCtrl.createMultiNodeDisplay(36);				
+				//设置视频窗口的显示
+				var num = parseInt($("#wndNum").find("option:selected").val());
+				//设置窗口分割数
+				WebVideoCtrl.setSplitNum(num);
+				//注册事件
+				WebVideoCtrl.registerEvent("SelectedView",responseSelectedViewSignal);
+				//初始化路径
+				WebVideoCtrl.getUserDirectory().done(function(szDir){
+						
+				});
+		});
+	}).fail(function(){	
+        alert("您还未安装过插件,双击开发包目录里下的Package里的webplugin.exe进行安装!");
+	});
+});
+
+//视频窗口
+/**
+*@description 处理窗口切换事件
+*@param{Num} iNodeIndex  节点序号
+*@param{Num} iViewIndex  视图序号
+*@param{Num} iWinID      窗口ID
+*/
+function responseSelectedViewSignal(iNodeIndex,iViewIndex,iWinID){
+	//更新对应播放器的信息
+	var playrInfo = WebVideoCtrl.getPlayerInfo(iWinID);
+	//更新UI信息
+	if(typeof playrInfo != "undefined"){
+	//设备信息
+		var deviceInfo = WebVideoCtrl.getDeviceInfo(playrInfo.ip);
+		if(typeof deviceInfo != "undefined"){
+			DemoUI.updateDeviceInfo(playrInfo.ip);
+			DemoUI.setCurChannel(playrInfo.channle);
+			DemoUI.setCurStreamType(playrInfo.streamType);
+		}
+	}
+}
+
+//显示操作信息
+function showOPInfo(szInfo, status, error) {
+    var szTip = "<div>" + Foundation.dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo;
+	if (typeof status != "undefined") 
+	{
+		szTip += "(" + status.toString() + ", " + error.toString() + ")";
+    }
+    szTip += "</div>";
+    $("#opinfo").html(szTip + $("#opinfo").html());
+}
+
+//窗口切换事件
+function changeWndNum(num)
+{
+	//设置视频窗口的显示
+	var num = parseInt($("#wndNum").find("option:selected").val());
+	WebVideoCtrl.setSplitNum(num);
+	DemoUI.setWinIndex(num);
+}
+
+//窗口切换事件
+function changeWndRow(row)
+{
+	//设置视频窗口的显示
+	var row = parseInt($("#wndRow").find("option:selected").val());
+	var col = parseInt($("#wndCol").find("option:selected").val());	
+	WebVideoCtrl.setSplitRowAndCol(row, col);
+	DemoUI.setWinIndex(row*col);
+}
+
+//窗口切换事件
+function changeWndCol(col)
+{
+	//设置视频窗口的显示
+	var row = parseInt($("#wndRow").find("option:selected").val());	
+	var col = parseInt($("#wndCol").find("option:selected").val());
+	WebVideoCtrl.setSplitRowAndCol(row, col);
+	DemoUI.setWinIndex(row*col);
+}
+
+//设备登录
+function clickLogin(szIP,szPort,szUsername,szPassword)
+{
+	// var szLang = navigator.browserLanguage.toLowerCase();
+	// var szUserLang = navigator.userLanguage.toLowerCase();
+	// var szLanguage = (navigator.browserLanguage || navigator.language ).toLowerCase();
+	// szLanguage = szLanguage.substring(0, 2);
+	
+	var rtspPort = 80,protocol = 0;
+	if ("" == szIP || "" == szPort) {
+        return;
+    }
+	//判断当前设备是否已经登录
+	var deviceInfo = WebVideoCtrl.getDeviceInfo(szIP);
+	if(typeof deviceInfo != "undefined"){
+		if(WebVideoCtrl.logout(szIP))
+		{
+			//添加提示
+			showOPInfo(szIP + " Logout Device ");
+			//删除设备信息
+			DemoUI.removeDeviceInfo(szIP);
+		}
+	}
+	
+	WebVideoCtrl.login(szIP,szPort-0,szUsername,szPassword,rtspPort,protocol,
+			function(sIp,iDeviceID){
+				console.log(iDeviceID);
+				//showOPInfo(sIp + " Login Succeed ");
+				//插入设备
+				DemoUI.addDeviceIP(sIp);
+				//获得通道号
+				WebVideoCtrl.getChannelNumber(iDeviceID).done(function(ret){
+					//更新通道数据
+					DemoUI.modifyChannelList(ret);
+				});
+				WebVideoCtrl.connectRealVideo(sIp,1,1,function(iPlayerID){
+				console.log('132');
+							//showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+						},
+						function(status,error){
+							//showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+				console.log(error);
+						}
+				)
+	
+			},
+			function(iErrorCode,sError){
+				console.log(sError);
+		}
+	);
+}
+
+function switchDeviceInfo(ip)
+{
+	DemoUI.updateDeviceInfo(ip);
+}
+
+function clickLogout()
+{
+	//获取当前选中的
+	var ip = DemoUI.getCurDeviceIP();
+	if(WebVideoCtrl.logout(ip))
+	{
+		//添加提示
+		showOPInfo(ip + " Logout Device ");
+		//删除设备信息
+		DemoUI.removeDeviceInfo(ip);
+	}
+}
+
+function changeProtocol(protocol){
+	//获得当前的协议类型
+	var protocol = parseInt($("#protocolType").find("option:selected").val());
+	/**
+	//获得当前的设备信息
+	var ip = DemoUI.getCurDeviceIP();
+	//获得设备信息
+	var deviceInfo = WebVideoCtrl.getDeviceInfo(ip);
+	if(typeof deviceInfo != "undefined")
+	{
+		//如果协议切换
+		if(protocol != deviceInfo.protocol){
+			//登出设备
+			if(WebVideoCtrl.logout(ip))
+			{
+				//添加提示
+				showOPInfo(ip + " 登出设备!");
+				//删除设备信息
+				DemoUI.removeDeviceInfo(ip);
+			}
+			clickLogin();
+		}
+	}
+	**/
+}
+
+function clickStartRealPlay(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	//获得通道号
+	var iChannel = 1;
+	//获得码流类型
+	var iStreamType = 1; 
+	//窗口选择模式
+	var iMode = 1;
+	if(0 == iMode){
+			WebVideoCtrl.connectRealVideo(sIP,iChannel,iStreamType,function(iPlayerID){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+					},
+					function(status,error){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+					}
+			)
+	}else{
+		//窗口序号
+		var iWinIndex = parseInt($("#winIndex").val(), 10);
+		WebVideoCtrl.connectRealVideoEx(iWinIndex,sIP,iChannel,iStreamType,function(iPlayerID){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+					},
+					function(status,error){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+					}
+				)
+		}
+}
+
+function changeStreamType(streamtype){
+	//获得播放器信息
+	if(0 != WebVideoCtrl.getSelectedPlayerID()){
+		clickStartRealPlay();
+	}
+}
+
+//关闭选中窗口的实时监视
+function clickStopRealPlay(){
+	WebVideoCtrl.closePlayer();
+}
+
+//开启对讲
+function clickStartVoiceTalk(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	WebVideoCtrl.startVoiceTalk(sIP,{
+			cbSuccess:function(){
+				showOPInfo(sIP + " Enable AudioTalk Succeed");
+			},
+			cbFailed:function(){
+				showOPInfo(sIP + " Enable AudioTalk Fail");
+			}
+		}
+	)
+	
+}
+
+//关闭对讲
+function clickStopVoiceTalk(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	WebVideoCtrl.stopVoiceTalk(sIP);
+}
+
+// 打开选择框
+function clickOpenFileDlg(id) {
+    WebVideoCtrl.selectDirectory(id,{
+			cbSuccess:function(path){
+					    if (path != -1 && path != "" && path != null) {
+							$("#" + id).val(path);
+						}
+				}
+		}
+	);
+}
+
+function clickSetVolume(){
+	//设置选中窗口的音量
+	WebVideoCtrl.setVolume(parseInt($("#volume").val(), 10),{
+			cbSuccess:function(winIndex){
+			},
+			cbFailed:function(winIndex){
+			}
+		}
+	);
+}
+
+function clickOpenSound(){
+	WebVideoCtrl.openSound({
+			cbSuccess:function(winIndex){
+			},
+			cbFailed:function(winIndex){
+			}
+		}
+	);
+}
+
+function clickCloseSound(){
+	WebVideoCtrl.closeSound({
+			cbSuccess:function(winIndex){
+			},
+			cbFailed:function(winIndex){
+			}
+		}
+	);
+}
+
+function clickEnableEZoom(){
+	if(WebVideoCtrl.enableEZoom()){
+		showOPInfo("Enable Enlarger Succeed");
+	}else{
+		showOPInfo("Enable Enlarger Fail");
+	}
+}
+
+function clickDisableEZoom(){
+	if(WebVideoCtrl.disableEZoom()){
+		showOPInfo("Disable Enlarger Succeed");
+	}else{
+		showOPInfo("Disable Enlarger Fail");
+	}
+}
+
+function clickFullScreen(){
+	WebVideoCtrl.setFullscreen();
+}
+
+function clickOpenSound(){
+	var winID = WebVideoCtrl.getSelectedWinID();
+	if(WebVideoCtrl.openSound()){
+		showOPInfo("open Sound Succeed");
+	}else{
+		showOPInfo( "open Sound Fail");
+	}
+}
+
+function clickCloseSound(){
+	var winID = WebVideoCtrl.getSelectedWinID();
+	if(WebVideoCtrl.closeSound()){
+		showOPInfo("Close Sound Succeed");
+	}else{
+		showOPInfo( "Close Sound Fail");
+	}	
+}
+
+function clickCapturePic(){
+	var path = $("#LiveSnapshot").val();
+	var format = $("#captureFileFormat").val() - 0;                 
+	WebVideoCtrl.crabOnePicture(format,path,false).done(function(ret){
+		if (ret){
+			showOPInfo("Snapshot Succeed,Path:"+ path);
+		}else{
+			showOPInfo("Snapshot Fail");
+		}
+	})
+}
+
+function clickStartRecord(){
+	var path = $("#LiveRecord").val();     
+	var format = parseInt($("#recordFormat").val(), 10);
+	WebVideoCtrl.startRecordingVideo(format,path).done(function(ret){
+		if(ret){
+			showOPInfo("Start Record Succeed,Path:"+ path);
+		}else{
+			showOPInfo("Start Record Fail");
+		}
+	})
+}
+
+function clickStopRecord(){                
+	WebVideoCtrl.stopRecordingVideo().done(function(ret){
+		if (ret){
+			showOPInfo("Stop Record Succeed");
+		}else{
+			showOPInfo("Stop Record Fail");
+		}
+	})
+}
+
+function mouseUPLeftPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveUpperLeft(speed,speed,flag);
+}
+
+function mouseUpPTZControl(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveUpwards(speed,flag);
+}
+
+function mouseUPRightPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveUpperRight(speed,speed,flag);
+}
+
+function mouseLefPTZControl(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLeft(speed,flag);
+}
+
+function mouseRightPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveRight(speed,flag);
+}
+
+function mouseDownLeftPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLowerLeft(speed,speed,flag);
+}
+
+function mouseDownRightPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLowerRight(speed,speed,flag);
+}
+
+function mouseDownPTZControl(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLower(speed,flag);
+}
+
+function openPtzLocate(){
+	if(WebVideoCtrl.enablePTZLocate()){
+		//隐藏开启按钮
+		$("#openPtzLocate").hide();
+		//显示关闭按钮
+		$("#closePtzLocate").show();
+	}
+}
+
+function closePtzLocate(){
+	WebVideoCtrl.disablePTZLocate(false);
+	$("#closePtzLocate").hide();
+	$("#openPtzLocate").show();
+}
+
+function PTZZoomout(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlZoom(speed,1,flag);
+}
+
+function PTZZoomIn(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlZoom(speed,0,flag);
+}
+
+function PTZFocusIn(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlFocus(speed,0,flag);
+}
+
+function PTZFoucusOut(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlFocus(speed,1,flag);
+}
+
+function PTZIrisIn(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlAperture(speed,0,flag);
+}
+
+function PTZIrisOut(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlAperture(speed,1,flag);
+}
+
+function GetPresets(){
+	WebVideoCtrl.getPresets(
+		function(index,name){
+			showOPInfo("Get Presets Succeed");
+			var subNode = "<option value=" + index.toString() + ">" + name + "</option>"
+			$("#presetList").append(subNode);
+		}
+	);
+	$('#presetList option:last').attr('selected','selected');
+}
+
+function GotoPreset(){
+	//获得预置点序号
+	var index = parseInt($("#presetList").val(), 10);
+	var speed = parseInt($("#ptzspeed").val(), 10)	
+	WebVideoCtrl.gotoPreset(index, speed);
+		
+	
+}
+
+function RemovePreset(){
+
+	//获得预置点序号
+	var index = parseInt($("#presetList").val(), 10);
+	if(WebVideoCtrl.removePreset(index)){
+		$("#presetList" + " option[value='" + index.toString() + "']").remove();
+		$("#presetList option:last").attr("selected","selected");
+	}
+		
+}
+
+function SetPreset(){
+	//获得预置点长度
+	var length = $("#presetList option").length;
+	var name = "Preset" + (length + 1).toString();
+	WebVideoCtrl.setPreset(length + 1,name);
+}
+
+function clickStartTrafficDataQuery(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	//获得通道号
+	var iChannel = $("#channels").val() - 0;
+	var startTime = $("#humanFlowStarttime").val();
+	var endTime = $("#humanFlowEndtime").val();
+	var ruleType = parseInt($("#humanFlowRule").val(), 10);
+	var span = parseInt($("#humanFlowGranularity").val(), 10);
+	var minStayTime = parseInt($("#humanFlowMinStayTime").val(), 10); 
+	WebVideoCtrl.startTrafficDataQuery(sIP,0,startTime,endTime,ruleType,span,minStayTime).done(function(handle){
+		if(handle > 0){
+			$("#humanFlowQueryHandle").val(handle.toString());
+		}	
+	})
+}
+
+function clickGetTrafficDataTotalCount(){
+	var handle = parseInt($("#humanFlowQueryHandle").val(), 10);
+	WebVideoCtrl.getTrafficDataTotalCount(handle).done(function(ret){
+		if(ret >= 0){
+			$("#humanFlowInfoCount").val(ret.toString());
+		}	
+	});
+}
+
+function clickQueryTrafficData(){
+	var handle = parseInt($("#humanFlowQueryHandle").val(), 10);
+	var beginIndex = 0;
+	var total = parseInt($("#humanFlowInfoCount").val(), 10);
+	WebVideoCtrl.queryTrafficData(handle,beginIndex,total);
+}
+
+function clickStopTrafficDataQuery(){
+	var handle = parseInt($("#humanFlowQueryHandle").val(), 10);
+	WebVideoCtrl.stopTrafficDataQuery(handle);
+	$("#humanFlowQueryHandle").val("");
+	$("#humanFlowInfoCount").val("");
+}
+
+function clickRecordSearch(){
+	
+}
+
+function changeWinMode(){
+	var mode = parseInt($("#winMode").val(), 10);
+	if(0 == mode){
+		$("#winIndex").hide();
+	}else{
+		//设置窗口序号
+		var num = parseInt($("#wndNum").find("option:selected").val());
+		DemoUI.setWinIndex(num);
+		$("#winIndex").show();
+	}
+}
+
+function changeWndIndex(){
+	var iWinIndex = parseInt($("#winIndex").val(), 10);
+	//选中视频窗口
+	WebVideoCtrl.selectWindow(iWinIndex);
+}
+
+function clickStartAllRealPlay(){
+	DemoUI.getEachDeviceIP(function(sIP,iIndex){
+		//获得通道号
+		var iChannel = $("#channels").val() - 0;
+		//获得码流类型
+		var iStreamType = parseInt($("#streamtype").val(), 10); 
+		//窗口数目
+		var iWndNum = parseInt($("#wndNum").val(), 10);
+		if(iIndex > (iWndNum * iWndNum - 1)){
+			return;
+		}
+		WebVideoCtrl.connectRealVideoEx(iIndex,sIP,iChannel,iStreamType,function(iPlayerID){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+					},
+					function(status,error){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+					});
+				
+	});
+}
+
+function clickStopAllRealPlay(){
+		WebVideoCtrl.closeAllPlayer();
+}
+
+//开启注册监听
+function startRegisterListen() 
+{	
+	//注册事件
+	WebVideoCtrl.registerEvent("DetectedDeviceInfo", function(ip, port, state){
+			DemoUI.setLoginDeviceIP(ip)
+			DemoUI.setSvrPort(port);
+	});
+	var ip = $('#serverip').val();
+	var port = $('#serverport').val() - 0;
+	WebVideoCtrl.startDevciceDetection(ip, port);
+}
+
+//开启录像查询
+function clickStartRecordSearch(){
+		//清空文件列表
+		$("#recordInfor").empty();
+		var sIP = DemoUI.getCurDeviceIP();
+		var iChannel = $("#channels").val() - 0;
+        var iStreamType = parseInt($("#record_streamtype").val(), 10);
+        var szStartTime = $("#starttime").val();
+        var szEndTime = $("#endtime").val();
+		WebVideoCtrl.startRecordInfoSearch(sIP,iChannel,iStreamType,szStartTime,szEndTime).done(function(handle){
+			if(handle > 0){
+				$("#recordQueyrHandle").val(handle.toString());
+				showOPInfo(sIP + " Channel:"+ iChannel.toString() + "start query succeed");
+			}else{
+				showOPInfo(sIP + " Channel:"+ iChannel.toString() + "start query fail");
+			}		
+		})
+}
+
+function findNextRecordInfoCb(fileInfor){
+	var sIP = DemoUI.getCurDeviceIP();
+	var iChannel = $("#channels").val() - 0;	
+	if(fileInfor.length == 0)
+	{
+		showOPInfo(sIP + " Channel:"+ iChannel.toString() + "no info");
+	}
+	else
+	{
+		var dataObject = $.parseJSON(fileInfor);
+		if(("found" in  dataObject))
+		{
+			var length = dataObject["found"];
+			if(0 != parseInt(length))
+			{
+				//遍历所有的节点并添加到recordInfor中
+				$.each(dataObject.infos,function(i,item){
+				var infor = item.StartTime + "--" + item.EndTime;
+				var subNode = "<option value=" + infor + ">" + infor + "</option>"
+				$("#recordInfor").append(subNode);
+				});
+			}
+		}
+	}
+}
+
+//查询录像信息
+function clickNextRecordSearch(){
+	var iChannel = $("#channels").val() - 0;
+	var sIP = DemoUI.getCurDeviceIP();
+	var handle = parseInt($("#recordQueyrHandle").val(), 10);
+	WebVideoCtrl.findNextRecordInfo(handle,13,findNextRecordInfoCb);
+}
+
+function clickStartPlayback()
+{
+	var fileID = $("#recordInfor").find("option:selected").text();
+	WebVideoCtrl.playRemoteFileByFile(fileID);
+}
+
+function clickStopPlayback(){
+	WebVideoCtrl.stopPlayBack();
+}
+
+function clickPause(){
+	WebVideoCtrl.pausePlayBack();
+}
+
+function clickResume(){
+	WebVideoCtrl.resumePlayBack();
+}
+
+function clickPlayOneFrame(){
+	WebVideoCtrl.playOneFrame();
+}
+
+function clickPlaySlow(){
+	WebVideoCtrl.slowPlayBack();
+}
+
+function clickPlayFast(){
+	WebVideoCtrl.fastPlayBack();
+}
+
+function clickStopRecordSearch(){
+	var handle = parseInt($("#recordQueyrHandle").val(), 10);
+	WebVideoCtrl.stopRecordInfoQuerying(handle);
+}
+
+function enableIVS(){
+	WebVideoCtrl.enableIVS();
+}
+
+function disableIVS(){
+	WebVideoCtrl.disableIVS();
+}
+
+function clickSearchRecordStatus()
+{	
+	var sIP = DemoUI.getCurDeviceIP();
+	var iChannel = $("#channels").val() - 0;
+	var year = parseInt($("#recordStatus_year").find("option:selected").text());
+	var month = parseInt($("#recordStatus_month").find("option:selected").text());
+	WebVideoCtrl.queryRecordFileBitmap(sIP,iChannel,year,month,0).done(function(sStatus){
+		DemoUI.setRecordStatus(sStatus); 
+	});
+}
+
+function clickFocusRegion(){
+	WebVideoCtrl.activeFocusRegion();
+}
+
+function clickSubScribeEvent(){
+	var iChannel = $("#channels").val() - 0;
+	var event = $("#subscribeEventName").val();
+	WebVideoCtrl.subscribeEvent(iChannel, event);
+}
+
+function clickUnSubScribeEvent(){
+	var iChannel = $("#channels").val() - 0;
+	var event = $("#subscribeEventName").val();
+	WebVideoCtrl.unsubscribeEvent(iChannel, event);
+}
+
+function clickstartTour(){
+	var index = parseInt($("#tourIndex").val(), 10)
+	WebVideoCtrl.startTour(index);
+}
+
+function clickstopTour(){
+	var index = parseInt($("#tourIndex").val(), 10)
+	WebVideoCtrl.stopTour(index);
+}
+
+function responseShowTemper(val){
+	DemoUI.setTemper(val);
+}
+
+function clickenableCheck(flag){
+	WebVideoCtrl.enableCheck(flag);
+	if( flag == true ){
+		//注册事件
+		WebVideoCtrl.registerEvent("PointTemper",responseShowTemper);
+	}
+}
+
+function downloadLink(){
+	var url = $('#linkUrl').val();
+	var filename = $('#fileName').val();
+	WebVideoCtrl.downloadByLink(url, filename).done(function(requestID){
+		DemoUI.addDownloadLinkID(requestID);
+	});
+}
+
+function stopdownloadLink(){
+	var requestID = parseInt($("#downloadID").val(), 10)
+	WebVideoCtrl.stopDownloadByLink(requestID);
+}
+
+window.onscroll = function(){
+	var coverInfo = document.getElementById("divPlugin").getBoundingClientRect();
+	//可能文档有滚动条,修正 top left的值
+	var pos = {
+		width: coverInfo.width,
+		height: coverInfo.height,
+		top: coverInfo.top + window.pageYOffset,
+		left: coverInfo.left + window.pageXOffset,
+		topToWindow: coverInfo.top,
+		leftToWindow: coverInfo.left
+	};
+	var headerHeight = 0;
+	var dE = document.documentElement;
+	var windowBorder = Math.ceil((window.outerWidth - window.innerWidth) / 2);
+	var windowHeader = window.outerHeight - window.innerHeight - windowBorder;
+	var left = Math.max(pos.leftToWindow, 0) + (WebVideoCtrl.browser().firefox ? 0 : windowBorder);
+	var top = Math.max(pos.topToWindow, headerHeight) + windowHeader;
+	var width = Math.min(pos.width, dE.clientWidth - Math.max(pos.leftToWindow, 0), Math.max(pos.width - (dE.scrollLeft - pos.left), 0));
+	var height = Math.min(pos.height, dE.clientHeight - Math.max(headerHeight, pos.topToWindow), Math.max(pos.height - (dE.scrollTop - pos.top) - headerHeight, 0));
+	WebVideoCtrl.resizeVideo(left, top, width, height);
+}
+

+ 786 - 0
mybusiness/src/main/resources/templates/dahua/module/demo_jk.js

@@ -0,0 +1,786 @@
+//插件加载完毕后,会执行初始化化操作
+$(function () {
+    // 检查插件是否已经安装过
+    WebVideoCtrl.checkPluginInstall().done(function(){
+		WebVideoCtrl.insertPluginObject("divPlugin",500,300);
+		//初始化插件
+		WebVideoCtrl.initPlugin("Dahua3",function () {
+				WebVideoCtrl.setOpInfoCallback(showOPInfo);
+				var left = $("#divPlugin").offset().left + 10;
+				var top = $("#divPlugin").offset().top + window.outerHeight - window.innerHeight;
+				var width = $("#divPlugin").width()*3;
+			    var h = $(window).height()-60;
+				var height = $("#divPlugin").height();						
+										
+				WebVideoCtrl.resizeVideo(left, top, width, h);		
+				//创建视频窗口
+				WebVideoCtrl.createMultiNodeDisplay(36);				
+				//设置视频窗口的显示
+				var num = parseInt($("#wndNum").find("option:selected").val());
+				//设置窗口分割数
+				WebVideoCtrl.setSplitNum(num);
+				//注册事件
+				WebVideoCtrl.registerEvent("SelectedView",responseSelectedViewSignal);
+				//初始化路径
+				WebVideoCtrl.getUserDirectory().done(function(szDir){
+							clickLogin();	
+				});
+		});
+		$("#tabs_ptz").tabs();
+		$("#tabs_playback").tabs();
+		$("#tabs_control").tabs();
+		$("#closePtzLocate").hide();
+		$("#openPtzLocate").show();	
+	}).fail(function(){	
+        alert("您还未安装过插件,双击开发包目录里下的Package里的webplugin.exe进行安装!");
+	});
+});
+
+//视频窗口
+/**
+*@description 处理窗口切换事件
+*@param{Num} iNodeIndex  节点序号
+*@param{Num} iViewIndex  视图序号
+*@param{Num} iWinID      窗口ID
+*/
+function responseSelectedViewSignal(iNodeIndex,iViewIndex,iWinID){
+	//更新对应播放器的信息
+	var playrInfo = WebVideoCtrl.getPlayerInfo(iWinID);
+	//更新UI信息
+	if(typeof playrInfo != "undefined"){
+	//设备信息
+		var deviceInfo = WebVideoCtrl.getDeviceInfo(playrInfo.ip);
+		if(typeof deviceInfo != "undefined"){
+			DemoUI.updateDeviceInfo(playrInfo.ip);
+			DemoUI.setCurChannel(playrInfo.channle);
+			DemoUI.setCurStreamType(playrInfo.streamType);
+		}
+	}
+}
+
+//显示操作信息
+function showOPInfo(szInfo, status, error) {
+    var szTip = "<div>" + Foundation.dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo;
+	if (typeof status != "undefined") 
+	{
+		szTip += "(" + status.toString() + ", " + error.toString() + ")";
+    }
+    szTip += "</div>";
+    $("#opinfo").html(szTip + $("#opinfo").html());
+}
+
+//窗口切换事件
+function changeWndNum(num)
+{
+	//设置视频窗口的显示
+	var num = parseInt($("#wndNum").find("option:selected").val());
+	WebVideoCtrl.setSplitNum(num);
+	DemoUI.setWinIndex(num);
+}
+
+//窗口切换事件
+function changeWndRow(row)
+{
+	//设置视频窗口的显示
+	var row = parseInt($("#wndRow").find("option:selected").val());
+	var col = parseInt($("#wndCol").find("option:selected").val());	
+	WebVideoCtrl.setSplitRowAndCol(row, col);
+	DemoUI.setWinIndex(row*col);
+}
+
+//窗口切换事件
+function changeWndCol(col)
+{
+	//设置视频窗口的显示
+	var row = parseInt($("#wndRow").find("option:selected").val());	
+	var col = parseInt($("#wndCol").find("option:selected").val());
+	WebVideoCtrl.setSplitRowAndCol(row, col);
+	DemoUI.setWinIndex(row*col);
+}
+
+//设备登录
+function clickLogin()
+{
+	// var szLang = navigator.browserLanguage.toLowerCase();
+	// var szUserLang = navigator.userLanguage.toLowerCase();
+	// var szLanguage = (navigator.browserLanguage || navigator.language ).toLowerCase();
+	// szLanguage = szLanguage.substring(0, 2);
+	
+	var szIP = $("#szIP").val();
+    szPort = $("#szPort").val() - 0;
+    szUsername = $("#szUsername").val();
+    szPassword = $("#szPassword").val();
+	rtspPort = 80;
+	protocol = 0;
+	if ("" == szIP || "" == szPort) {
+        return;
+    }
+	//判断当前设备是否已经登录
+	var deviceInfo = WebVideoCtrl.getDeviceInfo(szIP);
+	if(typeof deviceInfo != "undefined"){
+		if(WebVideoCtrl.logout(szIP))
+		{
+			//添加提示
+			showOPInfo(szIP + " Logout Device ");
+			//删除设备信息
+			DemoUI.removeDeviceInfo(szIP);
+		}
+	}
+	WebVideoCtrl.login(szIP,szPort,szUsername,szPassword,rtspPort,protocol,
+			function(sIp,iDeviceID){
+				showOPInfo(sIp + " Login Succeed ");
+				//插入设备
+				DemoUI.addDeviceIP(sIp);
+				//获得通道号
+				WebVideoCtrl.getChannelNumber(iDeviceID).done(function(ret){
+					//更新通道数据
+					DemoUI.modifyChannelList(ret);
+				});
+				WebVideoCtrl.connectRealVideo(sIp,1,1,function(iPlayerID){
+							showOPInfo(sIp + " Channel:1  Live succeed");
+						},
+						function(status,error){
+							showOPInfo(sIp + " Channel:1  Live succeed");
+						}
+				)
+
+			},
+			function(iErrorCode,sError){
+				showOPInfo(szIP + " Login Fail ", iErrorCode, sError);
+		}
+	);
+}
+
+function switchDeviceInfo(ip)
+{
+	DemoUI.updateDeviceInfo(ip);
+}
+
+function clickLogout()
+{
+	//获取当前选中的
+	var ip = DemoUI.getCurDeviceIP();
+	if(WebVideoCtrl.logout(ip))
+	{
+		//添加提示
+		showOPInfo(ip + " Logout Device ");
+		//删除设备信息
+		DemoUI.removeDeviceInfo(ip);
+	}
+}
+
+function changeProtocol(protocol){
+	//获得当前的协议类型
+	var protocol = parseInt($("#protocolType").find("option:selected").val());
+	/**
+	//获得当前的设备信息
+	var ip = DemoUI.getCurDeviceIP();
+	//获得设备信息
+	var deviceInfo = WebVideoCtrl.getDeviceInfo(ip);
+	if(typeof deviceInfo != "undefined")
+	{
+		//如果协议切换
+		if(protocol != deviceInfo.protocol){
+			//登出设备
+			if(WebVideoCtrl.logout(ip))
+			{
+				//添加提示
+				showOPInfo(ip + " 登出设备!");
+				//删除设备信息
+				DemoUI.removeDeviceInfo(ip);
+			}
+			clickLogin();
+		}
+	}
+	**/
+}
+
+function clickStartRealPlay(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	//获得通道号
+	var iChannel = $("#channels").val() - 0;
+	//获得码流类型
+	var iStreamType = parseInt($("#streamtype").val(), 10); 
+	//窗口选择模式
+	var iMode = parseInt($("#winMode").val(), 10);
+	if(0 == iMode){
+			WebVideoCtrl.connectRealVideo(sIP,iChannel,iStreamType,function(iPlayerID){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+					},
+					function(status,error){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+					}
+			)
+	}else{
+		//窗口序号
+		var iWinIndex = parseInt($("#winIndex").val(), 10);
+		WebVideoCtrl.connectRealVideoEx(iWinIndex,sIP,iChannel,iStreamType,function(iPlayerID){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+					},
+					function(status,error){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+					}
+				)
+		}
+}
+
+function changeStreamType(streamtype){
+	//获得播放器信息
+	if(0 != WebVideoCtrl.getSelectedPlayerID()){
+		clickStartRealPlay();
+	}
+}
+
+//关闭选中窗口的实时监视
+function clickStopRealPlay(){
+	WebVideoCtrl.closePlayer();
+}
+
+//开启对讲
+function clickStartVoiceTalk(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	WebVideoCtrl.startVoiceTalk(sIP,{
+			cbSuccess:function(){
+				showOPInfo(sIP + " Enable AudioTalk Succeed");
+			},
+			cbFailed:function(){
+				showOPInfo(sIP + " Enable AudioTalk Fail");
+			}
+		}
+	)
+	
+}
+
+//关闭对讲
+function clickStopVoiceTalk(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	WebVideoCtrl.stopVoiceTalk(sIP);
+}
+
+// 打开选择框
+function clickOpenFileDlg(id) {
+    WebVideoCtrl.selectDirectory(id,{
+			cbSuccess:function(path){
+					    if (path != -1 && path != "" && path != null) {
+							$("#" + id).val(path);
+						}
+				}
+		}
+	);
+}
+
+function clickSetVolume(){
+	//设置选中窗口的音量
+	WebVideoCtrl.setVolume(parseInt($("#volume").val(), 10),{
+			cbSuccess:function(winIndex){
+			},
+			cbFailed:function(winIndex){
+			}
+		}
+	);
+}
+
+function clickOpenSound(){
+	WebVideoCtrl.openSound({
+			cbSuccess:function(winIndex){
+			},
+			cbFailed:function(winIndex){
+			}
+		}
+	);
+}
+
+function clickCloseSound(){
+	WebVideoCtrl.closeSound({
+			cbSuccess:function(winIndex){
+			},
+			cbFailed:function(winIndex){
+			}
+		}
+	);
+}
+
+function clickEnableEZoom(){
+	if(WebVideoCtrl.enableEZoom()){
+		showOPInfo("Enable Enlarger Succeed");
+	}else{
+		showOPInfo("Enable Enlarger Fail");
+	}
+}
+
+function clickDisableEZoom(){
+	if(WebVideoCtrl.disableEZoom()){
+		showOPInfo("Disable Enlarger Succeed");
+	}else{
+		showOPInfo("Disable Enlarger Fail");
+	}
+}
+
+function clickFullScreen(){
+	WebVideoCtrl.setFullscreen();
+}
+
+function clickOpenSound(){
+	var winID = WebVideoCtrl.getSelectedWinID();
+	if(WebVideoCtrl.openSound()){
+		showOPInfo("open Sound Succeed");
+	}else{
+		showOPInfo( "open Sound Fail");
+	}
+}
+
+function clickCloseSound(){
+	var winID = WebVideoCtrl.getSelectedWinID();
+	if(WebVideoCtrl.closeSound()){
+		showOPInfo("Close Sound Succeed");
+	}else{
+		showOPInfo( "Close Sound Fail");
+	}	
+}
+
+function clickCapturePic(){
+	var path = $("#LiveSnapshot").val();
+	var format = $("#captureFileFormat").val() - 0;                 
+	WebVideoCtrl.crabOnePicture(format,path,false).done(function(ret){
+		if (ret){
+			showOPInfo("Snapshot Succeed,Path:"+ path);
+		}else{
+			showOPInfo("Snapshot Fail");
+		}
+	})
+}
+
+function clickStartRecord(){
+	var path = $("#LiveRecord").val();     
+	var format = parseInt($("#recordFormat").val(), 10);
+	WebVideoCtrl.startRecordingVideo(format,path).done(function(ret){
+		if(ret){
+			showOPInfo("Start Record Succeed,Path:"+ path);
+		}else{
+			showOPInfo("Start Record Fail");
+		}
+	})
+}
+
+function clickStopRecord(){                
+	WebVideoCtrl.stopRecordingVideo().done(function(ret){
+		if (ret){
+			showOPInfo("Stop Record Succeed");
+		}else{
+			showOPInfo("Stop Record Fail");
+		}
+	})
+}
+
+function mouseUPLeftPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveUpperLeft(speed,speed,flag);
+}
+
+function mouseUpPTZControl(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveUpwards(speed,flag);
+}
+
+function mouseUPRightPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveUpperRight(speed,speed,flag);
+}
+
+function mouseLefPTZControl(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLeft(speed,flag);
+}
+
+function mouseRightPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveRight(speed,flag);
+}
+
+function mouseDownLeftPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLowerLeft(speed,speed,flag);
+}
+
+function mouseDownRightPTZControl(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLowerRight(speed,speed,flag);
+}
+
+function mouseDownPTZControl(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.moveLower(speed,flag);
+}
+
+function openPtzLocate(){
+	if(WebVideoCtrl.enablePTZLocate()){
+		//隐藏开启按钮
+		$("#openPtzLocate").hide();
+		//显示关闭按钮
+		$("#closePtzLocate").show();
+	}
+}
+
+function closePtzLocate(){
+	WebVideoCtrl.disablePTZLocate(false);
+	$("#closePtzLocate").hide();
+	$("#openPtzLocate").show();
+}
+
+function PTZZoomout(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlZoom(speed,1,flag);
+}
+
+function PTZZoomIn(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlZoom(speed,0,flag);
+}
+
+function PTZFocusIn(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlFocus(speed,0,flag);
+}
+
+function PTZFoucusOut(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlFocus(speed,1,flag);
+}
+
+function PTZIrisIn(flag){
+	//获得移动速度
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlAperture(speed,0,flag);
+}
+
+function PTZIrisOut(flag){
+	var speed = parseInt($("#ptzspeed").val(), 10)
+	WebVideoCtrl.controlAperture(speed,1,flag);
+}
+
+function GetPresets(){
+	WebVideoCtrl.getPresets(
+		function(index,name){
+			showOPInfo("Get Presets Succeed");
+			var subNode = "<option value=" + index.toString() + ">" + name + "</option>"
+			$("#presetList").append(subNode);
+		}
+	);
+	$('#presetList option:last').attr('selected','selected');
+}
+
+function GotoPreset(){
+	//获得预置点序号
+	var index = parseInt($("#presetList").val(), 10);
+	var speed = parseInt($("#ptzspeed").val(), 10)	
+	WebVideoCtrl.gotoPreset(index, speed);
+		
+	
+}
+
+function RemovePreset(){
+
+	//获得预置点序号
+	var index = parseInt($("#presetList").val(), 10);
+	if(WebVideoCtrl.removePreset(index)){
+		$("#presetList" + " option[value='" + index.toString() + "']").remove();
+		$("#presetList option:last").attr("selected","selected");
+	}
+		
+}
+
+function SetPreset(){
+	//获得预置点长度
+	var length = $("#presetList option").length;
+	var name = "Preset" + (length + 1).toString();
+	WebVideoCtrl.setPreset(length + 1,name);
+}
+
+function clickStartTrafficDataQuery(){
+	//获得当前选中的设备IP
+	var sIP = DemoUI.getCurDeviceIP();
+	//获得通道号
+	var iChannel = $("#channels").val() - 0;
+	var startTime = $("#humanFlowStarttime").val();
+	var endTime = $("#humanFlowEndtime").val();
+	var ruleType = parseInt($("#humanFlowRule").val(), 10);
+	var span = parseInt($("#humanFlowGranularity").val(), 10);
+	var minStayTime = parseInt($("#humanFlowMinStayTime").val(), 10); 
+	WebVideoCtrl.startTrafficDataQuery(sIP,0,startTime,endTime,ruleType,span,minStayTime).done(function(handle){
+		if(handle > 0){
+			$("#humanFlowQueryHandle").val(handle.toString());
+		}	
+	})
+}
+
+function clickGetTrafficDataTotalCount(){
+	var handle = parseInt($("#humanFlowQueryHandle").val(), 10);
+	WebVideoCtrl.getTrafficDataTotalCount(handle).done(function(ret){
+		if(ret >= 0){
+			$("#humanFlowInfoCount").val(ret.toString());
+		}	
+	});
+}
+
+function clickQueryTrafficData(){
+	var handle = parseInt($("#humanFlowQueryHandle").val(), 10);
+	var beginIndex = 0;
+	var total = parseInt($("#humanFlowInfoCount").val(), 10);
+	WebVideoCtrl.queryTrafficData(handle,beginIndex,total);
+}
+
+function clickStopTrafficDataQuery(){
+	var handle = parseInt($("#humanFlowQueryHandle").val(), 10);
+	WebVideoCtrl.stopTrafficDataQuery(handle);
+	$("#humanFlowQueryHandle").val("");
+	$("#humanFlowInfoCount").val("");
+}
+
+function clickRecordSearch(){
+	
+}
+
+function changeWinMode(){
+	var mode = parseInt($("#winMode").val(), 10);
+	if(0 == mode){
+		$("#winIndex").hide();
+	}else{
+		//设置窗口序号
+		var num = parseInt($("#wndNum").find("option:selected").val());
+		DemoUI.setWinIndex(num);
+		$("#winIndex").show();
+	}
+}
+
+function changeWndIndex(){
+	var iWinIndex = parseInt($("#winIndex").val(), 10);
+	//选中视频窗口
+	WebVideoCtrl.selectWindow(iWinIndex);
+}
+
+function clickStartAllRealPlay(){
+	DemoUI.getEachDeviceIP(function(sIP,iIndex){
+		//获得通道号
+		var iChannel = $("#channels").val() - 0;
+		//获得码流类型
+		var iStreamType = parseInt($("#streamtype").val(), 10); 
+		//窗口数目
+		var iWndNum = parseInt($("#wndNum").val(), 10);
+		if(iIndex > (iWndNum * iWndNum - 1)){
+			return;
+		}
+		WebVideoCtrl.connectRealVideoEx(iIndex,sIP,iChannel,iStreamType,function(iPlayerID){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live succeed");
+					},
+					function(status,error){
+						showOPInfo(sIP + " Channel:"+ iChannel.toString() + " Live Fail", status, error);
+					});
+				
+	});
+}
+
+function clickStopAllRealPlay(){
+		WebVideoCtrl.closeAllPlayer();
+}
+
+//开启注册监听
+function startRegisterListen() 
+{	
+	//注册事件
+	WebVideoCtrl.registerEvent("DetectedDeviceInfo", function(ip, port, state){
+			DemoUI.setLoginDeviceIP(ip)
+			DemoUI.setSvrPort(port);
+	});
+	var ip = $('#serverip').val();
+	var port = $('#serverport').val() - 0;
+	WebVideoCtrl.startDevciceDetection(ip, port);
+}
+
+//开启录像查询
+function clickStartRecordSearch(){
+		//清空文件列表
+		$("#recordInfor").empty();
+		var sIP = DemoUI.getCurDeviceIP();
+		var iChannel = $("#channels").val() - 0;
+        var iStreamType = parseInt($("#record_streamtype").val(), 10);
+        var szStartTime = $("#starttime").val();
+        var szEndTime = $("#endtime").val();
+		WebVideoCtrl.startRecordInfoSearch(sIP,iChannel,iStreamType,szStartTime,szEndTime).done(function(handle){
+			if(handle > 0){
+				$("#recordQueyrHandle").val(handle.toString());
+				showOPInfo(sIP + " Channel:"+ iChannel.toString() + "start query succeed");
+			}else{
+				showOPInfo(sIP + " Channel:"+ iChannel.toString() + "start query fail");
+			}		
+		})
+}
+
+function findNextRecordInfoCb(fileInfor){
+	var sIP = DemoUI.getCurDeviceIP();
+	var iChannel = $("#channels").val() - 0;	
+	if(fileInfor.length == 0)
+	{
+		showOPInfo(sIP + " Channel:"+ iChannel.toString() + "no info");
+	}
+	else
+	{
+		var dataObject = $.parseJSON(fileInfor);
+		if(("found" in  dataObject))
+		{
+			var length = dataObject["found"];
+			if(0 != parseInt(length))
+			{
+				//遍历所有的节点并添加到recordInfor中
+				$.each(dataObject.infos,function(i,item){
+				var infor = item.StartTime + "--" + item.EndTime;
+				var subNode = "<option value=" + infor + ">" + infor + "</option>"
+				$("#recordInfor").append(subNode);
+				});
+			}
+		}
+	}
+}
+
+//查询录像信息
+function clickNextRecordSearch(){
+	var iChannel = $("#channels").val() - 0;
+	var sIP = DemoUI.getCurDeviceIP();
+	var handle = parseInt($("#recordQueyrHandle").val(), 10);
+	WebVideoCtrl.findNextRecordInfo(handle,13,findNextRecordInfoCb);
+}
+
+function clickStartPlayback()
+{
+	var fileID = $("#recordInfor").find("option:selected").text();
+	WebVideoCtrl.playRemoteFileByFile(fileID);
+}
+
+function clickStopPlayback(){
+	WebVideoCtrl.stopPlayBack();
+}
+
+function clickPause(){
+	WebVideoCtrl.pausePlayBack();
+}
+
+function clickResume(){
+	WebVideoCtrl.resumePlayBack();
+}
+
+function clickPlayOneFrame(){
+	WebVideoCtrl.playOneFrame();
+}
+
+function clickPlaySlow(){
+	WebVideoCtrl.slowPlayBack();
+}
+
+function clickPlayFast(){
+	WebVideoCtrl.fastPlayBack();
+}
+
+function clickStopRecordSearch(){
+	var handle = parseInt($("#recordQueyrHandle").val(), 10);
+	WebVideoCtrl.stopRecordInfoQuerying(handle);
+}
+
+function enableIVS(){
+	WebVideoCtrl.enableIVS();
+}
+
+function disableIVS(){
+	WebVideoCtrl.disableIVS();
+}
+
+function clickSearchRecordStatus()
+{	
+	var sIP = DemoUI.getCurDeviceIP();
+	var iChannel = $("#channels").val() - 0;
+	var year = parseInt($("#recordStatus_year").find("option:selected").text());
+	var month = parseInt($("#recordStatus_month").find("option:selected").text());
+	WebVideoCtrl.queryRecordFileBitmap(sIP,iChannel,year,month,0).done(function(sStatus){
+		DemoUI.setRecordStatus(sStatus); 
+	});
+}
+
+function clickFocusRegion(){
+	WebVideoCtrl.activeFocusRegion();
+}
+
+function clickSubScribeEvent(){
+	var iChannel = $("#channels").val() - 0;
+	var event = $("#subscribeEventName").val();
+	WebVideoCtrl.subscribeEvent(iChannel, event);
+}
+
+function clickUnSubScribeEvent(){
+	var iChannel = $("#channels").val() - 0;
+	var event = $("#subscribeEventName").val();
+	WebVideoCtrl.unsubscribeEvent(iChannel, event);
+}
+
+function clickstartTour(){
+	var index = parseInt($("#tourIndex").val(), 10)
+	WebVideoCtrl.startTour(index);
+}
+
+function clickstopTour(){
+	var index = parseInt($("#tourIndex").val(), 10)
+	WebVideoCtrl.stopTour(index);
+}
+
+function responseShowTemper(val){
+	DemoUI.setTemper(val);
+}
+
+function clickenableCheck(flag){
+	WebVideoCtrl.enableCheck(flag);
+	if( flag == true ){
+		//注册事件
+		WebVideoCtrl.registerEvent("PointTemper",responseShowTemper);
+	}
+}
+
+function downloadLink(){
+	var url = $('#linkUrl').val();
+	var filename = $('#fileName').val();
+	WebVideoCtrl.downloadByLink(url, filename).done(function(requestID){
+		DemoUI.addDownloadLinkID(requestID);
+	});
+}
+
+function stopdownloadLink(){
+	var requestID = parseInt($("#downloadID").val(), 10)
+	WebVideoCtrl.stopDownloadByLink(requestID);
+}
+
+window.onscroll = function(){
+	var coverInfo = document.getElementById("divPlugin").getBoundingClientRect();
+	//可能文档有滚动条,修正 top left的值
+	var pos = {
+		width: coverInfo.width,
+		height: coverInfo.height,
+		top: coverInfo.top + window.pageYOffset,
+		left: coverInfo.left + window.pageXOffset,
+		topToWindow: coverInfo.top,
+		leftToWindow: coverInfo.left
+	};
+	var headerHeight = 0;
+	var dE = document.documentElement;
+	var windowBorder = Math.ceil((window.outerWidth - window.innerWidth) / 2);
+	var windowHeader = window.outerHeight - window.innerHeight - windowBorder;
+	var left = Math.max(pos.leftToWindow, 0) + (WebVideoCtrl.browser().firefox ? 0 : windowBorder);
+	var top = Math.max(pos.topToWindow, headerHeight) + windowHeader;
+	var width = Math.min(pos.width, dE.clientWidth - Math.max(pos.leftToWindow, 0), Math.max(pos.width - (dE.scrollLeft - pos.left), 0));
+	var height = Math.min(pos.height, dE.clientHeight - Math.max(headerHeight, pos.topToWindow), Math.max(pos.height - (dE.scrollTop - pos.top) - headerHeight, 0));
+	WebVideoCtrl.resizeVideo(left, top, width, height);
+}
+

+ 85 - 0
mybusiness/src/main/resources/templates/dahua/module/foundation.js

@@ -0,0 +1,85 @@
+var Foundation = (function()
+{
+	var dateFormat = function dateFormat(oDate, fmt) {
+    var o = {
+        "M+": oDate.getMonth() + 1, //月份
+        "d+": oDate.getDate(), //日
+        "h+": oDate.getHours(), //小时
+        "m+": oDate.getMinutes(), //分
+        "s+": oDate.getSeconds(), //秒
+        "q+": Math.floor((oDate.getMonth() + 3) / 3), //季度
+        "S": oDate.getMilliseconds()//毫秒
+    };
+    if (/(y+)/.test(fmt)) {
+        fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length));
+    }
+    for (var k in o) {
+        if (new RegExp("(" + k + ")").test(fmt)) {
+            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+        }
+    }
+    return fmt;
+	}
+	
+	return {
+		dateFormat:dateFormat
+	};
+})();
+
+/**
+*
+*
+*@returns{Map}
+*/
+function Map(){
+var node = function(key, value){
+	this.key = key;
+	this.value = value;
+};
+
+//添加map键值对
+var put = function(key,value){
+	for(var i = 0;i < this.arr.length;i ++){
+		if(this.arr[i].key == key){
+			this.arr[i].value = value;
+			return;
+		}
+	};
+	this.arr[this.arr.length] = new node(key,value);
+};
+
+//根据key获取value
+var get = function(key){
+	for(var i = 0;i < this.arr.length; i ++){
+		if(this.arr[i].key == key){
+			return this.arr[i].value;
+		}
+	}
+};
+
+//删除Key
+var remove = function(key){
+	var v;
+	for(var i = 0;i < this.arr.length;i ++){
+		v = this.arr.pop();
+		if(v.key == key){
+			continue;
+		}
+		this.arr.unshift(v);
+	}
+};
+
+//遍历
+var each = function(fCallback){
+	for(var i = 0;i < this.arr.length;i ++){
+		fCallback(this.arr[i].value);
+	}
+}
+
+this.arr = new Array();
+this.get = get;
+this.put = put;
+this.remove = remove;
+this.each = each
+}
+

Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
mybusiness/src/main/resources/templates/dahua/module/jquery-1.7.1.min.js


+ 209 - 0
mybusiness/src/main/resources/templates/dahua/module/modifyUI.js

@@ -0,0 +1,209 @@
+var DemoUI = (function(e)
+{
+	return {
+		setLoginDeviceIP:function(){},
+		getLoginDeviceIP:function(){},
+		removeDeviceInfo:function(ip){},
+		updateDeviceInfo:function(ip){},
+		setSvrPort:function(){},
+		getSvrPort:function(){},
+		setRtspPort:function(){},
+		getRtspPort:function(){},
+		setUsrName:function(){},
+		getUsrName:function(){},
+		setPassword:function(){},
+		getPassword:function(){},
+		addDeviceIP:function(){},
+		removeDeviceIP:function(){},
+		getCurDeviceIP:function(){},
+		getEachDeviceIP:function(){},
+		modifyChannelList:function(){},
+		setCurChannel:function(){},
+		getCurChannel:function(){},
+		setCurStreamType:function(){},
+		getCurStreamType:function(){},
+		setCurProtocol:function(){},
+		getCurProtocol:function(){},
+		clearPresets:function(){},
+		setWinIndex:function(){},
+		setRecordStatus:function(){},
+		setTemper:function(){},
+	};
+})(this);
+
+$(function () {
+
+	DemoUI.setLoginDeviceIP = function(ip){
+		$("#loginip").val(ip);
+	};
+	
+	DemoUI.getLoginDeviceIP = function(){
+		return $("#loginip").val();
+	};
+	
+	DemoUI.removeDeviceInfo = function(ip){
+		//将设备信息清除
+		DemoUI.removeDeviceIP();
+		//设置当前的设备信息
+		var selectDevice = DemoUI.getCurDeviceIP();
+		DemoUI.updateDeviceInfo(selectDevice);
+	}
+	
+	DemoUI.updateDeviceInfo = function(ip){
+		var info = WebVideoCtrl.getDeviceInfo(ip);
+		if(typeof info != "undefined")
+		{
+			//更新选中设备的信息
+			DemoUI.setLoginDeviceIP(ip);
+			DemoUI.setUsrName(info.userName);
+			DemoUI.setPassword(info.password);
+			DemoUI.setRtspPort(info.rtspPort);
+			DemoUI.setSvrPort(info.port);
+			DemoUI.setCurProtocol(info.protocol);
+			$("#ips").val(ip);
+			//更新通道数据
+			DemoUI.modifyChannelList(info.channelNum);
+		}else{
+			//清理通道列表数据
+			DemoUI.modifyChannelList(0);
+		}
+	}
+	
+	DemoUI.setSvrPort = function(port){
+		$("#port").val(port.toString());
+	};
+	
+	DemoUI.getSvrPort = function(){
+		return ($("#port").val() - 0);
+	};
+	
+	DemoUI.setRtspPort = function(port){
+		$("#rtspport").val(port.toString());
+	};
+	
+	DemoUI.getRtspPort = function(){
+		return ($("#rtspport").val() - 0);
+	};
+	
+	DemoUI.setUsrName = function(usrName){
+		$("#username").val(usrName);
+	};
+	
+	DemoUI.getUsrName = function(){
+		return $("#username").val();
+	};
+	
+	DemoUI.setPassword = function(password){
+		$("#password").val(password);
+	};
+	
+	DemoUI.getPassword = function(){
+		return $("#password").val();
+	};
+	
+	DemoUI.addDeviceIP = function(ip){
+		$("#ips").append("<option value='" + ip + "'>" + ip + "</option>");
+		$("#ips").val(ip)
+	};
+	
+	DemoUI.removeDeviceIP = function(){
+		var selectDevice = $("#ips").find("option:selected").text();
+		$("#ips" + " option[value='" + selectDevice + "']").remove();
+	};
+	
+	DemoUI.getCurDeviceIP = function(){
+		return $("#ips").find("option:selected").text();
+	};
+	
+	DemoUI.getEachDeviceIP = function(fCallback){
+		var index = 0;
+		$("#ips option").each(function(){
+			fCallback(this.text, index ++);
+		});
+	}
+	
+	DemoUI.modifyChannelList = function(num){
+		$("#channels").empty();
+		//更新通道列表信息
+		if(-1 != num)
+		{
+			var i = 1;
+			for(;i <= num;i ++)
+			{
+				var subNode = "<option value=" + i.toString() + ">" + i.toString() + "</option>"
+				$("#channels").append(subNode);
+			}
+		}
+	};
+	
+	DemoUI.setCurChannel = function(chan){
+		$("#channels").val(chan.toString());
+	};
+	
+	DemoUI.getCurChannel = function(){
+		return $("#channels").val();
+	};
+
+	DemoUI.setCurStreamType = function(type){
+		$("#streamtype").val(type.toString());
+	};
+	
+	DemoUI.getCurStreamType = function(){
+		return $("#streamtype").val();
+	};
+	
+	DemoUI.setCurProtocol = function(protocol){
+		$("#protocolType").val(protocol.toString());
+	};
+	
+	DemoUI.getCurProtocol = function(){
+		return $("#protocolType").val();
+	};
+	
+	DemoUI.clearPresets = function(){
+		$("#presetList").empty();
+	}
+	
+	DemoUI.setWinIndex = function(num){
+		$("#winIndex").empty();
+		//更新通道列表信息
+		var i = 0;
+		for(;i < num * num;i ++)
+		{
+			var subNode = "<option value=" + i.toString() + ">" + i.toString() + "</option>"
+			$("#winIndex").append(subNode);
+		}
+	}
+	
+	DemoUI.setRecordStatus = function(status){
+		//添加有录像的日期
+		var i = 0;
+		for(;(i < 32) && (i < status.length);i++)
+		{
+			if("1" == status.charAt(i))
+			{
+				var day = 31 - i;
+				var subNode = "<option value=" + day.toString() + ">" + day.toString() + "</option>";
+				$("#record_Status").prepend(subNode);
+			}
+		}
+	}
+	
+	//初始化月份信息
+	var i = 1;
+	for(;i <= 12;i ++)
+	{
+		var subNode = "<option value=" + i.toString() + ">" + i.toString() + "</option>"
+		$("#recordStatus_month").append(subNode);
+	}
+	
+		
+	DemoUI.setTemper = function(val){
+		$("#Temper").val(val.toString());
+	};
+	
+	DemoUI.addDownloadLinkID = function(val){
+		$("#downloadID").append("<option value='" + val + "'>" + val + "</option>");
+	}
+	
+});

+ 47 - 19
pom.xml

@@ -4,11 +4,11 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>com.leisp</groupId>
-    <artifactId>sz_jian</artifactId>
+    <artifactId>sz_hn</artifactId>
     <version>1.0.0</version>
     <packaging>pom</packaging>
 
-    <name>sz_jian</name>
+    <name>sz_hn</name>
     <url>http://www.sooka.com</url>
     <description>leisp管理系统</description>
 
@@ -220,7 +220,7 @@
     </dependencyManagement>
 
     <modules>
-        <module>leisp-admin</module>
+        <module>leiSP-admin</module>
         <module>leisp-framework</module>
         <module>leisp-system</module>
         <module>leisp-quartz</module>
@@ -255,30 +255,58 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.1</version>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.6</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
                 <configuration>
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
-                    <encoding>${project.build.sourceEncoding}</encoding>
+                    <archive>
+                        <manifest></manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
                 </configuration>
             </plugin>
 
-            <!--孙一石 注释 打包问题-->
+
             <!--<plugin>-->
-            <!--<groupId>org.springframework.boot</groupId>-->
-            <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
+                <!--<groupId>org.apache.maven.plugins</groupId>-->
+                <!--<artifactId>maven-compiler-plugin</artifactId>-->
+                <!--<version>3.1</version>-->
+                <!--<configuration>-->
+                    <!--<source>${java.version}</source>-->
+                    <!--<target>${java.version}</target>-->
+                    <!--<encoding>${project.build.sourceEncoding}</encoding>-->
+                <!--</configuration>-->
             <!--</plugin>-->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <skip>true</skip>
-                </configuration>
-            </plugin>
-
 
+            <!--&lt;!&ndash;孙一石 注释 打包问题&ndash;&gt;-->
+            <!--&lt;!&ndash;<plugin>&ndash;&gt;-->
+            <!--&lt;!&ndash;<groupId>org.springframework.boot</groupId>&ndash;&gt;-->
+            <!--&lt;!&ndash;<artifactId>spring-boot-maven-plugin</artifactId>&ndash;&gt;-->
+            <!--&lt;!&ndash;</plugin>&ndash;&gt;-->
+            <!--<plugin>-->
+                <!--<groupId>org.apache.maven.plugins</groupId>-->
+                <!--<artifactId>maven-surefire-plugin</artifactId>-->
+                <!--<configuration>-->
+                    <!--<skip>true</skip>-->
+                <!--</configuration>-->
+            <!--</plugin>-->
         </plugins>
+
+
+
+
+
+
+
     </build>
 
     <repositories>

+ 1 - 1
sz_jian.iml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">