adtec-core-package 2.4.4 → 2.4.5

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 (344) hide show
  1. package/.editorconfig +6 -6
  2. package/.prettierrc.json +7 -7
  3. package/.vscode/extensions.json +8 -8
  4. package/README.en.md +36 -36
  5. package/README.md +39 -39
  6. package/env.d.ts +1 -1
  7. package/eslint.config.js +56 -56
  8. package/index.html +13 -13
  9. package/package.json +71 -71
  10. package/src/App.vue +9 -9
  11. package/src/api/BasicApi.ts +26 -26
  12. package/src/api/DeptInfoApi.ts +19 -19
  13. package/src/api/DocumentApi.ts +27 -27
  14. package/src/api/EmployeeInfoApi.ts +17 -17
  15. package/src/api/SysDictCacheApi.ts +29 -29
  16. package/src/api/SysUserApi.ts +35 -35
  17. package/src/api/framework.ts +12 -12
  18. package/src/api/workflow/workflow.ts +31 -31
  19. package/src/api/workflow/workflowCommentApi.ts +23 -23
  20. package/src/api/workflow/workflowInstApi.ts +72 -72
  21. package/src/assets/base.css +86 -86
  22. package/src/assets/logo.svg +1 -1
  23. package/src/assets/main.css +35 -35
  24. package/src/assets/style/ant.scss +19 -19
  25. package/src/assets/style/index.less +180 -180
  26. package/src/assets/style/transition.scss +49 -49
  27. package/src/components/ElCardList.vue +64 -64
  28. package/src/components/ElFlex/ElFlex.vue +297 -297
  29. package/src/components/ElTotalTools.vue +70 -70
  30. package/src/components/OperationAuth/operationAuth.vue +43 -43
  31. package/src/components/RichTextEditor/RichTextEditor.vue +442 -442
  32. package/src/components/Scrollbars/ElScrollbars.vue +21 -21
  33. package/src/components/Search/ElIconSearch.vue +267 -267
  34. package/src/components/Search/ElSearch.vue +154 -154
  35. package/src/components/SelectInDicators/SelectInDicators.vue +225 -225
  36. package/src/components/SelectInDicators/api/DataIndicatorsApi.ts +28 -28
  37. package/src/components/SelectInDicators/interface/IComIndex.ts +26 -26
  38. package/src/components/SelectInDicators/interface/IComIndexAttri.ts +18 -18
  39. package/src/components/Table/ElTableColumnDynamic.vue +25 -25
  40. package/src/components/Table/ElTableColumnEdit.vue +265 -265
  41. package/src/components/Table/ElTableTool.ts +37 -37
  42. package/src/components/Title/ElTitle.vue +53 -53
  43. package/src/components/autoToolTip/ElAutoToolTip.vue +62 -62
  44. package/src/components/baseEcharts/index.vue +48 -48
  45. package/src/components/bpmntree/api/modules/role.ts +31 -31
  46. package/src/components/bpmntree/api/modules/user.ts +17 -17
  47. package/src/components/bpmntree/components/AdvancedFilter/Operator.vue +112 -112
  48. package/src/components/bpmntree/components/AdvancedFilter/Trigger.vue +23 -23
  49. package/src/components/bpmntree/components/AdvancedFilter/index.vue +230 -230
  50. package/src/components/bpmntree/components/AdvancedFilter/type.ts +20 -20
  51. package/src/components/bpmntree/components/FlowIcon/index.scss +7 -7
  52. package/src/components/bpmntree/components/FlowIcon/index.tsx +68 -68
  53. package/src/components/bpmntree/components/Render/render.vue +90 -90
  54. package/src/components/bpmntree/components/Render/type.ts +12 -12
  55. package/src/components/bpmntree/components/RoleSelector/RolePicker.vue +264 -264
  56. package/src/components/bpmntree/components/RoleSelector/RoleTag.vue +48 -48
  57. package/src/components/bpmntree/components/RoleSelector/index.vue +113 -113
  58. package/src/components/bpmntree/components/UserSelector/UserTag.vue +73 -73
  59. package/src/components/bpmntree/components/UserSelector/index.vue +140 -140
  60. package/src/components/bpmntree/hooks/useDraggableScroll.ts +44 -44
  61. package/src/components/bpmntree/typings/index.d.ts +1 -1
  62. package/src/components/bpmntree/views/flowDesign/index.vue +653 -653
  63. package/src/components/bpmntree/views/flowDesign/nodes/Add.vue +184 -184
  64. package/src/components/bpmntree/views/flowDesign/nodes/ApprovalNode.vue +127 -127
  65. package/src/components/bpmntree/views/flowDesign/nodes/CcNode.vue +93 -93
  66. package/src/components/bpmntree/views/flowDesign/nodes/ConcurrentNode.vue +61 -61
  67. package/src/components/bpmntree/views/flowDesign/nodes/ConditionNode.vue +60 -60
  68. package/src/components/bpmntree/views/flowDesign/nodes/EndNode.vue +80 -80
  69. package/src/components/bpmntree/views/flowDesign/nodes/ExclusiveNode.vue +20 -20
  70. package/src/components/bpmntree/views/flowDesign/nodes/GatewayNode.vue +173 -173
  71. package/src/components/bpmntree/views/flowDesign/nodes/InclusiveNode.vue +20 -20
  72. package/src/components/bpmntree/views/flowDesign/nodes/JumpNode.vue +49 -49
  73. package/src/components/bpmntree/views/flowDesign/nodes/Node.vue +346 -346
  74. package/src/components/bpmntree/views/flowDesign/nodes/NotifyNode.vue +115 -115
  75. package/src/components/bpmntree/views/flowDesign/nodes/ParallelNode.vue +20 -20
  76. package/src/components/bpmntree/views/flowDesign/nodes/PopoverView.vue +78 -78
  77. package/src/components/bpmntree/views/flowDesign/nodes/StartNode.vue +84 -84
  78. package/src/components/bpmntree/views/flowDesign/nodes/TimerNode.vue +50 -50
  79. package/src/components/bpmntree/views/flowDesign/nodes/TreeNode.vue +45 -45
  80. package/src/components/bpmntree/views/flowDesign/nodes/type.ts +204 -204
  81. package/src/components/bpmntree/views/flowDesign/panels/ApprovalPanel.vue +581 -581
  82. package/src/components/bpmntree/views/flowDesign/panels/AssigneePanel.vue +120 -120
  83. package/src/components/bpmntree/views/flowDesign/panels/CcPanel.vue +99 -99
  84. package/src/components/bpmntree/views/flowDesign/panels/ConditionPanel.vue +41 -41
  85. package/src/components/bpmntree/views/flowDesign/panels/EndPanel.vue +18 -18
  86. package/src/components/bpmntree/views/flowDesign/panels/ExecutionListeners.vue +110 -110
  87. package/src/components/bpmntree/views/flowDesign/panels/JumpPanel.vue +32 -32
  88. package/src/components/bpmntree/views/flowDesign/panels/NotifyPanel.vue +101 -101
  89. package/src/components/bpmntree/views/flowDesign/panels/ParaPanel.vue +248 -248
  90. package/src/components/bpmntree/views/flowDesign/panels/StartPanel.vue +160 -160
  91. package/src/components/bpmntree/views/flowDesign/panels/TaskListeners.vue +110 -110
  92. package/src/components/bpmntree/views/flowDesign/panels/TimerPanel.vue +51 -51
  93. package/src/components/bpmntree/views/flowDesign/panels/index.vue +85 -85
  94. package/src/components/bpmntree/views/view.index.vue +291 -291
  95. package/src/components/business/comp.selectUser.vue +60 -60
  96. package/src/components/business/comp.userForm.vue +311 -311
  97. package/src/components/business/userSelect.vue +413 -413
  98. package/src/components/icon/ElIconBtn.vue +243 -243
  99. package/src/components/icon/ElIcons.vue +38 -38
  100. package/src/components/kFrame/IframeOptions.ts +116 -116
  101. package/src/components/kFrame/KFrame.vue +161 -161
  102. package/src/components/tooltip/index.ts +11 -11
  103. package/src/components/tooltip/src/tooltip.ts +518 -518
  104. package/src/components/upload/ElUploads.vue +364 -364
  105. package/src/components/upload/FileView.vue +214 -214
  106. package/src/components/upload/FileViewComponents.vue +56 -56
  107. package/src/components/vxeGrid/index.vue +36 -36
  108. package/src/components/workflow/TaskOperation.vue +247 -247
  109. package/src/components/workflow/WorkflowTodoDialog.vue +91 -89
  110. package/src/components/workflow/components/AddOrMinusMultiDialog.vue +159 -159
  111. package/src/components/workflow/components/CheckDialog.vue +367 -367
  112. package/src/components/workflow/components/ProcessDetailComp.vue +157 -157
  113. package/src/components/workflow/components/ProcessDetailDialog.vue +129 -129
  114. package/src/components/workflow/components/ProcessInstance.vue +117 -117
  115. package/src/components/workflow/components/ProcessInstanceStep.vue +378 -371
  116. package/src/components/workflow/components/SelectAssigneeDialog.vue +109 -109
  117. package/src/components/workflow/components/SelectReturnActivityDialog.vue +104 -104
  118. package/src/config/ElementPlusConfig.ts +95 -95
  119. package/src/config/VxeTableConfig.ts +254 -254
  120. package/src/css/elementUI/affix.scss +7 -7
  121. package/src/css/elementUI/alert.scss +115 -115
  122. package/src/css/elementUI/anchor-link.scss +41 -41
  123. package/src/css/elementUI/anchor.scss +88 -88
  124. package/src/css/elementUI/aside.scss +8 -8
  125. package/src/css/elementUI/autocomplete.scss +89 -89
  126. package/src/css/elementUI/avatar.scss +55 -55
  127. package/src/css/elementUI/backtop.scss +29 -29
  128. package/src/css/elementUI/badge.scss +58 -58
  129. package/src/css/elementUI/base.scss +3 -3
  130. package/src/css/elementUI/breadcrumb.scss +62 -62
  131. package/src/css/elementUI/button-group.scss +80 -80
  132. package/src/css/elementUI/button.scss +304 -304
  133. package/src/css/elementUI/calendar.scss +80 -80
  134. package/src/css/elementUI/card.scss +45 -45
  135. package/src/css/elementUI/carousel-item.scss +58 -58
  136. package/src/css/elementUI/carousel.scss +188 -188
  137. package/src/css/elementUI/cascader-panel.scss +138 -138
  138. package/src/css/elementUI/cascader.scss +230 -230
  139. package/src/css/elementUI/check-tag.scss +60 -60
  140. package/src/css/elementUI/checkbox-button.scss +140 -140
  141. package/src/css/elementUI/checkbox-group.scss +7 -7
  142. package/src/css/elementUI/checkbox.scss +298 -298
  143. package/src/css/elementUI/col.scss +48 -48
  144. package/src/css/elementUI/collapse.scss +70 -70
  145. package/src/css/elementUI/color/index.scss +20 -20
  146. package/src/css/elementUI/color-picker.scss +392 -392
  147. package/src/css/elementUI/common/popup.scss +47 -47
  148. package/src/css/elementUI/common/transition.scss +122 -122
  149. package/src/css/elementUI/common/var.scss +1549 -1549
  150. package/src/css/elementUI/container.scss +14 -14
  151. package/src/css/elementUI/dark/css-vars.scss +39 -39
  152. package/src/css/elementUI/dark/var.scss +222 -222
  153. package/src/css/elementUI/date-picker/date-picker.scss +110 -110
  154. package/src/css/elementUI/date-picker/date-range-picker.scss +113 -113
  155. package/src/css/elementUI/date-picker/date-table.scss +158 -158
  156. package/src/css/elementUI/date-picker/month-table.scss +112 -112
  157. package/src/css/elementUI/date-picker/picker-panel.scss +131 -131
  158. package/src/css/elementUI/date-picker/picker.scss +219 -219
  159. package/src/css/elementUI/date-picker/time-picker.scss +90 -90
  160. package/src/css/elementUI/date-picker/time-range-picker.scss +33 -33
  161. package/src/css/elementUI/date-picker/time-spinner.scss +111 -111
  162. package/src/css/elementUI/date-picker/year-table.scss +108 -108
  163. package/src/css/elementUI/date-picker.scss +9 -9
  164. package/src/css/elementUI/descriptions-item.scss +73 -73
  165. package/src/css/elementUI/descriptions.scss +152 -152
  166. package/src/css/elementUI/dialog.scss +199 -199
  167. package/src/css/elementUI/display.scss +12 -12
  168. package/src/css/elementUI/divider.scss +48 -48
  169. package/src/css/elementUI/drawer.scss +164 -164
  170. package/src/css/elementUI/dropdown.scss +208 -208
  171. package/src/css/elementUI/empty.scss +49 -49
  172. package/src/css/elementUI/footer.scss +12 -12
  173. package/src/css/elementUI/form.scss +243 -243
  174. package/src/css/elementUI/header.scss +12 -12
  175. package/src/css/elementUI/icon.scss +45 -45
  176. package/src/css/elementUI/image-viewer.scss +139 -139
  177. package/src/css/elementUI/image.scss +49 -49
  178. package/src/css/elementUI/index.scss +110 -110
  179. package/src/css/elementUI/input-number.scss +178 -178
  180. package/src/css/elementUI/input.scss +478 -478
  181. package/src/css/elementUI/link.scss +90 -90
  182. package/src/css/elementUI/loading.scss +104 -104
  183. package/src/css/elementUI/main.scss +14 -14
  184. package/src/css/elementUI/mention.scss +88 -88
  185. package/src/css/elementUI/menu.scss +339 -339
  186. package/src/css/elementUI/message-box.scss +213 -213
  187. package/src/css/elementUI/message.scss +98 -98
  188. package/src/css/elementUI/mixins/_button.scss +165 -165
  189. package/src/css/elementUI/mixins/_col.scss +33 -33
  190. package/src/css/elementUI/mixins/_var.scss +67 -67
  191. package/src/css/elementUI/mixins/config.scss +5 -5
  192. package/src/css/elementUI/mixins/function.scss +88 -88
  193. package/src/css/elementUI/mixins/mixins.scss +237 -237
  194. package/src/css/elementUI/mixins/utils.scss +39 -39
  195. package/src/css/elementUI/notification.scss +104 -104
  196. package/src/css/elementUI/option-group.scss +33 -33
  197. package/src/css/elementUI/option.scss +71 -71
  198. package/src/css/elementUI/overlay.scss +17 -17
  199. package/src/css/elementUI/page-header.scss +60 -60
  200. package/src/css/elementUI/pagination.scss +238 -238
  201. package/src/css/elementUI/popconfirm.scss +16 -16
  202. package/src/css/elementUI/popover.scss +61 -61
  203. package/src/css/elementUI/popper.scss +106 -106
  204. package/src/css/elementUI/progress.scss +179 -179
  205. package/src/css/elementUI/radio-button.scss +169 -169
  206. package/src/css/elementUI/radio-group.scss +9 -9
  207. package/src/css/elementUI/radio.scss +215 -215
  208. package/src/css/elementUI/rate.scss +108 -108
  209. package/src/css/elementUI/reset.scss +98 -98
  210. package/src/css/elementUI/result.scss +57 -57
  211. package/src/css/elementUI/row.scss +35 -35
  212. package/src/css/elementUI/scrollbar.scss +97 -97
  213. package/src/css/elementUI/segmented.scss +183 -183
  214. package/src/css/elementUI/select-dropdown-v2.scss +1 -1
  215. package/src/css/elementUI/select-dropdown.scss +57 -57
  216. package/src/css/elementUI/select-v2.scss +4 -4
  217. package/src/css/elementUI/select.scss +253 -253
  218. package/src/css/elementUI/skeleton-item.scss +83 -83
  219. package/src/css/elementUI/skeleton.scss +44 -44
  220. package/src/css/elementUI/slider.scss +212 -212
  221. package/src/css/elementUI/space.scss +20 -20
  222. package/src/css/elementUI/spinner.scss +43 -43
  223. package/src/css/elementUI/statistic.scss +35 -35
  224. package/src/css/elementUI/step.scss +316 -316
  225. package/src/css/elementUI/steps.scss +21 -21
  226. package/src/css/elementUI/switch.scss +300 -300
  227. package/src/css/elementUI/table-column.scss +98 -98
  228. package/src/css/elementUI/table-v2.scss +236 -236
  229. package/src/css/elementUI/table.scss +697 -697
  230. package/src/css/elementUI/tabs.scss +659 -659
  231. package/src/css/elementUI/tag.scss +181 -181
  232. package/src/css/elementUI/text.scss +51 -51
  233. package/src/css/elementUI/time-picker.scss +5 -5
  234. package/src/css/elementUI/time-select.scss +37 -37
  235. package/src/css/elementUI/timeline-item.scss +84 -84
  236. package/src/css/elementUI/timeline.scss +46 -46
  237. package/src/css/elementUI/tooltip-v2.scss +95 -95
  238. package/src/css/elementUI/tour.scss +187 -187
  239. package/src/css/elementUI/transfer.scss +203 -203
  240. package/src/css/elementUI/tree-select.scss +41 -41
  241. package/src/css/elementUI/tree.scss +134 -134
  242. package/src/css/elementUI/upload.scss +654 -654
  243. package/src/css/elementUI/var.scss +87 -87
  244. package/src/css/elementUI/virtual-list.scss +40 -40
  245. package/src/css/vxeTableUI/all.scss +9 -9
  246. package/src/css/vxeTableUI/base.scss +16 -16
  247. package/src/css/vxeTableUI/components/colgroup.scss +0 -0
  248. package/src/css/vxeTableUI/components/column.scss +0 -0
  249. package/src/css/vxeTableUI/components/grid.scss +83 -83
  250. package/src/css/vxeTableUI/components/icon.scss +1017 -1017
  251. package/src/css/vxeTableUI/components/iconTable.scss +205 -205
  252. package/src/css/vxeTableUI/components/old-icon.scss +715 -715
  253. package/src/css/vxeTableUI/components/table-module/all.scss +6 -6
  254. package/src/css/vxeTableUI/components/table-module/custom.scss +490 -490
  255. package/src/css/vxeTableUI/components/table-module/edit.scss +0 -0
  256. package/src/css/vxeTableUI/components/table-module/export.scss +130 -130
  257. package/src/css/vxeTableUI/components/table-module/filter.scss +127 -127
  258. package/src/css/vxeTableUI/components/table-module/keyboard.scss +0 -0
  259. package/src/css/vxeTableUI/components/table-module/menu.scss +85 -85
  260. package/src/css/vxeTableUI/components/table-module/validator.scss +0 -0
  261. package/src/css/vxeTableUI/components/table.scss +2256 -2256
  262. package/src/css/vxeTableUI/components/toolbar.scss +99 -99
  263. package/src/css/vxeTableUI/components/ui.scss +0 -0
  264. package/src/css/vxeTableUI/components/v-x-e-table.scss +0 -0
  265. package/src/css/vxeTableUI/cssvar.scss +2 -2
  266. package/src/css/vxeTableUI/default.scss +2 -2
  267. package/src/css/vxeTableUI/helpers/baseMixin.scss +82 -82
  268. package/src/css/vxeTableUI/icon/iconfont.ttf +0 -0
  269. package/src/css/vxeTableUI/icon/iconfont.woff +0 -0
  270. package/src/css/vxeTableUI/icon/iconfont.woff2 +0 -0
  271. package/src/css/vxeTableUI/index.scss +4 -4
  272. package/src/css/vxeTableUI/modules.scss +5 -5
  273. package/src/css/vxeTableUI/theme/base.scss +88 -88
  274. package/src/css/vxeTableUI/theme/dark.scss +46 -46
  275. package/src/css/vxeTableUI/theme/light.scss +41 -41
  276. package/src/css/vxeTableUI/variable.scss +41 -41
  277. package/src/directives/vKeydown.ts +91 -91
  278. package/src/hooks/useDictHooks.ts +119 -119
  279. package/src/hooks/useEcharts.ts +58 -58
  280. package/src/hooks/useFileView.ts +11 -11
  281. package/src/hooks/useListenerHooks.ts +137 -137
  282. package/src/hooks/useMessageHooks.ts +132 -132
  283. package/src/hooks/useOpenNewMenu.ts +30 -30
  284. package/src/hooks/usePermissionHooks.ts +139 -139
  285. package/src/hooks/usePermissionToolHooks.ts +21 -21
  286. package/src/hooks/useResetRefHooks.ts +18 -18
  287. package/src/hooks/userWorkflowHooks.ts +112 -106
  288. package/src/hooks/workflowTodo.ts +85 -85
  289. package/src/interface/BaseEntity.ts +30 -30
  290. package/src/interface/IMdmDept.ts +84 -84
  291. package/src/interface/IMdmEmployee.ts +153 -153
  292. package/src/interface/IMdmEmployeeQuery.ts +21 -21
  293. package/src/interface/IMdmOrg.ts +29 -29
  294. package/src/interface/IMdmOrgQuery.ts +13 -13
  295. package/src/interface/IOrgDeptInfo.ts +12 -12
  296. package/src/interface/ISortList.ts +6 -6
  297. package/src/interface/ISysDictDataCacheVo.ts +46 -46
  298. package/src/interface/ISysDictType.ts +37 -37
  299. package/src/interface/ISysMenuDataVo.ts +22 -22
  300. package/src/interface/ISysMenuInfoVo.ts +83 -83
  301. package/src/interface/ISysMenuOperationVo.ts +21 -21
  302. package/src/interface/ISysUploadFiles.ts +16 -16
  303. package/src/interface/ISysUserInfo.ts +70 -70
  304. package/src/interface/IUserBaseInfo.ts +90 -90
  305. package/src/interface/IUserPermissionVo.ts +44 -44
  306. package/src/interface/IVxeTable.ts +1 -1
  307. package/src/interface/Message.ts +73 -73
  308. package/src/interface/PageData.ts +17 -17
  309. package/src/interface/ResponseData.ts +16 -16
  310. package/src/interface/dictMapType.ts +11 -11
  311. package/src/interface/enum/FlexEnum.ts +85 -85
  312. package/src/interface/enum/MessageEnum.ts +41 -41
  313. package/src/interface/workflow/IWfProcessDefVo.ts +14 -14
  314. package/src/interface/workflow/IWfReturnNodeVo.ts +16 -16
  315. package/src/interface/workflow/IWfTaskAskVo.ts +66 -66
  316. package/src/interface/workflow/IWfTaskQueryVo.ts +30 -30
  317. package/src/interface/workflow/IWfTaskUsersVo.ts +21 -21
  318. package/src/interface/workflow/IWfTaskVo.ts +192 -188
  319. package/src/interface/workflow/IWorkflowCommentVo.ts +24 -24
  320. package/src/interface/workflow/workflow.ts +22 -22
  321. package/src/main.ts +14 -14
  322. package/src/mixin/globalMixin.ts +48 -48
  323. package/src/packages/index.ts +18 -18
  324. package/src/packages/text.vue +13 -13
  325. package/src/plugins/echartsConfig.ts +74 -74
  326. package/src/plugins/plugins.ts +12 -12
  327. package/src/plugins/renderDialog.ts +74 -74
  328. package/src/router/index.ts +23 -23
  329. package/src/stores/dictStore.ts +51 -51
  330. package/src/stores/messageStore.ts +49 -49
  331. package/src/stores/permissionStore.ts +112 -112
  332. package/src/stores/storeConfig.ts +23 -23
  333. package/src/stores/userInfoStore.ts +31 -31
  334. package/src/utils/AxiosConfig.ts +226 -226
  335. package/src/utils/FrameworkUtils.ts +370 -370
  336. package/src/utils/commonUtils.ts +335 -335
  337. package/src/utils/encrypt.ts +18 -18
  338. package/src/utils/modules.ts +8 -8
  339. package/src/utils/request.ts +76 -76
  340. package/src/utils/tree.ts +50 -50
  341. package/tsconfig.app.json +12 -12
  342. package/tsconfig.json +11 -11
  343. package/tsconfig.node.json +18 -18
  344. package/vite.config.ts +38 -38
