system-phone 1.4.0 → 3.0.2

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