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
@@ -1,324 +0,0 @@
1
- // i18n 中文:locales/zh/common.ts(common.selectTable · 部门树 + 多选用户)
2
-
3
- import {
4
- forwardRef,
5
- useCallback,
6
- useImperativeHandle,
7
- useMemo,
8
- useRef,
9
- useState,
10
- type ReactNode,
11
- } from 'react'
12
- import { useTranslation } from 'react-i18next'
13
-
14
- import { TreeSelectTableMulti } from '@/components/table-view'
15
- import { useToast } from '@/contexts/ToastContext'
16
- import { CxModal, useCxModal } from '@cx-ui'
17
-
18
- import {
19
- pickUserId,
20
- useDepUserSelectPageConfig,
21
- type DepUserSelectUser,
22
- } from './dep-user-select'
23
-
24
- export { pickUserId } from './dep-user-select'
25
- export type { DepUserSelectUser } from './dep-user-select'
26
-
27
- export type DepUserSelectMultiKind = 'user' | 'dept'
28
-
29
- export type DepUserSelectMultiPicked = {
30
- kind: DepUserSelectMultiKind
31
- id: string | number
32
- name?: string
33
- email?: string
34
- }
35
-
36
- /** open(...) 入参;context 由业务传入,确认时原样回传 onOk */
37
- export type DepUserSelectMultiOpenPayload = {
38
- title?: string
39
- /** 是否允许勾选部门 */
40
- deptSelectable?: boolean
41
- context?: Record<string, any>
42
- }
43
-
44
- export type DepUserSelectMultiColumn = {
45
- title?: ReactNode
46
- key?: string
47
- width?: number
48
- render?: (value: unknown, row: DepUserSelectUser) => ReactNode
49
- }
50
-
51
- type DepUserSelectMultiModalProps = {
52
- onAfterOk?: () => void | Promise<void>
53
- onOk?: (data: {
54
- users: DepUserSelectUser[]
55
- deptIds: (string | number)[]
56
- picked: DepUserSelectMultiPicked[]
57
- payload?: DepUserSelectMultiOpenPayload
58
- }) => boolean | void | Promise<boolean | void>
59
- /** 用户列表列;不传则默认成员头像列 */
60
- userColumns?: DepUserSelectMultiColumn[]
61
- /** 已选面板列;不传则与 userColumns 相同 */
62
- selectedPanelColumns?: DepUserSelectMultiColumn[]
63
- /** 已选用户变更(便于业务侧同步扩展状态,如权限勾选) */
64
- onUsersChange?: (users: DepUserSelectUser[]) => void
65
- /**
66
- * 确认前校验;返回 i18n 键则 toast 并阻止提交,返回 null 表示通过。
67
- * 不传则:不可选部门时至少一名用户;可选部门时至少一名用户或一个部门。
68
- */
69
- onValidate?: (data: {
70
- users: DepUserSelectUser[]
71
- deptIds: (string | number)[]
72
- payload?: DepUserSelectMultiOpenPayload
73
- }) => string | null
74
- opeType?: string
75
- rootClassName?: string
76
- width?: number
77
- }
78
-
79
- /** 默认成员列(头像 + 姓名 + 邮箱) */
80
- export function useDefaultDepUserMemberColumns(): DepUserSelectMultiColumn[] {
81
- return useMemo(
82
- () => [
83
- {
84
- title: 'system.department.fields.member',
85
- key: 'member',
86
- render: (_: unknown, data: DepUserSelectUser) => {
87
- const name = data.display_name ?? data.userName ?? data.name
88
- const mail = data.email ?? data.userEmail
89
- return (
90
- <div className="flex items-center gap-3">
91
- <div className="flex h-8 w-8 items-center justify-center rounded-full bg-blue-100 text-sm font-bold uppercase text-blue-600 dark:bg-blue-900/30 dark:text-blue-400">
92
- {name?.[0] || mail?.[0] || '?'}
93
- </div>
94
- <div>
95
- <div className="text-sm font-medium text-gray-900 dark:text-white">
96
- {name ?? mail ?? '—'}
97
- </div>
98
- <div className="text-xs text-gray-500 dark:text-gray-400">{mail ?? ''}</div>
99
- </div>
100
- </div>
101
- )
102
- },
103
- },
104
- ],
105
- [],
106
- )
107
- }
108
-
109
- const DepUserSelectMultiModal = forwardRef(function DepUserSelectMultiModal(
110
- props: DepUserSelectMultiModalProps,
111
- ref,
112
- ) {
113
- const {
114
- onAfterOk,
115
- onOk,
116
- userColumns: userColumnsProp,
117
- selectedPanelColumns: selectedPanelColumnsProp,
118
- onUsersChange,
119
- onValidate,
120
- opeType = 'select',
121
- rootClassName = 'cx-modal-dep-user-select-multi',
122
- width = 1340,
123
- } = props
124
- const { t } = useTranslation()
125
- const { showToast } = useToast()
126
-
127
- const defaultUserColumns = useDefaultDepUserMemberColumns()
128
- const userColumns = userColumnsProp ?? defaultUserColumns
129
- const selectedPanelColumns = selectedPanelColumnsProp ?? userColumns
130
-
131
- const [payload, setPayload] = useState<DepUserSelectMultiOpenPayload | undefined>(undefined)
132
- const payloadRef = useRef<DepUserSelectMultiOpenPayload | undefined>(undefined)
133
- const [checkedDeptKeys, setCheckedDeptKeys] = useState<Set<string>>(() => new Set())
134
- const [selectedUsers, setSelectedUsers] = useState<DepUserSelectUser[]>([])
135
- const [submitting, setSubmitting] = useState(false)
136
-
137
- const modal = useCxModal({
138
- onOpen: (p) => {
139
- const nextPayload = ((p as any) ?? {}) as DepUserSelectMultiOpenPayload
140
- payloadRef.current = nextPayload
141
- setPayload(nextPayload)
142
- setCheckedDeptKeys(new Set())
143
- setSelectedUsers([])
144
- onUsersChange?.([])
145
- },
146
- })
147
-
148
- const { isOpen, close } = modal
149
- const effectivePayload = payload ?? payloadRef.current
150
- const deptSelectable = effectivePayload?.deptSelectable === true
151
- const title =
152
- effectivePayload?.title ?? t('common.selectTable.single_tree_default_title') // 选择用户
153
-
154
- useImperativeHandle(
155
- ref,
156
- () => ({
157
- open: modal.open,
158
- close,
159
- }),
160
- [modal.open, close],
161
- )
162
-
163
- const pageConfigWithTree = useDepUserSelectPageConfig()
164
-
165
- const handleDeptCheck = useCallback((key: any, checked: boolean) => {
166
- const k = String(key)
167
- setCheckedDeptKeys((prev) => {
168
- const next = new Set(prev)
169
- if (checked) next.add(k)
170
- else next.delete(k)
171
- return next
172
- })
173
- }, [])
174
-
175
- const handleUsersChange = useCallback(
176
- (next: DepUserSelectUser[]) => {
177
- setSelectedUsers(next)
178
- onUsersChange?.(next)
179
- },
180
- [onUsersChange],
181
- )
182
-
183
- const buildPicked = useCallback(
184
- (users: DepUserSelectUser[], deptIds: (string | number)[]): DepUserSelectMultiPicked[] => {
185
- return [
186
- ...deptIds.map((id) => ({ kind: 'dept' as const, id })),
187
- ...users
188
- .map((u) => {
189
- const id = pickUserId(u)
190
- if (id == null) return null
191
- return {
192
- kind: 'user' as const,
193
- id,
194
- name: u?.display_name ?? u?.name ?? u?.userName,
195
- email: u?.email ?? u?.userEmail,
196
- }
197
- })
198
- .filter(Boolean),
199
- ] as DepUserSelectMultiPicked[]
200
- },
201
- [],
202
- )
203
-
204
- const handleConfirm = useCallback(async () => {
205
- const users = selectedUsers
206
- const deptIds = Array.from(checkedDeptKeys)
207
- const currentPayload = payload ?? payloadRef.current
208
-
209
- const validateKey =
210
- onValidate?.({ users, deptIds, payload: currentPayload }) ??
211
- (() => {
212
- const hasUser = users.length > 0
213
- const hasDept = deptIds.length > 0
214
- if (deptSelectable) {
215
- if (!hasUser && !hasDept) return 'common.selectTable.multi_tree_pick_user_or_dept_required'
216
- } else if (!hasUser) {
217
- return 'common.selectTable.multi_tree_pick_user_required'
218
- }
219
- return null
220
- })()
221
-
222
- if (validateKey) {
223
- showToast(t(validateKey), 'error')
224
- return
225
- }
226
-
227
- setSubmitting(true)
228
- try {
229
- const picked = buildPicked(users, deptIds)
230
- const result = await onOk?.({
231
- users,
232
- deptIds,
233
- picked,
234
- payload: currentPayload,
235
- })
236
- if (result === false) return
237
- await onAfterOk?.()
238
- close()
239
- } catch {
240
- // 业务 onOk 抛错:不关闭
241
- } finally {
242
- setSubmitting(false)
243
- }
244
- }, [
245
- buildPicked,
246
- checkedDeptKeys,
247
- close,
248
- deptSelectable,
249
- onAfterOk,
250
- onOk,
251
- onValidate,
252
- payload,
253
- selectedUsers,
254
- showToast,
255
- t,
256
- ])
257
-
258
- const modalBody = isOpen ? (
259
- <TreeSelectTableMulti.Horizontal
260
- key={deptSelectable ? 'dept' : 'user'}
261
- leftWidth="45%"
262
- className="min-h-0 flex-1"
263
- columns={userColumns as any}
264
- pageConfig={pageConfigWithTree}
265
- rowKey="userId"
266
- treeCheckable={deptSelectable}
267
- treeCheckedKeys={checkedDeptKeys}
268
- onTreeCheck={(key, checked) => handleDeptCheck(key, checked)}
269
- treeRenderLabel={(node: any) => node?.name ?? node?.title ?? '-'}
270
- selectedPanelTitleKey="selectTable.selected_panel"
271
- selectedPanelColumns={selectedPanelColumns as any}
272
- value={selectedUsers}
273
- onChange={(next) => handleUsersChange(Array.isArray(next) ? next : [])}
274
- />
275
- ) : null
276
-
277
- const modalConfig = {
278
- width,
279
- rootClassName,
280
- styles: {
281
- container: { height: '95vh', maxHeight: '95vh' },
282
- body: {
283
- display: 'flex',
284
- flexDirection: 'column',
285
- flex: '1 1 0%',
286
- minHeight: 0,
287
- overflowY: 'hidden',
288
- overflowX: 'hidden',
289
- padding: 0,
290
- maxHeight: 'none',
291
- },
292
- },
293
- }
294
-
295
- if (opeType === 'add') {
296
- return (
297
- <CxModal
298
- title={title}
299
- isOpen={isOpen}
300
- onClose={close}
301
- opeType="add"
302
- onSubmit={handleConfirm}
303
- submitting={submitting}
304
- modalConfig={modalConfig}>
305
- {modalBody}
306
- </CxModal>
307
- )
308
- }
309
-
310
- return (
311
- <CxModal
312
- title={title}
313
- isOpen={isOpen}
314
- onClose={close}
315
- opeType="select"
316
- onOk={handleConfirm}
317
- submitting={submitting}
318
- modalConfig={modalConfig}>
319
- {modalBody}
320
- </CxModal>
321
- )
322
- })
323
-
324
- export default DepUserSelectMultiModal
@@ -1,249 +0,0 @@
1
- // i18n 中文:locales/zh/common.ts(common.selectTable · 部门树 + 单选用户)
2
-
3
- import {
4
- forwardRef,
5
- useCallback,
6
- useImperativeHandle,
7
- useMemo,
8
- useRef,
9
- useState,
10
- } from 'react'
11
- import { useTranslation } from 'react-i18next'
12
-
13
- import { getDepartmentTreeAPI, getDepartmentUsersAPI } from '@/api/system/department'
14
- import { TreeSelectTableSingle, createSelectTableConfig } from '@/components/table-view'
15
- import { useToast } from '@/contexts/ToastContext'
16
- import { CxModal, useCxModal } from '@cx-ui'
17
-
18
- export type DepUserSelectUser = {
19
- id?: string | number
20
- user_id?: string | number
21
- userId?: string | number
22
- name?: string
23
- userName?: string
24
- display_name?: string
25
- email?: string
26
- userEmail?: string
27
- status?: number
28
- }
29
-
30
- /** open(...) 入参;context 由业务传入,确认时原样回传 onOk */
31
- export type DepUserSelectOpenPayload = {
32
- title?: string
33
- excludeUserId?: string | number | null
34
- context?: Record<string, any>
35
- }
36
-
37
- type DepUserSelectModalProps = {
38
- onAfterAdd?: () => void | Promise<void>
39
- onOk?: (data: {
40
- user: DepUserSelectUser
41
- userId: string
42
- payload: DepUserSelectOpenPayload | undefined
43
- }) => boolean | void | Promise<boolean | void>
44
- }
45
-
46
- export function pickUserId(u: DepUserSelectUser | Record<string, any>): string | number | undefined {
47
- return (
48
- (u as any)?.id ??
49
- (u as any)?.userId ??
50
- (u as any)?.user_id
51
- )
52
- }
53
-
54
- const excludeUserIdRef: { current: string | number | null | undefined } = {
55
- current: undefined,
56
- }
57
-
58
- /** 与部门管理一致:顶级部门不传 departmentId;子部门才带部门条件查人 */
59
- const omitDepartmentIdRef: { current: boolean } = { current: true }
60
-
61
- function isTopLevelDepartmentNode(node: Record<string, any> | null | undefined): boolean {
62
- if (node == null) return true
63
- const p = node.parentId ?? node.parent_id
64
- return p == null || p === '' || p === 0
65
- }
66
-
67
- /** 顶级不传 departmentId,其余与部门成员列表同一接口、原样返回 */
68
- async function departmentUsersTableAPI(params: Record<string, any>) {
69
- const req = { ...params }
70
- if (omitDepartmentIdRef.current) delete req.departmentId
71
- return getDepartmentUsersAPI(req)
72
- }
73
-
74
- export const useDepUserSelectPageConfig = createSelectTableConfig({
75
- tableAPI: departmentUsersTableAPI,
76
- treeAPI: getDepartmentTreeAPI,
77
- tree: {
78
- title: 'system.department.title',
79
- fieldNames: {
80
- id: 'id',
81
- label: 'name',
82
- children: 'children',
83
- },
84
- searchField: 'departmentId',
85
- autoSearch: true,
86
- defaultSelectRoot: true,
87
- unselectText: 'common.unselect_tree',
88
- onSelect: (node: any) => {
89
- omitDepartmentIdRef.current = isTopLevelDepartmentNode(node)
90
- },
91
- },
92
- searchFields: [
93
- {
94
- prop: 'keyword',
95
- label: 'system.department.search.member_placeholder', // 成员关键字
96
- placeholder: 'system.department.search.member_placeholder',
97
- },
98
- ],
99
- table: {
100
- showPagination: true,
101
- scrollX: false,
102
- },
103
- pagination: { page: 1, pageSize: 10, total: 0 },
104
- pageInfo: {},
105
- listQuery: { sort: 'createTime', order: 'desc' },
106
- initialSearchFormData: {},
107
- })
108
-
109
- type DepUserSelectPaneProps = {
110
- value: DepUserSelectUser | null
111
- onChange: (next: DepUserSelectUser | null) => void
112
- }
113
-
114
- function DepUserSelectPane(props: DepUserSelectPaneProps) {
115
- const { value, onChange } = props
116
- const pageConfigWithTree = useDepUserSelectPageConfig()
117
-
118
- const userColumns = useMemo(
119
- () => [
120
- {
121
- title: 'system.department.fields.member',
122
- key: 'member',
123
- render: (_: unknown, data: DepUserSelectUser) => {
124
- const name = data.display_name ?? data.userName ?? data.name
125
- const mail = data.email ?? data.userEmail
126
- return (
127
- <div className="flex items-center gap-3">
128
- <div className="flex h-8 w-8 items-center justify-center rounded-full bg-blue-100 text-sm font-bold uppercase text-blue-600 dark:bg-blue-900/30 dark:text-blue-400">
129
- {name?.[0] || mail?.[0] || '?'}
130
- </div>
131
- <div>
132
- <div className="text-sm font-medium text-gray-900 dark:text-white">
133
- {name ?? mail ?? '—'}
134
- </div>
135
- <div className="text-xs text-gray-500 dark:text-gray-400">{mail ?? ''}</div>
136
- </div>
137
- </div>
138
- )
139
- },
140
- },
141
- ],
142
- [],
143
- )
144
-
145
- return (
146
- <TreeSelectTableSingle
147
- className="min-h-0 flex-1"
148
- columns={userColumns as any}
149
- pageConfig={pageConfigWithTree}
150
- rowKey="userId"
151
- value={value}
152
- onChange={(next) => onChange(next && typeof next === 'object' ? next : null)}
153
- />
154
- )
155
- }
156
-
157
- const DepUserSelectModal = forwardRef(function DepUserSelectModal(
158
- props: DepUserSelectModalProps,
159
- ref,
160
- ) {
161
- const { onAfterAdd, onOk } = props
162
- const { t } = useTranslation()
163
- const { showToast } = useToast()
164
- const [selectedUser, setSelectedUser] = useState<DepUserSelectUser | null>(null)
165
- const [submitting, setSubmitting] = useState(false)
166
- const payloadRef = useRef<DepUserSelectOpenPayload | undefined>(undefined)
167
- const [title, setTitle] = useState<string>('')
168
-
169
- const modal = useCxModal({
170
- onOpen: (p) => {
171
- const next = ((p as any) ?? {}) as DepUserSelectOpenPayload
172
- payloadRef.current = next
173
- excludeUserIdRef.current = next?.excludeUserId
174
- omitDepartmentIdRef.current = true // 树重挂载前默认按「不传部门」直到 onSelect 刷新
175
- setSelectedUser(null)
176
- setTitle(next?.title ?? t('common.selectTable.single_tree_default_title')) // 选择用户
177
- },
178
- })
179
-
180
- const { isOpen, close } = modal
181
-
182
- useImperativeHandle(
183
- ref,
184
- () => ({
185
- open: modal.open,
186
- close,
187
- }),
188
- [modal.open, close],
189
- )
190
-
191
- const handleConfirm = useCallback(async () => {
192
- const id = selectedUser ? pickUserId(selectedUser) : undefined
193
- if (id == null || String(id).trim() === '') {
194
- showToast(t('common.selectTable.single_tree_pick_required'), 'error') // 请先选择一名用户
195
- return
196
- }
197
- const ex = excludeUserIdRef.current
198
- if (ex != null && String(id) === String(ex)) {
199
- showToast(t('common.selectTable.single_tree_pick_excluded'), 'error') // 该用户不可选
200
- return
201
- }
202
- setSubmitting(true)
203
- try {
204
- const result = await onOk?.({
205
- user: selectedUser as DepUserSelectUser,
206
- userId: String(id),
207
- payload: payloadRef.current,
208
- })
209
- if (result === false) return
210
- await onAfterAdd?.()
211
- close()
212
- } catch {
213
- // 业务 onOk 抛错:不关闭
214
- } finally {
215
- setSubmitting(false)
216
- }
217
- }, [close, onAfterAdd, onOk, selectedUser, showToast, t])
218
-
219
- return (
220
- <CxModal
221
- title={title}
222
- isOpen={isOpen}
223
- onClose={close}
224
- opeType="select"
225
- onOk={handleConfirm}
226
- submitting={submitting}
227
- modalConfig={{
228
- width: 960,
229
- rootClassName: 'cx-modal-dep-user-select',
230
- styles: {
231
- container: { height: '88vh', maxHeight: '88vh' },
232
- body: {
233
- display: 'flex',
234
- flexDirection: 'column',
235
- flex: '1 1 0%',
236
- minHeight: 0,
237
- overflowY: 'hidden',
238
- overflowX: 'hidden',
239
- padding: 0,
240
- maxHeight: 'none',
241
- },
242
- },
243
- }}>
244
- {isOpen ? <DepUserSelectPane value={selectedUser} onChange={setSelectedUser} /> : null}
245
- </CxModal>
246
- )
247
- })
248
-
249
- export default DepUserSelectModal