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,56 @@
1
+ // 判断参数是否是其中之一
2
+ export function oneOf(value, validList) {
3
+ for (let i = 0; i < validList.length; i++) {
4
+ if (value === validList[i]) {
5
+ return true
6
+ }
7
+ }
8
+ return false
9
+ }
10
+
11
+ function typeOf(obj) {
12
+ const toString = Object.prototype.toString
13
+ const map = {
14
+ '[object Boolean]': 'boolean',
15
+ '[object Number]': 'number',
16
+ '[object String]': 'string',
17
+ '[object Function]': 'function',
18
+ '[object Array]': 'array',
19
+ '[object Date]': 'date',
20
+ '[object RegExp]': 'regExp',
21
+ '[object Undefined]': 'undefined',
22
+ '[object Null]': 'null',
23
+ '[object Object]': 'object'
24
+ }
25
+ return map[toString.call(obj)]
26
+ }
27
+
28
+ // deepCopy
29
+ export function deepCopy(data) {
30
+ const t = typeOf(data)
31
+ let o
32
+
33
+ if (t === 'array') {
34
+ o = []
35
+ } else if (t === 'object') {
36
+ o = {}
37
+ } else {
38
+ return data
39
+ }
40
+
41
+ if (t === 'array') {
42
+ for (let i = 0; i < data.length; i++) {
43
+ o.push(deepCopy(data[i]))
44
+ }
45
+ } else if (t === 'object') {
46
+ for (let i in data) {
47
+ o[i] = deepCopy(data[i])
48
+ }
49
+ }
50
+ return o
51
+ }
52
+
53
+ export default {
54
+ oneOf,
55
+ deepCopy
56
+ }
@@ -0,0 +1,12 @@
1
+ //常量集合
2
+ window.$const = {
3
+ // 空的GUID
4
+ emptyGuid: '00000000-0000-0000-0000-000000000000',
5
+ //常用正则
6
+ pattern: {
7
+ //手机号
8
+ phone: /^1[3-9][0-9]{9}$/,
9
+ //身份证号
10
+ idCard: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
11
+ }
12
+ }
@@ -0,0 +1,32 @@
1
+ import store from 'store'
2
+ const prefix = 'nm-'
3
+ export default {
4
+ /**
5
+ * @description 设置
6
+ */
7
+ set(key, value) {
8
+ store.set(`${prefix}${key}`, value)
9
+ },
10
+ /**
11
+ * @description 获取
12
+ */
13
+ get(key) {
14
+ return store.get(`${prefix}${key}`)
15
+ },
16
+ /**
17
+ * @description 删除令牌
18
+ */
19
+ remove(key) {
20
+ store.remove(`${prefix}${key}`)
21
+ },
22
+ /**
23
+ * @description 清除全部
24
+ */
25
+ clearAll() {
26
+ store.each(function(value, key) {
27
+ if (key.startsWith(prefix)) {
28
+ store.remove(key)
29
+ }
30
+ })
31
+ }
32
+ }
@@ -0,0 +1,156 @@
1
+ /** 从ElementUI中移植过来 */
2
+ const SPECIAL_CHARS_REGEXP = /([\\:\-\\_]+(.))/g
3
+ const MOZ_HACK_REGEXP = /^moz([A-Z])/
4
+
5
+ const trim = function(string) {
6
+ return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '')
7
+ }
8
+ const camelCase = function(name) {
9
+ return name
10
+ .replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
11
+ return offset ? letter.toUpperCase() : letter
12
+ })
13
+ .replace(MOZ_HACK_REGEXP, 'Moz$1')
14
+ }
15
+
16
+ /**
17
+ * @description 绑定事件
18
+ */
19
+ export const on = (function() {
20
+ return function(element, event, handler) {
21
+ if (element && event && handler) {
22
+ element.addEventListener(event, handler, false)
23
+ }
24
+ }
25
+ })()
26
+
27
+ /**
28
+ * @description 删除事件
29
+ */
30
+ export const off = (function() {
31
+ return function(element, event, handler) {
32
+ if (element && event) {
33
+ element.removeEventListener(event, handler, false)
34
+ }
35
+ }
36
+ })()
37
+
38
+ /**
39
+ * @description 绑定一次事件
40
+ */
41
+ export const once = function(el, event, fn) {
42
+ var listener = function() {
43
+ if (fn) {
44
+ fn.apply(this, arguments)
45
+ }
46
+ off(el, event, listener)
47
+ }
48
+ on(el, event, listener)
49
+ }
50
+
51
+ /**
52
+ * @description 判断是否含有指定的class
53
+ */
54
+ export function hasClass(el, cls) {
55
+ if (!el || !cls) return false
56
+ if (cls.indexOf(' ') !== -1) {
57
+ throw new Error('className should not contain space.')
58
+ }
59
+ if (el.classList) {
60
+ return el.classList.contains(cls)
61
+ } else {
62
+ return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1
63
+ }
64
+ }
65
+
66
+ /**
67
+ * @description 添加class
68
+ */
69
+ export function addClass(el, cls) {
70
+ if (!el) return
71
+ var curClass = el.className
72
+ var classes = (cls || '').split(' ')
73
+
74
+ for (var i = 0, j = classes.length; i < j; i++) {
75
+ var clsName = classes[i]
76
+ if (!clsName) continue
77
+
78
+ if (el.classList) {
79
+ el.classList.add(clsName)
80
+ } else if (!hasClass(el, clsName)) {
81
+ curClass += ' ' + clsName
82
+ }
83
+ }
84
+ if (!el.classList) {
85
+ el.className = curClass
86
+ }
87
+ }
88
+
89
+ /**
90
+ * @description 删除class
91
+ */
92
+ export function removeClass(el, cls) {
93
+ if (!el || !cls) return
94
+ var classes = cls.split(' ')
95
+ var curClass = ' ' + el.className + ' '
96
+
97
+ for (var i = 0, j = classes.length; i < j; i++) {
98
+ var clsName = classes[i]
99
+ if (!clsName) continue
100
+
101
+ if (el.classList) {
102
+ el.classList.remove(clsName)
103
+ } else if (hasClass(el, clsName)) {
104
+ curClass = curClass.replace(' ' + clsName + ' ', ' ')
105
+ }
106
+ }
107
+ if (!el.classList) {
108
+ el.className = trim(curClass)
109
+ }
110
+ }
111
+
112
+ /**
113
+ * @description 获取样式
114
+ */
115
+ export const getStyle = function(element, styleName) {
116
+ if (!element || !styleName) return null
117
+ styleName = camelCase(styleName)
118
+ if (styleName === 'float') {
119
+ styleName = 'cssFloat'
120
+ }
121
+ try {
122
+ var computed = document.defaultView.getComputedStyle(element, '')
123
+ return element.style[styleName] || computed ? computed[styleName] : null
124
+ } catch (e) {
125
+ return element.style[styleName]
126
+ }
127
+ }
128
+
129
+ /**
130
+ * @description 设置样式
131
+ */
132
+ export function setStyle(element, styleName, value) {
133
+ if (!element || !styleName) return
134
+
135
+ if (typeof styleName === 'object') {
136
+ for (var prop in styleName) {
137
+ if (styleName.hasOwnProperty(prop)) {
138
+ setStyle(element, prop, styleName[prop])
139
+ }
140
+ }
141
+ } else {
142
+ styleName = camelCase(styleName)
143
+ element.style[styleName] = value
144
+ }
145
+ }
146
+
147
+ export default {
148
+ on,
149
+ off,
150
+ once,
151
+ hasClass,
152
+ addClass,
153
+ removeClass,
154
+ getStyle,
155
+ setStyle
156
+ }
@@ -0,0 +1,307 @@
1
+ import axios from 'axios'
2
+ import qs from 'qs'
3
+ import dayjs from 'dayjs'
4
+ import token from './token'
5
+ import { Message, MessageBox } from 'element-ui'
6
+ import { store } from '../store'
7
+ import { router } from '../router'
8
+
9
+ axios.defaults.headers.post['Content-Type'] = 'application/json'
10
+ axios.defaults.headers.put['Content-Type'] = 'application/json'
11
+
12
+ function Http() {
13
+ this.axios = axios
14
+ }
15
+
16
+ // 序列化参数为Url形式
17
+ Http.prototype.stringify = params => {
18
+ return qs.stringify(params, {
19
+ allowDots: true
20
+ })
21
+ }
22
+
23
+ Http.prototype.post = (url, params, config) => {
24
+ return axios.post(url, params, config)
25
+ }
26
+
27
+ Http.prototype.get = (url, params, config) => {
28
+ const config_ = Object.assign({}, config, {
29
+ // 参数
30
+ params,
31
+ // 修改参数序列化方法
32
+ paramsSerializer: p => {
33
+ // 使用逗号分隔参数
34
+ return qs.stringify(p, {
35
+ allowDots: true
36
+ })
37
+ }
38
+ })
39
+ return axios.get(url, config_)
40
+ }
41
+
42
+ Http.prototype.delete = (url, params, config) => {
43
+ const config_ = Object.assign({}, config, {
44
+ // 参数
45
+ params,
46
+ // 修改参数序列化方法
47
+ paramsSerializer: p => {
48
+ // 使用逗号分隔参数
49
+ return qs.stringify(p, {
50
+ allowDots: true
51
+ })
52
+ }
53
+ })
54
+ return axios.delete(url, config_)
55
+ }
56
+
57
+ Http.prototype.put = (url, params, config) => {
58
+ return axios.put(url, params, config)
59
+ }
60
+
61
+ Http.prototype.download = (url, params, config) => {
62
+ const config_ = Object.assign({ responseType: 'blob' }, config, {
63
+ // 参数
64
+ params,
65
+ // 修改参数序列化方法
66
+ paramsSerializer: p => {
67
+ // 使用逗号分隔参数
68
+ return qs.stringify(p, {
69
+ allowDots: true
70
+ })
71
+ }
72
+ })
73
+ return axios.get(url, config_)
74
+ }
75
+
76
+ Http.prototype.preview = (url, params, config) => {
77
+ const config_ = Object.assign({ responseType: 'blob', headers: { preview: true } }, config, {
78
+ // 参数
79
+ params,
80
+ // 修改参数序列化方法
81
+ paramsSerializer: p => {
82
+ // 使用逗号分隔参数
83
+ return qs.stringify(p, {
84
+ allowDots: true
85
+ })
86
+ }
87
+ })
88
+ return axios.get(url, config_)
89
+ }
90
+
91
+ Http.prototype.export = (url, params, config) => {
92
+ return axios.post(url, params, Object.assign({ responseType: 'blob' }, config))
93
+ }
94
+
95
+ // 通用CRUD接口地址
96
+ Http.prototype.crud = root => {
97
+ if (!root.endsWith('/')) {
98
+ root += '/'
99
+ }
100
+ return {
101
+ query(params) {
102
+ return $http.get(`${root}query`, params)
103
+ },
104
+ add(params) {
105
+ return $http.post(`${root}add`, params)
106
+ },
107
+ remove(id) {
108
+ return $http.delete(`${root}delete`, { id })
109
+ },
110
+ edit(id) {
111
+ return $http.get(`${root}edit`, { id })
112
+ },
113
+ update(params) {
114
+ return $http.post(`${root}update`, params)
115
+ }
116
+ }
117
+ }
118
+
119
+ // 设为全局属性$http
120
+ if (!window.$http) window.$http = new Http()
121
+
122
+ // 消息提醒显示时长(ms)
123
+ const messageDuration = 1500
124
+ //是否显示了账户在其他地方登录的提示框
125
+ let showLoginOnOtherPlaces = false
126
+
127
+ //处理文件下载请求
128
+ const handleDownload = response => {
129
+ //如果返回的是application/json,则表示返回的是json,没有要下载的问题,可能是逻辑处理失败
130
+ if (response.data.type === 'application/json') {
131
+ var reader = new FileReader()
132
+ reader.onload = e => {
133
+ var data = JSON.parse(e.target.result)
134
+ if (data.code === 1) {
135
+ return data.data
136
+ } else {
137
+ Message.error({
138
+ message: data.msg,
139
+ showClose: true,
140
+ duration: messageDuration
141
+ })
142
+ return
143
+ }
144
+ }
145
+ reader.readAsText(response.data)
146
+ return
147
+ }
148
+
149
+ const url = window.URL.createObjectURL(response.data)
150
+
151
+ // 如果是预览直接返回
152
+ if (response.config.headers['preview']) return url
153
+
154
+ let fileName = ''
155
+ // 如果响应头包含'content-disposition'属性,则从该属性中获取文件名称
156
+ let cd = response.headers['content-disposition']
157
+ if (cd) {
158
+ fileName = decodeURI(cd.split("''")[1])
159
+ }
160
+
161
+ //如果文件名不存在,则使用时间戳
162
+ if (!fileName) {
163
+ fileName = dayjs().format('YYYYMMDDHHMMSSS')
164
+ }
165
+
166
+ //通过模拟a标签点击事件下载文件
167
+ const link = document.createElement('a')
168
+ link.href = url
169
+ link.setAttribute('download', fileName)
170
+ document.body.appendChild(link)
171
+ link.click()
172
+ document.body.removeChild(link)
173
+ }
174
+
175
+ //刷新令牌
176
+ const refreshToken = () => {
177
+ let t = token.get()
178
+ if (t && t.refreshToken) {
179
+ return store.state.app.system.actions.refreshToken(t.refreshToken)
180
+ }
181
+
182
+ Promise.reject('refresh token error')
183
+ }
184
+
185
+ // 初始化
186
+ export default config => {
187
+ // 接口根路径
188
+ axios.defaults.baseURL = config.baseUrl
189
+
190
+ // 拦截请求
191
+ axios.interceptors.request.use(
192
+ config => {
193
+ let t = token.get()
194
+ if (t && t.accessToken) {
195
+ config.headers.Authorization = 'Bearer ' + t.accessToken
196
+ }
197
+ return config
198
+ },
199
+ function(error) {
200
+ return Promise.reject(error)
201
+ }
202
+ )
203
+
204
+ // 响应前拦截器
205
+ axios.interceptors.response.use(
206
+ response => {
207
+ const { config } = response
208
+ // 文件下载/预览
209
+ if (config.responseType && config.responseType === 'blob') {
210
+ return handleDownload(response)
211
+ }
212
+
213
+ if (response.data.code === 1) {
214
+ return response.data.data
215
+ } else if (response.data.code === 0 && !config.noErrorMsg) {
216
+ Message.error({
217
+ message: response.data.msg,
218
+ showClose: true,
219
+ duration: messageDuration
220
+ })
221
+ return Promise.reject(response.data.msg)
222
+ } else {
223
+ return response.data
224
+ }
225
+ },
226
+ error => {
227
+ let currentRoute = router.currentRoute
228
+ let redirect = currentRoute.name !== 'login' ? currentRoute.fullPath : '/' // 跳转页面
229
+ if (error && error.response) {
230
+ switch (error.response.status) {
231
+ case 401:
232
+ return refreshToken()
233
+ .then(data => {
234
+ //重新初始化令牌
235
+ store.commit('app/token/init', data)
236
+ //重新发一起一次上次的的请求
237
+ error.config.headers.Authorization = 'Bearer ' + data.accessToken
238
+ return axios.request(error.config)
239
+ })
240
+ .catch(() => {
241
+ // 如果刷新失败,需要删除token并跳转到登录页面
242
+ token.remove()
243
+ router.push({
244
+ name: 'login',
245
+ query: {
246
+ redirect
247
+ }
248
+ })
249
+ })
250
+ case 403:
251
+ store.dispatch(
252
+ 'app/page/close',
253
+ {
254
+ fullPath: currentRoute.path,
255
+ router: router,
256
+ to: {
257
+ name: 'error403'
258
+ }
259
+ },
260
+ { root: true }
261
+ )
262
+ break
263
+ case 622:
264
+ //单账户登录功能
265
+ if (!showLoginOnOtherPlaces) {
266
+ showLoginOnOtherPlaces = true
267
+ MessageBox.confirm('账户已在别处登录, 请重新登录~', '提示', {
268
+ confirmButtonText: '确定',
269
+ type: 'warning',
270
+ showCancelButton: false,
271
+ callback() {
272
+ // 删除token
273
+ token.remove()
274
+ router.push({
275
+ name: 'login',
276
+ query: {
277
+ redirect
278
+ }
279
+ })
280
+ showLoginOnOtherPlaces = false
281
+ }
282
+ })
283
+ }
284
+ break
285
+ default:
286
+ console.error(error.response.data.msg)
287
+ Message.error({
288
+ message: '系统异常,请联系管理员~',
289
+ duration: messageDuration
290
+ })
291
+ break
292
+ }
293
+ } else {
294
+ if (currentRoute.name === 'login') {
295
+ Message.error({
296
+ message: '无法连接网络~',
297
+ duration: messageDuration
298
+ })
299
+ } else {
300
+ token.remove()
301
+ router.push({ name: 'login', query: { redirect } })
302
+ }
303
+ }
304
+ return Promise.reject(error)
305
+ }
306
+ )
307
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 单个页面转为路由信息
3
+ * @param {Object} config 配置信息
4
+ */
5
+ const Page2Route = config => {
6
+ const { page, component } = config
7
+ return {
8
+ path: page.path,
9
+ name: page.name.toLowerCase(),
10
+ component: component,
11
+ props: page.props || true,
12
+ meta: {
13
+ title: page.title,
14
+ icon: page.icon,
15
+ frameIn: page.frameIn, //是否框架内
16
+ cache: page.cache, //是否缓存
17
+ noPermission: page.noPermission, //是否不走权限验证
18
+ buttons: page.buttons,
19
+ permissions: page.permissions
20
+ }
21
+ }
22
+ }
23
+
24
+ /**
25
+ * @description 页面数组转为路由数组
26
+ * @param {Object} module 模块信息
27
+ * @param {Object} pages 页面数组
28
+ */
29
+ export default pages => {
30
+ let routes = []
31
+ pages.forEach(item => {
32
+ if (item) {
33
+ routes.push(Page2Route(item))
34
+ }
35
+ })
36
+ return routes
37
+ }
@@ -0,0 +1,53 @@
1
+ import { store } from '../store'
2
+
3
+ // 打开路由菜单
4
+ const openRoute = (router, menu) => {
5
+ let route = { name: menu.routeName, params: {} }
6
+ if (menu.routeQuery) {
7
+ route.query = JSON.parse(menu.routeQuery)
8
+ }
9
+ if (menu.routeParams) {
10
+ route.params = JSON.parse(menu.routeParams)
11
+ }
12
+
13
+ route.params['tn_'] = menu.name
14
+
15
+ router.push(route)
16
+ }
17
+
18
+ // 打开链接菜单
19
+ const openLink = (router, menu) => {
20
+ const target = menu.target
21
+ if (!target || target === 0) {
22
+ window.open(menu.url, '_blank')
23
+ } else if (target === 1) {
24
+ window.open(menu.url, '_self')
25
+ } else if (target === 2) {
26
+ // Dialog模式
27
+ store.dispatch('app/dialog-menu/open', {
28
+ title: menu.name,
29
+ icon: menu.icon,
30
+ url: menu.url
31
+ // width: menu.dialogWidth,
32
+ // height: menu.dialogHeight,
33
+ // fullscreen: menu.dialogFullscreen
34
+ })
35
+ } else if (target === 3 || target === 4) {
36
+ // 当前皮肤下,容器内和内容区一样
37
+ router.push({
38
+ name: 'iframe',
39
+ params: { url: encodeURI(menu.url), tn_: menu.name }
40
+ })
41
+ }
42
+ }
43
+
44
+ const open = (router, menu) => {
45
+ // 1、站内路由 2、站外链接
46
+ if (menu.type === 1) {
47
+ openRoute(router, menu)
48
+ } else if (menu.type === 2) {
49
+ openLink(router, menu)
50
+ }
51
+ }
52
+
53
+ export { open }
@@ -0,0 +1,7 @@
1
+ /**常用正则表达式 */
2
+ export default {
3
+ /**手机号 */
4
+ phone: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
5
+ /**统一社会信用代码 */
6
+ creditCode: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/
7
+ }
@@ -0,0 +1,40 @@
1
+ import ResizeObserver from 'resize-observer-polyfill'
2
+
3
+ const isServer = typeof window === 'undefined'
4
+
5
+ /* istanbul ignore next */
6
+ const resizeHandler = function (entries) {
7
+ for (let entry of entries) {
8
+ const listeners = entry.target.__resizeListeners__ || []
9
+ if (listeners.length) {
10
+ listeners.forEach(fn => {
11
+ fn()
12
+ })
13
+ }
14
+ }
15
+ }
16
+
17
+ /* istanbul ignore next */
18
+ const addResizeListener = function (element, fn) {
19
+ if (isServer) return
20
+ if (!element.__resizeListeners__) {
21
+ element.__resizeListeners__ = []
22
+ element.__ro__ = new ResizeObserver(resizeHandler)
23
+ element.__ro__.observe(element)
24
+ }
25
+ element.__resizeListeners__.push(fn)
26
+ }
27
+
28
+ /* istanbul ignore next */
29
+ const removeResizeListener = function (element, fn) {
30
+ if (!element || !element.__resizeListeners__) return
31
+ element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1)
32
+ if (!element.__resizeListeners__.length) {
33
+ element.__ro__.disconnect()
34
+ }
35
+ }
36
+
37
+ export { addResizeListener, removeResizeListener }
38
+
39
+ const resizeEvent = { addResizeListener, removeResizeListener }
40
+ export default resizeEvent