@ebiz/designer-components 0.0.48 → 0.0.49

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 (770) hide show
  1. package/README.md +29 -29
  2. package/dist/designer-components.css +1 -1
  3. package/dist/index.mjs +33100 -97408
  4. package/package.json +1 -4
  5. package/src/App.vue +26 -26
  6. package/src/apiService/SIMPLE_DATA_SERVICE.md +284 -284
  7. package/src/apiService/mockDataService.js +115 -115
  8. package/src/apiService/simpleDataService.js +297 -297
  9. package/src/assets/base.css +86 -86
  10. package/src/assets/logo.svg +1 -1
  11. package/src/assets/styles/charts/main.less +0 -30
  12. package/src/components/Button.vue +149 -152
  13. package/src/components/DataContainer.vue +40 -40
  14. package/src/components/EbizApproval.vue +327 -0
  15. package/src/components/EbizAutoForm.vue +596 -596
  16. package/src/components/EbizAvatar.vue +115 -115
  17. package/src/components/EbizCheckbox.vue +93 -93
  18. package/src/components/EbizCheckboxGroup.vue +69 -69
  19. package/src/components/EbizDepartmentSelector.vue +144 -144
  20. package/src/components/EbizDescriptions.vue +340 -340
  21. package/src/components/EbizDescriptionsItem.vue +47 -47
  22. package/src/components/EbizDetailBlock.vue +81 -81
  23. package/src/components/EbizDialog.vue +260 -260
  24. package/src/components/EbizDivider.vue +96 -96
  25. package/src/components/EbizEmployeeInfo.vue +138 -138
  26. package/src/components/EbizEmployeeSelector.vue +1080 -1044
  27. package/src/components/EbizFileUpload.vue +238 -201
  28. package/src/components/EbizMap.vue +541 -541
  29. package/src/components/EbizOkrTree.vue +99 -99
  30. package/src/components/EbizPageHeader.vue +95 -95
  31. package/src/components/EbizPagination.vue +162 -162
  32. package/src/components/EbizPopconfirm.vue +47 -47
  33. package/src/components/EbizRadio.vue +86 -86
  34. package/src/components/EbizRadioGroup.vue +83 -83
  35. package/src/components/EbizRemoteSelect.vue +232 -232
  36. package/src/components/EbizRouteBreadcrumb.vue +46 -46
  37. package/src/components/EbizSelect.vue +85 -95
  38. package/src/components/EbizSpace.vue +100 -100
  39. package/src/components/EbizStatistic.vue +149 -149
  40. package/src/components/EbizStatsCard.vue +113 -113
  41. package/src/components/EbizSwiper.vue +113 -113
  42. package/src/components/EbizSwiperItem.vue +13 -13
  43. package/src/components/EbizSwitch.vue +85 -85
  44. package/src/components/EbizTabHeader.vue +132 -144
  45. package/src/components/EbizTabPanel.vue +22 -22
  46. package/src/components/EbizTable.vue +469 -469
  47. package/src/components/EbizTableColumn.vue +116 -116
  48. package/src/components/EbizTableSort.vue +179 -179
  49. package/src/components/EbizTabs.vue +142 -142
  50. package/src/components/EbizTdesignButtonDialog.vue +332 -332
  51. package/src/components/EbizTdesignLoading.vue +107 -107
  52. package/src/components/EbizTimePicker.vue +143 -143
  53. package/src/components/EbizTitle.vue +91 -91
  54. package/src/components/EbizTree.vue +152 -152
  55. package/src/components/EbizTreeMergeTable.vue +1414 -1414
  56. package/src/components/EbizTreeSelector.vue +418 -418
  57. package/src/components/Form.vue +28 -28
  58. package/src/components/Home.vue +7 -7
  59. package/src/components/MyComponent.vue +39 -39
  60. package/src/components/Table.vue +45 -45
  61. package/src/components/TdesignAlert.vue +115 -115
  62. package/src/components/TdesignButton.vue +135 -135
  63. package/src/components/TdesignCalendar/index.vue +145 -145
  64. package/src/components/TdesignCard.vue +195 -195
  65. package/src/components/TdesignCol.vue +101 -101
  66. package/src/components/TdesignCollapse.vue +142 -142
  67. package/src/components/TdesignCollapsePanel.vue +79 -79
  68. package/src/components/TdesignDatePicker.vue +124 -124
  69. package/src/components/TdesignDescriptions.vue +74 -74
  70. package/src/components/TdesignDescriptionsItem.vue +50 -50
  71. package/src/components/TdesignDialog.vue +225 -225
  72. package/src/components/TdesignForm.vue +138 -138
  73. package/src/components/TdesignFormItem.vue +105 -105
  74. package/src/components/TdesignGrid.vue +55 -55
  75. package/src/components/TdesignIcon.vue +67 -67
  76. package/src/components/TdesignImage.vue +162 -162
  77. package/src/components/TdesignImageViewer.vue +200 -200
  78. package/src/components/TdesignInput.vue +242 -242
  79. package/src/components/TdesignSelect.vue +444 -444
  80. package/src/components/TdesignTag.vue +117 -117
  81. package/src/components/TdesignTextarea.vue +142 -142
  82. package/src/components/TdesignTimeline.vue +58 -58
  83. package/src/components/TdesignTimelineItem.vue +71 -71
  84. package/src/components/TdesignUpload.vue +756 -756
  85. package/src/components/TdesignWatermark.vue +107 -107
  86. package/src/components/ebiz-form/components/cascader.vue +61 -61
  87. package/src/components/ebiz-form/components/checkbox.vue +37 -37
  88. package/src/components/ebiz-form/components/city.vue +137 -137
  89. package/src/components/ebiz-form/components/date-panel.vue +52 -52
  90. package/src/components/ebiz-form/components/date-range-panel.vue +52 -52
  91. package/src/components/ebiz-form/components/date-range.vue +56 -56
  92. package/src/components/ebiz-form/components/date.vue +52 -52
  93. package/src/components/ebiz-form/components/editor-multi-language.vue +47 -47
  94. package/src/components/ebiz-form/components/editor.vue +78 -78
  95. package/src/components/ebiz-form/components/file-multi-language.vue +52 -52
  96. package/src/components/ebiz-form/components/file.vue +149 -149
  97. package/src/components/ebiz-form/components/images-multi-language.vue +52 -52
  98. package/src/components/ebiz-form/components/images.vue +129 -129
  99. package/src/components/ebiz-form/components/img-multi-language.vue +51 -51
  100. package/src/components/ebiz-form/components/img.vue +129 -129
  101. package/src/components/ebiz-form/components/number.vue +50 -50
  102. package/src/components/ebiz-form/components/radio.vue +28 -28
  103. package/src/components/ebiz-form/components/select.vue +119 -119
  104. package/src/components/ebiz-form/components/switch.vue +23 -23
  105. package/src/components/ebiz-form/components/text-multi-language.vue +47 -47
  106. package/src/components/ebiz-form/components/text.vue +52 -52
  107. package/src/components/ebiz-form/components/textarea-multi-language.vue +48 -48
  108. package/src/components/ebiz-form/components/textarea.vue +29 -29
  109. package/src/components/ebiz-form/components/video-multi-language.vue +51 -51
  110. package/src/components/ebiz-form/components/video.vue +97 -97
  111. package/src/components/ebiz-form/index.vue +157 -157
  112. package/src/components/examples/PopconfirmExample.vue +149 -149
  113. package/src/components/icons/IconCommunity.vue +7 -7
  114. package/src/components/icons/IconDocumentation.vue +7 -7
  115. package/src/components/icons/IconEcosystem.vue +7 -7
  116. package/src/components/icons/IconSupport.vue +7 -7
  117. package/src/components/icons/IconTooling.vue +19 -19
  118. package/src/components/senior/EbizSData/index.vue +264 -264
  119. package/src/components/senior/EbizSDialog/index.vue +712 -712
  120. package/src/components/senior/EbizSForm/README.md +157 -157
  121. package/src/components/senior/EbizSForm/index.vue +668 -668
  122. package/src/components/senior/EbizSForm/item.vue +522 -522
  123. package/src/components/senior/EbizSForm/mItems/DateTimePicker.vue +51 -51
  124. package/src/components/senior/EbizSForm/mItems/Picker.vue +63 -63
  125. package/src/index.js +215 -215
  126. package/src/main.js +57 -57
  127. package/src/router/index.js +363 -356
  128. package/src/utils/formatCode.js +24 -24
  129. package/src/utils/generateImportStatement.js +52 -52
  130. package/src/utils/hasJsx.js +25 -25
  131. package/src/utils/index.js +166 -166
  132. package/src/utils/mergeOptions.js +29 -29
  133. package/src/utils/parseRequiredBlocks.js +18 -18
  134. package/src/utils/upload.ts +126 -126
  135. package/src/utils/vue-sfc-validator.js +155 -155
  136. package/src/views/Button.vue +23 -23
  137. package/src/views/CheckboxDemo.vue +104 -104
  138. package/src/views/DataContainer.vue +19 -19
  139. package/src/views/DialogDemo.vue +125 -125
  140. package/src/views/EbizApprovalDemo.vue +77 -0
  141. package/src/views/EbizAutoFormDemo.vue +129 -129
  142. package/src/views/EbizAvatar.vue +223 -223
  143. package/src/views/EbizDepartmentSelectorDemo.vue +169 -169
  144. package/src/views/EbizDetailBlockDemo.vue +30 -30
  145. package/src/views/EbizEmployeeInfo.vue +249 -249
  146. package/src/views/EbizEmployeeSelector.vue +83 -83
  147. package/src/views/EbizMap.vue +201 -201
  148. package/src/views/EbizRadioDemo.vue +151 -151
  149. package/src/views/EbizSDataDemo.vue +136 -137
  150. package/src/views/EbizSDialogDemo.vue +301 -301
  151. package/src/views/EbizSForm/index.vue +359 -359
  152. package/src/views/EbizSFormDemo.vue +420 -420
  153. package/src/views/EbizSpace.vue +185 -185
  154. package/src/views/EbizSwiper.vue +157 -157
  155. package/src/views/EbizTdesignButtonDialogExample.vue +437 -437
  156. package/src/views/Form.vue +19 -19
  157. package/src/views/GridDemo.vue +238 -238
  158. package/src/views/Home.vue +140 -139
  159. package/src/views/Mindmap.vue +19 -19
  160. package/src/views/MyComponent.vue +19 -19
  161. package/src/views/OkrTree.vue +19 -19
  162. package/src/views/PageHeaderDemo.vue +104 -104
  163. package/src/views/PaginationDemo.vue +96 -96
  164. package/src/views/PopconfirmDemo.vue +80 -80
  165. package/src/views/RemoteSelect.vue +350 -350
  166. package/src/views/StatisticDemo.vue +190 -190
  167. package/src/views/SwitchDemo.vue +79 -79
  168. package/src/views/Table.vue +19 -19
  169. package/src/views/TableDemo.vue +334 -334
  170. package/src/views/TableSortDemo.vue +143 -143
  171. package/src/views/TableView.vue +68 -68
  172. package/src/views/TabsDemo.vue +282 -282
  173. package/src/views/TagDemo.vue +101 -101
  174. package/src/views/TdesignAlert.vue +98 -98
  175. package/src/views/TdesignButton.vue +190 -190
  176. package/src/views/TdesignCalendar.vue +94 -94
  177. package/src/views/TdesignCard.vue +296 -296
  178. package/src/views/TdesignCollapse.vue +293 -293
  179. package/src/views/TdesignDatePicker.vue +187 -187
  180. package/src/views/TdesignDescriptions.vue +101 -101
  181. package/src/views/TdesignForm.vue +248 -248
  182. package/src/views/TdesignIcon.vue +203 -203
  183. package/src/views/TdesignImage.vue +215 -215
  184. package/src/views/TdesignImageViewer.vue +198 -198
  185. package/src/views/TdesignInput.vue +252 -252
  186. package/src/views/TdesignSelect.vue +473 -473
  187. package/src/views/TdesignSwiper.vue +157 -157
  188. package/src/views/TextareaDemo.vue +93 -93
  189. package/src/views/TimePickerDemo.vue +146 -146
  190. package/src/views/TimelineDemo.vue +160 -160
  191. package/src/views/Title.vue +19 -19
  192. package/src/views/TreeDemo.vue +254 -254
  193. package/src/views/TreeMergeTableDemo.vue +239 -239
  194. package/src/views/TreeSelectorDemo.vue +245 -245
  195. package/src/views/UploadDemo.vue +121 -121
  196. package/src/views/WatermarkDemo.vue +85 -85
  197. package/src/components/EbizMindmap/README.md +0 -8
  198. package/src/components/EbizMindmap/components/GridNode.vue +0 -102
  199. package/src/components/EbizMindmap/components/node.vue +0 -92
  200. package/src/components/EbizMindmap/components/vueNode.vue +0 -64
  201. package/src/components/EbizMindmap/index.vue +0 -383
  202. package/src/components/charts/chart.js +0 -47
  203. package/src/components/charts/components/AssembleBubbleChart/BaseOption.js +0 -50
  204. package/src/components/charts/components/AssembleBubbleChart/chartToken.js +0 -17
  205. package/src/components/charts/components/AssembleBubbleChart/handleOption.js +0 -66
  206. package/src/components/charts/components/AssembleBubbleChart/handleRootData.js +0 -165
  207. package/src/components/charts/components/AssembleBubbleChart/handleSeriesData.js +0 -70
  208. package/src/components/charts/components/AssembleBubbleChart/index.js +0 -65
  209. package/src/components/charts/components/AutonaviMapChart/index.js +0 -162
  210. package/src/components/charts/components/BaiduMapChart/index.js +0 -148
  211. package/src/components/charts/components/BarChart/barChartOption.js +0 -76
  212. package/src/components/charts/components/BarChart/chartToken.js +0 -17
  213. package/src/components/charts/components/BarChart/handleOptipn.js +0 -102
  214. package/src/components/charts/components/BarChart/handleSeries.js +0 -716
  215. package/src/components/charts/components/BarChart/handleVisualMap.js +0 -48
  216. package/src/components/charts/components/BarChart/index.js +0 -151
  217. package/src/components/charts/components/BaseChart/index.js +0 -122
  218. package/src/components/charts/components/BoxplotChart/chartToken.js +0 -17
  219. package/src/components/charts/components/BoxplotChart/handleOption.js +0 -64
  220. package/src/components/charts/components/BoxplotChart/handleSeries.js +0 -150
  221. package/src/components/charts/components/BoxplotChart/index.js +0 -47
  222. package/src/components/charts/components/BubbleChart/chartToken.js +0 -17
  223. package/src/components/charts/components/BubbleChart/handleData.js +0 -33
  224. package/src/components/charts/components/BubbleChart/handleOptipn.js +0 -63
  225. package/src/components/charts/components/BubbleChart/handleSeries.js +0 -86
  226. package/src/components/charts/components/BubbleChart/handleTrendLine.js +0 -119
  227. package/src/components/charts/components/BubbleChart/handleVisualMap.js +0 -50
  228. package/src/components/charts/components/BubbleChart/index.js +0 -96
  229. package/src/components/charts/components/BulletChart/bulletChartOption.js +0 -82
  230. package/src/components/charts/components/BulletChart/chartToken.js +0 -17
  231. package/src/components/charts/components/BulletChart/handleOptipn.js +0 -74
  232. package/src/components/charts/components/BulletChart/handleSeries.js +0 -143
  233. package/src/components/charts/components/BulletChart/index.js +0 -93
  234. package/src/components/charts/components/CandlestickChart/BaseOption.js +0 -44
  235. package/src/components/charts/components/CandlestickChart/chartToken.js +0 -17
  236. package/src/components/charts/components/CandlestickChart/hanleOption.js +0 -130
  237. package/src/components/charts/components/CandlestickChart/hanleSeries.js +0 -123
  238. package/src/components/charts/components/CandlestickChart/index.js +0 -68
  239. package/src/components/charts/components/CircleProcessChart/chartToken.js +0 -17
  240. package/src/components/charts/components/CircleProcessChart/handleOption.js +0 -68
  241. package/src/components/charts/components/CircleProcessChart/handleSeries.js +0 -127
  242. package/src/components/charts/components/CircleProcessChart/index.js +0 -63
  243. package/src/components/charts/components/FlowChart/Layout.js +0 -211
  244. package/src/components/charts/components/FlowChart/LineBezier.js +0 -120
  245. package/src/components/charts/components/FlowChart/LineDirect.js +0 -42
  246. package/src/components/charts/components/FlowChart/LineManager.js +0 -278
  247. package/src/components/charts/components/FlowChart/LineMode.js +0 -44
  248. package/src/components/charts/components/FlowChart/LineRound.js +0 -335
  249. package/src/components/charts/components/FlowChart/NodeManager.js +0 -185
  250. package/src/components/charts/components/FlowChart/dagre.js +0 -8829
  251. package/src/components/charts/components/FlowChart/frameworkFn.js +0 -38
  252. package/src/components/charts/components/FlowChart/index.js +0 -268
  253. package/src/components/charts/components/FlowChart/index.less +0 -90
  254. package/src/components/charts/components/FlowChart/insert.js +0 -40
  255. package/src/components/charts/components/FlowChart/util.js +0 -43
  256. package/src/components/charts/components/FunnelChart/chartToken.js +0 -17
  257. package/src/components/charts/components/FunnelChart/handleLegend.js +0 -44
  258. package/src/components/charts/components/FunnelChart/handleSeries.js +0 -77
  259. package/src/components/charts/components/FunnelChart/index.js +0 -44
  260. package/src/components/charts/components/GanttChart/CoordinateSystem.js +0 -358
  261. package/src/components/charts/components/GanttChart/TimeLine.js +0 -379
  262. package/src/components/charts/components/GanttChart/constant.js +0 -71
  263. package/src/components/charts/components/GanttChart/index.js +0 -51
  264. package/src/components/charts/components/GanttChart/index.less +0 -267
  265. package/src/components/charts/components/GanttChart/util.js +0 -335
  266. package/src/components/charts/components/GaugeChart/BaseOption.js +0 -22
  267. package/src/components/charts/components/GaugeChart/chartToken.js +0 -17
  268. package/src/components/charts/components/GaugeChart/handleOptipn.js +0 -22
  269. package/src/components/charts/components/GaugeChart/handleSeries.js +0 -504
  270. package/src/components/charts/components/GaugeChart/index.js +0 -53
  271. package/src/components/charts/components/GraphChart/index.js +0 -34
  272. package/src/components/charts/components/GraphTreeChart/BaseOption.js +0 -42
  273. package/src/components/charts/components/GraphTreeChart/handleData.js +0 -118
  274. package/src/components/charts/components/GraphTreeChart/handleOption.js +0 -142
  275. package/src/components/charts/components/GraphTreeChart/index.js +0 -65
  276. package/src/components/charts/components/GraphTreeChart/mixTree.js +0 -36
  277. package/src/components/charts/components/GraphTreeChart/utils.js +0 -75
  278. package/src/components/charts/components/HeatMapChart/BaseOption.js +0 -66
  279. package/src/components/charts/components/HeatMapChart/chartToken.js +0 -17
  280. package/src/components/charts/components/HeatMapChart/handleData.js +0 -138
  281. package/src/components/charts/components/HeatMapChart/handleOptipn.js +0 -227
  282. package/src/components/charts/components/HeatMapChart/handleSeries.js +0 -82
  283. package/src/components/charts/components/HeatMapChart/handleVisualMap.js +0 -91
  284. package/src/components/charts/components/HeatMapChart/index.js +0 -70
  285. package/src/components/charts/components/HillChart/baseOption.js +0 -50
  286. package/src/components/charts/components/HillChart/chartToken.js +0 -17
  287. package/src/components/charts/components/HillChart/handleOption.js +0 -193
  288. package/src/components/charts/components/HillChart/handleSeries.js +0 -39
  289. package/src/components/charts/components/HillChart/index.js +0 -96
  290. package/src/components/charts/components/HoneycombChart/NodeManager.js +0 -172
  291. package/src/components/charts/components/HoneycombChart/TipManager.js +0 -75
  292. package/src/components/charts/components/HoneycombChart/index.js +0 -117
  293. package/src/components/charts/components/HoneycombChart/index.less +0 -49
  294. package/src/components/charts/components/JadeJueChart/BaseOption.js +0 -40
  295. package/src/components/charts/components/JadeJueChart/chartToken.js +0 -17
  296. package/src/components/charts/components/JadeJueChart/handleOption.js +0 -262
  297. package/src/components/charts/components/JadeJueChart/handleSeries.js +0 -246
  298. package/src/components/charts/components/JadeJueChart/index.js +0 -71
  299. package/src/components/charts/components/JadeJueChart/labelFormatter.js +0 -131
  300. package/src/components/charts/components/LineChart/AreaChart/bottomArea.js +0 -177
  301. package/src/components/charts/components/LineChart/AreaChart/chartToken.js +0 -17
  302. package/src/components/charts/components/LineChart/AreaChart/index.js +0 -18
  303. package/src/components/charts/components/LineChart/AreaChart/topArea.js +0 -139
  304. package/src/components/charts/components/LineChart/chartToken.js +0 -17
  305. package/src/components/charts/components/LineChart/handleOptipn.js +0 -145
  306. package/src/components/charts/components/LineChart/handlePredict.js +0 -73
  307. package/src/components/charts/components/LineChart/handleSeries.js +0 -266
  308. package/src/components/charts/components/LineChart/handleVisualMap.js +0 -138
  309. package/src/components/charts/components/LineChart/index.js +0 -133
  310. package/src/components/charts/components/LiquidfillChart/chartToken.js +0 -17
  311. package/src/components/charts/components/LiquidfillChart/handleSeries.js +0 -170
  312. package/src/components/charts/components/LiquidfillChart/index.js +0 -43
  313. package/src/components/charts/components/LiquidfillChart/plugSeries.js +0 -78
  314. package/src/components/charts/components/LiquidfillChart/plugShape.js +0 -163
  315. package/src/components/charts/components/LiquidfillChart/plugView.js +0 -537
  316. package/src/components/charts/components/MilestoneChart/Layout.js +0 -183
  317. package/src/components/charts/components/MilestoneChart/Node.js +0 -319
  318. package/src/components/charts/components/MilestoneChart/assets/next.svg +0 -7
  319. package/src/components/charts/components/MilestoneChart/assets/prev.svg +0 -7
  320. package/src/components/charts/components/MilestoneChart/assets/prompt.svg +0 -9
  321. package/src/components/charts/components/MilestoneChart/index.js +0 -108
  322. package/src/components/charts/components/MilestoneChart/index.less +0 -244
  323. package/src/components/charts/components/MilestoneChart/insertDom.js +0 -32
  324. package/src/components/charts/components/MilestoneChart/insertIcon.js +0 -24
  325. package/src/components/charts/components/MilestoneChart/insertSvg.js +0 -109
  326. package/src/components/charts/components/OrganizationChart/NodeManager.js +0 -188
  327. package/src/components/charts/components/OrganizationChart/RotateManager.js +0 -349
  328. package/src/components/charts/components/OrganizationChart/index.js +0 -124
  329. package/src/components/charts/components/OrganizationChart/index.less +0 -112
  330. package/src/components/charts/components/PieChart/chartToken.js +0 -17
  331. package/src/components/charts/components/PieChart/handleLabel.js +0 -94
  332. package/src/components/charts/components/PieChart/handleMulti.js +0 -131
  333. package/src/components/charts/components/PieChart/handleSeries.js +0 -236
  334. package/src/components/charts/components/PieChart/index.js +0 -58
  335. package/src/components/charts/components/PolarBarChart/chartToken.js +0 -17
  336. package/src/components/charts/components/PolarBarChart/handleOption.js +0 -102
  337. package/src/components/charts/components/PolarBarChart/handleSeries.js +0 -127
  338. package/src/components/charts/components/PolarBarChart/index.js +0 -62
  339. package/src/components/charts/components/ProcessChart/BaseOption.js +0 -296
  340. package/src/components/charts/components/ProcessChart/chartToken.js +0 -17
  341. package/src/components/charts/components/ProcessChart/handleData.js +0 -156
  342. package/src/components/charts/components/ProcessChart/handleOption.js +0 -212
  343. package/src/components/charts/components/ProcessChart/handleSeries.js +0 -369
  344. package/src/components/charts/components/ProcessChart/index.js +0 -76
  345. package/src/components/charts/components/RadarChart/BaseOption.js +0 -248
  346. package/src/components/charts/components/RadarChart/GradientRadar/index.js +0 -421
  347. package/src/components/charts/components/RadarChart/chartToken.js +0 -17
  348. package/src/components/charts/components/RadarChart/handleOptipn.js +0 -316
  349. package/src/components/charts/components/RadarChart/handleSeries.js +0 -120
  350. package/src/components/charts/components/RadarChart/index.js +0 -77
  351. package/src/components/charts/components/RegionChart/chartToken.js +0 -17
  352. package/src/components/charts/components/RegionChart/handleOption.js +0 -29
  353. package/src/components/charts/components/RegionChart/index.js +0 -49
  354. package/src/components/charts/components/RiverChart/Belt.js +0 -181
  355. package/src/components/charts/components/RiverChart/Manager.js +0 -173
  356. package/src/components/charts/components/RiverChart/Node.js +0 -425
  357. package/src/components/charts/components/RiverChart/baseOption.js +0 -51
  358. package/src/components/charts/components/RiverChart/index.js +0 -79
  359. package/src/components/charts/components/RiverChart/index.less +0 -42
  360. package/src/components/charts/components/RiverChart/util.js +0 -160
  361. package/src/components/charts/components/SankeyChart/BaseOption.js +0 -74
  362. package/src/components/charts/components/SankeyChart/chartToken.js +0 -17
  363. package/src/components/charts/components/SankeyChart/handleOption.js +0 -258
  364. package/src/components/charts/components/SankeyChart/index.js +0 -111
  365. package/src/components/charts/components/SankeyChart/tooltip.js +0 -53
  366. package/src/components/charts/components/ScatterChart/chartToken.js +0 -17
  367. package/src/components/charts/components/ScatterChart/handleMarkPoint.js +0 -74
  368. package/src/components/charts/components/ScatterChart/handleOptipn.js +0 -66
  369. package/src/components/charts/components/ScatterChart/handleSeries.js +0 -48
  370. package/src/components/charts/components/ScatterChart/index.js +0 -60
  371. package/src/components/charts/components/SnowFlakeChart/BranchManager.js +0 -324
  372. package/src/components/charts/components/SnowFlakeChart/CommonConstant.js +0 -111
  373. package/src/components/charts/components/SnowFlakeChart/LeafManager.js +0 -76
  374. package/src/components/charts/components/SnowFlakeChart/NodeManager.js +0 -240
  375. package/src/components/charts/components/SnowFlakeChart/TagManager.js +0 -80
  376. package/src/components/charts/components/SnowFlakeChart/assets/down.svg +0 -8
  377. package/src/components/charts/components/SnowFlakeChart/assets/errorBg-leaf.png +0 -0
  378. package/src/components/charts/components/SnowFlakeChart/assets/errorBg.png +0 -0
  379. package/src/components/charts/components/SnowFlakeChart/assets/image2L.svg +0 -7
  380. package/src/components/charts/components/SnowFlakeChart/assets/image2R.svg +0 -7
  381. package/src/components/charts/components/SnowFlakeChart/assets/image5L.svg +0 -7
  382. package/src/components/charts/components/SnowFlakeChart/assets/image5R.svg +0 -7
  383. package/src/components/charts/components/SnowFlakeChart/assets/normalBg-leaf.png +0 -0
  384. package/src/components/charts/components/SnowFlakeChart/assets/normalBg.png +0 -0
  385. package/src/components/charts/components/SnowFlakeChart/assets/outerBorder.svg +0 -24
  386. package/src/components/charts/components/SnowFlakeChart/assets/outerBorderOverAll.svg +0 -18
  387. package/src/components/charts/components/SnowFlakeChart/assets/up.svg +0 -8
  388. package/src/components/charts/components/SnowFlakeChart/assets/warningBg-leaf.png +0 -0
  389. package/src/components/charts/components/SnowFlakeChart/assets/warningBg.png +0 -0
  390. package/src/components/charts/components/SnowFlakeChart/assets/wirelessL.svg +0 -7
  391. package/src/components/charts/components/SnowFlakeChart/assets/wirelessR.svg +0 -7
  392. package/src/components/charts/components/SnowFlakeChart/defaultOption.js +0 -285
  393. package/src/components/charts/components/SnowFlakeChart/index.js +0 -408
  394. package/src/components/charts/components/SnowFlakeChart/index.less +0 -503
  395. package/src/components/charts/components/SnowFlakeChart/line/LineArrow.js +0 -62
  396. package/src/components/charts/components/SnowFlakeChart/line/LineDashed.js +0 -29
  397. package/src/components/charts/components/SnowFlakeChart/line/LineDotted.js +0 -29
  398. package/src/components/charts/components/SnowFlakeChart/line/LineStraight.js +0 -28
  399. package/src/components/charts/components/SnowFlakeChart/line/index.js +0 -202
  400. package/src/components/charts/components/SnowFlakeChart/util.js +0 -430
  401. package/src/components/charts/components/SunburstChart/chartToken.js +0 -17
  402. package/src/components/charts/components/SunburstChart/handleSeries.js +0 -48
  403. package/src/components/charts/components/SunburstChart/index.js +0 -41
  404. package/src/components/charts/components/TerraceChart/defaultGradient.js +0 -116
  405. package/src/components/charts/components/TerraceChart/defaultPath.js +0 -30
  406. package/src/components/charts/components/TerraceChart/index.js +0 -276
  407. package/src/components/charts/components/TerraceChart/index.less +0 -171
  408. package/src/components/charts/components/TerraceChart/insert.js +0 -35
  409. package/src/components/charts/components/TerraceChart/loading.js +0 -34
  410. package/src/components/charts/components/TimelineChart/chartToken.js +0 -17
  411. package/src/components/charts/components/TimelineChart/index.js +0 -109
  412. package/src/components/charts/components/TimelineChart/index.less +0 -152
  413. package/src/components/charts/components/TimelineChart/insertDom.js +0 -45
  414. package/src/components/charts/components/TimelineChart/timeline.js +0 -461
  415. package/src/components/charts/components/TreeChart/chartToken.js +0 -17
  416. package/src/components/charts/components/TreeChart/handleOptipn.js +0 -101
  417. package/src/components/charts/components/TreeChart/handleSeries.js +0 -148
  418. package/src/components/charts/components/TreeChart/index.js +0 -50
  419. package/src/components/charts/components/TreeMapChart/handleOptipn.js +0 -57
  420. package/src/components/charts/components/TreeMapChart/handleSeries.js +0 -57
  421. package/src/components/charts/components/TreeMapChart/handleVisualMap.js +0 -31
  422. package/src/components/charts/components/TreeMapChart/index.js +0 -56
  423. package/src/components/charts/components/WaveChart/chartToken.js +0 -17
  424. package/src/components/charts/components/WaveChart/index.js +0 -418
  425. package/src/components/charts/components/WaveChart/index.less +0 -77
  426. package/src/components/charts/components/WaveChart/insert.js +0 -38
  427. package/src/components/charts/components/WaveChart/loading.js +0 -34
  428. package/src/components/charts/components/WordCloudChart/BaseOption.js +0 -19
  429. package/src/components/charts/components/WordCloudChart/chartToken.js +0 -17
  430. package/src/components/charts/components/WordCloudChart/handleOptipn.js +0 -20
  431. package/src/components/charts/components/WordCloudChart/handleSeries.js +0 -106
  432. package/src/components/charts/components/WordCloudChart/index.js +0 -67
  433. package/src/components/charts/core.js +0 -386
  434. package/src/components/charts/feature/adaptive/index.js +0 -46
  435. package/src/components/charts/feature/adaptive/series/AssembleBubbleChart.js +0 -22
  436. package/src/components/charts/feature/adaptive/series/BarChart.js +0 -27
  437. package/src/components/charts/feature/adaptive/series/BoxplotChart.js +0 -26
  438. package/src/components/charts/feature/adaptive/series/BubbleChart.js +0 -26
  439. package/src/components/charts/feature/adaptive/series/BulletChart.js +0 -27
  440. package/src/components/charts/feature/adaptive/series/CircleProcessChart.js +0 -25
  441. package/src/components/charts/feature/adaptive/series/FunnelChart.js +0 -22
  442. package/src/components/charts/feature/adaptive/series/HeatMapChart.js +0 -26
  443. package/src/components/charts/feature/adaptive/series/JadeJueChart.js +0 -24
  444. package/src/components/charts/feature/adaptive/series/LineChart.js +0 -26
  445. package/src/components/charts/feature/adaptive/series/LiquidfillChart.js +0 -26
  446. package/src/components/charts/feature/adaptive/series/PieChart.js +0 -25
  447. package/src/components/charts/feature/adaptive/series/PolarBarChart.js +0 -22
  448. package/src/components/charts/feature/adaptive/series/ScatterChart.js +0 -26
  449. package/src/components/charts/feature/adaptive/series/SunburstChart.js +0 -25
  450. package/src/components/charts/feature/adaptive/utils/axis.js +0 -26
  451. package/src/components/charts/feature/adaptive/utils/label.js +0 -30
  452. package/src/components/charts/feature/adaptive/utils/legend.js +0 -30
  453. package/src/components/charts/feature/adaptive/utils/title.js +0 -30
  454. package/src/components/charts/feature/adaptive/utils/tooltip.js +0 -30
  455. package/src/components/charts/feature/axistip/index.js +0 -116
  456. package/src/components/charts/feature/card/chartToken.js +0 -17
  457. package/src/components/charts/feature/card/index.js +0 -225
  458. package/src/components/charts/feature/card/index.less +0 -166
  459. package/src/components/charts/feature/drag/index.js +0 -353
  460. package/src/components/charts/feature/drag/index.less +0 -53
  461. package/src/components/charts/feature/equalLabel/index.js +0 -63
  462. package/src/components/charts/feature/expandLegend/constants.js +0 -22
  463. package/src/components/charts/feature/expandLegend/index.js +0 -190
  464. package/src/components/charts/feature/expandLegend/index.less +0 -1044
  465. package/src/components/charts/feature/expandLegend/mutiSelect/constants.js +0 -40
  466. package/src/components/charts/feature/expandLegend/mutiSelect/index.js +0 -157
  467. package/src/components/charts/feature/expandLegend/mutiSelect/item.js +0 -133
  468. package/src/components/charts/feature/expandLegend/mutiSelect/position.js +0 -44
  469. package/src/components/charts/feature/expandLegend/mutiSelect/search.js +0 -79
  470. package/src/components/charts/feature/expandLegend/mutiSelectLegend/constants.js +0 -41
  471. package/src/components/charts/feature/expandLegend/mutiSelectLegend/group.js +0 -112
  472. package/src/components/charts/feature/expandLegend/mutiSelectLegend/index.js +0 -97
  473. package/src/components/charts/feature/expandLegend/mutiSelectLegend/item.js +0 -115
  474. package/src/components/charts/feature/expandLegend/mutiSelectLegend/more.js +0 -101
  475. package/src/components/charts/feature/expandLegend/mutiSelectLegend/paging.js +0 -103
  476. package/src/components/charts/feature/expandLegend/mutiSelectLegend/scroll.js +0 -33
  477. package/src/components/charts/feature/expandLegend/mutiSelectList/constants.js +0 -34
  478. package/src/components/charts/feature/expandLegend/mutiSelectList/index.js +0 -181
  479. package/src/components/charts/feature/expandLegend/mutiSelectList/statisticList.js +0 -146
  480. package/src/components/charts/feature/expandLegend/singleSelect/constants.js +0 -40
  481. package/src/components/charts/feature/expandLegend/singleSelect/index.js +0 -170
  482. package/src/components/charts/feature/expandLegend/singleSelect/item.js +0 -74
  483. package/src/components/charts/feature/expandLegend/singleSelect/position.js +0 -34
  484. package/src/components/charts/feature/expandLegend/singleSelect/search.js +0 -76
  485. package/src/components/charts/feature/expandLegend/singleSelectLegend/constants.js +0 -41
  486. package/src/components/charts/feature/expandLegend/singleSelectLegend/group.js +0 -116
  487. package/src/components/charts/feature/expandLegend/singleSelectLegend/index.js +0 -97
  488. package/src/components/charts/feature/expandLegend/singleSelectLegend/item.js +0 -113
  489. package/src/components/charts/feature/expandLegend/singleSelectLegend/more.js +0 -40
  490. package/src/components/charts/feature/expandLegend/singleSelectLegend/scroll.js +0 -33
  491. package/src/components/charts/feature/expandLegend/tips/constants.js +0 -21
  492. package/src/components/charts/feature/expandLegend/tips/index.js +0 -168
  493. package/src/components/charts/feature/fluctuation/index.js +0 -65
  494. package/src/components/charts/feature/linter/dialog/index.js +0 -111
  495. package/src/components/charts/feature/linter/index.js +0 -131
  496. package/src/components/charts/feature/linter/lints/charts/Bar.js +0 -46
  497. package/src/components/charts/feature/linter/lints/charts/Line.js +0 -31
  498. package/src/components/charts/feature/linter/lints/charts/Pie.js +0 -39
  499. package/src/components/charts/feature/linter/lints/charts/Radar.js +0 -38
  500. package/src/components/charts/feature/linter/lints/charts/index.js +0 -37
  501. package/src/components/charts/feature/linter/lints/modules/angleAxis.js +0 -47
  502. package/src/components/charts/feature/linter/lints/modules/color.js +0 -19
  503. package/src/components/charts/feature/linter/lints/modules/dataZoom.js +0 -52
  504. package/src/components/charts/feature/linter/lints/modules/index.js +0 -64
  505. package/src/components/charts/feature/linter/lints/modules/legend.js +0 -64
  506. package/src/components/charts/feature/linter/lints/modules/radar.js +0 -59
  507. package/src/components/charts/feature/linter/lints/modules/radiusAxis.js +0 -49
  508. package/src/components/charts/feature/linter/lints/modules/title.js +0 -44
  509. package/src/components/charts/feature/linter/lints/modules/tooltip.js +0 -29
  510. package/src/components/charts/feature/linter/lints/modules/util.js +0 -97
  511. package/src/components/charts/feature/linter/lints/modules/xAxis.js +0 -52
  512. package/src/components/charts/feature/linter/lints/modules/yAxis.js +0 -52
  513. package/src/components/charts/feature/mediaScreen/index.js +0 -95
  514. package/src/components/charts/feature/mini/miniBarChart.js +0 -58
  515. package/src/components/charts/feature/mini/miniCircleProcessChart.js +0 -32
  516. package/src/components/charts/feature/mini/miniLineChart.js +0 -58
  517. package/src/components/charts/feature/mini/miniProcessChart.js +0 -64
  518. package/src/components/charts/feature/nodeRender/angular-node.js +0 -100
  519. package/src/components/charts/feature/nodeRender/index.js +0 -31
  520. package/src/components/charts/feature/nodeRender/react-node.js +0 -83
  521. package/src/components/charts/feature/nodeRender/vue-node.js +0 -109
  522. package/src/components/charts/feature/performance/lttb.js +0 -85
  523. package/src/components/charts/feature/readScreen/index.js +0 -19
  524. package/src/components/charts/feature/token/color/bpit/dark.js +0 -67
  525. package/src/components/charts/feature/token/color/bpit/index.js +0 -20
  526. package/src/components/charts/feature/token/color/bpit/light.js +0 -66
  527. package/src/components/charts/feature/token/color/cloud/board-dark.js +0 -260
  528. package/src/components/charts/feature/token/color/cloud/board.js +0 -276
  529. package/src/components/charts/feature/token/color/cloud/dark.js +0 -78
  530. package/src/components/charts/feature/token/color/cloud/index.js +0 -20
  531. package/src/components/charts/feature/token/color/cloud/light.js +0 -77
  532. package/src/components/charts/feature/token/color/hdesign/board.js +0 -204
  533. package/src/components/charts/feature/token/color/hdesign/dark.js +0 -78
  534. package/src/components/charts/feature/token/color/hdesign/index.js +0 -20
  535. package/src/components/charts/feature/token/color/hdesign/light.js +0 -79
  536. package/src/components/charts/feature/token/color/ict/board.js +0 -190
  537. package/src/components/charts/feature/token/color/ict/dark.js +0 -61
  538. package/src/components/charts/feature/token/color/ict/index.js +0 -20
  539. package/src/components/charts/feature/token/color/ict/light.js +0 -62
  540. package/src/components/charts/feature/token/color/index.js +0 -29
  541. package/src/components/charts/feature/token/color/util.js +0 -42
  542. package/src/components/charts/feature/token/factory/chartsToken/AreaChart.js +0 -20
  543. package/src/components/charts/feature/token/factory/chartsToken/AssembleBubbleChart.js +0 -26
  544. package/src/components/charts/feature/token/factory/chartsToken/BarChart.js +0 -27
  545. package/src/components/charts/feature/token/factory/chartsToken/BoxplotChart.js +0 -27
  546. package/src/components/charts/feature/token/factory/chartsToken/BubbleChart.js +0 -22
  547. package/src/components/charts/feature/token/factory/chartsToken/BulletChart.js +0 -23
  548. package/src/components/charts/feature/token/factory/chartsToken/CandlestickChart.js +0 -20
  549. package/src/components/charts/feature/token/factory/chartsToken/ChartCard.js +0 -33
  550. package/src/components/charts/feature/token/factory/chartsToken/CircleProcessChart.js +0 -23
  551. package/src/components/charts/feature/token/factory/chartsToken/FunnelChart.js +0 -26
  552. package/src/components/charts/feature/token/factory/chartsToken/GaugeChart.js +0 -27
  553. package/src/components/charts/feature/token/factory/chartsToken/HeatMapChart.js +0 -21
  554. package/src/components/charts/feature/token/factory/chartsToken/HillChart.js +0 -21
  555. package/src/components/charts/feature/token/factory/chartsToken/JadeJueChart.js +0 -28
  556. package/src/components/charts/feature/token/factory/chartsToken/LineChart.js +0 -36
  557. package/src/components/charts/feature/token/factory/chartsToken/LiquidfillChart.js +0 -22
  558. package/src/components/charts/feature/token/factory/chartsToken/PieChart.js +0 -49
  559. package/src/components/charts/feature/token/factory/chartsToken/PolarBarChart.js +0 -22
  560. package/src/components/charts/feature/token/factory/chartsToken/ProcessChart.js +0 -40
  561. package/src/components/charts/feature/token/factory/chartsToken/RadarChart.js +0 -36
  562. package/src/components/charts/feature/token/factory/chartsToken/RegionChart.js +0 -20
  563. package/src/components/charts/feature/token/factory/chartsToken/SankeyChart.js +0 -22
  564. package/src/components/charts/feature/token/factory/chartsToken/ScatterChart.js +0 -21
  565. package/src/components/charts/feature/token/factory/chartsToken/SunburstChart.js +0 -22
  566. package/src/components/charts/feature/token/factory/chartsToken/TimelineChart.js +0 -21
  567. package/src/components/charts/feature/token/factory/chartsToken/TreeChart.js +0 -21
  568. package/src/components/charts/feature/token/factory/chartsToken/WaveChart.js +0 -23
  569. package/src/components/charts/feature/token/factory/chartsToken/WordCloudChart.js +0 -21
  570. package/src/components/charts/feature/token/factory/chartsToken/index.js +0 -79
  571. package/src/components/charts/feature/token/factory/getAliasToken.js +0 -41
  572. package/src/components/charts/feature/token/factory/getExportColors.js +0 -46
  573. package/src/components/charts/feature/token/factory/getGlobalToken.js +0 -25
  574. package/src/components/charts/feature/token/factory/getModelToken.js +0 -389
  575. package/src/components/charts/feature/token/factory/getSceneToken.js +0 -41
  576. package/src/components/charts/feature/token/factory/globalToken/border.js +0 -21
  577. package/src/components/charts/feature/token/factory/globalToken/borderRadius.js +0 -22
  578. package/src/components/charts/feature/token/factory/globalToken/font.js +0 -26
  579. package/src/components/charts/feature/token/factory/globalToken/index.js +0 -28
  580. package/src/components/charts/feature/token/factory/globalToken/lineType.js +0 -19
  581. package/src/components/charts/feature/token/factory/globalToken/size.js +0 -22
  582. package/src/components/charts/feature/token/factory/globalToken/space.js +0 -25
  583. package/src/components/charts/feature/token/factory/index.js +0 -39
  584. package/src/components/charts/feature/token/factory/mergeToken.js +0 -72
  585. package/src/components/charts/feature/token/index.js +0 -176
  586. package/src/components/charts/feature/token/readme.md +0 -11
  587. package/src/components/charts/feature/token/theme/bpit/index.js +0 -19
  588. package/src/components/charts/feature/token/theme/cloud/getAliasToken.js +0 -247
  589. package/src/components/charts/feature/token/theme/cloud/getSceneToken.js +0 -74
  590. package/src/components/charts/feature/token/theme/cloud/index.js +0 -19
  591. package/src/components/charts/feature/token/theme/hdesign/getAliasToken.js +0 -249
  592. package/src/components/charts/feature/token/theme/hdesign/getSceneToken.js +0 -75
  593. package/src/components/charts/feature/token/theme/hdesign/index.js +0 -19
  594. package/src/components/charts/feature/token/theme/ict/getAliasToken.js +0 -249
  595. package/src/components/charts/feature/token/theme/ict/getSceneToken.js +0 -72
  596. package/src/components/charts/feature/token/theme/ict/index.js +0 -19
  597. package/src/components/charts/feature/wcag/index.js +0 -335
  598. package/src/components/charts/feature/xss/index.js +0 -52
  599. package/src/components/charts/framework/charts/CircleArcChart/index.js +0 -142
  600. package/src/components/charts/framework/charts/CircleChart/index.js +0 -140
  601. package/src/components/charts/framework/charts/CustomizeChart/index.js +0 -166
  602. package/src/components/charts/framework/charts/ForceDirectedChart/index.js +0 -141
  603. package/src/components/charts/framework/charts/ForceDirectedChart/initDom.js +0 -20
  604. package/src/components/charts/framework/charts/ForceDirectedChart/libs/Node.js +0 -148
  605. package/src/components/charts/framework/charts/ForceDirectedChart/libs/center.js +0 -71
  606. package/src/components/charts/framework/charts/ForceDirectedChart/libs/collide.js +0 -151
  607. package/src/components/charts/framework/charts/ForceDirectedChart/libs/constant.js +0 -17
  608. package/src/components/charts/framework/charts/ForceDirectedChart/libs/dispatch.js +0 -95
  609. package/src/components/charts/framework/charts/ForceDirectedChart/libs/index.js +0 -19
  610. package/src/components/charts/framework/charts/ForceDirectedChart/libs/jiggle.js +0 -16
  611. package/src/components/charts/framework/charts/ForceDirectedChart/libs/lcg.js +0 -23
  612. package/src/components/charts/framework/charts/ForceDirectedChart/libs/link.js +0 -128
  613. package/src/components/charts/framework/charts/ForceDirectedChart/libs/manyBody.js +0 -127
  614. package/src/components/charts/framework/charts/ForceDirectedChart/libs/quadtree.js +0 -393
  615. package/src/components/charts/framework/charts/ForceDirectedChart/libs/radial.js +0 -68
  616. package/src/components/charts/framework/charts/ForceDirectedChart/libs/simulation.js +0 -171
  617. package/src/components/charts/framework/charts/ForceDirectedChart/libs/timer.js +0 -121
  618. package/src/components/charts/framework/charts/ForceDirectedChart/libs/x.js +0 -52
  619. package/src/components/charts/framework/charts/ForceDirectedChart/libs/y.js +0 -52
  620. package/src/components/charts/framework/charts/GridChart/index.js +0 -174
  621. package/src/components/charts/framework/charts/LinearArcChart/index.js +0 -143
  622. package/src/components/charts/framework/charts/MindmapChart/index.js +0 -166
  623. package/src/components/charts/framework/charts/MindmapChart/index.less +0 -85
  624. package/src/components/charts/framework/core/Base.js +0 -53
  625. package/src/components/charts/framework/core/Relation.js +0 -78
  626. package/src/components/charts/framework/module/animation/Animate.js +0 -434
  627. package/src/components/charts/framework/module/animation/Animation.js +0 -76
  628. package/src/components/charts/framework/module/animation/AnimationGroup.js +0 -137
  629. package/src/components/charts/framework/module/animation/Easing.js +0 -225
  630. package/src/components/charts/framework/module/animation/Interpolation.js +0 -88
  631. package/src/components/charts/framework/module/animation/index.js +0 -20
  632. package/src/components/charts/framework/module/arrow/Manager.js +0 -133
  633. package/src/components/charts/framework/module/arrow/index.js +0 -96
  634. package/src/components/charts/framework/module/canvas/grid.js +0 -288
  635. package/src/components/charts/framework/module/canvas/index.js +0 -434
  636. package/src/components/charts/framework/module/canvas/index.less +0 -102
  637. package/src/components/charts/framework/module/canvas/initDom.js +0 -66
  638. package/src/components/charts/framework/module/canvas/tool.js +0 -62
  639. package/src/components/charts/framework/module/connector/Manager.js +0 -103
  640. package/src/components/charts/framework/module/connector/index.js +0 -99
  641. package/src/components/charts/framework/module/connector/index.less +0 -36
  642. package/src/components/charts/framework/module/connector/type/dot.js +0 -21
  643. package/src/components/charts/framework/module/connector/type/expand.js +0 -211
  644. package/src/components/charts/framework/module/contextmenu/index.js +0 -149
  645. package/src/components/charts/framework/module/contextmenu/index.less +0 -40
  646. package/src/components/charts/framework/module/data/Manager.js +0 -56
  647. package/src/components/charts/framework/module/data/index.js +0 -0
  648. package/src/components/charts/framework/module/legend/Item.js +0 -218
  649. package/src/components/charts/framework/module/legend/constants.js +0 -14
  650. package/src/components/charts/framework/module/legend/getSymbol.js +0 -86
  651. package/src/components/charts/framework/module/legend/index.js +0 -119
  652. package/src/components/charts/framework/module/legend/util.js +0 -81
  653. package/src/components/charts/framework/module/line/Animation.js +0 -125
  654. package/src/components/charts/framework/module/line/Manager.js +0 -299
  655. package/src/components/charts/framework/module/line/Tag.js +0 -61
  656. package/src/components/charts/framework/module/line/bufferRender.js +0 -74
  657. package/src/components/charts/framework/module/line/cross/pathPoints.js +0 -233
  658. package/src/components/charts/framework/module/line/cross/vectorUtil.js +0 -67
  659. package/src/components/charts/framework/module/line/customize.js +0 -29
  660. package/src/components/charts/framework/module/line/index.js +0 -260
  661. package/src/components/charts/framework/module/line/index.less +0 -24
  662. package/src/components/charts/framework/module/line/type/Bezier.js +0 -90
  663. package/src/components/charts/framework/module/line/type/Circle.js +0 -38
  664. package/src/components/charts/framework/module/line/type/Direct.js +0 -23
  665. package/src/components/charts/framework/module/line/type/Ellipse.js +0 -88
  666. package/src/components/charts/framework/module/line/type/Round.js +0 -245
  667. package/src/components/charts/framework/module/lineLayout/CircleShape/calculate.js +0 -71
  668. package/src/components/charts/framework/module/lineLayout/CircleShape/index.js +0 -32
  669. package/src/components/charts/framework/module/lineLayout/CircleShape/init.js +0 -34
  670. package/src/components/charts/framework/module/lineLayout/RectShape/calculate.js +0 -174
  671. package/src/components/charts/framework/module/lineLayout/RectShape/index.js +0 -43
  672. package/src/components/charts/framework/module/lineLayout/RectShape/init.js +0 -79
  673. package/src/components/charts/framework/module/lineLayout/RectShape/sharing.js +0 -57
  674. package/src/components/charts/framework/module/lineLayout/index.js +0 -30
  675. package/src/components/charts/framework/module/node/Manager.js +0 -190
  676. package/src/components/charts/framework/module/node/bufferRender.js +0 -73
  677. package/src/components/charts/framework/module/node/convertData/index.js +0 -24
  678. package/src/components/charts/framework/module/node/convertData/returnSelf.js +0 -16
  679. package/src/components/charts/framework/module/node/convertData/transform.js +0 -24
  680. package/src/components/charts/framework/module/node/convertData/treeToLink.js +0 -36
  681. package/src/components/charts/framework/module/node/index.js +0 -187
  682. package/src/components/charts/framework/module/nodeLayout/circle/excute.js +0 -270
  683. package/src/components/charts/framework/module/nodeLayout/circle/index.js +0 -24
  684. package/src/components/charts/framework/module/nodeLayout/customize/index.js +0 -16
  685. package/src/components/charts/framework/module/nodeLayout/defaults/excute.js +0 -27
  686. package/src/components/charts/framework/module/nodeLayout/defaults/index.js +0 -20
  687. package/src/components/charts/framework/module/nodeLayout/grid/excute.js +0 -392
  688. package/src/components/charts/framework/module/nodeLayout/grid/index.js +0 -20
  689. package/src/components/charts/framework/module/nodeLayout/index.js +0 -27
  690. package/src/components/charts/framework/module/nodeLayout/linearArc/index.js +0 -34
  691. package/src/components/charts/framework/module/nodeLayout/nonLayeredTidyTree/NodeBox.js +0 -165
  692. package/src/components/charts/framework/module/nodeLayout/nonLayeredTidyTree/algorithm.js +0 -261
  693. package/src/components/charts/framework/module/nodeLayout/nonLayeredTidyTree/index.js +0 -278
  694. package/src/components/charts/framework/module/readme.js +0 -127
  695. package/src/components/charts/index.js +0 -65
  696. package/src/components/charts/index.less +0 -29
  697. package/src/components/charts/option/PolarSys/index.js +0 -43
  698. package/src/components/charts/option/RectSys/index.js +0 -58
  699. package/src/components/charts/option/base/index.js +0 -25
  700. package/src/components/charts/option/config/angleAxis/base.js +0 -56
  701. package/src/components/charts/option/config/angleAxis/index.js +0 -43
  702. package/src/components/charts/option/config/animation/index.js +0 -64
  703. package/src/components/charts/option/config/datazoom/base.js +0 -123
  704. package/src/components/charts/option/config/datazoom/index.js +0 -61
  705. package/src/components/charts/option/config/grid/base.js +0 -22
  706. package/src/components/charts/option/config/grid/index.js +0 -32
  707. package/src/components/charts/option/config/legend/base.js +0 -80
  708. package/src/components/charts/option/config/legend/icon.js +0 -21
  709. package/src/components/charts/option/config/legend/index.js +0 -63
  710. package/src/components/charts/option/config/legend/itemStyle.js +0 -17
  711. package/src/components/charts/option/config/legend/ldata.js +0 -29
  712. package/src/components/charts/option/config/legend/pageIcon.js +0 -54
  713. package/src/components/charts/option/config/legend/position.js +0 -19
  714. package/src/components/charts/option/config/legend/size.js +0 -17
  715. package/src/components/charts/option/config/legend/textStyle.js +0 -16
  716. package/src/components/charts/option/config/mark/index.js +0 -74
  717. package/src/components/charts/option/config/polar/base.js +0 -30
  718. package/src/components/charts/option/config/polar/index.js +0 -36
  719. package/src/components/charts/option/config/polarTitle/base.js +0 -40
  720. package/src/components/charts/option/config/polarTitle/index.js +0 -52
  721. package/src/components/charts/option/config/polarTitle/subtextStyle.js +0 -21
  722. package/src/components/charts/option/config/polarTitle/textStyle.js +0 -22
  723. package/src/components/charts/option/config/radiusAxis/base.js +0 -55
  724. package/src/components/charts/option/config/radiusAxis/index.js +0 -41
  725. package/src/components/charts/option/config/rectTitle/base.js +0 -31
  726. package/src/components/charts/option/config/rectTitle/index.js +0 -53
  727. package/src/components/charts/option/config/toolbox/base.js +0 -42
  728. package/src/components/charts/option/config/toolbox/index.js +0 -12
  729. package/src/components/charts/option/config/tooltip/axisPointer.js +0 -31
  730. package/src/components/charts/option/config/tooltip/base.js +0 -62
  731. package/src/components/charts/option/config/tooltip/formatter.js +0 -64
  732. package/src/components/charts/option/config/tooltip/index.js +0 -41
  733. package/src/components/charts/option/config/visualMap/index.js +0 -91
  734. package/src/components/charts/option/config/xAxis/axisLabel.js +0 -35
  735. package/src/components/charts/option/config/xAxis/axisLine.js +0 -29
  736. package/src/components/charts/option/config/xAxis/axisMargin.js +0 -31
  737. package/src/components/charts/option/config/xAxis/base.js +0 -66
  738. package/src/components/charts/option/config/xAxis/boundaryGap.js +0 -17
  739. package/src/components/charts/option/config/xAxis/index.js +0 -52
  740. package/src/components/charts/option/config/xAxis/name.js +0 -18
  741. package/src/components/charts/option/config/xAxis/xdata.js +0 -23
  742. package/src/components/charts/option/config/xAxis/xkey.js +0 -21
  743. package/src/components/charts/option/config/yAxis/axisOptimization.js +0 -32
  744. package/src/components/charts/option/config/yAxis/base.js +0 -59
  745. package/src/components/charts/option/config/yAxis/index.js +0 -68
  746. package/src/components/charts/option/config/yAxis/ydata.js +0 -28
  747. package/src/components/charts/option/init/index.js +0 -204
  748. package/src/components/charts/register.js +0 -178
  749. package/src/components/charts/theme.js +0 -62
  750. package/src/components/charts/util/Sequence.js +0 -21
  751. package/src/components/charts/util/centerDom.js +0 -92
  752. package/src/components/charts/util/cloneDeep.js +0 -29
  753. package/src/components/charts/util/color.js +0 -193
  754. package/src/components/charts/util/constants.js +0 -125
  755. package/src/components/charts/util/convert.js +0 -49
  756. package/src/components/charts/util/debounce.js +0 -24
  757. package/src/components/charts/util/defendXSS.js +0 -81
  758. package/src/components/charts/util/dom.js +0 -90
  759. package/src/components/charts/util/equal.js +0 -62
  760. package/src/components/charts/util/event.js +0 -25
  761. package/src/components/charts/util/hashMap.js +0 -111
  762. package/src/components/charts/util/init/insert.js +0 -165
  763. package/src/components/charts/util/math.js +0 -183
  764. package/src/components/charts/util/merge.js +0 -78
  765. package/src/components/charts/util/paint.js +0 -98
  766. package/src/components/charts/util/sort/max.js +0 -64
  767. package/src/components/charts/util/sort/min.js +0 -64
  768. package/src/components/charts/util/throttle.js +0 -34
  769. package/src/components/charts/util/tips.js +0 -25
  770. package/src/components/charts/util/type.js +0 -46
