n20-common-lib 1.3.4 → 1.3.7

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 (467) hide show
  1. package/README.md +2 -2
  2. package/g6.js +2 -197
  3. package/package.json +104 -104
  4. package/src/_qiankun/index.js +113 -113
  5. package/src/_qiankun/postMessage.js +48 -48
  6. package/src/assets/css/_coreLib.scss +36 -36
  7. package/src/assets/css/alert.scss +31 -31
  8. package/src/assets/css/cl-anchor.scss +32 -32
  9. package/src/assets/css/cl-approve-card.scss +67 -67
  10. package/src/assets/css/cl-dialog.scss +113 -113
  11. package/src/assets/css/cl-drag-list.scss +24 -24
  12. package/src/assets/css/cl-empty.scss +10 -10
  13. package/src/assets/css/cl-expandable-pane.scss +37 -37
  14. package/src/assets/css/cl-expandable.scss +26 -26
  15. package/src/assets/css/cl-file-upload-table.scss +31 -31
  16. package/src/assets/css/cl-filter.scss +4 -4
  17. package/src/assets/css/cl-flow-step.scss +185 -185
  18. package/src/assets/css/cl-footer-box.scss +10 -10
  19. package/src/assets/css/cl-form-item.scss +705 -705
  20. package/src/assets/css/cl-general-card.scss +11 -11
  21. package/src/assets/css/cl-layout-aside.scss +92 -92
  22. package/src/assets/css/cl-layout-content.scss +16 -16
  23. package/src/assets/css/cl-layout-header.scss +73 -73
  24. package/src/assets/css/cl-layout-tabs.scss +87 -87
  25. package/src/assets/css/cl-layout.scss +97 -97
  26. package/src/assets/css/cl-login-temporary.scss +37 -37
  27. package/src/assets/css/cl-message.scss +159 -159
  28. package/src/assets/css/cl-more-tab.scss +98 -98
  29. package/src/assets/css/cl-nav-menu.scss +5 -5
  30. package/src/assets/css/cl-pagination.scss +130 -130
  31. package/src/assets/css/cl-secondary-tab.scss +53 -53
  32. package/src/assets/css/cl-showcolumn.scss +39 -39
  33. package/src/assets/css/cl-sifting.scss +51 -51
  34. package/src/assets/css/cl-statis.scss +54 -54
  35. package/src/assets/css/cl-step.scss +73 -73
  36. package/src/assets/css/cl-suspend.scss +19 -19
  37. package/src/assets/css/cl-tertiary-tab.scss +56 -56
  38. package/src/assets/css/cl-upload.scss +47 -47
  39. package/src/assets/css/cl-worn-pagination.scss +50 -50
  40. package/src/assets/css/el-button.scss +188 -188
  41. package/src/assets/css/el-table.scss +96 -96
  42. package/src/assets/css/element-variables.scss +1061 -1061
  43. package/src/assets/css/element.dev.scss +22 -22
  44. package/src/assets/css/font-icon.scss +26 -26
  45. package/src/assets/css/index.dev.scss +4 -4
  46. package/src/assets/css/index.scss +11 -11
  47. package/src/assets/css/normalize.scss +726 -726
  48. package/src/assets/css/plain-text.scss +137 -137
  49. package/src/assets/css/rootvar.scss +139 -139
  50. package/src/assets/css/select.scss +25 -25
  51. package/src/assets/css/title-pop.scss +23 -23
  52. package/src/assets/getJsonc.js +50 -50
  53. package/src/assets/iconFont/demo.css +539 -539
  54. package/src/assets/iconFont/demo_index.html +1614 -1614
  55. package/src/assets/iconFont/iconfont.css +263 -263
  56. package/src/assets/iconFont/iconfont.json +443 -443
  57. package/src/assets/realUrl.js +12 -12
  58. package/src/components/Anchor/AnchorItem.vue +29 -29
  59. package/src/components/Anchor/index.vue +185 -185
  60. package/src/components/ApprovalButtons/index.vue +240 -240
  61. package/src/components/ApprovalCard/index.vue +132 -132
  62. package/src/components/ApprovalRecord/approvalImg.vue +44 -44
  63. package/src/components/ApprovalRecord/flowDialog.vue +50 -45
  64. package/src/components/ApprovalRecord/index.vue +59 -59
  65. package/src/components/Button/button-group.vue +154 -154
  66. package/src/components/Button/icon-group-button.vue +63 -63
  67. package/src/components/Button/index.vue +56 -56
  68. package/src/components/CascaderArea/index.vue +103 -103
  69. package/src/components/ChildRange/index.vue +201 -201
  70. package/src/components/ContentLoading/index.vue +41 -41
  71. package/src/components/ContentNull/index.vue +19 -19
  72. package/src/components/DatePicker/index.vue +27 -27
  73. package/src/components/DatePicker/por.vue +169 -169
  74. package/src/components/Dialog/index.vue +26 -26
  75. package/src/components/Dialog/indexO.vue +116 -116
  76. package/src/components/DragList/index.vue +75 -75
  77. package/src/components/ECharts/define.js +74 -74
  78. package/src/components/ECharts/index.vue +169 -163
  79. package/src/components/ECharts/mixins/resize.js +56 -56
  80. package/src/components/Empty/img/400.svg +101 -101
  81. package/src/components/Empty/img/401.svg +101 -101
  82. package/src/components/Empty/img/403.svg +101 -101
  83. package/src/components/Empty/img/405.svg +101 -101
  84. package/src/components/Empty/img/901.svg +95 -95
  85. package/src/components/Empty/img/902.svg +95 -95
  86. package/src/components/Empty/img/903.svg +95 -95
  87. package/src/components/Empty/img/904.svg +95 -95
  88. package/src/components/Empty/img/905.svg +95 -95
  89. package/src/components/Empty/img/906.svg +95 -95
  90. package/src/components/Empty/img/907.svg +95 -95
  91. package/src/components/Empty/img/abnormal.svg +108 -108
  92. package/src/components/Empty/img/dispose.svg +71 -71
  93. package/src/components/Empty/img/empty.svg +57 -57
  94. package/src/components/Empty/img/general.svg +58 -58
  95. package/src/components/Empty/img/lock.svg +57 -57
  96. package/src/components/Empty/img/network.svg +59 -59
  97. package/src/components/Empty/img/relevant.svg +68 -68
  98. package/src/components/Empty/img/search.svg +72 -72
  99. package/src/components/Empty/index.vue +147 -147
  100. package/src/components/Expandable/index.vue +49 -49
  101. package/src/components/Expandable/main.vue +55 -55
  102. package/src/components/FileExportAsync/index.vue +178 -178
  103. package/src/components/FileImport/index.vue +201 -201
  104. package/src/components/FileUploadTable/index.vue +489 -489
  105. package/src/components/Filters/index.vue +371 -371
  106. package/src/components/Filters/indexO.vue +104 -104
  107. package/src/components/FlowStep/index.vue +68 -68
  108. package/src/components/FooterBox/index.vue +21 -21
  109. package/src/components/GeneralCard/index.vue +15 -15
  110. package/src/components/InputNumber/index.vue +169 -169
  111. package/src/components/InputNumber/numberRange.vue +47 -47
  112. package/src/components/InputSearch/index.vue +75 -75
  113. package/src/components/Layout/AsideNav/index.vue +116 -120
  114. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  115. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  116. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  117. package/src/components/Layout/HeaderWrap/index.vue +371 -371
  118. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  119. package/src/components/Layout/SubContent/index.vue +127 -127
  120. package/src/components/Layout/TabsNav/index.vue +170 -170
  121. package/src/components/Layout/index.vue +518 -518
  122. package/src/components/Layout/utils.js +12 -12
  123. package/src/components/LoginTemporary/form.vue +566 -566
  124. package/src/components/LoginTemporary/index.vue +139 -139
  125. package/src/components/LoginTemporary/qrcode.vue +90 -90
  126. package/src/components/LoginTemporary/retrievePw.vue +372 -372
  127. package/src/components/LoginTemporary/utils.js +73 -73
  128. package/src/components/MicroApp/index.js +67 -67
  129. package/src/components/MicroFrame/index.vue +95 -95
  130. package/src/components/MoreTab/index.vue +232 -232
  131. package/src/components/NavMenu/index.vue +60 -60
  132. package/src/components/PageHeader/index.vue +79 -79
  133. package/src/components/PageLayout/page.vue +15 -15
  134. package/src/components/Pagination/index.vue +165 -165
  135. package/src/components/PlainText/PlainTextItem.vue +16 -16
  136. package/src/components/PlainText/index.vue +11 -11
  137. package/src/components/Search/index.vue +593 -593
  138. package/src/components/SecondaryTab/index.vue +58 -58
  139. package/src/components/SelectLazy/index.vue +75 -75
  140. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  141. package/src/components/SelectTree/index.vue +206 -206
  142. package/src/components/ShowColumn/index.vue +213 -213
  143. package/src/components/Sifting/index.vue +99 -99
  144. package/src/components/Stamp/index.vue +75 -75
  145. package/src/components/Statis/index.vue +97 -97
  146. package/src/components/Statis/statisItem.vue +54 -54
  147. package/src/components/Statis/statisPopover.vue +56 -56
  148. package/src/components/Step/index.vue +38 -38
  149. package/src/components/Suspend/index.vue +72 -72
  150. package/src/components/Table/ThSelectHeader.vue +133 -133
  151. package/src/components/Table/index.vue +259 -259
  152. package/src/components/Table/indexO.vue +149 -149
  153. package/src/components/Task/index.vue +26 -26
  154. package/src/components/TertiaryTab/index.vue +63 -63
  155. package/src/components/TimePicker/index.vue +28 -28
  156. package/src/components/Upload/index.vue +246 -246
  157. package/src/components/WornPagination/index.vue +73 -73
  158. package/src/directives/VClickOutside/index.js +19 -19
  159. package/src/directives/VHas/index.js +58 -58
  160. package/src/directives/VMove/index.js +42 -42
  161. package/src/directives/VTitle/index.js +88 -69
  162. package/src/index.js +257 -259
  163. package/src/plugins/CompatibleOld/index.js +57 -57
  164. package/src/plugins/Print/index.js +4 -4
  165. package/src/plugins/Print/print-js/.babelrc +12 -12
  166. package/src/plugins/Print/print-js/LICENSE +21 -21
  167. package/src/plugins/Print/print-js/README.md +98 -98
  168. package/src/plugins/Print/print-js/dist/print.css +96 -96
  169. package/src/plugins/Print/print-js/dist/print.js +990 -990
  170. package/src/plugins/Print/print-js/package.json +60 -60
  171. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  172. package/src/plugins/Print/print-js/src/index.js +10 -10
  173. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  174. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  175. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  176. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  177. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  178. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  179. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  180. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  181. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  182. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  183. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  184. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  185. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  186. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  187. package/src/plugins/Print/print.js +2 -2
  188. package/src/plugins/Print/print.scss +1 -1
  189. package/src/plugins/SetMenuTree/index.vue +41 -41
  190. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  191. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  192. package/src/plugins/SetMenuTree/utils.js +74 -74
  193. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  194. package/src/plugins/Sign/index.js +65 -65
  195. package/src/plugins/Sign/sign.js +1 -1
  196. package/src/plugins/setTabsForSub.js +2 -2
  197. package/src/utils/auth.js +53 -53
  198. package/src/utils/axios.js +203 -203
  199. package/src/utils/downloadBlob.js +19 -19
  200. package/src/utils/forEachs.js +16 -16
  201. package/src/utils/getScrollContainer.js +43 -43
  202. package/src/utils/i18n/cn2hk.json +1270 -1270
  203. package/src/utils/i18n/index.js +50 -50
  204. package/src/utils/list2tree.js +36 -36
  205. package/src/utils/mapper_aims.js +809 -809
  206. package/src/utils/msgboxPor.js +26 -26
  207. package/src/utils/print.js +161 -161
  208. package/src/utils/relaNo.js +72 -72
  209. package/src/utils/repairElementUI.js +95 -95
  210. package/src/utils/urlToGo.js +82 -82
  211. package/style/css/normalize.scss +726 -726
  212. package/style/index.css +3 -3
  213. package/style/pageDemo/demo-1.vue +131 -131
  214. package/style/pageDemo/demo-2.vue +35 -35
  215. package/style/pageDemo/demo-3.vue +22 -22
  216. package/style/pageDemo/seeCode.js +20 -20
  217. package/style/server-config.jsonc +606 -723
  218. package/src/assets/svg/404.svg +0 -1
  219. package/src/assets/svg/addFile.svg +0 -32
  220. package/src/assets/svg/bug.svg +0 -1
  221. package/src/assets/svg/chart.svg +0 -1
  222. package/src/assets/svg/clipboard.svg +0 -1
  223. package/src/assets/svg/component.svg +0 -1
  224. package/src/assets/svg/dashboard.svg +0 -1
  225. package/src/assets/svg/deleteFile.svg +0 -28
  226. package/src/assets/svg/documentation.svg +0 -1
  227. package/src/assets/svg/drag.svg +0 -1
  228. package/src/assets/svg/edit.svg +0 -1
  229. package/src/assets/svg/education.svg +0 -1
  230. package/src/assets/svg/email.svg +0 -1
  231. package/src/assets/svg/example.svg +0 -1
  232. package/src/assets/svg/excel.svg +0 -1
  233. package/src/assets/svg/exit-fullscreen.svg +0 -1
  234. package/src/assets/svg/eye-open.svg +0 -1
  235. package/src/assets/svg/eye.svg +0 -1
  236. package/src/assets/svg/favorite.svg +0 -1
  237. package/src/assets/svg/favorite_active.svg +0 -1
  238. package/src/assets/svg/favorite_x400.svg +0 -1
  239. package/src/assets/svg/favorite_x400_active.svg +0 -1
  240. package/src/assets/svg/favorite_x400_blank.svg +0 -1
  241. package/src/assets/svg/filter.svg +0 -16
  242. package/src/assets/svg/filter@2x.png +0 -0
  243. package/src/assets/svg/filterActive.svg +0 -16
  244. package/src/assets/svg/filterClose@2x.png +0 -0
  245. package/src/assets/svg/form.svg +0 -1
  246. package/src/assets/svg/fullscreen.svg +0 -1
  247. package/src/assets/svg/guide.svg +0 -1
  248. package/src/assets/svg/hourglass.svg +0 -19
  249. package/src/assets/svg/icon.svg +0 -1
  250. package/src/assets/svg/international.svg +0 -1
  251. package/src/assets/svg/language.svg +0 -1
  252. package/src/assets/svg/left-dis.svg +0 -1
  253. package/src/assets/svg/left.svg +0 -1
  254. package/src/assets/svg/link.svg +0 -1
  255. package/src/assets/svg/list.svg +0 -1
  256. package/src/assets/svg/lock.svg +0 -1
  257. package/src/assets/svg/message-t.svg +0 -1
  258. package/src/assets/svg/money.svg +0 -1
  259. package/src/assets/svg/money3.svg +0 -1
  260. package/src/assets/svg/money4.svg +0 -1
  261. package/src/assets/svg/moneyTwo.svg +0 -1
  262. package/src/assets/svg/msg_white.svg +0 -1
  263. package/src/assets/svg/nested.svg +0 -1
  264. package/src/assets/svg/newsearch.svg +0 -19
  265. package/src/assets/svg/password.svg +0 -1
  266. package/src/assets/svg/pdf.svg +0 -1
  267. package/src/assets/svg/people.svg +0 -1
  268. package/src/assets/svg/peoples.svg +0 -1
  269. package/src/assets/svg/phone.svg +0 -1
  270. package/src/assets/svg/phone_msg.svg +0 -1
  271. package/src/assets/svg/qq.svg +0 -1
  272. package/src/assets/svg/right-dis.svg +0 -1
  273. package/src/assets/svg/right.svg +0 -1
  274. package/src/assets/svg/search.svg +0 -1
  275. package/src/assets/svg/searchActive.svg +0 -19
  276. package/src/assets/svg/shopping.svg +0 -1
  277. package/src/assets/svg/size.svg +0 -1
  278. package/src/assets/svg/skill.svg +0 -1
  279. package/src/assets/svg/star.svg +0 -1
  280. package/src/assets/svg/steam.svg +0 -1
  281. package/src/assets/svg/tab.svg +0 -1
  282. package/src/assets/svg/table.svg +0 -1
  283. package/src/assets/svg/theme.svg +0 -1
  284. package/src/assets/svg/tree-table.svg +0 -1
  285. package/src/assets/svg/tree.svg +0 -1
  286. package/src/assets/svg/user.svg +0 -1
  287. package/src/assets/svg/wechat.svg +0 -1
  288. package/src/assets/svg/z-left-2-dis.svg +0 -1
  289. package/src/assets/svg/z-left-2.svg +0 -1
  290. package/src/assets/svg/z-right-2-dis.svg +0 -1
  291. package/src/assets/svg/z-right-2.svg +0 -1
  292. package/src/assets/svg/z-right.svg +0 -1
  293. package/src/assets/svg/zip.svg +0 -1
  294. package/src/components/.DS_Store +0 -0
  295. package/src/components/Empty/.DS_Store +0 -0
  296. package/src/components/Empty/img/.DS_Store +0 -0
  297. package/src/components/Layout/.DS_Store +0 -0
  298. package/src/components/NstcG6Components/.DS_Store +0 -0
  299. package/src/components/NstcG6Components/Calendar/index.js +0 -8
  300. package/src/components/NstcG6Components/Calendar/src/basic/month-table.vue +0 -129
  301. package/src/components/NstcG6Components/Calendar/src/basic/year-table.vue +0 -126
  302. package/src/components/NstcG6Components/Calendar/src/main.vue +0 -442
  303. package/src/components/NstcG6Components/DialogForm/index.js +0 -8
  304. package/src/components/NstcG6Components/DialogForm/src/demo/index.vue +0 -56
  305. package/src/components/NstcG6Components/DialogForm/src/main.vue +0 -189
  306. package/src/components/NstcG6Components/Form/A_DEMO/component/originalForm.vue +0 -281
  307. package/src/components/NstcG6Components/Form/A_DEMO/config/config_3.js +0 -1222
  308. package/src/components/NstcG6Components/Form/A_DEMO/index.vue +0 -803
  309. package/src/components/NstcG6Components/Form/AutocompleteCustom/index.vue +0 -72
  310. package/src/components/NstcG6Components/Form/BusinessSpecific/InputMultiple.vue +0 -191
  311. package/src/components/NstcG6Components/Form/BusinessSpecific/InputWithUnit.vue +0 -128
  312. package/src/components/NstcG6Components/Form/BusinessSpecific/SelectTreeDialog.vue +0 -233
  313. package/src/components/NstcG6Components/Form/BusinessSpecific/readme.md +0 -7
  314. package/src/components/NstcG6Components/Form/CascaderCustom/index.vue +0 -101
  315. package/src/components/NstcG6Components/Form/CheckboxCustom/index.vue +0 -84
  316. package/src/components/NstcG6Components/Form/Component.vue +0 -661
  317. package/src/components/NstcG6Components/Form/ComponentSecond.vue +0 -650
  318. package/src/components/NstcG6Components/Form/DatepickerCustom/index.vue +0 -130
  319. package/src/components/NstcG6Components/Form/InputAndDialog/index.js +0 -15
  320. package/src/components/NstcG6Components/Form/InputAndDialog/src/main.vue +0 -395
  321. package/src/components/NstcG6Components/Form/InputCustom/demo/index.vue +0 -65
  322. package/src/components/NstcG6Components/Form/InputCustom/index.vue +0 -307
  323. package/src/components/NstcG6Components/Form/IntervalinputCustom/demo/index.vue +0 -31
  324. package/src/components/NstcG6Components/Form/IntervalinputCustom/index.vue +0 -118
  325. package/src/components/NstcG6Components/Form/Item.vue +0 -330
  326. package/src/components/NstcG6Components/Form/ItemSecond.vue +0 -269
  327. package/src/components/NstcG6Components/Form/List.vue +0 -146
  328. package/src/components/NstcG6Components/Form/ListSecond.vue +0 -130
  329. package/src/components/NstcG6Components/Form/RadioCustom/index.vue +0 -73
  330. package/src/components/NstcG6Components/Form/SelectAccount/index.js +0 -15
  331. package/src/components/NstcG6Components/Form/SelectAccount/src/demo/index.vue +0 -58
  332. package/src/components/NstcG6Components/Form/SelectAccount/src/main.vue +0 -283
  333. package/src/components/NstcG6Components/Form/SelectAndDialog/index.js +0 -15
  334. package/src/components/NstcG6Components/Form/SelectAndDialog/src/main.vue +0 -384
  335. package/src/components/NstcG6Components/Form/SelectCashFlow/index.js +0 -15
  336. package/src/components/NstcG6Components/Form/SelectCashFlow/src/demo/index.vue +0 -42
  337. package/src/components/NstcG6Components/Form/SelectCashFlow/src/main.vue +0 -126
  338. package/src/components/NstcG6Components/Form/SelectCustom/demo/index.vue +0 -82
  339. package/src/components/NstcG6Components/Form/SelectCustom/index.vue +0 -488
  340. package/src/components/NstcG6Components/Form/SelectSubject/index.js +0 -15
  341. package/src/components/NstcG6Components/Form/SelectSubject/src/demo/index.vue +0 -85
  342. package/src/components/NstcG6Components/Form/SelectSubject/src/main.vue +0 -182
  343. package/src/components/NstcG6Components/Form/SelectindialogCustom/demo/index.vue +0 -188
  344. package/src/components/NstcG6Components/Form/SelectindialogCustom/index.vue +0 -650
  345. package/src/components/NstcG6Components/Form/SelectindialogCustom/install.js +0 -7
  346. package/src/components/NstcG6Components/Form/TableRadioCustom/demo/index.vue +0 -53
  347. package/src/components/NstcG6Components/Form/TableRadioCustom/index.vue +0 -183
  348. package/src/components/NstcG6Components/Form/TextCustom/index.vue +0 -38
  349. package/src/components/NstcG6Components/Form/UploadCustom/demo/index.vue +0 -31
  350. package/src/components/NstcG6Components/Form/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  351. package/src/components/NstcG6Components/Form/UploadCustom/index.vue +0 -506
  352. package/src/components/NstcG6Components/Form/configs.js +0 -191
  353. package/src/components/NstcG6Components/Form/configsSecond.js +0 -161
  354. package/src/components/NstcG6Components/Form/index.js +0 -8
  355. package/src/components/NstcG6Components/Form/index.scss +0 -29
  356. package/src/components/NstcG6Components/Form/payeePersonSelect/index.js +0 -15
  357. package/src/components/NstcG6Components/Form/payeePersonSelect/src/demo/index.vue +0 -164
  358. package/src/components/NstcG6Components/Form/payeePersonSelect/src/main.vue +0 -185
  359. package/src/components/NstcG6Components/Form/readme.txt +0 -4
  360. package/src/components/NstcG6Components/FormGroup/index.js +0 -8
  361. package/src/components/NstcG6Components/FormGroup/src/demo/config.js +0 -23
  362. package/src/components/NstcG6Components/FormGroup/src/demo/index.vue +0 -85
  363. package/src/components/NstcG6Components/FormGroup/src/main.vue +0 -639
  364. package/src/components/NstcG6Components/FormGroup/src/validate.js +0 -23
  365. package/src/components/NstcG6Components/InputTag/InputTag.vue +0 -270
  366. package/src/components/NstcG6Components/NstcApprovel/NstcApprovel.vue +0 -25
  367. package/src/components/NstcG6Components/NstcBackToTop/NstcBackToTop.vue +0 -150
  368. package/src/components/NstcG6Components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +0 -123
  369. package/src/components/NstcG6Components/NstcCharts/NstcCharts.vue +0 -162
  370. package/src/components/NstcG6Components/NstcCharts/define.js +0 -74
  371. package/src/components/NstcG6Components/NstcCharts/mixins/resize.js +0 -56
  372. package/src/components/NstcG6Components/NstcConfirm/NstcConfirm.vue +0 -153
  373. package/src/components/NstcG6Components/NstcConfirm/index.js +0 -25
  374. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +0 -185
  375. package/src/components/NstcG6Components/NstcDialogForm/NstcDialogForm.vue +0 -176
  376. package/src/components/NstcG6Components/NstcDialogTable/NstcDialogTable.vue +0 -282
  377. package/src/components/NstcG6Components/NstcDropdown/NstcDropdown.vue +0 -52
  378. package/src/components/NstcG6Components/NstcDropdownTree/NstcDropdownTree.vue +0 -396
  379. package/src/components/NstcG6Components/NstcElectronicFile/NstcElectronicFile.vue +0 -591
  380. package/src/components/NstcG6Components/NstcExcelCustomImport/NstcExcelCustomImport.vue +0 -475
  381. package/src/components/NstcG6Components/NstcExcelCustomImport/img/upload@2x.png +0 -0
  382. package/src/components/NstcG6Components/NstcExcelExport/NstcExcelExport.vue +0 -145
  383. package/src/components/NstcG6Components/NstcExcelImport/NstcExcelImport.vue +0 -1051
  384. package/src/components/NstcG6Components/NstcExcelImport/img/upload@2x.png +0 -0
  385. package/src/components/NstcG6Components/NstcExcelImportN/NstcExcelImportN.vue +0 -1166
  386. package/src/components/NstcG6Components/NstcExpandCollapse/NstcExpandCollapse.vue +0 -130
  387. package/src/components/NstcG6Components/NstcExpandCollapse/index.scss +0 -77
  388. package/src/components/NstcG6Components/NstcFileUpload/NstcFileUpload.vue +0 -989
  389. package/src/components/NstcG6Components/NstcFileUpload/img/addFile.svg +0 -32
  390. package/src/components/NstcG6Components/NstcFileUpload/img/delete.svg +0 -24
  391. package/src/components/NstcG6Components/NstcFileUpload/img/deleteFile.svg +0 -28
  392. package/src/components/NstcG6Components/NstcFileUpload/img/download.svg +0 -24
  393. package/src/components/NstcG6Components/NstcFileUpload/img/inputUpload.svg +0 -30
  394. package/src/components/NstcG6Components/NstcFileUpload/img/look-diabled.svg +0 -24
  395. package/src/components/NstcG6Components/NstcFileUpload/img/look.svg +0 -24
  396. package/src/components/NstcG6Components/NstcForm/A_DEMO/component/originalForm.vue +0 -281
  397. package/src/components/NstcG6Components/NstcForm/A_DEMO/config/config_3.js +0 -1222
  398. package/src/components/NstcG6Components/NstcForm/A_DEMO/index.vue +0 -796
  399. package/src/components/NstcG6Components/NstcForm/AutocompleteCustom/index.vue +0 -68
  400. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/InputMultiple.vue +0 -189
  401. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/InputWithUnit.vue +0 -128
  402. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +0 -233
  403. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/readme.md +0 -7
  404. package/src/components/NstcG6Components/NstcForm/CascaderCustom/index.vue +0 -101
  405. package/src/components/NstcG6Components/NstcForm/CheckboxCustom/index.vue +0 -84
  406. package/src/components/NstcG6Components/NstcForm/Component.vue +0 -684
  407. package/src/components/NstcG6Components/NstcForm/ComponentSecond.vue +0 -650
  408. package/src/components/NstcG6Components/NstcForm/DatepickerCustom/index.vue +0 -130
  409. package/src/components/NstcG6Components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +0 -389
  410. package/src/components/NstcG6Components/NstcForm/InputCustom/index.vue +0 -314
  411. package/src/components/NstcG6Components/NstcForm/IntervalInputCustom/index.vue +0 -116
  412. package/src/components/NstcG6Components/NstcForm/Item.vue +0 -327
  413. package/src/components/NstcG6Components/NstcForm/ItemSecond.vue +0 -269
  414. package/src/components/NstcG6Components/NstcForm/List.vue +0 -146
  415. package/src/components/NstcG6Components/NstcForm/ListSecond.vue +0 -130
  416. package/src/components/NstcG6Components/NstcForm/RadioCustom/index.vue +0 -73
  417. package/src/components/NstcG6Components/NstcForm/SelectAccount/NstcSelectAccount.vue +0 -334
  418. package/src/components/NstcG6Components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +0 -382
  419. package/src/components/NstcG6Components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +0 -123
  420. package/src/components/NstcG6Components/NstcForm/SelectCustom/index.vue +0 -460
  421. package/src/components/NstcG6Components/NstcForm/SelectSubject/NstcSelectSubject.vue +0 -185
  422. package/src/components/NstcG6Components/NstcForm/SelectindialogCustom/index.vue +0 -650
  423. package/src/components/NstcG6Components/NstcForm/TableRadioCustom/index.vue +0 -183
  424. package/src/components/NstcG6Components/NstcForm/TextCustom/index.vue +0 -38
  425. package/src/components/NstcG6Components/NstcForm/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  426. package/src/components/NstcG6Components/NstcForm/UploadCustom/index.vue +0 -483
  427. package/src/components/NstcG6Components/NstcForm/configs.js +0 -191
  428. package/src/components/NstcG6Components/NstcForm/configsSecond.js +0 -161
  429. package/src/components/NstcG6Components/NstcForm/index.js +0 -8
  430. package/src/components/NstcG6Components/NstcForm/index.scss +0 -29
  431. package/src/components/NstcG6Components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +0 -188
  432. package/src/components/NstcG6Components/NstcForm/readme.txt +0 -4
  433. package/src/components/NstcG6Components/NstcPagination/NstcPagination.vue +0 -430
  434. package/src/components/NstcG6Components/NstcPagination/setPageNum.png +0 -0
  435. package/src/components/NstcG6Components/NstcPagination/setpagedefault.png +0 -0
  436. package/src/components/NstcG6Components/NstcScreenFull/NstcScreenFull.vue +0 -70
  437. package/src/components/NstcG6Components/NstcSelectTree/NstcSelectTree.vue +0 -729
  438. package/src/components/NstcG6Components/NstcSelectTreeList/NstcSelectTreeList.vue +0 -676
  439. package/src/components/NstcG6Components/NstcSticky/NstcSticky.vue +0 -97
  440. package/src/components/NstcG6Components/NstcSvgIcon/NstcSvgIcon.vue +0 -72
  441. package/src/components/NstcG6Components/NstcTab/NstcTab.vue +0 -80
  442. package/src/components/NstcG6Components/NstcTabWithBadge/NstcTabWithBadge.vue +0 -45
  443. package/src/components/NstcG6Components/NstcTabWithBadge/index.scss +0 -31
  444. package/src/components/NstcG6Components/NstcTable/ElTableColumnCustom/index.vue +0 -292
  445. package/src/components/NstcG6Components/NstcTable/NstcTable.vue +0 -460
  446. package/src/components/NstcG6Components/NstcTableSet/NstcTableSet.vue +0 -801
  447. package/src/components/NstcG6Components/NstcThemePicker/NstcThemePicker.vue +0 -186
  448. package/src/components/NstcG6Components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +0 -330
  449. package/src/components/NstcG6Components/NstcUploadExcel/NstcUploadExcel.vue +0 -145
  450. package/src/components/NstcG6Components/NstcWorkBench/NstcWorkBench.vue +0 -176
  451. package/src/components/NstcG6Components/Search/NstcSearch.vue +0 -591
  452. package/src/components/NstcG6Components/Search/src/demo/index copy.vue +0 -101
  453. package/src/components/NstcG6Components/Search/src/demo/index.vue +0 -103
  454. package/src/components/NstcG6Components/Search/src/main copy.vue +0 -607
  455. package/src/components/NstcG6Components/approvelTwo/main.vue +0 -220
  456. package/src/components/NstcG6Components/approvelTwo/progress.vue +0 -154
  457. package/src/directives/VCopy/index.js +0 -60
  458. package/src/directives/VNstcNumber/index.js +0 -14
  459. package/src/directives/VNstcNumber/temp.js +0 -446
  460. package/src/directives/VTitle/tooltip.vue +0 -21
  461. package/src/utils/dateAndValidator.js +0 -629
  462. package/src/utils/debounce.js +0 -40
  463. package/src/utils/parseTime.js +0 -48
  464. package/src/utils/validate/index.js +0 -7
  465. package/src/utils/vendor/Export2Excel.js +0 -229
  466. package/src/utils/vendor/Export2Zip.js +0 -24
  467. package/src/utils/vue-bus.js +0 -5
