cx-chat 0.0.2 → 0.0.3

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 (406) hide show
  1. package/dist/cx-chat.css +1 -0
  2. package/dist/cx-chat.es.js +97326 -0
  3. package/dist/cx-chat.umd.js +734 -0
  4. package/package.json +21 -1
  5. package/.cursor/rules/i18n-cn-gloss-comments.mdc +0 -31
  6. package/.cursor/rules/list-page-view-pageconfig.mdc +0 -32
  7. package/.cursor/rules/no-over-defensive-programming.mdc +0 -90
  8. package/.cursor/rules/requirement-description-for-agent.mdc +0 -33
  9. package/.cursor/rules/use-showToast-not-antd-message.mdc +0 -28
  10. package/.docker/Dockerfile +0 -7
  11. package/.env +0 -9
  12. package/.env.development +0 -7
  13. package/.env.production +0 -7
  14. package/.gitlab-ci/docker-build.yaml +0 -28
  15. package/.gitlab-ci/k8s-deploy-dev-master.yaml +0 -42
  16. package/.gitlab-ci/npm-build.yaml +0 -17
  17. package/.gitlab-ci.yml +0 -8
  18. package/.k8s/0-namespace.yaml +0 -6
  19. package/.k8s/1-configmap-web.yaml +0 -7
  20. package/.k8s/1-nginx-conf-dev.yaml +0 -110
  21. package/.k8s/2-deployment.yaml +0 -27
  22. package/.k8s/3-service.yaml +0 -16
  23. package/.k8s/4-ingress-dev.yaml +0 -30
  24. package/.lingma/rules/use-showToast-not-antd-message.md +0 -34
  25. package/.nginx/nginx.conf +0 -52
  26. package/.prettierrc +0 -9
  27. package/eslint.config.js +0 -32
  28. package/index.html +0 -13
  29. package/postcss.config.js +0 -6
  30. package/src/App.tsx +0 -96
  31. package/src/_doc/0.docs-overview.md +0 -28
  32. package/src/_doc/cx-ui/0.docs-overview.md +0 -30
  33. package/src/_doc/cx-ui/comp.1.cx-ui-overview.md +0 -82
  34. package/src/_doc/cx-ui/comp.2.cx-modal.md +0 -82
  35. package/src/_doc/cx-ui/comp.3.cx-button.md +0 -89
  36. package/src/_doc/cx-ui/comp.4.cx-form.md +0 -72
  37. package/src/_doc/cx-ui/comp.5.cx-fields.md +0 -76
  38. package/src/_doc/cx-ui/comp.6.cx-tag.md +0 -57
  39. package/src/_doc/cx-ui/comp.7.cx-empty-state.md +0 -29
  40. package/src/_doc/meta/0.docs-overview.md +0 -24
  41. package/src/_doc/meta/comp.1.enum-runtime.md +0 -33
  42. package/src/_doc/meta/comp.2.dict-runtime.md +0 -39
  43. package/src/_doc/router/0.docs-overview.md +0 -14
  44. package/src/_doc/router/guide.1.menu-component-config.md +0 -181
  45. package/src/_doc/router/guide.2.router-auto-registration.md +0 -114
  46. package/src/_doc/table-view/0.docs-overview.md +0 -30
  47. package/src/_doc/table-view/comp.1.table-view.md +0 -542
  48. package/src/_doc/table-view/props.1.create-table-view-config.md +0 -193
  49. package/src/_doc/table-view/props.2.table-view-search-fields.md +0 -106
  50. package/src/api/_mock/README.md +0 -340
  51. package/src/api/_mock/api.ts +0 -1642
  52. package/src/api/_mock/bundle-shim.ts +0 -16
  53. package/src/api/_mock/handler-shim.ts +0 -6
  54. package/src/api/_mock/handler.ts +0 -458
  55. package/src/api/_mock/index.ts +0 -711
  56. package/src/api/_mock/interceptor.ts +0 -15
  57. package/src/api/_mock/mod.ts +0 -12
  58. package/src/api/_mock/utils.ts +0 -65
  59. package/src/api/base/memory.js +0 -24
  60. package/src/api/chat.js +0 -210
  61. package/src/api/common/auth.js +0 -70
  62. package/src/api/menus/business-rules.js +0 -76
  63. package/src/api/menus/feedback.js +0 -102
  64. package/src/api/menus/knowledge.js +0 -159
  65. package/src/api/menus/model-metadata/manage.js +0 -70
  66. package/src/api/menus/model-metadata/role.js +0 -50
  67. package/src/api/menus/model-metadata/training-detail-mock-data.js +0 -569
  68. package/src/api/menus/model-metadata/training.js +0 -28
  69. package/src/api/menus/skill.js +0 -40
  70. package/src/api/system/agent-config.js +0 -16
  71. package/src/api/system/department.js +0 -94
  72. package/src/api/system/dict.js +0 -86
  73. package/src/api/system/menu.js +0 -37
  74. package/src/api/system/permission.js +0 -26
  75. package/src/api/system/role.js +0 -34
  76. package/src/api/system/sys-config.js +0 -16
  77. package/src/api/system/sys-log.js +0 -17
  78. package/src/api/system/user.js +0 -75
  79. package/src/api/upload.js +0 -39
  80. package/src/assets/react.svg +0 -1
  81. package/src/components/auth/current-user-avatar.tsx +0 -77
  82. package/src/components/common/code-view.tsx +0 -149
  83. package/src/components/common/detail-link.tsx +0 -67
  84. package/src/components/common/error-boundary.tsx +0 -98
  85. package/src/components/common/language-switcher.tsx +0 -91
  86. package/src/components/common/lite-table/index.tsx +0 -135
  87. package/src/components/common/md-editor.tsx +0 -126
  88. package/src/components/common/modal/confirm-dialog.tsx +0 -113
  89. package/src/components/common/modal/dep-user-select-multi.tsx +0 -324
  90. package/src/components/common/modal/dep-user-select.tsx +0 -249
  91. package/src/components/common/modal/user-select-multi.tsx +0 -266
  92. package/src/components/common/pagination.tsx +0 -472
  93. package/src/components/common/path.tsx +0 -175
  94. package/src/components/common/system-logo-mark.tsx +0 -48
  95. package/src/components/cx-ui/button/index.less +0 -208
  96. package/src/components/cx-ui/button/index.tsx +0 -611
  97. package/src/components/cx-ui/checkbox/index.tsx +0 -78
  98. package/src/components/cx-ui/date-picker/index.less +0 -17
  99. package/src/components/cx-ui/date-picker/index.tsx +0 -193
  100. package/src/components/cx-ui/drawer/index.tsx +0 -47
  101. package/src/components/cx-ui/empty-state/index.tsx +0 -20
  102. package/src/components/cx-ui/floating-shell/CxFloatingShell.tsx +0 -89
  103. package/src/components/cx-ui/floating-shell/cx-floating-shell.less +0 -283
  104. package/src/components/cx-ui/floating-shell/has-floating-value.ts +0 -41
  105. package/src/components/cx-ui/form/CxForm.tsx +0 -15
  106. package/src/components/cx-ui/form/index.tsx +0 -20
  107. package/src/components/cx-ui/form-item/index.less +0 -26
  108. package/src/components/cx-ui/form-item/index.tsx +0 -36
  109. package/src/components/cx-ui/index.ts +0 -70
  110. package/src/components/cx-ui/input/auto-complete.tsx +0 -134
  111. package/src/components/cx-ui/input/index.tsx +0 -259
  112. package/src/components/cx-ui/input-number/index.jsx +0 -66
  113. package/src/components/cx-ui/modal/index.jsx +0 -212
  114. package/src/components/cx-ui/modal/index.less +0 -144
  115. package/src/components/cx-ui/modal/useCxModal.ts +0 -125
  116. package/src/components/cx-ui/multi-select/index.jsx +0 -74
  117. package/src/components/cx-ui/multi-select/index.less +0 -40
  118. package/src/components/cx-ui/multi-select/index2.tsx +0 -361
  119. package/src/components/cx-ui/radio/index.tsx +0 -33
  120. package/src/components/cx-ui/range-picker/index.less +0 -65
  121. package/src/components/cx-ui/range-picker/index.tsx +0 -219
  122. package/src/components/cx-ui/select/index.less +0 -34
  123. package/src/components/cx-ui/select/index.tsx +0 -196
  124. package/src/components/cx-ui/skeleton/index.tsx +0 -12
  125. package/src/components/cx-ui/steps/index.tsx +0 -14
  126. package/src/components/cx-ui/styles/_tokens.less +0 -79
  127. package/src/components/cx-ui/styles/index.less +0 -246
  128. package/src/components/cx-ui/switch/index.less +0 -106
  129. package/src/components/cx-ui/switch/index.tsx +0 -120
  130. package/src/components/cx-ui/table/index.less +0 -160
  131. package/src/components/cx-ui/table/index.tsx +0 -152
  132. package/src/components/cx-ui/tabs/index.less +0 -15
  133. package/src/components/cx-ui/tabs/index.tsx +0 -34
  134. package/src/components/cx-ui/tag/index.less +0 -51
  135. package/src/components/cx-ui/tag/index.tsx +0 -140
  136. package/src/components/cx-ui/timeline/index.tsx +0 -14
  137. package/src/components/cx-ui/tooltip/index.tsx +0 -67
  138. package/src/components/cx-ui/tree/index.tsx +0 -193
  139. package/src/components/cx-ui/tree-select/index.jsx +0 -91
  140. package/src/components/cx-ui/tree-select/index.less +0 -27
  141. package/src/components/cx-ui/upload-file/index.less +0 -223
  142. package/src/components/cx-ui/upload-file/index.tsx +0 -640
  143. package/src/components/cx-ui/upload-img/index.tsx +0 -291
  144. package/src/components/layout/components/Header.tsx +0 -216
  145. package/src/components/layout/components/Sidebar.tsx +0 -717
  146. package/src/components/layout/index.tsx +0 -95
  147. package/src/components/table-view/components/search-area.tsx +0 -411
  148. package/src/components/table-view/components/table-view-config.tsx +0 -528
  149. package/src/components/table-view/components/table-view.types.ts +0 -478
  150. package/src/components/table-view/components/tree-api-normalize.ts +0 -38
  151. package/src/components/table-view/components/tree-data-annotate.ts +0 -31
  152. package/src/components/table-view/components/tree-sidebar.tsx +0 -74
  153. package/src/components/table-view/index.tsx +0 -61
  154. package/src/components/table-view/list-page-view.tsx +0 -1049
  155. package/src/components/table-view/select-table-view.tsx +0 -1094
  156. package/src/components/table-view/styles/select-table-view.less +0 -51
  157. package/src/config/default-system-name.ts +0 -9
  158. package/src/config/system.ts +0 -165
  159. package/src/constants/countryCodes.ts +0 -3
  160. package/src/contexts/AuthContext.tsx +0 -256
  161. package/src/contexts/ChatContext.tsx +0 -839
  162. package/src/contexts/MenuContext.tsx +0 -62
  163. package/src/contexts/ToastContext.tsx +0 -181
  164. package/src/hooks/useCopyToClipboard.ts +0 -47
  165. package/src/hooks/useModalSubmit.ts +0 -104
  166. package/src/hooks/useRouter.ts +0 -240
  167. package/src/hooks/useStepForm.ts +0 -46
  168. package/src/hooks/useStickyHeader.ts +0 -42
  169. package/src/hooks/useThreadActions.ts +0 -105
  170. package/src/hooks/useUserPreferences.ts +0 -101
  171. package/src/http/axios.js +0 -372
  172. package/src/http/mock.interceptor.ts +0 -9
  173. package/src/http/obfuscationKey.ts +0 -41
  174. package/src/i18n.ts +0 -60
  175. package/src/index.js +0 -1
  176. package/src/index.less +0 -169
  177. package/src/locales/en/auth.ts +0 -70
  178. package/src/locales/en/base/memory.ts +0 -28
  179. package/src/locales/en/base/settings.ts +0 -41
  180. package/src/locales/en/chat.ts +0 -40
  181. package/src/locales/en/common.ts +0 -173
  182. package/src/locales/en/enum.ts +0 -27
  183. package/src/locales/en/menus/business-rules.ts +0 -48
  184. package/src/locales/en/menus/feedback.ts +0 -62
  185. package/src/locales/en/menus/knowledge.ts +0 -120
  186. package/src/locales/en/menus/model-metadata/index.ts +0 -10
  187. package/src/locales/en/menus/model-metadata/manage.ts +0 -151
  188. package/src/locales/en/menus/model-metadata/role.ts +0 -48
  189. package/src/locales/en/menus/model-metadata/training.ts +0 -65
  190. package/src/locales/en/menus/skill.ts +0 -34
  191. package/src/locales/en/system/agent-config.ts +0 -34
  192. package/src/locales/en/system/department.ts +0 -68
  193. package/src/locales/en/system/dict.ts +0 -44
  194. package/src/locales/en/system/menu.ts +0 -45
  195. package/src/locales/en/system/permission.ts +0 -89
  196. package/src/locales/en/system/role.ts +0 -25
  197. package/src/locales/en/system/sys-config.ts +0 -33
  198. package/src/locales/en/system/sys-log.ts +0 -38
  199. package/src/locales/en/system/user.ts +0 -113
  200. package/src/locales/en.ts +0 -68
  201. package/src/locales/zh/auth.ts +0 -70
  202. package/src/locales/zh/base/memory.ts +0 -29
  203. package/src/locales/zh/base/settings.ts +0 -41
  204. package/src/locales/zh/chat.ts +0 -47
  205. package/src/locales/zh/common.ts +0 -178
  206. package/src/locales/zh/enum.ts +0 -28
  207. package/src/locales/zh/menus/business-rules.ts +0 -47
  208. package/src/locales/zh/menus/feedback.ts +0 -62
  209. package/src/locales/zh/menus/knowledge.ts +0 -117
  210. package/src/locales/zh/menus/model-metadata/index.ts +0 -10
  211. package/src/locales/zh/menus/model-metadata/manage.ts +0 -151
  212. package/src/locales/zh/menus/model-metadata/role.ts +0 -47
  213. package/src/locales/zh/menus/model-metadata/training.ts +0 -64
  214. package/src/locales/zh/menus/skill.ts +0 -34
  215. package/src/locales/zh/system/agent-config.ts +0 -33
  216. package/src/locales/zh/system/department.ts +0 -69
  217. package/src/locales/zh/system/dict.ts +0 -44
  218. package/src/locales/zh/system/menu.ts +0 -47
  219. package/src/locales/zh/system/permission.ts +0 -94
  220. package/src/locales/zh/system/role.ts +0 -25
  221. package/src/locales/zh/system/sys-config.ts +0 -32
  222. package/src/locales/zh/system/sys-log.ts +0 -38
  223. package/src/locales/zh/system/user.ts +0 -114
  224. package/src/locales/zh.ts +0 -67
  225. package/src/main.tsx +0 -50
  226. package/src/meta/const/index.ts +0 -40
  227. package/src/meta/index-dict.ts +0 -56
  228. package/src/meta/index-enum.ts +0 -95
  229. package/src/meta/index.ts +0 -14
  230. package/src/meta/module/dict-data/runtime.ts +0 -199
  231. package/src/meta/module/dict-data/types.ts +0 -17
  232. package/src/meta/module/enum-data/runtime.ts +0 -75
  233. package/src/meta/module/enum-data/types.ts +0 -18
  234. package/src/router/index.tsx +0 -312
  235. package/src/styles/AntdThemeProvider.tsx +0 -40
  236. package/src/styles/antd-theme.ts +0 -20
  237. package/src/styles/global.less +0 -107
  238. package/src/styles/variable.less +0 -103
  239. package/src/types/feedback.ts +0 -43
  240. package/src/types/index.ts +0 -85
  241. package/src/types/menu.ts +0 -43
  242. package/src/utils/aesUtil.ts +0 -123
  243. package/src/utils/chatUtils.ts +0 -524
  244. package/src/utils/cn.ts +0 -6
  245. package/src/utils/crypto.ts +0 -164
  246. package/src/utils/date.ts +0 -72
  247. package/src/utils/file-icons.tsx +0 -79
  248. package/src/utils/index.ts +0 -168
  249. package/src/utils/markdown-math-plugins.ts +0 -21
  250. package/src/utils/menuI18n.ts +0 -305
  251. package/src/utils/menuRouteRegistry.ts +0 -78
  252. package/src/utils/permission-crud.ts +0 -147
  253. package/src/utils/routeConfig.ts +0 -350
  254. package/src/utils/storage.ts +0 -135
  255. package/src/utils/toastBridge.ts +0 -26
  256. package/src/utils/url.ts +0 -38
  257. package/src/utils/validation.ts +0 -16
  258. package/src/views/auth/auth-code/index.less +0 -169
  259. package/src/views/auth/auth-code/index.module.less +0 -174
  260. package/src/views/auth/auth-code/index.tsx +0 -233
  261. package/src/views/auth/login.tsx +0 -498
  262. package/src/views/auth/register.tsx +0 -388
  263. package/src/views/base/memory/index.tsx +0 -136
  264. package/src/views/base/memory/modal/detail-modal.tsx +0 -89
  265. package/src/views/base/memory/modal/submit-modal.tsx +0 -134
  266. package/src/views/base/settings/index.tsx +0 -657
  267. package/src/views/chat/chat.less +0 -323
  268. package/src/views/chat/components/chat-input.tsx +0 -298
  269. package/src/views/chat/components/header-thread-title.tsx +0 -210
  270. package/src/views/chat/components/message-list/content-answer.tsx +0 -100
  271. package/src/views/chat/components/message-list/content-question.tsx +0 -18
  272. package/src/views/chat/components/message-list/index.tsx +0 -520
  273. package/src/views/chat/components/message-list/message-item.tsx +0 -199
  274. package/src/views/chat/components/message-list/preparation-demo-items.ts +0 -147
  275. package/src/views/chat/components/message-list/preparation-steps.tsx +0 -506
  276. package/src/views/chat/components/message-list/suggestion-list.tsx +0 -36
  277. package/src/views/chat/components/message-list/thinking-process.tsx +0 -49
  278. package/src/views/chat/components/message-list/toolbar.tsx +0 -224
  279. package/src/views/chat/components/message-list/use-message-list-scroll.ts +0 -214
  280. package/src/views/chat/components/references-knowledge/context.tsx +0 -57
  281. package/src/views/chat/components/references-knowledge/index.ts +0 -9
  282. package/src/views/chat/components/references-knowledge/modal/knowledge-detail-drawer.tsx +0 -556
  283. package/src/views/chat/components/references-knowledge/modal/knowledge-doc-detail-drawer.tsx +0 -529
  284. package/src/views/chat/components/references-knowledge/panel.tsx +0 -115
  285. package/src/views/chat/hooks/use-chat-common.ts +0 -19
  286. package/src/views/chat/index-session.tsx +0 -647
  287. package/src/views/chat/index.tsx +0 -127
  288. package/src/views/page-error/401.tsx +0 -56
  289. package/src/views/page-error/404.tsx +0 -56
  290. package/src/views/page-menus/business-rules/index.tsx +0 -376
  291. package/src/views/page-menus/business-rules/modal/detail-modal.tsx +0 -186
  292. package/src/views/page-menus/business-rules/modal/scope-modal.tsx +0 -272
  293. package/src/views/page-menus/business-rules/modal/submit-modal.tsx +0 -142
  294. package/src/views/page-menus/feedback/components/feedback-dataset-list.tsx +0 -471
  295. package/src/views/page-menus/feedback/index.tsx +0 -166
  296. package/src/views/page-menus/feedback/modal/export-feedback-modal.tsx +0 -367
  297. package/src/views/page-menus/knowledge/components/doc-editor-by-type.tsx +0 -32
  298. package/src/views/page-menus/knowledge/components/doc-editor-type-file.tsx +0 -330
  299. package/src/views/page-menus/knowledge/detail.tsx +0 -600
  300. package/src/views/page-menus/knowledge/index.tsx +0 -337
  301. package/src/views/page-menus/knowledge/modal/detail-modal.tsx +0 -618
  302. package/src/views/page-menus/knowledge/modal/doc-detail-modal.tsx +0 -550
  303. package/src/views/page-menus/knowledge/modal/doc-parse.ts +0 -99
  304. package/src/views/page-menus/knowledge/modal/doc-submit-modal.tsx +0 -349
  305. package/src/views/page-menus/knowledge/modal/doc-type-picker-modal.tsx +0 -88
  306. package/src/views/page-menus/knowledge/modal/knowledge-user-select-modal.tsx +0 -283
  307. package/src/views/page-menus/knowledge/modal/submit-modal.tsx +0 -179
  308. package/src/views/page-menus/model-metadata/manage/components/metadata-detail-schema-tab.tsx +0 -114
  309. package/src/views/page-menus/model-metadata/manage/components/step1-basic-info.tsx +0 -232
  310. package/src/views/page-menus/model-metadata/manage/components/step2-schema.tsx +0 -316
  311. package/src/views/page-menus/model-metadata/manage/components/step3-permissions.tsx +0 -134
  312. package/src/views/page-menus/model-metadata/manage/components/step4-documents.tsx +0 -134
  313. package/src/views/page-menus/model-metadata/manage/components/step5-example-sql.tsx +0 -101
  314. package/src/views/page-menus/model-metadata/manage/components/submit-add.tsx +0 -338
  315. package/src/views/page-menus/model-metadata/manage/components/submit-edit.tsx +0 -276
  316. package/src/views/page-menus/model-metadata/manage/detail.tsx +0 -298
  317. package/src/views/page-menus/model-metadata/manage/hooks/model-metadata-submit-shared.ts +0 -113
  318. package/src/views/page-menus/model-metadata/manage/hooks/use-model-metadata-item-state.ts +0 -20
  319. package/src/views/page-menus/model-metadata/manage/index.tsx +0 -304
  320. package/src/views/page-menus/model-metadata/manage/modal/components/table-schema.ts +0 -374
  321. package/src/views/page-menus/model-metadata/manage/modal/components/use-table-detail-tabs.tsx +0 -151
  322. package/src/views/page-menus/model-metadata/manage/modal/components/use-table-submit-tabs.tsx +0 -423
  323. package/src/views/page-menus/model-metadata/manage/modal/detail-modal.tsx +0 -218
  324. package/src/views/page-menus/model-metadata/manage/modal/submit-modal.tsx +0 -261
  325. package/src/views/page-menus/model-metadata/manage/modal/table-detail-modal.tsx +0 -196
  326. package/src/views/page-menus/model-metadata/manage/modal/table-submit-modal.tsx +0 -229
  327. package/src/views/page-menus/model-metadata/manage/submit.tsx +0 -31
  328. package/src/views/page-menus/model-metadata/role/index.tsx +0 -207
  329. package/src/views/page-menus/model-metadata/role/modal/detail-modal.tsx +0 -97
  330. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-modal.tsx +0 -254
  331. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-panel.tsx +0 -393
  332. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-utils.ts +0 -120
  333. package/src/views/page-menus/model-metadata/role/modal/role-permission-assign-panel.tsx +0 -698
  334. package/src/views/page-menus/model-metadata/role/modal/role-permission-modal.tsx +0 -237
  335. package/src/views/page-menus/model-metadata/role/modal/submit-modal.tsx +0 -135
  336. package/src/views/page-menus/model-metadata/training/components/detail-records/index.ts +0 -4
  337. package/src/views/page-menus/model-metadata/training/components/detail-records/node-card.tsx +0 -72
  338. package/src/views/page-menus/model-metadata/training/components/detail-records/summary-lines.ts +0 -196
  339. package/src/views/page-menus/model-metadata/training/components/detail-records/summary-list.tsx +0 -153
  340. package/src/views/page-menus/model-metadata/training/components/detail-records/timeline.tsx +0 -103
  341. package/src/views/page-menus/model-metadata/training/components/detail-records/types.ts +0 -82
  342. package/src/views/page-menus/model-metadata/training/detail.tsx +0 -159
  343. package/src/views/page-menus/model-metadata/training/index.tsx +0 -236
  344. package/src/views/page-menus/model-metadata/training/modal/update-detail-modal.tsx +0 -154
  345. package/src/views/page-menus/skill/index.tsx +0 -201
  346. package/src/views/page-menus/skill/modal/detail-modal.tsx +0 -156
  347. package/src/views/page-menus/skill/modal/submit-modal.tsx +0 -214
  348. package/src/views/page-system/agent-config/index.tsx +0 -370
  349. package/src/views/page-system/department/departmentFormShared.ts +0 -36
  350. package/src/views/page-system/department/index.tsx +0 -541
  351. package/src/views/page-system/department/modal/detail-modal.tsx +0 -94
  352. package/src/views/page-system/department/modal/member-role-modal.tsx +0 -128
  353. package/src/views/page-system/department/modal/submit-modal.tsx +0 -265
  354. package/src/views/page-system/dict/index.tsx +0 -440
  355. package/src/views/page-system/dict/modal/cate-submit-modal.tsx +0 -315
  356. package/src/views/page-system/dict/modal/submit-modal.tsx +0 -184
  357. package/src/views/page-system/logs/components/index.ts +0 -3
  358. package/src/views/page-system/logs/components/log-message-demo.tsx +0 -30
  359. package/src/views/page-system/logs/components/log-message-stream.ts +0 -184
  360. package/src/views/page-system/logs/components/message-list/content-answer.tsx +0 -100
  361. package/src/views/page-system/logs/components/message-list/content-question.tsx +0 -18
  362. package/src/views/page-system/logs/components/message-list/index.tsx +0 -515
  363. package/src/views/page-system/logs/components/message-list/message-item.tsx +0 -193
  364. package/src/views/page-system/logs/components/message-list/preparation-demo-items.ts +0 -147
  365. package/src/views/page-system/logs/components/message-list/preparation-steps.tsx +0 -506
  366. package/src/views/page-system/logs/components/message-list/suggestion-list.tsx +0 -36
  367. package/src/views/page-system/logs/components/message-list/thinking-process.tsx +0 -49
  368. package/src/views/page-system/logs/components/message-list/toolbar.tsx +0 -134
  369. package/src/views/page-system/logs/components/message-list/use-message-list-scroll.ts +0 -214
  370. package/src/views/page-system/logs/components/message-modal.tsx +0 -239
  371. package/src/views/page-system/logs/index.tsx +0 -132
  372. package/src/views/page-system/logs/modal/detail-modal.tsx +0 -157
  373. package/src/views/page-system/menu/components/menuFormShared.ts +0 -283
  374. package/src/views/page-system/menu/index.less +0 -12
  375. package/src/views/page-system/menu/index.tsx +0 -410
  376. package/src/views/page-system/menu/modal/icon-modal.less +0 -51
  377. package/src/views/page-system/menu/modal/icon-modal.tsx +0 -87
  378. package/src/views/page-system/menu/modal/submit-modal.tsx +0 -263
  379. package/src/views/page-system/permission/index.tsx +0 -562
  380. package/src/views/page-system/permission/modal/detail-modal.tsx +0 -179
  381. package/src/views/page-system/permission/modal/submit-modal.less +0 -146
  382. package/src/views/page-system/permission/modal/submit-modal.tsx +0 -650
  383. package/src/views/page-system/role/index.tsx +0 -163
  384. package/src/views/page-system/role/modal/detail-modal.tsx +0 -127
  385. package/src/views/page-system/role/modal/permission-assign-group-rules.ts +0 -86
  386. package/src/views/page-system/role/modal/permission-modal.tsx +0 -111
  387. package/src/views/page-system/role/modal/role-modal-shell-styles.ts +0 -21
  388. package/src/views/page-system/role/modal/role-permission-assign-panel.tsx +0 -916
  389. package/src/views/page-system/role/modal/role-permission-assign-shared.ts +0 -1047
  390. package/src/views/page-system/role/modal/submit-modal.tsx +0 -193
  391. package/src/views/page-system/sys-config/index.tsx +0 -294
  392. package/src/views/page-system/user/components/user-role-column.tsx +0 -87
  393. package/src/views/page-system/user/index.tsx +0 -439
  394. package/src/views/page-system/user/modal/assign-roles-modal.tsx +0 -389
  395. package/src/views/page-system/user/modal/detail-modal.tsx +0 -72
  396. package/src/views/page-system/user/modal/modal-style/submit-modal.less +0 -40
  397. package/src/views/page-system/user/modal/submit-modal.less +0 -40
  398. package/src/views/page-system/user/modal/submit-modal.tsx +0 -287
  399. package/src/views/page-system/user/userFormShared.ts +0 -51
  400. package/tailwind.config.js +0 -17
  401. package/tsconfig.app.json +0 -48
  402. package/tsconfig.json +0 -11
  403. package/tsconfig.node.json +0 -26
  404. package/vite.config.ts +0 -272
  405. /package/{public → dist}/favicon.ico +0 -0
  406. /package/{public → dist}/vite.svg +0 -0
