n20-common-lib 1.3.9 → 1.3.12

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 (287) hide show
  1. package/nstc-g6/assets/svg/404.svg +1 -0
  2. package/nstc-g6/assets/svg/addFile.svg +32 -0
  3. package/nstc-g6/assets/svg/bug.svg +1 -0
  4. package/nstc-g6/assets/svg/chart.svg +1 -0
  5. package/nstc-g6/assets/svg/clipboard.svg +1 -0
  6. package/nstc-g6/assets/svg/component.svg +1 -0
  7. package/nstc-g6/assets/svg/dashboard.svg +1 -0
  8. package/nstc-g6/assets/svg/deleteFile.svg +28 -0
  9. package/nstc-g6/assets/svg/documentation.svg +1 -0
  10. package/nstc-g6/assets/svg/drag.svg +1 -0
  11. package/nstc-g6/assets/svg/edit.svg +1 -0
  12. package/nstc-g6/assets/svg/education.svg +1 -0
  13. package/nstc-g6/assets/svg/email.svg +1 -0
  14. package/nstc-g6/assets/svg/example.svg +1 -0
  15. package/nstc-g6/assets/svg/excel.svg +1 -0
  16. package/nstc-g6/assets/svg/exit-fullscreen.svg +1 -0
  17. package/nstc-g6/assets/svg/eye-open.svg +1 -0
  18. package/nstc-g6/assets/svg/eye.svg +1 -0
  19. package/nstc-g6/assets/svg/favorite.svg +1 -0
  20. package/nstc-g6/assets/svg/favorite_active.svg +1 -0
  21. package/nstc-g6/assets/svg/favorite_x400.svg +1 -0
  22. package/nstc-g6/assets/svg/favorite_x400_active.svg +1 -0
  23. package/nstc-g6/assets/svg/favorite_x400_blank.svg +1 -0
  24. package/nstc-g6/assets/svg/filter.svg +16 -0
  25. package/nstc-g6/assets/svg/filter@2x.png +0 -0
  26. package/nstc-g6/assets/svg/filterActive.svg +16 -0
  27. package/nstc-g6/assets/svg/filterClose@2x.png +0 -0
  28. package/nstc-g6/assets/svg/form.svg +1 -0
  29. package/nstc-g6/assets/svg/fullscreen.svg +1 -0
  30. package/nstc-g6/assets/svg/guide.svg +1 -0
  31. package/nstc-g6/assets/svg/hourglass.svg +19 -0
  32. package/nstc-g6/assets/svg/icon.svg +1 -0
  33. package/nstc-g6/assets/svg/international.svg +1 -0
  34. package/nstc-g6/assets/svg/language.svg +1 -0
  35. package/nstc-g6/assets/svg/left-dis.svg +1 -0
  36. package/nstc-g6/assets/svg/left.svg +1 -0
  37. package/nstc-g6/assets/svg/link.svg +1 -0
  38. package/nstc-g6/assets/svg/list.svg +1 -0
  39. package/nstc-g6/assets/svg/lock.svg +1 -0
  40. package/nstc-g6/assets/svg/message-t.svg +1 -0
  41. package/nstc-g6/assets/svg/money.svg +1 -0
  42. package/nstc-g6/assets/svg/money3.svg +1 -0
  43. package/nstc-g6/assets/svg/money4.svg +1 -0
  44. package/nstc-g6/assets/svg/moneyTwo.svg +1 -0
  45. package/nstc-g6/assets/svg/msg_white.svg +1 -0
  46. package/nstc-g6/assets/svg/nested.svg +1 -0
  47. package/nstc-g6/assets/svg/newsearch.svg +19 -0
  48. package/nstc-g6/assets/svg/password.svg +1 -0
  49. package/nstc-g6/assets/svg/pdf.svg +1 -0
  50. package/nstc-g6/assets/svg/people.svg +1 -0
  51. package/nstc-g6/assets/svg/peoples.svg +1 -0
  52. package/nstc-g6/assets/svg/phone.svg +1 -0
  53. package/nstc-g6/assets/svg/phone_msg.svg +1 -0
  54. package/nstc-g6/assets/svg/qq.svg +1 -0
  55. package/nstc-g6/assets/svg/right-dis.svg +1 -0
  56. package/nstc-g6/assets/svg/right.svg +1 -0
  57. package/nstc-g6/assets/svg/search.svg +1 -0
  58. package/nstc-g6/assets/svg/searchActive.svg +19 -0
  59. package/nstc-g6/assets/svg/shopping.svg +1 -0
  60. package/nstc-g6/assets/svg/size.svg +1 -0
  61. package/nstc-g6/assets/svg/skill.svg +1 -0
  62. package/nstc-g6/assets/svg/star.svg +1 -0
  63. package/nstc-g6/assets/svg/steam.svg +1 -0
  64. package/nstc-g6/assets/svg/tab.svg +1 -0
  65. package/nstc-g6/assets/svg/table.svg +1 -0
  66. package/nstc-g6/assets/svg/theme.svg +1 -0
  67. package/nstc-g6/assets/svg/tree-table.svg +1 -0
  68. package/nstc-g6/assets/svg/tree.svg +1 -0
  69. package/nstc-g6/assets/svg/user.svg +1 -0
  70. package/nstc-g6/assets/svg/wechat.svg +1 -0
  71. package/nstc-g6/assets/svg/z-left-2-dis.svg +1 -0
  72. package/nstc-g6/assets/svg/z-left-2.svg +1 -0
  73. package/nstc-g6/assets/svg/z-right-2-dis.svg +1 -0
  74. package/nstc-g6/assets/svg/z-right-2.svg +1 -0
  75. package/nstc-g6/assets/svg/z-right.svg +1 -0
  76. package/nstc-g6/assets/svg/zip.svg +1 -0
  77. package/nstc-g6/components/Calendar/index.js +8 -0
  78. package/nstc-g6/components/Calendar/src/basic/month-table.vue +129 -0
  79. package/nstc-g6/components/Calendar/src/basic/year-table.vue +126 -0
  80. package/nstc-g6/components/Calendar/src/main.vue +442 -0
  81. package/nstc-g6/components/DialogForm/index.js +8 -0
  82. package/nstc-g6/components/DialogForm/src/demo/index.vue +56 -0
  83. package/nstc-g6/components/DialogForm/src/main.vue +189 -0
  84. package/nstc-g6/components/Form/A_DEMO/component/originalForm.vue +281 -0
  85. package/nstc-g6/components/Form/A_DEMO/config/config_3.js +1222 -0
  86. package/nstc-g6/components/Form/A_DEMO/index.vue +803 -0
  87. package/nstc-g6/components/Form/AutocompleteCustom/index.vue +72 -0
  88. package/nstc-g6/components/Form/BusinessSpecific/InputMultiple.vue +191 -0
  89. package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +128 -0
  90. package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +233 -0
  91. package/nstc-g6/components/Form/BusinessSpecific/readme.md +7 -0
  92. package/nstc-g6/components/Form/CascaderCustom/index.vue +101 -0
  93. package/nstc-g6/components/Form/CheckboxCustom/index.vue +84 -0
  94. package/nstc-g6/components/Form/Component.vue +661 -0
  95. package/nstc-g6/components/Form/ComponentSecond.vue +650 -0
  96. package/nstc-g6/components/Form/DatepickerCustom/index.vue +130 -0
  97. package/nstc-g6/components/Form/InputAndDialog/index.js +15 -0
  98. package/nstc-g6/components/Form/InputAndDialog/src/main.vue +395 -0
  99. package/nstc-g6/components/Form/InputCustom/demo/index.vue +65 -0
  100. package/nstc-g6/components/Form/InputCustom/index.vue +307 -0
  101. package/nstc-g6/components/Form/IntervalinputCustom/demo/index.vue +31 -0
  102. package/nstc-g6/components/Form/IntervalinputCustom/index.vue +118 -0
  103. package/nstc-g6/components/Form/Item.vue +330 -0
  104. package/nstc-g6/components/Form/ItemSecond.vue +269 -0
  105. package/nstc-g6/components/Form/List.vue +146 -0
  106. package/nstc-g6/components/Form/ListSecond.vue +130 -0
  107. package/nstc-g6/components/Form/RadioCustom/index.vue +73 -0
  108. package/nstc-g6/components/Form/SelectAccount/index.js +15 -0
  109. package/nstc-g6/components/Form/SelectAccount/src/demo/index.vue +58 -0
  110. package/nstc-g6/components/Form/SelectAccount/src/main.vue +283 -0
  111. package/nstc-g6/components/Form/SelectAndDialog/index.js +15 -0
  112. package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +384 -0
  113. package/nstc-g6/components/Form/SelectCashFlow/index.js +15 -0
  114. package/nstc-g6/components/Form/SelectCashFlow/src/demo/index.vue +42 -0
  115. package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +126 -0
  116. package/nstc-g6/components/Form/SelectCustom/demo/index.vue +82 -0
  117. package/nstc-g6/components/Form/SelectCustom/index.vue +488 -0
  118. package/nstc-g6/components/Form/SelectSubject/index.js +15 -0
  119. package/nstc-g6/components/Form/SelectSubject/src/demo/index.vue +85 -0
  120. package/nstc-g6/components/Form/SelectSubject/src/main.vue +182 -0
  121. package/nstc-g6/components/Form/SelectindialogCustom/demo/index.vue +188 -0
  122. package/nstc-g6/components/Form/SelectindialogCustom/index.vue +650 -0
  123. package/nstc-g6/components/Form/SelectindialogCustom/install.js +7 -0
  124. package/nstc-g6/components/Form/TableRadioCustom/demo/index.vue +53 -0
  125. package/nstc-g6/components/Form/TableRadioCustom/index.vue +183 -0
  126. package/nstc-g6/components/Form/TextCustom/index.vue +38 -0
  127. package/nstc-g6/components/Form/UploadCustom/demo/index.vue +31 -0
  128. package/nstc-g6/components/Form/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  129. package/nstc-g6/components/Form/UploadCustom/index.vue +506 -0
  130. package/nstc-g6/components/Form/configs.js +191 -0
  131. package/nstc-g6/components/Form/configsSecond.js +161 -0
  132. package/nstc-g6/components/Form/index.js +8 -0
  133. package/nstc-g6/components/Form/index.scss +29 -0
  134. package/nstc-g6/components/Form/payeePersonSelect/index.js +15 -0
  135. package/nstc-g6/components/Form/payeePersonSelect/src/demo/index.vue +164 -0
  136. package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +185 -0
  137. package/nstc-g6/components/Form/readme.txt +4 -0
  138. package/nstc-g6/components/FormGroup/index.js +8 -0
  139. package/nstc-g6/components/FormGroup/src/demo/config.js +23 -0
  140. package/nstc-g6/components/FormGroup/src/demo/index.vue +85 -0
  141. package/nstc-g6/components/FormGroup/src/main.vue +639 -0
  142. package/nstc-g6/components/FormGroup/src/validate.js +23 -0
  143. package/nstc-g6/components/InputTag/InputTag.vue +270 -0
  144. package/nstc-g6/components/NstcApprovel/NstcApprovel.vue +24 -0
  145. package/nstc-g6/components/NstcBackToTop/NstcBackToTop.vue +150 -0
  146. package/nstc-g6/components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +123 -0
  147. package/nstc-g6/components/NstcCharts/NstcCharts.vue +162 -0
  148. package/nstc-g6/components/NstcCharts/define.js +74 -0
  149. package/nstc-g6/components/NstcCharts/mixins/resize.js +56 -0
  150. package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +152 -0
  151. package/nstc-g6/components/NstcConfirm/index.js +25 -0
  152. package/nstc-g6/components/NstcDialog/NstcDialog.vue +185 -0
  153. package/nstc-g6/components/NstcDialogForm/NstcDialogForm.vue +176 -0
  154. package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +280 -0
  155. package/nstc-g6/components/NstcDropdown/NstcDropdown.vue +52 -0
  156. package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +396 -0
  157. package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +591 -0
  158. package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +475 -0
  159. package/nstc-g6/components/NstcExcelCustomImport/img/upload@2x.png +0 -0
  160. package/nstc-g6/components/NstcExcelExport/NstcExcelExport.vue +145 -0
  161. package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +1074 -0
  162. package/nstc-g6/components/NstcExcelImport/img/upload@2x.png +0 -0
  163. package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +1166 -0
  164. package/nstc-g6/components/NstcExpandCollapse/NstcExpandCollapse.vue +130 -0
  165. package/nstc-g6/components/NstcExpandCollapse/index.scss +77 -0
  166. package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +989 -0
  167. package/nstc-g6/components/NstcFileUpload/img/addFile.svg +32 -0
  168. package/nstc-g6/components/NstcFileUpload/img/delete.svg +24 -0
  169. package/nstc-g6/components/NstcFileUpload/img/deleteFile.svg +28 -0
  170. package/nstc-g6/components/NstcFileUpload/img/download.svg +24 -0
  171. package/nstc-g6/components/NstcFileUpload/img/inputUpload.svg +30 -0
  172. package/nstc-g6/components/NstcFileUpload/img/look-diabled.svg +24 -0
  173. package/nstc-g6/components/NstcFileUpload/img/look.svg +24 -0
  174. package/nstc-g6/components/NstcForm/A_DEMO/component/originalForm.vue +281 -0
  175. package/nstc-g6/components/NstcForm/A_DEMO/config/config_3.js +1222 -0
  176. package/nstc-g6/components/NstcForm/A_DEMO/index.vue +796 -0
  177. package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +68 -0
  178. package/nstc-g6/components/NstcForm/BusinessSpecific/InputMultiple.vue +189 -0
  179. package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +128 -0
  180. package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +233 -0
  181. package/nstc-g6/components/NstcForm/BusinessSpecific/readme.md +7 -0
  182. package/nstc-g6/components/NstcForm/CascaderCustom/index.vue +101 -0
  183. package/nstc-g6/components/NstcForm/CheckboxCustom/index.vue +84 -0
  184. package/nstc-g6/components/NstcForm/Component.vue +684 -0
  185. package/nstc-g6/components/NstcForm/ComponentSecond.vue +650 -0
  186. package/nstc-g6/components/NstcForm/DatepickerCustom/index.vue +130 -0
  187. package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +389 -0
  188. package/nstc-g6/components/NstcForm/InputCustom/index.vue +314 -0
  189. package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +116 -0
  190. package/nstc-g6/components/NstcForm/Item.vue +327 -0
  191. package/nstc-g6/components/NstcForm/ItemSecond.vue +269 -0
  192. package/nstc-g6/components/NstcForm/List.vue +146 -0
  193. package/nstc-g6/components/NstcForm/ListSecond.vue +130 -0
  194. package/nstc-g6/components/NstcForm/RadioCustom/index.vue +73 -0
  195. package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +334 -0
  196. package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +377 -0
  197. package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +123 -0
  198. package/nstc-g6/components/NstcForm/SelectCustom/index.vue +460 -0
  199. package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +185 -0
  200. package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +648 -0
  201. package/nstc-g6/components/NstcForm/TableRadioCustom/index.vue +183 -0
  202. package/nstc-g6/components/NstcForm/TextCustom/index.vue +38 -0
  203. package/nstc-g6/components/NstcForm/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  204. package/nstc-g6/components/NstcForm/UploadCustom/index.vue +500 -0
  205. package/nstc-g6/components/NstcForm/configs.js +191 -0
  206. package/nstc-g6/components/NstcForm/configsSecond.js +161 -0
  207. package/nstc-g6/components/NstcForm/index.js +8 -0
  208. package/nstc-g6/components/NstcForm/index.scss +29 -0
  209. package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +188 -0
  210. package/nstc-g6/components/NstcForm/readme.txt +4 -0
  211. package/nstc-g6/components/NstcPagination/NstcPagination.vue +428 -0
  212. package/nstc-g6/components/NstcPagination/setPageNum.png +0 -0
  213. package/nstc-g6/components/NstcPagination/setpagedefault.png +0 -0
  214. package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +70 -0
  215. package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +729 -0
  216. package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +676 -0
  217. package/nstc-g6/components/NstcSticky/NstcSticky.vue +97 -0
  218. package/nstc-g6/components/NstcSvgIcon/NstcSvgIcon.vue +72 -0
  219. package/nstc-g6/components/NstcTab/NstcTab.vue +80 -0
  220. package/nstc-g6/components/NstcTabWithBadge/NstcTabWithBadge.vue +45 -0
  221. package/nstc-g6/components/NstcTabWithBadge/index.scss +31 -0
  222. package/nstc-g6/components/NstcTable/ElTableColumnCustom/index.vue +292 -0
  223. package/nstc-g6/components/NstcTable/NstcTable.vue +460 -0
  224. package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +801 -0
  225. package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +186 -0
  226. package/nstc-g6/components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +330 -0
  227. package/nstc-g6/components/NstcUploadExcel/NstcUploadExcel.vue +145 -0
  228. package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +176 -0
  229. package/nstc-g6/components/Search/NstcSearch.vue +583 -0
  230. package/nstc-g6/components/Search/src/demo/index copy.vue +101 -0
  231. package/nstc-g6/components/Search/src/demo/index.vue +103 -0
  232. package/nstc-g6/components/Search/src/main copy.vue +607 -0
  233. package/nstc-g6/components/approvelTwo/main.vue +220 -0
  234. package/nstc-g6/components/approvelTwo/progress.vue +154 -0
  235. package/nstc-g6/directives/VCopy/index.js +60 -0
  236. package/nstc-g6/directives/VNstcNumber/index.js +14 -0
  237. package/nstc-g6/directives/VNstcNumber/temp.js +446 -0
  238. package/nstc-g6/index.js +193 -0
  239. package/nstc-g6/utils/auth.js +2 -0
  240. package/nstc-g6/utils/axios.js +2 -0
  241. package/nstc-g6/utils/dateAndValidator.js +649 -0
  242. package/nstc-g6/utils/debounce.js +40 -0
  243. package/nstc-g6/utils/parseTime.js +48 -0
  244. package/nstc-g6/utils/validate/index.js +7 -0
  245. package/nstc-g6/utils/vendor/Export2Excel.js +229 -0
  246. package/nstc-g6/utils/vendor/Export2Zip.js +24 -0
  247. package/nstc-g6/utils/vue-bus.js +5 -0
  248. package/package.json +9 -2
  249. package/src/assets/css/_coreLib.scss +9 -1
  250. package/src/assets/css/element-variables.scss +1 -1
  251. package/src/components/ChildRange/index.vue +2 -37
  252. package/src/components/ChildRange/style.scss +34 -0
  253. package/src/components/FileImport/index.vue +3 -1
  254. package/src/components/PageHeader/index.vue +2 -44
  255. package/src/components/PageHeader/style.scss +39 -0
  256. package/src/components/Search/index.vue +1 -97
  257. package/src/components/Search/style.scss +93 -0
  258. package/src/components/Table/ThSelectHeader.vue +2 -11
  259. package/src/components/Table/index.vue +4 -2
  260. package/src/directives/VTitle/index.js +14 -17
  261. package/style/css/normalize.scss +6 -6
  262. package/style/index.css +3 -3
  263. package/style/index.css.map +1 -1
  264. package/style/server-config.jsonc +527 -410
  265. package/treme/blue.css +3 -0
  266. package/treme/blue.umd.min.js +1 -0
  267. package/treme/css/normalize.scss +726 -0
  268. package/treme/fonts/element-icons.535877f5.woff +0 -0
  269. package/treme/fonts/element-icons.732389de.ttf +0 -0
  270. package/treme/fonts/iconfont.022f36c4.woff2 +0 -0
  271. package/treme/fonts/iconfont.4a1b2c93.woff +0 -0
  272. package/treme/fonts/iconfont.a9febaa2.ttf +0 -0
  273. package/treme/green.css +3 -0
  274. package/treme/green.umd.min.js +1 -0
  275. package/treme/lightBlue.css +3 -0
  276. package/treme/lightBlue.umd.min.js +1 -0
  277. package/treme/orange.css +3 -0
  278. package/treme/orange.umd.min.js +1 -0
  279. package/treme/pageDemo/demo-1.vue +131 -0
  280. package/treme/pageDemo/demo-2.vue +35 -0
  281. package/treme/pageDemo/demo-3.vue +22 -0
  282. package/treme/pageDemo/seeCode.js +20 -0
  283. package/treme/red.css +3 -0
  284. package/treme/red.umd.min.js +1 -0
  285. package/treme/server-config.jsonc +723 -0
  286. package/treme/yellow.css +3 -0
  287. package/treme/yellow.umd.min.js +1 -0
