n20-common-lib 1.3.40 → 1.3.43

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 (418) 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 +591 -591
  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 +330 -330
  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/parseTime.js +48 -48
  171. package/nstc-g6/utils/validate/index.js +6 -6
  172. package/nstc-g6/utils/vendor/Export2Excel.js +229 -229
  173. package/nstc-g6/utils/vendor/Export2Zip.js +24 -24
  174. package/nstc-g6/utils/vue-bus.js +4 -4
  175. package/package.json +102 -116
  176. package/src/_qiankun/index.js +113 -113
  177. package/src/_qiankun/postMessage.js +24 -24
  178. package/src/assets/.DS_Store +0 -0
  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 -32
  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 -725
  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/.DS_Store +0 -0
  232. package/src/components/Anchor/AnchorItem.vue +30 -30
  233. package/src/components/Anchor/index.vue +208 -185
  234. package/src/components/ApprovalButtons/index.vue +240 -240
  235. package/src/components/ApprovalCard/index.vue +132 -132
  236. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  237. package/src/components/ApprovalRecord/approvalImgPro.vue +319 -0
  238. package/src/components/ApprovalRecord/flowDialog.vue +47 -47
  239. package/src/components/ApprovalRecord/index.vue +63 -63
  240. package/src/components/Button/button-group.vue +148 -148
  241. package/src/components/Button/icon-group-button.vue +63 -63
  242. package/src/components/Button/index.vue +56 -56
  243. package/src/components/CascaderArea/index.vue +103 -103
  244. package/src/components/ChildRange/index.vue +169 -169
  245. package/src/components/ChildRange/style.scss +34 -34
  246. package/src/components/ContentLoading/index.vue +41 -41
  247. package/src/components/ContentNull/index.vue +19 -19
  248. package/src/components/DatePicker/index.vue +33 -33
  249. package/src/components/DatePicker/por.vue +171 -171
  250. package/src/components/Descriptions/index.vue +42 -42
  251. package/src/components/Dialog/index.vue +26 -26
  252. package/src/components/Dialog/indexO.vue +116 -116
  253. package/src/components/DragList/index.vue +75 -75
  254. package/src/components/ECharts/define.js +74 -74
  255. package/src/components/ECharts/index.vue +167 -167
  256. package/src/components/ECharts/mixins/resize.js +23 -23
  257. package/src/components/Empty/.DS_Store +0 -0
  258. package/src/components/Empty/img/.DS_Store +0 -0
  259. package/src/components/Empty/img/400.svg +101 -101
  260. package/src/components/Empty/img/401.svg +101 -101
  261. package/src/components/Empty/img/403.svg +101 -101
  262. package/src/components/Empty/img/405.svg +101 -101
  263. package/src/components/Empty/img/901.svg +95 -95
  264. package/src/components/Empty/img/902.svg +95 -95
  265. package/src/components/Empty/img/903.svg +95 -95
  266. package/src/components/Empty/img/904.svg +95 -95
  267. package/src/components/Empty/img/905.svg +95 -95
  268. package/src/components/Empty/img/906.svg +95 -95
  269. package/src/components/Empty/img/907.svg +95 -95
  270. package/src/components/Empty/img/abnormal.svg +108 -108
  271. package/src/components/Empty/img/dispose.svg +71 -71
  272. package/src/components/Empty/img/empty.svg +57 -57
  273. package/src/components/Empty/img/general.svg +58 -58
  274. package/src/components/Empty/img/lock.svg +57 -57
  275. package/src/components/Empty/img/network.svg +59 -59
  276. package/src/components/Empty/img/relevant.svg +68 -68
  277. package/src/components/Empty/img/search.svg +72 -72
  278. package/src/components/Empty/index.vue +147 -147
  279. package/src/components/EventBubble/demo/a.vue +29 -29
  280. package/src/components/EventBubble/demo/b.vue +12 -12
  281. package/src/components/EventBubble/demo/c.vue +18 -18
  282. package/src/components/EventBubble/index.vue +57 -57
  283. package/src/components/Expandable/index.vue +49 -49
  284. package/src/components/Expandable/main.vue +64 -64
  285. package/src/components/FileExportAsync/index.vue +191 -191
  286. package/src/components/FileImport/index.vue +108 -108
  287. package/src/components/FileUploadTable/index.vue +583 -570
  288. package/src/components/Filters/form-item-input.vue +185 -185
  289. package/src/components/Filters/index.vue +216 -216
  290. package/src/components/Filters/indexO.vue +106 -106
  291. package/src/components/FlowStep/index.vue +92 -92
  292. package/src/components/FooterBox/index.vue +21 -21
  293. package/src/components/GeneralCard/index.vue +15 -15
  294. package/src/components/InputNumber/index.vue +184 -184
  295. package/src/components/InputNumber/numberRange.vue +62 -62
  296. package/src/components/InputSearch/index.vue +75 -75
  297. package/src/components/Layout/.DS_Store +0 -0
  298. package/src/components/Layout/AsideNav/index.vue +120 -120
  299. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  300. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  301. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  302. package/src/components/Layout/HeaderWrap/index.vue +412 -412
  303. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  304. package/src/components/Layout/SubContent/index.vue +127 -127
  305. package/src/components/Layout/TabsNav/index.vue +169 -169
  306. package/src/components/Layout/index.vue +518 -518
  307. package/src/components/Layout/utils.js +12 -12
  308. package/src/components/LoginTemporary/form.vue +575 -575
  309. package/src/components/LoginTemporary/index.vue +199 -193
  310. package/src/components/LoginTemporary/qrcode.vue +90 -90
  311. package/src/components/LoginTemporary/retrievePw.vue +375 -375
  312. package/src/components/LoginTemporary/utils.js +73 -73
  313. package/src/components/MicroApp/index.js +67 -67
  314. package/src/components/MicroFrame/index.vue +95 -95
  315. package/src/components/MoreTab/index.vue +229 -229
  316. package/src/components/NavMenu/index.vue +60 -60
  317. package/src/components/PageHeader/index.vue +39 -39
  318. package/src/components/PageHeader/style.scss +44 -44
  319. package/src/components/PageLayout/page.vue +15 -15
  320. package/src/components/Pagination/index.vue +165 -165
  321. package/src/components/SecondaryTab/index.vue +57 -57
  322. package/src/components/SelectLazy/index.vue +75 -75
  323. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  324. package/src/components/SelectTree/index.vue +206 -206
  325. package/src/components/ShowColumn/index.vue +252 -252
  326. package/src/components/Sifting/index.vue +98 -98
  327. package/src/components/Stamp/index.vue +75 -75
  328. package/src/components/Statis/index.vue +111 -111
  329. package/src/components/Statis/statisItem.vue +60 -60
  330. package/src/components/Statis/statisPopover.vue +63 -63
  331. package/src/components/Step/index.vue +37 -37
  332. package/src/components/Suspend/index.vue +72 -72
  333. package/src/components/Table/ThSelectHeader.vue +128 -128
  334. package/src/components/Table/filters.js +60 -60
  335. package/src/components/Table/index.vue +136 -136
  336. package/src/components/Table/indexO.vue +149 -149
  337. package/src/components/TableOperateColumn/OperateBtns.vue +73 -73
  338. package/src/components/TableOperateColumn/index.vue +26 -26
  339. package/src/components/Task/index.vue +26 -26
  340. package/src/components/TertiaryTab/index.vue +62 -62
  341. package/src/components/TimePicker/index.vue +28 -28
  342. package/src/components/Upload/index.vue +280 -280
  343. package/src/components/Upload/uploadMsg.vue +114 -114
  344. package/src/components/WornPagination/index.vue +73 -73
  345. package/src/directives/VClickOutside/index.js +27 -27
  346. package/src/directives/VHas/index.js +58 -58
  347. package/src/directives/VMove/index.js +42 -42
  348. package/src/directives/VRuleKey/index.js +201 -201
  349. package/src/directives/VTitle/index.js +109 -106
  350. package/src/index.js +264 -264
  351. package/src/plugins/.DS_Store +0 -0
  352. package/src/plugins/CompatibleOld/index.js +11 -11
  353. package/src/plugins/Print/index.js +4 -4
  354. package/src/plugins/Print/print-js/.babelrc +12 -12
  355. package/src/plugins/Print/print-js/LICENSE +21 -21
  356. package/src/plugins/Print/print-js/README.md +98 -98
  357. package/src/plugins/Print/print-js/dist/print.css +96 -96
  358. package/src/plugins/Print/print-js/dist/print.js +990 -990
  359. package/src/plugins/Print/print-js/package.json +60 -60
  360. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  361. package/src/plugins/Print/print-js/src/index.js +10 -10
  362. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  363. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  364. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  365. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  366. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  367. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  368. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  369. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  370. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  371. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  372. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  373. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  374. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  375. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  376. package/src/plugins/Print/print.js +2 -2
  377. package/src/plugins/Print/print.scss +1 -1
  378. package/src/plugins/SetMenuTree/index.vue +41 -41
  379. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  380. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  381. package/src/plugins/SetMenuTree/utils.js +74 -74
  382. package/src/plugins/Sign/.DS_Store +0 -0
  383. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  384. package/src/plugins/Sign/bjca/XTXSAB.js +2395 -2395
  385. package/src/plugins/Sign/bjca/index.js +129 -129
  386. package/src/plugins/Sign/index.js +28 -28
  387. package/src/plugins/Sign/sign.js +64 -64
  388. package/src/plugins/setTabsForSub.js +2 -2
  389. package/src/utils/auth.js +56 -56
  390. package/src/utils/axios.js +205 -205
  391. package/src/utils/downloadBlob.js +19 -19
  392. package/src/utils/forEachs.js +16 -16
  393. package/src/utils/getScrollContainer.js +43 -43
  394. package/src/utils/handleTab.js +109 -109
  395. package/src/utils/i18n/cn2hk.json +1270 -1270
  396. package/src/utils/i18n/index.js +50 -50
  397. package/src/utils/list2tree.js +36 -36
  398. package/src/utils/mapper_aims.js +809 -809
  399. package/src/utils/msgboxPor.js +26 -26
  400. package/src/utils/print.js +161 -161
  401. package/src/utils/relaNo.js +72 -72
  402. package/src/utils/repairElementUI.js +169 -169
  403. package/src/utils/tableheaderFilterpanel.vue +248 -248
  404. package/src/utils/theme.config.js +22 -22
  405. package/src/utils/theme.js +31 -31
  406. package/src/utils/toExcel.js +95 -95
  407. package/src/utils/urlToGo.js +82 -82
  408. package/src/utils/xls2json.js +40 -40
  409. package/src/utils/xlsx2json.js +24 -24
  410. package/style/index.css +1 -1
  411. package/style/index.css.map +1 -1
  412. package/theme/blue.css +1 -1
  413. package/theme/green.css +1 -1
  414. package/theme/lightBlue.css +1 -1
  415. package/theme/orange.css +1 -1
  416. package/theme/purple.css +1 -1
  417. package/theme/red.css +1 -1
  418. package/theme/yellow.css +1 -1
