From 0b058116985f0b3415f01c69c1735e1f6a7b51ea Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期一, 17 三月 2025 16:23:26 +0800
Subject: [PATCH] 假数据造

---
 src/pages/Home.vue              | 1195 +++++++++++++++--------------
 src/pages/MainLayout.vue        |    2 
 src/components/HeaderMenu.vue   |   11 
 src/models/portalModels.ts      |   65 +
 src/components/Footer.vue       |   26 
 src/pages/Home copy.vue         |  621 +++++++++++++++
 src/pages/Product.vue           |  336 +++++---
 src/models/portalModels copy.ts |   83 ++
 8 files changed, 1,646 insertions(+), 693 deletions(-)

diff --git a/src/components/Footer.vue b/src/components/Footer.vue
new file mode 100644
index 0000000..69375e9
--- /dev/null
+++ b/src/components/Footer.vue
@@ -0,0 +1,26 @@
+<template>
+    <div class="footer">
+        <div class="footer-content">
+            版权所有© Copyright 1999-2024 &nbsp;&nbsp;&nbsp;&nbsp; 云游四方软件股份有限公司 浙ICP备11024936号-1
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+
+</script>
+<style scoped>
+.footer {
+    width: 100%;
+    text-align: center;
+    padding: 15px 0;
+    background-color: #f8f8f8;
+
+}
+
+.footer-content {
+    font-size: 12px;
+    color: #333;
+}
+</style>
\ No newline at end of file
diff --git a/src/components/HeaderMenu.vue b/src/components/HeaderMenu.vue
index 46d8439..4e5acb9 100644
--- a/src/components/HeaderMenu.vue
+++ b/src/components/HeaderMenu.vue
@@ -2,7 +2,7 @@
     <div class="header">
         <div style="width: 600px;">
             <el-menu :default-active="menuIndex" class="main-menu" mode="horizontal" @select="handleSelect">
-                <el-menu-item index="/">
+                <el-menu-item index="/logo">
                     <img src="@/assets/logo/logo.png" alt="云游四方" class="logo" />
                     <span class="logo-text">云游四方</span>
                 </el-menu-item>
@@ -16,7 +16,7 @@
             <el-icon>
                 <Phone />
             </el-icon>
-            <span>400-102-8686</span>
+            <span>18913206309</span>
         </div>
     </div>
 </template>
@@ -35,7 +35,12 @@
 // 处理菜单点击事件
 const handleSelect = (index) => {
     // console.log('选中菜单:', index);
-    router.push(index);
+    if(index === '/logo'){
+        router.push('/');
+    }else{
+        router.push(index);
+    }
+    
 };
 </script>
 <style scoped>