@@ -1,370 +1,370 @@
1
- import elTableTool from '../components/Table/ElTableTool.ts'
2
- import { ElMessage } from 'element-plus'
3
- import * as XLSX from 'xlsx-js-style'
4
- import { Linq } from 'linq-to-ts'
5
- import Base64 from 'crypto-js/enc-base64'
6
- import Utf8 from 'crypto-js/enc-utf8'
7
- /**
8
- * Create by丁盼
9
- * 说明: FrameworkUtils
10
- * 创建时间: 2025/3/12 09:24
11
- * 修改时间: 2025/3/12 09:24
12
- */
13
- export default {
14
- /**
15
- * 校验表格数据是否为空
16
- * @param table 表格对象
17
- * @param rules 校验规则
18
- */
19
- validateTableData(table: any, rules: any): Boolean {
20
- return elTableTool.validateTableData(table, rules)
21
- },
22
- /**
23
- * 获取当前已经打开的菜单
24
- */
25
- getOpenMenuInfoWujie(){
26
- const data=JSON.parse(Base64.parse(sessionStorage.getItem("permissionStore")+"").toString(Utf8))
27
- return data.openMenuInfo
28
- },
29
- /**
30
- * 获取当前已经打开的菜单
31
- */
32
- getActiveMenuInfoWujie(){
33
- const data=JSON.parse(Base64.parse(sessionStorage.getItem("permissionStore")+"").toString(Utf8))
34
- return data.activeMenuInfo
35
- },
36
- /**
37
- * 获取当前已经打开的菜单
38
- */
39
- getActiveMenuInfoLevel1(){
40
- const data=JSON.parse(Base64.parse(sessionStorage.getItem("permissionStore")+"").toString(Utf8))
41
- return data.activeMenuInfoLevel1
42
- },
43
- /**
44
- * 获取系统分页数
45
- */
46
- getPageSize(): number {
47
- try {
48
- const systemConfig = JSON.parse(localStorage.getItem('systemConfig') + '')
49
- if (systemConfig && systemConfig['pageSize'] + '') {
50
- return Number(systemConfig['pageSize'] + '')
51
- } else {
52
- return 50
53
- }
54
- } catch {
55
- return 50
56
- }
57
- },
58
- /**
59
- * 提示错误信息
60
- * @param err
61
- */
62
- messageError(err: any) {
63
- if (err.code) {
64
- if (err.code === '500') {
65
- ElMessage.error('系统错误,请与管理员联系!')
66
- } else if (
67
- err.code === '10402' ||
68
- err.code === '10403' ||
69
- err.code === '10404' ||
70
- err.code === '10500' ||
71
- err.code === '10505' ||
72
- err.code === '10506' ||
73
- err.code === '10507'
74
- ) {
75
- ElMessage.error(err.msg)
76
- } else if (err.code === '10504') {
77
- ElMessage.warning(err.msg)
78
- }
79
- } else {
80
- ElMessage.error(err.message)
81
- }
82
- },
83
- /**
84
- * 导出excel
85
- * @param title 标题
86
- * @param fileName 文件名
87
- * @param sheetName 工作表名
88
- * @param columns 表头,参考ElTable列属性{property:'',width:'',label:'',colSpan:'',colSpan:'',level:'',children:[]}
89
- * @param data 数据
90
- * @param rowMerges 行合并配置
91
- * [{
92
- * conditions: ['groupNo'],//条件
93
- * fields: ['groupNo', 'seMeetingSampleName'],//需要合并的列
94
- * }]
95
- * @param colMerges 列合并配置
96
- * [
97
- * {
98
- * conditions: ['groupNo', 'seMeetingSampleName']//条件
99
- * },
100
- * ]
101
- * @param customHeaderCallback 自定义标题回调函数
102
- * rows: any[], 当前行对象
103
- * dataColumns: any[],列对象
104
- * merges: any[] 合并对象
105
- * @param customFooterCallback 自定义页脚回调函数
106
- * @constructor
107
- */
108
- exportExcel(
109
- title: string,
110
- fileName: string,
111
- sheetName: string,
112
- columns: any,
113
- data: any,
114
- rowMerges?: any[],
115
- colMerges?: any[],
116
- customHeaderCallback?: any,
117
- customFooterCallback?: any,
118
- ) {
119
- const cl = columns
120
- let rows: any[] = []
121
- const cols: any[] = []
122
- const dataColumns: any[] = []
123
- const merges: any = []
124
- this.generateColumns(cl, dataColumns)
125
- //设置表头
126
- if (customHeaderCallback) {
127
- customHeaderCallback(rows, dataColumns, merges)
128
- } else {
129
- rows.push([
130
- {
131
- v: title,
132
- t: 's',
133
- s: {
134
- font: { bold: true },
135
- alignment: {
136
- vertical: 'center', // 垂直居中
137
- horizontal: 'center', // 水平居中
138
- },
139
- // border 边框属性
140
- border: {
141
- top: { style: 'thin' },
142
- bottom: { style: 'thin' },
143
- left: { style: 'thin' },
144
- right: { style: 'thin' },
145
- },
146
- },
147
- },
148
- ])
149
- //表头合并
150
- merges.push({
151
- s: { c: 0, r: 0 },
152
- e: { c: dataColumns.length - 1, r: 0 },
153
- })
154
- }
155
- //@ts-ignore
156
- this.generateHeader(cl, rows, 0, merges)
157
- //设置缺失单元格对象
158
- let max = 0
159
- rows.forEach((r: any) => {
160
- if (max < r.length) {
161
- max = r.length
162
- }
163
- })
164
- const rowsS = [{ hpx: 30 }]
165
- rows.forEach((r: any, index: number) => {
166
- if (index > 0) {
167
- rowsS.push({ hpx: 20 })
168
- }
169
- for (let i = 0; i < max; i++) {
170
- if (!r[i]) {
171
- r[i] = {
172
- v: '',
173
- t: 's',
174
- s: {
175
- font: { bold: true },
176
- alignment: {
177
- vertical: 'center', // 垂直居中
178
- horizontal: 'center', // 水平居中
179
- },
180
- // border 边框属性
181
- border: {
182
- top: { style: 'thin' },
183
- bottom: { style: 'thin' },
184
- left: { style: 'thin' },
185
- right: { style: 'thin' },
186
- },
187
- },
188
- }
189
- }
190
- }
191
- })
192
- const data1 = JSON.parse(JSON.stringify(data))
193
- data1.forEach((r: any, index: any) => {
194
- r._orderNum = index + rows.length
195
- })
196
- //col单元格合并
197
- if (colMerges) {
198
- colMerges.forEach((m: any) => {
199
- data1.forEach((r: any) => {
200
- const set = new Set()
201
- m.conditions.forEach((c: any) => {
202
- set.add(r[c])
203
- })
204
- if (set.size === 1) {
205
- const sIndes = dataColumns.indexOf(
206
- dataColumns.find((c) => c.property === m.conditions[0]),
207
- )
208
- const eIndes = dataColumns.indexOf(
209
- dataColumns.find((c) => c.property === m.conditions[m.conditions.length - 1]),
210
- )
211
- merges.push({
212
- s: { c: sIndes, r: r._orderNum },
213
- e: { c: eIndes, r: r._orderNum },
214
- })
215
- }
216
- })
217
- })
218
- }
219
- //row单元格合并
220
- if (rowMerges) {
221
- rowMerges.forEach((m: any) => {
222
- const groupList = new Linq(data1).groupBy((r: any) => {
223
- const obj: any = {}
224
- m.conditions.forEach((c: any) => {
225
- obj[c] = r[c]
226
- })
227
- return obj
228
- })
229
- //@ts-ignore
230
- groupList.forEach((c: any) => {
231
- m.fields.forEach((m1: any) => {
232
- const cIndex = dataColumns.indexOf(dataColumns.find((c) => c.property === m1))
233
- let minOrderNum = 0
234
- let maxOrderNum = 0
235
- minOrderNum = new Linq(c.elements).min((c: any) => c._orderNum)
236
- maxOrderNum = new Linq(c.elements).max((c: any) => c._orderNum)
237
- merges.push({
238
- s: { c: cIndex, r: minOrderNum },
239
- e: { c: cIndex, r: maxOrderNum },
240
- })
241
- })
242
- })
243
- })
244
- }
245
- data1?.forEach((r: any) => {
246
- const row: any = []
247
- dataColumns.forEach((c) => {
248
- row.push({
249
- v: r[c.property] ? r[c.property] : '',
250
- t: 's',
251
- s: {
252
- alignment: {
253
- vertical: 'center', // 垂直居中
254
- horizontal: c.align, // 水平居中
255
- },
256
- // border 边框属性
257
- border: {
258
- top: { style: 'thin' },
259
- bottom: { style: 'thin' },
260
- left: { style: 'thin' },
261
- right: { style: 'thin' },
262
- },
263
- },
264
- })
265
- })
266
- rows.push(row)
267
- })
268
- //设置行高
269
- rows.forEach((r: any, index: number) => {
270
- if (index > 0) {
271
- rowsS.push({ hpx: 20 })
272
- }
273
- })
274
- //设置列宽
275
- dataColumns.forEach((c) => {
276
- cols.push({ wpx: c.width })
277
- })
278
- if (customFooterCallback) {
279
- customFooterCallback(rows, dataColumns, merges)
280
- }
281
- const wb = XLSX.utils.book_new()
282
- const ws = XLSX.utils.aoa_to_sheet(rows)
283
- ws['!cols'] = cols
284
- ws['!merges'] = merges
285
- ws['!rows'] = rowsS
286
- XLSX.utils.book_append_sheet(wb, ws, sheetName)
287
- // STEP 4: Write Excel file to browser
288
- XLSX.writeFile(wb, fileName+'.xlsx')
289
- },
290
- generateHeader(
291
- columns: any[],
292
- rows: any[],
293
- columnIndex: number,
294
- merges: any,
295
- ){
296
- //@ts-ignore
297
- columns.forEach((c: any) => {
298
- let row: any = []
299
- if (rows[c.level]) {
300
- row = rows[c.level]
301
- } else {
302
- row = []
303
- rows.push(row)
304
- }
305
- let headerAlign='left'
306
- if(c.headerAlign){
307
- headerAlign = c.headerAlign.replace('is-','')
308
- }
309
- row[columnIndex] = {
310
- v: c.label,
311
- t: 's',
312
- s: {
313
- font: { bold: true },
314
- alignment: {
315
- vertical: 'center', // 垂直居中
316
- horizontal: headerAlign, // 水平居中
317
- },
318
- // border 边框属性
319
- border: {
320
- top: { style: 'thin' },
321
- bottom: { style: 'thin' },
322
- left: { style: 'thin' },
323
- right: { style: 'thin' },
324
- },
325
- },
326
- }
327
- if (c.children) {
328
- merges.push({
329
- s: { c: columnIndex, r: c.level },
330
- e: { c: columnIndex + c.colSpan - 1, r: c.level },
331
- })
332
- this.generateHeader(c.children, rows, columnIndex, merges)
333
- } else {
334
- if (c.rowSpan > 1) {
335
- merges.push({
336
- s: { c: columnIndex, r: c.level },
337
- e: { c: columnIndex, r: c.level + c.rowSpan - 1 },
338
- })
339
- }
340
- }
341
- columnIndex = columnIndex + c.colSpan
342
- })
343
- },
344
- generateColumns(columns: any[], dataColumns: any[]){
345
- //@ts-ignore
346
- columns.forEach((c: any) => {
347
- if (c.children) {
348
- this.generateColumns(c.children, dataColumns)
349
- } else {
350
- let headerAlign='left'
351
- let align='left'
352
- if(c.headerAlign){
353
- headerAlign = c.headerAlign.replace('is-','')
354
- }
355
- if(c.align){
356
- align = c.align.replace('is-','')
357
- }
358
- dataColumns.push({ property: c.property, width: c.width ? c.width : c.minWidth,headerAlign,align })
359
- }
360
- })
361
- }
362
- // /**
363
- // * 判断是否有操作权限
364
- // * @param operCode
365
- // * @constructor
366
- // */
367
- // IsOperationAuth(operCode:string): Boolean {
368
- // return permission.IsOperationAuth(operCode)
369
- // }
370
- }
1
+ import elTableTool from '../components/Table/ElTableTool.ts'
2
+ import { ElMessage } from 'element-plus'
3
+ import * as XLSX from 'xlsx-js-style'
4
+ import { Linq } from 'linq-to-ts'
5
+ import Base64 from 'crypto-js/enc-base64'
6
+ import Utf8 from 'crypto-js/enc-utf8'
7
+ /**
8
+ * Create by丁盼
9
+ * 说明: FrameworkUtils
10
+ * 创建时间: 2025/3/12 09:24
11
+ * 修改时间: 2025/3/12 09:24
12
+ */
13
+ export default {
14
+ /**
15
+ * 校验表格数据是否为空
16
+ * @param table 表格对象
17
+ * @param rules 校验规则
18
+ */
19
+ validateTableData(table: any, rules: any): Boolean {
20
+ return elTableTool.validateTableData(table, rules)
21
+ },
22
+ /**
23
+ * 获取当前已经打开的菜单
24
+ */
25
+ getOpenMenuInfoWujie(){
26
+ const data=JSON.parse(Base64.parse(sessionStorage.getItem("permissionStore")+"").toString(Utf8))
27
+ return data.openMenuInfo
28
+ },
29
+ /**
30
+ * 获取当前已经打开的菜单
31
+ */
32
+ getActiveMenuInfoWujie(){
33
+ const data=JSON.parse(Base64.parse(sessionStorage.getItem("permissionStore")+"").toString(Utf8))
34
+ return data.activeMenuInfo
35
+ },
36
+ /**
37
+ * 获取当前已经打开的菜单
38
+ */
39
+ getActiveMenuInfoLevel1(){
40
+ const data=JSON.parse(Base64.parse(sessionStorage.getItem("permissionStore")+"").toString(Utf8))
41
+ return data.activeMenuInfoLevel1
42
+ },
43
+ /**
44
+ * 获取系统分页数
45
+ */
46
+ getPageSize(): number {
47
+ try {
48
+ const systemConfig = JSON.parse(localStorage.getItem('systemConfig') + '')
49
+ if (systemConfig && systemConfig['pageSize'] + '') {
50
+ return Number(systemConfig['pageSize'] + '')
51
+ } else {
52
+ return 50
53
+ }
54
+ } catch {
55
+ return 50
56
+ }
57
+ },
58
+ /**
59
+ * 提示错误信息
60
+ * @param err
61
+ */
62
+ messageError(err: any) {
63
+ if (err.code) {
64
+ if (err.code === '500') {
65
+ ElMessage.error('系统错误,请与管理员联系!')
66
+ } else if (
67
+ err.code === '10402' ||
68
+ err.code === '10403' ||
69
+ err.code === '10404' ||
70
+ err.code === '10500' ||
71
+ err.code === '10505' ||
72
+ err.code === '10506' ||
73
+ err.code === '10507'
74
+ ) {
75
+ ElMessage.error(err.msg)
76
+ } else if (err.code === '10504') {
77
+ ElMessage.warning(err.msg)
78
+ }
79
+ } else {
80
+ ElMessage.error(err.message)
81
+ }
82
+ },
83
+ /**
84
+ * 导出excel
85
+ * @param title 标题
86
+ * @param fileName 文件名
87
+ * @param sheetName 工作表名
88
+ * @param columns 表头,参考ElTable列属性{property:'',width:'',label:'',colSpan:'',colSpan:'',level:'',children:[]}
89
+ * @param data 数据
90
+ * @param rowMerges 行合并配置
91
+ * [{
92
+ * conditions: ['groupNo'],//条件
93
+ * fields: ['groupNo', 'seMeetingSampleName'],//需要合并的列
94
+ * }]
95
+ * @param colMerges 列合并配置
96
+ * [
97
+ * {
98
+ * conditions: ['groupNo', 'seMeetingSampleName']//条件
99
+ * },
100
+ * ]
101
+ * @param customHeaderCallback 自定义标题回调函数
102
+ * rows: any[], 当前行对象
103
+ * dataColumns: any[],列对象
104
+ * merges: any[] 合并对象
105
+ * @param customFooterCallback 自定义页脚回调函数
106
+ * @constructor
107
+ */
108
+ exportExcel(
109
+ title: string,
110
+ fileName: string,
111
+ sheetName: string,
112
+ columns: any,
113
+ data: any,
114
+ rowMerges?: any[],
115
+ colMerges?: any[],
116
+ customHeaderCallback?: any,
117
+ customFooterCallback?: any,
118
+ ) {
119
+ const cl = columns
120
+ let rows: any[] = []
121
+ const cols: any[] = []
122
+ const dataColumns: any[] = []
123
+ const merges: any = []
124
+ this.generateColumns(cl, dataColumns)
125
+ //设置表头
126
+ if (customHeaderCallback) {
127
+ customHeaderCallback(rows, dataColumns, merges)
128
+ } else {
129
+ rows.push([
130
+ {
131
+ v: title,
132
+ t: 's',
133
+ s: {
134
+ font: { bold: true },
135
+ alignment: {
136
+ vertical: 'center', // 垂直居中
137
+ horizontal: 'center', // 水平居中
138
+ },
139
+ // border 边框属性
140
+ border: {
141
+ top: { style: 'thin' },
142
+ bottom: { style: 'thin' },
143
+ left: { style: 'thin' },
144
+ right: { style: 'thin' },
145
+ },
146
+ },
147
+ },
148
+ ])
149
+ //表头合并
150
+ merges.push({
151
+ s: { c: 0, r: 0 },
152
+ e: { c: dataColumns.length - 1, r: 0 },
153
+ })
154
+ }
155
+ //@ts-ignore
156
+ this.generateHeader(cl, rows, 0, merges)
157
+ //设置缺失单元格对象
158
+ let max = 0
159
+ rows.forEach((r: any) => {
160
+ if (max < r.length) {
161
+ max = r.length
162
+ }
163
+ })
164
+ const rowsS = [{ hpx: 30 }]
165
+ rows.forEach((r: any, index: number) => {
166
+ if (index > 0) {
167
+ rowsS.push({ hpx: 20 })
168
+ }
169
+ for (let i = 0; i < max; i++) {
170
+ if (!r[i]) {
171
+ r[i] = {
172
+ v: '',
173
+ t: 's',
174
+ s: {
175
+ font: { bold: true },
176
+ alignment: {
177
+ vertical: 'center', // 垂直居中
178
+ horizontal: 'center', // 水平居中
179
+ },
180
+ // border 边框属性
181
+ border: {
182
+ top: { style: 'thin' },
183
+ bottom: { style: 'thin' },
184
+ left: { style: 'thin' },
185
+ right: { style: 'thin' },
186
+ },
187
+ },
188
+ }
189
+ }
190
+ }
191
+ })
192
+ const data1 = JSON.parse(JSON.stringify(data))
193
+ data1.forEach((r: any, index: any) => {
194
+ r._orderNum = index + rows.length
195
+ })
196
+ //col单元格合并
197
+ if (colMerges) {
198
+ colMerges.forEach((m: any) => {
199
+ data1.forEach((r: any) => {
200
+ const set = new Set()
201
+ m.conditions.forEach((c: any) => {
202
+ set.add(r[c])
203
+ })
204
+ if (set.size === 1) {
205
+ const sIndes = dataColumns.indexOf(
206
+ dataColumns.find((c) => c.property === m.conditions[0]),
207
+ )
208
+ const eIndes = dataColumns.indexOf(
209
+ dataColumns.find((c) => c.property === m.conditions[m.conditions.length - 1]),
210
+ )
211
+ merges.push({
212
+ s: { c: sIndes, r: r._orderNum },
213
+ e: { c: eIndes, r: r._orderNum },
214
+ })
215
+ }
216
+ })
217
+ })
218
+ }
219
+ //row单元格合并
220
+ if (rowMerges) {
221
+ rowMerges.forEach((m: any) => {
222
+ const groupList = new Linq(data1).groupBy((r: any) => {
223
+ const obj: any = {}
224
+ m.conditions.forEach((c: any) => {
225
+ obj[c] = r[c]
226
+ })
227
+ return obj
228
+ })
229
+ //@ts-ignore
230
+ groupList.forEach((c: any) => {
231
+ m.fields.forEach((m1: any) => {
232
+ const cIndex = dataColumns.indexOf(dataColumns.find((c) => c.property === m1))
233
+ let minOrderNum = 0
234
+ let maxOrderNum = 0
235
+ minOrderNum = new Linq(c.elements).min((c: any) => c._orderNum)
236
+ maxOrderNum = new Linq(c.elements).max((c: any) => c._orderNum)
237
+ merges.push({
238
+ s: { c: cIndex, r: minOrderNum },
239
+ e: { c: cIndex, r: maxOrderNum },
240
+ })
241
+ })
242
+ })
243
+ })
244
+ }
245
+ data1?.forEach((r: any) => {
246
+ const row: any = []
247
+ dataColumns.forEach((c) => {
248
+ row.push({
249
+ v: r[c.property] ? r[c.property] : '',
250
+ t: 's',
251
+ s: {
252
+ alignment: {
253
+ vertical: 'center', // 垂直居中
254
+ horizontal: c.align, // 水平居中
255
+ },
256
+ // border 边框属性
257
+ border: {
258
+ top: { style: 'thin' },
259
+ bottom: { style: 'thin' },
260
+ left: { style: 'thin' },
261
+ right: { style: 'thin' },
262
+ },
263
+ },
264
+ })
265
+ })
266
+ rows.push(row)
267
+ })
268
+ //设置行高
269
+ rows.forEach((r: any, index: number) => {
270
+ if (index > 0) {
271
+ rowsS.push({ hpx: 20 })
272
+ }
273
+ })
274
+ //设置列宽
275
+ dataColumns.forEach((c) => {
276
+ cols.push({ wpx: c.width })
277
+ })
278
+ if (customFooterCallback) {
279
+ customFooterCallback(rows, dataColumns, merges)
280
+ }
281
+ const wb = XLSX.utils.book_new()
282
+ const ws = XLSX.utils.aoa_to_sheet(rows)
283
+ ws['!cols'] = cols
284
+ ws['!merges'] = merges
285
+ ws['!rows'] = rowsS
286
+ XLSX.utils.book_append_sheet(wb, ws, sheetName)
287
+ // STEP 4: Write Excel file to browser
288
+ XLSX.writeFile(wb, fileName+'.xlsx')
289
+ },
290
+ generateHeader(
291
+ columns: any[],
292
+ rows: any[],
293
+ columnIndex: number,
294
+ merges: any,
295
+ ){
296
+ //@ts-ignore
297
+ columns.forEach((c: any) => {
298
+ let row: any = []
299
+ if (rows[c.level]) {
300
+ row = rows[c.level]
301
+ } else {
302
+ row = []
303
+ rows.push(row)
304
+ }
305
+ let headerAlign='left'
306
+ if(c.headerAlign){
307
+ headerAlign = c.headerAlign.replace('is-','')
308
+ }
309
+ row[columnIndex] = {
310
+ v: c.label,
311
+ t: 's',
312
+ s: {
313
+ font: { bold: true },
314
+ alignment: {
315
+ vertical: 'center', // 垂直居中
316
+ horizontal: headerAlign, // 水平居中
317
+ },
318
+ // border 边框属性
319
+ border: {
320
+ top: { style: 'thin' },
321
+ bottom: { style: 'thin' },
322
+ left: { style: 'thin' },
323
+ right: { style: 'thin' },
324
+ },
325
+ },
326
+ }
327
+ if (c.children) {
328
+ merges.push({
329
+ s: { c: columnIndex, r: c.level },
330
+ e: { c: columnIndex + c.colSpan - 1, r: c.level },
331
+ })
332
+ this.generateHeader(c.children, rows, columnIndex, merges)
333
+ } else {
334
+ if (c.rowSpan > 1) {
335
+ merges.push({
336
+ s: { c: columnIndex, r: c.level },
337
+ e: { c: columnIndex, r: c.level + c.rowSpan - 1 },
338
+ })
339
+ }
340
+ }
341
+ columnIndex = columnIndex + c.colSpan
342
+ })
343
+ },
344
+ generateColumns(columns: any[], dataColumns: any[]){
345
+ //@ts-ignore
346
+ columns.forEach((c: any) => {
347
+ if (c.children) {
348
+ this.generateColumns(c.children, dataColumns)
349
+ } else {
350
+ let headerAlign='left'
351
+ let align='left'
352
+ if(c.headerAlign){
353
+ headerAlign = c.headerAlign.replace('is-','')
354
+ }
355
+ if(c.align){
356
+ align = c.align.replace('is-','')
357
+ }
358
+ dataColumns.push({ property: c.property, width: c.width ? c.width : c.minWidth,headerAlign,align })
359
+ }
360
+ })
361
+ }
362
+ // /**
363
+ // * 判断是否有操作权限
364
+ // * @param operCode
365
+ // * @constructor
366
+ // */
367
+ // IsOperationAuth(operCode:string): Boolean {
368
+ // return permission.IsOperationAuth(operCode)
369
+ // }
370
+ }