cx-chat 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/dist/cx-chat.css +1 -0
  2. package/dist/cx-chat.es.js +97326 -0
  3. package/dist/cx-chat.umd.js +734 -0
  4. package/package.json +21 -1
  5. package/.cursor/rules/i18n-cn-gloss-comments.mdc +0 -31
  6. package/.cursor/rules/list-page-view-pageconfig.mdc +0 -32
  7. package/.cursor/rules/no-over-defensive-programming.mdc +0 -90
  8. package/.cursor/rules/requirement-description-for-agent.mdc +0 -33
  9. package/.cursor/rules/use-showToast-not-antd-message.mdc +0 -28
  10. package/.docker/Dockerfile +0 -7
  11. package/.env +0 -9
  12. package/.env.development +0 -7
  13. package/.env.production +0 -7
  14. package/.gitlab-ci/docker-build.yaml +0 -28
  15. package/.gitlab-ci/k8s-deploy-dev-master.yaml +0 -42
  16. package/.gitlab-ci/npm-build.yaml +0 -17
  17. package/.gitlab-ci.yml +0 -8
  18. package/.k8s/0-namespace.yaml +0 -6
  19. package/.k8s/1-configmap-web.yaml +0 -7
  20. package/.k8s/1-nginx-conf-dev.yaml +0 -110
  21. package/.k8s/2-deployment.yaml +0 -27
  22. package/.k8s/3-service.yaml +0 -16
  23. package/.k8s/4-ingress-dev.yaml +0 -30
  24. package/.lingma/rules/use-showToast-not-antd-message.md +0 -34
  25. package/.nginx/nginx.conf +0 -52
  26. package/.prettierrc +0 -9
  27. package/eslint.config.js +0 -32
  28. package/index.html +0 -13
  29. package/postcss.config.js +0 -6
  30. package/src/App.tsx +0 -96
  31. package/src/_doc/0.docs-overview.md +0 -28
  32. package/src/_doc/cx-ui/0.docs-overview.md +0 -30
  33. package/src/_doc/cx-ui/comp.1.cx-ui-overview.md +0 -82
  34. package/src/_doc/cx-ui/comp.2.cx-modal.md +0 -82
  35. package/src/_doc/cx-ui/comp.3.cx-button.md +0 -89
  36. package/src/_doc/cx-ui/comp.4.cx-form.md +0 -72
  37. package/src/_doc/cx-ui/comp.5.cx-fields.md +0 -76
  38. package/src/_doc/cx-ui/comp.6.cx-tag.md +0 -57
  39. package/src/_doc/cx-ui/comp.7.cx-empty-state.md +0 -29
  40. package/src/_doc/meta/0.docs-overview.md +0 -24
  41. package/src/_doc/meta/comp.1.enum-runtime.md +0 -33
  42. package/src/_doc/meta/comp.2.dict-runtime.md +0 -39
  43. package/src/_doc/router/0.docs-overview.md +0 -14
  44. package/src/_doc/router/guide.1.menu-component-config.md +0 -181
  45. package/src/_doc/router/guide.2.router-auto-registration.md +0 -114
  46. package/src/_doc/table-view/0.docs-overview.md +0 -30
  47. package/src/_doc/table-view/comp.1.table-view.md +0 -542
  48. package/src/_doc/table-view/props.1.create-table-view-config.md +0 -193
  49. package/src/_doc/table-view/props.2.table-view-search-fields.md +0 -106
  50. package/src/api/_mock/README.md +0 -340
  51. package/src/api/_mock/api.ts +0 -1642
  52. package/src/api/_mock/bundle-shim.ts +0 -16
  53. package/src/api/_mock/handler-shim.ts +0 -6
  54. package/src/api/_mock/handler.ts +0 -458
  55. package/src/api/_mock/index.ts +0 -711
  56. package/src/api/_mock/interceptor.ts +0 -15
  57. package/src/api/_mock/mod.ts +0 -12
  58. package/src/api/_mock/utils.ts +0 -65
  59. package/src/api/base/memory.js +0 -24
  60. package/src/api/chat.js +0 -210
  61. package/src/api/common/auth.js +0 -70
  62. package/src/api/menus/business-rules.js +0 -76
  63. package/src/api/menus/feedback.js +0 -102
  64. package/src/api/menus/knowledge.js +0 -159
  65. package/src/api/menus/model-metadata/manage.js +0 -70
  66. package/src/api/menus/model-metadata/role.js +0 -50
  67. package/src/api/menus/model-metadata/training-detail-mock-data.js +0 -569
  68. package/src/api/menus/model-metadata/training.js +0 -28
  69. package/src/api/menus/skill.js +0 -40
  70. package/src/api/system/agent-config.js +0 -16
  71. package/src/api/system/department.js +0 -94
  72. package/src/api/system/dict.js +0 -86
  73. package/src/api/system/menu.js +0 -37
  74. package/src/api/system/permission.js +0 -26
  75. package/src/api/system/role.js +0 -34
  76. package/src/api/system/sys-config.js +0 -16
  77. package/src/api/system/sys-log.js +0 -17
  78. package/src/api/system/user.js +0 -75
  79. package/src/api/upload.js +0 -39
  80. package/src/assets/react.svg +0 -1
  81. package/src/components/auth/current-user-avatar.tsx +0 -77
  82. package/src/components/common/code-view.tsx +0 -149
  83. package/src/components/common/detail-link.tsx +0 -67
  84. package/src/components/common/error-boundary.tsx +0 -98
  85. package/src/components/common/language-switcher.tsx +0 -91
  86. package/src/components/common/lite-table/index.tsx +0 -135
  87. package/src/components/common/md-editor.tsx +0 -126
  88. package/src/components/common/modal/confirm-dialog.tsx +0 -113
  89. package/src/components/common/modal/dep-user-select-multi.tsx +0 -324
  90. package/src/components/common/modal/dep-user-select.tsx +0 -249
  91. package/src/components/common/modal/user-select-multi.tsx +0 -266
  92. package/src/components/common/pagination.tsx +0 -472
  93. package/src/components/common/path.tsx +0 -175
  94. package/src/components/common/system-logo-mark.tsx +0 -48
  95. package/src/components/cx-ui/button/index.less +0 -208
  96. package/src/components/cx-ui/button/index.tsx +0 -611
  97. package/src/components/cx-ui/checkbox/index.tsx +0 -78
  98. package/src/components/cx-ui/date-picker/index.less +0 -17
  99. package/src/components/cx-ui/date-picker/index.tsx +0 -193
  100. package/src/components/cx-ui/drawer/index.tsx +0 -47
  101. package/src/components/cx-ui/empty-state/index.tsx +0 -20
  102. package/src/components/cx-ui/floating-shell/CxFloatingShell.tsx +0 -89
  103. package/src/components/cx-ui/floating-shell/cx-floating-shell.less +0 -283
  104. package/src/components/cx-ui/floating-shell/has-floating-value.ts +0 -41
  105. package/src/components/cx-ui/form/CxForm.tsx +0 -15
  106. package/src/components/cx-ui/form/index.tsx +0 -20
  107. package/src/components/cx-ui/form-item/index.less +0 -26
  108. package/src/components/cx-ui/form-item/index.tsx +0 -36
  109. package/src/components/cx-ui/index.ts +0 -70
  110. package/src/components/cx-ui/input/auto-complete.tsx +0 -134
  111. package/src/components/cx-ui/input/index.tsx +0 -259
  112. package/src/components/cx-ui/input-number/index.jsx +0 -66
  113. package/src/components/cx-ui/modal/index.jsx +0 -212
  114. package/src/components/cx-ui/modal/index.less +0 -144
  115. package/src/components/cx-ui/modal/useCxModal.ts +0 -125
  116. package/src/components/cx-ui/multi-select/index.jsx +0 -74
  117. package/src/components/cx-ui/multi-select/index.less +0 -40
  118. package/src/components/cx-ui/multi-select/index2.tsx +0 -361
  119. package/src/components/cx-ui/radio/index.tsx +0 -33
  120. package/src/components/cx-ui/range-picker/index.less +0 -65
  121. package/src/components/cx-ui/range-picker/index.tsx +0 -219
  122. package/src/components/cx-ui/select/index.less +0 -34
  123. package/src/components/cx-ui/select/index.tsx +0 -196
  124. package/src/components/cx-ui/skeleton/index.tsx +0 -12
  125. package/src/components/cx-ui/steps/index.tsx +0 -14
  126. package/src/components/cx-ui/styles/_tokens.less +0 -79
  127. package/src/components/cx-ui/styles/index.less +0 -246
  128. package/src/components/cx-ui/switch/index.less +0 -106
  129. package/src/components/cx-ui/switch/index.tsx +0 -120
  130. package/src/components/cx-ui/table/index.less +0 -160
  131. package/src/components/cx-ui/table/index.tsx +0 -152
  132. package/src/components/cx-ui/tabs/index.less +0 -15
  133. package/src/components/cx-ui/tabs/index.tsx +0 -34
  134. package/src/components/cx-ui/tag/index.less +0 -51
  135. package/src/components/cx-ui/tag/index.tsx +0 -140
  136. package/src/components/cx-ui/timeline/index.tsx +0 -14
  137. package/src/components/cx-ui/tooltip/index.tsx +0 -67
  138. package/src/components/cx-ui/tree/index.tsx +0 -193
  139. package/src/components/cx-ui/tree-select/index.jsx +0 -91
  140. package/src/components/cx-ui/tree-select/index.less +0 -27
  141. package/src/components/cx-ui/upload-file/index.less +0 -223
  142. package/src/components/cx-ui/upload-file/index.tsx +0 -640
  143. package/src/components/cx-ui/upload-img/index.tsx +0 -291
  144. package/src/components/layout/components/Header.tsx +0 -216
  145. package/src/components/layout/components/Sidebar.tsx +0 -717
  146. package/src/components/layout/index.tsx +0 -95
  147. package/src/components/table-view/components/search-area.tsx +0 -411
  148. package/src/components/table-view/components/table-view-config.tsx +0 -528
  149. package/src/components/table-view/components/table-view.types.ts +0 -478
  150. package/src/components/table-view/components/tree-api-normalize.ts +0 -38
  151. package/src/components/table-view/components/tree-data-annotate.ts +0 -31
  152. package/src/components/table-view/components/tree-sidebar.tsx +0 -74
  153. package/src/components/table-view/index.tsx +0 -61
  154. package/src/components/table-view/list-page-view.tsx +0 -1049
  155. package/src/components/table-view/select-table-view.tsx +0 -1094
  156. package/src/components/table-view/styles/select-table-view.less +0 -51
  157. package/src/config/default-system-name.ts +0 -9
  158. package/src/config/system.ts +0 -165
  159. package/src/constants/countryCodes.ts +0 -3
  160. package/src/contexts/AuthContext.tsx +0 -256
  161. package/src/contexts/ChatContext.tsx +0 -839
  162. package/src/contexts/MenuContext.tsx +0 -62
  163. package/src/contexts/ToastContext.tsx +0 -181
  164. package/src/hooks/useCopyToClipboard.ts +0 -47
  165. package/src/hooks/useModalSubmit.ts +0 -104
  166. package/src/hooks/useRouter.ts +0 -240
  167. package/src/hooks/useStepForm.ts +0 -46
  168. package/src/hooks/useStickyHeader.ts +0 -42
  169. package/src/hooks/useThreadActions.ts +0 -105
  170. package/src/hooks/useUserPreferences.ts +0 -101
  171. package/src/http/axios.js +0 -372
  172. package/src/http/mock.interceptor.ts +0 -9
  173. package/src/http/obfuscationKey.ts +0 -41
  174. package/src/i18n.ts +0 -60
  175. package/src/index.js +0 -1
  176. package/src/index.less +0 -169
  177. package/src/locales/en/auth.ts +0 -70
  178. package/src/locales/en/base/memory.ts +0 -28
  179. package/src/locales/en/base/settings.ts +0 -41
  180. package/src/locales/en/chat.ts +0 -40
  181. package/src/locales/en/common.ts +0 -173
  182. package/src/locales/en/enum.ts +0 -27
  183. package/src/locales/en/menus/business-rules.ts +0 -48
  184. package/src/locales/en/menus/feedback.ts +0 -62
  185. package/src/locales/en/menus/knowledge.ts +0 -120
  186. package/src/locales/en/menus/model-metadata/index.ts +0 -10
  187. package/src/locales/en/menus/model-metadata/manage.ts +0 -151
  188. package/src/locales/en/menus/model-metadata/role.ts +0 -48
  189. package/src/locales/en/menus/model-metadata/training.ts +0 -65
  190. package/src/locales/en/menus/skill.ts +0 -34
  191. package/src/locales/en/system/agent-config.ts +0 -34
  192. package/src/locales/en/system/department.ts +0 -68
  193. package/src/locales/en/system/dict.ts +0 -44
  194. package/src/locales/en/system/menu.ts +0 -45
  195. package/src/locales/en/system/permission.ts +0 -89
  196. package/src/locales/en/system/role.ts +0 -25
  197. package/src/locales/en/system/sys-config.ts +0 -33
  198. package/src/locales/en/system/sys-log.ts +0 -38
  199. package/src/locales/en/system/user.ts +0 -113
  200. package/src/locales/en.ts +0 -68
  201. package/src/locales/zh/auth.ts +0 -70
  202. package/src/locales/zh/base/memory.ts +0 -29
  203. package/src/locales/zh/base/settings.ts +0 -41
  204. package/src/locales/zh/chat.ts +0 -47
  205. package/src/locales/zh/common.ts +0 -178
  206. package/src/locales/zh/enum.ts +0 -28
  207. package/src/locales/zh/menus/business-rules.ts +0 -47
  208. package/src/locales/zh/menus/feedback.ts +0 -62
  209. package/src/locales/zh/menus/knowledge.ts +0 -117
  210. package/src/locales/zh/menus/model-metadata/index.ts +0 -10
  211. package/src/locales/zh/menus/model-metadata/manage.ts +0 -151
  212. package/src/locales/zh/menus/model-metadata/role.ts +0 -47
  213. package/src/locales/zh/menus/model-metadata/training.ts +0 -64
  214. package/src/locales/zh/menus/skill.ts +0 -34
  215. package/src/locales/zh/system/agent-config.ts +0 -33
  216. package/src/locales/zh/system/department.ts +0 -69
  217. package/src/locales/zh/system/dict.ts +0 -44
  218. package/src/locales/zh/system/menu.ts +0 -47
  219. package/src/locales/zh/system/permission.ts +0 -94
  220. package/src/locales/zh/system/role.ts +0 -25
  221. package/src/locales/zh/system/sys-config.ts +0 -32
  222. package/src/locales/zh/system/sys-log.ts +0 -38
  223. package/src/locales/zh/system/user.ts +0 -114
  224. package/src/locales/zh.ts +0 -67
  225. package/src/main.tsx +0 -50
  226. package/src/meta/const/index.ts +0 -40
  227. package/src/meta/index-dict.ts +0 -56
  228. package/src/meta/index-enum.ts +0 -95
  229. package/src/meta/index.ts +0 -14
  230. package/src/meta/module/dict-data/runtime.ts +0 -199
  231. package/src/meta/module/dict-data/types.ts +0 -17
  232. package/src/meta/module/enum-data/runtime.ts +0 -75
  233. package/src/meta/module/enum-data/types.ts +0 -18
  234. package/src/router/index.tsx +0 -312
  235. package/src/styles/AntdThemeProvider.tsx +0 -40
  236. package/src/styles/antd-theme.ts +0 -20
  237. package/src/styles/global.less +0 -107
  238. package/src/styles/variable.less +0 -103
  239. package/src/types/feedback.ts +0 -43
  240. package/src/types/index.ts +0 -85
  241. package/src/types/menu.ts +0 -43
  242. package/src/utils/aesUtil.ts +0 -123
  243. package/src/utils/chatUtils.ts +0 -524
  244. package/src/utils/cn.ts +0 -6
  245. package/src/utils/crypto.ts +0 -164
  246. package/src/utils/date.ts +0 -72
  247. package/src/utils/file-icons.tsx +0 -79
  248. package/src/utils/index.ts +0 -168
  249. package/src/utils/markdown-math-plugins.ts +0 -21
  250. package/src/utils/menuI18n.ts +0 -305
  251. package/src/utils/menuRouteRegistry.ts +0 -78
  252. package/src/utils/permission-crud.ts +0 -147
  253. package/src/utils/routeConfig.ts +0 -350
  254. package/src/utils/storage.ts +0 -135
  255. package/src/utils/toastBridge.ts +0 -26
  256. package/src/utils/url.ts +0 -38
  257. package/src/utils/validation.ts +0 -16
  258. package/src/views/auth/auth-code/index.less +0 -169
  259. package/src/views/auth/auth-code/index.module.less +0 -174
  260. package/src/views/auth/auth-code/index.tsx +0 -233
  261. package/src/views/auth/login.tsx +0 -498
  262. package/src/views/auth/register.tsx +0 -388
  263. package/src/views/base/memory/index.tsx +0 -136
  264. package/src/views/base/memory/modal/detail-modal.tsx +0 -89
  265. package/src/views/base/memory/modal/submit-modal.tsx +0 -134
  266. package/src/views/base/settings/index.tsx +0 -657
  267. package/src/views/chat/chat.less +0 -323
  268. package/src/views/chat/components/chat-input.tsx +0 -298
  269. package/src/views/chat/components/header-thread-title.tsx +0 -210
  270. package/src/views/chat/components/message-list/content-answer.tsx +0 -100
  271. package/src/views/chat/components/message-list/content-question.tsx +0 -18
  272. package/src/views/chat/components/message-list/index.tsx +0 -520
  273. package/src/views/chat/components/message-list/message-item.tsx +0 -199
  274. package/src/views/chat/components/message-list/preparation-demo-items.ts +0 -147
  275. package/src/views/chat/components/message-list/preparation-steps.tsx +0 -506
  276. package/src/views/chat/components/message-list/suggestion-list.tsx +0 -36
  277. package/src/views/chat/components/message-list/thinking-process.tsx +0 -49
  278. package/src/views/chat/components/message-list/toolbar.tsx +0 -224
  279. package/src/views/chat/components/message-list/use-message-list-scroll.ts +0 -214
  280. package/src/views/chat/components/references-knowledge/context.tsx +0 -57
  281. package/src/views/chat/components/references-knowledge/index.ts +0 -9
  282. package/src/views/chat/components/references-knowledge/modal/knowledge-detail-drawer.tsx +0 -556
  283. package/src/views/chat/components/references-knowledge/modal/knowledge-doc-detail-drawer.tsx +0 -529
  284. package/src/views/chat/components/references-knowledge/panel.tsx +0 -115
  285. package/src/views/chat/hooks/use-chat-common.ts +0 -19
  286. package/src/views/chat/index-session.tsx +0 -647
  287. package/src/views/chat/index.tsx +0 -127
  288. package/src/views/page-error/401.tsx +0 -56
  289. package/src/views/page-error/404.tsx +0 -56
  290. package/src/views/page-menus/business-rules/index.tsx +0 -376
  291. package/src/views/page-menus/business-rules/modal/detail-modal.tsx +0 -186
  292. package/src/views/page-menus/business-rules/modal/scope-modal.tsx +0 -272
  293. package/src/views/page-menus/business-rules/modal/submit-modal.tsx +0 -142
  294. package/src/views/page-menus/feedback/components/feedback-dataset-list.tsx +0 -471
  295. package/src/views/page-menus/feedback/index.tsx +0 -166
  296. package/src/views/page-menus/feedback/modal/export-feedback-modal.tsx +0 -367
  297. package/src/views/page-menus/knowledge/components/doc-editor-by-type.tsx +0 -32
  298. package/src/views/page-menus/knowledge/components/doc-editor-type-file.tsx +0 -330
  299. package/src/views/page-menus/knowledge/detail.tsx +0 -600
  300. package/src/views/page-menus/knowledge/index.tsx +0 -337
  301. package/src/views/page-menus/knowledge/modal/detail-modal.tsx +0 -618
  302. package/src/views/page-menus/knowledge/modal/doc-detail-modal.tsx +0 -550
  303. package/src/views/page-menus/knowledge/modal/doc-parse.ts +0 -99
  304. package/src/views/page-menus/knowledge/modal/doc-submit-modal.tsx +0 -349
  305. package/src/views/page-menus/knowledge/modal/doc-type-picker-modal.tsx +0 -88
  306. package/src/views/page-menus/knowledge/modal/knowledge-user-select-modal.tsx +0 -283
  307. package/src/views/page-menus/knowledge/modal/submit-modal.tsx +0 -179
  308. package/src/views/page-menus/model-metadata/manage/components/metadata-detail-schema-tab.tsx +0 -114
  309. package/src/views/page-menus/model-metadata/manage/components/step1-basic-info.tsx +0 -232
  310. package/src/views/page-menus/model-metadata/manage/components/step2-schema.tsx +0 -316
  311. package/src/views/page-menus/model-metadata/manage/components/step3-permissions.tsx +0 -134
  312. package/src/views/page-menus/model-metadata/manage/components/step4-documents.tsx +0 -134
  313. package/src/views/page-menus/model-metadata/manage/components/step5-example-sql.tsx +0 -101
  314. package/src/views/page-menus/model-metadata/manage/components/submit-add.tsx +0 -338
  315. package/src/views/page-menus/model-metadata/manage/components/submit-edit.tsx +0 -276
  316. package/src/views/page-menus/model-metadata/manage/detail.tsx +0 -298
  317. package/src/views/page-menus/model-metadata/manage/hooks/model-metadata-submit-shared.ts +0 -113
  318. package/src/views/page-menus/model-metadata/manage/hooks/use-model-metadata-item-state.ts +0 -20
  319. package/src/views/page-menus/model-metadata/manage/index.tsx +0 -304
  320. package/src/views/page-menus/model-metadata/manage/modal/components/table-schema.ts +0 -374
  321. package/src/views/page-menus/model-metadata/manage/modal/components/use-table-detail-tabs.tsx +0 -151
  322. package/src/views/page-menus/model-metadata/manage/modal/components/use-table-submit-tabs.tsx +0 -423
  323. package/src/views/page-menus/model-metadata/manage/modal/detail-modal.tsx +0 -218
  324. package/src/views/page-menus/model-metadata/manage/modal/submit-modal.tsx +0 -261
  325. package/src/views/page-menus/model-metadata/manage/modal/table-detail-modal.tsx +0 -196
  326. package/src/views/page-menus/model-metadata/manage/modal/table-submit-modal.tsx +0 -229
  327. package/src/views/page-menus/model-metadata/manage/submit.tsx +0 -31
  328. package/src/views/page-menus/model-metadata/role/index.tsx +0 -207
  329. package/src/views/page-menus/model-metadata/role/modal/detail-modal.tsx +0 -97
  330. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-modal.tsx +0 -254
  331. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-panel.tsx +0 -393
  332. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-utils.ts +0 -120
  333. package/src/views/page-menus/model-metadata/role/modal/role-permission-assign-panel.tsx +0 -698
  334. package/src/views/page-menus/model-metadata/role/modal/role-permission-modal.tsx +0 -237
  335. package/src/views/page-menus/model-metadata/role/modal/submit-modal.tsx +0 -135
  336. package/src/views/page-menus/model-metadata/training/components/detail-records/index.ts +0 -4
  337. package/src/views/page-menus/model-metadata/training/components/detail-records/node-card.tsx +0 -72
  338. package/src/views/page-menus/model-metadata/training/components/detail-records/summary-lines.ts +0 -196
  339. package/src/views/page-menus/model-metadata/training/components/detail-records/summary-list.tsx +0 -153
  340. package/src/views/page-menus/model-metadata/training/components/detail-records/timeline.tsx +0 -103
  341. package/src/views/page-menus/model-metadata/training/components/detail-records/types.ts +0 -82
  342. package/src/views/page-menus/model-metadata/training/detail.tsx +0 -159
  343. package/src/views/page-menus/model-metadata/training/index.tsx +0 -236
  344. package/src/views/page-menus/model-metadata/training/modal/update-detail-modal.tsx +0 -154
  345. package/src/views/page-menus/skill/index.tsx +0 -201
  346. package/src/views/page-menus/skill/modal/detail-modal.tsx +0 -156
  347. package/src/views/page-menus/skill/modal/submit-modal.tsx +0 -214
  348. package/src/views/page-system/agent-config/index.tsx +0 -370
  349. package/src/views/page-system/department/departmentFormShared.ts +0 -36
  350. package/src/views/page-system/department/index.tsx +0 -541
  351. package/src/views/page-system/department/modal/detail-modal.tsx +0 -94
  352. package/src/views/page-system/department/modal/member-role-modal.tsx +0 -128
  353. package/src/views/page-system/department/modal/submit-modal.tsx +0 -265
  354. package/src/views/page-system/dict/index.tsx +0 -440
  355. package/src/views/page-system/dict/modal/cate-submit-modal.tsx +0 -315
  356. package/src/views/page-system/dict/modal/submit-modal.tsx +0 -184
  357. package/src/views/page-system/logs/components/index.ts +0 -3
  358. package/src/views/page-system/logs/components/log-message-demo.tsx +0 -30
  359. package/src/views/page-system/logs/components/log-message-stream.ts +0 -184
  360. package/src/views/page-system/logs/components/message-list/content-answer.tsx +0 -100
  361. package/src/views/page-system/logs/components/message-list/content-question.tsx +0 -18
  362. package/src/views/page-system/logs/components/message-list/index.tsx +0 -515
  363. package/src/views/page-system/logs/components/message-list/message-item.tsx +0 -193
  364. package/src/views/page-system/logs/components/message-list/preparation-demo-items.ts +0 -147
  365. package/src/views/page-system/logs/components/message-list/preparation-steps.tsx +0 -506
  366. package/src/views/page-system/logs/components/message-list/suggestion-list.tsx +0 -36
  367. package/src/views/page-system/logs/components/message-list/thinking-process.tsx +0 -49
  368. package/src/views/page-system/logs/components/message-list/toolbar.tsx +0 -134
  369. package/src/views/page-system/logs/components/message-list/use-message-list-scroll.ts +0 -214
  370. package/src/views/page-system/logs/components/message-modal.tsx +0 -239
  371. package/src/views/page-system/logs/index.tsx +0 -132
  372. package/src/views/page-system/logs/modal/detail-modal.tsx +0 -157
  373. package/src/views/page-system/menu/components/menuFormShared.ts +0 -283
  374. package/src/views/page-system/menu/index.less +0 -12
  375. package/src/views/page-system/menu/index.tsx +0 -410
  376. package/src/views/page-system/menu/modal/icon-modal.less +0 -51
  377. package/src/views/page-system/menu/modal/icon-modal.tsx +0 -87
  378. package/src/views/page-system/menu/modal/submit-modal.tsx +0 -263
  379. package/src/views/page-system/permission/index.tsx +0 -562
  380. package/src/views/page-system/permission/modal/detail-modal.tsx +0 -179
  381. package/src/views/page-system/permission/modal/submit-modal.less +0 -146
  382. package/src/views/page-system/permission/modal/submit-modal.tsx +0 -650
  383. package/src/views/page-system/role/index.tsx +0 -163
  384. package/src/views/page-system/role/modal/detail-modal.tsx +0 -127
  385. package/src/views/page-system/role/modal/permission-assign-group-rules.ts +0 -86
  386. package/src/views/page-system/role/modal/permission-modal.tsx +0 -111
  387. package/src/views/page-system/role/modal/role-modal-shell-styles.ts +0 -21
  388. package/src/views/page-system/role/modal/role-permission-assign-panel.tsx +0 -916
  389. package/src/views/page-system/role/modal/role-permission-assign-shared.ts +0 -1047
  390. package/src/views/page-system/role/modal/submit-modal.tsx +0 -193
  391. package/src/views/page-system/sys-config/index.tsx +0 -294
  392. package/src/views/page-system/user/components/user-role-column.tsx +0 -87
  393. package/src/views/page-system/user/index.tsx +0 -439
  394. package/src/views/page-system/user/modal/assign-roles-modal.tsx +0 -389
  395. package/src/views/page-system/user/modal/detail-modal.tsx +0 -72
  396. package/src/views/page-system/user/modal/modal-style/submit-modal.less +0 -40
  397. package/src/views/page-system/user/modal/submit-modal.less +0 -40
  398. package/src/views/page-system/user/modal/submit-modal.tsx +0 -287
  399. package/src/views/page-system/user/userFormShared.ts +0 -51
  400. package/tailwind.config.js +0 -17
  401. package/tsconfig.app.json +0 -48
  402. package/tsconfig.json +0 -11
  403. package/tsconfig.node.json +0 -26
  404. package/vite.config.ts +0 -272
  405. /package/{public → dist}/favicon.ico +0 -0
  406. /package/{public → dist}/vite.svg +0 -0
