@ebiz/designer-components 0.0.19-beta.2 → 0.0.19-beta.21

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 (740) hide show
  1. package/README.md +29 -29
  2. package/dist/designer-components.css +1 -1
  3. package/dist/index.mjs +35243 -33223
  4. package/package.json +40 -40
  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 +280 -280
  9. package/src/assets/base.css +86 -86
  10. package/src/assets/logo.svg +1 -1
  11. package/src/assets/styles/charts/main.less +29 -29
  12. package/src/components/Button.vue +152 -152
  13. package/src/components/DataContainer.vue +40 -39
  14. package/src/components/EbizAutoForm.vue +597 -0
  15. package/src/components/EbizAvatar.vue +115 -115
  16. package/src/components/EbizCheckbox.vue +93 -93
  17. package/src/components/EbizCheckboxGroup.vue +69 -69
  18. package/src/components/EbizDescriptions.vue +341 -0
  19. package/src/components/EbizDescriptionsItem.vue +48 -0
  20. package/src/components/EbizDetailBlock.vue +81 -81
  21. package/src/components/EbizDialog.vue +248 -248
  22. package/src/components/EbizDivider.vue +96 -96
  23. package/src/components/EbizEmployeeInfo.vue +138 -138
  24. package/src/components/EbizFileUpload.vue +201 -201
  25. package/src/components/EbizMindmap/README.md +8 -8
  26. package/src/components/EbizMindmap/components/GridNode.vue +102 -102
  27. package/src/components/EbizMindmap/components/node.vue +91 -91
  28. package/src/components/EbizMindmap/components/vueNode.vue +63 -63
  29. package/src/components/EbizMindmap/index.vue +382 -382
  30. package/src/components/EbizOkrTree.vue +99 -99
  31. package/src/components/EbizPageHeader.vue +95 -95
  32. package/src/components/EbizPagination.vue +162 -162
  33. package/src/components/EbizPopconfirm.vue +48 -0
  34. package/src/components/EbizRadio.vue +86 -86
  35. package/src/components/EbizRadioGroup.vue +83 -83
  36. package/src/components/EbizRemoteSelect.vue +232 -232
  37. package/src/components/EbizRouteBreadcrumb.vue +46 -46
  38. package/src/components/EbizSelect.vue +95 -95
  39. package/src/components/EbizSpace.vue +100 -100
  40. package/src/components/EbizStatistic.vue +149 -149
  41. package/src/components/EbizStatsCard.vue +113 -113
  42. package/src/components/EbizSwiper.vue +113 -113
  43. package/src/components/EbizSwiperItem.vue +13 -13
  44. package/src/components/EbizSwitch.vue +85 -85
  45. package/src/components/EbizTabHeader.vue +144 -144
  46. package/src/components/EbizTabPanel.vue +22 -22
  47. package/src/components/EbizTable.vue +469 -465
  48. package/src/components/EbizTableColumn.vue +116 -116
  49. package/src/components/EbizTableSort.vue +180 -180
  50. package/src/components/EbizTabs.vue +142 -142
  51. package/src/components/EbizTimePicker.vue +143 -143
  52. package/src/components/EbizTitle.vue +91 -91
  53. package/src/components/EbizTree.vue +152 -152
  54. package/src/components/EbizTreeMergeTable.vue +1393 -0
  55. package/src/components/EbizTreeSelector.vue +418 -418
  56. package/src/components/Form.vue +28 -27
  57. package/src/components/Home.vue +7 -7
  58. package/src/components/MyComponent.vue +39 -39
  59. package/src/components/Table.vue +45 -45
  60. package/src/components/TdesignAlert.vue +115 -115
  61. package/src/components/TdesignButton.vue +129 -129
  62. package/src/components/TdesignCalendar/index.vue +145 -145
  63. package/src/components/TdesignCard.vue +195 -195
  64. package/src/components/TdesignCol.vue +101 -101
  65. package/src/components/TdesignCollapse.vue +142 -142
  66. package/src/components/TdesignCollapsePanel.vue +79 -79
  67. package/src/components/TdesignDatePicker.vue +124 -124
  68. package/src/components/TdesignDescriptions.vue +75 -0
  69. package/src/components/TdesignDescriptionsItem.vue +51 -0
  70. package/src/components/TdesignDialog.vue +225 -225
  71. package/src/components/TdesignForm.vue +138 -133
  72. package/src/components/TdesignFormItem.vue +105 -105
  73. package/src/components/TdesignGrid.vue +55 -55
  74. package/src/components/TdesignIcon.vue +67 -67
  75. package/src/components/TdesignImage.vue +162 -162
  76. package/src/components/TdesignImageViewer.vue +200 -200
  77. package/src/components/TdesignInput.vue +242 -242
  78. package/src/components/TdesignSelect.vue +444 -444
  79. package/src/components/TdesignTag.vue +117 -117
  80. package/src/components/TdesignTextarea.vue +142 -142
  81. package/src/components/TdesignTimeline.vue +58 -58
  82. package/src/components/TdesignTimelineItem.vue +71 -71
  83. package/src/components/TdesignUpload.vue +756 -756
  84. package/src/components/TdesignWatermark.vue +107 -107
  85. package/src/components/charts/chart.js +47 -47
  86. package/src/components/charts/components/AssembleBubbleChart/BaseOption.js +50 -50
  87. package/src/components/charts/components/AssembleBubbleChart/chartToken.js +16 -16
  88. package/src/components/charts/components/AssembleBubbleChart/handleOption.js +66 -66
  89. package/src/components/charts/components/AssembleBubbleChart/handleRootData.js +165 -165
  90. package/src/components/charts/components/AssembleBubbleChart/handleSeriesData.js +70 -70
  91. package/src/components/charts/components/AssembleBubbleChart/index.js +65 -65
  92. package/src/components/charts/components/AutonaviMapChart/index.js +162 -162
  93. package/src/components/charts/components/BaiduMapChart/index.js +147 -147
  94. package/src/components/charts/components/BarChart/barChartOption.js +75 -75
  95. package/src/components/charts/components/BarChart/chartToken.js +17 -17
  96. package/src/components/charts/components/BarChart/handleOptipn.js +102 -102
  97. package/src/components/charts/components/BarChart/handleSeries.js +716 -716
  98. package/src/components/charts/components/BarChart/handleVisualMap.js +48 -48
  99. package/src/components/charts/components/BarChart/index.js +151 -151
  100. package/src/components/charts/components/BaseChart/index.js +122 -122
  101. package/src/components/charts/components/BoxplotChart/chartToken.js +17 -17
  102. package/src/components/charts/components/BoxplotChart/handleOption.js +64 -64
  103. package/src/components/charts/components/BoxplotChart/handleSeries.js +149 -149
  104. package/src/components/charts/components/BoxplotChart/index.js +47 -47
  105. package/src/components/charts/components/BubbleChart/chartToken.js +17 -17
  106. package/src/components/charts/components/BubbleChart/handleData.js +33 -33
  107. package/src/components/charts/components/BubbleChart/handleOptipn.js +62 -62
  108. package/src/components/charts/components/BubbleChart/handleSeries.js +86 -86
  109. package/src/components/charts/components/BubbleChart/handleTrendLine.js +119 -119
  110. package/src/components/charts/components/BubbleChart/handleVisualMap.js +50 -50
  111. package/src/components/charts/components/BubbleChart/index.js +96 -96
  112. package/src/components/charts/components/BulletChart/bulletChartOption.js +81 -81
  113. package/src/components/charts/components/BulletChart/chartToken.js +17 -17
  114. package/src/components/charts/components/BulletChart/handleOptipn.js +74 -74
  115. package/src/components/charts/components/BulletChart/handleSeries.js +142 -142
  116. package/src/components/charts/components/BulletChart/index.js +93 -93
  117. package/src/components/charts/components/CandlestickChart/BaseOption.js +44 -44
  118. package/src/components/charts/components/CandlestickChart/chartToken.js +17 -17
  119. package/src/components/charts/components/CandlestickChart/hanleOption.js +130 -130
  120. package/src/components/charts/components/CandlestickChart/hanleSeries.js +123 -123
  121. package/src/components/charts/components/CandlestickChart/index.js +68 -68
  122. package/src/components/charts/components/CircleProcessChart/chartToken.js +17 -17
  123. package/src/components/charts/components/CircleProcessChart/handleOption.js +67 -67
  124. package/src/components/charts/components/CircleProcessChart/handleSeries.js +126 -126
  125. package/src/components/charts/components/CircleProcessChart/index.js +63 -63
  126. package/src/components/charts/components/FlowChart/Layout.js +211 -211
  127. package/src/components/charts/components/FlowChart/LineBezier.js +120 -120
  128. package/src/components/charts/components/FlowChart/LineDirect.js +42 -42
  129. package/src/components/charts/components/FlowChart/LineManager.js +278 -278
  130. package/src/components/charts/components/FlowChart/LineMode.js +43 -43
  131. package/src/components/charts/components/FlowChart/LineRound.js +335 -335
  132. package/src/components/charts/components/FlowChart/NodeManager.js +185 -185
  133. package/src/components/charts/components/FlowChart/dagre.js +8829 -8829
  134. package/src/components/charts/components/FlowChart/frameworkFn.js +37 -37
  135. package/src/components/charts/components/FlowChart/index.js +267 -267
  136. package/src/components/charts/components/FlowChart/index.less +90 -90
  137. package/src/components/charts/components/FlowChart/insert.js +40 -40
  138. package/src/components/charts/components/FlowChart/util.js +42 -42
  139. package/src/components/charts/components/FunnelChart/chartToken.js +17 -17
  140. package/src/components/charts/components/FunnelChart/handleLegend.js +44 -44
  141. package/src/components/charts/components/FunnelChart/handleSeries.js +77 -77
  142. package/src/components/charts/components/FunnelChart/index.js +43 -43
  143. package/src/components/charts/components/GanttChart/CoordinateSystem.js +358 -358
  144. package/src/components/charts/components/GanttChart/TimeLine.js +379 -379
  145. package/src/components/charts/components/GanttChart/constant.js +71 -71
  146. package/src/components/charts/components/GanttChart/index.js +51 -51
  147. package/src/components/charts/components/GanttChart/index.less +267 -267
  148. package/src/components/charts/components/GanttChart/util.js +335 -335
  149. package/src/components/charts/components/GaugeChart/BaseOption.js +22 -22
  150. package/src/components/charts/components/GaugeChart/chartToken.js +17 -17
  151. package/src/components/charts/components/GaugeChart/handleOptipn.js +22 -22
  152. package/src/components/charts/components/GaugeChart/handleSeries.js +504 -504
  153. package/src/components/charts/components/GaugeChart/index.js +53 -53
  154. package/src/components/charts/components/GraphChart/index.js +34 -34
  155. package/src/components/charts/components/GraphTreeChart/BaseOption.js +42 -42
  156. package/src/components/charts/components/GraphTreeChart/handleData.js +118 -118
  157. package/src/components/charts/components/GraphTreeChart/handleOption.js +142 -142
  158. package/src/components/charts/components/GraphTreeChart/index.js +65 -65
  159. package/src/components/charts/components/GraphTreeChart/mixTree.js +35 -35
  160. package/src/components/charts/components/GraphTreeChart/utils.js +75 -75
  161. package/src/components/charts/components/HeatMapChart/BaseOption.js +66 -66
  162. package/src/components/charts/components/HeatMapChart/chartToken.js +17 -17
  163. package/src/components/charts/components/HeatMapChart/handleData.js +138 -138
  164. package/src/components/charts/components/HeatMapChart/handleOptipn.js +227 -227
  165. package/src/components/charts/components/HeatMapChart/handleSeries.js +82 -82
  166. package/src/components/charts/components/HeatMapChart/handleVisualMap.js +91 -91
  167. package/src/components/charts/components/HeatMapChart/index.js +70 -70
  168. package/src/components/charts/components/HillChart/baseOption.js +50 -50
  169. package/src/components/charts/components/HillChart/chartToken.js +17 -17
  170. package/src/components/charts/components/HillChart/handleOption.js +193 -193
  171. package/src/components/charts/components/HillChart/handleSeries.js +39 -39
  172. package/src/components/charts/components/HillChart/index.js +96 -96
  173. package/src/components/charts/components/HoneycombChart/NodeManager.js +172 -172
  174. package/src/components/charts/components/HoneycombChart/TipManager.js +74 -74
  175. package/src/components/charts/components/HoneycombChart/index.js +117 -117
  176. package/src/components/charts/components/HoneycombChart/index.less +48 -48
  177. package/src/components/charts/components/JadeJueChart/BaseOption.js +40 -40
  178. package/src/components/charts/components/JadeJueChart/chartToken.js +17 -17
  179. package/src/components/charts/components/JadeJueChart/handleOption.js +261 -261
  180. package/src/components/charts/components/JadeJueChart/handleSeries.js +246 -246
  181. package/src/components/charts/components/JadeJueChart/index.js +71 -71
  182. package/src/components/charts/components/JadeJueChart/labelFormatter.js +130 -130
  183. package/src/components/charts/components/LineChart/AreaChart/bottomArea.js +177 -177
  184. package/src/components/charts/components/LineChart/AreaChart/chartToken.js +17 -17
  185. package/src/components/charts/components/LineChart/AreaChart/index.js +17 -17
  186. package/src/components/charts/components/LineChart/AreaChart/topArea.js +139 -139
  187. package/src/components/charts/components/LineChart/chartToken.js +17 -17
  188. package/src/components/charts/components/LineChart/handleOptipn.js +145 -145
  189. package/src/components/charts/components/LineChart/handlePredict.js +73 -73
  190. package/src/components/charts/components/LineChart/handleSeries.js +266 -266
  191. package/src/components/charts/components/LineChart/handleVisualMap.js +137 -137
  192. package/src/components/charts/components/LineChart/index.js +133 -133
  193. package/src/components/charts/components/LiquidfillChart/chartToken.js +17 -17
  194. package/src/components/charts/components/LiquidfillChart/handleSeries.js +170 -170
  195. package/src/components/charts/components/LiquidfillChart/index.js +42 -42
  196. package/src/components/charts/components/LiquidfillChart/plugSeries.js +78 -78
  197. package/src/components/charts/components/LiquidfillChart/plugShape.js +163 -163
  198. package/src/components/charts/components/LiquidfillChart/plugView.js +537 -537
  199. package/src/components/charts/components/MilestoneChart/Layout.js +183 -183
  200. package/src/components/charts/components/MilestoneChart/Node.js +319 -319
  201. package/src/components/charts/components/MilestoneChart/assets/next.svg +7 -7
  202. package/src/components/charts/components/MilestoneChart/assets/prev.svg +7 -7
  203. package/src/components/charts/components/MilestoneChart/assets/prompt.svg +9 -9
  204. package/src/components/charts/components/MilestoneChart/index.js +108 -108
  205. package/src/components/charts/components/MilestoneChart/index.less +243 -243
  206. package/src/components/charts/components/MilestoneChart/insertDom.js +32 -32
  207. package/src/components/charts/components/MilestoneChart/insertIcon.js +24 -24
  208. package/src/components/charts/components/MilestoneChart/insertSvg.js +108 -108
  209. package/src/components/charts/components/OrganizationChart/NodeManager.js +188 -188
  210. package/src/components/charts/components/OrganizationChart/RotateManager.js +349 -349
  211. package/src/components/charts/components/OrganizationChart/index.js +124 -124
  212. package/src/components/charts/components/OrganizationChart/index.less +111 -111
  213. package/src/components/charts/components/PieChart/chartToken.js +17 -17
  214. package/src/components/charts/components/PieChart/handleLabel.js +94 -94
  215. package/src/components/charts/components/PieChart/handleMulti.js +131 -131
  216. package/src/components/charts/components/PieChart/handleSeries.js +236 -236
  217. package/src/components/charts/components/PieChart/index.js +58 -58
  218. package/src/components/charts/components/PolarBarChart/chartToken.js +17 -17
  219. package/src/components/charts/components/PolarBarChart/handleOption.js +102 -102
  220. package/src/components/charts/components/PolarBarChart/handleSeries.js +127 -127
  221. package/src/components/charts/components/PolarBarChart/index.js +61 -61
  222. package/src/components/charts/components/ProcessChart/BaseOption.js +295 -295
  223. package/src/components/charts/components/ProcessChart/chartToken.js +17 -17
  224. package/src/components/charts/components/ProcessChart/handleData.js +156 -156
  225. package/src/components/charts/components/ProcessChart/handleOption.js +212 -212
  226. package/src/components/charts/components/ProcessChart/handleSeries.js +369 -369
  227. package/src/components/charts/components/ProcessChart/index.js +76 -76
  228. package/src/components/charts/components/RadarChart/BaseOption.js +248 -248
  229. package/src/components/charts/components/RadarChart/GradientRadar/index.js +421 -421
  230. package/src/components/charts/components/RadarChart/chartToken.js +17 -17
  231. package/src/components/charts/components/RadarChart/handleOptipn.js +316 -316
  232. package/src/components/charts/components/RadarChart/handleSeries.js +120 -120
  233. package/src/components/charts/components/RadarChart/index.js +77 -77
  234. package/src/components/charts/components/RegionChart/chartToken.js +17 -17
  235. package/src/components/charts/components/RegionChart/handleOption.js +29 -29
  236. package/src/components/charts/components/RegionChart/index.js +48 -48
  237. package/src/components/charts/components/RiverChart/Belt.js +181 -181
  238. package/src/components/charts/components/RiverChart/Manager.js +173 -173
  239. package/src/components/charts/components/RiverChart/Node.js +425 -425
  240. package/src/components/charts/components/RiverChart/baseOption.js +51 -51
  241. package/src/components/charts/components/RiverChart/index.js +79 -79
  242. package/src/components/charts/components/RiverChart/index.less +41 -41
  243. package/src/components/charts/components/RiverChart/util.js +160 -160
  244. package/src/components/charts/components/SankeyChart/BaseOption.js +74 -74
  245. package/src/components/charts/components/SankeyChart/chartToken.js +17 -17
  246. package/src/components/charts/components/SankeyChart/handleOption.js +257 -257
  247. package/src/components/charts/components/SankeyChart/index.js +111 -111
  248. package/src/components/charts/components/SankeyChart/tooltip.js +52 -52
  249. package/src/components/charts/components/ScatterChart/chartToken.js +17 -17
  250. package/src/components/charts/components/ScatterChart/handleMarkPoint.js +74 -74
  251. package/src/components/charts/components/ScatterChart/handleOptipn.js +66 -66
  252. package/src/components/charts/components/ScatterChart/handleSeries.js +48 -48
  253. package/src/components/charts/components/ScatterChart/index.js +60 -60
  254. package/src/components/charts/components/SnowFlakeChart/BranchManager.js +323 -323
  255. package/src/components/charts/components/SnowFlakeChart/CommonConstant.js +110 -110
  256. package/src/components/charts/components/SnowFlakeChart/LeafManager.js +75 -75
  257. package/src/components/charts/components/SnowFlakeChart/NodeManager.js +239 -239
  258. package/src/components/charts/components/SnowFlakeChart/TagManager.js +79 -79
  259. package/src/components/charts/components/SnowFlakeChart/assets/down.svg +7 -7
  260. package/src/components/charts/components/SnowFlakeChart/assets/image2L.svg +6 -6
  261. package/src/components/charts/components/SnowFlakeChart/assets/image2R.svg +6 -6
  262. package/src/components/charts/components/SnowFlakeChart/assets/image5L.svg +6 -6
  263. package/src/components/charts/components/SnowFlakeChart/assets/image5R.svg +6 -6
  264. package/src/components/charts/components/SnowFlakeChart/assets/outerBorder.svg +24 -24
  265. package/src/components/charts/components/SnowFlakeChart/assets/outerBorderOverAll.svg +18 -18
  266. package/src/components/charts/components/SnowFlakeChart/assets/up.svg +7 -7
  267. package/src/components/charts/components/SnowFlakeChart/assets/wirelessL.svg +6 -6
  268. package/src/components/charts/components/SnowFlakeChart/assets/wirelessR.svg +6 -6
  269. package/src/components/charts/components/SnowFlakeChart/defaultOption.js +284 -284
  270. package/src/components/charts/components/SnowFlakeChart/index.js +407 -407
  271. package/src/components/charts/components/SnowFlakeChart/index.less +502 -502
  272. package/src/components/charts/components/SnowFlakeChart/line/LineArrow.js +61 -61
  273. package/src/components/charts/components/SnowFlakeChart/line/LineDashed.js +28 -28
  274. package/src/components/charts/components/SnowFlakeChart/line/LineDotted.js +28 -28
  275. package/src/components/charts/components/SnowFlakeChart/line/LineStraight.js +27 -27
  276. package/src/components/charts/components/SnowFlakeChart/line/index.js +201 -201
  277. package/src/components/charts/components/SnowFlakeChart/util.js +430 -430
  278. package/src/components/charts/components/SunburstChart/chartToken.js +17 -17
  279. package/src/components/charts/components/SunburstChart/handleSeries.js +48 -48
  280. package/src/components/charts/components/SunburstChart/index.js +40 -40
  281. package/src/components/charts/components/TerraceChart/defaultGradient.js +115 -115
  282. package/src/components/charts/components/TerraceChart/defaultPath.js +29 -29
  283. package/src/components/charts/components/TerraceChart/index.js +276 -276
  284. package/src/components/charts/components/TerraceChart/index.less +170 -170
  285. package/src/components/charts/components/TerraceChart/insert.js +35 -35
  286. package/src/components/charts/components/TerraceChart/loading.js +33 -33
  287. package/src/components/charts/components/TimelineChart/chartToken.js +16 -16
  288. package/src/components/charts/components/TimelineChart/index.js +108 -108
  289. package/src/components/charts/components/TimelineChart/index.less +151 -151
  290. package/src/components/charts/components/TimelineChart/insertDom.js +45 -45
  291. package/src/components/charts/components/TimelineChart/timeline.js +460 -460
  292. package/src/components/charts/components/TreeChart/chartToken.js +17 -17
  293. package/src/components/charts/components/TreeChart/handleOptipn.js +101 -101
  294. package/src/components/charts/components/TreeChart/handleSeries.js +148 -148
  295. package/src/components/charts/components/TreeChart/index.js +50 -50
  296. package/src/components/charts/components/TreeMapChart/handleOptipn.js +57 -57
  297. package/src/components/charts/components/TreeMapChart/handleSeries.js +56 -56
  298. package/src/components/charts/components/TreeMapChart/handleVisualMap.js +31 -31
  299. package/src/components/charts/components/TreeMapChart/index.js +56 -56
  300. package/src/components/charts/components/WaveChart/chartToken.js +17 -17
  301. package/src/components/charts/components/WaveChart/index.js +418 -418
  302. package/src/components/charts/components/WaveChart/index.less +76 -76
  303. package/src/components/charts/components/WaveChart/insert.js +38 -38
  304. package/src/components/charts/components/WaveChart/loading.js +33 -33
  305. package/src/components/charts/components/WordCloudChart/BaseOption.js +19 -19
  306. package/src/components/charts/components/WordCloudChart/chartToken.js +17 -17
  307. package/src/components/charts/components/WordCloudChart/handleOptipn.js +20 -20
  308. package/src/components/charts/components/WordCloudChart/handleSeries.js +106 -106
  309. package/src/components/charts/components/WordCloudChart/index.js +67 -67
  310. package/src/components/charts/core.js +385 -385
  311. package/src/components/charts/feature/adaptive/index.js +45 -45
  312. package/src/components/charts/feature/adaptive/series/AssembleBubbleChart.js +21 -21
  313. package/src/components/charts/feature/adaptive/series/BarChart.js +26 -26
  314. package/src/components/charts/feature/adaptive/series/BoxplotChart.js +25 -25
  315. package/src/components/charts/feature/adaptive/series/BubbleChart.js +25 -25
  316. package/src/components/charts/feature/adaptive/series/BulletChart.js +26 -26
  317. package/src/components/charts/feature/adaptive/series/CircleProcessChart.js +24 -24
  318. package/src/components/charts/feature/adaptive/series/FunnelChart.js +21 -21
  319. package/src/components/charts/feature/adaptive/series/HeatMapChart.js +25 -25
  320. package/src/components/charts/feature/adaptive/series/JadeJueChart.js +23 -23
  321. package/src/components/charts/feature/adaptive/series/LineChart.js +25 -25
  322. package/src/components/charts/feature/adaptive/series/LiquidfillChart.js +25 -25
  323. package/src/components/charts/feature/adaptive/series/PieChart.js +24 -24
  324. package/src/components/charts/feature/adaptive/series/PolarBarChart.js +21 -21
  325. package/src/components/charts/feature/adaptive/series/ScatterChart.js +25 -25
  326. package/src/components/charts/feature/adaptive/series/SunburstChart.js +24 -24
  327. package/src/components/charts/feature/adaptive/utils/axis.js +25 -25
  328. package/src/components/charts/feature/adaptive/utils/label.js +29 -29
  329. package/src/components/charts/feature/adaptive/utils/legend.js +29 -29
  330. package/src/components/charts/feature/adaptive/utils/title.js +29 -29
  331. package/src/components/charts/feature/adaptive/utils/tooltip.js +29 -29
  332. package/src/components/charts/feature/axistip/index.js +116 -116
  333. package/src/components/charts/feature/card/chartToken.js +17 -17
  334. package/src/components/charts/feature/card/index.js +225 -225
  335. package/src/components/charts/feature/card/index.less +166 -166
  336. package/src/components/charts/feature/drag/index.js +353 -353
  337. package/src/components/charts/feature/drag/index.less +53 -53
  338. package/src/components/charts/feature/equalLabel/index.js +62 -62
  339. package/src/components/charts/feature/expandLegend/constants.js +22 -22
  340. package/src/components/charts/feature/expandLegend/index.js +190 -190
  341. package/src/components/charts/feature/expandLegend/index.less +1043 -1043
  342. package/src/components/charts/feature/expandLegend/mutiSelect/constants.js +40 -40
  343. package/src/components/charts/feature/expandLegend/mutiSelect/index.js +157 -157
  344. package/src/components/charts/feature/expandLegend/mutiSelect/item.js +133 -133
  345. package/src/components/charts/feature/expandLegend/mutiSelect/position.js +43 -43
  346. package/src/components/charts/feature/expandLegend/mutiSelect/search.js +79 -79
  347. package/src/components/charts/feature/expandLegend/mutiSelectLegend/constants.js +41 -41
  348. package/src/components/charts/feature/expandLegend/mutiSelectLegend/group.js +111 -111
  349. package/src/components/charts/feature/expandLegend/mutiSelectLegend/index.js +97 -97
  350. package/src/components/charts/feature/expandLegend/mutiSelectLegend/item.js +114 -114
  351. package/src/components/charts/feature/expandLegend/mutiSelectLegend/more.js +100 -100
  352. package/src/components/charts/feature/expandLegend/mutiSelectLegend/paging.js +102 -102
  353. package/src/components/charts/feature/expandLegend/mutiSelectLegend/scroll.js +33 -33
  354. package/src/components/charts/feature/expandLegend/mutiSelectList/constants.js +34 -34
  355. package/src/components/charts/feature/expandLegend/mutiSelectList/index.js +181 -181
  356. package/src/components/charts/feature/expandLegend/mutiSelectList/statisticList.js +145 -145
  357. package/src/components/charts/feature/expandLegend/singleSelect/constants.js +40 -40
  358. package/src/components/charts/feature/expandLegend/singleSelect/index.js +170 -170
  359. package/src/components/charts/feature/expandLegend/singleSelect/item.js +74 -74
  360. package/src/components/charts/feature/expandLegend/singleSelect/position.js +33 -33
  361. package/src/components/charts/feature/expandLegend/singleSelect/search.js +76 -76
  362. package/src/components/charts/feature/expandLegend/singleSelectLegend/constants.js +41 -41
  363. package/src/components/charts/feature/expandLegend/singleSelectLegend/group.js +115 -115
  364. package/src/components/charts/feature/expandLegend/singleSelectLegend/index.js +97 -97
  365. package/src/components/charts/feature/expandLegend/singleSelectLegend/item.js +112 -112
  366. package/src/components/charts/feature/expandLegend/singleSelectLegend/more.js +39 -39
  367. package/src/components/charts/feature/expandLegend/singleSelectLegend/scroll.js +33 -33
  368. package/src/components/charts/feature/expandLegend/tips/constants.js +21 -21
  369. package/src/components/charts/feature/expandLegend/tips/index.js +168 -168
  370. package/src/components/charts/feature/fluctuation/index.js +64 -64
  371. package/src/components/charts/feature/linter/dialog/index.js +111 -111
  372. package/src/components/charts/feature/linter/index.js +130 -130
  373. package/src/components/charts/feature/linter/lints/charts/Bar.js +45 -45
  374. package/src/components/charts/feature/linter/lints/charts/Line.js +30 -30
  375. package/src/components/charts/feature/linter/lints/charts/Pie.js +38 -38
  376. package/src/components/charts/feature/linter/lints/charts/Radar.js +37 -37
  377. package/src/components/charts/feature/linter/lints/charts/index.js +36 -36
  378. package/src/components/charts/feature/linter/lints/modules/angleAxis.js +46 -46
  379. package/src/components/charts/feature/linter/lints/modules/color.js +18 -18
  380. package/src/components/charts/feature/linter/lints/modules/dataZoom.js +51 -51
  381. package/src/components/charts/feature/linter/lints/modules/index.js +63 -63
  382. package/src/components/charts/feature/linter/lints/modules/legend.js +63 -63
  383. package/src/components/charts/feature/linter/lints/modules/radar.js +58 -58
  384. package/src/components/charts/feature/linter/lints/modules/radiusAxis.js +48 -48
  385. package/src/components/charts/feature/linter/lints/modules/title.js +43 -43
  386. package/src/components/charts/feature/linter/lints/modules/tooltip.js +28 -28
  387. package/src/components/charts/feature/linter/lints/modules/util.js +97 -97
  388. package/src/components/charts/feature/linter/lints/modules/xAxis.js +51 -51
  389. package/src/components/charts/feature/linter/lints/modules/yAxis.js +51 -51
  390. package/src/components/charts/feature/mediaScreen/index.js +94 -94
  391. package/src/components/charts/feature/mini/miniBarChart.js +57 -57
  392. package/src/components/charts/feature/mini/miniCircleProcessChart.js +31 -31
  393. package/src/components/charts/feature/mini/miniLineChart.js +57 -57
  394. package/src/components/charts/feature/mini/miniProcessChart.js +63 -63
  395. package/src/components/charts/feature/nodeRender/angular-node.js +99 -99
  396. package/src/components/charts/feature/nodeRender/index.js +30 -30
  397. package/src/components/charts/feature/nodeRender/react-node.js +82 -82
  398. package/src/components/charts/feature/nodeRender/vue-node.js +108 -108
  399. package/src/components/charts/feature/performance/lttb.js +84 -84
  400. package/src/components/charts/feature/readScreen/index.js +18 -18
  401. package/src/components/charts/feature/token/color/bpit/dark.js +67 -67
  402. package/src/components/charts/feature/token/color/bpit/index.js +20 -20
  403. package/src/components/charts/feature/token/color/bpit/light.js +66 -66
  404. package/src/components/charts/feature/token/color/cloud/board-dark.js +260 -260
  405. package/src/components/charts/feature/token/color/cloud/board.js +275 -275
  406. package/src/components/charts/feature/token/color/cloud/dark.js +78 -78
  407. package/src/components/charts/feature/token/color/cloud/index.js +20 -20
  408. package/src/components/charts/feature/token/color/cloud/light.js +77 -77
  409. package/src/components/charts/feature/token/color/hdesign/board.js +204 -204
  410. package/src/components/charts/feature/token/color/hdesign/dark.js +78 -78
  411. package/src/components/charts/feature/token/color/hdesign/index.js +20 -20
  412. package/src/components/charts/feature/token/color/hdesign/light.js +79 -79
  413. package/src/components/charts/feature/token/color/ict/board.js +190 -190
  414. package/src/components/charts/feature/token/color/ict/dark.js +61 -61
  415. package/src/components/charts/feature/token/color/ict/index.js +20 -20
  416. package/src/components/charts/feature/token/color/ict/light.js +62 -62
  417. package/src/components/charts/feature/token/color/index.js +29 -29
  418. package/src/components/charts/feature/token/color/util.js +42 -42
  419. package/src/components/charts/feature/token/factory/chartsToken/AreaChart.js +20 -20
  420. package/src/components/charts/feature/token/factory/chartsToken/AssembleBubbleChart.js +26 -26
  421. package/src/components/charts/feature/token/factory/chartsToken/BarChart.js +27 -27
  422. package/src/components/charts/feature/token/factory/chartsToken/BoxplotChart.js +27 -27
  423. package/src/components/charts/feature/token/factory/chartsToken/BubbleChart.js +22 -22
  424. package/src/components/charts/feature/token/factory/chartsToken/BulletChart.js +23 -23
  425. package/src/components/charts/feature/token/factory/chartsToken/CandlestickChart.js +20 -20
  426. package/src/components/charts/feature/token/factory/chartsToken/ChartCard.js +33 -33
  427. package/src/components/charts/feature/token/factory/chartsToken/CircleProcessChart.js +23 -23
  428. package/src/components/charts/feature/token/factory/chartsToken/FunnelChart.js +26 -26
  429. package/src/components/charts/feature/token/factory/chartsToken/GaugeChart.js +27 -27
  430. package/src/components/charts/feature/token/factory/chartsToken/HeatMapChart.js +21 -21
  431. package/src/components/charts/feature/token/factory/chartsToken/HillChart.js +21 -21
  432. package/src/components/charts/feature/token/factory/chartsToken/JadeJueChart.js +28 -28
  433. package/src/components/charts/feature/token/factory/chartsToken/LineChart.js +36 -36
  434. package/src/components/charts/feature/token/factory/chartsToken/LiquidfillChart.js +22 -22
  435. package/src/components/charts/feature/token/factory/chartsToken/PieChart.js +49 -49
  436. package/src/components/charts/feature/token/factory/chartsToken/PolarBarChart.js +22 -22
  437. package/src/components/charts/feature/token/factory/chartsToken/ProcessChart.js +40 -40
  438. package/src/components/charts/feature/token/factory/chartsToken/RadarChart.js +36 -36
  439. package/src/components/charts/feature/token/factory/chartsToken/RegionChart.js +20 -20
  440. package/src/components/charts/feature/token/factory/chartsToken/SankeyChart.js +22 -22
  441. package/src/components/charts/feature/token/factory/chartsToken/ScatterChart.js +21 -21
  442. package/src/components/charts/feature/token/factory/chartsToken/SunburstChart.js +22 -22
  443. package/src/components/charts/feature/token/factory/chartsToken/TimelineChart.js +21 -21
  444. package/src/components/charts/feature/token/factory/chartsToken/TreeChart.js +21 -21
  445. package/src/components/charts/feature/token/factory/chartsToken/WaveChart.js +23 -23
  446. package/src/components/charts/feature/token/factory/chartsToken/WordCloudChart.js +21 -21
  447. package/src/components/charts/feature/token/factory/chartsToken/index.js +79 -79
  448. package/src/components/charts/feature/token/factory/getAliasToken.js +41 -41
  449. package/src/components/charts/feature/token/factory/getExportColors.js +45 -45
  450. package/src/components/charts/feature/token/factory/getGlobalToken.js +25 -25
  451. package/src/components/charts/feature/token/factory/getModelToken.js +389 -389
  452. package/src/components/charts/feature/token/factory/getSceneToken.js +41 -41
  453. package/src/components/charts/feature/token/factory/globalToken/border.js +21 -21
  454. package/src/components/charts/feature/token/factory/globalToken/borderRadius.js +22 -22
  455. package/src/components/charts/feature/token/factory/globalToken/font.js +26 -26
  456. package/src/components/charts/feature/token/factory/globalToken/index.js +28 -28
  457. package/src/components/charts/feature/token/factory/globalToken/lineType.js +19 -19
  458. package/src/components/charts/feature/token/factory/globalToken/size.js +22 -22
  459. package/src/components/charts/feature/token/factory/globalToken/space.js +25 -25
  460. package/src/components/charts/feature/token/factory/index.js +39 -39
  461. package/src/components/charts/feature/token/factory/mergeToken.js +72 -72
  462. package/src/components/charts/feature/token/index.js +176 -176
  463. package/src/components/charts/feature/token/readme.md +11 -11
  464. package/src/components/charts/feature/token/theme/bpit/index.js +19 -19
  465. package/src/components/charts/feature/token/theme/cloud/getAliasToken.js +247 -247
  466. package/src/components/charts/feature/token/theme/cloud/getSceneToken.js +73 -73
  467. package/src/components/charts/feature/token/theme/cloud/index.js +19 -19
  468. package/src/components/charts/feature/token/theme/hdesign/getAliasToken.js +249 -249
  469. package/src/components/charts/feature/token/theme/hdesign/getSceneToken.js +74 -74
  470. package/src/components/charts/feature/token/theme/hdesign/index.js +19 -19
  471. package/src/components/charts/feature/token/theme/ict/getAliasToken.js +249 -249
  472. package/src/components/charts/feature/token/theme/ict/getSceneToken.js +71 -71
  473. package/src/components/charts/feature/token/theme/ict/index.js +19 -19
  474. package/src/components/charts/feature/wcag/index.js +335 -335
  475. package/src/components/charts/feature/xss/index.js +51 -51
  476. package/src/components/charts/framework/charts/CircleArcChart/index.js +142 -142
  477. package/src/components/charts/framework/charts/CircleChart/index.js +140 -140
  478. package/src/components/charts/framework/charts/CustomizeChart/index.js +166 -166
  479. package/src/components/charts/framework/charts/ForceDirectedChart/index.js +140 -140
  480. package/src/components/charts/framework/charts/ForceDirectedChart/initDom.js +20 -20
  481. package/src/components/charts/framework/charts/ForceDirectedChart/libs/Node.js +148 -148
  482. package/src/components/charts/framework/charts/ForceDirectedChart/libs/center.js +71 -71
  483. package/src/components/charts/framework/charts/ForceDirectedChart/libs/collide.js +151 -151
  484. package/src/components/charts/framework/charts/ForceDirectedChart/libs/constant.js +17 -17
  485. package/src/components/charts/framework/charts/ForceDirectedChart/libs/dispatch.js +95 -95
  486. package/src/components/charts/framework/charts/ForceDirectedChart/libs/index.js +19 -19
  487. package/src/components/charts/framework/charts/ForceDirectedChart/libs/jiggle.js +16 -16
  488. package/src/components/charts/framework/charts/ForceDirectedChart/libs/lcg.js +23 -23
  489. package/src/components/charts/framework/charts/ForceDirectedChart/libs/link.js +128 -128
  490. package/src/components/charts/framework/charts/ForceDirectedChart/libs/manyBody.js +127 -127
  491. package/src/components/charts/framework/charts/ForceDirectedChart/libs/quadtree.js +393 -393
  492. package/src/components/charts/framework/charts/ForceDirectedChart/libs/radial.js +68 -68
  493. package/src/components/charts/framework/charts/ForceDirectedChart/libs/simulation.js +171 -171
  494. package/src/components/charts/framework/charts/ForceDirectedChart/libs/timer.js +121 -121
  495. package/src/components/charts/framework/charts/ForceDirectedChart/libs/x.js +52 -52
  496. package/src/components/charts/framework/charts/ForceDirectedChart/libs/y.js +52 -52
  497. package/src/components/charts/framework/charts/GridChart/index.js +174 -174
  498. package/src/components/charts/framework/charts/LinearArcChart/index.js +143 -143
  499. package/src/components/charts/framework/charts/MindmapChart/index.js +166 -166
  500. package/src/components/charts/framework/charts/MindmapChart/index.less +84 -84
  501. package/src/components/charts/framework/core/Base.js +53 -53
  502. package/src/components/charts/framework/core/Relation.js +77 -77
  503. package/src/components/charts/framework/module/animation/Animate.js +433 -433
  504. package/src/components/charts/framework/module/animation/Animation.js +75 -75
  505. package/src/components/charts/framework/module/animation/AnimationGroup.js +136 -136
  506. package/src/components/charts/framework/module/animation/Easing.js +224 -224
  507. package/src/components/charts/framework/module/animation/Interpolation.js +87 -87
  508. package/src/components/charts/framework/module/animation/index.js +19 -19
  509. package/src/components/charts/framework/module/arrow/Manager.js +132 -132
  510. package/src/components/charts/framework/module/arrow/index.js +96 -96
  511. package/src/components/charts/framework/module/canvas/grid.js +287 -287
  512. package/src/components/charts/framework/module/canvas/index.js +433 -433
  513. package/src/components/charts/framework/module/canvas/index.less +102 -102
  514. package/src/components/charts/framework/module/canvas/initDom.js +66 -66
  515. package/src/components/charts/framework/module/canvas/tool.js +61 -61
  516. package/src/components/charts/framework/module/connector/Manager.js +103 -103
  517. package/src/components/charts/framework/module/connector/index.js +98 -98
  518. package/src/components/charts/framework/module/connector/index.less +36 -36
  519. package/src/components/charts/framework/module/connector/type/dot.js +20 -20
  520. package/src/components/charts/framework/module/connector/type/expand.js +210 -210
  521. package/src/components/charts/framework/module/contextmenu/index.js +149 -149
  522. package/src/components/charts/framework/module/contextmenu/index.less +39 -39
  523. package/src/components/charts/framework/module/data/Manager.js +55 -55
  524. package/src/components/charts/framework/module/legend/Item.js +217 -217
  525. package/src/components/charts/framework/module/legend/constants.js +13 -13
  526. package/src/components/charts/framework/module/legend/getSymbol.js +85 -85
  527. package/src/components/charts/framework/module/legend/index.js +118 -118
  528. package/src/components/charts/framework/module/legend/util.js +80 -80
  529. package/src/components/charts/framework/module/line/Animation.js +124 -124
  530. package/src/components/charts/framework/module/line/Manager.js +299 -299
  531. package/src/components/charts/framework/module/line/Tag.js +60 -60
  532. package/src/components/charts/framework/module/line/bufferRender.js +73 -73
  533. package/src/components/charts/framework/module/line/cross/pathPoints.js +232 -232
  534. package/src/components/charts/framework/module/line/cross/vectorUtil.js +66 -66
  535. package/src/components/charts/framework/module/line/customize.js +28 -28
  536. package/src/components/charts/framework/module/line/index.js +259 -259
  537. package/src/components/charts/framework/module/line/index.less +23 -23
  538. package/src/components/charts/framework/module/line/type/Bezier.js +90 -90
  539. package/src/components/charts/framework/module/line/type/Circle.js +38 -38
  540. package/src/components/charts/framework/module/line/type/Direct.js +23 -23
  541. package/src/components/charts/framework/module/line/type/Ellipse.js +88 -88
  542. package/src/components/charts/framework/module/line/type/Round.js +245 -245
  543. package/src/components/charts/framework/module/lineLayout/CircleShape/calculate.js +70 -70
  544. package/src/components/charts/framework/module/lineLayout/CircleShape/index.js +31 -31
  545. package/src/components/charts/framework/module/lineLayout/CircleShape/init.js +33 -33
  546. package/src/components/charts/framework/module/lineLayout/RectShape/calculate.js +173 -173
  547. package/src/components/charts/framework/module/lineLayout/RectShape/index.js +43 -43
  548. package/src/components/charts/framework/module/lineLayout/RectShape/init.js +78 -78
  549. package/src/components/charts/framework/module/lineLayout/RectShape/sharing.js +56 -56
  550. package/src/components/charts/framework/module/lineLayout/index.js +30 -30
  551. package/src/components/charts/framework/module/node/Manager.js +189 -189
  552. package/src/components/charts/framework/module/node/bufferRender.js +72 -72
  553. package/src/components/charts/framework/module/node/convertData/index.js +23 -23
  554. package/src/components/charts/framework/module/node/convertData/returnSelf.js +15 -15
  555. package/src/components/charts/framework/module/node/convertData/transform.js +23 -23
  556. package/src/components/charts/framework/module/node/convertData/treeToLink.js +35 -35
  557. package/src/components/charts/framework/module/node/index.js +187 -187
  558. package/src/components/charts/framework/module/nodeLayout/circle/excute.js +269 -269
  559. package/src/components/charts/framework/module/nodeLayout/circle/index.js +23 -23
  560. package/src/components/charts/framework/module/nodeLayout/customize/index.js +15 -15
  561. package/src/components/charts/framework/module/nodeLayout/defaults/excute.js +26 -26
  562. package/src/components/charts/framework/module/nodeLayout/defaults/index.js +19 -19
  563. package/src/components/charts/framework/module/nodeLayout/grid/excute.js +391 -391
  564. package/src/components/charts/framework/module/nodeLayout/grid/index.js +19 -19
  565. package/src/components/charts/framework/module/nodeLayout/index.js +26 -26
  566. package/src/components/charts/framework/module/nodeLayout/linearArc/index.js +33 -33
  567. package/src/components/charts/framework/module/nodeLayout/nonLayeredTidyTree/NodeBox.js +165 -165
  568. package/src/components/charts/framework/module/nodeLayout/nonLayeredTidyTree/algorithm.js +261 -261
  569. package/src/components/charts/framework/module/nodeLayout/nonLayeredTidyTree/index.js +277 -277
  570. package/src/components/charts/framework/module/readme.js +126 -126
  571. package/src/components/charts/index.js +65 -65
  572. package/src/components/charts/index.less +28 -28
  573. package/src/components/charts/option/PolarSys/index.js +43 -43
  574. package/src/components/charts/option/RectSys/index.js +58 -58
  575. package/src/components/charts/option/base/index.js +24 -24
  576. package/src/components/charts/option/config/angleAxis/base.js +56 -56
  577. package/src/components/charts/option/config/angleAxis/index.js +43 -43
  578. package/src/components/charts/option/config/animation/index.js +63 -63
  579. package/src/components/charts/option/config/datazoom/base.js +123 -123
  580. package/src/components/charts/option/config/datazoom/index.js +61 -61
  581. package/src/components/charts/option/config/grid/base.js +22 -22
  582. package/src/components/charts/option/config/grid/index.js +32 -32
  583. package/src/components/charts/option/config/legend/base.js +80 -80
  584. package/src/components/charts/option/config/legend/icon.js +21 -21
  585. package/src/components/charts/option/config/legend/index.js +63 -63
  586. package/src/components/charts/option/config/legend/itemStyle.js +16 -16
  587. package/src/components/charts/option/config/legend/ldata.js +29 -29
  588. package/src/components/charts/option/config/legend/pageIcon.js +54 -54
  589. package/src/components/charts/option/config/legend/position.js +18 -18
  590. package/src/components/charts/option/config/legend/size.js +16 -16
  591. package/src/components/charts/option/config/legend/textStyle.js +16 -16
  592. package/src/components/charts/option/config/mark/index.js +73 -73
  593. package/src/components/charts/option/config/polar/base.js +30 -30
  594. package/src/components/charts/option/config/polar/index.js +35 -35
  595. package/src/components/charts/option/config/polarTitle/base.js +40 -40
  596. package/src/components/charts/option/config/polarTitle/index.js +52 -52
  597. package/src/components/charts/option/config/polarTitle/subtextStyle.js +21 -21
  598. package/src/components/charts/option/config/polarTitle/textStyle.js +22 -22
  599. package/src/components/charts/option/config/radiusAxis/base.js +55 -55
  600. package/src/components/charts/option/config/radiusAxis/index.js +41 -41
  601. package/src/components/charts/option/config/rectTitle/base.js +31 -31
  602. package/src/components/charts/option/config/rectTitle/index.js +52 -52
  603. package/src/components/charts/option/config/toolbox/base.js +42 -42
  604. package/src/components/charts/option/config/toolbox/index.js +11 -11
  605. package/src/components/charts/option/config/tooltip/axisPointer.js +31 -31
  606. package/src/components/charts/option/config/tooltip/base.js +62 -62
  607. package/src/components/charts/option/config/tooltip/formatter.js +63 -63
  608. package/src/components/charts/option/config/tooltip/index.js +41 -41
  609. package/src/components/charts/option/config/visualMap/index.js +90 -90
  610. package/src/components/charts/option/config/xAxis/axisLabel.js +35 -35
  611. package/src/components/charts/option/config/xAxis/axisLine.js +29 -29
  612. package/src/components/charts/option/config/xAxis/axisMargin.js +31 -31
  613. package/src/components/charts/option/config/xAxis/base.js +66 -66
  614. package/src/components/charts/option/config/xAxis/boundaryGap.js +17 -17
  615. package/src/components/charts/option/config/xAxis/index.js +52 -52
  616. package/src/components/charts/option/config/xAxis/name.js +18 -18
  617. package/src/components/charts/option/config/xAxis/xdata.js +22 -22
  618. package/src/components/charts/option/config/xAxis/xkey.js +20 -20
  619. package/src/components/charts/option/config/yAxis/axisOptimization.js +31 -31
  620. package/src/components/charts/option/config/yAxis/base.js +59 -59
  621. package/src/components/charts/option/config/yAxis/index.js +68 -68
  622. package/src/components/charts/option/config/yAxis/ydata.js +28 -28
  623. package/src/components/charts/option/init/index.js +204 -204
  624. package/src/components/charts/register.js +178 -178
  625. package/src/components/charts/theme.js +62 -62
  626. package/src/components/charts/util/Sequence.js +21 -21
  627. package/src/components/charts/util/centerDom.js +92 -92
  628. package/src/components/charts/util/cloneDeep.js +29 -29
  629. package/src/components/charts/util/color.js +192 -192
  630. package/src/components/charts/util/constants.js +124 -124
  631. package/src/components/charts/util/convert.js +49 -49
  632. package/src/components/charts/util/debounce.js +23 -23
  633. package/src/components/charts/util/defendXSS.js +81 -81
  634. package/src/components/charts/util/dom.js +89 -89
  635. package/src/components/charts/util/equal.js +62 -62
  636. package/src/components/charts/util/event.js +25 -25
  637. package/src/components/charts/util/hashMap.js +111 -111
  638. package/src/components/charts/util/init/insert.js +164 -164
  639. package/src/components/charts/util/math.js +182 -182
  640. package/src/components/charts/util/merge.js +78 -78
  641. package/src/components/charts/util/paint.js +98 -98
  642. package/src/components/charts/util/sort/max.js +64 -64
  643. package/src/components/charts/util/sort/min.js +64 -64
  644. package/src/components/charts/util/throttle.js +33 -33
  645. package/src/components/charts/util/tips.js +24 -24
  646. package/src/components/charts/util/type.js +45 -45
  647. package/src/components/ebiz-form/components/cascader.vue +61 -61
  648. package/src/components/ebiz-form/components/checkbox.vue +37 -37
  649. package/src/components/ebiz-form/components/city.vue +137 -137
  650. package/src/components/ebiz-form/components/date-panel.vue +52 -52
  651. package/src/components/ebiz-form/components/date-range-panel.vue +52 -52
  652. package/src/components/ebiz-form/components/date-range.vue +56 -56
  653. package/src/components/ebiz-form/components/date.vue +52 -52
  654. package/src/components/ebiz-form/components/editor-multi-language.vue +47 -47
  655. package/src/components/ebiz-form/components/editor.vue +78 -78
  656. package/src/components/ebiz-form/components/file-multi-language.vue +52 -52
  657. package/src/components/ebiz-form/components/file.vue +149 -149
  658. package/src/components/ebiz-form/components/images-multi-language.vue +52 -52
  659. package/src/components/ebiz-form/components/images.vue +129 -129
  660. package/src/components/ebiz-form/components/img-multi-language.vue +51 -51
  661. package/src/components/ebiz-form/components/img.vue +129 -129
  662. package/src/components/ebiz-form/components/number.vue +50 -50
  663. package/src/components/ebiz-form/components/radio.vue +28 -28
  664. package/src/components/ebiz-form/components/select.vue +119 -119
  665. package/src/components/ebiz-form/components/switch.vue +23 -23
  666. package/src/components/ebiz-form/components/text-multi-language.vue +47 -47
  667. package/src/components/ebiz-form/components/text.vue +52 -52
  668. package/src/components/ebiz-form/components/textarea-multi-language.vue +48 -48
  669. package/src/components/ebiz-form/components/textarea.vue +29 -29
  670. package/src/components/ebiz-form/components/video-multi-language.vue +51 -51
  671. package/src/components/ebiz-form/components/video.vue +97 -97
  672. package/src/components/ebiz-form/index.vue +157 -157
  673. package/src/components/examples/PopconfirmExample.vue +150 -0
  674. package/src/components/icons/IconCommunity.vue +7 -7
  675. package/src/components/icons/IconDocumentation.vue +7 -7
  676. package/src/components/icons/IconEcosystem.vue +7 -7
  677. package/src/components/icons/IconSupport.vue +7 -7
  678. package/src/components/icons/IconTooling.vue +19 -19
  679. package/src/index.js +188 -169
  680. package/src/main.js +57 -57
  681. package/src/router/index.js +314 -309
  682. package/src/utils/formatCode.js +24 -24
  683. package/src/utils/generateImportStatement.js +52 -52
  684. package/src/utils/hasJsx.js +25 -25
  685. package/src/utils/index.js +166 -166
  686. package/src/utils/mergeOptions.js +29 -29
  687. package/src/utils/parseRequiredBlocks.js +18 -18
  688. package/src/utils/upload.ts +126 -126
  689. package/src/utils/vue-sfc-validator.js +155 -155
  690. package/src/views/Button.vue +23 -23
  691. package/src/views/CheckboxDemo.vue +104 -104
  692. package/src/views/DataContainer.vue +19 -19
  693. package/src/views/DialogDemo.vue +125 -125
  694. package/src/views/EbizAutoFormDemo.vue +130 -0
  695. package/src/views/EbizAvatar.vue +223 -223
  696. package/src/views/EbizDetailBlockDemo.vue +30 -30
  697. package/src/views/EbizEmployeeInfo.vue +249 -249
  698. package/src/views/EbizRadioDemo.vue +151 -151
  699. package/src/views/EbizSpace.vue +185 -185
  700. package/src/views/EbizSwiper.vue +157 -157
  701. package/src/views/Form.vue +19 -19
  702. package/src/views/GridDemo.vue +238 -238
  703. package/src/views/Home.vue +132 -125
  704. package/src/views/Mindmap.vue +19 -19
  705. package/src/views/MyComponent.vue +19 -19
  706. package/src/views/OkrTree.vue +19 -19
  707. package/src/views/PageHeaderDemo.vue +104 -104
  708. package/src/views/PaginationDemo.vue +96 -96
  709. package/src/views/PopconfirmDemo.vue +81 -0
  710. package/src/views/RemoteSelect.vue +350 -350
  711. package/src/views/StatisticDemo.vue +190 -190
  712. package/src/views/SwitchDemo.vue +79 -79
  713. package/src/views/Table.vue +19 -19
  714. package/src/views/TableDemo.vue +334 -334
  715. package/src/views/TableSortDemo.vue +143 -143
  716. package/src/views/TableView.vue +68 -68
  717. package/src/views/TabsDemo.vue +282 -282
  718. package/src/views/TagDemo.vue +101 -101
  719. package/src/views/TdesignAlert.vue +98 -98
  720. package/src/views/TdesignButton.vue +190 -190
  721. package/src/views/TdesignCalendar.vue +94 -94
  722. package/src/views/TdesignCard.vue +296 -296
  723. package/src/views/TdesignCollapse.vue +293 -293
  724. package/src/views/TdesignDatePicker.vue +187 -187
  725. package/src/views/TdesignDescriptions.vue +102 -0
  726. package/src/views/TdesignForm.vue +248 -248
  727. package/src/views/TdesignIcon.vue +203 -203
  728. package/src/views/TdesignImage.vue +215 -215
  729. package/src/views/TdesignImageViewer.vue +198 -198
  730. package/src/views/TdesignInput.vue +252 -252
  731. package/src/views/TdesignSelect.vue +473 -473
  732. package/src/views/TdesignSwiper.vue +157 -157
  733. package/src/views/TextareaDemo.vue +93 -93
  734. package/src/views/TimePickerDemo.vue +146 -146
  735. package/src/views/TimelineDemo.vue +160 -160
  736. package/src/views/Title.vue +19 -19
  737. package/src/views/TreeDemo.vue +254 -254
  738. package/src/views/TreeMergeTableDemo.vue +240 -0
  739. package/src/views/UploadDemo.vue +121 -121
  740. package/src/views/WatermarkDemo.vue +85 -85