@@ -1,506 +1,506 @@
1
- <template>
2
- <div
3
- :key="key"
4
- :class="['upload-custom',{ 'is-multiple': multiple || valueClassification.img.length }]"
5
- :style="{ width: `${_width}px` }"
6
- >
7
- <input
8
- v-if="isChoosing"
9
- ref="fileInput"
10
- type="file"
11
- :multiple="multiple"
12
- @change="handleFileChange"
13
- >
14
- <el-button
15
- v-if="!isView"
16
- :loading="loading"
17
- :icon="_icon"
18
- :disabled="_disabled"
19
- class="button-cancel"
20
- @click="chooseFile"
21
- >
22
- <span>{{ text }}</span>
23
- </el-button>
24
-
25
- <template v-if="showFile">
26
- <template v-if="!multiple && valueClassification.other.length">
27
- <div
28
- v-if="fileName"
29
- class="upload-file-name"
30
- :title="fileName"
31
- >
32
- {{ fileName }}
33
- </div>
34
- <el-button
35
- v-if="fileName"
36
- class="upload-file-delete"
37
- type="text"
38
- @click="handleClickFileBtn"
39
- >
40
- {{ fileBtnName }}
41
- </el-button>
42
- </template>
43
- <template v-else>
44
- <div class="upload-file-other">
45
- <div
46
- v-for="(item,index) in valueClassification.other"
47
- :key="index"
48
- class="upload-file-other-item"
49
- >
50
- <div
51
- class="upload-file-name"
52
- :title="item.fileName"
53
- >
54
- {{ item.fileName }}
55
- </div>
56
- <el-button
57
- class="upload-file-other-delete"
58
- type="text"
59
- @click="handleClickFileBtn(item) "
60
- >
61
- {{ fileBtnName }}
62
- </el-button>
63
- </div>
64
- </div>
65
- <div class="upload-file-img">
66
- <div
67
- v-for="(item,index) in valueClassification.img"
68
- :key="index"
69
- class="upload-file-img-item"
70
- >
71
- <el-image
72
- :src="item.fileUrl"
73
- :preview-src-list="getPreviewSrcList(index)"
74
- />
75
- <img
76
- v-if="!isView"
77
- :src="closeImg"
78
- alt="#"
79
- @click="handleDelete(item)"
80
- >
81
- </div>
82
- </div>
83
- </template>
84
- </template>
85
- </div>
86
- </template>
87
-
88
- <script>
89
- import closeImg from './iconxitongshezhi-yichu.png'
90
-
91
- import request from '@/utils/request'
92
- // import OSS from 'ali-oss'
93
-
94
- export default {
95
- name: 'UploadCustom',
96
-
97
- inheritAttrs: false,
98
-
99
- props: {
100
- text: {
101
- type: String,
102
- default: function () {
103
- return '请选择附件'
104
- }
105
- },
106
-
107
- icon: {
108
- type: String,
109
- default: undefined
110
- },
111
-
112
- value: { // 值格式为单选{ fileName,fileUrl }/{ fileName,file },或者多选[{ fileName,fileUrl }]/[{ fileName,file }]
113
- type: [Object, Array],
114
- default: null
115
- },
116
-
117
- valueIsFileUrl: { // true时,值返回格式为{ fileName,fileUrl };false时,值返回格式为{ fileName,file }(file为文件类型)
118
- type: Boolean,
119
- default: false
120
- },
121
-
122
- url: { // 上传到自定义服务器的url
123
- type: String,
124
- default: null
125
- },
126
-
127
- disabled: { // 是否禁用
128
- type: Boolean,
129
- default: false
130
- },
131
-
132
- showFile: { // 是否展示长传结果
133
- type: Boolean,
134
- default: true
135
- },
136
-
137
- validator: { // 上传前的验证,参数为typeCode(文件头前8位,用于检测文件真实格式), raw(文件buffer对象)
138
- type: Function,
139
- default: null
140
- },
141
-
142
- beforeChooseFile: { // 选择文件前的前置函数
143
- type: Function,
144
- default: null
145
- },
146
-
147
- width: {
148
- type: [String, Number],
149
- default: undefined
150
- },
151
-
152
- max: { // 多选时,最大上传文件个数
153
- type: Number,
154
- default: 5
155
- },
156
-
157
- multiple: { // 是否支持多选
158
- type: Boolean,
159
- default: false
160
- },
161
-
162
- isView: { // 是否仅查看
163
- type: Boolean,
164
- default: false
165
- },
166
-
167
- storeAsPrefix: { // ali-oss上传路径前缀
168
- type: String,
169
- default: ''
170
- }
171
- },
172
-
173
- data() {
174
- return {
175
- key: `UploadCustomID-${Math.random()
176
- .toString(36)
177
- .slice(2)}`,
178
-
179
- loading: false,
180
- isChoosing: false,
181
- revokeObjectURL: [],
182
- closeImg
183
- }
184
- },
185
-
186
- computed: {
187
- _value: {
188
- get() {
189
- return this.value
190
- },
191
- set(val) {
192
- this.$emit('input', val)
193
- this.$emit('change', val)
194
- }
195
- },
196
-
197
- fileName() {
198
- return !this.multiple && this._value && this._value.fileName
199
- ? this._value.fileName
200
- : ''
201
- },
202
-
203
- _width() {
204
- return this.width ? (this.width + '').replace(/px/, '') : undefined
205
- },
206
-
207
- _icon() {
208
- return this.icon ? this.icon : undefined
209
- },
210
-
211
- _disabled() {
212
- return this.disabled || (Array.isArray(this._value) && this._value.length >= this.max)
213
- },
214
-
215
- valueClassification() {
216
- const _value = this.multiple ? this._value : this._value ? [this._value] : []
217
- const reg = /\.(png|jpg|gif|jpeg)$/
218
-
219
- return _value.reduce((prev, file, index) => {
220
- if (reg.test(file.fileName)) {
221
- let fileUrl = ''
222
-
223
- if (file.fileUrl) {
224
- fileUrl = file.fileUrl
225
- } else {
226
- fileUrl = window.URL.createObjectURL(file.file)
227
- this.revokeObjectURL.push(fileUrl)
228
- }
229
-
230
- prev.img.push({
231
- fileUrl,
232
- index,
233
- ...file
234
- })
235
- } else {
236
- prev.other.push({
237
- ...file,
238
- index
239
- })
240
- }
241
-
242
- return prev
243
- }, { img: [], other: [] })
244
- },
245
-
246
- getPreviewSrcList() {
247
- return index => {
248
- const imgUrls = this.valueClassification.img.map(item => item.fileUrl)
249
-
250
- return imgUrls.slice(index).concat(imgUrls.slice(0, index))
251
- }
252
- },
253
-
254
- fileBtnName() {
255
- return this.isView ? '下载' : '删除'
256
- }
257
- },
258
-
259
- beforeDestroy() {
260
- this.revokeObjectURL.forEach(fileUrl => window.URL.revokeObjectURL(fileUrl))
261
- },
262
-
263
- methods: {
264
- async chooseFile() {
265
- try {
266
- this.isChoosing = true
267
- this.beforeChooseFile && await this.beforeChooseFile()
268
-
269
- await this.$nextTick()
270
-
271
- this.$refs.fileInput.click()
272
- } catch (err) {
273
- console.error(err)
274
- // this.$$message(err)
275
- }
276
- },
277
-
278
- async handleFileChange(e) {
279
- this.loading = true
280
- this.isChoosing = false
281
-
282
- try {
283
- const files = Array.from(e.target.files)
284
-
285
- await this.fileMaxCheck(files)
286
- await Promise.all(files.map(file => this.fileTypeCheck(file)))
287
-
288
- const value = await Promise.all(files.map(file => this.singleFileUpload(file)))
289
-
290
- this._value = this.multiple
291
- ? [...this._value, ...value]
292
- : value[0]
293
- } catch (err) {
294
- // this.$$message(err.reason || '上传失败')
295
- }
296
-
297
- this.loading = false
298
- },
299
-
300
- async singleFileUpload(file) {
301
- try {
302
- const fileName = file.name
303
-
304
- if (this.valueIsFileUrl) {
305
- let fileUrl = ''
306
-
307
- if (this.url) {
308
- const fd = new FormData()
309
-
310
- fd.append('file', file)
311
-
312
- fileUrl = await request.post(this.url, fd, {
313
- headers: {
314
- 'Content-Type': 'multipart/form-data'
315
- }
316
- })
317
- } else {
318
- // const data = await request.post('/api/upload/auth') // 授权
319
- // const client = new OSS({
320
- // endpoint: data.region,
321
- // accessKeyId: data.accessKeyId,
322
- // accessKeySecret: data.accessKeySecret,
323
- // stsToken: data.securityToken,
324
- // bucket: data.bucket
325
- // })
326
- //
327
- // const _name = data.fileName + fileName.substring(fileName.lastIndexOf('.'), fileName.length)
328
- //
329
- // const storeAs = this.storeAsPrefix + new Date().getTime() + '/' + _name
330
- // const { res } = await client.multipartUpload(storeAs, file, {
331
- // mime: 'application/octet-stream',
332
- // secure: true
333
- // })
334
- //
335
- // fileUrl = res.requestUrls[0]
336
- //
337
- // if (fileUrl.indexOf('?') > 0) {
338
- // fileUrl = fileUrl.substring(0, fileUrl.indexOf('?'))
339
- // }
340
- }
341
-
342
- return {
343
- fileUrl,
344
- fileName
345
- }
346
- }
347
-
348
- return {
349
- file,
350
- fileName
351
- }
352
- } catch (err) {
353
- return Promise.reject(err)
354
- }
355
- },
356
-
357
- handleClickFileBtn(item) {
358
- if (this.isView) {
359
- window.open(item.fileUrl)
360
- } else {
361
- this.handleDelete(item)
362
- }
363
- },
364
-
365
- handleDelete(item) {
366
- if (this.multiple) {
367
- this._value.splice(item.index, 1)
368
- } else {
369
- this._value = null
370
- }
371
- },
372
-
373
- fileTypeCheck(raw) {
374
- const _this = this
375
-
376
- return new Promise((resolve, reject) => {
377
- const reader = new FileReader()
378
-
379
- reader.onload = async function(r) {
380
- try {
381
- const buffer = r.target.result
382
- const dataview = new DataView(buffer)
383
- const ints = new Uint16Array(buffer.byteLength)
384
-
385
- for (let i = 0; i < 4; i++) {
386
- ints[i] = dataview.getUint8(i)
387
- }
388
-
389
- const typeCode = ints
390
- .reduce((acc, val) => acc + val.toString(16), '')
391
- .slice(0, 8)
392
- .toLowerCase()
393
-
394
- if (typeof _this.validator === 'function') {
395
- await _this.validator(typeCode, raw)
396
- }
397
-
398
- resolve()
399
- } catch (err) {
400
- reject(err)
401
- }
402
- }
403
-
404
- reader.readAsArrayBuffer(raw)
405
- })
406
- },
407
-
408
- fileMaxCheck(files) {
409
- return new Promise((resolve, reject) => {
410
- if (this.multiple && (files.length + this._value.length > this.max)) {
411
- reject({ reason: `最多上传文件数:${this.max}` })
412
- }
413
-
414
- resolve()
415
- })
416
- }
417
- }
418
- }
419
- </script>
420
-
421
- <style lang="scss">
422
- .upload-custom {
423
- display: inline-flex;
424
- align-items: center;
425
- position: relative;
426
- padding-right: 32px;
427
- &.is-multiple {
428
- display: inline-block;
429
- }
430
-
431
- .button-cancel {
432
- flex: none;
433
- padding: 0 15px 0 12px;
434
- width: auto;
435
- display: inline-flex;
436
- align-items: center;
437
- i {
438
- margin-right: 6px;
439
- font-size: 9px;
440
- }
441
- }
442
-
443
- input {
444
- display: none;
445
- }
446
-
447
- .upload-file {
448
- &-name {
449
- font-size: 14px;
450
- padding-left: 10px;
451
- flex: auto;
452
- overflow: hidden;
453
- white-space: nowrap;
454
- text-overflow: ellipsis;
455
- }
456
-
457
- &-delete {
458
- position: absolute;
459
- top: 9px;
460
- right: 0;
461
- }
462
-
463
- &-other {
464
- display: flex;
465
- flex-wrap: wrap;
466
- margin-top: 5px;
467
- &-item {
468
- flex: none;
469
- display: flex;
470
- align-items: center;
471
- margin-right: 40px;
472
- .upload-file-name {
473
- padding-left: 0;
474
- padding-right: 10px;
475
- }
476
- }
477
- }
478
-
479
- &-img {
480
- display: flex;
481
- margin-top: 5px;
482
- flex-wrap: wrap;
483
- &-item {
484
- flex: none;
485
- margin-right: 10px;
486
- position: relative;
487
- .el-image {
488
- width: 72px;
489
- height: 72px;
490
- background-color: #fff;
491
- border-radius: 2px;
492
- border: #CFD8E6;
493
- }
494
- & > img {
495
- position: absolute;
496
- right: 0;
497
- top: 0;
498
- width: 16px;
499
- height: 16px;
500
- cursor: pointer;
501
- }
502
- }
503
- }
504
- }
505
- }
506
- </style>
1
+ <template>
2
+ <div
3
+ :key="key"
4
+ :class="['upload-custom',{ 'is-multiple': multiple || valueClassification.img.length }]"
5
+ :style="{ width: `${_width}px` }"
6
+ >
7
+ <input
8
+ v-if="isChoosing"
9
+ ref="fileInput"
10
+ type="file"
11
+ :multiple="multiple"
12
+ @change="handleFileChange"
13
+ >
14
+ <el-button
15
+ v-if="!isView"
16
+ :loading="loading"
17
+ :icon="_icon"
18
+ :disabled="_disabled"
19
+ class="button-cancel"
20
+ @click="chooseFile"
21
+ >
22
+ <span>{{ text }}</span>
23
+ </el-button>
24
+
25
+ <template v-if="showFile">
26
+ <template v-if="!multiple && valueClassification.other.length">
27
+ <div
28
+ v-if="fileName"
29
+ class="upload-file-name"
30
+ :title="fileName"
31
+ >
32
+ {{ fileName }}
33
+ </div>
34
+ <el-button
35
+ v-if="fileName"
36
+ class="upload-file-delete"
37
+ type="text"
38
+ @click="handleClickFileBtn"
39
+ >
40
+ {{ fileBtnName }}
41
+ </el-button>
42
+ </template>
43
+ <template v-else>
44
+ <div class="upload-file-other">
45
+ <div
46
+ v-for="(item,index) in valueClassification.other"
47
+ :key="index"
48
+ class="upload-file-other-item"
49
+ >
50
+ <div
51
+ class="upload-file-name"
52
+ :title="item.fileName"
53
+ >
54
+ {{ item.fileName }}
55
+ </div>
56
+ <el-button
57
+ class="upload-file-other-delete"
58
+ type="text"
59
+ @click="handleClickFileBtn(item) "
60
+ >
61
+ {{ fileBtnName }}
62
+ </el-button>
63
+ </div>
64
+ </div>
65
+ <div class="upload-file-img">
66
+ <div
67
+ v-for="(item,index) in valueClassification.img"
68
+ :key="index"
69
+ class="upload-file-img-item"
70
+ >
71
+ <el-image
72
+ :src="item.fileUrl"
73
+ :preview-src-list="getPreviewSrcList(index)"
74
+ />
75
+ <img
76
+ v-if="!isView"
77
+ :src="closeImg"
78
+ alt="#"
79
+ @click="handleDelete(item)"
80
+ >
81
+ </div>
82
+ </div>
83
+ </template>
84
+ </template>
85
+ </div>
86
+ </template>
87
+
88
+ <script>
89
+ import closeImg from './iconxitongshezhi-yichu.png'
90
+
91
+ import request from '@/utils/request'
92
+ // import OSS from 'ali-oss'
93
+
94
+ export default {
95
+ name: 'UploadCustom',
96
+
97
+ inheritAttrs: false,
98
+
99
+ props: {
100
+ text: {
101
+ type: String,
102
+ default: function () {
103
+ return '请选择附件'
104
+ }
105
+ },
106
+
107
+ icon: {
108
+ type: String,
109
+ default: undefined
110
+ },
111
+
112
+ value: { // 值格式为单选{ fileName,fileUrl }/{ fileName,file },或者多选[{ fileName,fileUrl }]/[{ fileName,file }]
113
+ type: [Object, Array],
114
+ default: null
115
+ },
116
+
117
+ valueIsFileUrl: { // true时,值返回格式为{ fileName,fileUrl };false时,值返回格式为{ fileName,file }(file为文件类型)
118
+ type: Boolean,
119
+ default: false
120
+ },
121
+
122
+ url: { // 上传到自定义服务器的url
123
+ type: String,
124
+ default: null
125
+ },
126
+
127
+ disabled: { // 是否禁用
128
+ type: Boolean,
129
+ default: false
130
+ },
131
+
132
+ showFile: { // 是否展示长传结果
133
+ type: Boolean,
134
+ default: true
135
+ },
136
+
137
+ validator: { // 上传前的验证,参数为typeCode(文件头前8位,用于检测文件真实格式), raw(文件buffer对象)
138
+ type: Function,
139
+ default: null
140
+ },
141
+
142
+ beforeChooseFile: { // 选择文件前的前置函数
143
+ type: Function,
144
+ default: null
145
+ },
146
+
147
+ width: {
148
+ type: [String, Number],
149
+ default: undefined
150
+ },
151
+
152
+ max: { // 多选时,最大上传文件个数
153
+ type: Number,
154
+ default: 5
155
+ },
156
+
157
+ multiple: { // 是否支持多选
158
+ type: Boolean,
159
+ default: false
160
+ },
161
+
162
+ isView: { // 是否仅查看
163
+ type: Boolean,
164
+ default: false
165
+ },
166
+
167
+ storeAsPrefix: { // ali-oss上传路径前缀
168
+ type: String,
169
+ default: ''
170
+ }
171
+ },
172
+
173
+ data() {
174
+ return {
175
+ key: `UploadCustomID-${Math.random()
176
+ .toString(36)
177
+ .slice(2)}`,
178
+
179
+ loading: false,
180
+ isChoosing: false,
181
+ revokeObjectURL: [],
182
+ closeImg
183
+ }
184
+ },
185
+
186
+ computed: {
187
+ _value: {
188
+ get() {
189
+ return this.value
190
+ },
191
+ set(val) {
192
+ this.$emit('input', val)
193
+ this.$emit('change', val)
194
+ }
195
+ },
196
+
197
+ fileName() {
198
+ return !this.multiple && this._value && this._value.fileName
199
+ ? this._value.fileName
200
+ : ''
201
+ },
202
+
203
+ _width() {
204
+ return this.width ? (this.width + '').replace(/px/, '') : undefined
205
+ },
206
+
207
+ _icon() {
208
+ return this.icon ? this.icon : undefined
209
+ },
210
+
211
+ _disabled() {
212
+ return this.disabled || (Array.isArray(this._value) && this._value.length >= this.max)
213
+ },
214
+
215
+ valueClassification() {
216
+ const _value = this.multiple ? this._value : this._value ? [this._value] : []
217
+ const reg = /\.(png|jpg|gif|jpeg)$/
218
+
219
+ return _value.reduce((prev, file, index) => {
220
+ if (reg.test(file.fileName)) {
221
+ let fileUrl = ''
222
+
223
+ if (file.fileUrl) {
224
+ fileUrl = file.fileUrl
225
+ } else {
226
+ fileUrl = window.URL.createObjectURL(file.file)
227
+ this.revokeObjectURL.push(fileUrl)
228
+ }
229
+
230
+ prev.img.push({
231
+ fileUrl,
232
+ index,
233
+ ...file
234
+ })
235
+ } else {
236
+ prev.other.push({
237
+ ...file,
238
+ index
239
+ })
240
+ }
241
+
242
+ return prev
243
+ }, { img: [], other: [] })
244
+ },
245
+
246
+ getPreviewSrcList() {
247
+ return index => {
248
+ const imgUrls = this.valueClassification.img.map(item => item.fileUrl)
249
+
250
+ return imgUrls.slice(index).concat(imgUrls.slice(0, index))
251
+ }
252
+ },
253
+
254
+ fileBtnName() {
255
+ return this.isView ? '下载' : '删除'
256
+ }
257
+ },
258
+
259
+ beforeDestroy() {
260
+ this.revokeObjectURL.forEach(fileUrl => window.URL.revokeObjectURL(fileUrl))
261
+ },
262
+
263
+ methods: {
264
+ async chooseFile() {
265
+ try {
266
+ this.isChoosing = true
267
+ this.beforeChooseFile && await this.beforeChooseFile()
268
+
269
+ await this.$nextTick()
270
+
271
+ this.$refs.fileInput.click()
272
+ } catch (err) {
273
+ console.error(err)
274
+ // this.$$message(err)
275
+ }
276
+ },
277
+
278
+ async handleFileChange(e) {
279
+ this.loading = true
280
+ this.isChoosing = false
281
+
282
+ try {
283
+ const files = Array.from(e.target.files)
284
+
285
+ await this.fileMaxCheck(files)
286
+ await Promise.all(files.map(file => this.fileTypeCheck(file)))
287
+
288
+ const value = await Promise.all(files.map(file => this.singleFileUpload(file)))
289
+
290
+ this._value = this.multiple
291
+ ? [...this._value, ...value]
292
+ : value[0]
293
+ } catch (err) {
294
+ // this.$$message(err.reason || '上传失败')
295
+ }
296
+
297
+ this.loading = false
298
+ },
299
+
300
+ async singleFileUpload(file) {
301
+ try {
302
+ const fileName = file.name
303
+
304
+ if (this.valueIsFileUrl) {
305
+ let fileUrl = ''
306
+
307
+ if (this.url) {
308
+ const fd = new FormData()
309
+
310
+ fd.append('file', file)
311
+
312
+ fileUrl = await request.post(this.url, fd, {
313
+ headers: {
314
+ 'Content-Type': 'multipart/form-data'
315
+ }
316
+ })
317
+ } else {
318
+ // const data = await request.post('/api/upload/auth') // 授权
319
+ // const client = new OSS({
320
+ // endpoint: data.region,
321
+ // accessKeyId: data.accessKeyId,
322
+ // accessKeySecret: data.accessKeySecret,
323
+ // stsToken: data.securityToken,
324
+ // bucket: data.bucket
325
+ // })
326
+ //
327
+ // const _name = data.fileName + fileName.substring(fileName.lastIndexOf('.'), fileName.length)
328
+ //
329
+ // const storeAs = this.storeAsPrefix + new Date().getTime() + '/' + _name
330
+ // const { res } = await client.multipartUpload(storeAs, file, {
331
+ // mime: 'application/octet-stream',
332
+ // secure: true
333
+ // })
334
+ //
335
+ // fileUrl = res.requestUrls[0]
336
+ //
337
+ // if (fileUrl.indexOf('?') > 0) {
338
+ // fileUrl = fileUrl.substring(0, fileUrl.indexOf('?'))
339
+ // }
340
+ }
341
+
342
+ return {
343
+ fileUrl,
344
+ fileName
345
+ }
346
+ }
347
+
348
+ return {
349
+ file,
350
+ fileName
351
+ }
352
+ } catch (err) {
353
+ return Promise.reject(err)
354
+ }
355
+ },
356
+
357
+ handleClickFileBtn(item) {
358
+ if (this.isView) {
359
+ window.open(item.fileUrl)
360
+ } else {
361
+ this.handleDelete(item)
362
+ }
363
+ },
364
+
365
+ handleDelete(item) {
366
+ if (this.multiple) {
367
+ this._value.splice(item.index, 1)
368
+ } else {
369
+ this._value = null
370
+ }
371
+ },
372
+
373
+ fileTypeCheck(raw) {
374
+ const _this = this
375
+
376
+ return new Promise((resolve, reject) => {
377
+ const reader = new FileReader()
378
+
379
+ reader.onload = async function(r) {
380
+ try {
381
+ const buffer = r.target.result
382
+ const dataview = new DataView(buffer)
383
+ const ints = new Uint16Array(buffer.byteLength)
384
+
385
+ for (let i = 0; i < 4; i++) {
386
+ ints[i] = dataview.getUint8(i)
387
+ }
388
+
389
+ const typeCode = ints
390
+ .reduce((acc, val) => acc + val.toString(16), '')
391
+ .slice(0, 8)
392
+ .toLowerCase()
393
+
394
+ if (typeof _this.validator === 'function') {
395
+ await _this.validator(typeCode, raw)
396
+ }
397
+
398
+ resolve()
399
+ } catch (err) {
400
+ reject(err)
401
+ }
402
+ }
403
+
404
+ reader.readAsArrayBuffer(raw)
405
+ })
406
+ },
407
+
408
+ fileMaxCheck(files) {
409
+ return new Promise((resolve, reject) => {
410
+ if (this.multiple && (files.length + this._value.length > this.max)) {
411
+ reject({ reason: `最多上传文件数:${this.max}` })
412
+ }
413
+
414
+ resolve()
415
+ })
416
+ }
417
+ }
418
+ }
419
+ </script>
420
+
421
+ <style lang="scss">
422
+ .upload-custom {
423
+ display: inline-flex;
424
+ align-items: center;
425
+ position: relative;
426
+ padding-right: 32px;
427
+ &.is-multiple {
428
+ display: inline-block;
429
+ }
430
+
431
+ .button-cancel {
432
+ flex: none;
433
+ padding: 0 15px 0 12px;
434
+ width: auto;
435
+ display: inline-flex;
436
+ align-items: center;
437
+ i {
438
+ margin-right: 6px;
439
+ font-size: 9px;
440
+ }
441
+ }
442
+
443
+ input {
444
+ display: none;
445
+ }
446
+
447
+ .upload-file {
448
+ &-name {
449
+ font-size: 14px;
450
+ padding-left: 10px;
451
+ flex: auto;
452
+ overflow: hidden;
453
+ white-space: nowrap;
454
+ text-overflow: ellipsis;
455
+ }
456
+
457
+ &-delete {
458
+ position: absolute;
459
+ top: 9px;
460
+ right: 0;
461
+ }
462
+
463
+ &-other {
464
+ display: flex;
465
+ flex-wrap: wrap;
466
+ margin-top: 5px;
467
+ &-item {
468
+ flex: none;
469
+ display: flex;
470
+ align-items: center;
471
+ margin-right: 40px;
472
+ .upload-file-name {
473
+ padding-left: 0;
474
+ padding-right: 10px;
475
+ }
476
+ }
477
+ }
478
+
479
+ &-img {
480
+ display: flex;
481
+ margin-top: 5px;
482
+ flex-wrap: wrap;
483
+ &-item {
484
+ flex: none;
485
+ margin-right: 10px;
486
+ position: relative;
487
+ .el-image {
488
+ width: 72px;
489
+ height: 72px;
490
+ background-color: #fff;
491
+ border-radius: 2px;
492
+ border: #CFD8E6;
493
+ }
494
+ & > img {
495
+ position: absolute;
496
+ right: 0;
497
+ top: 0;
498
+ width: 16px;
499
+ height: 16px;
500
+ cursor: pointer;
501
+ }
502
+ }
503
+ }
504
+ }
505
+ }
506
+ </style>