@@ -1,76 +0,0 @@
1
- # 表单与搜索控件(CxInput 等)说明
2
-
3
- > 适用范围:`input`、`input-number`、`select`、`multi-select`、`date-picker`、`range-picker`、`tree-select`、`switch`
4
- > 目标:统一 **表单区** 与 **搜索区** 控件高度与圆角,其余行为以 antd 为准。
5
-
6
- ## 1. 通用约定:`variant`
7
-
8
- 多数控件支持可选属性:
9
-
10
- | `variant` | 典型高度 | 使用场景 |
11
- |-----------|----------|----------|
12
- | `'cxForm'` | **42px**(日期/范围通过 class 与 less 控制视觉) | 表单、弹窗 |
13
- | `'cxSearch'` | **40px** | `ListPageView` 搜索区等 |
14
-
15
- 未传时默认为 **`cxForm`**。
16
-
17
- 其余 props **透传对应 antd 组件**(`value`、`onChange`、`options`、`disabled` 等),请参考 [Ant Design](https://ant.design/) 文档。
18
-
19
- ---
20
-
21
- ## 2. 各组件摘要
22
-
23
- ### CxInput(`input/index.jsx`)
24
-
25
- - antd `Input`;`type="textarea"` 时使用 `Input.TextArea`(高度由 TextArea 自身控制,仍带 `cx-input` 与圆角)。
26
- - 单行:`height` 由 `variant` 决定(42 / 40)。
27
-
28
- ### CxInputNumber(`input-number/index.jsx`)
29
-
30
- - antd `InputNumber`;默认 **`width: 100%`**(可被 `style.width` 覆盖)。
31
- - `variant` 控制高度 42 / 40。
32
-
33
- ### CxSelect(`select/index.jsx`)
34
-
35
- - antd `Select`,固定 **`size="large"`**,与高度样式配合。
36
- - `variant` 控制外层高度 42 / 40。
37
-
38
- ### CxMultiSelect(`multi-select/index.jsx`)
39
-
40
- - antd `Select` **`mode="multiple"`**。
41
- - 下拉顶部提供 **全选 / 取消全选**(文案为中文「全选」「取消全选」)。
42
- - **`options`**:业务应传入真实选项;未传时组件内有占位示例数据(开发时注意替换)。
43
- - `variant` 控制高度 42 / 40。
44
-
45
- > **说明**:同目录另有 `index2.tsx` 为自绘多选(Portal、Lucide 图标等),**未从 `@cx-ui` 根导出**。包内默认导出为 `index.jsx`。
46
-
47
- ### CxDatePicker(`date-picker/index.jsx`)
48
-
49
- - antd `DatePicker`;**宽度 100%**。
50
- - 根据 **`document.documentElement.lang`** 选择 antd locale 与 **dayjs** locale(支持 `zh-CN` / `en-US` 及简写 `zh` / `en`),并在 `useEffect` 中 `dayjs.locale(...)`。
51
- - `className` 含 `cx-date-picker--cxForm` / `cx-date-picker--cxSearch`。
52
-
53
- ### CxRangePicker(`range-picker/index.jsx`)
54
-
55
- - antd `DatePicker.RangePicker`;行为与日期 locale、`variant`、宽度约定同 `CxDatePicker`。
56
-
57
- ### CxTreeSelect(`tree-select/index.jsx`)
58
-
59
- - antd `TreeSelect`,**`size="large"`**。
60
- - **`treeDefaultExpandAll`**:在「非受控展开」场景下,内部会随 **`treeData` 变化** 重新计算可展开 key,避免异步树数据仅首次展开的问题;若同时传入 **`treeExpandedKeys`** 则视为受控,不启用该内部逻辑。
61
- - `variant` 控制高度 42 / 40。
62
-
63
- ### CxSwitch(`switch/index.tsx`)
64
-
65
- - antd `Switch`,增加 **`cx-switch`** class。
66
- - **`variant`**:`default` | **`text`**(`checkedText` / `uncheckedText` 轨道内文案)| **`dual`**(`leftLabel` / `rightLabel` + `dualUncheckedValue` / `dualCheckedValue`,选中侧主题色)。
67
-
68
- ---
69
-
70
- ## 3. 相关文件
71
-
72
- - 各组件目录下 `index.jsx` / `index.tsx` 与 `index.less`(若有)
73
-
74
- ---
75
-
76
- *最后更新:2026-04*
@@ -1,57 +0,0 @@
1
- # CxTag 说明
2
-
3
- > 适用范围:`src/components/cx-ui/tag`
4
- > 目标:在 antd [Tag](https://ant.design/components/tag-cn) 上挂根类 `cx-tag`,默认 **`variant="filled"`**;列表里「启用/禁用、是/否」等状态与用户管理状态列**同色**;圆角与主题对齐,并支持胶囊形态与自定义。
5
-
6
- ## 1. 与 antd 的关系
7
-
8
- | 项 | 说明 |
9
- |----|------|
10
- | 基础 | 封装 `Tag`,根节点增加 `cx-tag`,样式见 `tag/index.less`(并由 `cx-ui/styles/index.less` 聚合引入) |
11
- | `TagProps` | **透传**(`color`、`icon`、`closable`、`onClose`、`href`、`styles`、`classNames` 等与官方一致) |
12
- | `variant` | **默认 `filled`**;可改为 `solid`、`outlined` |
13
- | `color` | 与 antd 一致:语义色 `success`、`error`、`warning`、`processing`、`default`,或**色值**(如 `#6366f1`);自定义色时仍按 antd 规则计算背景/边框等 |
14
- | `pill` | **CxTag 扩展**:为 `true` 时使用胶囊全圆角及固定字号/内边距(与用户管理表格状态列一致) |
15
-
16
- 组件使用 `forwardRef` + `memo`,表格列以纯展示为主时可减轻无关重渲染。
17
-
18
- ```tsx
19
- import { CxTag } from '@cx-ui'
20
- ```
21
-
22
- ## 2. 样式约定(`tag/index.less`)
23
-
24
- - **默认圆角**:`border-radius: var(--ant-border-radius-sm, 6px)`,与 antd 主题 token 对齐;无变量时回退 `6px`。
25
- - **`pill`**:全圆角 + `font-size: 12px`、`font-weight: 500`、内边距与用户管理状态列一致。
26
- - **`filled` + `success` / `error`**:在 `.cx-tag` 下覆盖背景与文字色,与用户管理启用/禁用**对齐**(含 `.dark` 变体)。其它语义色仍走 antd 默认。
27
- - **自定义**:通过 `className`、`style` 或 antd `styles` / `classNames`(6.x 语义化 DOM)覆盖即可。
28
-
29
- ## 3. 示例
30
-
31
- ```tsx
32
- // 与用户管理状态列同观感(推荐)
33
- <CxTag color={status === 1 ? 'success' : 'error'} pill>
34
- {status === 1 ? t('user.table.status_active') : t('user.table.status_disabled')}
35
- </CxTag>
36
-
37
- // 是 / 否
38
- <CxTag color={enabled ? 'success' : 'error'} pill>
39
- {enabled ? t('common.yes') : t('common.no')}
40
- </CxTag>
41
-
42
- // 普通标签:主题圆角 + filled,自定义色值
43
- <CxTag color="#6366f1">标签</CxTag>
44
-
45
- // 仅改圆角
46
- <CxTag color="processing" style={{ borderRadius: 2 }} />
47
- ```
48
-
49
- ## 4. 类型导出
50
-
51
- - `CxTagProps`:`TagProps & { pill?: boolean }`
52
-
53
- 源码:`src/components/cx-ui/tag/index.tsx`;样式:`src/components/cx-ui/tag/index.less`。
54
-
55
- ---
56
-
57
- *最后更新:2026-04*
@@ -1,29 +0,0 @@
1
- # CxEmptyState
2
-
3
- > 源码:`src/components/cx-ui/empty-state/index.tsx`。列表/选人表在无数据、未选树节点等场景下使用的居中空状态展示。
4
-
5
- ## 导出
6
-
7
- 从 `@cx-ui` 与包内其它组件一致:
8
-
9
- ```ts
10
- import { CxEmptyState } from '@cx-ui'
11
- import type { CxEmptyStateProps } from '@cx-ui'
12
- ```
13
-
14
- ## Props
15
-
16
- | 属性 | 类型 | 说明 |
17
- |------|------|------|
18
- | `message` | `string` | 主文案(由业务传入,多为 i18n 结果) |
19
-
20
- ## 使用场景
21
-
22
- - **`ListPageView`**:未选树节点时的 `unselectText`、表格无数据时的 `common.no_data` 等。
23
- - **`SelectTableView`**:同上。
24
-
25
- 与旧路径 `src/components/common/empty-state` 脱钩后,空状态统一走 **cx-ui**,便于样式与依赖收敛。
26
-
27
- ---
28
-
29
- *最后更新:2026-04-17*
@@ -1,24 +0,0 @@
1
- # meta 文档总览
2
-
3
- > 对应源码 **`src/meta/`**:前端运行时元数据(**静态枚举** + **动态数据字典**)。对外入口为 **`@/meta`**(`src/meta/index.ts` 再导出 `index-enum` / `index-dict`)。
4
-
5
- ## 文档列表
6
-
7
- | 文档 | 内容 |
8
- |------|------|
9
- | [`comp.1.enum-runtime.md`](./comp.1.enum-runtime.md) | `index-enum.ts`:`enumRegistry`、`ENUM_DATA`、`getEnumOptions` 等 |
10
- | [`comp.2.dict-runtime.md`](./comp.2.dict-runtime.md) | `index-dict.ts`:注册表、`DICT_KEY` / `DICT_DATA`、加载、`loadCommonDictData(true)`、与 React 同步 |
11
-
12
- ## 阅读顺序
13
-
14
- 1. 区分两类数据:**枚举**不请求后端;**字典**由后端分类 code 拉取。
15
- 2. 改配置:枚举改 `index-enum.ts` 的 `enumRegistry`;字典改 `index-dict.ts` 的 `unauthDictRegistry` / `commonDictRegistry`。
16
- 3. 业务页刷新字典:见 `comp.2` 与列表工厂 `afterGetPageData`([`../table-view/props.1.create-table-view-config.md`](../table-view/props.1.create-table-view-config.md))。
17
-
18
- ## 关联
19
-
20
- - 组件与列表:[`../0.docs-overview.md`](../0.docs-overview.md)
21
-
22
- ---
23
-
24
- *最后更新:2026-04-17*
@@ -1,33 +0,0 @@
1
- # 静态枚举运行时(`index-enum`)
2
-
3
- > 主文件:`src/meta/index-enum.ts`。实现:`src/meta/module/enum-data/runtime.ts`。
4
-
5
- ## 职责
6
-
7
- - 在构建期/启动期把 **`enumRegistry`** 注入 **`ENUM_DATA`** 各槽位:`option`、`valueMap`、`defaultValue`、`tagColorMap`(可选)。
8
- - 与字典对称:枚举 **不发起 HTTP**,适合状态码、是否、HTTP 方法等固定集合。
9
-
10
- ## 改配置
11
-
12
- 在 `index-enum.ts` 中编辑 **`enumRegistry`**(键 = 稳定访问键,与 `ENUM_DATA` 槽位一致),然后由 **`initEnumDataRuntime({ enumRegistry })`** 初始化(文件底部已调用)。
13
-
14
- ## 常用 API
15
-
16
- | 导出 | 说明 |
17
- |------|------|
18
- | `ENUM_DATA` | 按访问键读槽位 |
19
- | `getEnumOptions(key)` | 选项列表 |
20
- | `getEnumLabelKey` / `getEnumDefaultValue` | 见 runtime 导出 |
21
-
22
- ## 类型
23
-
24
- - **`EnumRegistryKey`**:`keyof typeof enumRegistry`
25
-
26
- ## 与字典对照(摘自文件头注释)
27
-
28
- - 字典:`DICT_DATA[DICT_KEY.permission].option`、`getDictOptions(DICT_KEY.xxx)`
29
- - 枚举:`ENUM_DATA['commonStatus'].option`、`getEnumOptions('commonStatus')`
30
-
31
- ---
32
-
33
- *最后更新:2026-04-17*
@@ -1,39 +0,0 @@
1
- # 数据字典运行时(`index-dict`)
2
-
3
- > 主文件:`src/meta/index-dict.ts`。实现:`src/meta/module/dict-data/runtime.ts`。
4
-
5
- ## 职责
6
-
7
- - 通过 **`unauthDictRegistry`**(免登录分类)与 **`commonDictRegistry`**(登录后 batch 分类)声明后台 **分类 code** 与前端 **`constKey`(访问键)** 的对应关系。
8
- - **`initDictDataRuntime`** 初始化 **`DICT_KEY`**(访问键 → code)与 **`DICT_DATA`** 槽位(`option`、`valueMap`、`defaultValue`)。
9
- - **`loadUnauthDictData()`**:按分类逐个 `getDictDataAPI`;可重复调用,每次重新发起请求。
10
- - **`loadCommonDictData(force?)`**:**登录后** `batchGetDictDataAPI` 拉取 `commonDictRegistry` 中所有分类。
11
- - 默认 **`force === false`** 时,首次请求后的 Promise 会被缓存;再次调用**不会**重新打接口。
12
- - **`loadCommonDictData(true)`**:清空缓存后重新拉取,用于 **管理端数据字典** 等场景在数据变更后刷新前端缓存(常与列表 `afterGetPageData` 搭配,见 [`../table-view/props.1.create-table-view-config.md`](../table-view/props.1.create-table-view-config.md) §4.4 示例)。
13
-
14
- ## 与 React 同步
15
-
16
- - `useAuth().commonDictRevision`(若项目已接)
17
- - **`registerDictDataLoadedNotifier`**(或已废弃别名的 `registerCommonDictLoadedNotifier`):在字典数据写入 `DICT_DATA` 后通知订阅方。
18
-
19
- ## 管理端变更后的推荐调用
20
-
21
- ```ts
22
- import { loadCommonDictData, loadUnauthDictData } from '@/meta/index-dict'
23
-
24
- loadUnauthDictData()
25
- await loadCommonDictData(true)
26
- ```
27
-
28
- ## 常用导出
29
-
30
- `DICT_KEY`、`DICT_DATA`、`publicDictsReady`、`getDictOptions`、`getDictDefaultValue`、`loadUnauthDictData`、`loadCommonDictData`、注册 notifier 等——以 `index-dict.ts` 的 `export { … } from './module/dict-data/runtime'` 为准。
31
-
32
- ## 类型
33
-
34
- - **`DictAccessKey`**:各 `constKey` 联合
35
- - **`DictCategoryCode`**:`unauthDictRegistry` / `commonDictRegistry` 的 key
36
-
37
- ---
38
-
39
- *最后更新:2026-04-17*
@@ -1,14 +0,0 @@
1
- # 路由与菜单文档总览
2
-
3
- 本目录包含路由自动注册和菜单组件配置的相关文档。
4
-
5
- ## 文档列表
6
-
7
- 1. [菜单组件配置指南](./guide.1.menu-component-config.md) - 解决组件未找到的警告问题
8
- 2. [动态路由自动注册功能](./guide.2.router-auto-registration.md) - submit.tsx 和 detail.tsx 的自动扫描与注册
9
-
10
- ## 相关代码
11
-
12
- - 路由配置:`src/router/index.tsx`
13
- - 菜单路由注册:`src/utils/menuRouteRegistry.ts`
14
- - 侧边栏组件:`src/components/layout/components/Sidebar.tsx`
@@ -1,181 +0,0 @@
1
- # 菜单组件配置指南
2
-
3
- ## 问题说明
4
-
5
- 如果你在控制台看到类似以下的警告:
6
-
7
- ```
8
- [Router] 组件未找到: /page-menus/business-rules/index, 尝试路径: /page-menus/business-rules
9
- [Router] 组件未找到: /, 尝试路径: /
10
- ```
11
-
12
- 这是因为后台菜单配置中的 `component` 字段值不正确或对应的组件文件不存在。
13
-
14
- ## 解决方案
15
-
16
- ### 1. 检查后台菜单配置
17
-
18
- 登录后台管理系统,检查菜单管理中的配置:
19
-
20
- **错误的配置示例:**
21
- ```json
22
- {
23
- "component": "/page-menus/business-rules/index", // ❌ 前导斜杠和 /index 后缀
24
- "path": "/business-rules"
25
- }
26
- ```
27
-
28
- **正确的配置示例:**
29
- ```json
30
- {
31
- "component": "page-menus/knowledge", // ✅ 不带前导斜杠,不带 /index
32
- "path": "/menus/knowledge"
33
- }
34
- ```
35
-
36
- ### 2. Component 字段规范
37
-
38
- Component 字段应该遵循以下规则:
39
-
40
- | 规则 | 说明 | 示例 |
41
- |------|------|------|
42
- | ✅ 不带前导斜杠 | 不要以 `/` 开头 | `page-menus/knowledge` |
43
- | ✅ 不带 /index 后缀 | 系统会自动查找 index.tsx | `page-menus/knowledge` |
44
- | ✅ 相对于 pages 目录 | 从 `src/pages/` 开始的路径 | `page-system/role` |
45
- | ❌ 不要使用特殊值 | 避免使用 `/`, `Main`, `Root` 等 | - |
46
-
47
- ### 3. 文件结构对应关系
48
-
49
- ```
50
- src/pages/
51
- ├── page-menus/
52
- │ ├── knowledge/
53
- │ │ ├── index.tsx ← component: "page-menus/knowledge"
54
- │ │ ├── detail.tsx ← 自动注册为 "page-menus/knowledge/detail"
55
- │ │ └── submit.tsx ← 自动注册为 "page-menus/knowledge/submit"
56
- │ └── feedback/
57
- │ └── index.tsx ← component: "page-menus/feedback"
58
- └── page-system/
59
- ├── role/
60
- │ └── index.tsx ← component: "page-system/role"
61
- └── user/
62
- └── index.tsx ← component: "page-system/user"
63
- ```
64
-
65
- ### 4. 特殊菜单项处理
66
-
67
- 对于不需要跳转的菜单项(如父级菜单),应该设置:
68
-
69
- ```json
70
- {
71
- "component": "Main", // 或 "Root"
72
- "path": "/",
73
- "children": [...]
74
- }
75
- ```
76
-
77
- 系统会自动跳过这些菜单项,不会尝试加载组件。
78
-
79
- ### 5. 调试方法
80
-
81
- 在开发环境下,系统会打印所有已注册的组件路径:
82
-
83
- ```javascript
84
- [Router] Registered components: [
85
- "/page-menus/feedback",
86
- "/page-menus/knowledge",
87
- "/page-menus/knowledge/detail",
88
- "/page-system/role",
89
- "/page-system/user",
90
- ...
91
- ]
92
- ```
93
-
94
- 你可以通过这个列表来确认:
95
- 1. 哪些组件已被正确注册
96
- 2. 菜单配置中的 component 字段应该使用什么值
97
-
98
- ### 6. 常见问题
99
-
100
- #### Q1: 为什么会有 `/` 这样的路径?
101
-
102
- A: 这通常是因为菜单配置中某个父级菜单的 component 字段设置为 `/`。应该改为 `Main` 或留空。
103
-
104
- #### Q2: 新增了页面文件但路由不生效?
105
-
106
- A:
107
- 1. 确保文件命名正确(index.tsx、submit.tsx、detail.tsx)
108
- 2. 确保文件在正确的目录下
109
- 3. 重启开发服务器(Vite 需要重新扫描 glob)
110
- 4. 检查控制台输出的已注册组件列表
111
-
112
- #### Q3: 如何查看当前注册了哪些组件?
113
-
114
- A: 打开浏览器控制台,在开发环境下会看到:
115
- ```
116
- [Router] Registered components: [...]
117
- ```
118
-
119
- 或者在代码中添加:
120
- ```javascript
121
- console.log(Object.keys(componentMap).sort())
122
- ```
123
-
124
- ### 7. 修复步骤
125
-
126
- 如果遇到"组件未找到"的警告:
127
-
128
- 1. **确认文件存在**
129
- ```bash
130
- # 检查文件是否存在
131
- ls src/views/page-menus/business-rules/index.tsx
132
- ```
133
-
134
- 2. **如果文件不存在**
135
- - 选项 A:创建对应的页面文件
136
- - 选项 B:在后台菜单管理中删除或禁用该菜单项
137
-
138
- 3. **如果文件存在但路径不对**
139
- - 检查后台菜单配置中的 component 字段
140
- - 确保与文件路径匹配(去掉前导斜杠和 /index)
141
-
142
- 4. **重启开发服务器**
143
- ```bash
144
- npm run dev
145
- ```
146
-
147
- ## 示例:知识库模块
148
-
149
- **文件结构:**
150
- ```
151
- src/pages/page-menus/knowledge/
152
- ├── index.tsx # 列表页
153
- ├── detail.tsx # 详情页(文档列表)
154
- └── modal/
155
- ├── submit-modal.tsx
156
- └── detail-modal.tsx
157
- ```
158
-
159
- **后台菜单配置:**
160
- ```json
161
- {
162
- "id": 100,
163
- "name": "知识库管理",
164
- "path": "/menus/knowledge",
165
- "component": "page-menus/knowledge", // ✅ 正确
166
- "icon": "BookOpen",
167
- "sortOrder": 1
168
- }
169
- ```
170
-
171
- **自动生成的路由:**
172
- - `/menus/knowledge` → index.tsx
173
- - `/menus/knowledge/detail/:id` → detail.tsx
174
-
175
- ## 总结
176
-
177
- - ✅ Component 字段格式:`page-xxx/module-name`
178
- - ❌ 不要加前导斜杠:`/page-xxx/module-name`
179
- - ❌ 不要加 /index 后缀:`page-xxx/module-name/index`
180
- - 🔍 开发环境下会打印已注册的组件列表
181
- - 🔄 新增文件后需要重启开发服务器
@@ -1,114 +0,0 @@
1
- # 动态路由自动注册功能
2
-
3
- ## 功能说明
4
-
5
- 在 `src/router/index.tsx` 中实现了自动扫描并注册 `submit.tsx` 和 `detail.tsx` 页面的功能。
6
-
7
- ## 实现原理
8
-
9
- ### 1. 组件扫描与注册
10
-
11
- 系统会自动扫描以下三种页面文件:
12
- - `pages/**/index.tsx` - 列表页(主页面)
13
- - `pages/**/submit.tsx` - 新增/编辑页
14
- - `pages/**/detail.tsx` - 详情页
15
-
16
- 扫描后的组件会被注册到 `componentMap` 中,路径规则如下:
17
- - `/page-system/role` → 对应 `pages/page-system/role/index.tsx`
18
- - `/page-system/role/submit` → 对应 `pages/page-system/role/submit.tsx`
19
- - `/page-system/role/detail` → 对应 `pages/page-system/role/detail.tsx`
20
-
21
- ### 2. 路由自动生成
22
-
23
- 在 `generateAdminRoutes` 函数中,对于每个菜单项:
24
- 1. 首先注册主路由(index)
25
- 2. 如果存在对应的 submit.tsx,自动注册:
26
- - `/{path}/submit` - 新增页面
27
- - `/{path}/submit/:id` - 编辑页面(带 ID 参数)
28
- 3. 如果存在对应的 detail.tsx,自动注册:
29
- - `/{path}/detail/:id` - 详情页面(必须带 ID 参数)
30
-
31
- ## 使用方式
32
-
33
- ### 场景 1:submitType 为 'page'
34
-
35
- 当在 `createListPageConfig` 中配置 `submitType: 'page'` 时:
36
-
37
- ```typescript
38
- const useListPageConfig = createListPageConfig({
39
- // ... 其他配置
40
- submitAction: {
41
- permission: 'knowledge:create',
42
- submitType: 'page', // 使用页面跳转方式
43
- labelKey: 'knowledge.add',
44
- },
45
- })
46
- ```
47
-
48
- 点击"新增"按钮时,会自动跳转到 `/{path}/submit` 页面。
49
-
50
- ### 场景 2:detailType 为 'page'
51
-
52
- 当配置 `detailType: 'page'` 时:
53
-
54
- ```typescript
55
- const useListPageConfig = createListPageConfig({
56
- // ... 其他配置
57
- detailAction: {
58
- detailType: 'page', // 使用页面跳转方式
59
- labelKey: 'common.view',
60
- },
61
- })
62
- ```
63
-
64
- 点击"查看"按钮时,会自动跳转到 `/{path}/detail/:id` 页面。
65
-
66
- ### 场景 3:手动 URL 跳转
67
-
68
- 也可以直接使用 URL 进行跳转:
69
-
70
- ```typescript
71
- // 跳转到新增页面
72
- window.location.href = '/menus/knowledge/submit'
73
-
74
- // 跳转到编辑页面
75
- window.location.href = `/menus/knowledge/submit/${id}`
76
-
77
- // 跳转到详情页面(必须带 ID)
78
- window.location.href = `/menus/knowledge/detail/${id}`
79
- ```
80
-
81
- ## 示例:知识库管理模块
82
-
83
- 以知识库管理为例:
84
-
85
- **文件结构:**
86
- ```
87
- src/pages/page-menus/knowledge/
88
- ├── index.tsx # 知识库列表页
89
- ├── detail.tsx # 知识库文档列表页(详情页)
90
- └── modal/
91
- ├── submit-modal.tsx
92
- └── detail-modal.tsx
93
- ```
94
-
95
- **自动生成的路由:**
96
- - `/menus/knowledge` → 知识库列表页(index.tsx)
97
- - `/menus/knowledge/submit` → 新增知识库
98
- - `/menus/knowledge/submit/:id` → 编辑知识库(带 ID 参数)
99
- - `/menus/knowledge/detail/:id` → 知识库文档列表(带 knowledgeId 参数)
100
-
101
- ## 注意事项
102
-
103
- 1. **文件命名规范**:必须使用 `index.tsx`、`submit.tsx`、`detail.tsx` 作为文件名
104
- 2. **目录结构**:这些文件应该在同一目录下
105
- 3. **组件导出**:每个文件必须使用 `export default` 导出 React 组件
106
- 4. **路由参数**:如果需要传递 ID,使用 `useParams` hook 获取
107
- 5. **权限控制**:路由本身不做权限控制,需要在页面内部通过 `useAuth` 检查权限
108
-
109
- ## 优势
110
-
111
- 1. **自动化**:无需手动配置路由,系统自动扫描注册
112
- 2. **一致性**:所有模块遵循相同的路由规则
113
- 3. **灵活性**:支持弹框和页面两种交互方式
114
- 4. **易维护**:新增模块只需创建对应文件,无需修改路由配置
@@ -1,30 +0,0 @@
1
- # table-view 文档总览
2
-
3
- > 本目录说明 **`src/components/table-view/`** 模块(`ListPageView`、`SelectTableView`、`createListPageConfig`、`createSelectTableConfig` 等)。文档物理路径:`src/_doc/table-view/`。单文件命名:`类型.序号.主题.md`。
4
-
5
- ## 命名规则
6
-
7
- - `0.*.md`:总入口/导航文档
8
- - `comp.N.*.md`:**模块/组件**总体说明(架构、职责、协作方式)
9
- - `props.N.*.md`:**配置项、参数字典**(如 `createListPageConfig`、`searchFields` 的字段说明)
10
- - `examples.N.*.md`:示例与最佳实践文档(预留)
11
-
12
- ## 当前文档
13
-
14
- - `comp.1.table-view.md`:目录结构、`ListPageView` / `SelectTableView` 职责与协作方式
15
- - `props.1.create-table-view-config.md`:`createListPageConfig` / `createSelectTableConfig` 参数与扩展点
16
- - `props.2.table-view-search-fields.md`:`searchFields` 配置与参数映射
17
-
18
- ## 阅读建议
19
-
20
- 1. 先阅读 `comp.1.table-view.md` 了解整体架构
21
- 2. 再阅读 `props.1.create-table-view-config.md` 了解配置工厂
22
- 3. 最后阅读 `props.2.table-view-search-fields.md` 关注筛选配置细节
23
-
24
- 列表拉取成功后的扩展点 **`afterGetPageData`** 见 `props.1.create-table-view-config.md` §4.4。
25
-
26
- ## 关联
27
-
28
- - 弹窗基座见 `../cx-ui/comp.2.cx-modal.md`
29
- - 列表空状态见 `../cx-ui/comp.7.cx-empty-state.md`
30
- - 全局索引见 [`../0.docs-overview.md`](../0.docs-overview.md);`@/meta` 字典/枚举见 [`../meta/0.docs-overview.md`](../meta/0.docs-overview.md)