@gientech/modual 1.9.4-fix.1 → 1.9.4-fix.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 (438) hide show
  1. package/{dist/assets/GientechStreamReader-DydY9Vu3.js → assets/GientechStreamReader-9YdiPc7N.js} +1 -1
  2. package/{dist/assets/index-7FYeBShT.js → assets/index-BKe5FgcC.js} +1 -1
  3. package/{dist/assets/index-rkRJ-e_U.js → assets/index-CF21Mbsz.js} +1 -1
  4. package/{dist/assets/index-4Ac00q5P.js → assets/index-D72cKELw.js} +1 -1
  5. package/{dist/assets/index-q0nZjKAG.js → assets/index-DdVFXD_y.js} +1 -1
  6. package/{dist/assets/index-DBPtDW8Y.js → assets/index-DwoTKC3G.js} +1 -1
  7. package/{dist/assets/index-CwGOSlVC.js → assets/index-R8HnY_Ab.js} +1 -1
  8. package/{dist/assets/index-antI2hFx.js → assets/index-g-SUxfJH.js} +45 -45
  9. package/{dist/assets/index-B2rczyCX.js → assets/index-h59-yboB.js} +1 -1
  10. package/{dist/assets/index-CQMGllKT.js → assets/index-j0kQJd0a.js} +1 -1
  11. package/{dist/assets/index-DJPAws60.js → assets/index-x8IlxRuv.js} +72 -72
  12. package/{dist/assets/plus-qlmqrjBc.js → assets/plus-V9zUoSq6.js} +1 -1
  13. package/{dist/assets/style-BeYL_E4J.js → assets/style-CGmZ5osp.js} +1 -1
  14. package/assets/style4.css +1 -0
  15. package/{dist/assets/x-DxuhxSb6.js → assets/x-CnaaLGJF.js} +1 -1
  16. package/assistantConfig.js +1 -0
  17. package/chat.js +829 -0
  18. package/{dist/database.js → database.js} +1 -1
  19. package/databaseId.js +1 -0
  20. package/{dist/databaseTable.js → databaseTable.js} +1 -1
  21. package/index.js +1 -0
  22. package/{dist/modelManage.js → modelManage.js} +1 -1
  23. package/package.json +43 -106
  24. package/{dist/sensitive.js → sensitive.js} +1 -1
  25. package/streamFilesReader.js +1 -0
  26. package/.editorconfig +0 -38
  27. package/.prettierignore +0 -16
  28. package/.prettierrc +0 -17
  29. package/USAGE.md +0 -247
  30. package/bash.exe.stackdump +0 -40
  31. package/components.json +0 -21
  32. package/dist/README.md +0 -643
  33. package/dist/assets/style4.css +0 -1
  34. package/dist/assistantConfig.js +0 -1
  35. package/dist/chat.js +0 -815
  36. package/dist/databaseId.js +0 -1
  37. package/dist/index.js +0 -1
  38. package/dist/package.json +0 -68
  39. package/dist/streamFilesReader.js +0 -1
  40. package/doc_assets/2.png +0 -0
  41. package/doc_assets/demo.md +0 -27
  42. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +0 -2
  43. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +0 -23699
  44. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +0 -1
  45. package/doc_assets/demos/dist-app/index.html +0 -14
  46. package/doc_assets/demos/dist-app/vite.svg +0 -1
  47. package/doc_assets/images/1.png +0 -0
  48. package/doc_assets/images/3.png +0 -0
  49. package/doc_assets/images/component-screenshot.png +0 -1
  50. package/doc_assets/install.md +0 -5
  51. package/doc_assets//346/226/271/346/241/210//344/274/230/345/214/226/346/226/271/346/241/210-/345/244/232/344/274/232/350/257/235SSE/350/277/236/346/216/245/347/256/241/347/220/206.md +0 -504
  52. package/eslint.config.js +0 -92
  53. package/index.html +0 -13
  54. package/package.json.demo-backup +0 -109
  55. package/postcss.config.cjs +0 -19
  56. package/public/icons/answerAwartar.png +0 -0
  57. package/public/icons/docx-file.png +0 -0
  58. package/public/icons/folder.png +0 -0
  59. package/public/icons/html.png +0 -0
  60. package/public/icons/image.png +0 -0
  61. package/public/icons/jpg-file.png +0 -0
  62. package/public/icons/json.png +0 -0
  63. package/public/icons/md.png +0 -0
  64. package/public/icons/pdf.png +0 -0
  65. package/public/icons/pptx.png +0 -0
  66. package/public/icons/questionAwartar.png +0 -0
  67. package/public/icons/sheets.png +0 -0
  68. package/public/icons/txt.png +0 -0
  69. package/public/icons/xlsx.png +0 -0
  70. package/public/vite.svg +0 -1
  71. package/public/worker/pdf.worker.min.js +0 -22
  72. package/rag/assets/Doris.3ZRHc3Fu.png +0 -0
  73. package/rag/assets/PostgreSQL.DuLqLAFX.png +0 -0
  74. package/rag/assets/SQLServer.CWyNu24v.png +0 -0
  75. package/rag/assets/empty.BfkDKJsb.png +0 -0
  76. package/rag/assets/homeBg.Mr_kGuA9.png +0 -0
  77. package/rag/assets/index.Bd0tNzw0.js +0 -2797
  78. package/rag/assets/index.D6t67hlu.css +0 -1
  79. package/rag/assets/left.KBHV5h7q.jpg +0 -0
  80. package/rag/assets/logoImg.Gmp_tdkD.png +0 -0
  81. package/rag/assets/worker-BbpylX7l.DptbXke_.js +0 -13
  82. package/rag/icons/answerAwartar.png +0 -0
  83. package/rag/icons/docx-file.png +0 -0
  84. package/rag/icons/folder.png +0 -0
  85. package/rag/icons/html.png +0 -0
  86. package/rag/icons/image.png +0 -0
  87. package/rag/icons/jpg-file.png +0 -0
  88. package/rag/icons/json.png +0 -0
  89. package/rag/icons/md.png +0 -0
  90. package/rag/icons/pdf.png +0 -0
  91. package/rag/icons/pptx.png +0 -0
  92. package/rag/icons/questionAwartar.png +0 -0
  93. package/rag/icons/sheets.png +0 -0
  94. package/rag/icons/txt.png +0 -0
  95. package/rag/icons/xlsx.png +0 -0
  96. package/scripts/README.md +0 -133
  97. package/scripts/build-demo.js +0 -88
  98. package/scripts/decrypt-api-key.js +0 -95
  99. package/scripts/demo-selector.js +0 -216
  100. package/scripts/dev-demo.js +0 -76
  101. package/scripts/preview-demo.js +0 -130
  102. package/scripts/run-demo.bat +0 -34
  103. package/src/assets/img/close.png +0 -0
  104. package/src/assets/img/database.png +0 -0
  105. package/src/assets/img/downArrow.png +0 -0
  106. package/src/assets/img/downLoad.png +0 -0
  107. package/src/assets/img/excel.png +0 -0
  108. package/src/assets/img/graphIcon.png +0 -0
  109. package/src/assets/img/img.png +0 -0
  110. package/src/assets/img/pdf.png +0 -0
  111. package/src/assets/img/ppt.png +0 -0
  112. package/src/assets/img/singleQa.png +0 -0
  113. package/src/assets/img/txt.png +0 -0
  114. package/src/assets/img/webSearch.png +0 -0
  115. package/src/assets/img/word.png +0 -0
  116. package/src/assets/login/homeBg.png +0 -0
  117. package/src/assets/login/left.jpg +0 -0
  118. package/src/assets/login/logoImg.png +0 -0
  119. package/src/examples/ConversationAssistantPage/index.tsx +0 -41
  120. package/src/examples/Demo/index.tsx +0 -12
  121. package/src/examples/LoginPage/index.tsx +0 -18
  122. package/src/examples/chat/components/DrawerGraphPreview.tsx +0 -78
  123. package/src/examples/chat/index.tsx +0 -162
  124. package/src/examples/chat/logo03.png +0 -0
  125. package/src/examples/gientechStreamFilesReader/index.tsx +0 -951
  126. package/src/examples/headlessChat/index.tsx +0 -218
  127. package/src/examples/ragDatabaseDataPage/index.tsx +0 -40
  128. package/src/examples/ragDatabaseIdPage/index.tsx +0 -47
  129. package/src/examples/ragDatabasePage/index.tsx +0 -36
  130. package/src/examples/ragModelManagePage/index.tsx +0 -37
  131. package/src/examples/ragSearchPage/index.tsx +0 -0
  132. package/src/examples/ragSensitiveWordsPage/index.tsx +0 -32
  133. package/src/examples/streamFiles/index.tsx +0 -417
  134. package/src/lib_enter.ts +0 -43
  135. package/src/main.tsx +0 -5
  136. package/src/main.tsx.backup +0 -5
  137. package/src/modules/assistantConfig/assets/databse.svg +0 -6
  138. package/src/modules/assistantConfig/assets/empty.png +0 -0
  139. package/src/modules/assistantConfig/assets/graph.svg +0 -4
  140. package/src/modules/assistantConfig/assets/knowledge.svg +0 -4
  141. package/src/modules/assistantConfig/assets/sensitive.svg +0 -5
  142. package/src/modules/assistantConfig/components/Database.tsx +0 -171
  143. package/src/modules/assistantConfig/components/Graph.tsx +0 -177
  144. package/src/modules/assistantConfig/components/Knowledge.tsx +0 -276
  145. package/src/modules/assistantConfig/components/NotFoundContent.tsx +0 -21
  146. package/src/modules/assistantConfig/components/Paragraph.tsx +0 -51
  147. package/src/modules/assistantConfig/components/ParamsItem.tsx +0 -39
  148. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +0 -133
  149. package/src/modules/assistantConfig/components/SearchableSelector.tsx +0 -500
  150. package/src/modules/assistantConfig/components/Sensitive.tsx +0 -221
  151. package/src/modules/assistantConfig/components/SliderInput.tsx +0 -65
  152. package/src/modules/assistantConfig/constants.tsx +0 -75
  153. package/src/modules/assistantConfig/index.tsx +0 -706
  154. package/src/modules/assistantConfig/server.ts +0 -262
  155. package/src/modules/chat/Conversations/Item.tsx +0 -167
  156. package/src/modules/chat/Conversations/List.tsx +0 -210
  157. package/src/modules/chat/Conversations/groupByTime.ts +0 -39
  158. package/src/modules/chat/Conversations/index.tsx +0 -252
  159. package/src/modules/chat/ReferenceBar.tsx +0 -622
  160. package/src/modules/chat/constants.tsx +0 -56
  161. package/src/modules/chat/data.txt +0 -82
  162. package/src/modules/chat/index.tsx +0 -2087
  163. package/src/modules/chat/referenceCom/DeleteModal.tsx +0 -75
  164. package/src/modules/chat/referenceCom/DrawerContent.tsx +0 -136
  165. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +0 -102
  166. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +0 -86
  167. package/src/modules/chat/referenceCom/DrawerPreview.tsx +0 -73
  168. package/src/modules/chat/referenceCom/DrawerTitle.tsx +0 -26
  169. package/src/modules/chat/referenceCom/RenameModal.tsx +0 -86
  170. package/src/modules/chat/referenceCom/TagCom.tsx +0 -30
  171. package/src/modules/chat/style.less +0 -3
  172. package/src/modules/chat/types.ts +0 -17
  173. package/src/modules/chat/utils/index.ts +0 -348
  174. package/src/modules/database/CreateModal.tsx +0 -403
  175. package/src/modules/database/assets/Doris.png +0 -0
  176. package/src/modules/database/assets/PostgreSQL.png +0 -0
  177. package/src/modules/database/assets/SQLServer.png +0 -0
  178. package/src/modules/database/assets/database.svg +0 -11
  179. package/src/modules/database/assets/database_add.svg +0 -53
  180. package/src/modules/database/assets/database_connect.svg +0 -66
  181. package/src/modules/database/assets/database_upload.svg +0 -29
  182. package/src/modules/database/assets/empty.png +0 -0
  183. package/src/modules/database/assets/mysql.svg +0 -14
  184. package/src/modules/database/index.tsx +0 -477
  185. package/src/modules/database/server.ts +0 -196
  186. package/src/modules/databaseId/CustomCom.tsx +0 -156
  187. package/src/modules/databaseId/EditConfig.tsx +0 -280
  188. package/src/modules/databaseId/UploadDrawer.tsx +0 -535
  189. package/src/modules/databaseId/assets/aiOptimize.svg +0 -10
  190. package/src/modules/databaseId/assets/empty.png +0 -0
  191. package/src/modules/databaseId/assets/template.svg +0 -6
  192. package/src/modules/databaseId/assets/upload.svg +0 -9
  193. package/src/modules/databaseId/assets/useTemp.svg +0 -6
  194. package/src/modules/databaseId/index.tsx +0 -769
  195. package/src/modules/databaseId/server.ts +0 -286
  196. package/src/modules/databaseId/style.css +0 -5
  197. package/src/modules/databaseTable/EditRowDrawer.tsx +0 -124
  198. package/src/modules/databaseTable/index.tsx +0 -359
  199. package/src/modules/databaseTable/server.ts +0 -180
  200. package/src/modules/headlessChat/ReferenceBar.tsx +0 -783
  201. package/src/modules/headlessChat/constants.tsx +0 -32
  202. package/src/modules/headlessChat/index.tsx +0 -1411
  203. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +0 -75
  204. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +0 -136
  205. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +0 -102
  206. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +0 -86
  207. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +0 -73
  208. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +0 -26
  209. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +0 -86
  210. package/src/modules/headlessChat/referenceCom/TagCom.tsx +0 -30
  211. package/src/modules/headlessChat/style.less +0 -3
  212. package/src/modules/headlessChat/types.ts +0 -23
  213. package/src/modules/headlessChat/utils/index.ts +0 -348
  214. package/src/modules/login/components/Login/LoginBox/index.tsx +0 -102
  215. package/src/modules/login/components/Login/RegisterBox/index.tsx +0 -180
  216. package/src/modules/login/components/Login/index.tsx +0 -100
  217. package/src/modules/login/index.tsx +0 -106
  218. package/src/modules/login/style.css +0 -3
  219. package/src/modules/login/useServices.ts +0 -53
  220. package/src/modules/login/utils.ts +0 -42
  221. package/src/modules/modelManage/ConfigDrawer.tsx +0 -249
  222. package/src/modules/modelManage/ReplaceModal.tsx +0 -124
  223. package/src/modules/modelManage/assets/empty.png +0 -0
  224. package/src/modules/modelManage/const.ts +0 -51
  225. package/src/modules/modelManage/index.tsx +0 -599
  226. package/src/modules/modelManage/server.ts +0 -223
  227. package/src/modules/nodegraph/index.tsx +0 -1
  228. package/src/modules/search/assets/Icon-history.svg +0 -8
  229. package/src/modules/search/assets/answerAwartar.png +0 -0
  230. package/src/modules/search/assets/doc.png +0 -0
  231. package/src/modules/search/assets/genera.gif +0 -0
  232. package/src/modules/search/assets/icon-robot.svg +0 -9
  233. package/src/modules/search/assets/icon-search-bar.svg +0 -14
  234. package/src/modules/search/assets/icon-sub-title.svg +0 -3
  235. package/src/modules/search/assets/icon-title.svg +0 -9
  236. package/src/modules/search/assets/icon-zoomOut.svg +0 -9
  237. package/src/modules/search/assets/iconAi.svg +0 -9
  238. package/src/modules/search/assets/pdf.png +0 -0
  239. package/src/modules/search/assets/ppt.png +0 -0
  240. package/src/modules/search/assets/search.svg +0 -3
  241. package/src/modules/search/assets/selected.svg +0 -4
  242. package/src/modules/search/assets/txt.png +0 -0
  243. package/src/modules/search/assets/xls.png +0 -0
  244. package/src/modules/search/components/AssisSelect.tsx +0 -137
  245. package/src/modules/search/components/Editor/ChatViewEditor.tsx +0 -261
  246. package/src/modules/search/components/Editor/aichat.css +0 -1
  247. package/src/modules/search/components/Editor/constant.ts +0 -13
  248. package/src/modules/search/components/Editor/index.tsx +0 -113
  249. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +0 -332
  250. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +0 -20
  251. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +0 -38
  252. package/src/modules/search/components/Editor/plugins/displayer.ts +0 -298
  253. package/src/modules/search/components/Editor/plugins/imageClick.tsx +0 -32
  254. package/src/modules/search/components/Editor/plugins/myplugin.tsx +0 -98
  255. package/src/modules/search/components/Editor/ui/avatar.tsx +0 -19
  256. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +0 -21
  257. package/src/modules/search/components/Editor/ui/button.tsx +0 -58
  258. package/src/modules/search/components/Editor/ui/calendar.tsx +0 -68
  259. package/src/modules/search/components/Editor/ui/caption.tsx +0 -46
  260. package/src/modules/search/components/Editor/ui/checkbox.tsx +0 -27
  261. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +0 -188
  262. package/src/modules/search/components/Editor/ui/code-block-element.css +0 -434
  263. package/src/modules/search/components/Editor/ui/code-block-element.tsx +0 -39
  264. package/src/modules/search/components/Editor/ui/code-leaf.tsx +0 -24
  265. package/src/modules/search/components/Editor/ui/code-line-element.tsx +0 -10
  266. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +0 -21
  267. package/src/modules/search/components/Editor/ui/column-element.tsx +0 -30
  268. package/src/modules/search/components/Editor/ui/column-group-element.tsx +0 -94
  269. package/src/modules/search/components/Editor/ui/command.tsx +0 -75
  270. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +0 -22
  271. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +0 -37
  272. package/src/modules/search/components/Editor/ui/comment-item.tsx +0 -74
  273. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +0 -49
  274. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +0 -42
  275. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +0 -22
  276. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +0 -32
  277. package/src/modules/search/components/Editor/ui/comment-value.tsx +0 -34
  278. package/src/modules/search/components/Editor/ui/comments-popover.tsx +0 -63
  279. package/src/modules/search/components/Editor/ui/date-element.tsx +0 -83
  280. package/src/modules/search/components/Editor/ui/dialog.tsx +0 -63
  281. package/src/modules/search/components/Editor/ui/draggable.tsx +0 -177
  282. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +0 -180
  283. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +0 -85
  284. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +0 -28
  285. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +0 -76
  286. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +0 -8
  287. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +0 -51
  288. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +0 -77
  289. package/src/modules/search/components/Editor/ui/heading-element.tsx +0 -48
  290. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +0 -17
  291. package/src/modules/search/components/Editor/ui/hr-element.tsx +0 -30
  292. package/src/modules/search/components/Editor/ui/icons.tsx +0 -267
  293. package/src/modules/search/components/Editor/ui/image-element.tsx +0 -74
  294. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +0 -368
  295. package/src/modules/search/components/Editor/ui/input.tsx +0 -25
  296. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +0 -218
  297. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +0 -20
  298. package/src/modules/search/components/Editor/ui/link-element.tsx +0 -29
  299. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +0 -161
  300. package/src/modules/search/components/Editor/ui/list-element.tsx +0 -30
  301. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +0 -24
  302. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +0 -133
  303. package/src/modules/search/components/Editor/ui/media-popover.tsx +0 -97
  304. package/src/modules/search/components/Editor/ui/mention-element.tsx +0 -43
  305. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +0 -141
  306. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +0 -93
  307. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +0 -67
  308. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +0 -4
  309. package/src/modules/search/components/Editor/ui/placeholder.tsx +0 -52
  310. package/src/modules/search/components/Editor/ui/popover.tsx +0 -32
  311. package/src/modules/search/components/Editor/ui/resizable.tsx +0 -66
  312. package/src/modules/search/components/Editor/ui/separator.tsx +0 -25
  313. package/src/modules/search/components/Editor/ui/style.less +0 -12
  314. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +0 -143
  315. package/src/modules/search/components/Editor/ui/table-element.tsx +0 -243
  316. package/src/modules/search/components/Editor/ui/table-row-element.tsx +0 -22
  317. package/src/modules/search/components/Editor/ui/tableValue.tsx +0 -135
  318. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +0 -43
  319. package/src/modules/search/components/Editor/ui/toggle-element.tsx +0 -31
  320. package/src/modules/search/components/Editor/ui/toolbar.tsx +0 -157
  321. package/src/modules/search/components/Editor/ui/tooltip.tsx +0 -65
  322. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +0 -160
  323. package/src/modules/search/components/Editor/ui/with-draggables.tsx +0 -175
  324. package/src/modules/search/components/FileList.tsx +0 -287
  325. package/src/modules/search/components/ImageGroupView/index.tsx +0 -85
  326. package/src/modules/search/components/ResultContent.tsx +0 -232
  327. package/src/modules/search/components/SearchInput.tsx +0 -232
  328. package/src/modules/search/components/SearchLanding.tsx +0 -74
  329. package/src/modules/search/components/SearchView.tsx +0 -563
  330. package/src/modules/search/components/SimpleEditor.tsx +0 -158
  331. package/src/modules/search/components/SimpleFileList.tsx +0 -215
  332. package/src/modules/search/index.tsx +0 -10
  333. package/src/modules/search/reademe.md +0 -1
  334. package/src/modules/search/servers/apis.tsx +0 -19
  335. package/src/modules/search/servers/index.ts +0 -184
  336. package/src/modules/search/style.less +0 -503
  337. package/src/modules/search/type.ts +0 -22
  338. package/src/modules/search/utils.ts +0 -34
  339. package/src/modules/sensitive/index.tsx +0 -313
  340. package/src/modules/sensitive/server.ts +0 -122
  341. package/src/modules/streamFilesReader/GientechStreamReader.tsx +0 -1625
  342. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  343. package/src/modules/streamFilesReader/components/Header/index.tsx +0 -297
  344. package/src/modules/streamFilesReader/index.tsx +0 -3
  345. package/src/style.css +0 -6
  346. package/src/type.d.ts +0 -0
  347. package/src/utils/commonFn.tsx +0 -111
  348. package/src/utils/decryptApiKey.ts +0 -40
  349. package/src/utils/gientechCommon/components/AppError.tsx +0 -32
  350. package/src/utils/gientechCommon/components/AppLoading.tsx +0 -75
  351. package/src/utils/gientechCommon/components/DeleteModal.tsx +0 -75
  352. package/src/utils/gientechCommon/components/DisplayError.tsx +0 -33
  353. package/src/utils/gientechCommon/components/DisplayLoading.tsx +0 -38
  354. package/src/utils/gientechCommon/components/FeedBackModal.tsx +0 -318
  355. package/src/utils/gientechCommon/components/FileCardCommon.tsx +0 -82
  356. package/src/utils/gientechCommon/components/FileManager/index.tsx +0 -390
  357. package/src/utils/gientechCommon/components/FileManager/style.css +0 -5
  358. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -581
  359. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +0 -339
  360. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +0 -245
  361. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +0 -209
  362. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  363. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +0 -148
  364. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +0 -14
  365. package/src/utils/gientechCommon/components/RenameModal.tsx +0 -86
  366. package/src/utils/gientechCommon/components/style.less +0 -11
  367. package/src/utils/gientechCommon/configs/commonConfig.ts +0 -2
  368. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  369. package/src/utils/gientechCommon/configs/stylesConfig.ts +0 -142
  370. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +0 -417
  371. package/src/utils/gientechCommon/slate/converters/deserializers.ts +0 -763
  372. package/src/utils/gientechCommon/slate/converters/mockData.ts +0 -232
  373. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +0 -258
  374. package/src/utils/gientechCommon/slate/richElements/index.tsx +0 -499
  375. package/src/utils/gientechCommon/utils/request.ts +0 -37
  376. package/src/utils/gientechCommon/utils/serverFn.ts +0 -172
  377. package/src/utils/index.tsx +0 -132
  378. package/src/utils/testconfigs/demologin/index.tsx +0 -32
  379. package/src/utils/testconfigs/index.ts +0 -59
  380. package/src/vite-env.d.ts +0 -11
  381. package/stats.html +0 -4949
  382. package/tailwind.config.js +0 -170
  383. package/tsconfig.app.json +0 -30
  384. package/tsconfig.app.tsbuildinfo +0 -11
  385. package/tsconfig.json +0 -13
  386. package/tsconfig.node.json +0 -22
  387. package/tsconfig.node.tsbuildinfo +0 -1
  388. package/vite.config.app.ts +0 -93
  389. package/vite.config.ts +0 -231
  390. package/workflows/release.yml +0 -60
  391. package//346/215/242/350/241/214/346/240/274/345/274/217/344/277/235/346/214/201/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -359
  392. /package/{dist/assets → assets}/Doris.png +0 -0
  393. /package/{dist/assets → assets}/PostgreSQL.png +0 -0
  394. /package/{dist/assets → assets}/SQLServer.png +0 -0
  395. /package/{dist/assets → assets}/database.svg +0 -0
  396. /package/{dist/assets → assets}/database_add.svg +0 -0
  397. /package/{dist/assets → assets}/database_connect.svg +0 -0
  398. /package/{dist/assets → assets}/database_upload.svg +0 -0
  399. /package/{dist/assets → assets}/databse.svg +0 -0
  400. /package/{dist/assets → assets}/defaultWeLogo.svg +0 -0
  401. /package/{dist/assets → assets}/empty.png +0 -0
  402. /package/{dist/assets → assets}/graph.svg +0 -0
  403. /package/{dist/assets → assets}/homeBg.png +0 -0
  404. /package/{dist/assets → assets}/index-CpW6Dhpp.js +0 -0
  405. /package/{dist/assets → assets}/knowledge.svg +0 -0
  406. /package/{dist/assets → assets}/left.jpg +0 -0
  407. /package/{dist/assets → assets}/logoImg.png +0 -0
  408. /package/{dist/assets → assets}/mysql.svg +0 -0
  409. /package/{dist/assets → assets}/sensitive.svg +0 -0
  410. /package/{dist/assets → assets}/style.css +0 -0
  411. /package/{dist/assets → assets}/style2.css +0 -0
  412. /package/{dist/assets → assets}/style3.css +0 -0
  413. /package/{dist/assets → assets}/worker-BbpylX7l.js +0 -0
  414. /package/{dist/assistantConfig.d.ts → assistantConfig.d.ts} +0 -0
  415. /package/{dist/chat.d.ts → chat.d.ts} +0 -0
  416. /package/{dist/database.d.ts → database.d.ts} +0 -0
  417. /package/{dist/databaseId.d.ts → databaseId.d.ts} +0 -0
  418. /package/{dist/databaseTable.d.ts → databaseTable.d.ts} +0 -0
  419. /package/{dist/icons → icons}/answerAwartar.png +0 -0
  420. /package/{dist/icons → icons}/docx-file.png +0 -0
  421. /package/{dist/icons → icons}/folder.png +0 -0
  422. /package/{dist/icons → icons}/html.png +0 -0
  423. /package/{dist/icons → icons}/image.png +0 -0
  424. /package/{dist/icons → icons}/jpg-file.png +0 -0
  425. /package/{dist/icons → icons}/json.png +0 -0
  426. /package/{dist/icons → icons}/md.png +0 -0
  427. /package/{dist/icons → icons}/pdf.png +0 -0
  428. /package/{dist/icons → icons}/pptx.png +0 -0
  429. /package/{dist/icons → icons}/questionAwartar.png +0 -0
  430. /package/{dist/icons → icons}/sheets.png +0 -0
  431. /package/{dist/icons → icons}/txt.png +0 -0
  432. /package/{dist/icons → icons}/xlsx.png +0 -0
  433. /package/{dist/index.d.ts → index.d.ts} +0 -0
  434. /package/{dist/modelManage.d.ts → modelManage.d.ts} +0 -0
  435. /package/{dist/sensitive.d.ts → sensitive.d.ts} +0 -0
  436. /package/{dist/streamFilesReader.d.ts → streamFilesReader.d.ts} +0 -0
  437. /package/{dist/vite.svg → vite.svg} +0 -0
  438. /package/{dist/worker → worker}/pdf.worker.min.js +0 -0
