haiwei-ui 1.0.0

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 (504) hide show
  1. package/.browserslistrc +3 -0
  2. package/.eslintrc.js +20 -0
  3. package/.prettierrc +6 -0
  4. package/.vscode/settings.json +10 -0
  5. package/README.md +23 -0
  6. package/babel.config.js +10 -0
  7. package/npm/345/217/221/345/270/203/350/257/246/347/273/206/346/223/215/344/275/234/346/214/207/345/274/225.md +296 -0
  8. package/package.json +65 -0
  9. package/packages/components/box/index.vue +181 -0
  10. package/packages/components/box-col/index.vue +43 -0
  11. package/packages/components/box-row/index.vue +27 -0
  12. package/packages/components/box-small/index.vue +64 -0
  13. package/packages/components/button/index.vue +52 -0
  14. package/packages/components/button-copy/index.vue +74 -0
  15. package/packages/components/button-delete/index.vue +87 -0
  16. package/packages/components/button-delete-batch/index.vue +108 -0
  17. package/packages/components/button-has/index.vue +54 -0
  18. package/packages/components/checkbox-group/index.vue +111 -0
  19. package/packages/components/color-picker/index.vue +66 -0
  20. package/packages/components/container/index.vue +21 -0
  21. package/packages/components/date-range-picker/index.vue +117 -0
  22. package/packages/components/details/index.vue +105 -0
  23. package/packages/components/dialog/index.vue +364 -0
  24. package/packages/components/drag-sort/index.vue +50 -0
  25. package/packages/components/drag-sort-dialog/index.vue +73 -0
  26. package/packages/components/drawer/index.vue +239 -0
  27. package/packages/components/enums/sex/index.vue +3 -0
  28. package/packages/components/flex/index.vue +58 -0
  29. package/packages/components/form/index.vue +153 -0
  30. package/packages/components/form-dialog/index.vue +245 -0
  31. package/packages/components/form-page/index.vue +195 -0
  32. package/packages/components/icon/index.vue +15 -0
  33. package/packages/components/icon-picker/index.vue +52 -0
  34. package/packages/components/icon-picker/panel.vue +81 -0
  35. package/packages/components/index.js +26 -0
  36. package/packages/components/label/index.vue +39 -0
  37. package/packages/components/list/components/export/index.vue +190 -0
  38. package/packages/components/list/components/footer/index.vue +67 -0
  39. package/packages/components/list/components/header/index.vue +57 -0
  40. package/packages/components/list/components/querybar/index.vue +188 -0
  41. package/packages/components/list/components/select-column/index.vue +53 -0
  42. package/packages/components/list/components/table/index.vue +210 -0
  43. package/packages/components/list/default.js +63 -0
  44. package/packages/components/list/index.vue +500 -0
  45. package/packages/components/list-agile/index.vue +223 -0
  46. package/packages/components/list-dialog/index.vue +102 -0
  47. package/packages/components/listbox/index.vue +77 -0
  48. package/packages/components/login-default/index.vue +177 -0
  49. package/packages/components/login-neon/index.vue +171 -0
  50. package/packages/components/map/index.vue +245 -0
  51. package/packages/components/map-coord-picking/index.vue +276 -0
  52. package/packages/components/map-search/index.vue +98 -0
  53. package/packages/components/radio/index.js +12 -0
  54. package/packages/components/scrollbar/index.vue +20 -0
  55. package/packages/components/select/index.js +12 -0
  56. package/packages/components/select-whether/index.vue +42 -0
  57. package/packages/components/split/index.vue +178 -0
  58. package/packages/components/split/trigger.vue +28 -0
  59. package/packages/components/tabnav/index.vue +124 -0
  60. package/packages/components/tabs/index.vue +48 -0
  61. package/packages/components/toolbar/components/fullscreen/index.vue +22 -0
  62. package/packages/components/toolbar/components/logout/index.vue +25 -0
  63. package/packages/components/toolbar/components/skin-toggle/form.vue +100 -0
  64. package/packages/components/toolbar/components/skin-toggle/index.vue +25 -0
  65. package/packages/components/toolbar/components/userInfo/index.vue +44 -0
  66. package/packages/components/toolbar/index.vue +26 -0
  67. package/packages/components/tree-select/index.js +12 -0
  68. package/packages/components/tree-select/mixins.vue +334 -0
  69. package/packages/components/txt/index.vue +27 -0
  70. package/packages/components/update-password/index.vue +84 -0
  71. package/packages/directive/has/index.js +23 -0
  72. package/packages/directive/index.js +13 -0
  73. package/packages/index.js +209 -0
  74. package/packages/layout.vue +39 -0
  75. package/packages/library.js +5 -0
  76. package/packages/mixins/components/button.js +15 -0
  77. package/packages/mixins/components/checkbox.vue +98 -0
  78. package/packages/mixins/components/dialog.js +3 -0
  79. package/packages/mixins/components/drawer.js +3 -0
  80. package/packages/mixins/components/form-dialog-edit.js +67 -0
  81. package/packages/mixins/components/form-readonly.js +33 -0
  82. package/packages/mixins/components/form-save.js +123 -0
  83. package/packages/mixins/components/input.js +24 -0
  84. package/packages/mixins/components/list.js +36 -0
  85. package/packages/mixins/components/loading.js +20 -0
  86. package/packages/mixins/components/radio.vue +84 -0
  87. package/packages/mixins/components/select.js +293 -0
  88. package/packages/mixins/components/visible.js +24 -0
  89. package/packages/mixins/global/fontSize.js +6 -0
  90. package/packages/mixins/global/loading.js +15 -0
  91. package/packages/mixins/global/message.js +64 -0
  92. package/packages/mixins/global/setTabName.js +6 -0
  93. package/packages/mixins/index.js +51 -0
  94. package/packages/page/403/index.vue +50 -0
  95. package/packages/page/404/index.vue +50 -0
  96. package/packages/page/default/index.vue +29 -0
  97. package/packages/page/iframe/index.vue +15 -0
  98. package/packages/page/login/index.vue +19 -0
  99. package/packages/page/userInfo/index.vue +47 -0
  100. package/packages/router/index.js +100 -0
  101. package/packages/router/routes.js +60 -0
  102. package/packages/skins/pretty/components/header/components/breadcrumb/index.vue +45 -0
  103. package/packages/skins/pretty/components/header/components/theme/index.vue +39 -0
  104. package/packages/skins/pretty/components/header/components/theme/list.js +82 -0
  105. package/packages/skins/pretty/components/header/index.vue +38 -0
  106. package/packages/skins/pretty/components/main/index.vue +51 -0
  107. package/packages/skins/pretty/components/menus/index.vue +60 -0
  108. package/packages/skins/pretty/components/menus/item.vue +46 -0
  109. package/packages/skins/pretty/components/sidebar/index.vue +17 -0
  110. package/packages/skins/pretty/index.js +47 -0
  111. package/packages/skins/pretty/index.vue +16 -0
  112. package/packages/skins/pretty/preview.png +0 -0
  113. package/packages/skins/pretty/store/index.js +8 -0
  114. package/packages/skins/pretty/store/modules/sidebar.js +32 -0
  115. package/packages/skins/pretty/styles/_index.scss +30 -0
  116. package/packages/skins/pretty/styles/components/header/_index.scss +77 -0
  117. package/packages/skins/pretty/styles/components/main/_index.scss +24 -0
  118. package/packages/skins/pretty/styles/components/menus/_index.scss +80 -0
  119. package/packages/skins/pretty/styles/components/sidebar/_index.scss +28 -0
  120. package/packages/skins/pretty/styles/themes/_index.scss +20 -0
  121. package/packages/skins/pretty/styles/themes/_theme.scss +283 -0
  122. package/packages/skins/pretty/styles/themes/blue-light/_index.scss +5 -0
  123. package/packages/skins/pretty/styles/themes/blue-light/_variables.scss +38 -0
  124. package/packages/skins/pretty/styles/themes/default/_index.scss +2 -0
  125. package/packages/skins/pretty/styles/themes/default/_variables.scss +38 -0
  126. package/packages/skins/pretty/styles/themes/green/_index.scss +5 -0
  127. package/packages/skins/pretty/styles/themes/green/_variables.scss +38 -0
  128. package/packages/skins/pretty/styles/themes/green-light/_index.scss +5 -0
  129. package/packages/skins/pretty/styles/themes/green-light/_variables.scss +38 -0
  130. package/packages/skins/pretty/styles/themes/orange/_index.scss +5 -0
  131. package/packages/skins/pretty/styles/themes/orange/_variables.scss +38 -0
  132. package/packages/skins/pretty/styles/themes/orange-light/_index.scss +5 -0
  133. package/packages/skins/pretty/styles/themes/orange-light/_variables.scss +38 -0
  134. package/packages/skins/pretty/styles/themes/pink/_index.scss +5 -0
  135. package/packages/skins/pretty/styles/themes/pink/_variables.scss +40 -0
  136. package/packages/skins/pretty/styles/themes/pink-light/_index.scss +5 -0
  137. package/packages/skins/pretty/styles/themes/pink-light/_variables.scss +40 -0
  138. package/packages/store/index.js +33 -0
  139. package/packages/store/modules/account.js +133 -0
  140. package/packages/store/modules/config.js +100 -0
  141. package/packages/store/modules/dialog-menu.js +46 -0
  142. package/packages/store/modules/dialog.js +17 -0
  143. package/packages/store/modules/fullscreen.js +37 -0
  144. package/packages/store/modules/loading.js +8 -0
  145. package/packages/store/modules/page.js +404 -0
  146. package/packages/store/modules/skins.js +69 -0
  147. package/packages/store/modules/system.js +63 -0
  148. package/packages/store/modules/token.js +22 -0
  149. package/packages/styles/_element.scss +97 -0
  150. package/packages/styles/_mixins.scss +39 -0
  151. package/packages/styles/_theme.scss +82 -0
  152. package/packages/styles/_variables.scss +69 -0
  153. package/packages/styles/animation/_index.scss +37 -0
  154. package/packages/styles/animation/breadcrumb.scss +18 -0
  155. package/packages/styles/animation/fade.scss +30 -0
  156. package/packages/styles/animation/move.scss +130 -0
  157. package/packages/styles/app.scss +101 -0
  158. package/packages/styles/components/box/_index.scss +212 -0
  159. package/packages/styles/components/box-row/_index.scss +486 -0
  160. package/packages/styles/components/box-small/_index.scss +73 -0
  161. package/packages/styles/components/button/_index.scss +9 -0
  162. package/packages/styles/components/checkbox-group/_index.scss +20 -0
  163. package/packages/styles/components/color-picker/_index.scss +17 -0
  164. package/packages/styles/components/container/_index.scss +36 -0
  165. package/packages/styles/components/date-range-picker/_index.scss +6 -0
  166. package/packages/styles/components/details/_index.scss +82 -0
  167. package/packages/styles/components/details-dialog/_index.scss +19 -0
  168. package/packages/styles/components/dialog/_index.scss +147 -0
  169. package/packages/styles/components/drag-sort/_index.scss +25 -0
  170. package/packages/styles/components/drag-sort-dialog/_index.scss +9 -0
  171. package/packages/styles/components/drawer/_index.scss +199 -0
  172. package/packages/styles/components/flex/_index.scss +60 -0
  173. package/packages/styles/components/form/_index.scss +3 -0
  174. package/packages/styles/components/form-dialog/_index.scss +15 -0
  175. package/packages/styles/components/form-page/_index.scss +48 -0
  176. package/packages/styles/components/icon/_index.scss +8 -0
  177. package/packages/styles/components/icon-picker/_index.scss +62 -0
  178. package/packages/styles/components/label/_index.scss +289 -0
  179. package/packages/styles/components/list/_index.scss +270 -0
  180. package/packages/styles/components/listbox/_index.scss +57 -0
  181. package/packages/styles/components/login/_index.scss +6 -0
  182. package/packages/styles/components/login-default/_index.scss +94 -0
  183. package/packages/styles/components/login-neon/_index.scss +129 -0
  184. package/packages/styles/components/map/_index.scss +5 -0
  185. package/packages/styles/components/map-coord-picking/_index.scss +50 -0
  186. package/packages/styles/components/map-search-box/_index.scss +83 -0
  187. package/packages/styles/components/scrollbar/_index.scss +16 -0
  188. package/packages/styles/components/select/_index.scss +25 -0
  189. package/packages/styles/components/split/_index.scss +119 -0
  190. package/packages/styles/components/tabnav/_index.scss +194 -0
  191. package/packages/styles/components/tabs/_index.scss +79 -0
  192. package/packages/styles/components/toolbar/_index.scss +120 -0
  193. package/packages/styles/components/tree/_index.scss +7 -0
  194. package/packages/styles/components/tree-select/_index.scss +47 -0
  195. package/packages/styles/components/txt/_index.scss +17 -0
  196. package/packages/styles/components/upload-dialog/_index.scss +54 -0
  197. package/packages/styles/components/upload-multiple/_index.scss +29 -0
  198. package/packages/styles/components/upload-single/_index.scss +23 -0
  199. package/packages/styles/directive/drop/_index.scss +3 -0
  200. package/packages/styles/directive/resizable/_index.scss +105 -0
  201. package/packages/styles/helper/_background.scss +22 -0
  202. package/packages/styles/helper/_border.scss +99 -0
  203. package/packages/styles/helper/_boxshadow.scss +4 -0
  204. package/packages/styles/helper/_fontsize.scss +6 -0
  205. package/packages/styles/helper/_index.scss +19 -0
  206. package/packages/styles/helper/_margin.scss +22 -0
  207. package/packages/styles/helper/_padding.scss +22 -0
  208. package/packages/styles/helper/_pull.scss +9 -0
  209. package/packages/styles/helper/_text.scss +58 -0
  210. package/packages/utils/assist.js +56 -0
  211. package/packages/utils/const.js +12 -0
  212. package/packages/utils/db.js +32 -0
  213. package/packages/utils/dom.js +156 -0
  214. package/packages/utils/http.js +307 -0
  215. package/packages/utils/load-routes.js +37 -0
  216. package/packages/utils/menu.js +53 -0
  217. package/packages/utils/regex.js +7 -0
  218. package/packages/utils/resize-event.js +40 -0
  219. package/packages/utils/token.js +24 -0
  220. package/packages/vuter/attributes.json +41 -0
  221. package/packages/vuter/tags.json +28 -0
  222. package/postcss.config.js +5 -0
  223. package/public/css/index.css +288 -0
  224. package/public/images/favicon.ico +0 -0
  225. package/public/images/login/bg1.jpg +0 -0
  226. package/public/images/login/bg2.jpg +0 -0
  227. package/public/images/login/bg3.jpg +0 -0
  228. package/public/images/login/bg4.jpg +0 -0
  229. package/public/images/logo.png +0 -0
  230. package/public/images/logo.svg +21 -0
  231. package/public/images/motto.png +0 -0
  232. package/public/index.html +54 -0
  233. package/public/lib/font/iconfont.js +1 -0
  234. package/script/npm_install.bat +4 -0
  235. package/script/npm_install.ps1 +13 -0
  236. package/script/npm_publish.bat +4 -0
  237. package/script/npm_publish.ps1 +12 -0
  238. package/script/npm_update.bat +4 -0
  239. package/script/npm_update.ps1 +13 -0
  240. package/src/api/account.js +47 -0
  241. package/src/api/actions.js +18 -0
  242. package/src/api/config.js +78 -0
  243. package/src/components/code-preview/index.vue +77 -0
  244. package/src/components/index.js +7 -0
  245. package/src/components/tmpl/components/attributes/index.vue +19 -0
  246. package/src/components/tmpl/components/events/index.vue +15 -0
  247. package/src/components/tmpl/components/methods/index.vue +15 -0
  248. package/src/components/tmpl/components/slots/index.vue +14 -0
  249. package/src/components/tmpl/index.vue +77 -0
  250. package/src/index.js +25 -0
  251. package/src/main.js +31 -0
  252. package/src/menus/index.js +18 -0
  253. package/src/routes.js +3 -0
  254. package/src/store.js +3 -0
  255. package/src/style/element-ui.scss +11 -0
  256. package/src/utils/menus-loader.js +15 -0
  257. package/src/views/components/advanced/details/_index/data/attrs.js +51 -0
  258. package/src/views/components/advanced/details/_index/data/events.js +7 -0
  259. package/src/views/components/advanced/details/_index/data/slots.js +10 -0
  260. package/src/views/components/advanced/details/_index/index.vue +24 -0
  261. package/src/views/components/advanced/details/_index/page.js +16 -0
  262. package/src/views/components/advanced/details/demo1/demo.vue +59 -0
  263. package/src/views/components/advanced/details/demo1/index.vue +21 -0
  264. package/src/views/components/advanced/details/demo1/page.js +14 -0
  265. package/src/views/components/advanced/drag-sort/_index/data/attrs.js +9 -0
  266. package/src/views/components/advanced/drag-sort/_index/data/events.js +12 -0
  267. package/src/views/components/advanced/drag-sort/_index/index.vue +24 -0
  268. package/src/views/components/advanced/drag-sort/_index/page.js +16 -0
  269. package/src/views/components/advanced/drag-sort/demo1/demo.vue +34 -0
  270. package/src/views/components/advanced/drag-sort/demo1/index.vue +21 -0
  271. package/src/views/components/advanced/drag-sort/demo1/page.js +14 -0
  272. package/src/views/components/advanced/drag-sort-dialog/_index/data/attrs.js +58 -0
  273. package/src/views/components/advanced/drag-sort-dialog/_index/data/events.js +12 -0
  274. package/src/views/components/advanced/drag-sort-dialog/_index/index.vue +28 -0
  275. package/src/views/components/advanced/drag-sort-dialog/_index/page.js +16 -0
  276. package/src/views/components/advanced/drag-sort-dialog/demo1/demo.vue +36 -0
  277. package/src/views/components/advanced/drag-sort-dialog/demo1/index.vue +21 -0
  278. package/src/views/components/advanced/drag-sort-dialog/demo1/page.js +14 -0
  279. package/src/views/components/advanced/list/_index/data/attrs.js +177 -0
  280. package/src/views/components/advanced/list/_index/data/events.js +87 -0
  281. package/src/views/components/advanced/list/_index/data/methods.js +18 -0
  282. package/src/views/components/advanced/list/_index/data/slots.js +46 -0
  283. package/src/views/components/advanced/list/_index/index.vue +87 -0
  284. package/src/views/components/advanced/list/_index/page.js +16 -0
  285. package/src/views/components/advanced/list/demo1/demo.vue +90 -0
  286. package/src/views/components/advanced/list/demo1/index.vue +21 -0
  287. package/src/views/components/advanced/list/demo1/page.js +14 -0
  288. package/src/views/components/advanced/list/demo2/demo.vue +78 -0
  289. package/src/views/components/advanced/list/demo2/index.vue +21 -0
  290. package/src/views/components/advanced/list/demo2/page.js +14 -0
  291. package/src/views/components/advanced/list/demo4/demo.vue +56 -0
  292. package/src/views/components/advanced/list/demo4/index.vue +21 -0
  293. package/src/views/components/advanced/list/demo4/page.js +14 -0
  294. package/src/views/components/advanced/list-dialog/_index/data/attrs.js +58 -0
  295. package/src/views/components/advanced/list-dialog/_index/data/events.js +22 -0
  296. package/src/views/components/advanced/list-dialog/_index/data/methods.js +6 -0
  297. package/src/views/components/advanced/list-dialog/_index/data/slots.js +6 -0
  298. package/src/views/components/advanced/list-dialog/_index/index.vue +31 -0
  299. package/src/views/components/advanced/list-dialog/_index/page.js +16 -0
  300. package/src/views/components/advanced/list-dialog/demo1/demo.vue +75 -0
  301. package/src/views/components/advanced/list-dialog/demo1/index.vue +21 -0
  302. package/src/views/components/advanced/list-dialog/demo1/page.js +14 -0
  303. package/src/views/components/advanced/listbox/_index/data/attrs.js +30 -0
  304. package/src/views/components/advanced/listbox/_index/data/events.js +7 -0
  305. package/src/views/components/advanced/listbox/_index/data/slots.js +6 -0
  306. package/src/views/components/advanced/listbox/_index/index.vue +27 -0
  307. package/src/views/components/advanced/listbox/_index/page.js +16 -0
  308. package/src/views/components/advanced/listbox/demo1/demo.vue +74 -0
  309. package/src/views/components/advanced/listbox/demo1/index.vue +21 -0
  310. package/src/views/components/advanced/listbox/demo1/page.js +14 -0
  311. package/src/views/components/base/box/_index/data/attrs.js +128 -0
  312. package/src/views/components/base/box/_index/data/events.js +17 -0
  313. package/src/views/components/base/box/_index/data/methods.js +17 -0
  314. package/src/views/components/base/box/_index/data/slots.js +26 -0
  315. package/src/views/components/base/box/_index/index.vue +37 -0
  316. package/src/views/components/base/box/_index/page.js +16 -0
  317. package/src/views/components/base/box/demo1/demo.vue +33 -0
  318. package/src/views/components/base/box/demo1/index.vue +21 -0
  319. package/src/views/components/base/box/demo1/page.js +14 -0
  320. package/src/views/components/base/box/demo2/demo.vue +9 -0
  321. package/src/views/components/base/box/demo2/index.vue +21 -0
  322. package/src/views/components/base/box/demo2/page.js +14 -0
  323. package/src/views/components/base/box/demo3/demo.vue +31 -0
  324. package/src/views/components/base/box/demo3/index.vue +21 -0
  325. package/src/views/components/base/box/demo3/page.js +14 -0
  326. package/src/views/components/base/box/demo4/demo.vue +58 -0
  327. package/src/views/components/base/box/demo4/index.vue +21 -0
  328. package/src/views/components/base/box/demo4/page.js +14 -0
  329. package/src/views/components/base/box-col/_index/data/attrs.js +30 -0
  330. package/src/views/components/base/box-col/_index/data/slots.js +6 -0
  331. package/src/views/components/base/box-col/_index/index.vue +27 -0
  332. package/src/views/components/base/box-col/_index/page.js +16 -0
  333. package/src/views/components/base/box-col/demo1/demo.vue +23 -0
  334. package/src/views/components/base/box-col/demo1/index.vue +21 -0
  335. package/src/views/components/base/box-col/demo1/page.js +14 -0
  336. package/src/views/components/base/box-row/_index/data/attrs.js +16 -0
  337. package/src/views/components/base/box-row/_index/data/slots.js +6 -0
  338. package/src/views/components/base/box-row/_index/index.vue +30 -0
  339. package/src/views/components/base/box-row/_index/page.js +16 -0
  340. package/src/views/components/base/box-row/demo1/demo.vue +26 -0
  341. package/src/views/components/base/box-row/demo1/index.vue +21 -0
  342. package/src/views/components/base/box-row/demo1/page.js +15 -0
  343. package/src/views/components/base/box-small/_index/data/attrs.js +44 -0
  344. package/src/views/components/base/box-small/_index/data/events.js +7 -0
  345. package/src/views/components/base/box-small/_index/index.vue +30 -0
  346. package/src/views/components/base/box-small/_index/page.js +16 -0
  347. package/src/views/components/base/box-small/demo1/demo.vue +50 -0
  348. package/src/views/components/base/box-small/demo1/index.vue +21 -0
  349. package/src/views/components/base/box-small/demo1/page.js +14 -0
  350. package/src/views/components/base/button/_index/data/attrs.js +86 -0
  351. package/src/views/components/base/button/_index/data/events.js +7 -0
  352. package/src/views/components/base/button/_index/data/slots.js +6 -0
  353. package/src/views/components/base/button/_index/index.vue +28 -0
  354. package/src/views/components/base/button/_index/page.js +16 -0
  355. package/src/views/components/base/button/demo1/demo.vue +76 -0
  356. package/src/views/components/base/button/demo1/index.vue +21 -0
  357. package/src/views/components/base/button/demo1/page.js +14 -0
  358. package/src/views/components/base/button/demo2/demo.vue +92 -0
  359. package/src/views/components/base/button/demo2/index.vue +21 -0
  360. package/src/views/components/base/button/demo2/page.js +14 -0
  361. package/src/views/components/base/container/_index/data/attrs.js +16 -0
  362. package/src/views/components/base/container/_index/index.vue +25 -0
  363. package/src/views/components/base/container/_index/page.js +16 -0
  364. package/src/views/components/base/dialog/_index/data/attrs.js +128 -0
  365. package/src/views/components/base/dialog/_index/data/events.js +27 -0
  366. package/src/views/components/base/dialog/_index/data/methods.js +22 -0
  367. package/src/views/components/base/dialog/_index/data/slots.js +18 -0
  368. package/src/views/components/base/dialog/_index/index.vue +28 -0
  369. package/src/views/components/base/dialog/_index/page.js +16 -0
  370. package/src/views/components/base/dialog/demo1/demo.vue +75 -0
  371. package/src/views/components/base/dialog/demo1/index.vue +21 -0
  372. package/src/views/components/base/dialog/demo1/page.js +14 -0
  373. package/src/views/components/base/drawer/_index/data/attrs.js +121 -0
  374. package/src/views/components/base/drawer/_index/data/events.js +27 -0
  375. package/src/views/components/base/drawer/_index/data/slots.js +22 -0
  376. package/src/views/components/base/drawer/_index/index.vue +30 -0
  377. package/src/views/components/base/drawer/_index/page.js +16 -0
  378. package/src/views/components/base/drawer/demo1/demo.vue +24 -0
  379. package/src/views/components/base/drawer/demo1/index.vue +22 -0
  380. package/src/views/components/base/drawer/demo1/page.js +14 -0
  381. package/src/views/components/base/flex/_index/data/attrs.js +37 -0
  382. package/src/views/components/base/flex/_index/data/slots.js +18 -0
  383. package/src/views/components/base/flex/_index/index.vue +27 -0
  384. package/src/views/components/base/flex/_index/page.js +16 -0
  385. package/src/views/components/base/flex/demo1/demo.vue +59 -0
  386. package/src/views/components/base/flex/demo1/index.vue +24 -0
  387. package/src/views/components/base/flex/demo1/page.js +14 -0
  388. package/src/views/components/base/label/_index/data/attrs.js +51 -0
  389. package/src/views/components/base/label/_index/data/slots.js +6 -0
  390. package/src/views/components/base/label/_index/index.vue +25 -0
  391. package/src/views/components/base/label/_index/page.js +16 -0
  392. package/src/views/components/base/label/demo1/demo.vue +23 -0
  393. package/src/views/components/base/label/demo1/index.vue +24 -0
  394. package/src/views/components/base/label/demo1/page.js +14 -0
  395. package/src/views/components/base/scrollbar/_index/data/attrs.js +9 -0
  396. package/src/views/components/base/scrollbar/_index/data/methods.js +6 -0
  397. package/src/views/components/base/scrollbar/_index/index.vue +27 -0
  398. package/src/views/components/base/scrollbar/_index/page.js +15 -0
  399. package/src/views/components/base/scrollbar/demo1/demo.vue +76 -0
  400. package/src/views/components/base/scrollbar/demo1/index.vue +21 -0
  401. package/src/views/components/base/scrollbar/demo1/page.js +14 -0
  402. package/src/views/components/base/split/_index/data/attrs.js +37 -0
  403. package/src/views/components/base/split/_index/data/events.js +17 -0
  404. package/src/views/components/base/split/_index/index.vue +29 -0
  405. package/src/views/components/base/split/_index/page.js +16 -0
  406. package/src/views/components/base/split/demo1/demo.vue +27 -0
  407. package/src/views/components/base/split/demo1/index.vue +21 -0
  408. package/src/views/components/base/split/demo1/page.js +14 -0
  409. package/src/views/components/base/tabs/_index/data/attrs.js +9 -0
  410. package/src/views/components/base/tabs/_index/data/events.js +12 -0
  411. package/src/views/components/base/tabs/_index/data/methods.js +12 -0
  412. package/src/views/components/base/tabs/_index/data/slots.js +6 -0
  413. package/src/views/components/base/tabs/_index/index.vue +31 -0
  414. package/src/views/components/base/tabs/_index/page.js +16 -0
  415. package/src/views/components/base/tabs/demo1/demo.vue +79 -0
  416. package/src/views/components/base/tabs/demo1/index.vue +24 -0
  417. package/src/views/components/base/tabs/demo1/page.js +14 -0
  418. package/src/views/components/base/txt/_index/data/attrs.js +9 -0
  419. package/src/views/components/base/txt/_index/data/slots.js +6 -0
  420. package/src/views/components/base/txt/_index/index.vue +27 -0
  421. package/src/views/components/base/txt/_index/page.js +16 -0
  422. package/src/views/components/base/txt/demo1/demo.vue +21 -0
  423. package/src/views/components/base/txt/demo1/index.vue +24 -0
  424. package/src/views/components/base/txt/demo1/page.js +14 -0
  425. package/src/views/components/form/checkbox-group/_index/data/attrs.js +51 -0
  426. package/src/views/components/form/checkbox-group/_index/data/events.js +12 -0
  427. package/src/views/components/form/checkbox-group/_index/data/methods.js +14 -0
  428. package/src/views/components/form/checkbox-group/_index/data/slots.js +6 -0
  429. package/src/views/components/form/checkbox-group/_index/index.vue +49 -0
  430. package/src/views/components/form/checkbox-group/_index/page.js +16 -0
  431. package/src/views/components/form/checkbox-group/demo1/demo.vue +84 -0
  432. package/src/views/components/form/checkbox-group/demo1/index.vue +21 -0
  433. package/src/views/components/form/checkbox-group/demo1/page.js +14 -0
  434. package/src/views/components/form/color-picker/_index/data/attrs.js +58 -0
  435. package/src/views/components/form/color-picker/_index/data/events.js +7 -0
  436. package/src/views/components/form/color-picker/_index/index.vue +24 -0
  437. package/src/views/components/form/color-picker/_index/page.js +16 -0
  438. package/src/views/components/form/color-picker/demo1/demo.vue +44 -0
  439. package/src/views/components/form/color-picker/demo1/index.vue +21 -0
  440. package/src/views/components/form/color-picker/demo1/page.js +14 -0
  441. package/src/views/components/form/date-range-picker/_index/data/attrs.js +37 -0
  442. package/src/views/components/form/date-range-picker/_index/data/events.js +7 -0
  443. package/src/views/components/form/date-range-picker/_index/index.vue +28 -0
  444. package/src/views/components/form/date-range-picker/_index/page.js +16 -0
  445. package/src/views/components/form/date-range-picker/demo1/demo.vue +35 -0
  446. package/src/views/components/form/date-range-picker/demo1/index.vue +21 -0
  447. package/src/views/components/form/date-range-picker/demo1/page.js +14 -0
  448. package/src/views/components/form/form/_index/data/attrs.js +93 -0
  449. package/src/views/components/form/form/_index/data/events.js +19 -0
  450. package/src/views/components/form/form/_index/data/methods.js +14 -0
  451. package/src/views/components/form/form/_index/index.vue +26 -0
  452. package/src/views/components/form/form/_index/page.js +16 -0
  453. package/src/views/components/form/form/demo1/demo.vue +89 -0
  454. package/src/views/components/form/form/demo1/index.vue +21 -0
  455. package/src/views/components/form/form/demo1/page.js +14 -0
  456. package/src/views/components/form/form-dialog/_index/data/attrs.js +191 -0
  457. package/src/views/components/form/form-dialog/_index/data/events.js +39 -0
  458. package/src/views/components/form/form-dialog/_index/data/methods.js +14 -0
  459. package/src/views/components/form/form-dialog/_index/index.vue +26 -0
  460. package/src/views/components/form/form-dialog/_index/page.js +16 -0
  461. package/src/views/components/form/form-dialog/demo1/demo.vue +81 -0
  462. package/src/views/components/form/form-dialog/demo1/index.vue +24 -0
  463. package/src/views/components/form/form-dialog/demo1/page.js +14 -0
  464. package/src/views/components/form/form-page/_index/data/attrs.js +135 -0
  465. package/src/views/components/form/form-page/_index/data/events.js +35 -0
  466. package/src/views/components/form/form-page/_index/data/methods.js +14 -0
  467. package/src/views/components/form/form-page/_index/index.vue +30 -0
  468. package/src/views/components/form/form-page/_index/page.js +16 -0
  469. package/src/views/components/form/form-page/demo1/demo.vue +41 -0
  470. package/src/views/components/form/form-page/demo1/index.vue +21 -0
  471. package/src/views/components/form/form-page/demo1/page.js +14 -0
  472. package/src/views/components/form/icon-picker/_index/data/attrs.js +16 -0
  473. package/src/views/components/form/icon-picker/_index/data/events.js +7 -0
  474. package/src/views/components/form/icon-picker/_index/index.vue +29 -0
  475. package/src/views/components/form/icon-picker/_index/page.js +16 -0
  476. package/src/views/components/form/icon-picker/demo1/demo.vue +47 -0
  477. package/src/views/components/form/icon-picker/demo1/index.vue +21 -0
  478. package/src/views/components/form/icon-picker/demo1/page.js +14 -0
  479. package/src/views/components/form/select/_index/data/attrs.js +79 -0
  480. package/src/views/components/form/select/_index/data/events.js +32 -0
  481. package/src/views/components/form/select/_index/data/methods.js +6 -0
  482. package/src/views/components/form/select/_index/index.vue +27 -0
  483. package/src/views/components/form/select/_index/page.js +16 -0
  484. package/src/views/components/form/select/demo1/demo.vue +61 -0
  485. package/src/views/components/form/select/demo1/index.vue +21 -0
  486. package/src/views/components/form/select/demo1/page.js +14 -0
  487. package/src/views/components/form/select/demo2/index.vue +42 -0
  488. package/src/views/components/form/select/demo2/page.js +14 -0
  489. package/src/views/components/map/map-coord-picking/_index/data/attrs.js +100 -0
  490. package/src/views/components/map/map-coord-picking/_index/data/events.js +1 -0
  491. package/src/views/components/map/map-coord-picking/_index/data/methods.js +1 -0
  492. package/src/views/components/map/map-coord-picking/_index/data/slots.js +1 -0
  493. package/src/views/components/map/map-coord-picking/_index/index.vue +29 -0
  494. package/src/views/components/map/map-coord-picking/_index/page.js +16 -0
  495. package/src/views/components/map/map-coord-picking/demo1/demo.vue +51 -0
  496. package/src/views/components/map/map-coord-picking/demo1/index.vue +21 -0
  497. package/src/views/components/map/map-coord-picking/demo1/page.js +14 -0
  498. package/src/views/components/menus.js +84 -0
  499. package/src/views/login/index.js +23 -0
  500. package/src/views/run/index.vue +57 -0
  501. package/src/views/run/page.js +15 -0
  502. package/vue.config.js +65 -0
  503. package//345/217/221/345/270/203/350/204/232/346/234/254/344/277/256/345/244/215/350/257/264/346/230/216.md +92 -0
  504. package//351/241/271/347/233/256/346/224/271/345/220/215/345/256/214/346/210/220/346/200/273/347/273/223.md +74 -0
