diff --git a/website/index.html b/website/index.html index 92c56fa..2703a1d 100644 --- a/website/index.html +++ b/website/index.html @@ -6,9 +6,9 @@ - - - 广西讯驰 - 智慧教育数字化解决方案 | 校企益邦 · 科研管理 · 智慧党建 · 商咖五级进阶 + + + 广西讯驰 - 智慧教育数字化解决方案 | 校企益邦 · 科研管理 · 智慧党建 · 实训管理平台 - - + @@ -99,7 +98,7 @@

面向高校及职业院校各级党组织的智慧党建管理系统。以"党业融合、指标驱动、全程留痕"为核心理念,将三会一课、党员活动、工作记录等日常工作自动关联考核指标,实现年终考核"零重复填报"。

  • -

    商咖五级进阶

    +

    实训管理平台

    专为职业院校商科专业群打造的实训项目管理系统。以"项目—模块—任务"三级结构为骨架,以"咖豆积分+技能画像"为引擎,将抽象的五级进阶培养模式变成可量化、可追踪、可激励的线上实战平台。

  • diff --git a/website/public/llms.txt b/website/public/llms.txt new file mode 100644 index 0000000..2968ac8 --- /dev/null +++ b/website/public/llms.txt @@ -0,0 +1,76 @@ +# 广西讯驰 - 智慧教育数字化解决方案 + +> 广西讯驰信息科技有限公司(讯驰科技 / XUNCHI TECH),成立于 2010 年,总部位于广西南宁,专注为职业院校和高校提供智慧教育数字化解决方案。国家高新技术企业,已服务 150+ 所院校、覆盖 5 万+ 学生。 + +## 核心页面 + +- [首页](https://products.2009xc.com/): 企业概览、核心数据、四大产品展示、资质荣誉 +- [产品详情](https://products.2009xc.com/product/smart-campus): 各产品详情页(痛点、功能、优势、FAQ),通过 `/product/{slug}` 动态路由访问 +- [合作咨询](https://products.2009xc.com/contact): 联系方式、代理合作权益、在线咨询表单 + +## 核心产品 + +### 校企益邦(实习就业管理平台) + +- 详情页: https://products.2009xc.com/product/smart-campus +- 面向职业院校实习就业管理的专业化平台,覆盖实习计划制定、过程跟踪、数据采集、鉴定评价全流程。已服务 20+ 所院校、50,000+ 学生、100 万+ 累计签到。 +- 核心功能:实习计划管理、GPS 打卡 + 电子围栏、问卷式日志、多维度评价、一键同步省级教育平台、微信小程序 +- 解决痛点:实习管理缺乏统一执行方案、教师数据采集负担重、学生参与度低 + +### 科研管理系统 + +- 详情页: https://products.2009xc.com/product/exam-system +- 面向高校及科研院所的全生命周期科研业务管理平台,覆盖项目申报、评审立项、经费管控、成果登记到数据统计。已服务 10+ 高校、管理 3,000+ 项目、登记 8,000+ 成果。 +- 核心功能:在线申报审批、智能查重、经费管控、成果自动计分、关键节点提醒、一键年报导出 +- 解决痛点:纸质流程繁琐、人工审核工作量大、经费管理复杂、统计汇总困难 + +### 智慧党建平台 + +- 详情页: https://products.2009xc.com/product/teaching-resource +- 面向高校各级党组织的智慧党建管理系统。以"党业融合、指标驱动、全程留痕"为核心理念,将三会一课、党员活动、工作记录自动关联考核指标。已覆盖 150+ 党支部、管理 5,000+ 党员。 +- 核心功能:三级考核指标体系、三会一课数字化、万能工作记录、实时进度看板、党员发展管理、党建数据中心 +- 解决痛点:党建与业务两张皮、年终突击补材料、会议组织与留痕困难、分级考核存在盲区 + +### 实训管理平台 + +- 详情页: https://products.2009xc.com/product/internship +- 专为职业院校商科专业群打造的实训项目管理系统。以"项目—模块—任务"三级结构为骨架,以"咖豆积分 + 技能画像"为引擎,将五级进阶培养模式变成可量化、可追踪的线上实战平台。已积累 500+ 实训项目、覆盖 15+ 专业。 +- 核心功能:三级精细化管理、咖豆积分引擎、五级自动晋升、动态技能画像、人才培养驾驶舱、积分商城 +- 解决痛点:渐进式人才培养难以落地、实训项目数据分散、技能成长过程不可见 + +## 常见问题 + +### 系统支持本地化/私有化部署吗? + +支持。所有产品均提供 SaaS 云服务和私有化部署两种方案,满足院校对数据安全和合规性的不同要求。 + +### 可以对接学校现有的教务/人事系统吗? + +可以。所有产品均提供标准 API 接口,支持与学校现有系统对接。 + +### 售后服务和技术支持是怎样的? + +提供 7×24 小时技术支持,包括远程运维、定期巡检、系统升级、用户培训等。 + +### 数据安全如何保障? + +通过国家信息安全等级保护三级认证,采用银行级数据加密、多活灾备、细粒度权限控制。 + +## 企业资质 + +- 国家高新技术企业 +- AAA 级信用企业 +- ISO 9001 质量管理体系认证 +- ISO 14001 环境管理体系认证 +- ISO 45001 职业健康安全管理体系认证 +- ISO 27001 信息安全管理体系认证 +- ISO 20000 信息技术服务管理体系认证 +- 40+ 项软件著作权 +- 16 年行业经验 + +## 联系方式 + +- 官网: https://products.2009xc.com/ +- 电话: 0771-3864294 +- 地址: 广西南宁市 +- ICP 备案: 桂ICP备10003405号-1 \ No newline at end of file diff --git a/website/public/sitemap.xml b/website/public/sitemap.xml new file mode 100644 index 0000000..251fd0d --- /dev/null +++ b/website/public/sitemap.xml @@ -0,0 +1,46 @@ + + + + + + https://products.2009xc.com/ + 2026-06-10 + weekly + 1.0 + + + + + https://products.2009xc.com/product/smart-campus + 2026-06-10 + monthly + 0.9 + + + https://products.2009xc.com/product/exam-system + 2026-06-10 + monthly + 0.9 + + + https://products.2009xc.com/product/teaching-resource + 2026-06-10 + monthly + 0.9 + + + https://products.2009xc.com/product/internship + 2026-06-10 + monthly + 0.9 + + + + + https://products.2009xc.com/contact + 2026-06-10 + monthly + 0.7 + + + \ No newline at end of file diff --git a/website/src/assets/images/Carousel/ky.png b/website/src/assets/images/Carousel/ky.png index 9765ebd..3dfd2a3 100644 Binary files a/website/src/assets/images/Carousel/ky.png and b/website/src/assets/images/Carousel/ky.png differ diff --git a/website/src/assets/images/Carousel/sk.png b/website/src/assets/images/Carousel/sk.png index 6141f76..e5282fb 100644 Binary files a/website/src/assets/images/Carousel/sk.png and b/website/src/assets/images/Carousel/sk.png differ diff --git a/website/src/assets/images/Carousel/xq.png b/website/src/assets/images/Carousel/xq.png index 6285fc3..986ce6c 100644 Binary files a/website/src/assets/images/Carousel/xq.png and b/website/src/assets/images/Carousel/xq.png differ diff --git a/website/src/assets/images/Carousel/zh.png b/website/src/assets/images/Carousel/zh.png index a01763f..54f4e3c 100644 Binary files a/website/src/assets/images/Carousel/zh.png and b/website/src/assets/images/Carousel/zh.png differ diff --git a/website/src/assets/images/ky/ky1.png b/website/src/assets/images/ky/ky1.png new file mode 100644 index 0000000..d9c2b9a Binary files /dev/null and b/website/src/assets/images/ky/ky1.png differ diff --git a/website/src/assets/images/ky/ky2.jpeg b/website/src/assets/images/ky/ky2.jpeg new file mode 100644 index 0000000..2dca1f3 Binary files /dev/null and b/website/src/assets/images/ky/ky2.jpeg differ diff --git a/website/src/assets/images/ky/ky3.jpeg b/website/src/assets/images/ky/ky3.jpeg new file mode 100644 index 0000000..b9aaa16 Binary files /dev/null and b/website/src/assets/images/ky/ky3.jpeg differ diff --git a/website/src/assets/images/sk/sk1.png b/website/src/assets/images/sk/sk1.png new file mode 100644 index 0000000..1ddfc59 Binary files /dev/null and b/website/src/assets/images/sk/sk1.png differ diff --git a/website/src/assets/images/sk/sk2.jpeg b/website/src/assets/images/sk/sk2.jpeg new file mode 100644 index 0000000..5049506 Binary files /dev/null and b/website/src/assets/images/sk/sk2.jpeg differ diff --git a/website/src/assets/images/sk/sk3.jpeg b/website/src/assets/images/sk/sk3.jpeg new file mode 100644 index 0000000..2ffd871 Binary files /dev/null and b/website/src/assets/images/sk/sk3.jpeg differ diff --git a/website/src/assets/images/xq/xq1.png b/website/src/assets/images/xq/xq1.png new file mode 100644 index 0000000..85dda24 Binary files /dev/null and b/website/src/assets/images/xq/xq1.png differ diff --git a/website/src/assets/images/xq/xq2.png b/website/src/assets/images/xq/xq2.png new file mode 100644 index 0000000..1d8c53f Binary files /dev/null and b/website/src/assets/images/xq/xq2.png differ diff --git a/website/src/assets/images/xq/xq3.png b/website/src/assets/images/xq/xq3.png new file mode 100644 index 0000000..ee7ae59 Binary files /dev/null and b/website/src/assets/images/xq/xq3.png differ diff --git a/website/src/assets/images/zh/zh1.png b/website/src/assets/images/zh/zh1.png new file mode 100644 index 0000000..e486d4d Binary files /dev/null and b/website/src/assets/images/zh/zh1.png differ diff --git a/website/src/assets/images/zh/zh2.png b/website/src/assets/images/zh/zh2.png new file mode 100644 index 0000000..3da4afd Binary files /dev/null and b/website/src/assets/images/zh/zh2.png differ diff --git a/website/src/assets/images/zh/zh3.jpeg b/website/src/assets/images/zh/zh3.jpeg new file mode 100644 index 0000000..7a0f00f Binary files /dev/null and b/website/src/assets/images/zh/zh3.jpeg differ diff --git a/website/src/components/Carousel.jsx b/website/src/components/Carousel.jsx new file mode 100644 index 0000000..5cf4671 --- /dev/null +++ b/website/src/components/Carousel.jsx @@ -0,0 +1,107 @@ +import { useState, useEffect, useCallback } from 'react' +import { X } from 'lucide-react' + +export default function Carousel({ images, interval = 3000, themeColor }) { + const [current, setCurrent] = useState(0) + const [transitioning, setTransitioning] = useState(false) + const [preview, setPreview] = useState(null) // 预览图片的索引 + + const next = useCallback(() => { + if (transitioning) return + setTransitioning(true) + setCurrent(prev => (prev + 1) % images.length) + setTimeout(() => setTransitioning(false), 500) + }, [images.length, transitioning]) + + useEffect(() => { + if (preview !== null) return // 预览时不自动轮播 + const timer = setInterval(next, interval) + return () => clearInterval(timer) + }, [next, interval, preview]) + + const getIndex = (offset) => { + return (current + offset + images.length) % images.length + } + + const prevIdx = getIndex(-1) + const nextIdx = getIndex(1) + + const handleImageClick = (index) => { + setPreview(index) + } + + const handleClosePreview = () => { + setPreview(null) + } + + return ( + <> +
    + {/* Left - prev */} +
    handleImageClick(prevIdx)} + > + +
    + + {/* Center - current */} +
    handleImageClick(current)} + > +
    + +
    + + {/* Right - next */} +
    handleImageClick(nextIdx)} + > + +
    +
    + + {/* Preview Modal */} + {preview !== null && ( +
    + + e.stopPropagation()} + /> +
    + )} + + ) +} \ No newline at end of file diff --git a/website/src/components/ContactForm.jsx b/website/src/components/ContactForm.jsx index fe17906..ed849c4 100644 --- a/website/src/components/ContactForm.jsx +++ b/website/src/components/ContactForm.jsx @@ -3,7 +3,7 @@ import { CheckCircle, X } from 'lucide-react'; const productOptions = [ '校企益邦', - '商咖五级进阶', + '实训管理平台', '智慧党建平台', '科研管理系统', ]; diff --git a/website/src/components/HeroSection.jsx b/website/src/components/HeroSection.jsx index 2343154..da42e24 100644 --- a/website/src/components/HeroSection.jsx +++ b/website/src/components/HeroSection.jsx @@ -152,7 +152,7 @@ export default function HeroSection() { } .hero-main-title { - font-family: "ZCOOL XiaoWei", "STSong", "SimSun", serif; + font-family: "STSong", "SimSun", "NSimSun", serif; letter-spacing: 0.6em; color: white; text-shadow: 0 4px 60px rgba(0, 162, 234, 0.3), @@ -160,7 +160,7 @@ export default function HeroSection() { } .hero-sec-title { - font-family: "Ma Shan Zheng", "STXingkai", cursive; + font-family: "STKaiti", "KaiTi", "DFKai-SB", cursive; letter-spacing: 0.5em; color: white; text-shadow: 0 2px 40px rgba(0, 162, 234, 0.25), @@ -168,7 +168,7 @@ export default function HeroSection() { } .hero-desc { - font-family: "Ma Shan Zheng", "STXingkai", cursive; + font-family: "KaiTi", "STKaiti", "DFKai-SB", cursive; letter-spacing: 0.3em; color: rgba(255, 255, 255, 1); text-shadow: 0 2px 40px rgba(0, 162, 234, 0.25), diff --git a/website/src/components/Navbar.jsx b/website/src/components/Navbar.jsx index 4e199eb..923f611 100644 --- a/website/src/components/Navbar.jsx +++ b/website/src/components/Navbar.jsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useMemo } from 'react'; import { Link, useLocation } from 'react-router-dom'; import { Menu, X, Phone } from 'lucide-react'; import { products } from '../data/products'; @@ -8,7 +8,15 @@ export default function Navbar() { const [mobileOpen, setMobileOpen] = useState(false); const location = useLocation(); - + // 根据当前路由获取产品主题色 + const themeColor = useMemo(() => { + const match = location.pathname.match(/^\/product\/(.+)$/); + if (match) { + const product = products.find(p => p.slug === match[1]); + return product ? product.themeColor : null; + } + return null; + }, [location.pathname]); useEffect(() => { const handleScroll = () => setScrolled(window.scrollY > window.innerHeight * 0.7); @@ -44,7 +52,7 @@ export default function Navbar() { left: 10%; right: 10%; height: 3px; - background: linear-gradient(90deg, transparent, #3b82f6, transparent); + background: linear-gradient(90deg, transparent, var(--nav-theme, #3b82f6), transparent); border-radius: 2px; box-shadow: 0 0 12px rgba(59, 130, 246, 0.5), 0 0 24px rgba(59, 130, 246, 0.2); } @@ -68,7 +76,7 @@ export default function Navbar() { `}