@@ -1,1045 +1,1081 @@
1
- <template>
2
- <div class="ebiz-employee-selector">
3
- <!-- 选择框展示区 -->
4
- <div style="display: flex; flex-direction: column; align-items: flex-start; gap: 10px;">
5
- <div class="selected-items" v-if="selectedItems && selectedItems.length">
6
- <div v-for="(item, index) in selectedItems" :key="index" class="selected-item">
7
- <t-avatar v-if="item.avatar" :image="item.avatar" size="small" />
8
- <t-avatar v-else size="small">{{ getAvatarText(item.name) }}</t-avatar>
9
- <span class="item-info">
10
- <span class="item-code">{{ item.no }} - </span>
11
- <span class="item-name">{{ item.name }}</span>
12
- </span>
13
- <t-icon name="close" class="item-remove" @click="removeItem(index, item.id)"></t-icon>
14
- </div>
15
- </div>
16
- <t-button @click="showDialog" variant="text" theme="primary">选择人员</t-button>
17
- </div>
18
-
19
- <!-- 选择弹窗 -->
20
- <t-dialog v-model:visible="dialogVisible" header="选择人员" :width="800" footer :close-btn="true"
21
- :close-on-esc-keydown="true" :close-on-overlay-click="true">
22
-
23
- <!-- 选项卡 -->
24
- <t-tabs v-model="activeTab" class="selector-tabs">
25
- <t-tab-panel value="organization" label="组织架构" :destroyOnHide="false"></t-tab-panel>
26
- <t-tab-panel value="role" label="角色" :destroyOnHide="false"></t-tab-panel>
27
- <!-- <t-tab-panel value="position" label="岗位" :destroyOnHide="false"></t-tab-panel> -->
28
- <!-- <t-tab-panel value="department" label="同部门" :destroyOnHide="false"></t-tab-panel> -->
29
- <!-- <t-tab-panel value="subordinate" label="我的下属" :destroyOnHide="false"></t-tab-panel> -->
30
- </t-tabs>
31
-
32
-
33
- <div>
34
-
35
- <div class="selector-dialog-content">
36
- <!-- 左侧选择区域 -->
37
- <div class="left-panel">
38
- <!-- 内容区域 -->
39
- <div class="content-area">
40
- <div v-if="loading" class="loading-container">
41
- <t-loading />
42
- </div>
43
-
44
- <!-- 组织架构 -->
45
- <div v-show="activeTab === 'organization'" class="tab-content">
46
- <t-tree ref="organizationTree" :data="organizationData"
47
- :keys="{ label: 'name', value: 'id', children: 'children' }" hover activable :active="currentActive"
48
- @active="handleActive" />
49
- </div>
50
-
51
- <!-- 角色 -->
52
- <div v-show="activeTab === 'role'" class="tab-content">
53
- <t-tree ref="roleTree" :data="roleData" :keys="{ label: 'name', value: 'code' }" hover activable
54
- :active="currentActive" @active="handleActive" />
55
- </div>
56
-
57
- <!-- 岗位 -->
58
- <div v-show="activeTab === 'position'" class="tab-content">
59
- <t-tree ref="positionTree" :data="positionData" :keys="{ label: 'name', value: 'id' }" hover activable
60
- :active="currentActive" @active="handleActive" />
61
- </div>
62
-
63
- <!-- 同部门 -->
64
- <div v-show="activeTab === 'department'" class="tab-content">
65
- <t-list :split="true" size="small">
66
- <t-list-item v-for="(item, index) in departmentData" :key="index">
67
- <div class="department-item" @click="selectDepartment(item)">
68
- {{ item.name }}
69
- </div>
70
- </t-list-item>
71
- </t-list>
72
- </div>
73
-
74
- <!-- 我的下属 -->
75
- <div v-show="activeTab === 'subordinate'" class="tab-content">
76
- <t-list :split="true" size="small">
77
- <t-list-item v-for="(item, index) in subordinateData" :key="index">
78
- <div class="department-item" @click="selectDepartment(item)">
79
- {{ item.name }}
80
- </div>
81
- </t-list-item>
82
- </t-list>
83
- </div>
84
- </div>
85
- </div>
86
-
87
- <!-- 右侧人员列表区域 -->
88
- <div class="right-panel">
89
- <div class="employee-header">
90
- <div class="employee-title">
91
- {{ currentNodeName || '人员列表' }}
92
- <div v-if="activeTab === 'organization'" class="sub-dept-option">
93
- <t-checkbox v-model="childDeptEnable">包含子部门</t-checkbox>
94
- </div>
95
- </div>
96
- <div class="employee-count">
97
- <t-checkbox v-model="selectAll" @change="handleSelectAll">全选</t-checkbox>
98
- <span class="count-info">共 {{ employeeList.length }} 人</span>
99
- </div>
100
- </div>
101
-
102
- <!-- 搜索框 -->
103
- <div class="search-box">
104
- <t-input v-model="searchText" placeholder="请输入姓名/拼音/工号搜索" clearable
105
- @keyup.enter="handleSearchEnter">
106
- <template #suffix-icon>
107
- <t-icon name="search" @click="handleSearchClick"></t-icon>
108
- </template>
109
- </t-input>
110
- <t-button v-if="searchText" size="small" theme="default" class="clear-search-btn" @click="clearSearch">清除搜索</t-button>
111
- </div>
112
-
113
- <div class="employee-list">
114
- <div v-for="(item, index) in filteredEmployeeList" :key="index" class="employee-item">
115
- <t-checkbox v-model="item.checked" @change="handleCheckChange(item)"></t-checkbox>
116
- <div class="employee-avatar">
117
- <t-avatar v-if="item.avatar" :image="item.avatar" size="small" />
118
- <t-avatar v-else size="small">{{ getAvatarText(item.name) }}</t-avatar>
119
- </div>
120
- <div class="employee-info">
121
- <div class="employee-code">{{ item.no }} - </div>
122
- <div class="employee-name">{{ item.name }}</div>
123
- </div>
124
- </div>
125
- <div v-if="filteredEmployeeList.length === 0" class="empty-data">
126
- <t-empty />
127
- </div>
128
- </div>
129
- </div>
130
- </div>
131
- </div>
132
-
133
-
134
- <!-- 底部按钮区域 -->
135
- <template #footer>
136
- <div class="dialog-footer">
137
- <div class="selected-preview">
138
- 已选: {{ tempSelectedEmployees.length }}
139
- <div class="selected-people-list" v-if="tempSelectedEmployees.length > 0">
140
- <div v-for="(item, index) in tempSelectedEmployees" :key="index" class="selected-people-item">
141
- <t-avatar v-if="item.avatar" :image="item.avatar" size="small" />
142
- <t-avatar v-else size="small">{{ getAvatarText(item.name) }}</t-avatar>
143
- <span class="item-info">
144
- <span class="item-code">{{ item.no }}</span>
145
- <span class="item-name">{{ item.name }}</span>
146
- </span>
147
- <t-icon name="close" class="item-remove" @click="removeSelectedEmployee(item)"></t-icon>
148
- </div>
149
- </div>
150
- </div>
151
- <div class="dialog-actions">
152
- <t-button theme="default" @click="handleCancel">取消</t-button>
153
- <t-button theme="primary" @click="handleConfirm">确定</t-button>
154
- </div>
155
- </div>
156
- </template>
157
- </t-dialog>
158
- </div>
159
- </template>
160
-
161
- <script setup>
162
- import { ref, computed, watch, onMounted } from 'vue';
163
- import {
164
- Dialog as TDialog,
165
- Button as TButton,
166
- Icon as TIcon,
167
- Input as TInput,
168
- Tabs as TTabs,
169
- TabPanel as TTabPanel,
170
- Loading as TLoading,
171
- Tree as TTree,
172
- Avatar as TAvatar,
173
- Checkbox as TCheckbox,
174
- Empty as TEmpty,
175
- List as TList,
176
- ListItem as TListItem,
177
- MessagePlugin
178
- } from 'tdesign-vue-next';
179
- import dataService from '../apiService/simpleDataService';
180
-
181
- // 定义组件属性
182
- const props = defineProps({
183
- // 选中的数据,支持v-model,只存储ID列表
184
- modelValue: {
185
- type: Array,
186
- default: () => []
187
- },
188
- // 单选模式
189
- single: {
190
- type: Boolean,
191
- default: false
192
- },
193
- // 是否包含部门
194
- includeDepartment: {
195
- type: Boolean,
196
- default: false
197
- },
198
- // 默认标签页
199
- defaultTab: {
200
- type: String,
201
- default: 'organization'
202
- },
203
- // 是否展示顶层组织
204
- showRootOrg: {
205
- type: Boolean,
206
- default: true
207
- },
208
- // 最大选择数量,0表示不限制
209
- maxCount: {
210
- type: Number,
211
- default: 0
212
- }
213
- });
214
-
215
- // 定义组件事件
216
- const emit = defineEmits(['update:modelValue', 'change']);
217
-
218
- // 内部状态变量
219
- const dialogVisible = ref(false);
220
- const searchText = ref('');
221
- const activeTab = ref(props.defaultTab);
222
- const loading = ref(false);
223
- const selectedItems = ref([]);
224
- // 对话框中临时保存的选中员工列表
225
- const tempSelectedEmployees = ref([]);
226
- // 是否查询子部门
227
- const childDeptEnable = ref(false);
228
-
229
- // 数据源
230
- const organizationData = ref([]);
231
- const roleData = ref([]);
232
- const positionData = ref([]);
233
- const departmentData = ref([]);
234
- const subordinateData = ref([]);
235
- const employeeList = ref([]);
236
- const currentActive = ref([]);
237
- const currentNodeName = ref('');
238
- const selectAll = ref(false);
239
-
240
- // 从名称中获取头像显示文本
241
- const getAvatarText = (name) => {
242
- return name ? name.substring(0, 1) : '';
243
- };
244
-
245
- // 处理组织数据,转换为树形结构
246
- const _processOrgData = (data) => {
247
- // 转换数据结构为树形结构
248
- const map = {};
249
- const result = [];
250
-
251
- data.forEach(item => {
252
- map[item.id] = {
253
- ...item,
254
- name: item.name,
255
- id: item.id,
256
- children: []
257
- };
258
- });
259
-
260
- data.forEach(item => {
261
- const node = map[item.id];
262
-
263
- if (item.manager_dept && map[item.manager_dept]) {
264
- map[item.manager_dept].children.push(node);
265
- } else {
266
- // 只有在显示根组织或不存在父节点时才添加到结果中
267
- if (props.showRootOrg || !item.manager_dept) {
268
- result.push(node);
269
- }
270
- }
271
- });
272
-
273
- return result;
274
- };
275
-
276
- // 更新全选状态
277
- const updateSelectAllStatus = () => {
278
- selectAll.value = employeeList.value.length > 0 && employeeList.value.every(item => item.checked);
279
- };
280
-
281
- // 选中的员工列表
282
- const selectedEmployees = computed(() => {
283
- return employeeList.value.filter((item) => item.checked);
284
- });
285
-
286
- // 根据搜索文本过滤的员工列表
287
- const filteredEmployeeList = computed(() => {
288
- if (!searchText.value) {
289
- return employeeList.value;
290
- }
291
-
292
- const keyword = searchText.value.toLowerCase();
293
- return employeeList.value.filter((item) => {
294
- return (
295
- item.name.toLowerCase().includes(keyword) ||
296
- (item.pinyin && item.pinyin.toLowerCase().includes(keyword)) ||
297
- (item.code && item.code.toLowerCase().includes(keyword))
298
- );
299
- });
300
- });
301
-
302
- // 获取组织架构数据
303
- const fetchOrganizationData = async () => {
304
- loading.value = true;
305
- try {
306
- const response = await dataService.fetch(
307
- {},
308
- {
309
- apiId: 1933,
310
- key: 'organizationalStructure'
311
- },"/process/deptList"
312
- );
313
- organizationData.value = response
314
- // organizationData.value = processOrgData(response.data || []);
315
- } catch (error) {
316
- MessagePlugin.error({
317
- content: '获取组织架构数据失败',
318
- duration: 3000
319
- });
320
- } finally {
321
- loading.value = false;
322
- }
323
- };
324
-
325
- // 获取角色数据
326
- const fetchRoleData = async () => {
327
- loading.value = true;
328
- try {
329
- const response = await dataService.fetch(
330
- {},
331
- {},
332
- '/process/roleList'
333
- );
334
- roleData.value = response || [];
335
- } catch (error) {
336
- MessagePlugin.error({
337
- content: '获取角色数据失败',
338
- duration: 3000
339
- });
340
- } finally {
341
- loading.value = false;
342
- }
343
- };
344
-
345
- // 获取岗位数据
346
- const fetchPositionData = async () => {
347
- loading.value = true;
348
- try {
349
- const response = await dataService.fetch(
350
- {},
351
- {
352
- },
353
- '/process/roleList'
354
- );
355
- positionData.value = response?.data || [];
356
- } catch (error) {
357
- MessagePlugin.error({
358
- content: '获取岗位数据失败',
359
- duration: 3000
360
- });
361
- } finally {
362
- loading.value = false;
363
- }
364
- };
365
-
366
- // 获取部门数据
367
- const fetchDepartmentData = async () => {
368
- loading.value = true;
369
- try {
370
- const response = await dataService.fetch(
371
- {},
372
- {
373
- apiId: 1933,
374
- key: 'departmentList',
375
- apiType: 'MULTIPLE_DATA_SEARCH'
376
- }
377
- );
378
- departmentData.value = response?.data || [];
379
- } catch (error) {
380
- MessagePlugin.error({
381
- content: '获取部门数据失败',
382
- duration: 3000
383
- });
384
- } finally {
385
- loading.value = false;
386
- }
387
- };
388
-
389
- // 获取下属数据
390
- const fetchSubordinateData = async () => {
391
- loading.value = true;
392
- try {
393
- const response = await dataService.fetch(
394
- {},
395
- {
396
- apiKey: 'subordinateList',
397
- apiType: 'MULTIPLE_DATA_SEARCH'
398
- }
399
- );
400
- subordinateData.value = response?.data || [];
401
- } catch (error) {
402
- MessagePlugin.error({
403
- content: '获取下属数据失败',
404
- duration: 3000
405
- });
406
- } finally {
407
- loading.value = false;
408
- }
409
- };
410
-
411
- // 根据节点ID获取员工列表
412
- const fetchEmployeesByNode = async (nodeId, type, keyword = searchText.value) => {
413
- loading.value = true;
414
- try {
415
- const params = {};
416
-
417
- // 只有当nodeId不为空且type有效时,添加对应参数
418
- if (nodeId && type) {
419
- // 根据不同类型设置不同的查询参数
420
- switch (type) {
421
- case 'organization':
422
- params.deptId = Array.isArray(nodeId) ? nodeId[0] : nodeId;
423
- // 添加子部门查询参数
424
- params.childDeptEnable = childDeptEnable.value;
425
- break;
426
- case 'role':
427
- params.roleKeyWork = nodeId[0];
428
- break;
429
- case 'position':
430
- params.positionId = nodeId;
431
- break;
432
- case 'department':
433
- params.departmentId = nodeId;
434
- break;
435
- case 'subordinate':
436
- params.managerId = nodeId;
437
- break;
438
- }
439
- }
440
-
441
- // 如果有搜索关键词,添加到查询参数中
442
- if (keyword) {
443
- params.keyWord = keyword;
444
- }
445
-
446
- const response = await dataService.fetch(
447
- params,
448
- {},
449
- '/process/userList'
450
- );
451
-
452
- // 获取当前已选择的员工ID列表
453
- const selectedIds = new Set(tempSelectedEmployees.value.map(emp => emp.id));
454
-
455
- // 处理返回数据,添加checked属性,保留已选状态
456
- const employees = (response || []).map(emp => ({
457
- ...emp,
458
- checked: selectedIds.has(emp.id)
459
- }));
460
-
461
- employeeList.value = employees;
462
- updateSelectAllStatus();
463
- } catch (error) {
464
- MessagePlugin.error({
465
- content: '获取员工列表失败',
466
- duration: 3000
467
- });
468
- } finally {
469
- loading.value = false;
470
- }
471
- };
472
-
473
- // 根据ID列表批量获取员工信息
474
- const fetchEmployeesByIds = async (ids) => {
475
- if (!ids || ids.length === 0) {
476
- selectedItems.value = [];
477
- return;
478
- }
479
-
480
- loading.value = true;
481
- try {
482
- const response = await dataService.fetch(
483
- {
484
- userIds: ids // 使用新的接口参数格式
485
- },
486
- {},
487
- '/process/userList' // 直接使用新的API路径
488
- );
489
-
490
- if (response && Array.isArray(response)) {
491
- selectedItems.value = response;
492
- } else {
493
- selectedItems.value = [];
494
- MessagePlugin.warning({
495
- content: '获取员工详情返回的数据格式不正确',
496
- duration: 3000
497
- });
498
- }
499
- } catch (error) {
500
- selectedItems.value = [];
501
- MessagePlugin.error({
502
- content: '获取员工详情失败: ' + (error.message || '未知错误'),
503
- duration: 3000
504
- });
505
- } finally {
506
- loading.value = false;
507
- }
508
- };
509
-
510
- // 处理节点激活
511
- const handleActive = (value, context) => {
512
- currentActive.value = [value];
513
- currentNodeName.value = context.node?.label || '';
514
-
515
- // 获取该节点下的员工
516
- fetchEmployeesByNode(value, activeTab.value);
517
- };
518
-
519
- // 选择部门
520
- const selectDepartment = (department) => {
521
- currentNodeName.value = department.name;
522
- fetchEmployeesByNode(department.id, activeTab.value);
523
- };
524
-
525
- // 处理全选
526
- const handleSelectAll = (checked) => {
527
- employeeList.value.forEach(item => {
528
- item.checked = checked;
529
-
530
- // 如果选中,确保添加到临时选中列表
531
- if (checked && !tempSelectedEmployees.value.some(emp => emp.id === item.id)) {
532
- tempSelectedEmployees.value.push(item);
533
- }
534
- });
535
- };
536
-
537
- // 处理选中状态变更
538
- const handleCheckChange = (item) => {
539
- // 单选模式下,取消其他选中
540
- if (props.single && item.checked) {
541
- employeeList.value.forEach(emp => {
542
- if (emp.id !== item.id) {
543
- emp.checked = false;
544
- }
545
- });
546
-
547
- // 单选模式下,直接替换tempSelectedEmployees
548
- tempSelectedEmployees.value = item.checked ? [item] : [];
549
- } else {
550
- // 多选模式
551
- // 如果选中,添加到临时选中列表
552
- if (item.checked && !tempSelectedEmployees.value.some(emp => emp.id === item.id)) {
553
- tempSelectedEmployees.value.push(item);
554
- } else if (!item.checked) {
555
- // 如果取消选中,从临时选中列表中移除
556
- const index = tempSelectedEmployees.value.findIndex(emp => emp.id === item.id);
557
- if (index !== -1) {
558
- tempSelectedEmployees.value.splice(index, 1);
559
- }
560
- }
561
- }
562
-
563
- // 检查最大选择数量限制
564
- if (props.maxCount > 0) {
565
- const checkedCount = tempSelectedEmployees.value.length;
566
- if (checkedCount > props.maxCount) {
567
- item.checked = false;
568
- const index = tempSelectedEmployees.value.findIndex(emp => emp.id === item.id);
569
- if (index !== -1) {
570
- tempSelectedEmployees.value.splice(index, 1);
571
- }
572
- MessagePlugin.warning({
573
- content: `最多只能选择${props.maxCount}个人员`,
574
- duration: 3000
575
- });
576
- }
577
- }
578
-
579
- updateSelectAllStatus();
580
- };
581
-
582
- // 移除已选择的项目
583
- const removeItem = (index, id) => {
584
- // 移除ID
585
- const newIds = [...props.modelValue];
586
- const idIndex = newIds.indexOf(id);
587
- if (idIndex !== -1) {
588
- newIds.splice(idIndex, 1);
589
- emit('update:modelValue', newIds);
590
- emit('change', newIds);
591
- }
592
-
593
- // 移除展示项
594
- selectedItems.value.splice(index, 1);
595
- };
596
-
597
- // 从已选列表中移除员工
598
- const removeSelectedEmployee = (employee) => {
599
- // 将员工的checked状态设为false
600
- const foundEmployee = employeeList.value.find(item => item.id === employee.id);
601
- if (foundEmployee) {
602
- foundEmployee.checked = false;
603
- }
604
-
605
- // 从临时选中列表中移除
606
- const index = tempSelectedEmployees.value.findIndex(emp => emp.id === employee.id);
607
- if (index !== -1) {
608
- tempSelectedEmployees.value.splice(index, 1);
609
- }
610
-
611
- // 更新全选状态
612
- updateSelectAllStatus();
613
- };
614
-
615
- // 初始化选择器
616
- const initSelector = async () => {
617
- // 获取数据
618
- if (activeTab.value === 'organization' && organizationData.value.length === 0) {
619
- await fetchOrganizationData();
620
- } else if (activeTab.value === 'role' && roleData.value.length === 0) {
621
- await fetchRoleData();
622
- } else if (activeTab.value === 'position' && positionData.value.length === 0) {
623
- await fetchPositionData();
624
- } else if (activeTab.value === 'department' && departmentData.value.length === 0) {
625
- await fetchDepartmentData();
626
- } else if (activeTab.value === 'subordinate' && subordinateData.value.length === 0) {
627
- await fetchSubordinateData();
628
- }
629
- };
630
-
631
- // 显示对话框
632
- const showDialog = () => {
633
- // 初始化临时选中列表
634
- if (selectedItems.value.length > 0) {
635
- tempSelectedEmployees.value = [...selectedItems.value];
636
- } else {
637
- tempSelectedEmployees.value = [];
638
- }
639
-
640
- // 初始化数据
641
- initSelector();
642
- dialogVisible.value = true;
643
- };
644
-
645
- // 确认选择
646
- const handleConfirm = () => {
647
- const selectedEmployeeIds = tempSelectedEmployees.value.map(item => item.id);
648
-
649
- emit('update:modelValue', selectedEmployeeIds);
650
- emit('change', selectedEmployeeIds);
651
- dialogVisible.value = false;
652
- };
653
-
654
- // 取消选择
655
- const handleCancel = () => {
656
- // 放弃临时选择
657
- tempSelectedEmployees.value = [];
658
- dialogVisible.value = false;
659
- };
660
-
661
- // 监听标签页切换
662
- watch(activeTab, () => {
663
- // 切换标签页时重新加载数据
664
- initSelector();
665
- });
666
-
667
- // 监听modelValue变化,更新展示的员工信息
668
- watch(() => props.modelValue, (newIds, oldIds) => {
669
- // 判断值是否真的变化了 (通过比较JSON字符串)
670
- const newIdsStr = JSON.stringify(newIds || []);
671
- const oldIdsStr = JSON.stringify(oldIds || []);
672
-
673
- if (newIdsStr !== oldIdsStr) {
674
- // 获取员工详情数据
675
- fetchEmployeesByIds(newIds);
676
- }
677
- }, { immediate: true, deep: true });
678
-
679
- // 监听选中员工变化,更新临时已选列表
680
- watch(selectedEmployees, (newVal) => {
681
- // 更新临时选中列表,保留之前不在当前列表中的已选员工
682
- const currentIds = new Set(newVal.map(emp => emp.id));
683
-
684
- // 移除tempSelectedEmployees中已经不再选中的员工
685
- tempSelectedEmployees.value = tempSelectedEmployees.value.filter(emp =>
686
- !currentIds.has(emp.id) || newVal.some(item => item.id === emp.id)
687
- );
688
-
689
- // 添加新选中的员工
690
- newVal.forEach(emp => {
691
- if (!tempSelectedEmployees.value.some(item => item.id === emp.id)) {
692
- tempSelectedEmployees.value.push(emp);
693
- }
694
- });
695
- }, { deep: true });
696
-
697
- // 监听子部门查询开关变化
698
- watch(childDeptEnable, () => {
699
- // 如果当前在组织架构页面且有选中节点,重新加载员工列表
700
- if (activeTab.value === 'organization' && currentActive.value && currentActive.value.length > 0) {
701
- fetchEmployeesByNode(currentActive.value[0], activeTab.value);
702
- }
703
- });
704
-
705
- // 防抖函数
706
- const debounce = (fn, delay) => {
707
- let timer = null;
708
- return function(...args) {
709
- if (timer) clearTimeout(timer);
710
- timer = setTimeout(() => {
711
- fn.apply(this, args);
712
- }, delay);
713
- };
714
- };
715
-
716
- // 防抖处理过的搜索函数
717
- const debouncedSearch = debounce((keyword) => {
718
- if (keyword) {
719
- const nodeId = currentActive.value && currentActive.value.length > 0 ? currentActive.value[0] : null;
720
- const type = nodeId ? activeTab.value : null;
721
- fetchEmployeesByNode(nodeId, type, keyword);
722
- } else if (currentActive.value && currentActive.value.length > 0) {
723
- // 如果搜索框清空,恢复显示当前选中节点的员工列表
724
- fetchEmployeesByNode(currentActive.value[0], activeTab.value);
725
- } else {
726
- // 如果没有选中节点,清空员工列表
727
- employeeList.value = [];
728
- }
729
- }, 300); // 300ms防抖
730
-
731
- // 监听搜索文本变化,触发搜索
732
- watch(searchText, (newValue) => {
733
- debouncedSearch(newValue);
734
- }, { immediate: false });
735
-
736
- // 组件挂载时执行
737
- onMounted(() => {
738
- // 获取已选员工详情
739
- fetchEmployeesByIds(props.modelValue);
740
- });
741
-
742
- // 处理搜索图标点击
743
- const handleSearchClick = () => {
744
- if (searchText.value) {
745
- const nodeId = currentActive.value && currentActive.value.length > 0 ? currentActive.value[0] : null;
746
- const type = nodeId ? activeTab.value : null;
747
- fetchEmployeesByNode(nodeId, type, searchText.value);
748
- }
749
- };
750
-
751
- // 处理回车键搜索
752
- const handleSearchEnter = () => {
753
- if (searchText.value) {
754
- const nodeId = currentActive.value && currentActive.value.length > 0 ? currentActive.value[0] : null;
755
- const type = nodeId ? activeTab.value : null;
756
- fetchEmployeesByNode(nodeId, type, searchText.value);
757
- }
758
- };
759
-
760
- // 清除搜索
761
- const clearSearch = () => {
762
- searchText.value = '';
763
- if (currentActive.value && currentActive.value.length > 0) {
764
- fetchEmployeesByNode(currentActive.value[0], activeTab.value);
765
- } else {
766
- // 如果没有选中节点,重置员工列表但保留选中状态
767
- employeeList.value = employeeList.value.map(emp => ({
768
- ...emp,
769
- checked: tempSelectedEmployees.value.some(item => item.id === emp.id)
770
- }));
771
- }
772
- };
773
- </script>
774
-
775
- <style scoped>
776
- .ebiz-employee-selector {
777
- width: 100%;
778
- display: flex;
779
- flex-direction: column;
780
- }
781
-
782
- /* 选择框展示区 */
783
- .employee-selector-container {
784
- min-height: 32px;
785
- width: 100%;
786
- border: 1px solid #dcdcdc;
787
- border-radius: 3px;
788
- padding: 4px 8px;
789
- display: flex;
790
- flex-wrap: wrap;
791
- gap: 8px;
792
- align-items: center;
793
- }
794
-
795
- .selected-items {
796
- display: flex;
797
- flex-wrap: wrap;
798
- gap: 8px;
799
- }
800
-
801
- .selected-item {
802
- display: flex;
803
- align-items: center;
804
- background-color: #f0f0f0;
805
- border-radius: 3px;
806
- padding: 2px 8px 2px 2px;
807
- gap: 8px;
808
- }
809
-
810
- .item-info {
811
- display: flex;
812
- align-items: center;
813
- gap: 4px;
814
- }
815
-
816
- .item-code {
817
- color: #999;
818
- font-size: 12px;
819
- }
820
-
821
- .item-name {
822
- font-size: 14px;
823
- }
824
-
825
- .item-remove {
826
- cursor: pointer;
827
- color: #999;
828
- font-size: 12px;
829
- }
830
-
831
- .item-remove:hover {
832
- color: #E34D59;
833
- }
834
-
835
- /* 选择弹窗 */
836
- .selector-dialog-content {
837
- display: flex;
838
- height: 500px;
839
- }
840
-
841
- .left-panel, .right-panel {
842
- height: 100%;
843
- overflow: hidden;
844
- display: flex;
845
- flex-direction: column;
846
- }
847
-
848
- .left-panel {
849
- width: 40%;
850
- border-right: 1px solid #dcdcdc;
851
- padding-right: 16px;
852
- }
853
-
854
- .right-panel {
855
- width: 60%;
856
- padding-left: 16px;
857
- }
858
-
859
- .search-box {
860
- margin-bottom: 16px;
861
- }
862
-
863
- .right-panel .search-box {
864
- margin-top: 8px;
865
- margin-bottom: 16px;
866
- display: flex;
867
- align-items: center;
868
- gap: 8px;
869
- }
870
-
871
- .right-panel .search-box .t-input {
872
- width: 100%;
873
- border-radius: 4px;
874
- }
875
-
876
- .right-panel .search-box .t-input__suffix-icon {
877
- cursor: pointer;
878
- }
879
-
880
- .right-panel .search-box .t-input__suffix-icon:hover {
881
- color: var(--td-brand-color);
882
- }
883
-
884
- .selector-tabs {
885
- margin-bottom: 16px;
886
- }
887
-
888
- .content-area {
889
- flex: 1;
890
- overflow: auto;
891
- position: relative;
892
- }
893
-
894
- .loading-container {
895
- position: absolute;
896
- top: 0;
897
- left: 0;
898
- right: 0;
899
- bottom: 0;
900
- display: flex;
901
- justify-content: center;
902
- align-items: center;
903
- background-color: rgba(255, 255, 255, 0.6);
904
- z-index: 1;
905
- }
906
-
907
- .tab-content {
908
- height: 100%;
909
- overflow: auto;
910
- }
911
-
912
- .department-item {
913
- cursor: pointer;
914
- padding: 8px;
915
- }
916
-
917
- .department-item:hover {
918
- background-color: #f5f5f5;
919
- }
920
-
921
- .employee-header {
922
- display: flex;
923
- justify-content: space-between;
924
- align-items: center;
925
- margin-bottom: 16px;
926
- }
927
-
928
- .employee-title {
929
- font-weight: bold;
930
- font-size: 16px;
931
- display: flex;
932
- align-items: center;
933
- gap: 10px;
934
- }
935
-
936
- .sub-dept-option {
937
- margin-left: 10px;
938
- font-weight: normal;
939
- font-size: 14px;
940
- }
941
-
942
- .employee-count {
943
- display: flex;
944
- align-items: center;
945
- gap: 8px;
946
- }
947
-
948
- .count-info {
949
- color: #999;
950
- font-size: 14px;
951
- }
952
-
953
- .employee-list {
954
- flex: 1;
955
- overflow: auto;
956
- display: flex;
957
- flex-direction: column;
958
- gap: 8px;
959
- }
960
-
961
- .employee-item {
962
- display: flex;
963
- align-items: center;
964
- gap: 12px;
965
- padding: 8px;
966
- border-radius: 4px;
967
- }
968
-
969
- .employee-item:hover {
970
- background-color: #f5f5f5;
971
- }
972
-
973
- .employee-avatar {
974
- display: flex;
975
- align-items: center;
976
- }
977
-
978
- .employee-info {
979
- display: flex;
980
- gap: 8px;
981
- align-items: center;
982
- }
983
-
984
- .employee-code {
985
- color: #999;
986
- font-size: 12px;
987
- }
988
-
989
- .employee-name {
990
- font-size: 14px;
991
- }
992
-
993
- .empty-data {
994
- display: flex;
995
- justify-content: center;
996
- align-items: center;
997
- height: 200px;
998
- }
999
-
1000
- .dialog-footer {
1001
- display: flex;
1002
- justify-content: space-between;
1003
- align-items: center;
1004
- padding: 16px 0;
1005
- }
1006
-
1007
- .selected-preview {
1008
- color: #666;
1009
- }
1010
-
1011
- .dialog-actions {
1012
- display: flex;
1013
- gap: 8px;
1014
- }
1015
-
1016
- .selected-people-list {
1017
- margin-top: 8px;
1018
- display: flex;
1019
- flex-wrap: wrap;
1020
- gap: 8px;
1021
- }
1022
-
1023
- .selected-people-item {
1024
- display: flex;
1025
- align-items: center;
1026
- background-color: #f0f0f0;
1027
- border-radius: 3px;
1028
- padding: 2px 8px 2px 2px;
1029
- gap: 8px;
1030
- }
1031
-
1032
- .selected-people-item:hover {
1033
- background-color: #e0e0e0;
1034
- }
1035
-
1036
- .selected-people-item .item-remove {
1037
- cursor: pointer;
1038
- color: #999;
1039
- font-size: 12px;
1040
- }
1041
-
1042
- .selected-people-item .item-remove:hover {
1043
- color: #E34D59;
1044
- }
1
+ <template>
2
+ <div class="ebiz-employee-selector">
3
+ <!-- 选择框展示区 -->
4
+ <div v-if="showDefault" style="display: flex; flex-direction: column; align-items: flex-start; gap: 10px;">
5
+ <div class="selected-items" v-if="selectedItems && selectedItems.length">
6
+ <div v-for="(item, index) in selectedItems" :key="index" class="selected-item">
7
+ <t-avatar v-if="item.avatar" :image="item.avatar" size="small" />
8
+ <t-avatar v-else size="small">{{ getAvatarText(item.name) }}</t-avatar>
9
+ <span class="item-info">
10
+ <span class="item-code">{{ item.no }} - </span>
11
+ <span class="item-name">{{ item.name }}</span>
12
+ </span>
13
+ <t-icon name="close" class="item-remove" @click="removeItem(index, item.id)"></t-icon>
14
+ </div>
15
+ </div>
16
+ <t-button @click="showDialog" variant="text" theme="primary">选择人员</t-button>
17
+ </div>
18
+
19
+ <!-- 选择弹窗 -->
20
+ <t-dialog v-model:visible="dialogVisible" header="选择人员" :width="800" footer :close-btn="true"
21
+ :close-on-esc-keydown="true" :close-on-overlay-click="true">
22
+
23
+ <!-- 选项卡 -->
24
+ <t-tabs v-model="activeTab" class="selector-tabs">
25
+ <t-tab-panel value="organization" label="组织架构" :destroyOnHide="false"></t-tab-panel>
26
+ <t-tab-panel value="role" label="角色" :destroyOnHide="false"></t-tab-panel>
27
+ <!-- <t-tab-panel value="position" label="岗位" :destroyOnHide="false"></t-tab-panel> -->
28
+ <!-- <t-tab-panel value="department" label="同部门" :destroyOnHide="false"></t-tab-panel> -->
29
+ <!-- <t-tab-panel value="subordinate" label="我的下属" :destroyOnHide="false"></t-tab-panel> -->
30
+ </t-tabs>
31
+
32
+
33
+ <div>
34
+
35
+ <div class="selector-dialog-content">
36
+ <!-- 左侧选择区域 -->
37
+ <div class="left-panel">
38
+ <!-- 内容区域 -->
39
+ <div class="content-area">
40
+ <div v-if="loading" class="loading-container">
41
+ <t-loading />
42
+ </div>
43
+ <!-- 组织架构 -->
44
+ <div v-show="activeTab === 'organization'" class="tab-content">
45
+ <t-tree ref="organizationTree" :data="organizationData"
46
+ :keys="{ label: 'name', value: 'id', children: 'children' }" hover activable :active="currentActive"
47
+ @active="handleActive" />
48
+ </div>
49
+
50
+ <!-- 角色 -->
51
+ <div v-show="activeTab === 'role'" class="tab-content">
52
+ <t-tree ref="roleTree" :data="roleData" :keys="{ label: 'name', value: 'code' }" hover activable
53
+ :active="currentActive" @active="handleActive" />
54
+ </div>
55
+
56
+ <!-- 岗位 -->
57
+ <div v-show="activeTab === 'position'" class="tab-content">
58
+ <t-tree ref="positionTree" :data="positionData" :keys="{ label: 'name', value: 'id' }" hover activable
59
+ :active="currentActive" @active="handleActive" />
60
+ </div>
61
+
62
+ <!-- 同部门 -->
63
+ <div v-show="activeTab === 'department'" class="tab-content">
64
+ <t-list :split="true" size="small">
65
+ <t-list-item v-for="(item, index) in departmentData" :key="index">
66
+ <div class="department-item" @click="selectDepartment(item)">
67
+ {{ item.name }}
68
+ </div>
69
+ </t-list-item>
70
+ </t-list>
71
+ </div>
72
+
73
+ <!-- 我的下属 -->
74
+ <div v-show="activeTab === 'subordinate'" class="tab-content">
75
+ <t-list :split="true" size="small">
76
+ <t-list-item v-for="(item, index) in subordinateData" :key="index">
77
+ <div class="department-item" @click="selectDepartment(item)">
78
+ {{ item.name }}
79
+ </div>
80
+ </t-list-item>
81
+ </t-list>
82
+ </div>
83
+ </div>
84
+ </div>
85
+
86
+ <!-- 右侧人员列表区域 -->
87
+ <div class="right-panel">
88
+ <div class="employee-header">
89
+ <div class="employee-title">
90
+ {{ currentNodeName || '人员列表' }}
91
+ <div v-if="activeTab === 'organization'" class="sub-dept-option">
92
+ <t-checkbox v-model="childDeptEnable">包含子部门</t-checkbox>
93
+ </div>
94
+ </div>
95
+ <div class="employee-count" v-if="!single">
96
+ <t-checkbox v-model="selectAll" @change="handleSelectAll">全选</t-checkbox>
97
+ <span class="count-info">共 {{ employeeList.length }} 人</span>
98
+ </div>
99
+ </div>
100
+
101
+ <!-- 搜索框 -->
102
+ <div class="search-box">
103
+ <t-input v-model="searchText" placeholder="请输入姓名/拼音/工号搜索" clearable
104
+ @keyup.enter="handleSearchEnter">
105
+ <template #suffix-icon>
106
+ <t-icon name="search" @click="handleSearchClick"></t-icon>
107
+ </template>
108
+ </t-input>
109
+ <t-button v-if="searchText" size="small" theme="default" class="clear-search-btn" @click="clearSearch">清除搜索</t-button>
110
+ </div>
111
+
112
+ <div class="employee-list">
113
+ <div v-for="(item, index) in filteredEmployeeList" :key="index" class="employee-item">
114
+ <t-checkbox v-model="item.checked" @change="handleCheckChange(item)"></t-checkbox>
115
+ <div class="employee-avatar">
116
+ <t-avatar v-if="item.avatar" :image="item.avatar" size="small" />
117
+ <t-avatar v-else size="small">{{ getAvatarText(item.name) }}</t-avatar>
118
+ </div>
119
+ <div class="employee-info">
120
+ <div class="employee-code">{{ item.no }} - </div>
121
+ <div class="employee-name">{{ item.name }}</div>
122
+ </div>
123
+ </div>
124
+ <div v-if="filteredEmployeeList.length === 0" class="empty-data">
125
+ <t-empty />
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+
133
+ <!-- 底部按钮区域 -->
134
+ <template #footer>
135
+ <div class="dialog-footer">
136
+ <div class="selected-preview">
137
+ 已选: {{ tempSelectedEmployees.length }} 人
138
+ <div class="selected-people-list" v-if="tempSelectedEmployees.length > 0">
139
+ <div v-for="(item, index) in tempSelectedEmployees" :key="index" class="selected-people-item">
140
+ <t-avatar v-if="item.avatar" :image="item.avatar" size="small" />
141
+ <t-avatar v-else size="small">{{ getAvatarText(item.name) }}</t-avatar>
142
+ <span class="item-info">
143
+ <span class="item-code">{{ item.no }}</span>
144
+ <span class="item-name">{{ item.name }}</span>
145
+ </span>
146
+ <t-icon name="close" class="item-remove" @click="removeSelectedEmployee(item)"></t-icon>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ <div class="dialog-actions">
151
+ <t-button theme="default" @click="handleCancel">取消</t-button>
152
+ <t-button theme="primary" @click="handleConfirm">确定</t-button>
153
+ </div>
154
+ </div>
155
+ </template>
156
+ </t-dialog>
157
+ </div>
158
+ </template>
159
+
160
+ <script setup>
161
+ import { ref, computed, watch, onMounted } from 'vue';
162
+ import {
163
+ Dialog as TDialog,
164
+ Button as TButton,
165
+ Icon as TIcon,
166
+ Input as TInput,
167
+ Tabs as TTabs,
168
+ TabPanel as TTabPanel,
169
+ Loading as TLoading,
170
+ Tree as TTree,
171
+ Avatar as TAvatar,
172
+ Checkbox as TCheckbox,
173
+ Empty as TEmpty,
174
+ List as TList,
175
+ ListItem as TListItem,
176
+ MessagePlugin
177
+ } from 'tdesign-vue-next';
178
+ import dataService from '../apiService/simpleDataService';
179
+
180
+ // 定义组件属性
181
+ const props = defineProps({
182
+ // 选中的数据,支持v-model,只存储ID列表
183
+ showDefault: {
184
+ type: Boolean,
185
+ default: true
186
+ },
187
+ modelValue: {
188
+ type: Array,
189
+ default: () => []
190
+ },
191
+ // 单选模式
192
+ single: {
193
+ type: Boolean,
194
+ default: false
195
+ },
196
+ // 是否展示默认标签页
197
+ showDefaultTab: {
198
+ type: Boolean,
199
+ default: true
200
+ },
201
+ visible:{
202
+ type: Boolean,
203
+ default: true
204
+ },
205
+ // 是否包含部门
206
+ includeDepartment: {
207
+ type: Boolean,
208
+ default: false
209
+ },
210
+ // 默认标签页
211
+ defaultTab: {
212
+ type: String,
213
+ default: 'organization'
214
+ },
215
+ // 是否展示顶层组织
216
+ showRootOrg: {
217
+ type: Boolean,
218
+ default: true
219
+ },
220
+ // 最大选择数量,0表示不限制
221
+ maxCount: {
222
+ type: Number,
223
+ default: 0
224
+ }
225
+ });
226
+
227
+ // 定义组件事件
228
+ const emit = defineEmits(['update:modelValue', 'change']);
229
+
230
+ // 内部状态变量
231
+ const dialogVisible = computed({
232
+ set(val){
233
+ emit('update:visible', val)
234
+ },
235
+ get(){
236
+ return props.visible
237
+ }
238
+ });
239
+
240
+ const searchText = ref('');
241
+ const activeTab = ref(props.defaultTab);
242
+ const loading = ref(false);
243
+ const selectedItems = ref([]);
244
+ // 对话框中临时保存的选中员工列表
245
+ const tempSelectedEmployees = ref([]);
246
+ // 是否查询子部门
247
+ const childDeptEnable = ref(false);
248
+
249
+ // 数据源
250
+ const organizationData = ref([]);
251
+ const roleData = ref([]);
252
+ const positionData = ref([]);
253
+ const departmentData = ref([]);
254
+ const subordinateData = ref([]);
255
+ const employeeList = ref([]);
256
+ const currentActive = ref([]);
257
+ const currentNodeName = ref('');
258
+ const selectAll = ref(false);
259
+
260
+ // 从名称中获取头像显示文本
261
+ const getAvatarText = (name) => {
262
+ return name ? name.substring(0, 1) : '';
263
+ };
264
+
265
+ // 处理组织数据,转换为树形结构
266
+ const _processOrgData = (data) => {
267
+ // 转换数据结构为树形结构
268
+ const map = {};
269
+ const result = [];
270
+
271
+ data.forEach(item => {
272
+ map[item.id] = {
273
+ ...item,
274
+ name: item.name,
275
+ id: item.id,
276
+ children: []
277
+ };
278
+ });
279
+
280
+ data.forEach(item => {
281
+ const node = map[item.id];
282
+
283
+ if (item.manager_dept && map[item.manager_dept]) {
284
+ map[item.manager_dept].children.push(node);
285
+ } else {
286
+ // 只有在显示根组织或不存在父节点时才添加到结果中
287
+ if (props.showRootOrg || !item.manager_dept) {
288
+ result.push(node);
289
+ }
290
+ }
291
+ });
292
+
293
+ return result;
294
+ };
295
+
296
+ // 更新全选状态
297
+ const updateSelectAllStatus = () => {
298
+ selectAll.value = employeeList.value.length > 0 && employeeList.value.every(item => item.checked);
299
+ };
300
+
301
+ // 选中的员工列表
302
+ const selectedEmployees = computed(() => {
303
+ return employeeList.value.filter((item) => item.checked);
304
+ });
305
+
306
+ // 根据搜索文本过滤的员工列表
307
+ const filteredEmployeeList = computed(() => {
308
+ if (!searchText.value) {
309
+ return employeeList.value;
310
+ }
311
+
312
+ const keyword = searchText.value.toLowerCase();
313
+ return employeeList.value.filter((item) => {
314
+ return (
315
+ item.name.toLowerCase().includes(keyword) ||
316
+ (item.pinyin && item.pinyin.toLowerCase().includes(keyword)) ||
317
+ (item.code && item.code.toLowerCase().includes(keyword))
318
+ );
319
+ });
320
+ });
321
+
322
+ const allData = ref([])
323
+
324
+ const fetchAllData = async () => {
325
+ const response = await dataService.fetch({}, {}, '/process/deptList');
326
+ employeeList.value = response;
327
+ }
328
+ fetchAllData()
329
+
330
+ // 获取组织架构数据
331
+ const fetchOrganizationData = async () => {
332
+ loading.value = true;
333
+ try {
334
+ const response = await dataService.fetch(
335
+ {},
336
+ {
337
+ apiId: 1933,
338
+ key: 'organizationalStructure'
339
+ },"/process/deptList"
340
+ );
341
+ organizationData.value = response;
342
+ handleActive(response[0].id, 'organization')
343
+ // organizationData.value = processOrgData(response.data || []);
344
+ } catch (error) {
345
+ MessagePlugin.error({
346
+ content: '获取组织架构数据失败',
347
+ duration: 3000
348
+ });
349
+ } finally {
350
+ loading.value = false;
351
+ }
352
+ };
353
+
354
+ // 获取角色数据
355
+ const fetchRoleData = async () => {
356
+ loading.value = true;
357
+ try {
358
+ const response = await dataService.fetch(
359
+ {},
360
+ {},
361
+ '/process/roleList'
362
+ );
363
+ roleData.value = response || [];
364
+ } catch (error) {
365
+ MessagePlugin.error({
366
+ content: '获取角色数据失败',
367
+ duration: 3000
368
+ });
369
+ } finally {
370
+ loading.value = false;
371
+ }
372
+ };
373
+
374
+ // 获取岗位数据
375
+ const fetchPositionData = async () => {
376
+ loading.value = true;
377
+ try {
378
+ const response = await dataService.fetch(
379
+ {},
380
+ {
381
+ },
382
+ '/process/roleList'
383
+ );
384
+ positionData.value = response?.data || [];
385
+ } catch (error) {
386
+ MessagePlugin.error({
387
+ content: '获取岗位数据失败',
388
+ duration: 3000
389
+ });
390
+ } finally {
391
+ loading.value = false;
392
+ }
393
+ };
394
+
395
+ // 获取部门数据
396
+ const fetchDepartmentData = async () => {
397
+ loading.value = true;
398
+ try {
399
+ const response = await dataService.fetch(
400
+ {},
401
+ {
402
+ apiId: 1933,
403
+ key: 'departmentList',
404
+ apiType: 'MULTIPLE_DATA_SEARCH'
405
+ }
406
+ );
407
+ departmentData.value = response?.data || [];
408
+ } catch (error) {
409
+ MessagePlugin.error({
410
+ content: '获取部门数据失败',
411
+ duration: 3000
412
+ });
413
+ } finally {
414
+ loading.value = false;
415
+ }
416
+ };
417
+
418
+ // 获取下属数据
419
+ const fetchSubordinateData = async () => {
420
+ loading.value = true;
421
+ try {
422
+ const response = await dataService.fetch(
423
+ {},
424
+ {
425
+ apiKey: 'subordinateList',
426
+ apiType: 'MULTIPLE_DATA_SEARCH'
427
+ }
428
+ );
429
+ subordinateData.value = response?.data || [];
430
+ } catch (error) {
431
+ MessagePlugin.error({
432
+ content: '获取下属数据失败',
433
+ duration: 3000
434
+ });
435
+ } finally {
436
+ loading.value = false;
437
+ }
438
+ };
439
+
440
+ // 根据节点ID获取员工列表
441
+ const fetchEmployeesByNode = async (nodeId, type, keyword = searchText.value) => {
442
+ loading.value = true;
443
+ try {
444
+ const params = {};
445
+
446
+ // 只有当nodeId不为空且type有效时,添加对应参数
447
+ if (nodeId && type) {
448
+ // 根据不同类型设置不同的查询参数
449
+ switch (type) {
450
+ case 'organization':
451
+ params.deptId = Array.isArray(nodeId) ? nodeId[0] : nodeId;
452
+ // 添加子部门查询参数
453
+ params.childDeptEnable = childDeptEnable.value;
454
+ break;
455
+ case 'role':
456
+ params.roleKeyWork = nodeId[0];
457
+ break;
458
+ case 'position':
459
+ params.positionId = nodeId;
460
+ break;
461
+ case 'department':
462
+ params.departmentId = nodeId;
463
+ break;
464
+ case 'subordinate':
465
+ params.managerId = nodeId;
466
+ break;
467
+ }
468
+ }
469
+
470
+ // 如果有搜索关键词,添加到查询参数中
471
+ if (keyword) {
472
+ params.keyWord = keyword;
473
+ }
474
+
475
+ const response = await dataService.fetch(
476
+ params,
477
+ {},
478
+ '/process/userList'
479
+ );
480
+ // 获取当前已选择的员工ID列表
481
+ const selectedIds = [...new Set(tempSelectedEmployees.value.map(emp => emp.id))];
482
+
483
+ // 处理返回数据,添加checked属性,保留已选状态
484
+ const employees = (response || []).map(emp => ({
485
+ ...emp,
486
+ checked: selectedIds.includes(emp.id)
487
+ }));
488
+
489
+ employeeList.value = employees;
490
+ updateSelectAllStatus();
491
+ } catch (error) {
492
+ console.log(error,592)
493
+ MessagePlugin.error({
494
+ content: '获取员工列表失败',
495
+ duration: 3000
496
+ });
497
+ } finally {
498
+ loading.value = false;
499
+ }
500
+ };
501
+
502
+ // 根据ID列表批量获取员工信息
503
+ const fetchEmployeesByIds = async (ids) => {
504
+ if (!ids || ids.length === 0) {
505
+ selectedItems.value = [];
506
+ return;
507
+ }
508
+
509
+ loading.value = true;
510
+ try {
511
+ const response = await dataService.fetch(
512
+ {
513
+ userIds: ids // 使用新的接口参数格式
514
+ },
515
+ {},
516
+ '/process/userList' // 直接使用新的API路径
517
+ );
518
+
519
+ if (response && Array.isArray(response)) {
520
+ selectedItems.value = response;
521
+ } else {
522
+ selectedItems.value = [];
523
+ MessagePlugin.warning({
524
+ content: '获取员工详情返回的数据格式不正确',
525
+ duration: 3000
526
+ });
527
+ }
528
+ } catch (error) {
529
+ selectedItems.value = [];
530
+ MessagePlugin.error({
531
+ content: '获取员工详情失败: ' + (error.message || '未知错误'),
532
+ duration: 3000
533
+ });
534
+ } finally {
535
+ loading.value = false;
536
+ }
537
+ };
538
+
539
+ // 处理节点激活
540
+ const handleActive = (value, context) => {
541
+ currentActive.value = [value];
542
+ currentNodeName.value = context.node?.label || '';
543
+
544
+ // 获取该节点下的员工
545
+ fetchEmployeesByNode(value, activeTab.value);
546
+ };
547
+
548
+ // 选择部门
549
+ const selectDepartment = (department) => {
550
+ currentNodeName.value = department.name;
551
+ fetchEmployeesByNode(department.id, activeTab.value);
552
+ };
553
+
554
+ // 处理全选
555
+ const handleSelectAll = (checked) => {
556
+ employeeList.value.forEach(item => {
557
+ item.checked = checked;
558
+
559
+ // 如果选中,确保添加到临时选中列表
560
+ if (checked && !tempSelectedEmployees.value.some(emp => emp.id === item.id)) {
561
+ tempSelectedEmployees.value.push(item);
562
+ }
563
+ });
564
+ };
565
+
566
+ // 处理选中状态变更
567
+ const handleCheckChange = (item) => {
568
+ // 单选模式下,取消其他选中
569
+ if (props.single) {
570
+ employeeList.value.forEach(emp => {
571
+ if (emp.id !== item.id) {
572
+ emp.checked = false;
573
+ }
574
+ });
575
+ console.log(item,573)
576
+ // 单选模式下,直接替换tempSelectedEmployees
577
+ tempSelectedEmployees.value = item.checked ? [item] : [];
578
+ } else {
579
+ // 多选模式
580
+ // 如果选中,添加到临时选中列表
581
+ if (item.checked && !tempSelectedEmployees.value.some(emp => emp.id === item.id)) {
582
+ tempSelectedEmployees.value.push(item);
583
+ } else if (!item.checked) {
584
+ // 如果取消选中,从临时选中列表中移除
585
+ const index = tempSelectedEmployees.value.findIndex(emp => emp.id === item.id);
586
+ if (index !== -1) {
587
+ tempSelectedEmployees.value.splice(index, 1);
588
+ }
589
+ }
590
+ }
591
+
592
+ // 检查最大选择数量限制
593
+ if (props.maxCount > 0) {
594
+ const checkedCount = tempSelectedEmployees.value.length;
595
+ if (checkedCount > props.maxCount) {
596
+ item.checked = false;
597
+ const index = tempSelectedEmployees.value.findIndex(emp => emp.id === item.id);
598
+ if (index !== -1) {
599
+ tempSelectedEmployees.value.splice(index, 1);
600
+ }
601
+ MessagePlugin.warning({
602
+ content: `最多只能选择${props.maxCount}个人员`,
603
+ duration: 3000
604
+ });
605
+ }
606
+ }
607
+
608
+ updateSelectAllStatus();
609
+ };
610
+
611
+ // 移除已选择的项目
612
+ const removeItem = (index, id) => {
613
+ // 移除ID
614
+ const newIds = [...props.modelValue];
615
+ const idIndex = newIds.indexOf(id);
616
+ if (idIndex !== -1) {
617
+ newIds.splice(idIndex, 1);
618
+ emit('update:modelValue', newIds);
619
+ emit('change', newIds);
620
+ }
621
+
622
+ // 移除展示项
623
+ selectedItems.value.splice(index, 1);
624
+ };
625
+
626
+ // 从已选列表中移除员工
627
+ const removeSelectedEmployee = (employee) => {
628
+ // 将员工的checked状态设为false
629
+ const foundEmployee = employeeList.value.find(item => item.id === employee.id);
630
+ if (foundEmployee) {
631
+ foundEmployee.checked = false;
632
+ }
633
+
634
+ // 从临时选中列表中移除
635
+ const index = tempSelectedEmployees.value.findIndex(emp => emp.id === employee.id);
636
+ if (index !== -1) {
637
+ tempSelectedEmployees.value.splice(index, 1);
638
+ }
639
+
640
+ // 更新全选状态
641
+ updateSelectAllStatus();
642
+ };
643
+
644
+ // 初始化选择器
645
+ const initSelector = async () => {
646
+ // 获取数据
647
+ if (activeTab.value === 'organization' && organizationData.value.length === 0) {
648
+ await fetchOrganizationData();
649
+ } else if (activeTab.value === 'role' && roleData.value.length === 0) {
650
+ await fetchRoleData();
651
+ } else if (activeTab.value === 'position' && positionData.value.length === 0) {
652
+ await fetchPositionData();
653
+ } else if (activeTab.value === 'department' && departmentData.value.length === 0) {
654
+ await fetchDepartmentData();
655
+ } else if (activeTab.value === 'subordinate' && subordinateData.value.length === 0) {
656
+ await fetchSubordinateData();
657
+ }
658
+ };
659
+
660
+ // 显示对话框
661
+ const showDialog = () => {
662
+ // 初始化临时选中列表
663
+ if (selectedItems.value.length > 0) {
664
+ tempSelectedEmployees.value = [...selectedItems.value];
665
+ } else {
666
+ tempSelectedEmployees.value = [];
667
+ }
668
+
669
+ // 初始化数据
670
+ // initSelector();
671
+ dialogVisible.value = true;
672
+ };
673
+
674
+ // 确认选择
675
+ const handleConfirm = () => {
676
+ const selectedEmployeeIds = tempSelectedEmployees.value.map(item => item.id);
677
+
678
+ emit('update:modelValue', selectedEmployeeIds);
679
+ emit('change', selectedEmployeeIds);
680
+ dialogVisible.value = false;
681
+ };
682
+
683
+ // 取消选择
684
+ const handleCancel = () => {
685
+ // 放弃临时选择
686
+ tempSelectedEmployees.value = [];
687
+ dialogVisible.value = false;
688
+ };
689
+
690
+ // 监听标签页切换
691
+ watch(activeTab, () => {
692
+ // 切换标签页时重新加载数据
693
+ initSelector();
694
+ });
695
+
696
+ // 监听modelValue变化,更新展示的员工信息
697
+ watch(() => props.modelValue, (newIds, oldIds) => {
698
+ // 判断值是否真的变化了 (通过比较JSON字符串)
699
+ const newIdsStr = JSON.stringify(newIds || []);
700
+ const oldIdsStr = JSON.stringify(oldIds || []);
701
+
702
+ if (newIdsStr !== oldIdsStr) {
703
+ // 获取员工详情数据
704
+ fetchEmployeesByIds(newIds);
705
+ }
706
+ }, { immediate: true, deep: true });
707
+ watch(() => props.visible, (val) => {
708
+ tempSelectedEmployees.value = [];
709
+ currentActive.value = [];
710
+ currentNodeName.value = '';
711
+ if (val) {
712
+ fetchOrganizationData()
713
+ }
714
+ }, { immediate: true })
715
+ // 监听选中员工变化,更新临时已选列表
716
+ watch(selectedEmployees, (newVal) => {
717
+ // 更新临时选中列表,保留之前不在当前列表中的已选员工
718
+ const currentIds = new Set(newVal.map(emp => emp.id));
719
+
720
+ // 移除tempSelectedEmployees中已经不再选中的员工
721
+ tempSelectedEmployees.value = tempSelectedEmployees.value.filter(emp =>
722
+ !currentIds.has(emp.id) || newVal.some(item => item.id === emp.id)
723
+ );
724
+
725
+ // 添加新选中的员工
726
+ newVal.forEach(emp => {
727
+ if (!tempSelectedEmployees.value.some(item => item.id === emp.id)) {
728
+ tempSelectedEmployees.value.push(emp);
729
+ }
730
+ });
731
+ }, { deep: true });
732
+
733
+ // 监听子部门查询开关变化
734
+ watch(childDeptEnable, () => {
735
+ // 如果当前在组织架构页面且有选中节点,重新加载员工列表
736
+ if (activeTab.value === 'organization' && currentActive.value && currentActive.value.length > 0) {
737
+ fetchEmployeesByNode(currentActive.value[0], activeTab.value);
738
+ }
739
+ });
740
+
741
+ // 防抖函数
742
+ const debounce = (fn, delay) => {
743
+ let timer = null;
744
+ return function(...args) {
745
+ if (timer) clearTimeout(timer);
746
+ timer = setTimeout(() => {
747
+ fn.apply(this, args);
748
+ }, delay);
749
+ };
750
+ };
751
+
752
+ // 防抖处理过的搜索函数
753
+ const debouncedSearch = debounce((keyword) => {
754
+ if (keyword) {
755
+ const nodeId = currentActive.value && currentActive.value.length > 0 ? currentActive.value[0] : null;
756
+ const type = nodeId ? activeTab.value : null;
757
+ fetchEmployeesByNode(nodeId, type, keyword);
758
+ } else if (currentActive.value && currentActive.value.length > 0) {
759
+ // 如果搜索框清空,恢复显示当前选中节点的员工列表
760
+ fetchEmployeesByNode(currentActive.value[0], activeTab.value);
761
+ } else {
762
+ // 如果没有选中节点,清空员工列表
763
+ employeeList.value = [];
764
+ }
765
+ }, 300); // 300ms防抖
766
+
767
+ // 监听搜索文本变化,触发搜索
768
+ watch(searchText, (newValue) => {
769
+ debouncedSearch(newValue);
770
+ }, { immediate: false });
771
+
772
+ // 组件挂载时执行
773
+ onMounted(() => {
774
+ // 获取已选员工详情
775
+ fetchEmployeesByIds(props.modelValue);
776
+ });
777
+
778
+ // 处理搜索图标点击
779
+ const handleSearchClick = () => {
780
+ if (searchText.value) {
781
+ const nodeId = currentActive.value && currentActive.value.length > 0 ? currentActive.value[0] : null;
782
+ const type = nodeId ? activeTab.value : null;
783
+ fetchEmployeesByNode(nodeId, type, searchText.value);
784
+ }
785
+ };
786
+
787
+ // 处理回车键搜索
788
+ const handleSearchEnter = () => {
789
+ if (searchText.value) {
790
+ const nodeId = currentActive.value && currentActive.value.length > 0 ? currentActive.value[0] : null;
791
+ const type = nodeId ? activeTab.value : null;
792
+ fetchEmployeesByNode(nodeId, type, searchText.value);
793
+ }
794
+ };
795
+
796
+ // 清除搜索
797
+ const clearSearch = () => {
798
+ searchText.value = '';
799
+ if (currentActive.value && currentActive.value.length > 0) {
800
+ fetchEmployeesByNode(currentActive.value[0], activeTab.value);
801
+ } else {
802
+ // 如果没有选中节点,重置员工列表但保留选中状态
803
+ employeeList.value = employeeList.value.map(emp => ({
804
+ ...emp,
805
+ checked: tempSelectedEmployees.value.some(item => item.id === emp.id)
806
+ }));
807
+ }
808
+ };
809
+ </script>
810
+
811
+ <style scoped>
812
+ .ebiz-employee-selector {
813
+ width: 100%;
814
+ display: flex;
815
+ flex-direction: column;
816
+ }
817
+
818
+ /* 选择框展示区 */
819
+ .employee-selector-container {
820
+ min-height: 32px;
821
+ width: 100%;
822
+ border: 1px solid #dcdcdc;
823
+ border-radius: 3px;
824
+ padding: 4px 8px;
825
+ display: flex;
826
+ flex-wrap: wrap;
827
+ gap: 8px;
828
+ align-items: center;
829
+ }
830
+
831
+ .selected-items {
832
+ display: flex;
833
+ flex-wrap: wrap;
834
+ gap: 8px;
835
+ }
836
+
837
+ .selected-item {
838
+ display: flex;
839
+ align-items: center;
840
+ background-color: #f0f0f0;
841
+ border-radius: 3px;
842
+ padding: 2px 8px 2px 2px;
843
+ gap: 8px;
844
+ }
845
+
846
+ .item-info {
847
+ display: flex;
848
+ align-items: center;
849
+ gap: 4px;
850
+ }
851
+
852
+ .item-code {
853
+ color: #999;
854
+ font-size: 12px;
855
+ }
856
+
857
+ .item-name {
858
+ font-size: 14px;
859
+ }
860
+
861
+ .item-remove {
862
+ cursor: pointer;
863
+ color: #999;
864
+ font-size: 12px;
865
+ }
866
+
867
+ .item-remove:hover {
868
+ color: #E34D59;
869
+ }
870
+
871
+ /* 选择弹窗 */
872
+ .selector-dialog-content {
873
+ display: flex;
874
+ height: 500px;
875
+ }
876
+
877
+ .left-panel, .right-panel {
878
+ height: 100%;
879
+ overflow: hidden;
880
+ display: flex;
881
+ flex-direction: column;
882
+ }
883
+
884
+ .left-panel {
885
+ width: 40%;
886
+ border-right: 1px solid #dcdcdc;
887
+ padding-right: 16px;
888
+ }
889
+
890
+ .right-panel {
891
+ width: 60%;
892
+ padding-left: 16px;
893
+ }
894
+
895
+ .search-box {
896
+ margin-bottom: 16px;
897
+ }
898
+
899
+ .right-panel .search-box {
900
+ margin-top: 8px;
901
+ margin-bottom: 16px;
902
+ display: flex;
903
+ align-items: center;
904
+ gap: 8px;
905
+ }
906
+
907
+ .right-panel .search-box .t-input {
908
+ width: 100%;
909
+ border-radius: 4px;
910
+ }
911
+
912
+ .right-panel .search-box .t-input__suffix-icon {
913
+ cursor: pointer;
914
+ }
915
+
916
+ .right-panel .search-box .t-input__suffix-icon:hover {
917
+ color: var(--td-brand-color);
918
+ }
919
+
920
+ .selector-tabs {
921
+ margin-bottom: 16px;
922
+ }
923
+
924
+ .content-area {
925
+ flex: 1;
926
+ overflow: auto;
927
+ position: relative;
928
+ }
929
+
930
+ .loading-container {
931
+ position: absolute;
932
+ top: 0;
933
+ left: 0;
934
+ right: 0;
935
+ bottom: 0;
936
+ display: flex;
937
+ justify-content: center;
938
+ align-items: center;
939
+ background-color: rgba(255, 255, 255, 0.6);
940
+ z-index: 1;
941
+ }
942
+
943
+ .tab-content {
944
+ height: 100%;
945
+ overflow: auto;
946
+ }
947
+
948
+ .department-item {
949
+ cursor: pointer;
950
+ padding: 8px;
951
+ }
952
+
953
+ .department-item:hover {
954
+ background-color: #f5f5f5;
955
+ }
956
+
957
+ .employee-header {
958
+ display: flex;
959
+ justify-content: space-between;
960
+ align-items: center;
961
+ margin-bottom: 16px;
962
+ }
963
+
964
+ .employee-title {
965
+ font-weight: bold;
966
+ font-size: 16px;
967
+ display: flex;
968
+ align-items: center;
969
+ gap: 10px;
970
+ }
971
+
972
+ .sub-dept-option {
973
+ margin-left: 10px;
974
+ font-weight: normal;
975
+ font-size: 14px;
976
+ }
977
+
978
+ .employee-count {
979
+ display: flex;
980
+ align-items: center;
981
+ gap: 8px;
982
+ }
983
+
984
+ .count-info {
985
+ color: #999;
986
+ font-size: 14px;
987
+ }
988
+
989
+ .employee-list {
990
+ flex: 1;
991
+ overflow: auto;
992
+ display: flex;
993
+ flex-direction: column;
994
+ gap: 8px;
995
+ }
996
+
997
+ .employee-item {
998
+ display: flex;
999
+ align-items: center;
1000
+ gap: 12px;
1001
+ padding: 8px;
1002
+ border-radius: 4px;
1003
+ }
1004
+
1005
+ .employee-item:hover {
1006
+ background-color: #f5f5f5;
1007
+ }
1008
+
1009
+ .employee-avatar {
1010
+ display: flex;
1011
+ align-items: center;
1012
+ }
1013
+
1014
+ .employee-info {
1015
+ display: flex;
1016
+ gap: 8px;
1017
+ align-items: center;
1018
+ }
1019
+
1020
+ .employee-code {
1021
+ color: #999;
1022
+ font-size: 12px;
1023
+ }
1024
+
1025
+ .employee-name {
1026
+ font-size: 14px;
1027
+ }
1028
+
1029
+ .empty-data {
1030
+ display: flex;
1031
+ justify-content: center;
1032
+ align-items: center;
1033
+ height: 200px;
1034
+ }
1035
+
1036
+ .dialog-footer {
1037
+ display: flex;
1038
+ justify-content: space-between;
1039
+ align-items: center;
1040
+ padding: 16px 0;
1041
+ }
1042
+
1043
+ .selected-preview {
1044
+ color: #666;
1045
+ }
1046
+
1047
+ .dialog-actions {
1048
+ display: flex;
1049
+ gap: 8px;
1050
+ }
1051
+
1052
+ .selected-people-list {
1053
+ margin-top: 8px;
1054
+ display: flex;
1055
+ flex-wrap: wrap;
1056
+ gap: 8px;
1057
+ }
1058
+
1059
+ .selected-people-item {
1060
+ display: flex;
1061
+ align-items: center;
1062
+ background-color: #f0f0f0;
1063
+ border-radius: 3px;
1064
+ padding: 2px 8px 2px 2px;
1065
+ gap: 8px;
1066
+ }
1067
+
1068
+ .selected-people-item:hover {
1069
+ background-color: #e0e0e0;
1070
+ }
1071
+
1072
+ .selected-people-item .item-remove {
1073
+ cursor: pointer;
1074
+ color: #999;
1075
+ font-size: 12px;
1076
+ }
1077
+
1078
+ .selected-people-item .item-remove:hover {
1079
+ color: #E34D59;
1080
+ }
1045
1081
  </style>