@@ -1,193 +0,0 @@
1
- # 配置工厂:`createListPageConfig` / `createSelectTableConfig`
2
-
3
- > 适用范围:**整页列表**用 `ListPageView` + `createListPageConfig`;**弹层选人表**用 `SelectTableView` + `createSelectTableConfig`。
4
- > 目标:页面通过配置声明行为,公共层统一处理增删查改、树、分页、搜索与提示(选人表侧默认不启用删除/导出/提交等整页能力)。
5
-
6
- ## 1. 列表页(整页)
7
-
8
- ```tsx
9
- import { ListPageView, createListPageConfig } from '@components/table-view'
10
-
11
- const useListPageConfig = createListPageConfig({
12
- tableAPI: getListAPI,
13
- deleteAPI: deleteItemAPI,
14
- pageInfo: {
15
- title: 'system.xxx.page_title',
16
- subTitle: 'system.xxx.page_subtitle',
17
- },
18
- searchFields: [],
19
- columns: [],
20
- })
21
-
22
- function IndexView() {
23
- const pageConfig = useListPageConfig()
24
- return <ListPageView pageConfig={pageConfig} />
25
- }
26
- ```
27
-
28
- ## 2. 弹层选人表
29
-
30
- ```tsx
31
- import { SelectTable, createSelectTableConfig } from '@components/table-view'
32
-
33
- const useSelectTablePageConfig = createSelectTableConfig({
34
- tableAPI: getUserPageAPI,
35
- searchFields: [{ prop: 'keyword', label: '...', placeholder: '...' }],
36
- columns: [],
37
- pagination: { page: 1, pageSize: 10, total: 0 },
38
- pageInfo: {},
39
- })
40
-
41
- function PickerPane() {
42
- const pageConfig = useSelectTablePageConfig()
43
- return <SelectTable pageConfig={pageConfig} selectionMode="multiple" />
44
- }
45
- ```
46
-
47
- `createSelectTableConfig` 与列表工厂共用同一套请求/分页/搜索组装逻辑;默认合并上**只叠公共默认**(表、搜索、分页、树等),**不叠**列表专有默认(`deleteAPI`、`submitAction` 等),因此选人侧天然不含整页项(仍返回 `PageConfig` 形态供 `SelectTableView`;若业务确需在弹层显式传删除等,可通过 `customConfig` 覆盖,类型上仍以 `BaseTableViewFactoryConfig` 为准)。
48
-
49
- ---
50
-
51
- ## 3. 常用参数(两场景共用字段)
52
-
53
- ### 3.1 API 相关
54
-
55
- - `tableAPI(params)`:列表查询接口(`params` 由公共层组装:**搜索条件** + **`page`(从 1 起)**、**`size`**、**`sort`**、**`order`**)
56
- - `deleteAPI(id)`:单条删除接口(**列表页**典型配置;选人表工厂默认不启用)
57
- - `batchDeleteAPI(ids)`:批量删除接口
58
- - `exportAPI(params)`:导出接口
59
- - `treeAPI()`:左侧树接口(菜单/部门等场景)
60
-
61
- ### 3.2 页面与表格
62
-
63
- - `pageInfo`:标题区文案(`title`、`subTitle`、`listTitle`)
64
- - `columns`:表格列
65
- - `table`:表格行为配置(如是否显示选择列、分页、批量删除、导出)
66
- - `pagination`:初始分页(`page`、`pageSize`、`total`)
67
- - **`page` 从 1 开始**(与 `tableAPI` 入参中的 `page` 一致;底部分页组件使用 1 基页码)
68
- - `pageSizeOptions`:底部分页「每页条数」下拉选项,**可选**;默认 `[10, 20, 50, 100, 200, 500, 1000]`,可按页面覆盖,例如 `pageSizeOptions: [20, 50, 100]`
69
- - `listQuery`:列表默认排序,**可选**;未配置时为 `sort: 'createTime'`、`order: 'desc'`;可写 `listQuery: { sort: 'name', order: 'asc' }` 覆盖其中一项或两项
70
-
71
- ### 3.3 搜索区
72
-
73
- - `searchFields`:搜索项声明(详细见 `props.2.table-view-search-fields.md`)
74
- - `initialSearchFormData`:初始筛选值(如默认状态)
75
-
76
- ### 3.4 提交与详情行为(主要面向列表页)
77
-
78
- - `submitAction`:新增/编辑入口行为
79
- - `permission`
80
- - `submitType: 'modal' | 'page'`
81
- - `labelKey`
82
- - `detailAction`:详情入口行为
83
- - `permission`
84
- - `detailType: 'modal' | 'page'`
85
- - `labelKey`
86
-
87
- ### 3.5 树区域配置
88
-
89
- - `tree`:
90
- - `title`
91
- - `fieldNames`(`id` / `label` / `children`)
92
- - `searchField`
93
- - `autoSearch`
94
- - `unselectText`
95
- - `onSelect(node)`
96
-
97
- ---
98
-
99
- ## 4. 删除确认与扩展(列表页)
100
-
101
- ### 4.1 `deleteConfirm`
102
-
103
- 用于删除确认弹窗文案与插值参数:
104
-
105
- - `title`
106
- - `content`
107
- - `contentFields`:插值字段,支持 `string | string[]`,默认 `name`
108
- - `okText`
109
- - `cancelText`
110
-
111
- 示例:
112
-
113
- ```ts
114
- deleteConfirm: {
115
- title: 'common.confirm',
116
- content: 'p_system.menu.delete_confirm',
117
- contentFields: ['title', 'code'],
118
- okText: 'common.confirm',
119
- cancelText: 'common.cancel',
120
- }
121
- ```
122
-
123
- ### 4.2 `afterDelete(record)`
124
-
125
- **单条删除**在 `ListPageView` 确认并调用 `deleteAPI` 成功后触发(与 `fetchTableData` 的调用顺序无关;工厂内删除成功后通常会 `fetchTableData()`,但**不 await**)。
126
- 适合「删完立刻要做、不必等表格重拉完」的扩展,例如只抬 `treeReloadSignal`、调与列表无关的接口。
127
-
128
- ```ts
129
- afterDelete: async () => {
130
- setTreeReloadSignal((n) => n + 1)
131
- await refreshMenus()
132
- }
133
- ```
134
-
135
- ### 4.3 `afterStatusChange(record, nextStatus)`
136
-
137
- **单条启用/禁用**在 `updateStatusAPI` 成功后触发;与 `afterDelete` 相同,**不保证**列表 `fetchTableData` 已完成。
138
-
139
- ### 4.4 `afterGetPageData()`
140
-
141
- **仅在 `fetchTableData` 成功**(已写入 `tableData`、更新 `paginationData.total`)**之后**调用,且钩子内异常会被捕获并 `console.warn`,不影响关 `loading`。
142
-
143
- 典型用途:与列表数据强一致的全局缓存刷新。例如 **系统 → 数据字典** 在 `afterGetPageData` 里调用 `loadUnauthDictData()` + `loadCommonDictData(true)`(实现见 `src/meta/index-dict.ts`;说明见 [`../meta/comp.2.dict-runtime.md`](../meta/comp.2.dict-runtime.md)),避免在 `afterDelete`、各弹窗 `onOk` 等处重复书写。
144
-
145
- ```ts
146
- import { loadCommonDictData, loadUnauthDictData } from '@/meta/index-dict'
147
-
148
- const useListPageConfig = createListPageConfig({
149
- afterGetPageData: async () => {
150
- loadUnauthDictData()
151
- await loadCommonDictData(true)
152
- },
153
- tableAPI: getDictDataPageAPI,
154
- // ...
155
- })
156
- ```
157
-
158
- **与 `afterDelete` / `afterStatusChange` 的分工**:
159
-
160
- | 钩子 | 触发时机 | 是否等待列表拉取完成 |
161
- |------|-----------|----------------------|
162
- | `afterDelete` / `afterStatusChange` | 删/改状态 API 成功返回后 | 否(列表刷新异步发起) |
163
- | `afterGetPageData` | 每次 `fetchTableData` 成功落表后 | 是(在 `try` 末尾 `await`) |
164
-
165
- **注意**:`afterGetPageData` 会随**首屏、搜索、分页、删改后刷新**等所有成功拉表路径执行;若回调较重(如全量字典),可在业务侧节流或按条件短路。
166
-
167
- ---
168
-
169
- ## 5. 工厂返回的能力(hook → `pageConfig`)
170
-
171
- `useListPageConfig()` / `useSelectTablePageConfig()` 返回的 `pageConfig` 可直接给 `ListPageView` / `SelectTableView`。
172
- 常用字段/方法:
173
-
174
- - 状态:`loading`、`tableData`、`searchFormData`、`paginationData`
175
- - 配置回显:`listQuery`(合并默认后的排序)、`pageSizeOptions`(每页条数下拉选项)
176
- - 行为:`handleSearch`、`handleReset`、`handleTableChange`
177
- - 删除/批量/导出:`handleDelete`、`handleBatchDelete`、`handleExport`
178
- - 树联动:`patchSearchAndRefresh`、`replaceSearchAndRefresh`
179
- - 扩展回调(若配置):`afterDelete`、`afterStatusChange`、`afterGetPageData`(回显在 `pageConfig` 上,便于调试)
180
-
181
- ---
182
-
183
- ## 6. 推荐实践
184
-
185
- - 整页列表用 `createListPageConfig`,hook 建议命名为 `useListPageConfig`
186
- - 弹层选人用 `createSelectTableConfig`,hook 建议命名为 `useSelectTablePageConfig`(或业务语义化如 `useSelectUserTablePageConfig`)
187
- - 页面尽量“只声明,不手写流程”,复用工厂统一行为
188
- - 页面特殊逻辑优先使用扩展点:**与「列表数据已更新」强绑定**时用 `afterGetPageData`;**仅跟删除/启停用动作绑定**、不必等表格时用 `afterDelete` / `afterStatusChange`
189
- - 搜索参数转换统一放在 `searchFields` 配置层,不在页面里做零散转换
190
-
191
- ---
192
-
193
- *最后更新:2026-04-17*
@@ -1,106 +0,0 @@
1
- # table-view:searchFields 使用说明
2
-
3
- > 适用范围:`ListPageView` / `SelectTableView` + `createListPageConfig` / `createSelectTableConfig`
4
- > 目标:页面只做声明,公共层自动完成参数收集与转换
5
-
6
- ## 1. 基础结构
7
-
8
- `searchFields` 是一个数组,每个对象代表一个筛选项。
9
-
10
- ```ts
11
- searchFields: [
12
- {
13
- prop: 'searchQ',
14
- label: 'common.search_placeholder',
15
- placeholder: 'common.search_placeholder',
16
- type: 'input',
17
- },
18
- ]
19
- ```
20
-
21
- ## 2. 字段说明
22
-
23
- - `prop`: 表单字段名(必填)
24
- - `label`: 国际化 key(必填,`SearchArea` 内会自动 `t(label)`)
25
- - `type`: `'input' | 'select' | 'date' | 'dateRange'`,默认 `input`
26
- - `placeholder`: 字符串或数组(日期范围)
27
- - `width`: 控件宽度(默认 `100%`)
28
- - `clearable`: 是否可清空(默认 `true`)
29
- - `multiple`: `select` 多选模式
30
- - `format`: 日期格式(`date` / `dateRange` 可用)
31
-
32
- ### select 专用
33
-
34
- - `options: Array<{ label: string; value: any }>`
35
- - `label` 同样按 i18n key 处理(自动 `t(item.label)`)
36
-
37
- 示例:
38
-
39
- ```ts
40
- {
41
- prop: 'status',
42
- label: 'common.status',
43
- type: 'select',
44
- options: [
45
- { label: 'common.enabled', value: 1 },
46
- { label: 'common.disabled', value: 0 },
47
- ],
48
- }
49
- ```
50
-
51
- ## 3. 日期范围(重点)
52
-
53
- `dateRange` 支持把一个范围字段自动映射成后端两个参数。
54
-
55
- ### 配置项
56
-
57
- - `rangeStartProp`: 开始参数名(默认 `${prop}Start`)
58
- - `rangeEndProp`: 结束参数名(默认 `${prop}End`)
59
- - `format`: 输出格式(默认 `YYYY-MM-DD HH:mm:ss`)
60
-
61
- ### 默认行为
62
-
63
- 当点击“搜索”时,`ListPageView` 会自动转换:
64
-
65
- - start -> 当天 `00:00:00`
66
- - end -> 当天 `23:59:59`
67
-
68
- 并删除原始 `prop`(范围数组)字段,避免后端收到冗余参数。
69
-
70
- ### 示例(反馈页面同款)
71
-
72
- ```ts
73
- {
74
- prop: 'startDate',
75
- label: 'menus.feedback.filter_content',
76
- placeholder: ['提交开始时间', '提交结束时间'],
77
- type: 'dateRange',
78
- rangeStartProp: 'startDateStart',
79
- rangeEndProp: 'startDateEnd',
80
- format: 'YYYY-MM-DD HH:mm:ss',
81
- }
82
- ```
83
-
84
- 最终请求参数:
85
-
86
- - `startDateStart`
87
- - `startDateEnd`
88
-
89
- ## 4. 数据流
90
-
91
- 1. 用户在 `SearchArea` 输入条件
92
- 2. 点击搜索后,`ListPageView` 读取 `form.getFieldsValue()`
93
- 3. `ListPageView` 根据 `searchFields` 统一标准化(含 `dateRange` 映射)
94
- 4. 标准化结果写入 `searchFormData`
95
- 5. `pageConfig.fetchTableData()`(由配置工厂返回的 hook 提供)组装分页 + 搜索参数发起 `tableAPI`
96
-
97
- ## 5. 建议
98
-
99
- - 页面不要在 `SearchArea` 里写业务参数转换逻辑
100
- - 所有“字段名映射”都通过 `searchFields` 配置声明
101
- - 新增页面优先复用该模式,保证行为一致
102
-
103
- ## 6. 关联文档
104
-
105
- - 配置工厂全貌见 [`props.1.create-table-view-config.md`](./props.1.create-table-view-config.md)
106
- - 模块总览见 [`comp.1.table-view.md`](./comp.1.table-view.md)
@@ -1,340 +0,0 @@
1
- # Mock 数据使用指南
2
-
3
- ## 🎯 快速开始
4
-
5
- ### 1. 启用 Mock 模式
6
-
7
- 在 `src/main.tsx` 中已经默认启用:
8
-
9
- ```typescript
10
- import { enableMock } from './api/_mock/mod';
11
-
12
- // 启用 Mock 模式,延迟 300ms(模拟真实网络)
13
- enableMock(300);
14
- ```
15
-
16
- ### 2. 禁用 Mock 模式
17
-
18
- 注释掉或移除这行代码即可使用真实 API:
19
-
20
- ```typescript
21
- // enableMock(300); // 注释这行
22
- ```
23
-
24
- ---
25
-
26
- ## 💡 工作原理
27
-
28
- Mock 系统已经**完全集成到 Axios** 中,所有 HTTP 请求都会自动经过 Mock 拦截器:
29
-
30
- - ✅ **自动拦截** - 无需修改任何业务代码
31
- - ✅ **统一处理** - 所有请求都走同一个 Mock 引擎
32
- - ✅ **即开即用** - 启用后立即生效
33
- - ✅ **无缝切换** - Mock/真实 API 一键切换
34
-
35
- 当你调用任何 API(如 `api.post('/users/list', params)`)时:
36
-
37
- 1. Mock 拦截器检查 URL 是否在映射表中
38
- 2. 如果匹配,返回 Mock 数据(带延迟模拟)
39
- 3. 如果不匹配,继续发送真实请求
40
-
41
- ---
42
-
43
- ## 🔧 动态切换 Mock 模式
44
-
45
- 在浏览器控制台直接操作(开发环境):
46
-
47
- ```javascript
48
- // 启用 Mock
49
- window.enableMock(500); // 500ms 延迟
50
-
51
- // 禁用 Mock
52
- window.disableMock();
53
-
54
- // 切换模式
55
- window.toggleMock();
56
-
57
- // 检查状态
58
- window.isMockEnabled(); // true/false
59
- ```
60
-
61
- ---
62
-
63
- ## 📦 已支持的 Mock API
64
-
65
- ### ✅ 用户管理
66
- - `POST /users/list` - 获取用户列表
67
- - `POST /users/create` - 创建用户
68
- - `POST /users/update` - 更新用户
69
- - `POST /users/delete` - 删除用户
70
-
71
- ### ✅ 角色管理
72
- - `POST /roles/list` - 获取角色列表
73
- - `POST /roles/assignable-to-user` - 获取可分配角色
74
- - `POST /roles/create` - 创建角色
75
- - `POST /roles/delete` - 删除角色
76
-
77
- ### ✅ 部门管理
78
- - `POST /departments/tree` - 获取部门树
79
- - `POST /departments/members` - 获取部门成员
80
- - `POST /departments/create` - 创建部门
81
- - `POST /departments/update` - 更新部门
82
- - `POST /departments/delete` - 删除部门
83
-
84
- ### ✅ 反馈管理
85
- - `POST /feedback/list` - 获取反馈列表
86
- - `POST /feedback/delete` - 删除反馈
87
-
88
- ### ✅ 认证相关
89
- - `POST /auth/login` - 登录
90
- - `POST /auth/register` - 注册
91
- - `POST /auth/check-email` - 检查邮箱
92
- - `POST /auth/public-key` - 获取公钥
93
-
94
- ---
95
-
96
- ## 📝 Mock 数据示例
97
-
98
- ### 用户数据
99
- ```json
100
- {
101
- "id": 1,
102
- "email": "admin@example.com",
103
- "display_name": "系统管理员",
104
- "phone_number": "+86 13800138000",
105
- "is_active": true,
106
- "roles": ["admin"],
107
- "created_at": "2024-01-01T00:00:00Z"
108
- }
109
- ```
110
-
111
- ### 角色数据
112
- ```json
113
- {
114
- "id": 1,
115
- "name": "admin",
116
- "description": "系统管理员",
117
- "permissions": ["*"]
118
- }
119
- ```
120
-
121
- ### 部门数据
122
- ```json
123
- {
124
- "id": 1,
125
- "name": "总公司",
126
- "code": "HQ",
127
- "level": 1,
128
- "path": "/1/",
129
- "children": [
130
- {
131
- "id": 2,
132
- "name": "技术部",
133
- "code": "TECH",
134
- "level": 2
135
- }
136
- ]
137
- }
138
- ```
139
-
140
- ---
141
-
142
- ## 🎨 自定义 Mock 数据
143
-
144
- ### 修改现有数据
145
-
146
- 编辑 `src/api/_mock/index.ts`:
147
-
148
- ```typescript
149
- export const mockUsers = {
150
- items: [
151
- {
152
- id: 1,
153
- email: 'your-custom@email.com',
154
- display_name: '自定义名称',
155
- // ... 其他字段
156
- }
157
- ],
158
- total: 1
159
- };
160
- ```
161
-
162
- ### 添加新的 Mock API
163
-
164
- 1. 在 `src/api/_mock/api.ts` 中添加处理函数:
165
-
166
- ```typescript
167
- export const yourCustomApi = {
168
- getData: async (params: any) => {
169
- if (!mockManager.isEnabled()) {
170
- throw new Error('Not in mock mode');
171
- }
172
-
173
- return mockManager.response({
174
- data: { /* 你的数据 */ }
175
- });
176
- }
177
- };
178
- ```
179
-
180
- 2. 在拦截器中注册:
181
-
182
- ```typescript
183
- const mockApiMap: Record<string, any> = {
184
- '/your/endpoint': (data: any) => yourCustomApi.getData(data),
185
- // ...
186
- };
187
- ```
188
-
189
- ---
190
-
191
- ## 🔍 调试技巧
192
-
193
- ### 查看日志
194
-
195
- 打开浏览器控制台,可以看到:
196
-
197
- ```
198
- ✅ Mock mode enabled
199
- 📝 API calls will return mock data with 300 ms delay
200
- [Mock] Request intercepted: /users/list
201
- [Mock Interceptor] Returning mock data for: /users/list
202
- [Mock] Response: { data: {...}, config: {...} }
203
- ```
204
-
205
- ### 检查网络请求
206
-
207
- 在 Network 面板中,Mock 请求会显示为:
208
- - Status: 200 OK
209
- - Size: mock data
210
- - Time: ~300ms(你设置的延迟)
211
-
212
- ---
213
-
214
- ## ⚙️ 配置选项
215
-
216
- ### 调整延迟时间
217
-
218
- ```typescript
219
- enableMock(0); // 无延迟,立即响应
220
- enableMock(300); // 300ms 延迟(推荐)
221
- enableMock(1000); // 1000ms 延迟(测试慢速网络)
222
- ```
223
-
224
- ### 关闭调试日志
225
-
226
- 编辑 `src/api/_mock/index.ts`(`MockManager` 配置):
227
-
228
- ```typescript
229
- private config: MockApiConfig = {
230
- enabled: false,
231
- delay: 300,
232
- debug: false // 改为 false 关闭日志
233
- };
234
- ```
235
-
236
- ---
237
-
238
- ## 🚀 使用场景
239
-
240
- ### ✅ 适合使用 Mock 的场景
241
- - 在家办公,无法访问公司内网 API
242
- - 后端接口还未开发完成
243
- - 前端功能演示和原型展示
244
- - 单元测试和集成测试
245
- - 离线开发和调试
246
-
247
- ### ❌ 不适合使用 Mock 的场景
248
- - 需要测试真实的 API 性能
249
- - 需要验证后端业务逻辑
250
- - 联调测试阶段
251
- - 生产环境部署
252
-
253
- ---
254
-
255
- ## 💡 最佳实践
256
-
257
- 1. **开发时启用 Mock**
258
- ```typescript
259
- // main.tsx
260
- if (process.env.NODE_ENV === 'development') {
261
- enableMock(300);
262
- }
263
- ```
264
-
265
- 2. **按需切换模式**
266
- ```typescript
267
- // 在组件内临时切换
268
- useEffect(() => {
269
- if (needRealAPI) {
270
- disableMock();
271
- } else {
272
- enableMock(300);
273
- }
274
-
275
- return () => {
276
- // 清理时恢复
277
- enableMock(300);
278
- };
279
- }, [needRealAPI]);
280
- ```
281
-
282
- 3. **使用环境变量控制**
283
- ```typescript
284
- // .env.development
285
- VITE_USE_MOCK=true
286
-
287
- // main.tsx
288
- if (import.meta.env.VITE_USE_MOCK === 'true') {
289
- enableMock(300);
290
- }
291
- ```
292
-
293
- ---
294
-
295
- ## 🐛 常见问题
296
-
297
- ### Q: 为什么我的请求还是失败?
298
- A: 检查以下几点:
299
- 1. 确认 `enableMock()` 已调用
300
- 2. 检查 API 路径是否在 `mockApiMap` 中
301
- 3. 查看控制台是否有错误日志
302
-
303
- ### Q: 如何添加更多 Mock 数据?
304
- A: 直接修改 `src/api/_mock/index.ts` 等文件中的数据数组,可以添加任意数量的测试数据。
305
-
306
- ### Q: 能否模拟错误响应?
307
- A: 可以,使用 `mockManager.error()` 方法:
308
- ```typescript
309
- if (shouldFail) {
310
- return mockManager.error('模拟的错误信息', 500);
311
- }
312
- ```
313
-
314
- ### Q: Mock 数据会影响性能吗?
315
- A: 不会,Mock 数据只在开发环境使用,生产环境会自动禁用。
316
-
317
- ---
318
-
319
- ## 📚 文件结构
320
-
321
- ```
322
- src/api/
323
- ├── mock.ts # Mock 数据定义和管理器
324
- ├── mock.api.ts # Mock API 接口实现
325
- ├── mock.interceptor.ts # Mock 拦截器
326
- ├── mock.utils.ts # Mock 工具函数
327
- └── client.ts # Axios 客户端(已集成 Mock)
328
- ```
329
-
330
- ---
331
-
332
- ## 🎉 开始使用
333
-
334
- 现在你可以:
335
- 1. ✅ 在家离线开发
336
- 2. ✅ 无需依赖后端 API
337
- 3. ✅ 页面正常跑起来
338
- 4. ✅ 随时切换真实 API
339
-
340
- 祝你开发顺利!🚀