@@ -0,0 +1,460 @@
1
+ <!--
2
+ 功能: 自定义表格
3
+ 作者: nstc
4
+ 创建时间: 2021-02-05
5
+ -->
6
+ <template>
7
+ <div
8
+ :class="[
9
+ 'element-table-custom',
10
+ { 'vertical-header-el-table': isVerticalHeader }
11
+ ]"
12
+ >
13
+ <el-table
14
+ ref="elTable"
15
+ v-bind="$attrs"
16
+ :data="data"
17
+ :show-summary="!!summaryProps.length"
18
+ :summary-method="summaryMethod"
19
+ :span-method="objectSpanMethod"
20
+ :row-class-name="getRowClass"
21
+ style="width: 100%"
22
+ :max-height="maxHeight || null"
23
+ border
24
+ @row-click="rowClick"
25
+ v-on="$listeners"
26
+ >
27
+ <!-- 前部 -->
28
+ <slot name="before"></slot>
29
+
30
+ <!-- 主体 -->
31
+ <template v-for="(column, index) in columns">
32
+ <ElTableColumnCustom
33
+ ref="columnRef"
34
+ :key="index"
35
+ :show-overflow-tooltip="true"
36
+ :column="column"
37
+ :break-num="column.breakNum || 2"
38
+ @sortPropChange="handleSortPropChange"
39
+ />
40
+ </template>
41
+
42
+ <!-- 操作 -->
43
+ <el-table-column
44
+ v-if="showHandlers"
45
+ :width="handlersWidth"
46
+ fixed="right"
47
+ :label="handlersLabel"
48
+ header-align="center"
49
+ >
50
+ <template slot-scope="scope">
51
+ <div class="element-table-custom-handlers">
52
+ <slot :row="scope.row" :index="scope.$index"></slot>
53
+ <slot :row="scope.row" name="handlers"></slot>
54
+ </div>
55
+ </template>
56
+ </el-table-column>
57
+ <!-- 尾部 -->
58
+ <slot name="after"></slot>
59
+ </el-table>
60
+ <slot name="sum"></slot>
61
+
62
+ <NstcPagination
63
+ v-if="showPagination && !isVerticalHeader"
64
+ v-model="pagination"
65
+ :page="pagination.page"
66
+ :page-size="pagination.limit"
67
+ :total="pagination.total"
68
+ :is-inter-face="isInterFace"
69
+ @pagination-change="paginationChange"
70
+ />
71
+ </div>
72
+ </template>
73
+
74
+ <script>
75
+ import ElTableColumnCustom from './ElTableColumnCustom/index'
76
+ import Sortable from 'sortablejs'
77
+ import NstcPagination from '../NstcPagination/NstcPagination'
78
+ import axios from '../../utils/axios'
79
+
80
+ export default {
81
+ name: 'NstcTable',
82
+
83
+ components: {
84
+ ElTableColumnCustom,
85
+ NstcPagination
86
+ },
87
+
88
+ inheritAttrs: false,
89
+
90
+ props: {
91
+ maxHeight: {
92
+ type: Number,
93
+ default: 0
94
+ },
95
+ styles: {
96
+ type: Object,
97
+ default: () => ({})
98
+ },
99
+
100
+ nodata: {
101
+ default: false,
102
+ type: Boolean
103
+ },
104
+
105
+ canDoLayout: {
106
+ default: true,
107
+ type: Boolean
108
+ },
109
+
110
+ canDragRow: {
111
+ default: false,
112
+ type: Boolean
113
+ },
114
+
115
+ dragRowMethod: {
116
+ default: undefined,
117
+ type: Function
118
+ },
119
+
120
+ columns: {
121
+ type: Array,
122
+ required: true,
123
+ default: () => []
124
+ },
125
+
126
+ data: {
127
+ type: Array,
128
+ required: true,
129
+ default: () => []
130
+ },
131
+
132
+ sortProp: {
133
+ default: '',
134
+ type: String
135
+ },
136
+
137
+ sortCustom: {
138
+ default: false,
139
+ type: Boolean
140
+ },
141
+
142
+ handlersWidth: {
143
+ default: 'auto',
144
+ type: String
145
+ },
146
+
147
+ handlersLabel: {
148
+ type: String,
149
+ default: function () {
150
+ return '操作'
151
+ }
152
+ },
153
+
154
+ isVerticalHeader: {
155
+ default: false,
156
+ type: Boolean
157
+ },
158
+
159
+ summaryProps: {
160
+ type: Array,
161
+ default: () => []
162
+ },
163
+
164
+ // 分页器是否展示
165
+ showPagination: {
166
+ default: true,
167
+ type: Boolean
168
+ },
169
+
170
+ pagination: {
171
+ type: Object,
172
+ default: () => {
173
+ return {
174
+ page: 1,
175
+ limit: 20,
176
+ total: 100
177
+ }
178
+ }
179
+ },
180
+
181
+ sumText: {
182
+ type: String,
183
+ default: function () {
184
+ return '本页合计'
185
+ }
186
+ },
187
+
188
+ /**
189
+ * 表格合并 分别对应合并项
190
+ */
191
+ mergeSpan: {
192
+ type: Array,
193
+ default: () => {
194
+ return []
195
+ }
196
+ },
197
+ // 更具行内数据更改样式
198
+ rowClass: {
199
+ type: Object,
200
+ default: () => {
201
+ return {
202
+ key: '',
203
+ list: []
204
+ }
205
+ }
206
+ },
207
+ // 分页是否固定在页面底部
208
+ isFixed: {
209
+ type: Boolean,
210
+ default: false
211
+ },
212
+ // 是否是主界面
213
+ isInterFace: {
214
+ type: Boolean,
215
+ default: false
216
+ },
217
+ rowClick: {
218
+ type: [Object, Function],
219
+ default: () => ({})
220
+ }
221
+ },
222
+
223
+ data() {
224
+ return {
225
+ noDataTop: 0,
226
+
227
+ sortable: null, // 拖拽表格库实例
228
+ // 表格合并
229
+ mergeSpanCol: [],
230
+ mergeSpanRow: []
231
+ }
232
+ },
233
+
234
+ computed: {
235
+ showHandlers() {
236
+ return this.$scopedSlots.default || this.$scopedSlots.handlers
237
+ }
238
+ },
239
+
240
+ watch: {},
241
+
242
+ mounted() {
243
+ this.init()
244
+ },
245
+
246
+ beforeDestroy() {
247
+ if (this.sortable) {
248
+ this.sortable.destroy()
249
+ this.sortable = null
250
+ }
251
+ },
252
+
253
+ methods: {
254
+ down() {
255
+ const url = '/api/nstc-ers/1.0/elecBill/file/download'
256
+ axios({
257
+ url: url,
258
+ method: 'get',
259
+ responseType: 'blob'
260
+ }).then((res) => {
261
+ console.log(res)
262
+ const content = res
263
+ const blob = new Blob([content])
264
+ if ('download' in document.createElement('a')) {
265
+ const link = document.createElement('a')
266
+ link.download = '1.txt'
267
+ link.style.display = 'none'
268
+ link.href = URL.createObjectURL(blob)
269
+ document.body.appendChild(link)
270
+ link.click()
271
+ URL.revokeObjectURL(link.href)
272
+ document.body.removeChild(link)
273
+ } else {
274
+ navigator.msSaveBlob(blob, '1.txt')
275
+ }
276
+ })
277
+ },
278
+ paginationChange(data) {
279
+ // this._pagination = { ...data }
280
+ console.log(data)
281
+
282
+ this.$emit('pagination-change', data)
283
+ },
284
+ doLayout() {
285
+ this.$refs.table.doLayout()
286
+ },
287
+
288
+ handleSortPropChange(prop) {
289
+ this.$emit('update:sortProp', prop)
290
+ this.$emit('sortPropChange', prop)
291
+
292
+ this.eleSort()
293
+ },
294
+
295
+ eleSort() {
296
+ !this.sortCustom &&
297
+ this.sortProp &&
298
+ this.$refs.table.sort(this.sortProp, 'descending')
299
+ },
300
+
301
+ // 合计
302
+ summaryMethod({ columns, data }) {
303
+ return columns.reduce((sums, { property }, index) => {
304
+ if (this.summaryProps.includes(property)) {
305
+ const sum = data.reduce((prev, curr) => {
306
+ const value = Number(curr[property])
307
+
308
+ return isNaN(value) ? prev : prev + value
309
+ }, 0)
310
+
311
+ return [...sums, sum]
312
+ }
313
+ return [...sums, index === 0 ? this.sumText : '-']
314
+ }, [])
315
+ },
316
+ // 根据行中某个字段,显示添加不同的样式
317
+ getRowClass(row) {
318
+ if (!this.rowClass.key) {
319
+ return ''
320
+ } else {
321
+ for (let i = 0; i < this.rowClass.list.length; i++) {
322
+ if (row.row[this.rowClass.key] === this.rowClass.list[i]['value']) {
323
+ return this.rowClass.list[i]['name']
324
+ }
325
+ }
326
+ }
327
+ },
328
+
329
+ /**
330
+ * 表格合并
331
+ * @param row
332
+ * @param column
333
+ * @param rowIndex
334
+ * @param columnIndex
335
+ * @returns {*|{colspan: number, rowspan: number}}
336
+ */
337
+ // eslint-disable-next-line no-unused-vars
338
+ objectSpanMethod({ row, column, rowIndex, columnIndex }) {
339
+ if (this.mergeSpan.length === 0) {
340
+ return {
341
+ rowspan: 1,
342
+ colspan: 1
343
+ }
344
+ } else {
345
+ // 格式化数据
346
+ if (this.mergeSpanCol.length === 0) {
347
+ for (let i = 0; i < this.mergeSpan.length; i++) {
348
+ this.mergeSpanCol.push(this.mergeSpan[i][`col`])
349
+ this.mergeSpanRow.push(this.mergeSpan[i][`row`])
350
+ }
351
+ }
352
+ if (
353
+ this.mergeSpanCol.includes(columnIndex) &&
354
+ this.mergeSpanRow.includes(rowIndex)
355
+ ) {
356
+ const temp = this.mergeSpan.filter((i) => {
357
+ return i.col === columnIndex && i.row === rowIndex
358
+ })
359
+ if (temp.length === 1) {
360
+ return temp[0][`span`]
361
+ } else {
362
+ return {
363
+ rowspan: 1,
364
+ colspan: 1
365
+ }
366
+ }
367
+ }
368
+ }
369
+ },
370
+
371
+ setDrag() {
372
+ const $tbody = this.$refs.elTable.$el.querySelectorAll(
373
+ '.el-table__body-wrapper > table > tbody'
374
+ )[0]
375
+
376
+ this.sortable = Sortable.create($tbody, {
377
+ ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
378
+ setData: function (dataTransfer) {
379
+ // to avoid Firefox bug
380
+ // Detail see : https://github.com/RubaXa/Sortable/issues/1012
381
+ dataTransfer.setData('Text', '')
382
+ },
383
+ onEnd: (evt) => {
384
+ // this.dragRowMethod && this.dragRowMethod(evt)
385
+ const targetRow = this.data.splice(evt.oldIndex, 1)[0]
386
+ this.$nextTick(() => {
387
+ this.$nextTick(() => {
388
+ this.data.splice(evt.newIndex, 0, targetRow)
389
+ })
390
+ })
391
+ }
392
+ })
393
+ },
394
+
395
+ init() {
396
+ this.$nextTick(() => {
397
+ this.canDragRow && this.setDrag()
398
+ })
399
+ }
400
+ }
401
+ }
402
+ </script>
403
+
404
+ <style lang="scss">
405
+ .element-table-custom {
406
+ position: relative;
407
+ height: 100%;
408
+
409
+ &-no-data {
410
+ position: absolute;
411
+ top: 0;
412
+ left: 0;
413
+ z-index: 1;
414
+ }
415
+
416
+ &-handlers {
417
+ /*text-align: center;*/
418
+ }
419
+
420
+ .el-link {
421
+ display: inline-block;
422
+ white-space: nowrap;
423
+ max-width: 100%;
424
+ overflow: hidden;
425
+ text-overflow: ellipsis;
426
+ }
427
+
428
+ .explain-txt {
429
+ padding: 8px 10px 0 0;
430
+ background-color: transparent;
431
+ color: inherit;
432
+ border: none;
433
+ font-size: inherit;
434
+ font-weight: inherit;
435
+ min-width: 100%;
436
+ position: relative;
437
+ white-space: normal;
438
+ cursor: unset;
439
+
440
+ span {
441
+ position: relative;
442
+
443
+ i {
444
+ color: #d0920b;
445
+ position: absolute;
446
+ right: -15px;
447
+ top: -5px;
448
+ cursor: pointer;
449
+ }
450
+ }
451
+ }
452
+
453
+ .sortable-ghost {
454
+ opacity: 0.8;
455
+ color: #fff !important;
456
+ background: #42b983 !important;
457
+ }
458
+ }
459
+ </style>
460
+