update
This commit is contained in:
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@ -1,4 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
|
@ -1,16 +1,9 @@
|
||||
import { ReactNode } from "react";
|
||||
import ArticleLayout from "@/app/components/ArticleLayout";
|
||||
|
||||
const navLinks = [
|
||||
{ title: "人才概况", href: "/" },
|
||||
{ title: "人才概况", href: "/3" },
|
||||
{ title: "人才概况", href: "/4" },
|
||||
{ title: "人才概况", href: "/5" },
|
||||
];
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const Layout = ({
|
||||
children,
|
||||
params,
|
||||
}: {
|
||||
children: ReactNode;
|
||||
params: {
|
||||
@ -19,7 +12,10 @@ const Layout = ({
|
||||
}) => {
|
||||
return (
|
||||
<ArticleLayout leftNavTitle={"新闻详情"} navigations={[]}>
|
||||
{children}
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={[]} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
</ArticleLayout>
|
||||
);
|
||||
};
|
||||
|
21
app/(articles)/announcements/pages/[pageIndex]/layout.tsx
Normal file
21
app/(articles)/announcements/pages/[pageIndex]/layout.tsx
Normal file
@ -0,0 +1,21 @@
|
||||
import { ReactNode } from "react";
|
||||
import ArticleLayout from "@/app/components/ArticleLayout";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<ArticleLayout navigations={[]} leftNavTitle={"公告通知"}>
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb
|
||||
navigations={[
|
||||
{ title: "首页", href: "/" },
|
||||
{ title: "公告通知", href: "/announcements/pages/1" },
|
||||
]}
|
||||
/>
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
</ArticleLayout>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
43
app/(articles)/announcements/pages/[pageIndex]/page.tsx
Normal file
43
app/(articles)/announcements/pages/[pageIndex]/page.tsx
Normal file
@ -0,0 +1,43 @@
|
||||
import { listArticles } from "@/app/api/articles";
|
||||
import { Fragment } from "react";
|
||||
import styles from "./styles.module.scss";
|
||||
import Link from "next/link";
|
||||
import Pagination from "@/app/components/Pagination";
|
||||
|
||||
const Page = async ({
|
||||
params,
|
||||
}: {
|
||||
params: {
|
||||
pageIndex: string;
|
||||
};
|
||||
}) => {
|
||||
const data = await listArticles({
|
||||
cid: "3",
|
||||
pageNo: params.pageIndex,
|
||||
pageSize: 20,
|
||||
});
|
||||
return (
|
||||
<div>
|
||||
<h2 className={"text-[#0f6fca] text-sm"}>公告通知</h2>
|
||||
<ul className={`${styles.articles} mt-5`}>
|
||||
{data.lists.map((article, index) => (
|
||||
<li className={`${styles.article}`} key={article.id}>
|
||||
<Link
|
||||
className={"flex h-8 text-sm text-[#666666] items-center"}
|
||||
href={`/announcements/${article.id}`}
|
||||
>
|
||||
{article.title}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
<Pagination
|
||||
page={parseInt(params.pageIndex)}
|
||||
total={data.count}
|
||||
perPage={20}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,7 @@
|
||||
.articles {
|
||||
.article {
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px dashed #000;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/func-dep/general-office", title: "职能部门" },
|
||||
{ href: "/organization/func-dep/asset-finance", title: "资产财务处" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,32 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
资产财务处
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
负责院财务管理、国有资产管理等工作,主要职责为:
|
||||
<ol className={"list-decimal list-inside"}>
|
||||
<li>
|
||||
负责院预算管理工作,含部门预算编报、下达、控制、调整、分析等。
|
||||
</li>
|
||||
<li>
|
||||
负责院财务管理工作,含财务管理体系设计、科研项目经费管理、资金统筹调配以及税收筹划等。
|
||||
</li>
|
||||
<li>
|
||||
负责院会计核算工作,含中央事业法人、地方法人、基建项目、工会经费、党费专户等的财务报销,账务核算、报表编制以及会计档案管理等。
|
||||
</li>
|
||||
<li>
|
||||
负责院国有资产管理工作,含流动资产、固定资产、在建工程、对外投资和无形资产等所有权管理。
|
||||
</li>
|
||||
<li>负责配合国家有关部门的各项审计和稽查工作。</li>
|
||||
<li>负责指导、监督院投资入股企业的财务及资产运营管理工作。</li>
|
||||
<li>采购管理。</li>
|
||||
<li>采购管理。</li>
|
||||
</ol>
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,20 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/func-dep/general-office", title: "职能部门" },
|
||||
{ href: "/organization/func-dep/general-office", title: "综合办公室" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,44 @@
|
||||
import React from "react";
|
||||
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
综合办公室
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
负责院党建与创新文化建设、综合行政管理、科学传播与信息化建设等工作,主要职责为:
|
||||
<ol className={"list-decimal list-inside"}>
|
||||
<li>
|
||||
负责党建日常工作,承担党委办公室职责,协助党委做好党的组织建设与发展、党委中心组学习、党员教育和管理等。
|
||||
</li>
|
||||
<li>
|
||||
负责党建日常工作,承担党委办公室职责,协助党委做好党的组织建设与发展、党委中心组学习、党员教育和管理等。
|
||||
</li>
|
||||
<li>负责综合协调和督查督办院重点工作。</li>
|
||||
<li>
|
||||
牵头负责院科学传播工作,包括新闻宣传、政务信息、网络宣传、科普、信息公开、新媒体等,负责院新闻发言人相关工作。
|
||||
</li>
|
||||
<li>
|
||||
牵头负责院信息化建设工作,
|
||||
包括院网站、ARP系统、院网络与通讯设备等安全及运行维护。
|
||||
</li>
|
||||
<li>
|
||||
负责院日常行政工作,包括制度建设、公文管理、综合档案、机要、院法人证书及印鉴、院法务工作等。
|
||||
</li>
|
||||
<li>牵头负责创新文化建设。</li>
|
||||
<li>负责工青妇等群团组织的协调管理。</li>
|
||||
<li>负责统战工作。</li>
|
||||
<li>负责信访与维稳工作。</li>
|
||||
<li>负责科技扶贫工作。</li>
|
||||
<li>承担院领导安排的其他工作。</li>
|
||||
</ol>
|
||||
</p>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
监察审计室挂靠综合办公室,承担院纪委日常工作(含科研道德委员会日常工作),负责院纪检、监察、审计等工作,协助党委做好党风廉政建设及反腐败工作。
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,20 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/func-dep/general-office", title: "职能部门" },
|
||||
{ href: "/organization/func-dep/industry", title: "产业处" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,28 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>产业处</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
负责院科技成果转移转化与产业化工作,主要职责为:
|
||||
<ol className={"list-decimal list-inside"}>
|
||||
<li>负责产业化项目的申报和管理。</li>
|
||||
<li>负责产业平台的统筹策划、建设运营和管理。</li>
|
||||
<li>负责技术转移服务平台的建设与运营。</li>
|
||||
<li>
|
||||
负责无形资产运营管理,含无形资产投资的审核和报批、无形资产收益的实施等。
|
||||
</li>
|
||||
<li>负责投融资平台的建设与管理。</li>
|
||||
<li>
|
||||
负责组织实施企业工程技术中心、产业技术公共服务平台的建设、运营和管理。
|
||||
</li>
|
||||
<li>负责院产业专家委员会和院属公司管理委员会的日常工作。</li>
|
||||
<li>负责对我院投资入股企业的监督管理。</li>
|
||||
<li>负责合肥分院的监督管理。</li>
|
||||
<li>承担院领导安排的其他工作。</li>
|
||||
</ol>
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,20 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/func-dep/general-office", title: "职能部门" },
|
||||
{ href: "/organization/func-dep/personnel", title: "人事处" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,32 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>人事处</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
负责院人才队伍建设、人事管理等工作,主要职责为:
|
||||
<ol className={"list-decimal list-inside"}>
|
||||
<li>组织制定、修订院人力资源战略,编制人力资源发展规划。</li>
|
||||
<li>负责院组织架构和岗位体系管理。</li>
|
||||
<li>
|
||||
负责人才引进(含人才计划管理)、人才培养(含继续教育与培训)、人才服务等工作。
|
||||
</li>
|
||||
<li>
|
||||
负责人事全流程和综合管理工作(含岗位与聘用管理、薪酬福利及保障体系、人事档案、考勤及休假、绩效考核、人员调配与流转、劳动争议的协调处理、劳动保护等)。
|
||||
</li>
|
||||
<li>负责干部选拔任用、教育培训、挂职锻炼等工作。</li>
|
||||
<li>
|
||||
负责博士后的招收及日常管理工作;负责高访客座、劳务派遣等流动人员管理。
|
||||
</li>
|
||||
<li>
|
||||
代管创业人员中心,对离岗创业、全职外派人员进行日常管理与考核。
|
||||
</li>
|
||||
<li>负责牵头院校合作相关工作。</li>
|
||||
<li>负责中层领导人员、涉密人员因私护照管理工作。</li>
|
||||
<li>承担院领导安排的其他工作。</li>
|
||||
</ol>
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,20 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/func-dep/general-office", title: "职能部门" },
|
||||
{ href: "/organization/func-dep/technology", title: "科技处" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,35 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>科技处</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
负责院科技发展规划、学科体系建设、重大科技任务组织、科技管理、国际交流等工作,主要职责为:
|
||||
</p>
|
||||
<ol className={"list-decimal list-inside indent-8"}>
|
||||
<li>
|
||||
建立、监督实施院战略规划体系,组织制(修)订院中长期战略规划和年度发展计划,明确院重点研究领域和学科发展方向。
|
||||
</li>
|
||||
<li>负责院新建科研单元、科研平台的规划论证并指导实施。</li>
|
||||
<li>
|
||||
组织科研项目申报,负责重大科技项目的组织、策划、申报与管理,实施科研项目管理。
|
||||
</li>
|
||||
<li>
|
||||
组织国家、省部级(中科院)、市级等实验室、公共技术平台、工程中心的申报与过程管理。
|
||||
</li>
|
||||
<li>负责实验室建设与科研用房配置的规划论证。</li>
|
||||
<li>负责组织管理科技会议与学术交流。</li>
|
||||
<li>负责科技绩效评估与科技档案管理。</li>
|
||||
<li>负责院知识产权管理相关工作。</li>
|
||||
<li>负责院国际合作交流管理及办理涉外相关手续,管理因公护照。</li>
|
||||
<li>负责学术委员会的日常工作。</li>
|
||||
<li>负责协调组织院科技成果的认定与报奖。</li>
|
||||
<li>负责组织院科研外协相关工作。</li>
|
||||
<li>代管独立研究中心,并对中心人员进行日常管理与考核。</li>
|
||||
<li>文献情报服务、期刊出版。</li>
|
||||
<li>承担院领导安排的其他工作。</li>
|
||||
</ol>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,20 @@
|
||||
import ArticleLayout from "@/app/components/ArticleLayout";
|
||||
import { ReactNode } from "react";
|
||||
|
||||
const navigations = [
|
||||
{ title: "综合办公室", href: "/organization/func-dep/general-office" },
|
||||
{ title: "人事处", href: "/organization/func-dep/personnel" },
|
||||
{ title: "科技处", href: "/organization/func-dep/technology" },
|
||||
{ title: "产业处", href: "/organization/func-dep/industry" },
|
||||
{ title: "资产财务处", href: "/organization/func-dep/asset-finance" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<ArticleLayout leftNavTitle={"职能部门"} navigations={navigations}>
|
||||
{children}
|
||||
</ArticleLayout>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/architecture", title: "组织架构" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,15 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
组织架构
|
||||
</h2>
|
||||
<img
|
||||
className={"w-full mt-8"}
|
||||
src={`${process.env.NEXT_ADMIN_BASE_URL}/uploads/image/20231030/5c0b98dc-cf76-49c3-a510-f2f197f7dd09.jpeg`}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/dean-speech", title: "院长致辞" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,24 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
院长致辞
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
世界处于百年未有之大变局,第四次工业革命方兴未艾,人工智能、机器人技术、虚拟现实以及量子科技等蓬勃发展,将深度改变人类生产和生活方式,对国际格局的发展产生重要影响。中国要强大、民族要复兴、人民要幸福,科技强国梦就必须要实现。
|
||||
</p>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
合肥分院的设立,是响应中科院支持合肥国家科学中心建设的号召,中科院重庆绿色智能技术研究院在合肥设立的独立法人事业单位。主要从事绿色智能科技研发与科技成果转化。合肥分院秉持“市场为魂,创新为本”的理念。按照“院企共建、源头创新、科技共享、产业集聚”模式建设。以服务好科技工作者,服务好合作企业,服务好区域产业创新升级为宗旨。
|
||||
</p>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
合肥分院积极探索政、产、学、研、用紧密结合的机制,以合肥产业发展重大科技需求为牵引在人工智能、精准医疗、5G物联网等领域进行科技布局,集聚中科院体系内绿色智能科技人才与科技成果,重点开展产业关键核心技术与前沿技术创新、技术集成创新、工程化研发和科技成果转移转化工作,与技术创新体系和区域产业体系紧密结合,提升合肥创新发展能力。
|
||||
把合肥分院建设成为产业技术源头创新基地、技术集成创新与育成基地、高层次创新创业人才培养基地和科技与产业对接的重要平台。合肥分院坚持立足合肥、辐射安徽,坚持技术立院、应用立院,坚持需求牵引、创新驱动、院企共建,按照“地方政府满意、合作企业满意、科学家满意”的检验标准。
|
||||
</p>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
合肥分院希望能走出一条开放、包容、协作、创新的新型科研院所的道路。竭诚欢迎海内外英才,共创大业,实现科技强国梦!
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/joint-laboratory", title: "研究中心联合实验室" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,12 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
研究中心
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>建设中...</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/joint-venture", title: "合作企业" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,12 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
合作企业
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>对接中...</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
23
app/(introduce)/organization/(generally)/layout.tsx
Normal file
23
app/(introduce)/organization/(generally)/layout.tsx
Normal file
@ -0,0 +1,23 @@
|
||||
import ArticleLayout from "@/app/components/ArticleLayout";
|
||||
import { ReactNode } from "react";
|
||||
|
||||
const navigations = [
|
||||
{ title: "机构简介", href: "/organization/overview" },
|
||||
{ title: "院长致辞", href: "/organization/dean-speech" },
|
||||
{ title: "科技产业发展委员会", href: "/organization/stidc" },
|
||||
{ title: "组织架构", href: "/organization/architecture" },
|
||||
{ title: "职能部门", href: "/organization/func-dep/general-office" },
|
||||
{ title: "研究中心联合实验室", href: "/organization/joint-laboratory" },
|
||||
{ title: "合作企业", href: "/organization/joint-venture" },
|
||||
{ title: "科研平台", href: "/organization/research-platform" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<ArticleLayout leftNavTitle={"机构设置"} navigations={navigations}>
|
||||
{children}
|
||||
</ArticleLayout>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
19
app/(introduce)/organization/(generally)/overview/layout.tsx
Normal file
19
app/(introduce)/organization/(generally)/overview/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/overview", title: "机构简介" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
20
app/(introduce)/organization/(generally)/overview/page.tsx
Normal file
20
app/(introduce)/organization/(generally)/overview/page.tsx
Normal file
@ -0,0 +1,20 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
中国科学院重庆绿色智能技术研究院合肥分院
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
中国科学院重庆绿色智能技术研究院合肥分院(以下简称“合肥分院”)是在响应中科院号召支持合肥国家科学中心建设的前提下,中国科学院重庆绿色智能技术研究院与合肥市共建的直属事业法人科研机构。2018年2月20号在中科院与安徽省共建领导小组会议上正式签约筹建,2018年12月20日,正式获得事业法人登记证书。
|
||||
</p>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
合肥分院设立科技咨询委员会和产业咨询委员会,设人工智能、精准医疗、5G物联、绿色环保等研究单元。主要从事绿色智能科技研发与科技成果转化。
|
||||
</p>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
合肥分院秉持重庆研究院“市场为魂,创新为本”的理念。按照“院企共建、源头创新、科技共享、产业集聚”模式建设。以服务好科技工作者,服务好合作企业为宗旨。开展形式多样的成果转移转化,加快科研成果落地。
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/research-platform", title: "科研平台" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -0,0 +1,12 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
科研平台
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>筹建中...</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
19
app/(introduce)/organization/(generally)/stidc/layout.tsx
Normal file
19
app/(introduce)/organization/(generally)/stidc/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/func-dep/stidc", title: "科技产业发展委员会" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
12
app/(introduce)/organization/(generally)/stidc/page.tsx
Normal file
12
app/(introduce)/organization/(generally)/stidc/page.tsx
Normal file
@ -0,0 +1,12 @@
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
科技产业发展委员会
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>筹备中...</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
19
app/(introduce)/talents/academician/layout.tsx
Normal file
19
app/(introduce)/talents/academician/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/research-platform", title: "科研平台" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -1,5 +1,22 @@
|
||||
import Image from "next/image";
|
||||
|
||||
const Page = () => {
|
||||
return <div>院士</div>;
|
||||
return (
|
||||
<>
|
||||
{" "}
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
两院院士
|
||||
</h2>
|
||||
<p className={"text-base mt-8 text-center"}>中科院院士</p>
|
||||
<p className={"flex justify-center mt-2"}>
|
||||
<img
|
||||
src={`${process.env.NEXT_ADMIN_BASE_URL}/uploads/image/20231030/8d05e613-e2c6-47d1-81a9-08bd70b8ba73.jpeg`}
|
||||
alt={"张景中"}
|
||||
/>
|
||||
</p>
|
||||
<p className={"text-center"}>张景中</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
||||
|
19
app/(introduce)/talents/overview/layout.tsx
Normal file
19
app/(introduce)/talents/overview/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/research-platform", title: "科研平台" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -1,5 +1,15 @@
|
||||
const Page = () => {
|
||||
return <div>overview</div>;
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>
|
||||
人才概况
|
||||
</h2>
|
||||
<p className={"text-base indent-8 mt-8"}>
|
||||
截止2017年10月底,重庆研究院全院共有员工333人,包括正高级40人,副高级61人,中级136人,初级21人。具有环境科学与工程、光学工程两个一级学科博士学位培养点,截止2017年10月底,共有博士生导师25人,硕士生导师38人,在读研究生117,其中博士39人,硕士73
|
||||
人,留学生5人。
|
||||
</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
||||
|
19
app/(introduce)/talents/researcher/layout.tsx
Normal file
19
app/(introduce)/talents/researcher/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/research-platform", title: "科研平台" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
7
app/(introduce)/talents/researcher/page.module.scss
Normal file
7
app/(introduce)/talents/researcher/page.module.scss
Normal file
@ -0,0 +1,7 @@
|
||||
.academicians {
|
||||
.academician {
|
||||
&:not(:nth-child(4n)) {
|
||||
margin-right: 12px;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,71 @@
|
||||
import styles from "./page.module.scss";
|
||||
import Link from "next/link";
|
||||
|
||||
const academicians = [
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/8dbabce9-3454-4dab-b66f-34b30849db90.jpeg",
|
||||
name: "任以伟",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/5d3c322f-8163-4034-b01e-8897f3ba9a7a.jpeg",
|
||||
name: "张炜",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/63c2d39e-21c1-466f-b5fd-6f27e4ff1d43.jpeg",
|
||||
name: "石宇",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/4f0f8923-a72f-4ea7-8333-fc98878a4fb3.jpeg",
|
||||
name: "裴得胜",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/5e6dd527-5311-4444-b8ad-be597b57a724.jpeg",
|
||||
name: "宋立岩",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/b3ab92e4-391e-49f3-956e-97bd2f8ebf94.jpeg",
|
||||
name: "陆文强",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/d55d1de5-6c14-489d-b2ee-d62dd78d3478.jpeg",
|
||||
name: "王德强",
|
||||
link: "",
|
||||
},
|
||||
];
|
||||
|
||||
const Page = () => {
|
||||
return <div>研究员</div>;
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>研究员</h2>
|
||||
<div className={`${styles.academicians} flex flex-wrap mt-8`}>
|
||||
{academicians.map((academician) => (
|
||||
<div
|
||||
key={academician.name}
|
||||
className={`${styles.academician} flex flex-col items-center w-1/5 mt-4`}
|
||||
>
|
||||
<img
|
||||
className={"h-[138px]"}
|
||||
src={`${process.env.NEXT_ADMIN_BASE_URL}${academician.picture}`}
|
||||
/>
|
||||
<Link href={academician.link}>{academician.name}</Link>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
||||
|
19
app/(introduce)/talents/vice-researcher/layout.tsx
Normal file
19
app/(introduce)/talents/vice-researcher/layout.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import Breadcrumb from "@/app/components/Breadcrumb";
|
||||
|
||||
const breadcrumb = [
|
||||
{ href: "/", title: "首页" },
|
||||
{ href: "/organization/overview", title: "机构设置" },
|
||||
{ href: "/organization/research-platform", title: "科研平台" },
|
||||
];
|
||||
|
||||
const Layout = ({ children }: { children: ReactNode }) => {
|
||||
return (
|
||||
<div className={"flex flex-col h-full"}>
|
||||
<Breadcrumb navigations={breadcrumb} />
|
||||
<div className={"bg-white px-5 py-4 flex-1 mt-2"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Layout;
|
@ -1,5 +1,40 @@
|
||||
import Link from "next/link";
|
||||
|
||||
const academicians = [
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/2a2f235b-711a-47fb-9d20-c5a1c332ff78.jpeg",
|
||||
name: "周祥东",
|
||||
link: "",
|
||||
},
|
||||
{
|
||||
picture:
|
||||
"/uploads/image/20231030/390a39d3-0729-446f-b361-c34f4f6cb0ff.jpeg",
|
||||
name: "王兴祖",
|
||||
link: "",
|
||||
},
|
||||
];
|
||||
|
||||
const Page = () => {
|
||||
return <div>副研究员</div>;
|
||||
return (
|
||||
<>
|
||||
<h2 className={"text-center text-lg font-bold text-[#054786]"}>研究员</h2>
|
||||
<div className={`flex mt-8 justify-around`}>
|
||||
{academicians.map((academician) => (
|
||||
<div
|
||||
key={academician.name}
|
||||
className={`flex flex-col items-center w-1/5`}
|
||||
>
|
||||
<img
|
||||
className={"h-[138px]"}
|
||||
src={`${process.env.NEXT_ADMIN_BASE_URL}${academician.picture}`}
|
||||
/>
|
||||
<Link href={academician.link}>{academician.name}</Link>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Page;
|
||||
|
@ -1,13 +1,34 @@
|
||||
import React from "react";
|
||||
import { ArticleDetail } from "@/app/types/article";
|
||||
import Link from "next/link";
|
||||
|
||||
const ArticleContent = ({ article }: { article: ArticleDetail }) => {
|
||||
return (
|
||||
<div className={"px-5 py-4 h-full"}>
|
||||
<div className={"h-full"}>
|
||||
<h1 className={"text-[18px] text-[#054786] text-center font-bold"}>
|
||||
{article.title}
|
||||
</h1>
|
||||
<div dangerouslySetInnerHTML={{ __html: article.content }}></div>
|
||||
<div className={"bottom-nav mt-[27px] mb-[50px]"}>
|
||||
<div className={"prev"}>
|
||||
<span className={"text-base"}>上一篇</span>
|
||||
<Link
|
||||
className={"text-sm text-[#666] ml-8"}
|
||||
href={`./${article.prev?.id}`}
|
||||
>
|
||||
{article.prev?.title ?? "没有了"}
|
||||
</Link>
|
||||
</div>
|
||||
<div className={"next mt-8"}>
|
||||
<span className={"text-base"}>下一篇</span>
|
||||
<Link
|
||||
className={"text-sm text-[#666] ml-8"}
|
||||
href={`./${article.next?.id}`}
|
||||
>
|
||||
{article.next?.title ?? "没有了"}
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ const ArticleLayout = ({
|
||||
<div className={"left-side w-[325px]"}>
|
||||
<LeftNav navigations={navigations} title={leftNavTitle} />
|
||||
</div>
|
||||
<div className={"flex-1 ml-3 bg-white"}>{children}</div>
|
||||
<div className={"flex-1 ml-3"}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
29
app/components/Breadcrumb.tsx
Normal file
29
app/components/Breadcrumb.tsx
Normal file
@ -0,0 +1,29 @@
|
||||
import { Fragment } from "react";
|
||||
import Link from "next/link";
|
||||
|
||||
interface BreadcrumbItem {
|
||||
href: string;
|
||||
title: string;
|
||||
}
|
||||
|
||||
const Breadcrumb = ({ navigations }: { navigations: BreadcrumbItem[] }) => {
|
||||
return (
|
||||
<div className={"flex text-xs text-[#13426e]"}>
|
||||
<span className={"mr-2"}>当前位置:</span>
|
||||
{navigations.map((navigation, index) => {
|
||||
if (index === navigations.length - 1) {
|
||||
return <div key={navigation.href}>{navigation.title}</div>;
|
||||
} else {
|
||||
return (
|
||||
<Fragment key={navigation.href}>
|
||||
<Link href={navigation.href}>{navigation.title}</Link>
|
||||
<div className={"mx-2"}>/</div>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
})}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Breadcrumb;
|
@ -15,7 +15,11 @@ const LeftNav = ({
|
||||
}) => {
|
||||
const pathname = usePathname();
|
||||
return (
|
||||
<div className={"left-nav min-h-[600px] bg-[#d7ecfd] rounded shadow pt-2"}>
|
||||
<div
|
||||
className={
|
||||
"left-nav min-h-[600px] h-full 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"}>{title}</span>
|
||||
|
50
app/components/MainNav.tsx
Normal file
50
app/components/MainNav.tsx
Normal file
@ -0,0 +1,50 @@
|
||||
"use client";
|
||||
import React from "react";
|
||||
import Link from "next/link";
|
||||
import { usePathname } from "next/navigation";
|
||||
|
||||
const navigations = [
|
||||
{ title: "首页", href: "/" },
|
||||
{ title: "机构设置", href: "/organization/overview" },
|
||||
{ title: "人才队伍", href: "/talents/overview" },
|
||||
{ title: "科研进展", href: "#" },
|
||||
{ title: "科技成果", href: "#" },
|
||||
{ title: "学术交流", href: "#" },
|
||||
{ title: "成果转化服务", href: "#" },
|
||||
{ title: "中科院科技资源共享平台", href: "#" },
|
||||
{ title: "联系我们", href: "#" },
|
||||
];
|
||||
|
||||
const isActive = (link: string, current: string): boolean => {
|
||||
if (link === current) return true;
|
||||
if (link === "/") return false;
|
||||
const link_0 = link.split(/\/+/).filter(Boolean)[0];
|
||||
const current_0 = current.split(/\/+/).filter(Boolean)[0];
|
||||
return link_0 === current_0;
|
||||
};
|
||||
|
||||
const MainNav = () => {
|
||||
const pathname = usePathname();
|
||||
return (
|
||||
<nav className={"main-nav bg-[#1958a7] h-[38px]"}>
|
||||
<ul className={"w-full h-full flex"}>
|
||||
{navigations.map((navigation, index) => (
|
||||
<li key={navigation.title + index}>
|
||||
<Link
|
||||
href={navigation.href}
|
||||
className={`${
|
||||
isActive(navigation.href, pathname)
|
||||
? "text-[#dedede]"
|
||||
: "text-white"
|
||||
} hover:text-[#dedede] text-sm h-[38px] flex justify-center items-center min-w-[60px] mx-2.5`}
|
||||
>
|
||||
{navigation.title}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</nav>
|
||||
);
|
||||
};
|
||||
|
||||
export default MainNav;
|
45
app/components/Pagination.tsx
Normal file
45
app/components/Pagination.tsx
Normal file
@ -0,0 +1,45 @@
|
||||
import Link from "next/link";
|
||||
|
||||
const Pagination = ({
|
||||
page,
|
||||
total,
|
||||
perPage,
|
||||
}: {
|
||||
page: number;
|
||||
total: number;
|
||||
perPage: number;
|
||||
}) => {
|
||||
const pageCount = Math.ceil(total / perPage);
|
||||
return (
|
||||
<div
|
||||
className={"w-full flex justify-center mt-2.5 h-10 items-center text-sm"}
|
||||
>
|
||||
{page <= 1 ? (
|
||||
<div className={"prev mx-3"}>上一页</div>
|
||||
) : (
|
||||
<Link className={"next block mx-3"} href={`./${page - 1}`}>
|
||||
上一页
|
||||
</Link>
|
||||
)}
|
||||
{[...Array(pageCount)].map((el, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className={`page-item mx-3 ${
|
||||
page === index + 1 ? "text-[#009fe9]" : "text-[#666666]"
|
||||
}`}
|
||||
>
|
||||
{index + 1}
|
||||
</div>
|
||||
))}
|
||||
{page >= pageCount ? (
|
||||
<div className={"next mx-3"}>下一页</div>
|
||||
) : (
|
||||
<Link className={"next block mx-3"} href={`./${page + 1}`}>
|
||||
下一页
|
||||
</Link>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Pagination;
|
@ -6,6 +6,7 @@ import footer from "@/app/assets/footer.jpg";
|
||||
import Image from "next/image";
|
||||
import banner from "@/app/assets/banner.jpg";
|
||||
import { ReactNode } from "react";
|
||||
import MainNav from "@/app/components/MainNav";
|
||||
|
||||
const inter = Inter({ subsets: ["latin"] });
|
||||
|
||||
@ -14,40 +15,13 @@ export const metadata: Metadata = {
|
||||
description: "Generated by create next app",
|
||||
};
|
||||
|
||||
const navLinks = [
|
||||
{ title: "首页", href: "/" },
|
||||
{ title: "机构设置", href: "#" },
|
||||
{ title: "人才队伍", href: "/talents/overview" },
|
||||
{ title: "科研进展", href: "#" },
|
||||
{ title: "科技成果", href: "#" },
|
||||
{ title: "学术交流", href: "#" },
|
||||
{ title: "成果转化服务", href: "#" },
|
||||
{ title: "中科院科技资源共享平台", href: "#" },
|
||||
{ title: "联系我们", href: "#" },
|
||||
];
|
||||
|
||||
export default function RootLayout({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={inter.className}>
|
||||
<main className={"w-[1000px] m-auto"}>
|
||||
<Image className={"w-full"} src={banner} alt={"banner"} />
|
||||
<nav className={"main-nav bg-[#1958a7] h-[38px]"}>
|
||||
<ul className={"w-full h-full flex"}>
|
||||
{navLinks.map((link, index) => (
|
||||
<li key={link.title + index}>
|
||||
<Link
|
||||
href={link.href}
|
||||
className={
|
||||
"text-white text-sm h-[38px] flex justify-center items-center min-w-[60px] mx-2.5"
|
||||
}
|
||||
>
|
||||
{link.title}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</nav>
|
||||
<MainNav />
|
||||
{children}
|
||||
<Image src={footer} alt={"footer"} className={"mt-4"} />
|
||||
</main>
|
||||
|
78
app/page.tsx
78
app/page.tsx
@ -4,17 +4,89 @@ import ArticleBlock from "@/app/components/ArticleBlock";
|
||||
|
||||
export default async function Home() {
|
||||
return (
|
||||
<main className={"flex justify-between"}>
|
||||
<main className={"flex justify-between bg-[#f5fafe]"}>
|
||||
<div className={"left-side w-[222px]"}>
|
||||
<Image src={leftBanner} alt={"left banner"} />
|
||||
<Image
|
||||
src={leftBanner}
|
||||
alt={"left banner"}
|
||||
useMap={"#hotAreaMap1539"}
|
||||
/>
|
||||
<map name={"hotAreaMap1539"} id={"hotAreaMap1539"}>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="0,0,220,80"
|
||||
href="http://124.16.212.11/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="34,135,105,162"
|
||||
href="http://172.16.51.4:61080/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="119,135,187,160"
|
||||
href="http://www.clas.ac.cn/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="0,168,221,247"
|
||||
href="http://119.78.100.138/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="0,253,221,332"
|
||||
href="http://159.226.28.30/cigit/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="0,334,221,421"
|
||||
href="http://www.cigit.cas.cn/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title=""
|
||||
shape="rect"
|
||||
coords="0,425,221,512"
|
||||
href="http://tmcloud.casip.ac.cn/f"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title="热区8"
|
||||
shape="rect"
|
||||
coords="0,516,221,612"
|
||||
href="http://www.cnipa.gov.cn/"
|
||||
target="_blank"
|
||||
/>
|
||||
<area
|
||||
title="热区9"
|
||||
shape="rect"
|
||||
coords="0,620,221,703"
|
||||
href="http://www.sciencenet.cn/"
|
||||
target="_blank"
|
||||
/>
|
||||
</map>
|
||||
</div>
|
||||
<div className={"main-content w-[513px]"}>
|
||||
<div className={"main-content w-[540px]"}>
|
||||
<div className={"h-[180px] bg-white"}></div>
|
||||
<div className={"mt-1"}>
|
||||
<ArticleBlock
|
||||
height={218}
|
||||
title={"综合新闻"}
|
||||
category={"4"}
|
||||
linkPrefix={"/general-news"}
|
||||
></ArticleBlock>
|
||||
</div>
|
||||
<div className={"flex justify-between mt-1"}>
|
||||
<ArticleBlock
|
||||
width={250}
|
||||
|
@ -10,6 +10,9 @@ export interface Article {
|
||||
|
||||
export interface ArticleListParams {
|
||||
cid?: string;
|
||||
pageSize?: number;
|
||||
pageNo?: number;
|
||||
sort?: string;
|
||||
}
|
||||
|
||||
export interface ArticleDetail {
|
||||
@ -27,11 +30,16 @@ export interface ArticleDetail {
|
||||
isCollect: number;
|
||||
createTime: string;
|
||||
updateTime: string;
|
||||
// prev: Prev
|
||||
// next: Next
|
||||
prev?: Prev;
|
||||
next?: Prev;
|
||||
// news: News[]
|
||||
}
|
||||
|
||||
export interface Prev {
|
||||
id: string;
|
||||
title: string;
|
||||
}
|
||||
|
||||
export interface ArticleDetailParams {
|
||||
id: string;
|
||||
}
|
||||
|
Reference in New Issue
Block a user