adtec-core-package 2.4.8 → 2.5.0

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 -91
  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 +377 -377
  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 +120 -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 -112
  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 +70 -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 -192
  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,311 +1,311 @@
1
- <!--创建人 胡啸东-->
2
- <!--创建时间: 2024/11/8 上午10:33-->
3
- <!--修改时间: 2024/11/8 上午10:33-->
4
- <template>
5
- <el-flex v-loading="loading" :vertical="true">
6
- <el-search
7
- class="border"
8
- style="border-bottom: var(--border)"
9
- @reset="resetQuery"
10
- @search="handleQuery"
11
- >
12
- <el-form
13
- ref="queryRef"
14
- :inline="true"
15
- :model="queryParam"
16
- :style="{ width: '100%', height: '100%' }"
17
- labelPosition="top"
18
- size="default"
19
- >
20
- <el-form-item :style="{ width: '220px' }" label="所属部门" prop="deptIds">
21
- <el-tree-select
22
- ref="ref_tree"
23
- check-strictly
24
- :disabled="queryParam.disabled"
25
- v-model="queryParam.deptIds"
26
- :data="orgDeptTree"
27
- filterable
28
- multiple
29
- :default-expand-all="true"
30
- :props="{
31
- label: 'name',
32
- children: 'children',
33
- disabled: (data: IOrgDeptInfo) => data.isValid !== '1' || queryParam.disabled,
34
- }"
35
- :render-after-expand="false"
36
- clearable
37
- collapse-tags
38
- collapse-tags-tooltip
39
- node-key="id"
40
- placeholder="请选择所属部门"
41
- />
42
- </el-form-item>
43
- <el-form-item :style="{ width: '220px' }" label="人员编码或名称" prop="codeorname">
44
- <el-input
45
- v-model="queryParam.codeorname"
46
- clearable
47
- placeholder="请输入人员编码或名称"
48
- ></el-input>
49
- </el-form-item>
50
- </el-form>
51
- </el-search>
52
- <el-title class="border" style="border-bottom: var(--border)" title="人员列表"></el-title>
53
- <div style="padding-top: 4px">
54
- <el-tag
55
- v-for="user in selectUserList"
56
- :key="user.code"
57
- closable
58
- style="margin: 2px"
59
- @close="handleCloseTag(user)"
60
- >
61
- <el-tooltip placement="top" :content="user.deptName">
62
- {{ user.name }}
63
- </el-tooltip>
64
- </el-tag>
65
- </div>
66
- <el-table
67
- ref="ref_table"
68
- :data="userList?.records"
69
- border
70
- @row-click="handleRadioChange"
71
- height="100%"
72
- @select="selectRows"
73
- @select-all="selectRows"
74
- :row-class-name="rowClassName"
75
- style="margin-top: 8px"
76
- >
77
- <el-table-column
78
- type="selection"
79
- width="38"
80
- :show-overflow-tooltip="false"
81
- header-align="center"
82
- :selectable="(row: IMdmEmployee) => row.isValid === '1'"
83
- v-if="multiple"
84
- >
85
- </el-table-column>
86
- <el-table-column
87
- align="center"
88
- width="38"
89
- :show-overflow-tooltip="false"
90
- header-align="center"
91
- v-else
92
- >
93
- <template #default="scope">
94
- <div
95
- style="display: flex; justify-content: center; align-items: center; padding-left: 8px"
96
- >
97
- <el-radio v-model="checkId" :label="scope.row.id" @change="handleRadioChange(scope.row)"
98
- ><span></span
99
- ></el-radio>
100
- </div>
101
- </template>
102
- </el-table-column>
103
- <el-table-column :show-overflow-tooltip="true" label="用户姓名" prop="name" width="120"/>
104
- <el-table-column :show-overflow-tooltip="true" label="岗位名称" prop="postName" width="120"/>
105
- <el-table-column :show-overflow-tooltip="true" label="所属部门" prop="deptName"/>
106
- <el-table-column
107
- :show-overflow-tooltip="true"
108
- label="所属组织"
109
- prop="orgName"
110
- v-if="props.showOrgInfo"
111
- width="220"
112
- />
113
- </el-table>
114
- <el-pagination
115
- v-model:current-page="queryParam.current"
116
- :background="true"
117
- :page-size="queryParam.size"
118
- :total="userList?.total ? userList?.total : 0"
119
- style="margin-top: 5px; margin-bottom: 5px"
120
- @current-change="handleQuery"
121
- ></el-pagination>
122
- </el-flex>
123
- </template>
124
- <script lang="ts" setup>
125
- import {useVModel} from '@vueuse/core'
126
- import type {IMdmEmployeeQuery} from '../../interface/IMdmEmployeeQuery'
127
- import {nextTick, onMounted, ref, watch} from 'vue'
128
- import type {IpageDataQuery, PageData} from '../../interface//PageData'
129
- import type {IMdmEmployee} from '../../interface/IMdmEmployee'
130
- import {ElMessage, ElTooltip, type TableInstance, type TreeNode} from 'element-plus'
131
- import deptInfoApi from '../../api/DeptInfoApi'
132
- import type {IOrgDeptInfo} from '../../interface/IOrgDeptInfo'
133
- import EmployeeInfoApi from '../../api/EmployeeInfoApi'
134
- import {useResetRefHooks} from '../../hooks/useResetRefHooks'
135
- import frameworkUtils from '../../utils/FrameworkUtils'
136
-
137
- // 明确指定 Props 的泛型参数类型
138
- interface Props<T extends IpageDataQuery, E extends IMdmEmployee> {
139
- fetchData?: (data: T) => Promise<PageData<E>>
140
- defalutQueryParam?: any
141
- multiple?: boolean
142
- showOrgInfo?: boolean
143
- }
144
-
145
- const props = withDefaults(defineProps<Props<IMdmEmployeeQuery, IMdmEmployee>>(), {
146
- fetchData: EmployeeInfoApi.getMdmEmployeeListByIds,
147
- defalutQueryParam: {
148
- disabled: false,
149
- deptIds: [],
150
- },
151
- multiple: true,
152
- showOrgInfo: true,
153
- })
154
- const [queryParam, resetQueryParam] = useResetRefHooks<IMdmEmployeeQuery>({
155
- ...{
156
- current: 1,
157
- size: frameworkUtils.getPageSize(),
158
- },
159
- ...props.defalutQueryParam,
160
- })
161
- const emit = defineEmits(['success'])
162
- const orgDeptTree = ref<IOrgDeptInfo[]>([])
163
- const loading = ref(false)
164
- const queryRef = ref()
165
- const ref_table = ref<TableInstance>()
166
- const checkId = ref('')
167
- const selectRow = ref<IMdmEmployee>()
168
- const ref_tree = ref()
169
- const [selectUserList, resetSelectUserList] = useResetRefHooks<IMdmEmployee[]>([])
170
- const [userList, resetUserList] = useResetRefHooks<PageData<IMdmEmployee>>({
171
- records: [],
172
- total: 0,
173
- pages: 0,
174
- current: 1,
175
- })
176
- const rowClassName = ({row, rowIndex}: { row: IMdmEmployee; rowIndex: number }) => {
177
- if (row.isValid !== '1') {
178
- return 'table-row-disabled'
179
- }
180
- }
181
- const getTreeData = async () => {
182
- try {
183
- orgDeptTree.value = await deptInfoApi.getMdmOrgDeptTree({})
184
- } catch (error: any) {
185
- frameworkUtils.messageError(error)
186
- }
187
- }
188
- const handleRadioChange = (row: IMdmEmployee) => {
189
- if (row.id === checkId.value) {
190
- selectRow.value = undefined
191
- checkId.value = ''
192
- } else {
193
- checkId.value = row.id!
194
- selectRow.value = row
195
- }
196
- }
197
- const renderTreeNode = (
198
- h: (type: any, props: any, children: any) => any,
199
- {node, data}: { node: TreeNode; data: IOrgDeptInfo },
200
- ) => {
201
- return [
202
- h(
203
- ElTooltip,
204
- {
205
- content: data.name,
206
- placement: 'top',
207
- },
208
- () => [h('span', {}, data.name)],
209
- ),
210
- ]
211
- }
212
- const selectRows = (selects: IMdmEmployee[], row?: IMdmEmployee) => {
213
- if (row) {
214
- //此时要先判断是选中还是取消选中
215
- if (!judgeIsSel(selects, row)) {
216
- selectUserList.value = selectUserList.value.filter((item) => item.code !== row.code)
217
- } else {
218
- selectUserList.value.push(row)
219
- }
220
- } else {
221
- //此时是全选中或全取消
222
- if (selects.length) {
223
- const selCodes = selectUserList.value.map((item: IMdmEmployee) => item.code)
224
- selects.forEach((item: IMdmEmployee) => {
225
- if (!selCodes.includes(item.code)) {
226
- selectUserList.value.push(item)
227
- }
228
- })
229
- } else {
230
- const delCodes = userList.value?.records.map((item: IMdmEmployee) => item.code)
231
- selectUserList.value = selectUserList.value.filter((item) => !delCodes?.includes(item.code))
232
- }
233
- }
234
- }
235
- const judgeIsSel = (selects: IMdmEmployee[], row: IMdmEmployee) => {
236
- return selects.some((item) => item.code === row.code)
237
- }
238
- const resetQuery = async () => {
239
- loading.value = true
240
- if (!(orgDeptTree.value && orgDeptTree.value.length)) {
241
- await getTreeData()
242
- }
243
- resetSelectUserList()
244
- resetUserList()
245
- queryRef.value?.resetFields()
246
- ref_tree.value?.setCheckedKeys([])
247
- resetQueryParam()
248
- queryParam.value = {...queryParam.value, ...props.defalutQueryParam}
249
- nextTick(() => {
250
- ref_tree.value?.setCheckedKeys(queryParam.value.deptIds ?? [])
251
- handleQuery()
252
- })
253
- }
254
- const handleQuery = async () => {
255
- try {
256
- loading.value = true
257
- let deptIds: string[] = []
258
- let orgId = undefined
259
- if (queryParam.value.deptIds && queryParam.value.deptIds.length) {
260
- queryParam.value.deptIds.forEach((item: string) => {
261
- if (orgDeptTree.value.findIndex((ele) => ele.id === item) >= 0) {
262
- orgId = item
263
- } else {
264
- deptIds.push(item)
265
- }
266
- })
267
- }
268
- let params = JSON.parse(JSON.stringify(queryParam.value))
269
- params.deptIds = deptIds
270
- params.orgId = orgId
271
- //需要合并默认参数
272
- userList.value = await props.fetchData(params)
273
- //设置选中
274
- const selCodes = selectUserList.value.map((item: IMdmEmployee) => item.code)
275
- nextTick(() => {
276
- userList.value.records.forEach((item: IMdmEmployee) => {
277
- selCodes.includes(item.code) && ref_table.value?.toggleRowSelection(item, true)
278
- })
279
- })
280
- queryParam.value.current = userList.value.current
281
- } catch (error: any) {
282
- frameworkUtils.messageError(error)
283
- } finally {
284
- loading.value = false
285
- }
286
- }
287
- const handleCloseTag = (row: IMdmEmployee) => {
288
- selectUserList.value = selectUserList.value.filter((item) => item.code !== row.code)
289
- //同时去除表格选中
290
- const find = userList.value.records.find((item) => item.code === row.code)
291
- find && ref_table.value?.toggleRowSelection(find, false)
292
- }
293
- const confirm = async () => {
294
- if ((!selectUserList.value.length && props.multiple) || (!selectRow.value && !props.multiple)) {
295
- ElMessage.warning('未选择需要新增的人员!')
296
- } else {
297
- emit('success', props.multiple ? selectUserList.value : selectRow.value)
298
- }
299
- }
300
- defineExpose({
301
- confirm,
302
- resetQuery,
303
- })
304
- </script>
305
- <style lang="scss" scoped>
306
- :deep {
307
- .table-row-disabled {
308
- color: var(--el-color-warning);
309
- }
310
- }
311
- </style>
1
+ <!--创建人 胡啸东-->
2
+ <!--创建时间: 2024/11/8 上午10:33-->
3
+ <!--修改时间: 2024/11/8 上午10:33-->
4
+ <template>
5
+ <el-flex v-loading="loading" :vertical="true">
6
+ <el-search
7
+ class="border"
8
+ style="border-bottom: var(--border)"
9
+ @reset="resetQuery"
10
+ @search="handleQuery"
11
+ >
12
+ <el-form
13
+ ref="queryRef"
14
+ :inline="true"
15
+ :model="queryParam"
16
+ :style="{ width: '100%', height: '100%' }"
17
+ labelPosition="top"
18
+ size="default"
19
+ >
20
+ <el-form-item :style="{ width: '220px' }" label="所属部门" prop="deptIds">
21
+ <el-tree-select
22
+ ref="ref_tree"
23
+ check-strictly
24
+ :disabled="queryParam.disabled"
25
+ v-model="queryParam.deptIds"
26
+ :data="orgDeptTree"
27
+ filterable
28
+ multiple
29
+ :default-expand-all="true"
30
+ :props="{
31
+ label: 'name',
32
+ children: 'children',
33
+ disabled: (data: IOrgDeptInfo) => data.isValid !== '1' || queryParam.disabled,
34
+ }"
35
+ :render-after-expand="false"
36
+ clearable
37
+ collapse-tags
38
+ collapse-tags-tooltip
39
+ node-key="id"
40
+ placeholder="请选择所属部门"
41
+ />
42
+ </el-form-item>
43
+ <el-form-item :style="{ width: '220px' }" label="人员编码或名称" prop="codeorname">
44
+ <el-input
45
+ v-model="queryParam.codeorname"
46
+ clearable
47
+ placeholder="请输入人员编码或名称"
48
+ ></el-input>
49
+ </el-form-item>
50
+ </el-form>
51
+ </el-search>
52
+ <el-title class="border" style="border-bottom: var(--border)" title="人员列表"></el-title>
53
+ <div style="padding-top: 4px">
54
+ <el-tag
55
+ v-for="user in selectUserList"
56
+ :key="user.code"
57
+ closable
58
+ style="margin: 2px"
59
+ @close="handleCloseTag(user)"
60
+ >
61
+ <el-tooltip placement="top" :content="user.deptName">
62
+ {{ user.name }}
63
+ </el-tooltip>
64
+ </el-tag>
65
+ </div>
66
+ <el-table
67
+ ref="ref_table"
68
+ :data="userList?.records"
69
+ border
70
+ @row-click="handleRadioChange"
71
+ height="100%"
72
+ @select="selectRows"
73
+ @select-all="selectRows"
74
+ :row-class-name="rowClassName"
75
+ style="margin-top: 8px"
76
+ >
77
+ <el-table-column
78
+ type="selection"
79
+ width="38"
80
+ :show-overflow-tooltip="false"
81
+ header-align="center"
82
+ :selectable="(row: IMdmEmployee) => row.isValid === '1'"
83
+ v-if="multiple"
84
+ >
85
+ </el-table-column>
86
+ <el-table-column
87
+ align="center"
88
+ width="38"
89
+ :show-overflow-tooltip="false"
90
+ header-align="center"
91
+ v-else
92
+ >
93
+ <template #default="scope">
94
+ <div
95
+ style="display: flex; justify-content: center; align-items: center; padding-left: 8px"
96
+ >
97
+ <el-radio v-model="checkId" :label="scope.row.id" @change="handleRadioChange(scope.row)"
98
+ ><span></span
99
+ ></el-radio>
100
+ </div>
101
+ </template>
102
+ </el-table-column>
103
+ <el-table-column :show-overflow-tooltip="true" label="用户姓名" prop="name" width="120"/>
104
+ <el-table-column :show-overflow-tooltip="true" label="岗位名称" prop="postName" width="120"/>
105
+ <el-table-column :show-overflow-tooltip="true" label="所属部门" prop="deptName"/>
106
+ <el-table-column
107
+ :show-overflow-tooltip="true"
108
+ label="所属组织"
109
+ prop="orgName"
110
+ v-if="props.showOrgInfo"
111
+ width="220"
112
+ />
113
+ </el-table>
114
+ <el-pagination
115
+ v-model:current-page="queryParam.current"
116
+ :background="true"
117
+ :page-size="queryParam.size"
118
+ :total="userList?.total ? userList?.total : 0"
119
+ style="margin-top: 5px; margin-bottom: 5px"
120
+ @current-change="handleQuery"
121
+ ></el-pagination>
122
+ </el-flex>
123
+ </template>
124
+ <script lang="ts" setup>
125
+ import {useVModel} from '@vueuse/core'
126
+ import type {IMdmEmployeeQuery} from '../../interface/IMdmEmployeeQuery'
127
+ import {nextTick, onMounted, ref, watch} from 'vue'
128
+ import type {IpageDataQuery, PageData} from '../../interface//PageData'
129
+ import type {IMdmEmployee} from '../../interface/IMdmEmployee'
130
+ import {ElMessage, ElTooltip, type TableInstance, type TreeNode} from 'element-plus'
131
+ import deptInfoApi from '../../api/DeptInfoApi'
132
+ import type {IOrgDeptInfo} from '../../interface/IOrgDeptInfo'
133
+ import EmployeeInfoApi from '../../api/EmployeeInfoApi'
134
+ import {useResetRefHooks} from '../../hooks/useResetRefHooks'
135
+ import frameworkUtils from '../../utils/FrameworkUtils'
136
+
137
+ // 明确指定 Props 的泛型参数类型
138
+ interface Props<T extends IpageDataQuery, E extends IMdmEmployee> {
139
+ fetchData?: (data: T) => Promise<PageData<E>>
140
+ defalutQueryParam?: any
141
+ multiple?: boolean
142
+ showOrgInfo?: boolean
143
+ }
144
+
145
+ const props = withDefaults(defineProps<Props<IMdmEmployeeQuery, IMdmEmployee>>(), {
146
+ fetchData: EmployeeInfoApi.getMdmEmployeeListByIds,
147
+ defalutQueryParam: {
148
+ disabled: false,
149
+ deptIds: [],
150
+ },
151
+ multiple: true,
152
+ showOrgInfo: true,
153
+ })
154
+ const [queryParam, resetQueryParam] = useResetRefHooks<IMdmEmployeeQuery>({
155
+ ...{
156
+ current: 1,
157
+ size: frameworkUtils.getPageSize(),
158
+ },
159
+ ...props.defalutQueryParam,
160
+ })
161
+ const emit = defineEmits(['success'])
162
+ const orgDeptTree = ref<IOrgDeptInfo[]>([])
163
+ const loading = ref(false)
164
+ const queryRef = ref()
165
+ const ref_table = ref<TableInstance>()
166
+ const checkId = ref('')
167
+ const selectRow = ref<IMdmEmployee>()
168
+ const ref_tree = ref()
169
+ const [selectUserList, resetSelectUserList] = useResetRefHooks<IMdmEmployee[]>([])
170
+ const [userList, resetUserList] = useResetRefHooks<PageData<IMdmEmployee>>({
171
+ records: [],
172
+ total: 0,
173
+ pages: 0,
174
+ current: 1,
175
+ })
176
+ const rowClassName = ({row, rowIndex}: { row: IMdmEmployee; rowIndex: number }) => {
177
+ if (row.isValid !== '1') {
178
+ return 'table-row-disabled'
179
+ }
180
+ }
181
+ const getTreeData = async () => {
182
+ try {
183
+ orgDeptTree.value = await deptInfoApi.getMdmOrgDeptTree({})
184
+ } catch (error: any) {
185
+ frameworkUtils.messageError(error)
186
+ }
187
+ }
188
+ const handleRadioChange = (row: IMdmEmployee) => {
189
+ if (row.id === checkId.value) {
190
+ selectRow.value = undefined
191
+ checkId.value = ''
192
+ } else {
193
+ checkId.value = row.id!
194
+ selectRow.value = row
195
+ }
196
+ }
197
+ const renderTreeNode = (
198
+ h: (type: any, props: any, children: any) => any,
199
+ {node, data}: { node: TreeNode; data: IOrgDeptInfo },
200
+ ) => {
201
+ return [
202
+ h(
203
+ ElTooltip,
204
+ {
205
+ content: data.name,
206
+ placement: 'top',
207
+ },
208
+ () => [h('span', {}, data.name)],
209
+ ),
210
+ ]
211
+ }
212
+ const selectRows = (selects: IMdmEmployee[], row?: IMdmEmployee) => {
213
+ if (row) {
214
+ //此时要先判断是选中还是取消选中
215
+ if (!judgeIsSel(selects, row)) {
216
+ selectUserList.value = selectUserList.value.filter((item) => item.code !== row.code)
217
+ } else {
218
+ selectUserList.value.push(row)
219
+ }
220
+ } else {
221
+ //此时是全选中或全取消
222
+ if (selects.length) {
223
+ const selCodes = selectUserList.value.map((item: IMdmEmployee) => item.code)
224
+ selects.forEach((item: IMdmEmployee) => {
225
+ if (!selCodes.includes(item.code)) {
226
+ selectUserList.value.push(item)
227
+ }
228
+ })
229
+ } else {
230
+ const delCodes = userList.value?.records.map((item: IMdmEmployee) => item.code)
231
+ selectUserList.value = selectUserList.value.filter((item) => !delCodes?.includes(item.code))
232
+ }
233
+ }
234
+ }
235
+ const judgeIsSel = (selects: IMdmEmployee[], row: IMdmEmployee) => {
236
+ return selects.some((item) => item.code === row.code)
237
+ }
238
+ const resetQuery = async () => {
239
+ loading.value = true
240
+ if (!(orgDeptTree.value && orgDeptTree.value.length)) {
241
+ await getTreeData()
242
+ }
243
+ resetSelectUserList()
244
+ resetUserList()
245
+ queryRef.value?.resetFields()
246
+ ref_tree.value?.setCheckedKeys([])
247
+ resetQueryParam()
248
+ queryParam.value = {...queryParam.value, ...props.defalutQueryParam}
249
+ nextTick(() => {
250
+ ref_tree.value?.setCheckedKeys(queryParam.value.deptIds ?? [])
251
+ handleQuery()
252
+ })
253
+ }
254
+ const handleQuery = async () => {
255
+ try {
256
+ loading.value = true
257
+ let deptIds: string[] = []
258
+ let orgId = undefined
259
+ if (queryParam.value.deptIds && queryParam.value.deptIds.length) {
260
+ queryParam.value.deptIds.forEach((item: string) => {
261
+ if (orgDeptTree.value.findIndex((ele) => ele.id === item) >= 0) {
262
+ orgId = item
263
+ } else {
264
+ deptIds.push(item)
265
+ }
266
+ })
267
+ }
268
+ let params = JSON.parse(JSON.stringify(queryParam.value))
269
+ params.deptIds = deptIds
270
+ params.orgId = orgId
271
+ //需要合并默认参数
272
+ userList.value = await props.fetchData(params)
273
+ //设置选中
274
+ const selCodes = selectUserList.value.map((item: IMdmEmployee) => item.code)
275
+ nextTick(() => {
276
+ userList.value.records.forEach((item: IMdmEmployee) => {
277
+ selCodes.includes(item.code) && ref_table.value?.toggleRowSelection(item, true)
278
+ })
279
+ })
280
+ queryParam.value.current = userList.value.current
281
+ } catch (error: any) {
282
+ frameworkUtils.messageError(error)
283
+ } finally {
284
+ loading.value = false
285
+ }
286
+ }
287
+ const handleCloseTag = (row: IMdmEmployee) => {
288
+ selectUserList.value = selectUserList.value.filter((item) => item.code !== row.code)
289
+ //同时去除表格选中
290
+ const find = userList.value.records.find((item) => item.code === row.code)
291
+ find && ref_table.value?.toggleRowSelection(find, false)
292
+ }
293
+ const confirm = async () => {
294
+ if ((!selectUserList.value.length && props.multiple) || (!selectRow.value && !props.multiple)) {
295
+ ElMessage.warning('未选择需要新增的人员!')
296
+ } else {
297
+ emit('success', props.multiple ? selectUserList.value : selectRow.value)
298
+ }
299
+ }
300
+ defineExpose({
301
+ confirm,
302
+ resetQuery,
303
+ })
304
+ </script>
305
+ <style lang="scss" scoped>
306
+ :deep {
307
+ .table-row-disabled {
308
+ color: var(--el-color-warning);
309
+ }
310
+ }
311
+ </style>