|
@@ -0,0 +1,84 @@
|
|
|
|
+import React from "react";
|
|
|
|
+import Image from "next/image";
|
|
|
|
+import type { Metadata } from "next";
|
|
|
|
+import Nav from "@/components/Nav";
|
|
|
|
+import Footer from "@/components/Footer";
|
|
|
|
+import styles from "./partner.module.css";
|
|
|
|
+import { fetchConsultants, fetchConsultantDetail } from "@/lib/cms";
|
|
|
|
+
|
|
|
|
+export const metadata: Metadata = {
|
|
|
|
+ title: "吕守升-创始人、战略解码专家-助力中国高潜企业加速发展-高潜咨询",
|
|
|
|
+ description:
|
|
|
|
+ "擅长领域:战略管理、组织变革及人力资源管理。著有畅销书《战略解码:跨越战略与执行的鸿沟》,是“战略解码®”方法体系的创始人及商标持有者。",
|
|
|
|
+ keywords: ["吕守升", "Samson Lv", "创始人", "战略解码专家"],
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+export default async function Partner({ params }: { params: { id: string } }) {
|
|
|
|
+ const partnerId = params.id;
|
|
|
|
+ if (!partnerId) {
|
|
|
|
+ return <>访问异常</>;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const { data: info } = await fetchConsultantDetail(parseInt(partnerId as string));
|
|
|
|
+ const { data: list } = await fetchConsultants();
|
|
|
|
+
|
|
|
|
+ if (!info) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return (
|
|
|
|
+ <>
|
|
|
|
+ <div className={styles.container}>
|
|
|
|
+ <Nav title={"顾问介绍"} />
|
|
|
|
+ <div className={styles.content}>
|
|
|
|
+ <div>
|
|
|
|
+ <span className={styles["breadcrumb-item"]}>
|
|
|
|
+ <a href="/home">首页</a>
|
|
|
|
+ </span>
|
|
|
|
+ <span className={styles["breadcrumb-seperator"]}>/</span>
|
|
|
|
+ <span className={styles["breadcrumb-item"]}>
|
|
|
|
+ <a href="/caseList">高潜顾问</a>
|
|
|
|
+ </span>
|
|
|
|
+ <span className={styles["breadcrumb-seperator"]}>/</span>
|
|
|
|
+ <span className={styles["breadcrumb-item"]}>
|
|
|
|
+ <span className={styles["breadcrumb-last"]}>{info?.cnName}</span>
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
|
|
+ <div className={styles.info}>
|
|
|
|
+ <div className={styles.left}>
|
|
|
|
+ <div className={styles.imgWrapper}>
|
|
|
|
+ <img src={info?.photo} className={styles.partnerPhoto} />
|
|
|
|
+ <div className={styles.box}></div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div className={styles.right}>
|
|
|
|
+ <div className={styles.name}>
|
|
|
|
+ <div className={styles.cnName}>{info?.cnName}</div>|{" "}
|
|
|
|
+ <div className={styles.enName}> {info?.enName}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div className={styles.title}>{info?.title}</div>
|
|
|
|
+ <div className={styles.desc} dangerouslySetInnerHTML={{ __html: info?.desc }}></div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div className={styles.partnerList}>
|
|
|
|
+ {list?.records?.map((item, index) => {
|
|
|
|
+ if (item.id == partnerId) {
|
|
|
|
+ return null;
|
|
|
|
+ } else {
|
|
|
|
+ return (
|
|
|
|
+ <a href={`/partner/${item.id}`}>
|
|
|
|
+ <div className={styles.item}>
|
|
|
|
+ <div className={styles.cnName}>{item.cnName}</div>|{" "}
|
|
|
|
+ <div className={styles.enName}>{item.enName}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </a>
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ })}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <Footer />
|
|
|
|
+ </div>
|
|
|
|
+ </>
|
|
|
|
+ );
|
|
|
|
+}
|