system-phone 1.3.0 → 1.3.1-zk

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/6.1/executionHistory/executionHistory.bin +0 -0
  5. package/.gradle/6.1/executionHistory/executionHistory.lock +0 -0
  6. package/.gradle/6.1/fileChanges/last-build.bin +0 -0
  7. package/.gradle/6.1/fileHashes/fileHashes.bin +0 -0
  8. package/.gradle/6.1/fileHashes/fileHashes.lock +0 -0
  9. package/.gradle/6.1/gc.properties +0 -0
  10. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  11. package/.gradle/buildOutputCleanup/cache.properties +2 -0
  12. package/.gradle/checksums/checksums.lock +0 -0
  13. package/.gradle/checksums/sha1-checksums.bin +0 -0
  14. package/.gradle/vcs-1/gc.properties +0 -0
  15. package/CHANGELOG.md +1 -1
  16. package/Dockerfile +3 -3
  17. package/README.md +36 -36
  18. package/SystemPhone.iml +9 -0
  19. package/build/css-loaders.js +34 -34
  20. package/build/dev-client.js +8 -8
  21. package/build/dev-server.js +141 -121
  22. package/build/example-server.js +80 -80
  23. package/build/release.sh +28 -28
  24. package/build/utils.js +71 -71
  25. package/build/webpack.base.conf.js +82 -78
  26. package/build/webpack.dev.conf.js +31 -31
  27. package/build/webpack.example.conf.js +49 -49
  28. package/build/webpack.prod.conf.js +60 -60
  29. package/build/webpack.test.conf.js +31 -31
  30. package/build.gradle +27 -27
  31. package/config/dev.env.js +6 -6
  32. package/config/index.js +38 -38
  33. package/config/prod.env.js +3 -3
  34. package/config/test.env.js +6 -6
  35. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  36. package/gradle/wrapper/gradle-wrapper.properties +5 -0
  37. package/gradlew +183 -0
  38. package/gradlew.bat +100 -0
  39. package/index.html +21 -773
  40. package/nginx.conf +304 -304
  41. package/package.json +5 -3
  42. package/release.bat +5 -5
  43. package/src/App.vue +25 -25
  44. package/src/Util.js +415 -415
  45. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  46. package/src/android-bootstrap/less/.csscomb.json +304 -304
  47. package/src/android-bootstrap/less/.csslintrc +19 -19
  48. package/src/android-bootstrap/less/alerts.less +73 -73
  49. package/src/android-bootstrap/less/badges.less +66 -66
  50. package/src/android-bootstrap/less/bootstrap.less +56 -56
  51. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  52. package/src/android-bootstrap/less/button-groups.less +247 -247
  53. package/src/android-bootstrap/less/buttons.less +173 -173
  54. package/src/android-bootstrap/less/carousel.less +269 -269
  55. package/src/android-bootstrap/less/close.less +34 -34
  56. package/src/android-bootstrap/less/code.less +69 -69
  57. package/src/android-bootstrap/less/component-animations.less +33 -33
  58. package/src/android-bootstrap/less/dropdowns.less +216 -216
  59. package/src/android-bootstrap/less/forms.less +626 -626
  60. package/src/android-bootstrap/less/glyphicons.less +305 -305
  61. package/src/android-bootstrap/less/grid.less +84 -84
  62. package/src/android-bootstrap/less/input-groups.less +167 -167
  63. package/src/android-bootstrap/less/jumbotron.less +52 -52
  64. package/src/android-bootstrap/less/labels.less +64 -64
  65. package/src/android-bootstrap/less/list-group.less +141 -141
  66. package/src/android-bootstrap/less/media.less +66 -66
  67. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  68. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  69. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  70. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  71. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  72. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  73. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  74. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  75. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  76. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  77. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  78. package/src/android-bootstrap/less/mixins/image.less +33 -33
  79. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  80. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  81. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  82. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  83. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  84. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  85. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  86. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  87. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  88. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  89. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  90. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  91. package/src/android-bootstrap/less/mixins/size.less +10 -10
  92. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  93. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  94. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  95. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  96. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  97. package/src/android-bootstrap/less/mixins.less +40 -40
  98. package/src/android-bootstrap/less/modals.less +151 -151
  99. package/src/android-bootstrap/less/navbar.less +660 -660
  100. package/src/android-bootstrap/less/navs.less +290 -290
  101. package/src/android-bootstrap/less/normalize.less +424 -424
  102. package/src/android-bootstrap/less/pager.less +76 -76
  103. package/src/android-bootstrap/less/pagination.less +89 -89
  104. package/src/android-bootstrap/less/panels.less +274 -274
  105. package/src/android-bootstrap/less/popovers.less +131 -131
  106. package/src/android-bootstrap/less/print.less +101 -101
  107. package/src/android-bootstrap/less/progress-bars.less +87 -87
  108. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  109. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  110. package/src/android-bootstrap/less/scaffolding.less +161 -161
  111. package/src/android-bootstrap/less/tables.less +262 -262
  112. package/src/android-bootstrap/less/theme.less +291 -291
  113. package/src/android-bootstrap/less/thumbnails.less +36 -36
  114. package/src/android-bootstrap/less/tooltip.less +102 -102
  115. package/src/android-bootstrap/less/type.less +303 -303
  116. package/src/android-bootstrap/less/utilities.less +55 -55
  117. package/src/android-bootstrap/less/variables.less +896 -896
  118. package/src/android-bootstrap/less/wells.less +29 -29
  119. package/src/assets/biaohao.png +0 -0
  120. package/src/assets/bieming.png +0 -0
  121. package/src/assets/caozuo.png +0 -0
  122. package/src/assets/guige.png +0 -0
  123. package/src/assets/images/back.png +0 -0
  124. package/src/assets/images//345/201/234/346/260/224/345/205/254/345/221/212.png +0 -0
  125. package/src/assets/images//345/256/242/346/234/215/344/273/212/346/227/245/345/267/245/345/215/225.png +0 -0
  126. package/src/assets/images//345/256/242/346/234/215/345/234/250/347/272/277/345/244/204/347/220/206.png +0 -0
  127. package/src/assets/images//345/256/242/346/234/215/345/244/204/347/220/206/344/270/255.png +0 -0
  128. package/src/assets/images//345/256/242/346/234/215/345/256/214/346/210/220/347/216/207.png +0 -0
  129. package/src/assets/images//345/256/242/346/234/215/345/267/245/345/215/225/351/207/217.png +0 -0
  130. package/src/assets/images//345/256/242/346/234/215/345/267/262/345/256/214/346/210/220.png +0 -0
  131. package/src/assets/images//345/256/242/346/234/215/345/276/205/345/244/204/347/220/206.png +0 -0
  132. package/src/assets/images//345/256/242/346/234/215/346/264/276/345/215/225/351/207/217.png +0 -0
  133. package/src/assets/images//345/256/242/346/234/215/347/275/221/345/216/205/351/242/204/347/272/246/346/264/276/345/215/225/351/207/217.png +0 -0
  134. package/src/assets/images//345/261/205/346/260/221/345/242/236/351/225/277/345/210/206/346/236/220.png +0 -0
  135. package/src/assets/images//345/261/205/346/260/221/347/224/250/346/210/267.png +0 -0
  136. package/src/assets/images//346/224/266/350/264/271total1.png +0 -0
  137. package/src/assets/images//346/224/266/350/264/271total2.png +0 -0
  138. package/src/assets/images//346/224/266/350/264/271total3.png +0 -0
  139. package/src/assets/images//346/224/266/350/264/271/345/205/266/344/273/226/344/270/232/345/212/241.png +0 -0
  140. package/src/assets/images//346/224/266/350/264/271/345/224/256/346/260/224/351/207/217/345/210/206/346/236/220.png +0 -0
  141. package/src/assets/images//346/224/266/350/264/271/347/254/224/346/225/260/345/260/217/346/240/207/351/242/230.png +0 -0
  142. package/src/assets/images//347/224/250/346/210/2671.png +0 -0
  143. package/src/assets/images//351/235/236/345/261/205/346/260/221/347/224/250/346/210/267.png +0 -0
  144. package/src/assets/leixing.png +0 -0
  145. package/src/assets/loging.gif +0 -0
  146. package/src/assets/mingwen.png +0 -0
  147. package/src/assets/miwen.png +0 -0
  148. package/src/assets/phone.png +0 -0
  149. package/src/assets/pinpai.png +0 -0
  150. package/src/assets/pos/346/224/266/350/264/271.png +0 -0
  151. package/src/assets/qiliang.png +0 -0
  152. package/src/assets/shuaxindaiban1.png +0 -0
  153. package/src/assets/xinghao.png +0 -0
  154. package/src/assets/yue.png +0 -0
  155. package/src/assets//344/270/212/344/274/240/345/267/245/344/275/234/346/234/252/351/200/211/344/270/255.png +0 -0
  156. package/src/assets//344/270/212/344/274/240/345/267/245/344/275/234/351/200/211/344/270/255.png +0 -0
  157. package/src/assets//344/270/213/350/275/275/350/256/241/345/210/222.png +0 -0
  158. package/src/assets//344/270/223/351/241/271/345/256/211/346/243/200.png +0 -0
  159. package/src/assets//344/270/252/344/272/272/344/270/255/345/277/203.png +0 -0
  160. package/src/assets//344/270/264/346/227/266/345/256/211/346/243/200.png +0 -0
  161. package/src/assets//344/273/273/345/212/241/346/237/245/350/257/242.png +0 -0
  162. package/src/assets//344/275/260/346/227/272/345/276/267/345/205/266/344/273/226/347/274/264/350/264/271.png +0 -0
  163. package/src/assets//344/276/233/346/232/226/347/274/264/350/264/271.png +0 -0
  164. package/src/assets//344/277/241/346/201/257/345/205/254/345/221/212.png +0 -0
  165. package/src/assets//344/277/241/346/201/257/346/237/245/350/257/242.png +0 -0
  166. package/src/assets//344/277/256/346/224/271/345/257/206/347/240/201.png +0 -0
  167. package/src/assets//344/277/256/346/224/271/345/257/206/347/240/2011.png +0 -0
  168. package/src/assets//345/205/254/345/221/212/346/237/245/347/234/213.png +0 -0
  169. package/src/assets//345/205/261/344/272/253/350/256/241/345/210/222.png +0 -0
  170. package/src/assets//345/205/266/344/273/226/347/274/264/350/264/271.png +0 -0
  171. package/src/assets//345/206/214/345/206/205/351/241/272/345/272/217/344/277/256/346/224/271.png +0 -0
  172. package/src/assets//345/207/272/345/205/267/350/256/276/350/256/241/345/233/276/347/272/270.png +0 -0
  173. package/src/assets//345/215/241/350/241/250/345/234/250/347/272/277/346/212/204/350/241/250.png +0 -0
  174. package/src/assets//345/217/226/346/266/210/350/207/252/345/212/250/347/231/273/345/275/225.png +0 -0
  175. package/src/assets//345/220/210/345/220/214/347/255/276/350/256/242.png +0 -0
  176. package/src/assets//345/234/250/347/272/277/344/270/232/345/212/241/346/234/252/351/200/211/344/270/255.png +0 -0
  177. package/src/assets//345/234/250/347/272/277/344/270/232/345/212/241/351/200/211/344/270/255.png +0 -0
  178. package/src/assets//345/234/250/347/272/277/345/256/211/346/243/200.png +0 -0
  179. package/src/assets//345/234/250/347/272/277/345/267/241/346/243/200.png +0 -0
  180. package/src/assets//345/234/250/347/272/277/346/212/204/350/241/250.png +0 -0
  181. package/src/assets//345/234/250/347/272/277/346/212/242/344/277/256.png +0 -0
  182. package/src/assets//345/234/250/347/272/277/346/212/245/350/243/205.png +0 -0
  183. package/src/assets//345/234/250/347/272/277/346/216/245/345/215/225.png +0 -0
  184. package/src/assets//345/234/250/347/272/277/346/223/215/344/275/234.png +0 -0
  185. package/src/assets//345/234/250/347/272/277/347/273/237/350/256/241.png +0 -0
  186. package/src/assets//345/234/250/347/272/277/347/273/264/344/277/256.png +0 -0
  187. package/src/assets//345/234/250/347/272/277/347/274/264/350/264/271.png +0 -0
  188. package/src/assets//345/234/250/347/272/277/351/200/232/346/260/224.png +0 -0
  189. package/src/assets//345/256/211/346/243/200/344/270/212/344/274/240.png +0 -0
  190. package/src/assets//345/256/211/346/243/200/345/234/250/347/272/277/347/273/237/350/256/241.png +0 -0
  191. package/src/assets//345/256/211/346/243/200/345/267/262/345/212/236.png +0 -0
  192. package/src/assets//345/256/211/346/243/200/345/276/205/345/212/236.png +0 -0
  193. package/src/assets//345/256/211/346/243/200/346/212/275/345/215/225.png +0 -0
  194. package/src/assets//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  195. package/src/assets//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  196. package/src/assets//345/256/211/346/243/200/350/256/241/345/210/222/345/210/227/350/241/250.png +0 -0
  197. package/src/assets//345/256/211/350/243/205/344/270/212/344/274/240.png +0 -0
  198. package/src/assets//345/256/211/350/243/205/345/267/262/345/212/236.png +0 -0
  199. package/src/assets//345/256/211/350/243/205/345/276/205/345/212/236.png +0 -0
  200. package/src/assets//345/256/217/350/257/255/351/232/220/346/202/243/345/244/204/347/220/206.png +0 -0
  201. package/src/assets//345/256/236/345/220/215/350/256/244/350/257/201.png +0 -0
  202. package/src/assets//345/256/242/346/234/215/347/256/241/347/220/206.png +0 -0
  203. package/src/assets//345/257/271/345/217/267.png +0 -0
  204. package/src/assets//345/257/274/345/207/272/346/225/260/346/215/256.png +0 -0
  205. package/src/assets//345/257/274/345/207/272/346/225/260/346/215/2561.png +0 -0
  206. package/src/assets//345/267/241/346/243/200/344/270/212/344/274/240.png +0 -0
  207. package/src/assets//345/267/241/346/243/200/345/267/262/345/212/236.png +0 -0
  208. package/src/assets//345/267/245/345/215/225/344/270/212/344/274/240.png +0 -0
  209. package/src/assets//345/267/245/347/250/213/345/217/221/350/265/267.png +0 -0
  210. package/src/assets//345/267/245/347/250/213/346/212/245/344/273/267.png +0 -0
  211. package/src/assets//345/267/245/347/250/213/346/226/275/345/267/245.png +0 -0
  212. package/src/assets//345/267/245/347/250/213/346/264/276/345/267/245.png +0 -0
  213. package/src/assets//345/267/262/345/212/236/345/267/245/344/275/234/346/234/252/351/200/211/344/270/255.png +0 -0
  214. package/src/assets//345/267/262/345/212/236/345/267/245/344/275/234/351/200/211/344/270/255.png +0 -0
  215. package/src/assets//345/267/262/345/212/236/345/267/245/345/215/225.png +0 -0
  216. package/src/assets//345/274/200/345/205/263/351/230/200.png +0 -0
  217. package/src/assets//345/275/242/347/212/2664.png +0 -0
  218. package/src/assets//345/276/205/345/212/236/345/267/245/344/275/234/346/234/252/351/200/211/344/270/255.png +0 -0
  219. package/src/assets//345/276/205/345/212/236/345/267/245/344/275/234/351/200/211/344/270/255.png +0 -0
  220. package/src/assets//345/276/205/345/212/236/345/267/245/345/215/225.png +0 -0
  221. package/src/assets//346/211/271/351/207/217/346/212/204/350/241/250.png +0 -0
  222. package/src/assets//346/212/204/350/241/250/344/270/212/344/274/240.png +0 -0
  223. package/src/assets//346/212/204/350/241/250/345/267/262/345/212/236.png +0 -0
  224. package/src/assets//346/212/204/350/241/250/345/276/205/345/212/236.png +0 -0
  225. package/src/assets//346/212/204/350/241/250/346/261/207/346/200/273.png +0 -0
  226. package/src/assets//346/212/204/350/241/250/350/256/260/345/275/225.png +0 -0
  227. package/src/assets//346/212/245/345/273/272/345/267/262/345/212/236.png +0 -0
  228. package/src/assets//346/212/245/345/273/272/345/276/205/345/212/236.png +0 -0
  229. package/src/assets//346/212/245/345/273/272/346/234/215/345/212/241.png +0 -0
  230. package/src/assets//346/214/207/344/273/244/346/237/245/347/234/213.png +0 -0
  231. package/src/assets//346/224/266/350/264/271/346/261/207/346/200/273/350/241/250.png +0 -0
  232. package/src/assets//346/224/266/350/264/271/350/256/260/345/275/225.png +0 -0
  233. package/src/assets//346/225/264/346/224/271/344/270/212/344/274/240.png +0 -0
  234. package/src/assets//346/225/264/346/224/271/345/267/262/345/212/236.png +0 -0
  235. package/src/assets//346/227/240/350/256/241/345/210/222/345/256/211/346/243/200.png +0 -0
  236. package/src/assets//346/227/245/346/212/245/346/237/245/350/257/242.png +0 -0
  237. package/src/assets//346/241/243/346/241/210/344/277/256/346/224/271.png +0 -0
  238. package/src/assets//346/264/201/350/203/275/351/232/220/346/202/243/345/244/204/347/220/206.png +0 -0
  239. package/src/assets//346/265/201/346/260/264/346/237/245/350/257/242.png +0 -0
  240. package/src/assets//346/265/201/347/250/213/344/270/232/345/212/241.png +0 -0
  241. package/src/assets//346/265/201/347/250/213/347/233/221/346/216/247.png +0 -0
  242. package/src/assets//346/270/205/347/251/272/346/225/260/346/215/256.png +0 -0
  243. package/src/assets//346/270/205/347/251/272/346/225/260/346/215/2561.png +0 -0
  244. package/src/assets//346/270/205/351/231/244/346/225/260/346/215/256.png +0 -0
  245. package/src/assets//347/202/271/347/201/253/345/267/262/345/212/236.png +0 -0
  246. package/src/assets//347/202/271/347/201/253/345/276/205/345/212/236.png +0 -0
  247. package/src/assets//347/216/260/345/234/272/345/213/230/345/257/237.png +0 -0
  248. package/src/assets//347/217/255/347/273/204/351/225/277/347/256/241/347/220/206/347/253/226/345/261/2173.png +0 -0
  249. package/src/assets//347/224/250/346/210/267/347/274/226/345/217/267.png +0 -0
  250. package/src/assets//347/247/273/345/212/250/346/212/204/350/241/250.png +0 -0
  251. package/src/assets//347/247/273/345/212/250/346/212/204/350/241/250/345/267/262/345/212/236.png +0 -0
  252. package/src/assets//347/253/231/347/202/271/345/267/245/345/215/225.png +0 -0
  253. package/src/assets//347/255/276/345/255/227/345/276/205/345/212/236.png +0 -0
  254. package/src/assets//347/263/273/347/273/237/350/256/276/347/275/256/346/234/252/351/200/211/344/270/255.png +0 -0
  255. package/src/assets//347/263/273/347/273/237/350/256/276/347/275/256/351/200/211/344/270/255.png +0 -0
  256. package/src/assets//347/273/237/350/256/241/346/212/245/350/241/250.png +0 -0
  257. package/src/assets//347/273/264/344/277/256/344/270/212/344/274/240.png +0 -0
  258. package/src/assets//347/273/264/344/277/256/345/267/245/345/215/225/347/253/226/345/261/2173.png +0 -0
  259. package/src/assets//347/273/264/344/277/256/345/267/262/345/212/236.png +0 -0
  260. package/src/assets//347/273/264/344/277/256/345/276/205/345/212/236.png +0 -0
  261. package/src/assets//347/273/264/344/277/256/346/264/276/345/217/221.png +0 -0
  262. package/src/assets//347/275/256/346/215/242/344/270/212/344/274/240.png +0 -0
  263. package/src/assets//347/275/256/346/215/242/345/267/262/345/212/236.png +0 -0
  264. package/src/assets//347/275/256/346/215/242/345/276/205/345/212/236.png +0 -0
  265. package/src/assets//347/275/256/346/215/242/351/200/232/346/260/224/347/253/226/345/261/2173.png +0 -0
  266. package/src/assets//350/220/245/344/270/232/345/233/276/350/241/250.png +0 -0
  267. package/src/assets//350/241/250/345/206/214/351/241/272/345/272/217.png +0 -0
  268. package/src/assets//350/241/250/345/217/267 (7).png +0 -0
  269. package/src/assets//350/241/250/345/217/267.png +0 -0
  270. package/src/assets//350/260/203/344/273/267/350/241/245/345/267/256/347/274/264/350/264/271.png +0 -0
  271. package/src/assets//350/277/224/345/233/236.png +0 -0
  272. package/src/assets//350/277/224/345/233/236/346/241/214/351/235/242.png +0 -0
  273. package/src/assets//350/277/233/345/272/246/345/210/227/350/241/250.png +0 -0
  274. package/src/assets//351/200/200/345/207/272/347/231/273/345/275/225.png +0 -0
  275. package/src/assets//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  276. package/src/assets//351/200/200/345/207/272/347/263/273/347/273/2371.png +0 -0
  277. package/src/assets//351/200/201/346/260/224/344/270/212/344/274/240.png +0 -0
  278. package/src/assets//351/200/201/346/260/224/345/267/262/345/212/236.png +0 -0
  279. package/src/assets//351/200/201/346/260/224/345/276/205/345/212/236.png +0 -0
  280. package/src/assets//351/200/232/346/260/224/347/202/271/347/201/253.png +0 -0
  281. package/src/assets//351/224/231/345/217/267.png +0 -0
  282. package/src/assets//351/232/220/346/202/243/345/244/204/347/220/206.png +0 -0
  283. package/src/assets//351/232/220/346/202/243/346/225/264/346/224/271.png +0 -0
  284. package/src/assets//351/233/206/344/270/255/345/256/211/346/243/200.png +0 -0
  285. package/src/assets//351/233/206/344/270/255/345/256/211/346/243/2002.png +0 -0
  286. package/src/assets//351/253/230/345/257/206/345/205/254/345/221/212.png +0 -0
  287. package/src/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  288. package/src/bootstrap/less/.csscomb.json +304 -304
  289. package/src/bootstrap/less/.csslintrc +19 -19
  290. package/src/bootstrap/less/alerts.less +73 -73
  291. package/src/bootstrap/less/badges.less +66 -66
  292. package/src/bootstrap/less/bootstrap.less +56 -56
  293. package/src/bootstrap/less/breadcrumbs.less +26 -26
  294. package/src/bootstrap/less/button-groups.less +247 -247
  295. package/src/bootstrap/less/buttons.less +172 -172
  296. package/src/bootstrap/less/carousel.less +269 -269
  297. package/src/bootstrap/less/close.less +34 -34
  298. package/src/bootstrap/less/code.less +69 -69
  299. package/src/bootstrap/less/component-animations.less +33 -33
  300. package/src/bootstrap/less/dropdowns.less +216 -216
  301. package/src/bootstrap/less/forms.less +626 -626
  302. package/src/bootstrap/less/glyphicons.less +305 -305
  303. package/src/bootstrap/less/grid.less +84 -84
  304. package/src/bootstrap/less/input-groups.less +167 -167
  305. package/src/bootstrap/less/jumbotron.less +52 -52
  306. package/src/bootstrap/less/labels.less +64 -64
  307. package/src/bootstrap/less/list-group.less +141 -141
  308. package/src/bootstrap/less/media.less +66 -66
  309. package/src/bootstrap/less/mixins/alerts.less +14 -14
  310. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  311. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  312. package/src/bootstrap/less/mixins/buttons.less +69 -69
  313. package/src/bootstrap/less/mixins/center-block.less +7 -7
  314. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  315. package/src/bootstrap/less/mixins/forms.less +90 -90
  316. package/src/bootstrap/less/mixins/gradients.less +59 -59
  317. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  318. package/src/bootstrap/less/mixins/grid.less +122 -122
  319. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  320. package/src/bootstrap/less/mixins/image.less +33 -33
  321. package/src/bootstrap/less/mixins/labels.less +12 -12
  322. package/src/bootstrap/less/mixins/list-group.less +30 -30
  323. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  324. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  325. package/src/bootstrap/less/mixins/opacity.less +8 -8
  326. package/src/bootstrap/less/mixins/pagination.less +24 -24
  327. package/src/bootstrap/less/mixins/panels.less +24 -24
  328. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  329. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  330. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  331. package/src/bootstrap/less/mixins/resize.less +6 -6
  332. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  333. package/src/bootstrap/less/mixins/size.less +10 -10
  334. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  335. package/src/bootstrap/less/mixins/table-row.less +44 -44
  336. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  337. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  338. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  339. package/src/bootstrap/less/mixins.less +40 -40
  340. package/src/bootstrap/less/modals.less +151 -151
  341. package/src/bootstrap/less/navbar.less +660 -660
  342. package/src/bootstrap/less/navs.less +286 -286
  343. package/src/bootstrap/less/normalize.less +424 -424
  344. package/src/bootstrap/less/pager.less +76 -76
  345. package/src/bootstrap/less/pagination.less +89 -89
  346. package/src/bootstrap/less/panels.less +275 -275
  347. package/src/bootstrap/less/popovers.less +131 -131
  348. package/src/bootstrap/less/print.less +101 -101
  349. package/src/bootstrap/less/progress-bars.less +87 -87
  350. package/src/bootstrap/less/responsive-embed.less +35 -35
  351. package/src/bootstrap/less/responsive-utilities.less +194 -194
  352. package/src/bootstrap/less/scaffolding.less +161 -161
  353. package/src/bootstrap/less/tables.less +262 -262
  354. package/src/bootstrap/less/theme.less +291 -291
  355. package/src/bootstrap/less/thumbnails.less +36 -36
  356. package/src/bootstrap/less/tooltip.less +102 -102
  357. package/src/bootstrap/less/type.less +303 -303
  358. package/src/bootstrap/less/utilities.less +55 -55
  359. package/src/bootstrap/less/variables.less +895 -895
  360. package/src/bootstrap/less/wells.less +29 -29
  361. package/src/components/AloneLoadParams.vue +26 -26
  362. package/src/components/AlreadyService.vue +193 -0
  363. package/src/components/AttendManage.vue +420 -0
  364. package/src/components/LoadAppdata.vue +38 -38
  365. package/src/components/LoginApp.vue +646 -496
  366. package/src/components/LoginAppNew.vue +587 -0
  367. package/src/components/ModifyPassWord.vue +21 -5
  368. package/src/components/NavBottom.vue +117 -117
  369. package/src/components/NavBottomV.vue +141 -140
  370. package/src/components/NavBottomVVV.vue +185 -0
  371. package/src/components/OnlineManage.vue +198 -0
  372. package/src/components/PhoneChangemeterInfo.vue +116 -116
  373. package/src/components/PhoneInfoTable.vue +39 -36
  374. package/src/components/PhoneRepairInfo.vue +146 -0
  375. package/src/components/PhoneSellInfo.vue +123 -122
  376. package/src/components/PhoneSellInfoLite.vue +112 -0
  377. package/src/components/PhoneUser.vue +202 -0
  378. package/src/components/PhoneUserDetil.vue +70 -0
  379. package/src/components/PhoneUserFind.vue +138 -137
  380. package/src/components/RightTree.vue +214 -0
  381. package/src/components/SystemSetUp.vue +298 -113
  382. package/src/components/TabBarPhone.vue +81 -0
  383. package/src/components/Test.vue +14 -14
  384. package/src/components/ToolsPage.vue +165 -163
  385. package/src/components/UploadManage.vue +194 -0
  386. package/src/components/gaomi/NavBottomV.vue +223 -0
  387. package/src/components/gaomi/NavBottomVVVV.vue +210 -0
  388. package/src/components/gaomi/Scroller.vue +63 -0
  389. package/src/components/gaomi/SystemSetUp.vue +186 -0
  390. package/src/components/gaomi/ToolsPage.vue +168 -0
  391. package/src/components/idea/feedBack.vue +150 -0
  392. package/src/components/idea/feedbackAdd.vue +366 -0
  393. package/src/components/iot/InstructMessage.vue +313 -0
  394. package/src/components/iot/IotBaseInfo.vue +97 -0
  395. package/src/components/iot/IotMeterInfo.vue +77 -0
  396. package/src/components/iot/iotMonitoringMain.vue +501 -0
  397. package/src/components/online/ApplyOnline.vue +582 -0
  398. package/src/components/online/BJZhongRan/ApplyOnline.vue +601 -0
  399. package/src/components/screen/ChargeContentPage.vue +656 -0
  400. package/src/components/screen/ContentPage.vue +611 -0
  401. package/src/components/screen/GongdanContentPage.vue +149 -0
  402. package/src/components/screen/ListCountItem.vue +93 -0
  403. package/src/components/screen/ModuleTitle.vue +48 -0
  404. package/src/components/screen/SafeOrderContentPage.vue +440 -0
  405. package/src/components/screen/SecurityCheckItem.vue +50 -0
  406. package/src/components/screen/TotalItem.vue +76 -0
  407. package/src/components/screen/TotalUserNumber.vue +77 -0
  408. package/src/components/screen/WorkOrderItem.vue +51 -0
  409. package/src/components/screen/WorkOrderRightDownItem.vue +103 -0
  410. package/src/components/screen/WorkOrderRightItem.vue +115 -0
  411. package/src/components/userinfo/paymentQuery.vue +189 -0
  412. package/src/components/userinfo/queryFile.vue +190 -0
  413. package/src/components/wasm.vue +18 -18
  414. package/src/expandcssAndroid.less +521 -517
  415. package/src/image/touxiang.jpg +0 -0
  416. package/src/index.js +9 -7
  417. package/src/main.js +38 -35
  418. package/src/plugins/GetStringData.js +18 -18
  419. package/src/plugins/LoadParams.js +24 -24
  420. package/src/plugins/const.js +404 -0
  421. package/src/plugins/vue-py.js +37 -0
  422. package/src/services/ConfigService.js +24 -24
  423. package/src/stores/AppData.js +63 -71
  424. package/src/systemphone-gaomi.js +105 -0
  425. package/src/systemphone.js +58 -42
  426. package/src/systemphonegrid.js +186 -62
  427. package/src/util/LdapHelper.js +75 -0
  428. package/static/app.json +4 -4
  429. package/static/const.js +404 -0
  430. package/static/globals.txt +74 -74
  431. package/static/layui/css/layui.css +1 -0
  432. package/static/layui/css/modules/code.css +1 -0
  433. package/static/layui/css/modules/laydate/default/laydate.css +1 -0
  434. package/static/layui/css/modules/layer/default/icon-ext.png +0 -0
  435. package/static/layui/css/modules/layer/default/icon.png +0 -0
  436. package/static/layui/css/modules/layer/default/layer.css +1 -0
  437. package/static/layui/css/modules/layer/default/loading-0.gif +0 -0
  438. package/static/layui/css/modules/layer/default/loading-1.gif +0 -0
  439. package/static/layui/css/modules/layer/default/loading-2.gif +0 -0
  440. package/static/layui/font/iconfont.eot +0 -0
  441. package/static/layui/font/iconfont.svg +554 -0
  442. package/static/layui/font/iconfont.ttf +0 -0
  443. package/static/layui/font/iconfont.woff +0 -0
  444. package/static/layui/font/iconfont.woff2 +0 -0
  445. package/static/layui/layui.js +1 -0
  446. package/static/vue-py.js +37 -0
  447. package/static/wasm_exec.js +465 -465
  448. package/test/unit/.eslintrc +5 -5
  449. package/test/unit/TestUtil.js +35 -35
  450. package/test/unit/context.html +20 -20
  451. package/test/unit/index.js +13 -13
  452. package/test/unit/init.js +13 -13
  453. package/test/unit/karma.conf.js +50 -50
  454. package/test/unit/specs/App.spec.js +17 -17
  455. package/test/unit/specs/Test.spec.js +28 -28
  456. package/test/unit/specs/components/LoginApp.spec.js +21 -21
  457. package/test/unit/specs/sevices/ConfigService.spec.js +23 -23
  458. package/test/unit/specs/sevices/GetDBTest.spec.js +28 -28
  459. package/.npmignore +0 -9
  460. package/src/assets/fonttype/fontAndroid.less +0 -18
  461. package/src/assets/fonttype/pingheicu.ttf +0 -0
  462. package/src/assets/fonttype/pingheiqian.ttf +0 -0
  463. package/src/assets/fonttype/pingheizhong.ttf +0 -0
  464. package/src/assets/fonttype/pingheizhun.ttf +0 -0
  465. package/src/assets/fonttype//350/213/271/346/226/271/351/273/221/344/275/223-/346/236/201/347/273/206-/347/256/200.ttf +0 -0
  466. package/src/assets/fonttype//350/213/271/346/226/271/351/273/221/344/275/223-/347/273/206-/347/256/200.ttf +0 -0
  467. package/static/test.wasm +0 -0
  468. package/yarn.lock +0 -6399
  469. /package/src/assets//347/253/231/347/202/271/{346/264/276 → 345/267/245}/345/215/225/347/253/226/345/261/2173.png" +0 -0
