afff
This commit is contained in:
parent
f5dce3210c
commit
f0f15024c0
|
@ -87,11 +87,11 @@ export default function CourseCard({ course, edit = false }: CourseCardProps) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<span className="text-xs font-medium text-gray-500 flex items-center">
|
<span className="gap-1 text-xs font-medium text-gray-500 flex items-center">
|
||||||
<EyeOutlined />
|
<EyeOutlined />
|
||||||
{`观看次数 ${course?.meta?.views || 0}`}
|
{`观看次数 ${course?.meta?.views || 0}`}
|
||||||
</span>
|
</span>
|
||||||
<span className="text-xs font-medium text-gray-500 flex items-center">
|
<span className="gap-1 text-xs font-medium text-gray-500 flex items-center">
|
||||||
<BookOutlined />
|
<BookOutlined />
|
||||||
{`学习人数 ${course?.studentIds?.length || 0}`}
|
{`学习人数 ${course?.studentIds?.length || 0}`}
|
||||||
</span>
|
</span>
|
||||||
|
@ -102,7 +102,7 @@ export default function CourseCard({ course, edit = false }: CourseCardProps) {
|
||||||
size="large"
|
size="large"
|
||||||
className="w-full shadow-[0_8px_20px_-6px_rgba(59,130,246,0.5)] hover:shadow-[0_12px_24px_-6px_rgba(59,130,246,0.6)]
|
className="w-full shadow-[0_8px_20px_-6px_rgba(59,130,246,0.5)] hover:shadow-[0_12px_24px_-6px_rgba(59,130,246,0.6)]
|
||||||
transform hover:translate-y-[-2px] transition-all duration-500 ease-out">
|
transform hover:translate-y-[-2px] transition-all duration-500 ease-out">
|
||||||
{edit ? "进行编辑" : "立即学习"}
|
{edit ? "编辑" : "立即学习"}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default function FilterSection() {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div className="bg-white z-0 p-6 rounded-lg mt-4 shadow-sm w-1/6 space-y-6 h-[820px] fixed overscroll-contain overflow-x-hidden">
|
<div className=" flex z-0 p-6 flex-col rounded-lg mt-4 space-y-6 h-[820px] overscroll-contain overflow-x-hidden">
|
||||||
{taxonomies?.map((tax, index) => {
|
{taxonomies?.map((tax, index) => {
|
||||||
const items = Object.entries(selectedTerms).find(
|
const items = Object.entries(selectedTerms).find(
|
||||||
([key, items]) => key === tax.slug
|
([key, items]) => key === tax.slug
|
||||||
|
@ -31,7 +31,7 @@ export default function FilterSection() {
|
||||||
</h3>
|
</h3>
|
||||||
<TermParentSelector
|
<TermParentSelector
|
||||||
value={items}
|
value={items}
|
||||||
slug = {tax?.slug}
|
slug={tax?.slug}
|
||||||
className="w-70 max-h-[400px] overscroll-contain overflow-x-hidden"
|
className="w-70 max-h-[400px] overscroll-contain overflow-x-hidden"
|
||||||
onChange={(selected) =>
|
onChange={(selected) =>
|
||||||
handleTermChange(
|
handleTermChange(
|
||||||
|
@ -39,27 +39,8 @@ export default function FilterSection() {
|
||||||
selected as string[]
|
selected as string[]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
taxonomyId={tax?.id}
|
taxonomyId={tax?.id}></TermParentSelector>
|
||||||
></TermParentSelector>
|
<Divider></Divider>
|
||||||
{/* <TermSelect
|
|
||||||
// open
|
|
||||||
className="w-72"
|
|
||||||
value={items}
|
|
||||||
dropdownRender={(menu) => (
|
|
||||||
<div style={{ padding: "8px" }}>{menu}</div>
|
|
||||||
)}
|
|
||||||
dropdownStyle={{ maxHeight: 400, overflow: "auto" }}
|
|
||||||
multiple
|
|
||||||
taxonomyId={tax?.id}
|
|
||||||
onChange={(selected) =>
|
|
||||||
handleTermChange(
|
|
||||||
tax?.slug,
|
|
||||||
selected as string[]
|
|
||||||
)
|
|
||||||
}></TermSelect>
|
|
||||||
{index < taxonomies.length - 1 && (
|
|
||||||
<Divider className="my-6" />
|
|
||||||
)} */}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
import { CloudOutlined, FileSearchOutlined, HomeOutlined, MailOutlined, PhoneOutlined } from '@ant-design/icons';
|
import {
|
||||||
|
CloudOutlined,
|
||||||
|
FileSearchOutlined,
|
||||||
|
HomeOutlined,
|
||||||
|
MailOutlined,
|
||||||
|
PhoneOutlined,
|
||||||
|
} from "@ant-design/icons";
|
||||||
|
|
||||||
export function MainFooter() {
|
export function MainFooter() {
|
||||||
return (
|
return (
|
||||||
<footer className="bg-gradient-to-b from-slate-800 to-slate-900 z-20 text-secondary-200">
|
<footer className="bg-gradient-to-b from-slate-800 to-slate-900 relative z-50 text-secondary-200">
|
||||||
<div className="container mx-auto px-4 py-6">
|
<div className="container mx-auto px-4 py-6">
|
||||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||||
{/* 开发组织信息 */}
|
{/* 开发组织信息 */}
|
||||||
|
@ -19,11 +25,15 @@ export function MainFooter() {
|
||||||
<div className="text-center space-y-2">
|
<div className="text-center space-y-2">
|
||||||
<div className="flex items-center justify-center space-x-2">
|
<div className="flex items-center justify-center space-x-2">
|
||||||
<PhoneOutlined className="text-gray-400" />
|
<PhoneOutlined className="text-gray-400" />
|
||||||
<span className="text-gray-300 text-xs">628118</span>
|
<span className="text-gray-300 text-xs">
|
||||||
|
628118
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center justify-center space-x-2">
|
<div className="flex items-center justify-center space-x-2">
|
||||||
<MailOutlined className="text-gray-400" />
|
<MailOutlined className="text-gray-400" />
|
||||||
<span className="text-gray-300 text-xs">gcsjs6@tx3l.nb.kj</span>
|
<span className="text-gray-300 text-xs">
|
||||||
|
gcsjs6@tx3l.nb.kj
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -33,23 +43,20 @@ export function MainFooter() {
|
||||||
<a
|
<a
|
||||||
href="https://27.57.72.21"
|
href="https://27.57.72.21"
|
||||||
className="text-gray-400 hover:text-white transition-colors"
|
className="text-gray-400 hover:text-white transition-colors"
|
||||||
title="访问门户网站"
|
title="访问门户网站">
|
||||||
>
|
|
||||||
<HomeOutlined className="text-lg" />
|
<HomeOutlined className="text-lg" />
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
href="https://27.57.72.14"
|
href="https://27.57.72.14"
|
||||||
className="text-gray-400 hover:text-white transition-colors"
|
className="text-gray-400 hover:text-white transition-colors"
|
||||||
title="访问烽火青云"
|
title="访问烽火青云">
|
||||||
>
|
|
||||||
<CloudOutlined className="text-lg" />
|
<CloudOutlined className="text-lg" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="http://27.57.72.38"
|
href="http://27.57.72.38"
|
||||||
className="text-gray-400 hover:text-white transition-colors"
|
className="text-gray-400 hover:text-white transition-colors"
|
||||||
title="访问烽火律询"
|
title="访问烽火律询">
|
||||||
>
|
|
||||||
<FileSearchOutlined className="text-lg" />
|
<FileSearchOutlined className="text-lg" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,7 +66,8 @@ export function MainFooter() {
|
||||||
{/* 版权信息 */}
|
{/* 版权信息 */}
|
||||||
<div className="border-t border-gray-700/50 mt-4 pt-4 text-center">
|
<div className="border-t border-gray-700/50 mt-4 pt-4 text-center">
|
||||||
<p className="text-gray-400 text-xs">
|
<p className="text-gray-400 text-xs">
|
||||||
© {new Date().getFullYear()} 南天烽火. All rights reserved.
|
© {new Date().getFullYear()} 南天烽火. All rights
|
||||||
|
reserved.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,7 @@ export function MainLayout() {
|
||||||
<MainProvider>
|
<MainProvider>
|
||||||
<div className=" min-h-screen bg-gray-100">
|
<div className=" min-h-screen bg-gray-100">
|
||||||
<MainHeader />
|
<MainHeader />
|
||||||
<Content className=" pt-20 bg-gray-50 ">
|
<Content className="min-h-screen flex-grow pt-12 bg-gray-50 ">
|
||||||
<Outlet />
|
<Outlet />
|
||||||
</Content>
|
</Content>
|
||||||
<MainFooter />
|
<MainFooter />
|
||||||
|
|
|
@ -24,7 +24,7 @@ export default function CourseDetailLayout() {
|
||||||
{/* 添加 Header 组件 */}
|
{/* 添加 Header 组件 */}
|
||||||
{/* 主内容区域 */}
|
{/* 主内容区域 */}
|
||||||
{/* 为了防止 Header 覆盖内容,添加上边距 */}
|
{/* 为了防止 Header 覆盖内容,添加上边距 */}
|
||||||
<div className="pt-16 px-32">
|
<div className="pt-12 px-32">
|
||||||
{" "}
|
{" "}
|
||||||
{/* 添加这个包装 div */}
|
{/* 添加这个包装 div */}
|
||||||
<motion.div
|
<motion.div
|
||||||
|
|
|
@ -58,9 +58,9 @@ export const CourseSyllabus: React.FC<CourseSyllabusProps> = ({
|
||||||
style={{
|
style={{
|
||||||
width: isOpen ? "25%" : "0",
|
width: isOpen ? "25%" : "0",
|
||||||
right: 0,
|
right: 0,
|
||||||
top: isHeaderVisible ? "64px" : "0",
|
top: isHeaderVisible ? "56px" : "0",
|
||||||
}}
|
}}
|
||||||
className="fixed top-0 bottom-0 z-20 bg-white shadow-xl">
|
className="fixed top-0 bottom-0 z-10 bg-white shadow-xl">
|
||||||
{isOpen && (
|
{isOpen && (
|
||||||
<div className="h-full flex flex-col">
|
<div className="h-full flex flex-col">
|
||||||
<SyllabusHeader onToggle={onToggle} />
|
<SyllabusHeader onToggle={onToggle} />
|
||||||
|
|
Loading…
Reference in New Issue