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,94 +0,0 @@
1
- // 系统部门管理(system/department)相关接口(基于业务页面的简化 API)
2
- import { axiosGetRequest ,axiosPostRequest ,axiosPutRequest,axiosDeleteRequest } from '@/http/axios'
3
-
4
- // 获取部门树(tree=true)
5
- export const getDepartmentTreeAPI = () => {
6
- // return axiosGetRequest('/departments/tree', { tree: true, ...(params || {}) })
7
- return axiosGetRequest('/department/tree')
8
- }
9
- // 新增部门
10
- export const addDepartmentAPI = (params) => {
11
- return axiosPostRequest('/department/add',params)
12
- }
13
-
14
- // 编辑部门
15
- export const editDepartmentAPI = (params) => {
16
- return axiosPutRequest(`/department/edit/${params.id}`,params)
17
- }
18
- // 获取部门用户
19
- export const getDepartmentUsersAPI = (params) => {
20
- return axiosPostRequest(`/department/users/page`,params)
21
- }
22
- // 获取部门详情
23
- export const getDepartmentDetailAPI = (params) => {
24
- return axiosGetRequest(`/department/detail/${params.id}`)
25
- }
26
-
27
- // 删除部门
28
- export const deleteDepartmentAPI = (params) => {
29
- return axiosDeleteRequest(`/department/delete/${params}`)
30
- }
31
-
32
-
33
- // 绑定用户部门
34
- export const bindUserDepartmentsAPI = (params) => {
35
- return axiosPostRequest(`/department/bindUserDepartments`, params)
36
- }
37
- // 解绑用户部门
38
- export const unbindUserDepartmentsAPI = (params) => {
39
- return axiosPostRequest(`/department/unbindUserDepartments`, params)
40
- }
41
-
42
-
43
- // 更新用户部门角色
44
- export const updateUserDepartmentRoleAPI = (params) => {
45
- return axiosPostRequest(`/department/updateDepartmentUserRole`, params)
46
- }
47
-
48
-
49
-
50
-
51
- /**
52
- * 部门成员分页(列表页统一入参)
53
- *
54
- * @param {Record<string, unknown>} listParams - ListPageView 组装:{ page, size, sort, order, deptId, memberSearchQuery, ... }
55
- * 暂在此函数内映射为 REST 路径与 query;后续可与其它 tableAPI 一样只消费总参数对象。
56
- */
57
- // export const getDepartmentMembersAPI = async (listParams = {}) => {
58
- // const page = Math.max(1, Number(listParams.page) || 1)
59
- // const pageSize = Math.max(
60
- // 1,
61
- // Number(listParams.size ?? listParams.pageSize) || 10,
62
- // )
63
- // const deptId = listParams.deptId
64
- // const memberSearchQuery = listParams.memberSearchQuery
65
-
66
- // if (deptId == null || deptId === '') {
67
- // return { data: { items: [], total: 0 }, total: 0 }
68
- // }
69
-
70
- // const skip = (page - 1) * pageSize
71
- // const query = {
72
- // skip,
73
- // limit: pageSize,
74
- // }
75
- // if (memberSearchQuery != null && String(memberSearchQuery).trim() !== '') {
76
- // query.memberSearchQuery = String(memberSearchQuery).trim()
77
- // }
78
-
79
- // const res = await axiosGetRequest(`/departments/${deptId}/members`, query)
80
- // const items = res?.data?.items ?? res?.items ?? []
81
- // const total = res?.data?.total ?? res?.total ?? 0
82
- // return {
83
- // data: {
84
- // items,
85
- // total,
86
- // },
87
- // total,
88
- // }
89
- // }
90
-
91
- /** 向部门添加成员(单人;批量由调用方循环) */
92
- export const addDepartmentMemberAPI = (deptId, params) => {
93
- return axiosPostRequest(`/departments/${deptId}/members`, params)
94
- }
@@ -1,86 +0,0 @@
1
- // 系统数据字典管理(system/dict)相关接口
2
- import { axiosDeleteRequest, axiosGetRequest, axiosPostRequest, axiosPutRequest } from '@/http/axios'
3
-
4
- // ==================== 数据字典分类(Dict Category)====================
5
-
6
- // 获取数据字典分类树
7
- export const getDictCateTreeAPI = () => {
8
- return axiosPostRequest('/dict/cate/tree')
9
- }
10
-
11
- // 根据编码查询数据字典分类
12
- export const getDictCateByCodeAPI = (code) => {
13
- return axiosGetRequest(`/dict/cate/code/${code}`)
14
- }
15
-
16
- // 获取数据字典分类详情
17
- export const getDictCateDetailAPI = (id) => {
18
- return axiosGetRequest(`/dict/cate/${id}`)
19
- }
20
-
21
- // 创建数据字典分类
22
- export const addDictCateAPI = (params) => {
23
- return axiosPostRequest('/dict/cate', params)
24
- }
25
-
26
- // 修改数据字典分类
27
- export const editDictCateAPI = (params) => {
28
- return axiosPutRequest(`/dict/cate/${params.id}`, params)
29
- }
30
-
31
- // 删除数据字典分类
32
- export const deleteDictCateAPI = (ids) => {
33
- return axiosDeleteRequest(`/dict/cate/${ids}`)
34
- }
35
-
36
- // ==================== 数据字典(Dict Data)====================
37
-
38
- // 数据字典分页查询
39
- export const getDictDataPageAPI = (params) => {
40
- return axiosPostRequest('/dict/page', params)
41
- }
42
-
43
- // 数据字典详情
44
- export const getDictDataDetailAPI = (id) => {
45
- return axiosGetRequest(`/dict/details/${id}`)
46
- }
47
-
48
- // 数据字典新增
49
- export const addDictDataAPI = (params) => {
50
- return axiosPostRequest('/dict/create', params)
51
- }
52
-
53
- // 数据字典修改
54
- export const editDictDataAPI = (params) => {
55
- return axiosPutRequest(`/dict/edit/${params.id}`, params)
56
- }
57
-
58
- // 启用数据字典
59
- export const enableDictDataAPI = (id) => {
60
- return axiosPostRequest(`/dict/enable/${id}`)
61
- }
62
-
63
- // 禁用数据字典
64
- export const disableDictDataAPI = (id) => {
65
- return axiosPostRequest(`/dict/disable/${id}`)
66
- }
67
-
68
- // 数据字典删除
69
- export const deleteDictDataAPI = (ids) => {
70
- return axiosDeleteRequest(`/dict/delete/${ids}`)
71
- }
72
-
73
- // 将数据字典数据设置为默认值
74
- export const setDictDataDefaultAPI = (id) => {
75
- return axiosGetRequest(`/dict/setDefault/${id}`)
76
- }
77
-
78
- /** 按分类 code 获取该分类下字典项列表(免登录);data 为数组 */
79
- export const getDictDataAPI = (code) => {
80
- return axiosGetRequest(`/dict/${code}`)
81
- }
82
-
83
- // 按分类编码批量获取字典
84
- export const batchGetDictDataAPI = (codes) => {
85
- return axiosPostRequest(`/dict/batch`, codes)
86
- }
@@ -1,37 +0,0 @@
1
- // 菜单管理相关接口
2
- import { syncMenuTreeToI18n } from '@/utils/menuI18n'
3
- // 菜单权限页面相关接口
4
- import {
5
- axiosGetRequest,
6
- axiosPostRequest,
7
- axiosPutRequest,
8
- axiosDeleteRequest
9
- } from '@/http/axios';
10
-
11
- // 菜单新增
12
- export const addMenuAPI = (params) => {
13
- return axiosPostRequest('/menu', params);
14
- };
15
-
16
- // 菜单详情
17
- export const getMenuAPI = (params) => {
18
- return axiosGetRequest(`/menu/{id}`);
19
- };
20
-
21
- // 更新菜单
22
- export const editMenuAPI = (params) => {
23
- const response = axiosPutRequest(`/menu/${params.id}`, params);
24
- // 同步菜单到i18n
25
- syncMenuTreeToI18n(response.data);
26
- return response;
27
- };
28
-
29
- // 删除菜单
30
- export const deleteMenuAPI = (ids) => {
31
- return axiosDeleteRequest(`/menu/${ids}`);
32
- };
33
-
34
- // 获取权限tree
35
- export const getMenuTreeAPI = (params) => {
36
- return axiosGetRequest('/menu/menuTree');
37
- };
@@ -1,26 +0,0 @@
1
- // 权限管理相关接口
2
- import {axiosDeleteRequest, axiosGetRequest, axiosPostRequest, axiosPutRequest} from '@/http/axios';
3
-
4
- // 权限分页(按菜单)
5
- export const getPermissionPageAPI = (params) => axiosPostRequest('/apiManagement/page', params);
6
-
7
- // 权限列表
8
- export const getPermissionListAPI = (params) => axiosGetRequest('/apiManagement/list');
9
-
10
- // 新增权限(挂在某个菜单下)
11
- export const addPermissionAPI = (params) => axiosPostRequest('/apiManagement/add', params);
12
-
13
- // 修改权限
14
- export const editPermissionAPI = (params) => axiosPutRequest(`/apiManagement/edit/${params.id}`, params);
15
-
16
- // 启用权限
17
- export const enablePermissionAPI = (id) => axiosPutRequest(`/apiManagement/enable/${id}`);
18
-
19
- // 禁用权限
20
- export const disablePermissionAPI = (id) => axiosPutRequest(`/apiManagement/disable/${id}`);
21
-
22
- // 删除权限
23
- export const deletePermissionAPI = (id) => axiosDeleteRequest(`/apiManagement/delete/${id}`);
24
-
25
- // 权限详情
26
- export const getPermissionDetailAPI = (id) => axiosGetRequest(`/apiManagement/detail/${id}`);
@@ -1,34 +0,0 @@
1
- import {
2
- axiosDeleteRequest,
3
- axiosGetRequest,
4
- axiosPostRequest,
5
- axiosPutRequest,
6
- } from '@/http/axios'
7
-
8
- // 角色分页
9
- export const getRolePageAPI = (params) => axiosPostRequest('/role/page', params)
10
-
11
- // 新增角色
12
- export const addRoleAPI = (params) => axiosPostRequest('/role', params)
13
-
14
- // 修改角色
15
- export const editRoleAPI = (params) => axiosPutRequest(`/role/${params.id}`, params)
16
-
17
- // 删除角色
18
- export const deleteRoleAPI = (ids) => axiosDeleteRequest(`/role/${ids}`)
19
-
20
- // 角色详情
21
- export const getRoleDetailAPI = (id) => axiosGetRequest(`/role/${id}`)
22
-
23
- // 全部角色
24
- export const getRoleList = (params = {}) => axiosPostRequest('/role/list', params)
25
-
26
- // ---------------- 角色权限相关接口 -------------------
27
-
28
- // 修改角色权限-菜单、接口(请求体仅 menuId、apiId 数组;id 走路径)
29
- export const editRolePermissionAPI = (roleId, body) =>
30
- axiosPostRequest(
31
- `/role/permission/editRolePermission/${roleId}`,
32
- body ?? {},
33
- )
34
-
@@ -1,16 +0,0 @@
1
- // 统一请求路径前缀在libs/axios.js中修改
2
- import {
3
- axiosGetRequest,
4
- axiosPostRequest,
5
- axiosPutRequest,
6
- axiosDeleteRequest
7
- } from '@/http/axios';
8
-
9
- // 保存系统配置
10
- export const saveSysConfigAPI = (params) => {
11
- return axiosPostRequest(`/setting`,params);
12
- };
13
- // 获取 系统配置 根据type
14
- export const getSysConfigAPI = (params) => {
15
- return axiosGetRequest(`/setting/${params.type}`);
16
- };
@@ -1,17 +0,0 @@
1
- // 统一请求路径前缀在libs/axios.js中修改
2
- import {
3
- axiosGetRequest,
4
- axiosPostRequest,
5
- axiosPutRequest,
6
- axiosDeleteRequest
7
- } from '@/http/axios';
8
-
9
- // 获取系统日志分页
10
- export const getSysLogPageAPI = (params) => {
11
- return axiosPostRequest(`/sysLog/page`,params);
12
- };
13
-
14
- // 获取系统日志详情
15
- export const getSysLogDetailAPI = (id) => {
16
- return axiosGetRequest(`/sysLog/detail/${id}`);
17
- };
@@ -1,75 +0,0 @@
1
- // 统一请求路径前缀在libs/axios.js中修改
2
- import {
3
- axiosGetRequest,
4
- axiosPostRequest,
5
- axiosPutRequest,
6
- axiosDeleteRequest
7
- } from '@/http/axios';
8
-
9
- // 重置用户密码
10
- export const resetUserPassAPI = (id) => {
11
- return axiosPutRequest(`/user/resetPassword/${id}`);
12
- };
13
- // 修改密码
14
- export const changePasswordAPI = (params) => {
15
- return axiosPutRequest(`/user/changePassword/${params.id}`, params);
16
- };
17
-
18
- // 用户分页查询
19
- export const getUserPageAPI = (params) => {
20
- return axiosPostRequest(`/user/page`, params);
21
- };
22
-
23
- // 用户列表查询
24
- export const getUserListAPI = (params) => {
25
- return axiosGetRequest(`/user/list`);
26
- };
27
-
28
- // 删除用户
29
- export const deleteUserAPI = (params) => {
30
- return axiosDeleteRequest(`/user/${params}`);
31
- };
32
- // 用户禁用
33
- export const disableUserAPI = (params) => {
34
- return axiosPutRequest(`/user/disable/${params}`, params);
35
- };
36
- // 用户启用
37
- export const enableUserAPI = (params) => {
38
- return axiosPutRequest(`/user/enable/${params}`, params);
39
- };
40
- // 用户详情
41
- export const getUserDetailAPI = (id) => {
42
- return axiosGetRequest(`/user/${id}`);
43
- };
44
-
45
- // 当前登录用户详情
46
- export const getUserInfoAPI = () => {
47
- return axiosGetRequest(`/user/getCurrentUserInfo`);
48
- };
49
- // 编辑用户
50
- export const editUser = (params) => {
51
- return axiosPutRequest(`/user/${params.id}`, params);
52
- };
53
- // 新增用户
54
- export const addUser = (params) => {
55
- return axiosPostRequest(`/user`, params);
56
- };
57
- // 用户个人中心
58
- export const updateUserPersonalCenterAPI = (params) => {
59
- return axiosPutRequest(`/user/personalCenter/${params.id}`, params);
60
- };
61
-
62
- // 分配角色
63
- export const assignRolesAPI = (params) => {
64
- return axiosPostRequest(`/user/role/bindRoles`, params);
65
- };
66
-
67
- // 用户当前语言
68
- export const setUserCurrentLanguageAPI = (params) => {
69
- return axiosPutRequest(`/user/current/language`, params);
70
- };
71
-
72
- // 用户当前主题
73
- export const setUserCurrentThemeAPI = (params) => {
74
- return axiosPutRequest(`/user/current/theme`, params);
75
- };
package/src/api/upload.js DELETED
@@ -1,39 +0,0 @@
1
- // 统一请求路径前缀在libs/axios.js中修改
2
- import {
3
- API_BASE_URL,
4
- axiosDeleteRequest,
5
- axiosGetBlob,
6
- axiosGetRequest,
7
- getDownload,
8
- axiosPostUploadRequest
9
- } from '@/http/axios';
10
- // ${baseURL}
11
-
12
- export const uploadFileUrl = `${API_BASE_URL}/file`;
13
-
14
- // 上传文件 上传文件 图片组件都用
15
- export const uploadFileAPI = (params) => {
16
- const formData = new FormData()
17
- formData.append('multipartFile', params.file)
18
- formData.append('isPublic', params.isPublic || false)
19
- return axiosPostUploadRequest(`/file`, formData);
20
- };
21
-
22
- export const deleteFileAPI = (id) => {
23
- return axiosDeleteRequest(`/file/${id}`);
24
- };
25
-
26
- // 下载文件
27
- export const downloadFileAPI = (params) => {
28
- return getDownload(`/file/download/${params}`);
29
- };
30
-
31
- // 获取文件详情
32
- export const getFileInfoAPI = (ids) => {
33
- return axiosGetRequest(`/file/${ids}`);
34
- };
35
-
36
- // 获取图片
37
- export const getImgAPI = (params) => {
38
- return params.isPublic ? axiosGetBlob(`/file/image/public?address=${params.url}`) : axiosGetBlob(`/file/image?address=${params.url}`);
39
- };
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
@@ -1,77 +0,0 @@
1
- import React, { useEffect, useState } from 'react';
2
- import clsx from 'clsx';
3
- import { useAuth } from '@/contexts/AuthContext';
4
- import { resolveAvatarUrl } from '@/utils/url';
5
-
6
- export type CurrentUserAvatarProps = {
7
- alt?: string;
8
- /** 同时作用于图片与占位容器(尺寸、ring 等) */
9
- className?: string;
10
- /** 无图占位:`brand` 同顶栏蓝紫渐变,`slate` 同会话侧灰紫渐变 */
11
- fallbackTone?: 'brand' | 'slate';
12
- };
13
-
14
- function resolveDisplaySrc(raw: string): string {
15
- const t = raw.trim();
16
- if (!t) return '';
17
- return resolveAvatarUrl(t) ?? t;
18
- }
19
-
20
- /** 当前登录用户头像:有图显示圆图,失败/无图显示首字母占位 */
21
- export function CurrentUserAvatar({
22
- alt,
23
- className,
24
- fallbackTone = 'brand',
25
- }: CurrentUserAvatarProps) {
26
- const { user } = useAuth();
27
-
28
- const raw =
29
- (user?.avatar_url && String(user.avatar_url).trim()) ||
30
- (user?.avatar && String(user.avatar).trim()) ||
31
- '';
32
- const label =
33
- (user?.name && String(user.name).trim()) ||
34
- (user?.display_name && String(user.display_name).trim()) ||
35
- (user?.email && String(user.email).trim()) ||
36
- '?';
37
-
38
- const initial = (label.trim() || '?').slice(0, 1).toUpperCase();
39
- const displaySrc = raw ? resolveDisplaySrc(raw) : '';
40
- const [imgOk, setImgOk] = useState(() => Boolean(displaySrc));
41
-
42
- useEffect(() => {
43
- setImgOk(Boolean(displaySrc));
44
- }, [displaySrc]);
45
-
46
- const toneCls =
47
- fallbackTone === 'slate'
48
- ? 'bg-gradient-to-br from-slate-500 to-slate-600 text-xs font-semibold text-white'
49
- : 'bg-gradient-to-br from-blue-500 to-purple-600 text-sm font-semibold text-white';
50
-
51
- if (displaySrc && imgOk) {
52
- return (
53
- <img
54
- src={displaySrc}
55
- alt={alt ?? label}
56
- className={clsx(
57
- 'rounded-full object-cover',
58
- className ?? 'h-8 w-8 shrink-0',
59
- )}
60
- onError={() => setImgOk(false)}
61
- />
62
- );
63
- }
64
-
65
- return (
66
- <div
67
- className={clsx(
68
- 'flex items-center justify-center rounded-full',
69
- className ?? 'h-8 w-8 shrink-0',
70
- toneCls,
71
- )}
72
- aria-hidden={alt === '' || alt == null}>
73
- {initial}
74
- </div>
75
- );
76
- }
77
-
@@ -1,149 +0,0 @@
1
- import clsx from 'clsx'
2
- import { format } from 'sql-formatter'
3
- import { useMemo, useSyncExternalStore } from 'react'
4
- import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter'
5
- import bash from 'react-syntax-highlighter/dist/esm/languages/prism/bash'
6
- import css from 'react-syntax-highlighter/dist/esm/languages/prism/css'
7
- import javascript from 'react-syntax-highlighter/dist/esm/languages/prism/javascript'
8
- import json from 'react-syntax-highlighter/dist/esm/languages/prism/json'
9
- import markdown from 'react-syntax-highlighter/dist/esm/languages/prism/markdown'
10
- import python from 'react-syntax-highlighter/dist/esm/languages/prism/python'
11
- import sql from 'react-syntax-highlighter/dist/esm/languages/prism/sql'
12
- import tsx from 'react-syntax-highlighter/dist/esm/languages/prism/tsx'
13
- import typescript from 'react-syntax-highlighter/dist/esm/languages/prism/typescript'
14
- import yaml from 'react-syntax-highlighter/dist/esm/languages/prism/yaml'
15
- import oneLight from 'react-syntax-highlighter/dist/esm/styles/prism/one-light'
16
- import vscDarkPlus from 'react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus'
17
-
18
- SyntaxHighlighter.registerLanguage('sql', sql)
19
- SyntaxHighlighter.registerLanguage('javascript', javascript)
20
- SyntaxHighlighter.registerLanguage('typescript', typescript)
21
- SyntaxHighlighter.registerLanguage('tsx', tsx)
22
- SyntaxHighlighter.registerLanguage('json', json)
23
- SyntaxHighlighter.registerLanguage('bash', bash)
24
- SyntaxHighlighter.registerLanguage('yaml', yaml)
25
- SyntaxHighlighter.registerLanguage('markdown', markdown)
26
- SyntaxHighlighter.registerLanguage('css', css)
27
- SyntaxHighlighter.registerLanguage('python', python)
28
-
29
- export type CodeViewLang = string
30
-
31
- export type CodeViewProps = {
32
- /** 代码正文 */
33
- children: string
34
- /** 语言标识,与 Prism 一致;常用如 sql、typescript、tsx、json、bash、yaml、markdown */
35
- lang?: CodeViewLang
36
- /** 是否对 SQL 做格式化(仅 lang 为 sql 时生效) */
37
- format?: boolean
38
- className?: string
39
- /** 代码区最大高度,超出滚动 */
40
- maxHeight?: number
41
- }
42
-
43
- function subscribeHtmlClass(onStoreChange: () => void) {
44
- const el = document.documentElement
45
- const obs = new MutationObserver(onStoreChange)
46
- obs.observe(el, { attributes: true, attributeFilter: ['class'] })
47
- return () => obs.disconnect()
48
- }
49
-
50
- function getHtmlDarkSnapshot() {
51
- return document.documentElement.classList.contains('dark')
52
- }
53
-
54
- function getServerHtmlDarkSnapshot() {
55
- return false
56
- }
57
-
58
- function formatSqlIfNeeded(code: string, lang: string, doFormat: boolean): string {
59
- const raw = code ?? ''
60
- if (!doFormat || (lang || '').toLowerCase() !== 'sql' || !raw.trim()) return raw
61
- try {
62
- return format(raw.trim(), { language: 'postgresql', tabWidth: 2 })
63
- } catch {
64
- try {
65
- return format(raw.trim(), { language: 'sql', tabWidth: 2 })
66
- } catch {
67
- return raw
68
- }
69
- }
70
- }
71
-
72
- function toPrismLanguage(lang: string | undefined): string {
73
- const l = (lang || 'tsx').toLowerCase()
74
- const map: Record<string, string> = {
75
- js: 'javascript',
76
- ts: 'typescript',
77
- md: 'markdown',
78
- yml: 'yaml',
79
- sh: 'bash',
80
- shell: 'bash',
81
- zsh: 'bash',
82
- py: 'python',
83
- }
84
- const resolved = map[l] ?? l
85
- const supported = new Set([
86
- 'sql',
87
- 'javascript',
88
- 'typescript',
89
- 'tsx',
90
- 'json',
91
- 'bash',
92
- 'yaml',
93
- 'markdown',
94
- 'css',
95
- 'python',
96
- ])
97
- return supported.has(resolved) ? resolved : 'tsx'
98
- }
99
-
100
- function CodeViewImpl({ children, lang = 'tsx', format: doFormat = true, className, maxHeight = 280 }: CodeViewProps) {
101
- const isDark = useSyncExternalStore(subscribeHtmlClass, getHtmlDarkSnapshot, getServerHtmlDarkSnapshot)
102
- const prismLang = useMemo(() => toPrismLanguage(lang), [lang])
103
- const display = useMemo(
104
- () => formatSqlIfNeeded(String(children ?? ''), prismLang, doFormat),
105
- [children, prismLang, doFormat],
106
- )
107
- const style = isDark ? vscDarkPlus : oneLight
108
-
109
- return (
110
- <div
111
- className={clsx(
112
- 'min-w-0 overflow-auto rounded-md border border-gray-200/90 px-4 py-3.5',
113
- 'bg-slate-50 dark:bg-slate-950',
114
- /* Prism 会给根节点/code 写 background,与外层底撞色;强制透明以只保留一层底色 */
115
- '[&>div]:!bg-transparent [&_code]:!bg-transparent',
116
- className,
117
- )}
118
- style={{ maxHeight }}
119
- >
120
- <SyntaxHighlighter
121
- language={prismLang}
122
- style={style}
123
- PreTag="div"
124
- CodeTag="div"
125
- showLineNumbers={false}
126
- wrapLines
127
- wrapLongLines
128
- customStyle={{
129
- margin: 0,
130
- padding: 0,
131
- maxHeight: 'none',
132
- overflow: 'visible',
133
- fontSize: 12,
134
- lineHeight: 1.55,
135
- borderRadius: 0,
136
- background: 'transparent',
137
- }}
138
- >
139
- {display || ' '}
140
- </SyntaxHighlighter>
141
- </div>
142
- )
143
- }
144
-
145
- export const CodeView = Object.assign(CodeViewImpl, {
146
- SQL: (props: Omit<CodeViewProps, 'lang'>) => <CodeViewImpl lang="sql" {...props} />,
147
- })
148
-
149
- export default CodeView