index.tsx 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import NavBarNormal from "@/components/NavBarNormal/index";
  2. import { View } from "@tarojs/components";
  3. import PageCustom from "@/components/page-custom/index";
  4. import TabBarButtons from "@/components/wemeta-tabs/TabBarButtons";
  5. import AgentSetting from "./components/AgentSetting/";
  6. import AgentWebsite from "./components/AgentWebsite/";
  7. import { useAgentStore } from "@/store/agentStore";
  8. import { useEffect, useState } from "react";
  9. import { useDidShow, useRouter } from "@tarojs/taro";
  10. import { useComponentStore } from "@/store/componentStore";
  11. import { useUserStore } from "@/store/userStore";
  12. import { useAppStore } from "@/store/appStore";
  13. import style from './index.module.less'
  14. export default function Index() {
  15. const [tabIndex, setTabIndex] = useState('1');
  16. const router = useRouter();
  17. const headerHeight = useAppStore((state) => state.headerHeight);
  18. const agentId = router.params.agentId;
  19. const { fetchAgent } = useAgentStore();
  20. const { fetchMyEntList } = useUserStore();
  21. const { setComponentList } = useComponentStore();
  22. const handleTabIndexChange = (index: string) => {
  23. setTabIndex(index);
  24. };
  25. const fetchAgentDetail = async (agentId: string) => {
  26. const result = await fetchAgent(agentId);
  27. if (result) {
  28. const components = result.components ?? []
  29. // 过滤掉没有 id 的组件防止有错误数据
  30. setComponentList(components.filter(c => !!c.data?.id), agentId);
  31. }
  32. fetchMyEntList()
  33. };
  34. const tabList = [
  35. {
  36. key: "1",
  37. label: "智能体",
  38. },
  39. {
  40. key: "2",
  41. label: "微官网",
  42. },
  43. ];
  44. useDidShow(()=> {
  45. agentId && fetchAgentDetail(agentId);
  46. })
  47. return (
  48. <PageCustom>
  49. <NavBarNormal scrollFadeIn backText="创建"></NavBarNormal>
  50. <View className="px-16 w-full flex flex-col gap-20">
  51. {/* <View className={style.tabContainer} style={{top: (headerHeight) + 'px'}}>
  52. </View> */}
  53. <TabBarButtons
  54. current={tabIndex}
  55. list={tabList}
  56. onTabIndexChange={handleTabIndexChange}
  57. ></TabBarButtons>
  58. <View className={`${tabIndex === "1" ? "block" : "hidden"}`}>
  59. <AgentSetting></AgentSetting>
  60. </View>
  61. <View className={`${tabIndex === "2" ? "block" : "hidden"}`}>
  62. <AgentWebsite></AgentWebsite>
  63. </View>
  64. </View>
  65. </PageCustom>
  66. );
  67. }