@@ -1,566 +1,566 @@
1
- <template>
2
- <!-- eslint-disable no-irregular-whitespace -->
3
- <div v-loading="loadingV" class="login-form-wrap flex-column p-a">
4
- <slot name="header"></slot>
5
- <svg class="cut-qrcode-h">
6
- <image
7
- v-if="theType === 'qrcode'"
8
- width="52"
9
- height="52"
10
- xlink:href="./qrt.png"
11
- />
12
- <image v-else width="52" height="52" xlink:href="./qr.png" />
13
- <path d="M0,0L52,0L52,52Z" @click="cutQrcode" />
14
- </svg>
15
- <!-- 账号/密码登录 -->
16
- <div v-if="theType === 'account'" class="flex-item">
17
- <el-form
18
- ref="login-form"
19
- :model="form"
20
- :rules="rules"
21
- :hide-required-asterisk="true"
22
- @submit.native.prevent="submitLogin"
23
- >
24
- <el-form-item class="m-b" label="账号" prop="username">
25
- <el-input v-model="form.username" placeholder="请输入账号" />
26
- </el-form-item>
27
- <el-form-item class="m-b" label="密码" prop="password">
28
- <el-input
29
- v-model="form.password"
30
- placeholder="请输入密码"
31
- show-password
32
- />
33
- <!-- 不自动填充密码
34
- <input
35
- v-model="fakePwd"
36
- type="password"
37
- name="password"
38
- hidden="hidden"
39
- @change="fakePwd = 'a1b2c3d4'"
40
- />
41
- <el-input
42
- v-model="form.password"
43
- placeholder="请输入密码"
44
- :class="{ 'login-password': !showPwd }"
45
- >
46
- <i
47
- slot="suffix"
48
- class="el-input__icon el-icon-view"
49
- style="pointer-events: all"
50
- @click.stop="showPwd = !showPwd"
51
- ></i>
52
- </el-input>
53
- 不自动填充密码End -->
54
- </el-form-item>
55
- <el-button
56
- class="m-t"
57
- type="primary"
58
- native-type="submit"
59
- style="width: 100%"
60
- >登 录</el-button
61
- >
62
- </el-form>
63
- </div>
64
- <!-- 二维码扫码登录 -->
65
- <qrCode v-else-if="theType === 'qrcode'" @qrcode-login="QrcodeLogin" />
66
- <!-- 手机验证码登录 -->
67
- <div v-if="theType === 'pthon'" class="flex-item">
68
- <el-form
69
- ref="login-form"
70
- :model="form"
71
- :rules="rules"
72
- :hide-required-asterisk="true"
73
- @submit.native.prevent="submitLogin"
74
- >
75
- <el-form-item class="m-b" label="手机号" prop="phone">
76
- <el-input v-model="form.phone" placeholder="请输入手机号" />
77
- </el-form-item>
78
- <el-form-item class="m-b" label="验证码" prop="code">
79
- <br />
80
- <div class="flex-box">
81
- <el-input
82
- v-model="form.code"
83
- class="flex-item m-r-s"
84
- placeholder="请输入验证码"
85
- />
86
- <el-button
87
- plain
88
- style="4em"
89
- :disabled="!form.phone || codeNum !== '验证码'"
90
- @click="sendMsg('phone', '手机号')"
91
- >{{ codeNum }}</el-button
92
- >
93
- </div>
94
- </el-form-item>
95
- <el-button
96
- class="m-t"
97
- type="primary"
98
- native-type="submit"
99
- style="width: 100%"
100
- >登 录</el-button
101
- >
102
- </el-form>
103
- </div>
104
- <!-- 账户密码验证码登录 -->
105
- <div v-if="theType === 'accountPthon'" class="flex-item">
106
- <el-form
107
- ref="login-form"
108
- :model="form"
109
- :rules="rules"
110
- :hide-required-asterisk="true"
111
- @submit.native.prevent="submitLogin"
112
- >
113
- <el-form-item class="m-b" label="账号" prop="username">
114
- <el-input v-model="form.username" placeholder="请输入账号" />
115
- </el-form-item>
116
- <el-form-item class="m-b" label="密码" prop="password">
117
- <el-input
118
- v-model="form.password"
119
- placeholder="请输入密码"
120
- show-password
121
- />
122
- </el-form-item>
123
- <el-form-item class="m-b" label="验证码" prop="code">
124
- <br />
125
- <div class="flex-box">
126
- <el-input
127
- v-model="form.code"
128
- class="flex-item m-r-s"
129
- placeholder="请输入验证码"
130
- />
131
- <el-button
132
- plain
133
- style="4em"
134
- :disabled="!form.username || codeNum !== '验证码'"
135
- @click="sendMsg('username', '账户')"
136
- >{{ codeNum }}</el-button
137
- >
138
- </div>
139
- </el-form-item>
140
- <el-button
141
- class="m-t"
142
- type="primary"
143
- native-type="submit"
144
- style="width: 100%"
145
- >登 录</el-button
146
- >
147
- </el-form>
148
- </div>
149
- <!-- -->
150
- <div v-if="theType !== 'qrcode'" class="flex-box flex-lr m-t-s m-b-s">
151
- <el-dropdown
152
- size="mini"
153
- placement="bottom-start"
154
- @command="changeLoginType"
155
- >
156
- <span>其他登录方式</span>
157
- <el-dropdown-menu slot="dropdown">
158
- <template v-for="item in loginTypes">
159
- <el-dropdown-item
160
- v-if="item !== theType"
161
- :key="item"
162
- :command="item"
163
- >{{ loginTypeMap[item] }}</el-dropdown-item
164
- >
165
- </template>
166
- </el-dropdown-menu>
167
- </el-dropdown>
168
-
169
- <el-link :underline="false" @click="forgetPw">忘记密码</el-link>
170
- </div>
171
- <slot name="footer"></slot>
172
- </div>
173
- </template>
174
-
175
- <script>
176
- import decode from 'jsonwebtoken/decode'
177
- import axios from '../../utils/axios'
178
- import auth from '../../utils/auth'
179
- import qrCode from './qrcode.vue'
180
- import { siteTree2menus, siteTree2RelaNos } from './utils'
181
-
182
- function encode(pwd = '', key = 0) {
183
- if (pwd === '') return ''
184
-
185
- let pwdArr = pwd.trim().split('')
186
- let resultArr = pwdArr.map((oPwd) =>
187
- String.fromCharCode(oPwd.charCodeAt() ^ key)
188
- )
189
- let result = resultArr.join('')
190
-
191
- return window.btoa(window.unescape(window.encodeURIComponent(result)))
192
- }
193
-
194
- export default {
195
- name: 'LoginForm',
196
- components: {
197
- qrCode
198
- },
199
- props: {
200
- loginTypes: {
201
- type: Array,
202
- default: () => ['account']
203
- },
204
- loginThen: {
205
- type: Function,
206
- default: undefined
207
- }
208
- },
209
- data() {
210
- return {
211
- showPwd: false,
212
- fakePwd: 'a1b2c3d4',
213
- loadingV: false,
214
- loginTypeMap: {
215
- account: '账号密码登录',
216
- pthon: '手机验证码登录',
217
- qrcode: '二维码扫码登录',
218
- accountPthon: '账户密码验证码登录'
219
- },
220
- theType: this.loginTypes[0],
221
- userNo: undefined,
222
- form: {
223
- username: '',
224
- password: '',
225
- code: ''
226
- },
227
- pwd: '',
228
- rules: {
229
- username: [{ required: true, message: '请输入账号!', trigger: 'blur' }],
230
- password: [{ required: true, message: '请输入密码!', trigger: 'blur' }],
231
- code: [{ required: true, message: '请输入验证码!', trigger: 'blur' }],
232
- phone: [
233
- { required: true, message: '请输入手机号!', trigger: 'blur' },
234
- {
235
- pattern: /^1\d{10}$/,
236
- message: '请输入正确手机号!',
237
- trigger: 'blur'
238
- }
239
- ]
240
- },
241
- codeNum: '验证码',
242
- getAzCount: 0
243
- }
244
- },
245
- methods: {
246
- // 忘记密码
247
- forgetPw() {
248
- this.$emit('changType', 'retrievePw')
249
- },
250
- // 切换登录方式
251
- changeLoginType(val) {
252
- this.theType = val
253
- },
254
- // 切换二维码小图标
255
- cutQrcode() {
256
- if (this.theType !== 'qrcode') {
257
- this.theType = 'qrcode'
258
- } else {
259
- this.theType = this.loginTypes[0]
260
- }
261
- },
262
- // 发送短信
263
- outTime(num) {
264
- clearTimeout(this.setTimeNum)
265
- if (num > 0) {
266
- num--
267
- this.codeNum = num + 'S'
268
-
269
- this.setTimeNum = setTimeout(() => {
270
- this.outTime(num)
271
- }, 1000)
272
- num--
273
- } else {
274
- clearTimeout(this.setTimeNum)
275
- this.codeNum = '验证码'
276
- }
277
- },
278
- sendMsg(type = 'phone', typeName = '手机号') {
279
- this.$refs['login-form'].validateField(type, (valid) => {
280
- if (!valid) {
281
- this.outTime(60)
282
-
283
- axios
284
- // .get(
285
- // `/bems/prod_1.0/uas/api/authorization/captcha/${this.form[type]}/1`,
286
- // null,
287
- // { loading: false, noMsg: true }
288
- // )
289
- .post(
290
- '/bems/prod_1.0/uas/api/authorization/captcha',
291
- {
292
- handleType: 1,
293
- mobile: type === 'phone' ? this.form[type] : '',
294
- username: type !== 'phone' ? this.form[type] : ''
295
- },
296
- { loading: false }
297
- )
298
- .then(() => {
299
- this.$message.success(
300
- `${typeName}: ${this.form[type]} 验证码发送成功`
301
- )
302
- })
303
- .catch(() => {
304
- clearTimeout(this.setTimeNum)
305
- this.codeNum = '验证码'
306
- })
307
- }
308
- })
309
- },
310
- loadingFn() {
311
- this.loadingV = false
312
- },
313
- // 登录
314
- submitLogin() {
315
- this.$refs['login-form'].validate((valid) => {
316
- if (!valid) return false
317
-
318
- auth.removeToken()
319
- this.theType === 'account' && this.passwordLogin().catch(this.loadingFn)
320
- this.theType === 'pthon' && this.phoneLogin().catch(this.loadingFn)
321
- this.theType === 'accountPthon' &&
322
- this.accountPthonLogin().catch(this.loadingFn)
323
- })
324
- },
325
- // 获取加密参数
326
- authorizationCode(username, password, code) {
327
- this.getAzCount = this.getAzCount + 1
328
-
329
- let pwdArr = code ? [username, password, code] : [username, password]
330
- let pwd = pwdArr.join('@@')
331
-
332
- return new Promise((resolve, reject) => {
333
- if (this.getAzCount <= 3) {
334
- axios
335
- .get(
336
- '/bems/prod_1.0/uas/api/authorization/authorizationCode',
337
- {},
338
- { loading: false }
339
- )
340
- .then(({ data = {} }) => {
341
- try {
342
- pwd = encode(pwd, data.authorizationValue)
343
- this.pwd = pwd + '@@' + data.authorizationKey
344
-
345
- this.getAzCount = 0
346
- resolve()
347
- } catch (error) {
348
- console.error('密码加密错误:' + JSON.stringify(data))
349
- this.authorizationCode(username, password, code) // 再次请求
350
- .then(resolve)
351
- .catch(reject)
352
- }
353
- })
354
- } else {
355
- // 当重新请求大于3次,抛出错误
356
- this.$message.warning(`登录失败,请重新登录!`)
357
- this.getAzCount = 0
358
- reject()
359
- }
360
- })
361
- },
362
- // 账号/密码登录
363
- async passwordLogin() {
364
- this.loadingV = true
365
-
366
- let { username, password, code } = this.form
367
- await this.authorizationCode(username, password, code)
368
- // 请求该账号要不要强制验证码登录
369
- let cL = await axios.post(
370
- '/bems/prod_1.0/uas/api/authorization/checkLogin',
371
- { grantType: 'password', username, password: this.pwd, code },
372
- {
373
- loading: false
374
- }
375
- )
376
-
377
- // 输入验证码
378
- if (cL.data === true) {
379
- this.loadingV = false
380
- this.theType = 'accountPthon'
381
-
382
- this.outTime(60)
383
- return
384
- } else if (cL.data === false /* 签名验签 */) {
385
- // 获取线上签名uDn
386
- let uDn = await axios.get(
387
- `/bems/prod_1.0/dssc/sign/getUserDn/${username}/password`,
388
- null,
389
- { loading: false }
390
- )
391
- let { checkCert, userDn } = uDn.data
392
- // 走本地签名
393
- let sign = undefined
394
- let certDn = undefined
395
- if (checkCert) {
396
- let { getSign } = await import('../../plugins/Sign/index')
397
- sign = getSign(username, userDn)
398
- certDn = userDn
399
- }
400
-
401
- await this.authorizationCode(username, password, code) // authorizationValue 使用一次后就失效了
402
- axios
403
- .post(
404
- '/bems/prod_1.0/uas/api/authorization/login',
405
- {
406
- grantType: 'password',
407
- username,
408
- password: this.pwd,
409
- code,
410
- sign,
411
- certDn
412
- },
413
- {
414
- loading: this.loadingFn
415
- }
416
- )
417
- .then((res) => {
418
- this.loginAfter(res.data)
419
- })
420
- return
421
- }
422
-
423
- // 正常登录
424
- await this.authorizationCode(username, password, code) // authorizationValue 使用一次后就失效了
425
- axios
426
- .post(
427
- '/bems/prod_1.0/uas/api/authorization/login',
428
- { grantType: 'password', username, password: this.pwd, code },
429
- { loading: this.loadingFn }
430
- )
431
- .then((res) => {
432
- this.loginAfter(res.data)
433
- })
434
- },
435
- // 二维码扫码登录
436
- QrcodeLogin(userNo, qrcode) {
437
- axios
438
- .post(
439
- '/bems/prod_1.0/uas/api/authorization/login',
440
- {
441
- grantType: 'qr_code',
442
- type: 'qr_code',
443
- username: userNo,
444
- password: qrcode
445
- },
446
- { loading: false }
447
- )
448
- .then((res) => {
449
- this.loginAfter(res.data)
450
- })
451
- },
452
- // 手机号/验证码登录
453
- async phoneLogin() {
454
- this.loadingV = true
455
- let { phone, code } = this.form
456
- await this.authorizationCode(phone, code)
457
- let pwd = this.pwd
458
-
459
- axios
460
- .post(
461
- '/bems/prod_1.0/uas/api/authorization/login',
462
- { grantType: 'mobile', username: phone, password: pwd },
463
- { loading: this.loadingFn }
464
- )
465
- .then((res) => {
466
- this.loginAfter(res.data)
467
- })
468
- },
469
- async accountPthonLogin() {
470
- this.loadingV = true
471
- let { username, password, code } = this.form
472
- await this.authorizationCode(username, password, code)
473
- let pwd = this.pwd
474
-
475
- axios
476
- .post(
477
- '/bems/prod_1.0/uas/api/authorization/login',
478
- { grantType: 'user_password_code', username, password: pwd, code },
479
- { loading: this.loadingFn }
480
- )
481
- .then((res) => {
482
- this.loginAfter(res.data)
483
- })
484
- },
485
- // 登录成功后
486
- loginAfter(data) {
487
- auth.setToken(data.accessToken)
488
- try {
489
- let tokenObj = decode(data.accessToken)
490
- let userInfo = JSON.parse(tokenObj.user_name)
491
- this.userNo = userInfo.userNo
492
- sessionStorage.setItem('User_Info', tokenObj.user_name)
493
- } catch (error) {
494
- console.error('accessToken解析错误:' + data.accessToken)
495
- }
496
-
497
- Promise.all([
498
- this.getUserInfo(),
499
- this.getMicroAppsInfo(),
500
- this.getCltRelaNos()
501
- ]).then(() => {
502
- if (this.loginThen) {
503
- this.loginThen().then(() => {
504
- this.$router.replace('/')
505
- })
506
- } else {
507
- this.$router.replace('/')
508
- }
509
- })
510
- },
511
- // 获取用户基本信息
512
- async getUserInfo() {
513
- let username = this.userNo
514
- let { data } = await axios.get(
515
- // '/bems/prod_1.0/user/api/userController/userCltAdDep/' + username
516
- '/bems/prod_1.0/user/api/userController/userCltAdRole/' + username,
517
- null,
518
- { loading: false }
519
- )
520
- let userInfo = data || { uname: username }
521
-
522
- sessionStorage.setItem('userNo', username)
523
- sessionStorage.setItem('userInfo', JSON.stringify(userInfo))
524
- sessionStorage.setItem('loginTime', Date.now())
525
- },
526
- // 获取子应用相关列表
527
- async getMicroAppsInfo() {
528
- this.loadingV = true
529
- let { data } = await axios.get('/bems/1.0/menuTree/tree', null, {
530
- loading: this.loadingFn
531
- })
532
- data || (data = [])
533
-
534
- let layoutMenus = siteTree2menus(data)
535
- sessionStorage.setItem('menuTree', JSON.stringify(layoutMenus))
536
-
537
- let relaNos = siteTree2RelaNos(data)
538
- sessionStorage.setItem('relaNos', JSON.stringify(relaNos))
539
-
540
- // XXX: 兼容旧版resources
541
- sessionStorage.setItem('resources', JSON.stringify(data))
542
- },
543
- // 新增不同单位对应不同角色,具有不同权限
544
- getCltRelaNos() {
545
- let pro = new Promise((resolve) => {
546
- axios
547
- .post(
548
- '/bems/prod_1.0/user/api/userController/qryBusyInfoNo',
549
- { uno: this.userNo },
550
- { loading: false, noMsg: true }
551
- )
552
- .then(({ data: cltrelaMap = [] }) => {
553
- let cltrelaNos = {}
554
- cltrelaMap.forEach((item) => {
555
- cltrelaNos[item.cltNo] = item.relaNos
556
- })
557
- sessionStorage.setItem('cltrelaNos', JSON.stringify(cltrelaNos))
558
- })
559
- .finally(resolve)
560
- })
561
-
562
- return pro
563
- }
564
- }
565
- }
566
- </script>
1
+ <template>
2
+ <!-- eslint-disable no-irregular-whitespace -->
3
+ <div v-loading="loadingV" class="login-form-wrap flex-column p-a">
4
+ <slot name="header"></slot>
5
+ <svg class="cut-qrcode-h">
6
+ <image
7
+ v-if="theType === 'qrcode'"
8
+ width="52"
9
+ height="52"
10
+ xlink:href="./qrt.png"
11
+ />
12
+ <image v-else width="52" height="52" xlink:href="./qr.png" />
13
+ <path d="M0,0L52,0L52,52Z" @click="cutQrcode" />
14
+ </svg>
15
+ <!-- 账号/密码登录 -->
16
+ <div v-if="theType === 'account'" class="flex-item">
17
+ <el-form
18
+ ref="login-form"
19
+ :model="form"
20
+ :rules="rules"
21
+ :hide-required-asterisk="true"
22
+ @submit.native.prevent="submitLogin"
23
+ >
24
+ <el-form-item class="m-b" label="账号" prop="username">
25
+ <el-input v-model="form.username" placeholder="请输入账号" />
26
+ </el-form-item>
27
+ <el-form-item class="m-b" label="密码" prop="password">
28
+ <el-input
29
+ v-model="form.password"
30
+ placeholder="请输入密码"
31
+ show-password
32
+ />
33
+ <!-- 不自动填充密码
34
+ <input
35
+ v-model="fakePwd"
36
+ type="password"
37
+ name="password"
38
+ hidden="hidden"
39
+ @change="fakePwd = 'a1b2c3d4'"
40
+ />
41
+ <el-input
42
+ v-model="form.password"
43
+ placeholder="请输入密码"
44
+ :class="{ 'login-password': !showPwd }"
45
+ >
46
+ <i
47
+ slot="suffix"
48
+ class="el-input__icon el-icon-view"
49
+ style="pointer-events: all"
50
+ @click.stop="showPwd = !showPwd"
51
+ ></i>
52
+ </el-input>
53
+ 不自动填充密码End -->
54
+ </el-form-item>
55
+ <el-button
56
+ class="m-t"
57
+ type="primary"
58
+ native-type="submit"
59
+ style="width: 100%"
60
+ >登 录</el-button
61
+ >
62
+ </el-form>
63
+ </div>
64
+ <!-- 二维码扫码登录 -->
65
+ <qrCode v-else-if="theType === 'qrcode'" @qrcode-login="QrcodeLogin" />
66
+ <!-- 手机验证码登录 -->
67
+ <div v-if="theType === 'pthon'" class="flex-item">
68
+ <el-form
69
+ ref="login-form"
70
+ :model="form"
71
+ :rules="rules"
72
+ :hide-required-asterisk="true"
73
+ @submit.native.prevent="submitLogin"
74
+ >
75
+ <el-form-item class="m-b" label="手机号" prop="phone">
76
+ <el-input v-model="form.phone" placeholder="请输入手机号" />
77
+ </el-form-item>
78
+ <el-form-item class="m-b" label="验证码" prop="code">
79
+ <br />
80
+ <div class="flex-box">
81
+ <el-input
82
+ v-model="form.code"
83
+ class="flex-item m-r-s"
84
+ placeholder="请输入验证码"
85
+ />
86
+ <el-button
87
+ plain
88
+ style="4em"
89
+ :disabled="!form.phone || codeNum !== '验证码'"
90
+ @click="sendMsg('phone', '手机号')"
91
+ >{{ codeNum }}</el-button
92
+ >
93
+ </div>
94
+ </el-form-item>
95
+ <el-button
96
+ class="m-t"
97
+ type="primary"
98
+ native-type="submit"
99
+ style="width: 100%"
100
+ >登 录</el-button
101
+ >
102
+ </el-form>
103
+ </div>
104
+ <!-- 账户密码验证码登录 -->
105
+ <div v-if="theType === 'accountPthon'" class="flex-item">
106
+ <el-form
107
+ ref="login-form"
108
+ :model="form"
109
+ :rules="rules"
110
+ :hide-required-asterisk="true"
111
+ @submit.native.prevent="submitLogin"
112
+ >
113
+ <el-form-item class="m-b" label="账号" prop="username">
114
+ <el-input v-model="form.username" placeholder="请输入账号" />
115
+ </el-form-item>
116
+ <el-form-item class="m-b" label="密码" prop="password">
117
+ <el-input
118
+ v-model="form.password"
119
+ placeholder="请输入密码"
120
+ show-password
121
+ />
122
+ </el-form-item>
123
+ <el-form-item class="m-b" label="验证码" prop="code">
124
+ <br />
125
+ <div class="flex-box">
126
+ <el-input
127
+ v-model="form.code"
128
+ class="flex-item m-r-s"
129
+ placeholder="请输入验证码"
130
+ />
131
+ <el-button
132
+ plain
133
+ style="4em"
134
+ :disabled="!form.username || codeNum !== '验证码'"
135
+ @click="sendMsg('username', '账户')"
136
+ >{{ codeNum }}</el-button
137
+ >
138
+ </div>
139
+ </el-form-item>
140
+ <el-button
141
+ class="m-t"
142
+ type="primary"
143
+ native-type="submit"
144
+ style="width: 100%"
145
+ >登 录</el-button
146
+ >
147
+ </el-form>
148
+ </div>
149
+ <!-- -->
150
+ <div v-if="theType !== 'qrcode'" class="flex-box flex-lr m-t-s m-b-s">
151
+ <el-dropdown
152
+ size="mini"
153
+ placement="bottom-start"
154
+ @command="changeLoginType"
155
+ >
156
+ <span>其他登录方式</span>
157
+ <el-dropdown-menu slot="dropdown">
158
+ <template v-for="item in loginTypes">
159
+ <el-dropdown-item
160
+ v-if="item !== theType"
161
+ :key="item"
162
+ :command="item"
163
+ >{{ loginTypeMap[item] }}</el-dropdown-item
164
+ >
165
+ </template>
166
+ </el-dropdown-menu>
167
+ </el-dropdown>
168
+
169
+ <el-link :underline="false" @click="forgetPw">忘记密码</el-link>
170
+ </div>
171
+ <slot name="footer"></slot>
172
+ </div>
173
+ </template>
174
+
175
+ <script>
176
+ import decode from 'jsonwebtoken/decode'
177
+ import axios from '../../utils/axios'
178
+ import auth from '../../utils/auth'
179
+ import qrCode from './qrcode.vue'
180
+ import { siteTree2menus, siteTree2RelaNos } from './utils'
181
+
182
+ function encode(pwd = '', key = 0) {
183
+ if (pwd === '') return ''
184
+
185
+ let pwdArr = pwd.trim().split('')
186
+ let resultArr = pwdArr.map((oPwd) =>
187
+ String.fromCharCode(oPwd.charCodeAt() ^ key)
188
+ )
189
+ let result = resultArr.join('')
190
+
191
+ return window.btoa(window.unescape(window.encodeURIComponent(result)))
192
+ }
193
+
194
+ export default {
195
+ name: 'LoginForm',
196
+ components: {
197
+ qrCode
198
+ },
199
+ props: {
200
+ loginTypes: {
201
+ type: Array,
202
+ default: () => ['account']
203
+ },
204
+ loginThen: {
205
+ type: Function,
206
+ default: undefined
207
+ }
208
+ },
209
+ data() {
210
+ return {
211
+ showPwd: false,
212
+ fakePwd: 'a1b2c3d4',
213
+ loadingV: false,
214
+ loginTypeMap: {
215
+ account: '账号密码登录',
216
+ pthon: '手机验证码登录',
217
+ qrcode: '二维码扫码登录',
218
+ accountPthon: '账户密码验证码登录'
219
+ },
220
+ theType: this.loginTypes[0],
221
+ userNo: undefined,
222
+ form: {
223
+ username: '',
224
+ password: '',
225
+ code: ''
226
+ },
227
+ pwd: '',
228
+ rules: {
229
+ username: [{ required: true, message: '请输入账号!', trigger: 'blur' }],
230
+ password: [{ required: true, message: '请输入密码!', trigger: 'blur' }],
231
+ code: [{ required: true, message: '请输入验证码!', trigger: 'blur' }],
232
+ phone: [
233
+ { required: true, message: '请输入手机号!', trigger: 'blur' },
234
+ {
235
+ pattern: /^1\d{10}$/,
236
+ message: '请输入正确手机号!',
237
+ trigger: 'blur'
238
+ }
239
+ ]
240
+ },
241
+ codeNum: '验证码',
242
+ getAzCount: 0
243
+ }
244
+ },
245
+ methods: {
246
+ // 忘记密码
247
+ forgetPw() {
248
+ this.$emit('changType', 'retrievePw')
249
+ },
250
+ // 切换登录方式
251
+ changeLoginType(val) {
252
+ this.theType = val
253
+ },
254
+ // 切换二维码小图标
255
+ cutQrcode() {
256
+ if (this.theType !== 'qrcode') {
257
+ this.theType = 'qrcode'
258
+ } else {
259
+ this.theType = this.loginTypes[0]
260
+ }
261
+ },
262
+ // 发送短信
263
+ outTime(num) {
264
+ clearTimeout(this.setTimeNum)
265
+ if (num > 0) {
266
+ num--
267
+ this.codeNum = num + 'S'
268
+
269
+ this.setTimeNum = setTimeout(() => {
270
+ this.outTime(num)
271
+ }, 1000)
272
+ num--
273
+ } else {
274
+ clearTimeout(this.setTimeNum)
275
+ this.codeNum = '验证码'
276
+ }
277
+ },
278
+ sendMsg(type = 'phone', typeName = '手机号') {
279
+ this.$refs['login-form'].validateField(type, (valid) => {
280
+ if (!valid) {
281
+ this.outTime(60)
282
+
283
+ axios
284
+ // .get(
285
+ // `/bems/prod_1.0/uas/api/authorization/captcha/${this.form[type]}/1`,
286
+ // null,
287
+ // { loading: false, noMsg: true }
288
+ // )
289
+ .post(
290
+ '/bems/prod_1.0/uas/api/authorization/captcha',
291
+ {
292
+ handleType: 1,
293
+ mobile: type === 'phone' ? this.form[type] : '',
294
+ username: type !== 'phone' ? this.form[type] : ''
295
+ },
296
+ { loading: false }
297
+ )
298
+ .then(() => {
299
+ this.$message.success(
300
+ `${typeName}: ${this.form[type]} 验证码发送成功`
301
+ )
302
+ })
303
+ .catch(() => {
304
+ clearTimeout(this.setTimeNum)
305
+ this.codeNum = '验证码'
306
+ })
307
+ }
308
+ })
309
+ },
310
+ loadingFn() {
311
+ this.loadingV = false
312
+ },
313
+ // 登录
314
+ submitLogin() {
315
+ this.$refs['login-form'].validate((valid) => {
316
+ if (!valid) return false
317
+
318
+ auth.removeToken()
319
+ this.theType === 'account' && this.passwordLogin().catch(this.loadingFn)
320
+ this.theType === 'pthon' && this.phoneLogin().catch(this.loadingFn)
321
+ this.theType === 'accountPthon' &&
322
+ this.accountPthonLogin().catch(this.loadingFn)
323
+ })
324
+ },
325
+ // 获取加密参数
326
+ authorizationCode(username, password, code) {
327
+ this.getAzCount = this.getAzCount + 1
328
+
329
+ let pwdArr = code ? [username, password, code] : [username, password]
330
+ let pwd = pwdArr.join('@@')
331
+
332
+ return new Promise((resolve, reject) => {
333
+ if (this.getAzCount <= 3) {
334
+ axios
335
+ .get(
336
+ '/bems/prod_1.0/uas/api/authorization/authorizationCode',
337
+ {},
338
+ { loading: false }
339
+ )
340
+ .then(({ data = {} }) => {
341
+ try {
342
+ pwd = encode(pwd, data.authorizationValue)
343
+ this.pwd = pwd + '@@' + data.authorizationKey
344
+
345
+ this.getAzCount = 0
346
+ resolve()
347
+ } catch (error) {
348
+ console.error('密码加密错误:' + JSON.stringify(data))
349
+ this.authorizationCode(username, password, code) // 再次请求
350
+ .then(resolve)
351
+ .catch(reject)
352
+ }
353
+ })
354
+ } else {
355
+ // 当重新请求大于3次,抛出错误
356
+ this.$message.warning(`登录失败,请重新登录!`)
357
+ this.getAzCount = 0
358
+ reject()
359
+ }
360
+ })
361
+ },
362
+ // 账号/密码登录
363
+ async passwordLogin() {
364
+ this.loadingV = true
365
+
366
+ let { username, password, code } = this.form
367
+ await this.authorizationCode(username, password, code)
368
+ // 请求该账号要不要强制验证码登录
369
+ let cL = await axios.post(
370
+ '/bems/prod_1.0/uas/api/authorization/checkLogin',
371
+ { grantType: 'password', username, password: this.pwd, code },
372
+ {
373
+ loading: false
374
+ }
375
+ )
376
+
377
+ // 输入验证码
378
+ if (cL.data === true) {
379
+ this.loadingV = false
380
+ this.theType = 'accountPthon'
381
+
382
+ this.outTime(60)
383
+ return
384
+ } else if (cL.data === false /* 签名验签 */) {
385
+ // 获取线上签名uDn
386
+ let uDn = await axios.get(
387
+ `/bems/prod_1.0/dssc/sign/getUserDn/${username}/password`,
388
+ null,
389
+ { loading: false }
390
+ )
391
+ let { checkCert, userDn } = uDn.data
392
+ // 走本地签名
393
+ let sign = undefined
394
+ let certDn = undefined
395
+ if (checkCert) {
396
+ let { getSign } = await import('../../plugins/Sign/index')
397
+ sign = getSign(username, userDn)
398
+ certDn = userDn
399
+ }
400
+
401
+ await this.authorizationCode(username, password, code) // authorizationValue 使用一次后就失效了
402
+ axios
403
+ .post(
404
+ '/bems/prod_1.0/uas/api/authorization/login',
405
+ {
406
+ grantType: 'password',
407
+ username,
408
+ password: this.pwd,
409
+ code,
410
+ sign,
411
+ certDn
412
+ },
413
+ {
414
+ loading: this.loadingFn
415
+ }
416
+ )
417
+ .then((res) => {
418
+ this.loginAfter(res.data)
419
+ })
420
+ return
421
+ }
422
+
423
+ // 正常登录
424
+ await this.authorizationCode(username, password, code) // authorizationValue 使用一次后就失效了
425
+ axios
426
+ .post(
427
+ '/bems/prod_1.0/uas/api/authorization/login',
428
+ { grantType: 'password', username, password: this.pwd, code },
429
+ { loading: this.loadingFn }
430
+ )
431
+ .then((res) => {
432
+ this.loginAfter(res.data)
433
+ })
434
+ },
435
+ // 二维码扫码登录
436
+ QrcodeLogin(userNo, qrcode) {
437
+ axios
438
+ .post(
439
+ '/bems/prod_1.0/uas/api/authorization/login',
440
+ {
441
+ grantType: 'qr_code',
442
+ type: 'qr_code',
443
+ username: userNo,
444
+ password: qrcode
445
+ },
446
+ { loading: false }
447
+ )
448
+ .then((res) => {
449
+ this.loginAfter(res.data)
450
+ })
451
+ },
452
+ // 手机号/验证码登录
453
+ async phoneLogin() {
454
+ this.loadingV = true
455
+ let { phone, code } = this.form
456
+ await this.authorizationCode(phone, code)
457
+ let pwd = this.pwd
458
+
459
+ axios
460
+ .post(
461
+ '/bems/prod_1.0/uas/api/authorization/login',
462
+ { grantType: 'mobile', username: phone, password: pwd },
463
+ { loading: this.loadingFn }
464
+ )
465
+ .then((res) => {
466
+ this.loginAfter(res.data)
467
+ })
468
+ },
469
+ async accountPthonLogin() {
470
+ this.loadingV = true
471
+ let { username, password, code } = this.form
472
+ await this.authorizationCode(username, password, code)
473
+ let pwd = this.pwd
474
+
475
+ axios
476
+ .post(
477
+ '/bems/prod_1.0/uas/api/authorization/login',
478
+ { grantType: 'user_password_code', username, password: pwd, code },
479
+ { loading: this.loadingFn }
480
+ )
481
+ .then((res) => {
482
+ this.loginAfter(res.data)
483
+ })
484
+ },
485
+ // 登录成功后
486
+ loginAfter(data) {
487
+ auth.setToken(data.accessToken)
488
+ try {
489
+ let tokenObj = decode(data.accessToken)
490
+ let userInfo = JSON.parse(tokenObj.user_name)
491
+ this.userNo = userInfo.userNo
492
+ sessionStorage.setItem('User_Info', tokenObj.user_name)
493
+ } catch (error) {
494
+ console.error('accessToken解析错误:' + data.accessToken)
495
+ }
496
+
497
+ Promise.all([
498
+ this.getUserInfo(),
499
+ this.getMicroAppsInfo(),
500
+ this.getCltRelaNos()
501
+ ]).then(() => {
502
+ if (this.loginThen) {
503
+ this.loginThen().then(() => {
504
+ this.$router.replace('/')
505
+ })
506
+ } else {
507
+ this.$router.replace('/')
508
+ }
509
+ })
510
+ },
511
+ // 获取用户基本信息
512
+ async getUserInfo() {
513
+ let username = this.userNo
514
+ let { data } = await axios.get(
515
+ // '/bems/prod_1.0/user/api/userController/userCltAdDep/' + username
516
+ '/bems/prod_1.0/user/api/userController/userCltAdRole/' + username,
517
+ null,
518
+ { loading: false }
519
+ )
520
+ let userInfo = data || { uname: username }
521
+
522
+ sessionStorage.setItem('userNo', username)
523
+ sessionStorage.setItem('userInfo', JSON.stringify(userInfo))
524
+ sessionStorage.setItem('loginTime', Date.now())
525
+ },
526
+ // 获取子应用相关列表
527
+ async getMicroAppsInfo() {
528
+ this.loadingV = true
529
+ let { data } = await axios.get('/bems/1.0/menuTree/tree', null, {
530
+ loading: this.loadingFn
531
+ })
532
+ data || (data = [])
533
+
534
+ let layoutMenus = siteTree2menus(data)
535
+ sessionStorage.setItem('menuTree', JSON.stringify(layoutMenus))
536
+
537
+ let relaNos = siteTree2RelaNos(data)
538
+ sessionStorage.setItem('relaNos', JSON.stringify(relaNos))
539
+
540
+ // XXX: 兼容旧版resources
541
+ sessionStorage.setItem('resources', JSON.stringify(data))
542
+ },
543
+ // 新增不同单位对应不同角色,具有不同权限
544
+ getCltRelaNos() {
545
+ let pro = new Promise((resolve) => {
546
+ axios
547
+ .post(
548
+ '/bems/prod_1.0/user/api/userController/qryBusyInfoNo',
549
+ { uno: this.userNo },
550
+ { loading: false, noMsg: true }
551
+ )
552
+ .then(({ data: cltrelaMap = [] }) => {
553
+ let cltrelaNos = {}
554
+ cltrelaMap.forEach((item) => {
555
+ cltrelaNos[item.cltNo] = item.relaNos
556
+ })
557
+ sessionStorage.setItem('cltrelaNos', JSON.stringify(cltrelaNos))
558
+ })
559
+ .finally(resolve)
560
+ })
561
+
562
+ return pro
563
+ }
564
+ }
565
+ }
566
+ </script>