@gadmin2n/schematics 0.0.69 → 0.0.71

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 (696) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/canvas.prisma +45 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/example.prisma +24 -23
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +93 -90
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Audit.ts +70 -0
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +3 -3
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Page.ts +70 -0
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/PageResource.ts +70 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Resource.ts +70 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/RolePages.ts +70 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/RoleResource.ts +70 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/SavedQuery.ts +70 -0
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/User.ts +70 -0
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/readme.md +95 -2
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +4 -2
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.prettierignore +7 -1
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +1 -3
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +1 -1
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +6 -5
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +157 -0
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/page-manage.ts +290 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/permission-manage.ts +184 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +143 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +100 -0
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/syncDataMngtPages.ts +119 -0
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +1 -3
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +109 -143
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +5 -2
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +20 -0
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.ts +81 -0
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.dto.ts +49 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.module.ts +11 -0
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.spec.ts +334 -0
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.ts +249 -0
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +2 -1
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.ts +2 -2
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.ts +17 -4
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +7737 -0
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.env +1 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.eslintrc.json +38 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +1 -0
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.prettierignore +2 -0
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/web/dev-shell-entry.html +49 -0
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +13 -2
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +137 -111
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +46 -44
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +32 -12
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +74 -23
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +9 -9
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +57 -31
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +53 -24
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +148 -72
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +190 -16
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +914 -63
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +17 -8
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +0 -10
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +969 -46
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/pagePathUtils.ts +66 -0
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +85 -25
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/propPatcher.ts +84 -0
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +16 -20
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +4 -4
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +13 -13
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +15 -16
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +15 -15
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +2 -2
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +896 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +219 -0
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +159 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +192 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +1034 -0
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +8 -0
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +509 -0
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +66 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +552 -0
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +263 -0
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +35 -0
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +207 -0
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +382 -0
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +135 -0
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +53 -0
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +8 -0
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +1 -0
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +31 -0
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +9 -0
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +39349 -0
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +19 -0
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +12 -12
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +22 -26
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +13 -9
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +4 -4
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +22 -37
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +4 -4
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +10 -10
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/logo.tsx +1 -1
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +113 -65
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +14 -14
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +1 -1
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/pagination-total.tsx +2 -2
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/index.ts +1 -1
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/role-tag.tsx +21 -21
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/text.tsx +17 -13
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +26 -5
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +221 -51
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +3 -3
  105. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +199 -0
  106. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +335 -0
  107. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DeleteDataConfirm.tsx +56 -0
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +401 -0
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/EditDataModal.tsx +129 -0
  110. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +202 -0
  111. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/UndoConfirm.tsx +36 -0
  112. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/index.tsx +8 -0
  113. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +835 -0
  114. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/enums/audit-log.enum.ts +8 -8
  115. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/enums/index.ts +1 -1
  116. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +120 -70
  117. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-name-initials.ts +3 -3
  118. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-random-color.ts +11 -11
  119. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +16 -19
  120. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +1 -1
  121. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +99 -73
  122. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +22 -27
  123. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/page-tree.ts +74 -0
  124. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +95 -51
  125. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.tsx +7 -3
  126. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +15 -15
  127. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +10 -10
  128. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +8 -7
  129. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +10 -10
  130. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +10 -10
  131. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +36 -27
  132. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useECharts.tsx +144 -0
  133. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useFetchData.ts +4 -4
  134. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +34 -34
  135. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRoles.ts +8 -4
  136. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +1 -1
  137. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts +55 -41
  138. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +8 -8
  139. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +9 -2
  140. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +193 -0
  141. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +194 -0
  142. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +81 -0
  143. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +37 -37
  144. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/create.tsx +23 -31
  145. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +34 -35
  146. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +1 -1
  147. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.tsx +4 -6
  148. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/list.tsx +41 -34
  149. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +33 -20
  150. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +87 -0
  151. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +192 -0
  152. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +409 -0
  153. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +1372 -0
  154. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +384 -0
  155. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +476 -0
  156. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +135 -0
  157. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/IsolatedLivePreview.tsx +101 -0
  158. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +236 -0
  159. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +200 -0
  160. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +92 -0
  161. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +25 -0
  162. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +875 -0
  163. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +126 -0
  164. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasI18n.ts +11 -0
  165. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +115 -0
  166. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ChartViewerConfigModal.tsx +217 -0
  167. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +153 -0
  168. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +211 -0
  169. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +90 -0
  170. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +87 -0
  171. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +204 -0
  172. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +1153 -0
  173. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/index.tsx +2 -0
  174. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +45 -0
  175. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +45 -0
  176. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +108 -0
  177. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/create.tsx +105 -0
  178. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +121 -0
  179. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/index.tsx +4 -0
  180. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +237 -0
  181. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +74 -0
  182. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +29 -20
  183. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/CreatePageModal.tsx +3 -3
  184. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/EditPageModal.tsx +7 -3
  185. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +58 -23
  186. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +206 -122
  187. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +8 -4
  188. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +1 -1
  189. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +345 -190
  190. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +1 -1
  191. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +341 -340
  192. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/CreateModal.tsx +2 -2
  193. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/EditModal.tsx +2 -2
  194. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +41 -24
  195. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +64 -36
  196. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +2 -2
  197. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +78 -40
  198. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/CreateModal.tsx +3 -3
  199. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/EditModal.tsx +4 -4
  200. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +19 -9
  201. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +45 -47
  202. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +4 -4
  203. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +1 -1
  204. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +121 -147
  205. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/types.ts +1 -1
  206. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/create-modal.tsx +2 -2
  207. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/edit-modal.tsx +2 -2
  208. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +25 -19
  209. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/index.ts +5 -5
  210. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/role-tag.tsx +10 -10
  211. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +31 -26
  212. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +1 -1
  213. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +76 -71
  214. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +1 -1
  215. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/audit-log.ts +1 -1
  216. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/index.ts +3 -3
  217. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/role.ts +1 -1
  218. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/user.ts +1 -1
  219. package/dist/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +42 -25
  220. package/dist/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +1193 -32
  221. package/package.json +1 -1
  222. package/src/lib/application/application.schema.d.ts +59 -0
  223. package/src/lib/application/files/gadmin2-game-angle-demo/.dockerignore +33 -0
  224. package/src/lib/application/files/gadmin2-game-angle-demo/.gitignore +46 -0
  225. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/.gitignore +1 -0
  226. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/husky.sh +36 -0
  227. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/pre-commit +10 -0
  228. package/src/lib/application/files/gadmin2-game-angle-demo/Dockerfile +63 -0
  229. package/src/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +70 -0
  230. package/src/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +143 -0
  231. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/canvas.prisma +45 -0
  232. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/example.prisma +34 -0
  233. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +173 -0
  234. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Audit.ts +70 -0
  235. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +70 -0
  236. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Game.ts +58 -0
  237. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/ITActivityDay.ts +70 -0
  238. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Log.ts +56 -0
  239. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Page.ts +70 -0
  240. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/PageResource.ts +70 -0
  241. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Resource.ts +70 -0
  242. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Role.ts +58 -0
  243. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RolePages.ts +70 -0
  244. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RoleResource.ts +70 -0
  245. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/SavedQuery.ts +70 -0
  246. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/User.ts +70 -0
  247. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/_common.ts +16 -0
  248. package/src/lib/application/files/gadmin2-game-angle-demo/readme.md +142 -0
  249. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env +31 -0
  250. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env.local +1 -0
  251. package/src/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +28 -0
  252. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierignore +7 -0
  253. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierrc +4 -0
  254. package/src/lib/application/files/gadmin2-game-angle-demo/server/README.md +55 -0
  255. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/ac.config.ts +24 -0
  256. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +58 -0
  257. package/src/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +25 -0
  258. package/src/lib/application/files/gadmin2-game-angle-demo/server/migrate-between-pg-schemas.js +1232 -0
  259. package/src/lib/application/files/gadmin2-game-angle-demo/server/package.json +143 -0
  260. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma/.generator.prisma +34 -0
  261. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +16 -0
  262. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +157 -0
  263. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/page-manage.ts +290 -0
  264. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/permission-manage.ts +184 -0
  265. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +143 -0
  266. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +100 -0
  267. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/syncDataMngtPages.ts +119 -0
  268. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/games.ts +1 -0
  269. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +21 -0
  270. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +244 -0
  271. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/users.ts +7 -0
  272. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/alias.config.ts +7 -0
  273. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.spec.ts +22 -0
  274. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.ts +192 -0
  275. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +91 -0
  276. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.service.ts +189 -0
  277. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/auth.guard.ts +154 -0
  278. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/http-cache.interceptor.ts +21 -0
  279. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/logger.ts +19 -0
  280. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/roles.guard.ts +47 -0
  281. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/safe-log.util.ts +176 -0
  282. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/taihu.ts +175 -0
  283. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/tracing.ts +174 -0
  284. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/trim.pipe.ts +51 -0
  285. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/utils.ts +145 -0
  286. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/woaAuth.ts +95 -0
  287. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +132 -0
  288. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.spec.ts +20 -0
  289. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.ts +190 -0
  290. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.module.ts +10 -0
  291. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.spec.ts +338 -0
  292. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.ts +83 -0
  293. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +20 -0
  294. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.ts +81 -0
  295. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.dto.ts +49 -0
  296. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.module.ts +11 -0
  297. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.spec.ts +334 -0
  298. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.ts +249 -0
  299. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.spec.ts +20 -0
  300. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.ts +188 -0
  301. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.module.ts +10 -0
  302. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.spec.ts +18 -0
  303. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.ts +83 -0
  304. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +4 -0
  305. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.spec.ts +20 -0
  306. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.ts +250 -0
  307. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.module.ts +10 -0
  308. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.spec.ts +18 -0
  309. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.ts +1051 -0
  310. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.spec.ts +20 -0
  311. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.ts +196 -0
  312. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.module.ts +13 -0
  313. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.spec.ts +18 -0
  314. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.ts +219 -0
  315. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.spec.ts +20 -0
  316. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.ts +196 -0
  317. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.module.ts +10 -0
  318. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.spec.ts +18 -0
  319. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.ts +199 -0
  320. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.spec.ts +20 -0
  321. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.ts +210 -0
  322. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.module.ts +12 -0
  323. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.spec.ts +18 -0
  324. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.ts +862 -0
  325. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/roles-refresher.service.ts +133 -0
  326. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.spec.ts +20 -0
  327. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.ts +196 -0
  328. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.module.ts +10 -0
  329. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.spec.ts +18 -0
  330. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.ts +201 -0
  331. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.spec.ts +20 -0
  332. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.ts +196 -0
  333. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.module.ts +10 -0
  334. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.spec.ts +18 -0
  335. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.ts +216 -0
  336. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.spec.ts +20 -0
  337. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.ts +198 -0
  338. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.module.ts +10 -0
  339. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.spec.ts +18 -0
  340. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.ts +104 -0
  341. package/src/lib/application/files/gadmin2-game-angle-demo/server/start-prod.sh +130 -0
  342. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/app.e2e-spec.ts +24 -0
  343. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/jest-e2e.json +9 -0
  344. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.build.json +4 -0
  345. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.json +36 -0
  346. package/src/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +7737 -0
  347. package/src/lib/application/files/gadmin2-game-angle-demo/web/.env +2 -0
  348. package/src/lib/application/files/gadmin2-game-angle-demo/web/.eslintrc.json +38 -0
  349. package/src/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +1 -0
  350. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierignore +2 -0
  351. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierrc +4 -0
  352. package/src/lib/application/files/gadmin2-game-angle-demo/web/README.MD +48 -0
  353. package/src/lib/application/files/gadmin2-game-angle-demo/web/dev-shell-entry.html +49 -0
  354. package/src/lib/application/files/gadmin2-game-angle-demo/web/index.html +19 -0
  355. package/src/lib/application/files/gadmin2-game-angle-demo/web/package.json +92 -0
  356. package/src/lib/application/files/gadmin2-game-angle-demo/web/postcss.config.cjs +6 -0
  357. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/favicon.ico +0 -0
  358. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/en.svg +1 -0
  359. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/zh_CN.svg +11 -0
  360. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +137 -0
  361. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +89 -0
  362. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +144 -0
  363. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +287 -0
  364. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +56 -0
  365. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +318 -0
  366. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +323 -0
  367. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +495 -0
  368. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.css +10 -0
  369. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.jsx +53 -0
  370. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +375 -0
  371. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +1133 -0
  372. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +70 -0
  373. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +8 -0
  374. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +1034 -0
  375. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/pagePathUtils.ts +66 -0
  376. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +135 -0
  377. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/propPatcher.ts +84 -0
  378. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +58 -0
  379. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +4 -0
  380. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +96 -0
  381. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +72 -0
  382. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +104 -0
  383. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +2 -0
  384. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +896 -0
  385. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +219 -0
  386. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +159 -0
  387. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +192 -0
  388. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +1034 -0
  389. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +8 -0
  390. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +509 -0
  391. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +66 -0
  392. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +552 -0
  393. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +263 -0
  394. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +35 -0
  395. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +207 -0
  396. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +382 -0
  397. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +135 -0
  398. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +53 -0
  399. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +8 -0
  400. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +1 -0
  401. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +31 -0
  402. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +9 -0
  403. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +39349 -0
  404. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +19 -0
  405. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +65 -0
  406. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +54 -0
  407. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +42 -0
  408. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +8 -0
  409. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +106 -0
  410. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +4 -0
  411. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +32 -0
  412. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/logo.tsx +19 -0
  413. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +431 -0
  414. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +61 -0
  415. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +5 -0
  416. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/pagination-total.tsx +21 -0
  417. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/index.ts +1 -0
  418. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/role-tag.tsx +44 -0
  419. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/text.tsx +78 -0
  420. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +49 -0
  421. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +428 -0
  422. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +16 -0
  423. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +199 -0
  424. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +335 -0
  425. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DeleteDataConfirm.tsx +56 -0
  426. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +401 -0
  427. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/EditDataModal.tsx +129 -0
  428. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +202 -0
  429. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/UndoConfirm.tsx +36 -0
  430. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/index.tsx +8 -0
  431. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +835 -0
  432. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/audit-log.enum.ts +13 -0
  433. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/index.ts +1 -0
  434. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +471 -0
  435. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-name-initials.ts +8 -0
  436. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-random-color.ts +27 -0
  437. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +84 -0
  438. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +8 -0
  439. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +491 -0
  440. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +82 -0
  441. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/page-tree.ts +74 -0
  442. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +226 -0
  443. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.tsx +9 -0
  444. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +7 -0
  445. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +138 -0
  446. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +191 -0
  447. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +153 -0
  448. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +193 -0
  449. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +182 -0
  450. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +220 -0
  451. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useECharts.tsx +144 -0
  452. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useFetchData.ts +33 -0
  453. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +303 -0
  454. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRoles.ts +34 -0
  455. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +38 -0
  456. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts +353 -0
  457. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +23 -0
  458. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +27 -0
  459. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +321 -0
  460. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +324 -0
  461. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/meta.json +4 -0
  462. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +81 -0
  463. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.css +3 -0
  464. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +134 -0
  465. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/create.tsx +105 -0
  466. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +121 -0
  467. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +8 -0
  468. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.tsx +4 -0
  469. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/list.tsx +220 -0
  470. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +74 -0
  471. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +87 -0
  472. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +192 -0
  473. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +409 -0
  474. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +1372 -0
  475. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +384 -0
  476. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +476 -0
  477. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +137 -0
  478. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/IsolatedLivePreview.tsx +101 -0
  479. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +236 -0
  480. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +200 -0
  481. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +92 -0
  482. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +25 -0
  483. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +875 -0
  484. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +126 -0
  485. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasI18n.ts +11 -0
  486. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +115 -0
  487. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ChartViewerConfigModal.tsx +217 -0
  488. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +153 -0
  489. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +211 -0
  490. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +90 -0
  491. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +87 -0
  492. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +204 -0
  493. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +1153 -0
  494. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/index.tsx +2 -0
  495. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +45 -0
  496. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +45 -0
  497. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +108 -0
  498. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/create.tsx +105 -0
  499. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +121 -0
  500. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/index.tsx +4 -0
  501. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +237 -0
  502. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +74 -0
  503. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +177 -0
  504. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/CreatePageModal.tsx +42 -0
  505. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/EditPageModal.tsx +46 -0
  506. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +136 -0
  507. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +815 -0
  508. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +40 -0
  509. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +1 -0
  510. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +1370 -0
  511. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/queries.ts +17 -0
  512. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +45 -0
  513. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +1090 -0
  514. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/CreateModal.tsx +25 -0
  515. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/EditModal.tsx +28 -0
  516. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +177 -0
  517. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +230 -0
  518. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +2 -0
  519. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +250 -0
  520. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/queries.ts +10 -0
  521. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/types.ts +9 -0
  522. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/CreateModal.tsx +30 -0
  523. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/EditModal.tsx +47 -0
  524. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +66 -0
  525. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +300 -0
  526. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +35 -0
  527. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +1 -0
  528. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +405 -0
  529. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/queries.ts +8 -0
  530. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/types.ts +8 -0
  531. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/create-modal.tsx +17 -0
  532. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/edit-modal.tsx +19 -0
  533. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +194 -0
  534. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/index.ts +5 -0
  535. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/role-tag.tsx +48 -0
  536. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +145 -0
  537. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +1 -0
  538. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +377 -0
  539. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/queries.ts +14 -0
  540. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +5 -0
  541. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +132 -0
  542. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/fc.css +58 -0
  543. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +128 -0
  544. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-drawer.module.css +18 -0
  545. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-page.module.css +21 -0
  546. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/audit-log.ts +1 -0
  547. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/index.ts +3 -0
  548. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/role.ts +7 -0
  549. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/user.ts +1 -0
  550. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +13 -0
  551. package/src/lib/application/files/gadmin2-game-angle-demo/web/tsconfig.json +28 -0
  552. package/src/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +48 -0
  553. package/src/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +9482 -0
  554. package/src/lib/class/class.schema.d.ts +32 -0
  555. package/src/lib/class/files/js/__name__.js +1 -0
  556. package/src/lib/class/files/js/__name__.spec.js +7 -0
  557. package/src/lib/class/files/ts/__name__.spec.ts +7 -0
  558. package/src/lib/class/files/ts/__name__.ts +1 -0
  559. package/src/lib/client-app/angular/angular.schema.d.ts +32 -0
  560. package/src/lib/client-app/angular/files/angular.constants.ts +4 -0
  561. package/src/lib/client-app/angular/files/angular.module.ts +41 -0
  562. package/src/lib/client-app/angular/files/angular.providers.ts +27 -0
  563. package/src/lib/client-app/angular/files/angular.utils.ts +19 -0
  564. package/src/lib/client-app/angular/files/interfaces/angular-options.interface.ts +87 -0
  565. package/src/lib/client-app/angular/files/loaders/abstract.loader.ts +16 -0
  566. package/src/lib/client-app/angular/files/loaders/express.loader.ts +25 -0
  567. package/src/lib/client-app/angular/files/loaders/fastify.loader.ts +34 -0
  568. package/src/lib/client-app/angular/files/loaders/noop.loader.ts +12 -0
  569. package/src/lib/configuration/configuration.schema.d.ts +18 -0
  570. package/src/lib/configuration/files/js/nest-cli.json +6 -0
  571. package/src/lib/configuration/files/ts/nest-cli.json +5 -0
  572. package/src/lib/controller/controller.schema.d.ts +45 -0
  573. package/src/lib/controller/files/js/__name__.controller.js +4 -0
  574. package/src/lib/controller/files/js/__name__.controller.spec.js +18 -0
  575. package/src/lib/controller/files/ts/__name__.controller.spec.ts +18 -0
  576. package/src/lib/controller/files/ts/__name__.controller.ts +137 -0
  577. package/src/lib/decorator/decorator.schema.d.ts +24 -0
  578. package/src/lib/decorator/files/js/__name__.decorator.js +3 -0
  579. package/src/lib/decorator/files/ts/__name__.decorator.ts +3 -0
  580. package/src/lib/filter/files/js/__name__.filter.js +6 -0
  581. package/src/lib/filter/files/js/__name__.filter.spec.js +7 -0
  582. package/src/lib/filter/files/ts/__name__.filter.spec.ts +7 -0
  583. package/src/lib/filter/files/ts/__name__.filter.ts +6 -0
  584. package/src/lib/filter/filter.schema.d.ts +28 -0
  585. package/src/lib/gateway/files/js/__name__.gateway.js +9 -0
  586. package/src/lib/gateway/files/js/__name__.gateway.spec.js +18 -0
  587. package/src/lib/gateway/files/ts/__name__.gateway.spec.ts +18 -0
  588. package/src/lib/gateway/files/ts/__name__.gateway.ts +9 -0
  589. package/src/lib/gateway/gateway.schema.d.ts +36 -0
  590. package/src/lib/guard/files/js/__name__.guard.js +8 -0
  591. package/src/lib/guard/files/js/__name__.guard.spec.js +7 -0
  592. package/src/lib/guard/files/ts/__name__.guard.spec.ts +7 -0
  593. package/src/lib/guard/files/ts/__name__.guard.ts +11 -0
  594. package/src/lib/guard/guard.schema.d.ts +28 -0
  595. package/src/lib/interceptor/files/js/__name__.interceptor.js +8 -0
  596. package/src/lib/interceptor/files/js/__name__.interceptor.spec.js +7 -0
  597. package/src/lib/interceptor/files/ts/default/__name__.interceptor.spec.ts +7 -0
  598. package/src/lib/interceptor/files/ts/default/__name__.interceptor.ts +9 -0
  599. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.spec.ts +7 -0
  600. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.ts +13 -0
  601. package/src/lib/interceptor/interceptor.schema.d.ts +35 -0
  602. package/src/lib/interface/files/__name__.interface.ts +1 -0
  603. package/src/lib/interface/interface.schema.d.ts +20 -0
  604. package/src/lib/library/files/js/.babelrc +4 -0
  605. package/src/lib/library/files/js/jsconfig.json +9 -0
  606. package/src/lib/library/files/js/src/__name__.module.js +8 -0
  607. package/src/lib/library/files/js/src/__name__.service.js +4 -0
  608. package/src/lib/library/files/js/src/__name__.service.spec.js +18 -0
  609. package/src/lib/library/files/js/src/index.js +2 -0
  610. package/src/lib/library/files/ts/src/__name__.module.ts +8 -0
  611. package/src/lib/library/files/ts/src/__name__.service.spec.ts +18 -0
  612. package/src/lib/library/files/ts/src/__name__.service.ts +4 -0
  613. package/src/lib/library/files/ts/src/index.ts +2 -0
  614. package/src/lib/library/files/ts/tsconfig.lib.json +9 -0
  615. package/src/lib/library/library.schema.d.ts +24 -0
  616. package/src/lib/middleware/files/js/__name__.middleware.js +8 -0
  617. package/src/lib/middleware/files/js/__name__.middleware.spec.js +7 -0
  618. package/src/lib/middleware/files/ts/__name__.middleware.spec.ts +7 -0
  619. package/src/lib/middleware/files/ts/__name__.middleware.ts +8 -0
  620. package/src/lib/middleware/middleware.schema.d.ts +28 -0
  621. package/src/lib/module/files/js/__name__.module.js +4 -0
  622. package/src/lib/module/files/ts/__name__.module.ts +4 -0
  623. package/src/lib/module/module.schema.d.ts +40 -0
  624. package/src/lib/pipe/files/js/__name__.pipe.js +8 -0
  625. package/src/lib/pipe/files/js/__name__.pipe.spec.js +7 -0
  626. package/src/lib/pipe/files/ts/__name__.pipe.spec.ts +7 -0
  627. package/src/lib/pipe/files/ts/__name__.pipe.ts +8 -0
  628. package/src/lib/pipe/pipe.schema.d.ts +28 -0
  629. package/src/lib/prisma-resource/files/ts/__name__.controller.spec.ts +20 -0
  630. package/src/lib/prisma-resource/files/ts/__name__.controller.ts +63 -0
  631. package/src/lib/prisma-resource/files/ts/__name__.module.ts +9 -0
  632. package/src/lib/prisma-resource/files/ts/__name__.service.spec.ts +18 -0
  633. package/src/lib/prisma-resource/files/ts/__name__.service.ts +28 -0
  634. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.dto.ts +1 -0
  635. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.input.ts +7 -0
  636. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.dto.ts +6 -0
  637. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.input.ts +13 -0
  638. package/src/lib/prisma-resource/files/ts/entities/__name@singular@ent__.ts +7 -0
  639. package/src/lib/prisma-resource/prisma-resource.schema.d.ts +57 -0
  640. package/src/lib/provider/files/js/__name__.js +4 -0
  641. package/src/lib/provider/files/js/__name__.spec.js +18 -0
  642. package/src/lib/provider/files/ts/__name__.spec.ts +18 -0
  643. package/src/lib/provider/files/ts/__name__.ts +4 -0
  644. package/src/lib/provider/provider.schema.d.ts +48 -0
  645. package/src/lib/resolver/files/js/__name__.resolver.js +4 -0
  646. package/src/lib/resolver/files/js/__name__.resolver.spec.js +18 -0
  647. package/src/lib/resolver/files/ts/__name__.resolver.spec.ts +18 -0
  648. package/src/lib/resolver/files/ts/__name__.resolver.ts +4 -0
  649. package/src/lib/resolver/resolver.schema.d.ts +36 -0
  650. package/src/lib/resource/files/ts/__name__.controller.spec.ts +20 -0
  651. package/src/lib/resource/files/ts/__name__.controller.ts +63 -0
  652. package/src/lib/resource/files/ts/__name__.gateway.spec.ts +19 -0
  653. package/src/lib/resource/files/ts/__name__.gateway.ts +34 -0
  654. package/src/lib/resource/files/ts/__name__.graphql +24 -0
  655. package/src/lib/resource/files/ts/__name__.module.ts +9 -0
  656. package/src/lib/resource/files/ts/__name__.resolver.spec.ts +19 -0
  657. package/src/lib/resource/files/ts/__name__.resolver.ts +60 -0
  658. package/src/lib/resource/files/ts/__name__.service.spec.ts +18 -0
  659. package/src/lib/resource/files/ts/__name__.service.ts +28 -0
  660. package/src/lib/resource/files/ts/dto/create-__name@singular__.dto.ts +1 -0
  661. package/src/lib/resource/files/ts/dto/create-__name@singular__.input.ts +7 -0
  662. package/src/lib/resource/files/ts/dto/update-__name@singular__.dto.ts +6 -0
  663. package/src/lib/resource/files/ts/dto/update-__name@singular__.input.ts +13 -0
  664. package/src/lib/resource/files/ts/entities/__name@singular@ent__.ts +7 -0
  665. package/src/lib/resource/resource.schema.d.ts +57 -0
  666. package/src/lib/service/files/js/__name__.service.js +4 -0
  667. package/src/lib/service/files/js/__name__.service.spec.js +18 -0
  668. package/src/lib/service/files/ts/__name__.service.spec.ts +18 -0
  669. package/src/lib/service/files/ts/__name__.service.ts +4 -0
  670. package/src/lib/service/service.schema.d.ts +44 -0
  671. package/src/lib/sub-app/files/js/.babelrc +4 -0
  672. package/src/lib/sub-app/files/js/index.js +2 -0
  673. package/src/lib/sub-app/files/js/jsconfig.json +10 -0
  674. package/src/lib/sub-app/files/js/src/app.controller.js +15 -0
  675. package/src/lib/sub-app/files/js/src/app.controller.spec.js +22 -0
  676. package/src/lib/sub-app/files/js/src/app.module.js +10 -0
  677. package/src/lib/sub-app/files/js/src/app.service.js +8 -0
  678. package/src/lib/sub-app/files/js/src/main.js +8 -0
  679. package/src/lib/sub-app/files/js/test/app.e2e-spec.js +23 -0
  680. package/src/lib/sub-app/files/js/test/jest-e2e.json +5 -0
  681. package/src/lib/sub-app/files/ts/src/__name__.controller.spec.ts +22 -0
  682. package/src/lib/sub-app/files/ts/src/__name__.controller.ts +12 -0
  683. package/src/lib/sub-app/files/ts/src/__name__.module.ts +10 -0
  684. package/src/lib/sub-app/files/ts/src/__name__.service.ts +8 -0
  685. package/src/lib/sub-app/files/ts/src/main.ts +8 -0
  686. package/src/lib/sub-app/files/ts/test/app.e2e-spec.ts +24 -0
  687. package/src/lib/sub-app/files/ts/test/jest-e2e.json +9 -0
  688. package/src/lib/sub-app/files/ts/tsconfig.app.json +9 -0
  689. package/src/lib/sub-app/sub-app.schema.d.ts +21 -0
  690. package/src/lib/sub-app/workspace/js/.babelrc +4 -0
  691. package/src/lib/sub-app/workspace/js/index.js +2 -0
  692. package/src/lib/sub-app/workspace/js/jsconfig.json +10 -0
  693. package/src/lib/sub-app/workspace/ts/tsconfig.app.json +9 -0
  694. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/seedDataMngtPages.ts +0 -258
  695. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentPanel.tsx +0 -497
  696. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/skills.ts +0 -464
