tanghongbin před 4 roky
rodič
revize
cdac55f6aa
100 změnil soubory, kde provedl 5255 přidání a 15 odebrání
  1. binární
      AnsjerUIDManage.rar
  2. 32 15
      AnsjerUIDManage/generacode.py
  3. 1 0
      web/UM-admin/.idea/.name
  4. 12 0
      web/UM-admin/.idea/UM-admin.iml
  5. 6 0
      web/UM-admin/.idea/misc.xml
  6. 9 0
      web/UM-admin/.idea/modules.xml
  7. 7 0
      web/UM-admin/.idea/vcs.xml
  8. 522 0
      web/UM-admin/.idea/workspace.xml
  9. 164 0
      web/UM-admin/admin-add.html
  10. 148 0
      web/UM-admin/admin-cate.html
  11. 148 0
      web/UM-admin/admin-edit.html
  12. 165 0
      web/UM-admin/admin-list.html
  13. 161 0
      web/UM-admin/admin-role.html
  14. 178 0
      web/UM-admin/admin-rule.html
  15. 231 0
      web/UM-admin/cate.html
  16. 81 0
      web/UM-admin/city.html
  17. 16 0
      web/UM-admin/css/font.css
  18. 523 0
      web/UM-admin/css/xadmin.css
  19. 100 0
      web/UM-admin/echarts1.html
  20. 98 0
      web/UM-admin/echarts2.html
  21. 341 0
      web/UM-admin/echarts3.html
  22. 106 0
      web/UM-admin/echarts4.html
  23. 72 0
      web/UM-admin/echarts5.html
  24. 335 0
      web/UM-admin/echarts6.html
  25. 488 0
      web/UM-admin/echarts7.html
  26. 230 0
      web/UM-admin/echarts8.html
  27. binární
      web/UM-admin/fonts/iconfont.eot
  28. 44 0
      web/UM-admin/fonts/iconfont.svg
  29. binární
      web/UM-admin/fonts/iconfont.ttf
  30. binární
      web/UM-admin/fonts/iconfont.woff
  31. binární
      web/UM-admin/images/aiwrap.png
  32. binární
      web/UM-admin/images/bg.png
  33. 157 0
      web/UM-admin/index.html
  34. 221 0
      web/UM-admin/js/admin.js
  35. 511 0
      web/UM-admin/js/city.js
  36. 80 0
      web/UM-admin/js/jqhttpsdk.js
  37. 1 0
      web/UM-admin/js/jquery-3.3.1.min.js
  38. 2 0
      web/UM-admin/js/jquery_cookie_min.js
  39. 33 0
      web/UM-admin/js/shownowtime.js
  40. 1 0
      web/UM-admin/lib/layui/css/layui.css
  41. 1 0
      web/UM-admin/lib/layui/css/layui.mobile.css
  42. 2 0
      web/UM-admin/lib/layui/css/modules/code.css
  43. 1 0
      web/UM-admin/lib/layui/css/modules/laydate/default/laydate.css
  44. binární
      web/UM-admin/lib/layui/css/modules/laydate/icon.png
  45. 1 0
      web/UM-admin/lib/layui/css/modules/laydate/laydate.css
  46. binární
      web/UM-admin/lib/layui/css/modules/layer/default/icon-ext.png
  47. binární
      web/UM-admin/lib/layui/css/modules/layer/default/icon.png
  48. 1 0
      web/UM-admin/lib/layui/css/modules/layer/default/layer.css
  49. binární
      web/UM-admin/lib/layui/css/modules/layer/default/loading-0.gif
  50. binární
      web/UM-admin/lib/layui/css/modules/layer/default/loading-1.gif
  51. binární
      web/UM-admin/lib/layui/css/modules/layer/default/loading-2.gif
  52. binární
      web/UM-admin/lib/layui/font/iconfont.eot
  53. 25 0
      web/UM-admin/lib/layui/font/iconfont.svg
  54. binární
      web/UM-admin/lib/layui/font/iconfont.ttf
  55. binární
      web/UM-admin/lib/layui/font/iconfont.woff
  56. binární
      web/UM-admin/lib/layui/images/face/0.gif
  57. binární
      web/UM-admin/lib/layui/images/face/1.gif
  58. binární
      web/UM-admin/lib/layui/images/face/10.gif
  59. binární
      web/UM-admin/lib/layui/images/face/11.gif
  60. binární
      web/UM-admin/lib/layui/images/face/12.gif
  61. binární
      web/UM-admin/lib/layui/images/face/13.gif
  62. binární
      web/UM-admin/lib/layui/images/face/14.gif
  63. binární
      web/UM-admin/lib/layui/images/face/15.gif
  64. binární
      web/UM-admin/lib/layui/images/face/16.gif
  65. binární
      web/UM-admin/lib/layui/images/face/17.gif
  66. binární
      web/UM-admin/lib/layui/images/face/18.gif
  67. binární
      web/UM-admin/lib/layui/images/face/19.gif
  68. binární
      web/UM-admin/lib/layui/images/face/2.gif
  69. binární
      web/UM-admin/lib/layui/images/face/20.gif
  70. binární
      web/UM-admin/lib/layui/images/face/21.gif
  71. binární
      web/UM-admin/lib/layui/images/face/22.gif
  72. binární
      web/UM-admin/lib/layui/images/face/23.gif
  73. binární
      web/UM-admin/lib/layui/images/face/24.gif
  74. binární
      web/UM-admin/lib/layui/images/face/25.gif
  75. binární
      web/UM-admin/lib/layui/images/face/26.gif
  76. binární
      web/UM-admin/lib/layui/images/face/27.gif
  77. binární
      web/UM-admin/lib/layui/images/face/28.gif
  78. binární
      web/UM-admin/lib/layui/images/face/29.gif
  79. binární
      web/UM-admin/lib/layui/images/face/3.gif
  80. binární
      web/UM-admin/lib/layui/images/face/30.gif
  81. binární
      web/UM-admin/lib/layui/images/face/31.gif
  82. binární
      web/UM-admin/lib/layui/images/face/32.gif
  83. binární
      web/UM-admin/lib/layui/images/face/33.gif
  84. binární
      web/UM-admin/lib/layui/images/face/34.gif
  85. binární
      web/UM-admin/lib/layui/images/face/35.gif
  86. binární
      web/UM-admin/lib/layui/images/face/36.gif
  87. binární
      web/UM-admin/lib/layui/images/face/37.gif
  88. binární
      web/UM-admin/lib/layui/images/face/38.gif
  89. binární
      web/UM-admin/lib/layui/images/face/39.gif
  90. binární
      web/UM-admin/lib/layui/images/face/4.gif
  91. binární
      web/UM-admin/lib/layui/images/face/40.gif
  92. binární
      web/UM-admin/lib/layui/images/face/41.gif
  93. binární
      web/UM-admin/lib/layui/images/face/42.gif
  94. binární
      web/UM-admin/lib/layui/images/face/43.gif
  95. binární
      web/UM-admin/lib/layui/images/face/44.gif
  96. binární
      web/UM-admin/lib/layui/images/face/45.gif
  97. binární
      web/UM-admin/lib/layui/images/face/46.gif
  98. binární
      web/UM-admin/lib/layui/images/face/47.gif
  99. binární
      web/UM-admin/lib/layui/images/face/48.gif
  100. binární
      web/UM-admin/lib/layui/images/face/49.gif

binární
AnsjerUIDManage.rar


+ 32 - 15
AnsjerUIDManage/generacode.py

@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 import json
 
+import xlwt
+
 from Object.TokenObject import TokenObject
 import base64
 import requests
@@ -9,21 +11,36 @@ import requests
 token = TokenObject()
 token = token.generate({'userID': str(2)})
 
-file = open('./file/UID30000.txt', mode='r', encoding='utf-8')
+file = open('./file/UID-2020-09-09-06-14-44.txt', mode='r', encoding='utf-8')
 content = file.read()
-content = '1Il' + content
-content = content + 'lll'
-content = content.encode(encoding='utf-8')
-content = base64.b64encode(content).decode().strip()
+content = content.replace(' ', '\t')
+
+file1 = open('./file/UID_2020_09_09_06_14_44.txt', mode='w', encoding='utf-8')
+file1.write(content)
+file1.close()
+
+tmps = content.split('\n')
+workbook = xlwt.Workbook(encoding='utf-8')
+sheet1 = workbook.add_sheet('UID')
+num = 0
+for tmp in tmps:
+    lines = tmp.split('\t')
+    for i in range(len(lines)):
+        sheet1.write(num, i, lines[i].strip())
+    num += 1
+
+workbook.save('./file/UID_2020_09_09_06_14_44.xls')
+
+
 file.close()
 
-url = 'http://192.168.136.35:8000/upload'
-postData = {
-    'area': 0,
-    'token': token['access_token'],
-    'fileName': content
-}
-# postData = json.dumps(postData)
-print(postData)
-res = requests.post(url=url, data=postData)
-print(res)
+# url = 'http://192.168.136.35:8000/upload'
+# postData = {
+#     'area': 0,
+#     'token': token['access_token'],
+#     'fileName': content
+# }
+# # postData = json.dumps(postData)
+# print(postData)
+# res = requests.post(url=url, data=postData)
+# print(res)

+ 1 - 0
web/UM-admin/.idea/.name

@@ -0,0 +1 @@
+UM-admin

+ 12 - 0
web/UM-admin/.idea/UM-admin.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 6 - 0
web/UM-admin/.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JavaScriptSettings">
+    <option name="languageLevel" value="ES6" />
+  </component>
+</project>

+ 9 - 0
web/UM-admin/.idea/modules.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/UM-admin.iml" filepath="$PROJECT_DIR$/.idea/UM-admin.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/X-admin.iml" filepath="$PROJECT_DIR$/.idea/X-admin.iml" />
+    </modules>
+  </component>
+</project>

+ 7 - 0
web/UM-admin/.idea/vcs.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 522 - 0
web/UM-admin/.idea/workspace.xml

@@ -0,0 +1,522 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="82e81869-40b7-44bf-a50c-aeb6eb78a233" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/../../AnsjerUM/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/../../AnsjerUM/urls.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Controller/SysController.py" beforeDir="false" afterPath="$PROJECT_DIR$/../../Controller/SysController.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/js/jqhttpsdk.js" beforeDir="false" afterPath="$PROJECT_DIR$/js/jqhttpsdk.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/login.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/umlist.html" beforeDir="false" afterPath="$PROJECT_DIR$/umlist.html" afterDir="false" />
+    </list>
+    <ignored path="$PROJECT_DIR$/.tmp/" />
+    <ignored path="$PROJECT_DIR$/temp/" />
+    <ignored path="$PROJECT_DIR$/tmp/" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="FUSProjectUsageTrigger">
+    <session id="1502916291">
+      <usages-collector id="statistics.lifecycle.project">
+        <counts>
+          <entry key="project.closed" value="1" />
+          <entry key="project.open.time.1" value="1" />
+          <entry key="project.open.time.11" value="1" />
+          <entry key="project.open.time.67" value="1" />
+          <entry key="project.open.time.95" value="1" />
+          <entry key="project.opened" value="4" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.open">
+        <counts>
+          <entry key="css" value="3" />
+          <entry key="html" value="9" />
+          <entry key="js" value="18" />
+          <entry key="json" value="1" />
+          <entry key="md" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.open">
+        <counts>
+          <entry key="CSS" value="3" />
+          <entry key="HTML" value="9" />
+          <entry key="JSON" value="1" />
+          <entry key="JavaScript" value="18" />
+          <entry key="PLAIN_TEXT" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.edit">
+        <counts>
+          <entry key="html" value="2465" />
+          <entry key="js" value="37" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.edit">
+        <counts>
+          <entry key="HTML" value="2465" />
+          <entry key="JavaScript" value="37" />
+        </counts>
+      </usages-collector>
+    </session>
+    <session id="709442949">
+      <usages-collector id="statistics.lifecycle.project">
+        <counts>
+          <entry key="project.open.time.28" value="1" />
+          <entry key="project.open.time.52" value="1" />
+          <entry key="project.opened" value="2" />
+        </counts>
+      </usages-collector>
+    </session>
+    <session id="-1133389475">
+      <usages-collector id="statistics.lifecycle.project">
+        <counts>
+          <entry key="project.closed" value="2" />
+          <entry key="project.open.time.106" value="1" />
+          <entry key="project.open.time.12" value="1" />
+          <entry key="project.open.time.8" value="1" />
+          <entry key="project.opened" value="3" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.open">
+        <counts>
+          <entry key="html" value="2" />
+          <entry key="js" value="1" />
+          <entry key="json" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.open">
+        <counts>
+          <entry key="HTML" value="2" />
+          <entry key="JSON" value="1" />
+          <entry key="JavaScript" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.edit">
+        <counts>
+          <entry key="html" value="307" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.edit">
+        <counts>
+          <entry key="HTML" value="307" />
+        </counts>
+      </usages-collector>
+    </session>
+  </component>
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/index.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="288">
+              <caret line="16" column="76" selection-start-line="16" selection-start-column="76" selection-end-line="16" selection-end-column="76" />
+              <folding>
+                <element signature="n#li#1;n#ul#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/umlist.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="486">
+              <caret line="36" column="37" selection-start-line="36" selection-start-column="37" selection-end-line="36" selection-end-column="37" />
+              <folding>
+                <element signature="n#style#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+                <element signature="n#style#0;n#i#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/umlog.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="306">
+              <caret line="17" column="68" selection-start-line="17" selection-start-column="68" selection-end-line="17" selection-end-column="68" />
+              <folding>
+                <element signature="n#style#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+                <element signature="n#style#0;n#i#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/js/jqhttpsdk.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="90">
+              <caret line="5" column="45" selection-start-line="5" selection-start-column="45" selection-end-line="5" selection-end-column="45" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/js/admin.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="3258">
+              <caret line="181" column="16" selection-start-line="181" selection-start-column="16" selection-end-line="181" selection-end-column="16" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/echarts6.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="5832">
+              <caret line="324" selection-start-line="324" selection-end-line="324" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="JavaScript File" />
+      </list>
+    </option>
+  </component>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>iconfont</find>
+      <find>hm.js</find>
+      <find>densitydpi</find>
+      <find>系统通知</find>
+      <find>Copyright</find>
+      <find>GetJSON</find>
+      <find>layui-btn</find>
+      <find>distribute_btn</find>
+      <find>select</find>
+      <find>form</find>
+      <find>uploadInst</find>
+      <find>imuidlist</find>
+      <find>tableIns</find>
+      <find>uid</find>
+      <find>X-admin</find>
+      <find>欢迎页面-X-admin2.0</find>
+      <find>where</find>
+      <find>is_use</find>
+      <find>is_use_select</find>
+      <find>获取</find>
+      <find>postJson</find>
+      <find>postJSON</find>
+      <find>009688</find>
+      <find>layui-btn layui-btn-small</find>
+      <find>http_ip_port</find>
+    </findStrings>
+    <replaceStrings>
+      <replace>um</replace>
+      <replace>欢迎页面</replace>
+    </replaceStrings>
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/js/shownowtime.js" />
+        <option value="$PROJECT_DIR$/welcome.html" />
+        <option value="$PROJECT_DIR$/js/xadmin.js" />
+        <option value="$PROJECT_DIR$/order-add.html" />
+        <option value="$PROJECT_DIR$/order-list.html" />
+        <option value="$PROJECT_DIR$/uidlist.html" />
+        <option value="$PROJECT_DIR$/umlog.html" />
+        <option value="$PROJECT_DIR$/umlist.html" />
+        <option value="$PROJECT_DIR$/umlist.html" />
+        <option value="$PROJECT_DIR$/index.html" />
+        <option value="$PROJECT_DIR$/js/jqhttpsdk.js" />
+        <option value="$PROJECT_DIR$/login.html" />
+      </list>
+    </option>
+  </component>
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="177" />
+    <option name="y" value="301" />
+    <option name="width" value="1041" />
+    <option name="height" value="816" />
+  </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
+    <ConfirmationsSetting value="1" id="Add" />
+  </component>
+  <component name="ProjectView">
+    <navigator proportions="" version="1">
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="Scope" />
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="UM-admin" type="b2602c69:ProjectViewProjectNode" />
+              <item name="UM-admin" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="UM-admin" type="b2602c69:ProjectViewProjectNode" />
+              <item name="UM-admin" type="462c0819:PsiDirectoryNode" />
+              <item name="js" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <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="project.propVCSSupport.Mappings" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\AngularPJ\X-admin" />
+      <recent name="D:\AngularPJ\X-admin\js" />
+      <recent name="D:\AngularPJ\X-admin\lib" />
+    </key>
+  </component>
+  <component name="RunDashboard">
+    <option name="ruleStates">
+      <list>
+        <RuleState>
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+        </RuleState>
+        <RuleState>
+          <option name="name" value="StatusDashboardGroupingRule" />
+        </RuleState>
+      </list>
+    </option>
+  </component>
+  <component name="SvnConfiguration">
+    <configuration />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="82e81869-40b7-44bf-a50c-aeb6eb78a233" name="Default Changelist" comment="" />
+      <created>1537429802436</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1537429802436</updated>
+      <workItem from="1537429803795" duration="6418000" />
+      <workItem from="1537490017268" duration="18245000" />
+      <workItem from="1537834686717" duration="619000" />
+      <workItem from="1537842992768" duration="12747000" />
+      <workItem from="1537921617926" duration="702000" />
+      <workItem from="1538035763814" duration="689000" />
+      <workItem from="1538980977813" duration="4513000" />
+      <workItem from="1539564173240" duration="654000" />
+      <workItem from="1539575549002" duration="37000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="44624000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1616" height="886" extended-state="6" />
+    <layout>
+      <window_info id="Favorites" order="0" side_tool="true" />
+      <window_info active="true" content_ui="combo" id="Project" order="1" visible="true" weight="0.19011407" />
+      <window_info id="Structure" order="2" side_tool="true" weight="0.25" />
+      <window_info anchor="bottom" id="Terminal" order="0" weight="0.23271276" />
+      <window_info anchor="bottom" id="Event Log" order="1" side_tool="true" weight="0.23404256" />
+      <window_info anchor="bottom" id="Version Control" order="2" weight="0.32978722" />
+      <window_info anchor="bottom" id="Docker" order="3" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Message" order="4" />
+      <window_info anchor="bottom" id="Find" order="5" weight="0.32991204" />
+      <window_info anchor="bottom" id="Run" order="6" />
+      <window_info anchor="bottom" id="Debug" order="7" weight="0.4" />
+      <window_info anchor="bottom" id="Cvs" order="8" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="9" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="10" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
+    </layout>
+    <layout-to-restore>
+      <window_info id="Favorites" order="0" side_tool="true" />
+      <window_info active="true" content_ui="combo" id="Project" order="1" visible="true" weight="0.15529412" />
+      <window_info id="Structure" order="2" side_tool="true" weight="0.25" />
+      <window_info anchor="bottom" id="Terminal" order="0" />
+      <window_info anchor="bottom" id="Event Log" order="1" side_tool="true" weight="0.31117022" />
+      <window_info anchor="bottom" id="Version Control" order="2" />
+      <window_info anchor="bottom" id="Docker" order="3" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Message" order="4" />
+      <window_info anchor="bottom" id="Find" order="5" />
+      <window_info anchor="bottom" id="Run" order="6" />
+      <window_info anchor="bottom" id="Debug" order="7" weight="0.4" />
+      <window_info anchor="bottom" id="Cvs" order="8" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="9" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="10" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
+    </layout-to-restore>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="1" />
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/lib/layui/css/layui.css">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/css/xadmin.css">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="230">
+          <caret line="361" column="34" lean-forward="true" selection-start-line="361" selection-start-column="34" selection-end-line="361" selection-end-column="34" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/README.md" />
+    <entry file="file://$PROJECT_DIR$/js/jquery_cookie_min.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="18">
+          <caret line="1" column="83" selection-start-line="1" selection-start-column="83" selection-end-line="1" selection-end-column="83" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/js/jquery-3.3.1.min.js">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/js/shownowtime.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="414">
+          <caret line="23" column="8" lean-forward="true" selection-start-line="23" selection-start-column="8" selection-end-line="23" selection-end-column="8" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/css/font.css">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="288">
+          <caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/order-add.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="432">
+          <caret line="39" column="49" lean-forward="true" selection-start-line="39" selection-start-column="49" selection-end-line="39" selection-end-column="49" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/layui/lay/modules/table.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="18">
+          <caret line="1" column="5662" selection-start-line="1" selection-start-column="5662" selection-end-line="1" selection-end-column="5662" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/order-list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1422">
+          <caret line="79" column="40" selection-start-line="79" selection-start-column="34" selection-end-line="79" selection-end-column="40" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/uidlist.html" />
+    <entry file="file://$PROJECT_DIR$/js/city.js">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/user.json">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/login.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="134">
+          <caret line="83" column="20" lean-forward="true" selection-start-line="83" selection-start-column="20" selection-end-line="83" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/unicode.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="72">
+          <caret line="4" column="27" selection-start-line="4" selection-start-column="27" selection-end-line="4" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/welcome.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="663">
+          <caret line="61" column="22" selection-start-line="61" selection-start-column="22" selection-end-line="61" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/layui/layui.all.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="36">
+          <caret line="1" column="1985" selection-start-line="1" selection-start-column="1985" selection-end-line="1" selection-end-column="1985" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/index.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="288">
+          <caret line="16" column="76" selection-start-line="16" selection-start-column="76" selection-end-line="16" selection-end-column="76" />
+          <folding>
+            <element signature="n#li#1;n#ul#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/umlog.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="306">
+          <caret line="17" column="68" selection-start-line="17" selection-start-column="68" selection-end-line="17" selection-end-column="68" />
+          <folding>
+            <element signature="n#style#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+            <element signature="n#style#0;n#i#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/js/jqhttpsdk.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="90">
+          <caret line="5" column="45" selection-start-line="5" selection-start-column="45" selection-end-line="5" selection-end-column="45" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/js/admin.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3258">
+          <caret line="181" column="16" selection-start-line="181" selection-start-column="16" selection-end-line="181" selection-end-column="16" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/echarts6.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="5832">
+          <caret line="324" selection-start-line="324" selection-end-line="324" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/umlist.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="486">
+          <caret line="36" column="37" selection-start-line="36" selection-start-column="37" selection-end-line="36" selection-end-column="37" />
+          <folding>
+            <element signature="n#style#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+            <element signature="n#style#0;n#i#0;n#a#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>

+ 164 - 0
web/UM-admin/admin-add.html

@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="./js/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <script type="text/javascript" src="./js/jquery_cookie_min.js"></script>
+    <script type="text/javascript" src="./js/jqhttpsdk.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+</head>
+
+<body>
+<div class="x-body">
+    <form class="layui-form">
+        <div class="layui-form-item">
+            <label for="username" class="layui-form-label">
+                <span class="x-red">*</span>登录名
+            </label>
+            <div class="layui-input-inline">
+                <input type="text" id="username" name="username" required="" lay-verify="required"
+                       autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">
+                <span class="x-red">*</span>将会成为您唯一的登入名
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="phone" class="layui-form-label">
+                <span class="x-red">*</span>手机
+            </label>
+            <div class="layui-input-inline">
+                <input type="text" id="phone" name="phone" required="" lay-verify="phone"
+                       autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">
+                <span class="x-red">*</span>将会成为您唯一的登入名
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="L_email" class="layui-form-label">
+                <span class="x-red">*</span>邮箱
+            </label>
+            <div class="layui-input-inline">
+                <input type="text" id="L_email" name="email" required="" lay-verify="email"
+                       autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">
+                <span class="x-red">*</span>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label"><span class="x-red">*</span>角色</label>
+            <div class="layui-input-block">
+                <input type="radio" name="role" lay-skin="primary" value="0" title="超级管理员" checked="">
+                <input type="radio" name="role" lay-skin="primary" value="1" title="生产管理员">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="L_pass" class="layui-form-label">
+                <span class="x-red">*</span>密码
+            </label>
+            <div class="layui-input-inline">
+                <input type="password" id="L_pass" name="password" required="" lay-verify="pass"
+                       autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">
+                6到16个字符
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="L_repass" class="layui-form-label">
+                <span class="x-red">*</span>确认密码
+            </label>
+            <div class="layui-input-inline">
+                <input type="password" id="L_repass" name="repass" required="" lay-verify="repass"
+                       autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="L_repass" class="layui-form-label">
+            </label>
+            <button class="layui-btn" lay-filter="add" lay-submit="">
+                增加
+            </button>
+        </div>
+    </form>
+</div>
+<script>
+    function print(data) {
+        console.log(data)
+    }
+    layui.use(['form', 'layer'], function () {
+        var $ = jQuery = layui.$;
+        var form = layui.form, layer = layui.layer;
+
+        //自定义验证规则
+        form.verify({
+            nikename: function (value) {
+                if (value.length < 5) {
+                    return '昵称至少得5个字符啊';
+                }
+            }
+            , password: [/(.+){6,12}$/, '密码必须6到12位']
+            , repass: function (value) {
+                if ($('#L_pass').val() != $('#L_repass').val()) {
+                    return '两次密码不一致';
+                }
+            }
+        });
+
+        //监听提交
+        form.on('submit(add)', function (data) {
+            console.log(data.field);
+            var values = data.field;
+            $.post(
+                http_ip_port + '/user/adminAdd',
+                {
+                    username: values.username,
+                    password: values.password,
+                    phone: values.phone,
+                    role: values.role,
+                    token: $.cookie('access_token')
+                },
+                function (res) {
+                    console.log(res);
+                    res = JSON.parse(res);
+                    if(res.code === 0) {
+
+                        //发异步,把数据提交给php
+                        layer.alert("增加成功", {icon: 6}, function () {
+                            // 获得frame索引
+                            var index = parent.layer.getFrameIndex(window.name);
+                            //关闭当前frame
+                            parent.layer.close(index);
+                            parent.location.reload();
+                        });
+                    }else {
+                        alert(res.msg)
+                    }
+                }
+            );
+
+            return false;
+        });
+
+    });
+</script>
+</body>
+
+</html>