@@ -0,0 +1,223 @@
1
+ <template>
2
+ <section :class="class_" v-loading="showLoading" :element-loading-text="loadingText || loadingText_" :element-loading-background="loadingBackground" :element-loading-spinner="loadingSpinner">
3
+ <!--header-->
4
+ <query-header v-if="!noHeader" :title="title" :icon="icon" :no-fullscreen="noFullscreen" :fullscreen.sync="fullscreen" :no-refresh="noRefresh">
5
+ <template v-slot:toolbar>
6
+ <slot name="header-toolbar" :total="total" :selection="selection" />
7
+ </template>
8
+ </query-header>
9
+
10
+ <!--查询栏-->
11
+ <querybar ref="querybar" v-if="!noQuerybar" v-bind="querybar">
12
+ <template v-slot>
13
+ <slot name="querybar" />
14
+ </template>
15
+ <template v-slot:buttons>
16
+ <slot name="querybar-buttons" :total="total" :selection="selection" />
17
+ </template>
18
+ <template v-slot:advanced>
19
+ <slot name="querybar-advanced" />
20
+ </template>
21
+ </querybar>
22
+
23
+ <section class="nm-list-body">
24
+ <query-table ref="table" :rows="rows" :span-method="spanMethod" :selection.sync="selection">
25
+ <!-- 多选 -->
26
+ <el-table-column v-if="multiple" fixed="left" align="center" type="selection" width="55" />
27
+
28
+ <!-- 序号 -->
29
+ <el-table-column v-if="showNo" fixed="left" align="center" type="index" :index="getNo">
30
+ <template v-slot:header>
31
+ <slot name="col-no-header">序号</slot>
32
+ </template>
33
+ <template slot-scope="{ row, $index }">
34
+ <div class="nm-list-no">
35
+ <slot name="col-no" :row="row">{{ getNo($index) }}</slot>
36
+ </div>
37
+ </template>
38
+ </el-table-column>
39
+
40
+ <!--表格主体-->
41
+ <slot name="tbody"></slot>
42
+
43
+ <!-- 操作列 -->
44
+ <el-table-column v-if="!noOperation" :width="operationWidth" fixed="right" align="center" label="操作">
45
+ <template v-slot:header>
46
+ <slot name="col-operation-header">操作</slot>
47
+ </template>
48
+ <template slot-scope="{ row }">
49
+ <div class="nm-list-operation">
50
+ <slot name="col-operation" :row="row" />
51
+ </div>
52
+ </template>
53
+ </el-table-column>
54
+ </query-table>
55
+ </section>
56
+
57
+ <!--footer-->
58
+ <query-footer v-if="!noFooter" v-model="page" :total="total" no-select-column :reverse="footerReverse">
59
+ <slot name="footer" :total="total" :selection="selection" />
60
+ </query-footer>
61
+ <slot />
62
+ </section>
63
+ </template>
64
+ <script>
65
+ import { mapState } from 'vuex'
66
+ import QueryHeader from '../list/components/header'
67
+ import Querybar from '../list/components/querybar'
68
+ import QueryTable from '../list/components/table'
69
+ import QueryFooter from '../list/components/footer'
70
+
71
+ export default {
72
+ name: 'ListAgile',
73
+ components: { QueryHeader, Querybar, QueryTable, QueryFooter },
74
+ data() {
75
+ return {
76
+ loading_: false,
77
+ fullscreen: false,
78
+ // 分页数据
79
+ page: {
80
+ index: 1,
81
+ size: 15,
82
+ sort: []
83
+ },
84
+ // 数据列表
85
+ rows: [],
86
+ // 总数量
87
+ total: 0,
88
+ selection: []
89
+ }
90
+ },
91
+ props: {
92
+ /** 标题 */
93
+ title: String,
94
+ /** 图标 */
95
+ icon: String,
96
+ // 查询方法
97
+ action: {
98
+ type: Function,
99
+ required: true
100
+ },
101
+ /** 查询表单输入框宽度 */
102
+ inputWidth: String,
103
+ // 模型
104
+ model: Object,
105
+ /** 模型验证规则 */
106
+ rules: Object,
107
+ /** 高级查询 */
108
+ advanced: Object,
109
+ /** 多选 */
110
+ multiple: Boolean,
111
+ /** 显示序号 */
112
+ showNo: {
113
+ type: Boolean,
114
+ default: true
115
+ },
116
+ /** 不显示操作列 */
117
+ noOperation: Boolean,
118
+ /** 操作列宽度 */
119
+ operationWidth: [String, Number],
120
+ /** 不显示查询栏 */
121
+ noQuerybar: Boolean,
122
+ /** 不显示全屏按钮 */
123
+ noFullscreen: Boolean,
124
+ /** 不显示刷新按钮 */
125
+ noRefresh: Boolean,
126
+ /** 不显示头部 */
127
+ noHeader: Boolean,
128
+ /** 不显示底部 */
129
+ noFooter: Boolean,
130
+ /** 不包含搜索功能 */
131
+ noSearch: Boolean,
132
+ /** 不显示查询按钮图标 */
133
+ noSearchButtonIcon: Boolean,
134
+ /** 底部反转 */
135
+ footerReverse: Boolean,
136
+ /** 合并行列的方法 */
137
+ spanMethod: Function,
138
+ /** 加载中动画 */
139
+ loading: Boolean,
140
+ /** 加载中文本 */
141
+ loadingText: String,
142
+ /** 创建后执行一次查询 */
143
+ queryOnCreated: {
144
+ type: Boolean,
145
+ default: true
146
+ }
147
+ },
148
+ computed: {
149
+ ...mapState('app/loading', { loadingText_: 'text', loadingBackground: 'background', loadingSpinner: 'spinner' }),
150
+ class_() {
151
+ return ['nm-list', this.fontSize ? `nm-list-${this.fontSize}` : '', this.fullscreen ? 'fullscreen' : '']
152
+ },
153
+ querybar() {
154
+ return {
155
+ model: this.model,
156
+ rules: this.rules,
157
+ inputWidth: this.inputWidth,
158
+ advanced: this.advanced,
159
+ noSearch: this.noSearch,
160
+ noSearchButtonIcon: this.noSearchButtonIcon
161
+ }
162
+ },
163
+ showLoading() {
164
+ return this.loading || this.loading_
165
+ }
166
+ },
167
+ methods: {
168
+ /** 查询方法 */
169
+ query() {
170
+ if (this.loading_) {
171
+ return
172
+ }
173
+
174
+ this.loading_ = true
175
+ let fullModel = Object.assign({}, this.model)
176
+
177
+ // 设置分页
178
+ fullModel.page = this.page
179
+
180
+ this.action(fullModel)
181
+ .then(data => {
182
+ this.rows = data.rows
183
+ this.total = data.total
184
+ // 回到顶部
185
+ this.$refs.table.scrollTop()
186
+ // 重新绘制布局
187
+ this.$refs.table.doLayout()
188
+ this.loading_ = false
189
+ })
190
+ .catch(() => {
191
+ this.loading_ = false
192
+ })
193
+ },
194
+ /** 刷新 */
195
+ refresh() {
196
+ this.page.index = 1
197
+ this.query()
198
+ },
199
+ /** 查询表单重置 */
200
+ reset(from) {
201
+ if (!from) {
202
+ this.$refs.querybar.reset()
203
+ } else {
204
+ this.$refs.table.clearSort()
205
+ this.page.index = 1
206
+ }
207
+ },
208
+ /** 获取序号 */
209
+ getNo(index) {
210
+ return (this.page.index - 1) * this.page.size + index + 1
211
+ }
212
+ },
213
+ created() {
214
+ if (this.queryOnCreated) {
215
+ this.query()
216
+ }
217
+ },
218
+ activated() {
219
+ // 重新绘制布局
220
+ this.$refs.table.doLayout()
221
+ }
222
+ }
223
+ </script>
@@ -0,0 +1,102 @@
1
+ <template>
2
+ <nm-dialog
3
+ class="nm-list-dialog"
4
+ no-scrollbar
5
+ :title="title"
6
+ :icon="icon"
7
+ :width="width"
8
+ :height="height"
9
+ :fullscreen="fullscreen"
10
+ :close-on-click-modal="closeOnClickModal"
11
+ :draggable="draggable"
12
+ :drag-out-page="dragOutPage"
13
+ :drag-min-width="dragMinWidth"
14
+ :visible.sync="visible_"
15
+ v-on="on"
16
+ >
17
+ <template v-slot:title>
18
+ <slot name="title" />
19
+ </template>
20
+ <template v-slot:toolbar>
21
+ <!--刷新按钮-->
22
+ <nm-button icon="refresh" @click="refresh" />
23
+ </template>
24
+ <slot />
25
+ </nm-dialog>
26
+ </template>
27
+ <script>
28
+ import visible from '../../mixins/components/visible.js'
29
+ export default {
30
+ name: 'ListDialog',
31
+ mixins: [visible],
32
+ data() {
33
+ return {
34
+ on: {
35
+ open: this.onOpen,
36
+ opened: this.onOpened,
37
+ close: this.onClose,
38
+ closed: this.onClosed
39
+ }
40
+ }
41
+ },
42
+ props: {
43
+ /** 标题 */
44
+ title: String,
45
+ /** 图标 */
46
+ icon: {
47
+ type: String,
48
+ default: 'list'
49
+ },
50
+ /** Dialog 的宽度 */
51
+ width: {
52
+ type: String,
53
+ default: '60%'
54
+ },
55
+ /** Dialog 的高度 */
56
+ height: {
57
+ type: [Number, String],
58
+ default: '80%'
59
+ },
60
+ /** 是否显示全屏按钮 */
61
+ fullscreen: {
62
+ type: Boolean,
63
+ default: true
64
+ },
65
+ /** 是否可以通过点击 modal 关闭 Dialog */
66
+ closeOnClickModal: {
67
+ type: Boolean,
68
+ default: null
69
+ },
70
+ /** 是否可拖拽 */
71
+ draggable: {
72
+ type: Boolean,
73
+ default: null
74
+ },
75
+ /** 是否可拖出页面 */
76
+ dragOutPage: Boolean,
77
+ /** 拖拽出页面后保留的最小宽度 */
78
+ dragMinWidth: Number
79
+ },
80
+ methods: {
81
+ refresh() {
82
+ this.$slots.default.map(slot => {
83
+ if (slot.componentOptions.tag === 'nm-list') {
84
+ slot.componentInstance.refresh()
85
+ }
86
+ })
87
+ },
88
+ onOpen() {
89
+ this.$emit('open')
90
+ },
91
+ onOpened() {
92
+ this.$emit('opened')
93
+ },
94
+ onClose() {
95
+ this.$emit('close')
96
+ },
97
+ onClosed() {
98
+ this.$emit('closed')
99
+ }
100
+ }
101
+ }
102
+ </script>
@@ -0,0 +1,77 @@
1
+ <template>
2
+ <nm-box ref="page" page header class="nm-listbox" :icon="icon">
3
+ <template v-slot:header>
4
+ <div class="nm-box-header-icon">
5
+ <nm-icon v-if="icon" :name="icon" />
6
+ </div>
7
+ <div class="nm-box-header-text">{{ title }}</div>
8
+ <span v-if="!noCount" class="nm-listbox-count">已选 {{ value.length }} 个</span>
9
+ </template>
10
+
11
+ <ul v-if="value && value.length > 0" class="nm-listbox-list">
12
+ <li class="nm-listbox-item" v-for="item in value_" :key="item.value" :title="item.label">
13
+ <slot :item="item">
14
+ <span class="nm-listbox-item-text">{{ item.label }}</span>
15
+ <nm-button class="nm-listbox-delete" circle type="danger" icon="delete" @click="remove(item.value)" />
16
+ </slot>
17
+ </li>
18
+ </ul>
19
+ <p v-else class="no-data">无</p>
20
+ </nm-box>
21
+ </template>
22
+ <script>
23
+ export default {
24
+ name: 'Listbox',
25
+ data() {
26
+ return {
27
+ value_: this.value,
28
+ resizeing: false
29
+ }
30
+ },
31
+ props: {
32
+ value: {
33
+ type: Array,
34
+ required: true
35
+ },
36
+ // 标题
37
+ title: {
38
+ type: String,
39
+ default: '列表'
40
+ },
41
+ // 左侧图标
42
+ icon: {
43
+ type: String,
44
+ default: 'select'
45
+ },
46
+ /** 不显示数量 */
47
+ noCount: Boolean
48
+ },
49
+ methods: {
50
+ remove(v) {
51
+ this.value_.splice(
52
+ this.value_.findIndex(item => item.value === v),
53
+ 1
54
+ )
55
+ this.$emit('input', this.value_)
56
+ this.$emit('remove', v, this.value_)
57
+ },
58
+ scrollbarResize() {
59
+ if (!this.resizeing) {
60
+ this.resizeing = true
61
+ setTimeout(() => {
62
+ this.$nextTick(() => {
63
+ this.$refs.page.scrollbarResize()
64
+ this.resizeing = false
65
+ })
66
+ }, 300)
67
+ }
68
+ }
69
+ },
70
+ watch: {
71
+ value(val) {
72
+ this.value_ = val
73
+ this.scrollbarResize()
74
+ }
75
+ }
76
+ }
77
+ </script>
@@ -0,0 +1,177 @@
1
+ <template>
2
+ <div class="nm-login-default">
3
+ <div class="nm-login-bg" />
4
+ <div class="nm-login-box">
5
+ <div class="nm-login-content">
6
+ <div class="nm-login-logo">
7
+ <img class="nm-login-logo-img" :src="logoUrl" />
8
+ <h1 class="nm-login-logo-title">{{ title }}</h1>
9
+ </div>
10
+ <el-form ref="form" :model="form" :rules="rules">
11
+ <el-form-item v-if="loginOptions.accountTypes" prop="accountType">
12
+ <el-select v-model="form.accountType" placeholder="账户类型">
13
+ <template v-slot:prefix>
14
+ <nm-icon name="project" />
15
+ </template>
16
+ <el-option v-for="item in loginOptions.accountTypes" :key="item.value" :label="item.label" :value="item.value" />
17
+ </el-select>
18
+ </el-form-item>
19
+ <el-form-item prop="userName">
20
+ <el-input v-model="form.userName" placeholder="用户名">
21
+ <template v-slot:prefix>
22
+ <nm-icon name="user" />
23
+ </template>
24
+ </el-input>
25
+ </el-form-item>
26
+ <el-form-item prop="password">
27
+ <el-input type="password" v-model="form.password" autocomplete="off" placeholder="密码">
28
+ <template v-slot:prefix>
29
+ <nm-icon name="password" />
30
+ </template>
31
+ </el-input>
32
+ </el-form-item>
33
+ <div v-if="loginOptions.verifyCode" class="verifycode">
34
+ <div class="verifycode-input">
35
+ <el-form-item prop="verifyCode.code">
36
+ <el-input v-model="form.verifyCode.code" autocomplete="off" placeholder="验证码">
37
+ <template v-slot:prefix>
38
+ <nm-icon name="verifycode"></nm-icon>
39
+ </template>
40
+ </el-input>
41
+ </el-form-item>
42
+ </div>
43
+ <div class="verifycode-img">
44
+ <img title="点击刷新" :src="verifyCodeUrl" @click="refreshVierifyCode" />
45
+ </div>
46
+ </div>
47
+ <el-form-item style="text-align:right;">
48
+ <el-button :loading="loading" class="btn-login" type="primary" @click="tryLogin">登录</el-button>
49
+ </el-form-item>
50
+ </el-form>
51
+ </div>
52
+ </div>
53
+ <div class="copyright">{{ copyright }}</div>
54
+ </div>
55
+ </template>
56
+ <script>
57
+ import { mapState, mapGetters, mapActions } from 'vuex'
58
+ export default {
59
+ name: 'LoginDefault',
60
+ data() {
61
+ const _this = this
62
+ return {
63
+ verifyCodeUrl: '',
64
+ form: {
65
+ userName: '',
66
+ password: '',
67
+ accountType: 0,
68
+ verifyCode: {
69
+ id: '',
70
+ code: ''
71
+ }
72
+ },
73
+ rules: {
74
+ userName: [
75
+ {
76
+ required: true,
77
+ message: '请输入用户名',
78
+ trigger: 'blur'
79
+ }
80
+ ],
81
+ password: [
82
+ {
83
+ required: true,
84
+ message: '请输入密码',
85
+ trigger: 'blur'
86
+ }
87
+ ],
88
+ code: [
89
+ {
90
+ validator(rule, value, callback) {
91
+ if (_this.loginVerifyCode && value === '') {
92
+ callback(new Error('请输入验证码'))
93
+ } else {
94
+ callback()
95
+ }
96
+ },
97
+ trigger: 'blur'
98
+ }
99
+ ]
100
+ },
101
+ loading: false
102
+ }
103
+ },
104
+ computed: {
105
+ ...mapGetters('app/config', ['logoUrl']),
106
+ ...mapState('app/config', {
107
+ title: s => s.system.title,
108
+ copyright: s => s.system.copyright,
109
+ loginOptions: s => s.component.login
110
+ }),
111
+ ...mapState('app/system', {
112
+ getVerifyCode: s => s.actions.getVerifyCode
113
+ })
114
+ },
115
+ mounted() {
116
+ if (this.loginOptions.verifyCode) {
117
+ this.refreshVierifyCode()
118
+ }
119
+ document.addEventListener('keydown', e => {
120
+ if (e.keyCode === 13) {
121
+ this.tryLogin()
122
+ }
123
+ })
124
+ },
125
+ methods: {
126
+ ...mapActions('app/system', ['login']),
127
+ // 刷新验证码
128
+ async refreshVierifyCode() {
129
+ let data = await this.getVerifyCode()
130
+ this.verifyCodeUrl = data.base64String
131
+ this.form.verifyCode.id = data.id
132
+ },
133
+ // 登录
134
+ tryLogin() {
135
+ this.$refs.form.validate(async valid => {
136
+ if (valid) {
137
+ this.loading = true
138
+
139
+ this.login(this.form)
140
+ .then(data => {
141
+ // 初始化令牌
142
+ this.$store.commit('app/token/init', data)
143
+
144
+ // 跳转
145
+ let redirect = this.$route.query.redirect
146
+ if (!redirect || redirect === '') {
147
+ redirect = '/'
148
+ }
149
+
150
+ this.$router.push({
151
+ path: redirect
152
+ })
153
+ })
154
+ .finally(() => {
155
+ this.loading = false
156
+ })
157
+ } else {
158
+ return false
159
+ }
160
+ })
161
+ }
162
+ },
163
+ watch: {
164
+ loginOptions: {
165
+ immediate: true,
166
+ handler(val) {
167
+ this.form.accountType = val.defaultAccountType
168
+ }
169
+ }
170
+ }
171
+ }
172
+ </script>
173
+ <style lang="scss">
174
+ .nm-login-default > .nm-login-bg {
175
+ background-image: url('../../../public/images/login/bg3.jpg');
176
+ }
177
+ </style>