main
lvchenpeng 2 months ago
parent 407f39c290
commit 1c95013899

@ -6,7 +6,7 @@ import {Anchor, Button, Card, Image} from "antd";
import {RightCircleOutlined, LikeFilled, WechatFilled, HomeFilled, DribbbleSquareFilled, CopyFilled, MedicineBoxFilled, IeCircleFilled, IdcardFilled, HourglassFilled, InsuranceFilled} from "@ant-design/icons";
// import Link from "next/link";
import request from '@/app/request';
import Title from "@/app/(main)/discover/components/Title";
import Title from "../discover/components/Title";
const stList = [
{

@ -154,19 +154,9 @@ const AssistantCard = memo<AssistantCardProps>(
}
return (
<Flexbox className={cx(styles.container, className)} gap={24} style={style}>
{!isCompact && (
<div
onClick={() => {
router.push(href);
}}
>
<CardBanner avatar={avatar} />
</div>
)}
<Flexbox className={cx(styles.container, className)} gap={24} style={style} {...rest}>
{!isCompact && <CardBanner avatar={avatar} />}
<Flexbox gap={12} padding={16}>
<Link href={href}>
<Flexbox gap={12}>
<Flexbox
align={isCompact ? 'flex-start' : 'flex-end'}
gap={16}
@ -225,34 +215,32 @@ const AssistantCard = memo<AssistantCardProps>(
<Paragraph className={styles.desc} ellipsis={{ rows: 2 }}>
{description}
</Paragraph>
</Flexbox>
</Link>
<Flexbox gap={6} horizontal style={{ flexWrap: 'wrap' }}>
{showCategory && categoryItem ? (
<Link href={urlJoin('/discover/assistants', categoryItem.key)}>
<Flexbox gap={6} horizontal style={{ flexWrap: 'wrap', justifyContent: "space-between" }}>
<div onClick={(e) => {e.stopPropagation()}} style={{width: '85%'}}>
{showCategory && categoryItem ? (
<Tag icon={categoryItem.icon} style={{ margin: 0 }}>
{categoryItem.label}
</Tag>
</Link>
) : (
tags
.slice(0, 4)
.filter(Boolean)
.map((tag: string, index) => {
// const url = qs.stringifyUrl({
// query: { q: tag, type: 'assistants' },
// url: '/discover/search',
// });
return (
<Tag key={index} style={{ margin: '0 5' }}>{startCase(tag).trim()}</Tag>
// <Link href={url} key={index}>
// <Link key={index}>
// <Tag style={{ margin: 0 }}>{startCase(tag).trim()}</Tag>
// </Link>
);
})
)}
) : (
tags
.slice(0, 4)
.filter(Boolean)
.map((tag: string, index) => {
// const url = qs.stringifyUrl({
// query: { q: tag, type: 'assistants' },
// url: '/discover/search',
// });
return (
<Tag key={index} style={{ margin: '0 5' }}>{startCase(tag).trim()}</Tag>
// <Link href={url} key={index}>
// <Link key={index}>
// <Tag style={{ margin: 0 }}>{startCase(tag).trim()}</Tag>
// </Link>
);
})
)}
</div>
</Flexbox>
</Flexbox>
</Flexbox>

@ -38,46 +38,46 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
};
}, [stData, mobile]);
// useEffect(() => {
// const fetchData = async() => {
// if(category === "collect") {
// const res = await request({
// method: "get",
// params: {
// userid: userId
// },
// url: "/flxai/api/robot/appaiassistant/getAllAiAssistant"
// })
// setStData(res?.data.map((item)=> {
// item.classify = 'collect';
// return item
// }))
// } else {
// const res = await request({
// method: "get",
// params: {
// userid: userId
// },
// url: "/flxai/api/robot/appaiassistant/getAllAiAssistant"
// })
// const array2Object = {};
// res?.data?.forEach((item) => {
// array2Object[item.identifier] = item;
// });
// setStData(stData?.map((item)=> {
// const matchingItem = array2Object[item.identifier];
// if (matchingItem) {
// matchingItem.status = '1';
// return matchingItem
// } else {
// item.status = '0';
// return item
// }
// }))
// }
// };
// fetchData();
// }, []); // 空数组[]意味着仅在组件挂载时调用一次
useEffect(() => {
const fetchData = async() => {
if(category === "collect") {
const res = await request({
method: "get",
params: {
userid: userId
},
url: "/flxai/api/robot/appaiassistant/getAllAiAssistant"
})
setStData(res?.data.map((item)=> {
item.classify = 'collect';
return item
}))
} else {
const res = await request({
method: "get",
params: {
userid: userId
},
url: "/flxai/api/robot/appaiassistant/getAllAiAssistant"
})
const array2Object = {};
res?.data?.forEach((item) => {
array2Object[item.identifier] = item;
});
setStData(stData?.map((item)=> {
const matchingItem = array2Object[item.identifier];
if (matchingItem) {
matchingItem.status = '1';
return matchingItem
} else {
item.status = '0';
return item
}
}))
}
};
fetchData();
}, []); // 空数组[]意味着仅在组件挂载时调用一次
const handleClickCard = (item) => {
console.log(item)
@ -93,13 +93,15 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
data={all}
initialItemCount={24}
itemContent={(_, item) => (
<Card
href={urlJoin('/discover/assistant/', item.identifier)}
key={item.identifier}
showCategory
variant={'compact'}
{...item}
/>
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card
// href={urlJoin('/discover/assistant/', item.identifier)}
key={item.identifier}
showCategory
variant={'compact'}
{...item}
/>
</div>
)}
style={{
minHeight: '75vh',
@ -117,7 +119,11 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
<Grid maxItemWidth={280} rows={4}>
{all?.map((item) => (
// <Link href={urlJoin('/discover/assistant/', item.identifier)} key={item.identifier}>
<Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory={!category} {...item} />
</div>
// <Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
// </Link>
))}
</Grid>
@ -127,12 +133,14 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
<Title>{t('assistants.recentSubmits')}</Title>
<Grid maxItemWidth={280} rows={4}>
{recent.map((item) => (
<Card
href={urlJoin('/discover/assistant/', item.identifier)}
key={item.identifier}
showCategory={!category}
{...item}
/>
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card
// href={urlJoin('/discover/assistant/', item.identifier)}
key={item.identifier}
showCategory={!category}
{...item}
/>
</div>
))}
</Grid>
{last && last?.length > 0 && (
@ -142,13 +150,15 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
data={last}
initialItemCount={12}
itemContent={(_, item) => (
<Card
href={urlJoin('/discover/assistant/', item.identifier)}
key={item.identifier}
showCategory={!category}
variant={'compact'}
{...item}
/>
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card
// href={urlJoin('/discover/assistant/', item.identifier)}
key={item.identifier}
showCategory={!category}
variant={'compact'}
{...item}
/>
</div>
)}
style={{
minHeight: '75vh',

@ -143,8 +143,11 @@ const ModelCard = memo<ModelCardProps>(({ className,socialData, meta, identifier
return;
}
};
const handleClickCard = (item) => {
console.log(item)
}
return (
<Flexbox className={cx(styles.container, className)} gap={24} key={identifier}>
<Flexbox className={cx(styles.container, className)} gap={24} key={identifier} {...rest}>
<Flexbox
gap={12}
padding={16}

@ -28,56 +28,58 @@ const List = memo<ListProps>(({ category, searchKeywords, items = [] }) => {
const userId = getUserId(useUserStore.getState())
const [stData, setStData] = useState(items)
// useEffect(() => {
// const fetchData = async() => {
// if(category === "collect") {
// const res = await request({
// method: "get",
// params: {
// userid: userId
// },
// url: "/flxai/api/robot/appaimodel/getAllAiModel",
// })
// setStData(res?.data.map((item)=> {
// item.classify = 'collect';
// return item
// }))
// // items = res.data;
// // items = items.map((item)=> {
// // item.classify = 'collect';
// // return item
// // })
// } else {
// const res = await request({
// method: "get",
// params: {
// userid: userId
// },
// url: "/flxai/api/robot/appaimodel/getAllAiModel",
// })
// const array2Object = {};
// res?.data?.forEach(item => {
// array2Object[item.identifier] = item;
// });
// setStData(stData.map((item)=> {
// const matchingItem = array2Object[item.identifier];
// if (matchingItem) {
// matchingItem.status = '1';
// return matchingItem
// } else {
// item.status = '0';
// return item
// }
// }))
// }
// };
// fetchData();
// }, []); // 空数组[]意味着仅在组件挂载时调用一次
useEffect(() => {
const fetchData = async() => {
if(category === "collect") {
const res = await request({
method: "get",
params: {
userid: userId
},
url: "/flxai/api/robot/appaimodel/getAllAiModel",
})
setStData(res?.data.map((item)=> {
item.classify = 'collect';
return item
}))
// items = res.data;
// items = items.map((item)=> {
// item.classify = 'collect';
// return item
// })
} else {
const res = await request({
method: "get",
params: {
userid: userId
},
url: "/flxai/api/robot/appaimodel/getAllAiModel",
})
const array2Object = {};
res?.data?.forEach(item => {
array2Object[item.identifier] = item;
});
setStData(stData.map((item)=> {
const matchingItem = array2Object[item.identifier];
if (matchingItem) {
matchingItem.status = '1';
return matchingItem
} else {
item.status = '0';
return item
}
}))
}
};
fetchData();
}, []); // 空数组[]意味着仅在组件挂载时调用一次
const handleClickCard = (item) => {
console.log(item)
// console.log(router)
router.push(urlJoin('/discover/model/', item.identifier))
}
if (searchKeywords) {
if (!stData || stData?.length === 0) return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />;
return (
@ -87,7 +89,10 @@ const List = memo<ListProps>(({ category, searchKeywords, items = [] }) => {
data={stData}
initialItemCount={24}
itemContent={(_, item) => (
<Card onClick={() => handleClickCard(item)} showCategory {...item} />
// <Card href={urlJoin('/discover/model/', item.identifier)} showCategory {...item} />
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory {...item} />
</div>
)}
style={{
minHeight: '75vh',
@ -105,7 +110,10 @@ const List = memo<ListProps>(({ category, searchKeywords, items = [] }) => {
<Grid maxItemWidth={280} rows={4}>
{stData.map((item) => (
// <Link href={urlJoin('/discover/assistant/', item.identifier)} key={item.identifier}>
<Card style={{boxShadow: "1px 0px 12px 0px rgba(42, 77, 255, 0.19)"}} key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
// <Card style={{boxShadow: "1px 0px 12px 0px rgba(42, 77, 255, 0.19)"}} key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory={!category} {...item} />
</div>
// </Link>
))}
</Grid>
@ -118,7 +126,10 @@ const List = memo<ListProps>(({ category, searchKeywords, items = [] }) => {
initialItemCount={24}
itemContent={(_, item) => (
// <Link href={urlJoin('/discover/model/', item.identifier)} key={item.identifier}>
<Card style={{boxShadow: "1px 0px 12px 0px rgba(42, 77, 255, 0.19)"}} key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
// <Card style={{boxShadow: "1px 0px 12px 0px rgba(42, 77, 255, 0.19)"}} onClick={() => handleClickCard(item)} key={item.identifier} showCategory={!category} {...item} />
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory={!category} {...item} />
</div>
// </Link>
)}
style={{

@ -35,47 +35,47 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
};
}, [stData, mobile]);
// useEffect(() => {
// const fetchData = async() => {
// if(category === "collect") {
// const res = await request({
// method: "get",
// params: {
// userid: userId
// },
// url: "/flxai/api/robot/appaiplugin/getAllAiPlugin",
// })
// setStData(res?.data.map((item)=> {
// item.classify = 'collect';
// return item
// }))
// } else {
// const res = await request({
// method: "get",
// params: {
// userid: userId
// },
// url: "/flxai/api/robot/appaiplugin/getAllAiPlugin",
// })
// const array2Object = {};
// res?.data?.forEach((item) => {
// array2Object[item.identifier] = item;
// });
// // console.log('chajian22222222222222222222222222222--------------')
// setStData(stData.map((item)=> {
// const matchingItem = array2Object[item.identifier];
// if (matchingItem) {
// matchingItem.status = '1';
// return matchingItem
// } else {
// item.status = '0';
// return item
// }
// }))
// }
// };
// fetchData();
// }, []); // 空数组[]意味着仅在组件挂载时调用一次
useEffect(() => {
const fetchData = async() => {
if(category === "collect") {
const res = await request({
method: "get",
params: {
userid: userId
},
url: "/flxai/api/robot/appaiplugin/getAllAiPlugin",
})
setStData(res?.data.map((item)=> {
item.classify = 'collect';
return item
}))
} else {
const res = await request({
method: "get",
params: {
userid: userId
},
url: "/flxai/api/robot/appaiplugin/getAllAiPlugin",
})
const array2Object = {};
res?.data?.forEach((item) => {
array2Object[item.identifier] = item;
});
// console.log('chajian22222222222222222222222222222--------------')
setStData(stData.map((item)=> {
const matchingItem = array2Object[item.identifier];
if (matchingItem) {
matchingItem.status = '1';
return matchingItem
} else {
item.status = '0';
return item
}
}))
}
};
fetchData();
}, []); // 空数组[]意味着仅在组件挂载时调用一次
// console.log('chajian999999999999999--------------',stData)
@ -92,13 +92,14 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
data={all}
initialItemCount={24}
itemContent={(_, item) => (
<Card
showCategory
variant={'compact'}
{...item}
href={urlJoin('/discover/plugin/', item.identifier)}
key={item.identifier}
/>
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card
showCategory
variant={'compact'}
{...item}
key={item.identifier}
/>
</div>
)}
style={{
minHeight: '75vh',
@ -114,10 +115,11 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
<>
<Title tag={all.length}></Title>
<Grid maxItemWidth={280} rows={4}>
{all?.map((item) => (
// <Link href={urlJoin('/discover/assistant/', item.identifier)} key={item.identifier}>
<Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
// </Link>
{all?.map((item,index) => (
// <div onClick={() => handleClickCard(item)}>测试接口</div>
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory={!category} {...item} />
</div>
))}
</Grid>
</>
@ -126,7 +128,10 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
<Title>{t('plugins.recentSubmits')}</Title>
<Grid maxItemWidth={280} rows={4}>
{recent?.map((item) => (
<Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
// <Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} {...item} />
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory={!category} {...item} />
</div>
))}
</Grid>
{last && last?.length > 0 && (
@ -136,7 +141,10 @@ const List = memo<ListProps>(({ category, mobile, searchKeywords, items = [] })
data={last}
initialItemCount={12}
itemContent={(_, item) => (
<Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} variant={'compact'} {...item} />
// <Card key={item.identifier} onClick={() => handleClickCard(item)} showCategory={!category} variant={'compact'} {...item} />
<div onClick={() => handleClickCard(item)} key={item.identifier}>
<Card key={item.identifier} showCategory={!category} {...item} />
</div>
)}
style={{
minHeight: '75vh',

@ -45,7 +45,7 @@ const StoreSearchBar = memo<StoreSearchBarProps>(({ mobile, onBlur, onFocus, ...
const activeType = activeKey === DiscoverTab.Home ? DiscoverTab.Assistants : activeKey;
const userId = getUserId(useUserStore.getState())
console.log(userId,'storeSearch3333333333333----')
useEffect(() => {
if (!pathname.includes('/discover/search')) return;
// 使用 useQueryState 时,当 handleSearch 为空时无法回跳

@ -23,9 +23,6 @@ const Layout = async ({ children }: PropsWithChildren) => {
width={'100%'}
>
<Flexbox gap={24} horizontal style={{ position: 'relative' }} width={'100%'}>
<CategoryContainer top={32}>
<Category />
</CategoryContainer>
<Flexbox flex={1} gap={16}>
{children}
</Flexbox>

@ -16,6 +16,7 @@ const AssistantsResult = async ({
q: string;
userid: string;
}) => {
console.log(userid,'222222')
const res = await request({
method: "get",
params: {

@ -25,7 +25,7 @@ type Props = PageProps<
const getSharedProps = async (props: Props) => {
const searchParams = await props.searchParams;
const { q, type = 'assistants' } = searchParams;
const { q, type = 'assistants',userid } = searchParams;
const { isMobile, locale: hl } = await RouteVariants.getVariantsFromProps(props);
const { t, locale } = await translation('metadata', searchParams?.hl || hl);
return {
@ -34,6 +34,7 @@ const getSharedProps = async (props: Props) => {
q,
t,
type,
userid,
};
};
@ -51,6 +52,7 @@ export const generateMetadata = async (props: Props) => {
const Page = async (props: Props) => {
const { locale, t, q, type, isMobile,userid } = await getSharedProps(props);
console.log(userid,'search88888888888888----')
if (!q) redirect(urlJoin(`/discover`, type));
const keywords = decodeURIComponent(q);

@ -25,6 +25,7 @@ export const config = {
'/discover(.*)',
'/chat',
'/chat(.*)',
'/applicationset(.*)',
'/changelog(.*)',
'/settings(.*)',
'/files',

Loading…
Cancel
Save