+ 148 - 0
web/UM-admin/admin-cate.html

@@ -0,0 +1,148 @@
+<!DOCTYPE html>
+<html>
+  
+  <head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  
+  <body>
+    <div class="x-nav">
+      <span class="layui-breadcrumb">
+        <a href="">首页</a>
+        <a href="">演示</a>
+        <a>
+          <cite>导航元素</cite></a>
+      </span>
+      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
+        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
+    </div>
+    <div class="x-body">
+      <div class="layui-row">
+        <form class="layui-form layui-col-md12 x-so layui-form-pane">
+          <input class="layui-input" placeholder="分类名" name="cate_name">
+          <button class="layui-btn"  lay-submit="" lay-filter="sreach"><i class="layui-icon"></i>增加</button>
+        </form>
+      </div>
+      <xblock>
+        <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
+        <span class="x-right" style="line-height:40px">共有数据:88 条</span>
+      </xblock>
+      <table class="layui-table">
+        <thead>
+          <tr>
+            <th>
+              <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
+            </th>
+            <th>ID</th>
+            <th>分类名</th>
+            <th>操作</th>
+        </thead>
+        <tbody>
+          <tr>
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>1</td>
+            <td>会员相关</td>
+            <td class="td-manage">
+              <a title="编辑"  onclick="x_admin_show('编辑','admin-edit.html')" href="javascript:;">
+                <i class="layui-icon">&#xe642;</i>
+              </a>
+              <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
+                <i class="layui-icon">&#xe640;</i>
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <div class="page">
+        <div>
+          <a class="prev" href="">&lt;&lt;</a>
+          <a class="num" href="">1</a>
+          <span class="current">2</span>
+          <a class="num" href="">3</a>
+          <a class="num" href="">489</a>
+          <a class="next" href="">&gt;&gt;</a>
+        </div>
+      </div>
+
+    </div>
+    <script>
+      layui.use('laydate', function(){
+        var laydate = layui.laydate;
+        
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#start' //指定元素
+        });
+
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#end' //指定元素
+        });
+      });
+
+       /*用户-停用*/
+      function member_stop(obj,id){
+          layer.confirm('确认要停用吗?',function(index){
+
+              if($(obj).attr('title')=='启用'){
+
+                //发异步把用户状态进行更改
+                $(obj).attr('title','停用')
+                $(obj).find('i').html('&#xe62f;');
+
+                $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
+                layer.msg('已停用!',{icon: 5,time:1000});
+
+              }else{
+                $(obj).attr('title','启用')
+                $(obj).find('i').html('&#xe601;');
+
+                $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
+                layer.msg('已启用!',{icon: 5,time:1000});
+              }
+              
+          });
+      }
+
+      /*用户-删除*/
+      function member_del(obj,id){
+          layer.confirm('确认要删除吗?',function(index){
+              //发异步删除数据
+              $(obj).parents("tr").remove();
+              layer.msg('已删除!',{icon:1,time:1000});
+          });
+      }
+
+
+
+      function delAll (argument) {
+
+        var data = tableCheck.getData();
+  
+        layer.confirm('确认要删除吗?'+data,function(index){
+            //捉到所有被选中的,发异步进行删除
+            layer.msg('删除成功', {icon: 1});
+            $(".layui-form-checked").not('.header').parents('tr').remove();
+        });
+      }
+    </script>
+  </body>
+
+</html>

+ 148 - 0
web/UM-admin/admin-edit.html

@@ -0,0 +1,148 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="./js/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <script type="text/javascript" src="./js/jquery_cookie_min.js"></script>
+    <script type="text/javascript" src="./js/jqhttpsdk.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+</head>
+
+<body>
+<div class="x-body">
+    <form class="layui-form">
+        <div class="layui-form-item">
+            <label for="username" class="layui-form-label">
+                <span class="x-red">*</span>登录名
+            </label>
+            <div class="layui-input-inline">
+                <input type="text" id="username" name="username" required="" lay-verify="required"
+                       autocomplete="off" value="admin" class="layui-input" disabled>
+            </div>
+
+        </div>
+        <div class="layui-form-item">
+            <label for="phone" class="layui-form-label">
+                <span class="x-red">*</span>手机
+            </label>
+            <div class="layui-input-inline">
+                <input type="text" value="18925139194" id="phone" name="phone" required="" lay-verify="phone"
+                       autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="L_email" class="layui-form-label">
+                <span class="x-red">*</span>邮箱
+            </label>
+            <div class="layui-input-inline">
+                <input type="text" value="113664000@qq.com" id="L_email" name="email" required="" lay-verify="email"
+                       autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label"><span class="x-red">*</span>角色</label>
+            <div class="layui-input-block">
+                <input type="radio" name="role" lay-skin="primary" title="超级管理员" value="0" checked="">
+                <input type="radio" name="role" lay-skin="primary" title="生产管理员" value="1">
+
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="L_repass" class="layui-form-label">
+            </label>
+            <button class="layui-btn" lay-filter="add" lay-submit="">
+                修改
+            </button>
+        </div>
+    </form>
+</div>
+<script>
+    $(function () {
+        $('#username').val(getQueryString('username'));
+        var role = getQueryString('role')
+        if(role == 0){
+            $("input[title='超级管理员']").click();
+
+        }else if(role == 1){
+            $("input[title='生产管理员']").click();
+        }
+
+    });
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r !== null)
+         return unescape(r[2]);
+         return null;
+    }
+    layui.use(['form', 'layer'], function () {
+        var $ = jQuery = layui.$;
+        var form = layui.form, layer = layui.layer;
+
+        //自定义验证规则
+        form.verify({
+            nikename: function (value) {
+                if (value.length < 5) {
+                    return '昵称至少得5个字符啊';
+                }
+            }
+            , pass: [/(.+){6,12}$/, '密码必须6到12位']
+            , repass: function (value) {
+                if ($('#L_pass').val() != $('#L_repass').val()) {
+                    return '两次密码不一致';
+                }
+            }
+        });
+
+        //监听提交
+        form.on('submit(add)', function (data) {
+            console.log(data.field);
+            var values = data.field;
+            $.post(
+                http_ip_port + '/user/adminUpdate',
+                {
+                    username: values.username,
+                    password: values.password,
+                    phone: values.phone,
+                    role: values.role,
+                    token: $.cookie('access_token')
+                },
+                function (res) {
+                    console.log(res);
+
+                    //发异步,把数据提交
+                    layer.alert("修改成功", {icon: 6}, function () {
+                        // 获得frame索引
+                        var index = parent.layer.getFrameIndex(window.name);
+                        //关闭当前frame
+                        parent.layer.close(index);
+                        parent.location.reload();
+                    });
+
+
+                }
+            );
+            return false;
+        });
+
+
+    });
+</script>
+</body>
+
+</html>

+ 165 - 0
web/UM-admin/admin-list.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html>
+  
+  <head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  
+  <body>
+    <div class="x-nav">
+      <span class="layui-breadcrumb">
+        <a href="">首页</a>
+        <a href="">演示</a>
+        <a>
+          <cite>导航元素</cite></a>
+      </span>
+      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
+        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
+    </div>
+    <div class="x-body">
+      <div class="layui-row">
+        <form class="layui-form layui-col-md12 x-so">
+          <input class="layui-input" placeholder="开始日" name="start" id="start">
+          <input class="layui-input" placeholder="截止日" name="end" id="end">
+          <input type="text" name="username"  placeholder="请输入用户名" autocomplete="off" class="layui-input">
+          <button class="layui-btn"  lay-submit="" lay-filter="sreach"><i class="layui-icon">&#xe615;</i></button>
+        </form>
+      </div>
+      <xblock>
+        <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
+        <button class="layui-btn" onclick="x_admin_show('添加用户','./admin-add.html')"><i class="layui-icon"></i>添加</button>
+        <span class="x-right" style="line-height:40px">共有数据:88 条</span>
+      </xblock>
+      <table class="layui-table">
+        <thead>
+          <tr>
+            <th>
+              <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
+            </th>
+            <th>ID</th>
+            <th>登录名</th>
+            <th>手机</th>
+            <th>邮箱</th>
+            <th>角色</th>
+            <th>加入时间</th>
+            <th>状态</th>
+            <th>操作</th>
+        </thead>
+        <tbody>
+          <tr>
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>1</td>
+            <td>admin</td>
+            <td>18925139194</td>
+            <td>113664000@qq.com</td>
+            <td>超级管理员</td>
+            <td>2017-01-01 11:11:42</td>
+            <td class="td-status">
+              <span class="layui-btn layui-btn-normal layui-btn-mini">已启用</span></td>
+            <td class="td-manage">
+              <a onclick="member_stop(this,'10001')" href="javascript:;"  title="启用">
+                <i class="layui-icon">&#xe601;</i>
+              </a>
+              <a title="编辑"  onclick="x_admin_show('编辑','admin-edit.html')" href="javascript:;">
+                <i class="layui-icon">&#xe642;</i>
+              </a>
+              <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
+                <i class="layui-icon">&#xe640;</i>
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <div class="page">
+        <div>
+          <a class="prev" href="">&lt;&lt;</a>
+          <a class="num" href="">1</a>
+          <span class="current">2</span>
+          <a class="num" href="">3</a>
+          <a class="num" href="">489</a>
+          <a class="next" href="">&gt;&gt;</a>
+        </div>
+      </div>
+
+    </div>
+    <script>
+      layui.use('laydate', function(){
+        var laydate = layui.laydate;
+        
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#start' //指定元素
+        });
+
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#end' //指定元素
+        });
+      });
+
+       /*用户-停用*/
+      function member_stop(obj,id){
+          layer.confirm('确认要停用吗?',function(index){
+
+              if($(obj).attr('title')=='启用'){
+
+                //发异步把用户状态进行更改
+                $(obj).attr('title','停用')
+                $(obj).find('i').html('&#xe62f;');
+
+                $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
+                layer.msg('已停用!',{icon: 5,time:1000});
+
+              }else{
+                $(obj).attr('title','启用')
+                $(obj).find('i').html('&#xe601;');
+
+                $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
+                layer.msg('已启用!',{icon: 5,time:1000});
+              }
+              
+          });
+      }
+
+      /*用户-删除*/
+      function member_del(obj,id){
+          layer.confirm('确认要删除吗?',function(index){
+              //发异步删除数据
+              $(obj).parents("tr").remove();
+              layer.msg('已删除!',{icon:1,time:1000});
+          });
+      }
+
+
+
+      function delAll (argument) {
+
+        var data = tableCheck.getData();
+  
+        layer.confirm('确认要删除吗?'+data,function(index){
+            //捉到所有被选中的,发异步进行删除
+            layer.msg('删除成功', {icon: 1});
+            $(".layui-form-checked").not('.header').parents('tr').remove();
+        });
+      }
+    </script>
+  </body>
+
+</html>

+ 161 - 0
web/UM-admin/admin-role.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+  
+  <head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  
+  <body>
+    <div class="x-nav">
+      <span class="layui-breadcrumb">
+        <a href="">首页</a>
+        <a href="">演示</a>
+        <a>
+          <cite>导航元素</cite></a>
+      </span>
+      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
+        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
+    </div>
+    <div class="x-body">
+      <div class="layui-row">
+        <form class="layui-form layui-col-md12 x-so">
+          <input class="layui-input" placeholder="开始日" name="start" id="start">
+          <input class="layui-input" placeholder="截止日" name="end" id="end">
+          <input type="text" name="username"  placeholder="请输入用户名" autocomplete="off" class="layui-input">
+          <button class="layui-btn"  lay-submit="" lay-filter="sreach"><i class="layui-icon">&#xe615;</i></button>
+        </form>
+      </div>
+      <xblock>
+        <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
+        <button class="layui-btn" onclick="x_admin_show('添加用户','./role-add.html')"><i class="layui-icon"></i>添加</button>
+        <span class="x-right" style="line-height:40px">共有数据:88 条</span>
+      </xblock>
+      <table class="layui-table">
+        <thead>
+          <tr>
+            <th>
+              <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
+            </th>
+            <th>ID</th>
+            <th>角色名</th>
+            <th>拥有权限规则</th>
+            <th>描述</th>
+            <th>状态</th>
+            <th>操作</th>
+        </thead>
+        <tbody>
+          <tr>
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>1</td>
+            <td>超级管理员</td>
+            <td>会员列表,问题列表</td>
+            <td>具有至高无上的权利</td>
+            <td class="td-status">
+              <span class="layui-btn layui-btn-normal layui-btn-mini">已启用</span></td>
+            <td class="td-manage">
+              <a onclick="member_stop(this,'10001')" href="javascript:;"  title="启用">
+                <i class="layui-icon">&#xe601;</i>
+              </a>
+              <a title="编辑"  onclick="x_admin_show('编辑','role-add.html')" href="javascript:;">
+                <i class="layui-icon">&#xe642;</i>
+              </a>
+              <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
+                <i class="layui-icon">&#xe640;</i>
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <div class="page">
+        <div>
+          <a class="prev" href="">&lt;&lt;</a>
+          <a class="num" href="">1</a>
+          <span class="current">2</span>
+          <a class="num" href="">3</a>
+          <a class="num" href="">489</a>
+          <a class="next" href="">&gt;&gt;</a>
+        </div>
+      </div>
+
+    </div>
+    <script>
+      layui.use('laydate', function(){
+        var laydate = layui.laydate;
+        
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#start' //指定元素
+        });
+
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#end' //指定元素
+        });
+      });
+
+       /*用户-停用*/
+      function member_stop(obj,id){
+          layer.confirm('确认要停用吗?',function(index){
+
+              if($(obj).attr('title')=='启用'){
+
+                //发异步把用户状态进行更改
+                $(obj).attr('title','停用')
+                $(obj).find('i').html('&#xe62f;');
+
+                $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
+                layer.msg('已停用!',{icon: 5,time:1000});
+
+              }else{
+                $(obj).attr('title','启用')
+                $(obj).find('i').html('&#xe601;');
+
+                $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
+                layer.msg('已启用!',{icon: 5,time:1000});
+              }
+              
+          });
+      }
+
+      /*用户-删除*/
+      function member_del(obj,id){
+          layer.confirm('确认要删除吗?',function(index){
+              //发异步删除数据
+              $(obj).parents("tr").remove();
+              layer.msg('已删除!',{icon:1,time:1000});
+          });
+      }
+
+
+
+      function delAll (argument) {
+
+        var data = tableCheck.getData();
+  
+        layer.confirm('确认要删除吗?'+data,function(index){
+            //捉到所有被选中的,发异步进行删除
+            layer.msg('删除成功', {icon: 1});
+            $(".layui-form-checked").not('.header').parents('tr').remove();
+        });
+      }
+    </script>
+  </body>
+
+</html>

+ 178 - 0
web/UM-admin/admin-rule.html

@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<html>
+  
+  <head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  
+  <body>
+    <div class="x-nav">
+      <span class="layui-breadcrumb">
+        <a href="">首页</a>
+        <a href="">演示</a>
+        <a>
+          <cite>导航元素88</cite></a>
+      </span>
+      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
+        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
+    </div>
+    <div class="x-body">
+      <div class="layui-row">
+        <form class="layui-form layui-col-md12 x-so layui-form-pane">
+          <div class="layui-input-inline">
+            <select name="cateid">
+              <option>规则分类</option>
+              <option>文章</option>
+              <option>会员</option>
+              <option>权限</option>
+            </select>
+          </div>
+          <div class="layui-input-inline">
+            <select name="contrller">
+              <option>请控制器</option>
+              <option>Index</option>
+              <option>Goods</option>
+              <option>Cate</option>
+            </select>
+          </div>
+          <div class="layui-input-inline">
+            <select name="action">
+              <option>请方法</option>
+              <option>add</option>
+              <option>login</option>
+              <option>checklogin</option>
+            </select>
+          </div>
+          <input class="layui-input" placeholder="权限名" name="cate_name" >
+          <button class="layui-btn"  lay-submit="" lay-filter="sreach"><i class="layui-icon"></i>增加</button>
+        </form>
+      </div>
+      <xblock>
+        <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
+        <span class="x-right" style="line-height:40px">共有数据:88 条</span>
+      </xblock>
+      <table class="layui-table">
+        <thead>
+          <tr>
+            <th>
+              <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
+            </th>
+            <th>ID</th>
+            <th>权限规则</th>
+            <th>权限名称</th>
+            <th>所属分类</th>
+            <th>操作</th>
+        </thead>
+        <tbody>
+          <tr>
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>1</td>
+            <td>admin/user/userlist</td>
+            <td>会员列表</td>
+            <td>会员相关</td>
+            <td class="td-manage">
+              <a title="编辑"  onclick="x_admin_show('编辑','xxx.html')" href="javascript:;">
+                <i class="layui-icon">&#xe642;</i>
+              </a>
+              <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
+                <i class="layui-icon">&#xe640;</i>
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <div class="page">
+        <div>
+          <a class="prev" href="">&lt;&lt;</a>
+          <a class="num" href="">1</a>
+          <span class="current">2</span>
+          <a class="num" href="">3</a>
+          <a class="num" href="">489</a>
+          <a class="next" href="">&gt;&gt;</a>
+        </div>
+      </div>
+
+    </div>
+    <script>
+      layui.use('laydate', function(){
+        var laydate = layui.laydate;
+
+        
+        
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#start' //指定元素
+        });
+
+        //执行一个laydate实例
+        laydate.render({
+          elem: '#end' //指定元素
+        });
+      });
+
+       /*用户-停用*/
+      function member_stop(obj,id){
+          layer.confirm('确认要停用吗?',function(index){
+
+              if($(obj).attr('title')=='启用'){
+
+                //发异步把用户状态进行更改
+                $(obj).attr('title','停用')
+                $(obj).find('i').html('&#xe62f;');
+
+                $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
+                layer.msg('已停用!',{icon: 5,time:1000});
+
+              }else{
+                $(obj).attr('title','启用')
+                $(obj).find('i').html('&#xe601;');
+
+                $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
+                layer.msg('已启用!',{icon: 5,time:1000});
+              }
+              
+          });
+      }
+
+      /*用户-删除*/
+      function member_del(obj,id){
+          layer.confirm('确认要删除吗?',function(index){
+              //发异步删除数据
+              $(obj).parents("tr").remove();
+              layer.msg('已删除!',{icon:1,time:1000});
+          });
+      }
+
+
+
+      function delAll (argument) {
+
+        var data = tableCheck.getData();
+  
+        layer.confirm('确认要删除吗?'+data,function(index){
+            //捉到所有被选中的,发异步进行删除
+            layer.msg('删除成功', {icon: 1});
+            $(".layui-form-checked").not('.header').parents('tr').remove();
+        });
+      }
+    </script>
+  </body>
+
+</html>

+ 231 - 0
web/UM-admin/cate.html

@@ -0,0 +1,231 @@
+<!DOCTYPE html>
+<html>
+  
+  <head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  
+  <body>
+    <div class="x-nav">
+      <span class="layui-breadcrumb">
+        <a href="">首页</a>
+        <a href="">演示</a>
+        <a>
+          <cite>导航元素</cite></a>
+      </span>
+      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
+        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
+    </div>
+    <div class="x-body">
+      <div class="layui-row">
+        <form class="layui-form layui-col-md12 x-so layui-form-pane">
+          <input class="layui-input" placeholder="分类名" name="cate_name">
+          <button class="layui-btn"  lay-submit="" lay-filter="sreach"><i class="layui-icon"></i>增加</button>
+        </form>
+      </div>
+      <blockquote class="layui-elem-quote">每个tr 上有两个属性 cate-id='1' 当前分类id fid='0' 父级id ,顶级分类为 0,有子分类的前面加收缩图标<i class="layui-icon x-show" status='true'>&#xe623;</i></blockquote>
+      <xblock>
+        <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
+        <span class="x-right" style="line-height:40px">共有数据:88 条</span>
+      </xblock>
+      <table class="layui-table layui-form">
+        <thead>
+          <tr>
+            <th width="20">
+              <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
+            </th>
+            <th width="70">ID</th>
+            <th>栏目名</th>
+            <th width="50">排序</th>
+            <th width="50">状态</th>
+            <th width="220">操作</th>
+        </thead>
+        <tbody class="x-cate">
+          <tr cate-id='1' fid='0' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>1</td>
+            <td>
+              <i class="layui-icon x-show" status='true'>&#xe623;</i>
+              产品管理
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+          <tr cate-id='2' fid='1' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>2</td>
+            <td>
+              &nbsp;&nbsp;&nbsp;&nbsp;
+              <i class="layui-icon x-show" status='true'>&#xe623;</i>
+              产品列表
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+          <tr cate-id='3' fid='2' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>3</td>
+            <td>
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              ├产品列表
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+          <tr cate-id='4' fid='2' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>4</td>
+            <td>
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              ├产品列表
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+          <tr cate-id='5' fid='0' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>5</td>
+            <td>
+              
+              <i class="layui-icon x-show" status='true'>&#xe623;</i>新闻
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+          <tr cate-id='6' fid='5' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>6</td>
+            <td>
+              &nbsp;&nbsp;&nbsp;&nbsp;
+              ├国内新闻
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+          <tr cate-id='7' fid='5' >
+            <td>
+              <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;</i></div>
+            </td>
+            <td>7</td>
+            <td>
+              &nbsp;&nbsp;&nbsp;&nbsp;
+              ├国外新闻
+            </td>
+            <td><input type="text" class="layui-input x-sort" name="order" value="1"></td>
+            <td>
+              <input type="checkbox" name="switch"  lay-text="开启|停用"  checked="" lay-skin="switch">
+            </td>
+            <td class="td-manage">
+              <button class="layui-btn layui-btn layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>编辑</button>
+              <button class="layui-btn layui-btn-warm layui-btn-xs"  onclick="x_admin_show('编辑','admin-edit.html')" ><i class="layui-icon">&#xe642;</i>添加子栏目</button>
+              <button class="layui-btn-danger layui-btn layui-btn-xs"  onclick="member_del(this,'要删除的id')" href="javascript:;" ><i class="layui-icon">&#xe640;</i>删除</button>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <style type="text/css">
+      
+    </style>
+    <script>
+      layui.use(['form'], function(){
+        form = layui.form;
+        
+      });
+
+      
+
+      /*用户-删除*/
+      function member_del(obj,id){
+          layer.confirm('确认要删除吗?',function(index){
+              //发异步删除数据
+              $(obj).parents("tr").remove();
+              layer.msg('已删除!',{icon:1,time:1000});
+          });
+      }
+
+
+
+      function delAll (argument) {
+
+        var data = tableCheck.getData();
+  
+        layer.confirm('确认要删除吗?'+data,function(index){
+            //捉到所有被选中的,发异步进行删除
+            layer.msg('删除成功', {icon: 1});
+            $(".layui-form-checked").not('.header').parents('tr').remove();
+        });
+      }
+    </script>
+  </body>
+
+</html>

+ 81 - 0
web/UM-admin/city.html