@@ -1,119 +1,118 @@
1
- import { Alert, Card, Collapse, Divider, Table, Tabs, Typography } from "antd";
1
+ import { Alert, Card, Collapse, Divider, Table, Tabs, Typography } from 'antd';
2
2
 
3
3
  const { Title, Paragraph, Text } = Typography;
4
4
 
5
5
  // ─── 核心概念 ────────────────────────────────────────────────────────────────
6
6
 
7
7
  const coreConceptColumns = [
8
- { title: "概念", dataIndex: "concept", key: "concept", width: 160 },
9
- { title: "数据库表", dataIndex: "table", key: "table", width: 140 },
10
- { title: "说明", dataIndex: "description", key: "description" },
8
+ { title: '概念', dataIndex: 'concept', key: 'concept', width: 160 },
9
+ { title: '数据库表', dataIndex: 'table', key: 'table', width: 140 },
10
+ { title: '说明', dataIndex: 'description', key: 'description' },
11
11
  ];
12
12
 
13
13
  const coreConceptData = [
14
14
  {
15
- key: "page",
16
- concept: "Page(页面/菜单)",
17
- table: "t_page",
15
+ key: 'page',
16
+ concept: 'Page(页面/菜单)',
17
+ table: 't_page',
18
18
  description:
19
- "定义系统中的所有菜单项,支持树形结构(parentId)。每个 Page 有唯一的 code,对应前端路由注册表中的 key。",
19
+ '定义系统中的所有菜单项,支持树形结构(parentId)。每个 Page 有唯一的 code,对应前端路由注册表中的 key。',
20
20
  },
21
21
  {
22
- key: "resource",
23
- concept: "Resource(资源)",
24
- table: "t_resource",
22
+ key: 'resource',
23
+ concept: 'Resource(资源)',
24
+ table: 't_resource',
25
25
  description:
26
- "定义后端 API 资源,每个资源对应一组 CRUD 权限(readAny, createAny, updateAny, deleteAny)。",
26
+ '定义后端 API 资源,每个资源对应一组 CRUD 权限(readAny, createAny, updateAny, deleteAny)。',
27
27
  },
28
28
  {
29
- key: "role",
30
- concept: "Role(角色)",
31
- table: "t_role",
29
+ key: 'role',
30
+ concept: 'Role(角色)',
31
+ table: 't_role',
32
32
  description:
33
- "角色是权限分配的基本单位。一个用户拥有一个角色,角色决定了可见菜单和 API 权限。",
33
+ '角色是权限分配的基本单位。一个用户拥有一个角色,角色决定了可见菜单和 API 权限。',
34
34
  },
35
35
  {
36
- key: "role_pages",
37
- concept: "RolePages(角色-页面)",
38
- table: "t_role_pages",
39
- description: "角色与页面的关联表,决定角色可以看到哪些菜单项。",
36
+ key: 'role_pages',
37
+ concept: 'RolePages(角色-页面)',
38
+ table: 't_role_pages',
39
+ description: '角色与页面的关联表,决定角色可以看到哪些菜单项。',
40
40
  },
41
41
  {
42
- key: "role_resource",
43
- concept: "RoleResource(角色-资源)",
44
- table: "t_role_resource",
42
+ key: 'role_resource',
43
+ concept: 'RoleResource(角色-资源)',
44
+ table: 't_role_resource',
45
45
  description:
46
- "角色与资源的关联表,定义角色对每个资源的具体权限(读/写/改/删)。",
46
+ '角色与资源的关联表,定义角色对每个资源的具体权限(读/写/改/删)。',
47
47
  },
48
48
  {
49
- key: "page_resource",
50
- concept: "PageResource(页面-资源)",
51
- table: "t_page_resource",
49
+ key: 'page_resource',
50
+ concept: 'PageResource(页面-资源)',
51
+ table: 't_page_resource',
52
52
  description:
53
- "页面与资源的关联表,记录每个页面需要哪些 API 资源。用于批量为角色分配权限。",
53
+ '页面与资源的关联表,记录每个页面需要哪些 API 资源。用于批量为角色分配权限。',
54
54
  },
55
55
  ];
