cx-chat 0.0.2 → 0.0.4

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 +68257 -0
  3. package/dist/cx-chat.umd.js +492 -0
  4. package/package.json +27 -3
  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
package/.nginx/nginx.conf DELETED
@@ -1,52 +0,0 @@
1
- # For more information on configuration, see:
2
- # * Official English Documentation: http://nginx.org/en/docs/
3
- # * Official Russian Documentation: http://nginx.org/ru/docs/
4
-
5
- user nginx;
6
- worker_processes auto;
7
- error_log /var/log/nginx/error.log;
8
- pid /run/nginx.pid;
9
-
10
- # Load dynamic modules. See /usr/share/nginx/README.dynamic.
11
- include /usr/share/nginx/modules/*.conf;
12
-
13
- events {
14
- worker_connections 1024;
15
- }
16
-
17
- http {
18
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
19
- '$status $body_bytes_sent "$http_referer" '
20
- '"$http_user_agent" "$http_x_forwarded_for"';
21
-
22
- access_log /var/log/nginx/access.log main;
23
-
24
- sendfile on;
25
- tcp_nopush on;
26
- tcp_nodelay on;
27
- keepalive_timeout 65;
28
- types_hash_max_size 2048;
29
-
30
- include /etc/nginx/mime.types;
31
- default_type application/octet-stream;
32
-
33
- # Load modular configuration files from the /etc/nginx/conf.d directory.
34
- # See http://nginx.org/en/docs/ngx_core_module.html#include
35
- # for more information.
36
-
37
- server {
38
- listen 8080 default_server;
39
- listen [::]:80 default_server;
40
-
41
- server_name _;
42
- root /app/dist;
43
-
44
- error_page 404 /404.html;
45
- location = /40x.html {
46
- }
47
-
48
- error_page 500 502 503 504 /50x.html;
49
- location = /50x.html {
50
- }
51
- }
52
- }
package/.prettierrc DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "bracketSameLine": true,
3
- "jsxBracketSameLine": true,
4
- "semi": true,
5
- "singleQuote": true,
6
- "tabWidth": 2,
7
- "useTabs": false,
8
- "trailingComma": "all"
9
- }
package/eslint.config.js DELETED
@@ -1,32 +0,0 @@
1
- import js from '@eslint/js'
2
- import globals from 'globals'
3
- import reactHooks from 'eslint-plugin-react-hooks'
4
- import reactRefresh from 'eslint-plugin-react-refresh'
5
- import tseslint from 'typescript-eslint'
6
- import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
7
- import { defineConfig, globalIgnores } from 'eslint/config'
8
-
9
- export default defineConfig([
10
- globalIgnores(['dist']),
11
- {
12
- files: ['**/*.{ts,tsx}'],
13
- extends: [
14
- js.configs.recommended,
15
- tseslint.configs.recommended,
16
- eslintPluginPrettierRecommended,
17
- ],
18
- languageOptions: {
19
- ecmaVersion: 2020,
20
- globals: globals.browser,
21
- },
22
- rules: {
23
- '@typescript-eslint/no-explicit-any': 'off',
24
- '@typescript-eslint/no-unused-vars': 'off',
25
- 'react-hooks/rules-of-hooks': 'off',
26
- 'react-hooks/exhaustive-deps': 'off',
27
- 'no-empty-pattern': 'off',
28
- '@typescript-eslint/semi': ['warn', 'always'],
29
- 'semi': ['warn', 'always'],
30
- },
31
- },
32
- ])
package/index.html DELETED
@@ -1,13 +0,0 @@
1
- <!doctype html>
2
- <html lang="zh">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title></title>
8
- </head>
9
- <body>
10
- <div id="root"></div>
11
- <script type="module" src="/src/main.tsx"></script>
12
- </body>
13
- </html>
package/postcss.config.js DELETED
@@ -1,6 +0,0 @@
1
- export default {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- }
package/src/App.tsx DELETED
@@ -1,96 +0,0 @@
1
- import React from 'react'
2
- import { useRoutes } from 'react-router-dom'
3
- import { AuthProvider, useAuth } from './contexts/AuthContext'
4
- import { MenuProvider, useMenu } from './contexts/MenuContext'
5
- import { ToastProvider, useToast } from './contexts/ToastContext'
6
- import { ChatProvider } from './contexts/ChatContext'
7
- import { useTranslation } from 'react-i18next'
8
- import MainLayout from './components/layout'
9
- import {
10
- generateAdminRoutes,
11
- ProtectedRoute,
12
- ROUTE_401,
13
- ROUTE_BOOT,
14
- ROUTE_404,
15
- ROUTES_MAIN_CHILD,
16
- ROUTES_PUBLIC,
17
- toRouteObjects,
18
- type RouteConfig,
19
- } from './router'
20
- import { removeStore } from './utils/storage'
21
-
22
- const AppRoutes: React.FC = () => {
23
- const { t } = useTranslation()
24
- const { showToast } = useToast()
25
-
26
- React.useEffect(() => {
27
- const handleUnauthorized = () => {
28
- const rawUntil = sessionStorage.getItem('suppress_unauthorized_toast_until') || '0'
29
- const until = Number(rawUntil)
30
- if (until > Date.now()) return
31
- showToast(t('auth.login.session_expired'), 'error')
32
- }
33
-
34
- const handleDecryptionFailed = () => {
35
- showToast(t('common.decryption_failed'), 'error')
36
- removeStore('token')
37
- window.dispatchEvent(new CustomEvent('common:unauthorized'))
38
- }
39
-
40
- window.addEventListener('common:unauthorized', handleUnauthorized)
41
- window.addEventListener('api:decryption-failed', handleDecryptionFailed)
42
- return () => {
43
- window.removeEventListener('common:unauthorized', handleUnauthorized)
44
- window.removeEventListener(
45
- 'api:decryption-failed',
46
- handleDecryptionFailed,
47
- )
48
- }
49
- }, [showToast, t])
50
-
51
- const { isAuthenticated, isLoading: authLoading } = useAuth()
52
- const { menus, isLoading: menuLoading } = useMenu()
53
- const menuData = menus && menus.length > 0 ? menus : []
54
- const adminRoutes = generateAdminRoutes(menuData[0]?.children || [])
55
-
56
- /** 菜单拉取完成前动态路由未注册,深层链接会先落到 `*`,用全屏加载替代 404 闪烁 */
57
- const deferUnknownWhileMenuBoot =
58
- isAuthenticated && !authLoading && menuLoading
59
-
60
- // 匹配优先级:具体路径在前;通配 404 兜底放最后
61
- const routeConfigs = React.useMemo<RouteConfig[]>(
62
- () => [
63
- ...ROUTES_PUBLIC,
64
- ROUTE_401,
65
- {
66
- path: '/',
67
- element: (
68
- <ProtectedRoute>
69
- <MainLayout />
70
- </ProtectedRoute>
71
- ),
72
- children: [...ROUTES_MAIN_CHILD, ...adminRoutes],
73
- },
74
- deferUnknownWhileMenuBoot ? ROUTE_BOOT : ROUTE_404,
75
- ],
76
- [adminRoutes, deferUnknownWhileMenuBoot],
77
- )
78
-
79
- return useRoutes(toRouteObjects(routeConfigs))
80
- }
81
-
82
- const App: React.FC = () => {
83
- return (
84
- <AuthProvider>
85
- <ToastProvider>
86
- <MenuProvider>
87
- <ChatProvider>
88
- <AppRoutes />
89
- </ChatProvider>
90
- </MenuProvider>
91
- </ToastProvider>
92
- </AuthProvider>
93
- )
94
- }
95
-
96
- export default App
@@ -1,28 +0,0 @@
1
- # `src/_doc` 文档索引
2
-
3
- > 与业务源码并列的补充文档,物理路径:**`src/_doc/`**。目录名前缀 `_` 与样式 partial(如 `_tokens.less`)一致,表示随仓库维护、不参与构建产物逻辑。
4
-
5
- ## 子目录
6
-
7
- | 目录 | 说明 | 入口 |
8
- |------|------|------|
9
- | **`meta/`** | 运行时元数据:`@/meta` 枚举(`ENUM_DATA`)、数据字典(`DICT_DATA`、`DICT_KEY`)、加载与刷新约定 | [`meta/0.docs-overview.md`](./meta/0.docs-overview.md) |
10
- | **`table-view/`** | 与源码 `src/components/table-view` 对应:`ListPageView`、`SelectTableView`、`createListPageConfig`、`searchFields` 等 | [`table-view/0.docs-overview.md`](./table-view/0.docs-overview.md) |
11
- | **`cx-ui/`** | 与源码 `src/components/cx-ui` 对应:表单、弹窗、按钮、标签、`CxEmptyState` 等 | [`cx-ui/0.docs-overview.md`](./cx-ui/0.docs-overview.md) |
12
-
13
- ## 命名规则(各子目录内)
14
-
15
- - `0.*.md`:该子域总览 / 导航
16
- - **`comp.N.*.md`**:模块说明、API 与约定
17
- - **`props.N.*.md`**:配置项、参数字典(多见于 `table-view`)
18
- - `examples.N.*.md`:示例(预留)
19
-
20
- ## 近期约定(跨模块)
21
-
22
- - 列表工厂 **`afterGetPageData`**:`createListPageConfig` 在每次 **`fetchTableData` 成功落表后**调用;与字典刷新等全局缓存同步时优先用此钩子。见 [`table-view/props.1.create-table-view-config.md`](./table-view/props.1.create-table-view-config.md) §4.4。
23
- - 管理端字典变更后刷新前端字典缓存:见 [`meta/comp.2.dict-runtime.md`](./meta/comp.2.dict-runtime.md)(`loadUnauthDictData` + `loadCommonDictData(true)`)。
24
- - **`CxEmptyState`**:由 `@cx-ui` 导出,列表空态见 [`cx-ui/comp.7.cx-empty-state.md`](./cx-ui/comp.7.cx-empty-state.md)。
25
-
26
- ---
27
-
28
- *最后更新:2026-04-17*
@@ -1,30 +0,0 @@
1
- # Cx-UI 文档总览
2
-
3
- > 本目录维护 `src/components/cx-ui` 相关文档,物理路径:`src/_doc/cx-ui/`。单文件命名:`类型.序号.主题.md`。
4
-
5
- ## 命名规则
6
-
7
- - `0.*.md`:总入口/导航文档
8
- - `comp.N.*.md`:**组件/模块**说明(目录、导出、用法与各组件 API 约定,含 `CxModal`、`CxButton` 等)
9
- - `props.N.*.md`:**配置项、参数字典**(如列表工厂 `createListPageConfig` 的字段说明——此类文档放在 `table-view/` 等模块下,见该目录 `0.docs-overview`)
10
- - `examples.N.*.md`:示例与最佳实践文档(预留)
11
-
12
- ## 当前文档
13
-
14
- - `comp.1.cx-ui-overview.md`:cx-ui 目录结构、导出与使用约定
15
- - `comp.2.cx-modal.md`:`CxModal`、`useCxModal` 参数与 `opeType` 行为说明
16
- - `comp.3.cx-button.md`:`CxButton`、预设按钮与图标按钮
17
- - `comp.4.cx-form.md`:`CxForm`、`CxFormItem`、规则映射
18
- - `comp.5.cx-fields.md`:`CxInput` / `Select` / `DatePicker` 等表单与搜索控件
19
- - `comp.6.cx-tag.md`:`CxTag`(antd Tag + `pill` 与状态色覆盖)
20
- - `comp.7.cx-empty-state.md`:`CxEmptyState`(列表/选人表空数据、未选树等居中占位)
21
-
22
- ## 阅读建议
23
-
24
- 1. 先阅读 `comp.1.cx-ui-overview.md` 了解包内模块与统一入口
25
- 2. 弹窗:`comp.2.cx-modal.md`;按钮:`comp.3.cx-button.md`;表单与校验:`comp.4.cx-form.md`;输入类控件:`comp.5.cx-fields.md`;标签:`comp.6.cx-tag.md`;空状态:`comp.7.cx-empty-state.md`
26
-
27
- ## 关联
28
-
29
- - 列表与选人表见 `../table-view/comp.1.table-view.md`
30
- - 全局索引见 [`../0.docs-overview.md`](../0.docs-overview.md);运行时元数据见 [`../meta/0.docs-overview.md`](../meta/0.docs-overview.md)
@@ -1,82 +0,0 @@
1
- # Cx-UI 包说明
2
-
3
- > 本文档说明 `src/components/cx-ui` 的定位、目录结构与统一导出,便于与 Ant Design 封装层、业务页面协作。
4
-
5
- ## 定位
6
-
7
- - **统一封装**:在 antd 组件之上提供项目内一致的交互与样式(按钮预设、表单、弹窗等)。
8
- - **与 table-view 协作**:列表页、弹窗等场景常与 `src/components/table-view` 的 `ListPageView`、`createListPageConfig`、`createSelectTableConfig` 配合使用;弹窗基座见 `comp.2.cx-modal.md`,列表与选人表架构见 `../table-view/comp.1.table-view.md`。
9
-
10
- ## 统一入口
11
-
12
- 业务侧优先从包根导入,避免深路径散落:
13
-
14
- ```ts
15
- import {
16
- CxModal,
17
- useCxModal,
18
- CxButton,
19
- CxButtonSubmit,
20
- CxForm,
21
- CxFormItem,
22
- CxTag,
23
- CxEmptyState,
24
- // ...
25
- } from '@cx-ui'
26
- ```
27
-
28
- 具体导出列表以 `src/components/cx-ui/index.ts` 为准。
29
-
30
- ## 按组件查阅
31
-
32
- | 组件/模块 | 文档 |
33
- |-----------|------|
34
- | 包总览与目录 | 本文 |
35
- | `CxModal`、`useCxModal` | [`comp.2.cx-modal.md`](./comp.2.cx-modal.md) |
36
- | `CxButton` 及预设 | [`comp.3.cx-button.md`](./comp.3.cx-button.md) |
37
- | `CxForm`、`CxFormItem` | [`comp.4.cx-form.md`](./comp.4.cx-form.md) |
38
- | `CxInput`、`CxSelect`、`CxDatePicker` 等 | [`comp.5.cx-fields.md`](./comp.5.cx-fields.md) |
39
- | `CxTag` | [`comp.6.cx-tag.md`](./comp.6.cx-tag.md) |
40
- | `CxEmptyState` | [`comp.7.cx-empty-state.md`](./comp.7.cx-empty-state.md) |
41
-
42
- ## 目录结构(概览)
43
-
44
- ```
45
- src/components/cx-ui/
46
- ├─ index.ts # 统一导出
47
- ├─ button/ # CxButton 及预设(Submit、Ok、Cancel 等)
48
- ├─ modal/ # CxModal、useCxModal
49
- ├─ form/ # CxForm、CxFormContext、规则映射
50
- ├─ form-item/ # CxFormItem
51
- ├─ input/ # CxInput
52
- ├─ input-number/ # CxInputNumber
53
- ├─ select/ # CxSelect
54
- ├─ multi-select/ # CxMultiSelect(含 index2.tsx 等)
55
- ├─ date-picker/ # CxDatePicker
56
- ├─ range-picker/ # CxRangePicker
57
- ├─ tree-select/ # CxTreeSelect
58
- ├─ switch/ # CxSwitch
59
- ├─ tag/ # CxTag
60
- └─ empty-state/ # CxEmptyState(列表/树未选/无数据占位)
61
- ```
62
-
63
- 说明文档集中在 `src/_doc/cx-ui/`(与 `src/components/cx-ui` 源码分离,便于浏览)。
64
-
65
- 各子目录通常包含 `index.jsx` / `index.tsx` 与配套 `index.less`。
66
-
67
- ## 使用约定(简要)
68
-
69
- 1. **表单**:`CxForm` 可通过 `rules`(`CxFormRulesMap`)与 `CxFormItem` 联动校验;细节见各组件源码与类型导出。
70
- 2. **弹窗**:显隐推荐 `useCxModal` 与 `CxModal` 的 `isOpen` / `onClose` 对齐;底部按钮由 `opeType` 或自定义 `actions` 控制,详见 `comp.2.cx-modal.md`。
71
- 3. **按钮**:业务优先使用 `CxButton*` 预设,保证文案、图标与禁用/加载态一致。
72
- 4. **标签**:列表状态、是/否等优先 `CxTag` + `color` + 按需 `pill`,详见 `comp.6.cx-tag.md`。
73
- 5. **空状态**:`ListPageView` / `SelectTableView` 内无数据或未选树节点时使用 `CxEmptyState`,详见 `comp.7.cx-empty-state.md`。
74
-
75
- ## 相关文档
76
-
77
- - `comp.2.cx-modal.md`~`comp.7.cx-empty-state.md`:各组件 API 与约定(见上表)
78
- - `../table-view/comp.1.table-view.md`:`table-view` 与 `CxModal` 配合的架构说明
79
-
80
- ---
81
-
82
- *最后更新:2026-04-17*
@@ -1,82 +0,0 @@
1
- # CxModal / useCxModal 参数说明
2
-
3
- > 适用范围:`src/components/cx-ui/modal`
4
- > 目标:统一弹窗布局、底部操作区与 antd `Modal` 的透传配置。
5
-
6
- ## 1. CxModal 主要 Props
7
-
8
- | Prop | 类型 | 说明 |
9
- |------|------|------|
10
- | `isOpen` | `boolean` | 是否显示(受控) |
11
- | `title` | `ReactNode` | 标题 |
12
- | `onClose` | `() => void` | 关闭/取消:传给内置取消按钮与 `Modal.onCancel` |
13
- | `children` | `ReactNode` | 主体内容 |
14
- | `opeType` | `'default' \| 'add' \| 'edit' \| 'detail' \| 'select'` | 内置 footer 模式,默认 `'default'` |
15
- | `onOk` | `() => void` | 见下文「主按钮回调」 |
16
- | `onSubmit` | `() => void` | 见下文「主按钮回调」 |
17
- | `submitting` | `boolean` | 主按钮 loading;`add`/`edit` 时同时禁用取消 |
18
- | `actions` | `ReactNode` | 传入后(**含空数组 `[]`**)完全自定义 footer,**忽略** `opeType` |
19
- | `afterClose` | antd `Modal` 同名字段 | 关闭动画结束后回调 |
20
- | `modalConfig` | 对象 | 除下面抽离项外,其余透传 antd `Modal`(如 `width`、`maskClosable` 等) |
21
-
22
- `modalConfig` 中若传入 `styles`,会与组件内默认高度/滚动样式合并;**Ant Design 6** 下容器样式键为 `container`(兼容旧代码里写在 `content` 上的写法,内部会合并到 `container`)。
23
-
24
- ## 2. opeType 与内置 Footer
25
-
26
- | `opeType` | 底部按钮 | 主按钮行为 |
27
- |-----------|----------|------------|
28
- | `default` | 取消 + 确定 | `onOk ?? onSubmit`,二者皆无时确定按钮 **disabled** |
29
- | `add` / `edit` | 取消 + 提交 | 仅 `onSubmit` |
30
- | `detail` | 仅「关闭」 | 无提交 |
31
- | `select` | 取消 + 确定 | 仅 `onOk`;未传 `onOk` 时确定 **disabled** |
32
-
33
- - **取消**:统一为 `onClose`(与 antd `onCancel` 一致)。
34
- - **`onOk` 与 `onSubmit`**:语义上「确定」偏前端确认/回显,「提交」偏表单提交语境;`default` 下可二选一或优先 `onOk`。
35
-
36
- antd `Modal` 的 `onOk` 被设为:在 `add`/`edit` 时用 `onSubmit`,在 `select` 时用 `onOk`,在 `default` 时用 `onOk ?? onSubmit`(皆无时退回 `onClose`,避免无回调时报错)。
37
-
38
- ## 3. useCxModal
39
-
40
- 用于减少重复的 `useState` 开关逻辑,与 `CxModal` 对齐:
41
-
42
- ```ts
43
- const { isOpen, open, close, modalBind } = useCxModal({ defaultOpen: false })
44
-
45
- return <CxModal {...modalBind} title="..." onClose={close}>...</CxModal>
46
- ```
47
-
48
- | 字段 | 说明 |
49
- |------|------|
50
- | `isOpen` | 当前是否打开 |
51
- | `setIsOpen` | 直接设值(少用) |
52
- | `open` / `close` | 打开、关闭 |
53
- | `modalBind` | `{ isOpen, onClose: close }`,可直接展开到 `CxModal` |
54
-
55
- 复杂关闭逻辑(如重置表单)可在业务里包装 `const handleClose = () => { ...; close() }`,再把 `handleClose` 传给 `onClose`。
56
-
57
- ## 4. 自定义 Footer
58
-
59
- 传入 `actions` 后完全使用自定义 footer(`opeType` 不参与):
60
-
61
- ```tsx
62
- <CxModal
63
- isOpen={isOpen}
64
- onClose={close}
65
- actions={[
66
- <CxButton.Cancel key="c" onClick={close} />,
67
- <CxButton key="x" onClick={doSomething}>自定义</CxButton>,
68
- ]}
69
- >
70
- ...
71
- </CxModal>
72
- ```
73
-
74
- ## 5. 相关文件
75
-
76
- - `src/components/cx-ui/modal/index.jsx`:`CxModal` 实现
77
- - `src/components/cx-ui/modal/useCxModal.ts`:`useCxModal`
78
- - `src/components/cx-ui/modal/index.less`:样式
79
-
80
- ---
81
-
82
- *最后更新:2026-04*
@@ -1,89 +0,0 @@
1
- # CxButton 与预设按钮说明
2
-
3
- > 适用范围:`src/components/cx-ui/button`
4
- > 目标:在 antd `Button` 上统一高度、尺寸语义与常用业务文案/图标,并提供纯图标按钮变体。
5
-
6
- ## 1. 基础组件 `CxButton`
7
-
8
- 在 antd `Button` 能力基础上扩展:
9
-
10
- | 能力 | 说明 |
11
- |------|------|
12
- | `buttonType` | `'antd'`(默认):走 antd 按钮;`'icon'`:渲染为原生 `<button>` + Tailwind 样式,用于纯图标 |
13
- | `height` | 数字或带单位字符串,与 `style.height` 二选一参与计算;未指定时按 `size` 给默认高度(small 32 / medium 40 / large 44) |
14
- | `size` | `large` / `medium` / `small`;**不传为 small**(表格、搜索、弹窗等默认)。列表顶栏「新增」等需 `size="medium"`。历史值 `middle` 会规范为 `medium` |
15
- | `type` | 与 antd 一致;另支持 `'danger'`、`'success'`(仅**图标模式**下作 hover 色调;antd 文字按钮请勿传 `success`) |
16
- | 其余 | 透传 antd `ButtonProps`(`loading`、`disabled`、`onClick` 等) |
17
-
18
- **图标模式**(`buttonType="icon"` 或直接使用 `CxButtonIcon`):必须提供 `icon`。悬停说明由 **`CxTooltip`** 展示:`tooltipTitle` 优先,否则回退到 `title`;二者皆无则不包 Tooltip。可选 **`tooltipTone`**:`default` | `primary` | `success` | `warning` | `danger`(控制气泡背景色)。
19
-
20
- **命名空间写法**:`CxButton.Ok`、`CxButton.Submit` 等与独立导出的 `CxButtonOk`、`CxButtonSubmit` 等价(TypeScript 官方支持的 namespace merge)。
21
-
22
- ```tsx
23
- import { CxButton, CxButtonIcon } from '@cx-ui'
24
-
25
- <CxButton type="primary" loading>自定义</CxButton>
26
- <CxButtonIcon
27
- icon={<SomeIcon />}
28
- type="danger"
29
- title="删除"
30
- tooltipTone="danger"
31
- onClick={...}
32
- />
33
- ```
34
-
35
- 源码:`CxForm` / `CxModal` 内置底部已使用 `CxButton.Cancel`、`CxButton.Ok`、`CxButton.Submit` 等。
36
-
37
- ---
38
-
39
- ## 2. 文字 + 图标预设(表格/表单常用)
40
-
41
- | 导出 | 默认 `type` / 语义 | 默认文案(i18n) | 默认图标(可 `icon={null}` 去掉) |
42
- |------|-------------------|------------------|----------------------------------|
43
- | `CxButtonAdd` | `primary` | `common.add` | `Plus` |
44
- | `CxButtonDelete` | `danger` | `common.delete` | `Trash2` |
45
- | `CxButtonOk` | `primary` | `common.ok` | 无 |
46
- | `CxButtonSubmit` | `primary`,`htmlType="submit"` | `common.submit` | 无 |
47
- | `CxButtonCancel` | 默认 **`type="text"`**(勿只写 `variant` 不写 `color`)。与同 `size` 的主按钮**外框高度一致**(见 `index.less` 中 `ant-btn-variant-text` 尺寸段) | `common.cancel` | 无 |
48
- | `CxButtonSecondary` | `default`,**高度 42**(与表单项对齐) | 无(须 `children`) | 无 |
49
- | `CxButtonEdit` | `link` | `common.edit` | `Edit` |
50
- | `CxButtonView` | `link` | `common.view` | 无 |
51
- | `CxButtonDownload` | `link` | `common.download` | 无 |
52
- | `CxButtonExport` | `link` | `common.export` | 无 |
53
- | `CxButtonSave` | `primary` | `common.save` | 无 |
54
-
55
- 带内置图标的预设支持 **`iconSize`**(默认 16px,仅在使用内置图标时生效);传入自定义 `icon` 可覆盖默认图标。
56
-
57
- ---
58
-
59
- ## 3. 纯图标预设(行内操作列等)
60
-
61
- | 导出 | 默认图标 | 按钮 hover 色调 | 默认 Tooltip 文案 | 默认 Tooltip 色调 |
62
- |------|----------|----------------|---------------------|-------------------|
63
- | `CxButtonIconEdit` | `Edit2` | primary 系 | `common.edit` | `primary` |
64
- | `CxButtonIconDelete` | `Trash2` | danger 系 | `common.delete` | `danger` |
65
- | `CxButtonIconView` | `Eye` | primary 系 | `common.view` | `default` |
66
- | `CxButtonIconEnable` | `Check` | **success** 系(与 success Tooltip 同色语义) | `common.enabled` | `success` |
67
- | `CxButtonIconDisable` | `X` | danger 系 | `common.disabled` | `danger` |
68
- | `CxButtonIconDownload` | `Download` | primary 系 | `common.download` | `primary` |
69
- | `CxButtonIconExport` | `Upload` | primary 系 | `common.export` | `primary` |
70
-
71
- 可选 **`iconSize`**(默认 **16px**,与列表操作列一致)、**`icon`** 覆盖默认图标;**`tooltipTitle`** 或 **`title`** 可覆盖默认气泡文案;**`tooltipTone`** 可覆盖默认气泡背景语义色。
72
-
73
- ---
74
-
75
- ## 4. 实践建议
76
-
77
- - 列表/弹窗主操作优先用预设,避免散落硬编码中文。
78
- - 与表单同一行次要操作(如「选图标」)可用 `CxButtonSecondary` 对齐 42px 行高。
79
- - 需要 `type="submit"` 的表单主按钮用 `CxButtonSubmit`,不要用普通 `CxButton` 忘记 `htmlType`。
80
-
81
- ## 5. 相关文件
82
-
83
- - `src/components/cx-ui/button/index.tsx`
84
- - `src/components/cx-ui/button/index.less`
85
- - `src/components/cx-ui/tooltip/index.tsx`(`CxTooltip`,图标按钮气泡)
86
-
87
- ---
88
-
89
- *最后更新:2026-04*
@@ -1,72 +0,0 @@
1
- # CxForm / CxFormItem 说明
2
-
3
- > 适用范围:`src/components/cx-ui/form`、`form-item`、`form/CxForm.tsx`
4
- > 目标:在 antd `Form` 上集中维护校验规则映射,由 `CxFormItem` 按字段名自动注入 `rules`。
5
-
6
- ## 1. CxForm
7
-
8
- 对 antd `Form` 的轻量包装:
9
-
10
- - 透传除 `children` 外的 `FormProps`(`layout`、`onFinish`、`initialValues` 等)。
11
- - 额外支持 **`rules?: CxFormRulesMap`**:`Record<string, Rule[]>`,键为字段名(或与 `CxFormItem` 的 `ruleKey` 对齐)。
12
-
13
- ```tsx
14
- import { CxForm, CxFormItem, CxInput } from '@cx-ui'
15
- import type { Rule } from 'antd/es/form'
16
-
17
- const rules = {
18
- name: [{ required: true, message: '请输入名称' }] as Rule[],
19
- }
20
-
21
- <CxForm rules={rules} layout="vertical" onFinish={onFinish}>
22
- <CxFormItem name="name" label="名称">
23
- <CxInput />
24
- </CxFormItem>
25
- </CxForm>
26
- ```
27
-
28
- 导出:
29
-
30
- - 默认导出:`CxForm`
31
- - `type CxFormRulesMap`
32
- - `CxFormContext`、`useCxFormRules`(一般业务直接用 `CxForm` + `CxFormItem` 即可)
33
-
34
- ---
35
-
36
- ## 2. CxFormItem
37
-
38
- 对 antd `Form.Item` 的扩展:
39
-
40
- | 行为 | 说明 |
41
- |------|------|
42
- | 自动 `rules` | 从上层 `CxForm` 的 `rules` 中取:优先使用本项 **`ruleKey`**,否则若 `name` 为 **字符串**则用 `name` 作为键 |
43
- | 显式覆盖 | 传入 **`rules`** 时以传入为准,不再合并 `rulesMap` |
44
- | 样式 | 根 class 会合并 `cx-form-item` |
45
-
46
- `name` 为数组(嵌套字段)时,若不传 `ruleKey`,则无法从 map 自动取规则,需手写 `rules` 或显式 `ruleKey`。
47
-
48
- ```tsx
49
- <CxFormItem name={['user', 'age']} ruleKey="age" label="年龄">
50
- <CxInputNumber.Form />
51
- </CxFormItem>
52
- ```
53
-
54
- ---
55
-
56
- ## 3. Context 与 Hook
57
-
58
- - **`CxFormContext`**:由 `CxForm` 注入 `{ rules }`。
59
- - **`useCxFormRules()`**:返回当前表单的 `rules` map;仅 `CxFormItem` 内部使用或高级场景可读。
60
-
61
- ---
62
-
63
- ## 4. 相关文件
64
-
65
- - `src/components/cx-ui/form/index.tsx`
66
- - `src/components/cx-ui/form/CxForm.tsx`
67
- - `src/components/cx-ui/form-item/index.tsx`
68
- - `src/components/cx-ui/form-item/index.less`
69
-
70
- ---
71
-
72
- *最后更新:2026-04*