@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  
+  <head>
+    <meta charset="UTF-8">
+    <title>欢迎页面</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
+    <!--[if lt IE 9]>
+      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  
+  <body>
+    <div class="x-nav">
+      <span class="layui-breadcrumb">
+        <a href="">首页</a>
+        <a href="">演示</a>
+        <a>
+          <cite>导航元素</cite></a>
+      </span>
+      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
+        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
+    </div>
+    <div class="x-body">
+      <div class="layui-row">
+        <form class="layui-form layui-col-md12  layui-form-pane">
+           <div class="layui-form-item" id="x-city">
+            <label class="layui-form-label">城市联动</label>
+            <div class="layui-input-inline">
+              <select name="province" lay-filter="province">
+                <option value="">请选择省</option>
+              </select>
+            </div>
+            <div class="layui-input-inline">
+              <select name="city" lay-filter="city">
+                <option value="">请选择市</option>
+              </select>
+            </div>
+            <div class="layui-input-inline">
+              <select name="area" lay-filter="area">
+                <option value="">请选择县/区</option>
+              </select>
+            </div>
+          </div>
+        </form>
+      </div>
+      <blockquote class="layui-elem-quote"> </blockquote>
+      <pre class="layui-code" lay-title="JavaScript" lay-skin="notepad">
+          //xcity城市插件 基于于jquery与layui form 模块,使用之前先确认这两者是否引入 
+          //插件文件为 city.js,引入
+          select lay-filter 属性值 为必须 "province/city/area"
+          //初始化
+          $('#x-city').xcity();
+          //传默认值 
+          $('#x-city').xcity('广东','广州市','东山区');
+      </pre>
+    </div>
+    <script type="text/javascript" src="js/city.js"></script>
+    <script>
+      layui.use(['form','code'], function(){
+        form = layui.form;
+
+        layui.code();
+
+        $('#x-city').xcity('广东','广州市','东山区');
+
+      });
+    </script>
+  </body>
+
+</html>

+ 16 - 0
web/UM-admin/css/font.css

@@ -0,0 +1,16 @@
+@font-face {
+  font-family: 'iconfont';
+  src: url('../fonts/iconfont.eot');
+  src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'),
+  url('../fonts/iconfont.woff') format('woff'),
+  url('../fonts/iconfont.ttf') format('truetype'),
+  url('../fonts/iconfont.svg#iconfont') format('svg');
+}
+.iconfont{
+  font-family:"iconfont" !important;
+  font-size:16px;font-style:normal;
+  -webkit-font-smoothing: antialiased;
+  -webkit-text-stroke-width: 0.2px;
+  -moz-osx-font-smoothing: grayscale;
+}
+

+ 523 - 0
web/UM-admin/css/xadmin.css

@@ -0,0 +1,523 @@
+@charset "utf-8";
+@import url(../lib/layui/css/layui.css);
+*{
+    margin: 0px;
+    padding: 0px;
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+a{
+    text-decoration: none;
+}
+html{
+    width: 100%;
+    height: 100%;
+    overflow-x:hidden; 
+    overflow-y:auto;
+}
+body{
+    width: 100%;
+    min-height: 100%;
+}
+.login-bg{
+    /*background: #eeeeee url() 0 0 no-repeat;*/
+     background:url(../images/bg.png) no-repeat center;
+    background-size: cover;
+    overflow: hidden;
+}
+.login{
+    margin: 120px auto 0 auto;
+    min-height: 420px;
+    max-width: 420px;
+    padding: 40px;
+    background-color: #ffffff;
+    margin-left: auto;
+    margin-right: auto;
+    border-radius: 4px;
+    /* overflow-x: hidden; */
+    box-sizing: border-box;
+}
+.login a.logo{
+    display: block;
+    height: 58px;
+    width: 167px;
+    margin: 0 auto 30px auto;
+    background-size: 167px 42px;
+}
+.login .message {
+    margin: 10px 0 0 -58px;
+    padding: 18px 10px 18px 60px;
+    background: #189F92;
+    position: relative;
+    color: #fff;
+    font-size: 16px;
+}
+.login #darkbannerwrap {
+    background: url(../images/aiwrap.png);
+    width: 18px;
+    height: 10px;
+    margin: 0 0 20px -58px;
+    position: relative;
+}
+
+.login input[type=text],
+.login input[type=file],
+.login input[type=password],
+.login input[type=email], select {
+    border: 1px solid #DCDEE0;
+    vertical-align: middle;
+    border-radius: 3px;
+    height: 50px;
+    padding: 0px 16px;
+    font-size: 14px;
+    color: #555555;
+    outline:none;
+    width:100%;
+    box-sizing: border-box;
+}
+.login input[type=text]:focus,
+.login input[type=file]:focus,
+.login input[type=password]:focus,
+.login input[type=email]:focus, select:focus {
+    border: 1px solid #27A9E3;
+}
+.login input[type=submit],
+.login input[type=button]{
+    display: inline-block;
+    vertical-align: middle;
+    padding: 12px 24px;
+    margin: 0px;
+    font-size: 18px;
+    line-height: 24px;
+    text-align: center;
+    white-space: nowrap;
+    vertical-align: middle;
+    cursor: pointer;
+    color: #ffffff;
+    background-color: #189F92;
+    border-radius: 3px;
+    border: none;
+    -webkit-appearance: none;
+    outline:none;
+    width:100%;
+}
+.login hr {
+    background: #fff url() 0 0 no-repeat;
+}
+.login hr.hr15 {
+    height: 15px;
+    border: none;
+    margin: 0px;
+    padding: 0px;
+    width: 100%;
+}
+.login hr.hr20 {
+    height: 20px;
+    border: none;
+    margin: 0px;
+    padding: 0px;
+    width: 100%;
+}
+.x-body{
+    padding: 20px;
+}
+.x-nav{
+    padding: 0 20px;
+    position: relative;
+    z-index: 99;
+    border-bottom: 1px solid #e5e5e5;
+    line-height: 39px;
+    height: 39px;
+    overflow: hidden;
+}
+xblock{
+    display: block;
+    margin-bottom: 10px;
+    padding: 5px;
+    line-height: 22px;
+    /* border-left: 5px solid #009688; */
+    border-radius: 0 2px 2px 0;
+    background-color: #f2f2f2;
+}
+.x-right{
+  float: right;
+}
+.x-so{
+    /*text-align: center;*/
+    /*background: #f2f2f2 url() 0 0 no-repeat;*/
+    margin-bottom: 20px;
+}
+.x-so input.layui-input{
+    width: 150px;
+}
+.x-so .layui-form-label{
+    display: inline-block;
+}
+.x-so input.layui-input,.x-so input.layui-btn{
+    display: inline-block;
+}
+.x-red{
+    color: red;
+}
+.x-a{
+    color: #1AA093;
+}
+.x-a:hover{
+    color: #127F74;
+}
+.x-sort{
+    height: 30px;
+}
+.x-show{
+    cursor: pointer;
+}
+.layui-form-switch{
+    margin-top: 0px;
+}
+.layui-input:focus, .layui-textarea:focus {
+    border-color: #189f92!important;
+}
+
+.page{
+    margin-top: 20px;
+    text-align: center;
+
+}
+.page a{
+    display: inline-block;
+    background: #fff url() 0 0 no-repeat;
+    color: #888;
+    padding: 10px;
+    min-width: 15px;
+    border: 1px solid #E2E2E2;
+
+}
+.page span{
+    display: inline-block;
+    padding: 10px;
+    min-width: 15px;
+    border: 1px solid #E2E2E2;
+}
+.page span.current{
+    display: inline-block;
+    background: #009688 url() 0 0 no-repeat;
+    color: #fff;
+    padding: 10px;
+    min-width: 15px;
+    border: 1px solid #009688;
+}
+.page .pagination li{
+    display: inline-block;
+    margin-right: 5px;
+    text-align: center;
+}
+.page .pagination li.active span{
+    background: #009688 url() 0 0 no-repeat;
+    color: #fff;
+    border: 1px solid #009688;
+
+}
+
+/*登录样式*/
+/*头部*/
+.container{
+    width: 100%;
+    height: 45px;
+    background-color: #222;
+    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+}
+.container .logo a{
+    float: left;
+    color: #fff;
+    font-size: 18px;
+    padding-left: 20px;
+    line-height: 45px;
+    width: 200px;
+}
+.container .right{
+    background-color:rgba(0,0,0,0);
+    float: right;
+
+}
+.container .left_open{
+    height: 45px;
+    float: left;
+}
+.container .left_open i{
+    display: block;
+    background: rgba(255,255,255,0.1) url() 0 0 no-repeat;
+    color: #fff;
+    width: 32px;
+    height: 32px;
+    line-height: 32px;
+    border-radius: 3px;
+    text-align: center;
+    margin-top: 7px;
+    cursor: pointer;
+}
+.container .left_open i:hover{
+    background: rgba(255,255,255,0.3) url() 0 0 no-repeat;
+}
+
+.container .left{
+    background-color:rgba(0,0,0,0);
+    float: left;
+
+}
+.container .layui-nav-item{
+    line-height: 45px;
+}
+.container .layui-nav-more{
+    top: 20px;
+}
+.container .layui-nav-child{
+    top: 50px;
+}
+.container .layui-nav-child i{
+    margin-right: 10px;
+}
+.layui-nav .layui-nav-item a{
+    color: #fff;
+    cursor: pointer;
+}
+.layui-nav .layui-nav-child a{
+    color: #333;
+    cursor: pointer;
+}
+.left-nav{
+    position: absolute;
+    top: 46px;
+    bottom: 42px;
+    left: 0;
+    z-index: 2;
+    padding-top: 10px;
+    background-color: #EEEEEE;
+    width: 220px;
+    max-width: 220px;
+    overflow: auto;
+    overflow-x:hidden;
+    border-right: 1px solid #e5e5e5;
+
+    /*width: 0px;*/
+}
+.left-nav #nav li{
+    border-bottom: 1px solid #e5e5e5;
+}
+.left-nav #nav li:hover > a{
+    /*color: blue;*/
+}
+.left-nav #nav .current{
+    background-color: rgba(0, 0, 0, 0.3);
+}
+.left-nav #nav li a{
+    font-size: 14px;
+    padding: 10px 15px 10px 20px;
+    display: block;
+    cursor: pointer;
+}
+.left-nav #nav li a cite{
+    font-size: 14px;
+}
+
+.left-nav #nav li .sub-menu{
+    display: none;
+}
+.left-nav #nav li .opened{
+    display: block;
+}
+.left-nav #nav li .opened:hover{
+    /*background: #fff url() 0 0 no-repeat;*/
+}
+.left-nav #nav li .opened .current{
+    
+}
+.left-nav #nav li .sub-menu li:hover{
+    /*color: blue;*/
+     /*background: #fff url() 0 0 no-repeat;*/
+}
+.left-nav #nav li .sub-menu li a{
+    padding: 12px 15px 12px 30px;
+    font-size: 14px;
+    cursor: pointer;
+}
+.left-nav #nav li .sub-menu li .sub-menu li a{
+    padding-left: 45px;
+}
+.left-nav #nav li .sub-menu li a:hover{
+    color: #148cf1;
+}
+.left-nav #nav li .sub-menu li a i{
+    font-size: 12px;
+}
+.left-nav #nav li a i{
+    padding-right: 10px;
+    line-height: 14px;
+}
+.left-nav #nav li .nav_right{
+    float: right;
+    font-size: 16px;
+}
+.x-slide_left {
+    width: 17px;
+    height: 61px;
+    background: url(../images/icon.png) 0 0 no-repeat;
+    position: absolute;
+    top: 200px;
+    left: 221px;
+    cursor: pointer;
+    z-index: 3;
+}
+.page-content{
+    position: absolute;
+    top: 46px;
+    right: 0;
+    bottom: 42px;
+    left: 221px;
+    overflow: hidden;
+    z-index: 1;
+}
+.page-content-bg{
+    position: absolute;
+    top: 46px;
+    right: 0;
+    bottom: 42px;
+    left: 221px;
+    background: rgba(0,0,0,0.5); url() 0 0 no-repeat;
+    overflow: hidden;
+    z-index: 100;
+    display: none;
+}
+
+.page-content .tab{
+    height: 100%;
+    width: 100%;
+    background: #EFEEF0 url() 0 0 no-repeat;
+    margin: 0px;
+}
+.page-content .layui-tab-title{
+    /*padding-top: 5px;*/
+    height: 35px;
+    background: #EFEEF0 url() 0 0 no-repeat;
+    position: relative;
+    z-index: 100;
+}
+.page-content .layui-tab-title li.home i{
+    padding-right: 5px;
+}
+.page-content .layui-tab-title li.home .layui-tab-close{
+    display: none;
+}
+.page-content .layui-tab-title li{
+    line-height: 35px;
+}
+.page-content .layui-tab-title .layui-this:after{
+    height: 36px;
+}
+.page-content .layui-tab-title li .layui-tab-close{
+    border-radius: 50%;
+}
+.page-content .layui-tab-title .layui-this{
+    background: #fff url() 0 0 no-repeat;
+}
+.page-content .layui-tab-bar{
+    height:34px;
+    line-height: 35px;
+}
+.page-content .layui-tab-content{
+    position: absolute;
+    top: 36px;
+    bottom: 0px;
+    width: 100%;
+    background: #fff url() 0 0 no-repeat;
+    padding: 0px;
+    overflow: hidden;
+}
+.page-content .layui-tab-content .layui-tab-item{
+    width: 100%;
+    height: 100%;
+    
+}
+.page-content .layui-tab-content .layui-tab-item iframe{
+    width: 100%;
+    height: 100%;
+
+}
+.x-admin-carousel,.layui-carousel,.x-admin-carousel>[carousel-item]>* {
+    background-color:#fff
+}
+
+.x-admin-backlog .x-admin-backlog-body {
+    display:block;
+    padding:10px 15px;
+    background-color:#f8f8f8;
+    color:#999;
+    border-radius:2px;
+    transition:all .3s;
+    -webkit-transition:all .3s
+}
+.x-admin-backlog-body h3 {
+    padding-bottom:10px;
+    font-size:12px
+}
+.x-admin-backlog-body p cite {
+    font-style:normal;
+    font-size:30px;
+    font-weight:300;
+    color:#009688
+}
+.x-admin-backlog-body:hover {
+    background-color:#CFCFCF;
+    color:#888
+}
+
+.welcome-footer{padding: 30px 0; line-height: 30px; text-align: center; background-color: #eee; color: #666; font-weight: 300;}
+body .layui-layout-admin .footer-demo{height: auto; padding: 15px 0; line-height: 26px;}
+.welcome-footer a{padding: 0 5px;}
+
+table th, table td {
+    word-break: break-all;
+}
+
+.footer{
+    position: fixed;
+    bottom: 0px;
+    width: 100%;
+    background-color: #222;
+    border-top: 1px solid rgba(255, 255, 255, 0.2);
+    line-height: 41px;
+    color: #fff;
+    /*padding-left: 10px;*/
+}
+.footer .copyright{
+    margin-left: 10px;
+}
+
+
+@media screen and (max-width: 768px){
+    .fast-add{
+        display: none;
+    }
+    .layui-nav .to-index{
+        display: none;
+    }
+    .container .logo a{
+        width: 140px;
+    }
+    .container .left_open {
+        /*float: right;*/
+    }
+    .left-nav{
+        left: -221px;
+    }
+    .page-content{
+        left: 0px;
+    }
+    .page-content .layui-tab-content .layui-tab-item{
+        -webkit-overflow-scrolling: touch; 
+        overflow-y: scroll; 
+    }
+    .x-so input.layui-input{
+        width: 100%;
+        margin: 10px;
+    }
+}
+

+ 100 - 0
web/UM-admin/echarts1.html

@@ -0,0 +1,100 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        var option = {
+            title: {
+                text: '折线图堆叠'
+            },
+            tooltip: {
+                trigger: 'axis'
+            },
+            legend: {
+                data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
+            },
+            grid: {
+                left: '3%',
+                right: '4%',
+                bottom: '3%',
+                containLabel: true
+            },
+            toolbox: {
+                feature: {
+                    saveAsImage: {}
+                }
+            },
+            xAxis: {
+                type: 'category',
+                boundaryGap: false,
+                data: ['周一','周二','周三','周四','周五','周六','周日']
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    name:'邮件营销',
+                    type:'line',
+                    stack: '总量',
+                    data:[120, 132, 101, 134, 90, 230, 210]
+                },
+                {
+                    name:'联盟广告',
+                    type:'line',
+                    stack: '总量',
+                    data:[220, 182, 191, 234, 290, 330, 310]
+                },
+                {
+                    name:'视频广告',
+                    type:'line',
+                    stack: '总量',
+                    data:[150, 232, 201, 154, 190, 330, 410]
+                },
+                {
+                    name:'直接访问',
+                    type:'line',
+                    stack: '总量',
+                    data:[320, 332, 301, 334, 390, 330, 320]
+                },
+                {
+                    name:'搜索引擎',
+                    type:'line',
+                    stack: '总量',
+                    data:[820, 932, 901, 934, 1290, 1330, 1320]
+                }
+            ]
+        };
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 98 - 0
web/UM-admin/echarts2.html

@@ -0,0 +1,98 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        var labelRight = {
+            normal: {
+                position: 'right'
+            }
+        };
+        option = {
+            title: {
+                text: '交错正负轴标签',
+                subtext: 'From ExcelHome',
+                sublink: 'http://e.weibo.com/1341556070/AjwF2AgQm'
+            },
+            tooltip : {
+                trigger: 'axis',
+                axisPointer : {            // 坐标轴指示器,坐标轴触发有效
+                    type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                }
+            },
+            grid: {
+                top: 80,
+                bottom: 30
+            },
+            xAxis: {
+                type : 'value',
+                position: 'top',
+                splitLine: {lineStyle:{type:'dashed'}},
+            },
+            yAxis: {
+                type : 'category',
+                axisLine: {show: false},
+                axisLabel: {show: false},
+                axisTick: {show: false},
+                splitLine: {show: false},
+                data : ['ten', 'nine', 'eight', 'seven', 'six', 'five', 'four', 'three', 'two', 'one']
+            },
+            series : [
+                {
+                    name:'生活费',
+                    type:'bar',
+                    stack: '总量',
+                    label: {
+                        normal: {
+                            show: true,
+                            formatter: '{b}'
+                        }
+                    },
+                    data:[
+                        {value: -0.07, label: labelRight},
+                        {value: -0.09, label: labelRight},
+                        0.2, 0.44,
+                        {value: -0.23, label: labelRight},
+                        0.08,
+                        {value: -0.17, label: labelRight},
+                        0.47,
+                        {value: -0.36, label: labelRight},
+                        0.18
+                    ]
+                }
+            ]
+        };
+
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 341 - 0
web/UM-admin/echarts3.html

@@ -0,0 +1,341 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/extension/bmap.min.js" type="text/javascript"></script>
+        <script src="http://echarts.baidu.com/asset/map/js/china.js"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+        myChart.setOption({
+            series: [{
+                type: 'map',
+                map: 'china'
+            }]
+        });
+
+        // 指定图表的配置项和数据
+        var geoCoordMap = {
+            '上海': [121.4648,31.2891],
+            '东莞': [113.8953,22.901],
+            '东营': [118.7073,37.5513],
+            '中山': [113.4229,22.478],
+            '临汾': [111.4783,36.1615],
+            '临沂': [118.3118,35.2936],
+            '丹东': [124.541,40.4242],
+            '丽水': [119.5642,28.1854],
+            '乌鲁木齐': [87.9236,43.5883],
+            '佛山': [112.8955,23.1097],
+            '保定': [115.0488,39.0948],
+            '兰州': [103.5901,36.3043],
+            '包头': [110.3467,41.4899],
+            '北京': [116.4551,40.2539],
+            '北海': [109.314,21.6211],
+            '南京': [118.8062,31.9208],
+            '南宁': [108.479,23.1152],
+            '南昌': [116.0046,28.6633],
+            '南通': [121.1023,32.1625],
+            '厦门': [118.1689,24.6478],
+            '台州': [121.1353,28.6688],
+            '合肥': [117.29,32.0581],
+            '呼和浩特': [111.4124,40.4901],
+            '咸阳': [108.4131,34.8706],
+            '哈尔滨': [127.9688,45.368],
+            '唐山': [118.4766,39.6826],
+            '嘉兴': [120.9155,30.6354],
+            '大同': [113.7854,39.8035],
+            '大连': [122.2229,39.4409],
+            '天津': [117.4219,39.4189],
+            '太原': [112.3352,37.9413],
+            '威海': [121.9482,37.1393],
+            '宁波': [121.5967,29.6466],
+            '宝鸡': [107.1826,34.3433],
+            '宿迁': [118.5535,33.7775],
+            '常州': [119.4543,31.5582],
+            '广州': [113.5107,23.2196],
+            '廊坊': [116.521,39.0509],
+            '延安': [109.1052,36.4252],
+            '张家口': [115.1477,40.8527],
+            '徐州': [117.5208,34.3268],
+            '德州': [116.6858,37.2107],
+            '惠州': [114.6204,23.1647],
+            '成都': [103.9526,30.7617],
+            '扬州': [119.4653,32.8162],
+            '承德': [117.5757,41.4075],
+            '拉萨': [91.1865,30.1465],
+            '无锡': [120.3442,31.5527],
+            '日照': [119.2786,35.5023],
+            '昆明': [102.9199,25.4663],
+            '杭州': [119.5313,29.8773],
+            '枣庄': [117.323,34.8926],
+            '柳州': [109.3799,24.9774],
+            '株洲': [113.5327,27.0319],
+            '武汉': [114.3896,30.6628],
+            '汕头': [117.1692,23.3405],
+            '江门': [112.6318,22.1484],
+            '沈阳': [123.1238,42.1216],
+            '沧州': [116.8286,38.2104],
+            '河源': [114.917,23.9722],
+            '泉州': [118.3228,25.1147],
+            '泰安': [117.0264,36.0516],
+            '泰州': [120.0586,32.5525],
+            '济南': [117.1582,36.8701],
+            '济宁': [116.8286,35.3375],
+            '海口': [110.3893,19.8516],
+            '淄博': [118.0371,36.6064],
+            '淮安': [118.927,33.4039],
+            '深圳': [114.5435,22.5439],
+            '清远': [112.9175,24.3292],
+            '温州': [120.498,27.8119],
+            '渭南': [109.7864,35.0299],
+            '湖州': [119.8608,30.7782],
+            '湘潭': [112.5439,27.7075],
+            '滨州': [117.8174,37.4963],
+            '潍坊': [119.0918,36.524],
+            '烟台': [120.7397,37.5128],
+            '玉溪': [101.9312,23.8898],
+            '珠海': [113.7305,22.1155],
+            '盐城': [120.2234,33.5577],
+            '盘锦': [121.9482,41.0449],
+            '石家庄': [114.4995,38.1006],
+            '福州': [119.4543,25.9222],
+            '秦皇岛': [119.2126,40.0232],
+            '绍兴': [120.564,29.7565],
+            '聊城': [115.9167,36.4032],
+            '肇庆': [112.1265,23.5822],
+            '舟山': [122.2559,30.2234],
+            '苏州': [120.6519,31.3989],
+            '莱芜': [117.6526,36.2714],
+            '菏泽': [115.6201,35.2057],
+            '营口': [122.4316,40.4297],
+            '葫芦岛': [120.1575,40.578],
+            '衡水': [115.8838,37.7161],
+            '衢州': [118.6853,28.8666],
+            '西宁': [101.4038,36.8207],
+            '西安': [109.1162,34.2004],
+            '贵阳': [106.6992,26.7682],
+            '连云港': [119.1248,34.552],
+            '邢台': [114.8071,37.2821],
+            '邯郸': [114.4775,36.535],
+            '郑州': [113.4668,34.6234],
+            '鄂尔多斯': [108.9734,39.2487],
+            '重庆': [107.7539,30.1904],
+            '金华': [120.0037,29.1028],
+            '铜川': [109.0393,35.1947],
+            '银川': [106.3586,38.1775],
+            '镇江': [119.4763,31.9702],
+            '长春': [125.8154,44.2584],
+            '长沙': [113.0823,28.2568],
+            '长治': [112.8625,36.4746],
+            '阳泉': [113.4778,38.0951],
+            '青岛': [120.4651,36.3373],
+            '韶关': [113.7964,24.7028]
+        };
+
+        var BJData = [
+            [{name:'北京'}, {name:'上海',value:95}],
+            [{name:'北京'}, {name:'广州',value:90}],
+            [{name:'北京'}, {name:'大连',value:80}],
+            [{name:'北京'}, {name:'南宁',value:70}],
+            [{name:'北京'}, {name:'南昌',value:60}],
+            [{name:'北京'}, {name:'拉萨',value:50}],
+            [{name:'北京'}, {name:'长春',value:40}],
+            [{name:'北京'}, {name:'包头',value:30}],
+            [{name:'北京'}, {name:'重庆',value:20}],
+            [{name:'北京'}, {name:'常州',value:10}]
+        ];
+
+        var SHData = [
+            [{name:'上海'},{name:'包头',value:95}],
+            [{name:'上海'},{name:'昆明',value:90}],
+            [{name:'上海'},{name:'广州',value:80}],
+            [{name:'上海'},{name:'郑州',value:70}],
+            [{name:'上海'},{name:'长春',value:60}],
+            [{name:'上海'},{name:'重庆',value:50}],
+            [{name:'上海'},{name:'长沙',value:40}],
+            [{name:'上海'},{name:'北京',value:30}],
+            [{name:'上海'},{name:'丹东',value:20}],
+            [{name:'上海'},{name:'大连',value:10}]
+        ];
+
+        var GZData = [
+            [{name:'广州'},{name:'福州',value:95}],
+            [{name:'广州'},{name:'太原',value:90}],
+            [{name:'广州'},{name:'长春',value:80}],
+            [{name:'广州'},{name:'重庆',value:70}],
+            [{name:'广州'},{name:'西安',value:60}],
+            [{name:'广州'},{name:'成都',value:50}],
+            [{name:'广州'},{name:'常州',value:40}],
+            [{name:'广州'},{name:'北京',value:30}],
+            [{name:'广州'},{name:'北海',value:20}],
+            [{name:'广州'},{name:'海口',value:10}]
+        ];
+
+        var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
+
+        var convertData = function (data) {
+            var res = [];
+            for (var i = 0; i < data.length; i++) {
+                var dataItem = data[i];
+                var fromCoord = geoCoordMap[dataItem[0].name];
+                var toCoord = geoCoordMap[dataItem[1].name];
+                if (fromCoord && toCoord) {
+                    res.push({
+                        fromName: dataItem[0].name,
+                        toName: dataItem[1].name,
+                        coords: [fromCoord, toCoord]
+                    });
+                }
+            }
+            return res;
+        };
+
+        var color = ['#a6c84c', '#ffa022', '#46bee9'];
+        var series = [];
+        [['北京', BJData], ['上海', SHData], ['广州', GZData]].forEach(function (item, i) {
+            series.push({
+                name: item[0] + ' Top10',
+                type: 'lines',
+                zlevel: 1,
+                effect: {
+                    show: true,
+                    period: 6,
+                    trailLength: 0.7,
+                    color: '#fff',
+                    symbolSize: 3
+                },
+                lineStyle: {
+                    normal: {
+                        color: color[i],
+                        width: 0,
+                        curveness: 0.2
+                    }
+                },
+                data: convertData(item[1])
+            },
+            {
+                name: item[0] + ' Top10',
+                type: 'lines',
+                zlevel: 2,
+                effect: {
+                    show: true,
+                    period: 6,
+                    trailLength: 0,
+                    symbol: planePath,
+                    symbolSize: 15
+                },
+                lineStyle: {
+                    normal: {
+                        color: color[i],
+                        width: 1,
+                        opacity: 0.4,
+                        curveness: 0.2
+                    }
+                },
+                data: convertData(item[1])
+            },
+            {
+                name: item[0] + ' Top10',
+                type: 'effectScatter',
+                coordinateSystem: 'geo',
+                zlevel: 2,
+                rippleEffect: {
+                    brushType: 'stroke'
+                },
+                label: {
+                    normal: {
+                        show: true,
+                        position: 'right',
+                        formatter: '{b}'
+                    }
+                },
+                symbolSize: function (val) {
+                    return val[2] / 8;
+                },
+                itemStyle: {
+                    normal: {
+                        color: color[i]
+                    }
+                },
+                data: item[1].map(function (dataItem) {
+                    return {
+                        name: dataItem[1].name,
+                        value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])
+                    };
+                })
+            });
+        });
+
+        option = {
+            backgroundColor: '#404a59',
+            title : {
+                text: '模拟迁徙',
+                subtext: '数据纯属虚构',
+                left: 'center',
+                textStyle : {
+                    color: '#fff'
+                }
+            },
+            tooltip : {
+                trigger: 'item'
+            },
+            legend: {
+                orient: 'vertical',
+                top: 'bottom',
+                left: 'right',
+                data:['北京 Top10', '上海 Top10', '广州 Top10'],
+                textStyle: {
+                    color: '#fff'
+                },
+                selectedMode: 'single'
+            },
+            geo: {
+                map: 'china',
+                label: {
+                    emphasis: {
+                        show: false
+                    }
+                },
+                roam: true,
+                itemStyle: {
+                    normal: {
+                        areaColor: '#323c48',
+                        borderColor: '#404a59'
+                    },
+                    emphasis: {
+                        areaColor: '#2a333d'
+                    }
+                }
+            },
+            series: series
+        };
+
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 106 - 0
web/UM-admin/echarts4.html

