n20-common-lib 1.3.46 → 1.3.49

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 (402) hide show
  1. package/README.md +2 -2
  2. package/g6.js +2 -2
  3. package/nstc-g6/assets/svg/addFile.svg +31 -31
  4. package/nstc-g6/assets/svg/deleteFile.svg +27 -27
  5. package/nstc-g6/assets/svg/filter.svg +15 -15
  6. package/nstc-g6/assets/svg/filterActive.svg +16 -16
  7. package/nstc-g6/assets/svg/hourglass.svg +18 -18
  8. package/nstc-g6/assets/svg/newsearch.svg +18 -18
  9. package/nstc-g6/assets/svg/searchActive.svg +18 -18
  10. package/nstc-g6/components/Calendar/index.js +8 -8
  11. package/nstc-g6/components/Calendar/src/basic/month-table.vue +129 -129
  12. package/nstc-g6/components/Calendar/src/basic/year-table.vue +126 -126
  13. package/nstc-g6/components/Calendar/src/main.vue +442 -442
  14. package/nstc-g6/components/DialogForm/index.js +8 -8
  15. package/nstc-g6/components/DialogForm/src/demo/index.vue +56 -56
  16. package/nstc-g6/components/DialogForm/src/main.vue +189 -189
  17. package/nstc-g6/components/Form/A_DEMO/component/originalForm.vue +280 -280
  18. package/nstc-g6/components/Form/A_DEMO/config/config_3.js +1222 -1222
  19. package/nstc-g6/components/Form/A_DEMO/index.vue +803 -803
  20. package/nstc-g6/components/Form/AutocompleteCustom/index.vue +72 -72
  21. package/nstc-g6/components/Form/BusinessSpecific/InputMultiple.vue +191 -191
  22. package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +128 -128
  23. package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +233 -233
  24. package/nstc-g6/components/Form/BusinessSpecific/readme.md +7 -7
  25. package/nstc-g6/components/Form/CascaderCustom/index.vue +101 -101
  26. package/nstc-g6/components/Form/CheckboxCustom/index.vue +84 -84
  27. package/nstc-g6/components/Form/Component.vue +661 -661
  28. package/nstc-g6/components/Form/ComponentSecond.vue +650 -650
  29. package/nstc-g6/components/Form/DatepickerCustom/index.vue +130 -130
  30. package/nstc-g6/components/Form/InputAndDialog/index.js +15 -15
  31. package/nstc-g6/components/Form/InputAndDialog/src/main.vue +394 -394
  32. package/nstc-g6/components/Form/InputCustom/demo/index.vue +65 -65
  33. package/nstc-g6/components/Form/InputCustom/index.vue +307 -307
  34. package/nstc-g6/components/Form/IntervalinputCustom/demo/index.vue +31 -31
  35. package/nstc-g6/components/Form/IntervalinputCustom/index.vue +118 -118
  36. package/nstc-g6/components/Form/Item.vue +330 -330
  37. package/nstc-g6/components/Form/ItemSecond.vue +269 -269
  38. package/nstc-g6/components/Form/List.vue +146 -146
  39. package/nstc-g6/components/Form/ListSecond.vue +130 -130
  40. package/nstc-g6/components/Form/RadioCustom/index.vue +73 -73
  41. package/nstc-g6/components/Form/SelectAccount/index.js +15 -15
  42. package/nstc-g6/components/Form/SelectAccount/src/demo/index.vue +57 -57
  43. package/nstc-g6/components/Form/SelectAccount/src/main.vue +282 -282
  44. package/nstc-g6/components/Form/SelectAndDialog/index.js +15 -15
  45. package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +383 -383
  46. package/nstc-g6/components/Form/SelectCashFlow/index.js +15 -15
  47. package/nstc-g6/components/Form/SelectCashFlow/src/demo/index.vue +41 -41
  48. package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +125 -125
  49. package/nstc-g6/components/Form/SelectCustom/demo/index.vue +82 -82
  50. package/nstc-g6/components/Form/SelectCustom/index.vue +488 -488
  51. package/nstc-g6/components/Form/SelectSubject/index.js +15 -15
  52. package/nstc-g6/components/Form/SelectSubject/src/demo/index.vue +84 -84
  53. package/nstc-g6/components/Form/SelectSubject/src/main.vue +181 -181
  54. package/nstc-g6/components/Form/SelectindialogCustom/demo/index.vue +188 -188
  55. package/nstc-g6/components/Form/SelectindialogCustom/index.vue +650 -650
  56. package/nstc-g6/components/Form/SelectindialogCustom/install.js +6 -6
  57. package/nstc-g6/components/Form/TableRadioCustom/demo/index.vue +53 -53
  58. package/nstc-g6/components/Form/TableRadioCustom/index.vue +183 -183
  59. package/nstc-g6/components/Form/TextCustom/index.vue +38 -38
  60. package/nstc-g6/components/Form/UploadCustom/demo/index.vue +31 -31
  61. package/nstc-g6/components/Form/UploadCustom/index.vue +506 -506
  62. package/nstc-g6/components/Form/configs.js +191 -191
  63. package/nstc-g6/components/Form/configsSecond.js +161 -161
  64. package/nstc-g6/components/Form/index.js +8 -8
  65. package/nstc-g6/components/Form/index.scss +29 -29
  66. package/nstc-g6/components/Form/payeePersonSelect/index.js +15 -15
  67. package/nstc-g6/components/Form/payeePersonSelect/src/demo/index.vue +163 -163
  68. package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +184 -184
  69. package/nstc-g6/components/Form/readme.txt +4 -4
  70. package/nstc-g6/components/FormGroup/index.js +8 -8
  71. package/nstc-g6/components/FormGroup/src/demo/config.js +23 -23
  72. package/nstc-g6/components/FormGroup/src/demo/index.vue +85 -85
  73. package/nstc-g6/components/FormGroup/src/main.vue +639 -639
  74. package/nstc-g6/components/FormGroup/src/validate.js +22 -22
  75. package/nstc-g6/components/InputTag/InputTag.vue +269 -269
  76. package/nstc-g6/components/NstcApprovel/NstcApprovel.vue +24 -24
  77. package/nstc-g6/components/NstcBackToTop/NstcBackToTop.vue +150 -150
  78. package/nstc-g6/components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +123 -123
  79. package/nstc-g6/components/NstcCharts/NstcCharts.vue +162 -162
  80. package/nstc-g6/components/NstcCharts/define.js +74 -74
  81. package/nstc-g6/components/NstcCharts/mixins/resize.js +56 -56
  82. package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +152 -152
  83. package/nstc-g6/components/NstcConfirm/index.js +24 -24
  84. package/nstc-g6/components/NstcDialog/NstcDialog.vue +184 -184
  85. package/nstc-g6/components/NstcDialogForm/NstcDialogForm.vue +175 -175
  86. package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +280 -280
  87. package/nstc-g6/components/NstcDropdown/NstcDropdown.vue +52 -52
  88. package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +396 -396
  89. package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +711 -711
  90. package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +475 -475
  91. package/nstc-g6/components/NstcExcelExport/NstcExcelExport.vue +145 -145
  92. package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +1074 -1074
  93. package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +1166 -1166
  94. package/nstc-g6/components/NstcExpandCollapse/NstcExpandCollapse.vue +130 -130
  95. package/nstc-g6/components/NstcExpandCollapse/index.scss +77 -77
  96. package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +989 -989
  97. package/nstc-g6/components/NstcFileUpload/img/addFile.svg +31 -31
  98. package/nstc-g6/components/NstcFileUpload/img/delete.svg +23 -23
  99. package/nstc-g6/components/NstcFileUpload/img/deleteFile.svg +27 -27
  100. package/nstc-g6/components/NstcFileUpload/img/download.svg +23 -23
  101. package/nstc-g6/components/NstcFileUpload/img/inputUpload.svg +29 -29
  102. package/nstc-g6/components/NstcFileUpload/img/look-diabled.svg +23 -23
  103. package/nstc-g6/components/NstcFileUpload/img/look.svg +23 -23
  104. package/nstc-g6/components/NstcForm/A_DEMO/component/originalForm.vue +280 -280
  105. package/nstc-g6/components/NstcForm/A_DEMO/config/config_3.js +1222 -1222
  106. package/nstc-g6/components/NstcForm/A_DEMO/index.vue +796 -796
  107. package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +68 -68
  108. package/nstc-g6/components/NstcForm/BusinessSpecific/InputMultiple.vue +189 -189
  109. package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +128 -128
  110. package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +233 -233
  111. package/nstc-g6/components/NstcForm/BusinessSpecific/readme.md +7 -7
  112. package/nstc-g6/components/NstcForm/CascaderCustom/index.vue +101 -101
  113. package/nstc-g6/components/NstcForm/CheckboxCustom/index.vue +84 -84
  114. package/nstc-g6/components/NstcForm/Component.vue +684 -684
  115. package/nstc-g6/components/NstcForm/ComponentSecond.vue +650 -650
  116. package/nstc-g6/components/NstcForm/DatepickerCustom/index.vue +130 -130
  117. package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +389 -389
  118. package/nstc-g6/components/NstcForm/InputCustom/index.vue +313 -313
  119. package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +111 -111
  120. package/nstc-g6/components/NstcForm/Item.vue +327 -327
  121. package/nstc-g6/components/NstcForm/ItemSecond.vue +269 -269
  122. package/nstc-g6/components/NstcForm/List.vue +146 -146
  123. package/nstc-g6/components/NstcForm/ListSecond.vue +130 -130
  124. package/nstc-g6/components/NstcForm/RadioCustom/index.vue +73 -73
  125. package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +334 -334
  126. package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +377 -377
  127. package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +122 -122
  128. package/nstc-g6/components/NstcForm/SelectCustom/index.vue +460 -460
  129. package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +184 -184
  130. package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +648 -648
  131. package/nstc-g6/components/NstcForm/TableRadioCustom/index.vue +183 -183
  132. package/nstc-g6/components/NstcForm/TextCustom/index.vue +38 -38
  133. package/nstc-g6/components/NstcForm/UploadCustom/index.vue +500 -500
  134. package/nstc-g6/components/NstcForm/configs.js +191 -191
  135. package/nstc-g6/components/NstcForm/configsSecond.js +161 -161
  136. package/nstc-g6/components/NstcForm/index.js +8 -8
  137. package/nstc-g6/components/NstcForm/index.scss +29 -29
  138. package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +187 -187
  139. package/nstc-g6/components/NstcForm/readme.txt +4 -4
  140. package/nstc-g6/components/NstcPagination/NstcPagination.vue +428 -428
  141. package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +70 -70
  142. package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +730 -730
  143. package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +677 -677
  144. package/nstc-g6/components/NstcSticky/NstcSticky.vue +97 -97
  145. package/nstc-g6/components/NstcSvgIcon/NstcSvgIcon.vue +72 -72
  146. package/nstc-g6/components/NstcTab/NstcTab.vue +80 -80
  147. package/nstc-g6/components/NstcTabWithBadge/NstcTabWithBadge.vue +45 -45
  148. package/nstc-g6/components/NstcTabWithBadge/index.scss +31 -31
  149. package/nstc-g6/components/NstcTable/ElTableColumnCustom/index.vue +292 -292
  150. package/nstc-g6/components/NstcTable/NstcTable.vue +460 -460
  151. package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +802 -802
  152. package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +186 -186
  153. package/nstc-g6/components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +328 -328
  154. package/nstc-g6/components/NstcUploadExcel/NstcUploadExcel.vue +145 -145
  155. package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +180 -180
  156. package/nstc-g6/components/Search/NstcSearch.vue +583 -583
  157. package/nstc-g6/components/Search/src/demo/index copy.vue +101 -101
  158. package/nstc-g6/components/Search/src/demo/index.vue +103 -103
  159. package/nstc-g6/components/Search/src/main copy.vue +607 -607
  160. package/nstc-g6/components/approvelTwo/main.vue +220 -220
  161. package/nstc-g6/components/approvelTwo/progress.vue +154 -154
  162. package/nstc-g6/directives/VCopy/index.js +59 -59
  163. package/nstc-g6/directives/VNstcNumber/index.js +14 -14
  164. package/nstc-g6/directives/VNstcNumber/temp.js +446 -446
  165. package/nstc-g6/index.js +193 -193
  166. package/nstc-g6/utils/auth.js +2 -2
  167. package/nstc-g6/utils/axios.js +2 -2
  168. package/nstc-g6/utils/dateAndValidator.js +649 -649
  169. package/nstc-g6/utils/debounce.js +40 -40
  170. package/nstc-g6/utils/mapper_aims.js +809 -809
  171. package/nstc-g6/utils/parseTime.js +48 -48
  172. package/nstc-g6/utils/validate/index.js +6 -6
  173. package/nstc-g6/utils/vendor/Export2Excel.js +229 -229
  174. package/nstc-g6/utils/vendor/Export2Zip.js +24 -24
  175. package/nstc-g6/utils/vue-bus.js +4 -4
  176. package/package.json +103 -103
  177. package/src/_qiankun/index.js +113 -113
  178. package/src/_qiankun/postMessage.js +24 -24
  179. package/src/assets/css/_coreLib.scss +43 -43
  180. package/src/assets/css/alert.scss +28 -28
  181. package/src/assets/css/cl-anchor.scss +70 -70
  182. package/src/assets/css/cl-approve-card.scss +68 -68
  183. package/src/assets/css/cl-dialog.scss +113 -113
  184. package/src/assets/css/cl-drag-list.scss +24 -24
  185. package/src/assets/css/cl-empty.scss +10 -10
  186. package/src/assets/css/cl-expandable-pane.scss +37 -37
  187. package/src/assets/css/cl-expandable.scss +27 -27
  188. package/src/assets/css/cl-file-upload-table.scss +31 -31
  189. package/src/assets/css/cl-filter.scss +4 -4
  190. package/src/assets/css/cl-flow-step.scss +185 -185
  191. package/src/assets/css/cl-footer-box.scss +10 -10
  192. package/src/assets/css/cl-form-item.scss +729 -729
  193. package/src/assets/css/cl-general-card.scss +11 -11
  194. package/src/assets/css/cl-layout-aside.scss +92 -92
  195. package/src/assets/css/cl-layout-content.scss +16 -16
  196. package/src/assets/css/cl-layout-header.scss +89 -89
  197. package/src/assets/css/cl-layout-tabs.scss +87 -87
  198. package/src/assets/css/cl-layout.scss +97 -97
  199. package/src/assets/css/cl-login-temporary.scss +37 -37
  200. package/src/assets/css/cl-message.scss +159 -159
  201. package/src/assets/css/cl-more-tab.scss +98 -98
  202. package/src/assets/css/cl-nav-menu.scss +5 -5
  203. package/src/assets/css/cl-pagination.scss +130 -130
  204. package/src/assets/css/cl-secondary-tab.scss +53 -53
  205. package/src/assets/css/cl-showcolumn.scss +40 -40
  206. package/src/assets/css/cl-sifting.scss +51 -51
  207. package/src/assets/css/cl-statis.scss +54 -54
  208. package/src/assets/css/cl-step.scss +73 -73
  209. package/src/assets/css/cl-suspend.scss +19 -19
  210. package/src/assets/css/cl-tertiary-tab.scss +56 -56
  211. package/src/assets/css/cl-upload.scss +52 -52
  212. package/src/assets/css/cl-worn-pagination.scss +50 -50
  213. package/src/assets/css/el-button.scss +186 -186
  214. package/src/assets/css/el-table.scss +88 -88
  215. package/src/assets/css/element-variables.scss +1061 -1061
  216. package/src/assets/css/element.dev.scss +22 -22
  217. package/src/assets/css/font-icon.scss +26 -26
  218. package/src/assets/css/index.dev.scss +4 -4
  219. package/src/assets/css/index.scss +11 -11
  220. package/src/assets/css/normalize.scss +845 -845
  221. package/src/assets/css/plain-text.scss +36 -36
  222. package/src/assets/css/rootvar.scss +143 -143
  223. package/src/assets/css/select.scss +25 -25
  224. package/src/assets/css/title-pop.scss +23 -23
  225. package/src/assets/getJsonc.js +53 -53
  226. package/src/assets/iconFont/demo.css +539 -539
  227. package/src/assets/iconFont/demo_index.html +1614 -1614
  228. package/src/assets/iconFont/iconfont.css +263 -263
  229. package/src/assets/iconFont/iconfont.json +443 -443
  230. package/src/assets/realUrl.js +13 -13
  231. package/src/components/Anchor/AnchorItem.vue +30 -30
  232. package/src/components/Anchor/index.vue +208 -208
  233. package/src/components/ApprovalButtons/index.vue +240 -240
  234. package/src/components/ApprovalCard/index.vue +132 -132
  235. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  236. package/src/components/ApprovalRecord/approvalImgPro.vue +424 -424
  237. package/src/components/ApprovalRecord/flowDialog.vue +47 -47
  238. package/src/components/ApprovalRecord/index.vue +63 -63
  239. package/src/components/Button/button-group.vue +148 -148
  240. package/src/components/Button/icon-group-button.vue +63 -63
  241. package/src/components/Button/index.vue +56 -56
  242. package/src/components/CascaderArea/index.vue +103 -103
  243. package/src/components/ChildRange/index.vue +169 -169
  244. package/src/components/ChildRange/style.scss +34 -34
  245. package/src/components/ContentLoading/index.vue +41 -41
  246. package/src/components/ContentNull/index.vue +19 -19
  247. package/src/components/DatePicker/index.vue +33 -33
  248. package/src/components/DatePicker/por.vue +171 -171
  249. package/src/components/Descriptions/index.vue +42 -42
  250. package/src/components/Dialog/index.vue +26 -26
  251. package/src/components/Dialog/indexO.vue +116 -116
  252. package/src/components/DragList/index.vue +79 -79
  253. package/src/components/ECharts/define.js +74 -74
  254. package/src/components/ECharts/index.vue +170 -170
  255. package/src/components/ECharts/mixins/resize.js +23 -23
  256. package/src/components/Empty/img/400.svg +101 -101
  257. package/src/components/Empty/img/401.svg +101 -101
  258. package/src/components/Empty/img/403.svg +101 -101
  259. package/src/components/Empty/img/405.svg +101 -101
  260. package/src/components/Empty/img/901.svg +95 -95
  261. package/src/components/Empty/img/902.svg +95 -95
  262. package/src/components/Empty/img/903.svg +95 -95
  263. package/src/components/Empty/img/904.svg +95 -95
  264. package/src/components/Empty/img/905.svg +95 -95
  265. package/src/components/Empty/img/906.svg +95 -95
  266. package/src/components/Empty/img/907.svg +95 -95
  267. package/src/components/Empty/img/abnormal.svg +108 -108
  268. package/src/components/Empty/img/dispose.svg +71 -71
  269. package/src/components/Empty/img/empty.svg +57 -57
  270. package/src/components/Empty/img/general.svg +58 -58
  271. package/src/components/Empty/img/lock.svg +57 -57
  272. package/src/components/Empty/img/network.svg +59 -59
  273. package/src/components/Empty/img/relevant.svg +68 -68
  274. package/src/components/Empty/img/search.svg +72 -72
  275. package/src/components/Empty/index.vue +147 -147
  276. package/src/components/EventBubble/demo/a.vue +29 -29
  277. package/src/components/EventBubble/demo/b.vue +12 -12
  278. package/src/components/EventBubble/demo/c.vue +18 -18
  279. package/src/components/EventBubble/index.vue +57 -57
  280. package/src/components/Expandable/index.vue +49 -49
  281. package/src/components/Expandable/main.vue +64 -64
  282. package/src/components/FileExportAsync/index.vue +191 -191
  283. package/src/components/FileImport/index.vue +108 -108
  284. package/src/components/FileUploadTable/index.vue +583 -583
  285. package/src/components/Filters/form-item-input.vue +185 -185
  286. package/src/components/Filters/index.vue +216 -216
  287. package/src/components/Filters/indexO.vue +106 -106
  288. package/src/components/FlowStep/index.vue +92 -92
  289. package/src/components/FooterBox/index.vue +21 -21
  290. package/src/components/GeneralCard/index.vue +15 -15
  291. package/src/components/InputNumber/index.vue +184 -184
  292. package/src/components/InputNumber/numberRange.vue +62 -62
  293. package/src/components/InputSearch/index.vue +79 -75
  294. package/src/components/Layout/AsideNav/index.vue +120 -120
  295. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  296. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  297. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  298. package/src/components/Layout/HeaderWrap/index.vue +412 -412
  299. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  300. package/src/components/Layout/SubContent/index.vue +127 -127
  301. package/src/components/Layout/TabsNav/index.vue +169 -169
  302. package/src/components/Layout/index.vue +518 -518
  303. package/src/components/Layout/utils.js +12 -12
  304. package/src/components/LoginTemporary/form.vue +581 -581
  305. package/src/components/LoginTemporary/index.vue +198 -198
  306. package/src/components/LoginTemporary/qrcode.vue +92 -92
  307. package/src/components/LoginTemporary/retrievePw.vue +375 -375
  308. package/src/components/LoginTemporary/utils.js +73 -73
  309. package/src/components/MicroApp/index.js +67 -67
  310. package/src/components/MicroFrame/index.vue +95 -95
  311. package/src/components/MoreTab/index.vue +229 -229
  312. package/src/components/NavMenu/index.vue +60 -60
  313. package/src/components/PageHeader/index.vue +39 -39
  314. package/src/components/PageHeader/style.scss +44 -44
  315. package/src/components/PageLayout/page.vue +15 -15
  316. package/src/components/Pagination/index.vue +165 -165
  317. package/src/components/SecondaryTab/index.vue +57 -57
  318. package/src/components/SelectLazy/index.vue +75 -75
  319. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  320. package/src/components/SelectTree/index.vue +206 -206
  321. package/src/components/ShowColumn/index.vue +252 -252
  322. package/src/components/Sifting/index.vue +98 -98
  323. package/src/components/Stamp/index.vue +75 -75
  324. package/src/components/Statis/index.vue +113 -113
  325. package/src/components/Statis/statisItem.vue +65 -65
  326. package/src/components/Statis/statisPopover.vue +63 -63
  327. package/src/components/Step/index.vue +37 -37
  328. package/src/components/Suspend/index.vue +72 -72
  329. package/src/components/Table/filters.js +60 -60
  330. package/src/components/Table/index.vue +89 -89
  331. package/src/components/Table/indexO.vue +149 -149
  332. package/src/components/TableOperateColumn/OperateBtns.vue +86 -86
  333. package/src/components/TableOperateColumn/index.vue +26 -26
  334. package/src/components/Task/index.vue +26 -26
  335. package/src/components/TertiaryTab/index.vue +62 -62
  336. package/src/components/TimePicker/index.vue +28 -28
  337. package/src/components/Upload/index.vue +280 -280
  338. package/src/components/Upload/uploadMsg.vue +114 -114
  339. package/src/components/WornPagination/index.vue +73 -73
  340. package/src/directives/VClickOutside/index.js +27 -27
  341. package/src/directives/VHas/index.js +58 -58
  342. package/src/directives/VMove/index.js +42 -42
  343. package/src/directives/VRuleKey/index.js +201 -201
  344. package/src/directives/VTitle/index.js +109 -109
  345. package/src/index.js +265 -265
  346. package/src/plugins/CompatibleOld/index.js +11 -11
  347. package/src/plugins/Print/index.js +4 -4
  348. package/src/plugins/Print/print-js/.babelrc +12 -12
  349. package/src/plugins/Print/print-js/LICENSE +21 -21
  350. package/src/plugins/Print/print-js/README.md +98 -98
  351. package/src/plugins/Print/print-js/dist/print.css +96 -96
  352. package/src/plugins/Print/print-js/dist/print.js +990 -990
  353. package/src/plugins/Print/print-js/package.json +60 -60
  354. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  355. package/src/plugins/Print/print-js/src/index.js +10 -10
  356. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  357. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  358. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  359. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  360. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  361. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  362. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  363. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  364. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  365. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  366. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  367. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  368. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  369. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  370. package/src/plugins/Print/print.js +2 -2
  371. package/src/plugins/Print/print.scss +1 -1
  372. package/src/plugins/SetMenuTree/index.vue +41 -41
  373. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  374. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  375. package/src/plugins/SetMenuTree/utils.js +74 -74
  376. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  377. package/src/plugins/Sign/bjca/XTXSAB.js +2395 -2395
  378. package/src/plugins/Sign/bjca/index.js +129 -129
  379. package/src/plugins/Sign/index.js +28 -28
  380. package/src/plugins/Sign/sign.js +108 -64
  381. package/src/plugins/setTabsForSub.js +2 -2
  382. package/src/utils/auth.js +56 -56
  383. package/src/utils/axios.js +205 -205
  384. package/src/utils/downloadBlob.js +19 -19
  385. package/src/utils/forEachs.js +16 -16
  386. package/src/utils/getScrollContainer.js +43 -43
  387. package/src/utils/handleTab.js +109 -109
  388. package/src/utils/i18n/cn2hk.json +1270 -1270
  389. package/src/utils/i18n/index.js +50 -50
  390. package/src/utils/importGlobal.js +16 -16
  391. package/src/utils/list2tree.js +36 -36
  392. package/src/utils/msgboxPor.js +26 -26
  393. package/src/utils/print.js +161 -161
  394. package/src/utils/relaNo.js +72 -72
  395. package/src/utils/repairElementUI.js +169 -169
  396. package/src/utils/tableheaderFilterpanel.vue +248 -248
  397. package/src/utils/theme.config.js +22 -22
  398. package/src/utils/theme.js +31 -31
  399. package/src/utils/toExcel.js +103 -103
  400. package/src/utils/urlToGo.js +82 -82
  401. package/src/utils/xls2json.js +44 -44
  402. package/src/utils/xlsx2json.js +28 -28