diff --git a/src/models/portalModels copy.ts b/src/models/portalModels copy.ts
new file mode 100644
index 0000000..155a813
--- /dev/null
+++ b/src/models/portalModels copy.ts
@@ -0,0 +1,83 @@
+import { timeSelectProps } from "element-plus";
+
+// 首页轮播图
+export class CarouselItem {
+    url: string;
+    title: string;
+    content: string;
+  
+    constructor(url: string, title: string, content: string) {
+      this.url = url;
+      this.title = title;
+      this.content = content;
+    }
+  }
+ 
+//   合作过的客户
+export class CooperativeClient {
+    url: string;
+    name: string;
+    desc: string;
+  
+    constructor(url: string, name: string, desc: string) {
+      this.url = url;
+      this.name = name;
+      this.desc = desc;
+    }
+  }
+
+  //   产品中心
+export class ProductCenter {
+    url: string;
+    name: string;
+    desc: string;
+  
+    constructor(url: string, name: string, desc: string) {
+      this.url = url;
+      this.name = name;
+      this.desc = desc;
+    }
+  }
+  
+  export class CompanyInfo {
+    logo: string; // logo
+    name: string; // 公司名称
+    desc: string; // 公司描述
+    address: string; // 公司地址
+    wechat: string;
+    phoneHotList: Array<string>; // 热线
+    phoneSaleAfterList: Array<string>; // 售后电话
+    qrCodeList: Array<CompanyQrCodeInfo>; // 二维码
+
+    constructor(logo: string, name: string, desc: string,address: string,wechat:string,phoneHotList: Array<string>,phoneSaleAfterList: Array<string>,qrCodeList: Array<CompanyQrCodeInfo>) {
+        this.logo = logo;
+        this.name = name;
+        this.desc = desc;
+        this.address = address;
+        this.phoneHotList = phoneHotList;
+        this.phoneSaleAfterList = phoneSaleAfterList;
+        this.qrCodeList = qrCodeList;
+      }
+  }
+
+
+  export class CompanyQrCodeInfo {
+    url: string; // logo
+    name: string; // 公司名称
+   
+    constructor(url: string, name: string) {
+        this.url=url
+        this.name=name
+      }
+  }
+
+
+  // 产品中心-菜单
+  export interface MenuItem {
+    index: string;
+    title: string;
+    icon?: any;
+    subMenu?: MenuItem[];
+  }
+
+  
\ No newline at end of file
diff --git a/src/models/portalModels.ts b/src/models/portalModels.ts
new file mode 100644
index 0000000..b4b7871
--- /dev/null
+++ b/src/models/portalModels.ts
@@ -0,0 +1,65 @@
+// 首页轮播图
+export interface CarouselItem {
+  url: string;
+  title: string;
+  content: string;
+}
+
+
+//   我们的产品
+export interface Products {
+  imgUrl: string;
+  title: string;
+  desc: string;
+}
+
+// 新增接口来表示产品组
+export interface ProductGroup {
+  products: Products[];
+}
+
+//   合作过的客户
+export interface CooperativeClient {
+  url: string;
+  name: string;
+  desc: string;
+}
+
+//   产品中心
+export interface ProductCenter {
+  url: string;
+  name: string;
+  desc: string;
+}
+
+// 公司基本信息
+export interface CompanyInfo {
+  logo: string; // logo
+  name: string; // 公司名称
+  desc: string; // 公司描述
+  address: string; // 公司地址
+  wechat: string;
+  phoneHotList: Array<string>; // 热线
+  phoneSaleAfterList: Array<string>; // 售后电话
+  qrCodeList: Array<CompanyQrCodeInfo>; // 二维码
+}
+
+
+// 公司二维码信息
+export interface CompanyQrCodeInfo {
+  url: string; // logo
+  name: string; // 公司名称
+}
+
+
+// 产品中心-菜单
+export interface MenuItem {
+  index: string;
+  title: string;
+  imgUrl: string;
+  pdfUrl: string;
+  icon?: any;
+  subMenu?: MenuItem[];
+}
+
+
diff --git a/src/pages/Home copy.vue b/src/pages/Home copy.vue
new file mode 100644
index 0000000..c10e4ed
--- /dev/null
+++ b/src/pages/Home copy.vue
@@ -0,0 +1,621 @@
+<template>
+  <div class="home-container">
+    <div class="carousel-container" style="margin-top:60px;">
+      <!-- 上方主要轮播 -->
+      <el-carousel ref="mainCarousel" indicator-position="none" trigger="click" height="100vh" :pause-on-hover="false"
+        @change="handleMainChange">
+        <el-carousel-item v-for="(item, index) in items" :key="index" style="display: flex; justify-content: center;">
+          <div class="carousel-content-main" :style="{
+            backgroundImage: `url(${item.url})`,
+            backgroundSize: 'cover',
+            backgroundPosition: 'center',
+            width: '100%',
+            height: '100%'
+          }">
+            <!-- {{ item.content }} -->
+          </div>
+        </el-carousel-item>
+      </el-carousel>
+
+      <!-- 下方卡片模式轮播 -->
+      <el-carousel ref="cardCarousel" :interval="5000" arrow="always" indicator-position="none" trigger="click"
+        type="card" height="100px" class="overlay-carousel" @change="handleCardChange">
+        <el-carousel-item v-for="(item, index) in items" :key="index">
+          <div class="carousel-content">
+            <div class="title">{{ item.title }}</div>
+            <div class="content">{{ item.content }}</div>
+          </div>
+        </el-carousel-item>
+      </el-carousel>
+    </div>
+
+    <div class="our-products">
+      <div class="our-products-title">
+        <h1>我们的产品</h1>
+      </div>
+      <div class="our-products-carousel">
+        <el-carousel :interval="3000" arrow="always">
+          <el-carousel-item v-for="item in 4" :key="item">
+            <!-- 这里是存放产品信息 -->
+            <el-row>
+              <el-col :span="6" v-for="o in 4" :key="o">
+                <div class="our-products-carousel-product">
+                  <el-card>
+                    <div class="card-content-div"><span class="card-content-div-title">智慧校园门户网站</span></div>
+                    <div class="card-content-div"><span
+                        class="card-content-div-content">提供全流程、一体化的数据治理与数据服务提供全流程、一体化的数据治理与数据服务</span></div>
+                    <img src="http://192.168.1.201:9000/portal/bg.png"
+                      style="width: 100%; height: 100px;object-fit: cover;" />
+                  </el-card>
+                </div>
+              </el-col>
+            </el-row>
+          </el-carousel-item>
+        </el-carousel>
+      </div>
+    </div>
+
+    <div class="third-other">
+      <el-row>
+        <el-col :span="8">
+          <div class="third-other-title">产品中心</div>
+          <ul class="footer-list footer-list-menus">
+            <li v-for="(item, index) in ProductCenters"><el-link :underline="false" :href="item.url" target="_blank"><span class="f12">{{item.name}}</span></el-link></li>
+          </ul>
+        </el-col>
+        <el-col :span="8">
+          <div class="third-other-title">合作过的客户</div>
+          <div>
+            <img v-for="(item, index) in cooperativeClients" :src="item.url" class="cooperation-img" />
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div class="third-other-title">公司信息</div>
+          <div class="contact-us">
+            <div class="j-a-c">
+              <div class="j-a-c">
+                <img :src="companyInfo.logo" alt="云游四方" class="logo-l" />
+                <span class="logo-l-text">{{ companyInfo.name }}</span>
+              </div>
+              <div class="f12 m-10"> {{ companyInfo.desc }}</div>
+            </div>
+            <!-- <div class="j-a-c">
+              <p><span class="f12 m-10">全国热线电话:</span>
+                <el-link v-for="(item, index) in companyInfo.phoneHotList" :underline="false" href="tel:400-102-8686"><span class="f12 m-10">{{ item }}</span></el-link>
+              </p>
+            </div>
+            <div class="j-a-c">
+              <p><span class="f12 m-10">全国售后电话:</span>
+                <el-link v-for="(item, index) in companyInfo.phoneSaleAfterList" :underline="false" href="tel:400-102-8686"><span class="f12 m-10">{{ item }}</span></el-link>
+              </p>
+            </div> -->
+            <div class="j-a-c">
+              <p><span class="f12 m-10">地址:{{ companyInfo.address }}</span></p>
+            </div>
+            <div class="footer-QR-code">
+              <div class="j-a-c-column" v-for="(item, index) in companyInfo.qrCodeList"><img :src="item.url" alt="云游四方" class="qr-code-img" /><span>{{ item.name }}</span></div>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <el-backtop :right="20" :bottom="50" style="width: 30px; height: 30px;" />
+
+    <!-- 右侧悬浮按钮 -->
+
+    <div class="float-buttons">
+      <el-popover placement="left" trigger="hover">
+        
+        <div class="j-a-c">
+            <img :src="companyInfo.wechat" alt="微信二维码" class="popover-img" style="width: 100px; height: 100px;" />
+        </div>
+        <template #reference>
+          <div class="j-a-c">
+            <img src="http://192.168.1.201:9000/portal/wechat.png" alt="微信" class="xuanfu" />
+          </div>
+          
+        </template>
+      </el-popover>
+
+      <el-popover placement="left" trigger="hover">
+        <p>18913206309</p>
+        <template #reference>
+          <img src="http://192.168.1.201:9000/portal/phone.png" alt="电话" class="xuanfu" />
+        </template>
+      </el-popover>
+    </div>
+
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { ref } from 'vue'
+import type { ElCarousel } from "element-plus";
+// import { CarouselItem } from '@/models/carouselItem'; 
+// import { CooperativeClient } from '@/models/cooperativeClient'; 
+import { CarouselItem,CooperativeClient,ProductCenter,CompanyInfo, CompanyQrCodeInfo } from '@/models/portalModels'; 
+
+
+// const items = ref([0, 1, 2, 3]); // 轮播项
+const mainCarousel = ref<InstanceType<typeof ElCarousel> | null>(null);
+const cardCarousel = ref<InstanceType<typeof ElCarousel> | null>(null);
+
+ // 创建数据列表
+const items = ref<CarouselItem[]>([
+  new CarouselItem('http://192.168.1.201:9000/portal/bg.png', '智慧校园', '智慧校园信息门户'),
+  new CarouselItem('http://192.168.1.201:9000/portal/bg.png', '统一认证', '统一身份认证平台'),
+  new CarouselItem('http://192.168.1.201:9000/portal/bg.png', '数据管理', '数据管理中心平台')
+]);
+
+const handleMainChange = (index: number) => {
+  if (cardCarousel.value) {
+    cardCarousel.value.setActiveItem(index); // 同步下方轮播
+  }
+};
+const handleCardChange = (index: number) => {
+  if (mainCarousel.value) {
+    mainCarousel.value.setActiveItem(index); // 同步上方轮播
+  }
+};
+
+const cooperativeClients = ref<CooperativeClient[]>([
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c29.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c34.png', '图片2', '图片2'),
+
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c1.png', '图片1', '图片1'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c22.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c23.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c24.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c25.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c26.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c27.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c28.png', '图片2', '图片2'),
+  // new CooperativeClient('http://192.168.1.201:9000/portal/customers/c29.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c30.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c31.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c32.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c33.png', '图片2', '图片2'),
+  // new CooperativeClient('http://192.168.1.201:9000/portal/customers/c34.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c35.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c36.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c37.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c38.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c39.png', '图片2', '图片2'),
+  new CooperativeClient('http://192.168.1.201:9000/portal/customers/c40.png', '图片2', '图片2'),
+])
+
+
+const ProductCenters = ref<ProductCenter[]>([
+  new ProductCenter('http://192.168.1.201:9000/portal/product-center/LIMS系统介绍方案.pdf', 'LIMS实验室管理系统', 'LIMS实验室管理系统'),
+  new ProductCenter('http://192.168.1.201:9000/portal/product-center/外部供应商管理系统介绍.pdf', '供应商管理系统', '供应商管理系统'),
+  new ProductCenter('', 'TQS企业培训系统', 'TQS企业培训系统'),
+  new ProductCenter('http://192.168.1.201:9000/portal/product-center/花满芫小程序产品介绍.pdf', 'S2B2B小程序平台', 'S2B2B小程序平台'),
+  new ProductCenter('http://192.168.1.201:9000/portal/product-center/FJIT系统介绍.pdf', 'JIT系统', 'JIT系统'),
+  new ProductCenter('http://192.168.1.201:9000/portal/product-center/CPTM软件产品介绍.pdf', 'CPTM企业能力管理系统', 'CPTM企业能力管理系统'),
+])
+
+
+const companyInfo = ref<CompanyInfo>({
+  logo: "http://192.168.1.201:9000/portal/logo.png",
+  name: "云游四方",
+  desc: "专注于智能化解决方案",
+  address: "江苏省苏州市虎丘区华云路1号桑田岛科创园",
+  wechat:"http://192.168.1.201:9000/portal/company-info/联系微信.png",
+  phoneHotList: ["400-123-4567", "010-88889999"],
+  phoneSaleAfterList: ["400-987-6543", "010-66667777"],
+  qrCodeList: [
+    new CompanyQrCodeInfo("http://192.168.1.201:9000/portal/company-info/服务号.jpg", "服务号"),
+    new CompanyQrCodeInfo("http://192.168.1.201:9000/portal/company-info/联系微信.png", "联系微信"),
+  ]
+});
+
+
+</script>
+
+<style scoped>
+.home-container {
+  position: relative;
+  width: 100%;
+  min-height: 100vh;
+  margin: 0;
+  padding: 0;
+}
+
+
+
+.el-menu--horizontal {
+  --el-menu-horizontal-height: 40px;
+}
+
+.logo-container {
+  display: flex;
+  align-items: center;
+}
+
+.logo {
+  height: 40px;
+  margin-right: 10px;
+}
+
+.logo-text {
+  font-size: 18px;
+  font-weight: bold;
+  color: #333;
+}
+
+
+
+.main-content {
+  width: 100%;
+  margin-top: 60px;
+  /* 为固定的header留出空间 */
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0px;
+  /* height: 600px; */
+  width: 100%;
+}
+
+.banner {
+  position: relative;
+  width: 100%;
+  min-height: calc(100vh - 60px);
+  /* 减去header高度 */
+  background: linear-gradient(to bottom, #1a237e, #3949ab);
+  color: white;
+  /* padding: 40px 0; */
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  box-sizing: border-box;
+}
+
+.logos-container {
+  display: flex;
+  justify-content: center;
+  gap: 40px;
+  margin: 30px 0;
+}
+
+.cert-logo,
+.company-logo {
+  height: 80px;
+}
+
+.main-title {
+  font-size: 36px;
+  text-align: center;
+  margin: 40px 0;
+}
+
+.organizers {
+  display: flex;
+  justify-content: center;
+  gap: 20px;
+  margin: 20px 0;
+}
+
+.org-item {
+  display: flex;
+  align-items: center;
+}
+
+.org-label {
+  color: #ccc;
+  margin-right: 5px;
+}
+
+.org-name {
+  color: white;
+}
+
+.location {
+  margin: 40px 0;
+}
+
+.location h2 {
+  font-size: 32px;
+  text-align: center;
+}
+
+.info-cards {
+  display: flex;
+  justify-content: center;
+  gap: 20px;
+  width: 80%;
+  margin-top: 40px;
+  margin-bottom: 40px;
+  /* 添加底部间距 */
+  flex-wrap: wrap;
+  /* 在小屏幕上允许换行 */
+}
+
+.info-card {
+  background-color: rgba(255, 255, 255, 0.1);
+  padding: 20px;
+  border-radius: 5px;
+  flex: 1;
+  min-width: 250px;
+  /* 确保在小屏幕上有最小宽度 */
+}
+
+.card-title {
+  font-size: 18px;
+  margin-bottom: 10px;
+  color: white;
+}
+
+.card-desc {
+  color: #ddd;
+  font-size: 14px;
+}
+
+.float-buttons {
+  position: fixed;
+  right: 20px;
+  bottom: 100px;
+  display: flex;
+  flex-direction: column;
+  gap: 10px;
+}
+
+.float-btn {
+  width: 60px;
+  height: 60px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.btn-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  font-size: 12px;
+}
+
+.product-btn {
+  background-color: #fff;
+  color: #333;
+}
+
+.service-btn {
+  background-color: #fff;
+  color: #333;
+}
+
+.top-btn {
+  background-color: #fff;
+  color: #333;
+}
+
+/* 添加响应式设计 */
+@media (max-width: 768px) {
+  .organizers {
+    flex-direction: column;
+    align-items: center;
+  }
+
+  .info-cards {
+    width: 90%;
+  }
+
+  .main-title {
+    font-size: 28px;
+    padding: 0 15px;
+  }
+}
+</style>
+
+
+<style scoped>
+.demonstration {
+  color: var(--el-text-color-secondary);
+}
+
+.el-carousel__item h3 {
+  color: #475669;
+  opacity: 0.75;
+  line-height: 150px;
+  margin: 0;
+  text-align: center;
+}
+
+.el-carousel__item:nth-child(2n) {
+  /* background-color: #FFFFFF; */
+}
+
+.el-carousel__item:nth-child(2n + 1) {
+  /* background-color: #FFFFFF; */
+}
+</style>
+
+<style scoped>
+.carousel-container {
+  position: relative;
+  margin-top: 30px;
+  min-height: calc(100vh - 60px);
+}
+.carousel-content-main{
+  height: 100%;
+}
+
+.overlay-carousel {
+  position: absolute;
+  top: 500px;
+  /* 调整此值控制重叠程度 */
+  left: 50%;
+  transform: translateX(-50%);
+  width: 80%;
+  /* 适当调整宽度 */
+}
+
+.our-products {
+  margin-top: 50px;
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  /* 设置子元素垂直排列 */
+  align-items: center;
+  /* 可选:将子元素水平居中 */
+  padding: 0 50px;
+
+}
+
+.our-products-title {
+  width: 100%;
+  height: 50px;
+  text-align: center;
+}
+
+.our-products-carousel {
+  margin-top: 30px;
+  width: 80%;
+  /* height: 300px; */
+}
+
+.our-products-carousel-product {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  /* 设置子元素垂直排列 */
+  align-items: center;
+  /* 可选:将子元素水平居中 */
+  padding: 0 5px;
+}
+
+.card-content-div {
+  text-align: center;
+  margin: 10px;
+}
+
+.card-content-div-title {
+  font-weight: 500;
+}
+
+.card-content-div-content {
+  color: gray;
+  font-size: 14px;
+}
+
+.third-other {
+  width: 100%;
+  text-align: center;
+  margin-top: 30px;
+  background-color: #F2F5FA;
+  padding: 20px;
+}
+
+
+.third-other-title {
+  margin: 0 20px;
+}
+
+
+.footer-list {
+  display: flex;
+  flex-wrap: wrap;
+  /* Allow wrapping to new lines */
+}
+
+.footer-list li {
+  width: 48%;
+  /* Adjust this value to control the width of each item */
+  margin-bottom: 5px;
+  /* Optional: Adds space between rows */
+  text-align: left;
+}
+
+.f12 {
+  font-size: 12px;
+  color: #2B2B2B;
+}
+
+ul,
+ol,
+li {
+  list-style: none;
+}
+
+ul {
+  margin: 0;
+}
+
+ol,
+ul {
+  margin-top: 0;
+  margin-bottom: 10px;
+}
+
+.cooperation-img {
+  width: 50px;
+  height: 50px;
+  object-fit: cover;
+  margin: 5px;
+}
+
+.contact-us {
+  margin: 10px;
+}
+
+.j-a-c {
+  display: flex;
+  /* justify-content: center; */
+  align-items: center;
+}
+
+.j-a-c-column{
+  display: flex;
+  align-items: center;
+  flex-direction: column;
+}
+
+.logo-l {
+  height: 20px;
+}
+
+.logo-l-text {
+  font-size: 12px;
+  font-weight: bold;
+  color: #333;
+}
+
+.m-10 {
+  margin-left: 10px;
+}
+
+.footer-QR-code {
+  display: flex;
+  justify-content: flex-start;
+  margin-top: 10px;
+}
+
+.qr-code-img {
+  width: 60px;
+  height: 60px;
+}
+
+.xuanfu {
+  width: 30px;
+  height: 30px;
+}
+
+/* 
+::v-deep .el-carousel__mask {
+
+  height: 100%;
+  left: 0;
+  opacity: .24;
+  position: absolute;
+  top: 0;
+  transition: var(--el-transition-duration-fast);
+  width: 100%;
+} */
+
+.carousel-content {
+  /* width: 50%;
+    background-color: #FFFFFF; */
+  text-align: center;
+}
+</style>
\ No newline at end of file
diff --git a/src/pages/Home.vue b/src/pages/Home.vue
index b015dab..d9b0473 100644
--- a/src/pages/Home.vue
+++ b/src/pages/Home.vue
@@ -1,583 +1,632 @@
 <template>
-    <div class="home-container">
-      <div class="carousel-container" style="margin-top:60px;">
-        <!-- 上方主要轮播 -->
-        <el-carousel  ref="mainCarousel"
-        indicator-position="none" trigger="click" height="550px" :pause-on-hover="false"
-          @change="handleMainChange">
-          <el-carousel-item v-for="(item, index) in items" :key="index" 
-            style="display: flex; justify-content: center;">
-            <div class="carousel-content-main" :style="{
-              backgroundImage: `url(http://192.168.1.201:9000/portal/bg.png)`,
-              backgroundSize: 'cover',
-              backgroundPosition: 'center',
-              width: '100%',
-              height: '100%'
-            }">
-              aaaaaaaaaaa{{ item }}
-            </div>
-          </el-carousel-item>
-        </el-carousel>
-  
-        <!-- 下方卡片模式轮播 -->
-        <el-carousel  ref="cardCarousel" :interval="3000" arrow="always" indicator-position="none" trigger="click" type="card" height="100px"
-          class="overlay-carousel" @change="handleCardChange">
-          <el-carousel-item v-for="(item, index) in items" :key="index">
-            <div class="carousel-content">
-              <div class="title">aaaaaaaaaaa{{ item }}</div>
-              <div class="content">我是内容我是内容我是内容我是内容我是内容</div>
-            </div>
-          </el-carousel-item>
-        </el-carousel>
-      </div>
-  
-      <div class="our-products">
-        <div class="our-products-title">
-          <h1>我们的产品</h1>
-        </div>
-        <div class="our-products-carousel">
-          <el-carousel :interval="3000" arrow="always">
-            <el-carousel-item v-for="item in 4" :key="item">
-              <!-- 这里是存放产品信息 -->
-              <el-row>
-                <el-col :span="6" v-for="o in 4" :key="o">
-                  <div class="our-products-carousel-product">
-                    <el-card>
-                      <div class="card-content-div"><span class="card-content-div-title">智慧校园门户网站</span></div>
-                      <div class="card-content-div"><span
-                          class="card-content-div-content">提供全流程、一体化的数据治理与数据服务提供全流程、一体化的数据治理与数据服务</span></div>
-                      <img src="http://192.168.1.201:9000/portal/bg.png"
-                        style="width: 100%; height: 100px;object-fit: cover;" />
-                    </el-card>
-                  </div>
-                </el-col>
-              </el-row>
-            </el-carousel-item>
-          </el-carousel>
-        </div>
-      </div>
-  
-      <div class="third-other">
-        <el-row>
-          <el-col :span="8">
-            <div>产品中心</div>
-            <ul class="footer-list footer-list-menus">
-              <li><el-link :underline="false" href="./product/tymhxt.html"><span class="f12">智慧校园信息服务门户</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/tyrzxt.html"><span class="f12">统一身份认证服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/ydglxt.html"><span class="f12">移动智慧校园平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/sjglxt.html"><span class="f12">数据管理中心平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/jcpt.html"><span class="f12">集成平台</span></el-link> </li>
-              <li><el-link :underline="false" href="./product/jxglxt.html"><span class="f12">教学管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/zsglxt.html"><span class="f12">招生管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/yxglxt.html"><span class="f12">迎新管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/xgmhxt.html"><span class="f12">学生工作管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/lxglxt.html"><span class="f12">离校管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/jyglxt.html"><span class="f12">就业管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/kyglxt.html"><span class="f12">科研管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/zyglxt.html"><span class="f12">人力资源管理服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/zhbgpt.html"><span class="f12">智慧办公服务平台</span></el-link>
-              </li>
-              <li><el-link :underline="false" href="./product/wsbs.html"><span class="f12">网上办事大厅</span></el-link> </li>
-              <li><el-link :underline="false" href="./product/yjsxxfwxt.html"><span
-                    class="f12">研究生信息管理与服务平台</span></el-link> </li>
-              <li><el-link :underline="false" href="./product/zzcxdyytj.html"><span class="f12">自助查询打印一体机</span></el-link>
-              </li>
-            </ul>
-          </el-col>
-          <el-col :span="8">
-            <div>合作过的客户</div>
-            <div>
-              <img v-for="(item, index) in 28" src="http://192.168.1.201:9000/portal/bg.png" class="cooperation-img" />
-            </div>
-          </el-col>
-          <el-col :span="8">
-            <div>公司信息</div>
-            <div class="contact-us">
-              <div class="j-a-c">
-                <div class="j-a-c">
-                  <img src="@/assets/logo/logo.png" alt="云游四方" class="logo-l" />
-                  <span class="logo-l-text">云游四方</span>
-                </div>
-                <div class="f12 m-10"> 科技创新 服务教育</div>
-              </div>
-              <div class="j-a-c">
-                <p><span class="f12 m-10">全国热线电话:</span>
-                  <el-link :underline="false" href="tel:400-102-8686"><span class="f12 m-10">400-102-8686</span></el-link>
-                  <el-link :underline="false" href="tel:400-102-8686"><span class="f12 m-10">400-102-8686</span></el-link>
-                </p>
-              </div>
-              <div class="j-a-c">
-                <p><span class="f12 m-10">全国售后电话:</span>
-                  <el-link :underline="false" href="tel:400-102-8686"><span class="f12 m-10">400-102-8686</span></el-link>
-                  <el-link :underline="false" href="tel:400-102-8686"><span class="f12 m-10">400-102-8686</span></el-link>
-                </p>
-              </div>
-              <div class="j-a-c">
-                <p><span class="f12 m-10">地址:浙江省杭州市西湖区紫霞街176号杭州互联网创新创业园2-301</span></p>
-              </div>
-              <div class="footer-QR-code">
-                <div class="j-a-c"><img src="@/assets/logo/logo.png" alt="云游四方" class="qr-code-img" /></div>
-                <div class="j-a-c"><img src="@/assets/logo/logo.png" alt="云游四方" class="qr-code-img" /></div>
-              </div>
-  
-            </div>
-          </el-col>
-        </el-row>
-      </div>
-  
-  
-  
-      <el-backtop :right="20" :bottom="50" style="width: 30px; height: 30px;" />
-  
-      <!-- 右侧悬浮按钮 -->
-  
-      <div class="float-buttons">
-        <el-popover placement="left" trigger="hover">
-          <img src="http://192.168.1.201:9000/portal/wechat.png" alt="微信二维码" class="popover-img" />
-          <template #reference>
-            <img src="http://192.168.1.201:9000/portal/wechat.png" alt="微信" class="xuanfu" />
-          </template>
-        </el-popover>
-  
-        <el-popover placement="left" trigger="hover">
-          <p>123-456-789</p>
-          <template #reference>
-            <img src="http://192.168.1.201:9000/portal/phone.png" alt="电话" class="xuanfu" />
-          </template>
-        </el-popover>
-      </div>
-  
+  <div class="home-container">
+    <div class="carousel-container" style="margin-top:60px;">
+      <!-- 上方主要轮播 -->
+      <el-carousel ref="mainCarousel" indicator-position="none" trigger="click" height="100vh" :pause-on-hover="false"
+        @change="handleMainChange">
+        <el-carousel-item v-for="(item, index) in items" :key="index" style="display: flex; justify-content: center;">
+          <div class="carousel-content-main" :style="{
+            backgroundImage: `url(${item.url})`,
+            backgroundSize: 'cover',
+            backgroundPosition: 'center',
+            width: '100%',
+            height: '100%'
+          }">
+            <!-- {{ item.content }} -->
+          </div>
+        </el-carousel-item>
+      </el-carousel>
+
+      <!-- 下方卡片模式轮播 -->
+      <el-carousel ref="cardCarousel" :interval="5000" arrow="always" indicator-position="none" trigger="click"
+        type="card" height="100px" class="overlay-carousel" @change="handleCardChange">
+        <el-carousel-item v-for="(item, index) in items" :key="index">
+          <div class="carousel-content">
+            <div class="title">{{ item.title }}</div>
+            <div class="content">{{ item.content }}</div>
+          </div>
+        </el-carousel-item>
+      </el-carousel>
     </div>