@@ -0,0 +1,106 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/extension/bmap.min.js" type="text/javascript"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        option = {
+            backgroundColor: '#2c343c',
+
+            title: {
+                text: 'Customized Pie',
+                left: 'center',
+                top: 20,
+                textStyle: {
+                    color: '#ccc'
+                }
+            },
+
+            tooltip : {
+                trigger: 'item',
+                formatter: "{a} <br/>{b} : {c} ({d}%)"
+            },
+
+            visualMap: {
+                show: false,
+                min: 80,
+                max: 600,
+                inRange: {
+                    colorLightness: [0, 1]
+                }
+            },
+            series : [
+                {
+                    name:'访问来源',
+                    type:'pie',
+                    radius : '55%',
+                    center: ['50%', '50%'],
+                    data:[
+                        {value:335, name:'直接访问'},
+                        {value:310, name:'邮件营销'},
+                        {value:274, name:'联盟广告'},
+                        {value:235, name:'视频广告'},
+                        {value:400, name:'搜索引擎'}
+                    ].sort(function (a, b) { return a.value - b.value}),
+                    roseType: 'angle',
+                    label: {
+                        normal: {
+                            textStyle: {
+                                color: 'rgba(255, 255, 255, 0.3)'
+                            }
+                        }
+                    },
+                    labelLine: {
+                        normal: {
+                            lineStyle: {
+                                color: 'rgba(255, 255, 255, 0.3)'
+                            },
+                            smooth: 0.2,
+                            length: 10,
+                            length2: 20
+                        }
+                    },
+                    itemStyle: {
+                        normal: {
+                            color: '#c23531',
+                            shadowBlur: 200,
+                            shadowColor: 'rgba(0, 0, 0, 0.5)'
+                        }
+                    }
+                }
+            ]
+        };
+
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 72 - 0
web/UM-admin/echarts5.html

@@ -0,0 +1,72 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        var option = {
+            title: {
+                text: '基础雷达图'
+            },
+            tooltip: {},
+            legend: {
+                data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)']
+            },
+            radar: {
+                // shape: 'circle',
+                indicator: [
+                   { name: '销售(sales)', max: 6500},
+                   { name: '管理(Administration)', max: 16000},
+                   { name: '信息技术(Information Techology)', max: 30000},
+                   { name: '客服(Customer Support)', max: 38000},
+                   { name: '研发(Development)', max: 52000},
+                   { name: '市场(Marketing)', max: 25000}
+                ]
+            },
+            series: [{
+                name: '预算 vs 开销(Budget vs spending)',
+                type: 'radar',
+                // areaStyle: {normal: {}},
+                data : [
+                    {
+                        value : [4300, 10000, 28000, 35000, 50000, 19000],
+                        name : '预算分配(Allocated Budget)'
+                    },
+                     {
+                        value : [5000, 14000, 28000, 31000, 42000, 21000],
+                        name : '实际开销(Actual Spending)'
+                    }
+                ]
+            }]
+        };
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 335 - 0
web/UM-admin/echarts6.html

@@ -0,0 +1,335 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        // 数据意义:开盘(open),收盘(close),最低(lowest),最高(highest)
+        var data0 = splitData([
+            ['2013/1/24', 2320.26,2320.26,2287.3,2362.94],
+            ['2013/1/25', 2300,2291.3,2288.26,2308.38],
+            ['2013/1/28', 2295.35,2346.5,2295.35,2346.92],
+            ['2013/1/29', 2347.22,2358.98,2337.35,2363.8],
+            ['2013/1/30', 2360.75,2382.48,2347.89,2383.76],
+            ['2013/1/31', 2383.43,2385.42,2371.23,2391.82],
+            ['2013/2/1', 2377.41,2419.02,2369.57,2421.15],
+            ['2013/2/4', 2425.92,2428.15,2417.58,2440.38],
+            ['2013/2/5', 2411,2433.13,2403.3,2437.42],
+            ['2013/2/6', 2432.68,2434.48,2427.7,2441.73],
+            ['2013/2/7', 2430.69,2418.53,2394.22,2433.89],
+            ['2013/2/8', 2416.62,2432.4,2414.4,2443.03],
+            ['2013/2/18', 2441.91,2421.56,2415.43,2444.8],
+            ['2013/2/19', 2420.26,2382.91,2373.53,2427.07],
+            ['2013/2/20', 2383.49,2397.18,2370.61,2397.94],
+            ['2013/2/21', 2378.82,2325.95,2309.17,2378.82],
+            ['2013/2/22', 2322.94,2314.16,2308.76,2330.88],
+            ['2013/2/25', 2320.62,2325.82,2315.01,2338.78],
+            ['2013/2/26', 2313.74,2293.34,2289.89,2340.71],
+            ['2013/2/27', 2297.77,2313.22,2292.03,2324.63],
+            ['2013/2/28', 2322.32,2365.59,2308.92,2366.16],
+            ['2013/3/1', 2364.54,2359.51,2330.86,2369.65],
+            ['2013/3/4', 2332.08,2273.4,2259.25,2333.54],
+            ['2013/3/5', 2274.81,2326.31,2270.1,2328.14],
+            ['2013/3/6', 2333.61,2347.18,2321.6,2351.44],
+            ['2013/3/7', 2340.44,2324.29,2304.27,2352.02],
+            ['2013/3/8', 2326.42,2318.61,2314.59,2333.67],
+            ['2013/3/11', 2314.68,2310.59,2296.58,2320.96],
+            ['2013/3/12', 2309.16,2286.6,2264.83,2333.29],
+            ['2013/3/13', 2282.17,2263.97,2253.25,2286.33],
+            ['2013/3/14', 2255.77,2270.28,2253.31,2276.22],
+            ['2013/3/15', 2269.31,2278.4,2250,2312.08],
+            ['2013/3/18', 2267.29,2240.02,2239.21,2276.05],
+            ['2013/3/19', 2244.26,2257.43,2232.02,2261.31],
+            ['2013/3/20', 2257.74,2317.37,2257.42,2317.86],
+            ['2013/3/21', 2318.21,2324.24,2311.6,2330.81],
+            ['2013/3/22', 2321.4,2328.28,2314.97,2332],
+            ['2013/3/25', 2334.74,2326.72,2319.91,2344.89],
+            ['2013/3/26', 2318.58,2297.67,2281.12,2319.99],
+            ['2013/3/27', 2299.38,2301.26,2289,2323.48],
+            ['2013/3/28', 2273.55,2236.3,2232.91,2273.55],
+            ['2013/3/29', 2238.49,2236.62,2228.81,2246.87],
+            ['2013/4/1', 2229.46,2234.4,2227.31,2243.95],
+            ['2013/4/2', 2234.9,2227.74,2220.44,2253.42],
+            ['2013/4/3', 2232.69,2225.29,2217.25,2241.34],
+            ['2013/4/8', 2196.24,2211.59,2180.67,2212.59],
+            ['2013/4/9', 2215.47,2225.77,2215.47,2234.73],
+            ['2013/4/10', 2224.93,2226.13,2212.56,2233.04],
+            ['2013/4/11', 2236.98,2219.55,2217.26,2242.48],
+            ['2013/4/12', 2218.09,2206.78,2204.44,2226.26],
+            ['2013/4/15', 2199.91,2181.94,2177.39,2204.99],
+            ['2013/4/16', 2169.63,2194.85,2165.78,2196.43],
+            ['2013/4/17', 2195.03,2193.8,2178.47,2197.51],
+            ['2013/4/18', 2181.82,2197.6,2175.44,2206.03],
+            ['2013/4/19', 2201.12,2244.64,2200.58,2250.11],
+            ['2013/4/22', 2236.4,2242.17,2232.26,2245.12],
+            ['2013/4/23', 2242.62,2184.54,2182.81,2242.62],
+            ['2013/4/24', 2187.35,2218.32,2184.11,2226.12],
+            ['2013/4/25', 2213.19,2199.31,2191.85,2224.63],
+            ['2013/4/26', 2203.89,2177.91,2173.86,2210.58],
+            ['2013/5/2', 2170.78,2174.12,2161.14,2179.65],
+            ['2013/5/3', 2179.05,2205.5,2179.05,2222.81],
+            ['2013/5/6', 2212.5,2231.17,2212.5,2236.07],
+            ['2013/5/7', 2227.86,2235.57,2219.44,2240.26],
+            ['2013/5/8', 2242.39,2246.3,2235.42,2255.21],
+            ['2013/5/9', 2246.96,2232.97,2221.38,2247.86],
+            ['2013/5/10', 2228.82,2246.83,2225.81,2247.67],
+            ['2013/5/13', 2247.68,2241.92,2231.36,2250.85],
+            ['2013/5/14', 2238.9,2217.01,2205.87,2239.93],
+            ['2013/5/15', 2217.09,2224.8,2213.58,2225.19],
+            ['2013/5/16', 2221.34,2251.81,2210.77,2252.87],
+            ['2013/5/17', 2249.81,2282.87,2248.41,2288.09],
+            ['2013/5/20', 2286.33,2299.99,2281.9,2309.39],
+            ['2013/5/21', 2297.11,2305.11,2290.12,2305.3],
+            ['2013/5/22', 2303.75,2302.4,2292.43,2314.18],
+            ['2013/5/23', 2293.81,2275.67,2274.1,2304.95],
+            ['2013/5/24', 2281.45,2288.53,2270.25,2292.59],
+            ['2013/5/27', 2286.66,2293.08,2283.94,2301.7],
+            ['2013/5/28', 2293.4,2321.32,2281.47,2322.1],
+            ['2013/5/29', 2323.54,2324.02,2321.17,2334.33],
+            ['2013/5/30', 2316.25,2317.75,2310.49,2325.72],
+            ['2013/5/31', 2320.74,2300.59,2299.37,2325.53],
+            ['2013/6/3', 2300.21,2299.25,2294.11,2313.43],
+            ['2013/6/4', 2297.1,2272.42,2264.76,2297.1],
+            ['2013/6/5', 2270.71,2270.93,2260.87,2276.86],
+            ['2013/6/6', 2264.43,2242.11,2240.07,2266.69],
+            ['2013/6/7', 2242.26,2210.9,2205.07,2250.63],
+            ['2013/6/13', 2190.1,2148.35,2126.22,2190.1]
+        ]);
+
+
+        function splitData(rawData) {
+            var categoryData = [];
+            var values = []
+            for (var i = 0; i < rawData.length; i++) {
+                categoryData.push(rawData[i].splice(0, 1)[0]);
+                values.push(rawData[i])
+            }
+            return {
+                categoryData: categoryData,
+                values: values
+            };
+        }
+
+        function calculateMA(dayCount) {
+            var result = [];
+            for (var i = 0, len = data0.values.length; i < len; i++) {
+                if (i < dayCount) {
+                    result.push('-');
+                    continue;
+                }
+                var sum = 0;
+                for (var j = 0; j < dayCount; j++) {
+                    sum += data0.values[i - j][1];
+                }
+                result.push(sum / dayCount);
+            }
+            return result;
+        }
+
+
+
+        option = {
+            title: {
+                text: '上证指数',
+                left: 0
+            },
+            tooltip: {
+                trigger: 'axis',
+                axisPointer: {
+                    type: 'line'
+                }
+            },
+            legend: {
+                data: ['日K', 'MA5', 'MA10', 'MA20', 'MA30']
+            },
+            grid: {
+                left: '10%',
+                right: '10%',
+                bottom: '15%'
+            },
+            xAxis: {
+                type: 'category',
+                data: data0.categoryData,
+                scale: true,
+                boundaryGap : false,
+                axisLine: {onZero: false},
+                splitLine: {show: false},
+                splitNumber: 20,
+                min: 'dataMin',
+                max: 'dataMax'
+            },
+            yAxis: {
+                scale: true,
+                splitArea: {
+                    show: true
+                }
+            },
+            dataZoom: [
+                {
+                    type: 'inside',
+                    start: 50,
+                    end: 100
+                },
+                {
+                    show: true,
+                    type: 'slider',
+                    y: '90%',
+                    start: 50,
+                    end: 100
+                }
+            ],
+            series: [
+                {
+                    name: '日K',
+                    type: 'candlestick',
+                    data: data0.values,
+                    markPoint: {
+                        label: {
+                            normal: {
+                                formatter: function (param) {
+                                    return param != null ? Math.round(param.value) : '';
+                                }
+                            }
+                        },
+                        data: [
+                            {
+                                name: 'XX标点',
+                                coord: ['2013/5/31', 2300],
+                                value: 2300,
+                                itemStyle: {
+                                    normal: {color: 'rgb(41,60,85)'}
+                                }
+                            },
+                            {
+                                name: 'highest value',
+                                type: 'max',
+                                valueDim: 'highest'
+                            },
+                            {
+                                name: 'lowest value',
+                                type: 'min',
+                                valueDim: 'lowest'
+                            },
+                            {
+                                name: 'average value on close',
+                                type: 'average',
+                                valueDim: 'close'
+                            }
+                        ],
+                        tooltip: {
+                            formatter: function (param) {
+                                return param.name + '<br>' + (param.data.coord || '');
+                            }
+                        }
+                    },
+                    markLine: {
+                        symbol: ['none', 'none'],
+                        data: [
+                            [
+                                {
+                                    name: 'from lowest to highest',
+                                    type: 'min',
+                                    valueDim: 'lowest',
+                                    symbol: 'circle',
+                                    symbolSize: 10,
+                                    label: {
+                                        normal: {show: false},
+                                        emphasis: {show: false}
+                                    }
+                                },
+                                {
+                                    type: 'max',
+                                    valueDim: 'highest',
+                                    symbol: 'circle',
+                                    symbolSize: 10,
+                                    label: {
+                                        normal: {show: false},
+                                        emphasis: {show: false}
+                                    }
+                                }
+                            ],
+                            {
+                                name: 'min line on close',
+                                type: 'min',
+                                valueDim: 'close'
+                            },
+                            {
+                                name: 'max line on close',
+                                type: 'max',
+                                valueDim: 'close'
+                            }
+                        ]
+                    }
+                },
+                {
+                    name: 'MA5',
+                    type: 'line',
+                    data: calculateMA(5),
+                    smooth: true,
+                    lineStyle: {
+                        normal: {opacity: 0.5}
+                    }
+                },
+                {
+                    name: 'MA10',
+                    type: 'line',
+                    data: calculateMA(10),
+                    smooth: true,
+                    lineStyle: {
+                        normal: {opacity: 0.5}
+                    }
+                },
+                {
+                    name: 'MA20',
+                    type: 'line',
+                    data: calculateMA(20),
+                    smooth: true,
+                    lineStyle: {
+                        normal: {opacity: 0.5}
+                    }
+                },
+                {
+                    name: 'MA30',
+                    type: 'line',
+                    data: calculateMA(30),
+                    smooth: true,
+                    lineStyle: {
+                        normal: {opacity: 0.5}
+                    }
+                },
+
+            ]
+        };
+
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 488 - 0
web/UM-admin/echarts7.html