56
56
 
57
57
  // ─── t_page 字段说明 ─────────────────────────────────────────────────────────
58
58
 
59
59
  const pageFieldColumns = [
60
- { title: "字段", dataIndex: "field", key: "field", width: 180 },
61
- { title: "说明", dataIndex: "description", key: "description" },
62
- { title: "示例", dataIndex: "example", key: "example", width: 260 },
60
+ { title: '字段', dataIndex: 'field', key: 'field', width: 180 },
61
+ { title: '说明', dataIndex: 'description', key: 'description' },
62
+ { title: '示例', dataIndex: 'example', key: 'example', width: 260 },
63
63
  ];
64
64
 
65
65
  const pageFieldData = [
66
66
  {
67
- key: "code",
68
- field: "code",
69
- description:
70
- "页面唯一标识,原生页面必须与 routeRegistry 的 key 一致",
71
- example: "software_dashboard",
67
+ key: 'code',
68
+ field: 'code',
69
+ description: '页面唯一标识,原生页面必须与 routeRegistry 的 key 一致',
70
+ example: 'software_dashboard',
72
71
  },
73
72
  {
74
- key: "zhName",
75
- field: "zhName / enName",
76
- description: "菜单显示的中英文名称",
77
- example: "软件看板 / Software Dashboard",
73
+ key: 'zhName',
74
+ field: 'zhName / enName',
75
+ description: '菜单显示的中英文名称',
76
+ example: '软件看板 / Software Dashboard',
78
77
  },
79
78
  {
80
- key: "path",
81
- field: "path",
79
+ key: 'path',
80
+ field: 'path',
82
81
  description:
83
- "URL 完整路径。原生页面会被 routeRegistry 覆盖,iframe/外部链接页面以此作为菜单跳转路径",
84
- example: "/office/software-dashboard",
82
+ 'URL 完整路径。原生页面会被 routeRegistry 覆盖,iframe/外部链接页面以此作为菜单跳转路径',
83
+ example: '/office/software-dashboard',
85
84
  },
86
85
  {
87
- key: "parentId",
88
- field: "parentId",
89
- description: "父菜单 ID,用于构建树形菜单结构",
90
- example: "office 页面的 ID",
86
+ key: 'parentId',
87
+ field: 'parentId',
88
+ description: '父菜单 ID,用于构建树形菜单结构',
89
+ example: 'office 页面的 ID',
91
90
  },
92
91
  {
93
- key: "sortOrder",
94
- field: "sortOrder",
95
- description: "同级菜单的排序权重,数字越小越靠前",
96
- example: "10",
92
+ key: 'sortOrder',
93
+ field: 'sortOrder',
94
+ description: '同级菜单的排序权重,数字越小越靠前',
95
+ example: '10',
97
96
  },
98
97
  {
99
- key: "iframeUrl",
100
- field: "iframeUrl",
98
+ key: 'iframeUrl',
99
+ field: 'iframeUrl',
101
100
  description:
102
- "iframe 嵌入地址。设置后页面以 iframe 方式渲染,支持 {{locale}} 模板变量",
103
- example: "https://analytics.example.com?lang={{locale}}",
101
+ 'iframe 嵌入地址。设置后页面以 iframe 方式渲染,支持 {{locale}} 模板变量',
102
+ example: 'https://analytics.example.com?lang={{locale}}',
104
103
  },
105
104
  {
106
- key: "externalRedirectUrl",
107
- field: "externalRedirectUrl",
105
+ key: 'externalRedirectUrl',
106
+ field: 'externalRedirectUrl',
108
107
  description:
109
- "外部跳转地址。设置后点击菜单在新窗口打开目标 URL,支持 {{locale}} 模板变量",
110
- example: "https://wiki.example.com/page",
108
+ '外部跳转地址。设置后点击菜单在新窗口打开目标 URL,支持 {{locale}} 模板变量',
109
+ example: 'https://wiki.example.com/page',
111
110
  },
112
111
  {
113
- key: "isVirtual",
114
- field: "isVirtual",
115
- description: "虚拟页面标记,设为 true 时不在侧边栏显示菜单项",
116
- example: "false",
112
+ key: 'isVirtual',
113
+ field: 'isVirtual',
114
+ description: '虚拟页面标记,设为 true 时不在侧边栏显示菜单项',
115
+ example: 'false',
117
116
  },
118
117
  ];