@@ -1,496 +1,646 @@
1
- <template>
2
- <div class="loginbg" id="outheight">
3
- <!--输入框-->
4
- <div class="htmleaf-container">
5
- <div class="wrapper" :class="{'form-success': login}">
6
- <div class="container">
7
- <h3 style="color:white; margin-top: 15px">欢迎使用</h3>
8
- <p class="form" style="margin-top:{{margintop}}px">
9
- <input type="text" v-model="ename" class="usericon">
10
- <input type="password" v-model="password" class="psicon">
11
- <button type="button" id="login-button" @click.prevent="confirm()"><strong>登录</strong></button>
12
- </p>
13
- <div class="row">
14
- <img src="../assets/选中.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="showsave"@click="showoff()">
15
- <img src="../assets/未选.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="!showsave" @click="showon()">
16
- <span class="text-left font">记住密码</span>
17
- <p></p>
18
- <span class="devicetext">设备码:{{deviceIemi}}</span>
19
- </div>
20
- </div>
21
- </div>
22
- </div>
23
- <!--<load-appdata @ready="onReady"></load-appdata>-->
24
- </div>
25
- </template>
26
- <script>
27
- import Vue from 'vue'
28
- import * as Util from '../Util'
29
- import JSEncrypt from 'jsencrypt'
30
- import $ from 'jquery'
31
- import co from 'co'
32
- //获取json配置文件
33
- let asyncReady = async function(self,url) {
34
- // 获取配置信息
35
- try {
36
- // console.log(`获取参数信息++++${Vue.user.f_orgids}+++++${Vue.androidUtil.getProxyUrl()}`)
37
- await self.$appdata.load()
38
- let that = self
39
- let res = await Vue.resetget(`${url}/phone/rs/vue`,{data: {}},{resolveMsg: null, rejectMsg: null})
40
- that.$set('config',res.data)
41
- Vue.config2 = res.data
42
- console.log("手机端获取.json文件")
43
- console.log(JSON.stringify(self.config))
44
- } catch (error) {
45
- // 此处业务数据装载异常不做任何处理,理论上不会有任何异常
46
- console.log(error)
47
- }
48
- }
49
-
50
- //装载业务数据
51
- let asyncLoadData = async function(self,url) {
52
- try {
53
- // 读取报建本地配置文件
54
- var result = HostApp.readLocalFile('workflow_apply.json')
55
- if(result.code == 500){
56
- console.log('不存在流程配置文件,即不使用报建app')
57
- return
58
- }
59
- var data = JSON.parse(result.data)
60
- console.log('读取报建配置文件成功,存入缓存中的data=>' + JSON.stringify(data))
61
- Vue.workflow_vue = Vue.prototype.$workflow_vue = data
62
- } catch (error) {
63
- // 此处业务数据装载异常不做任何处理,理论上不会有任何异常,只有当app版本端版本较低无readlocalfile时会异常
64
- console.log(error)
65
- }
66
- }
67
-
68
- export default {
69
- title: '登录系统',
70
- data() {
71
- return {
72
- config:{},
73
- ename: '',
74
- password: '',
75
- showsave:true,
76
- deviceIemi:'无法获取该设备码,请联系管理员',
77
- loginSafe:false,
78
- margintop: document.documentElement.clientHeight * 0.1
79
- }
80
- },
81
-
82
- ready () {
83
- if(Vue.android) {
84
- let userPp1 = this.$androidUtil.getPreference('login_user_cache')
85
- if(userPp1){
86
- console.log(`1返回值是:${userPp1}`)
87
- userPp1 = userPp1.replace(/\'/g,'\"')
88
- console.log(`2返回值是:${userPp1}`)
89
- let userZs = JSON.parse(userPp1)
90
- this.password = userZs.password
91
- this.ename = userZs.username
92
- }
93
- this.deviceIemi = this.$androidUtil.getDeviceIEMI()
94
- console.log(`手机设备码:${this.deviceIemi}`)
95
- }
96
-
97
- // if(Vue.android) {
98
- // let version = HostApp.getAppVersion().data
99
- // this.$set('version', version)
100
- // }
101
- },
102
- methods: {
103
- // 记住密码选中/未选中
104
- showoff(){
105
- this.showsave = false
106
- },
107
- showon(){
108
- this.showsave = true
109
- },
110
- async confirm() {
111
- console.log('Vue.android:' + Vue.android)
112
- let data = {username: this.ename, password: this.password}
113
- console.log('获取登陆信息:' + data)
114
- Vue.dataUrl = this.$androidUtil.getProxyUrl() + "/"
115
- // rsa加密
116
- let encrypt = new JSEncrypt();
117
- encrypt.setPublicKey('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqPvovSfXcwBbW8cKMCgwqNpsYuzF8RPAPFb7LGsnVo44JhM/xxzDyzoYtdfNmtbIuKVi9PzIsyp6rg+09gbuI6UGwBZ5DWBDBMqv5MPdOF5dCQkB2Bbr5yPfURPENypUz+pBFBg41d+BC+rwRiXELwKy7Y9caD/MtJyHydj8OUwIDAQAB');
118
- data = encrypt.encrypt(JSON.stringify(data))
119
- console.log(data)
120
- try {
121
- let ret = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/user/userLogin/手机服务`, data, {
122
- resolveMsg: null,
123
- rejectMsg: '资源服务数据获取异常'
124
- })
125
- console.log('获取登陆信息:' + JSON.stringify(ret.data) )
126
- console.log('当前登录维修员:' + ret.data.name)
127
- // 设置登录人
128
- Vue.user = Util.f = ret.data
129
- console.log('Util.f:' +JSON.stringify(Util.f) )
130
- let userStr
131
- if (Vue.android){
132
- console.log(`Device_IEMI:${this.$androidUtil.getPreference('Device_IEMI')}`)
133
- // 判断是否需要验证 设备码
134
- if(this.$androidUtil.getPreference('Device_IEMI')){
135
- console.log(`手机设备码:${this.deviceIemi}`)
136
- let result = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`,{data: {items: '*', tablename: 't_equipment', orderitem: 'id desc', condition:`f_terminal_number = '${this.deviceIemi}' and f_state = '正常'`}},{resolveMsg: null, rejectMsg: null})
137
- console.log(`检测设备码存在是否:${result.data.length}`)
138
- if(result.data.length == 0){
139
- HostApp.alert('设备码未绑定,请联系管理员!')
140
- return
141
- }
142
- }
143
- if(this.showsave){
144
- userStr = `{'username':'${this.ename}','password':'${this.password}'}`
145
- }else{
146
- userStr = `{'username':'${this.ename}','password':''}`
147
- }
148
- this.$androidUtil.setPreference('login_user_cache', userStr)
149
- this.$androidUtil.setPreference('f_repairman_id', Util.f.id)
150
- this.$androidUtil.setPreference('f_repairman_name', Util.f.name)
151
- }
152
- Vue.$login = {jwt: ret.data.id}
153
- // 获取参数
154
- console.log('获取参数system以及安检参数')
155
- asyncReady(this,this.$androidUtil.getProxyUrl())
156
- console.log('获取参数结束')
157
-
158
- console.log('登陆验证成功时装载业务数据')
159
- asyncLoadData()
160
- console.log('装载业务数据结束')
161
-
162
- this.$goto('nav-bottom')
163
- }catch (e) {
164
- if (Vue.android)
165
- HostApp.alert('登录失败!')
166
- }
167
- },
168
- // readConfig (url) {
169
- // let gen =
170
- // return co(gen)
171
- // },
172
- },
173
- watch:{
174
- 'config'(val){
175
- Vue.config = val
176
- }
177
- }
178
- }
179
- </script>
180
- <style scoped="">
181
- .devicetext {
182
- font: 13px PingFang-SC-Medium;
183
- position:fixed;
184
- width:100%;
185
- bottom:13px;
186
- transform: translate(-50%, -50%);
187
- }
188
- /*输入框样式*/
189
- /*@import url(http://fonts.useso.com/css?family=Source+Sans+Pro:200,300);*/
190
- * {
191
- box-sizing: border-box;
192
- margin: 0;
193
- padding: 0;
194
- font-weight: 300;
195
- }
196
- .loginbg {
197
- font-family: 'Source Sans Pro', sans-serif;
198
- color: white;
199
- font-weight: 300;
200
- }
201
- .loginbg ::-webkit-input-placeholder {
202
- /* WebKit browsers */
203
- font-family: 'Source Sans Pro', sans-serif;
204
- color: white;
205
- font-weight: 300;
206
- }
207
- .loginbg :-moz-placeholder {
208
- /* Mozilla Firefox 4 to 18 */
209
- font-family: 'Source Sans Pro', sans-serif;
210
- color: white;
211
- opacity: 1;
212
- font-weight: 300;
213
- }
214
- .loginbg ::-moz-placeholder {
215
- /* Mozilla Firefox 19+ */
216
- font-family: 'Source Sans Pro', sans-serif;
217
- color: white;
218
- opacity: 1;
219
- font-weight: 300;
220
- }
221
- .loginbg :-ms-input-placeholder {
222
- /* Internet Explorer 10+ */
223
- font-family: 'Source Sans Pro', sans-serif;
224
- color: white;
225
- font-weight: 300;
226
- }
227
- .wrapper {
228
- /*background: #2D83BA;
229
- background: -webkit-linear-gradient(top left, #2D83BA 0%, #2D83BA 100%);
230
- background: linear-gradient(to bottom right, #2D83BA 0%, #2D83BA 100%);
231
- opacity: 0.8;*/
232
- /*position: absolute;*/
233
- /*top: 50%;
234
- right: 10%;
235
- width: 40%;
236
- height: 350px;
237
- margin-top: -150px;*/
238
- overflow: hidden;
239
- }
240
-
241
- .wrapper.form-success .container h3{
242
- -webkit-transform: translateY(85px);
243
- -ms-transform: translateY(85px);
244
- transform: translateY(85px);
245
- }
246
- .container {
247
- /*max-width: 350px;*/
248
- margin: 0 auto;
249
- /*padding: 30px 100px 50px 100px;
250
- height: 350px;*/
251
- text-align: center;
252
- /*以下增加*/
253
- /*background: #2D83BA;
254
- background: -webkit-linear-gradient(top left, #2D83BA 0%, #2D83BA 100%);
255
- background: linear-gradient(to bottom right, #2D83BA 0%, #2D83BA 100%);*/
256
- opacity: 0.8;
257
- }
258
- .container h3{
259
- font-size: 40px;
260
- -webkit-transition-duration: 1s;
261
- transition-duration: 1s;
262
- -webkit-transition-timing-function: ease-in-put;
263
- transition-timing-function: ease-in-put;
264
- font-weight: 200;
265
- }
266
- .form {
267
- padding: 20px 0;
268
- /*margin-top: 15%;*/
269
- position: relative;
270
- z-index: 2;
271
- }
272
- .form input {
273
- -webkit-appearance: none;
274
- -moz-appearance: none;
275
- appearance: none;
276
- outline: 0;
277
- border: 1px solid #50ABE6;
278
- background-color: #50ABE6;
279
- width: 250px;
280
- border-radius: 3px;
281
- padding: 10px 15px;
282
- margin: 0 auto 10px auto;
283
- display: block;
284
- text-align: center;
285
- font-size: 18px;
286
- color: white;
287
- -webkit-transition-duration: 0.25s;
288
- transition-duration: 0.25s;
289
- font-weight: 300;
290
- }
291
- .form input:hover {
292
- background-color: rgba(255, 255, 255, 0.4);
293
- }
294
- .form input:focus {
295
- background-color: white;
296
- width: 300px;
297
- color: #53e3a6;
298
- }
299
- .usericon {
300
- background-image: url(../assets/usericon.png);
301
- background-repeat: no-repeat;
302
- background-size: 30px;
303
- background-position-x: 8px;
304
- background-position-y: 8px;
305
- }
306
- .psicon {
307
- background-image: url(../assets/psicon.png);
308
- background-repeat: no-repeat;
309
- background-size: 30px;
310
- background-position-x: 8px;
311
- background-position-y: 8px;
312
- }
313
- .form button {
314
- -webkit-appearance: none;
315
- -moz-appearance: none;
316
- appearance: none;
317
- outline: 0;
318
- background-color: white;
319
- border: 0;
320
- padding: 10px 15px;
321
- color: #253830;
322
- border-radius: 3px;
323
- width: 250px;
324
- cursor: pointer;
325
- font-size: 18px;
326
- -webkit-transition-duration: 0.25s;
327
- transition-duration: 0.25s;
328
- }
329
- .form button:hover {
330
- background-color: #f5f7f9;
331
- }
332
-
333
- /*注册字体样式*/
334
- .form span {
335
- color: #fff;
336
- display: table-footer-group;
337
- position: absolute;
338
- right: 10px;
339
- margin-top: 10px;
340
- cursor: pointer;
341
- }
342
- .logotitle {
343
- color: #fff;
344
- position: absolute;
345
- top: 50px;
346
- left: 50px;
347
- font-size: 50px;
348
- }
349
- /*注册模态框界面样式*/
350
- .modifystyle {
351
- background: #FCFEEE;
352
- }
353
- .modifystyle div{
354
- height: auto;
355
- margin-bottom: 15px;
356
- /*text-align: center;*/
357
- /*margin-left: 20%;*/
358
- }
359
- /*bootstrap字体图标要手动调整,所以使用字体图标的span必须紧跟在input后面,负责会错位*/
360
- .modifystyle div input + span{
361
- top: 0!important;
362
- right: 32%;
363
- }
364
- .modifystyle span{
365
- color: red;
366
- }
367
-
368
- /* 通告区内容 */
369
- .notice-board {
370
- height: auto;
371
- position: absolute;
372
- top: 50%;
373
- margin-top: -150px;
374
- margin-left: 100px;
375
- color: #fff;
376
- }
377
- /*修改密码底部按钮部分样式*/
378
- .footerbtn {
379
- text-align: center;
380
- padding: 15px;
381
- }
382
- .footerbtn button {
383
- width: 100px;
384
- margin-left: 20px;
385
- }
386
- .bg-bubbles {
387
- position: absolute;
388
- top: 0;
389
- left: 0;
390
- width: 100%;
391
- height: 100%;
392
- z-index: 1;
393
- }
394
- .bg-bubbles li {
395
- position: absolute;
396
- list-style: none;
397
- display: block;
398
- width: 40px;
399
- height: 40px;
400
- background-color: rgba(255, 255, 255, 0.15);
401
- bottom: -160px;
402
- -webkit-animation: square 25s infinite;
403
- animation: square 25s infinite;
404
- -webkit-transition-timing-function: linear;
405
- transition-timing-function: linear;
406
- }
407
- .bg-bubbles li:nth-child(1) {
408
- left: 10%;
409
- }
410
- .bg-bubbles li:nth-child(2) {
411
- left: 20%;
412
- width: 80px;
413
- height: 80px;
414
- -webkit-animation-delay: 2s;
415
- animation-delay: 2s;
416
- -webkit-animation-duration: 17s;
417
- animation-duration: 17s;
418
- }
419
- .bg-bubbles li:nth-child(3) {
420
- left: 25%;
421
- -webkit-animation-delay: 4s;
422
- animation-delay: 4s;
423
- }
424
- .bg-bubbles li:nth-child(4) {
425
- left: 40%;
426
- width: 60px;
427
- height: 60px;
428
- -webkit-animation-duration: 22s;
429
- animation-duration: 22s;
430
- background-color: rgba(255, 255, 255, 0.25);
431
- }
432
- .bg-bubbles li:nth-child(5) {
433
- left: 70%;
434
- }
435
- .bg-bubbles li:nth-child(6) {
436
- left: 80%;
437
- width: 120px;
438
- height: 120px;
439
- -webkit-animation-delay: 3s;
440
- animation-delay: 3s;
441
- background-color: rgba(255, 255, 255, 0.2);
442
- }
443
- .bg-bubbles li:nth-child(7) {
444
- left: 32%;
445
- width: 160px;
446
- height: 160px;
447
- -webkit-animation-delay: 7s;
448
- animation-delay: 7s;
449
- }
450
- .bg-bubbles li:nth-child(8) {
451
- left: 55%;
452
- width: 20px;
453
- height: 20px;
454
- -webkit-animation-delay: 15s;
455
- animation-delay: 15s;
456
- -webkit-animation-duration: 40s;
457
- animation-duration: 40s;
458
- }
459
- .bg-bubbles li:nth-child(9) {
460
- left: 25%;
461
- width: 10px;
462
- height: 10px;
463
- -webkit-animation-delay: 2s;
464
- animation-delay: 2s;
465
- -webkit-animation-duration: 40s;
466
- animation-duration: 40s;
467
- background-color: rgba(255, 255, 255, 0.3);
468
- }
469
- .bg-bubbles li:nth-child(10) {
470
- left: 90%;
471
- width: 160px;
472
- height: 160px;
473
- -webkit-animation-delay: 11s;
474
- animation-delay: 11s;
475
- }
476
- @-webkit-keyframes square {
477
- 0% {
478
- -webkit-transform: translateY(0);
479
- transform: translateY(0);
480
- }
481
- 100% {
482
- -webkit-transform: translateY(-700px) rotate(600deg);
483
- transform: translateY(-700px) rotate(600deg);
484
- }
485
- }
486
- @keyframes square {
487
- 0% {
488
- -webkit-transform: translateY(0);
489
- transform: translateY(0);
490
- }
491
- 100% {
492
- -webkit-transform: translateY(-700px) rotate(600deg);
493
- transform: translateY(-700px) rotate(600deg);
494
- }
495
- }
496
- </style>
1
+ <template>
2
+ <div class="loginbg" id="outheight">
3
+ <!--输入框-->
4
+ <div class="htmleaf-container">
5
+ <div class="wrapper" :class="{'form-success': login}">
6
+ <div class="container">
7
+ <h3 style="color:white; margin-top: 15px">欢迎使用</h3>
8
+ <p class="form" style="margin-top:{{margintop}}px">
9
+ <input type="text" v-model="ename" class="usericon">
10
+ <input :type="showpass==true?'text':'password'" v-model="password" class="psicon"><img :src="imageurl" style="width: 20px;margin-bottom: 5px;position: absolute;left: 62%;bottom: 43%;" alt="" @click="changepass()">
11
+ <button type="button" id="login-button" @click.prevent="confirm()"><strong>登录</strong></button>
12
+ </p>
13
+ <div class="row">
14
+ <img src="../assets/选中.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="showsave"@click="showoff()">
15
+ <img src="../assets/未选.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="!showsave" @click="showon()">
16
+ <span class="text-left font">记住密码</span>
17
+ <img src="../assets/选中.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="showauto == '1'"@click="showoff1()">
18
+ <img src="../assets/未选.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="showauto == '2'" @click="showon1()">
19
+ <span class="text-left font">自动登录</span>
20
+ <p></p>
21
+ <span class="versionNumberText">版本号:{{versionNumber}}</span> <br>
22
+ <span class="devicetext">设备码:{{deviceIemi}}</span>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ <!--<load-appdata @ready="onReady"></load-appdata>-->
28
+ <div style="width: 100%;height: 100%;position: fixed;top: 0px;" v-show="loaderShow">
29
+ <div id="loading" class="loading">登陆中...</div>
30
+ </div>
31
+ <modal :show.sync="modifyPassword" backdrop="false">
32
+ <header slot="modal-header" class="modal-header">
33
+ </header>
34
+ <article slot="modal-body" class="modal-body">
35
+ <modify-pass-word :sourse="login" :weak-password="weakPassword" v-if="modifyPassword" v-on:success="success"></modify-pass-word>
36
+ </article>
37
+ <footer slot="modal-footer" class="modal-footer">
38
+ </footer>
39
+ </modal>
40
+ </div>
41
+ </template>
42
+ <script>
43
+ import Vue from 'vue'
44
+ import * as Util from '../Util'
45
+ import JSEncrypt from 'jsencrypt'
46
+ import $ from 'jquery'
47
+ import co from 'co'
48
+ //获取json配置文件
49
+ let asyncReady = async function(self,url) {
50
+ // 获取配置信息
51
+ try {
52
+ // console.log(`获取参数信息++++${Vue.user.f_orgids}+++++${Vue.androidUtil.getProxyUrl()}`)
53
+ await self.$appdata.load()
54
+ let that = self
55
+ let res = await Vue.resetget(`${url}/phone/rs/vue`,{data: {}},{resolveMsg: null, rejectMsg: null})
56
+ that.$set('config',res.data)
57
+ Vue.config2 = res.data
58
+ // 判断是否需要弱密码校验
59
+ if(self.config && self.config.telephone && self.config.telephone.LoginApp && "undefined" != typeof self.config.telephone.LoginApp.weakPassword){
60
+ self.weakPassword = self.config.telephone.LoginApp.weakPassword
61
+ }
62
+ console.log("手机端获取.json文件")
63
+ console.log(JSON.stringify(self.config))
64
+ return true
65
+ } catch (error) {
66
+ // 此处业务数据装载异常不做任何处理,理论上不会有任何异常
67
+ self.$showMessage('登录系统: 获取配置文件失败,请检查网络后重新登陆!')
68
+ return false
69
+ }
70
+ }
71
+
72
+ //装载业务数据
73
+ let asyncLoadData = async function(self,url) {
74
+ try {
75
+ // 读取报建本地配置文件
76
+ var result = HostApp.readLocalFile('workflow_apply.json')
77
+ if(result.code == 500){
78
+ console.log('不存在流程配置文件,即不使用报建app')
79
+ return
80
+ }
81
+ var data = JSON.parse(result.data)
82
+ console.log('读取报建配置文件成功,存入缓存中的data=>' + JSON.stringify(data))
83
+ Vue.workflow_vue = Vue.prototype.$workflow_vue = data
84
+ } catch (error) {
85
+ // 此处业务数据装载异常不做任何处理,理论上不会有任何异常,只有当app版本端版本较低无readlocalfile时会异常
86
+ console.log(error)
87
+ }
88
+ }
89
+
90
+ export default {
91
+ title: '登录系统',
92
+ data() {
93
+ return {
94
+ loaderShow:false,
95
+ config:{},
96
+ weakPassword:false,
97
+ modifyPassword:false,
98
+ ename: '',
99
+ login:'login',
100
+ password: '',
101
+ showsave:true,
102
+ showauto:'2', // 1 自动登陆 2取消自动登陆
103
+ showpass:false,
104
+ imageurl:require('../assets/miwen.png'),
105
+ deviceIemi:'无法获取该设备码,请联系管理员',
106
+ versionNumber:'',
107
+ loginSafe:false,
108
+ margintop: document.documentElement.clientHeight * 0.1
109
+ }
110
+ },
111
+
112
+ ready () {
113
+ if(Vue.android) {
114
+ let userPp1 = this.$androidUtil.getPreference('login_user_cache')
115
+ this.showauto = this.$androidUtil.getPreference('auto_login')
116
+ this.showauto = this.showauto ? this.showauto : '2'
117
+ console.log(`自动登陆标识ready:${this.showauto}`)
118
+ if(userPp1){
119
+ console.log(`1返回值是:${userPp1}`)
120
+ userPp1 = userPp1.replace(/\'/g,'\"')
121
+ console.log(`2返回值是:${userPp1}`)
122
+ let userZs = JSON.parse(userPp1)
123
+ this.password = userZs.password
124
+ this.ename = userZs.username
125
+ }
126
+ this.deviceIemi = this.$androidUtil.getDeviceIEMI()
127
+ console.log(`手机设备码:${this.deviceIemi}`)
128
+ if(this.showauto == '1' && this.password){
129
+ this.confirm()
130
+ }
131
+ }
132
+
133
+ // if(Vue.android) {
134
+ // let version = HostApp.getAppVersion().data
135
+ // this.$set('version', version)
136
+ // }
137
+ let data = {
138
+ items: '*',
139
+ tablename: 't_singlevalue',
140
+ orderitem: 'id desc',
141
+ condition: "name ='手机端更新版本'"
142
+ }
143
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`,
144
+ {data: data},
145
+ {resolveMsg: null, rejectMsg: null}).then((row) => {
146
+ console.log('打印',row.data[0])
147
+ this.versionNumber = row.data[0].value
148
+ })
149
+ },
150
+ methods: {
151
+ success(val){
152
+ // 修改密码成功
153
+ this.modifyPassword = false
154
+ this.password = val
155
+ },
156
+ // 对资源菜单进行排序
157
+ sortFunctions(val){
158
+ if(val && val.length > 0){
159
+ for(var i = 0;i<val.length-1;i++){
160
+ for(var j = 0;j<val.length-1-i;j++){
161
+ if(val[j].position > val[j+1].position){
162
+ var temp = val[j+1]
163
+ val[j+1] = val[j]
164
+ val[j] = temp;
165
+ }
166
+ }
167
+ }
168
+ return val
169
+ }
170
+ return val
171
+ },
172
+ // 记住密码选中/未选中
173
+ showoff(){
174
+ this.showsave = false
175
+ },
176
+ showon(){
177
+ this.showsave = true
178
+ },
179
+ showoff1(){
180
+ this.showauto = '2'
181
+ },
182
+ showon1(){
183
+ this.showauto = '1'
184
+ },
185
+ changepass(){
186
+ this.showpass=this.showpass?false:true
187
+ if(this.showpass){
188
+ this.imageurl=require("../assets/mingwen.png")
189
+ }else{
190
+ this.imageurl=require("../assets/miwen.png")
191
+ }
192
+
193
+ },
194
+ async confirm() {
195
+ this.loaderShow=true
196
+ console.log('Vue.android:' + Vue.android)
197
+ let data = {username: this.ename, password: this.password}
198
+ console.log('获取登陆信息:' + data)
199
+ Vue.dataUrl = this.$androidUtil.getProxyUrl() + "/"
200
+ // rsa加密
201
+ let encrypt = new JSEncrypt();
202
+ encrypt.setPublicKey('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqPvovSfXcwBbW8cKMCgwqNpsYuzF8RPAPFb7LGsnVo44JhM/xxzDyzoYtdfNmtbIuKVi9PzIsyp6rg+09gbuI6UGwBZ5DWBDBMqv5MPdOF5dCQkB2Bbr5yPfURPENypUz+pBFBg41d+BC+rwRiXELwKy7Y9caD/MtJyHydj8OUwIDAQAB');
203
+ data = encrypt.encrypt(JSON.stringify(data))
204
+ console.log(data)
205
+ try {
206
+ let ret={}
207
+ try{
208
+ ret = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/user/userLogin/手机服务`, data, {
209
+ resolveMsg: null,
210
+ rejectMsg: null
211
+ })
212
+ console.log('获取登陆信息:' + JSON.stringify(ret.data) )
213
+ console.log('当前登录维修员:' + ret.data.name)
214
+ }catch (e) {
215
+ if (Vue.android){
216
+ this.loaderShow=false
217
+ this.$showMessage("登陆失败,请检查账号密码是否有误,如多次失败请联系管理员核对账号密码!")
218
+ }
219
+ return
220
+ }
221
+ // 设置登录人
222
+ Vue.user = Util.f = ret.data
223
+ if (ret.data.state != '在职') {
224
+ this.loaderShow=false
225
+ return this.$showMessage("登陆失败,该账号已被注销!")
226
+ }
227
+ // 对资源菜单进行排序
228
+ let viewDetails = await Vue.resetpost(`${this.$androidUtil.getProxyUrl()}/rs/search`, {
229
+ source: 'this.getRights().where(row.getType()==$function$ && row.getPath($name$).indexOf($功能权限$) != -1)',
230
+ userid: Vue.user.id
231
+ }, {resolveMsg: null, rejectMsg: null})
232
+ let r = viewDetails.data
233
+ Vue.user.r = []
234
+ r.forEach(x => Vue.user.r.push(x.name))
235
+
236
+
237
+ Vue.functions = this.sortFunctions(ret.data.functions)
238
+ console.log('登陆人信息',JSON.stringify(Vue.user))
239
+ let userStr
240
+ if (Vue.android){
241
+ console.log(`Device_IEMI:${this.$androidUtil.getPreference('Device_IEMI')}`)
242
+ // 判断是否需要验证 设备码
243
+ if(this.$androidUtil.getPreference('Device_IEMI')){
244
+ console.log(`手机设备码:${this.deviceIemi}`)
245
+ let result = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`,{data: {items: '*', tablename: 't_equipment', orderitem: 'id desc', condition:`f_terminal_number = '${this.deviceIemi}' and f_state = '正常'`}},{resolveMsg: null, rejectMsg: null})
246
+ console.log(`检测设备码存在是否:${result.data.length}`)
247
+ if(result.data.length == 0){
248
+ HostApp.alert('设备码未绑定,请联系管理员!')
249
+ return
250
+ }
251
+ }
252
+ if(this.showsave){
253
+ userStr = `{'username':'${this.ename}','password':'${this.password}'}`
254
+ }else{
255
+ userStr = `{'username':'${this.ename}','password':''}`
256
+ }
257
+ console.log(this.showauto)
258
+ this.$androidUtil.setPreference('login_user_cache', userStr)
259
+ this.$androidUtil.setPreference('f_repairman_id', Util.f.id)
260
+ this.$androidUtil.setPreference('f_repairman_name', Util.f.name)
261
+ this.$androidUtil.setPreference('f_role_name', Util.f.f_role_name || '')
262
+ console.log("自动登陆标识"+Util.f.f_role_name)
263
+ console.log(this.showauto)
264
+ this.$androidUtil.setPreference('auto_login',this.showauto)
265
+ }
266
+ Vue.$login = {jwt: ret.data.id}
267
+ // 获取参数
268
+ console.log('获取参数system以及安检参数')
269
+ var flag = await asyncReady(this,this.$androidUtil.getProxyUrl())
270
+ if(!flag){
271
+ this.loaderShow=false
272
+ console.log('获取参数异常')
273
+ return
274
+ }
275
+ console.log('获取参数结束')
276
+ // console.log('登陆验证成功时装载业务数据')
277
+ // asyncLoadData()
278
+ // console.log('装载业务数据结束')
279
+ this.loaderShow=false
280
+ // 弱口令验证
281
+ if (this.weakPassword && !(/^(?:(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).*$/.test(this.password))) {
282
+ await this.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm'])
283
+ this.modifyPassword = true
284
+ return
285
+ }
286
+ this.$goto('nav-bottom')
287
+ }catch (e) {
288
+ if (Vue.android)
289
+ this.loaderShow=false
290
+ this.$showMessage("登陆失败!")
291
+ }
292
+ },
293
+ // readConfig (url) {
294
+ // let gen =
295
+ // return co(gen)
296
+ // },
297
+ },
298
+ watch:{
299
+ 'config'(val){
300
+ Vue.config = val
301
+ }
302
+ }
303
+ }
304
+ </script>
305
+ <style scoped="">
306
+ .devicetext {
307
+ font: 13px PingFang-SC-Medium;
308
+ position:fixed;
309
+ width:100%;
310
+ bottom:13px;
311
+ transform: translate(-50%, -50%);
312
+ }
313
+ .versionNumberText {
314
+ font: 13px PingFang-SC-Medium;
315
+ position:fixed;
316
+ width:100%;
317
+ bottom:35px;
318
+ transform: translate(-50%, -50%);
319
+ }
320
+ /*输入框样式*/
321
+ /*@import url(http://fonts.useso.com/css?family=Source+Sans+Pro:200,300);*/
322
+ * {
323
+ box-sizing: border-box;
324
+ margin: 0;
325
+ padding: 0;
326
+ font-weight: 300;
327
+ }
328
+ .loginbg {
329
+ font-family: 'Source Sans Pro', sans-serif;
330
+ color: white;
331
+ font-weight: 300;
332
+ }
333
+ .loginbg ::-webkit-input-placeholder {
334
+ /* WebKit browsers */
335
+ font-family: 'Source Sans Pro', sans-serif;
336
+ color: white;
337
+ font-weight: 300;
338
+ }
339
+ .loginbg :-moz-placeholder {
340
+ /* Mozilla Firefox 4 to 18 */
341
+ font-family: 'Source Sans Pro', sans-serif;
342
+ color: white;
343
+ opacity: 1;
344
+ font-weight: 300;
345
+ }
346
+ .loginbg ::-moz-placeholder {
347
+ /* Mozilla Firefox 19+ */
348
+ font-family: 'Source Sans Pro', sans-serif;
349
+ color: white;
350
+ opacity: 1;
351
+ font-weight: 300;
352
+ }
353
+ .loginbg :-ms-input-placeholder {
354
+ /* Internet Explorer 10+ */
355
+ font-family: 'Source Sans Pro', sans-serif;
356
+ color: white;
357
+ font-weight: 300;
358
+ }
359
+ .wrapper {
360
+ /*background: #2D83BA;
361
+ background: -webkit-linear-gradient(top left, #2D83BA 0%, #2D83BA 100%);
362
+ background: linear-gradient(to bottom right, #2D83BA 0%, #2D83BA 100%);
363
+ opacity: 0.8;*/
364
+ /*position: absolute;*/
365
+ /*top: 50%;
366
+ right: 10%;
367
+ width: 40%;
368
+ height: 350px;
369
+ margin-top: -150px;*/
370
+ overflow: hidden;
371
+ }
372
+
373
+ .wrapper.form-success .container h3{
374
+ -webkit-transform: translateY(85px);
375
+ -ms-transform: translateY(85px);
376
+ transform: translateY(85px);
377
+ }
378
+ .container {
379
+ /*max-width: 350px;*/
380
+ margin: 0 auto;
381
+ /*padding: 30px 100px 50px 100px;
382
+ height: 350px;*/
383
+ text-align: center;
384
+ /*以下增加*/
385
+ /*background: #2D83BA;
386
+ background: -webkit-linear-gradient(top left, #2D83BA 0%, #2D83BA 100%);
387
+ background: linear-gradient(to bottom right, #2D83BA 0%, #2D83BA 100%);*/
388
+ opacity: 0.8;
389
+ }
390
+ .container h3{
391
+ font-size: 40px;
392
+ -webkit-transition-duration: 1s;
393
+ transition-duration: 1s;
394
+ -webkit-transition-timing-function: ease-in-put;
395
+ transition-timing-function: ease-in-put;
396
+ font-weight: 200;
397
+ }
398
+ .form {
399
+ padding: 20px 0;
400
+ /*margin-top: 15%;*/
401
+ position: relative;
402
+ z-index: 2;
403
+ }
404
+ .form input {
405
+ -webkit-appearance: none;
406
+ -moz-appearance: none;
407
+ appearance: none;
408
+ outline: 0;
409
+ border: 1px solid #50ABE6;
410
+ background-color: #50ABE6;
411
+ width: 250px;
412
+ border-radius: 3px;
413
+ padding: 10px 15px;
414
+ margin: 0 auto 10px auto;
415
+ display: block;
416
+ text-align: center;
417
+ font-size: 18px;
418
+ color: white;
419
+ -webkit-transition-duration: 0.25s;
420
+ transition-duration: 0.25s;
421
+ font-weight: 300;
422
+ }
423
+ .form input:hover {
424
+ background-color: rgba(255, 255, 255, 0.4);
425
+ }
426
+ .form input:focus {
427
+ background-color: white;
428
+ width: 300px;
429
+ color: #53e3a6;
430
+ }
431
+ .usericon {
432
+ background-image: url(../assets/usericon.png);
433
+ background-repeat: no-repeat;
434
+ background-size: 30px;
435
+ background-position-x: 8px;
436
+ background-position-y: 8px;
437
+ }
438
+ .psicon {
439
+ background-image: url(../assets/psicon.png);
440
+ background-repeat: no-repeat;
441
+ background-size: 30px;
442
+ background-position-x: 8px;
443
+ background-position-y: 8px;
444
+ }
445
+ .form button {
446
+ -webkit-appearance: none;
447
+ -moz-appearance: none;
448
+ appearance: none;
449
+ outline: 0;
450
+ background-color: white;
451
+ border: 0;
452
+ padding: 10px 15px;
453
+ color: #253830;
454
+ border-radius: 3px;
455
+ width: 250px;
456
+ cursor: pointer;
457
+ font-size: 18px;
458
+ -webkit-transition-duration: 0.25s;
459
+ transition-duration: 0.25s;
460
+ }
461
+ .form button:hover {
462
+ background-color: #f5f7f9;
463
+ }
464
+
465
+ /*注册字体样式*/
466
+ .form span {
467
+ color: #fff;
468
+ display: table-footer-group;
469
+ position: absolute;
470
+ right: 10px;
471
+ margin-top: 10px;
472
+ cursor: pointer;
473
+ }
474
+ .logotitle {
475
+ color: #fff;
476
+ position: absolute;
477
+ top: 50px;
478
+ left: 50px;
479
+ font-size: 50px;
480
+ }
481
+ /*注册模态框界面样式*/
482
+ .modifystyle {
483
+ background: #FCFEEE;
484
+ }
485
+ .modifystyle div{
486
+ height: auto;
487
+ margin-bottom: 15px;
488
+ /*text-align: center;*/
489
+ /*margin-left: 20%;*/
490
+ }
491
+ /*bootstrap字体图标要手动调整,所以使用字体图标的span必须紧跟在input后面,负责会错位*/
492
+ .modifystyle div input + span{
493
+ top: 0!important;
494
+ right: 32%;
495
+ }
496
+ .modifystyle span{
497
+ color: red;
498
+ }
499
+
500
+ /* 通告区内容 */
501
+ .notice-board {
502
+ height: auto;
503
+ position: absolute;
504
+ top: 50%;
505
+ margin-top: -150px;
506
+ margin-left: 100px;
507
+ color: #fff;
508
+ }
509
+ /*修改密码底部按钮部分样式*/
510
+ .footerbtn {
511
+ text-align: center;
512
+ padding: 15px;
513
+ }
514
+ .footerbtn button {
515
+ width: 100px;
516
+ margin-left: 20px;
517
+ }
518
+ .bg-bubbles {
519
+ position: absolute;
520
+ top: 0;
521
+ left: 0;
522
+ width: 100%;
523
+ height: 100%;
524
+ z-index: 1;
525
+ }
526
+ .bg-bubbles li {
527
+ position: absolute;
528
+ list-style: none;
529
+ display: block;
530
+ width: 40px;
531
+ height: 40px;
532
+ background-color: rgba(255, 255, 255, 0.15);
533
+ bottom: -160px;
534
+ -webkit-animation: square 25s infinite;
535
+ animation: square 25s infinite;
536
+ -webkit-transition-timing-function: linear;
537
+ transition-timing-function: linear;
538
+ }
539
+ .bg-bubbles li:nth-child(1) {
540
+ left: 10%;
541
+ }
542
+ .bg-bubbles li:nth-child(2) {
543
+ left: 20%;
544
+ width: 80px;
545
+ height: 80px;
546
+ -webkit-animation-delay: 2s;
547
+ animation-delay: 2s;
548
+ -webkit-animation-duration: 17s;
549
+ animation-duration: 17s;
550
+ }
551
+ .bg-bubbles li:nth-child(3) {
552
+ left: 25%;
553
+ -webkit-animation-delay: 4s;
554
+ animation-delay: 4s;
555
+ }
556
+ .bg-bubbles li:nth-child(4) {
557
+ left: 40%;
558
+ width: 60px;
559
+ height: 60px;
560
+ -webkit-animation-duration: 22s;
561
+ animation-duration: 22s;
562
+ background-color: rgba(255, 255, 255, 0.25);
563
+ }
564
+ .bg-bubbles li:nth-child(5) {
565
+ left: 70%;
566
+ }
567
+ .bg-bubbles li:nth-child(6) {
568
+ left: 80%;
569
+ width: 120px;
570
+ height: 120px;
571
+ -webkit-animation-delay: 3s;
572
+ animation-delay: 3s;
573
+ background-color: rgba(255, 255, 255, 0.2);
574
+ }
575
+ .bg-bubbles li:nth-child(7) {
576
+ left: 32%;
577
+ width: 160px;
578
+ height: 160px;
579
+ -webkit-animation-delay: 7s;
580
+ animation-delay: 7s;
581
+ }
582
+ .bg-bubbles li:nth-child(8) {
583
+ left: 55%;
584
+ width: 20px;
585
+ height: 20px;
586
+ -webkit-animation-delay: 15s;
587
+ animation-delay: 15s;
588
+ -webkit-animation-duration: 40s;
589
+ animation-duration: 40s;
590
+ }
591
+ .bg-bubbles li:nth-child(9) {
592
+ left: 25%;
593
+ width: 10px;
594
+ height: 10px;
595
+ -webkit-animation-delay: 2s;
596
+ animation-delay: 2s;
597
+ -webkit-animation-duration: 40s;
598
+ animation-duration: 40s;
599
+ background-color: rgba(255, 255, 255, 0.3);
600
+ }
601
+ .bg-bubbles li:nth-child(10) {
602
+ left: 90%;
603
+ width: 160px;
604
+ height: 160px;
605
+ -webkit-animation-delay: 11s;
606
+ animation-delay: 11s;
607
+ }
608
+ @-webkit-keyframes square {
609
+ 0% {
610
+ -webkit-transform: translateY(0);
611
+ transform: translateY(0);
612
+ }
613
+ 100% {
614
+ -webkit-transform: translateY(-700px) rotate(600deg);
615
+ transform: translateY(-700px) rotate(600deg);
616
+ }
617
+ }
618
+ @keyframes square {
619
+ 0% {
620
+ -webkit-transform: translateY(0);
621
+ transform: translateY(0);
622
+ }
623
+ 100% {
624
+ -webkit-transform: translateY(-700px) rotate(600deg);
625
+ transform: translateY(-700px) rotate(600deg);
626
+ }
627
+ }
628
+ .loading {
629
+ width: 36%;
630
+ height: 7%;
631
+ position: absolute;
632
+ top: 30%;
633
+ left: 32%;
634
+ line-height: 56px;
635
+ color: #fff;
636
+ padding-left: 60px;
637
+ font-size: 15px;
638
+ background: #000 url(../assets/loging.gif) no-repeat 10px 50%;
639
+ opacity: 0.7;
640
+ z-index: 9999;
641
+ -moz-border-radius: 20px;
642
+ -webkit-border-radius: 20px;
643
+ border-radius: 20px;
644
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
645
+ }
646
+ </style>