@@ -0,0 +1,488 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/extension/bmap.min.js" type="text/javascript"></script>
+        <script src="http://echarts.baidu.com/asset/map/js/china.js"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+        myChart.setOption({
+            series: [{
+                type: 'map',
+                map: 'china'
+            }]
+        });
+
+        var geoCoordMap = {
+            "海门":[121.15,31.89],
+            "鄂尔多斯":[109.781327,39.608266],
+            "招远":[120.38,37.35],
+            "舟山":[122.207216,29.985295],
+            "齐齐哈尔":[123.97,47.33],
+            "盐城":[120.13,33.38],
+            "赤峰":[118.87,42.28],
+            "青岛":[120.33,36.07],
+            "乳山":[121.52,36.89],
+            "金昌":[102.188043,38.520089],
+            "泉州":[118.58,24.93],
+            "莱西":[120.53,36.86],
+            "日照":[119.46,35.42],
+            "胶南":[119.97,35.88],
+            "南通":[121.05,32.08],
+            "拉萨":[91.11,29.97],
+            "云浮":[112.02,22.93],
+            "梅州":[116.1,24.55],
+            "文登":[122.05,37.2],
+            "上海":[121.48,31.22],
+            "攀枝花":[101.718637,26.582347],
+            "威海":[122.1,37.5],
+            "承德":[117.93,40.97],
+            "厦门":[118.1,24.46],
+            "汕尾":[115.375279,22.786211],
+            "潮州":[116.63,23.68],
+            "丹东":[124.37,40.13],
+            "太仓":[121.1,31.45],
+            "曲靖":[103.79,25.51],
+            "烟台":[121.39,37.52],
+            "福州":[119.3,26.08],
+            "瓦房店":[121.979603,39.627114],
+            "即墨":[120.45,36.38],
+            "抚顺":[123.97,41.97],
+            "玉溪":[102.52,24.35],
+            "张家口":[114.87,40.82],
+            "阳泉":[113.57,37.85],
+            "莱州":[119.942327,37.177017],
+            "湖州":[120.1,30.86],
+            "汕头":[116.69,23.39],
+            "昆山":[120.95,31.39],
+            "宁波":[121.56,29.86],
+            "湛江":[110.359377,21.270708],
+            "揭阳":[116.35,23.55],
+            "荣成":[122.41,37.16],
+            "连云港":[119.16,34.59],
+            "葫芦岛":[120.836932,40.711052],
+            "常熟":[120.74,31.64],
+            "东莞":[113.75,23.04],
+            "河源":[114.68,23.73],
+            "淮安":[119.15,33.5],
+            "泰州":[119.9,32.49],
+            "南宁":[108.33,22.84],
+            "营口":[122.18,40.65],
+            "惠州":[114.4,23.09],
+            "江阴":[120.26,31.91],
+            "蓬莱":[120.75,37.8],
+            "韶关":[113.62,24.84],
+            "嘉峪关":[98.289152,39.77313],
+            "广州":[113.23,23.16],
+            "延安":[109.47,36.6],
+            "太原":[112.53,37.87],
+            "清远":[113.01,23.7],
+            "中山":[113.38,22.52],
+            "昆明":[102.73,25.04],
+            "寿光":[118.73,36.86],
+            "盘锦":[122.070714,41.119997],
+            "长治":[113.08,36.18],
+            "深圳":[114.07,22.62],
+            "珠海":[113.52,22.3],
+            "宿迁":[118.3,33.96],
+            "咸阳":[108.72,34.36],
+            "铜川":[109.11,35.09],
+            "平度":[119.97,36.77],
+            "佛山":[113.11,23.05],
+            "海口":[110.35,20.02],
+            "江门":[113.06,22.61],
+            "章丘":[117.53,36.72],
+            "肇庆":[112.44,23.05],
+            "大连":[121.62,38.92],
+            "临汾":[111.5,36.08],
+            "吴江":[120.63,31.16],
+            "石嘴山":[106.39,39.04],
+            "沈阳":[123.38,41.8],
+            "苏州":[120.62,31.32],
+            "茂名":[110.88,21.68],
+            "嘉兴":[120.76,30.77],
+            "长春":[125.35,43.88],
+            "胶州":[120.03336,36.264622],
+            "银川":[106.27,38.47],
+            "张家港":[120.555821,31.875428],
+            "三门峡":[111.19,34.76],
+            "锦州":[121.15,41.13],
+            "南昌":[115.89,28.68],
+            "柳州":[109.4,24.33],
+            "三亚":[109.511909,18.252847],
+            "自贡":[104.778442,29.33903],
+            "吉林":[126.57,43.87],
+            "阳江":[111.95,21.85],
+            "泸州":[105.39,28.91],
+            "西宁":[101.74,36.56],
+            "宜宾":[104.56,29.77],
+            "呼和浩特":[111.65,40.82],
+            "成都":[104.06,30.67],
+            "大同":[113.3,40.12],
+            "镇江":[119.44,32.2],
+            "桂林":[110.28,25.29],
+            "张家界":[110.479191,29.117096],
+            "宜兴":[119.82,31.36],
+            "北海":[109.12,21.49],
+            "西安":[108.95,34.27],
+            "金坛":[119.56,31.74],
+            "东营":[118.49,37.46],
+            "牡丹江":[129.58,44.6],
+            "遵义":[106.9,27.7],
+            "绍兴":[120.58,30.01],
+            "扬州":[119.42,32.39],
+            "常州":[119.95,31.79],
+            "潍坊":[119.1,36.62],
+            "重庆":[106.54,29.59],
+            "台州":[121.420757,28.656386],
+            "南京":[118.78,32.04],
+            "滨州":[118.03,37.36],
+            "贵阳":[106.71,26.57],
+            "无锡":[120.29,31.59],
+            "本溪":[123.73,41.3],
+            "克拉玛依":[84.77,45.59],
+            "渭南":[109.5,34.52],
+            "马鞍山":[118.48,31.56],
+            "宝鸡":[107.15,34.38],
+            "焦作":[113.21,35.24],
+            "句容":[119.16,31.95],
+            "北京":[116.46,39.92],
+            "徐州":[117.2,34.26],
+            "衡水":[115.72,37.72],
+            "包头":[110,40.58],
+            "绵阳":[104.73,31.48],
+            "乌鲁木齐":[87.68,43.77],
+            "枣庄":[117.57,34.86],
+            "杭州":[120.19,30.26],
+            "淄博":[118.05,36.78],
+            "鞍山":[122.85,41.12],
+            "溧阳":[119.48,31.43],
+            "库尔勒":[86.06,41.68],
+            "安阳":[114.35,36.1],
+            "开封":[114.35,34.79],
+            "济南":[117,36.65],
+            "德阳":[104.37,31.13],
+            "温州":[120.65,28.01],
+            "九江":[115.97,29.71],
+            "邯郸":[114.47,36.6],
+            "临安":[119.72,30.23],
+            "兰州":[103.73,36.03],
+            "沧州":[116.83,38.33],
+            "临沂":[118.35,35.05],
+            "南充":[106.110698,30.837793],
+            "天津":[117.2,39.13],
+            "富阳":[119.95,30.07],
+            "泰安":[117.13,36.18],
+            "诸暨":[120.23,29.71],
+            "郑州":[113.65,34.76],
+            "哈尔滨":[126.63,45.75],
+            "聊城":[115.97,36.45],
+            "芜湖":[118.38,31.33],
+            "唐山":[118.02,39.63],
+            "平顶山":[113.29,33.75],
+            "邢台":[114.48,37.05],
+            "德州":[116.29,37.45],
+            "济宁":[116.59,35.38],
+            "荆州":[112.239741,30.335165],
+            "宜昌":[111.3,30.7],
+            "义乌":[120.06,29.32],
+            "丽水":[119.92,28.45],
+            "洛阳":[112.44,34.7],
+            "秦皇岛":[119.57,39.95],
+            "株洲":[113.16,27.83],
+            "石家庄":[114.48,38.03],
+            "莱芜":[117.67,36.19],
+            "常德":[111.69,29.05],
+            "保定":[115.48,38.85],
+            "湘潭":[112.91,27.87],
+            "金华":[119.64,29.12],
+            "岳阳":[113.09,29.37],
+            "长沙":[113,28.21],
+            "衢州":[118.88,28.97],
+            "廊坊":[116.7,39.53],
+            "菏泽":[115.480656,35.23375],
+            "合肥":[117.27,31.86],
+            "武汉":[114.31,30.52],
+            "大庆":[125.03,46.58]
+        };
+
+        var convertData = function (data) {
+            var res = [];
+            for (var i = 0; i < data.length; i++) {
+                var geoCoord = geoCoordMap[data[i].name];
+                if (geoCoord) {
+                    res.push(geoCoord.concat(data[i].value));
+                }
+            }
+            return res;
+        };
+
+        option = {
+            title: {
+                text: '全国主要城市空气质量',
+                subtext: 'data from PM25.in',
+                sublink: 'http://www.pm25.in',
+                left: 'center',
+                textStyle: {
+                    color: '#fff'
+                }
+            },
+            backgroundColor: '#404a59',
+            visualMap: {
+                min: 0,
+                max: 500,
+                splitNumber: 5,
+                inRange: {
+                    color: ['#d94e5d','#eac736','#50a3ba'].reverse()
+                },
+                textStyle: {
+                    color: '#fff'
+                }
+            },
+            geo: {
+                map: 'china',
+                label: {
+                    emphasis: {
+                        show: false
+                    }
+                },
+                roam: true,
+                itemStyle: {
+                    normal: {
+                        areaColor: '#323c48',
+                        borderColor: '#111'
+                    },
+                    emphasis: {
+                        areaColor: '#2a333d'
+                    }
+                }
+            },
+            series: [{
+                name: 'AQI',
+                type: 'heatmap',
+                coordinateSystem: 'geo',
+                data: convertData([
+                    {name: "海门", value: 9},
+                    {name: "鄂尔多斯", value: 12},
+                    {name: "招远", value: 12},
+                    {name: "舟山", value: 12},
+                    {name: "齐齐哈尔", value: 14},
+                    {name: "盐城", value: 15},
+                    {name: "赤峰", value: 16},
+                    {name: "青岛", value: 18},
+                    {name: "乳山", value: 18},
+                    {name: "金昌", value: 19},
+                    {name: "泉州", value: 21},
+                    {name: "莱西", value: 21},
+                    {name: "日照", value: 21},
+                    {name: "胶南", value: 22},
+                    {name: "南通", value: 23},
+                    {name: "拉萨", value: 24},
+                    {name: "云浮", value: 24},
+                    {name: "梅州", value: 25},
+                    {name: "文登", value: 25},
+                    {name: "上海", value: 25},
+                    {name: "攀枝花", value: 25},
+                    {name: "威海", value: 25},
+                    {name: "承德", value: 25},
+                    {name: "厦门", value: 26},
+                    {name: "汕尾", value: 26},
+                    {name: "潮州", value: 26},
+                    {name: "丹东", value: 27},
+                    {name: "太仓", value: 27},
+                    {name: "曲靖", value: 27},
+                    {name: "烟台", value: 28},
+                    {name: "福州", value: 29},
+                    {name: "瓦房店", value: 30},
+                    {name: "即墨", value: 30},
+                    {name: "抚顺", value: 31},
+                    {name: "玉溪", value: 31},
+                    {name: "张家口", value: 31},
+                    {name: "阳泉", value: 31},
+                    {name: "莱州", value: 32},
+                    {name: "湖州", value: 32},
+                    {name: "汕头", value: 32},
+                    {name: "昆山", value: 33},
+                    {name: "宁波", value: 33},
+                    {name: "湛江", value: 33},
+                    {name: "揭阳", value: 34},
+                    {name: "荣成", value: 34},
+                    {name: "连云港", value: 35},
+                    {name: "葫芦岛", value: 35},
+                    {name: "常熟", value: 36},
+                    {name: "东莞", value: 36},
+                    {name: "河源", value: 36},
+                    {name: "淮安", value: 36},
+                    {name: "泰州", value: 36},
+                    {name: "南宁", value: 37},
+                    {name: "营口", value: 37},
+                    {name: "惠州", value: 37},
+                    {name: "江阴", value: 37},
+                    {name: "蓬莱", value: 37},
+                    {name: "韶关", value: 38},
+                    {name: "嘉峪关", value: 38},
+                    {name: "广州", value: 38},
+                    {name: "延安", value: 38},
+                    {name: "太原", value: 39},
+                    {name: "清远", value: 39},
+                    {name: "中山", value: 39},
+                    {name: "昆明", value: 39},
+                    {name: "寿光", value: 40},
+                    {name: "盘锦", value: 40},
+                    {name: "长治", value: 41},
+                    {name: "深圳", value: 41},
+                    {name: "珠海", value: 42},
+                    {name: "宿迁", value: 43},
+                    {name: "咸阳", value: 43},
+                    {name: "铜川", value: 44},
+                    {name: "平度", value: 44},
+                    {name: "佛山", value: 44},
+                    {name: "海口", value: 44},
+                    {name: "江门", value: 45},
+                    {name: "章丘", value: 45},
+                    {name: "肇庆", value: 46},
+                    {name: "大连", value: 47},
+                    {name: "临汾", value: 47},
+                    {name: "吴江", value: 47},
+                    {name: "石嘴山", value: 49},
+                    {name: "沈阳", value: 50},
+                    {name: "苏州", value: 50},
+                    {name: "茂名", value: 50},
+                    {name: "嘉兴", value: 51},
+                    {name: "长春", value: 51},
+                    {name: "胶州", value: 52},
+                    {name: "银川", value: 52},
+                    {name: "张家港", value: 52},
+                    {name: "三门峡", value: 53},
+                    {name: "锦州", value: 54},
+                    {name: "南昌", value: 54},
+                    {name: "柳州", value: 54},
+                    {name: "三亚", value: 54},
+                    {name: "自贡", value: 56},
+                    {name: "吉林", value: 56},
+                    {name: "阳江", value: 57},
+                    {name: "泸州", value: 57},
+                    {name: "西宁", value: 57},
+                    {name: "宜宾", value: 58},
+                    {name: "呼和浩特", value: 58},
+                    {name: "成都", value: 58},
+                    {name: "大同", value: 58},
+                    {name: "镇江", value: 59},
+                    {name: "桂林", value: 59},
+                    {name: "张家界", value: 59},
+                    {name: "宜兴", value: 59},
+                    {name: "北海", value: 60},
+                    {name: "西安", value: 61},
+                    {name: "金坛", value: 62},
+                    {name: "东营", value: 62},
+                    {name: "牡丹江", value: 63},
+                    {name: "遵义", value: 63},
+                    {name: "绍兴", value: 63},
+                    {name: "扬州", value: 64},
+                    {name: "常州", value: 64},
+                    {name: "潍坊", value: 65},
+                    {name: "重庆", value: 66},
+                    {name: "台州", value: 67},
+                    {name: "南京", value: 67},
+                    {name: "滨州", value: 70},
+                    {name: "贵阳", value: 71},
+                    {name: "无锡", value: 71},
+                    {name: "本溪", value: 71},
+                    {name: "克拉玛依", value: 72},
+                    {name: "渭南", value: 72},
+                    {name: "马鞍山", value: 72},
+                    {name: "宝鸡", value: 72},
+                    {name: "焦作", value: 75},
+                    {name: "句容", value: 75},
+                    {name: "北京", value: 79},
+                    {name: "徐州", value: 79},
+                    {name: "衡水", value: 80},
+                    {name: "包头", value: 80},
+                    {name: "绵阳", value: 80},
+                    {name: "乌鲁木齐", value: 84},
+                    {name: "枣庄", value: 84},
+                    {name: "杭州", value: 84},
+                    {name: "淄博", value: 85},
+                    {name: "鞍山", value: 86},
+                    {name: "溧阳", value: 86},
+                    {name: "库尔勒", value: 86},
+                    {name: "安阳", value: 90},
+                    {name: "开封", value: 90},
+                    {name: "济南", value: 92},
+                    {name: "德阳", value: 93},
+                    {name: "温州", value: 95},
+                    {name: "九江", value: 96},
+                    {name: "邯郸", value: 98},
+                    {name: "临安", value: 99},
+                    {name: "兰州", value: 99},
+                    {name: "沧州", value: 100},
+                    {name: "临沂", value: 103},
+                    {name: "南充", value: 104},
+                    {name: "天津", value: 105},
+                    {name: "富阳", value: 106},
+                    {name: "泰安", value: 112},
+                    {name: "诸暨", value: 112},
+                    {name: "郑州", value: 113},
+                    {name: "哈尔滨", value: 114},
+                    {name: "聊城", value: 116},
+                    {name: "芜湖", value: 117},
+                    {name: "唐山", value: 119},
+                    {name: "平顶山", value: 119},
+                    {name: "邢台", value: 119},
+                    {name: "德州", value: 120},
+                    {name: "济宁", value: 120},
+                    {name: "荆州", value: 127},
+                    {name: "宜昌", value: 130},
+                    {name: "义乌", value: 132},
+                    {name: "丽水", value: 133},
+                    {name: "洛阳", value: 134},
+                    {name: "秦皇岛", value: 136},
+                    {name: "株洲", value: 143},
+                    {name: "石家庄", value: 147},
+                    {name: "莱芜", value: 148},
+                    {name: "常德", value: 152},
+                    {name: "保定", value: 153},
+                    {name: "湘潭", value: 154},
+                    {name: "金华", value: 157},
+                    {name: "岳阳", value: 169},
+                    {name: "长沙", value: 175},
+                    {name: "衢州", value: 177},
+                    {name: "廊坊", value: 193},
+                    {name: "菏泽", value: 194},
+                    {name: "合肥", value: 229},
+                    {name: "武汉", value: 273},
+                    {name: "大庆", value: 279}
+                ])
+            }]
+        };
+
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

+ 230 - 0
web/UM-admin/echarts8.html

@@ -0,0 +1,230 @@
+<!doctype html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>后台登录-X-admin2.0</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
+        <meta http-equiv="Cache-Control" content="no-siteapp" />
+
+        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+        <link rel="stylesheet" href="./css/font.css">
+        <link rel="stylesheet" href="./css/xadmin.css">
+    </head>
+    <body>
+        <div class="x-body">
+            <blockquote class="layui-elem-quote">
+                特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 <a href="http://echarts.baidu.com/" style="color:red">ECharts</a>。 x-admin不承担任何版权问题。
+            </blockquote>
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+            <blockquote class="layui-elem-quote">
+                注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离想,请至Echarts官网下载。
+            </blockquote>
+        </div>
+        <script src="//cdn.bootcss.com/echarts/3.3.2/echarts.min.js" charset="utf-8"></script>
+        <script type="text/javascript">
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        option = {
+            tooltip : {
+                formatter: "{a} <br/>{c} {b}"
+            },
+            toolbox: {
+                show: true,
+                feature: {
+                    restore: {show: true},
+                    saveAsImage: {show: true}
+                }
+            },
+            series : [
+                {
+                    name: '速度',
+                    type: 'gauge',
+                    z: 3,
+                    min: 0,
+                    max: 220,
+                    splitNumber: 11,
+                    radius: '50%',
+                    axisLine: {            // 坐标轴线
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            width: 10
+                        }
+                    },
+                    axisTick: {            // 坐标轴小标记
+                        length: 15,        // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    splitLine: {           // 分隔线
+                        length: 20,         // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    title : {
+                        textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
+                            fontWeight: 'bolder',
+                            fontSize: 20,
+                            fontStyle: 'italic'
+                        }
+                    },
+                    detail : {
+                        textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
+                            fontWeight: 'bolder'
+                        }
+                    },
+                    data:[{value: 40, name: 'km/h'}]
+                },
+                {
+                    name: '转速',
+                    type: 'gauge',
+                    center: ['20%', '55%'],    // 默认全局居中
+                    radius: '35%',
+                    min:0,
+                    max:7,
+                    endAngle:45,
+                    splitNumber:7,
+                    axisLine: {            // 坐标轴线
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            width: 8
+                        }
+                    },
+                    axisTick: {            // 坐标轴小标记
+                        length:12,        // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    splitLine: {           // 分隔线
+                        length:20,         // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    pointer: {
+                        width:5
+                    },
+                    title: {
+                        offsetCenter: [0, '-30%'],       // x, y,单位px
+                    },
+                    detail: {
+                        textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
+                            fontWeight: 'bolder'
+                        }
+                    },
+                    data:[{value: 1.5, name: 'x1000 r/min'}]
+                },
+                {
+                    name: '油表',
+                    type: 'gauge',
+                    center: ['77%', '50%'],    // 默认全局居中
+                    radius: '25%',
+                    min: 0,
+                    max: 2,
+                    startAngle: 135,
+                    endAngle: 45,
+                    splitNumber: 2,
+                    axisLine: {            // 坐标轴线
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            width: 8
+                        }
+                    },
+                    axisTick: {            // 坐标轴小标记
+                        splitNumber: 5,
+                        length: 10,        // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    axisLabel: {
+                        formatter:function(v){
+                            switch (v + '') {
+                                case '0' : return 'E';
+                                case '1' : return 'Gas';
+                                case '2' : return 'F';
+                            }
+                        }
+                    },
+                    splitLine: {           // 分隔线
+                        length: 15,         // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    pointer: {
+                        width:2
+                    },
+                    title : {
+                        show: false
+                    },
+                    detail : {
+                        show: false
+                    },
+                    data:[{value: 0.5, name: 'gas'}]
+                },
+                {
+                    name: '水表',
+                    type: 'gauge',
+                    center : ['77%', '50%'],    // 默认全局居中
+                    radius : '25%',
+                    min: 0,
+                    max: 2,
+                    startAngle: 315,
+                    endAngle: 225,
+                    splitNumber: 2,
+                    axisLine: {            // 坐标轴线
+                        lineStyle: {       // 属性lineStyle控制线条样式
+                            width: 8
+                        }
+                    },
+                    axisTick: {            // 坐标轴小标记
+                        show: false
+                    },
+                    axisLabel: {
+                        formatter:function(v){
+                            switch (v + '') {
+                                case '0' : return 'H';
+                                case '1' : return 'Water';
+                                case '2' : return 'C';
+                            }
+                        }
+                    },
+                    splitLine: {           // 分隔线
+                        length: 15,         // 属性length控制线长
+                        lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
+                            color: 'auto'
+                        }
+                    },
+                    pointer: {
+                        width:2
+                    },
+                    title: {
+                        show: false
+                    },
+                    detail: {
+                        show: false
+                    },
+                    data:[{value: 0.5, name: 'gas'}]
+                }
+            ]
+        };
+
+        setInterval(function (){
+            option.series[0].data[0].value = (Math.random()*100).toFixed(2) - 0;
+            option.series[1].data[0].value = (Math.random()*7).toFixed(2) - 0;
+            option.series[2].data[0].value = (Math.random()*2).toFixed(2) - 0;
+            option.series[3].data[0].value = (Math.random()*2).toFixed(2) - 0;
+            myChart.setOption(option,true);
+        },2000);
+
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+    </script>
+    </body>
+</html>

binární
web/UM-admin/fonts/iconfont.eot


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 44 - 0
web/UM-admin/fonts/iconfont.svg


binární
web/UM-admin/fonts/iconfont.ttf


binární
web/UM-admin/fonts/iconfont.woff


binární
web/UM-admin/images/aiwrap.png


binární
web/UM-admin/images/bg.png


+ 157 - 0
web/UM-admin/index.html

@@ -0,0 +1,157 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>后台登录v1.0</title>
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
+    <meta http-equiv="Cache-Control" content="no-siteapp"/>
+
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+    <link rel="stylesheet" href="./css/font.css">
+    <link rel="stylesheet" href="./css/xadmin.css">
+    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
+    <script src="./lib/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="js/admin.js"></script>
+    <script type="text/javascript" src="./js/jquery_cookie_min.js"></script>
+</head>
+<body>
+<!-- 顶部开始 -->
+<div class="container">
+    <div class="logo"><a href="./index.html">后台 v1.0</a></div>
+    <div class="left_open">
+        <i title="展开左侧栏" class="iconfont">&#xe699;</i>
+    </div>
+    <!--<ul class="layui-nav left fast-add" lay-filter="">-->
+    <!--<li class="layui-nav-item">-->
+    <!--<a href="javascript:;">+新增</a>-->
+    <!--<dl class="layui-nav-child"> &lt;!&ndash; 二级菜单 &ndash;&gt;-->
+    <!--<dd><a onclick="x_admin_show('资讯','http://www.baidu.com')"><i class="iconfont">&#xe6a2;</i>资讯</a></dd>-->
+    <!--<dd><a onclick="x_admin_show('图片','http://www.baidu.com')"><i class="iconfont">&#xe6a8;</i>图片</a></dd>-->
+    <!--<dd><a onclick="x_admin_show('用户','http://www.baidu.com')"><i class="iconfont">&#xe6b8;</i>用户</a></dd>-->
+    <!--</dl>-->
+    <!--</li>-->
+    <!--</ul>-->
+    <ul class="layui-nav right" lay-filter="">
+        <li class="layui-nav-item">
+            <a href="javascript:;" id="username_title">xxx</a>
+            <dl class="layui-nav-child"> <!-- 二级菜单 -->
+                <!--<dd><a onclick="x_admin_show('个人信息','http://www.baidu.com')">个人信息</a></dd>-->
+                <!--<dd><a onclick="x_admin_show('切换帐号','http://www.baidu.com')">切换帐号</a></dd>-->
+                          <!--       <dd><a href="./login.html" onclick="exitAccount()">退出</a></dd>-->
+                <dd><a onclick="exitAccount()">退出</a></dd>
+            </dl>
+        </li>
+        <!--<li class="layui-nav-item to-index"><a href="/">test</a></li>-->
+    </ul>
+
+</div>
+<!-- 顶部结束 -->
+<!-- 中部开始 -->
+<!-- 左侧菜单开始 -->
+<div class="left-nav">
+    <div id="side-nav">
+        <ul id="nav" style="display:block;">
+            <!--start new-->
+            <li>
+                <a href="javascript:;">
+                    <i class="iconfont">&#xe723;</i>
+                    <cite>UID管理</cite>
+                    <i class="iconfont nav_right">&#xe697;</i>
+                </a>
+                <ul class="sub-menu">
+                    <li>
+                        <a _href="umlist.html">
+                            <i class="iconfont">&#xe6a7;</i>
+                            <cite>设备信息</cite>
+                        </a>
+                    </li>
+                </ul>
+            </li>
+            <li>
+                <a href="javascript:;">
+                    <i class="iconfont">&#xe6b8;</i>
+                    <cite>日志管理</cite>
+                    <i class="iconfont nav_right">&#xe697;</i>
+                </a>
+                <ul class="sub-menu">
+                    <li>
+                        <a _href="umlog.html">
+                            <i class="iconfont">&#xe6a7;</i>
+                            <cite>日志</cite>
+                        </a>
+                    </li>
+                </ul>
+            </li>
+
+            <li>
+                <a href="javascript:;">
+                    <i class="iconfont">&#xe6b8;</i>
+                    <cite>用户管理</cite>
+                    <i class="iconfont nav_right">&#xe697;</i>
+                </a>
+                <ul class="sub-menu">
+                    <li>
+                        <a _href="member-list.html">
+                            <i class="iconfont">&#xe6a7;</i>
+                            <cite>用户信息</cite>
+                        </a>
+                    </li>
+                </ul>
+            </li>
+
+            <li>
+                <a href="javascript:;">
+                    <i class="iconfont">&#xe6b8;</i>
+                    <cite>订单任务管理</cite>
+                    <i class="iconfont nav_right">&#xe697;</i>
+                </a>
+                <ul class="sub-menu">
+                    <li>
+                        <a _href="order-task.html">
+                            <i class="iconfont">&#xe6a7;</i>
+                            <cite>订单任务</cite>
+                        </a>
+                    </li>
+                </ul>
+            </li>
+        </ul>
+    </div>
+</div>
+<!-- <div class="x-slide_left"></div> -->
+<!-- 左侧菜单结束 -->
+<!-- 右侧主体开始 -->
+<div class="page-content">
+    <div class="layui-tab tab" lay-filter="xbs_tab" lay-allowclose="false">
+        <ul class="layui-tab-title">
+            <li class="home"><i class="layui-icon">&#xe68e;</i>首页</li>
+        </ul>
+        <div class="layui-tab-content">
+            <div class="layui-tab-item layui-show">
+                <iframe src='./welcome.html' frameborder="0" scrolling="yes" class="x-iframe"></iframe>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="page-content-bg"></div>
+<!-- 右侧主体结束 -->
+<!-- 中部结束 -->
+<!-- 底部开始 -->
+<div class="footer">
+    <div class="copyright">Copyright ©2018 x-admin v2.3 & chanjunkai v1.0 All Rights Reserved</div>
+</div>
+<!-- 底部结束 -->
+</body>
+<script type="text/javascript">
+    $('#username_title').html($.cookie('username'))
+
+    function exitAccount() {
+        $.cookie('access_token', '', {expires: -1}); // 删除 cookie
+        $.cookie('refresh_token', '', {expires: -1}); // 删除 cookie
+        $.cookie('username', '', {expires: -1}); // 删除 cookie
+        window.location.href = './login.html'
+    }
+</script>
+</html>

+ 221 - 0
web/UM-admin/js/admin.js