@@ -1,1074 +1,1074 @@
1
- <!--
2
- 功能: excel导入功能
3
- 作者: nstc
4
- 创建时间: 2021-02-05
5
- -->
6
- <template>
7
- <div>
8
- <NstcDialog
9
- v-model="_value"
10
- :title="title"
11
- width="1200px"
12
- append-to-body
13
- v-bind="$attrs"
14
- :footer-handlers="footerHandlers"
15
- class="nstc-dialog-style"
16
- v-on="$listeners"
17
- @cancel="resetAction"
18
- >
19
- <div class="nstc-common-excel-import">
20
- <div class="nstc-common-excel-import-tips-box">
21
- <el-row :gutter="10">
22
- <el-col style="width: 75px; text-align: right">
23
- <span class="tips-box-text">导入说明:</span>
24
- </el-col>
25
- <el-col :span="18">
26
- <div v-for="(item, index) in tips" :key="index" class="tips-item">
27
- <span v-if="tips.length !== 1">{{ index + 1 }}. </span>
28
- <span>{{ item.text }}</span>
29
- </div>
30
- </el-col>
31
- </el-row>
32
- </div>
33
- <slot></slot>
34
-
35
- <el-form :label-width="labelWidth">
36
- <el-form-item label="上传">
37
- <div class="excel-unload-input" @click="uploadChooseFile">
38
- <div
39
- :class="{
40
- placeholder: true,
41
- 'placeholder-has-file': placeholderHasFile
42
- }"
43
- >
44
- {{ placeholderText || '请选择' }}
45
- </div>
46
- <img class="excel-unload-input-img" :src="uploadImg" alt="" />
47
- </div>
48
- <el-button
49
- type="primary"
50
- class="nstc-g6-common-btn-1 nstc-g6-common-btn-size-s"
51
- :disabled="
52
- excelData.tableData.length === 0 || confirmDisabledFlag
53
- "
54
- @click="handleConfirmImportExcel"
55
- >导入</el-button
56
- >
57
- <el-button
58
- v-if="isNeedTemplate"
59
- type="text"
60
- style="margin-left: 20px"
61
- :disabled="!templateUrl"
62
- @click="downloadTemplate"
63
- >导入模板下载</el-button
64
- >
65
- </el-form-item>
66
- </el-form>
67
-
68
- <div class="excel-upload-result-box">
69
- <div class="excel-upload-result-box-head">结果统计</div>
70
- <div class="excel-upload-result-box-content">
71
- <span>结果统计 {{ validateResult.totalNum }} 条记录, </span>
72
- <span>其中有效数据记录{{ validateResult.successNum }} 条, </span>
73
- <span
74
- >其中无效数据记录
75
- <span class="nstc-import-error-num">{{
76
- validateResult.errorList.length
77
- }}</span>
78
- 条。</span
79
- >
80
- </div>
81
- </div>
82
- <NstcUploadExcel
83
- v-if="value"
84
- v-show="percentage !== 100"
85
- ref="nstc-unload-excel-box"
86
- class="upload-excel-box"
87
- :before-upload="beforeUpload"
88
- :on-success="handleSuccess"
89
- />
90
-
91
- <div v-show="hasErrorFlag" class="fail-excel-import-box">
92
- <div class="fail-excel-import-box-title">无效数据情况统计</div>
93
- <el-table
94
- :data="errorListTemp"
95
- :height="tableHeight"
96
- style="width: 100%; height: 500px"
97
- >
98
- <el-table-column
99
- v-for="column in columnsListTemp"
100
- :key="column.prop"
101
- :prop="column.prop"
102
- :label="column.label"
103
- :align="column.align"
104
- :min-width="column.width"
105
- >
106
- <template slot-scope="scope">
107
- <span v-html="scope.row[column.prop]"></span>
108
- </template>
109
- </el-table-column>
110
- </el-table>
111
- </div>
112
-
113
- <div class="end-tips">上述数据输入有误,请修改导入文件中相关信息!</div>
114
- </div>
115
- <slot name="footer"></slot>
116
- </NstcDialog>
117
- </div>
118
- </template>
119
-
120
- <script>
121
- import NstcUploadExcel from '../NstcUploadExcel/NstcUploadExcel'
122
- import NstcDialog from '../NstcDialog/NstcDialog'
123
- import uploadImg from './img/upload@2x.png'
124
- import axios from '../../utils/axios'
125
- export default {
126
- name: 'NstcExcelImport',
127
- components: {
128
- NstcUploadExcel,
129
- NstcDialog
130
- // NstcTable
131
- },
132
- props: {
133
- tableHeight: {
134
- default: '500px'
135
- },
136
- value: {
137
- type: Boolean,
138
- default: false
139
- },
140
- tips: {
141
- type: Array,
142
- default: () => {
143
- return []
144
- }
145
- },
146
- labelWidth: {
147
- type: String,
148
- default: ''
149
- },
150
- templateUrl: {
151
- type: String,
152
- default: ''
153
- },
154
- title: {
155
- type: String,
156
- default: function () {
157
- return '导入'
158
- }
159
- },
160
- reset: {
161
- type: Boolean,
162
- default: false
163
- },
164
- footerHandlers: {
165
- type: Object,
166
- default: function () {
167
- return {
168
- // cancel: {
169
- // text: '取消'
170
- // },
171
- // confirm: {
172
- // text: '导入'
173
- // }
174
- }
175
- }
176
- },
177
- callback: {
178
- type: Function,
179
- default: () => {}
180
- },
181
- // mapper: {
182
- // type: Object,
183
- // default: () => {}
184
- // },
185
- handleConfirm: {
186
- type: Function,
187
- default: () => {}
188
- },
189
- downConfig: {
190
- type: Object,
191
- default() {
192
- return {
193
- isFrontDown: true,
194
- fileName: '下载.xlsx'
195
- }
196
- }
197
- },
198
-
199
- // 校验结果
200
- validateResult: {
201
- type: Object,
202
- default: () => {
203
- return {
204
- totalNum: 0,
205
- successNum: 0,
206
- columnsList: [],
207
- errorList: []
208
- }
209
- }
210
- },
211
-
212
- // 下载模板按钮是否显示
213
- isNeedTemplate: {
214
- type: Boolean,
215
- default: true
216
- }
217
- },
218
- data() {
219
- return {
220
- uploadImg,
221
- excelData: {
222
- // tableHeader: [],
223
- tableData: []
224
- },
225
- placeholderHasFile: false,
226
- progressStatus: '',
227
- percentage: 0,
228
- percentageFlag: false,
229
- fileName: '',
230
- drawerFlag: false,
231
- dialogVisible: false,
232
- tipsText: '导入说明',
233
- totalNum: 0,
234
- successNum: 0,
235
- failNum: 0,
236
- placeholderText: '',
237
- columnsFailResult: [],
238
- tableDataFailResult: [],
239
- columnsListTemp: [],
240
- errorListTemp: [],
241
- successFlag: false,
242
- statisticsFlag: false,
243
- confirmDisabledFlag: true,
244
- isShow: false
245
- }
246
- },
247
- computed: {
248
- _value: {
249
- get() {
250
- return this.value
251
- },
252
- set(val) {
253
- this.$emit('input', val)
254
- }
255
- },
256
- hasErrorFlag() {
257
- return (
258
- this.validateResult.errorList &&
259
- this.validateResult.errorList.length > 0
260
- )
261
- }
262
- },
263
- watch: {
264
- value: {
265
- handler(newValue) {
266
- if (!newValue) {
267
- this.resetAction()
268
- }
269
- }
270
- },
271
- validateResult: {
272
- handler(newValue, oldValue) {
273
- console.log('值更新了', newValue, oldValue)
274
- newValue.columnsList.length && (this.statisticsFlag = true)
275
-
276
- // 获取每行字符的最大长度
277
- const lengthObj = {}
278
- newValue.errorList.map((item) => {
279
- const keys = newValue.columnsList.map((i) => {
280
- return i['prop']
281
- })
282
- keys.map((k, i) => {
283
- if (item[k] && (!lengthObj[i] || lengthObj[i] < item[k].length)) {
284
- lengthObj[i] = item[k].toString().length
285
- }
286
- })
287
- })
288
-
289
- // 更新column
290
- this.columnsListTemp = newValue.columnsList.map((i, index) => {
291
- console.log('iiiiiii', i, i.errorList)
292
- return {
293
- ...i,
294
- width:
295
- 16 * lengthObj[index] + 40 >= 100
296
- ? 16 * lengthObj[index] + 40
297
- : 100,
298
- component: {
299
- template: `<div v-html="scope.row['${i.prop}']"></div>`
300
- }
301
- }
302
- })
303
-
304
- // 更新errorList的tableData
305
- this.errorListTemp.length = 0
306
- newValue.errorList.map((i) => {
307
- const temp = {}
308
- Object.keys(i).map((k) => {
309
- if (i.errorList && i.errorList.includes(k)) {
310
- temp[k] = `<div class="nstc-g6-common-color-danger">${i[k]}</div>`
311
- } else {
312
- temp[k] = i[k]
313
- }
314
- })
315
- this.errorListTemp.push(temp)
316
- })
317
-
318
- console.log(this.errorListTemp, this.columnsListTemp)
319
-
320
- this.successFlag =
321
- this.validateResult.successNum !== 0 &&
322
- this.validateResult.successNum === this.validateResult.totalNum
323
-
324
- if (this.footerHandlers.confirm) {
325
- this.footerHandlers.confirm.disabled = !this.successFlag
326
- }
327
-
328
- this.confirmDisabledFlag = !this.successFlag
329
-
330
- // nstc-g6-common-color-danger
331
- this.columnsList &&
332
- this.columnsList.map((i) => {
333
- console.log(i)
334
- })
335
- },
336
- deep: true
337
- },
338
- columnsList: {
339
- handler(newValue, oldValue) {
340
- console.log('值更新了', newValue, oldValue)
341
-
342
- console.log('123123123', this.columnsListTemp)
343
- }
344
- },
345
- reset(val) {
346
- val && this.resetAction()
347
- }
348
- },
349
- mounted() {
350
- this.placeholderText = ''
351
- // chrome and ie
352
- window.addEventListener('mousewheel', this.handleScroll(), false)
353
- // firefox
354
- window.addEventListener('DOMMouseScroll', this.handleScroll(), false)
355
- },
356
- created() {},
357
- methods: {
358
- beforeUpload(file) {
359
- this.percentage = 0
360
- this.progressStatus = ''
361
- this.percentageFlag = true
362
- this.fileName = file.name
363
- this.placeholderText = this.fileName
364
- this.placeholderHasFile = true
365
- return true
366
- },
367
- // header
368
- handleSuccess({ results, header }) {
369
- this.percentage = 100
370
- this.progressStatus = 'success'
371
- this.excelData.tableHeader = header
372
- this.excelData.tableData = results
373
- // 自动上传校验
374
- this.callback(this.excelData)
375
- },
376
-
377
- async handleConfirmImportExcel() {
378
- await this.handleConfirm(this.excelData)
379
- },
380
-
381
- // 下载文件
382
- downloadTemplate() {
383
- // 前端下载
384
- if (this.downConfig.isFrontDown) {
385
- const aEl = document.createElement('a')
386
- aEl.setAttribute('href', this.templateUrl)
387
- aEl.target = '_blank'
388
- // aEl.download = this.templateUrl
389
- aEl.click()
390
- } else {
391
- axios({
392
- url: this.templateUrl,
393
- method: 'get',
394
- responseType: 'blob'
395
- }).then((res) => {
396
- const content = res
397
- const blob = new Blob([content])
398
- if ('download' in document.createElement('a')) {
399
- const link = document.createElement('a')
400
- link.download = this.downConfig.fileName
401
- link.style.display = 'none'
402
- link.href = URL.createObjectURL(blob)
403
- document.body.appendChild(link)
404
- link.click()
405
- URL.revokeObjectURL(link.href)
406
- document.body.removeChild(link)
407
- } else {
408
- navigator.msSaveBlob(blob, this.downConfig.fileName)
409
- }
410
- this.btnSendTem = false
411
- })
412
- }
413
- },
414
-
415
- resetAction(flag) {
416
- // 文件
417
- this.excelData = {
418
- // tableHeader: [],
419
- tableData: []
420
- }
421
-
422
- // 不改变原来数据结构
423
- this.validateResult.totalNum = null
424
- this.validateResult.successNum = null
425
- this.validateResult.columnsList = []
426
- this.validateResult.errorList = []
427
-
428
- this.successFlag = false
429
- // this.footerHandlers.confirm.disabled = true
430
- this.confirmDisabledFlag = true
431
- this.percentageFlag = false
432
- this.fileName = ''
433
- this.percentage = 0
434
- this.reset = false
435
- this.statisticsFlag = false
436
- this.placeholderHasFile = false
437
- this.placeholderText = '请选择'
438
- console.log('执行了弹框关闭事件')
439
- ![`delete`].includes(flag) && (this._value = false)
440
- this.$nextTick(() => {
441
- this.$forceUpdate()
442
- })
443
- },
444
-
445
- /**
446
- * 选择文件
447
- */
448
- uploadChooseFile() {
449
- this.$refs[`nstc-unload-excel-box`].handleUpload()
450
- },
451
- handleScroll(e) {
452
- let direction = e ? (e.deltaY > 0 ? 'down' : 'up') : '' // 该语句可以用来判断滚轮是向上滑动还是向下
453
- if (document.getElementsByTagName('li').length == 1) {
454
- //此处决定无论一次滚轮滚动的距离是多少,此事件
455
- //都得等上次滚动结束,才会执行本次
456
- this.isShow = false
457
- setTimeout(() => {
458
- this.isShow = true
459
- ++this.nowIndex
460
- if (this.nowIndex == 3) {
461
- this.nowIndex = 0
462
- }
463
- }, 10)
464
- }
465
- console.log(direction)
466
- }
467
- }
468
- }
469
- </script>
470
-
471
- <style lang="scss">
472
- .root-class {
473
- .nstc-wrap-input-hover .select-in-dialog-result:hover,
474
- .nstc-wrap-input-hover .nstc-common-form-textarea textarea:hover,
475
- .nstc-wrap-input-hover .el-input__inner:hover {
476
- border: 1px solid #007aff;
477
- box-shadow: 0 0 4px 0 #007aff;
478
- }
479
- .nstc-wrap-input-hover .select-in-dialog-result:hover {
480
- .select-in-dialog-result-remote-icon {
481
- border-left: 1px solid #007aff;
482
- }
483
- }
484
- .nstc-wrap-input-hover .select-in-dialog-result {
485
- .el-select {
486
- .el-input__inner:hover {
487
- border: none !important;
488
- }
489
- }
490
- }
491
- .select-in-dialog-result:hover {
492
- border: 1px solid #007aff;
493
- box-shadow: 0 0 4px 0 #007aff;
494
- .select-in-dialog-result-remote-icon {
495
- border-left: 1px solid #007aff;
496
- }
497
- }
498
- .is-disabled {
499
- .select-in-dialog-result:hover {
500
- border: 1px solid #ccc !important;
501
- box-shadow: none;
502
- .select-in-dialog-result-remote-icon {
503
- border-left: none;
504
- }
505
- }
506
- }
507
-
508
- .el-form-item.is-error .el-input__inner:focus,
509
- .el-form-item.is-error .el-textarea__inner:focus,
510
- .el-input__inner:focus,
511
- .el-select .el-input.is-focus .el-input__inner,
512
- .el-textarea__inner:focus {
513
- box-shadow: 0 0 4px 0 #007aff;
514
- border-color: #007aff;
515
- }
516
- .el-input {
517
- .el-input__suffix {
518
- line-height: 32px;
519
- .el-input__suffix-inner {
520
- height: 100%;
521
- display: block;
522
- .el-input__icon {
523
- line-height: 32px;
524
- }
525
- }
526
- }
527
- }
528
- //日期修改
529
- .el-date-editor {
530
- // 修改日期选择框的图片居中
531
- .el-range__icon {
532
- line-height: 24px;
533
- }
534
- //修改日期选择框连接符居中
535
- .el-range-separator {
536
- line-height: 24px;
537
- }
538
- }
539
- //日期选择框
540
- .el-date-editor {
541
- .el-range__close-icon {
542
- line-height: 24px;
543
- }
544
- }
545
- .el-date-editor.nstc-input-small {
546
- .el-range__close-icon {
547
- line-height: 18px;
548
- }
549
- }
550
- //表单
551
- .el-form-item__content {
552
- display: flex;
553
- height: 40px;
554
- align-items: center;
555
- .el-input {
556
- height: 32px;
557
- line-height: 32px;
558
- // width: 224px;
559
- }
560
- .el-input.is-disabled .el-input__inner {
561
- background-color: #f5f7fa;
562
- border-color: #dddddd;
563
- color: #ccc;
564
- }
565
- .input-custom {
566
- display: flex;
567
- align-items: center;
568
- // 门户的样式.el-input__inner 设置为32px 应该是在.el-input上面设置
569
- .el-input {
570
- height: 32px;
571
- line-height: 32px;
572
- //修改input 后面单位的高度与input 不一致
573
- .el-input-group__append {
574
- line-height: 1;
575
- }
576
- .el-input__suffix {
577
- height: 32px;
578
- .el-input__suffix-inner {
579
- height: 100%;
580
- display: block;
581
- .el-input__icon {
582
- line-height: 32px;
583
- }
584
- }
585
- }
586
- }
587
- }
588
-
589
- .form-create-select-tree {
590
- .el-input {
591
- height: 32px;
592
- line-height: 32px;
593
- //修改input 后面单位的高度与input 不一致
594
- .el-input-group__append {
595
- line-height: 1;
596
- }
597
- .el-input__suffix {
598
- height: 32px;
599
- .el-input__suffix-inner {
600
- height: 100%;
601
- display: block;
602
- .el-input__icon {
603
- line-height: 32px;
604
- }
605
- }
606
- }
607
- }
608
- }
609
- .el-date-editor {
610
- .el-input__prefix {
611
- .el-input__icon {
612
- line-height: 32px;
613
- }
614
- }
615
- .el-input__suffix {
616
- .el-input__icon {
617
- line-height: 32px;
618
- }
619
- }
620
- }
621
- // 修改联机选择器的高度
622
- .el-cascader {
623
- height: 32px;
624
- line-height: 32px;
625
- .el-input {
626
- height: 100%;
627
- .el-input__suffix {
628
- height: 32px;
629
- .el-input__suffix-inner {
630
- height: 100%;
631
- display: block;
632
- .el-input__icon.el-icon-arrow-down {
633
- line-height: 32px;
634
- }
635
- }
636
- }
637
- }
638
- }
639
-
640
- // 修改复选框没有居中对齐
641
- .el-checkbox-group {
642
- display: flex;
643
- align-items: center;
644
- }
645
- // 修改上传附件
646
- .upload-custom {
647
- height: 32px;
648
- button {
649
- height: 100%;
650
- }
651
- }
652
- //修改下拉select 没有右边border
653
- .el-select {
654
- height: 32px;
655
- line-height: 32px;
656
- .el-input {
657
- height: 100%;
658
- margin-left: 0;
659
- .el-input__suffix {
660
- height: 32px;
661
- .el-input__suffix-inner {
662
- height: 100%;
663
- display: block;
664
- .el-input__icon {
665
- line-height: 32px;
666
- }
667
- }
668
- }
669
- }
670
- }
671
- }
672
- //国际化下拉
673
- .i18n-box {
674
- .el-select {
675
- height: 32px;
676
- line-height: 32px;
677
- .el-input {
678
- height: 100%;
679
- margin-left: 0;
680
- .el-input__suffix {
681
- height: 32px;
682
- .el-input__suffix-inner {
683
- height: 100%;
684
- display: block;
685
- .el-input__icon {
686
- line-height: 32px;
687
- }
688
- }
689
- }
690
- }
691
- }
692
- }
693
- .el-button.nstc-g6-common-btn-size-s {
694
- margin: 0 4px;
695
- }
696
- .el-button.nstc-g6-common-btn-size-b {
697
- margin: 0 8px;
698
- }
699
- .el-button--primary:not(.is-disabled) {
700
- &.nstc-g6-common-btn-1 {
701
- background-color: #007aff;
702
- border-color: #007aff;
703
- color: #fff;
704
- }
705
- }
706
- .el-button--default:not(.is-disabled) {
707
- &.nstc-g6-common-btn-1 {
708
- border-color: #dddddd;
709
- color: #333;
710
- background-color: #fff;
711
- }
712
- }
713
- .el-button--primary:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
714
- background-color: #146be6;
715
- border: 1px solid #146be6;
716
- color: #fff;
717
- opacity: 1;
718
- }
719
- .el-button--default:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
720
- border-color: #146be6;
721
- color: #146be6;
722
- background-color: #fff;
723
- opacity: 1;
724
- }
725
-
726
- .el-button--default:not(.is-disabled).nstc-g6-common-btn-4 {
727
- padding: 0 8px;
728
- height: 28px;
729
- min-width: 72px;
730
- font-size: 14px;
731
- background-color: #fff;
732
- border: 1px solid #ddd;
733
- color: #ff3b30;
734
- &:hover {
735
- border: 1px solid #ff3b30;
736
- opacity: 1;
737
- }
738
- }
739
- .el-button--primary:not(.is-disabled, .is-plain).nstc-g6-common-btn-4 {
740
- color: #fff;
741
- background-color: #ff3b30;
742
- border: 1px solid #ff3b30;
743
- &:hover {
744
- color: #fff;
745
- }
746
- }
747
- .el-button--primary.is-disabled.nstc-g6-common-btn-1,
748
- .el-button--primary.is-disabled.nstc-g6-common-btn-1:hover,
749
- .el-button--primary.is-disabled.nstc-g6-common-btn-1:focus,
750
- .el-button--primary.is-disabled.nstc-g6-common-btn-1:active,
751
- .el-button--default.is-disabled.nstc-g6-common-btn-1,
752
- .el-button--default.is-disabled.nstc-g6-common-btn-1:hover,
753
- .el-button--default.is-disabled.nstc-g6-common-btn-1:focus,
754
- .el-button--default.is-disabled.nstc-g6-common-btn-1:active,
755
- .el-button--primary.is-disabled.nstc-g6-common-btn-4,
756
- .el-button--primary.is-disabled.nstc-g6-common-btn-4:hover,
757
- .el-button--primary.is-disabled.nstc-g6-common-btn-4:focus,
758
- .el-button--primary.is-disabled.nstc-g6-common-btn-4:active,
759
- .el-button--default.is-disabled.nstc-g6-common-btn-4,
760
- .el-button--default.is-disabled.nstc-g6-common-btn-4:hover,
761
- .el-button--default.is-disabled.nstc-g6-common-btn-4:focus,
762
- .el-button--default.is-disabled.nstc-g6-common-btn-4:active {
763
- color: #ccc;
764
- background-color: #eee;
765
- border-color: #ddd;
766
- }
767
- // tab 标签颜色
768
- .nstc-tab .el-tabs__item.is-active,
769
- .el-tabs__item.is-active {
770
- color: #1677ff;
771
- }
772
- .el-tabs__active-bar,
773
- .el-date-table td.current:not(.disabled) span,
774
- .el-slider__bar,
775
- .el-month-table td.end-date .cell,
776
- .el-month-table td.start-date .cell,
777
- .el-pagination.is-background .el-pager li:not(.disabled).active,
778
- .el-alert--info.is-dark {
779
- background-color: #1677ff;
780
- }
781
- //修改多选框的颜色
782
- .el-checkbox__input.is-checked .el-checkbox__inner {
783
- border-color: #007aff;
784
- background-color: #007aff;
785
- }
786
- .el-checkbox__inner:hover {
787
- border-color: #007aff;
788
- }
789
- .el-radio__input.is-checked:not(.is-disabled) .el-radio__inner,
790
- .el-switch.is-checked .el-switch__core,
791
- .el-checkbox__input.is-indeterminate .el-checkbox__inner {
792
- border-color: #007aff;
793
- background: #007aff;
794
- }
795
-
796
- .el-radio__inner:hover,
797
- .el-input-number__decrease:hover:not(.is-disabled)
798
- ~ .el-input
799
- .el-input__inner:not(.is-disabled),
800
- .el-input-number__increase:hover:not(.is-disabled)
801
- ~ .el-input
802
- .el-input__inner:not(.is-disabled),
803
- .el-cascader .el-input.is-focus .el-input__inner {
804
- border-color: #007aff;
805
- }
806
- //上传 进度条颜色 成功失败颜色
807
- .el-progress.is-success .el-progress-bar__inner {
808
- background-color: #48d2a0;
809
- }
810
- .el-progress.is-success .el-progress__text {
811
- color: #48d2a0;
812
- }
813
- // 分页
814
- .cl-pagination .pages {
815
- color: #000;
816
- }
817
- .cl-pagination .page-jumper[data-v-58107eb6] {
818
- color: #333;
819
- }
820
- .cl-pagination-total .el-input--suffix .el-input__inner {
821
- color: #333;
822
- }
823
- .el-pagination__editor.el-input .el-input__inner {
824
- text-align: center !important;
825
- box-sizing: border-box;
826
- }
827
- .form-group-custom .expand-collapse-header > span,
828
- .form-group-custom .expand-collapse-header-collapse > span {
829
- font-weight: normal;
830
- font-size: 14px;
831
- }
832
- .expand-collapse-header-title[data-v-15697210] {
833
- font-weight: normal;
834
- color: #333;
835
- }
836
- .expand-collapse-header:hover .expand-collapse-icon[data-v-15697210],
837
- .expand-collapse-footer:hover .expand-collapse-icon[data-v-15697210] {
838
- color: #bac4cf;
839
- }
840
- .expand-collapse-icon[data-v-15697210] {
841
- color: #bac4cf;
842
- }
843
- .expand-collapse-header[data-v-15697210],
844
- .expand-collapse-footer[data-v-15697210] {
845
- span {
846
- color: #333;
847
- }
848
- cursor: pointer;
849
- background: #f5f5f5;
850
- }
851
- // 滚动条样式
852
- ::-webkit-scrollbar-thumb {
853
- background-color: #eee;
854
- }
855
- // 滚动条移动上的样式
856
- ::-webkit-scrollbar-thumb:hover {
857
- background-color: #ccc;
858
- }
859
- // 修改input 内的选中项样式
860
- .el-tag.el-tag--info {
861
- background-color: #eee;
862
- border-color: #eee;
863
- color: #3d4a57;
864
- }
865
- //修改表格
866
- .el-table thead.is-group th {
867
- background: #f5f5f5;
868
- }
869
- .el-table th.is-leaf,
870
- .el-table td {
871
- border-bottom: 1px solid #eee;
872
- border-bottom-width: 1px;
873
- border-bottom-style: solid;
874
- border-bottom-color: #eee;
875
- }
876
- .el-table--border th,
877
- .el-table--border td {
878
- border-right: 1px solid #eee;
879
- border-right-width: 1px;
880
- border-right-style: solid;
881
- border-right-color: #eee;
882
- }
883
- .el-table--group,
884
- .el-table--border {
885
- border: 1px solid #eee;
886
- }
887
- .el-table--group::after,
888
- .el-table--border::after,
889
- .el-table::before {
890
- background-color: #eee;
891
- }
892
- // 表格高度统一44px
893
- .el-table th,
894
- .el-table td {
895
- padding: 0;
896
- height: 44px;
897
- }
898
- .el-form-item {
899
- margin-bottom: 15px;
900
- }
901
- // 解决表格内操作按钮hover
902
- .el-link.is-underline:hover:after {
903
- display: none;
904
- }
905
- .nstc-file-upload .cell {
906
- padding: 0px 8px 0px 0 !important;
907
- color: #333;
908
- }
909
- .el-table th.is-leaf {
910
- background-color: #f5f5f5;
911
- font-weight: normal;
912
- }
913
- .nstc-approvel {
914
- .el-form-item__content {
915
- display: flex;
916
- height: auto;
917
- align-items: center;
918
- }
919
- }
920
- }
921
- // 修改批量导入弹窗内的样式 没有root-class 覆盖 新增一个class为nstc-dialog-style
922
-
923
- // .nstc-dialog-style {
924
-
925
- // }
926
- //修改上传input样式
927
- .nstc-common-excel-import {
928
- .placeholder-has-file {
929
- color: #3d4a57 !important;
930
- height: 22px;
931
- line-height: 22px;
932
- width: auto;
933
- position: absolute;
934
- top: 50%;
935
- margin-top: -11px;
936
- padding-right: 20px;
937
- left: 10px;
938
- background: #eee;
939
- padding-left: 5px;
940
- border-radius: 2px;
941
- }
942
- }
943
- // 表格内的input
944
- .cell {
945
- .el-input {
946
- &.el-input--suffix {
947
- height: 32px;
948
- line-height: 32px;
949
- .el-input__inner {
950
- height: 32px;
951
- }
952
- .el-input__suffix {
953
- .el-input__suffix-inner {
954
- height: 100%;
955
- display: block;
956
- line-height: 32px;
957
- i {
958
- line-height: 32px;
959
- }
960
- }
961
- }
962
- }
963
- }
964
- }
965
-
966
- //修改弹框上面没有root-class 的按钮hover
967
- .nstc-g6-common-btn-1:not(.is-disabled):hover,
968
- .nstc-g6-common-btn-1:not(.is-disabled):focus:hover {
969
- border-color: #146be6 !important;
970
- color: #fff !important;
971
- background-color: #146be6 !important;
972
- }
973
- .nstc-g6-common-btn-3:not(.is-disabled):hover {
974
- color: #146be6 !important;
975
- border: 1px solid #146be6 !important;
976
- background-color: #fff !important;
977
- }
978
- //修改日期picker
979
- .el-picker-panel {
980
- .el-date-table td {
981
- span {
982
- border-radius: 2px;
983
- }
984
- }
985
- .el-date-table td.today span {
986
- opacity: 0.8;
987
- border-radius: 2px;
988
- }
989
- .el-date-table td.in-range {
990
- div {
991
- background: rgba(0, 122, 255, 0.1);
992
- }
993
- }
994
- }
995
- // 弹框内的table 表头表格
996
- .el-table .el-table__header th,
997
- .el-table .el-table__header td {
998
- padding: 10px 0;
999
- }
1000
-
1001
- //修改下拉选择hover 问题
1002
- .el-select-dropdown__item {
1003
- color: #333;
1004
- }
1005
- .el-select-dropdown.is-multiple .el-select-dropdown__item:hover {
1006
- background-color: rgba(0, 122, 255, 0.1);
1007
- }
1008
- .el-select-dropdown.is-multiple
1009
- .el-scrollbar__view
1010
- .el-select-dropdown__item.selected.hover {
1011
- background-color: rgba(0, 122, 255, 0.1);
1012
- }
1013
-
1014
- .el-select-dropdown.el-popper .el-select-dropdown__item.hover,
1015
- .el-select-dropdown.el-popper .el-select-dropdown__item:hover {
1016
- background-color: rgba(0, 122, 255, 0.1);
1017
- }
1018
-
1019
- .el-button.nstc-g6-common-btn-size-s {
1020
- margin: 0 4px;
1021
- }
1022
- .el-button.nstc-g6-common-btn-size-b {
1023
- margin: 0 8px;
1024
- }
1025
-
1026
- .nstc-file-upload .cell {
1027
- padding: 0px 8px 0px 0 !important;
1028
- color: #333;
1029
- }
1030
- .el-table th.is-leaf {
1031
- background-color: #f5f5f5;
1032
- font-weight: normal;
1033
- }
1034
-
1035
- .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):hover,
1036
- .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):focus:hover {
1037
- border-color: #146be6 !important;
1038
- color: #146be6 !important;
1039
- background-color: #fff !important;
1040
- }
1041
-
1042
- .el-table th,
1043
- .el-table td {
1044
- padding: 0;
1045
- height: 44px;
1046
- }
1047
-
1048
- .nstc-import-error-num {
1049
- color: #fb5555;
1050
- }
1051
- .excel-unload-input {
1052
- position: relative;
1053
- overflow: hidden;
1054
- }
1055
- .placeholder-has-file {
1056
- color: #242424 !important;
1057
- height: 35px;
1058
- width: 999px;
1059
- position: absolute;
1060
- top: -1px;
1061
- left: 10px;
1062
- }
1063
- .excel-unload-input-img {
1064
- position: absolute;
1065
- right: 10px;
1066
- top: 8px;
1067
- }
1068
- // .dialog-footer {
1069
- // position: absolute;
1070
- // top: 170px;
1071
- // left: 380px;
1072
- // }
1073
- </style>
1074
-
1
+ <!--
2
+ 功能: excel导入功能
3
+ 作者: nstc
4
+ 创建时间: 2021-02-05
5
+ -->
6
+ <template>
7
+ <div>
8
+ <NstcDialog
9
+ v-model="_value"
10
+ :title="title"
11
+ width="1200px"
12
+ append-to-body
13
+ v-bind="$attrs"
14
+ :footer-handlers="footerHandlers"
15
+ class="nstc-dialog-style"
16
+ v-on="$listeners"
17
+ @cancel="resetAction"
18
+ >
19
+ <div class="nstc-common-excel-import">
20
+ <div class="nstc-common-excel-import-tips-box">
21
+ <el-row :gutter="10">
22
+ <el-col style="width: 75px; text-align: right">
23
+ <span class="tips-box-text">导入说明:</span>
24
+ </el-col>
25
+ <el-col :span="18">
26
+ <div v-for="(item, index) in tips" :key="index" class="tips-item">
27
+ <span v-if="tips.length !== 1">{{ index + 1 }}. </span>
28
+ <span>{{ item.text }}</span>
29
+ </div>
30
+ </el-col>
31
+ </el-row>
32
+ </div>
33
+ <slot></slot>
34
+
35
+ <el-form :label-width="labelWidth">
36
+ <el-form-item label="上传">
37
+ <div class="excel-unload-input" @click="uploadChooseFile">
38
+ <div
39
+ :class="{
40
+ placeholder: true,
41
+ 'placeholder-has-file': placeholderHasFile
42
+ }"
43
+ >
44
+ {{ placeholderText || '请选择' }}
45
+ </div>
46
+ <img class="excel-unload-input-img" :src="uploadImg" alt="" />
47
+ </div>
48
+ <el-button
49
+ type="primary"
50
+ class="nstc-g6-common-btn-1 nstc-g6-common-btn-size-s"
51
+ :disabled="
52
+ excelData.tableData.length === 0 || confirmDisabledFlag
53
+ "
54
+ @click="handleConfirmImportExcel"
55
+ >导入</el-button
56
+ >
57
+ <el-button
58
+ v-if="isNeedTemplate"
59
+ type="text"
60
+ style="margin-left: 20px"
61
+ :disabled="!templateUrl"
62
+ @click="downloadTemplate"
63
+ >导入模板下载</el-button
64
+ >
65
+ </el-form-item>
66
+ </el-form>
67
+
68
+ <div class="excel-upload-result-box">
69
+ <div class="excel-upload-result-box-head">结果统计</div>
70
+ <div class="excel-upload-result-box-content">
71
+ <span>结果统计 {{ validateResult.totalNum }} 条记录, </span>
72
+ <span>其中有效数据记录{{ validateResult.successNum }} 条, </span>
73
+ <span
74
+ >其中无效数据记录
75
+ <span class="nstc-import-error-num">{{
76
+ validateResult.errorList.length
77
+ }}</span>
78
+ 条。</span
79
+ >
80
+ </div>
81
+ </div>
82
+ <NstcUploadExcel
83
+ v-if="value"
84
+ v-show="percentage !== 100"
85
+ ref="nstc-unload-excel-box"
86
+ class="upload-excel-box"
87
+ :before-upload="beforeUpload"
88
+ :on-success="handleSuccess"
89
+ />
90
+
91
+ <div v-show="hasErrorFlag" class="fail-excel-import-box">
92
+ <div class="fail-excel-import-box-title">无效数据情况统计</div>
93
+ <el-table
94
+ :data="errorListTemp"
95
+ :height="tableHeight"
96
+ style="width: 100%; height: 500px"
97
+ >
98
+ <el-table-column
99
+ v-for="column in columnsListTemp"
100
+ :key="column.prop"
101
+ :prop="column.prop"
102
+ :label="column.label"
103
+ :align="column.align"
104
+ :min-width="column.width"
105
+ >
106
+ <template slot-scope="scope">
107
+ <span v-html="scope.row[column.prop]"></span>
108
+ </template>
109
+ </el-table-column>
110
+ </el-table>
111
+ </div>
112
+
113
+ <div class="end-tips">上述数据输入有误,请修改导入文件中相关信息!</div>
114
+ </div>
115
+ <slot name="footer"></slot>
116
+ </NstcDialog>
117
+ </div>
118
+ </template>
119
+
120
+ <script>
121
+ import NstcUploadExcel from '../NstcUploadExcel/NstcUploadExcel'
122
+ import NstcDialog from '../NstcDialog/NstcDialog'
123
+ import uploadImg from './img/upload@2x.png'
124
+ import axios from '../../utils/axios'
125
+ export default {
126
+ name: 'NstcExcelImport',
127
+ components: {
128
+ NstcUploadExcel,
129
+ NstcDialog
130
+ // NstcTable
131
+ },
132
+ props: {
133
+ tableHeight: {
134
+ default: '500px'
135
+ },
136
+ value: {
137
+ type: Boolean,
138
+ default: false
139
+ },
140
+ tips: {
141
+ type: Array,
142
+ default: () => {
143
+ return []
144
+ }
145
+ },
146
+ labelWidth: {
147
+ type: String,
148
+ default: ''
149
+ },
150
+ templateUrl: {
151
+ type: String,
152
+ default: ''
153
+ },
154
+ title: {
155
+ type: String,
156
+ default: function () {
157
+ return '导入'
158
+ }
159
+ },
160
+ reset: {
161
+ type: Boolean,
162
+ default: false
163
+ },
164
+ footerHandlers: {
165
+ type: Object,
166
+ default: function () {
167
+ return {
168
+ // cancel: {
169
+ // text: '取消'
170
+ // },
171
+ // confirm: {
172
+ // text: '导入'
173
+ // }
174
+ }
175
+ }
176
+ },
177
+ callback: {
178
+ type: Function,
179
+ default: () => {}
180
+ },
181
+ // mapper: {
182
+ // type: Object,
183
+ // default: () => {}
184
+ // },
185
+ handleConfirm: {
186
+ type: Function,
187
+ default: () => {}
188
+ },
189
+ downConfig: {
190
+ type: Object,
191
+ default() {
192
+ return {
193
+ isFrontDown: true,
194
+ fileName: '下载.xlsx'
195
+ }
196
+ }
197
+ },
198
+
199
+ // 校验结果
200
+ validateResult: {
201
+ type: Object,
202
+ default: () => {
203
+ return {
204
+ totalNum: 0,
205
+ successNum: 0,
206
+ columnsList: [],
207
+ errorList: []
208
+ }
209
+ }
210
+ },
211
+
212
+ // 下载模板按钮是否显示
213
+ isNeedTemplate: {
214
+ type: Boolean,
215
+ default: true
216
+ }
217
+ },
218
+ data() {
219
+ return {
220
+ uploadImg,
221
+ excelData: {
222
+ // tableHeader: [],
223
+ tableData: []
224
+ },
225
+ placeholderHasFile: false,
226
+ progressStatus: '',
227
+ percentage: 0,
228
+ percentageFlag: false,
229
+ fileName: '',
230
+ drawerFlag: false,
231
+ dialogVisible: false,
232
+ tipsText: '导入说明',
233
+ totalNum: 0,
234
+ successNum: 0,
235
+ failNum: 0,
236
+ placeholderText: '',
237
+ columnsFailResult: [],
238
+ tableDataFailResult: [],
239
+ columnsListTemp: [],
240
+ errorListTemp: [],
241
+ successFlag: false,
242
+ statisticsFlag: false,
243
+ confirmDisabledFlag: true,
244
+ isShow: false
245
+ }
246
+ },
247
+ computed: {
248
+ _value: {
249
+ get() {
250
+ return this.value
251
+ },
252
+ set(val) {
253
+ this.$emit('input', val)
254
+ }
255
+ },
256
+ hasErrorFlag() {
257
+ return (
258
+ this.validateResult.errorList &&
259
+ this.validateResult.errorList.length > 0
260
+ )
261
+ }
262
+ },
263
+ watch: {
264
+ value: {
265
+ handler(newValue) {
266
+ if (!newValue) {
267
+ this.resetAction()
268
+ }
269
+ }
270
+ },
271
+ validateResult: {
272
+ handler(newValue, oldValue) {
273
+ console.log('值更新了', newValue, oldValue)
274
+ newValue.columnsList.length && (this.statisticsFlag = true)
275
+
276
+ // 获取每行字符的最大长度
277
+ const lengthObj = {}
278
+ newValue.errorList.map((item) => {
279
+ const keys = newValue.columnsList.map((i) => {
280
+ return i['prop']
281
+ })
282
+ keys.map((k, i) => {
283
+ if (item[k] && (!lengthObj[i] || lengthObj[i] < item[k].length)) {
284
+ lengthObj[i] = item[k].toString().length
285
+ }
286
+ })
287
+ })
288
+
289
+ // 更新column
290
+ this.columnsListTemp = newValue.columnsList.map((i, index) => {
291
+ console.log('iiiiiii', i, i.errorList)
292
+ return {
293
+ ...i,
294
+ width:
295
+ 16 * lengthObj[index] + 40 >= 100
296
+ ? 16 * lengthObj[index] + 40
297
+ : 100,
298
+ component: {
299
+ template: `<div v-html="scope.row['${i.prop}']"></div>`
300
+ }
301
+ }
302
+ })
303
+
304
+ // 更新errorList的tableData
305
+ this.errorListTemp.length = 0
306
+ newValue.errorList.map((i) => {
307
+ const temp = {}
308
+ Object.keys(i).map((k) => {
309
+ if (i.errorList && i.errorList.includes(k)) {
310
+ temp[k] = `<div class="nstc-g6-common-color-danger">${i[k]}</div>`
311
+ } else {
312
+ temp[k] = i[k]
313
+ }
314
+ })
315
+ this.errorListTemp.push(temp)
316
+ })
317
+
318
+ console.log(this.errorListTemp, this.columnsListTemp)
319
+
320
+ this.successFlag =
321
+ this.validateResult.successNum !== 0 &&
322
+ this.validateResult.successNum === this.validateResult.totalNum
323
+
324
+ if (this.footerHandlers.confirm) {
325
+ this.footerHandlers.confirm.disabled = !this.successFlag
326
+ }
327
+
328
+ this.confirmDisabledFlag = !this.successFlag
329
+
330
+ // nstc-g6-common-color-danger
331
+ this.columnsList &&
332
+ this.columnsList.map((i) => {
333
+ console.log(i)
334
+ })
335
+ },
336
+ deep: true
337
+ },
338
+ columnsList: {
339
+ handler(newValue, oldValue) {
340
+ console.log('值更新了', newValue, oldValue)
341
+
342
+ console.log('123123123', this.columnsListTemp)
343
+ }
344
+ },
345
+ reset(val) {
346
+ val && this.resetAction()
347
+ }
348
+ },
349
+ mounted() {
350
+ this.placeholderText = ''
351
+ // chrome and ie
352
+ window.addEventListener('mousewheel', this.handleScroll(), false)
353
+ // firefox
354
+ window.addEventListener('DOMMouseScroll', this.handleScroll(), false)
355
+ },
356
+ created() {},
357
+ methods: {
358
+ beforeUpload(file) {
359
+ this.percentage = 0
360
+ this.progressStatus = ''
361
+ this.percentageFlag = true
362
+ this.fileName = file.name
363
+ this.placeholderText = this.fileName
364
+ this.placeholderHasFile = true
365
+ return true
366
+ },
367
+ // header
368
+ handleSuccess({ results, header }) {
369
+ this.percentage = 100
370
+ this.progressStatus = 'success'
371
+ this.excelData.tableHeader = header
372
+ this.excelData.tableData = results
373
+ // 自动上传校验
374
+ this.callback(this.excelData)
375
+ },
376
+
377
+ async handleConfirmImportExcel() {
378
+ await this.handleConfirm(this.excelData)
379
+ },
380
+
381
+ // 下载文件
382
+ downloadTemplate() {
383
+ // 前端下载
384
+ if (this.downConfig.isFrontDown) {
385
+ const aEl = document.createElement('a')
386
+ aEl.setAttribute('href', this.templateUrl)
387
+ aEl.target = '_blank'
388
+ // aEl.download = this.templateUrl
389
+ aEl.click()
390
+ } else {
391
+ axios({
392
+ url: this.templateUrl,
393
+ method: 'get',
394
+ responseType: 'blob'
395
+ }).then((res) => {
396
+ const content = res
397
+ const blob = new Blob([content])
398
+ if ('download' in document.createElement('a')) {
399
+ const link = document.createElement('a')
400
+ link.download = this.downConfig.fileName
401
+ link.style.display = 'none'
402
+ link.href = URL.createObjectURL(blob)
403
+ document.body.appendChild(link)
404
+ link.click()
405
+ URL.revokeObjectURL(link.href)
406
+ document.body.removeChild(link)
407
+ } else {
408
+ navigator.msSaveBlob(blob, this.downConfig.fileName)
409
+ }
410
+ this.btnSendTem = false
411
+ })
412
+ }
413
+ },
414
+
415
+ resetAction(flag) {
416
+ // 文件
417
+ this.excelData = {
418
+ // tableHeader: [],
419
+ tableData: []
420
+ }
421
+
422
+ // 不改变原来数据结构
423
+ this.validateResult.totalNum = null
424
+ this.validateResult.successNum = null
425
+ this.validateResult.columnsList = []
426
+ this.validateResult.errorList = []
427
+
428
+ this.successFlag = false
429
+ // this.footerHandlers.confirm.disabled = true
430
+ this.confirmDisabledFlag = true
431
+ this.percentageFlag = false
432
+ this.fileName = ''
433
+ this.percentage = 0
434
+ this.reset = false
435
+ this.statisticsFlag = false
436
+ this.placeholderHasFile = false
437
+ this.placeholderText = '请选择'
438
+ console.log('执行了弹框关闭事件')
439
+ ![`delete`].includes(flag) && (this._value = false)
440
+ this.$nextTick(() => {
441
+ this.$forceUpdate()
442
+ })
443
+ },
444
+
445
+ /**
446
+ * 选择文件
447
+ */
448
+ uploadChooseFile() {
449
+ this.$refs[`nstc-unload-excel-box`].handleUpload()
450
+ },
451
+ handleScroll(e) {
452
+ let direction = e ? (e.deltaY > 0 ? 'down' : 'up') : '' // 该语句可以用来判断滚轮是向上滑动还是向下
453
+ if (document.getElementsByTagName('li').length == 1) {
454
+ //此处决定无论一次滚轮滚动的距离是多少,此事件
455
+ //都得等上次滚动结束,才会执行本次
456
+ this.isShow = false
457
+ setTimeout(() => {
458
+ this.isShow = true
459
+ ++this.nowIndex
460
+ if (this.nowIndex == 3) {
461
+ this.nowIndex = 0
462
+ }
463
+ }, 10)
464
+ }
465
+ console.log(direction)
466
+ }
467
+ }
468
+ }
469
+ </script>
470
+
471
+ <style lang="scss">
472
+ .root-class {
473
+ .nstc-wrap-input-hover .select-in-dialog-result:hover,
474
+ .nstc-wrap-input-hover .nstc-common-form-textarea textarea:hover,
475
+ .nstc-wrap-input-hover .el-input__inner:hover {
476
+ border: 1px solid #007aff;
477
+ box-shadow: 0 0 4px 0 #007aff;
478
+ }
479
+ .nstc-wrap-input-hover .select-in-dialog-result:hover {
480
+ .select-in-dialog-result-remote-icon {
481
+ border-left: 1px solid #007aff;
482
+ }
483
+ }
484
+ .nstc-wrap-input-hover .select-in-dialog-result {
485
+ .el-select {
486
+ .el-input__inner:hover {
487
+ border: none !important;
488
+ }
489
+ }
490
+ }
491
+ .select-in-dialog-result:hover {
492
+ border: 1px solid #007aff;
493
+ box-shadow: 0 0 4px 0 #007aff;
494
+ .select-in-dialog-result-remote-icon {
495
+ border-left: 1px solid #007aff;
496
+ }
497
+ }
498
+ .is-disabled {
499
+ .select-in-dialog-result:hover {
500
+ border: 1px solid #ccc !important;
501
+ box-shadow: none;
502
+ .select-in-dialog-result-remote-icon {
503
+ border-left: none;
504
+ }
505
+ }
506
+ }
507
+
508
+ .el-form-item.is-error .el-input__inner:focus,
509
+ .el-form-item.is-error .el-textarea__inner:focus,
510
+ .el-input__inner:focus,
511
+ .el-select .el-input.is-focus .el-input__inner,
512
+ .el-textarea__inner:focus {
513
+ box-shadow: 0 0 4px 0 #007aff;
514
+ border-color: #007aff;
515
+ }
516
+ .el-input {
517
+ .el-input__suffix {
518
+ line-height: 32px;
519
+ .el-input__suffix-inner {
520
+ height: 100%;
521
+ display: block;
522
+ .el-input__icon {
523
+ line-height: 32px;
524
+ }
525
+ }
526
+ }
527
+ }
528
+ //日期修改
529
+ .el-date-editor {
530
+ // 修改日期选择框的图片居中
531
+ .el-range__icon {
532
+ line-height: 24px;
533
+ }
534
+ //修改日期选择框连接符居中
535
+ .el-range-separator {
536
+ line-height: 24px;
537
+ }
538
+ }
539
+ //日期选择框
540
+ .el-date-editor {
541
+ .el-range__close-icon {
542
+ line-height: 24px;
543
+ }
544
+ }
545
+ .el-date-editor.nstc-input-small {
546
+ .el-range__close-icon {
547
+ line-height: 18px;
548
+ }
549
+ }
550
+ //表单
551
+ .el-form-item__content {
552
+ display: flex;
553
+ height: 40px;
554
+ align-items: center;
555
+ .el-input {
556
+ height: 32px;
557
+ line-height: 32px;
558
+ // width: 224px;
559
+ }
560
+ .el-input.is-disabled .el-input__inner {
561
+ background-color: #f5f7fa;
562
+ border-color: #dddddd;
563
+ color: #ccc;
564
+ }
565
+ .input-custom {
566
+ display: flex;
567
+ align-items: center;
568
+ // 门户的样式.el-input__inner 设置为32px 应该是在.el-input上面设置
569
+ .el-input {
570
+ height: 32px;
571
+ line-height: 32px;
572
+ //修改input 后面单位的高度与input 不一致
573
+ .el-input-group__append {
574
+ line-height: 1;
575
+ }
576
+ .el-input__suffix {
577
+ height: 32px;
578
+ .el-input__suffix-inner {
579
+ height: 100%;
580
+ display: block;
581
+ .el-input__icon {
582
+ line-height: 32px;
583
+ }
584
+ }
585
+ }
586
+ }
587
+ }
588
+
589
+ .form-create-select-tree {
590
+ .el-input {
591
+ height: 32px;
592
+ line-height: 32px;
593
+ //修改input 后面单位的高度与input 不一致
594
+ .el-input-group__append {
595
+ line-height: 1;
596
+ }
597
+ .el-input__suffix {
598
+ height: 32px;
599
+ .el-input__suffix-inner {
600
+ height: 100%;
601
+ display: block;
602
+ .el-input__icon {
603
+ line-height: 32px;
604
+ }
605
+ }
606
+ }
607
+ }
608
+ }
609
+ .el-date-editor {
610
+ .el-input__prefix {
611
+ .el-input__icon {
612
+ line-height: 32px;
613
+ }
614
+ }
615
+ .el-input__suffix {
616
+ .el-input__icon {
617
+ line-height: 32px;
618
+ }
619
+ }
620
+ }
621
+ // 修改联机选择器的高度
622
+ .el-cascader {
623
+ height: 32px;
624
+ line-height: 32px;
625
+ .el-input {
626
+ height: 100%;
627
+ .el-input__suffix {
628
+ height: 32px;
629
+ .el-input__suffix-inner {
630
+ height: 100%;
631
+ display: block;
632
+ .el-input__icon.el-icon-arrow-down {
633
+ line-height: 32px;
634
+ }
635
+ }
636
+ }
637
+ }
638
+ }
639
+
640
+ // 修改复选框没有居中对齐
641
+ .el-checkbox-group {
642
+ display: flex;
643
+ align-items: center;
644
+ }
645
+ // 修改上传附件
646
+ .upload-custom {
647
+ height: 32px;
648
+ button {
649
+ height: 100%;
650
+ }
651
+ }
652
+ //修改下拉select 没有右边border
653
+ .el-select {
654
+ height: 32px;
655
+ line-height: 32px;
656
+ .el-input {
657
+ height: 100%;
658
+ margin-left: 0;
659
+ .el-input__suffix {
660
+ height: 32px;
661
+ .el-input__suffix-inner {
662
+ height: 100%;
663
+ display: block;
664
+ .el-input__icon {
665
+ line-height: 32px;
666
+ }
667
+ }
668
+ }
669
+ }
670
+ }
671
+ }
672
+ //国际化下拉
673
+ .i18n-box {
674
+ .el-select {
675
+ height: 32px;
676
+ line-height: 32px;
677
+ .el-input {
678
+ height: 100%;
679
+ margin-left: 0;
680
+ .el-input__suffix {
681
+ height: 32px;
682
+ .el-input__suffix-inner {
683
+ height: 100%;
684
+ display: block;
685
+ .el-input__icon {
686
+ line-height: 32px;
687
+ }
688
+ }
689
+ }
690
+ }
691
+ }
692
+ }
693
+ .el-button.nstc-g6-common-btn-size-s {
694
+ margin: 0 4px;
695
+ }
696
+ .el-button.nstc-g6-common-btn-size-b {
697
+ margin: 0 8px;
698
+ }
699
+ .el-button--primary:not(.is-disabled) {
700
+ &.nstc-g6-common-btn-1 {
701
+ background-color: #007aff;
702
+ border-color: #007aff;
703
+ color: #fff;
704
+ }
705
+ }
706
+ .el-button--default:not(.is-disabled) {
707
+ &.nstc-g6-common-btn-1 {
708
+ border-color: #dddddd;
709
+ color: #333;
710
+ background-color: #fff;
711
+ }
712
+ }
713
+ .el-button--primary:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
714
+ background-color: #146be6;
715
+ border: 1px solid #146be6;
716
+ color: #fff;
717
+ opacity: 1;
718
+ }
719
+ .el-button--default:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
720
+ border-color: #146be6;
721
+ color: #146be6;
722
+ background-color: #fff;
723
+ opacity: 1;
724
+ }
725
+
726
+ .el-button--default:not(.is-disabled).nstc-g6-common-btn-4 {
727
+ padding: 0 8px;
728
+ height: 28px;
729
+ min-width: 72px;
730
+ font-size: 14px;
731
+ background-color: #fff;
732
+ border: 1px solid #ddd;
733
+ color: #ff3b30;
734
+ &:hover {
735
+ border: 1px solid #ff3b30;
736
+ opacity: 1;
737
+ }
738
+ }
739
+ .el-button--primary:not(.is-disabled, .is-plain).nstc-g6-common-btn-4 {
740
+ color: #fff;
741
+ background-color: #ff3b30;
742
+ border: 1px solid #ff3b30;
743
+ &:hover {
744
+ color: #fff;
745
+ }
746
+ }
747
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1,
748
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1:hover,
749
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1:focus,
750
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1:active,
751
+ .el-button--default.is-disabled.nstc-g6-common-btn-1,
752
+ .el-button--default.is-disabled.nstc-g6-common-btn-1:hover,
753
+ .el-button--default.is-disabled.nstc-g6-common-btn-1:focus,
754
+ .el-button--default.is-disabled.nstc-g6-common-btn-1:active,
755
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4,
756
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4:hover,
757
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4:focus,
758
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4:active,
759
+ .el-button--default.is-disabled.nstc-g6-common-btn-4,
760
+ .el-button--default.is-disabled.nstc-g6-common-btn-4:hover,
761
+ .el-button--default.is-disabled.nstc-g6-common-btn-4:focus,
762
+ .el-button--default.is-disabled.nstc-g6-common-btn-4:active {
763
+ color: #ccc;
764
+ background-color: #eee;
765
+ border-color: #ddd;
766
+ }
767
+ // tab 标签颜色
768
+ .nstc-tab .el-tabs__item.is-active,
769
+ .el-tabs__item.is-active {
770
+ color: #1677ff;
771
+ }
772
+ .el-tabs__active-bar,
773
+ .el-date-table td.current:not(.disabled) span,
774
+ .el-slider__bar,
775
+ .el-month-table td.end-date .cell,
776
+ .el-month-table td.start-date .cell,
777
+ .el-pagination.is-background .el-pager li:not(.disabled).active,
778
+ .el-alert--info.is-dark {
779
+ background-color: #1677ff;
780
+ }
781
+ //修改多选框的颜色
782
+ .el-checkbox__input.is-checked .el-checkbox__inner {
783
+ border-color: #007aff;
784
+ background-color: #007aff;
785
+ }
786
+ .el-checkbox__inner:hover {
787
+ border-color: #007aff;
788
+ }
789
+ .el-radio__input.is-checked:not(.is-disabled) .el-radio__inner,
790
+ .el-switch.is-checked .el-switch__core,
791
+ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
792
+ border-color: #007aff;
793
+ background: #007aff;
794
+ }
795
+
796
+ .el-radio__inner:hover,
797
+ .el-input-number__decrease:hover:not(.is-disabled)
798
+ ~ .el-input
799
+ .el-input__inner:not(.is-disabled),
800
+ .el-input-number__increase:hover:not(.is-disabled)
801
+ ~ .el-input
802
+ .el-input__inner:not(.is-disabled),
803
+ .el-cascader .el-input.is-focus .el-input__inner {
804
+ border-color: #007aff;
805
+ }
806
+ //上传 进度条颜色 成功失败颜色
807
+ .el-progress.is-success .el-progress-bar__inner {
808
+ background-color: #48d2a0;
809
+ }
810
+ .el-progress.is-success .el-progress__text {
811
+ color: #48d2a0;
812
+ }
813
+ // 分页
814
+ .cl-pagination .pages {
815
+ color: #000;
816
+ }
817
+ .cl-pagination .page-jumper[data-v-58107eb6] {
818
+ color: #333;
819
+ }
820
+ .cl-pagination-total .el-input--suffix .el-input__inner {
821
+ color: #333;
822
+ }
823
+ .el-pagination__editor.el-input .el-input__inner {
824
+ text-align: center !important;
825
+ box-sizing: border-box;
826
+ }
827
+ .form-group-custom .expand-collapse-header > span,
828
+ .form-group-custom .expand-collapse-header-collapse > span {
829
+ font-weight: normal;
830
+ font-size: 14px;
831
+ }
832
+ .expand-collapse-header-title[data-v-15697210] {
833
+ font-weight: normal;
834
+ color: #333;
835
+ }
836
+ .expand-collapse-header:hover .expand-collapse-icon[data-v-15697210],
837
+ .expand-collapse-footer:hover .expand-collapse-icon[data-v-15697210] {
838
+ color: #bac4cf;
839
+ }
840
+ .expand-collapse-icon[data-v-15697210] {
841
+ color: #bac4cf;
842
+ }
843
+ .expand-collapse-header[data-v-15697210],
844
+ .expand-collapse-footer[data-v-15697210] {
845
+ span {
846
+ color: #333;
847
+ }
848
+ cursor: pointer;
849
+ background: #f5f5f5;
850
+ }
851
+ // 滚动条样式
852
+ ::-webkit-scrollbar-thumb {
853
+ background-color: #eee;
854
+ }
855
+ // 滚动条移动上的样式
856
+ ::-webkit-scrollbar-thumb:hover {
857
+ background-color: #ccc;
858
+ }
859
+ // 修改input 内的选中项样式
860
+ .el-tag.el-tag--info {
861
+ background-color: #eee;
862
+ border-color: #eee;
863
+ color: #3d4a57;
864
+ }
865
+ //修改表格
866
+ .el-table thead.is-group th {
867
+ background: #f5f5f5;
868
+ }
869
+ .el-table th.is-leaf,
870
+ .el-table td {
871
+ border-bottom: 1px solid #eee;
872
+ border-bottom-width: 1px;
873
+ border-bottom-style: solid;
874
+ border-bottom-color: #eee;
875
+ }
876
+ .el-table--border th,
877
+ .el-table--border td {
878
+ border-right: 1px solid #eee;
879
+ border-right-width: 1px;
880
+ border-right-style: solid;
881
+ border-right-color: #eee;
882
+ }
883
+ .el-table--group,
884
+ .el-table--border {
885
+ border: 1px solid #eee;
886
+ }
887
+ .el-table--group::after,
888
+ .el-table--border::after,
889
+ .el-table::before {
890
+ background-color: #eee;
891
+ }
892
+ // 表格高度统一44px
893
+ .el-table th,
894
+ .el-table td {
895
+ padding: 0;
896
+ height: 44px;
897
+ }
898
+ .el-form-item {
899
+ margin-bottom: 15px;
900
+ }
901
+ // 解决表格内操作按钮hover
902
+ .el-link.is-underline:hover:after {
903
+ display: none;
904
+ }
905
+ .nstc-file-upload .cell {
906
+ padding: 0px 8px 0px 0 !important;
907
+ color: #333;
908
+ }
909
+ .el-table th.is-leaf {
910
+ background-color: #f5f5f5;
911
+ font-weight: normal;
912
+ }
913
+ .nstc-approvel {
914
+ .el-form-item__content {
915
+ display: flex;
916
+ height: auto;
917
+ align-items: center;
918
+ }
919
+ }
920
+ }
921
+ // 修改批量导入弹窗内的样式 没有root-class 覆盖 新增一个class为nstc-dialog-style
922
+
923
+ // .nstc-dialog-style {
924
+
925
+ // }
926
+ //修改上传input样式
927
+ .nstc-common-excel-import {
928
+ .placeholder-has-file {
929
+ color: #3d4a57 !important;
930
+ height: 22px;
931
+ line-height: 22px;
932
+ width: auto;
933
+ position: absolute;
934
+ top: 50%;
935
+ margin-top: -11px;
936
+ padding-right: 20px;
937
+ left: 10px;
938
+ background: #eee;
939
+ padding-left: 5px;
940
+ border-radius: 2px;
941
+ }
942
+ }
943
+ // 表格内的input
944
+ .cell {
945
+ .el-input {
946
+ &.el-input--suffix {
947
+ height: 32px;
948
+ line-height: 32px;
949
+ .el-input__inner {
950
+ height: 32px;
951
+ }
952
+ .el-input__suffix {
953
+ .el-input__suffix-inner {
954
+ height: 100%;
955
+ display: block;
956
+ line-height: 32px;
957
+ i {
958
+ line-height: 32px;
959
+ }
960
+ }
961
+ }
962
+ }
963
+ }
964
+ }
965
+
966
+ //修改弹框上面没有root-class 的按钮hover
967
+ .nstc-g6-common-btn-1:not(.is-disabled):hover,
968
+ .nstc-g6-common-btn-1:not(.is-disabled):focus:hover {
969
+ border-color: #146be6 !important;
970
+ color: #fff !important;
971
+ background-color: #146be6 !important;
972
+ }
973
+ .nstc-g6-common-btn-3:not(.is-disabled):hover {
974
+ color: #146be6 !important;
975
+ border: 1px solid #146be6 !important;
976
+ background-color: #fff !important;
977
+ }
978
+ //修改日期picker
979
+ .el-picker-panel {
980
+ .el-date-table td {
981
+ span {
982
+ border-radius: 2px;
983
+ }
984
+ }
985
+ .el-date-table td.today span {
986
+ opacity: 0.8;
987
+ border-radius: 2px;
988
+ }
989
+ .el-date-table td.in-range {
990
+ div {
991
+ background: rgba(0, 122, 255, 0.1);
992
+ }
993
+ }
994
+ }
995
+ // 弹框内的table 表头表格
996
+ .el-table .el-table__header th,
997
+ .el-table .el-table__header td {
998
+ padding: 10px 0;
999
+ }
1000
+
1001
+ //修改下拉选择hover 问题
1002
+ .el-select-dropdown__item {
1003
+ color: #333;
1004
+ }
1005
+ .el-select-dropdown.is-multiple .el-select-dropdown__item:hover {
1006
+ background-color: rgba(0, 122, 255, 0.1);
1007
+ }
1008
+ .el-select-dropdown.is-multiple
1009
+ .el-scrollbar__view
1010
+ .el-select-dropdown__item.selected.hover {
1011
+ background-color: rgba(0, 122, 255, 0.1);
1012
+ }
1013
+
1014
+ .el-select-dropdown.el-popper .el-select-dropdown__item.hover,
1015
+ .el-select-dropdown.el-popper .el-select-dropdown__item:hover {
1016
+ background-color: rgba(0, 122, 255, 0.1);
1017
+ }
1018
+
1019
+ .el-button.nstc-g6-common-btn-size-s {
1020
+ margin: 0 4px;
1021
+ }
1022
+ .el-button.nstc-g6-common-btn-size-b {
1023
+ margin: 0 8px;
1024
+ }
1025
+
1026
+ .nstc-file-upload .cell {
1027
+ padding: 0px 8px 0px 0 !important;
1028
+ color: #333;
1029
+ }
1030
+ .el-table th.is-leaf {
1031
+ background-color: #f5f5f5;
1032
+ font-weight: normal;
1033
+ }
1034
+
1035
+ .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):hover,
1036
+ .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):focus:hover {
1037
+ border-color: #146be6 !important;
1038
+ color: #146be6 !important;
1039
+ background-color: #fff !important;
1040
+ }
1041
+
1042
+ .el-table th,
1043
+ .el-table td {
1044
+ padding: 0;
1045
+ height: 44px;
1046
+ }
1047
+
1048
+ .nstc-import-error-num {
1049
+ color: #fb5555;
1050
+ }
1051
+ .excel-unload-input {
1052
+ position: relative;
1053
+ overflow: hidden;
1054
+ }
1055
+ .placeholder-has-file {
1056
+ color: #242424 !important;
1057
+ height: 35px;
1058
+ width: 999px;
1059
+ position: absolute;
1060
+ top: -1px;
1061
+ left: 10px;
1062
+ }
1063
+ .excel-unload-input-img {
1064
+ position: absolute;
1065
+ right: 10px;
1066
+ top: 8px;
1067
+ }
1068
+ // .dialog-footer {
1069
+ // position: absolute;
1070
+ // top: 170px;
1071
+ // left: 380px;
1072
+ // }
1073
+ </style>
1074
+