n20-common-lib 1.3.5 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/README.md +2 -2
  2. package/g6.js +2 -197
  3. package/package.json +104 -104
  4. package/src/_qiankun/index.js +113 -113
  5. package/src/_qiankun/postMessage.js +48 -48
  6. package/src/assets/css/_coreLib.scss +36 -36
  7. package/src/assets/css/alert.scss +31 -31
  8. package/src/assets/css/cl-anchor.scss +32 -32
  9. package/src/assets/css/cl-approve-card.scss +67 -67
  10. package/src/assets/css/cl-dialog.scss +113 -113
  11. package/src/assets/css/cl-drag-list.scss +24 -24
  12. package/src/assets/css/cl-empty.scss +10 -10
  13. package/src/assets/css/cl-expandable-pane.scss +37 -37
  14. package/src/assets/css/cl-expandable.scss +26 -26
  15. package/src/assets/css/cl-file-upload-table.scss +31 -31
  16. package/src/assets/css/cl-filter.scss +4 -4
  17. package/src/assets/css/cl-flow-step.scss +185 -185
  18. package/src/assets/css/cl-footer-box.scss +10 -10
  19. package/src/assets/css/cl-form-item.scss +705 -705
  20. package/src/assets/css/cl-general-card.scss +11 -11
  21. package/src/assets/css/cl-layout-aside.scss +92 -92
  22. package/src/assets/css/cl-layout-content.scss +16 -16
  23. package/src/assets/css/cl-layout-header.scss +73 -73
  24. package/src/assets/css/cl-layout-tabs.scss +87 -87
  25. package/src/assets/css/cl-layout.scss +97 -97
  26. package/src/assets/css/cl-login-temporary.scss +37 -37
  27. package/src/assets/css/cl-message.scss +159 -159
  28. package/src/assets/css/cl-more-tab.scss +98 -98
  29. package/src/assets/css/cl-nav-menu.scss +5 -5
  30. package/src/assets/css/cl-pagination.scss +130 -130
  31. package/src/assets/css/cl-secondary-tab.scss +53 -53
  32. package/src/assets/css/cl-showcolumn.scss +39 -39
  33. package/src/assets/css/cl-sifting.scss +51 -51
  34. package/src/assets/css/cl-statis.scss +54 -54
  35. package/src/assets/css/cl-step.scss +73 -73
  36. package/src/assets/css/cl-suspend.scss +19 -19
  37. package/src/assets/css/cl-tertiary-tab.scss +56 -56
  38. package/src/assets/css/cl-upload.scss +47 -47
  39. package/src/assets/css/cl-worn-pagination.scss +50 -50
  40. package/src/assets/css/el-button.scss +188 -188
  41. package/src/assets/css/el-table.scss +96 -96
  42. package/src/assets/css/element-variables.scss +1061 -1061
  43. package/src/assets/css/element.dev.scss +22 -22
  44. package/src/assets/css/font-icon.scss +26 -26
  45. package/src/assets/css/index.dev.scss +4 -4
  46. package/src/assets/css/index.scss +11 -11
  47. package/src/assets/css/normalize.scss +726 -726
  48. package/src/assets/css/plain-text.scss +137 -137
  49. package/src/assets/css/rootvar.scss +139 -139
  50. package/src/assets/css/select.scss +25 -25
  51. package/src/assets/css/title-pop.scss +23 -23
  52. package/src/assets/getJsonc.js +50 -50
  53. package/src/assets/iconFont/demo.css +539 -539
  54. package/src/assets/iconFont/demo_index.html +1614 -1614
  55. package/src/assets/iconFont/iconfont.css +263 -263
  56. package/src/assets/iconFont/iconfont.json +443 -443
  57. package/src/assets/realUrl.js +12 -12
  58. package/src/components/Anchor/AnchorItem.vue +29 -29
  59. package/src/components/Anchor/index.vue +185 -185
  60. package/src/components/ApprovalButtons/index.vue +240 -240
  61. package/src/components/ApprovalCard/index.vue +132 -132
  62. package/src/components/ApprovalRecord/approvalImg.vue +44 -44
  63. package/src/components/ApprovalRecord/flowDialog.vue +45 -45
  64. package/src/components/ApprovalRecord/index.vue +59 -59
  65. package/src/components/Button/button-group.vue +154 -154
  66. package/src/components/Button/icon-group-button.vue +63 -63
  67. package/src/components/Button/index.vue +56 -56
  68. package/src/components/CascaderArea/index.vue +103 -103
  69. package/src/components/ChildRange/index.vue +201 -201
  70. package/src/components/ContentLoading/index.vue +41 -41
  71. package/src/components/ContentNull/index.vue +19 -19
  72. package/src/components/DatePicker/index.vue +27 -27
  73. package/src/components/DatePicker/por.vue +169 -169
  74. package/src/components/Dialog/index.vue +26 -26
  75. package/src/components/Dialog/indexO.vue +116 -116
  76. package/src/components/DragList/index.vue +75 -75
  77. package/src/components/ECharts/define.js +74 -74
  78. package/src/components/ECharts/index.vue +169 -163
  79. package/src/components/ECharts/mixins/resize.js +56 -56
  80. package/src/components/Empty/img/400.svg +101 -101
  81. package/src/components/Empty/img/401.svg +101 -101
  82. package/src/components/Empty/img/403.svg +101 -101
  83. package/src/components/Empty/img/405.svg +101 -101
  84. package/src/components/Empty/img/901.svg +95 -95
  85. package/src/components/Empty/img/902.svg +95 -95
  86. package/src/components/Empty/img/903.svg +95 -95
  87. package/src/components/Empty/img/904.svg +95 -95
  88. package/src/components/Empty/img/905.svg +95 -95
  89. package/src/components/Empty/img/906.svg +95 -95
  90. package/src/components/Empty/img/907.svg +95 -95
  91. package/src/components/Empty/img/abnormal.svg +108 -108
  92. package/src/components/Empty/img/dispose.svg +71 -71
  93. package/src/components/Empty/img/empty.svg +57 -57
  94. package/src/components/Empty/img/general.svg +58 -58
  95. package/src/components/Empty/img/lock.svg +57 -57
  96. package/src/components/Empty/img/network.svg +59 -59
  97. package/src/components/Empty/img/relevant.svg +68 -68
  98. package/src/components/Empty/img/search.svg +72 -72
  99. package/src/components/Empty/index.vue +147 -147
  100. package/src/components/Expandable/index.vue +49 -49
  101. package/src/components/Expandable/main.vue +55 -55
  102. package/src/components/FileExportAsync/index.vue +178 -178
  103. package/src/components/FileImport/index.vue +201 -201
  104. package/src/components/FileUploadTable/index.vue +489 -489
  105. package/src/components/Filters/index.vue +371 -371
  106. package/src/components/Filters/indexO.vue +104 -104
  107. package/src/components/FlowStep/index.vue +68 -68
  108. package/src/components/FooterBox/index.vue +21 -21
  109. package/src/components/GeneralCard/index.vue +15 -15
  110. package/src/components/InputNumber/index.vue +169 -169
  111. package/src/components/InputNumber/numberRange.vue +47 -47
  112. package/src/components/InputSearch/index.vue +75 -75
  113. package/src/components/Layout/AsideNav/index.vue +116 -120
  114. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  115. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  116. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  117. package/src/components/Layout/HeaderWrap/index.vue +371 -371
  118. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  119. package/src/components/Layout/SubContent/index.vue +127 -127
  120. package/src/components/Layout/TabsNav/index.vue +170 -170
  121. package/src/components/Layout/index.vue +518 -518
  122. package/src/components/Layout/utils.js +12 -12
  123. package/src/components/LoginTemporary/form.vue +566 -566
  124. package/src/components/LoginTemporary/index.vue +139 -139
  125. package/src/components/LoginTemporary/qrcode.vue +90 -90
  126. package/src/components/LoginTemporary/retrievePw.vue +372 -372
  127. package/src/components/LoginTemporary/utils.js +73 -73
  128. package/src/components/MicroApp/index.js +67 -67
  129. package/src/components/MicroFrame/index.vue +95 -95
  130. package/src/components/MoreTab/index.vue +232 -232
  131. package/src/components/NavMenu/index.vue +60 -60
  132. package/src/components/PageHeader/index.vue +79 -79
  133. package/src/components/PageLayout/page.vue +15 -15
  134. package/src/components/Pagination/index.vue +165 -165
  135. package/src/components/PlainText/PlainTextItem.vue +16 -16
  136. package/src/components/PlainText/index.vue +11 -11
  137. package/src/components/Search/index.vue +593 -593
  138. package/src/components/SecondaryTab/index.vue +58 -58
  139. package/src/components/SelectLazy/index.vue +75 -75
  140. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  141. package/src/components/SelectTree/index.vue +206 -206
  142. package/src/components/ShowColumn/index.vue +213 -213
  143. package/src/components/Sifting/index.vue +99 -99
  144. package/src/components/Stamp/index.vue +75 -75
  145. package/src/components/Statis/index.vue +97 -97
  146. package/src/components/Statis/statisItem.vue +54 -54
  147. package/src/components/Statis/statisPopover.vue +56 -56
  148. package/src/components/Step/index.vue +38 -38
  149. package/src/components/Suspend/index.vue +72 -72
  150. package/src/components/Table/ThSelectHeader.vue +133 -133
  151. package/src/components/Table/index.vue +259 -259
  152. package/src/components/Table/indexO.vue +149 -149
  153. package/src/components/Task/index.vue +26 -26
  154. package/src/components/TertiaryTab/index.vue +63 -63
  155. package/src/components/TimePicker/index.vue +28 -28
  156. package/src/components/Upload/index.vue +246 -246
  157. package/src/components/WornPagination/index.vue +73 -73
  158. package/src/directives/VClickOutside/index.js +19 -19
  159. package/src/directives/VHas/index.js +58 -58
  160. package/src/directives/VMove/index.js +42 -42
  161. package/src/directives/VTitle/index.js +69 -69
  162. package/src/directives/VTitle/tooltip.vue +21 -21
  163. package/src/index.js +257 -259
  164. package/src/plugins/CompatibleOld/index.js +57 -57
  165. package/src/plugins/Print/index.js +4 -4
  166. package/src/plugins/Print/print-js/.babelrc +12 -12
  167. package/src/plugins/Print/print-js/LICENSE +21 -21
  168. package/src/plugins/Print/print-js/README.md +98 -98
  169. package/src/plugins/Print/print-js/dist/print.css +96 -96
  170. package/src/plugins/Print/print-js/dist/print.js +990 -990
  171. package/src/plugins/Print/print-js/package.json +60 -60
  172. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  173. package/src/plugins/Print/print-js/src/index.js +10 -10
  174. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  175. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  176. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  177. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  178. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  179. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  180. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  181. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  182. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  183. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  184. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  185. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  186. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  187. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  188. package/src/plugins/Print/print.js +2 -2
  189. package/src/plugins/Print/print.scss +1 -1
  190. package/src/plugins/SetMenuTree/index.vue +41 -41
  191. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  192. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  193. package/src/plugins/SetMenuTree/utils.js +74 -74
  194. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  195. package/src/plugins/Sign/index.js +65 -65
  196. package/src/plugins/Sign/sign.js +1 -1
  197. package/src/plugins/setTabsForSub.js +2 -2
  198. package/src/utils/auth.js +53 -53
  199. package/src/utils/axios.js +203 -203
  200. package/src/utils/downloadBlob.js +19 -19
  201. package/src/utils/forEachs.js +16 -16
  202. package/src/utils/getScrollContainer.js +43 -43
  203. package/src/utils/i18n/cn2hk.json +1270 -1270
  204. package/src/utils/i18n/index.js +50 -50
  205. package/src/utils/list2tree.js +36 -36
  206. package/src/utils/mapper_aims.js +809 -809
  207. package/src/utils/msgboxPor.js +26 -26
  208. package/src/utils/print.js +161 -161
  209. package/src/utils/relaNo.js +72 -72
  210. package/src/utils/repairElementUI.js +95 -95
  211. package/src/utils/urlToGo.js +82 -82
  212. package/style/css/normalize.scss +726 -726
  213. package/style/index.css +3 -3
  214. package/style/pageDemo/demo-1.vue +131 -131
  215. package/style/pageDemo/demo-2.vue +35 -35
  216. package/style/pageDemo/demo-3.vue +22 -22
  217. package/style/pageDemo/seeCode.js +20 -20
  218. package/style/server-config.jsonc +606 -723
  219. package/src/assets/svg/404.svg +0 -1
  220. package/src/assets/svg/addFile.svg +0 -32
  221. package/src/assets/svg/bug.svg +0 -1
  222. package/src/assets/svg/chart.svg +0 -1
  223. package/src/assets/svg/clipboard.svg +0 -1
  224. package/src/assets/svg/component.svg +0 -1
  225. package/src/assets/svg/dashboard.svg +0 -1
  226. package/src/assets/svg/deleteFile.svg +0 -28
  227. package/src/assets/svg/documentation.svg +0 -1
  228. package/src/assets/svg/drag.svg +0 -1
  229. package/src/assets/svg/edit.svg +0 -1
  230. package/src/assets/svg/education.svg +0 -1
  231. package/src/assets/svg/email.svg +0 -1
  232. package/src/assets/svg/example.svg +0 -1
  233. package/src/assets/svg/excel.svg +0 -1
  234. package/src/assets/svg/exit-fullscreen.svg +0 -1
  235. package/src/assets/svg/eye-open.svg +0 -1
  236. package/src/assets/svg/eye.svg +0 -1
  237. package/src/assets/svg/favorite.svg +0 -1
  238. package/src/assets/svg/favorite_active.svg +0 -1
  239. package/src/assets/svg/favorite_x400.svg +0 -1
  240. package/src/assets/svg/favorite_x400_active.svg +0 -1
  241. package/src/assets/svg/favorite_x400_blank.svg +0 -1
  242. package/src/assets/svg/filter.svg +0 -16
  243. package/src/assets/svg/filter@2x.png +0 -0
  244. package/src/assets/svg/filterActive.svg +0 -16
  245. package/src/assets/svg/filterClose@2x.png +0 -0
  246. package/src/assets/svg/form.svg +0 -1
  247. package/src/assets/svg/fullscreen.svg +0 -1
  248. package/src/assets/svg/guide.svg +0 -1
  249. package/src/assets/svg/hourglass.svg +0 -19
  250. package/src/assets/svg/icon.svg +0 -1
  251. package/src/assets/svg/international.svg +0 -1
  252. package/src/assets/svg/language.svg +0 -1
  253. package/src/assets/svg/left-dis.svg +0 -1
  254. package/src/assets/svg/left.svg +0 -1
  255. package/src/assets/svg/link.svg +0 -1
  256. package/src/assets/svg/list.svg +0 -1
  257. package/src/assets/svg/lock.svg +0 -1
  258. package/src/assets/svg/message-t.svg +0 -1
  259. package/src/assets/svg/money.svg +0 -1
  260. package/src/assets/svg/money3.svg +0 -1
  261. package/src/assets/svg/money4.svg +0 -1
  262. package/src/assets/svg/moneyTwo.svg +0 -1
  263. package/src/assets/svg/msg_white.svg +0 -1
  264. package/src/assets/svg/nested.svg +0 -1
  265. package/src/assets/svg/newsearch.svg +0 -19
  266. package/src/assets/svg/password.svg +0 -1
  267. package/src/assets/svg/pdf.svg +0 -1
  268. package/src/assets/svg/people.svg +0 -1
  269. package/src/assets/svg/peoples.svg +0 -1
  270. package/src/assets/svg/phone.svg +0 -1
  271. package/src/assets/svg/phone_msg.svg +0 -1
  272. package/src/assets/svg/qq.svg +0 -1
  273. package/src/assets/svg/right-dis.svg +0 -1
  274. package/src/assets/svg/right.svg +0 -1
  275. package/src/assets/svg/search.svg +0 -1
  276. package/src/assets/svg/searchActive.svg +0 -19
  277. package/src/assets/svg/shopping.svg +0 -1
  278. package/src/assets/svg/size.svg +0 -1
  279. package/src/assets/svg/skill.svg +0 -1
  280. package/src/assets/svg/star.svg +0 -1
  281. package/src/assets/svg/steam.svg +0 -1
  282. package/src/assets/svg/tab.svg +0 -1
  283. package/src/assets/svg/table.svg +0 -1
  284. package/src/assets/svg/theme.svg +0 -1
  285. package/src/assets/svg/tree-table.svg +0 -1
  286. package/src/assets/svg/tree.svg +0 -1
  287. package/src/assets/svg/user.svg +0 -1
  288. package/src/assets/svg/wechat.svg +0 -1
  289. package/src/assets/svg/z-left-2-dis.svg +0 -1
  290. package/src/assets/svg/z-left-2.svg +0 -1
  291. package/src/assets/svg/z-right-2-dis.svg +0 -1
  292. package/src/assets/svg/z-right-2.svg +0 -1
  293. package/src/assets/svg/z-right.svg +0 -1
  294. package/src/assets/svg/zip.svg +0 -1
  295. package/src/components/.DS_Store +0 -0
  296. package/src/components/Empty/.DS_Store +0 -0
  297. package/src/components/Empty/img/.DS_Store +0 -0
  298. package/src/components/Layout/.DS_Store +0 -0
  299. package/src/components/NstcG6Components/.DS_Store +0 -0
  300. package/src/components/NstcG6Components/Calendar/index.js +0 -8
  301. package/src/components/NstcG6Components/Calendar/src/basic/month-table.vue +0 -129
  302. package/src/components/NstcG6Components/Calendar/src/basic/year-table.vue +0 -126
  303. package/src/components/NstcG6Components/Calendar/src/main.vue +0 -442
  304. package/src/components/NstcG6Components/DialogForm/index.js +0 -8
  305. package/src/components/NstcG6Components/DialogForm/src/demo/index.vue +0 -56
  306. package/src/components/NstcG6Components/DialogForm/src/main.vue +0 -189
  307. package/src/components/NstcG6Components/Form/A_DEMO/component/originalForm.vue +0 -281
  308. package/src/components/NstcG6Components/Form/A_DEMO/config/config_3.js +0 -1222
  309. package/src/components/NstcG6Components/Form/A_DEMO/index.vue +0 -803
  310. package/src/components/NstcG6Components/Form/AutocompleteCustom/index.vue +0 -72
  311. package/src/components/NstcG6Components/Form/BusinessSpecific/InputMultiple.vue +0 -191
  312. package/src/components/NstcG6Components/Form/BusinessSpecific/InputWithUnit.vue +0 -128
  313. package/src/components/NstcG6Components/Form/BusinessSpecific/SelectTreeDialog.vue +0 -233
  314. package/src/components/NstcG6Components/Form/BusinessSpecific/readme.md +0 -7
  315. package/src/components/NstcG6Components/Form/CascaderCustom/index.vue +0 -101
  316. package/src/components/NstcG6Components/Form/CheckboxCustom/index.vue +0 -84
  317. package/src/components/NstcG6Components/Form/Component.vue +0 -661
  318. package/src/components/NstcG6Components/Form/ComponentSecond.vue +0 -650
  319. package/src/components/NstcG6Components/Form/DatepickerCustom/index.vue +0 -130
  320. package/src/components/NstcG6Components/Form/InputAndDialog/index.js +0 -15
  321. package/src/components/NstcG6Components/Form/InputAndDialog/src/main.vue +0 -395
  322. package/src/components/NstcG6Components/Form/InputCustom/demo/index.vue +0 -65
  323. package/src/components/NstcG6Components/Form/InputCustom/index.vue +0 -307
  324. package/src/components/NstcG6Components/Form/IntervalinputCustom/demo/index.vue +0 -31
  325. package/src/components/NstcG6Components/Form/IntervalinputCustom/index.vue +0 -118
  326. package/src/components/NstcG6Components/Form/Item.vue +0 -330
  327. package/src/components/NstcG6Components/Form/ItemSecond.vue +0 -269
  328. package/src/components/NstcG6Components/Form/List.vue +0 -146
  329. package/src/components/NstcG6Components/Form/ListSecond.vue +0 -130
  330. package/src/components/NstcG6Components/Form/RadioCustom/index.vue +0 -73
  331. package/src/components/NstcG6Components/Form/SelectAccount/index.js +0 -15
  332. package/src/components/NstcG6Components/Form/SelectAccount/src/demo/index.vue +0 -58
  333. package/src/components/NstcG6Components/Form/SelectAccount/src/main.vue +0 -283
  334. package/src/components/NstcG6Components/Form/SelectAndDialog/index.js +0 -15
  335. package/src/components/NstcG6Components/Form/SelectAndDialog/src/main.vue +0 -384
  336. package/src/components/NstcG6Components/Form/SelectCashFlow/index.js +0 -15
  337. package/src/components/NstcG6Components/Form/SelectCashFlow/src/demo/index.vue +0 -42
  338. package/src/components/NstcG6Components/Form/SelectCashFlow/src/main.vue +0 -126
  339. package/src/components/NstcG6Components/Form/SelectCustom/demo/index.vue +0 -82
  340. package/src/components/NstcG6Components/Form/SelectCustom/index.vue +0 -488
  341. package/src/components/NstcG6Components/Form/SelectSubject/index.js +0 -15
  342. package/src/components/NstcG6Components/Form/SelectSubject/src/demo/index.vue +0 -85
  343. package/src/components/NstcG6Components/Form/SelectSubject/src/main.vue +0 -182
  344. package/src/components/NstcG6Components/Form/SelectindialogCustom/demo/index.vue +0 -188
  345. package/src/components/NstcG6Components/Form/SelectindialogCustom/index.vue +0 -650
  346. package/src/components/NstcG6Components/Form/SelectindialogCustom/install.js +0 -7
  347. package/src/components/NstcG6Components/Form/TableRadioCustom/demo/index.vue +0 -53
  348. package/src/components/NstcG6Components/Form/TableRadioCustom/index.vue +0 -183
  349. package/src/components/NstcG6Components/Form/TextCustom/index.vue +0 -38
  350. package/src/components/NstcG6Components/Form/UploadCustom/demo/index.vue +0 -31
  351. package/src/components/NstcG6Components/Form/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  352. package/src/components/NstcG6Components/Form/UploadCustom/index.vue +0 -506
  353. package/src/components/NstcG6Components/Form/configs.js +0 -191
  354. package/src/components/NstcG6Components/Form/configsSecond.js +0 -161
  355. package/src/components/NstcG6Components/Form/index.js +0 -8
  356. package/src/components/NstcG6Components/Form/index.scss +0 -29
  357. package/src/components/NstcG6Components/Form/payeePersonSelect/index.js +0 -15
  358. package/src/components/NstcG6Components/Form/payeePersonSelect/src/demo/index.vue +0 -164
  359. package/src/components/NstcG6Components/Form/payeePersonSelect/src/main.vue +0 -185
  360. package/src/components/NstcG6Components/Form/readme.txt +0 -4
  361. package/src/components/NstcG6Components/FormGroup/index.js +0 -8
  362. package/src/components/NstcG6Components/FormGroup/src/demo/config.js +0 -23
  363. package/src/components/NstcG6Components/FormGroup/src/demo/index.vue +0 -85
  364. package/src/components/NstcG6Components/FormGroup/src/main.vue +0 -639
  365. package/src/components/NstcG6Components/FormGroup/src/validate.js +0 -23
  366. package/src/components/NstcG6Components/InputTag/InputTag.vue +0 -270
  367. package/src/components/NstcG6Components/NstcApprovel/NstcApprovel.vue +0 -25
  368. package/src/components/NstcG6Components/NstcBackToTop/NstcBackToTop.vue +0 -150
  369. package/src/components/NstcG6Components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +0 -123
  370. package/src/components/NstcG6Components/NstcCharts/NstcCharts.vue +0 -162
  371. package/src/components/NstcG6Components/NstcCharts/define.js +0 -74
  372. package/src/components/NstcG6Components/NstcCharts/mixins/resize.js +0 -56
  373. package/src/components/NstcG6Components/NstcConfirm/NstcConfirm.vue +0 -153
  374. package/src/components/NstcG6Components/NstcConfirm/index.js +0 -25
  375. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +0 -185
  376. package/src/components/NstcG6Components/NstcDialogForm/NstcDialogForm.vue +0 -176
  377. package/src/components/NstcG6Components/NstcDialogTable/NstcDialogTable.vue +0 -282
  378. package/src/components/NstcG6Components/NstcDropdown/NstcDropdown.vue +0 -52
  379. package/src/components/NstcG6Components/NstcDropdownTree/NstcDropdownTree.vue +0 -396
  380. package/src/components/NstcG6Components/NstcElectronicFile/NstcElectronicFile.vue +0 -591
  381. package/src/components/NstcG6Components/NstcExcelCustomImport/NstcExcelCustomImport.vue +0 -475
  382. package/src/components/NstcG6Components/NstcExcelCustomImport/img/upload@2x.png +0 -0
  383. package/src/components/NstcG6Components/NstcExcelExport/NstcExcelExport.vue +0 -145
  384. package/src/components/NstcG6Components/NstcExcelImport/NstcExcelImport.vue +0 -1051
  385. package/src/components/NstcG6Components/NstcExcelImport/img/upload@2x.png +0 -0
  386. package/src/components/NstcG6Components/NstcExcelImportN/NstcExcelImportN.vue +0 -1166
  387. package/src/components/NstcG6Components/NstcExpandCollapse/NstcExpandCollapse.vue +0 -130
  388. package/src/components/NstcG6Components/NstcExpandCollapse/index.scss +0 -77
  389. package/src/components/NstcG6Components/NstcFileUpload/NstcFileUpload.vue +0 -989
  390. package/src/components/NstcG6Components/NstcFileUpload/img/addFile.svg +0 -32
  391. package/src/components/NstcG6Components/NstcFileUpload/img/delete.svg +0 -24
  392. package/src/components/NstcG6Components/NstcFileUpload/img/deleteFile.svg +0 -28
  393. package/src/components/NstcG6Components/NstcFileUpload/img/download.svg +0 -24
  394. package/src/components/NstcG6Components/NstcFileUpload/img/inputUpload.svg +0 -30
  395. package/src/components/NstcG6Components/NstcFileUpload/img/look-diabled.svg +0 -24
  396. package/src/components/NstcG6Components/NstcFileUpload/img/look.svg +0 -24
  397. package/src/components/NstcG6Components/NstcForm/A_DEMO/component/originalForm.vue +0 -281
  398. package/src/components/NstcG6Components/NstcForm/A_DEMO/config/config_3.js +0 -1222
  399. package/src/components/NstcG6Components/NstcForm/A_DEMO/index.vue +0 -796
  400. package/src/components/NstcG6Components/NstcForm/AutocompleteCustom/index.vue +0 -68
  401. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/InputMultiple.vue +0 -189
  402. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/InputWithUnit.vue +0 -128
  403. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +0 -233
  404. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/readme.md +0 -7
  405. package/src/components/NstcG6Components/NstcForm/CascaderCustom/index.vue +0 -101
  406. package/src/components/NstcG6Components/NstcForm/CheckboxCustom/index.vue +0 -84
  407. package/src/components/NstcG6Components/NstcForm/Component.vue +0 -684
  408. package/src/components/NstcG6Components/NstcForm/ComponentSecond.vue +0 -650
  409. package/src/components/NstcG6Components/NstcForm/DatepickerCustom/index.vue +0 -130
  410. package/src/components/NstcG6Components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +0 -389
  411. package/src/components/NstcG6Components/NstcForm/InputCustom/index.vue +0 -314
  412. package/src/components/NstcG6Components/NstcForm/IntervalInputCustom/index.vue +0 -116
  413. package/src/components/NstcG6Components/NstcForm/Item.vue +0 -327
  414. package/src/components/NstcG6Components/NstcForm/ItemSecond.vue +0 -269
  415. package/src/components/NstcG6Components/NstcForm/List.vue +0 -146
  416. package/src/components/NstcG6Components/NstcForm/ListSecond.vue +0 -130
  417. package/src/components/NstcG6Components/NstcForm/RadioCustom/index.vue +0 -73
  418. package/src/components/NstcG6Components/NstcForm/SelectAccount/NstcSelectAccount.vue +0 -334
  419. package/src/components/NstcG6Components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +0 -382
  420. package/src/components/NstcG6Components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +0 -123
  421. package/src/components/NstcG6Components/NstcForm/SelectCustom/index.vue +0 -460
  422. package/src/components/NstcG6Components/NstcForm/SelectSubject/NstcSelectSubject.vue +0 -185
  423. package/src/components/NstcG6Components/NstcForm/SelectindialogCustom/index.vue +0 -650
  424. package/src/components/NstcG6Components/NstcForm/TableRadioCustom/index.vue +0 -183
  425. package/src/components/NstcG6Components/NstcForm/TextCustom/index.vue +0 -38
  426. package/src/components/NstcG6Components/NstcForm/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  427. package/src/components/NstcG6Components/NstcForm/UploadCustom/index.vue +0 -483
  428. package/src/components/NstcG6Components/NstcForm/configs.js +0 -191
  429. package/src/components/NstcG6Components/NstcForm/configsSecond.js +0 -161
  430. package/src/components/NstcG6Components/NstcForm/index.js +0 -8
  431. package/src/components/NstcG6Components/NstcForm/index.scss +0 -29
  432. package/src/components/NstcG6Components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +0 -188
  433. package/src/components/NstcG6Components/NstcForm/readme.txt +0 -4
  434. package/src/components/NstcG6Components/NstcPagination/NstcPagination.vue +0 -430
  435. package/src/components/NstcG6Components/NstcPagination/setPageNum.png +0 -0
  436. package/src/components/NstcG6Components/NstcPagination/setpagedefault.png +0 -0
  437. package/src/components/NstcG6Components/NstcScreenFull/NstcScreenFull.vue +0 -70
  438. package/src/components/NstcG6Components/NstcSelectTree/NstcSelectTree.vue +0 -729
  439. package/src/components/NstcG6Components/NstcSelectTreeList/NstcSelectTreeList.vue +0 -676
  440. package/src/components/NstcG6Components/NstcSticky/NstcSticky.vue +0 -97
  441. package/src/components/NstcG6Components/NstcSvgIcon/NstcSvgIcon.vue +0 -72
  442. package/src/components/NstcG6Components/NstcTab/NstcTab.vue +0 -80
  443. package/src/components/NstcG6Components/NstcTabWithBadge/NstcTabWithBadge.vue +0 -45
  444. package/src/components/NstcG6Components/NstcTabWithBadge/index.scss +0 -31
  445. package/src/components/NstcG6Components/NstcTable/ElTableColumnCustom/index.vue +0 -292
  446. package/src/components/NstcG6Components/NstcTable/NstcTable.vue +0 -460
  447. package/src/components/NstcG6Components/NstcTableSet/NstcTableSet.vue +0 -801
  448. package/src/components/NstcG6Components/NstcThemePicker/NstcThemePicker.vue +0 -186
  449. package/src/components/NstcG6Components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +0 -330
  450. package/src/components/NstcG6Components/NstcUploadExcel/NstcUploadExcel.vue +0 -145
  451. package/src/components/NstcG6Components/NstcWorkBench/NstcWorkBench.vue +0 -176
  452. package/src/components/NstcG6Components/Search/NstcSearch.vue +0 -591
  453. package/src/components/NstcG6Components/Search/src/demo/index copy.vue +0 -101
  454. package/src/components/NstcG6Components/Search/src/demo/index.vue +0 -103
  455. package/src/components/NstcG6Components/Search/src/main copy.vue +0 -607
  456. package/src/components/NstcG6Components/approvelTwo/main.vue +0 -220
  457. package/src/components/NstcG6Components/approvelTwo/progress.vue +0 -154
  458. package/src/directives/VCopy/index.js +0 -60
  459. package/src/directives/VNstcNumber/index.js +0 -14
  460. package/src/directives/VNstcNumber/temp.js +0 -446
  461. package/src/utils/dateAndValidator.js +0 -629
  462. package/src/utils/debounce.js +0 -40
  463. package/src/utils/parseTime.js +0 -48
  464. package/src/utils/validate/index.js +0 -7
  465. package/src/utils/vendor/Export2Excel.js +0 -229
  466. package/src/utils/vendor/Export2Zip.js +0 -24
  467. package/src/utils/vue-bus.js +0 -5
