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,1166 +1,1166 @@
1
- <template>
2
- <div>
3
- <el-dropdown
4
- trigger="click"
5
- placement="bottom-start"
6
- @command="handleCommand"
7
- >
8
- <el-button type="primary" class="drop-btn-item">
9
- 导入<i class="el-icon-arrow-down el-icon--right"></i>
10
- </el-button>
11
- <el-dropdown-menu slot="dropdown" class="drop">
12
- <el-dropdown-item command="a">导入数据</el-dropdown-item>
13
- <el-dropdown-item command="b">模板下载</el-dropdown-item>
14
- </el-dropdown-menu>
15
- </el-dropdown>
16
- <NstcDialog
17
- v-model="dialogVisible"
18
- :title="title"
19
- width="1200px"
20
- append-to-body
21
- v-bind="$attrs"
22
- :footer-handlers="footerHandlers"
23
- class="nstc-dialog-style"
24
- v-on="$listeners"
25
- @cancel="resetAction"
26
- >
27
- <div class="file-box">
28
- <span class="file-box-title">导入文件</span>
29
- <span class="file-name">{{ fileName }}</span>
30
- </div>
31
- <div class="import-process">导入进度</div>
32
- <div v-show="statisticsFlag" class="excel-upload-result-box">
33
- <div class="excel-upload-result-box-head">
34
- 导入统计
35
- <span>共计导入 {{ validateResult.totalNum }}条, </span>
36
- <span
37
- >其中有效数据<span class="effect-data">
38
- {{ validateResult.successNum }} </span
39
- >条,
40
- </span>
41
- <span
42
- >无效数据
43
- <span class="nstc-import-error-num">{{
44
- validateResult.errorList.length
45
- }}</span>
46
- 条。</span
47
- >
48
- </div>
49
- </div>
50
- <div v-show="hasErrorFlag" class="fail-excel-import-box fail-box">
51
- <div class="fail-excel-import-box-title">无效数据详情</div>
52
- <el-table :data="errorListTemp" style="width: 100%">
53
- <el-table-column
54
- v-for="column in columnsListTemp"
55
- :key="column.prop"
56
- :prop="column.prop"
57
- :label="column.label"
58
- :align="column.align"
59
- :min-width="column.width"
60
- >
61
- <template slot-scope="scope">
62
- <span v-html="scope.row[column.prop]"></span>
63
- </template>
64
- </el-table-column>
65
- </el-table>
66
- </div>
67
- <div v-show="hasErrorFlag" class="end-tips">
68
- 上述数据输入有误,请修改导入文件中相关信息!
69
- </div>
70
- <div class="footer">
71
- <el-button
72
- type="primary"
73
- :disabled="excelData.tableData.length === 0 || confirmDisabledFlag"
74
- @click="cancel"
75
- >确定
76
- </el-button>
77
- </div>
78
- </NstcDialog>
79
- </div>
80
- </template>
81
- <script>
82
- import XLSX from 'xlsx'
83
- import axios from '../../../src/utils/axios.js'
84
- import NstcDialog from '../NstcDialog/NstcDialog'
85
-
86
- export default {
87
- name: 'NstcExcelImportN',
88
- components: {
89
- NstcDialog
90
- },
91
- props: {
92
- title: {
93
- type: String,
94
- default: function () {
95
- return '文件导入'
96
- }
97
- },
98
- tips: {
99
- type: Array,
100
- default: () => {
101
- return []
102
- }
103
- },
104
- templateUrl: {
105
- type: String,
106
- default: ''
107
- },
108
- downConfig: {
109
- type: Object,
110
- default() {
111
- return {
112
- isFrontDown: true,
113
- fileName: '下载.xlsx'
114
- }
115
- }
116
- },
117
- footerHandlers: {
118
- type: Object,
119
- default: function () {
120
- return {
121
- // cancel: {
122
- // text: '取消'
123
- // },
124
- // confirm: {
125
- // text: '导入'
126
- // }
127
- }
128
- }
129
- },
130
- beforeUpload: Function, // eslint-disable-line
131
- callback: {
132
- type: Function,
133
- default: () => {}
134
- },
135
- handleConfirm: {
136
- type: Function,
137
- default: () => {}
138
- },
139
- // 校验结果
140
- validateResult: {
141
- type: Object,
142
- default: () => {
143
- return {
144
- totalNum: 0,
145
- successNum: 0,
146
- columnsList: [],
147
- errorList: []
148
- }
149
- }
150
- },
151
- reset: {
152
- type: Boolean,
153
- default: false
154
- },
155
- dialogVisible: {
156
- type: Boolean,
157
- default: false
158
- }
159
- },
160
- data() {
161
- return {
162
- loading: false,
163
- excelData: {
164
- tableHeader: [],
165
- tableData: []
166
- },
167
-
168
- analysisText: 'analysis',
169
- fileName: '',
170
- statisticsFlag: false,
171
- columnsListTemp: [],
172
- errorListTemp: [],
173
- successFlag: false,
174
- confirmDisabledFlag: true
175
- }
176
- },
177
- computed: {
178
- hasErrorFlag() {
179
- return (
180
- this.validateResult.errorList &&
181
- this.validateResult.errorList.length > 0
182
- )
183
- }
184
- },
185
- watch: {
186
- validateResult: {
187
- handler(newValue, oldValue) {
188
- console.log('值更新了', newValue, oldValue)
189
- newValue.columnsList.length && (this.statisticsFlag = true)
190
-
191
- // 获取每行字符的最大长度
192
- const lengthObj = {}
193
- newValue.errorList.map((item) => {
194
- const keys = newValue.columnsList.map((i) => {
195
- return i['prop']
196
- })
197
- keys.map((k, i) => {
198
- if (item[k] && (!lengthObj[i] || lengthObj[i] < item[k].length)) {
199
- lengthObj[i] = item[k].length
200
- }
201
- })
202
- })
203
-
204
- // 更新column
205
- this.columnsListTemp = newValue.columnsList.map((i, index) => {
206
- console.log('iiiiiii', i, i.errorList)
207
- return {
208
- ...i,
209
- width: 16 * lengthObj[index] + 60,
210
- component: {
211
- template: `<div v-html="scope.row['${i.prop}']"></div>`
212
- }
213
- }
214
- })
215
-
216
- // 更新errorList的tableData
217
- this.errorListTemp.length = 0
218
- newValue.errorList.map((i) => {
219
- const temp = {}
220
- Object.keys(i).map((k) => {
221
- if (i.errorList && i.errorList.includes(k)) {
222
- temp[k] = `<div class="nstc-g6-common-color-danger">${i[k]}</div>`
223
- } else {
224
- temp[k] = i[k]
225
- }
226
- })
227
- this.errorListTemp.push(temp)
228
- })
229
-
230
- console.log(this.errorListTemp, this.columnsListTemp)
231
-
232
- this.successFlag =
233
- this.validateResult.successNum !== 0 &&
234
- this.validateResult.successNum === this.validateResult.totalNum
235
-
236
- if (this.footerHandlers.confirm) {
237
- this.footerHandlers.confirm.disabled = !this.successFlag
238
- }
239
-
240
- this.confirmDisabledFlag = !this.successFlag
241
-
242
- // nstc-g6-common-color-danger
243
- this.columnsList &&
244
- this.columnsList.map((i) => {
245
- console.log(i)
246
- })
247
- },
248
- deep: true
249
- }
250
- },
251
- methods: {
252
- cancel() {
253
- this.handleConfirmImportExcel()
254
- },
255
- async handleConfirmImportExcel() {
256
- await this.handleConfirm(this.excelData)
257
- },
258
- handleCommand(command) {
259
- if (command == 'a') {
260
- this.seletFile()
261
- } else if (command == 'b') {
262
- this.downloadTemplate()
263
- }
264
- },
265
- seletFile() {
266
- let input = document.createElement('input')
267
- let self = this
268
- input.type = 'file'
269
- input.accept = '.xlsx, .xls, .csv'
270
- input.addEventListener('change', function (event) {
271
- const files = event.target.files
272
- const rawFile = files[0] // only use files[0]
273
- console.log('导入的文件:', rawFile)
274
- self.fileName = rawFile.name
275
- if (!rawFile) return
276
- self.upload(rawFile)
277
- this.value = null // fix can't select the same excel
278
- })
279
- input.click()
280
- },
281
- /*解析传入的表格 */
282
- readerData(rawFile) {
283
- this.loading = true
284
- return new Promise((resolve) => {
285
- const reader = new FileReader()
286
- reader.onload = (e) => {
287
- const data = e.target.result
288
- const workbook = XLSX.read(data, {
289
- type: 'array',
290
- cellDates: true
291
- })
292
- const firstSheetName = workbook.SheetNames[0]
293
- const worksheet = workbook.Sheets[firstSheetName]
294
- const header = this.getHeaderRow(worksheet)
295
- const results = XLSX.utils.sheet_to_json(worksheet)
296
-
297
- this.generateData({ header, results })
298
- this.loading = false
299
- resolve()
300
- }
301
- reader.readAsArrayBuffer(rawFile)
302
- })
303
- },
304
- generateData({ header, results }) {
305
- this.excelData.tableHeader = header
306
- this.excelData.tableData = results
307
- this.callback && this.callback(this.excelData)
308
- },
309
- getHeaderRow(sheet) {
310
- console.log(sheet)
311
- const headers = []
312
- const range = XLSX.utils.decode_range(sheet['!ref'])
313
- let C
314
- const R = range.s.r
315
- /* start in the first row */
316
- for (C = range.s.c; C <= range.e.c; ++C) {
317
- /* walk every column in the range */
318
- const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]
319
- /* find the cell in the first row */
320
- let hdr = 'UNKNOWN ' + C // <-- replace with your desired default
321
- if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
322
- headers.push(hdr)
323
- }
324
- return headers
325
- },
326
- isExcel(file) {
327
- return /\.(xlsx|xls|csv)$/.test(file.name)
328
- },
329
- /*上传文件 */
330
- upload(rawFile) {
331
- if (!this.beforeUpload) {
332
- this.readerData(rawFile)
333
- return
334
- }
335
- const before = this.beforeUpload(rawFile)
336
- if (before) {
337
- this.readerData(rawFile)
338
- }
339
- },
340
- // 下载文件
341
- downloadTemplate() {
342
- // 前端下载
343
- if (this.downConfig.isFrontDown) {
344
- const aEl = document.createElement('a')
345
- aEl.setAttribute('href', this.templateUrl)
346
- aEl.target = '_blank'
347
- // aEl.download = this.templateUrl
348
- aEl.click()
349
- } else {
350
- axios({
351
- url: this.templateUrl,
352
- method: 'get',
353
- responseType: 'blob'
354
- }).then((res) => {
355
- const content = res
356
- const blob = new Blob([content])
357
- if ('download' in document.createElement('a')) {
358
- const link = document.createElement('a')
359
- link.download = this.downConfig.fileName
360
- link.style.display = 'none'
361
- link.href = URL.createObjectURL(blob)
362
- document.body.appendChild(link)
363
- link.click()
364
- URL.revokeObjectURL(link.href)
365
- document.body.removeChild(link)
366
- } else {
367
- navigator.msSaveBlob(blob, this.downConfig.fileName)
368
- }
369
- })
370
- }
371
- },
372
- //关闭弹窗
373
- resetAction(flag) {
374
- console.log(flag)
375
- }
376
- }
377
- }
378
- </script>
379
- <style lang="scss" scoped>
380
- .root-class {
381
- .nstc-wrap-input-hover .select-in-dialog-result:hover,
382
- .nstc-wrap-input-hover .nstc-common-form-textarea textarea:hover,
383
- .nstc-wrap-input-hover .el-input__inner:hover {
384
- border: 1px solid #007aff;
385
- box-shadow: 0 0 4px 0 #007aff;
386
- }
387
-
388
- .nstc-wrap-input-hover .select-in-dialog-result:hover {
389
- .select-in-dialog-result-remote-icon {
390
- border-left: 1px solid #007aff;
391
- }
392
- }
393
-
394
- .nstc-wrap-input-hover .select-in-dialog-result {
395
- .el-select {
396
- .el-input__inner:hover {
397
- border: none !important;
398
- }
399
- }
400
- }
401
-
402
- .select-in-dialog-result:hover {
403
- border: 1px solid #007aff;
404
- box-shadow: 0 0 4px 0 #007aff;
405
-
406
- .select-in-dialog-result-remote-icon {
407
- border-left: 1px solid #007aff;
408
- }
409
- }
410
-
411
- .is-disabled {
412
- .select-in-dialog-result:hover {
413
- border: 1px solid #ccc !important;
414
- box-shadow: none;
415
-
416
- .select-in-dialog-result-remote-icon {
417
- border-left: none;
418
- }
419
- }
420
- }
421
-
422
- .el-form-item.is-error .el-input__inner:focus,
423
- .el-form-item.is-error .el-textarea__inner:focus,
424
- .el-input__inner:focus,
425
- .el-select .el-input.is-focus .el-input__inner,
426
- .el-textarea__inner:focus {
427
- box-shadow: 0 0 4px 0 #007aff;
428
- border-color: #007aff;
429
- }
430
-
431
- .el-input {
432
- .el-input__suffix {
433
- line-height: 32px;
434
-
435
- .el-input__suffix-inner {
436
- height: 100%;
437
- display: block;
438
-
439
- .el-input__icon {
440
- line-height: 32px;
441
- }
442
- }
443
- }
444
- }
445
-
446
- //日期修改
447
- .el-date-editor {
448
- // 修改日期选择框的图片居中
449
- .el-range__icon {
450
- line-height: 24px;
451
- }
452
-
453
- //修改日期选择框连接符居中
454
- .el-range-separator {
455
- line-height: 24px;
456
- }
457
- }
458
-
459
- //日期选择框
460
- .el-date-editor {
461
- .el-range__close-icon {
462
- line-height: 24px;
463
- }
464
- }
465
-
466
- .el-date-editor.nstc-input-small {
467
- .el-range__close-icon {
468
- line-height: 18px;
469
- }
470
- }
471
-
472
- //表单
473
- .el-form-item__content {
474
- display: flex;
475
- height: 40px;
476
- align-items: center;
477
-
478
- .el-input {
479
- height: 32px;
480
- line-height: 32px;
481
- // width: 224px;
482
- }
483
-
484
- .el-input.is-disabled .el-input__inner {
485
- background-color: #f5f7fa;
486
- border-color: #dddddd;
487
- color: #ccc;
488
- }
489
-
490
- .input-custom {
491
- display: flex;
492
- align-items: center;
493
- // 门户的样式.el-input__inner 设置为32px 应该是在.el-input上面设置
494
- .el-input {
495
- height: 32px;
496
- line-height: 32px;
497
- //修改input 后面单位的高度与input 不一致
498
- .el-input-group__append {
499
- line-height: 1;
500
- }
501
-
502
- .el-input__suffix {
503
- height: 32px;
504
-
505
- .el-input__suffix-inner {
506
- height: 100%;
507
- display: block;
508
-
509
- .el-input__icon {
510
- line-height: 32px;
511
- }
512
- }
513
- }
514
- }
515
- }
516
-
517
- .form-create-select-tree {
518
- .el-input {
519
- height: 32px;
520
- line-height: 32px;
521
- //修改input 后面单位的高度与input 不一致
522
- .el-input-group__append {
523
- line-height: 1;
524
- }
525
-
526
- .el-input__suffix {
527
- height: 32px;
528
-
529
- .el-input__suffix-inner {
530
- height: 100%;
531
- display: block;
532
-
533
- .el-input__icon {
534
- line-height: 32px;
535
- }
536
- }
537
- }
538
- }
539
- }
540
-
541
- .el-date-editor {
542
- .el-input__prefix {
543
- .el-input__icon {
544
- line-height: 32px;
545
- }
546
- }
547
-
548
- .el-input__suffix {
549
- .el-input__icon {
550
- line-height: 32px;
551
- }
552
- }
553
- }
554
-
555
- // 修改联机选择器的高度
556
- .el-cascader {
557
- height: 32px;
558
- line-height: 32px;
559
-
560
- .el-input {
561
- height: 100%;
562
-
563
- .el-input__suffix {
564
- height: 32px;
565
-
566
- .el-input__suffix-inner {
567
- height: 100%;
568
- display: block;
569
-
570
- .el-input__icon.el-icon-arrow-down {
571
- line-height: 32px;
572
- }
573
- }
574
- }
575
- }
576
- }
577
-
578
- // 修改复选框没有居中对齐
579
- .el-checkbox-group {
580
- display: flex;
581
- align-items: center;
582
- }
583
-
584
- // 修改上传附件
585
- .upload-custom {
586
- height: 32px;
587
-
588
- button {
589
- height: 100%;
590
- }
591
- }
592
-
593
- //修改下拉select 没有右边border
594
- .el-select {
595
- height: 32px;
596
- line-height: 32px;
597
-
598
- .el-input {
599
- height: 100%;
600
- margin-left: 0;
601
-
602
- .el-input__suffix {
603
- height: 32px;
604
-
605
- .el-input__suffix-inner {
606
- height: 100%;
607
- display: block;
608
-
609
- .el-input__icon {
610
- line-height: 32px;
611
- }
612
- }
613
- }
614
- }
615
- }
616
- }
617
-
618
- //国际化下拉
619
- .i18n-box {
620
- .el-select {
621
- height: 32px;
622
- line-height: 32px;
623
-
624
- .el-input {
625
- height: 100%;
626
- margin-left: 0;
627
-
628
- .el-input__suffix {
629
- height: 32px;
630
-
631
- .el-input__suffix-inner {
632
- height: 100%;
633
- display: block;
634
-
635
- .el-input__icon {
636
- line-height: 32px;
637
- }
638
- }
639
- }
640
- }
641
- }
642
- }
643
-
644
- //按钮
645
- // .el-button + .el-button {
646
- // margin-left: 16px;
647
- // }
648
- .el-button.nstc-g6-common-btn-size-s {
649
- margin: 0 4px;
650
- }
651
-
652
- .el-button.nstc-g6-common-btn-size-b {
653
- margin: 0 8px;
654
- }
655
-
656
- .el-button--primary:not(.is-disabled) {
657
- &.nstc-g6-common-btn-1 {
658
- background-color: #007aff;
659
- border-color: #007aff;
660
- color: #fff;
661
- }
662
- }
663
-
664
- .el-button--default:not(.is-disabled) {
665
- &.nstc-g6-common-btn-1 {
666
- border-color: #dddddd;
667
- color: #333;
668
- background-color: #fff;
669
- }
670
- }
671
-
672
- .el-button--primary:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
673
- background-color: #146be6;
674
- border: 1px solid #146be6;
675
- color: #fff;
676
- opacity: 1;
677
- }
678
-
679
- .el-button--default:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
680
- border-color: #146be6;
681
- color: #146be6;
682
- background-color: #fff;
683
- opacity: 1;
684
- }
685
-
686
- .el-button--default:not(.is-disabled).nstc-g6-common-btn-4 {
687
- padding: 0 8px;
688
- height: 28px;
689
- min-width: 72px;
690
- font-size: 14px;
691
- background-color: #fff;
692
- border: 1px solid #ddd;
693
- color: #ff3b30;
694
-
695
- &:hover {
696
- border: 1px solid #ff3b30;
697
- opacity: 1;
698
- }
699
- }
700
-
701
- .el-button--primary:not(.is-disabled, .is-plain).nstc-g6-common-btn-4 {
702
- color: #fff;
703
- background-color: #ff3b30;
704
- border: 1px solid #ff3b30;
705
-
706
- &:hover {
707
- color: #fff;
708
- }
709
- }
710
-
711
- .el-button--primary.is-disabled.nstc-g6-common-btn-1,
712
- .el-button--primary.is-disabled.nstc-g6-common-btn-1:hover,
713
- .el-button--primary.is-disabled.nstc-g6-common-btn-1:focus,
714
- .el-button--primary.is-disabled.nstc-g6-common-btn-1:active,
715
- .el-button--default.is-disabled.nstc-g6-common-btn-1,
716
- .el-button--default.is-disabled.nstc-g6-common-btn-1:hover,
717
- .el-button--default.is-disabled.nstc-g6-common-btn-1:focus,
718
- .el-button--default.is-disabled.nstc-g6-common-btn-1:active,
719
- .el-button--primary.is-disabled.nstc-g6-common-btn-4,
720
- .el-button--primary.is-disabled.nstc-g6-common-btn-4:hover,
721
- .el-button--primary.is-disabled.nstc-g6-common-btn-4:focus,
722
- .el-button--primary.is-disabled.nstc-g6-common-btn-4:active,
723
- .el-button--default.is-disabled.nstc-g6-common-btn-4,
724
- .el-button--default.is-disabled.nstc-g6-common-btn-4:hover,
725
- .el-button--default.is-disabled.nstc-g6-common-btn-4:focus,
726
- .el-button--default.is-disabled.nstc-g6-common-btn-4:active {
727
- color: #ccc;
728
- background-color: #eee;
729
- border-color: #ddd;
730
- }
731
-
732
- // tab 标签颜色
733
- .nstc-tab .el-tabs__item.is-active,
734
- .el-tabs__item.is-active {
735
- color: #1677ff;
736
- }
737
-
738
- .el-tabs__active-bar,
739
- .el-date-table td.current:not(.disabled) span,
740
- .el-slider__bar,
741
- .el-month-table td.end-date .cell,
742
- .el-month-table td.start-date .cell,
743
- .el-pagination.is-background .el-pager li:not(.disabled).active,
744
- .el-alert--info.is-dark {
745
- background-color: #1677ff;
746
- }
747
-
748
- //修改多选框的颜色
749
- .el-checkbox__input.is-checked .el-checkbox__inner {
750
- border-color: #007aff;
751
- background-color: #007aff;
752
- }
753
-
754
- .el-checkbox__inner:hover {
755
- border-color: #007aff;
756
- }
757
-
758
- .el-radio__input.is-checked:not(.is-disabled) .el-radio__inner,
759
- .el-switch.is-checked .el-switch__core,
760
- .el-checkbox__input.is-indeterminate .el-checkbox__inner {
761
- border-color: #007aff;
762
- background: #007aff;
763
- }
764
-
765
- .el-radio__inner:hover,
766
- .el-input-number__decrease:hover:not(.is-disabled)
767
- ~ .el-input
768
- .el-input__inner:not(.is-disabled),
769
- .el-input-number__increase:hover:not(.is-disabled)
770
- ~ .el-input
771
- .el-input__inner:not(.is-disabled),
772
- .el-cascader .el-input.is-focus .el-input__inner {
773
- border-color: #007aff;
774
- }
775
-
776
- //上传 进度条颜色 成功失败颜色
777
- .el-progress.is-success .el-progress-bar__inner {
778
- background-color: #48d2a0;
779
- }
780
-
781
- .el-progress.is-success .el-progress__text {
782
- color: #48d2a0;
783
- }
784
-
785
- // 分页
786
- .cl-pagination .pages {
787
- color: #000;
788
- }
789
-
790
- .cl-pagination .page-jumper[data-v-58107eb6] {
791
- color: #333;
792
- }
793
-
794
- .cl-pagination-total .el-input--suffix .el-input__inner {
795
- color: #333;
796
- }
797
-
798
- .el-pagination__editor.el-input .el-input__inner {
799
- text-align: center !important;
800
- box-sizing: border-box;
801
- }
802
-
803
- .form-group-custom .expand-collapse-header > span,
804
- .form-group-custom .expand-collapse-header-collapse > span {
805
- font-weight: normal;
806
- font-size: 14px;
807
- }
808
-
809
- .expand-collapse-header-title[data-v-15697210] {
810
- font-weight: normal;
811
- color: #333;
812
- }
813
-
814
- .expand-collapse-header:hover .expand-collapse-icon[data-v-15697210],
815
- .expand-collapse-footer:hover .expand-collapse-icon[data-v-15697210] {
816
- color: #bac4cf;
817
- }
818
-
819
- .expand-collapse-icon[data-v-15697210] {
820
- color: #bac4cf;
821
- }
822
-
823
- .expand-collapse-header[data-v-15697210],
824
- .expand-collapse-footer[data-v-15697210] {
825
- span {
826
- color: #333;
827
- }
828
-
829
- cursor: pointer;
830
- background: #f5f5f5;
831
- }
832
-
833
- // 滚动条样式
834
- ::-webkit-scrollbar-thumb {
835
- background-color: #eee;
836
- }
837
-
838
- // 滚动条移动上的样式
839
- ::-webkit-scrollbar-thumb:hover {
840
- background-color: #ccc;
841
- }
842
-
843
- // 修改input 内的选中项样式
844
- .el-tag.el-tag--info {
845
- background-color: #eee;
846
- border-color: #eee;
847
- color: #3d4a57;
848
- }
849
-
850
- //修改表格
851
- .el-table thead.is-group th {
852
- background: #f5f5f5;
853
- }
854
-
855
- .el-table th.is-leaf,
856
- .el-table td {
857
- border-bottom: 1px solid #eee;
858
- border-bottom-width: 1px;
859
- border-bottom-style: solid;
860
- border-bottom-color: #eee;
861
- }
862
-
863
- .el-table--border th,
864
- .el-table--border td {
865
- border-right: 1px solid #eee;
866
- border-right-width: 1px;
867
- border-right-style: solid;
868
- border-right-color: #eee;
869
- }
870
-
871
- .el-table--group,
872
- .el-table--border {
873
- border: 1px solid #eee;
874
- }
875
-
876
- .el-table--group::after,
877
- .el-table--border::after,
878
- .el-table::before {
879
- background-color: #eee;
880
- }
881
-
882
- // 表格高度统一44px
883
- .el-table th,
884
- .el-table td {
885
- padding: 0;
886
- height: 44px;
887
- }
888
-
889
- .el-form-item {
890
- margin-bottom: 15px;
891
- }
892
-
893
- // 解决表格内操作按钮hover
894
- .el-link.is-underline:hover:after {
895
- display: none;
896
- }
897
-
898
- .nstc-file-upload .cell {
899
- padding: 0px 8px 0px 0 !important;
900
- color: #333;
901
- }
902
-
903
- .el-table th.is-leaf {
904
- background-color: #f5f5f5;
905
- font-weight: normal;
906
- }
907
-
908
- .nstc-approvel {
909
- .el-form-item__content {
910
- display: flex;
911
- height: auto;
912
- align-items: center;
913
- }
914
- }
915
- }
916
-
917
- // 修改批量导入弹窗内的样式 没有root-class 覆盖 新增一个class为nstc-dialog-style
918
-
919
- // .nstc-dialog-style {
920
-
921
- // }
922
- //修改上传input样式
923
- .nstc-common-excel-import {
924
- .placeholder-has-file {
925
- color: #3d4a57 !important;
926
- height: 22px;
927
- line-height: 22px;
928
- width: auto;
929
- position: absolute;
930
- top: 50%;
931
- margin-top: -11px;
932
- padding-right: 20px;
933
- left: 10px;
934
- background: #eee;
935
- padding-left: 5px;
936
- border-radius: 2px;
937
- }
938
- }
939
-
940
- // 表格内的input
941
- .cell {
942
- .el-input {
943
- &.el-input--suffix {
944
- height: 32px;
945
- line-height: 32px;
946
-
947
- .el-input__inner {
948
- height: 32px;
949
- }
950
-
951
- .el-input__suffix {
952
- .el-input__suffix-inner {
953
- height: 100%;
954
- display: block;
955
- line-height: 32px;
956
-
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
-
974
- .nstc-g6-common-btn-3:not(.is-disabled):hover {
975
- color: #146be6 !important;
976
- border: 1px solid #146be6 !important;
977
- background-color: #fff !important;
978
- }
979
-
980
- //修改日期picker
981
- .el-picker-panel {
982
- .el-date-table td {
983
- span {
984
- border-radius: 2px;
985
- }
986
- }
987
-
988
- .el-date-table td.today span {
989
- opacity: 0.8;
990
- border-radius: 2px;
991
- }
992
-
993
- .el-date-table td.in-range {
994
- div {
995
- background: rgba(0, 122, 255, 0.1);
996
- }
997
- }
998
- }
999
-
1000
- // 弹框内的table 表头表格
1001
- .el-table .el-table__header th,
1002
- .el-table .el-table__header td {
1003
- padding: 10px 0;
1004
- }
1005
-
1006
- //修改下拉选择hover 问题
1007
- .el-select-dropdown__item {
1008
- color: #333;
1009
- }
1010
-
1011
- .el-select-dropdown.is-multiple .el-select-dropdown__item:hover {
1012
- background-color: rgba(0, 122, 255, 0.1);
1013
- }
1014
-
1015
- .el-select-dropdown.is-multiple
1016
- .el-scrollbar__view
1017
- .el-select-dropdown__item.selected.hover {
1018
- background-color: rgba(0, 122, 255, 0.1);
1019
- }
1020
-
1021
- .el-select-dropdown.el-popper .el-select-dropdown__item.hover,
1022
- .el-select-dropdown.el-popper .el-select-dropdown__item:hover {
1023
- background-color: rgba(0, 122, 255, 0.1);
1024
- }
1025
-
1026
- .el-button + .el-button {
1027
- margin-left: 0;
1028
- }
1029
-
1030
- .el-button.nstc-g6-common-btn-size-s {
1031
- margin: 0 4px;
1032
- }
1033
-
1034
- .el-button.nstc-g6-common-btn-size-b {
1035
- margin: 0 8px;
1036
- }
1037
-
1038
- .nstc-file-upload .cell {
1039
- padding: 0px 8px 0px 0 !important;
1040
- color: #333;
1041
- }
1042
-
1043
- .el-table th.is-leaf {
1044
- background-color: #f5f5f5;
1045
- font-weight: normal;
1046
- }
1047
-
1048
- .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):hover,
1049
- .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):focus:hover {
1050
- border-color: #146be6 !important;
1051
- color: #146be6 !important;
1052
- background-color: #fff !important;
1053
- }
1054
-
1055
- .el-input .el-input__inner:hover {
1056
- border: 1px solid #007aff;
1057
- }
1058
-
1059
- .el-select:hover .el-input .el-input__inner {
1060
- border: 1px solid #007aff;
1061
- }
1062
-
1063
- .el-table th,
1064
- .el-table td {
1065
- padding: 0;
1066
- height: 44px;
1067
- }
1068
-
1069
- .drop.el-popper[x-placement^='bottom'] ::v-deep .popper__arrow {
1070
- display: none;
1071
- }
1072
-
1073
- .drop-btn.el-dropdown::v-deep .el-icon-arrow-down {
1074
- display: none;
1075
- }
1076
-
1077
- .drop-btn-item {
1078
- width: 72px;
1079
- height: 26px;
1080
- background: #007aff;
1081
- border-radius: 4px;
1082
- padding: 0;
1083
- }
1084
-
1085
- .nstc-import-error-num {
1086
- color: #fb5555;
1087
- }
1088
-
1089
- .excel-unload-input {
1090
- position: relative;
1091
- overflow: hidden;
1092
- }
1093
-
1094
- .placeholder-has-file {
1095
- color: #242424 !important;
1096
- height: 35px;
1097
- width: 999px;
1098
- position: absolute;
1099
- top: -1px;
1100
- left: 10px;
1101
- }
1102
-
1103
- .excel-unload-input-img {
1104
- position: absolute;
1105
- right: 10px;
1106
- top: 8px;
1107
- }
1108
-
1109
- .file-name {
1110
- width: 141px;
1111
- height: 20px;
1112
- font-size: 14px;
1113
- color: #333333;
1114
- line-height: 20px;
1115
- font-family: PingFangSC, PingFangSC-Regular;
1116
- }
1117
-
1118
- .effect-data {
1119
- color: #48d2a0;
1120
- }
1121
-
1122
- .fail-box {
1123
- margin: 16px 0;
1124
- }
1125
-
1126
- .footer {
1127
- text-align: center;
1128
-
1129
- & .el-button {
1130
- width: 74px;
1131
- height: 32px;
1132
- background: #1677ff;
1133
- border-radius: 4px;
1134
- padding: 0;
1135
- }
1136
- }
1137
-
1138
- .import-process {
1139
- margin: 16px 16px 14px 0;
1140
- line-height: 20px;
1141
- }
1142
-
1143
- .import-process::after {
1144
- display: inline-block;
1145
- content: '';
1146
- width: 283px;
1147
- height: 4px;
1148
- background: #48d2a0;
1149
- border-radius: 4px;
1150
- margin-left: 16px;
1151
- }
1152
-
1153
- .fail-excel-import-box {
1154
- margin: 20px 0 14px 0;
1155
- padding: 0 16px 16px 16px;
1156
- box-sizing: border-box;
1157
- border: 1px solid #dfe6ee;
1158
-
1159
- &-title {
1160
- height: 54px;
1161
- line-height: 54px;
1162
- color: #262d34;
1163
- font-size: 16px;
1164
- }
1165
- }
1166
- </style>
1
+ <template>
2
+ <div>
3
+ <el-dropdown
4
+ trigger="click"
5
+ placement="bottom-start"
6
+ @command="handleCommand"
7
+ >
8
+ <el-button type="primary" class="drop-btn-item">
9
+ 导入<i class="el-icon-arrow-down el-icon--right"></i>
10
+ </el-button>
11
+ <el-dropdown-menu slot="dropdown" class="drop">
12
+ <el-dropdown-item command="a">导入数据</el-dropdown-item>
13
+ <el-dropdown-item command="b">模板下载</el-dropdown-item>
14
+ </el-dropdown-menu>
15
+ </el-dropdown>
16
+ <NstcDialog
17
+ v-model="dialogVisible"
18
+ :title="title"
19
+ width="1200px"
20
+ append-to-body
21
+ v-bind="$attrs"
22
+ :footer-handlers="footerHandlers"
23
+ class="nstc-dialog-style"
24
+ v-on="$listeners"
25
+ @cancel="resetAction"
26
+ >
27
+ <div class="file-box">
28
+ <span class="file-box-title">导入文件</span>
29
+ <span class="file-name">{{ fileName }}</span>
30
+ </div>
31
+ <div class="import-process">导入进度</div>
32
+ <div v-show="statisticsFlag" class="excel-upload-result-box">
33
+ <div class="excel-upload-result-box-head">
34
+ 导入统计
35
+ <span>共计导入 {{ validateResult.totalNum }}条, </span>
36
+ <span
37
+ >其中有效数据<span class="effect-data">
38
+ {{ validateResult.successNum }} </span
39
+ >条,
40
+ </span>
41
+ <span
42
+ >无效数据
43
+ <span class="nstc-import-error-num">{{
44
+ validateResult.errorList.length
45
+ }}</span>
46
+ 条。</span
47
+ >
48
+ </div>
49
+ </div>
50
+ <div v-show="hasErrorFlag" class="fail-excel-import-box fail-box">
51
+ <div class="fail-excel-import-box-title">无效数据详情</div>
52
+ <el-table :data="errorListTemp" style="width: 100%">
53
+ <el-table-column
54
+ v-for="column in columnsListTemp"
55
+ :key="column.prop"
56
+ :prop="column.prop"
57
+ :label="column.label"
58
+ :align="column.align"
59
+ :min-width="column.width"
60
+ >
61
+ <template slot-scope="scope">
62
+ <span v-html="scope.row[column.prop]"></span>
63
+ </template>
64
+ </el-table-column>
65
+ </el-table>
66
+ </div>
67
+ <div v-show="hasErrorFlag" class="end-tips">
68
+ 上述数据输入有误,请修改导入文件中相关信息!
69
+ </div>
70
+ <div class="footer">
71
+ <el-button
72
+ type="primary"
73
+ :disabled="excelData.tableData.length === 0 || confirmDisabledFlag"
74
+ @click="cancel"
75
+ >确定
76
+ </el-button>
77
+ </div>
78
+ </NstcDialog>
79
+ </div>
80
+ </template>
81
+ <script>
82
+ import XLSX from 'xlsx'
83
+ import axios from '../../../src/utils/axios.js'
84
+ import NstcDialog from '../NstcDialog/NstcDialog'
85
+
86
+ export default {
87
+ name: 'NstcExcelImportN',
88
+ components: {
89
+ NstcDialog
90
+ },
91
+ props: {
92
+ title: {
93
+ type: String,
94
+ default: function () {
95
+ return '文件导入'
96
+ }
97
+ },
98
+ tips: {
99
+ type: Array,
100
+ default: () => {
101
+ return []
102
+ }
103
+ },
104
+ templateUrl: {
105
+ type: String,
106
+ default: ''
107
+ },
108
+ downConfig: {
109
+ type: Object,
110
+ default() {
111
+ return {
112
+ isFrontDown: true,
113
+ fileName: '下载.xlsx'
114
+ }
115
+ }
116
+ },
117
+ footerHandlers: {
118
+ type: Object,
119
+ default: function () {
120
+ return {
121
+ // cancel: {
122
+ // text: '取消'
123
+ // },
124
+ // confirm: {
125
+ // text: '导入'
126
+ // }
127
+ }
128
+ }
129
+ },
130
+ beforeUpload: Function, // eslint-disable-line
131
+ callback: {
132
+ type: Function,
133
+ default: () => {}
134
+ },
135
+ handleConfirm: {
136
+ type: Function,
137
+ default: () => {}
138
+ },
139
+ // 校验结果
140
+ validateResult: {
141
+ type: Object,
142
+ default: () => {
143
+ return {
144
+ totalNum: 0,
145
+ successNum: 0,
146
+ columnsList: [],
147
+ errorList: []
148
+ }
149
+ }
150
+ },
151
+ reset: {
152
+ type: Boolean,
153
+ default: false
154
+ },
155
+ dialogVisible: {
156
+ type: Boolean,
157
+ default: false
158
+ }
159
+ },
160
+ data() {
161
+ return {
162
+ loading: false,
163
+ excelData: {
164
+ tableHeader: [],
165
+ tableData: []
166
+ },
167
+
168
+ analysisText: 'analysis',
169
+ fileName: '',
170
+ statisticsFlag: false,
171
+ columnsListTemp: [],
172
+ errorListTemp: [],
173
+ successFlag: false,
174
+ confirmDisabledFlag: true
175
+ }
176
+ },
177
+ computed: {
178
+ hasErrorFlag() {
179
+ return (
180
+ this.validateResult.errorList &&
181
+ this.validateResult.errorList.length > 0
182
+ )
183
+ }
184
+ },
185
+ watch: {
186
+ validateResult: {
187
+ handler(newValue, oldValue) {
188
+ console.log('值更新了', newValue, oldValue)
189
+ newValue.columnsList.length && (this.statisticsFlag = true)
190
+
191
+ // 获取每行字符的最大长度
192
+ const lengthObj = {}
193
+ newValue.errorList.map((item) => {
194
+ const keys = newValue.columnsList.map((i) => {
195
+ return i['prop']
196
+ })
197
+ keys.map((k, i) => {
198
+ if (item[k] && (!lengthObj[i] || lengthObj[i] < item[k].length)) {
199
+ lengthObj[i] = item[k].length
200
+ }
201
+ })
202
+ })
203
+
204
+ // 更新column
205
+ this.columnsListTemp = newValue.columnsList.map((i, index) => {
206
+ console.log('iiiiiii', i, i.errorList)
207
+ return {
208
+ ...i,
209
+ width: 16 * lengthObj[index] + 60,
210
+ component: {
211
+ template: `<div v-html="scope.row['${i.prop}']"></div>`
212
+ }
213
+ }
214
+ })
215
+
216
+ // 更新errorList的tableData
217
+ this.errorListTemp.length = 0
218
+ newValue.errorList.map((i) => {
219
+ const temp = {}
220
+ Object.keys(i).map((k) => {
221
+ if (i.errorList && i.errorList.includes(k)) {
222
+ temp[k] = `<div class="nstc-g6-common-color-danger">${i[k]}</div>`
223
+ } else {
224
+ temp[k] = i[k]
225
+ }
226
+ })
227
+ this.errorListTemp.push(temp)
228
+ })
229
+
230
+ console.log(this.errorListTemp, this.columnsListTemp)
231
+
232
+ this.successFlag =
233
+ this.validateResult.successNum !== 0 &&
234
+ this.validateResult.successNum === this.validateResult.totalNum
235
+
236
+ if (this.footerHandlers.confirm) {
237
+ this.footerHandlers.confirm.disabled = !this.successFlag
238
+ }
239
+
240
+ this.confirmDisabledFlag = !this.successFlag
241
+
242
+ // nstc-g6-common-color-danger
243
+ this.columnsList &&
244
+ this.columnsList.map((i) => {
245
+ console.log(i)
246
+ })
247
+ },
248
+ deep: true
249
+ }
250
+ },
251
+ methods: {
252
+ cancel() {
253
+ this.handleConfirmImportExcel()
254
+ },
255
+ async handleConfirmImportExcel() {
256
+ await this.handleConfirm(this.excelData)
257
+ },
258
+ handleCommand(command) {
259
+ if (command == 'a') {
260
+ this.seletFile()
261
+ } else if (command == 'b') {
262
+ this.downloadTemplate()
263
+ }
264
+ },
265
+ seletFile() {
266
+ let input = document.createElement('input')
267
+ let self = this
268
+ input.type = 'file'
269
+ input.accept = '.xlsx, .xls, .csv'
270
+ input.addEventListener('change', function (event) {
271
+ const files = event.target.files
272
+ const rawFile = files[0] // only use files[0]
273
+ console.log('导入的文件:', rawFile)
274
+ self.fileName = rawFile.name
275
+ if (!rawFile) return
276
+ self.upload(rawFile)
277
+ this.value = null // fix can't select the same excel
278
+ })
279
+ input.click()
280
+ },
281
+ /*解析传入的表格 */
282
+ readerData(rawFile) {
283
+ this.loading = true
284
+ return new Promise((resolve) => {
285
+ const reader = new FileReader()
286
+ reader.onload = (e) => {
287
+ const data = e.target.result
288
+ const workbook = XLSX.read(data, {
289
+ type: 'array',
290
+ cellDates: true
291
+ })
292
+ const firstSheetName = workbook.SheetNames[0]
293
+ const worksheet = workbook.Sheets[firstSheetName]
294
+ const header = this.getHeaderRow(worksheet)
295
+ const results = XLSX.utils.sheet_to_json(worksheet)
296
+
297
+ this.generateData({ header, results })
298
+ this.loading = false
299
+ resolve()
300
+ }
301
+ reader.readAsArrayBuffer(rawFile)
302
+ })
303
+ },
304
+ generateData({ header, results }) {
305
+ this.excelData.tableHeader = header
306
+ this.excelData.tableData = results
307
+ this.callback && this.callback(this.excelData)
308
+ },
309
+ getHeaderRow(sheet) {
310
+ console.log(sheet)
311
+ const headers = []
312
+ const range = XLSX.utils.decode_range(sheet['!ref'])
313
+ let C
314
+ const R = range.s.r
315
+ /* start in the first row */
316
+ for (C = range.s.c; C <= range.e.c; ++C) {
317
+ /* walk every column in the range */
318
+ const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]
319
+ /* find the cell in the first row */
320
+ let hdr = 'UNKNOWN ' + C // <-- replace with your desired default
321
+ if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
322
+ headers.push(hdr)
323
+ }
324
+ return headers
325
+ },
326
+ isExcel(file) {
327
+ return /\.(xlsx|xls|csv)$/.test(file.name)
328
+ },
329
+ /*上传文件 */
330
+ upload(rawFile) {
331
+ if (!this.beforeUpload) {
332
+ this.readerData(rawFile)
333
+ return
334
+ }
335
+ const before = this.beforeUpload(rawFile)
336
+ if (before) {
337
+ this.readerData(rawFile)
338
+ }
339
+ },
340
+ // 下载文件
341
+ downloadTemplate() {
342
+ // 前端下载
343
+ if (this.downConfig.isFrontDown) {
344
+ const aEl = document.createElement('a')
345
+ aEl.setAttribute('href', this.templateUrl)
346
+ aEl.target = '_blank'
347
+ // aEl.download = this.templateUrl
348
+ aEl.click()
349
+ } else {
350
+ axios({
351
+ url: this.templateUrl,
352
+ method: 'get',
353
+ responseType: 'blob'
354
+ }).then((res) => {
355
+ const content = res
356
+ const blob = new Blob([content])
357
+ if ('download' in document.createElement('a')) {
358
+ const link = document.createElement('a')
359
+ link.download = this.downConfig.fileName
360
+ link.style.display = 'none'
361
+ link.href = URL.createObjectURL(blob)
362
+ document.body.appendChild(link)
363
+ link.click()
364
+ URL.revokeObjectURL(link.href)
365
+ document.body.removeChild(link)
366
+ } else {
367
+ navigator.msSaveBlob(blob, this.downConfig.fileName)
368
+ }
369
+ })
370
+ }
371
+ },
372
+ //关闭弹窗
373
+ resetAction(flag) {
374
+ console.log(flag)
375
+ }
376
+ }
377
+ }
378
+ </script>
379
+ <style lang="scss" scoped>
380
+ .root-class {
381
+ .nstc-wrap-input-hover .select-in-dialog-result:hover,
382
+ .nstc-wrap-input-hover .nstc-common-form-textarea textarea:hover,
383
+ .nstc-wrap-input-hover .el-input__inner:hover {
384
+ border: 1px solid #007aff;
385
+ box-shadow: 0 0 4px 0 #007aff;
386
+ }
387
+
388
+ .nstc-wrap-input-hover .select-in-dialog-result:hover {
389
+ .select-in-dialog-result-remote-icon {
390
+ border-left: 1px solid #007aff;
391
+ }
392
+ }
393
+
394
+ .nstc-wrap-input-hover .select-in-dialog-result {
395
+ .el-select {
396
+ .el-input__inner:hover {
397
+ border: none !important;
398
+ }
399
+ }
400
+ }
401
+
402
+ .select-in-dialog-result:hover {
403
+ border: 1px solid #007aff;
404
+ box-shadow: 0 0 4px 0 #007aff;
405
+
406
+ .select-in-dialog-result-remote-icon {
407
+ border-left: 1px solid #007aff;
408
+ }
409
+ }
410
+
411
+ .is-disabled {
412
+ .select-in-dialog-result:hover {
413
+ border: 1px solid #ccc !important;
414
+ box-shadow: none;
415
+
416
+ .select-in-dialog-result-remote-icon {
417
+ border-left: none;
418
+ }
419
+ }
420
+ }
421
+
422
+ .el-form-item.is-error .el-input__inner:focus,
423
+ .el-form-item.is-error .el-textarea__inner:focus,
424
+ .el-input__inner:focus,
425
+ .el-select .el-input.is-focus .el-input__inner,
426
+ .el-textarea__inner:focus {
427
+ box-shadow: 0 0 4px 0 #007aff;
428
+ border-color: #007aff;
429
+ }
430
+
431
+ .el-input {
432
+ .el-input__suffix {
433
+ line-height: 32px;
434
+
435
+ .el-input__suffix-inner {
436
+ height: 100%;
437
+ display: block;
438
+
439
+ .el-input__icon {
440
+ line-height: 32px;
441
+ }
442
+ }
443
+ }
444
+ }
445
+
446
+ //日期修改
447
+ .el-date-editor {
448
+ // 修改日期选择框的图片居中
449
+ .el-range__icon {
450
+ line-height: 24px;
451
+ }
452
+
453
+ //修改日期选择框连接符居中
454
+ .el-range-separator {
455
+ line-height: 24px;
456
+ }
457
+ }
458
+
459
+ //日期选择框
460
+ .el-date-editor {
461
+ .el-range__close-icon {
462
+ line-height: 24px;
463
+ }
464
+ }
465
+
466
+ .el-date-editor.nstc-input-small {
467
+ .el-range__close-icon {
468
+ line-height: 18px;
469
+ }
470
+ }
471
+
472
+ //表单
473
+ .el-form-item__content {
474
+ display: flex;
475
+ height: 40px;
476
+ align-items: center;
477
+
478
+ .el-input {
479
+ height: 32px;
480
+ line-height: 32px;
481
+ // width: 224px;
482
+ }
483
+
484
+ .el-input.is-disabled .el-input__inner {
485
+ background-color: #f5f7fa;
486
+ border-color: #dddddd;
487
+ color: #ccc;
488
+ }
489
+
490
+ .input-custom {
491
+ display: flex;
492
+ align-items: center;
493
+ // 门户的样式.el-input__inner 设置为32px 应该是在.el-input上面设置
494
+ .el-input {
495
+ height: 32px;
496
+ line-height: 32px;
497
+ //修改input 后面单位的高度与input 不一致
498
+ .el-input-group__append {
499
+ line-height: 1;
500
+ }
501
+
502
+ .el-input__suffix {
503
+ height: 32px;
504
+
505
+ .el-input__suffix-inner {
506
+ height: 100%;
507
+ display: block;
508
+
509
+ .el-input__icon {
510
+ line-height: 32px;
511
+ }
512
+ }
513
+ }
514
+ }
515
+ }
516
+
517
+ .form-create-select-tree {
518
+ .el-input {
519
+ height: 32px;
520
+ line-height: 32px;
521
+ //修改input 后面单位的高度与input 不一致
522
+ .el-input-group__append {
523
+ line-height: 1;
524
+ }
525
+
526
+ .el-input__suffix {
527
+ height: 32px;
528
+
529
+ .el-input__suffix-inner {
530
+ height: 100%;
531
+ display: block;
532
+
533
+ .el-input__icon {
534
+ line-height: 32px;
535
+ }
536
+ }
537
+ }
538
+ }
539
+ }
540
+
541
+ .el-date-editor {
542
+ .el-input__prefix {
543
+ .el-input__icon {
544
+ line-height: 32px;
545
+ }
546
+ }
547
+
548
+ .el-input__suffix {
549
+ .el-input__icon {
550
+ line-height: 32px;
551
+ }
552
+ }
553
+ }
554
+
555
+ // 修改联机选择器的高度
556
+ .el-cascader {
557
+ height: 32px;
558
+ line-height: 32px;
559
+
560
+ .el-input {
561
+ height: 100%;
562
+
563
+ .el-input__suffix {
564
+ height: 32px;
565
+
566
+ .el-input__suffix-inner {
567
+ height: 100%;
568
+ display: block;
569
+
570
+ .el-input__icon.el-icon-arrow-down {
571
+ line-height: 32px;
572
+ }
573
+ }
574
+ }
575
+ }
576
+ }
577
+
578
+ // 修改复选框没有居中对齐
579
+ .el-checkbox-group {
580
+ display: flex;
581
+ align-items: center;
582
+ }
583
+
584
+ // 修改上传附件
585
+ .upload-custom {
586
+ height: 32px;
587
+
588
+ button {
589
+ height: 100%;
590
+ }
591
+ }
592
+
593
+ //修改下拉select 没有右边border
594
+ .el-select {
595
+ height: 32px;
596
+ line-height: 32px;
597
+
598
+ .el-input {
599
+ height: 100%;
600
+ margin-left: 0;
601
+
602
+ .el-input__suffix {
603
+ height: 32px;
604
+
605
+ .el-input__suffix-inner {
606
+ height: 100%;
607
+ display: block;
608
+
609
+ .el-input__icon {
610
+ line-height: 32px;
611
+ }
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+
618
+ //国际化下拉
619
+ .i18n-box {
620
+ .el-select {
621
+ height: 32px;
622
+ line-height: 32px;
623
+
624
+ .el-input {
625
+ height: 100%;
626
+ margin-left: 0;
627
+
628
+ .el-input__suffix {
629
+ height: 32px;
630
+
631
+ .el-input__suffix-inner {
632
+ height: 100%;
633
+ display: block;
634
+
635
+ .el-input__icon {
636
+ line-height: 32px;
637
+ }
638
+ }
639
+ }
640
+ }
641
+ }
642
+ }
643
+
644
+ //按钮
645
+ // .el-button + .el-button {
646
+ // margin-left: 16px;
647
+ // }
648
+ .el-button.nstc-g6-common-btn-size-s {
649
+ margin: 0 4px;
650
+ }
651
+
652
+ .el-button.nstc-g6-common-btn-size-b {
653
+ margin: 0 8px;
654
+ }
655
+
656
+ .el-button--primary:not(.is-disabled) {
657
+ &.nstc-g6-common-btn-1 {
658
+ background-color: #007aff;
659
+ border-color: #007aff;
660
+ color: #fff;
661
+ }
662
+ }
663
+
664
+ .el-button--default:not(.is-disabled) {
665
+ &.nstc-g6-common-btn-1 {
666
+ border-color: #dddddd;
667
+ color: #333;
668
+ background-color: #fff;
669
+ }
670
+ }
671
+
672
+ .el-button--primary:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
673
+ background-color: #146be6;
674
+ border: 1px solid #146be6;
675
+ color: #fff;
676
+ opacity: 1;
677
+ }
678
+
679
+ .el-button--default:not(.is-disabled).nstc-g6-common-btn-1:not(.is-disabled):hover {
680
+ border-color: #146be6;
681
+ color: #146be6;
682
+ background-color: #fff;
683
+ opacity: 1;
684
+ }
685
+
686
+ .el-button--default:not(.is-disabled).nstc-g6-common-btn-4 {
687
+ padding: 0 8px;
688
+ height: 28px;
689
+ min-width: 72px;
690
+ font-size: 14px;
691
+ background-color: #fff;
692
+ border: 1px solid #ddd;
693
+ color: #ff3b30;
694
+
695
+ &:hover {
696
+ border: 1px solid #ff3b30;
697
+ opacity: 1;
698
+ }
699
+ }
700
+
701
+ .el-button--primary:not(.is-disabled, .is-plain).nstc-g6-common-btn-4 {
702
+ color: #fff;
703
+ background-color: #ff3b30;
704
+ border: 1px solid #ff3b30;
705
+
706
+ &:hover {
707
+ color: #fff;
708
+ }
709
+ }
710
+
711
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1,
712
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1:hover,
713
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1:focus,
714
+ .el-button--primary.is-disabled.nstc-g6-common-btn-1:active,
715
+ .el-button--default.is-disabled.nstc-g6-common-btn-1,
716
+ .el-button--default.is-disabled.nstc-g6-common-btn-1:hover,
717
+ .el-button--default.is-disabled.nstc-g6-common-btn-1:focus,
718
+ .el-button--default.is-disabled.nstc-g6-common-btn-1:active,
719
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4,
720
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4:hover,
721
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4:focus,
722
+ .el-button--primary.is-disabled.nstc-g6-common-btn-4:active,
723
+ .el-button--default.is-disabled.nstc-g6-common-btn-4,
724
+ .el-button--default.is-disabled.nstc-g6-common-btn-4:hover,
725
+ .el-button--default.is-disabled.nstc-g6-common-btn-4:focus,
726
+ .el-button--default.is-disabled.nstc-g6-common-btn-4:active {
727
+ color: #ccc;
728
+ background-color: #eee;
729
+ border-color: #ddd;
730
+ }
731
+
732
+ // tab 标签颜色
733
+ .nstc-tab .el-tabs__item.is-active,
734
+ .el-tabs__item.is-active {
735
+ color: #1677ff;
736
+ }
737
+
738
+ .el-tabs__active-bar,
739
+ .el-date-table td.current:not(.disabled) span,
740
+ .el-slider__bar,
741
+ .el-month-table td.end-date .cell,
742
+ .el-month-table td.start-date .cell,
743
+ .el-pagination.is-background .el-pager li:not(.disabled).active,
744
+ .el-alert--info.is-dark {
745
+ background-color: #1677ff;
746
+ }
747
+
748
+ //修改多选框的颜色
749
+ .el-checkbox__input.is-checked .el-checkbox__inner {
750
+ border-color: #007aff;
751
+ background-color: #007aff;
752
+ }
753
+
754
+ .el-checkbox__inner:hover {
755
+ border-color: #007aff;
756
+ }
757
+
758
+ .el-radio__input.is-checked:not(.is-disabled) .el-radio__inner,
759
+ .el-switch.is-checked .el-switch__core,
760
+ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
761
+ border-color: #007aff;
762
+ background: #007aff;
763
+ }
764
+
765
+ .el-radio__inner:hover,
766
+ .el-input-number__decrease:hover:not(.is-disabled)
767
+ ~ .el-input
768
+ .el-input__inner:not(.is-disabled),
769
+ .el-input-number__increase:hover:not(.is-disabled)
770
+ ~ .el-input
771
+ .el-input__inner:not(.is-disabled),
772
+ .el-cascader .el-input.is-focus .el-input__inner {
773
+ border-color: #007aff;
774
+ }
775
+
776
+ //上传 进度条颜色 成功失败颜色
777
+ .el-progress.is-success .el-progress-bar__inner {
778
+ background-color: #48d2a0;
779
+ }
780
+
781
+ .el-progress.is-success .el-progress__text {
782
+ color: #48d2a0;
783
+ }
784
+
785
+ // 分页
786
+ .cl-pagination .pages {
787
+ color: #000;
788
+ }
789
+
790
+ .cl-pagination .page-jumper[data-v-58107eb6] {
791
+ color: #333;
792
+ }
793
+
794
+ .cl-pagination-total .el-input--suffix .el-input__inner {
795
+ color: #333;
796
+ }
797
+
798
+ .el-pagination__editor.el-input .el-input__inner {
799
+ text-align: center !important;
800
+ box-sizing: border-box;
801
+ }
802
+
803
+ .form-group-custom .expand-collapse-header > span,
804
+ .form-group-custom .expand-collapse-header-collapse > span {
805
+ font-weight: normal;
806
+ font-size: 14px;
807
+ }
808
+
809
+ .expand-collapse-header-title[data-v-15697210] {
810
+ font-weight: normal;
811
+ color: #333;
812
+ }
813
+
814
+ .expand-collapse-header:hover .expand-collapse-icon[data-v-15697210],
815
+ .expand-collapse-footer:hover .expand-collapse-icon[data-v-15697210] {
816
+ color: #bac4cf;
817
+ }
818
+
819
+ .expand-collapse-icon[data-v-15697210] {
820
+ color: #bac4cf;
821
+ }
822
+
823
+ .expand-collapse-header[data-v-15697210],
824
+ .expand-collapse-footer[data-v-15697210] {
825
+ span {
826
+ color: #333;
827
+ }
828
+
829
+ cursor: pointer;
830
+ background: #f5f5f5;
831
+ }
832
+
833
+ // 滚动条样式
834
+ ::-webkit-scrollbar-thumb {
835
+ background-color: #eee;
836
+ }
837
+
838
+ // 滚动条移动上的样式
839
+ ::-webkit-scrollbar-thumb:hover {
840
+ background-color: #ccc;
841
+ }
842
+
843
+ // 修改input 内的选中项样式
844
+ .el-tag.el-tag--info {
845
+ background-color: #eee;
846
+ border-color: #eee;
847
+ color: #3d4a57;
848
+ }
849
+
850
+ //修改表格
851
+ .el-table thead.is-group th {
852
+ background: #f5f5f5;
853
+ }
854
+
855
+ .el-table th.is-leaf,
856
+ .el-table td {
857
+ border-bottom: 1px solid #eee;
858
+ border-bottom-width: 1px;
859
+ border-bottom-style: solid;
860
+ border-bottom-color: #eee;
861
+ }
862
+
863
+ .el-table--border th,
864
+ .el-table--border td {
865
+ border-right: 1px solid #eee;
866
+ border-right-width: 1px;
867
+ border-right-style: solid;
868
+ border-right-color: #eee;
869
+ }
870
+
871
+ .el-table--group,
872
+ .el-table--border {
873
+ border: 1px solid #eee;
874
+ }
875
+
876
+ .el-table--group::after,
877
+ .el-table--border::after,
878
+ .el-table::before {
879
+ background-color: #eee;
880
+ }
881
+
882
+ // 表格高度统一44px
883
+ .el-table th,
884
+ .el-table td {
885
+ padding: 0;
886
+ height: 44px;
887
+ }
888
+
889
+ .el-form-item {
890
+ margin-bottom: 15px;
891
+ }
892
+
893
+ // 解决表格内操作按钮hover
894
+ .el-link.is-underline:hover:after {
895
+ display: none;
896
+ }
897
+
898
+ .nstc-file-upload .cell {
899
+ padding: 0px 8px 0px 0 !important;
900
+ color: #333;
901
+ }
902
+
903
+ .el-table th.is-leaf {
904
+ background-color: #f5f5f5;
905
+ font-weight: normal;
906
+ }
907
+
908
+ .nstc-approvel {
909
+ .el-form-item__content {
910
+ display: flex;
911
+ height: auto;
912
+ align-items: center;
913
+ }
914
+ }
915
+ }
916
+
917
+ // 修改批量导入弹窗内的样式 没有root-class 覆盖 新增一个class为nstc-dialog-style
918
+
919
+ // .nstc-dialog-style {
920
+
921
+ // }
922
+ //修改上传input样式
923
+ .nstc-common-excel-import {
924
+ .placeholder-has-file {
925
+ color: #3d4a57 !important;
926
+ height: 22px;
927
+ line-height: 22px;
928
+ width: auto;
929
+ position: absolute;
930
+ top: 50%;
931
+ margin-top: -11px;
932
+ padding-right: 20px;
933
+ left: 10px;
934
+ background: #eee;
935
+ padding-left: 5px;
936
+ border-radius: 2px;
937
+ }
938
+ }
939
+
940
+ // 表格内的input
941
+ .cell {
942
+ .el-input {
943
+ &.el-input--suffix {
944
+ height: 32px;
945
+ line-height: 32px;
946
+
947
+ .el-input__inner {
948
+ height: 32px;
949
+ }
950
+
951
+ .el-input__suffix {
952
+ .el-input__suffix-inner {
953
+ height: 100%;
954
+ display: block;
955
+ line-height: 32px;
956
+
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
+
974
+ .nstc-g6-common-btn-3:not(.is-disabled):hover {
975
+ color: #146be6 !important;
976
+ border: 1px solid #146be6 !important;
977
+ background-color: #fff !important;
978
+ }
979
+
980
+ //修改日期picker
981
+ .el-picker-panel {
982
+ .el-date-table td {
983
+ span {
984
+ border-radius: 2px;
985
+ }
986
+ }
987
+
988
+ .el-date-table td.today span {
989
+ opacity: 0.8;
990
+ border-radius: 2px;
991
+ }
992
+
993
+ .el-date-table td.in-range {
994
+ div {
995
+ background: rgba(0, 122, 255, 0.1);
996
+ }
997
+ }
998
+ }
999
+
1000
+ // 弹框内的table 表头表格
1001
+ .el-table .el-table__header th,
1002
+ .el-table .el-table__header td {
1003
+ padding: 10px 0;
1004
+ }
1005
+
1006
+ //修改下拉选择hover 问题
1007
+ .el-select-dropdown__item {
1008
+ color: #333;
1009
+ }
1010
+
1011
+ .el-select-dropdown.is-multiple .el-select-dropdown__item:hover {
1012
+ background-color: rgba(0, 122, 255, 0.1);
1013
+ }
1014
+
1015
+ .el-select-dropdown.is-multiple
1016
+ .el-scrollbar__view
1017
+ .el-select-dropdown__item.selected.hover {
1018
+ background-color: rgba(0, 122, 255, 0.1);
1019
+ }
1020
+
1021
+ .el-select-dropdown.el-popper .el-select-dropdown__item.hover,
1022
+ .el-select-dropdown.el-popper .el-select-dropdown__item:hover {
1023
+ background-color: rgba(0, 122, 255, 0.1);
1024
+ }
1025
+
1026
+ .el-button + .el-button {
1027
+ margin-left: 0;
1028
+ }
1029
+
1030
+ .el-button.nstc-g6-common-btn-size-s {
1031
+ margin: 0 4px;
1032
+ }
1033
+
1034
+ .el-button.nstc-g6-common-btn-size-b {
1035
+ margin: 0 8px;
1036
+ }
1037
+
1038
+ .nstc-file-upload .cell {
1039
+ padding: 0px 8px 0px 0 !important;
1040
+ color: #333;
1041
+ }
1042
+
1043
+ .el-table th.is-leaf {
1044
+ background-color: #f5f5f5;
1045
+ font-weight: normal;
1046
+ }
1047
+
1048
+ .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):hover,
1049
+ .el-button--default.nstc-g6-common-btn-1:not(.is-disabled):focus:hover {
1050
+ border-color: #146be6 !important;
1051
+ color: #146be6 !important;
1052
+ background-color: #fff !important;
1053
+ }
1054
+
1055
+ .el-input .el-input__inner:hover {
1056
+ border: 1px solid #007aff;
1057
+ }
1058
+
1059
+ .el-select:hover .el-input .el-input__inner {
1060
+ border: 1px solid #007aff;
1061
+ }
1062
+
1063
+ .el-table th,
1064
+ .el-table td {
1065
+ padding: 0;
1066
+ height: 44px;
1067
+ }
1068
+
1069
+ .drop.el-popper[x-placement^='bottom'] ::v-deep .popper__arrow {
1070
+ display: none;
1071
+ }
1072
+
1073
+ .drop-btn.el-dropdown::v-deep .el-icon-arrow-down {
1074
+ display: none;
1075
+ }
1076
+
1077
+ .drop-btn-item {
1078
+ width: 72px;
1079
+ height: 26px;
1080
+ background: #007aff;
1081
+ border-radius: 4px;
1082
+ padding: 0;
1083
+ }
1084
+
1085
+ .nstc-import-error-num {
1086
+ color: #fb5555;
1087
+ }
1088
+
1089
+ .excel-unload-input {
1090
+ position: relative;
1091
+ overflow: hidden;
1092
+ }
1093
+
1094
+ .placeholder-has-file {
1095
+ color: #242424 !important;
1096
+ height: 35px;
1097
+ width: 999px;
1098
+ position: absolute;
1099
+ top: -1px;
1100
+ left: 10px;
1101
+ }
1102
+
1103
+ .excel-unload-input-img {
1104
+ position: absolute;
1105
+ right: 10px;
1106
+ top: 8px;
1107
+ }
1108
+
1109
+ .file-name {
1110
+ width: 141px;
1111
+ height: 20px;
1112
+ font-size: 14px;
1113
+ color: #333333;
1114
+ line-height: 20px;
1115
+ font-family: PingFangSC, PingFangSC-Regular;
1116
+ }
1117
+
1118
+ .effect-data {
1119
+ color: #48d2a0;
1120
+ }
1121
+
1122
+ .fail-box {
1123
+ margin: 16px 0;
1124
+ }
1125
+
1126
+ .footer {
1127
+ text-align: center;
1128
+
1129
+ & .el-button {
1130
+ width: 74px;
1131
+ height: 32px;
1132
+ background: #1677ff;
1133
+ border-radius: 4px;
1134
+ padding: 0;
1135
+ }
1136
+ }
1137
+
1138
+ .import-process {
1139
+ margin: 16px 16px 14px 0;
1140
+ line-height: 20px;
1141
+ }
1142
+
1143
+ .import-process::after {
1144
+ display: inline-block;
1145
+ content: '';
1146
+ width: 283px;
1147
+ height: 4px;
1148
+ background: #48d2a0;
1149
+ border-radius: 4px;
1150
+ margin-left: 16px;
1151
+ }
1152
+
1153
+ .fail-excel-import-box {
1154
+ margin: 20px 0 14px 0;
1155
+ padding: 0 16px 16px 16px;
1156
+ box-sizing: border-box;
1157
+ border: 1px solid #dfe6ee;
1158
+
1159
+ &-title {
1160
+ height: 54px;
1161
+ line-height: 54px;
1162
+ color: #262d34;
1163
+ font-size: 16px;
1164
+ }
1165
+ }
1166
+ </style>