-  </template>
-  
-  <script lang="ts" setup>
-  import { ref } from 'vue'
-  import { Phone, Monitor, Service, Top } from '@element-plus/icons-vue'
-  import type { ElCarousel } from "element-plus";
-  import HeaderMenu from '@/components/HeaderMenu.vue';
-  
-  const handleSelect = (key: string, keyPath: string[]) => {
-    console.log(key, keyPath)
+
+    <div class="our-products">
+      <div class="our-products-title">
+        <h1>我们的产品</h1>
+      </div>
+      <div class="our-products-carousel">
+        <el-carousel :interval="3000" arrow="always" height="400px" >
+          <el-carousel-item v-for="(group, groupIndex) in productGroups" :key="groupIndex">
+            <el-row>
+              <el-col :span="6" v-for="(product, productIndex) in group.products" :key="productIndex">
+                <div class="our-products-carousel-product">
+                  <el-card>
+                    <div class="card-content-div"><span class="card-content-div-title">{{ product.title }}</span></div>
+                    <div class="card-content-div">
+                      <span class="card-content-div-content">{{ product.desc }}</span>
+                    </div>
+                    <img :src="product.imgUrl" style="width: 100%; height: 100px; object-fit: cover;" />
+                  </el-card>
+                </div>
+              </el-col>
+            </el-row>
+          </el-carousel-item>
+        </el-carousel>
+      </div>
+    </div>
+
+    <div class="third-other">
+      <el-row>
+        <el-col :span="8">
+          <div class="third-other-title">产品中心</div>
+          <ul class="footer-list footer-list-menus">
+            <li v-for="(item, index) in ProductCenters"><el-link :underline="false" :href="item.url" target="_blank"><span class="f12">{{item.name}}</span></el-link></li>
+          </ul>
+        </el-col>
+        <el-col :span="8">
+          <div class="third-other-title">合作过的客户</div>
+          <div>
+            <img v-for="(item, index) in cooperativeClients" :src="item.url" class="cooperation-img" />
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div class="third-other-title">公司信息</div>
+          <div class="contact-us">
+            <div class="j-a-c">
+              <div class="j-a-c">
+                <img :src="companyInfo.logo" alt="云游四方" class="logo-l" />
+                <span class="logo-l-text">{{ companyInfo.name }}</span>
+              </div>
+              <div class="f12 m-10"> {{ companyInfo.desc }}</div>
+            </div>
+            <!-- <div class="j-a-c">
+              <p><span class="f12 m-10">全国热线电话:</span>
+                <el-link v-for="(item, index) in companyInfo.phoneHotList" :underline="false" href="tel:400-102-8686"><span class="f12 m-10">{{ item }}</span></el-link>
+              </p>
+            </div>
+            <div class="j-a-c">
+              <p><span class="f12 m-10">全国售后电话:</span>
+                <el-link v-for="(item, index) in companyInfo.phoneSaleAfterList" :underline="false" href="tel:400-102-8686"><span class="f12 m-10">{{ item }}</span></el-link>
+              </p>
+            </div> -->
+            <div class="j-a-c">
+              <p><span class="f12 m-10">地址:{{ companyInfo.address }}</span></p>
+            </div>
+            <div class="footer-QR-code">
+              <div class="j-a-c-column" v-for="(item, index) in companyInfo.qrCodeList"><img :src="item.url" alt="云游四方" class="qr-code-img" /><span>{{ item.name }}</span></div>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <el-backtop :right="20" :bottom="50" style="width: 30px; height: 30px;" />
+
+    <!-- 右侧悬浮按钮 -->
+
+    <div class="float-buttons">
+      <el-popover placement="left" trigger="hover">
+        
+        <div class="j-a-c">
+            <img :src="companyInfo.wechat" alt="微信二维码" class="popover-img" style="width: 100px; height: 100px;" />
+        </div>
+        <template #reference>
+          <div class="j-a-c">
+            <img src="http://192.168.1.201:9000/portal/wechat.png" alt="微信" class="xuanfu" />
+          </div>
+          
+        </template>
+      </el-popover>
+
+      <el-popover placement="left" trigger="hover">
+        <p>18913206309</p>
+        <template #reference>
+          <img src="http://192.168.1.201:9000/portal/phone.png" alt="电话" class="xuanfu" />
+        </template>
+      </el-popover>
+    </div>
+
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { ref } from 'vue'
+import type { ElCarousel } from "element-plus";
+import { CarouselItem, CooperativeClient, ProductCenter, CompanyInfo, Products, ProductGroup } from '@/models/portalModels'; 
+
+const mainCarousel = ref<InstanceType<typeof ElCarousel> | null>(null);
+const cardCarousel = ref<InstanceType<typeof ElCarousel> | null>(null);
+
+ // 创建数据列表
+const items = ref<CarouselItem[]>([
+  {url:'http://192.168.1.201:9000/portal/bg.png', title:'', content:''},
+  // {url:'http://192.168.1.201:9000/portal/bg.png', title:'统一认证', content:'统一身份认证平台'},
+  // {url:'http://192.168.1.201:9000/portal/bg.png', title:'数据管理', content:'数据管理中心平台'}
+]);
+
+const handleMainChange = (index: number) => {
+  if (cardCarousel.value) {
+    cardCarousel.value.setActiveItem(index); // 同步下方轮播
   }
-  
-  const menuIndex = ref<String>("index"); // 共享当前索引
-  
-  
-  const items = ref([0, 1, 2, 3]); // 轮播项
-  const mainCarousel = ref<InstanceType<typeof ElCarousel> | null>(null);
-  const cardCarousel = ref<InstanceType<typeof ElCarousel> | null>(null);
-  
-  const handleMainChange = (index: number) => {
-    if (cardCarousel.value) {
-      cardCarousel.value.setActiveItem(index); // 同步下方轮播
-    }
-  };
-  
-  const handleCardChange = (index: number) => {
-    if (mainCarousel.value) {
-      mainCarousel.value.setActiveItem(index); // 同步上方轮播
-    }
-  };
-  </script>
-  
-  <style scoped>
-  .home-container {
-    position: relative;
-    width: 100%;
-    min-height: 100vh;
-    margin: 0;
-    padding: 0;
+};
+const handleCardChange = (index: number) => {
+  if (mainCarousel.value) {
+    mainCarousel.value.setActiveItem(index); // 同步上方轮播
   }
-  
-  
-  
-  .el-menu--horizontal {
-    --el-menu-horizontal-height: 40px;
-  }
-  
-  .logo-container {
-    display: flex;
-    align-items: center;
-  }
-  
-  .logo {
-    height: 40px;
-    margin-right: 10px;
-  }
-  
-  .logo-text {
-    font-size: 18px;
-    font-weight: bold;
-    color: #333;
-  }
-  
-  
-  
-  .main-content {
-    width: 100%;
-    margin-top: 60px;
-    /* 为固定的header留出空间 */
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    padding: 0px;
-    /* height: 600px; */
-    width: 100%;
-  }
-  
-  .banner {
-    position: relative;
-    width: 100%;
-    min-height: calc(100vh - 60px);
-    /* 减去header高度 */
-    background: linear-gradient(to bottom, #1a237e, #3949ab);
-    color: white;
-    /* padding: 40px 0; */
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    box-sizing: border-box;
-  }
-  
-  .logos-container {
-    display: flex;
-    justify-content: center;
-    gap: 40px;
-    margin: 30px 0;
-  }
-  
-  .cert-logo,
-  .company-logo {
-    height: 80px;
-  }
-  
-  .main-title {
-    font-size: 36px;
-    text-align: center;
-    margin: 40px 0;
-  }
-  
+};
+
+const cooperativeClients = ref<CooperativeClient[]>([
+  {url:'http://192.168.1.201:9000/portal/customers/c29.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c34.png', name:'图片2', desc:'图片2'},
+
+  {url:'http://192.168.1.201:9000/portal/customers/c1.png',  name:'图片1', desc:'图片1'},
+  {url:'http://192.168.1.201:9000/portal/customers/c22.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c23.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c24.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c25.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c26.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c27.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c28.png', name:'图片2', desc:'图片2'},
+  // {url:'http://192.168.1.201:9000/portal/customers/c29.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c30.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c31.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c32.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c33.png', name:'图片2', desc:'图片2'},
+  // {url:'http://192.168.1.201:9000/portal/customers/c34.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c35.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c36.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c37.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c38.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c39.png', name:'图片2', desc:'图片2'},
+  {url:'http://192.168.1.201:9000/portal/customers/c40.png', name:'图片2', desc:'图片2'},
+])
+
+// 新增产品组数据
+const productGroups = ref<ProductGroup[]>([
+  {
+    products: [
+      { imgUrl: 'http://192.168.1.201:9000/portal/product-our/S2B2B.png', title: 'S2B2B', desc: '通过数字化整合上下游资源,重构传统供应链“多级分销、信息割裂”的痛点,实现供应商增收......' },
+      { imgUrl: 'http://192.168.1.201:9000/portal/product-our/实验室管理系统.png', title: '实验室管理系统', desc: '主要应用于汽车零部件质检行业。它能解决委托单流转、设备管理、数据管理、权限管理等方面的痛点,具备委托单管理.....' },
+      { imgUrl: 'http://192.168.1.201:9000/portal/product-our/TQS系统.png', title: 'TQS系统', desc: '解决制造业、汽车业培训痛点。它涵盖多个模块,具备人员信息管理、培训管理、岗位技能培训管理等功能,能实现培训数字...' },
+      { imgUrl: 'http://192.168.1.201:9000/portal/product-our/外部供应商管理系统.png', title: '外部供应商管理系统', desc: '破信息壁垒,实现数据共享,自动化处理订单,增强沟通与生产跟踪。系统具备多模块功能,涵盖用户、订单、工单等管理,支持移动端扫码记录工时...' }
+    ]
+  },
+  { products: [
+      { imgUrl: 'http://192.168.1.201:9000/portal/product-our/JIT.png', title: 'JIT', desc: '面向工业领域的生产管理系统,旨在减少库存和浪费、提升生产效率。它针对数据出错、库存积压等行业痛点,提供数字化管理、自动化检测等解决方案。系统具备物料管理、工艺路线管理等多种功能,实现生产全过程管控与高效运营' },
+      { imgUrl: 'http://192.168.1.201:9000/portal/product-our/CPTM.png', title: 'CPTM', desc: '优化人力开发流程,助力企业发展。它解决了企业培训管理缺乏系统化、报考流程效率低等问题,具备集成平台管理、自动化流程、技能评估等功能,涵盖培训管理、人员信息管理等模块,推动员工和团队能力提升。' },
+    
+  ] }
+]);
+
+const ProductCenters = ref<ProductCenter[]>([
+  { url:'http://192.168.1.201:9000/portal/product-center/LIMS系统介绍方案.pdf', name:'LIMS实验室管理系统', desc:'LIMS实验室管理系统'},
+  { url:'http://192.168.1.201:9000/portal/product-center/外部供应商管理系统介绍.pdf', name:'供应商管理系统',  desc:'供应商管理系统'},
+  { url:'http://192.168.1.201:9000/portal/product-center/TQS系统介绍与解决方案.pdf', name:'TQS企业培训系统',  desc:'TQS企业培训系统'},
+  { url:'http://192.168.1.201:9000/portal/product-center/花满芫小程序产品介绍.pdf', name:'S2B2B小程序平台',  desc:'S2B2B小程序平台'},
+  { url:'http://192.168.1.201:9000/portal/product-center/JIT系统介绍.pdf', name:'JIT系统',  desc:'JIT系统'},
+  { url:'http://192.168.1.201:9000/portal/product-center/CPTM软件产品介绍.pdf', name:'CPTM企业能力管理系统',  desc:'CPTM企业能力管理系统'},
+])
+
+
+const companyInfo = ref<CompanyInfo>({
+  logo: "http://192.168.1.201:9000/portal/logo.png",
+  name: "云游四方",
+  desc: "专注于智能化解决方案",
+  address: "江苏省苏州市虎丘区华云路1号桑田岛科创园",
+  wechat:"http://192.168.1.201:9000/portal/company-info/联系微信.png",
+  phoneHotList: ["400-123-4567", "010-88889999"],
+  phoneSaleAfterList: ["400-987-6543", "010-66667777"],
+  qrCodeList: [
+    { url:"http://192.168.1.201:9000/portal/company-info/服务号.jpg", name:"服务号"},
+    { url:"http://192.168.1.201:9000/portal/company-info/联系微信.png",name: "联系微信"},
+  ]
+});
+
+
+</script>
+
+<style scoped>
+.home-container {
+  position: relative;
+  width: 100%;
+  min-height: 100vh;
+  margin: 0;
+  padding: 0;
+}
+
+
+
+.el-menu--horizontal {
+  --el-menu-horizontal-height: 40px;
+}
+
+.logo-container {
+  display: flex;
+  align-items: center;
+}
+
+.logo {
+  height: 40px;
+  margin-right: 10px;
+}
+
+.logo-text {
+  font-size: 18px;
+  font-weight: bold;
+  color: #333;
+}
+
+
+
+.main-content {
+  width: 100%;
+  margin-top: 60px;
+  /* 为固定的header留出空间 */
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0px;
+  /* height: 600px; */
+  width: 100%;
+}
+
+.banner {
+  position: relative;
+  width: 100%;
+  min-height: calc(100vh - 60px);
+  /* 减去header高度 */
+  background: linear-gradient(to bottom, #1a237e, #3949ab);
+  color: white;
+  /* padding: 40px 0; */
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  box-sizing: border-box;
+}
+
+.logos-container {
+  display: flex;
+  justify-content: center;
+  gap: 40px;
+  margin: 30px 0;
+}
+
+.cert-logo,
+.company-logo {
+  height: 80px;
+}
+
+.main-title {
+  font-size: 36px;
+  text-align: center;
+  margin: 40px 0;
+}
+
+.organizers {
+  display: flex;
+  justify-content: center;
+  gap: 20px;
+  margin: 20px 0;
+}
+
+.org-item {
+  display: flex;
+  align-items: center;
+}
+
+.org-label {
+  color: #ccc;
+  margin-right: 5px;
+}
+
+.org-name {
+  color: white;
+}
+
+.location {
+  margin: 40px 0;
+}
+
+.location h2 {
+  font-size: 32px;
+  text-align: center;
+}
+
+.info-cards {
+  display: flex;
+  justify-content: center;
+  gap: 20px;
+  width: 80%;
+  margin-top: 40px;
+  margin-bottom: 40px;
+  /* 添加底部间距 */
+  flex-wrap: wrap;
+  /* 在小屏幕上允许换行 */
+}
+
+.info-card {
+  background-color: rgba(255, 255, 255, 0.1);
+  padding: 20px;
+  border-radius: 5px;
+  flex: 1;
+  min-width: 250px;
+  /* 确保在小屏幕上有最小宽度 */
+}
+
+.card-title {
+  font-size: 18px;
+  margin-bottom: 10px;
+  color: white;
+}
+
+.card-desc {
+  color: #ddd;
+  font-size: 14px;
+}
+
+.float-buttons {
+  position: fixed;
+  right: 20px;
+  bottom: 100px;
+  display: flex;
+  flex-direction: column;
+  gap: 10px;
+}
+
+.float-btn {
+  width: 60px;
+  height: 60px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.btn-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  font-size: 12px;
+}
+
+.product-btn {
+  background-color: #fff;
+  color: #333;
+}
+
+.service-btn {
+  background-color: #fff;
+  color: #333;
+}
+
+.top-btn {
+  background-color: #fff;
+  color: #333;
+}
+
+/* 添加响应式设计 */
+@media (max-width: 768px) {
   .organizers {
-    display: flex;
-    justify-content: center;
-    gap: 20px;
-    margin: 20px 0;
-  }
-  
-  .org-item {
-    display: flex;
-    align-items: center;
-  }
-  
-  .org-label {
-    color: #ccc;
-    margin-right: 5px;
-  }
-  
-  .org-name {
-    color: white;
-  }
-  
-  .location {
-    margin: 40px 0;
-  }
-  
-  .location h2 {
-    font-size: 32px;
-    text-align: center;
-  }
-  
-  .info-cards {
-    display: flex;
-    justify-content: center;
-    gap: 20px;
-    width: 80%;
-    margin-top: 40px;
-    margin-bottom: 40px;
-    /* 添加底部间距 */
-    flex-wrap: wrap;
-    /* 在小屏幕上允许换行 */
-  }
-  
-  .info-card {
-    background-color: rgba(255, 255, 255, 0.1);
-    padding: 20px;
-    border-radius: 5px;
-    flex: 1;
-    min-width: 250px;
-    /* 确保在小屏幕上有最小宽度 */
-  }
-  
-  .card-title {
-    font-size: 18px;
-    margin-bottom: 10px;
-    color: white;
-  }
-  
-  .card-desc {
-    color: #ddd;
-    font-size: 14px;
-  }
-  
-  .float-buttons {
-    position: fixed;
-    right: 20px;
-    bottom: 100px;
-    display: flex;
-    flex-direction: column;
-    gap: 10px;
-  }
-  
-  .float-btn {
-    width: 60px;
-    height: 60px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-  
-  .btn-content {
-    display: flex;
     flex-direction: column;
     align-items: center;
-    font-size: 12px;
-  }
-  
-  .product-btn {
-    background-color: #fff;
-    color: #333;
-  }
-  
-  .service-btn {
-    background-color: #fff;
-    color: #333;
-  }
-  
-  .top-btn {
-    background-color: #fff;
-    color: #333;
-  }
-  
-  /* 添加响应式设计 */
-  @media (max-width: 768px) {
-    .organizers {
-      flex-direction: column;
-      align-items: center;
-    }
-  
-    .info-cards {
-      width: 90%;
-    }
-  
-    .main-title {
-      font-size: 28px;
-      padding: 0 15px;
-    }
-  }
-  </style>
-  
-  
-  <style scoped>
-  .demonstration {
-    color: var(--el-text-color-secondary);
-  }
-  
-  .el-carousel__item h3 {
-    color: #475669;
-    opacity: 0.75;
-    line-height: 150px;
-    margin: 0;
-    text-align: center;
-  }
-  
-  .el-carousel__item:nth-child(2n) {
-    /* background-color: #FFFFFF; */
-  }
-  
-  .el-carousel__item:nth-child(2n + 1) {
-    /* background-color: #FFFFFF; */
-  }
-  </style>
-  
-  <style scoped>
-  .carousel-container {
-    position: relative;
-    margin-top: 30px;
-  }
-  
-  .overlay-carousel {
-    position: absolute;
-    top: 400px;
-    /* 调整此值控制重叠程度 */
-    left: 50%;
-    transform: translateX(-50%);
-    width: 80%;
-    /* 适当调整宽度 */
-  }
-  
-  .our-products {
-    margin-top: 10px;
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    /* 设置子元素垂直排列 */
-    align-items: center;
-    /* 可选:将子元素水平居中 */
-    padding: 0 20px;
-  }
-  
-  .our-products-title {
-    width: 100%;
-    height: 50px;
-    text-align: center;
-  }
-  
-  .our-products-carousel {
-    margin-top: 30px;
-    width: 80%;
-    /* height: 300px; */
-  }
-  
-  .our-products-carousel-product {
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    /* 设置子元素垂直排列 */
-    align-items: center;
-    /* 可选:将子元素水平居中 */
-    padding: 0 5px;
-  }
-  
-  .card-content-div {
-    text-align: center;
-    margin: 10px;
-  }
-  
-  .card-content-div-title {
-    font-weight: 500;
-  }
-  
-  .card-content-div-content {
-    color: gray;
-    font-size: 14px;
-  }
-  
-  .third-other {
-    width: 100%;
-    text-align: center;
-    margin-top: 20px;
-    background-color: #F2F5FA;
-  }
-  
-  
-  .footer-list {
-    display: flex;
-    flex-wrap: wrap;
-    /* Allow wrapping to new lines */
-  }
-  
-  .footer-list li {
-    width: 48%;
-    /* Adjust this value to control the width of each item */
-    margin-bottom: 5px;
-    /* Optional: Adds space between rows */
-    text-align: left;
-  }
-  
-  .f12 {
-    font-size: 12px;
-    color: #2B2B2B;
-  }
-  
-  ul,
-  ol,
-  li {
-    list-style: none;
-  }
-  
-  ul {
-    margin: 0;
-  }
-  
-  ol,
-  ul {
-    margin-top: 0;
-    margin-bottom: 10px;
-  }
-  
-  .cooperation-img {
-    width: 50px;
-    height: 50px;
-    object-fit: cover;
-    margin: 5px;
-  }
-  
-  .contact-us {
-    margin: 10px;
-  }
-  
-  .j-a-c {
-    display: flex;
-    /* justify-content: center; */
-    align-items: center;
-  }
-  
-  .logo-l {
-    height: 20px;
-  }
-  
-  .logo-l-text {
-    font-size: 12px;
-    font-weight: bold;
-    color: #333;
-  }
-  
-  .m-10 {
-    margin-left: 10px;
-  }
-  
-  .footer-QR-code {
-    display: flex;
-    justify-content: flex-start;
-    margin-top: 10px;
-  }
-  
-  .qr-code-img {
-    width: 60px;
-    height: 60px;
-  }
-  
-  .xuanfu {
-    width: 30px;
-    height: 30px;
   }
 
- 
-::v-deep .el-carousel__mask {
-    /* background-color: var(--el-color-white); */
-    height: 100%;
-    left: 0;
-    opacity: .24;
-    position: absolute;
-    top: 0;
-    transition: var(--el-transition-duration-fast);
-    width: 100%;
-}
-  .carousel-content{
-    /* width: 50%;
-    background-color: #FFFFFF; */
-    text-align: center;
+  .info-cards {
+    width: 90%;
   }
-  </style>
\ No newline at end of file
+
+  .main-title {
+    font-size: 28px;
+    padding: 0 15px;
+  }
+}
+</style>
+
+
+<style scoped>
+.demonstration {
+  color: var(--el-text-color-secondary);
+}
+
+.el-carousel__item h3 {
+  color: #475669;
+  opacity: 0.75;
+  line-height: 150px;
+  margin: 0;
+  text-align: center;
+}
+
+.el-carousel__item:nth-child(2n) {
+  /* background-color: #FFFFFF; */
+}
+
+.el-carousel__item:nth-child(2n + 1) {
+  /* background-color: #FFFFFF; */
+}
+</style>
+
+<style scoped>
+.carousel-container {
+  position: relative;
+  margin-top: 30px;
+  min-height: calc(100vh - 60px);
+}
+.carousel-content-main{
+  height: 100%;
+}
+
+.overlay-carousel {
+  position: absolute;
+  top: calc(100vh - 200px);
+  /* 调整此值控制重叠程度 */
+  left: 50%;
+  transform: translateX(-50%);
+  width: 80%;
+  /* 适当调整宽度 */
+}
+
+.our-products {
+  margin-top: 50px;
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  /* 设置子元素垂直排列 */
+  align-items: center;
+  /* 可选:将子元素水平居中 */
+  padding: 0 50px;
+
+}
+
+.our-products-title {
+  width: 100%;
+  height: 50px;
+  text-align: center;
+}
+
+.our-products-carousel {
+  margin-top: 30px;
+  width: 80%;
+  /* height: 300px; */
+}
+
+.our-products-carousel-product {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  /* 设置子元素垂直排列 */
+  align-items: center;
+  /* 可选:将子元素水平居中 */
+  padding: 0 5px;
+}
+
+.card-content-div {
+  text-align: center;
+  margin: 10px;
+}
+
+.card-content-div-title {
+  font-weight: 500;
+}
+
+.card-content-div-content {
+  color: gray;
+  font-size: 14px;
+}
+
+.third-other {
+  width: 100%;
+  text-align: center;
+  margin-top: 30px;
+  background-color: #F2F5FA;
+  padding: 20px;
+}
+
+
+.third-other-title {
+  margin: 0 20px;
+}
+
+
+.footer-list {
+  display: flex;
+  flex-wrap: wrap;
+  /* Allow wrapping to new lines */
+}
+
+.footer-list li {
+  width: 48%;
+  /* Adjust this value to control the width of each item */
+  margin-bottom: 5px;
+  /* Optional: Adds space between rows */
+  text-align: left;
+}
+
+.f12 {
+  font-size: 12px;
+  color: #2B2B2B;
+}
+
+ul,
+ol,
+li {
+  list-style: none;
+}
+
+ul {
+  margin: 0;
+}
+
+ol,
+ul {
+  margin-top: 0;
+  margin-bottom: 10px;
+}
+
+.cooperation-img {
+  width: 50px;
+  height: 50px;
+  object-fit: cover;
+  margin: 5px;
+}
+
+.contact-us {
+  margin: 10px;
+}
+
+.j-a-c {
+  display: flex;
+  /* justify-content: center; */
+  align-items: center;
+}
+
+.j-a-c-column{
+  display: flex;
+  align-items: center;
+  flex-direction: column;
+}
+
+.logo-l {
+  height: 20px;
+}
+
+.logo-l-text {
+  font-size: 12px;
+  font-weight: bold;
+  color: #333;
+}
+
+.m-10 {
+  margin-left: 10px;
+}
+
+.footer-QR-code {
+  display: flex;
+  justify-content: flex-start;
+  margin-top: 10px;
+}
+
+.qr-code-img {
+  width: 60px;
+  height: 60px;
+}
+
+.xuanfu {
+  width: 30px;
+  height: 30px;
+}
+
+/* 
+::v-deep .el-carousel__mask {
+
+  height: 100%;
+  left: 0;
+  opacity: .24;
+  position: absolute;
+  top: 0;
+  transition: var(--el-transition-duration-fast);
+  width: 100%;
+} */
+
+.carousel-content {
+  /* width: 50%;
+    background-color: #FFFFFF; */
+  text-align: center;
+}
+</style>
\ No newline at end of file
diff --git a/src/pages/MainLayout.vue b/src/pages/MainLayout.vue
index 95fa7de..b36e720 100644
--- a/src/pages/MainLayout.vue
+++ b/src/pages/MainLayout.vue
@@ -1,10 +1,12 @@
 <template>
   <HeaderMenu />
   <router-view />
+  <Footer />
 </template>
 
 <script lang="ts" setup>
 import HeaderMenu from '@/components/HeaderMenu.vue';
+import Footer from '@/components/Footer.vue';
 
 import { ref } from 'vue';
 
diff --git a/src/pages/Product.vue b/src/pages/Product.vue
index c8ee493..a60af67 100644
--- a/src/pages/Product.vue
+++ b/src/pages/Product.vue
@@ -1,129 +1,231 @@
 <template>
-    <div class="container">
+  <div class="container">
+    <el-container>
       <el-container>
-        <el-container>
-          <el-aside class="aside">
-            <h5 class="aside-title">所有产品</h5>
-            <el-menu default-active="2" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose">
-              <el-sub-menu index="1">
+        <el-aside class="aside">
+          <h5 class="aside-title">所有产品</h5>
+          <el-menu default-active="2" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose">
+            <template v-for="item in menuItems" :key="item.index" @click="handleSelect(item)">
+              <el-sub-menu v-if="item.subMenu" :index="item.index">
                 <template #title>
                   <el-icon>
-                    <location />
+                    <component :is="item.icon" />
                   </el-icon>
-                  <span>工业信息化</span>
+                  <span>
+                    <!-- {{ item.title }} -->
+                    <el-link :underline="false" :href="item.pdfUrl" target="_blank"><span
+                        class="f12">{{ item.title }}</span></el-link></span>
                 </template>
-                <el-menu-item index="1-1">lims系统</el-menu-item>
-                <el-menu-item index="1-2">JIT系统</el-menu-item>
+                <el-menu-item v-for="subItem in item.subMenu" :key="subItem.index" :index="subItem.index"
+                  @click="handleSelect(subItem)">
+                  <!-- {{ subItem.title }} -->
+                  <el-link :underline="false" :href="subItem.pdfUrl" target="_blank"><span
+                      class="f12">{{ subItem.title }}</span></el-link>
+                </el-menu-item>
               </el-sub-menu>
-              <el-menu-item index="2">
-                <el-icon><icon-menu /></el-icon>
-                <span>SaaS</span>
-              </el-menu-item>
-              <el-menu-item index="3">
+              <el-menu-item v-else :index="item.index">
                 <el-icon>
-                  <setting />
+                  <component :is="item.icon" />
                 </el-icon>
-                <span>C端</span>
+                <span>{{ item.title }}</span>
               </el-menu-item>
-            </el-menu>
-          </el-aside>
-          <el-main>
-            <div class="main-up">
-              <img src="http://192.168.1.201:9000/portal/product_2.png" class="main-image" alt="">
+            </template>
+          </el-menu>
+        </el-aside>
+        <el-main style="width: 80vh;overflow: hidden;">
+          <div class="main-up">
+            <!-- <img :src="curImg" class="main-image" alt=""> -->
+             <div style="width: 100%; text-align: center;"><h1 style="font-weight: 600;color: #15A2E9 ;font-size: 20px;">云游四方操作系统</h1></div>
+             <div style="width: 100%;height: 90%;">
+              <img src="http://192.168.1.201:9000/portal/product-center/产品背景.png" alt="" style="width: 15%; height: 90%;margin: 10px;">
+              <img src="http://192.168.1.201:9000/portal/product-center/产品背景2.png" alt="" style="width: 60%; height: 90%;margin: 10px;">
+              <img src="http://192.168.1.201:9000/portal/product-center/产品背景图3.jpg" alt="" style="width: 15%; height: 90%;margin: 10px;">
+             </div>
+          </div>
+          <div class="main-down">
+            <h5 class="section-title">推荐产品</h5>
+            <div class="card-container">
+              <el-card v-for="(item, index) in products" :key="index" class="card">
+                <img :src="item.imgUrl" class="card-image" />
+                <div class="card-content">
+                  <span class="card-title">{{ item.title }}</span>
+                </div>
+                <div class="card-content">
+                  <span class="card-description">{{ item.desc }}</span>
+                </div>
+              </el-card>
             </div>
-            <div class="main-down">
-              <h5 class="section-title">推荐产品</h5>
-              <div class="card-container">
-                <el-card v-for="(item, index) in 3" :key="index" class="card">
-                  <img src="http://192.168.1.201:9000/portal/bg.png" class="card-image" />
-                  <div class="card-content">
-                    <span class="card-title">智慧校园门户网站</span>
-                  </div>
-                  <div class="card-content">
-                    <span class="card-description">提供全流程、一体化的数据</span>
-                  </div>
-                </el-card>
-              </div>
-            </div>
-          </el-main>
-        </el-container>
+          </div>
+        </el-main>
       </el-container>
-    </div>
-  </template>
-  
-  <script lang="ts" setup>
-  import { Document, Menu as IconMenu, Location, Setting } from '@element-plus/icons-vue';
-  
-  const handleOpen = (key: string, keyPath: string[]) => {
-    console.log(key, keyPath);
-  };
-  
-  const handleClose = (key: string, keyPath: string[]) => {
-    console.log(key, keyPath);
-  };
-  </script>
-  
-  <style scoped>
-  .container {
-    margin: 70px;
-    height: 100%;
-  }
-  
-  .aside {
-    width: 200px;
-  }
-  
-  .aside-title {
-    margin-bottom: 10px;
-  }
-  
-  .main-up {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    /* padding: 20px; */
-  }
-  
-  .main-image {
-    width: 800px;
-    height: 250px;
-  }
-  
-  .main-down {
-    margin-top: 10px;
-  }
-  
-  .section-title {
-    margin-bottom: 10px;
-  }
-  
-  .card-container {
-    width: 100%;
-    display: flex;
-    flex-wrap: wrap;
-  }
-  
-  .card {
-    width: 200px;
-    height: 200px;
-    margin: 10px;
-  }
-  
-  .card-image {
-    width: 100%;
-    height: 80px;
-    object-fit: cover;
-  }
-  
-  .card-content {
-    text-align: center;
-  }
-  
-  .card-title {
-    font-weight: bold;
-  }
-  
-  .card-description {
-    color: gray;
-  }
-  </style>
\ No newline at end of file
+    </el-container>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { ref } from 'vue'
+import { Document, Menu as IconMenu, Location, Setting } from '@element-plus/icons-vue';
+import { MenuItem, Products } from '@/models/portalModels';
+
+
+
+const menuItems: MenuItem[] = [
+  {
+    index: '1',
+    title: '工业信息化',
+    imgUrl: '',
+    pdfUrl: '',
+    icon: Location,
+    subMenu: [
+      {
+        index: '1-1',
+        title: '实验室管理系统',
+        imgUrl: 'http://192.168.1.201:9000/portal/product-our/实验室管理系统.png',
+        pdfUrl: 'http://192.168.1.201:9000/portal/product-center/LIMS系统介绍方案.pdf',
+      },
+      {
+        index: '1-2',
+        title: 'TQS系统',
+        imgUrl: 'http://192.168.1.201:9000/portal/product-our/TQS系统.png',
+        pdfUrl: 'http://192.168.1.201:9000/portal/product-center/TQS系统介绍与解决方案.pdf',
+      },
+      {
+        index: '1-3',
+        title: 'CPTM系统',
+        imgUrl: 'http://192.168.1.201:9000/portal/product-our/CPTM.png',
+        pdfUrl: 'http://192.168.1.201:9000/portal/product-center/CPTM软件产品介绍.pdf',
+      },
+      {
+        index: '1-4',
+        title: 'JIT系统',
+        imgUrl: 'http://192.168.1.201:9000/portal/product-our/JIT.png',
+        pdfUrl: 'http://192.168.1.201:9000/portal/product-center/JIT系统介绍.pdf',
+      },
+    ],
+  },
+  {
+    index: '2',
+    title: 'SaaS平台',
+    imgUrl: '',
+    pdfUrl: '',
+    icon: IconMenu,
+    subMenu: [
+      {
+        index: '2-1',
+        title: '供应商管理系统',
+        imgUrl: 'http://192.168.1.201:9000/portal/product-our/外部供应商管理系统.png',
+        pdfUrl: 'http://192.168.1.201:9000/portal/product-center/外部供应商管理系统介绍.pdf',
+      },
+      {
+        index: '2-2',
+        title: 'S2B2B平台',
+        imgUrl: 'http://192.168.1.201:9000/portal/product-our/S2B2B.png',
+        pdfUrl: 'http://192.168.1.201:9000/portal/product-center/花满芫小程序产品介绍.pdf',
+      },
+    ],
+  },
+  {
+    index: '3',
+    title: 'C端',
+    imgUrl: '',
+    pdfUrl: '',
+    icon: Setting,
+    subMenu: [
+    ],
+  },
+];
+
+const products = ref<Products[]>([
+  { imgUrl: 'http://192.168.1.201:9000/portal/product-our/外部供应商管理系统.png', title: '外部供应商管理系统', desc: '破信息壁垒,实现数据共享,自动化处理订单,增强沟通与生产跟踪。系统具备多模块功能,涵盖用户、订单、工单等管理,支持移动端扫码记录工时...' },
+  { imgUrl: 'http://192.168.1.201:9000/portal/product-our/S2B2B.png', title: 'S2B2B', desc: '通过数字化整合上下游资源,重构传统供应链“多级分销、信息割裂”的痛点,实现供应商增收......' },
+  { imgUrl: 'http://192.168.1.201:9000/portal/product-our/实验室管理系统.png', title: '实验室管理系统', desc: '主要应用于汽车零部件质检行业。它能解决委托单流转、设备管理、数据管理、权限管理等方面的痛点,具备委托单管理.....' },
+  // { imgUrl: 'http://192.168.1.201:9000/portal/product-our/TQS系统.png', title: 'TQS系统', desc: '解决制造业、汽车业培训痛点。它涵盖多个模块,具备人员信息管理、培训管理、岗位技能培训管理等功能,能实现培训数字...' },
+  // { imgUrl: 'http://192.168.1.201:9000/portal/product-our/外部供应商管理系统.png', title: '外部供应商管理系统', desc: '破信息壁垒,实现数据共享,自动化处理订单,增强沟通与生产跟踪。系统具备多模块功能,涵盖用户、订单、工单等管理,支持移动端扫码记录工时...' },
+  // { imgUrl: 'http://192.168.1.201:9000/portal/product-our/JIT.png', title: 'JIT', desc: '面向工业领域的生产管理系统,旨在减少库存和浪费、提升生产效率。它针对数据出错、库存积压等行业痛点,提供数字化管理、自动化检测等解决方案。系统具备物料管理、工艺路线管理等多种功能,实现生产全过程管控与高效运营' },
+  // { imgUrl: 'http://192.168.1.201:9000/portal/product-our/CPTM.png', title: 'CPTM', desc: '优化人力开发流程,助力企业发展。它解决了企业培训管理缺乏系统化、报考流程效率低等问题,具备集成平台管理、自动化流程、技能评估等功能,涵盖培训管理、人员信息管理等模块,推动员工和团队能力提升。' },
+
+])
+
+const handleOpen = (key: string, keyPath: string[]) => {
+  console.log(key, keyPath);
+};
+
+const handleClose = (key: string, keyPath: string[]) => {
+  console.log(key, keyPath);
+};
+
+const handleSelect = (item: MenuItem) => {
+  console.log(item);
+  curImg.value = item.imgUrl
+};
+
+const curImg = ref('http://192.168.1.201:9000/portal/bg.png');
+
+</script>
+
+<style scoped>
+.container {
+  margin: 70px;
+  height: 100%;
+}
+
+.aside {
+  width: 200px;
+}
+
+.aside-title {
+  margin-bottom: 10px;
+}
+
+.main-up {
+  display: flex;
+  /* justify-content: center; */
+  /* align-items: center; */
+  height: 38vh;
+  flex-direction: column;
+  /* padding: 20px; */
+}
+
+.main-image {
+  width: 90%;
+  height: 100%;
+}
+
+.main-down {
+  margin-top: 10px;
+}
+
+.section-title {
+  margin-bottom: 10px;
+}
+
+.card-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.card {
+  width: 200px;
+  min-height: 250px;
+  margin: 10px;
+}
+
+.card-image {
+  width: 100%;
+  height: 120px;
+  object-fit: cover;
+}
+
+.card-content {
+  text-align: center;
+}
+
+.card-title {
+  font-weight: bold;
+}
+
+.card-description {
+  color: gray;
+}
+</style>

--
Gitblit v1.9.3