@@ -1,262 +0,0 @@
1
- import axios from 'axios';
2
-
3
- interface DatabaseApiProps {
4
- url?: string;
5
- token?: string;
6
- role?: string;
7
- eventsEmit?: (name: string, data: any) => void;
8
- }
9
-
10
- const AxiosInstance = ({ url, token, role, eventsEmit }: DatabaseApiProps) => {
11
- const axios$ = axios.create({
12
- baseURL: url,
13
- // 配置请求超时时间
14
- timeout: 1000000,
15
- });
16
- // 请求拦截
17
- axios$.interceptors.request.use((config: any) => {
18
- let target_cookie = token;
19
-
20
- const noA = ['user/login', 'user/kaptcha', 'user/regist'];
21
- // dangerous behaviour
22
- if (!target_cookie && !noA.some((item: string) => config.url.includes(item))) {
23
- // 通过eventsEmit抛出认证错误事件,让调用层处理
24
- if (eventsEmit) {
25
- eventsEmit('request:error_auth', {
26
- errorMsg: '未登录或token已过期',
27
- redirect: '/login',
28
- });
29
- }
30
- return Promise.reject(new Error('未登录或token已过期'));
31
- }
32
-
33
- config.headers.Authorization = target_cookie || '';
34
- // 这里传中文会报错
35
- config.headers.userName = role === '未登录用户' ? '' : role;
36
- return config;
37
- });
38
-
39
- // 返回拦截
40
- axios$.interceptors.response.use(
41
- response => {
42
- // 获取接口返回结果
43
- const noA = ['user/kaptcha'];
44
- const res = response.data;
45
- if (noA.some((item: string) => response.config.url && response.config.url.includes(item))) {
46
- return res;
47
- }
48
- if (res.size && res.type) {
49
- return res;
50
- }
51
- const { success, errorMsg, errorCode } = res;
52
-
53
- if (success) {
54
- return res;
55
- } else {
56
- // 通过eventsEmit抛出业务错误事件,让调用层处理
57
- if (eventsEmit) {
58
- eventsEmit('request:error_business', {
59
- errorCode,
60
- errorMsg: errorMsg || '请求出错,请稍后再试',
61
- response: res,
62
- });
63
- }
64
- }
65
- },
66
- error => {
67
- // 主动取消请求,不给报错信息
68
- if (error.message === 'canceled') {
69
- return Promise.reject(error);
70
- }
71
-
72
- // 通过eventsEmit抛出网络错误事件,让调用层处理
73
- if (eventsEmit) {
74
- let errorType = 'request:error_network';
75
- let errorData: any = {
76
- errorMsg: '网络请求失败',
77
- error: error,
78
- };
79
-
80
- if (error?.response?.status === 401) {
81
- errorType = 'request:error_auth';
82
- errorData = {
83
- errorMsg: '没有足够权限',
84
- error: error,
85
- redirect: '/login',
86
- };
87
- } else if (
88
- error?.response?.data?.errorCode === '30013' ||
89
- error?.response?.data?.errorCode === '30023'
90
- ) {
91
- errorType = 'request:error_business';
92
- errorData = {
93
- errorCode: error?.response?.data?.errorCode,
94
- errorMsg: error?.response?.data?.errorMsg || '请求出错,请稍后再试',
95
- error: error,
96
- };
97
- }
98
-
99
- eventsEmit(errorType, errorData);
100
- }
101
- return Promise.reject(error);
102
- }
103
- );
104
-
105
- const getConfigById = async (id: any) => {
106
- try {
107
- const res: any = await axios$.get(`/qa/search/config/getById?configId=${id}`);
108
- const { success, data } = res;
109
- if (success) return data;
110
- return false;
111
- } catch (e) {
112
- console.error('getConfigById', e);
113
- }
114
- };
115
-
116
- const fetchDatabases = async () => {
117
- try {
118
- const res: any = await axios$.get(`/index/database/queryAllDBList`);
119
- const { success, data } = res;
120
- if (success) return data;
121
- return false;
122
- } catch (e) {
123
- console.error('fetchDatabases', e);
124
- }
125
- };
126
-
127
- const fetchConfigItemLimit = async () => {
128
- try {
129
- const res: any = await axios$.get(`/qa/search/config/configItemLimit`);
130
- const { success, data } = res;
131
- if (success) return data;
132
- return false;
133
- } catch (e) {
134
- console.error('fetchConfigItemLimit error', e);
135
- }
136
- };
137
-
138
- const fetchSensitiveLibrary = async (params: any) => {
139
- try {
140
- const res: any = await axios$.get(
141
- `/sensitive/library?${new URLSearchParams(params).toString()}`
142
- );
143
- const { success, data } = res;
144
- if (success) return data;
145
- return false;
146
- } catch (e) {
147
- console.log('fetchSensitiveLibrary error', e);
148
- return false;
149
- }
150
- };
151
-
152
- const fetchModels = async (params: any) => {
153
- try {
154
- const res: any = await axios$.get(
155
- `/index/modelInfo/allPage?${new URLSearchParams(params).toString()}`
156
- );
157
- const { success, data } = res;
158
- if (success) return data;
159
- return false;
160
- } catch (e) {
161
- console.log('fetchModels error', e);
162
- return false;
163
- }
164
- };
165
-
166
- const fetchKnowledgeBase = async (createBy?: string) => {
167
- try {
168
- const urlParams = createBy ? `?userName=${createBy}` : '';
169
- console.log('+++', urlParams);
170
-
171
- const res: any = await axios$.get(`/index/knowledgeBase/searchList${urlParams}`);
172
- const { success, data } = res;
173
- if (success) return data;
174
- return false;
175
- } catch (error) {
176
- console.log('e', error);
177
- }
178
- };
179
-
180
- const fetchGraphs = async () => {
181
- try {
182
- const res: any = await axios$.get(
183
- `/index/graph/platform/querySnapshotList?pageSize=999&pageNo=1`
184
- );
185
- const { success, data } = res;
186
- if (success) return data;
187
- return false;
188
- } catch (e) {
189
- console.error('fetchGraphs', e);
190
- }
191
- };
192
-
193
- const addConversationAssistant = async (params: any) => {
194
- try {
195
- const res: any = await axios$.post(`/qa/search/config/add`, {
196
- ...params,
197
- });
198
-
199
- const { success, data } = res;
200
- if (success) return data;
201
- } catch (e) {
202
- console.log('addConversationAssistant error:', e);
203
- return false;
204
- }
205
- };
206
-
207
- const updateConversationAssistant = async (id: string | number, params: any) => {
208
- try {
209
- const res: any = await axios$.put(`/qa/search/config/update`, {
210
- id,
211
- ...params,
212
- });
213
-
214
- const { success, data } = res;
215
- if (success) return data;
216
- } catch (e) {
217
- console.log('updateConversationAssistant error:', e);
218
- return false;
219
- }
220
- };
221
-
222
- const getBizLabelLabels = async (params: any) => {
223
- try {
224
- const res: any = await axios$.post(`/index/bizLabel/labels`, params);
225
-
226
- const { success, data } = res;
227
- if (success) return data;
228
- } catch (e) {
229
- console.log('updateConversationAssistant error:', e);
230
- return false;
231
- }
232
- };
233
-
234
- const checkName = async (name: string, id?: string | number) => {
235
- try {
236
- const res: any = await axios$.get(
237
- `/qa/search/config/checkName?configName=${name}${id ? `&configId=${id}` : ''}`
238
- );
239
- const { success, data } = res;
240
- if (success) return data;
241
- } catch (e) {
242
- console.log('updateConversationAssistant error:', e);
243
- return false;
244
- }
245
- };
246
-
247
- return {
248
- getConfigById,
249
- fetchDatabases,
250
- fetchModels,
251
- fetchSensitiveLibrary,
252
- fetchConfigItemLimit,
253
- fetchKnowledgeBase,
254
- fetchGraphs,
255
- checkName,
256
- getBizLabelLabels,
257
- addConversationAssistant,
258
- updateConversationAssistant,
259
- };
260
- };
261
-
262
- export default AxiosInstance;
@@ -1,167 +0,0 @@
1
- import React, { useMemo, useState } from 'react';
2
- import { Dropdown } from 'antd';
3
- import type { MenuProps } from 'antd';
4
- import { MoreHorizontal, Edit2, Trash2 } from 'lucide-react';
5
- import { ListItemType } from '.';
6
- import dayjs from 'dayjs';
7
-
8
- export interface GientechConversationBarItemProps {
9
- isActive: boolean;
10
- isDisabled: boolean;
11
- data: ListItemType;
12
- isNew: boolean;
13
- eventsEmit?: (type: string, data?: any) => void;
14
- styles?: any;
15
- assistantList?: any[];
16
- }
17
-
18
- export function GientechConversationBarItem({ isActive, isNew, isDisabled, data, eventsEmit, styles = {}, assistantList = [] }: GientechConversationBarItemProps) {
19
- const [hovered, setHovered] = useState(false);
20
- const colors = styles?.colors || {};
21
-
22
- // 由 configId 匹配助手名称(优先用 name,其次 configJson.config_name)
23
- const assistantName = useMemo(() => {
24
- const id = data?.configId;
25
- if (!id || !assistantList || assistantList.length === 0) return '未选择助手';
26
- const found = assistantList.find((a: any) => String(a?.id) === String(id));
27
- if (!found) return '未选择助手';
28
- if (found?.name) return found.name;
29
- try {
30
- const cj = typeof found.configJson === 'string' ? JSON.parse(found.configJson) : found.configJson;
31
- return cj?.config_name || '未选择助手';
32
- } catch {
33
- return '未选择助手';
34
- }
35
- }, [assistantList, data?.configId]);
36
-
37
- // antd v5+ menu items
38
- const menuItems: MenuProps['items'] = [
39
- {
40
- key: 'rename',
41
- icon: <Edit2 size={12} />,
42
- label: '重命名',
43
- onClick: (info) => {
44
- info.domEvent.stopPropagation();
45
- eventsEmit&&eventsEmit('conversations:rename_icon_clicked', data);
46
- },
47
- },
48
- {
49
- key: 'delete',
50
- icon: <Trash2 size={12} />,
51
- label: '删除',
52
- danger: true,
53
- onClick: (info) => {
54
- info.domEvent.stopPropagation();
55
- eventsEmit&&eventsEmit('conversations:delete_icon_clicked', data);
56
- },
57
- },
58
- ];
59
-
60
-
61
- // 动态样式
62
- const itemBg = isActive
63
- ? colors.activeItemBg || '#f0f4ff'
64
- : hovered
65
- ? colors.itemHoverBg || '#f5f7fa'
66
- : colors.itemBg || 'transparent';
67
- const itemText = isActive
68
- ? colors.activeItemText || colors.primary || '#0122ff'
69
- : colors.itemText || '#333';
70
- const borderColor = isActive
71
- ? colors.activeItemBorder || colors.primary || '#0122ff'
72
- : 'transparent';
73
-
74
- // 格式化时间显示
75
- const formatTime = (timestamp: number) => {
76
- const now = dayjs();
77
- const messageTime = dayjs(timestamp);
78
- const isToday = now.isSame(messageTime, 'day');
79
-
80
- if (isToday) {
81
- return messageTime.format('HH:mm');
82
- } else {
83
- return messageTime.format('MM-DD HH:mm');
84
- }
85
- };
86
-
87
- return (
88
- <div
89
- className={`flex relative items-center justify-between mb-2 px-4 py-3 rounded-md transition-colors cursor-pointer select-none`}
90
- onClick={() => !isDisabled && eventsEmit&&eventsEmit('conversation:item_click', data)}
91
- onMouseEnter={() => setHovered(true)}
92
- onMouseLeave={() => setHovered(false)}
93
- style={{
94
- minHeight: 48,
95
- background: itemBg,
96
- color: itemText,
97
- border: `1px solid ${borderColor}`,
98
- ...styles.item,
99
- opacity: isDisabled ? 0.5 : 1,
100
- }}
101
- >
102
- <div className="flex flex-col gap-y-2 flex-1 min-w-0">
103
- {/* 主标题 */}
104
- <span
105
- className="truncate text-sm max-w-[160px] font-medium"
106
- title={data.label || '未命名会话'}
107
- style={{
108
- color: itemText,
109
- fontSize: '14px',
110
- lineHeight: '1.4'
111
- }}
112
- >
113
- {data.label || '未命名会话'}
114
- </span>
115
-
116
- {/* 副标题和时间 */}
117
- <div className="flex items-center justify-between gap-2">
118
- <span
119
- className="text-xs truncate flex-1"
120
- style={{
121
- color: isActive ? colors.activeItemTextSecondary || '#666' : colors.itemTextSecondary || '#666',
122
- fontSize: '12px',
123
- lineHeight: '1.3'
124
- }}
125
- >
126
- {assistantName}
127
- </span>
128
-
129
- {/* 时间显示 */}
130
- {data.gmtModified && (
131
- <span
132
- className="text-xs flex-shrink-0"
133
- style={{
134
- color: isActive ? colors.activeItemTextSecondary || '#999' : colors.itemTextSecondary || '#999',
135
- fontSize: '12px',
136
- lineHeight: '1.3'
137
- }}
138
- >
139
- {formatTime(data.gmtModified)}
140
- </span>
141
- )}
142
- </div>
143
- </div>
144
-
145
- {/* 省略号菜单 */}
146
- {!isDisabled && hovered && !isNew && (
147
- <div className="absolute top-2 right-3">
148
- <Dropdown
149
- menu={{ items: menuItems }}
150
- trigger={['click']}
151
- placement="bottomRight"
152
- >
153
- <MoreHorizontal
154
- size={16}
155
- className="text-gray-600 hover:text-gray-800"
156
- style={{
157
- cursor: 'pointer',
158
- color: isActive ? colors.activeItemTextSecondary || '#999' : colors.itemTextSecondary || '#999'
159
- }}
160
- onClick={(e: React.MouseEvent) => e.stopPropagation()}
161
- />
162
- </Dropdown>
163
- </div>
164
- )}
165
- </div>
166
- );
167
- }
@@ -1,210 +0,0 @@
1
- import React, { useMemo, useRef, useEffect } from 'react';
2
- import { VariableSizeList as List } from 'react-window';
3
- import { GientechConversationBarItem } from './Item';
4
- import { groupConversationsByTime, ListItemType } from './groupByTime';
5
- import { Flipper, Flipped } from 'react-flip-toolkit';
6
-
7
- export interface GientechConversationBarListProps {
8
- data: ListItemType[];
9
- activedItem: string;
10
- onChange?: (sessionId: string) => void;
11
- onDelete?: (item: ListItemType) => void;
12
- sortRules?: { label: string; dayPeriod: number }[];
13
- eventsEmit?: (eventName: string, data?: any) => void;
14
- assistantList?: any[];
15
- height?: number;
16
- styles?: any;
17
- hasMore?: boolean;
18
- loadingMore?: boolean;
19
- }
20
-
21
- export function GientechConversationBarList(
22
- props: GientechConversationBarListProps & { styles?: any }
23
- ) {
24
- const {
25
- data,
26
- activedItem,
27
- onChange,
28
- onDelete,
29
- sortRules = [{ label: '当天', dayPeriod: 1 }],
30
- eventsEmit,
31
- assistantList,
32
- height = 400,
33
- styles = {},
34
- hasMore = false,
35
- loadingMore = false,
36
- } = props;
37
-
38
- // 用于动画的 flipKey,包含 sessionId 和 gmtModified
39
- const flipKey = data.map(i => i.sessionId + '-' + i.gmtModified).join(',');
40
-
41
- const flatList = useMemo(() => {
42
- const rules = sortRules.length > 0 ? sortRules : [{ label: '当天', dayPeriod: 1 }];
43
- const sortedList = groupConversationsByTime(data, rules);
44
- const hasOtherOnly = rules.every(
45
- rule => !sortedList[rule.label] || sortedList[rule.label].length === 0
46
- );
47
- const arr: { type: 'group' | 'item'; label?: string; data?: ListItemType }[] = [];
48
- rules.forEach(rule => {
49
- if (sortedList[rule.label] && sortedList[rule.label].length > 0) {
50
- arr.push({ type: 'group', label: rule.label });
51
- sortedList[rule.label].forEach(i => arr.push({ type: 'item', data: i }));
52
- }
53
- });
54
- if (sortedList.other.length > 0 && !hasOtherOnly) {
55
- arr.push({ type: 'group', label: '其他' });
56
- sortedList.other.forEach(i => arr.push({ type: 'item', data: i }));
57
- }
58
- if (hasOtherOnly && sortedList.other.length > 0) {
59
- sortedList.other.forEach(i => arr.push({ type: 'item', data: i }));
60
- }
61
- return arr;
62
- }, [data, sortRules, flipKey]);
63
-
64
- // 代表当前扁平顺序与类型的签名,用于监测重排
65
- const layoutKey = useMemo(() => {
66
- return flatList
67
- .map(i => (i.type === 'group' ? `g:${i.label}` : `i:${i.data!.sessionId}`))
68
- .join('|');
69
- }, [flatList]);
70
-
71
- const ITEM_HEIGHT = 56;
72
- const ITEM_GAP = 14;
73
- const FOOTER_HEIGHT = 36;
74
-
75
- const getItemSize = (index: number) => {
76
- // 最后一项为 Footer
77
- if (index === flatList.length) return FOOTER_HEIGHT;
78
- return flatList[index].type === 'group' ? 32 : ITEM_HEIGHT + ITEM_GAP;
79
- };
80
-
81
- // 新增:List ref
82
- const listRef = useRef<any>(null);
83
- // 新增:当前激活会话在 flatList 的 index(仅依赖 activedItem 与数据映射)
84
- const activeIndex = useMemo(() => {
85
- return flatList.findIndex(item => item.type === 'item' && item.data?.sessionId === activedItem);
86
- }, [flatList, activedItem]);
87
- // 新增:flatList 里第一个会话项的 index
88
- const firstItemIndex = useMemo(() => {
89
- return flatList.findIndex(item => item.type === 'item');
90
- }, [flatList]);
91
- // 仅在激活项变化时,且激活项恰好是第一项时滚动到顶部;加载更多时不触发
92
- const lastActivedRef = useRef<string | undefined>(undefined);
93
- useEffect(() => {
94
- const last = lastActivedRef.current;
95
- if (activedItem !== last && activeIndex > -1 && activeIndex === firstItemIndex && listRef.current) {
96
- listRef.current.scrollToItem(activeIndex, 'start');
97
- }
98
- lastActivedRef.current = activedItem;
99
- }, [activedItem, activeIndex, firstItemIndex]);
100
-
101
- // 轻量刷新缓存:仅在数据长度变化时刷新末尾,避免重置滚动位置
102
- const prevCountRef = useRef<number>(0);
103
- useEffect(() => {
104
- if (listRef.current) {
105
- const prev = prevCountRef.current;
106
- const curr = flatList.length;
107
- prevCountRef.current = curr;
108
- if (curr !== prev) {
109
- // 如果数据量变化很大(比如从少量恢复到大量,可能是搜索清空),强制重新计算所有尺寸
110
- const changeRatio = prev > 0 ? Math.abs(curr - prev) / prev : 1;
111
- const shouldForceReset = changeRatio > 0.5 || (prev < 10 && curr > 20); // 变化超过50%或从少量恢复到大量
112
- listRef.current.resetAfterIndex(0, shouldForceReset);
113
- }
114
- }
115
- }, [flatList.length]);
116
-
117
- // 当分组/顺序发生变化时,重置尺寸缓存,避免位置叠加
118
- useEffect(() => {
119
- if (listRef.current) {
120
- // 强制重新计算所有尺寸,避免重叠
121
- listRef.current.resetAfterIndex(0, true);
122
- }
123
- }, [layoutKey]);
124
-
125
- // hooks全部调用完后再判断是否为空
126
- if (flatList.length === 0) {
127
- return <div className="text-center text-zinc-400 py-8">暂无会话</div>;
128
- }
129
-
130
- const colors = styles?.colors || {};
131
-
132
- return (
133
- <Flipper flipKey={flipKey} spring={{ stiffness: 180, damping: 18 }}>
134
- <List
135
- ref={listRef}
136
- height={height}
137
- width={'100%'}
138
-
139
- itemCount={flatList.length + 1}
140
- itemSize={getItemSize}
141
- itemKey={index => {
142
- if (index === flatList.length) return 'footer';
143
- const item = flatList[index];
144
- return item.type === 'item' ? item.data!.sessionId : `group-${item.label}`;
145
- }}
146
- onItemsRendered={({ visibleStopIndex }) => {
147
- // 接近底部自动加载
148
- const threshold = 3;
149
- if (
150
- hasMore &&
151
- !loadingMore &&
152
- visibleStopIndex >= flatList.length - 1 - threshold &&
153
- typeof eventsEmit === 'function'
154
- ) {
155
- eventsEmit('conversations:load_more');
156
- }
157
- }}
158
- style={{ overflowX: 'hidden' }}
159
- >
160
- {({ index, style }) => {
161
- // Footer 行
162
- if (index === flatList.length) {
163
- const colors = styles?.colors || {};
164
- return (
165
- <div
166
- style={{
167
- ...style,
168
- height: FOOTER_HEIGHT,
169
- lineHeight: `${FOOTER_HEIGHT}px`,
170
- textAlign: 'center',
171
- fontSize: '10px',
172
- color: colors.textMuted || '#9ca3af',
173
- background: colors.groupBg || 'white',
174
- }}
175
- >
176
- {loadingMore ? '加载中...' : hasMore ? '' : '没有更多了'}
177
- </div>
178
- );
179
- }
180
- const item = flatList[index];
181
- if (item.type === 'group') {
182
- return (
183
- <div
184
- style={{ ...style, background: colors.groupBg || 'white', zIndex: 1 }}
185
- className="pt-2 pb-1 px-[28px] py-[2px] text-xs text-gray-400"
186
- >
187
- {item.label}
188
- </div>
189
- );
190
- }
191
- return (
192
- <Flipped key={item.data!.sessionId} flipId={item.data!.sessionId}>
193
- <div style={style} className='px-[12px] py-[2px]'>
194
- <GientechConversationBarItem
195
- isActive={activedItem === item.data!.sessionId}
196
- isDisabled={false}
197
- isNew={item.data!.isNew}
198
- data={item.data!}
199
- eventsEmit={eventsEmit}
200
- assistantList={assistantList}
201
- styles={styles}
202
- />
203
- </div>
204
- </Flipped>
205
- );
206
- }}
207
- </List>
208
- </Flipper>
209
- );
210
- }
@@ -1,39 +0,0 @@
1
- export interface ListItemType {
2
- label: string;
3
- sessionId: string;
4
- gmtModified: number;
5
- [key: string]: any;
6
- }
7
- export interface SortRule {
8
- label: string;
9
- dayPeriod: number;
10
- }
11
-
12
- /**
13
- * 按时间分组会话数据
14
- * @param data 会话列表
15
- * @param rules 分组规则
16
- * @returns 分组后的对象
17
- */
18
- export function groupConversationsByTime(
19
- data: ListItemType[],
20
- rules: SortRule[] = [{ label: '当天', dayPeriod: 1 }]
21
- ): Record<string, ListItemType[]> {
22
- const now = new Date();
23
- const sortedList: Record<string, ListItemType[]> = { other: [] };
24
- data.forEach(item => {
25
- const itemDate = new Date(item.gmtModified);
26
- const daysDifference = Math.floor((+now - +itemDate) / (1000 * 60 * 60 * 24));
27
- let found = false;
28
- for (const rule of rules) {
29
- if (daysDifference <= rule.dayPeriod) {
30
- if (!sortedList[rule.label]) sortedList[rule.label] = [];
31
- sortedList[rule.label].push(item);
32
- found = true;
33
- break;
34
- }
35
- }
36
- if (!found) sortedList.other.push(item);
37
- });
38
- return sortedList;
39
- }