@@ -0,0 +1,1393 @@
1
+ <template>
2
+ <div>
3
+ <!-- 选中数据结构展示 -->
4
+ <!-- <div style="margin-bottom: 16px">
5
+ <t-card title="选中数据结构(JSON)">
6
+ <pre style="background: #f6f8fa; padding: 12px 16px; border-radius: 6px; overflow: auto; max-height: 300px"
7
+ >{{ JSON.stringify(computedSelectedData, null, 2) }}
8
+ </pre>
9
+ </t-card>
10
+ </div> -->
11
+ <!-- 树表上方的数据权限配置模块 -->
12
+ <div class="permission-config-panel">
13
+ <div class="panel-header">
14
+ <h3 class="panel-title">数据权限配置</h3>
15
+ </div>
16
+ <div class="panel-content">
17
+ <div class="permission-type-selector">
18
+ <t-radio-group v-model="globalPermission" class="permission-radio-group">
19
+ <t-radio-button :value="1">全部数据</t-radio-button>
20
+ <t-radio-button :value="2">事业部数据</t-radio-button>
21
+ <t-radio-button :value="3">本部门数据</t-radio-button>
22
+ <t-radio-button :value="4">子部门数据</t-radio-button>
23
+ <t-radio-button :value="5">个人数据</t-radio-button>
24
+ <t-radio-button :value="6">自定义数据</t-radio-button>
25
+ </t-radio-group>
26
+ </div>
27
+
28
+ <div v-if="globalPermission === 6" class="org-select-row">
29
+ <div class="selected-count">
30
+ {{ globalSelectedOrgs.length > 0 ? '已选择' + globalSelectedOrgs.length + '个组织' : '未选择组织' }}
31
+ </div>
32
+ <t-button theme="primary" @click="openGlobalOrgSelector" class="org-select-btn">
33
+ {{ globalSelectedOrgs.length > 0 ? '编辑' : '选择' }}
34
+ <template #suffix>
35
+ <t-icon name="chevron-right" />
36
+ </template>
37
+ </t-button>
38
+ </div>
39
+
40
+ <div v-if="globalPermission === 6" class="selected-orgs-panel">
41
+ <div class="selected-orgs-header">
42
+ 已选组织:
43
+ <t-button theme="primary" variant="text" size="small" @click="clearGlobalOrgs">清空</t-button>
44
+ </div>
45
+ <div class="selected-orgs-content">
46
+ <div v-if="globalSelectedOrgs.length === 0" class="no-org-selected">请从左侧选择组织</div>
47
+ <div v-else class="selected-orgs-tags">
48
+ <t-tag v-for="org in globalSelectedOrgs" :key="org.id" theme="primary" variant="light" class="org-tag"
49
+ closable @close="removeGlobalOrg(org.id)">
50
+ {{ org.name }}
51
+ </t-tag>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+
58
+ <t-table :bordered="true" :data="data" :columns="columns" row-key="id" :rowspan-and-colspan="rowspanAndColspan"
59
+ resizable table-layout="fixed" lazy-load @cell-click="handleCellClick">
60
+ <!-- 模块列的自定义单元格 -->
61
+ <template #module="{ row }">
62
+ <div class="cell-with-checkbox">
63
+ <t-checkbox v-model="row.moduleChecked" @change="(checked) => handleModuleCheck(row, checked)"></t-checkbox>
64
+ <span class="cell-text">{{ row.module }}</span>
65
+ </div>
66
+ </template>
67
+
68
+ <!-- 子模块1列的自定义单元格 -->
69
+ <template #subModule1="{ row }">
70
+ <div class="cell-with-checkbox">
71
+ <t-checkbox v-model="row.subModule1Checked"
72
+ @change="(checked) => handleSubModule1Check(row, checked)"></t-checkbox>
73
+ <span class="cell-text">{{ row.subModule1 || row.module }}</span>
74
+ </div>
75
+ </template>
76
+
77
+ <!-- 子模块2列的自定义单元格 -->
78
+ <template #subModule2="{ row }">
79
+ <div class="cell-with-checkbox" v-if="row.subModule2">
80
+ <t-checkbox v-model="row.subModule2Checked"
81
+ @change="(checked) => handleSubModule2Check(row, checked)"></t-checkbox>
82
+ <span class="cell-text">{{ row.subModule2 }}</span>
83
+ </div>
84
+ <div v-else class="cell-with-checkbox">
85
+ <span class="cell-text empty-cell">-</span>
86
+ </div>
87
+ </template>
88
+
89
+ <!-- 功能列的自定义单元格 -->
90
+ <template #functions="{ row }">
91
+ <div class="functions-container">
92
+ <div v-for="(func, idx) in row.functions" :key="func.id || idx" class="function-item">
93
+ <t-checkbox v-model="func.checked"
94
+ @change="(checked) => handleFunctionCheck(row, func, checked)"></t-checkbox>
95
+ <span class="cell-text">{{ func.name }}</span>
96
+ </div>
97
+ </div>
98
+ </template>
99
+
100
+ <!-- 操作列的自定义单元格 -->
101
+ <template #operation="{ row }">
102
+ <div class="operation-buttons">
103
+ <t-button theme="primary" size="medium" @click="openPermissionDialog(row)"
104
+ :disabled="!row.functions.some((f) => f.checked)">数据权限配置</t-button>
105
+ </div>
106
+ </template>
107
+
108
+ <slot></slot>
109
+ </t-table>
110
+
111
+ <!-- 新增保存按钮 -->
112
+ <div style="margin-top: 24px; display: flex; justify-content: flex-end">
113
+ <t-button theme="primary" @click="handleSaveRolePermission">保存角色权限</t-button>
114
+ </div>
115
+
116
+ <!-- 全局组织选择弹窗 -->
117
+ <t-dialog v-model:visible="globalOrgDialogVisible" header="选择组织" width="800px" attach="body"
118
+ :confirm-btn="{ content: '确定', theme: 'primary' }" :cancel-btn="{ content: '取消', theme: 'default' }"
119
+ @confirm="handleGlobalOrgConfirm" @cancel="handleGlobalOrgCancel">
120
+ <div class="org-selector-dialog">
121
+ <div class="org-dialog-container">
122
+ <div class="org-left-panel">
123
+ <div class="org-panel-header">组织架构</div>
124
+ <div class="org-search-container">
125
+ <t-input v-model="keyWord" placeholder="请输入关键词搜索" clearable style="width: 100%">
126
+ <template #suffix>
127
+ <t-button theme="default" shape="square" @click="onOrgSearch" size="small">
128
+ <t-icon name="search" />
129
+ </t-button>
130
+ </template>
131
+ </t-input>
132
+ <div v-if="keyWord" class="search-result-info">
133
+ 找到 {{ getMatchedCount(filteredOrgTreeData) }} 个结果
134
+ </div>
135
+ </div>
136
+ <div class="org-tree-container">
137
+ <t-tree :data="filteredOrgTreeData" :keys="orgTreeKeys" activable hover expandAll line
138
+ expand-on-click-node :expanded="expandedKeys" :active="activeKey" @active="handleOrgNodeActive"
139
+ @expand="handleOrgNodeExpand">
140
+ <template #operations="{ node }">
141
+ <t-checkbox :checked="isGlobalOrgNodeSelected(node.data.id)"
142
+ @change="(checked) => handleGlobalOrgNodeSelect(node.data, checked)"></t-checkbox>
143
+ </template>
144
+ <template #label="{ node }">
145
+ <div class="tree-node-label" :class="{ selected: isGlobalOrgNodeSelected(node.data.id) }"
146
+ @click.stop="toggleGlobalOrgNodeSelect(node.data)">
147
+ {{ node.data.name }}
148
+ </div>
149
+ </template>
150
+ </t-tree>
151
+ <div v-if="keyWord && filteredOrgTreeData.length === 0" class="no-search-results">
152
+ 未找到符合"{{ keyWord }}"的组织
153
+ </div>
154
+ </div>
155
+ </div>
156
+ <div class="org-right-panel">
157
+ <div class="org-panel-header">
158
+ <span>已选择组织</span>
159
+ <t-button theme="primary" variant="text" @click="clearGlobalSelectedOrgs">清空</t-button>
160
+ </div>
161
+ <div class="org-selected-container">
162
+ <div v-if="tempGlobalSelectedOrgs.length === 0" class="no-selected-tip">请从左侧选择组织</div>
163
+ <div v-else class="selected-orgs-tags">
164
+ <t-tag v-for="org in tempGlobalSelectedOrgs" :key="org.id" closable @close="removeGlobalOrg(org.id)"
165
+ theme="primary" variant="light" class="org-tag">
166
+ {{ org.name }}
167
+ </t-tag>
168
+ </div>
169
+ </div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </t-dialog>
174
+
175
+ <!-- 数据权限配置弹窗(针对表格行) -->
176
+ <t-dialog v-model:visible="permissionDialogVisible" :header="permissionDialogTitle" width="800px" attach="body"
177
+ :confirm-btn="{ content: '确定', theme: 'primary' }" :cancel-btn="{ content: '取消', theme: 'default' }"
178
+ @confirm="handlePermissionConfirm" @cancel="handlePermissionCancel">
179
+ <div class="permission-content">
180
+ <template v-if="currentRow">
181
+ <div class="permission-item">
182
+ <div class="permission-options">
183
+ <t-radio-group v-model="selectedPermission">
184
+ <t-radio-button :value="1">全部数据</t-radio-button>
185
+ <t-radio-button :value="2">事业部数据</t-radio-button>
186
+ <t-radio-button :value="3">本部门数据</t-radio-button>
187
+ <t-radio-button :value="4">子部门数据</t-radio-button>
188
+ <t-radio-button :value="5">个人数据</t-radio-button>
189
+ <t-radio-button :value="6">自定义数据</t-radio-button>
190
+ </t-radio-group>
191
+ </div>
192
+
193
+ <div v-if="selectedPermission === 6" class="custom-permission">
194
+ <div class="org-dialog-container">
195
+ <div class="org-left-panel">
196
+ <div class="org-panel-header">组织架构</div>
197
+ <div class="org-search-container">
198
+ <t-input v-model="keyWord" placeholder="请输入关键词搜索" clearable style="width: 100%">
199
+ <template #suffix>
200
+ <t-button theme="default" shape="square" @click="onOrgSearch" size="small">
201
+ <t-icon name="search" />
202
+ </t-button>
203
+ </template>
204
+ </t-input>
205
+ <div v-if="keyWord" class="search-result-info">
206
+ 找到 {{ getMatchedCount(filteredOrgTreeData) }} 个结果
207
+ </div>
208
+ </div>
209
+ <div class="org-tree-container">
210
+ <t-tree :data="filteredOrgTreeData" :keys="orgTreeKeys" activable hover expandAll line
211
+ expand-on-click-node :expanded="expandedKeys" :active="activeKey" @active="handleOrgNodeActive"
212
+ @expand="handleOrgNodeExpand">
213
+ <template #operations="{ node }">
214
+ <t-checkbox :checked="isOrgNodeSelected(node.data.id)"
215
+ @change="(checked) => handleOrgNodeSelect(node.data, checked)"></t-checkbox>
216
+ </template>
217
+ <template #label="{ node }">
218
+ <div class="tree-node-label" :class="{ selected: isOrgNodeSelected(node.data.id) }"
219
+ @click.stop="toggleOrgNodeSelect(node.data)">
220
+ {{ node.data.name }}
221
+ </div>
222
+ </template>
223
+ </t-tree>
224
+ <div v-if="keyWord && filteredOrgTreeData.length === 0" class="no-search-results">
225
+ 未找到符合"{{ keyWord }}"的组织
226
+ </div>
227
+ </div>
228
+ </div>
229
+ <div class="org-right-panel">
230
+ <div class="org-panel-header">
231
+ <span>已选择组织</span>
232
+ <t-button theme="primary" variant="text" @click="clearSelectedOrgs">清空</t-button>
233
+ </div>
234
+ <div class="org-selected-container">
235
+ <div v-if="selectedOrgs.length === 0" class="no-selected-tip">请从左侧选择组织</div>
236
+ <div v-else class="selected-orgs-tags">
237
+ <t-tag v-for="org in selectedOrgs" :key="org.id" closable @close="removeSelectedOrg(org.id)"
238
+ theme="primary" variant="light" class="org-tag">
239
+ {{ org.name }}
240
+ </t-tag>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </template>
248
+ </div>
249
+ </t-dialog>
250
+
251
+ <!-- 保留原有的详情弹窗 -->
252
+ <t-dialog v-model:visible="detailDialogVisible" :header="detailDialogTitle" width="600px" :footer="false">
253
+ <div class="detail-content">
254
+ <template v-if="currentRow">
255
+ <div class="detail-item">
256
+ <span class="item-label">模块:</span>
257
+ <span class="item-value">{{ currentRow.module }}</span>
258
+ </div>
259
+
260
+ <div class="detail-item" v-if="currentRow.subModule1">
261
+ <span class="item-label">子模块1:</span>
262
+ <span class="item-value">{{ currentRow.subModule1 }}</span>
263
+ </div>
264
+
265
+ <div class="detail-item" v-if="currentRow.subModule2">
266
+ <span class="item-label">子模块2:</span>
267
+ <span class="item-value">{{ currentRow.subModule2 }}</span>
268
+ </div>
269
+
270
+ <div class="detail-item">
271
+ <span class="item-label">功能:</span>
272
+ <span class="item-value">{{ currentRow.function }}</span>
273
+ </div>
274
+
275
+ <div class="detail-item" v-if="currentRow.path">
276
+ <span class="item-label">路径:</span>
277
+ <span class="item-value">{{ currentRow.path }}</span>
278
+ </div>
279
+
280
+ <div class="detail-item" v-if="currentRow.childFunctions && currentRow.childFunctions.length > 0">
281
+ <span class="item-label">子功能:</span>
282
+ <div class="sub-functions">
283
+ <div v-for="(func, index) in currentRow.childFunctions" :key="index" class="sub-function-item">
284
+ <span>{{ func.name }}</span>
285
+ </div>
286
+ </div>
287
+ </div>
288
+ </template>
289
+ </div>
290
+ </t-dialog>
291
+ </div>
292
+ </template>
293
+
294
+ <script>
295
+ export default {
296
+ name: 'EbizTreeMergeTable'
297
+ }
298
+ </script>
299
+
300
+ <script setup>
301
+ import dataService from '../apiService/simpleDataService'
302
+ import { ref, computed, onMounted, watch } from 'vue'
303
+ import {
304
+ Table as TTable,
305
+ Checkbox as TCheckbox,
306
+ Button as TButton,
307
+ Dialog as TDialog,
308
+ RadioGroup as TRadioGroup,
309
+ RadioButton as TRadioButton,
310
+ Input as TInput,
311
+ Tree as TTree,
312
+ Tag as TTag,
313
+ Icon as TIcon
314
+ } from 'tdesign-vue-next'
315
+
316
+ const apis = {
317
+ // tree: '/menu/tree',
318
+ tree: '/function/tree',
319
+ orgTree: '/appdata/execute/plugin?key=organizational_structure',
320
+ getConfig: '/role/functions/search/{roleId}',
321
+ getRole: '/role/position/{positionId}',
322
+ gerRoleInfo: '/role/detail/{id}',
323
+ saveRole: '/role/save'
324
+ }
325
+
326
+ const props = defineProps({
327
+ type: {
328
+ type: String,
329
+ default: 'role' // role,post 角色,岗位
330
+ },
331
+ id: {
332
+ type: String,
333
+ default: ''
334
+ }
335
+ })
336
+ const emits = defineEmits(['success'])
337
+ const roleId = ref()
338
+
339
+ const data = ref([])
340
+ // 表格列配置,添加自定义单元格插槽
341
+ const columns = [
342
+ { colKey: 'module', title: '模块', width: 150, cell: 'module' },
343
+ { colKey: 'subModule1', title: '子模块1', width: 150, cell: 'subModule1' },
344
+ { colKey: 'subModule2', title: '子模块2', width: 150, cell: 'subModule2' },
345
+ { colKey: 'functions', title: '功能', width: 300, cell: 'functions' },
346
+ { colKey: 'operation', title: '操作', width: 100, cell: 'operation', fixed: 'right' }
347
+ ]
348
+
349
+
350
+ // 获取数据并处理
351
+ dataService.fetch({}, {}, apis.tree).then((res) => {
352
+ const processedData = processTreeData(res || [])
353
+ // 为每行数据添加选中状态属性
354
+ processedData.forEach((row) => {
355
+ // 添加选中状态属性
356
+ row.moduleChecked = false
357
+ row.subModule1Checked = false
358
+ row.subModule2Checked = false
359
+ row.functionChecked = false
360
+ })
361
+ data.value = processedData;
362
+ })
363
+ function getRoleConfig() {
364
+ dataService.fetch({}, {}, apis.getConfig.replace('{roleId}', roleId.value || props.id)).then((res) => {
365
+ res.forEach(item => {
366
+ // 获取functionId
367
+ const functionId = item.functionId;
368
+ // 在data.value中查找对应功能所在的行
369
+ data.value.forEach(row => {
370
+ // 检查functions数组中是否有匹配的功能
371
+ const matchedFunction = row.functions.find(func => func.id === functionId);
372
+ if (matchedFunction) {
373
+ // 设置功能勾选状态为true
374
+ matchedFunction.checked = true;
375
+
376
+ // 保存数据权限配置(如果有)
377
+ if (item.dataScope) {
378
+ row.dataPermission = item.dataScope;
379
+ // 如果是自定义数据权限,则设置已选组织
380
+ if (item.dataScope === 6 && item.deptIds && item.deptIds.length > 0) {
381
+ row.selectedOrgs = item.deptIds.map(id => {
382
+ const org = findOrgInTree(orgTreeData.value, id);
383
+ return {
384
+ id: id,
385
+ name: org ? org.name : `组织${id}`
386
+ };
387
+ });
388
+ }
389
+ }
390
+
391
+ // 更新父级勾选状态(模块、子模块)
392
+ updateParentCheckStatus(row);
393
+ }
394
+ });
395
+ });
396
+ })
397
+ }
398
+ /**
399
+ * 处理树形数据,生成四级结构(模块、子模块1、子模块2、功能列表)
400
+ * @param {Array} treeData 原始树形数据
401
+ * @returns {Array} 扁平化处理后的数据
402
+ */
403
+ const processTreeData = (treeData) => {
404
+ const result = []
405
+ // 处理第一级:模块
406
+ treeData.forEach((moduleItem) => {
407
+ if (!moduleItem.children || moduleItem.children.length === 0) {
408
+ // 没有子模块,功能为全部
409
+ result.push({
410
+ id: `${moduleItem.id}_all`,
411
+ module: moduleItem.name,
412
+ moduleId: moduleItem.id,
413
+ subModule1: null,
414
+ subModule1Id: null,
415
+ subModule2: null,
416
+ subModule2Id: null,
417
+ functions: [{ id: null, name: '全部', checked: false }]
418
+ })
419
+ return
420
+ }
421
+ moduleItem.children.forEach((subModule1Item) => {
422
+ if (!subModule1Item.children || subModule1Item.children.length === 0) {
423
+ // 没有子模块2,功能为全部
424
+ result.push({
425
+ id: `${moduleItem.id}_${subModule1Item.id}_all`,
426
+ module: moduleItem.name,
427
+ moduleId: moduleItem.id,
428
+ subModule1: subModule1Item.name,
429
+ subModule1Id: subModule1Item.id,
430
+ subModule2: null,
431
+ subModule2Id: null,
432
+ functions: [{ id: null, name: '全部', checked: false }]
433
+ })
434
+ } else {
435
+ subModule1Item.children.forEach((subModule2Item) => {
436
+ // 功能聚合
437
+ let functions = []
438
+ if (subModule2Item.children && subModule2Item.children.length > 0) {
439
+ subModule2Item.children.forEach((functionItem) => {
440
+ // 主功能
441
+ const func = {
442
+ id: functionItem.id,
443
+ name: functionItem.name,
444
+ checked: false
445
+ }
446
+ functions.push(func)
447
+ // 子功能
448
+ if (functionItem.children && functionItem.children.length > 0) {
449
+ functionItem.children.forEach((childFunc) => {
450
+ functions.push({
451
+ id: childFunc.id,
452
+ name: childFunc.name,
453
+ checked: false
454
+ })
455
+ })
456
+ }
457
+ })
458
+ } else {
459
+ functions.push({ id: null, name: '全部', checked: false })
460
+ }
461
+ result.push({
462
+ id: `${moduleItem.id}_${subModule1Item.id}_${subModule2Item.id}`,
463
+ module: moduleItem.name,
464
+ moduleId: moduleItem.id,
465
+ subModule1: subModule1Item.name,
466
+ subModule1Id: subModule1Item.id,
467
+ subModule2: subModule2Item.name,
468
+ subModule2Id: subModule2Item.id,
469
+ functions
470
+ })
471
+ })
472
+ }
473
+ })
474
+ })
475
+ return result
476
+ }
477
+
478
+ /**
479
+ * 单元格合并计算函数
480
+ */
481
+ const rowspanAndColspan = ({ row, col, rowIndex, colIndex }) => {
482
+ // 功能列合并逻辑
483
+ if (col.colKey === 'functions') {
484
+ const isFirstRow =
485
+ rowIndex === 0 ||
486
+ data.value[rowIndex - 1].moduleId !== row.moduleId ||
487
+ data.value[rowIndex - 1].subModule1Id !== row.subModule1Id ||
488
+ data.value[rowIndex - 1].subModule2Id !== row.subModule2Id
489
+ if (isFirstRow) {
490
+ let rowspan = 1
491
+ for (let i = rowIndex + 1; i < data.value.length; i++) {
492
+ if (
493
+ data.value[i].moduleId === row.moduleId &&
494
+ data.value[i].subModule1Id === row.subModule1Id &&
495
+ data.value[i].subModule2Id === row.subModule2Id
496
+ ) {
497
+ rowspan++
498
+ } else {
499
+ break
500
+ }
501
+ }
502
+ return { rowspan, colspan: 1 }
503
+ }
504
+ return { rowspan: 0, colspan: 0 }
505
+ }
506
+ // 模块列合并逻辑
507
+ if (col.colKey === 'module') {
508
+ const currentModuleId = row.moduleId
509
+ const isFirstRow = rowIndex === 0 || data.value[rowIndex - 1].moduleId !== currentModuleId
510
+ if (isFirstRow) {
511
+ let rowspan = 1
512
+ for (let i = rowIndex + 1; i < data.value.length; i++) {
513
+ if (data.value[i].moduleId === currentModuleId) {
514
+ rowspan++
515
+ } else {
516
+ break
517
+ }
518
+ }
519
+ return { rowspan, colspan: 1 }
520
+ }
521
+ return { rowspan: 0, colspan: 0 }
522
+ }
523
+ // 子模块1列合并逻辑
524
+ if (col.colKey === 'subModule1') {
525
+ if (!row.subModule1) return {}
526
+ const currentModule = row.moduleId
527
+ const currentSubModule1 = row.subModule1Id
528
+ const isFirstRow =
529
+ rowIndex === 0 ||
530
+ data.value[rowIndex - 1].subModule1Id !== currentSubModule1 ||
531
+ data.value[rowIndex - 1].moduleId !== currentModule
532
+ if (isFirstRow) {
533
+ let rowspan = 1
534
+ for (let i = rowIndex + 1; i < data.value.length; i++) {
535
+ if (data.value[i].moduleId === currentModule && data.value[i].subModule1Id === currentSubModule1) {
536
+ rowspan++
537
+ } else {
538
+ break
539
+ }
540
+ }
541
+ return { rowspan, colspan: 1 }
542
+ }
543
+ return { rowspan: 0, colspan: 0 }
544
+ }
545
+ // 子模块2列合并逻辑
546
+ if (col.colKey === 'subModule2') {
547
+ if (!row.subModule2) return {}
548
+ const currentModule = row.moduleId
549
+ const currentSubModule1 = row.subModule1Id
550
+ const currentSubModule2 = row.subModule2Id
551
+ const isFirstRow =
552
+ rowIndex === 0 ||
553
+ data.value[rowIndex - 1].subModule2Id !== currentSubModule2 ||
554
+ data.value[rowIndex - 1].subModule1Id !== currentSubModule1 ||
555
+ data.value[rowIndex - 1].moduleId !== currentModule
556
+ if (isFirstRow) {
557
+ let rowspan = 1
558
+ for (let i = rowIndex + 1; i < data.value.length; i++) {
559
+ if (
560
+ data.value[i].moduleId === currentModule &&
561
+ data.value[i].subModule1Id === currentSubModule1 &&
562
+ data.value[i].subModule2Id === currentSubModule2
563
+ ) {
564
+ rowspan++
565
+ } else {
566
+ break
567
+ }
568
+ }
569
+ return { rowspan, colspan: 1 }
570
+ }
571
+ return { rowspan: 0, colspan: 0 }
572
+ }
573
+ return {} // 其他列不合并
574
+ }
575
+
576
+ // 勾选模块时联动所有下级
577
+ const handleModuleCheck = (row, checked) => {
578
+ row.moduleChecked = checked
579
+ data.value.forEach((item) => {
580
+ if (item.moduleId === row.moduleId) {
581
+ item.subModule1Checked = checked
582
+ item.subModule2Checked = checked
583
+ item.functions.forEach((func) => (func.checked = checked))
584
+ }
585
+ })
586
+ }
587
+
588
+ // 勾选子模块1时联动所有下级
589
+ const handleSubModule1Check = (row, checked) => {
590
+ row.subModule1Checked = checked
591
+ data.value.forEach((item) => {
592
+ if (item.moduleId === row.moduleId && item.subModule1Id === row.subModule1Id) {
593
+ item.subModule2Checked = checked
594
+ item.functions.forEach((func) => (func.checked = checked))
595
+ }
596
+ })
597
+ // 向上联动模块
598
+ updateModuleChecked(row.moduleId)
599
+ }
600
+
601
+ // 勾选子模块2时联动所有下级
602
+ const handleSubModule2Check = (row, checked) => {
603
+ row.subModule2Checked = checked
604
+ data.value.forEach((item) => {
605
+ if (
606
+ item.moduleId === row.moduleId &&
607
+ item.subModule1Id === row.subModule1Id &&
608
+ item.subModule2Id === row.subModule2Id
609
+ ) {
610
+ item.functions.forEach((func) => (func.checked = checked))
611
+ }
612
+ })
613
+ // 向上联动子模块1
614
+ updateSubModule1Checked(row.moduleId, row.subModule1Id)
615
+ }
616
+
617
+ // 勾选功能时,自动判断父级
618
+ const handleFunctionCheck = (row, func, checked) => {
619
+ func.checked = checked
620
+ // 判断本组所有功能是否全选
621
+ const allChecked = row.functions.every((f) => f.checked)
622
+ row.subModule2Checked = allChecked
623
+ // 向上联动
624
+ updateSubModule1Checked(row.moduleId, row.subModule1Id)
625
+ }
626
+
627
+ // 更新子模块1的勾选状态
628
+ const updateSubModule1Checked = (moduleId, subModule1Id) => {
629
+ // 找到所有同模块+同子模块1的行
630
+ const group = data.value.filter((item) => item.moduleId === moduleId && item.subModule1Id === subModule1Id)
631
+ const allChecked = group.every((item) => item.subModule2Checked)
632
+ group.forEach((item) => {
633
+ item.subModule1Checked = allChecked
634
+ })
635
+ // 向上联动模块
636
+ updateModuleChecked(moduleId)
637
+ }
638
+
639
+ // 更新模块的勾选状态
640
+ const updateModuleChecked = (moduleId) => {
641
+ const group = data.value.filter((item) => item.moduleId === moduleId)
642
+ const allChecked = group.every((item) => item.subModule1Checked)
643
+ group.forEach((item) => {
644
+ item.moduleChecked = allChecked
645
+ })
646
+ }
647
+
648
+ // 单元格点击事件
649
+ const handleCellClick = (context) => {
650
+ console.log('单元格点击:', context)
651
+ }
652
+
653
+ // 详情弹窗相关
654
+ const detailDialogVisible = ref(false)
655
+ const detailDialogTitle = ref('详情')
656
+ const currentRow = ref(null)
657
+
658
+
659
+ // 数据权限弹窗相关
660
+ const permissionDialogVisible = ref(false)
661
+ const permissionDialogTitle = ref('数据权限配置')
662
+ const selectedPermission = ref(1) // 默认选择全部数据
663
+
664
+ // 组织架构树相关
665
+ const orgTreeData = ref([])
666
+ const keyWord = ref('')
667
+ const filteredOrgTreeData = computed(() => {
668
+ if (!keyWord.value) return orgTreeData.value
669
+ return filterTreeNodes(orgTreeData.value, keyWord.value)
670
+ })
671
+ const orgTreeKeys = {
672
+ label: 'name',
673
+ value: 'id',
674
+ children: 'childs'
675
+ }
676
+ const expandedKeys = ref([])
677
+ const activeKey = ref(null)
678
+ const selectedOrgs = ref([])
679
+
680
+ // 过滤树节点函数
681
+ const filterTreeNodes = (nodes, keyword) => {
682
+ if (!nodes || !Array.isArray(nodes)) return []
683
+
684
+ const filtered = []
685
+
686
+ for (const node of nodes) {
687
+ // 创建节点副本,避免修改原始数据
688
+ const newNode = { ...node }
689
+
690
+ // 检查当前节点名称是否包含关键词
691
+ const matchesKeyword = node.name && node.name.toLowerCase().includes(keyword.toLowerCase())
692
+
693
+ // 递归过滤子节点
694
+ let filteredChildren = []
695
+ if (node.childs && node.childs.length > 0) {
696
+ filteredChildren = filterTreeNodes(node.childs, keyword)
697
+ }
698
+
699
+ // 如果当前节点匹配或者有匹配的子节点,则保留
700
+ if (matchesKeyword || filteredChildren.length > 0) {
701
+ if (filteredChildren.length > 0) {
702
+ newNode.childs = filteredChildren
703
+ }
704
+ filtered.push(newNode)
705
+ }
706
+ }
707
+
708
+ return filtered
709
+ }
710
+
711
+ // 处理组织节点选中
712
+ const handleOrgNodeSelect = (node, checked) => {
713
+ if (checked) {
714
+ // 检查是否已经存在
715
+ if (!selectedOrgs.value.find((org) => org.id === node.id)) {
716
+ selectedOrgs.value.push({
717
+ id: node.id,
718
+ name: node.name
719
+ })
720
+ }
721
+ } else {
722
+ // 从已选中中移除
723
+ removeSelectedOrg(node.id)
724
+ }
725
+ }
726
+
727
+ // 移除选中的组织
728
+ const removeSelectedOrg = (id) => {
729
+ const index = selectedOrgs.value.findIndex((org) => org.id === id)
730
+ if (index !== -1) {
731
+ selectedOrgs.value.splice(index, 1)
732
+ }
733
+ }
734
+
735
+ // 清空已选择的组织
736
+ const clearSelectedOrgs = () => {
737
+ selectedOrgs.value = []
738
+ }
739
+
740
+ // 检查节点是否已被选中
741
+ const isOrgNodeSelected = (id) => {
742
+ return selectedOrgs.value.some((org) => org.id === id)
743
+ }
744
+
745
+ // 切换组织节点选中状态
746
+ const toggleOrgNodeSelect = (node) => {
747
+ const isSelected = isOrgNodeSelected(node.id)
748
+ handleOrgNodeSelect(node, !isSelected)
749
+ }
750
+
751
+ // 处理组织节点激活
752
+ const handleOrgNodeActive = (value) => {
753
+ activeKey.value = value
754
+ }
755
+
756
+ // 处理组织节点展开
757
+ const handleOrgNodeExpand = (value) => {
758
+ expandedKeys.value = value
759
+ }
760
+
761
+ // 打开数据权限配置弹窗
762
+ const openPermissionDialog = (row) => {
763
+ currentRow.value = row
764
+ // 只做展示,不写入行权限
765
+ if (row.dataPermission) {
766
+ selectedPermission.value = row.dataPermission
767
+ if (row.dataPermission === 6 && row.selectedOrgs) {
768
+ selectedOrgs.value = [...row.selectedOrgs]
769
+ } else {
770
+ selectedOrgs.value = []
771
+ }
772
+ } else {
773
+ // 没有配置则展示全局,但不写入行
774
+ selectedPermission.value = globalPermission.value
775
+ if (globalPermission.value === 6) {
776
+ selectedOrgs.value = [...globalSelectedOrgs.value]
777
+ } else {
778
+ selectedOrgs.value = []
779
+ }
780
+ }
781
+ expandedKeys.value = ['1']
782
+ let title = '数据权限配置: '
783
+ if (row.module) title += row.module
784
+ if (row.subModule1 && row.subModule1 !== row.module) title += ' - ' + row.subModule1
785
+ if (row.subModule2 && row.subModule2 !== row.subModule1) title += ' - ' + row.subModule2
786
+ if (row.functions && row.functions.length === 1 && row.functions[0].name !== '全部')
787
+ title += ' - ' + row.functions[0].name
788
+ permissionDialogTitle.value = title
789
+ permissionDialogVisible.value = true
790
+ }
791
+
792
+ // 全局数据权限相关
793
+ const globalPermission = ref(1) // 默认全部数据
794
+ const globalSelectedOrgs = ref([])
795
+ const tempGlobalSelectedOrgs = ref([])
796
+ const globalOrgDialogVisible = ref(false)
797
+
798
+ // 打开全局组织选择器
799
+ const openGlobalOrgSelector = () => {
800
+ // 初始化临时选择的组织列表
801
+ tempGlobalSelectedOrgs.value = [...globalSelectedOrgs.value]
802
+
803
+ // 加载组织架构树数据
804
+ expandedKeys.value = ['1'] // 默认展开第一级
805
+
806
+ globalOrgDialogVisible.value = true
807
+ }
808
+
809
+ // 全局组织节点选择相关函数
810
+ const handleGlobalOrgNodeSelect = (node, checked) => {
811
+ if (checked) {
812
+ // 检查是否已经存在
813
+ if (!tempGlobalSelectedOrgs.value.find((org) => org.id === node.id)) {
814
+ tempGlobalSelectedOrgs.value.push({
815
+ id: node.id,
816
+ name: node.name
817
+ })
818
+ }
819
+ } else {
820
+ // 从已选中中移除
821
+ removeGlobalOrg(node.id)
822
+ }
823
+ }
824
+
825
+ // 移除选中的全局组织(对话框中使用)
826
+ const removeGlobalSelectedOrg = (id) => {
827
+ const index = tempGlobalSelectedOrgs.value.findIndex((org) => org.id === id)
828
+ if (index !== -1) {
829
+ tempGlobalSelectedOrgs.value.splice(index, 1)
830
+ }
831
+ }
832
+
833
+ // 直接从全局组织中移除(主界面使用)
834
+ const removeGlobalOrg = (id) => {
835
+ const index = globalSelectedOrgs.value.findIndex((org) => org.id === id)
836
+ if (index !== -1) {
837
+ globalSelectedOrgs.value.splice(index, 1)
838
+ }
839
+ }
840
+
841
+ // 清空已选择的全局组织(用于弹窗中)
842
+ const clearGlobalSelectedOrgs = () => {
843
+ tempGlobalSelectedOrgs.value = []
844
+ }
845
+
846
+ // 清空主界面已选择的全局组织
847
+ const clearGlobalOrgs = () => {
848
+ globalSelectedOrgs.value = []
849
+ }
850
+
851
+ // 检查全局节点是否已被选中
852
+ const isGlobalOrgNodeSelected = (id) => {
853
+ return tempGlobalSelectedOrgs.value.some((org) => org.id === id)
854
+ }
855
+
856
+ // 切换全局组织节点选中状态
857
+ const toggleGlobalOrgNodeSelect = (node) => {
858
+ const isSelected = isGlobalOrgNodeSelected(node.id)
859
+ handleGlobalOrgNodeSelect(node, !isSelected)
860
+ }
861
+
862
+ // 确认全局组织选择
863
+ const handleGlobalOrgConfirm = () => {
864
+ // 保存选择结果
865
+ globalSelectedOrgs.value = [...tempGlobalSelectedOrgs.value]
866
+
867
+ // 应用到所有选择了自定义数据的行
868
+ applyGlobalOrgsToCustomRows()
869
+
870
+ globalOrgDialogVisible.value = false
871
+ }
872
+
873
+ // 取消全局组织选择
874
+ const handleGlobalOrgCancel = () => {
875
+ globalOrgDialogVisible.value = false
876
+ }
877
+
878
+ // 将全局组织应用到所有自定义数据权限的行
879
+ const applyGlobalOrgsToCustomRows = () => {
880
+ data.value.forEach((row) => {
881
+ if (row.dataPermission === 6) {
882
+ row.selectedOrgs = [...globalSelectedOrgs.value]
883
+ }
884
+ })
885
+ }
886
+
887
+ // 确认权限配置(修改处理全局配置的情况)
888
+ const handlePermissionConfirm = () => {
889
+ if (currentRow.value) {
890
+ currentRow.value.dataPermission = selectedPermission.value
891
+ if (selectedPermission.value === 6) {
892
+ currentRow.value.selectedOrgs = [...selectedOrgs.value]
893
+ } else {
894
+ currentRow.value.selectedOrgs = []
895
+ }
896
+ }
897
+ permissionDialogVisible.value = false
898
+ }
899
+
900
+ // 取消权限配置(修改处理全局配置的情况)
901
+ const handlePermissionCancel = () => {
902
+ permissionDialogVisible.value = false
903
+ }
904
+
905
+ // 获取匹配的节点总数
906
+ const getMatchedCount = (nodes) => {
907
+ if (!nodes || !Array.isArray(nodes)) return 0
908
+
909
+ let count = nodes.length
910
+
911
+ for (const node of nodes) {
912
+ if (node.childs && node.childs.length > 0) {
913
+ count += getMatchedCount(node.childs)
914
+ }
915
+ }
916
+
917
+ return count
918
+ }
919
+
920
+ // 新增的搜索函数
921
+ const onOrgSearch = () => {
922
+ dataService
923
+ .fetch(
924
+ {
925
+ postEnable: false,
926
+ keyWord: keyWord.value
927
+ },
928
+ {},
929
+ apis.orgTree
930
+ )
931
+ .then(async (res) => {
932
+ orgTreeData.value = res;
933
+ if (props.type === 'post') {
934
+ roleId.value = (await dataService.fetch({}, {}, apis.getRole.replace('{positionId}', props.id))).id
935
+ } else {
936
+ roleId.value = props.id;
937
+ }
938
+ if (!roleId.value) return;
939
+ let timer = setInterval(() => {
940
+ if (data.value.length > 0) {
941
+ clearInterval(timer)
942
+ getRoleConfig()
943
+ }
944
+ }, 500);
945
+ dataService.fetch({}, {}, apis.gerRoleInfo.replace('{id}', roleId.value)).then(res => {
946
+ globalPermission.value = res.dataScope;
947
+ // 使用递归查找函数获取完整组织信息
948
+ globalSelectedOrgs.value = [...res.deptIds].map(id => {
949
+ const org = findOrgInTree(orgTreeData.value, id);
950
+ return {
951
+ id: id,
952
+ name: org ? org.name : `组织${id}` // 如果找不到组织,提供一个默认名称
953
+ };
954
+ });
955
+ // 查询角色信息
956
+ })
957
+ })
958
+ }
959
+ onOrgSearch()
960
+
961
+ // 计算选中的数据权限结构
962
+ const computedSelectedData = computed(() => {
963
+ // 全局数据权限
964
+ const dataScope = globalPermission.value
965
+ const deptIds = globalSelectedOrgs.value.map((org) => org.id)
966
+ // 功能明细
967
+ const functionList = []
968
+ data.value.forEach((row) => {
969
+ // 只处理有选中功能的行
970
+ const checkedFunctionIds = row.functions
971
+ .filter((f) => f.checked)
972
+ .map((f) => f.id)
973
+ .filter(Boolean)
974
+ if (checkedFunctionIds.length > 0) {
975
+ functionList.push({
976
+ functionIds: checkedFunctionIds,
977
+ dataScope: row.dataPermission || undefined,
978
+ deptIds:
979
+ row.dataPermission === 6 && row.selectedOrgs && row.selectedOrgs.length > 0
980
+ ? row.selectedOrgs.map((org) => org.id)
981
+ : []
982
+ })
983
+ }
984
+ })
985
+ let role = {
986
+ dataScope,
987
+ deptIds,
988
+ }
989
+ if (roleId.value) {
990
+ role.id = roleId.value
991
+ } else {
992
+ role.positionId = props.id
993
+ }
994
+ return {
995
+ role,
996
+ functionList
997
+ }
998
+ })
999
+
1000
+ watch(globalPermission, (val) => {
1001
+ if (val !== 6) {
1002
+ globalSelectedOrgs.value = []
1003
+ }
1004
+ })
1005
+
1006
+ function handleSaveRolePermission() {
1007
+ // 这里可以调用API或打印computedSelectedData
1008
+ console.log('保存角色权限:', computedSelectedData.value)
1009
+ dataService.fetch(
1010
+ computedSelectedData.value,
1011
+ {},
1012
+ apis.saveRole
1013
+ ).then(res => {
1014
+ if (!res) {
1015
+ Message.error('保存失败')
1016
+ return
1017
+ }
1018
+ emits('success')
1019
+ })
1020
+ }
1021
+
1022
+ // 暴露表格引用和方法
1023
+ defineExpose({
1024
+ selData: computedSelectedData
1025
+ })
1026
+
1027
+ // 先添加一个从树形结构中递归查找组织的辅助函数
1028
+ const findOrgInTree = (tree, id) => {
1029
+ if (!tree || !Array.isArray(tree)) return null;
1030
+
1031
+ // 先在当前层级查找
1032
+ const found = tree.find(item => item.id === id);
1033
+ if (found) return found;
1034
+
1035
+ // 如果当前层级没找到,递归查找子节点
1036
+ for (const node of tree) {
1037
+ if (node.childs && node.childs.length > 0) {
1038
+ const foundInChild = findOrgInTree(node.childs, id);
1039
+ if (foundInChild) return foundInChild;
1040
+ }
1041
+ }
1042
+
1043
+ return null; // 未找到
1044
+ };
1045
+
1046
+ // 添加用于更新父级勾选状态的辅助函数
1047
+ const updateParentCheckStatus = (row) => {
1048
+ // 判断当前行的功能是否全部勾选
1049
+ const allFunctionsChecked = row.functions.every(func => func.checked);
1050
+
1051
+ // 更新子模块2的勾选状态
1052
+ if (row.subModule2) {
1053
+ // 寻找同组的所有行
1054
+ const sameGroup = data.value.filter(item =>
1055
+ item.moduleId === row.moduleId &&
1056
+ item.subModule1Id === row.subModule1Id &&
1057
+ item.subModule2Id === row.subModule2Id
1058
+ );
1059
+
1060
+ // 判断同组的所有行是否全部勾选了功能
1061
+ const allRowsChecked = sameGroup.every(item =>
1062
+ item.functions.every(func => func.checked)
1063
+ );
1064
+
1065
+ // 更新子模块2的勾选状态
1066
+ sameGroup.forEach(item => {
1067
+ item.subModule2Checked = allRowsChecked;
1068
+ });
1069
+ }
1070
+
1071
+ // 更新子模块1的勾选状态
1072
+ updateSubModule1Checked(row.moduleId, row.subModule1Id);
1073
+ }
1074
+ </script>
1075
+
1076
+ <style lang="less" scoped>
1077
+ .cell-with-checkbox {
1078
+ display: flex;
1079
+ align-items: center;
1080
+
1081
+ .cell-text {
1082
+ margin-left: 8px;
1083
+ }
1084
+
1085
+ .empty-cell {
1086
+ color: #ccc;
1087
+ font-style: italic;
1088
+ }
1089
+ }
1090
+
1091
+ .functions-container {
1092
+ display: flex;
1093
+ flex-wrap: wrap;
1094
+ gap: 12px;
1095
+
1096
+ .function-item {
1097
+ display: flex;
1098
+ align-items: center;
1099
+ margin-right: 12px;
1100
+
1101
+ .cell-text {
1102
+ margin-left: 8px;
1103
+ }
1104
+ }
1105
+ }
1106
+
1107
+ .operation-buttons {
1108
+ display: flex;
1109
+ justify-content: center;
1110
+ }
1111
+
1112
+ .permission-content {
1113
+ padding: 20px 0;
1114
+
1115
+ .permission-item {
1116
+ .permission-options {
1117
+ margin-bottom: 20px;
1118
+
1119
+ :deep(.t-radio-group) {
1120
+ display: flex;
1121
+ flex-wrap: wrap;
1122
+
1123
+ .t-radio-button {
1124
+ margin-bottom: 10px;
1125
+ margin-right: 0;
1126
+ }
1127
+ }
1128
+ }
1129
+ }
1130
+ }
1131
+
1132
+ .custom-permission {
1133
+ margin-top: 16px;
1134
+ }
1135
+
1136
+ .org-selector-dialog {
1137
+ padding: 0;
1138
+ }
1139
+
1140
+ // 组织选择器弹窗样式
1141
+ .org-dialog-container {
1142
+ display: flex;
1143
+ height: 400px;
1144
+ border: 1px solid #eaeaea;
1145
+ border-radius: 4px;
1146
+ overflow: hidden;
1147
+ }
1148
+
1149
+ .org-left-panel {
1150
+ flex: 1;
1151
+ display: flex;
1152
+ flex-direction: column;
1153
+ border-right: 1px solid #eaeaea;
1154
+ }
1155
+
1156
+ .org-panel-header {
1157
+ padding: 16px;
1158
+ font-weight: 500;
1159
+ color: #181818;
1160
+ font-size: 14px;
1161
+ border-bottom: 1px solid #eaeaea;
1162
+ background-color: #f5f5f5;
1163
+ display: flex;
1164
+ justify-content: space-between;
1165
+ align-items: center;
1166
+ }
1167
+
1168
+ .org-search-container {
1169
+ padding: 12px 16px;
1170
+ border-bottom: 1px solid #eaeaea;
1171
+
1172
+ :deep(.t-input) {
1173
+ border-radius: 4px;
1174
+
1175
+ .t-input__inner {
1176
+ height: 32px;
1177
+ }
1178
+
1179
+ .t-input__suffix-icon {
1180
+ cursor: pointer;
1181
+ color: #999;
1182
+
1183
+ &:hover {
1184
+ color: var(--td-brand-color);
1185
+ }
1186
+ }
1187
+ }
1188
+
1189
+ .search-result-info {
1190
+ font-size: 12px;
1191
+ color: #999;
1192
+ margin-top: 8px;
1193
+ }
1194
+ }
1195
+
1196
+ .org-tree-container {
1197
+ flex: 1;
1198
+ overflow: auto;
1199
+ padding: 16px;
1200
+ }
1201
+
1202
+ .org-right-panel {
1203
+ width: 300px;
1204
+ display: flex;
1205
+ flex-direction: column;
1206
+ }
1207
+
1208
+ .org-selected-container {
1209
+ flex: 1;
1210
+ overflow: auto;
1211
+ padding: 16px;
1212
+ background-color: #fcfcfc;
1213
+ }
1214
+
1215
+ .selected-orgs-tags {
1216
+ display: flex;
1217
+ flex-wrap: wrap;
1218
+ gap: 8px;
1219
+
1220
+ .org-tag {
1221
+ margin: 0;
1222
+ white-space: nowrap;
1223
+ transition: all 0.2s ease;
1224
+ border-radius: 4px;
1225
+ cursor: pointer;
1226
+
1227
+ &:hover {
1228
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1229
+ transform: translateY(-1px);
1230
+ }
1231
+ }
1232
+ }
1233
+
1234
+ .no-selected-tip {
1235
+ color: #999;
1236
+ text-align: center;
1237
+ padding: 60px 0;
1238
+ font-size: 14px;
1239
+ }
1240
+
1241
+ .detail-content {
1242
+ padding: 16px;
1243
+
1244
+ .detail-item {
1245
+ margin-bottom: 16px;
1246
+
1247
+ .item-label {
1248
+ font-weight: bold;
1249
+ margin-right: 8px;
1250
+ color: #666;
1251
+ }
1252
+
1253
+ .item-value {
1254
+ color: #333;
1255
+ }
1256
+
1257
+ .sub-functions {
1258
+ margin-top: 8px;
1259
+
1260
+ .sub-function-item {
1261
+ padding: 4px 0;
1262
+ border-bottom: 1px dashed #eee;
1263
+
1264
+ &:last-child {
1265
+ border-bottom: none;
1266
+ }
1267
+ }
1268
+ }
1269
+ }
1270
+ }
1271
+
1272
+ .tree-node-label {
1273
+ cursor: pointer;
1274
+ padding: 4px 0;
1275
+ user-select: none;
1276
+
1277
+ &:hover {
1278
+ color: var(--td-brand-color);
1279
+ }
1280
+
1281
+ &.selected {
1282
+ color: var(--td-brand-color);
1283
+ font-weight: 500;
1284
+ }
1285
+ }
1286
+
1287
+ // 数据权限配置面板样式
1288
+ .permission-config-panel {
1289
+ margin-bottom: 16px;
1290
+ border: 1px solid #e7e7e7;
1291
+ border-radius: 6px;
1292
+ overflow: hidden;
1293
+ background-color: #fff;
1294
+
1295
+ .panel-header {
1296
+ background-color: #f5f5f5;
1297
+ padding: 12px 16px;
1298
+ border-bottom: 1px solid #e7e7e7;
1299
+
1300
+ .panel-title {
1301
+ margin: 0;
1302
+ font-size: 16px;
1303
+ font-weight: bold;
1304
+ color: #333;
1305
+ }
1306
+ }
1307
+
1308
+ .panel-content {
1309
+ padding: 16px;
1310
+
1311
+ .permission-type-selector {
1312
+ display: flex;
1313
+ align-items: center;
1314
+ margin-bottom: 16px;
1315
+
1316
+ .permission-radio-group {
1317
+ display: flex;
1318
+ flex-wrap: wrap;
1319
+
1320
+ :deep(.t-radio-button) {
1321
+ margin-bottom: 10px;
1322
+ margin-right: 0;
1323
+ }
1324
+ }
1325
+ }
1326
+
1327
+ .org-select-row {
1328
+ display: flex;
1329
+ align-items: center;
1330
+ margin-bottom: 16px;
1331
+
1332
+ .selected-count {
1333
+ color: #666;
1334
+ margin-right: 12px;
1335
+ }
1336
+
1337
+ .org-select-btn {
1338
+ height: 32px;
1339
+ }
1340
+ }
1341
+
1342
+ .selected-orgs-panel {
1343
+ display: flex;
1344
+ flex-direction: column;
1345
+ border: 1px solid #eaeaea;
1346
+ border-radius: 4px;
1347
+ margin-top: 16px;
1348
+
1349
+ .selected-orgs-header {
1350
+ display: flex;
1351
+ justify-content: space-between;
1352
+ align-items: center;
1353
+ padding: 10px 16px;
1354
+ font-size: 14px;
1355
+ color: #181818;
1356
+ border-bottom: 1px solid #eaeaea;
1357
+ background-color: #f5f5f5;
1358
+ }
1359
+
1360
+ .selected-orgs-content {
1361
+ padding: 16px;
1362
+ min-height: 80px;
1363
+
1364
+ .no-org-selected {
1365
+ color: #999;
1366
+ text-align: center;
1367
+ padding: 20px 0;
1368
+ }
1369
+
1370
+ .selected-orgs-tags {
1371
+ display: flex;
1372
+ flex-wrap: wrap;
1373
+ gap: 8px;
1374
+
1375
+ .org-tag {
1376
+ margin: 0;
1377
+ overflow: hidden;
1378
+ text-overflow: ellipsis;
1379
+ white-space: nowrap;
1380
+ }
1381
+ }
1382
+ }
1383
+ }
1384
+ }
1385
+ }
1386
+
1387
+ .no-search-results {
1388
+ text-align: center;
1389
+ padding: 30px 0;
1390
+ color: #999;
1391
+ font-size: 14px;
1392
+ }
1393
+ </style>