@@ -1,489 +1,489 @@
1
- <template>
2
- <div class="file-upload-table">
3
- <!-- 查看附件信息 -->
4
- <template v-if="readonly">
5
- <div class="p-t-s p-b-s">
6
- <div class="flex-box flex-v flex-lr">
7
- <div><slot name="title"></slot></div>
8
- <slot v-if="tableData.length" name="down-btn">
9
- <el-button size="mini" plain @click="downRows">批量下载</el-button>
10
- </slot>
11
- </div>
12
- </div>
13
-
14
- <el-table
15
- :data="tableData"
16
- :row-key="keys.rowKey"
17
- @selection-change="(selection) => (selectionList = selection)"
18
- >
19
- <slot name="selection-column"
20
- ><el-table-column type="selection" width="50" align="center" />
21
- </slot>
22
- <el-table-column label="附件类型" :prop="keys.type">
23
- <template slot="header" slot-scope="scope">
24
- <slot name="type-header" :column="scope.column">附件类型</slot>
25
- </template>
26
- <template slot-scope="{ row }">
27
- <slot name="type" :row="row">{{
28
- row[keys.type] | typeFiter(typeOptions)
29
- }}</slot>
30
- </template>
31
- </el-table-column>
32
- <el-table-column label="附件名称" :prop="keys.name">
33
- <template slot="header" slot-scope="scope">
34
- <slot name="name-header" :column="scope.column">附件名称</slot>
35
- </template>
36
- <template slot-scope="{ row }">
37
- <slot name="name" :row="row">{{ row[keys.name] }}</slot>
38
- </template>
39
- </el-table-column>
40
- <el-table-column
41
- label="上传时间"
42
- :prop="keys.time"
43
- width="170"
44
- align="left"
45
- >
46
- <template slot="header" slot-scope="scope">
47
- <slot name="time-header" :column="scope.column">上传时间</slot>
48
- </template>
49
- <template slot-scope="{ row }">
50
- <slot name="time" :row="row">{{ row[keys.time] }}</slot>
51
- </template>
52
- </el-table-column>
53
- <el-table-column label="上传人" :prop="keys.user">
54
- <template slot="header" slot-scope="scope">
55
- <slot name="user-header" :column="scope.column">上传人</slot>
56
- </template>
57
- <template slot-scope="{ row }">
58
- <slot name="user" :row="row">{{ row[keys.user] }}</slot>
59
- </template>
60
- </el-table-column>
61
- <el-table-column label="操作" align="center" width="80">
62
- <template slot="header" slot-scope="scope">
63
- <slot name="handle-header" :column="scope.column">操作</slot>
64
- </template>
65
- <template slot-scope="{ row }">
66
- <slot name="handle" :row="row">
67
- <el-button
68
- type="text"
69
- icon="el-icon-view"
70
- @click="seeFile(row)"
71
- />
72
- <el-button
73
- type="text"
74
- icon="el-icon-download"
75
- :disabled="!row[keys.url]"
76
- @click="downFile(row)"
77
- />
78
- </slot>
79
- </template>
80
- </el-table-column>
81
- </el-table>
82
- </template>
83
- <!-- 上传附件 -->
84
- <template v-else>
85
- <div class="p-t-s p-b-s">
86
- <div class="flex-box flex-v flex-lr">
87
- <div><slot name="title"></slot></div>
88
- <div>
89
- <slot name="add-btn">
90
- <el-button type="primary" size="mini" @click="addRow"
91
- >新增</el-button
92
- >
93
- </slot>
94
- <slot v-if="tableData.length" name="down-btn">
95
- <el-button size="mini" plain @click="downRows">下载</el-button>
96
- </slot>
97
- <slot v-if="tableData.length" name="delete-btn">
98
- <el-button type="danger" plain size="mini" @click="deleteRows"
99
- >删除</el-button
100
- >
101
- </slot>
102
- </div>
103
- </div>
104
- </div>
105
-
106
- <el-table
107
- :data="tableData"
108
- :row-key="keys.rowKey"
109
- @selection-change="(selection) => (selectionList = selection)"
110
- >
111
- <slot name="selection-column"
112
- ><el-table-column type="selection" width="50" align="center" />
113
- </slot>
114
- <el-table-column label="附件类型" min-width="160">
115
- <template slot="header" slot-scope="scope">
116
- <slot name="type-header" :column="scope.column">附件类型</slot>
117
- </template>
118
- <template slot-scope="{ row }">
119
- <slot name="type" :row="row">
120
- <el-select
121
- v-model="row[keys.type]"
122
- :disabled="row['_typeDisabled']"
123
- placeholder="请选择"
124
- style="width: 100%"
125
- >
126
- <el-option
127
- v-for="item in typeOptions"
128
- :key="item.type"
129
- :disabled="item.disabled"
130
- :value="item.type"
131
- :label="item.label"
132
- />
133
- </el-select>
134
- </slot>
135
- </template>
136
- </el-table-column>
137
- <el-table-column label="附件名称" min-width="160">
138
- <template slot="header" slot-scope="scope">
139
- <slot name="name-header" :column="scope.column">附件名称</slot>
140
- </template>
141
- <template slot-scope="{ row }">
142
- <slot name="name" :row="row">
143
- <el-input v-model="row[keys.name]" placeholder="请输入" />
144
- </slot>
145
- </template>
146
- </el-table-column>
147
- <el-table-column label="附件上传" min-width="160">
148
- <template slot="header" slot-scope="scope">
149
- <slot name="upload-header" :column="scope.column">附件上传</slot>
150
- </template>
151
- <template slot-scope="{ row, $index }">
152
- <slot name="upload" :row="row" :$index="$index">
153
- <clUpload
154
- :ref="'upload' + $index"
155
- class="n20-upload-table-up"
156
- :file-name="row['_name'] || row[keys.name]"
157
- :data="row['_fileData']"
158
- :msg-type="null"
159
- :show-clear="false"
160
- :action="action"
161
- :headers="headers"
162
- :disabled="!row[keys.type]"
163
- :accept="row[keys.type] | acceptFilter(typeOptions, fileAccept)"
164
- :size="row[keys.type] | sizeFilter(typeOptions, fileSize)"
165
- :before-upload="(file) => beforeUploadFn(file, row)"
166
- :on-progress="(event) => onProgressFn(event, row)"
167
- :on-success="
168
- (response, file, fileList) =>
169
- onSuccessFn(response, file, fileList, row)
170
- "
171
- :on-error="
172
- (err, file, fileList) =>
173
- errorFn(err, file, fileList, row, $index)
174
- "
175
- />
176
- </slot>
177
- </template>
178
- </el-table-column>
179
- <el-table-column
180
- label="上传时间"
181
- :prop="keys.time"
182
- width="170"
183
- align="left"
184
- >
185
- <template slot="header" slot-scope="scope">
186
- <slot name="time-header" :column="scope.column">上传时间</slot>
187
- </template>
188
- <template slot-scope="{ row }">
189
- <slot name="time" :row="row">{{ row[keys.time] }}</slot>
190
- </template>
191
- </el-table-column>
192
- <el-table-column label="上传人" :prop="keys.user">
193
- <template slot="header" slot-scope="scope">
194
- <slot name="user-header" :column="scope.column">上传人</slot>
195
- </template>
196
- <template slot-scope="{ row }">
197
- <slot name="user" :row="row">{{ row[keys.user] }}</slot>
198
- </template>
199
- </el-table-column>
200
- <el-table-column label="上传进度" width="220">
201
- <template slot="header" slot-scope="scope">
202
- <slot name="percent-header" :column="scope.column">上传进度</slot>
203
- </template>
204
- <template slot-scope="{ row, $index }">
205
- <slot name="percent" :row="row" :$index="$index">
206
- <div v-if="row['_percent'] >= 0" class="flex-box flex-v">
207
- <el-progress
208
- class="n20-upload-table-progress"
209
- :percentage="row['_percent']"
210
- :status="row['_status']"
211
- style="width: 140px"
212
- />
213
- <el-button
214
- v-if="row['_status'] === 'exception'"
215
- type="text"
216
- size="mini"
217
- style="width: 60px"
218
- @click="anewSubmitFn(row, $index)"
219
- >重新上传</el-button
220
- >
221
- <el-button
222
- v-else-if="row['_percent'] >= 0 && row['_percent'] < 100"
223
- type="text"
224
- size="mini"
225
- style="width: 60px"
226
- @click="abortFn(row, $index)"
227
- >取消</el-button
228
- >
229
- </div>
230
- </slot>
231
- </template>
232
- </el-table-column>
233
- <el-table-column label="操作" align="center" width="80">
234
- <template slot="header" slot-scope="scope">
235
- <slot name="handle-header" :column="scope.column">操作</slot>
236
- </template>
237
- <template slot-scope="{ row }">
238
- <slot name="handle" :row="row">
239
- <el-button
240
- type="text"
241
- icon="el-icon-view"
242
- :disabled="!row[keys.url]"
243
- @click="seeFile(row)"
244
- />
245
- </slot>
246
- </template>
247
- </el-table-column>
248
- </el-table>
249
- </template>
250
-
251
- <el-dialog
252
- class="p-a-0"
253
- title="附件预览"
254
- :visible.sync="visibleP"
255
- top="2vh"
256
- width="96%"
257
- append-to-body
258
- @close="closeSee"
259
- >
260
- <div
261
- v-if="imgType.test(previewName)"
262
- class="p-a flex-box flex-c flex-v"
263
- style="height: 82vh"
264
- >
265
- <img
266
- :src="previewUrl"
267
- :alt="previewName"
268
- style="max-width: 98%; max-height: 98%"
269
- />
270
- </div>
271
- <div v-else class="p-a" style="height: 82vh">
272
- <component
273
- :is="previewSameOrg ? 'object' : 'div'"
274
- :key="previewUrl"
275
- :data="previewUrl"
276
- style="width: 100%; height: 100%"
277
- >
278
- <div class="flex-column flex-c flex-v" style="height: 100%">
279
- <i
280
- class="el-icon-s-release"
281
- style="font-size: 60px; color: #999"
282
- ></i>
283
- <span style="margin-top: 16px">
284
- 不支持在线预览,请
285
- <a :href="previewUrl" :download="previewName || previewUrl"
286
- >下载</a
287
- >
288
- 到本地查看
289
- </span>
290
- </div>
291
- </component>
292
- </div>
293
- </el-dialog>
294
- </div>
295
- </template>
296
-
297
- <script>
298
- import dayjs from 'dayjs'
299
- import axios from '../../utils/axios'
300
- import clUpload from '../Upload/index.vue'
301
- export default {
302
- name: 'FileUploadTable',
303
- components: {
304
- clUpload
305
- },
306
- filters: {
307
- typeFiter(type, typeOptions) {
308
- return typeOptions.find((c) => c.type === type)?.label || ''
309
- },
310
- acceptFilter(type, typeOptions, fileAccept) {
311
- return typeOptions.find((c) => c.type === type)?.accept || fileAccept
312
- },
313
- sizeFilter(type, typeOptions, fileSize) {
314
- return typeOptions.find((c) => c.type === type)?.size || fileSize
315
- }
316
- },
317
- props: {
318
- readonly: {
319
- type: Boolean,
320
- default: false
321
- },
322
- action: {
323
- type: String,
324
- default: '/bems/1.0/attach'
325
- },
326
- headers: {
327
- type: Object,
328
- default: undefined
329
- },
330
- seePrefix: {
331
- type: String,
332
- default: undefined
333
- },
334
- seeTypes: {
335
- type: RegExp,
336
- default: () => /\.jpg|\.png|\.gif|\.svg|\.pdf$/i
337
- },
338
- tableData: {
339
- type: Array,
340
- default: () => []
341
- },
342
- dataPorp: {
343
- type: Object,
344
- default: () => ({})
345
- }
346
- },
347
- data() {
348
- return {
349
- imgType: /\.jpg|\.png|\.gif|\.svg$/i,
350
- selectionList: [],
351
- fileAccept: this.dataPorp.fileAccept || undefined,
352
- fileSize: this.dataPorp.fileSize || undefined,
353
- typeOptions: this.dataPorp.typeOptions || [
354
- {
355
- type: '001',
356
- label: '信贷合同'
357
- },
358
- {
359
- type: '002',
360
- label: '贴现合同'
361
- },
362
- {
363
- type: '003',
364
- label: '其他合同'
365
- }
366
- ],
367
- keys: this.dataPorp.keys || {
368
- rowKey: 'id',
369
- type: 'type',
370
- name: 'name',
371
- url: 'url',
372
- time: 'time',
373
- user: 'user'
374
- },
375
-
376
- visibleP: false,
377
- previewUrl: undefined,
378
- previewName: undefined,
379
- previewSameOrg: false
380
- }
381
- },
382
- methods: {
383
- addRow() {
384
- this.$emit('add-row')
385
- },
386
- downRows() {
387
- this.$emit('down-rows', this.selectionList)
388
- },
389
- deleteRows() {
390
- this.$emit('delete-rows', this.selectionList)
391
- },
392
- async getFileInfo(row) {
393
- let _url = row[this.keys.url]
394
- this.seePrefix && (_url = this.seePrefix + _url)
395
- if (_url) {
396
- let blob = await axios.get(_url, {}, { responseType: 'blob' })
397
- let url = URL.createObjectURL(blob)
398
- let name = blob.name
399
- let sameOrg = this.seeTypes.test(name) || this.seeTypes.test(_url)
400
- return {
401
- url,
402
- name,
403
- sameOrg
404
- }
405
- } else {
406
- return {}
407
- }
408
- },
409
- async downFile(row) {
410
- let { url, name } = await this.getFileInfo(row)
411
- if (url) {
412
- let aDom = document.createElement('a')
413
- aDom.href = url
414
- aDom.download = name
415
- aDom.click()
416
-
417
- this.$nextTick(() => {
418
- aDom = undefined
419
- url && URL.revokeObjectURL(url)
420
- })
421
- }
422
- },
423
- async seeFile(row) {
424
- let { url, name, sameOrg } = await this.getFileInfo(row)
425
- if (url) {
426
- this.previewSameOrg = sameOrg
427
- this.previewUrl = url
428
- this.previewName = name
429
- this.visibleP = true
430
- }
431
- },
432
- closeSee() {
433
- this.previewUrl && URL.revokeObjectURL(this.previewUrl)
434
- },
435
- beforeUploadFn(file, row) {
436
- this.$set(row, '_percent', 0)
437
- this.$set(row, '_status', undefined)
438
-
439
- this.$emit('before-upload', file, row)
440
- },
441
- onProgressFn({ percent }, row) {
442
- this.$set(row, '_percent', percent <= 99 ? Math.round(percent) : 99)
443
- },
444
- onSuccessFn(response, file, fileList, row) {
445
- this.$set(row, '_name', file.name)
446
- this.$set(row, '_percent', 100)
447
-
448
- row[this.keys.time] = dayjs().format('YYYY-MM-DD HH:mm:ss')
449
-
450
- row[this.keys.url] = response.data
451
- if (!row[this.keys.name]) {
452
- row[this.keys.name] = file.name
453
- }
454
- this.$set(row, '_status', 'success')
455
-
456
- this.$emit('on-success', file, row)
457
- },
458
- errorFn(err, file, fileList, row, $index) {
459
- this.$set(row, '_status', 'exception')
460
-
461
- let clUpload = this.$refs['upload' + $index]
462
- /* 重置文件状态,并加入文件队列 */
463
- file.status = 'ready'
464
- clUpload.fileList = [file]
465
-
466
- this.$emit('on-error', file, row)
467
- },
468
- abortFn(row, $index) {
469
- this.$set(row, '_status', 'exception')
470
-
471
- let clUpload = this.$refs['upload' + $index]
472
- let elUpload = clUpload.$refs['upload']
473
- let uploadFiles = elUpload.uploadFiles
474
-
475
- /* 重置文件状态,并加入文件队列 */
476
- let file = uploadFiles[uploadFiles.length - 1]
477
- file.status = 'ready'
478
- clUpload.fileList = [file]
479
-
480
- elUpload.abort()
481
- },
482
- anewSubmitFn(row, $index) {
483
- this.$set(row, '_status', 'success')
484
-
485
- this.$refs['upload' + $index]?.$refs['upload']?.submit()
486
- }
487
- }
488
- }
489
- </script>
1
+ <template>
2
+ <div class="file-upload-table">
3
+ <!-- 查看附件信息 -->
4
+ <template v-if="readonly">
5
+ <div class="p-t-s p-b-s">
6
+ <div class="flex-box flex-v flex-lr">
7
+ <div><slot name="title"></slot></div>
8
+ <slot v-if="tableData.length" name="down-btn">
9
+ <el-button size="mini" plain @click="downRows">批量下载</el-button>
10
+ </slot>
11
+ </div>
12
+ </div>
13
+
14
+ <el-table
15
+ :data="tableData"
16
+ :row-key="keys.rowKey"
17
+ @selection-change="(selection) => (selectionList = selection)"
18
+ >
19
+ <slot name="selection-column"
20
+ ><el-table-column type="selection" width="50" align="center" />
21
+ </slot>
22
+ <el-table-column label="附件类型" :prop="keys.type">
23
+ <template slot="header" slot-scope="scope">
24
+ <slot name="type-header" :column="scope.column">附件类型</slot>
25
+ </template>
26
+ <template slot-scope="{ row }">
27
+ <slot name="type" :row="row">{{
28
+ row[keys.type] | typeFiter(typeOptions)
29
+ }}</slot>
30
+ </template>
31
+ </el-table-column>
32
+ <el-table-column label="附件名称" :prop="keys.name">
33
+ <template slot="header" slot-scope="scope">
34
+ <slot name="name-header" :column="scope.column">附件名称</slot>
35
+ </template>
36
+ <template slot-scope="{ row }">
37
+ <slot name="name" :row="row">{{ row[keys.name] }}</slot>
38
+ </template>
39
+ </el-table-column>
40
+ <el-table-column
41
+ label="上传时间"
42
+ :prop="keys.time"
43
+ width="170"
44
+ align="left"
45
+ >
46
+ <template slot="header" slot-scope="scope">
47
+ <slot name="time-header" :column="scope.column">上传时间</slot>
48
+ </template>
49
+ <template slot-scope="{ row }">
50
+ <slot name="time" :row="row">{{ row[keys.time] }}</slot>
51
+ </template>
52
+ </el-table-column>
53
+ <el-table-column label="上传人" :prop="keys.user">
54
+ <template slot="header" slot-scope="scope">
55
+ <slot name="user-header" :column="scope.column">上传人</slot>
56
+ </template>
57
+ <template slot-scope="{ row }">
58
+ <slot name="user" :row="row">{{ row[keys.user] }}</slot>
59
+ </template>
60
+ </el-table-column>
61
+ <el-table-column label="操作" align="center" width="80">
62
+ <template slot="header" slot-scope="scope">
63
+ <slot name="handle-header" :column="scope.column">操作</slot>
64
+ </template>
65
+ <template slot-scope="{ row }">
66
+ <slot name="handle" :row="row">
67
+ <el-button
68
+ type="text"
69
+ icon="el-icon-view"
70
+ @click="seeFile(row)"
71
+ />
72
+ <el-button
73
+ type="text"
74
+ icon="el-icon-download"
75
+ :disabled="!row[keys.url]"
76
+ @click="downFile(row)"
77
+ />
78
+ </slot>
79
+ </template>
80
+ </el-table-column>
81
+ </el-table>
82
+ </template>
83
+ <!-- 上传附件 -->
84
+ <template v-else>
85
+ <div class="p-t-s p-b-s">
86
+ <div class="flex-box flex-v flex-lr">
87
+ <div><slot name="title"></slot></div>
88
+ <div>
89
+ <slot name="add-btn">
90
+ <el-button type="primary" size="mini" @click="addRow"
91
+ >新增</el-button
92
+ >
93
+ </slot>
94
+ <slot v-if="tableData.length" name="down-btn">
95
+ <el-button size="mini" plain @click="downRows">下载</el-button>
96
+ </slot>
97
+ <slot v-if="tableData.length" name="delete-btn">
98
+ <el-button type="danger" plain size="mini" @click="deleteRows"
99
+ >删除</el-button
100
+ >
101
+ </slot>
102
+ </div>
103
+ </div>
104
+ </div>
105
+
106
+ <el-table
107
+ :data="tableData"
108
+ :row-key="keys.rowKey"
109
+ @selection-change="(selection) => (selectionList = selection)"
110
+ >
111
+ <slot name="selection-column"
112
+ ><el-table-column type="selection" width="50" align="center" />
113
+ </slot>
114
+ <el-table-column label="附件类型" min-width="160">
115
+ <template slot="header" slot-scope="scope">
116
+ <slot name="type-header" :column="scope.column">附件类型</slot>
117
+ </template>
118
+ <template slot-scope="{ row }">
119
+ <slot name="type" :row="row">
120
+ <el-select
121
+ v-model="row[keys.type]"
122
+ :disabled="row['_typeDisabled']"
123
+ placeholder="请选择"
124
+ style="width: 100%"
125
+ >
126
+ <el-option
127
+ v-for="item in typeOptions"
128
+ :key="item.type"
129
+ :disabled="item.disabled"
130
+ :value="item.type"
131
+ :label="item.label"
132
+ />
133
+ </el-select>
134
+ </slot>
135
+ </template>
136
+ </el-table-column>
137
+ <el-table-column label="附件名称" min-width="160">
138
+ <template slot="header" slot-scope="scope">
139
+ <slot name="name-header" :column="scope.column">附件名称</slot>
140
+ </template>
141
+ <template slot-scope="{ row }">
142
+ <slot name="name" :row="row">
143
+ <el-input v-model="row[keys.name]" placeholder="请输入" />
144
+ </slot>
145
+ </template>
146
+ </el-table-column>
147
+ <el-table-column label="附件上传" min-width="160">
148
+ <template slot="header" slot-scope="scope">
149
+ <slot name="upload-header" :column="scope.column">附件上传</slot>
150
+ </template>
151
+ <template slot-scope="{ row, $index }">
152
+ <slot name="upload" :row="row" :$index="$index">
153
+ <clUpload
154
+ :ref="'upload' + $index"
155
+ class="n20-upload-table-up"
156
+ :file-name="row['_name'] || row[keys.name]"
157
+ :data="row['_fileData']"
158
+ :msg-type="null"
159
+ :show-clear="false"
160
+ :action="action"
161
+ :headers="headers"
162
+ :disabled="!row[keys.type]"
163
+ :accept="row[keys.type] | acceptFilter(typeOptions, fileAccept)"
164
+ :size="row[keys.type] | sizeFilter(typeOptions, fileSize)"
165
+ :before-upload="(file) => beforeUploadFn(file, row)"
166
+ :on-progress="(event) => onProgressFn(event, row)"
167
+ :on-success="
168
+ (response, file, fileList) =>
169
+ onSuccessFn(response, file, fileList, row)
170
+ "
171
+ :on-error="
172
+ (err, file, fileList) =>
173
+ errorFn(err, file, fileList, row, $index)
174
+ "
175
+ />
176
+ </slot>
177
+ </template>
178
+ </el-table-column>
179
+ <el-table-column
180
+ label="上传时间"
181
+ :prop="keys.time"
182
+ width="170"
183
+ align="left"
184
+ >
185
+ <template slot="header" slot-scope="scope">
186
+ <slot name="time-header" :column="scope.column">上传时间</slot>
187
+ </template>
188
+ <template slot-scope="{ row }">
189
+ <slot name="time" :row="row">{{ row[keys.time] }}</slot>
190
+ </template>
191
+ </el-table-column>
192
+ <el-table-column label="上传人" :prop="keys.user">
193
+ <template slot="header" slot-scope="scope">
194
+ <slot name="user-header" :column="scope.column">上传人</slot>
195
+ </template>
196
+ <template slot-scope="{ row }">
197
+ <slot name="user" :row="row">{{ row[keys.user] }}</slot>
198
+ </template>
199
+ </el-table-column>
200
+ <el-table-column label="上传进度" width="220">
201
+ <template slot="header" slot-scope="scope">
202
+ <slot name="percent-header" :column="scope.column">上传进度</slot>
203
+ </template>
204
+ <template slot-scope="{ row, $index }">
205
+ <slot name="percent" :row="row" :$index="$index">
206
+ <div v-if="row['_percent'] >= 0" class="flex-box flex-v">
207
+ <el-progress
208
+ class="n20-upload-table-progress"
209
+ :percentage="row['_percent']"
210
+ :status="row['_status']"
211
+ style="width: 140px"
212
+ />
213
+ <el-button
214
+ v-if="row['_status'] === 'exception'"
215
+ type="text"
216
+ size="mini"
217
+ style="width: 60px"
218
+ @click="anewSubmitFn(row, $index)"
219
+ >重新上传</el-button
220
+ >
221
+ <el-button
222
+ v-else-if="row['_percent'] >= 0 && row['_percent'] < 100"
223
+ type="text"
224
+ size="mini"
225
+ style="width: 60px"
226
+ @click="abortFn(row, $index)"
227
+ >取消</el-button
228
+ >
229
+ </div>
230
+ </slot>
231
+ </template>
232
+ </el-table-column>
233
+ <el-table-column label="操作" align="center" width="80">
234
+ <template slot="header" slot-scope="scope">
235
+ <slot name="handle-header" :column="scope.column">操作</slot>
236
+ </template>
237
+ <template slot-scope="{ row }">
238
+ <slot name="handle" :row="row">
239
+ <el-button
240
+ type="text"
241
+ icon="el-icon-view"
242
+ :disabled="!row[keys.url]"
243
+ @click="seeFile(row)"
244
+ />
245
+ </slot>
246
+ </template>
247
+ </el-table-column>
248
+ </el-table>
249
+ </template>
250
+
251
+ <el-dialog
252
+ class="p-a-0"
253
+ title="附件预览"
254
+ :visible.sync="visibleP"
255
+ top="2vh"
256
+ width="96%"
257
+ append-to-body
258
+ @close="closeSee"
259
+ >
260
+ <div
261
+ v-if="imgType.test(previewName)"
262
+ class="p-a flex-box flex-c flex-v"
263
+ style="height: 82vh"
264
+ >
265
+ <img
266
+ :src="previewUrl"
267
+ :alt="previewName"
268
+ style="max-width: 98%; max-height: 98%"
269
+ />
270
+ </div>
271
+ <div v-else class="p-a" style="height: 82vh">
272
+ <component
273
+ :is="previewSameOrg ? 'object' : 'div'"
274
+ :key="previewUrl"
275
+ :data="previewUrl"
276
+ style="width: 100%; height: 100%"
277
+ >
278
+ <div class="flex-column flex-c flex-v" style="height: 100%">
279
+ <i
280
+ class="el-icon-s-release"
281
+ style="font-size: 60px; color: #999"
282
+ ></i>
283
+ <span style="margin-top: 16px">
284
+ 不支持在线预览,请
285
+ <a :href="previewUrl" :download="previewName || previewUrl"
286
+ >下载</a
287
+ >
288
+ 到本地查看
289
+ </span>
290
+ </div>
291
+ </component>
292
+ </div>
293
+ </el-dialog>
294
+ </div>
295
+ </template>
296
+
297
+ <script>
298
+ import dayjs from 'dayjs'
299
+ import axios from '../../utils/axios'
300
+ import clUpload from '../Upload/index.vue'
301
+ export default {
302
+ name: 'FileUploadTable',
303
+ components: {
304
+ clUpload
305
+ },
306
+ filters: {
307
+ typeFiter(type, typeOptions) {
308
+ return typeOptions.find((c) => c.type === type)?.label || ''
309
+ },
310
+ acceptFilter(type, typeOptions, fileAccept) {
311
+ return typeOptions.find((c) => c.type === type)?.accept || fileAccept
312
+ },
313
+ sizeFilter(type, typeOptions, fileSize) {
314
+ return typeOptions.find((c) => c.type === type)?.size || fileSize
315
+ }
316
+ },
317
+ props: {
318
+ readonly: {
319
+ type: Boolean,
320
+ default: false
321
+ },
322
+ action: {
323
+ type: String,
324
+ default: '/bems/1.0/attach'
325
+ },
326
+ headers: {
327
+ type: Object,
328
+ default: undefined
329
+ },
330
+ seePrefix: {
331
+ type: String,
332
+ default: undefined
333
+ },
334
+ seeTypes: {
335
+ type: RegExp,
336
+ default: () => /\.jpg|\.png|\.gif|\.svg|\.pdf$/i
337
+ },
338
+ tableData: {
339
+ type: Array,
340
+ default: () => []
341
+ },
342
+ dataPorp: {
343
+ type: Object,
344
+ default: () => ({})
345
+ }
346
+ },
347
+ data() {
348
+ return {
349
+ imgType: /\.jpg|\.png|\.gif|\.svg$/i,
350
+ selectionList: [],
351
+ fileAccept: this.dataPorp.fileAccept || undefined,
352
+ fileSize: this.dataPorp.fileSize || undefined,
353
+ typeOptions: this.dataPorp.typeOptions || [
354
+ {
355
+ type: '001',
356
+ label: '信贷合同'
357
+ },
358
+ {
359
+ type: '002',
360
+ label: '贴现合同'
361
+ },
362
+ {
363
+ type: '003',
364
+ label: '其他合同'
365
+ }
366
+ ],
367
+ keys: this.dataPorp.keys || {
368
+ rowKey: 'id',
369
+ type: 'type',
370
+ name: 'name',
371
+ url: 'url',
372
+ time: 'time',
373
+ user: 'user'
374
+ },
375
+
376
+ visibleP: false,
377
+ previewUrl: undefined,
378
+ previewName: undefined,
379
+ previewSameOrg: false
380
+ }
381
+ },
382
+ methods: {
383
+ addRow() {
384
+ this.$emit('add-row')
385
+ },
386
+ downRows() {
387
+ this.$emit('down-rows', this.selectionList)
388
+ },
389
+ deleteRows() {
390
+ this.$emit('delete-rows', this.selectionList)
391
+ },
392
+ async getFileInfo(row) {
393
+ let _url = row[this.keys.url]
394
+ this.seePrefix && (_url = this.seePrefix + _url)
395
+ if (_url) {
396
+ let blob = await axios.get(_url, {}, { responseType: 'blob' })
397
+ let url = URL.createObjectURL(blob)
398
+ let name = blob.name
399
+ let sameOrg = this.seeTypes.test(name) || this.seeTypes.test(_url)
400
+ return {
401
+ url,
402
+ name,
403
+ sameOrg
404
+ }
405
+ } else {
406
+ return {}
407
+ }
408
+ },
409
+ async downFile(row) {
410
+ let { url, name } = await this.getFileInfo(row)
411
+ if (url) {
412
+ let aDom = document.createElement('a')
413
+ aDom.href = url
414
+ aDom.download = name
415
+ aDom.click()
416
+
417
+ this.$nextTick(() => {
418
+ aDom = undefined
419
+ url && URL.revokeObjectURL(url)
420
+ })
421
+ }
422
+ },
423
+ async seeFile(row) {
424
+ let { url, name, sameOrg } = await this.getFileInfo(row)
425
+ if (url) {
426
+ this.previewSameOrg = sameOrg
427
+ this.previewUrl = url
428
+ this.previewName = name
429
+ this.visibleP = true
430
+ }
431
+ },
432
+ closeSee() {
433
+ this.previewUrl && URL.revokeObjectURL(this.previewUrl)
434
+ },
435
+ beforeUploadFn(file, row) {
436
+ this.$set(row, '_percent', 0)
437
+ this.$set(row, '_status', undefined)
438
+
439
+ this.$emit('before-upload', file, row)
440
+ },
441
+ onProgressFn({ percent }, row) {
442
+ this.$set(row, '_percent', percent <= 99 ? Math.round(percent) : 99)
443
+ },
444
+ onSuccessFn(response, file, fileList, row) {
445
+ this.$set(row, '_name', file.name)
446
+ this.$set(row, '_percent', 100)
447
+
448
+ row[this.keys.time] = dayjs().format('YYYY-MM-DD HH:mm:ss')
449
+
450
+ row[this.keys.url] = response.data
451
+ if (!row[this.keys.name]) {
452
+ row[this.keys.name] = file.name
453
+ }
454
+ this.$set(row, '_status', 'success')
455
+
456
+ this.$emit('on-success', file, row)
457
+ },
458
+ errorFn(err, file, fileList, row, $index) {
459
+ this.$set(row, '_status', 'exception')
460
+
461
+ let clUpload = this.$refs['upload' + $index]
462
+ /* 重置文件状态,并加入文件队列 */
463
+ file.status = 'ready'
464
+ clUpload.fileList = [file]
465
+
466
+ this.$emit('on-error', file, row)
467
+ },
468
+ abortFn(row, $index) {
469
+ this.$set(row, '_status', 'exception')
470
+
471
+ let clUpload = this.$refs['upload' + $index]
472
+ let elUpload = clUpload.$refs['upload']
473
+ let uploadFiles = elUpload.uploadFiles
474
+
475
+ /* 重置文件状态,并加入文件队列 */
476
+ let file = uploadFiles[uploadFiles.length - 1]
477
+ file.status = 'ready'
478
+ clUpload.fileList = [file]
479
+
480
+ elUpload.abort()
481
+ },
482
+ anewSubmitFn(row, $index) {
483
+ this.$set(row, '_status', 'success')
484
+
485
+ this.$refs['upload' + $index]?.$refs['upload']?.submit()
486
+ }
487
+ }
488
+ }
489
+ </script>