@ebiz/designer-components 0.0.18 → 0.0.19-beta.10

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