119
118
 
@@ -121,8 +120,8 @@ const pageFieldData = [
121
120
 
122
121
  const faqItems = [
123
122
  {
124
- key: "1",
125
- label: "菜单不显示?",
123
+ key: '1',
124
+ label: '菜单不显示?',
126
125
  children: (
127
126
  <ol>
128
127
  <li>
@@ -130,38 +129,34 @@ const faqItems = [
130
129
  t_page 的 code 一致
131
130
  </li>
132
131
  <li>
133
- 检查 <Text code>t_page</Text>{" "}
134
- 表中是否创建了记录(进入 Page Management 查看)
132
+ 检查 <Text code>t_page</Text> 表中是否创建了记录(进入 Page Management
133
+ 查看)
135
134
  </li>
136
135
  <li>检查当前用户的角色是否分配了该页面(进入 Role Management 查看)</li>
137
136
  <li>
138
- 检查 <Text code>parentId</Text>{" "}
137
+ 检查 <Text code>parentId</Text>{' '}
139
138
  是否正确——父级页面也需要分配给角色,否则整个子树不可见
140
139
  </li>
141
140
  </ol>
142
141
  ),
143
142
  },
144
143
  {
145
- key: "2",
146
- label: "页面显示空白?",
144
+ key: '2',
145
+ label: '页面显示空白?',
147
146
  children: (
148
147
  <ol>
149
148
  <li>
150
- 检查 <Text code>routeRegistry.tsx</Text> 中的{" "}
149
+ 检查 <Text code>routeRegistry.tsx</Text> 中的{' '}
151
150
  <Text code>component</Text> 是否正确导入
152
151
  </li>
153
- <li>
154
- 确认页面组件文件已正确导出(export 名称是否与 import 一致)
155
- </li>
156
- <li>
157
- 打开浏览器 DevTools Console 查看是否有 JS 加载错误
158
- </li>
152
+ <li>确认页面组件文件已正确导出(export 名称是否与 import 一致)</li>
153
+ <li>打开浏览器 DevTools Console 查看是否有 JS 加载错误</li>
159
154
  </ol>
160
155
  ),
161
156
  },
162
157
  {
163
- key: "3",
164
- label: "API 返回 403?",
158
+ key: '3',
159
+ label: 'API 返回 403?',
165
160
  children: (
166
161
  <Paragraph>
167
162
  后端权限由 <Text code>t_role_resource</Text> 控制。进入 Role
@@ -172,8 +167,8 @@ const faqItems = [
172
167
  ),
173
168
  },
174
169
  {
175
- key: "4",
176
- label: "iframe 页面加载失败?",
170
+ key: '4',
171
+ label: 'iframe 页面加载失败?',
177
172
  children: (
178
173
  <ol>
179
174
  <li>
@@ -181,41 +176,39 @@ const faqItems = [
181
176
  Content-Security-Policy 头)
182
177
  </li>
183
178
  <li>
184
- 确认 <Text code>iframeUrl</Text> 与{" "}
179
+ 确认 <Text code>iframeUrl</Text> 与{' '}
185
180
  <Text code>externalRedirectUrl</Text> 未同时填写(两者互斥)
186
181
  </li>
187
182
  <li>
188
- 如果目标网站禁止 iframe 嵌入,改用 <Text code>externalRedirectUrl</Text>{" "}
189
- 以新窗口方式打开
183
+ 如果目标网站禁止 iframe 嵌入,改用{' '}
184
+ <Text code>externalRedirectUrl</Text> 以新窗口方式打开
190
185
  </li>
191
186
  </ol>
192
187
  ),
193
188
  },
194
189
  {
195
- key: "5",
196
- label: "如何添加子菜单?",
190
+ key: '5',
191
+ label: '如何添加子菜单?',
197
192
  children: (
198
193
  <Paragraph>
199
- 在 <Text code>t_page</Text> 中创建记录时将{" "}
200
- <Text code>parentId</Text> 设为父菜单的 ID。如果是原生页面,在{" "}
201
- <Text code>routeRegistry.tsx</Text> 中也需要将路由放入父路由的{" "}
202
- <Text code>children</Text> 对象中。
194
+ 在 <Text code>t_page</Text> 中创建记录时将 <Text code>parentId</Text>{' '}
195
+ 设为父菜单的 ID。如果是原生页面,在 <Text code>routeRegistry.tsx</Text>{' '}
196
+ 中也需要将路由放入父路由的 <Text code>children</Text> 对象中。
203
197
  </Paragraph>
204
198
  ),
205
199
  },
206
200
  {
207
- key: "6",
208
- label: "{{locale}} 模板变量怎么用?",
201
+ key: '6',
202
+ label: '{{locale}} 模板变量怎么用?',
209
203
  children: (
210
204
  <Paragraph>
211
- 在 <Text code>iframeUrl</Text> 或{" "}
212
- <Text code>externalRedirectUrl</Text> 中使用{" "}
213
- <Text code>{"{{locale}}"}</Text>,系统会在运行时自动替换为当前语言(
205
+ 在 <Text code>iframeUrl</Text> 或 <Text code>externalRedirectUrl</Text>{' '}
206
+ 中使用 <Text code>{'{{locale}}'}</Text>
207
+ ,系统会在运行时自动替换为当前语言(
214
208
  <Text code>en</Text> 或 <Text code>zh_CN</Text>)。例如:
215
209
  <Text code>
216
- https://example.com/docs?lang=zh_CN
217
- https://example.com/docs?lang=en
218
- </Text>
210
+ https://example.com/docs?lang=zh_CN https://example.com/docs?lang=en
211
+ </Text>
219
212
  </Paragraph>
220
213
  ),
221
214
  },
@@ -224,115 +217,115 @@ const faqItems = [
224
217
  // ─── 原生页面注册步骤 ────────────────────────────────────────────────────────
225
218
 
226
219
  const nativeStepColumns = [
227
- { title: "步骤", dataIndex: "step", key: "step", width: 80 },
228
- { title: "操作", dataIndex: "action", key: "action", width: 200 },
229
- { title: "说明", dataIndex: "detail", key: "detail" },
220
+ { title: '步骤', dataIndex: 'step', key: 'step', width: 80 },
221
+ { title: '操作', dataIndex: 'action', key: 'action', width: 200 },
222
+ { title: '说明', dataIndex: 'detail', key: 'detail' },
230
223
  ];
231
224
 
232
225
  const nativeStepData = [
233
226
  {
234
- key: "1",
235
- step: "1",
236
- action: "创建页面组件",
227
+ key: '1',
228
+ step: '1',
229
+ action: '创建页面组件',
237
230
  detail:
238
- "在 src/routes/ 下创建页面组件文件,如 src/routes/office/my-feature/index.tsx,导出页面组件。",
231
+ '在 src/routes/ 下创建页面组件文件,如 src/routes/office/my-feature/index.tsx,导出页面组件。',
239
232
  },
240
233
  {
241
- key: "2",
242
- step: "2",
243
- action: "在 routeRegistry 注册路由",
234
+ key: '2',
235
+ step: '2',
236
+ action: '在 routeRegistry 注册路由',
244
237
  detail:
245
- "在 src/config/routeRegistry.tsx 中添加路由条目。key 即为 page code,配置 path(相对路径)和 component(lazy import)。如有子路由放入 children。",
238
+ '在 src/config/routeRegistry.tsx 中添加路由条目。key 即为 page code,配置 path(相对路径)和 component(lazy import)。如有子路由放入 children。',
246
239
  },
247
240
  {
248
- key: "3",
249
- step: "3",
250
- action: "在 Page Management 创建记录",
241
+ key: '3',
242
+ step: '3',
243
+ action: '在 Page Management 创建记录',
251
244
  detail:
252
- "进入 /admin/permission/page-list,新建页面。code 必须与 routeRegistry 中的 key 完全一致,设置 parentId 为父菜单 ID。",
245
+ '进入 /admin/permission/page-list,新建页面。code 必须与 routeRegistry 中的 key 完全一致,设置 parentId 为父菜单 ID。',
253
246
  },
254
247
  {
255
- key: "4",
256
- step: "4",
257
- action: "关联资源(可选)",
248
+ key: '4',
249
+ step: '4',
250
+ action: '关联资源(可选)',
258
251
  detail:
259
- "如果页面需要 API 权限控制,在页面记录中关联对应的 Resource,用于后续批量分配权限。",
252
+ '如果页面需要 API 权限控制,在页面记录中关联对应的 Resource,用于后续批量分配权限。',
260
253
  },
261
254
  {
262
- key: "5",
263
- step: "5",
264
- action: "为角色分配页面",
255
+ key: '5',
256
+ step: '5',
257
+ action: '为角色分配页面',
265
258
  detail:
266
- "进入 /admin/permission/role-list,编辑目标角色,勾选新添加的页面。",
259
+ '进入 /admin/permission/role-list,编辑目标角色,勾选新添加的页面。',
267
260
  },
268
261
  ];
269
262
 
270
263
  // ─── 对比表 ──────────────────────────────────────────────────────────────────
271
264
 
272
265
  const comparisonColumns = [
273
- { title: "", dataIndex: "item", key: "item", width: 160 },
274
- { title: "原生页面", dataIndex: "native", key: "native" },
275
- { title: "外部链接", dataIndex: "external", key: "external" },
276
- { title: "iframe 嵌入", dataIndex: "iframe", key: "iframe" },
277
- { title: "动态菜单", dataIndex: "dynamic", key: "dynamic" },
266
+ { title: '', dataIndex: 'item', key: 'item', width: 160 },
267
+ { title: '原生页面', dataIndex: 'native', key: 'native' },
268
+ { title: '外部链接', dataIndex: 'external', key: 'external' },
269
+ { title: 'iframe 嵌入', dataIndex: 'iframe', key: 'iframe' },
270
+ { title: '动态菜单', dataIndex: 'dynamic', key: 'dynamic' },
278
271
  ];
279
272
 
280
273
  const comparisonData = [
281
274
  {
282
- key: "scene",
283
- item: "适用场景",
284
- native: "内部开发的完整功能页面",
285
- external: "跳转到外部系统(Wiki、文档等)",
286
- iframe: "在应用内嵌入外部页面(报表等)",
287
- dynamic: "同一组件多实例(如工作室列表)",
275
+ key: 'scene',
276
+ item: '适用场景',
277
+ native: '内部开发的完整功能页面',
278
+ external: '跳转到外部系统(Wiki、文档等)',
279
+ iframe: '在应用内嵌入外部页面(报表等)',
280
+ dynamic: '同一组件多实例(如工作室列表)',
288
281
  },
289
282
  {
290
- key: "registry",
291
- item: "需要修改前端页面",
292
- native: "是(config/routeRegistry.tsx)",
293
- external: "",
294
- iframe: "",
295
- dynamic: "是(config/dynamicMenus.ts 配置)",
283
+ key: 'registry',
284
+ item: '需要修改前端页面',
285
+ native: '是(config/routeRegistry.tsx)',
286
+ external: '',
287
+ iframe: '',
288
+ dynamic: '是(config/dynamicMenus.ts 配置)',
296
289
  },
297
290
  {
298
- key: "component",
299
- item: "需要写页面组件",
300
- native: "",
301
- external: "",
302
- iframe: "",
303
- dynamic: "是(共享组件)",
291
+ key: 'component',
292
+ item: '需要写页面组件',
293
+ native: '',
294
+ external: '',
295
+ iframe: '',
296
+ dynamic: '是(共享组件)',
304
297
  },
305
298
  {
306
- key: "tpage",
307
- item: "需要 t_page 记录",
308
- native: "是(code = routeRegistry key)",
309
- external: "是(填 externalRedirectUrl)",
310
- iframe: "是(填 iframeUrl)",
311
- dynamic: "是(父级目录)",
299
+ key: 'tpage',
300
+ item: '需要 t_page 记录',
301
+ native: '是(code = routeRegistry key)',
302
+ external: '是(填 externalRedirectUrl)',
303
+ iframe: '是(填 iframeUrl)',
304
+ dynamic: '是(父级目录)',
312
305
  },
313
306
  {
314
- key: "url",
315
- item: "关键 t_page 字段",
316
- native: "code, path, parentId",
317
- external: "externalRedirectUrl",
318
- iframe: "iframeUrl",
319
- dynamic: "code(如 invested / native)",
307
+ key: 'url',
308
+ item: '关键 t_page 字段',
309
+ native: 'code, path, parentId',
310
+ external: 'externalRedirectUrl',
311
+ iframe: 'iframeUrl',
312
+ dynamic: 'code(如 invested / native)',
320
313
  },
321
314
  {
322
- key: "behavior",
323
- item: "用户体验",
324
- native: "应用内完整渲染",
325
- external: "新窗口打开 + 自动返回",
326
- iframe: "应用框架内嵌入",
327
- dynamic: "应用内完整渲染",
315
+ key: 'behavior',
316
+ item: '用户体验',
317
+ native: '应用内完整渲染',
318
+ external: '新窗口打开 + 自动返回',
319
+ iframe: '应用框架内嵌入',
320
+ dynamic: '应用内完整渲染',
328
321
  },
329
322
  {
330
- key: "template",
331
- item: "支持 {{locale}}",
332
- native: "",
333
- external: "",
334
- iframe: "",
335
- dynamic: "",
323
+ key: 'template',
324
+ item: '支持 {{locale}}',
325
+ native: '',
326
+ external: '',
327
+ iframe: '',
328
+ dynamic: '',
336
329
  },
337
330
  ];
338
331
 
@@ -340,7 +333,7 @@ const comparisonData = [
340
333
 
341
334
  export const PermissionReadmePage = () => {
342
335
  return (
343
- <div style={{ padding: "24px 0" }}>
336
+ <div>
344
337
  <Typography>
345
338
  <Title level={2}>菜单管理说明</Title>
346
339
  <Paragraph>
@@ -352,9 +345,8 @@ export const PermissionReadmePage = () => {
352
345
  <Card title="菜单系统架构" style={{ marginBottom: 24 }}>
353
346
  <Paragraph>
354
347
  系统的菜单管理涉及<Text strong>前端路由注册</Text>和
355
- <Text strong>数据库页面配置</Text>两个部分的协作。
356
- 未匹配到 routeRegistry 的路由会进入{" "}
357
- <Text code>WildcardPage</Text> 通配组件,
348
+ <Text strong>数据库页面配置</Text>两个部分的协作。 未匹配到
349
+ routeRegistry 的路由会进入 <Text code>WildcardPage</Text> 通配组件,
358
350
  由它根据 t_page 的配置决定渲染 iframe、打开外部链接或显示 404。
359
351
  </Paragraph>
360
352
  <Alert
@@ -363,18 +355,18 @@ export const PermissionReadmePage = () => {
363
355
  message="数据流"
364
356
  description={
365
357
  <div>
366
- <Text code>routeRegistry.tsx</Text>(前端路由定义:Route Path、React组件) +{" "}
367
- <Text code>t_page</Text>(数据库菜单配置) →{" "}
358
+ <Text code>routeRegistry.tsx</Text>(前端路由定义:Route
359
+ Path、React组件) + <Text code>t_page</Text>(数据库菜单配置) →{' '}
368
360
  <Text code>侧边栏菜单渲染</Text> + <Text code>路由匹配</Text>
369
361
  <br />
370
362
  <br />
371
- 路由匹配优先级:<Text code>routeRegistry</Text> 原生路由 &gt;{" "}
363
+ 路由匹配优先级:<Text code>routeRegistry</Text> 原生路由 &gt;{' '}
372
364
  <Text code>WildcardPage (/*)</Text> 通配路由
373
365
  <br />
374
366
  <br />
375
- WildcardPage 处理:查询 t_page → 有{" "}
376
- <Text code>iframeUrl</Text> → 渲染 iframe | 有{" "}
377
- <Text code>externalRedirectUrl</Text> → 新窗口打开 | 否则 → 404
367
+ WildcardPage 处理:查询 t_page → 有 <Text code>iframeUrl</Text> →
368
+ 渲染 iframe | 有 <Text code>externalRedirectUrl</Text> →
369
+ 新窗口打开 | 否则 → 404
378
370
  </div>
379
371
  }
380
372
  style={{ marginBottom: 16 }}
@@ -423,12 +415,12 @@ export const PermissionReadmePage = () => {
423
415
  <Tabs
424
416
  items={[
425
417
  {
426
- key: "native",
427
- label: "原生页面",
418
+ key: 'native',
419
+ label: '原生页面',
428
420
  children: (
429
421
  <>
430
422
  <Paragraph>
431
- 原生页面是最常见的方式——编写 React 组件,在{" "}
423
+ 原生页面是最常见的方式——编写 React 组件,在{' '}
432
424
  <Text code>routeRegistry.tsx</Text> 中注册路由,再在 t_page
433
425
  中创建对应记录。
434
426
  </Paragraph>
@@ -438,9 +430,9 @@ export const PermissionReadmePage = () => {
438
430
  message="关键约束"
439
431
  description={
440
432
  <>
441
- routeRegistry 中的 key(如{" "}
442
- <Text code>software_dashboard</Text>)必须与 t_page 的{" "}
443
- <Text code>code</Text>{" "}
433
+ routeRegistry 中的 key(如{' '}
434
+ <Text code>software_dashboard</Text>)必须与 t_page 的{' '}
435
+ <Text code>code</Text>{' '}
444
436
  字段完全一致,否则菜单无法正常显示。
445
437
  </>
446
438
  }
@@ -458,10 +450,10 @@ export const PermissionReadmePage = () => {
458
450
  <Title level={5}>routeRegistry 示例</Title>
459
451
  <pre
460
452
  style={{
461
- background: "#f5f5f5",
453
+ background: '#f5f5f5',
462
454
  padding: 16,
463
455
  borderRadius: 6,
464
- overflow: "auto",
456
+ overflow: 'auto',
465
457
  fontSize: 13,
466
458
  lineHeight: 1.6,
467
459
  }}
@@ -478,56 +470,61 @@ office: {
478
470
  },`}</pre>
479
471
 
480
472
  <Divider />
481
- <Title level={5}>
482
- 下划线前缀(_ 开头)的子路由
483
- </Title>
473
+ <Title level={5}>下划线前缀(_ 开头)的子路由</Title>
484
474
  <Paragraph>
485
- routeRegistry 中以 <Text code>_</Text>{" "}
486
- 开头的 key 是<Text strong>内部子路由</Text>,
487
- <Text strong>无需在 t_page 中注册</Text>。
488
- 它们由父级页面的 code
489
- 统一管理权限,属于同一个页面模块的不同视图。
475
+ routeRegistry 中以 <Text code>_</Text> 开头的 key 是
476
+ <Text strong>内部子路由</Text>,
477
+ <Text strong>无需在 t_page 中注册</Text>。 它们由父级页面的
478
+ code 统一管理权限,属于同一个页面模块的不同视图。
490
479
  </Paragraph>
491
480
 
492
- <Title level={5}>
493
- CRUD 子路由
494
- </Title>
481
+ <Title level={5}>CRUD 子路由</Title>
495
482
  <Paragraph>
496
483
  最常见的 <Text code>_</Text> 前缀子路由,
497
484
  用于同一模块的列表/新建/编辑/详情视图,不出现在侧边栏中:
498
485
  </Paragraph>
499
486
  <Table
500
487
  columns={[
501
- { title: "Key", dataIndex: "key", key: "key", width: 100 },
502
- { title: "典型 path", dataIndex: "path", key: "path", width: 140 },
503
- { title: "用途", dataIndex: "usage", key: "usage" },
488
+ {
489
+ title: 'Key',
490
+ dataIndex: 'key',
491
+ key: 'key',
492
+ width: 100,
493
+ },
494
+ {
495
+ title: '典型 path',
496
+ dataIndex: 'path',
497
+ key: 'path',
498
+ width: 140,
499
+ },
500
+ { title: '用途', dataIndex: 'usage', key: 'usage' },
504
501
  ]}
505
502
  dataSource={[
506
503
  {
507
- key: "_list",
504
+ key: '_list',
508
505
  path: '""(index: true)',
509
506
  usage:
510
- "列表页,作为父路由的默认子路由(index route),访问父路径时自动渲染",
507
+ '列表页,作为父路由的默认子路由(index route),访问父路径时自动渲染',
511
508
  },
512
509
  {
513
- key: "_create",
510
+ key: '_create',
514
511
  path: '"create"',
515
- usage: "新建页,如 /admin/staff/create",
512
+ usage: '新建页,如 /admin/staff/create',
516
513
  },
517
514
  {
518
- key: "_edit",
515
+ key: '_edit',
519
516
  path: '"edit/:id"',
520
- usage: "编辑页,如 /admin/staff/edit/123",
517
+ usage: '编辑页,如 /admin/staff/edit/123',
521
518
  },
522
519
  {
523
- key: "_show",
520
+ key: '_show',
524
521
  path: '"show/:id"',
525
- usage: "详情页,如 /admin/staff/show/123",
522
+ usage: '详情页,如 /admin/staff/show/123',
526
523
  },
527
524
  {
528
- key: "_index",
525
+ key: '_index',
529
526
  path: '""(index: true)',
530
- usage: "与 _list 类似,用于非 CRUD 场景的默认子路由",
527
+ usage: '与 _list 类似,用于非 CRUD 场景的默认子路由',
531
528
  },
532
529
  ]}
533
530
  pagination={false}
@@ -536,21 +533,22 @@ office: {
536
533
  />
537
534
 
538
535
  <Divider />
539
- <Title level={5}>
540
- 动态参数路由 + Sidebar-only 菜单条目
541
- </Title>
536
+ <Title level={5}>动态参数路由 + Sidebar-only 菜单条目</Title>
542
537
  <Paragraph>
543
538
  当多个菜单项共享同一个页面组件、只通过 URL
544
- 参数区分内容时,使用{" "}
545
- <Text strong>动态参数路由 + Sidebar-only 条目</Text>的组合模式:
539
+ 参数区分内容时,使用{' '}
540
+ <Text strong>动态参数路由 + Sidebar-only 条目</Text>
541
+ 的组合模式:
546
542
  </Paragraph>
547
543
  <ul>
548
544
  <li>
549
- 动态参数路由(如 <Text code>_tab</Text> / <Text code>_region</Text>) - 负责实际渲染,<Text strong>不注册 t_page</Text>
545
+ 动态参数路由(如 <Text code>_tab</Text> /{' '}
546
+ <Text code>_region</Text>) - 负责实际渲染,
547
+ <Text strong>不注册 t_page</Text>
550
548
  </li>
551
549
  <li>
552
- Sidebar-only 条目(如{" "}
553
- <Text code>apac</Text>、<Text code>security_event</Text>
550
+ Sidebar-only 条目(如 <Text code>apac</Text>、
551
+ <Text code>security_event</Text>
554
552
  )— 只有 path、没有 component,
555
553
  <Text strong>需要注册 t_page</Text>,
556
554
  出现在侧边栏菜单中。用户点击后 URL
@@ -559,10 +557,10 @@ office: {
559
557
  </ul>
560
558
  <pre
561
559
  style={{
562
- background: "#f5f5f5",
560
+ background: '#f5f5f5',
563
561
  padding: 16,
564
562
  borderRadius: 6,
565
- overflow: "auto",
563
+ overflow: 'auto',
566
564
  fontSize: 13,
567
565
  lineHeight: 1.6,
568
566
  }}
@@ -596,13 +594,14 @@ overview: {
596
594
  description={
597
595
  <ul style={{ margin: 0, paddingLeft: 20 }}>
598
596
  <li>
599
- <Text strong>不以 _ 开头</Text>的 key →
600
- 页面 code,需在 t_page 中注册。有 component
597
+ <Text strong>不以 _ 开头</Text>的 key → 页面
598
+ code,需在 t_page 中注册。有 component
601
599
  的是原生页面,无 component 的是 sidebar-only 菜单条目
602
600
  </li>
603
601
  <li>
604
602
  <Text strong>以 _ 开头</Text>的 key →
605
- 内部子路由,不注册 t_page,不出现在侧边栏,权限跟随父级页面
603
+ 内部子路由,不注册
604
+ t_page,不出现在侧边栏,权限跟随父级页面
606
605
  </li>
607
606
  </ul>
608
607
  }
@@ -612,10 +611,10 @@ overview: {
612
611
  <Title level={5}>CRUD 模块完整示例</Title>
613
612
  <pre
614
613
  style={{
615
- background: "#f5f5f5",
614
+ background: '#f5f5f5',
616
615
  padding: 16,
617
616
  borderRadius: 6,
618
- overflow: "auto",
617
+ overflow: 'auto',
619
618
  fontSize: 13,
620
619
  lineHeight: 1.6,
621
620
  }}
@@ -651,13 +650,13 @@ staff: {
651
650
  ),
652
651
  },
653
652
  {
654
- key: "external",
655
- label: "外部链接",
653
+ key: 'external',
654
+ label: '外部链接',
656
655
  children: (
657
656
  <>
658
657
  <Paragraph>
659
658
  外部链接方式<Text strong>无需编写任何前端代码</Text>
660
- ,只需在 Page Management 中创建一条 t_page 记录,并填写{" "}
659
+ ,只需在 Page Management 中创建一条 t_page 记录,并填写{' '}
661
660
  <Text code>externalRedirectUrl</Text> 字段即可。
662
661
  点击菜单时系统会在新窗口打开目标 URL,并自动返回前一个页面。
663
662
  </Paragraph>
@@ -668,12 +667,13 @@ staff: {
668
667
  ,新建页面记录
669
668
  </li>
670
669
  <li>
671
- 填写 <Text code>code</Text>、
672
- <Text code>zhName</Text>、<Text code>path</Text>(任意唯一路径即可)、
670
+ 填写 <Text code>code</Text>、<Text code>zhName</Text>、
671
+ <Text code>path</Text>(任意唯一路径即可)、
673
672
  <Text code>parentId</Text>
674
673
  </li>
675
674
  <li>
676
- 在 <Text code>External Redirect URL</Text> 字段填入目标地址
675
+ 在 <Text code>External Redirect URL</Text>{' '}
676
+ 字段填入目标地址
677
677
  </li>
678
678
  <li>为角色分配该页面</li>
679
679
  </ol>
@@ -683,12 +683,11 @@ staff: {
683
683
  message="模板变量"
684
684
  description={
685
685
  <>
686
- URL 中可使用{" "}
687
- <Text code>{"{{locale}}"}</Text>{" "}
686
+ URL 中可使用 <Text code>{'{{locale}}'}</Text>{' '}
688
687
  模板变量,运行时会替换为当前语言(en / zh)。例如:
689
688
  <br />
690
689
  <Text code>
691
- https://wiki.example.com/page?lang={"{{locale}}"}
690
+ https://wiki.example.com/page?lang={'{{locale}}'}
692
691
  </Text>
693
692
  </>
694
693
  }
@@ -698,10 +697,10 @@ staff: {
698
697
  <Title level={5}>工作流程</Title>
699
698
  <pre
700
699
  style={{
701
- background: "#f5f5f5",
700
+ background: '#f5f5f5',
702
701
  padding: 16,
703
702
  borderRadius: 6,
704
- overflow: "auto",
703
+ overflow: 'auto',
705
704
  fontSize: 13,
706
705
  lineHeight: 1.6,
707
706
  }}
@@ -715,16 +714,15 @@ staff: {
715
714
  ),
716
715
  },
717
716
  {
718
- key: "iframe",
719
- label: "iframe 嵌入",
717
+ key: 'iframe',
718
+ label: 'iframe 嵌入',
720
719
  children: (
721
720
  <>
722
721
  <Paragraph>
723
722
  iframe 方式同样<Text strong>无需编写前端代码</Text>
724
- ,在 Page Management 中填写{" "}
725
- <Text code>iframeUrl</Text>{" "}
726
- 字段即可。页面会在应用框架(侧边栏、顶栏)内以
727
- iframe 全屏嵌入目标网页。
723
+ ,在 Page Management 中填写 <Text code>iframeUrl</Text>{' '}
724
+ 字段即可。页面会在应用框架(侧边栏、顶栏)内以 iframe
725
+ 全屏嵌入目标网页。
728
726
  </Paragraph>
729
727
  <Title level={5}>注册步骤</Title>
730
728
  <ol>
@@ -733,8 +731,8 @@ staff: {
733
731
  ,新建页面记录
734
732
  </li>
735
733
  <li>
736
- 填写 <Text code>code</Text>、
737
- <Text code>zhName</Text>、<Text code>path</Text>(任意唯一路径即可)、
734
+ 填写 <Text code>code</Text>、<Text code>zhName</Text>、
735
+ <Text code>path</Text>(任意唯一路径即可)、
738
736
  <Text code>parentId</Text>
739
737
  </li>
740
738
  <li>
@@ -749,22 +747,21 @@ staff: {
749
747
  description={
750
748
  <ul style={{ margin: 0, paddingLeft: 20 }}>
751
749
  <li>
752
- <Text code>iframeUrl</Text> 和{" "}
753
- <Text code>externalRedirectUrl</Text>{" "}
750
+ <Text code>iframeUrl</Text> 和{' '}
751
+ <Text code>externalRedirectUrl</Text>{' '}
754
752
  不能同时填写,两者互斥
755
753
  </li>
756
754
  <li>
757
- 目标网站必须允许被 iframe 嵌入(未设置{" "}
758
- <Text code>X-Frame-Options: DENY</Text> 或{" "}
759
- <Text code>Content-Security-Policy: frame-ancestors 'none'</Text>
755
+ 目标网站必须允许被 iframe 嵌入(未设置{' '}
756
+ <Text code>X-Frame-Options: DENY</Text> 或{' '}
757
+ <Text code>
758
+ Content-Security-Policy: frame-ancestors 'none'
759
+ </Text>
760
760
 
761
761
  </li>
762
+ <li>如果目标网站禁止 iframe,请改用外部链接方式</li>
762
763
  <li>
763
- 如果目标网站禁止 iframe,请改用外部链接方式
764
- </li>
765
- <li>
766
- 同样支持{" "}
767
- <Text code>{"{{locale}}"}</Text> 模板变量
764
+ 同样支持 <Text code>{'{{locale}}'}</Text> 模板变量
768
765
  </li>
769
766
  </ul>
770
767
  }
@@ -774,31 +771,30 @@ staff: {
774
771
  ),
775
772
  },
776
773
  {
777
- key: "dynamic",
778
- label: "动态菜单",
774
+ key: 'dynamic',
775
+ label: '动态菜单',
779
776
  children: (
780
777
  <>
781
778
  <Paragraph>
782
- 动态菜单适用于<Text strong>同一个页面组件需要生成多个菜单项</Text>
783
- 的场景。通过{" "}
784
- <Text code>src/config/dynamicMenus.ts</Text>{" "}
779
+ 动态菜单适用于
780
+ <Text strong>同一个页面组件需要生成多个菜单项</Text>
781
+ 的场景。通过 <Text code>
782
+ src/config/dynamicMenus.ts
783
+ </Text>{' '}
785
784
  的配置驱动方案,开发者只需添加一条配置即可新增动态菜单组。
786
785
  </Paragraph>
787
786
 
788
787
  <Title level={5}>配置方式</Title>
789
788
  <Paragraph>
790
- 在{" "}
791
- <Text code>src/config/dynamicMenus.ts</Text>{" "}
792
- 中的{" "}
793
- <Text code>dynamicMenuGroups</Text>{" "}
794
- 数组中添加一条配置:
789
+ <Text code>src/config/dynamicMenus.ts</Text> 中的{' '}
790
+ <Text code>dynamicMenuGroups</Text> 数组中添加一条配置:
795
791
  </Paragraph>
796
792
  <pre
797
793
  style={{
798
- background: "#f5f5f5",
794
+ background: '#f5f5f5',
799
795
  padding: 16,
800
796
  borderRadius: 6,
801
- overflow: "auto",
797
+ overflow: 'auto',
802
798
  fontSize: 13,
803
799
  lineHeight: 1.6,
804
800
  }}
@@ -824,10 +820,8 @@ interface DynamicMenuGroup {
824
820
  message="权限控制"
825
821
  description={
826
822
  <>
827
- 动态菜单的权限以{" "}
828
- <Text code>parentCode</Text>{" "}
829
- 为单位控制。例如为角色分配{" "}
830
- <Text code>invested</Text>{" "}
823
+ 动态菜单的权限以 <Text code>parentCode</Text>{' '}
824
+ 为单位控制。例如为角色分配 <Text code>invested</Text>{' '}
831
825
  页面后,该角色可以看到该组下所有子菜单项。无需为每个子项单独配置权限。
832
826
  </>
833
827
  }
@@ -838,17 +832,17 @@ interface DynamicMenuGroup {
838
832
  <Title level={5}>添加新动态菜单组的步骤</Title>
839
833
  <ol>
840
834
  <li>
841
- 在 <Text code>t_page</Text> 中注册父级页面(设置{" "}
835
+ 在 <Text code>t_page</Text> 中注册父级页面(设置{' '}
842
836
  <Text code>code</Text>、<Text code>parentId</Text>)
843
837
  </li>
844
838
  <li>
845
- 在 <Text code>src/config/dynamicMenus.ts</Text> 的{" "}
839
+ 在 <Text code>src/config/dynamicMenus.ts</Text> 的{' '}
846
840
  <Text code>dynamicMenuGroups</Text> 数组中添加一条配置
847
841
  </li>
848
842
  <li>
849
- 路由和菜单项会自动生成,无需修改{" "}
843
+ 路由和菜单项会自动生成,无需修改{' '}
850
844
  <Text code>routeRegistry.tsx</Text>、
851
- <Text code>App.tsx</Text> 或{" "}
845
+ <Text code>App.tsx</Text> 或{' '}
852
846
  <Text code>useDynamicResources.tsx</Text>
853
847
  </li>
854
848
  </ol>
@@ -856,22 +850,21 @@ interface DynamicMenuGroup {
856
850
  <Divider />
857
851
  <Title level={5}>现有示例:RD 工作室</Title>
858
852
  <Paragraph>
859
- 当前系统中 RD 模块的 invested(投资工作室)和 native(自研工作室)使用动态菜单:
853
+ 当前系统中 RD 模块的 invested(投资工作室)和
854
+ native(自研工作室)使用动态菜单:
860
855
  </Paragraph>
861
856
  <ul>
862
857
  <li>
863
- 工作室列表定义在{" "}
864
- <Text code>src/config/studio.ts</Text> 的{" "}
858
+ 工作室列表定义在 <Text code>src/config/studio.ts</Text> 的{' '}
865
859
  <Text code>studioMap</Text> 中
866
860
  </li>
867
861
  <li>
868
- 所有工作室路由共享同一个{" "}
869
- <Text code>RDEC</Text> 组件,组件内从 URL 提取工作室名称
862
+ 所有工作室路由共享同一个 <Text code>RDEC</Text>{' '}
863
+ 组件,组件内从 URL 提取工作室名称
870
864
  </li>
871
865
  <li>
872
- 添加新工作室只需在{" "}
873
- <Text code>studio.ts</Text> {" "}
874
- <Text code>StudioEnum</Text> 和{" "}
866
+ 添加新工作室只需在 <Text code>studio.ts</Text> 的{' '}
867
+ <Text code>StudioEnum</Text> {' '}
875
868
  <Text code>studioMap</Text> 中添加条目即可
876
869
  </li>
877
870
  </ul>
@@ -887,10 +880,10 @@ interface DynamicMenuGroup {
887
880
  <Title level={5}>实体关系总览</Title>
888
881
  <pre
889
882
  style={{
890
- background: "#f5f5f5",
883
+ background: '#f5f5f5',
891
884
  padding: 16,
892
885
  borderRadius: 6,
893
- overflow: "auto",
886
+ overflow: 'auto',
894
887
  fontSize: 13,
895
888
  lineHeight: 1.8,
896
889
  }}
@@ -909,40 +902,46 @@ Role (t_role)
909
902
 
910
903
  <Divider />
911
904
  <Title level={5}>双层权限防御</Title>
912
- <Paragraph>
913
- 系统在前端和后端分别进行权限检查,两层独立运作:
914
- </Paragraph>
905
+ <Paragraph>系统在前端和后端分别进行权限检查,两层独立运作:</Paragraph>
915
906
 
916
907
  <Table
917
908
  columns={[
918
- { title: "", dataIndex: "item", key: "item", width: 140 },
919
- { title: "前端:菜单可见性", dataIndex: "frontend", key: "frontend" },
920
- { title: "后端:API 访问权限", dataIndex: "backend", key: "backend" },
909
+ { title: '', dataIndex: 'item', key: 'item', width: 140 },
910
+ {
911
+ title: '前端:菜单可见性',
912
+ dataIndex: 'frontend',
913
+ key: 'frontend',
914
+ },
915
+ {
916
+ title: '后端:API 访问权限',
917
+ dataIndex: 'backend',
918
+ key: 'backend',
919
+ },
921
920
  ]}
922
921
  dataSource={[
923
922
  {
924
- key: "table",
925
- item: "关联表",
926
- frontend: "t_role_pages(角色 → 页面)",
927
- backend: "t_role_resource(角色 → 资源)",
923
+ key: 'table',
924
+ item: '关联表',
925
+ frontend: 't_role_pages(角色 → 页面)',
926
+ backend: 't_role_resource(角色 → 资源)',
928
927
  },
929
928
  {
930
- key: "what",
931
- item: "控制什么",
932
- frontend: "侧边栏菜单项是否显示",
933
- backend: "API 请求是否允许执行",
929
+ key: 'what',
930
+ item: '控制什么',
931
+ frontend: '侧边栏菜单项是否显示',
932
+ backend: 'API 请求是否允许执行',
934
933
  },
935
934
  {
936
- key: "fail",
937
- item: "无权限表现",
938
- frontend: "菜单不可见",
939
- backend: "返回 HTTP 403",
935
+ key: 'fail',
936
+ item: '无权限表现',
937
+ frontend: '菜单不可见',
938
+ backend: '返回 HTTP 403',
940
939
  },
941
940
  {
942
- key: "check",
943
- item: "检查机制",
944
- frontend: "useUserPageAccess() Hook 过滤菜单树",
945
- backend: "AuthGuard → RolesGuard → @UseRoles() 装饰器",
941
+ key: 'check',
942
+ item: '检查机制',
943
+ frontend: 'useUserPageAccess() Hook 过滤菜单树',
944
+ backend: 'AuthGuard → RolesGuard → @UseRoles() 装饰器',
946
945
  },
947
946
  ]}
948
947
  pagination={false}
@@ -954,10 +953,10 @@ Role (t_role)
954
953
  <Title level={5}>权限检查完整流程</Title>
955
954
  <pre
956
955
  style={{
957
- background: "#f5f5f5",
956
+ background: '#f5f5f5',
958
957
  padding: 16,
959
958
  borderRadius: 6,
960
- overflow: "auto",
959
+ overflow: 'auto',
961
960
  fontSize: 13,
962
961
  lineHeight: 1.8,
963
962
  }}
@@ -986,17 +985,16 @@ Role (t_role)
986
985
  <Title level={5}>PageResource 的作用</Title>
987
986
  <Paragraph>
988
987
  <Text code>t_page_resource</Text> 定义了每个页面需要哪些 API
989
- 资源及权限。当管理员在 Role Management
990
- 中为角色勾选页面时,系统会<Text strong>自动从 PageResource
991
- 中提取资源权限</Text>,同步写入{" "}
988
+ 资源及权限。当管理员在 Role Management 中为角色勾选页面时,系统会
989
+ <Text strong>自动从 PageResource 中提取资源权限</Text>,同步写入{' '}
992
990
  <Text code>t_role_resource</Text>。
993
991
  </Paragraph>
994
992
  <pre
995
993
  style={{
996
- background: "#f5f5f5",
994
+ background: '#f5f5f5',
997
995
  padding: 16,
998
996
  borderRadius: 6,
999
- overflow: "auto",
997
+ overflow: 'auto',
1000
998
  fontSize: 13,
1001
999
  lineHeight: 1.8,
1002
1000
  }}
@@ -1015,34 +1013,39 @@ Role (t_role)
1015
1013
  <Title level={5}>API 权限类型</Title>
1016
1014
  <Table
1017
1015
  columns={[
1018
- { title: "权限", dataIndex: "action", key: "action", width: 140 },
1019
- { title: "含义", dataIndex: "meaning", key: "meaning" },
1020
- { title: "对应 HTTP 操作", dataIndex: "http", key: "http", width: 200 },
1016
+ { title: '权限', dataIndex: 'action', key: 'action', width: 140 },
1017
+ { title: '含义', dataIndex: 'meaning', key: 'meaning' },
1018
+ {
1019
+ title: '对应 HTTP 操作',
1020
+ dataIndex: 'http',
1021
+ key: 'http',
1022
+ width: 200,
1023
+ },
1021
1024
  ]}
1022
1025
  dataSource={[
1023
1026
  {
1024
- key: "read",
1025
- action: "readAny",
1026
- meaning: "读取任意记录",
1027
- http: "GET / POST findMany",
1027
+ key: 'read',
1028
+ action: 'readAny',
1029
+ meaning: '读取任意记录',
1030
+ http: 'GET / POST findMany',
1028
1031
  },
1029
1032
  {
1030
- key: "create",
1031
- action: "createAny",
1032
- meaning: "创建新记录",
1033
- http: "POST createOne",
1033
+ key: 'create',
1034
+ action: 'createAny',
1035
+ meaning: '创建新记录',
1036
+ http: 'POST createOne',
1034
1037
  },
1035
1038
  {
1036
- key: "update",
1037
- action: "updateAny",
1038
- meaning: "修改任意记录",
1039
- http: "PATCH / PUT updateOne",
1039
+ key: 'update',
1040
+ action: 'updateAny',
1041
+ meaning: '修改任意记录',
1042
+ http: 'PATCH / PUT updateOne',
1040
1043
  },
1041
1044
  {
1042
- key: "delete",
1043
- action: "deleteAny",
1044
- meaning: "删除任意记录",
1045
- http: "DELETE deleteOne",
1045
+ key: 'delete',
1046
+ action: 'deleteAny',
1047
+ meaning: '删除任意记录',
1048
+ http: 'DELETE deleteOne',
1046
1049
  },
1047
1050
  ]}
1048
1051
  pagination={false}
@@ -1053,10 +1056,9 @@ Role (t_role)
1053
1056
  <Divider />
1054
1057
  <Title level={5}>通用资源(Common Resource)</Title>
1055
1058
  <Paragraph>
1056
- <Text code>t_resource</Text> 中标记为{" "}
1057
- <Text code>isCommonResource = true</Text>{" "}
1058
- 的资源会自动为所有角色授予{" "}
1059
- <Text code>readAny</Text>{" "}
1059
+ <Text code>t_resource</Text> 中标记为{' '}
1060
+ <Text code>isCommonResource = true</Text> 的资源会自动为所有角色授予{' '}
1061
+ <Text code>readAny</Text>{' '}
1060
1062
  权限,无需在页面或角色中单独配置。适用于全局公共数据(如枚举列表、配置项等)。
1061
1063
  </Paragraph>
1062
1064
 
@@ -1068,9 +1070,8 @@ Role (t_role)
1068
1070
  message="硬编码管理员"
1069
1071
  description={
1070
1072
  <>
1071
- 以下用户在后端硬编码为 SYSTEM_ADMIN 角色,即使不在{" "}
1072
- <Text code>t_admin_user_role</Text>{" "}
1073
- 表中也会自动获得管理员权限:
1073
+ 以下用户在后端硬编码为 SYSTEM_ADMIN 角色,即使不在{' '}
1074
+ <Text code>t_admin_user_role</Text> 表中也会自动获得管理员权限:
1074
1075
  <Text code>kavenma</Text>、<Text code>jasonlan</Text>、
1075
1076
  <Text code>gc_lvhenan</Text>。
1076
1077
  </>