@@ -0,0 +1,221 @@
+$(function () {
+    //加载弹出层
+    layui.use(['form', 'element'],
+        function () {
+            layer = layui.layer;
+            element = layui.element;
+        });
+
+    //触发事件
+    var tab = {
+        tabAdd: function (title, url, id) {
+            //新增一个Tab项
+            element.tabAdd('xbs_tab', {
+                title: title
+                ,
+                content: '<iframe tab-id="' + id + '" frameborder="0" src="' + url + '" scrolling="yes" class="x-iframe"></iframe>'
+                ,
+                id: id
+            })
+        }
+        , tabDelete: function (othis) {
+            //删除指定Tab项
+            element.tabDelete('xbs_tab', '44'); //删除:“商品管理”
+
+
+            othis.addClass('layui-btn-disabled');
+        }
+        , tabChange: function (id) {
+            //切换到指定Tab项
+            element.tabChange('xbs_tab', id); //切换到:用户管理
+        }
+    };
+
+
+    tableCheck = {
+        init: function () {
+            $(".layui-form-checkbox").click(function (event) {
+                if ($(this).hasClass('layui-form-checked')) {
+                    $(this).removeClass('layui-form-checked');
+                    if ($(this).hasClass('header')) {
+                        $(".layui-form-checkbox").removeClass('layui-form-checked');
+                    }
+                } else {
+                    $(this).addClass('layui-form-checked');
+                    if ($(this).hasClass('header')) {
+                        $(".layui-form-checkbox").addClass('layui-form-checked');
+                    }
+                }
+
+            });
+        },
+        getData: function () {
+            var obj = $(".layui-form-checked").not('.header');
+            var arr = [];
+            obj.each(function (index, el) {
+                arr.push(obj.eq(index).attr('data-id'));
+            });
+            return arr;
+        }
+    }
+
+    //开启表格多选
+    tableCheck.init();
+
+
+    $('.container .left_open i').click(function (event) {
+        if ($('.left-nav').css('left') == '0px') {
+            $('.left-nav').animate({left: '-221px'}, 100);
+            $('.page-content').animate({left: '0px'}, 100);
+            $('.page-content-bg').hide();
+        } else {
+            $('.left-nav').animate({left: '0px'}, 100);
+            $('.page-content').animate({left: '221px'}, 100);
+            if ($(window).width() < 768) {
+                $('.page-content-bg').show();
+            }
+        }
+
+    });
+
+    $('.page-content-bg').click(function (event) {
+        $('.left-nav').animate({left: '-221px'}, 100);
+        $('.page-content').animate({left: '0px'}, 100);
+        $(this).hide();
+    });
+
+    $('.layui-tab-close').click(function (event) {
+        $('.layui-tab-title li').eq(0).find('i').remove();
+    });
+
+    $("tbody.x-cate tr[fid!='0']").hide();
+    // 栏目多级显示效果
+    $('.x-show').click(function () {
+        if ($(this).attr('status') == 'true') {
+            $(this).html('&#xe625;');
+            $(this).attr('status', 'false');
+            cateId = $(this).parents('tr').attr('cate-id');
+            $("tbody tr[fid=" + cateId + "]").show();
+        } else {
+            cateIds = [];
+            $(this).html('&#xe623;');
+            $(this).attr('status', 'true');
+            cateId = $(this).parents('tr').attr('cate-id');
+            getCateId(cateId);
+            for (var i in cateIds) {
+                $("tbody tr[cate-id=" + cateIds[i] + "]").hide().find('.x-show').html('&#xe623;').attr('status', 'true');
+            }
+        }
+    })
+
+    //左侧菜单效果
+    // $('#content').bind("click",function(event){
+    $('.left-nav #nav li').click(function (event) {
+
+        if ($(this).children('.sub-menu').length) {
+            if ($(this).hasClass('open')) {
+                $(this).removeClass('open');
+                $(this).find('.nav_right').html('&#xe697;');
+                $(this).children('.sub-menu').stop().slideUp();
+                $(this).siblings().children('.sub-menu').slideUp();
+            } else {
+                $(this).addClass('open');
+                $(this).children('a').find('.nav_right').html('&#xe6a6;');
+                $(this).children('.sub-menu').stop().slideDown();
+                $(this).siblings().children('.sub-menu').stop().slideUp();
+                $(this).siblings().find('.nav_right').html('&#xe697;');
+                $(this).siblings().removeClass('open');
+            }
+        } else {
+
+            var url = $(this).children('a').attr('_href');
+            var title = $(this).find('cite').html();
+            var index = $('.left-nav #nav li').index($(this));
+
+            for (var i = 0; i < $('.x-iframe').length; i++) {
+                if ($('.x-iframe').eq(i).attr('tab-id') == index + 1) {
+                    tab.tabChange(index + 1);
+                    event.stopPropagation();
+                    return;
+                }
+            }
+            ;
+
+            tab.tabAdd(title, url, index + 1);
+            tab.tabChange(index + 1);
+        }
+
+        event.stopPropagation();
+
+    })
+
+})
+var cateIds = [];
+
+function getCateId(cateId) {
+
+    $("tbody tr[fid=" + cateId + "]").each(function (index, el) {
+        id = $(el).attr('cate-id');
+        cateIds.push(id);
+        getCateId(id);
+    });
+}
+
+/*弹出层*/
+
+/*
+    参数解释:
+    title   标题
+    url     请求的url
+    id      需要操作的数据id
+    w       弹出层宽度(缺省调默认值)
+    h       弹出层高度(缺省调默认值)
+*/
+function x_admin_show(title, url, w, h) {
+    if (title == null || title == '') {
+        title = false;
+    }
+    ;
+    if (url == null || url == '') {
+        url = "404.html";
+    }
+    ;
+    if (w == null || w == '') {
+        w = ($(window).width() * 0.9);
+    }
+    ;
+    if (h == null || h == '') {
+        h = ($(window).height() - 50);
+    }
+    ;
+    layer.open({
+        type: 2,
+        area: [w + 'px', h + 'px'],
+        fix: false, //不固定
+        maxmin: true,
+        shadeClose: true,
+        shade: 0.4,
+        title: title,
+        content: url
+    });
+}
+
+/*关闭弹出框口*/
+function x_admin_close() {
+    var index = parent.layer.getFrameIndex(window.name);
+    parent.layer.close(index);
+}
+
+
+function formatDate(date) {
+    var date = new Date(date);
+    var YY = date.getFullYear() + '-';
+    var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+    var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
+    var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+    var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+    var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+    return YY + MM + DD + " " + hh + mm + ss;
+};
+
+

+ 511 - 0
web/UM-admin/js/city.js

