update
This commit is contained in:
1
.idea/caszl-next.iml
generated
1
.idea/caszl-next.iml
generated
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
|
@ -1,7 +1,4 @@
|
||||
import { ReactNode } from "react";
|
||||
import circle from "@/app/assets/circle.png";
|
||||
import Image from "next/image";
|
||||
import LeftNav from "@/app/components/LeftNav";
|
||||
import ArticleLayout from "@/app/components/ArticleLayout";
|
||||
|
||||
const navLinks = [
|
||||
@ -20,7 +17,11 @@ const Layout = ({
|
||||
articleId: string;
|
||||
};
|
||||
}) => {
|
||||
return <ArticleLayout>{children}</ArticleLayout>;
|
||||
return (
|
||||
<ArticleLayout leftNavTitle={"新闻详情"} navigations={[]}>
|
||||
{children}
|
||||
</ArticleLayout>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
||||
|
@ -9,9 +9,5 @@ export default async function Article({
|
||||
};
|
||||
}) {
|
||||
const data = await articleDetail({ id: params.articleId });
|
||||
return (
|
||||
<div className={"ml-2.5"}>
|
||||
<ArticleContent article={data} />
|
||||
</div>
|
||||
);
|
||||
return <ArticleContent article={data} />;
|
||||
}
|
||||
|
5
app/(introduce)/talents/academician/page.tsx
Normal file
5
app/(introduce)/talents/academician/page.tsx
Normal file
@ -0,0 +1,5 @@
|
||||
const Page = () => {
|
||||
return <div>院士</div>;
|
||||
};
|
||||
|
||||
export default Page;
|
19
app/(introduce)/talents/layout.tsx
Normal file
19
app/(introduce)/talents/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import ArticleLayout from "@/app/components/ArticleLayout";
|
||||
import { ReactNode } from "react";
|
||||
|
||||
const navigations = [
|
||||
{ title: "人才概览", href: "/talents/overview" },
|
||||
{ title: "两院院士", href: "/talents/academician" },
|
||||
{ title: "研究员", href: "/talents/researcher" },
|
||||
{ title: "副研究员", href: "/talents/vice-researcher" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<ArticleLayout leftNavTitle={"人才队伍"} navigations={navigations}>
|
||||
{children}
|
||||
</ArticleLayout>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
5
app/(introduce)/talents/researcher/page.tsx
Normal file
5
app/(introduce)/talents/researcher/page.tsx
Normal file
@ -0,0 +1,5 @@
|
||||
const Page = () => {
|
||||
return <div>研究员</div>;
|
||||
};
|
||||
|
||||
export default Page;
|
5
app/(introduce)/talents/vice-researcher/page.tsx
Normal file
5
app/(introduce)/talents/vice-researcher/page.tsx
Normal file
@ -0,0 +1,5 @@
|
||||
const Page = () => {
|
||||
return <div>副研究员</div>;
|
||||
};
|
||||
|
||||
export default Page;
|
@ -3,7 +3,7 @@ import { ArticleDetail } from "@/app/types/article";
|
||||
|
||||
const ArticleContent = ({ article }: { article: ArticleDetail }) => {
|
||||
return (
|
||||
<div className={"bg-white px-5 py-4 h-full"}>
|
||||
<div className={"px-5 py-4 h-full"}>
|
||||
<h1 className={"text-[18px] text-[#054786] text-center font-bold"}>
|
||||
{article.title}
|
||||
</h1>
|
||||
|
@ -3,17 +3,19 @@ import { ReactNode } from "react";
|
||||
|
||||
const ArticleLayout = ({
|
||||
children,
|
||||
navs,
|
||||
navigations,
|
||||
leftNavTitle,
|
||||
}: {
|
||||
children: ReactNode;
|
||||
navs: any;
|
||||
navigations: any[];
|
||||
leftNavTitle: string;
|
||||
}) => {
|
||||
return (
|
||||
<div className={"flex bg-[#6bb7f6] p-2.5"}>
|
||||
<div className={"left-side w-[325px]"}>
|
||||
<LeftNav />
|
||||
<LeftNav navigations={navigations} title={leftNavTitle} />
|
||||
</div>
|
||||
<div className={"flex-1"}>{children}</div>
|
||||
<div className={"flex-1 ml-3 bg-white"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@ -1,54 +1,47 @@
|
||||
"use client";
|
||||
import React from "react";
|
||||
import Image from "next/image";
|
||||
import circle from "@/app/assets/circle.png";
|
||||
import styles from "./LeftNav.module.scss";
|
||||
import Link from "next/link";
|
||||
import { usePathname } from "next/navigation";
|
||||
|
||||
const LeftNav = () => {
|
||||
const LeftNav = ({
|
||||
navigations,
|
||||
title,
|
||||
}: {
|
||||
navigations: any[];
|
||||
title: string;
|
||||
}) => {
|
||||
const pathname = usePathname();
|
||||
return (
|
||||
<div className={"left-nav min-h-[600px] bg-[#d7ecfd] rounded shadow"}>
|
||||
<div className={"flex items-center pl-2"}>
|
||||
<div className={"left-nav min-h-[600px] bg-[#d7ecfd] rounded shadow pt-2"}>
|
||||
<div className={"flex items-center pl-2 h-7"}>
|
||||
<Image src={circle} alt={"circle icon"} height={16} width={16} />
|
||||
<span className={"pl-2"}>新闻详情</span>
|
||||
<span className={"pl-2"}>{title}</span>
|
||||
</div>
|
||||
{navigations.length > 0 && (
|
||||
<div
|
||||
className={`${styles.navContent} mt-3 mx-3 rounded-lg px-2.5 py-[5px]`}
|
||||
>
|
||||
<ul className={styles.navItems}>
|
||||
<li>
|
||||
{navigations.map((navigation) => (
|
||||
<li key={navigation.href}>
|
||||
<Link
|
||||
className={"text-sm px-[9px] py-[7px] block text-white"}
|
||||
href={"/"}
|
||||
className={`text-sm px-[9px] h-[34px] flex items-center font-bold transition-all hover:text-[#fff176] hover:text-xs ${
|
||||
navigation.href === pathname
|
||||
? "text-[#fff176] text-xs"
|
||||
: "text-white"
|
||||
}`}
|
||||
href={navigation.href}
|
||||
>
|
||||
人才概况
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
className={"text-sm px-[9px] py-[7px] block text-white"}
|
||||
href={"/"}
|
||||
>
|
||||
人才概况
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
className={"text-sm px-[9px] py-[7px] block text-white"}
|
||||
href={"/"}
|
||||
>
|
||||
人才概况
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
className={"text-sm px-[9px] py-[7px] block text-white"}
|
||||
href={"/"}
|
||||
>
|
||||
人才概况
|
||||
{navigation.title}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@ -17,7 +17,7 @@ export const metadata: Metadata = {
|
||||
const navLinks = [
|
||||
{ title: "首页", href: "/" },
|
||||
{ title: "机构设置", href: "#" },
|
||||
{ title: "人才队伍", href: "#" },
|
||||
{ title: "人才队伍", href: "/talents/overview" },
|
||||
{ title: "科研进展", href: "#" },
|
||||
{ title: "科技成果", href: "#" },
|
||||
{ title: "学术交流", href: "#" },
|
||||
|
20
package.json
20
package.json
@ -12,20 +12,20 @@
|
||||
"dependencies": {
|
||||
"axios": "^1.6.0",
|
||||
"next": "14.0.0",
|
||||
"react": "^18",
|
||||
"react-dom": "^18"
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
"autoprefixer": "^10",
|
||||
"eslint": "^8",
|
||||
"@types/node": "^20.8.9",
|
||||
"@types/react": "^18.2.33",
|
||||
"@types/react-dom": "^18.2.14",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"eslint": "^8.52.0",
|
||||
"eslint-config-next": "14.0.0",
|
||||
"postcss": "^8",
|
||||
"postcss": "^8.4.31",
|
||||
"prettier": "^3.0.3",
|
||||
"sass": "^1.69.5",
|
||||
"tailwindcss": "^3",
|
||||
"typescript": "^5"
|
||||
"tailwindcss": "^3.3.5",
|
||||
"typescript": "^5.2.2"
|
||||
}
|
||||
}
|
||||
|
48
pnpm-lock.yaml
generated
48
pnpm-lock.yaml
generated
@ -12,33 +12,33 @@ dependencies:
|
||||
specifier: 14.0.0
|
||||
version: 14.0.0(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)
|
||||
react:
|
||||
specifier: ^18
|
||||
specifier: ^18.2.0
|
||||
version: 18.2.0
|
||||
react-dom:
|
||||
specifier: ^18
|
||||
specifier: ^18.2.0
|
||||
version: 18.2.0(react@18.2.0)
|
||||
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: ^20
|
||||
specifier: ^20.8.9
|
||||
version: 20.8.9
|
||||
'@types/react':
|
||||
specifier: ^18
|
||||
specifier: ^18.2.33
|
||||
version: 18.2.33
|
||||
'@types/react-dom':
|
||||
specifier: ^18
|
||||
specifier: ^18.2.14
|
||||
version: 18.2.14
|
||||
autoprefixer:
|
||||
specifier: ^10
|
||||
specifier: ^10.4.16
|
||||
version: 10.4.16(postcss@8.4.31)
|
||||
eslint:
|
||||
specifier: ^8
|
||||
specifier: ^8.52.0
|
||||
version: 8.52.0
|
||||
eslint-config-next:
|
||||
specifier: 14.0.0
|
||||
version: 14.0.0(eslint@8.52.0)(typescript@5.2.2)
|
||||
postcss:
|
||||
specifier: ^8
|
||||
specifier: ^8.4.31
|
||||
version: 8.4.31
|
||||
prettier:
|
||||
specifier: ^3.0.3
|
||||
@ -47,10 +47,10 @@ devDependencies:
|
||||
specifier: ^1.69.5
|
||||
version: 1.69.5
|
||||
tailwindcss:
|
||||
specifier: ^3
|
||||
specifier: ^3.3.5
|
||||
version: 3.3.5
|
||||
typescript:
|
||||
specifier: ^5
|
||||
specifier: ^5.2.2
|
||||
version: 5.2.2
|
||||
|
||||
packages:
|
||||
@ -384,16 +384,16 @@ packages:
|
||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||
dev: true
|
||||
|
||||
/acorn-jsx@5.3.2(acorn@8.11.1):
|
||||
/acorn-jsx@5.3.2(acorn@8.11.2):
|
||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
dependencies:
|
||||
acorn: 8.11.1
|
||||
acorn: 8.11.2
|
||||
dev: true
|
||||
|
||||
/acorn@8.11.1:
|
||||
resolution: {integrity: sha512-IJTNCJMRHfRfb8un89z1QtS0x890C2QUrUxFMK8zy+RizcId6mfnqOf68Bu9YkDgpLYuvCm6aYbwDatXVZPjMQ==}
|
||||
/acorn@8.11.2:
|
||||
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
@ -543,7 +543,7 @@ packages:
|
||||
postcss: ^8.1.0
|
||||
dependencies:
|
||||
browserslist: 4.22.1
|
||||
caniuse-lite: 1.0.30001554
|
||||
caniuse-lite: 1.0.30001557
|
||||
fraction.js: 4.3.7
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.0.0
|
||||
@ -603,8 +603,8 @@ packages:
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001554
|
||||
electron-to-chromium: 1.4.568
|
||||
caniuse-lite: 1.0.30001557
|
||||
electron-to-chromium: 1.4.569
|
||||
node-releases: 2.0.13
|
||||
update-browserslist-db: 1.0.13(browserslist@4.22.1)
|
||||
dev: true
|
||||
@ -634,8 +634,8 @@ packages:
|
||||
engines: {node: '>= 6'}
|
||||
dev: true
|
||||
|
||||
/caniuse-lite@1.0.30001554:
|
||||
resolution: {integrity: sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==}
|
||||
/caniuse-lite@1.0.30001557:
|
||||
resolution: {integrity: sha512-91oR7hLNUP3gG6MLU+n96em322a8Xzes8wWdBKhLgUoiJsAF5irZnxSUCbc+qUZXNnPCfUwLOi9ZCZpkvjQajw==}
|
||||
|
||||
/chalk@4.1.2:
|
||||
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
||||
@ -797,8 +797,8 @@ packages:
|
||||
esutils: 2.0.3
|
||||
dev: true
|
||||
|
||||
/electron-to-chromium@1.4.568:
|
||||
resolution: {integrity: sha512-3TCOv8+BY6Ltpt1/CmGBMups2IdKOyfEmz4J8yIS4xLSeMm0Rf+psSaxLuswG9qMKt+XbNbmADybtXGpTFlbDg==}
|
||||
/electron-to-chromium@1.4.569:
|
||||
resolution: {integrity: sha512-LsrJjZ0IbVy12ApW3gpYpcmHS3iRxH4bkKOW98y1/D+3cvDUWGcbzbsFinfUS8knpcZk/PG/2p/RnkMCYN7PVg==}
|
||||
dev: true
|
||||
|
||||
/emoji-regex@9.2.2:
|
||||
@ -1157,8 +1157,8 @@ packages:
|
||||
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
acorn: 8.11.1
|
||||
acorn-jsx: 5.3.2(acorn@8.11.1)
|
||||
acorn: 8.11.2
|
||||
acorn-jsx: 5.3.2(acorn@8.11.2)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
@ -1858,7 +1858,7 @@ packages:
|
||||
'@next/env': 14.0.0
|
||||
'@swc/helpers': 0.5.2
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001554
|
||||
caniuse-lite: 1.0.30001557
|
||||
postcss: 8.4.31
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
|
Reference in New Issue
Block a user