@@ -0,0 +1,511 @@
+$.fn.xcity = function(pName,cName,aName){
+
+    var p = $(this).find('select[lay-filter=province]');
+
+    var c = $(this).find('select[lay-filter=city]');
+
+    var a = $(this).find('select[lay-filter=area]');
+
+    var cityList = [];
+
+    var areaList = [];
+
+    showP(provinceList);
+
+    showC(cityList);
+
+    showA(areaList);
+
+    function showP(provinceList) {
+        p.html('');
+
+        is_pName = false;
+        
+        for (var i in provinceList) {
+            
+            if(pName==provinceList[i].name){
+                is_pName = true;
+                cityList = provinceList[i].cityList;
+                p.append("<option selected value='"+provinceList[i].name+"'>"+provinceList[i].name+"</option>")
+            }else{
+                p.append("<option value='"+provinceList[i].name+"'>"+provinceList[i].name+"</option>")
+            }
+        }
+        if(!is_pName){
+            cityList = provinceList[0].cityList;
+        }
+        
+    }
+
+    function showC(cityList) {
+
+        c.html('');
+
+        is_cName = false;
+
+        for (var i in cityList) {
+            if(cName==cityList[i].name){
+                is_cName = true;
+                areaList = cityList[i].areaList;
+                c.append("<option selected value='"+cityList[i].name+"'>"+cityList[i].name+"</option>")
+            }else{
+                c.append("<option value='"+cityList[i].name+"'>"+cityList[i].name+"</option>")
+            }
+        }
+
+        if(!is_cName){
+            areaList = cityList[0].areaList;
+        }
+    }
+
+    function showA(areaList) {
+        a.html('');
+
+        for (var i in areaList) {
+            
+            if(aName==areaList[i]){
+                a.append("<option selected value='"+areaList[i]+"'>"+areaList[i]+"</option>")
+            }else{
+                a.append("<option value='"+areaList[i]+"'>"+areaList[i]+"</option>")
+            }
+        }
+    }
+
+    form.render('select');
+
+    form.on('select(province)', function(data){
+        pName = data.value;
+        showP(provinceList);
+        showC(cityList);
+        showA(areaList);
+        form.render('select');
+    });
+
+    form.on('select(city)', function(data){
+        cName = data.value;
+        showC(cityList);
+        showA(areaList);
+        form.render('select');
+    });
+
+
+
+}
+var provinceList = [
+{name:'北京', cityList:[		   
+{name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区']},		   
+{name:'县', areaList:['密云县','延庆县']}
+]},
+{name:'上海', cityList:[		   
+{name:'市辖区', areaList:['黄浦区','卢湾区','徐汇区','长宁区','静安区','普陀区','闸北区','虹口区','杨浦区','闵行区','宝山区','嘉定区','浦东新区','金山区','松江区','青浦区','南汇区','奉贤区']},		   
+{name:'县', areaList:['崇明县']}
+]},
+{name:'天津', cityList:[		   
+{name:'市辖区', areaList:['和平区','河东区','河西区','南开区','河北区','红桥区','塘沽区','汉沽区','大港区','东丽区','西青区','津南区','北辰区','武清区','宝坻区']},		   
+{name:'县', areaList:['宁河县','静海县','蓟 县']}
+]},
+{name:'重庆', cityList:[		   
+{name:'市辖区', areaList:['万州区','涪陵区','渝中区','大渡口区','江北区','沙坪坝区','九龙坡区','南岸区','北碚区','万盛区','双桥区','渝北区','巴南区','黔江区','长寿区']},		   
+{name:'县', areaList:['綦江县','潼南县','铜梁县','大足县','荣昌县','璧山县','梁平县','城口县','丰都县','垫江县','武隆县','忠 县','开 县','云阳县','奉节县','巫山县','巫溪县','石柱土家族自治县','秀山土家族苗族自治县','酉阳土家族苗族自治县','彭水苗族土家族自治县']},		   
+{name:'市', areaList:['江津市','合川市','永川市','南川市']}
+]},
+{name:'四川', cityList:[		   
+{name:'成都市', areaList:['市辖区','锦江区','青羊区','金牛区','武侯区','成华区','龙泉驿区','青白江区','新都区','温江县','金堂县','双流县','郫 县','大邑县','蒲江县','新津县','都江堰市','彭州市','邛崃市','崇州市']},		   
+{name:'自贡市', areaList:['市辖区','自流井区','贡井区','大安区','沿滩区','荣 县','富顺县']},		   
+{name:'攀枝花市', areaList:['市辖区','东 区','西 区','仁和区','米易县','盐边县']},		   
+{name:'泸州市', areaList:['市辖区','江阳区','纳溪区','龙马潭区','泸 县','合江县','叙永县','古蔺县']},		   
+{name:'德阳市', areaList:['市辖区','旌阳区','中江县','罗江县','广汉市','什邡市','绵竹市']},		   
+{name:'绵阳市', areaList:['市辖区','涪城区','游仙区','三台县','盐亭县','安 县','梓潼县','北川羌族自治县','平武县','江油市']},		   
+{name:'广元市', areaList:['市辖区','市中区','元坝区','朝天区','旺苍县','青川县','剑阁县','苍溪县']},		   
+{name:'遂宁市', areaList:['市辖区','船山区','安居区','蓬溪县','射洪县','大英县']},		   
+{name:'内江市', areaList:['市辖区','市中区','东兴区','威远县','资中县','隆昌县']},		   
+{name:'乐山市', areaList:['市辖区','市中区','沙湾区','五通桥区','金口河区','犍为县','井研县','夹江县','沐川县','峨边彝族自治县','马边彝族自治县','峨眉山市']},		   
+{name:'南充市', areaList:['市辖区','顺庆区','高坪区','嘉陵区','南部县','营山县','蓬安县','仪陇县','西充县','阆中市']},		   
+{name:'眉山市', areaList:['市辖区','东坡区','仁寿县','彭山县','洪雅县','丹棱县','青神县']},		   
+{name:'宜宾市', areaList:['市辖区','翠屏区','宜宾县','南溪县','江安县','长宁县','高 县','珙 县','筠连县','兴文县','屏山县']},		   
+{name:'广安市', areaList:['市辖区','广安区','岳池县','武胜县','邻水县','华莹市']},		   
+{name:'达州市', areaList:['市辖区','通川区','达 县','宣汉县','开江县','大竹县','渠 县','万源市']},		   
+{name:'雅安市', areaList:['市辖区','雨城区','名山县','荥经县','汉源县','石棉县','天全县','芦山县','宝兴县']},		   
+{name:'巴中市', areaList:['市辖区','巴州区','通江县','南江县','平昌县']},		   
+{name:'资阳市', areaList:['市辖区','雁江区','安岳县','乐至县','简阳市']},		   
+{name:'阿坝藏族羌族自治州', areaList:['汶川县','理 县','茂 县','松潘县','九寨沟县','金川县','小金县','黑水县','马尔康县','壤塘县','阿坝县','若尔盖县','红原县']},		   
+{name:'甘孜藏族自治州', areaList:['康定县','泸定县','丹巴县','九龙县','雅江县','道孚县','炉霍县','甘孜县','新龙县','德格县','白玉县','石渠县','色达县','理塘县','巴塘县','乡城县','稻城县','得荣县']},		   
+{name:'凉山彝族自治州', areaList:['西昌市','木里藏族自治县','盐源县','德昌县','会理县','会东县','宁南县','普格县','布拖县','金阳县','昭觉县','喜德县','冕宁县','越西县','甘洛县','美姑县','雷波县']}
+]},
+{name:'贵州', cityList:[		   
+{name:'贵阳市', areaList:['市辖区','南明区','云岩区','花溪区','乌当区','白云区','小河区','开阳县','息烽县','修文县','清镇市']},		   
+{name:'六盘水市', areaList:['钟山区','六枝特区','水城县','盘 县']},		   
+{name:'遵义市', areaList:['市辖区','红花岗区','汇川区','遵义县','桐梓县','绥阳县','正安县','道真仡佬族苗族自治县','务川仡佬族苗族自治县','凤冈县','湄潭县','余庆县','习水县','赤水市','仁怀市']},		   
+{name:'安顺市', areaList:['市辖区','西秀区','平坝县','普定县','镇宁布依族苗族自治县','关岭布依族苗族自治县','紫云苗族布依族自治县']},		   
+{name:'铜仁地区', areaList:['铜仁市','江口县','玉屏侗族自治县','石阡县','思南县','印江土家族苗族自治县','德江县','沿河土家族自治县','松桃苗族自治县','万山特区']},		   
+{name:'黔西南布依族苗族自治州', areaList:['兴义市','兴仁县','普安县','晴隆县','贞丰县','望谟县','册亨县','安龙县']},		   
+{name:'毕节地区', areaList:['毕节市','大方县','黔西县','金沙县','织金县','纳雍县','威宁彝族回族苗族自治县','赫章县']},		   
+{name:'黔东南苗族侗族自治州', areaList:['凯里市','黄平县','施秉县','三穗县','镇远县','岑巩县','天柱县','锦屏县','剑河县','台江县','黎平县','榕江县','从江县','雷山县','麻江县','丹寨县']},		   
+{name:'黔南布依族苗族自治州', areaList:['都匀市','福泉市','荔波县','贵定县','瓮安县','独山县','平塘县','罗甸县','长顺县','龙里县','惠水县','三都水族自治县']}
+]},
+{name:'云南', cityList:[		   
+{name:'昆明市', areaList:['市辖区','五华区','盘龙区','官渡区','西山区','东川区','呈贡县','晋宁县','富民县','宜良县','石林彝族自治县','嵩明县','禄劝彝族苗族自治县','寻甸回族彝族自治县','安宁市']},		   
+{name:'曲靖市', areaList:['市辖区','麒麟区','马龙县','陆良县','师宗县','罗平县','富源县','会泽县','沾益县','宣威市']},		   
+{name:'玉溪市', areaList:['市辖区','红塔区','江川县','澄江县','通海县','华宁县','易门县','峨山彝族自治县','新平彝族傣族自治县','元江哈尼族彝族傣族自治县']},		   
+{name:'保山市', areaList:['市辖区','隆阳区','施甸县','腾冲县','龙陵县','昌宁县']},		   
+{name:'昭通市', areaList:['市辖区','昭阳区','鲁甸县','巧家县','盐津县','大关县','永善县','绥江县','镇雄县','彝良县','威信县','水富县']},		   
+{name:'丽江市', areaList:['市辖区','古城区','玉龙纳西族自治县','永胜县','华坪县','宁蒗彝族自治县']},		   
+{name:'思茅市', areaList:['市辖区','翠云区','普洱哈尼族彝族自治县','墨江哈尼族自治县','景东彝族自治县','景谷傣族彝族自治县','镇沅彝族哈尼族拉祜族自治县','江城哈尼族彝族自治县','孟连傣族拉祜族佤族自治县','澜沧拉祜族自治县','西盟佤族自治县']},		   
+{name:'临沧市', areaList:['市辖区','临翔区','凤庆县','云 县','永德县','镇康县','双江拉祜族佤族布朗族傣族自治县','耿马傣族佤族自治县','沧源佤族自治县']},		   
+{name:'楚雄彝族自治州', areaList:['楚雄市','双柏县','牟定县','南华县','姚安县','大姚县','永仁县','元谋县','武定县','禄丰县']},		   
+{name:'红河哈尼族彝族自治州', areaList:['个旧市','开远市','蒙自县','屏边苗族自治县','建水县','石屏县','弥勒县','泸西县','元阳县','红河县','金平苗族瑶族傣族自治县','绿春县','河口瑶族自治县']},		   
+{name:'文山壮族苗族自治州', areaList:['文山县','砚山县','西畴县','麻栗坡县','马关县','丘北县','广南县','富宁县']},		   
+{name:'西双版纳傣族自治州', areaList:['景洪市','勐海县','勐腊县']},		   
+{name:'大理白族自治州', areaList:['大理市','漾濞彝族自治县','祥云县','宾川县','弥渡县','南涧彝族自治县','巍山彝族回族自治县','永平县','云龙县','洱源县','剑川县','鹤庆县']},		   
+{name:'德宏傣族景颇族自治州', areaList:['瑞丽市','潞西市','梁河县','盈江县','陇川县']},		   
+{name:'怒江傈僳族自治州', areaList:['泸水县','福贡县','贡山独龙族怒族自治县','兰坪白族普米族自治县']},		   
+{name:'迪庆藏族自治州', areaList:['香格里拉县','德钦县','维西傈僳族自治县']}
+]},
+{name:'西藏', cityList:[		   
+{name:'拉萨市', areaList:['市辖区','城关区','林周县','当雄县','尼木县','曲水县','堆龙德庆县','达孜县','墨竹工卡县']},		   
+{name:'昌都地区', areaList:['昌都县','江达县','贡觉县','类乌齐县','丁青县','察雅县','八宿县','左贡县','芒康县','洛隆县','边坝县']},		   
+{name:'山南地区', areaList:['乃东县','扎囊县','贡嘎县','桑日县','琼结县','曲松县','措美县','洛扎县','加查县','隆子县','错那县','浪卡子县']},		   
+{name:'日喀则地区', areaList:['日喀则市','南木林县','江孜县','定日县','萨迦县','拉孜县','昂仁县','谢通门县','白朗县','仁布县','康马县','定结县','仲巴县','亚东县','吉隆县','聂拉木县','萨嘎县','岗巴县']},		   
+{name:'那曲地区', areaList:['那曲县','嘉黎县','比如县','聂荣县','安多县','申扎县','索 县','班戈县','巴青县','尼玛县']},		   
+{name:'阿里地区', areaList:['普兰县','札达县','噶尔县','日土县','革吉县','改则县','措勤县']},		   
+{name:'林芝地区', areaList:['林芝县','工布江达县','米林县','墨脱县','波密县','察隅县','朗 县']}
+]},
+{name:'河南', cityList:[		   
+{name:'郑州市', areaList:['市辖区','中原区','二七区','管城回族区','金水区','上街区','邙山区','中牟县','巩义市','荥阳市','新密市','新郑市','登封市']},		   
+{name:'开封市', areaList:['市辖区','龙亭区','顺河回族区','鼓楼区','南关区','郊 区','杞 县','通许县','尉氏县','开封县','兰考县']},		   
+{name:'洛阳市', areaList:['市辖区','老城区','西工区','廛河回族区','涧西区','吉利区','洛龙区','孟津县','新安县','栾川县','嵩 县','汝阳县','宜阳县','洛宁县','伊川县','偃师市']},		   
+{name:'平顶山市', areaList:['市辖区','新华区','卫东区','石龙区','湛河区','宝丰县','叶 县','鲁山县','郏 县','舞钢市','汝州市']},		   
+{name:'安阳市', areaList:['市辖区','文峰区','北关区','殷都区','龙安区','安阳县','汤阴县','滑 县','内黄县','林州市']},		   
+{name:'鹤壁市', areaList:['市辖区','鹤山区','山城区','淇滨区','浚 县','淇 县']},		   
+{name:'新乡市', areaList:['市辖区','红旗区','卫滨区','凤泉区','牧野区','新乡县','获嘉县','原阳县','延津县','封丘县','长垣县','卫辉市','辉县市']},		   
+{name:'焦作市', areaList:['市辖区','解放区','中站区','马村区','山阳区','修武县','博爱县','武陟县','温 县','济源市','沁阳市','孟州市']},		   
+{name:'濮阳市', areaList:['市辖区','华龙区','清丰县','南乐县','范 县','台前县','濮阳县']},		   
+{name:'许昌市', areaList:['市辖区','魏都区','许昌县','鄢陵县','襄城县','禹州市','长葛市']},		   
+{name:'漯河市', areaList:['市辖区','源汇区','郾城区','召陵区','舞阳县','临颍县']},		   
+{name:'三门峡市', areaList:['市辖区','湖滨区','渑池县','陕 县','卢氏县','义马市','灵宝市']},		   
+{name:'南阳市', areaList:['市辖区','宛城区','卧龙区','南召县','方城县','西峡县','镇平县','内乡县','淅川县','社旗县','唐河县','新野县','桐柏县','邓州市']},		   
+{name:'商丘市', areaList:['市辖区','梁园区','睢阳区','民权县','睢 县','宁陵县','柘城县','虞城县','夏邑县','永城市']},		   
+{name:'信阳市', areaList:['市辖区','师河区','平桥区','罗山县','光山县','新 县','商城县','固始县','潢川县','淮滨县','息 县']},		   
+{name:'周口市', areaList:['市辖区','川汇区','扶沟县','西华县','商水县','沈丘县','郸城县','淮阳县','太康县','鹿邑县','项城市']},		   
+{name:'驻马店市', areaList:['市辖区','驿城区','西平县','上蔡县','平舆县','正阳县','确山县','泌阳县','汝南县','遂平县','新蔡县']}
+]},
+{name:'湖北', cityList:[		   
+{name:'武汉市', areaList:['市辖区','江岸区','江汉区','乔口区','汉阳区','武昌区','青山区','洪山区','东西湖区','汉南区','蔡甸区','江夏区','黄陂区','新洲区']},		   
+{name:'黄石市', areaList:['市辖区','黄石港区','西塞山区','下陆区','铁山区','阳新县','大冶市']},		   
+{name:'十堰市', areaList:['市辖区','茅箭区','张湾区','郧 县','郧西县','竹山县','竹溪县','房 县','丹江口市']},		   
+{name:'宜昌市', areaList:['市辖区','西陵区','伍家岗区','点军区','猇亭区','夷陵区','远安县','兴山县','秭归县','长阳土家族自治县','五峰土家族自治县','宜都市','当阳市','枝江市']},		   
+{name:'襄樊市', areaList:['市辖区','襄城区','樊城区','襄阳区','南漳县','谷城县','保康县','老河口市','枣阳市','宜城市']},		   
+{name:'鄂州市', areaList:['市辖区','梁子湖区','华容区','鄂城区']},		   
+{name:'荆门市', areaList:['市辖区','东宝区','掇刀区','京山县','沙洋县','钟祥市']},		   
+{name:'孝感市', areaList:['市辖区','孝南区','孝昌县','大悟县','云梦县','应城市','安陆市','汉川市']},		   
+{name:'荆州市', areaList:['市辖区','沙市区','荆州区','公安县','监利县','江陵县','石首市','洪湖市','松滋市']},		   
+{name:'黄冈市', areaList:['市辖区','黄州区','团风县','红安县','罗田县','英山县','浠水县','蕲春县','黄梅县','麻城市','武穴市']},		   
+{name:'咸宁市', areaList:['市辖区','咸安区','嘉鱼县','通城县','崇阳县','通山县','赤壁市']},		   
+{name:'随州市', areaList:['市辖区','曾都区','广水市']},		   
+{name:'恩施土家族苗族自治州', areaList:['恩施市','利川市','建始县','巴东县','宣恩县','咸丰县','来凤县','鹤峰县']},		   
+{name:'省直辖行政单位', areaList:['仙桃市','潜江市','天门市','神农架林区']}
+]},
+{name:'湖南', cityList:[		   
+{name:'长沙市', areaList:['市辖区','芙蓉区','天心区','岳麓区','开福区','雨花区','长沙县','望城县','宁乡县','浏阳市']},		   
+{name:'株洲市', areaList:['市辖区','荷塘区','芦淞区','石峰区','天元区','株洲县','攸 县','茶陵县','炎陵县','醴陵市']},		   
+{name:'湘潭市', areaList:['市辖区','雨湖区','岳塘区','湘潭县','湘乡市','韶山市']},		   
+{name:'衡阳市', areaList:['市辖区','珠晖区','雁峰区','石鼓区','蒸湘区','南岳区','衡阳县','衡南县','衡山县','衡东县','祁东县','耒阳市','常宁市']},		   
+{name:'邵阳市', areaList:['市辖区','双清区','大祥区','北塔区','邵东县','新邵县','邵阳县','隆回县','洞口县','绥宁县','新宁县','城步苗族自治县','武冈市']},		   
+{name:'岳阳市', areaList:['市辖区','岳阳楼区','云溪区','君山区','岳阳县','华容县','湘阴县','平江县','汨罗市','临湘市']},		   
+{name:'常德市', areaList:['市辖区','武陵区','鼎城区','安乡县','汉寿县','澧 县','临澧县','桃源县','石门县','津市市']},		   
+{name:'张家界市', areaList:['市辖区','永定区','武陵源区','慈利县','桑植县']},		   
+{name:'益阳市', areaList:['市辖区','资阳区','赫山区','南 县','桃江县','安化县','沅江市']},		   
+{name:'郴州市', areaList:['市辖区','北湖区','苏仙区','桂阳县','宜章县','永兴县','嘉禾县','临武县','汝城县','桂东县','安仁县','资兴市']},		   
+{name:'永州市', areaList:['市辖区','芝山区','冷水滩区','祁阳县','东安县','双牌县','道 县','江永县','宁远县','蓝山县','新田县','江华瑶族自治县']},		   
+{name:'怀化市', areaList:['市辖区','鹤城区','中方县','沅陵县','辰溪县','溆浦县','会同县','麻阳苗族自治县','新晃侗族自治县','芷江侗族自治县','靖州苗族侗族自治县','通道侗族自治县','洪江市']},		   
+{name:'娄底市', areaList:['市辖区','娄星区','双峰县','新化县','冷水江市','涟源市']},		   
+{name:'湘西土家族苗族自治州', areaList:['吉首市','泸溪县','凤凰县','花垣县','保靖县','古丈县','永顺县','龙山县']}
+]},
+{name:'广东', cityList:[		   
+{name:'广州市', areaList:['市辖区','东山区','荔湾区','越秀区','海珠区','天河区','芳村区','白云区','黄埔区','番禺区','花都区','增城市','从化市']},		   
+{name:'韶关市', areaList:['市辖区','武江区','浈江区','曲江区','始兴县','仁化县','翁源县','乳源瑶族自治县','新丰县','乐昌市','南雄市']},		   
+{name:'深圳市', areaList:['市辖区','罗湖区','福田区','南山区','宝安区','龙岗区','盐田区']},		   
+{name:'珠海市', areaList:['市辖区','香洲区','斗门区','金湾区']},		   
+{name:'汕头市', areaList:['市辖区','龙湖区','金平区','濠江区','潮阳区','潮南区','澄海区','南澳县']},		   
+{name:'佛山市', areaList:['市辖区','禅城区','南海区','顺德区','三水区','高明区']},		   
+{name:'江门市', areaList:['市辖区','蓬江区','江海区','新会区','台山市','开平市','鹤山市','恩平市']},		   
+{name:'湛江市', areaList:['市辖区','赤坎区','霞山区','坡头区','麻章区','遂溪县','徐闻县','廉江市','雷州市','吴川市']},		   
+{name:'茂名市', areaList:['市辖区','茂南区','茂港区','电白县','高州市','化州市','信宜市']},		   
+{name:'肇庆市', areaList:['市辖区','端州区','鼎湖区','广宁县','怀集县','封开县','德庆县','高要市','四会市']},		   
+{name:'惠州市', areaList:['市辖区','惠城区','惠阳区','博罗县','惠东县','龙门县']},		   
+{name:'梅州市', areaList:['市辖区','梅江区','梅 县','大埔县','丰顺县','五华县','平远县','蕉岭县','兴宁市']},		   
+{name:'汕尾市', areaList:['市辖区','城 区','海丰县','陆河县','陆丰市']},		   
+{name:'河源市', areaList:['市辖区','源城区','紫金县','龙川县','连平县','和平县','东源县']},		   
+{name:'阳江市', areaList:['市辖区','江城区','阳西县','阳东县','阳春市']},		   
+{name:'清远市', areaList:['市辖区','清城区','佛冈县','阳山县','连山壮族瑶族自治县','连南瑶族自治县','清新县','英德市','连州市']},		   
+{name:'东莞市', areaList:['东莞市']},		   
+{name:'中山市', areaList:['中山市']},		   
+{name:'潮州市', areaList:['市辖区','湘桥区','潮安县','饶平县']},		   
+{name:'揭阳市', areaList:['市辖区','榕城区','揭东县','揭西县','惠来县','普宁市']},		   
+{name:'云浮市', areaList:['市辖区','云城区','新兴县','郁南县','云安县','罗定市']}
+]},
+{name:'广西', cityList:[		   
+{name:'南宁市', areaList:['市辖区','兴宁区','青秀区','江南区','西乡塘区','良庆区','邕宁区','武鸣县','隆安县','马山县','上林县','宾阳县','横 县']},		   
+{name:'柳州市', areaList:['市辖区','城中区','鱼峰区','柳南区','柳北区','柳江县','柳城县','鹿寨县','融安县','融水苗族自治县','三江侗族自治县']},		   
+{name:'桂林市', areaList:['市辖区','秀峰区','叠彩区','象山区','七星区','雁山区','阳朔县','临桂县','灵川县','全州县','兴安县','永福县','灌阳县','龙胜各族自治县','资源县','平乐县','荔蒲县','恭城瑶族自治县']},		   
+{name:'梧州市', areaList:['市辖区','万秀区','蝶山区','长洲区','苍梧县','藤 县','蒙山县','岑溪市']},		   
+{name:'北海市', areaList:['市辖区','海城区','银海区','铁山港区','合浦县']},		   
+{name:'防城港市', areaList:['市辖区','港口区','防城区','上思县','东兴市']},		   
+{name:'钦州市', areaList:['市辖区','钦南区','钦北区','灵山县','浦北县']},		   
+{name:'贵港市', areaList:['市辖区','港北区','港南区','覃塘区','平南县','桂平市']},		   
+{name:'玉林市', areaList:['市辖区','玉州区','容 县','陆川县','博白县','兴业县','北流市']},		   
+{name:'百色市', areaList:['市辖区','右江区','田阳县','田东县','平果县','德保县','靖西县','那坡县','凌云县','乐业县','田林县','西林县','隆林各族自治县']},		   
+{name:'贺州市', areaList:['市辖区','八步区','昭平县','钟山县','富川瑶族自治县']},		   
+{name:'河池市', areaList:['市辖区','金城江区','南丹县','天峨县','凤山县','东兰县','罗城仫佬族自治县','环江毛南族自治县','巴马瑶族自治县','都安瑶族自治县','大化瑶族自治县','宜州市']},		   
+{name:'来宾市', areaList:['市辖区','兴宾区','忻城县','象州县','武宣县','金秀瑶族自治县','合山市']},		   
+{name:'崇左市', areaList:['市辖区','江洲区','扶绥县','宁明县','龙州县','大新县','天等县','凭祥市']}
+]},
+{name:'陕西', cityList:[		   
+{name:'西安市', areaList:['市辖区','新城区','碑林区','莲湖区','灞桥区','未央区','雁塔区','阎良区','临潼区','长安区','蓝田县','周至县','户 县','高陵县']},		   
+{name:'铜川市', areaList:['市辖区','王益区','印台区','耀州区','宜君县']},		   
+{name:'宝鸡市', areaList:['市辖区','渭滨区','金台区','陈仓区','凤翔县','岐山县','扶风县','眉 县','陇 县','千阳县','麟游县','凤 县','太白县']},		   
+{name:'咸阳市', areaList:['市辖区','秦都区','杨凌区','渭城区','三原县','泾阳县','乾 县','礼泉县','永寿县','彬 县','长武县','旬邑县','淳化县','武功县','兴平市']},		   
+{name:'渭南市', areaList:['市辖区','临渭区','华 县','潼关县','大荔县','合阳县','澄城县','蒲城县','白水县','富平县','韩城市','华阴市']},		   
+{name:'延安市', areaList:['市辖区','宝塔区','延长县','延川县','子长县','安塞县','志丹县','吴旗县','甘泉县','富 县','洛川县','宜川县','黄龙县','黄陵县']},		   
+{name:'汉中市', areaList:['市辖区','汉台区','南郑县','城固县','洋 县','西乡县','勉 县','宁强县','略阳县','镇巴县','留坝县','佛坪县']},		   
+{name:'榆林市', areaList:['市辖区','榆阳区','神木县','府谷县','横山县','靖边县','定边县','绥德县','米脂县','佳 县','吴堡县','清涧县','子洲县']},		   
+{name:'安康市', areaList:['市辖区','汉滨区','汉阴县','石泉县','宁陕县','紫阳县','岚皋县','平利县','镇坪县','旬阳县','白河县']},		   
+{name:'商洛市', areaList:['市辖区','商州区','洛南县','丹凤县','商南县','山阳县','镇安县','柞水县']}
+]},
+{name:'甘肃', cityList:[		   
+{name:'兰州市', areaList:['市辖区','城关区','七里河区','西固区','安宁区','红古区','永登县','皋兰县','榆中县']},		   
+{name:'嘉峪关市', areaList:['市辖区']},		   
+{name:'金昌市', areaList:['市辖区','金川区','永昌县']},		   
+{name:'白银市', areaList:['市辖区','白银区','平川区','靖远县','会宁县','景泰县']},		   
+{name:'天水市', areaList:['市辖区','秦城区','北道区','清水县','秦安县','甘谷县','武山县','张家川回族自治县']},		   
+{name:'武威市', areaList:['市辖区','凉州区','民勤县','古浪县','天祝藏族自治县']},		   
+{name:'张掖市', areaList:['市辖区','甘州区','肃南裕固族自治县','民乐县','临泽县','高台县','山丹县']},		   
+{name:'平凉市', areaList:['市辖区','崆峒区','泾川县','灵台县','崇信县','华亭县','庄浪县','静宁县']},		   
+{name:'酒泉市', areaList:['市辖区','肃州区','金塔县','安西县','肃北蒙古族自治县','阿克塞哈萨克族自治县','玉门市','敦煌市']},		   
+{name:'庆阳市', areaList:['市辖区','西峰区','庆城县','环 县','华池县','合水县','正宁县','宁 县','镇原县']},		   
+{name:'定西市', areaList:['市辖区','安定区','通渭县','陇西县','渭源县','临洮县','漳 县','岷 县']},		   
+{name:'陇南市', areaList:['市辖区','武都区','成 县','文 县','宕昌县','康 县','西和县','礼 县','徽 县','两当县']},		   
+{name:'临夏回族自治州', areaList:['临夏市','临夏县','康乐县','永靖县','广河县','和政县','东乡族自治县','积石山保安族东乡族撒拉族自治县']},		   
+{name:'甘南藏族自治州', areaList:['合作市','临潭县','卓尼县','舟曲县','迭部县','玛曲县','碌曲县','夏河县']}
+]},
+{name:'青海', cityList:[		   
+{name:'西宁市', areaList:['市辖区','城东区','城中区','城西区','城北区','大通回族土族自治县','湟中县','湟源县']},		   
+{name:'海东地区', areaList:['平安县','民和回族土族自治县','乐都县','互助土族自治县','化隆回族自治县','循化撒拉族自治县']},		   
+{name:'海北藏族自治州', areaList:['门源回族自治县','祁连县','海晏县','刚察县']},		   
+{name:'黄南藏族自治州', areaList:['同仁县','尖扎县','泽库县','河南蒙古族自治县']},		   
+{name:'海南藏族自治州', areaList:['共和县','同德县','贵德县','兴海县','贵南县']},		   
+{name:'果洛藏族自治州', areaList:['玛沁县','班玛县','甘德县','达日县','久治县','玛多县']},		   
+{name:'玉树藏族自治州', areaList:['玉树县','杂多县','称多县','治多县','囊谦县','曲麻莱县']},		   
+{name:'海西蒙古族藏族自治州', areaList:['格尔木市','德令哈市','乌兰县','都兰县','天峻县']}
+]},
+{name:'宁夏', cityList:[		   
+{name:'银川市', areaList:['市辖区','兴庆区','西夏区','金凤区','永宁县','贺兰县','灵武市']},		   
+{name:'石嘴山市', areaList:['市辖区','大武口区','惠农区','平罗县']},		   
+{name:'吴忠市', areaList:['市辖区','利通区','盐池县','同心县','青铜峡市']},		   
+{name:'固原市', areaList:['市辖区','原州区','西吉县','隆德县','泾源县','彭阳县','海原县']},		   
+{name:'中卫市', areaList:['市辖区','沙坡头区','中宁县']}
+]},
+{name:'新疆', cityList:[		   
+{name:'乌鲁木齐市', areaList:['市辖区','天山区','沙依巴克区','新市区','水磨沟区','头屯河区','达坂城区','东山区','乌鲁木齐县']},		   
+{name:'克拉玛依市', areaList:['市辖区','独山子区','克拉玛依区','白碱滩区','乌尔禾区']},		   
+{name:'吐鲁番地区', areaList:['吐鲁番市','鄯善县','托克逊县']},		   
+{name:'哈密地区', areaList:['哈密市','巴里坤哈萨克自治县','伊吾县']},		   
+{name:'昌吉回族自治州', areaList:['昌吉市','阜康市','米泉市','呼图壁县','玛纳斯县','奇台县','吉木萨尔县','木垒哈萨克自治县']},		   
+{name:'博尔塔拉蒙古自治州', areaList:['博乐市','精河县','温泉县']},		   
+{name:'巴音郭楞蒙古自治州', areaList:['库尔勒市','轮台县','尉犁县','若羌县','且末县','焉耆回族自治县','和静县','和硕县','博湖县']},		   
+{name:'阿克苏地区', areaList:['阿克苏市','温宿县','库车县','沙雅县','新和县','拜城县','乌什县','阿瓦提县','柯坪县']},		   
+{name:'克孜勒苏柯尔克孜自治州', areaList:['阿图什市','阿克陶县','阿合奇县','乌恰县']},		   
+{name:'喀什地区', areaList:['喀什市','疏附县','疏勒县','英吉沙县','泽普县','莎车县','叶城县','麦盖提县','岳普湖县','伽师县','巴楚县','塔什库尔干塔吉克自治县']},		   
+{name:'和田地区', areaList:['和田市','和田县','墨玉县','皮山县','洛浦县','策勒县','于田县','民丰县']},		   
+{name:'伊犁哈萨克自治州', areaList:['伊宁市','奎屯市','伊宁县','察布查尔锡伯自治县','霍城县','巩留县','新源县','昭苏县','特克斯县','尼勒克县']},		   
+{name:'塔城地区', areaList:['塔城市','乌苏市','额敏县','沙湾县','托里县','裕民县','和布克赛尔蒙古自治县']},		   
+{name:'阿勒泰地区', areaList:['阿勒泰市','布尔津县','富蕴县','福海县','哈巴河县','青河县','吉木乃县']},		   
+{name:'省直辖行政单位', areaList:['石河子市','阿拉尔市','图木舒克市','五家渠市']}
+]},
+{name:'河北', cityList:[		   
+{name:'石家庄市', areaList:['市辖区','长安区','桥东区','桥西区','新华区','井陉矿区','裕华区','井陉县','正定县','栾城县','行唐县','灵寿县','高邑县','深泽县','赞皇县','无极县','平山县','元氏县','赵 县','辛集市','藁城市','晋州市','新乐市','鹿泉市']},		   
+{name:'唐山市', areaList:['市辖区','路南区','路北区','古冶区','开平区','丰南区','丰润区','滦 县','滦南县','乐亭县','迁西县','玉田县','唐海县','遵化市','迁安市']},		   
+{name:'秦皇岛市', areaList:['市辖区','海港区','山海关区','北戴河区','青龙满族自治县','昌黎县','抚宁县','卢龙县']},		   
+{name:'邯郸市', areaList:['市辖区','邯山区','丛台区','复兴区','峰峰矿区','邯郸县','临漳县','成安县','大名县','涉 县','磁 县','肥乡县','永年县','邱 县','鸡泽县','广平县','馆陶县','魏 县','曲周县','武安市']},		   
+{name:'邢台市', areaList:['市辖区','桥东区','桥西区','邢台县','临城县','内丘县','柏乡县','隆尧县','任 县','南和县','宁晋县','巨鹿县','新河县','广宗县','平乡县','威 县','清河县','临西县','南宫市','沙河市']},		   
+{name:'保定市', areaList:['市辖区','新市区','北市区','南市区','满城县','清苑县','涞水县','阜平县','徐水县','定兴县','唐 县','高阳县','容城县','涞源县','望都县','安新县','易 县','曲阳县','蠡 县','顺平县','博野县','雄 县','涿州市','定州市','安国市','高碑店市']},		   
+{name:'张家口市', areaList:['市辖区','桥东区','桥西区','宣化区','下花园区','宣化县','张北县','康保县','沽源县','尚义县','蔚 县','阳原县','怀安县','万全县','怀来县','涿鹿县','赤城县','崇礼县']},		   
+{name:'承德市', areaList:['市辖区','双桥区','双滦区','鹰手营子矿区','承德县','兴隆县','平泉县','滦平县','隆化县','丰宁满族自治县','宽城满族自治县','围场满族蒙古族自治县']},		   
+{name:'沧州市', areaList:['市辖区','新华区','运河区','沧 县','青 县','东光县','海兴县','盐山县','肃宁县','南皮县','吴桥县','献 县','孟村回族自治县','泊头市','任丘市','黄骅市','河间市']},		   
+{name:'廊坊市', areaList:['市辖区','安次区','广阳区','固安县','永清县','香河县','大城县','文安县','大厂回族自治县','霸州市','三河市']},		   
+{name:'衡水市', areaList:['市辖区','桃城区','枣强县','武邑县','武强县','饶阳县','安平县','故城县','景 县','阜城县','冀州市','深州市']}
+]},
+{name:'山西', cityList:[		   
+{name:'太原市', areaList:['市辖区','小店区','迎泽区','杏花岭区','尖草坪区','万柏林区','晋源区','清徐县','阳曲县','娄烦县','古交市']},		   
+{name:'大同市', areaList:['市辖区','城 区','矿 区','南郊区','新荣区','阳高县','天镇县','广灵县','灵丘县','浑源县','左云县','大同县']},		   
+{name:'阳泉市', areaList:['市辖区','城 区','矿 区','郊 区','平定县','盂 县']},		   
+{name:'长治市', areaList:['市辖区','城 区','郊 区','长治县','襄垣县','屯留县','平顺县','黎城县','壶关县','长子县','武乡县','沁 县','沁源县','潞城市']},		   
+{name:'晋城市', areaList:['市辖区','城 区','沁水县','阳城县','陵川县','泽州县','高平市']},		   
+{name:'朔州市', areaList:['市辖区','朔城区','平鲁区','山阴县','应 县','右玉县','怀仁县']},		   
+{name:'晋中市', areaList:['市辖区','榆次区','榆社县','左权县','和顺县','昔阳县','寿阳县','太谷县','祁 县','平遥县','灵石县','介休市']},		   
+{name:'运城市', areaList:['市辖区','盐湖区','临猗县','万荣县','闻喜县','稷山县','新绛县','绛 县','垣曲县','夏 县','平陆县','芮城县','永济市','河津市']},		   
+{name:'忻州市', areaList:['市辖区','忻府区','定襄县','五台县','代 县','繁峙县','宁武县','静乐县','神池县','五寨县','岢岚县','河曲县','保德县','偏关县','原平市']},		   
+{name:'临汾市', areaList:['市辖区','尧都区','曲沃县','翼城县','襄汾县','洪洞县','古 县','安泽县','浮山县','吉 县','乡宁县','大宁县','隰 县','永和县','蒲 县','汾西县','侯马市','霍州市']},		   
+{name:'吕梁市', areaList:['市辖区','离石区','文水县','交城县','兴 县','临 县','柳林县','石楼县','岚 县','方山县','中阳县','交口县','孝义市','汾阳市']}
+]},
+{name:'内蒙古', cityList:[		   
+{name:'呼和浩特市', areaList:['市辖区','新城区','回民区','玉泉区','赛罕区','土默特左旗','托克托县','和林格尔县','清水河县','武川县']},		   
+{name:'包头市', areaList:['市辖区','东河区','昆都仑区','青山区','石拐区','白云矿区','九原区','土默特右旗','固阳县','达尔罕茂明安联合旗']},		   
+{name:'乌海市', areaList:['市辖区','海勃湾区','海南区','乌达区']},		   
+{name:'赤峰市', areaList:['市辖区','红山区','元宝山区','松山区','阿鲁科尔沁旗','巴林左旗','巴林右旗','林西县','克什克腾旗','翁牛特旗','喀喇沁旗','宁城县','敖汉旗']},		   
+{name:'通辽市', areaList:['市辖区','科尔沁区','科尔沁左翼中旗','科尔沁左翼后旗','开鲁县','库伦旗','奈曼旗','扎鲁特旗','霍林郭勒市']},		   
+{name:'鄂尔多斯市', areaList:['东胜区','达拉特旗','准格尔旗','鄂托克前旗','鄂托克旗','杭锦旗','乌审旗','伊金霍洛旗']},		   
+{name:'呼伦贝尔市', areaList:['市辖区','海拉尔区','阿荣旗','莫力达瓦达斡尔族自治旗','鄂伦春自治旗','鄂温克族自治旗','陈巴尔虎旗','新巴尔虎左旗','新巴尔虎右旗','满洲里市','牙克石市','扎兰屯市','额尔古纳市','根河市']},		   
+{name:'巴彦淖尔市', areaList:['市辖区','临河区','五原县','磴口县','乌拉特前旗','乌拉特中旗','乌拉特后旗','杭锦后旗']},		   
+{name:'乌兰察布市', areaList:['市辖区','集宁区','卓资县','化德县','商都县','兴和县','凉城县','察哈尔右翼前旗','察哈尔右翼中旗','察哈尔右翼后旗','四子王旗','丰镇市']},		   
+{name:'兴安盟', areaList:['乌兰浩特市','阿尔山市','科尔沁右翼前旗','科尔沁右翼中旗','扎赉特旗','突泉县']},		   
+{name:'锡林郭勒盟', areaList:['二连浩特市','锡林浩特市','阿巴嘎旗','苏尼特左旗','苏尼特右旗','东乌珠穆沁旗','西乌珠穆沁旗','太仆寺旗','镶黄旗','正镶白旗','正蓝旗','多伦县']},		   
+{name:'阿拉善盟', areaList:['阿拉善左旗','阿拉善右旗','额济纳旗']}
+]},
+{name:'江苏', cityList:[		   
+{name:'南京市', areaList:['市辖区','玄武区','白下区','秦淮区','建邺区','鼓楼区','下关区','浦口区','栖霞区','雨花台区','江宁区','六合区','溧水县','高淳县']},		   
+{name:'无锡市', areaList:['市辖区','崇安区','南长区','北塘区','锡山区','惠山区','滨湖区','江阴市','宜兴市']},		   
+{name:'徐州市', areaList:['市辖区','鼓楼区','云龙区','九里区','贾汪区','泉山区','丰 县','沛 县','铜山县','睢宁县','新沂市','邳州市']},		   
+{name:'常州市', areaList:['市辖区','天宁区','钟楼区','戚墅堰区','新北区','武进区','溧阳市','金坛市']},		   
+{name:'苏州市', areaList:['市辖区','沧浪区','平江区','金阊区','虎丘区','吴中区','相城区','常熟市','张家港市','昆山市','吴江市','太仓市']},		   
+{name:'南通市', areaList:['市辖区','崇川区','港闸区','海安县','如东县','启东市','如皋市','通州市','海门市']},		   
+{name:'连云港市', areaList:['市辖区','连云区','新浦区','海州区','赣榆县','东海县','灌云县','灌南县']},		   
+{name:'淮安市', areaList:['市辖区','清河区','楚州区','淮阴区','清浦区','涟水县','洪泽县','盱眙县','金湖县']},		   
+{name:'盐城市', areaList:['市辖区','亭湖区','盐都区','响水县','滨海县','阜宁县','射阳县','建湖县','东台市','大丰市']},		   
+{name:'扬州市', areaList:['市辖区','广陵区','邗江区','郊 区','宝应县','仪征市','高邮市','江都市']},		   
+{name:'镇江市', areaList:['市辖区','京口区','润州区','丹徒区','丹阳市','扬中市','句容市']},		   
+{name:'泰州市', areaList:['市辖区','海陵区','高港区','兴化市','靖江市','泰兴市','姜堰市']},		   
+{name:'宿迁市', areaList:['市辖区','宿城区','宿豫区','沭阳县','泗阳县','泗洪县']}
+]},
+{name:'浙江', cityList:[		   
+{name:'杭州市', areaList:['市辖区','上城区','下城区','江干区','拱墅区','西湖区','滨江区','萧山区','余杭区','桐庐县','淳安县','建德市','富阳市','临安市']},		   
+{name:'宁波市', areaList:['市辖区','海曙区','江东区','江北区','北仑区','镇海区','鄞州区','象山县','宁海县','余姚市','慈溪市','奉化市']},		   
+{name:'温州市', areaList:['市辖区','鹿城区','龙湾区','瓯海区','洞头县','永嘉县','平阳县','苍南县','文成县','泰顺县','瑞安市','乐清市']},		   
+{name:'嘉兴市', areaList:['市辖区','秀城区','秀洲区','嘉善县','海盐县','海宁市','平湖市','桐乡市']},		   
+{name:'湖州市', areaList:['市辖区','吴兴区','南浔区','德清县','长兴县','安吉县']},		   
+{name:'绍兴市', areaList:['市辖区','越城区','绍兴县','新昌县','诸暨市','上虞市','嵊州市']},		   
+{name:'金华市', areaList:['市辖区','婺城区','金东区','武义县','浦江县','磐安县','兰溪市','义乌市','东阳市','永康市']},		   
+{name:'衢州市', areaList:['市辖区','柯城区','衢江区','常山县','开化县','龙游县','江山市']},		   
+{name:'舟山市', areaList:['市辖区','定海区','普陀区','岱山县','嵊泗县']},		   
+{name:'台州市', areaList:['市辖区','椒江区','黄岩区','路桥区','玉环县','三门县','天台县','仙居县','温岭市','临海市']},		   
+{name:'丽水市', areaList:['市辖区','莲都区','青田县','缙云县','遂昌县','松阳县','云和县','庆元县','景宁畲族自治县','龙泉市']}
+]},
+{name:'安徽', cityList:[		   
+{name:'合肥市', areaList:['市辖区','瑶海区','庐阳区','蜀山区','包河区','长丰县','肥东县','肥西县']},		   
+{name:'芜湖市', areaList:['市辖区','镜湖区','马塘区','新芜区','鸠江区','芜湖县','繁昌县','南陵县']},		   
+{name:'蚌埠市', areaList:['市辖区','龙子湖区','蚌山区','禹会区','淮上区','怀远县','五河县','固镇县']},		   
+{name:'淮南市', areaList:['市辖区','大通区','田家庵区','谢家集区','八公山区','潘集区','凤台县']},		   
+{name:'马鞍山市', areaList:['市辖区','金家庄区','花山区','雨山区','当涂县']},		   
+{name:'淮北市', areaList:['市辖区','杜集区','相山区','烈山区','濉溪县']},		   
+{name:'铜陵市', areaList:['市辖区','铜官山区','狮子山区','郊 区','铜陵县']},		   
+{name:'安庆市', areaList:['市辖区','迎江区','大观区','郊 区','怀宁县','枞阳县','潜山县','太湖县','宿松县','望江县','岳西县','桐城市']},		   
+{name:'黄山市', areaList:['市辖区','屯溪区','黄山区','徽州区','歙 县','休宁县','黟 县','祁门县']},		   
+{name:'滁州市', areaList:['市辖区','琅琊区','南谯区','来安县','全椒县','定远县','凤阳县','天长市','明光市']},		   
+{name:'阜阳市', areaList:['市辖区','颍州区','颍东区','颍泉区','临泉县','太和县','阜南县','颍上县','界首市']},		   
+{name:'宿州市', areaList:['市辖区','墉桥区','砀山县','萧 县','灵璧县','泗 县']},		   
+{name:'巢湖市', areaList:['市辖区','居巢区','庐江县','无为县','含山县','和 县']},		   
+{name:'六安市', areaList:['市辖区','金安区','裕安区','寿 县','霍邱县','舒城县','金寨县','霍山县']},		   
+{name:'亳州市', areaList:['市辖区','谯城区','涡阳县','蒙城县','利辛县']},		   
+{name:'池州市', areaList:['市辖区','贵池区','东至县','石台县','青阳县']},		   
+{name:'宣城市', areaList:['市辖区','宣州区','郎溪县','广德县','泾 县','绩溪县','旌德县','宁国市']}
+]},
+{name:'福建', cityList:[		   
+{name:'福州市', areaList:['市辖区','鼓楼区','台江区','仓山区','马尾区','晋安区','闽侯县','连江县','罗源县','闽清县','永泰县','平潭县','福清市','长乐市']},		   
+{name:'厦门市', areaList:['市辖区','思明区','海沧区','湖里区','集美区','同安区','翔安区']},		   
+{name:'莆田市', areaList:['市辖区','城厢区','涵江区','荔城区','秀屿区','仙游县']},		   
+{name:'三明市', areaList:['市辖区','梅列区','三元区','明溪县','清流县','宁化县','大田县','尤溪县','沙 县','将乐县','泰宁县','建宁县','永安市']},		   
+{name:'泉州市', areaList:['市辖区','鲤城区','丰泽区','洛江区','泉港区','惠安县','安溪县','永春县','德化县','金门县','石狮市','晋江市','南安市']},		   
+{name:'漳州市', areaList:['市辖区','芗城区','龙文区','云霄县','漳浦县','诏安县','长泰县','东山县','南靖县','平和县','华安县','龙海市']},		   
+{name:'南平市', areaList:['市辖区','延平区','顺昌县','浦城县','光泽县','松溪县','政和县','邵武市','武夷山市','建瓯市','建阳市']},		   
+{name:'龙岩市', areaList:['市辖区','新罗区','长汀县','永定县','上杭县','武平县','连城县','漳平市']},		   
+{name:'宁德市', areaList:['市辖区','蕉城区','霞浦县','古田县','屏南县','寿宁县','周宁县','柘荣县','福安市','福鼎市']}
+]},
+{name:'江西', cityList:[		   
+{name:'南昌市', areaList:['市辖区','东湖区','西湖区','青云谱区','湾里区','青山湖区','南昌县','新建县','安义县','进贤县']},		   
+{name:'景德镇市', areaList:['市辖区','昌江区','珠山区','浮梁县','乐平市']},		   
+{name:'萍乡市', areaList:['市辖区','安源区','湘东区','莲花县','上栗县','芦溪县']},		   
+{name:'九江市', areaList:['市辖区','庐山区','浔阳区','九江县','武宁县','修水县','永修县','德安县','星子县','都昌县','湖口县','彭泽县','瑞昌市']},		   
+{name:'新余市', areaList:['市辖区','渝水区','分宜县']},		   
+{name:'鹰潭市', areaList:['市辖区','月湖区','余江县','贵溪市']},		   
+{name:'赣州市', areaList:['市辖区','章贡区','赣 县','信丰县','大余县','上犹县','崇义县','安远县','龙南县','定南县','全南县','宁都县','于都县','兴国县','会昌县','寻乌县','石城县','瑞金市','南康市']},		   
+{name:'吉安市', areaList:['市辖区','吉州区','青原区','吉安县','吉水县','峡江县','新干县','永丰县','泰和县','遂川县','万安县','安福县','永新县','井冈山市']},		   
+{name:'宜春市', areaList:['市辖区','袁州区','奉新县','万载县','上高县','宜丰县','靖安县','铜鼓县','丰城市','樟树市','高安市']},		   
+{name:'抚州市', areaList:['市辖区','临川区','南城县','黎川县','南丰县','崇仁县','乐安县','宜黄县','金溪县','资溪县','东乡县','广昌县']},		   
+{name:'上饶市', areaList:['市辖区','信州区','上饶县','广丰县','玉山县','铅山县','横峰县','弋阳县','余干县','鄱阳县','万年县','婺源县','德兴市']}
+]},
+{name:'山东', cityList:[		   
+{name:'济南市', areaList:['市辖区','历下区','市中区','槐荫区','天桥区','历城区','长清区','平阴县','济阳县','商河县','章丘市']},		   
+{name:'青岛市', areaList:['市辖区','市南区','市北区','四方区','黄岛区','崂山区','李沧区','城阳区','胶州市','即墨市','平度市','胶南市','莱西市']},		   
+{name:'淄博市', areaList:['市辖区','淄川区','张店区','博山区','临淄区','周村区','桓台县','高青县','沂源县']},		   
+{name:'枣庄市', areaList:['市辖区','市中区','薛城区','峄城区','台儿庄区','山亭区','滕州市']},		   
+{name:'东营市', areaList:['市辖区','东营区','河口区','垦利县','利津县','广饶县']},		   
+{name:'烟台市', areaList:['市辖区','芝罘区','福山区','牟平区','莱山区','长岛县','龙口市','莱阳市','莱州市','蓬莱市','招远市','栖霞市','海阳市']},		   
+{name:'潍坊市', areaList:['市辖区','潍城区','寒亭区','坊子区','奎文区','临朐县','昌乐县','青州市','诸城市','寿光市','安丘市','高密市','昌邑市']},		   
+{name:'济宁市', areaList:['市辖区','市中区','任城区','微山县','鱼台县','金乡县','嘉祥县','汶上县','泗水县','梁山县','曲阜市','兖州市','邹城市']},		   
+{name:'泰安市', areaList:['市辖区','泰山区','岱岳区','宁阳县','东平县','新泰市','肥城市']},		   
+{name:'威海市', areaList:['市辖区','环翠区','文登市','荣成市','乳山市']},		   
+{name:'日照市', areaList:['市辖区','东港区','岚山区','五莲县','莒 县']},		   
+{name:'莱芜市', areaList:['市辖区','莱城区','钢城区']},		   
+{name:'临沂市', areaList:['市辖区','兰山区','罗庄区','河东区','沂南县','郯城县','沂水县','苍山县','费 县','平邑县','莒南县','蒙阴县','临沭县']},		   
+{name:'德州市', areaList:['市辖区','德城区','陵 县','宁津县','庆云县','临邑县','齐河县','平原县','夏津县','武城县','乐陵市','禹城市']},		   
+{name:'聊城市', areaList:['市辖区','东昌府区','阳谷县','莘 县','茌平县','东阿县','冠 县','高唐县','临清市']},		   
+{name:'滨州市', areaList:['市辖区','滨城区','惠民县','阳信县','无棣县','沾化县','博兴县','邹平县']},		   
+{name:'荷泽市', areaList:['市辖区','牡丹区','曹 县','单 县','成武县','巨野县','郓城县','鄄城县','定陶县','东明县']}
+]},
+{name:'辽宁', cityList:[		   
+{name:'沈阳市', areaList:['市辖区','和平区','沈河区','大东区','皇姑区','铁西区','苏家屯区','东陵区','新城子区','于洪区','辽中县','康平县','法库县','新民市']},		   
+{name:'大连市', areaList:['市辖区','中山区','西岗区','沙河口区','甘井子区','旅顺口区','金州区','长海县','瓦房店市','普兰店市','庄河市']},		   
+{name:'鞍山市', areaList:['市辖区','铁东区','铁西区','立山区','千山区','台安县','岫岩满族自治县','海城市']},		   
+{name:'抚顺市', areaList:['市辖区','新抚区','东洲区','望花区','顺城区','抚顺县','新宾满族自治县','清原满族自治县']},		   
+{name:'本溪市', areaList:['市辖区','平山区','溪湖区','明山区','南芬区','本溪满族自治县','桓仁满族自治县']},		   
+{name:'丹东市', areaList:['市辖区','元宝区','振兴区','振安区','宽甸满族自治县','东港市','凤城市']},		   
+{name:'锦州市', areaList:['市辖区','古塔区','凌河区','太和区','黑山县','义 县','凌海市','北宁市']},		   
+{name:'营口市', areaList:['市辖区','站前区','西市区','鲅鱼圈区','老边区','盖州市','大石桥市']},		   
+{name:'阜新市', areaList:['市辖区','海州区','新邱区','太平区','清河门区','细河区','阜新蒙古族自治县','彰武县']},		   
+{name:'辽阳市', areaList:['市辖区','白塔区','文圣区','宏伟区','弓长岭区','太子河区','辽阳县','灯塔市']},		   
+{name:'盘锦市', areaList:['市辖区','双台子区','兴隆台区','大洼县','盘山县']},		   
+{name:'铁岭市', areaList:['市辖区','银州区','清河区','铁岭县','西丰县','昌图县','调兵山市','开原市']},		   
+{name:'朝阳市', areaList:['市辖区','双塔区','龙城区','朝阳县','建平县','喀喇沁左翼蒙古族自治县','北票市','凌源市']},		   
+{name:'葫芦岛市', areaList:['市辖区','连山区','龙港区','南票区','绥中县','建昌县','兴城市']}
+]},
+{name:'吉林', cityList:[		   
+{name:'长春市', areaList:['市辖区','南关区','宽城区','朝阳区','二道区','绿园区','双阳区','农安县','九台市','榆树市','德惠市']},		   
+{name:'吉林市', areaList:['市辖区','昌邑区','龙潭区','船营区','丰满区','永吉县','蛟河市','桦甸市','舒兰市','磐石市']},		   
+{name:'四平市', areaList:['市辖区','铁西区','铁东区','梨树县','伊通满族自治县','公主岭市','双辽市']},		   
+{name:'辽源市', areaList:['市辖区','龙山区','西安区','东丰县','东辽县']},		   
+{name:'通化市', areaList:['市辖区','东昌区','二道江区','通化县','辉南县','柳河县','梅河口市','集安市']},		   
+{name:'白山市', areaList:['市辖区','八道江区','抚松县','靖宇县','长白朝鲜族自治县','江源县','临江市']},		   
+{name:'松原市', areaList:['市辖区','宁江区','前郭尔罗斯蒙古族自治县','长岭县','乾安县','扶余县']},		   
+{name:'白城市', areaList:['市辖区','洮北区','镇赉县','通榆县','洮南市','大安市']},		   
+{name:'延边朝鲜族自治州', areaList:['延吉市','图们市','敦化市','珲春市','龙井市','和龙市','汪清县','安图县']}
+]},
+{name:'黑龙江', cityList:[		   
+{name:'哈尔滨市', areaList:['市辖区','道里区','南岗区','道外区','香坊区','动力区','平房区','松北区','呼兰区','依兰县','方正县','宾 县','巴彦县','木兰县','通河县','延寿县','阿城市','双城市','尚志市','五常市']},		   
+{name:'齐齐哈尔市', areaList:['市辖区','龙沙区','建华区','铁锋区','昂昂溪区','富拉尔基区','碾子山区','梅里斯达斡尔族区','龙江县','依安县','泰来县','甘南县','富裕县','克山县','克东县','拜泉县','讷河市']},		   
+{name:'鸡西市', areaList:['市辖区','鸡冠区','恒山区','滴道区','梨树区','城子河区','麻山区','鸡东县','虎林市','密山市']},		   
+{name:'鹤岗市', areaList:['市辖区','向阳区','工农区','南山区','兴安区','东山区','兴山区','萝北县','绥滨县']},		   
+{name:'双鸭山市', areaList:['市辖区','尖山区','岭东区','四方台区','宝山区','集贤县','友谊县','宝清县','饶河县']},		   
+{name:'大庆市', areaList:['市辖区','萨尔图区','龙凤区','让胡路区','红岗区','大同区','肇州县','肇源县','林甸县','杜尔伯特蒙古族自治县']},		   
+{name:'伊春市', areaList:['市辖区','伊春区','南岔区','友好区','西林区','翠峦区','新青区','美溪区','金山屯区','五营区','乌马河区','汤旺河区','带岭区','乌伊岭区','红星区','上甘岭区','嘉荫县','铁力市']},		   
+{name:'佳木斯市', areaList:['市辖区','永红区','向阳区','前进区','东风区','郊 区','桦南县','桦川县','汤原县','抚远县','同江市','富锦市']},		   
+{name:'七台河市', areaList:['市辖区','新兴区','桃山区','茄子河区','勃利县']},		   
+{name:'牡丹江市', areaList:['市辖区','东安区','阳明区','爱民区','西安区','东宁县','林口县','绥芬河市','海林市','宁安市','穆棱市']},		   
+{name:'黑河市', areaList:['市辖区','爱辉区','嫩江县','逊克县','孙吴县','北安市','五大连池市']},		   
+{name:'绥化市', areaList:['市辖区','北林区','望奎县','兰西县','青冈县','庆安县','明水县','绥棱县','安达市','肇东市','海伦市']},		   
+{name:'大兴安岭地区', areaList:['呼玛县','塔河县','漠河县']}
+]},
+{name:'海南', cityList:[		   
+{name:'海口市', areaList:['市辖区','秀英区','龙华区','琼山区','美兰区']},		   
+{name:'三亚市', areaList:['市辖区']},		   
+{name:'省直辖县级行政单位', areaList:['五指山市','琼海市','儋州市','文昌市','万宁市','东方市','定安县','屯昌县','澄迈县','临高县','白沙黎族自治县','昌江黎族自治县','乐东黎族自治县','陵水黎族自治县','保亭黎族苗族自治县','琼中黎族苗族自治县','西沙群岛','南沙群岛','中沙群岛的岛礁及其海域']}
+]},
+{name:'台湾', cityList:[
+{name:'台湾', areaList:['台湾']}
+]},
+{name:'香港', cityList:[
+{name:'香港', areaList:['香港']}
+]},
+{name:'澳门', cityList:[
+{name:'澳门', areaList:['澳门']}
+]}
+];

+ 80 - 0
web/UM-admin/js/jqhttpsdk.js

@@ -0,0 +1,80 @@
+/**
+ * 获取数据ajax-get请求
+ * @author chanjunkai
+ */
+// http_ip_port = 'http://47.107.129.126:6639'
+ http_ip_port = 'http://192.168.136.35:8800'
+$.GetJSON = function (url,data,callback){
+    $.ajax({
+        url:url,
+        type:"get",
+        contentType:"application/json",
+        dataType:"json",
+        timeout:10000,
+        data:data,
+        success:function(data){
+            callback(data);
+        }
+    });
+};
+
+/**
+ * 提交json数据的post请求
+ * @author laixm
+ */
+$.postJSON = function(url,data,callback){
+    $.ajax({
+        url:url,
+        type:"post",
+        contentType:"application/json",
+        dataType:"json",
+        data:data,
+        timeout:60000,
+        success:function(msg){
+            callback(msg);
+        },
+        error:function(xhr,textstatus,thrown){
+
+        }
+    });
+};
+
+/**
+ * 修改数据的ajax-put请求
+ * @author laixm
+ */
+$.putJSON = function(url,data,callback){
+    $.ajax({
+        url:url,
+        type:"put",
+        contentType:"application/json",
+        dataType:"json",
+        data:data,
+        timeout:20000,
+        success:function(msg){
+            callback(msg);
+        },
+        error:function(xhr,textstatus,thrown){
+
+        }
+    });
+};
+/**
+ * 删除数据的ajax-delete请求
+ * @author laixm
+ */
+$.deleteJSON = function(url,data,callback){
+    $.ajax({
+        url:url,
+        type:"delete",
+        contentType:"application/json",
+        dataType:"json",
+        data:data,
+        success:function(msg){
+            callback(msg);
+        },
+        error:function(xhr,textstatus,thrown){
+
+        }
+    });
+};

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
web/UM-admin/js/jquery-3.3.1.min.js


+ 2 - 0
web/UM-admin/js/jquery_cookie_min.js

@@ -0,0 +1,2 @@
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});

+ 33 - 0
web/UM-admin/js/shownowtime.js

@@ -0,0 +1,33 @@
+window.onload = function(){
+    showTime();     //网页一加载就调用showTime()函数;
+}
+function checkTime(i){  //补位处理
+    if(i<10)
+    {
+        i="0"+i;     //当秒分小于10时,在左边补0;
+    }
+    return i;
+}
+function showTime(){
+    var now=new Date();
+    var year=now.getFullYear();
+    var month=now.getMonth()+1; //js获取的月份是从0开始;
+    var day=now.getDate();
+    var h=now.getHours();
+    var m=now.getMinutes();
+    var s=now.getSeconds();
+    m=checkTime(m)
+    s=checkTime(s)
+
+    var weekday=new Array(7)
+    weekday[0]="星期日"
+    weekday[1]="星期一"
+    weekday[2]="星期二"
+    weekday[3]="星期三"
+    weekday[4]="星期四"
+    weekday[5]="星期五"
+    weekday[6]="星期六"
+    var w=weekday[now.getDay()]; //js获取的星期是0~6,0是星期天;
+    document.getElementById("shownowTime").innerHTML=""+year+"年"+month+"月"+day+"日 "+w+"  "+h+":"+m+":"+s;
+    t=setTimeout('showTime()',500)
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
web/UM-admin/lib/layui/css/layui.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
web/UM-admin/lib/layui/css/layui.mobile.css


+ 2 - 0
web/UM-admin/lib/layui/css/modules/code.css

@@ -0,0 +1,2 @@
+/** layui-v2.4.3 MIT License By https://www.layui.com */
+ html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
web/UM-admin/lib/layui/css/modules/laydate/default/laydate.css


binární
web/UM-admin/lib/layui/css/modules/laydate/icon.png


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
web/UM-admin/lib/layui/css/modules/laydate/laydate.css


binární
web/UM-admin/lib/layui/css/modules/layer/default/icon-ext.png


binární
web/UM-admin/lib/layui/css/modules/layer/default/icon.png


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
web/UM-admin/lib/layui/css/modules/layer/default/layer.css


binární
web/UM-admin/lib/layui/css/modules/layer/default/loading-0.gif


binární
web/UM-admin/lib/layui/css/modules/layer/default/loading-1.gif


binární
web/UM-admin/lib/layui/css/modules/layer/default/loading-2.gif


binární
web/UM-admin/lib/layui/font/iconfont.eot


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 25 - 0
web/UM-admin/lib/layui/font/iconfont.svg


binární
web/UM-admin/lib/layui/font/iconfont.ttf


binární
web/UM-admin/lib/layui/font/iconfont.woff


binární
web/UM-admin/lib/layui/images/face/0.gif


binární
web/UM-admin/lib/layui/images/face/1.gif


binární
web/UM-admin/lib/layui/images/face/10.gif


binární
web/UM-admin/lib/layui/images/face/11.gif


binární
web/UM-admin/lib/layui/images/face/12.gif


binární
web/UM-admin/lib/layui/images/face/13.gif


binární
web/UM-admin/lib/layui/images/face/14.gif


binární
web/UM-admin/lib/layui/images/face/15.gif


binární
web/UM-admin/lib/layui/images/face/16.gif


binární
web/UM-admin/lib/layui/images/face/17.gif


binární
web/UM-admin/lib/layui/images/face/18.gif


binární
web/UM-admin/lib/layui/images/face/19.gif


binární
web/UM-admin/lib/layui/images/face/2.gif


binární
web/UM-admin/lib/layui/images/face/20.gif


binární
web/UM-admin/lib/layui/images/face/21.gif


binární
web/UM-admin/lib/layui/images/face/22.gif


binární
web/UM-admin/lib/layui/images/face/23.gif


binární
web/UM-admin/lib/layui/images/face/24.gif


binární
web/UM-admin/lib/layui/images/face/25.gif


binární
web/UM-admin/lib/layui/images/face/26.gif


binární
web/UM-admin/lib/layui/images/face/27.gif


binární
web/UM-admin/lib/layui/images/face/28.gif


binární
web/UM-admin/lib/layui/images/face/29.gif


binární
web/UM-admin/lib/layui/images/face/3.gif


binární
web/UM-admin/lib/layui/images/face/30.gif


binární
web/UM-admin/lib/layui/images/face/31.gif


binární
web/UM-admin/lib/layui/images/face/32.gif


binární
web/UM-admin/lib/layui/images/face/33.gif


binární
web/UM-admin/lib/layui/images/face/34.gif


binární
web/UM-admin/lib/layui/images/face/35.gif


binární
web/UM-admin/lib/layui/images/face/36.gif


binární
web/UM-admin/lib/layui/images/face/37.gif


binární
web/UM-admin/lib/layui/images/face/38.gif


binární
web/UM-admin/lib/layui/images/face/39.gif


binární
web/UM-admin/lib/layui/images/face/4.gif


binární
web/UM-admin/lib/layui/images/face/40.gif


binární
web/UM-admin/lib/layui/images/face/41.gif


binární
web/UM-admin/lib/layui/images/face/42.gif


binární
web/UM-admin/lib/layui/images/face/43.gif


binární
web/UM-admin/lib/layui/images/face/44.gif


binární
web/UM-admin/lib/layui/images/face/45.gif


binární
web/UM-admin/lib/layui/images/face/46.gif


binární
web/UM-admin/lib/layui/images/face/47.gif


binární
web/UM-admin/lib/layui/images/face/48.gif


binární
web/UM-admin/lib/layui/images/face/49.gif


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů