Compare commits
7 Commits
Web_Create
...
fe1ba37678
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe1ba37678 | ||
|
|
83dc9270c8 | ||
|
|
d0d256f8ef | ||
|
|
1361283492 | ||
|
|
08e6304134 | ||
|
|
4e90229677 | ||
|
|
802db7245d |
@@ -57,6 +57,8 @@
|
||||
"Bash(npm install:*)",
|
||||
"Bash(git add:*)",
|
||||
"Bash(export N8N_DEFAULT_LOCALE=zh-CN)",
|
||||
"Bash(git pull:*)",
|
||||
"Bash(git merge:*)",
|
||||
"Bash(git checkout:*)",
|
||||
"Bash(git stash:*)",
|
||||
"Bash(git commit:*)",
|
||||
@@ -66,7 +68,11 @@
|
||||
"Bash(open http://localhost:4173)",
|
||||
"Bash(find:*)",
|
||||
"Bash(open index.html)",
|
||||
"Bash(git push:*)"
|
||||
"Bash(git push:*)",
|
||||
"Bash(sed:*)",
|
||||
"Bash(/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/n8n-n8n-1.109.2/start.bat)",
|
||||
"Bash(curl:*)",
|
||||
"Bash(node server.js)"
|
||||
],
|
||||
"defaultMode": "acceptEdits",
|
||||
"additionalDirectories": [
|
||||
|
||||
29
n8n-n8n-1.109.2/n8n-20250908-141135.log
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
> n8n-monorepo@1.109.2 start /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/n8n-n8n-1.109.2
|
||||
> run-script-os
|
||||
|
||||
|
||||
> n8n-monorepo@1.109.2 start:default
|
||||
> cd packages/cli/bin && ./n8n
|
||||
|
||||
Permissions 0644 for n8n settings file /Users/xiaoqi/.n8n/config are too wide. This is ignored for now, but in the future n8n will attempt to change the permissions automatically. To automatically enforce correct permissions now set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (recommended), or turn this check off set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.
|
||||
Initializing n8n process
|
||||
n8n ready on ::, port 5678
|
||||
n8n Task Broker ready on 127.0.0.1, port 5679
|
||||
Initializing AuthRolesService...
|
||||
AuthRolesService initialized successfully.
|
||||
[license SDK] Skipping renewal on init: license cert is not initialized
|
||||
Registered runner "JS Task Runner" (4d6piYiAtXgDD2wECgTZc)
|
||||
Version: 1.109.2
|
||||
Locale: zh-CN
|
||||
|
||||
Editor is now accessible via:
|
||||
http://localhost:5678
|
||||
(node:12101) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
|
||||
(Use `node --trace-deprecation ...` to show where the warning was created)
|
||||
Node does not have any credentials set
|
||||
Received SIGINT. Shutting down...
|
||||
[Task Runner]: Received SIGINT signal, shutting down...
|
||||
[Task Runner]: Task runner stopped
|
||||
|
||||
Stopping n8n...
|
||||
26
n8n-n8n-1.109.2/n8n-20250908-163158.log
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
> n8n-monorepo@1.109.2 start /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/n8n-n8n-1.109.2
|
||||
> run-script-os
|
||||
|
||||
|
||||
> n8n-monorepo@1.109.2 start:default
|
||||
> cd packages/cli/bin && ./n8n
|
||||
|
||||
Permissions 0644 for n8n settings file /Users/xiaoqi/.n8n/config are too wide. This is ignored for now, but in the future n8n will attempt to change the permissions automatically. To automatically enforce correct permissions now set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (recommended), or turn this check off set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.
|
||||
Initializing n8n process
|
||||
n8n ready on ::, port 5678
|
||||
n8n Task Broker ready on 127.0.0.1, port 5679
|
||||
Initializing AuthRolesService...
|
||||
AuthRolesService initialized successfully.
|
||||
[license SDK] Skipping renewal on init: license cert is not initialized
|
||||
Registered runner "JS Task Runner" (4cCbV_Z_J_3qoaQmjw7fB)
|
||||
Version: 1.109.2
|
||||
Locale: zh-CN
|
||||
|
||||
Editor is now accessible via:
|
||||
http://localhost:5678
|
||||
Received SIGINT. Shutting down...
|
||||
[Task Runner]: Received SIGINT signal, shutting down...
|
||||
[Task Runner]: Task runner stopped
|
||||
|
||||
Stopping n8n...
|
||||
475
n8n-n8n-1.109.2/start.bat
Normal file
@@ -0,0 +1,475 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
REM n8n 中文版快速启动脚本 (Windows版 - 增强兼容性)
|
||||
REM 作者: 小齐
|
||||
REM 最后更新: 2025-09-08
|
||||
REM 兼容性: Windows 7/8/10/11, PowerShell/CMD
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM 显示启动横幅
|
||||
:show_banner
|
||||
echo ======================================
|
||||
echo n8n 中文版快速启动脚本
|
||||
echo 版本: n8n-1.109.2 with 中文翻译
|
||||
echo 维护者: xiaoqi
|
||||
echo ======================================
|
||||
echo.
|
||||
|
||||
REM 解析命令行参数
|
||||
set "DEV_MODE="
|
||||
set "FORCE_BUILD="
|
||||
set "CHECK_ONLY="
|
||||
set "SKIP_DEPS="
|
||||
set "USE_NPM="
|
||||
|
||||
:parse_args
|
||||
if "%~1"=="" goto main_execution
|
||||
if /I "%~1"=="-h" goto show_help
|
||||
if /I "%~1"=="--help" goto show_help
|
||||
if /I "%~1"=="-d" (
|
||||
set "DEV_MODE=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--dev" (
|
||||
set "DEV_MODE=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="-b" (
|
||||
set "FORCE_BUILD=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--build" (
|
||||
set "FORCE_BUILD=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="-c" (
|
||||
set "CHECK_ONLY=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--check" (
|
||||
set "CHECK_ONLY=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--skip-deps" (
|
||||
set "SKIP_DEPS=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--npm" (
|
||||
set "USE_NPM=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
echo [错误] 未知选项: %~1
|
||||
goto show_help
|
||||
|
||||
:main_execution
|
||||
REM 检查操作系统版本
|
||||
call :check_os_version
|
||||
|
||||
REM 检查并切换到正确目录
|
||||
call :check_and_change_directory
|
||||
if errorlevel 1 goto error_exit
|
||||
|
||||
REM 检查依赖
|
||||
if not defined SKIP_DEPS (
|
||||
echo [信息] 正在检查系统依赖...
|
||||
call :check_dependencies
|
||||
if errorlevel 1 goto error_exit
|
||||
)
|
||||
|
||||
REM 检查端口占用
|
||||
call :check_port
|
||||
if errorlevel 1 goto error_exit
|
||||
|
||||
REM 停止现有进程
|
||||
call :stop_existing
|
||||
|
||||
REM 设置环境变量
|
||||
call :setup_environment
|
||||
|
||||
REM 仅检查模式
|
||||
if defined CHECK_ONLY (
|
||||
echo [成功] 系统状态检查完成,一切正常
|
||||
goto end
|
||||
)
|
||||
|
||||
REM 安装依赖(如果需要)
|
||||
if not exist "node_modules\" (
|
||||
echo [信息] 检测到缺少依赖,正在安装...
|
||||
if defined USE_NPM (
|
||||
call :install_with_npm
|
||||
) else (
|
||||
call :install_with_pnpm
|
||||
)
|
||||
if errorlevel 1 goto error_exit
|
||||
)
|
||||
|
||||
REM 强制构建或检查构建状态
|
||||
if defined FORCE_BUILD (
|
||||
echo [信息] 强制重新构建项目...
|
||||
call :build_project
|
||||
if errorlevel 1 goto error_exit
|
||||
) else (
|
||||
call :check_build
|
||||
if errorlevel 1 goto error_exit
|
||||
)
|
||||
|
||||
REM 开发模式或正常启动
|
||||
if defined DEV_MODE (
|
||||
echo [信息] 正在以开发模式启动 n8n...
|
||||
echo [警告] 开发模式启动时间较长,请耐心等待...
|
||||
if defined USE_NPM (
|
||||
call npm run dev
|
||||
) else (
|
||||
call pnpm dev
|
||||
)
|
||||
) else (
|
||||
call :start_n8n
|
||||
)
|
||||
goto end
|
||||
|
||||
REM ========== 函数定义 ==========
|
||||
|
||||
:check_os_version
|
||||
REM 检查 Windows 版本兼容性
|
||||
ver | findstr /i "5\.1\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [警告] 检测到 Windows XP,可能存在兼容性问题
|
||||
)
|
||||
ver | findstr /i "6\.0\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows Vista
|
||||
)
|
||||
ver | findstr /i "6\.1\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 7
|
||||
)
|
||||
ver | findstr /i "6\.2\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 8
|
||||
)
|
||||
ver | findstr /i "6\.3\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 8.1
|
||||
)
|
||||
ver | findstr /i "10\.0\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 10/11
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:check_and_change_directory
|
||||
REM 检查当前目录是否为 n8n 项目目录
|
||||
if exist "package.json" if exist "packages" (
|
||||
echo [信息] 检测到当前已在 n8n 项目目录
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM 获取脚本所在目录(兼容不同 Windows 版本)
|
||||
set "SCRIPT_DIR=%~dp0"
|
||||
if "%SCRIPT_DIR:~-1%"=="\" set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||||
|
||||
REM 如果脚本在 n8n-n8n-1.109.2 目录内
|
||||
echo %SCRIPT_DIR% | findstr /I /C:"n8n-n8n-1.109.2" >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 切换到脚本所在的 n8n 项目目录
|
||||
cd /d "%SCRIPT_DIR%" 2>nul
|
||||
if errorlevel 1 (
|
||||
REM 兼容旧版 Windows
|
||||
cd "%SCRIPT_DIR%" 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [错误] 无法切换到目录: %SCRIPT_DIR%
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
echo [成功] 已切换到正确的 n8n 项目目录
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM 尝试找到 n8n-n8n-1.109.2 目录
|
||||
if exist "n8n-n8n-1.109.2\" (
|
||||
cd n8n-n8n-1.109.2
|
||||
) else if exist "..\n8n-n8n-1.109.2\" (
|
||||
cd ..\n8n-n8n-1.109.2
|
||||
) else if exist "..\..\n8n-n8n-1.109.2\" (
|
||||
cd ..\..\n8n-n8n-1.109.2
|
||||
) else (
|
||||
echo [错误] 未找到 n8n-n8n-1.109.2 目录
|
||||
echo [信息] 请确保在正确的项目目录下运行此脚本
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 验证目录结构
|
||||
if not exist "package.json" (
|
||||
echo [错误] 目录结构不正确,缺少 package.json
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "packages" (
|
||||
echo [错误] 目录结构不正确,缺少 packages 目录
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [成功] 已切换到正确的 n8n 项目目录
|
||||
exit /b 0
|
||||
|
||||
:check_dependencies
|
||||
REM 检查 Node.js
|
||||
where node >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
REM 尝试常见的 Node.js 安装路径
|
||||
if exist "C:\Program Files\nodejs\node.exe" (
|
||||
set "PATH=C:\Program Files\nodejs;%PATH%"
|
||||
) else if exist "C:\Program Files (x86)\nodejs\node.exe" (
|
||||
set "PATH=C:\Program Files (x86)\nodejs;%PATH%"
|
||||
) else (
|
||||
echo [错误] Node.js 未安装或未在 PATH 中
|
||||
echo [信息] 请访问 https://nodejs.org 下载安装
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
echo [信息] Node.js 版本:
|
||||
node --version
|
||||
|
||||
REM 检查包管理器
|
||||
if not defined USE_NPM (
|
||||
where pnpm >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [警告] pnpm 未安装,尝试使用 npm
|
||||
set "USE_NPM=true"
|
||||
) else (
|
||||
echo [信息] 使用 pnpm 作为包管理器
|
||||
)
|
||||
) else (
|
||||
echo [信息] 使用 npm 作为包管理器
|
||||
)
|
||||
|
||||
echo [成功] 依赖检查通过
|
||||
exit /b 0
|
||||
|
||||
:install_with_pnpm
|
||||
echo [信息] 使用 pnpm 安装依赖...
|
||||
where pnpm >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [信息] 正在安装 pnpm...
|
||||
call npm install -g pnpm@8
|
||||
if errorlevel 1 (
|
||||
echo [错误] pnpm 安装失败
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
call pnpm install --no-frozen-lockfile
|
||||
exit /b %errorlevel%
|
||||
|
||||
:install_with_npm
|
||||
echo [警告] 使用 npm 安装(可能不兼容 workspace)
|
||||
echo [信息] 建议安装 pnpm: npm install -g pnpm
|
||||
call npm install --legacy-peer-deps
|
||||
exit /b %errorlevel%
|
||||
|
||||
:check_port
|
||||
REM 检查端口 5678 是否被占用
|
||||
netstat -ano 2>nul | findstr ":5678" >nul 2>&1
|
||||
if not errorlevel 1 (
|
||||
echo [警告] 端口 5678 已被占用
|
||||
echo [信息] 正在查看占用进程...
|
||||
netstat -ano | findstr ":5678"
|
||||
echo.
|
||||
|
||||
set /p "kill_process=是否终止占用进程?(y/N): "
|
||||
if /I "!kill_process!"=="y" (
|
||||
echo [信息] 正在终止占用进程...
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":5678"') do (
|
||||
taskkill /PID %%a /F >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
REM Windows 7 兼容性
|
||||
tskill %%a >nul 2>&1
|
||||
)
|
||||
)
|
||||
echo [成功] 进程已终止
|
||||
timeout /t 2 /nobreak >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
REM Windows 7 兼容性
|
||||
ping -n 3 127.0.0.1 >nul
|
||||
)
|
||||
) else (
|
||||
echo [错误] 无法启动 n8n,端口被占用
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:stop_existing
|
||||
echo [信息] 正在停止现有的 n8n 进程...
|
||||
|
||||
REM 停止可能存在的 n8n 相关进程
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *n8n*" >nul 2>&1
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *pnpm*" >nul 2>&1
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *npm*" >nul 2>&1
|
||||
|
||||
REM 等待
|
||||
timeout /t 2 /nobreak >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
ping -n 3 127.0.0.1 >nul
|
||||
)
|
||||
|
||||
echo [成功] 已停止现有进程
|
||||
exit /b 0
|
||||
|
||||
:setup_environment
|
||||
echo [信息] 正在设置环境变量...
|
||||
|
||||
set "N8N_DEFAULT_LOCALE=zh-CN"
|
||||
set "N8N_SECURE_COOKIE=false"
|
||||
set "DB_SQLITE_POOL_SIZE=5"
|
||||
set "N8N_RUNNERS_ENABLED=true"
|
||||
set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false"
|
||||
set "NODE_OPTIONS=--max-old-space-size=4096"
|
||||
|
||||
echo [成功] 环境变量已设置
|
||||
echo - N8N_DEFAULT_LOCALE=zh-CN
|
||||
echo - N8N_SECURE_COOKIE=false
|
||||
echo - DB_SQLITE_POOL_SIZE=5
|
||||
echo - NODE_OPTIONS=--max-old-space-size=4096
|
||||
exit /b 0
|
||||
|
||||
:check_build
|
||||
if not exist "packages\cli\dist\" goto need_build
|
||||
if not exist "packages\core\dist\" goto need_build
|
||||
if not exist "packages\workflow\dist\" goto need_build
|
||||
exit /b 0
|
||||
|
||||
:need_build
|
||||
echo [警告] 检测到项目需要构建
|
||||
set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): "
|
||||
if /I "!build_project!"=="y" (
|
||||
call :build_project
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:build_project
|
||||
echo [信息] 正在构建项目...
|
||||
if defined USE_NPM (
|
||||
call npm run build > build.log 2>&1
|
||||
) else (
|
||||
call pnpm build > build.log 2>&1
|
||||
)
|
||||
if errorlevel 1 (
|
||||
echo [错误] 构建失败,请查看 build.log
|
||||
type build.log | more
|
||||
exit /b 1
|
||||
)
|
||||
echo [成功] 项目构建完成
|
||||
exit /b 0
|
||||
|
||||
:start_n8n
|
||||
echo [信息] 正在启动 n8n 中文版...
|
||||
|
||||
REM 创建日志文件名(兼容不同日期格式)
|
||||
set "LOG_FILE=n8n-%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%.log"
|
||||
set "LOG_FILE=%LOG_FILE: =0%"
|
||||
|
||||
echo [信息] 正在启动 n8n 服务...
|
||||
echo [信息] 日志文件: %LOG_FILE%
|
||||
|
||||
REM 启动 n8n
|
||||
if defined USE_NPM (
|
||||
start "n8n Server" /B cmd /c "npm start > %LOG_FILE% 2>&1"
|
||||
) else (
|
||||
start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1"
|
||||
)
|
||||
|
||||
REM 等待启动
|
||||
echo 等待 n8n 启动
|
||||
set "count=0"
|
||||
:wait_loop
|
||||
set /a count+=1
|
||||
if %count% gtr 60 goto start_failed
|
||||
|
||||
REM 检查端口是否开启
|
||||
netstat -an 2>nul | findstr ":5678" | findstr "LISTENING" >nul 2>&1
|
||||
if not errorlevel 1 goto start_success
|
||||
|
||||
REM 显示进度
|
||||
set /p "=." <nul
|
||||
timeout /t 1 /nobreak >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
ping -n 2 127.0.0.1 >nul
|
||||
)
|
||||
goto wait_loop
|
||||
|
||||
:start_success
|
||||
echo.
|
||||
echo [成功] n8n 启动成功!
|
||||
echo.
|
||||
echo ========== 启动信息 ==========
|
||||
echo 访问地址: http://localhost:5678
|
||||
echo 界面语言: 中文 (zh-CN)
|
||||
echo 日志文件: %LOG_FILE%
|
||||
echo =============================
|
||||
echo.
|
||||
echo [信息] 使用 Ctrl+C 停止服务
|
||||
echo [提示] 首次访问需要设置账户
|
||||
echo.
|
||||
pause
|
||||
exit /b 0
|
||||
|
||||
:start_failed
|
||||
echo.
|
||||
echo [错误] n8n 启动失败
|
||||
echo [信息] 查看日志文件: %LOG_FILE%
|
||||
if exist "%LOG_FILE%" (
|
||||
echo.
|
||||
echo ===== 错误日志 =====
|
||||
type "%LOG_FILE%" | more
|
||||
)
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:show_help
|
||||
echo 用法: %~nx0 [选项]
|
||||
echo.
|
||||
echo 选项:
|
||||
echo -h, --help 显示此帮助信息
|
||||
echo -d, --dev 使用开发模式启动 (支持热重载)
|
||||
echo -b, --build 强制重新构建项目
|
||||
echo -c, --check 仅检查系统状态,不启动
|
||||
echo --skip-deps 跳过依赖检查
|
||||
echo --npm 使用 npm 替代 pnpm
|
||||
echo.
|
||||
echo 示例:
|
||||
echo %~nx0 # 正常启动
|
||||
echo %~nx0 -d # 开发模式启动
|
||||
echo %~nx0 -b # 重新构建并启动
|
||||
echo %~nx0 --npm # 使用 npm 启动
|
||||
echo.
|
||||
echo 故障排除:
|
||||
echo 1. 如果 pnpm 安装失败,使用 --npm 选项
|
||||
echo 2. 如果端口被占用,脚本会提示终止进程
|
||||
echo 3. 构建失败时查看 build.log 文件
|
||||
echo.
|
||||
goto end
|
||||
|
||||
:error_exit
|
||||
echo [错误] 脚本执行失败
|
||||
echo.
|
||||
echo 常见问题解决:
|
||||
echo 1. 确保 Node.js 版本为 18.x 或 20.x
|
||||
echo 2. 尝试使用管理员权限运行
|
||||
echo 3. 使用 --npm 选项如果 pnpm 有问题
|
||||
echo 4. 检查网络连接和代理设置
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:end
|
||||
endlocal
|
||||
exit /b 0
|
||||
347
n8n-n8n-1.109.2/start.bat.bak
Normal file
@@ -0,0 +1,347 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
REM n8n 中文版快速启动脚本 (Windows版)
|
||||
REM 作者: 小齐
|
||||
REM 最后更新: 2025-09-08
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM 显示启动横幅
|
||||
:show_banner
|
||||
echo ======================================
|
||||
echo n8n 中文版快速启动脚本
|
||||
echo 版本: n8n-1.109.2 with 中文翻译
|
||||
echo 维护者: xiaoqi
|
||||
echo ======================================
|
||||
echo.
|
||||
|
||||
REM 解析命令行参数
|
||||
set "DEV_MODE="
|
||||
set "FORCE_BUILD="
|
||||
set "CHECK_ONLY="
|
||||
|
||||
:parse_args
|
||||
if "%~1"=="" goto main_execution
|
||||
if /I "%~1"=="-h" goto show_help
|
||||
if /I "%~1"=="--help" goto show_help
|
||||
if /I "%~1"=="-d" (
|
||||
set "DEV_MODE=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--dev" (
|
||||
set "DEV_MODE=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="-b" (
|
||||
set "FORCE_BUILD=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--build" (
|
||||
set "FORCE_BUILD=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="-c" (
|
||||
set "CHECK_ONLY=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--check" (
|
||||
set "CHECK_ONLY=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
echo [错误] 未知选项: %~1
|
||||
goto show_help
|
||||
|
||||
:main_execution
|
||||
REM 检查并切换到正确目录
|
||||
call :check_and_change_directory
|
||||
if errorlevel 1 goto error_exit
|
||||
|
||||
REM 检查依赖
|
||||
echo %BLUE%[信息]%NC% 正在检查系统依赖...
|
||||
call :check_dependencies
|
||||
if errorlevel 1 goto error_exit
|
||||
|
||||
REM 检查端口占用
|
||||
call :check_port
|
||||
if errorlevel 1 goto error_exit
|
||||
|
||||
REM 停止现有进程
|
||||
call :stop_existing
|
||||
|
||||
REM 设置环境变量
|
||||
call :setup_environment
|
||||
|
||||
REM 仅检查模式
|
||||
if defined CHECK_ONLY (
|
||||
echo %GREEN%[成功]%NC% 系统状态检查完成,一切正常
|
||||
goto end
|
||||
)
|
||||
|
||||
REM 强制构建或检查构建状态
|
||||
if defined FORCE_BUILD (
|
||||
echo %BLUE%[信息]%NC% 强制重新构建项目...
|
||||
call pnpm build > build.log 2>&1
|
||||
if errorlevel 1 (
|
||||
echo %RED%[错误]%NC% 构建失败,请查看 build.log
|
||||
type build.log | more
|
||||
goto error_exit
|
||||
)
|
||||
echo %GREEN%[成功]%NC% 构建完成
|
||||
) else (
|
||||
call :check_build
|
||||
if errorlevel 1 goto error_exit
|
||||
)
|
||||
|
||||
REM 开发模式或正常启动
|
||||
if defined DEV_MODE (
|
||||
echo %BLUE%[信息]%NC% 正在以开发模式启动 n8n...
|
||||
echo %YELLOW%[警告]%NC% 开发模式启动时间较长,请耐心等待...
|
||||
call pnpm dev
|
||||
) else (
|
||||
call :start_n8n
|
||||
)
|
||||
goto end
|
||||
|
||||
REM ========== 函数定义 ==========
|
||||
|
||||
:check_and_change_directory
|
||||
REM 检查当前目录是否为 n8n 项目目录
|
||||
if exist "package.json" if exist "packages" (
|
||||
echo %BLUE%[信息]%NC% 检测到当前已在 n8n 项目目录
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM 获取脚本所在目录
|
||||
set "SCRIPT_DIR=%~dp0"
|
||||
set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||||
|
||||
REM 如果脚本在 n8n-n8n-1.109.2 目录内
|
||||
echo %SCRIPT_DIR% | findstr /C:"n8n-n8n-1.109.2" >nul
|
||||
if not errorlevel 1 (
|
||||
echo %BLUE%[信息]%NC% 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR%
|
||||
cd /d "%SCRIPT_DIR%"
|
||||
if errorlevel 1 (
|
||||
echo %RED%[错误]%NC% 无法切换到目录: %SCRIPT_DIR%
|
||||
exit /b 1
|
||||
)
|
||||
echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM 尝试找到 n8n-n8n-1.109.2 目录
|
||||
if exist "n8n-n8n-1.109.2\" (
|
||||
cd n8n-n8n-1.109.2
|
||||
) else if exist "..\n8n-n8n-1.109.2\" (
|
||||
cd ..\n8n-n8n-1.109.2
|
||||
) else if exist "..\..\n8n-n8n-1.109.2\" (
|
||||
cd ..\..\n8n-n8n-1.109.2
|
||||
) else (
|
||||
echo %RED%[错误]%NC% 未找到 n8n-n8n-1.109.2 目录
|
||||
echo %BLUE%[信息]%NC% 请确保在正确的项目目录下运行此脚本
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 验证目录结构
|
||||
if not exist "package.json" (
|
||||
echo %RED%[错误]%NC% 目录结构不正确,缺少 package.json
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "packages" (
|
||||
echo %RED%[错误]%NC% 目录结构不正确,缺少 packages 目录
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录
|
||||
exit /b 0
|
||||
|
||||
:check_dependencies
|
||||
REM 检查 Node.js
|
||||
where node >nul 2>nul
|
||||
if errorlevel 1 (
|
||||
echo %RED%[错误]%NC% Node.js 未安装或未在 PATH 中
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 检查 pnpm
|
||||
where pnpm >nul 2>nul
|
||||
if errorlevel 1 (
|
||||
echo %RED%[错误]%NC% pnpm 未安装或未在 PATH 中
|
||||
echo %BLUE%[信息]%NC% 请先安装 pnpm: npm install -g pnpm
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo %GREEN%[成功]%NC% 依赖检查通过
|
||||
exit /b 0
|
||||
|
||||
:check_port
|
||||
REM 检查端口 5678 是否被占用
|
||||
netstat -ano | findstr :5678 >nul 2>nul
|
||||
if not errorlevel 1 (
|
||||
echo %YELLOW%[警告]%NC% 端口 5678 已被占用
|
||||
echo %BLUE%[信息]%NC% 正在查看占用进程...
|
||||
netstat -ano | findstr :5678
|
||||
|
||||
set /p "kill_process=是否杀死占用进程?(y/N): "
|
||||
if /I "!kill_process!"=="y" (
|
||||
echo %BLUE%[信息]%NC% 正在终止占用进程...
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5678') do (
|
||||
taskkill /PID %%a /F >nul 2>nul
|
||||
)
|
||||
echo %GREEN%[成功]%NC% 进程已终止
|
||||
) else (
|
||||
echo %RED%[错误]%NC% 无法启动 n8n,端口被占用
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:stop_existing
|
||||
echo %BLUE%[信息]%NC% 正在停止现有的 n8n 进程...
|
||||
|
||||
REM 停止可能存在的 n8n 相关进程
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *n8n*" >nul 2>nul
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *pnpm*" >nul 2>nul
|
||||
|
||||
REM 等待2秒
|
||||
timeout /t 2 /nobreak >nul
|
||||
|
||||
echo %GREEN%[成功]%NC% 已停止现有进程
|
||||
exit /b 0
|
||||
|
||||
:setup_environment
|
||||
echo %BLUE%[信息]%NC% 正在设置环境变量...
|
||||
|
||||
set "N8N_DEFAULT_LOCALE=zh-CN"
|
||||
set "N8N_SECURE_COOKIE=false"
|
||||
set "DB_SQLITE_POOL_SIZE=5"
|
||||
set "N8N_RUNNERS_ENABLED=true"
|
||||
set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false"
|
||||
|
||||
echo %GREEN%[成功]%NC% 环境变量已设置
|
||||
echo - N8N_DEFAULT_LOCALE=zh-CN
|
||||
echo - N8N_SECURE_COOKIE=false
|
||||
echo - DB_SQLITE_POOL_SIZE=5
|
||||
exit /b 0
|
||||
|
||||
:check_build
|
||||
if not exist "packages\cli\dist\" (
|
||||
goto need_build
|
||||
)
|
||||
if not exist "packages\core\dist\" (
|
||||
goto need_build
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:need_build
|
||||
echo %YELLOW%[警告]%NC% 检测到项目需要构建
|
||||
set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): "
|
||||
if /I "!build_project!"=="y" (
|
||||
echo %BLUE%[信息]%NC% 正在构建项目...
|
||||
call pnpm build > build.log 2>&1
|
||||
if errorlevel 1 (
|
||||
echo %RED%[错误]%NC% 构建失败,请查看 build.log
|
||||
type build.log | more
|
||||
exit /b 1
|
||||
)
|
||||
echo %GREEN%[成功]%NC% 项目构建完成
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:start_n8n
|
||||
echo %BLUE%[信息]%NC% 正在启动 n8n 中文版...
|
||||
|
||||
REM 创建日志文件名
|
||||
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (
|
||||
set "today=%%c%%a%%b"
|
||||
)
|
||||
for /f "tokens=1-2 delims=: " %%a in ('time /t') do (
|
||||
set "now=%%a%%b"
|
||||
)
|
||||
set "LOG_FILE=n8n-%today%-%now%.log"
|
||||
set "LOG_FILE=%LOG_FILE: =%"
|
||||
|
||||
echo %GREEN%正在启动 n8n 服务...%NC%
|
||||
|
||||
REM 启动 n8n 在新窗口
|
||||
start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1"
|
||||
|
||||
REM 等待启动
|
||||
echo 等待 n8n 启动
|
||||
set "count=0"
|
||||
:wait_loop
|
||||
set /a count+=1
|
||||
if %count% gtr 30 goto start_failed
|
||||
|
||||
REM 检查端口是否开启
|
||||
netstat -an | findstr :5678 | findstr LISTENING >nul 2>nul
|
||||
if not errorlevel 1 goto start_success
|
||||
|
||||
REM 显示进度点
|
||||
<nul set /p "=."
|
||||
timeout /t 1 /nobreak >nul
|
||||
goto wait_loop
|
||||
|
||||
:start_success
|
||||
echo.
|
||||
echo %GREEN%[成功]%NC% n8n 启动成功!
|
||||
echo.
|
||||
echo %GREEN%========== 启动信息 ==========%NC%
|
||||
echo 📱 访问地址: %BLUE%http://localhost:5678%NC%
|
||||
echo 🌏 界面语言: %GREEN%中文 (zh-CN)%NC%
|
||||
echo 📝 日志文件: %YELLOW%%LOG_FILE%%NC%
|
||||
echo %GREEN%=============================%NC%
|
||||
echo.
|
||||
echo %BLUE%[信息]%NC% 使用 Ctrl+C 停止服务
|
||||
echo.
|
||||
echo %YELLOW%[提示]%NC% 正在监控日志输出...
|
||||
echo.
|
||||
|
||||
REM 持续显示日志
|
||||
:tail_log
|
||||
if exist "%LOG_FILE%" (
|
||||
type "%LOG_FILE%"
|
||||
timeout /t 2 /nobreak >nul
|
||||
goto tail_log
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:start_failed
|
||||
echo.
|
||||
echo %RED%[错误]%NC% n8n 启动失败
|
||||
echo %BLUE%[信息]%NC% 查看日志文件: %LOG_FILE%
|
||||
if exist "%LOG_FILE%" (
|
||||
type "%LOG_FILE%" | more
|
||||
)
|
||||
exit /b 1
|
||||
|
||||
:show_help
|
||||
echo 用法: %~nx0 [选项]
|
||||
echo.
|
||||
echo 选项:
|
||||
echo -h, --help 显示此帮助信息
|
||||
echo -d, --dev 使用开发模式启动 (支持热重载)
|
||||
echo -b, --build 强制重新构建项目
|
||||
echo -c, --check 仅检查系统状态,不启动
|
||||
echo.
|
||||
echo 示例:
|
||||
echo %~nx0 # 正常启动
|
||||
echo %~nx0 -d # 开发模式启动
|
||||
echo %~nx0 -b # 重新构建并启动
|
||||
echo.
|
||||
goto end
|
||||
|
||||
:error_exit
|
||||
echo %RED%[错误]%NC% 脚本执行失败
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:end
|
||||
endlocal
|
||||
pause
|
||||
exit /b 0
|
||||
BIN
web_frontend/exhibition-demo/image/Agent_BG.jpg
Normal file
|
After Width: | Height: | Size: 514 KiB |
15
web_frontend/exhibition-demo/node_modules/.package-lock.json
generated
vendored
@@ -2121,6 +2121,21 @@
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
|
||||
|
||||
22
web_frontend/exhibition-demo/node_modules/fsevents/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
MIT License
|
||||
-----------
|
||||
|
||||
Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
89
web_frontend/exhibition-demo/node_modules/fsevents/README.md
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
# fsevents
|
||||
|
||||
Native access to MacOS FSEvents in [Node.js](https://nodejs.org/)
|
||||
|
||||
The FSEvents API in MacOS allows applications to register for notifications of
|
||||
changes to a given directory tree. It is a very fast and lightweight alternative
|
||||
to kqueue.
|
||||
|
||||
This is a low-level library. For a cross-platform file watching module that
|
||||
uses fsevents, check out [Chokidar](https://github.com/paulmillr/chokidar).
|
||||
|
||||
## Usage
|
||||
|
||||
```sh
|
||||
npm install fsevents
|
||||
```
|
||||
|
||||
Supports only **Node.js v8.16 and higher**.
|
||||
|
||||
```js
|
||||
const fsevents = require('fsevents');
|
||||
|
||||
// To start observation
|
||||
const stop = fsevents.watch(__dirname, (path, flags, id) => {
|
||||
const info = fsevents.getInfo(path, flags);
|
||||
});
|
||||
|
||||
// To end observation
|
||||
stop();
|
||||
```
|
||||
|
||||
> **Important note:** The API behaviour is slightly different from typical JS APIs. The `stop` function **must** be
|
||||
> retrieved and stored somewhere, even if you don't plan to stop the watcher. If you forget it, the garbage collector
|
||||
> will eventually kick in, the watcher will be unregistered, and your callbacks won't be called anymore.
|
||||
|
||||
The callback passed as the second parameter to `.watch` get's called whenever the operating system detects a
|
||||
a change in the file system. It takes three arguments:
|
||||
|
||||
###### `fsevents.watch(dirname: string, (path: string, flags: number, id: string) => void): () => Promise<undefined>`
|
||||
|
||||
* `path: string` - the item in the filesystem that have been changed
|
||||
* `flags: number` - a numeric value describing what the change was
|
||||
* `id: string` - an unique-id identifying this specific event
|
||||
|
||||
Returns closer callback which when called returns a Promise resolving when the watcher process has been shut down.
|
||||
|
||||
###### `fsevents.getInfo(path: string, flags: number, id: string): FsEventInfo`
|
||||
|
||||
The `getInfo` function takes the `path`, `flags` and `id` arguments and converts those parameters into a structure
|
||||
that is easier to digest to determine what the change was.
|
||||
|
||||
The `FsEventsInfo` has the following shape:
|
||||
|
||||
```js
|
||||
/**
|
||||
* @typedef {'created'|'modified'|'deleted'|'moved'|'root-changed'|'cloned'|'unknown'} FsEventsEvent
|
||||
* @typedef {'file'|'directory'|'symlink'} FsEventsType
|
||||
*/
|
||||
{
|
||||
"event": "created", // {FsEventsEvent}
|
||||
"path": "file.txt",
|
||||
"type": "file", // {FsEventsType}
|
||||
"changes": {
|
||||
"inode": true, // Had iNode Meta-Information changed
|
||||
"finder": false, // Had Finder Meta-Data changed
|
||||
"access": false, // Had access permissions changed
|
||||
"xattrs": false // Had xAttributes changed
|
||||
},
|
||||
"flags": 0x100000000
|
||||
}
|
||||
```
|
||||
|
||||
## Changelog
|
||||
|
||||
- v2.3 supports Apple Silicon ARM CPUs
|
||||
- v2 supports node 8.16+ and reduces package size massively
|
||||
- v1.2.8 supports node 6+
|
||||
- v1.2.7 supports node 4+
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- I'm getting `EBADPLATFORM` `Unsupported platform for fsevents` error.
|
||||
- It's fine, nothing is broken. fsevents is macos-only. Other platforms are skipped. If you want to hide this warning, report a bug to NPM bugtracker asking them to hide ebadplatform warnings by default.
|
||||
|
||||
## License
|
||||
|
||||
The MIT License Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller — see LICENSE file.
|
||||
|
||||
Visit our [GitHub page](https://github.com/fsevents/fsevents) and [NPM Page](https://npmjs.org/package/fsevents)
|
||||
46
web_frontend/exhibition-demo/node_modules/fsevents/fsevents.d.ts
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
declare type Event = "created" | "cloned" | "modified" | "deleted" | "moved" | "root-changed" | "unknown";
|
||||
declare type Type = "file" | "directory" | "symlink";
|
||||
declare type FileChanges = {
|
||||
inode: boolean;
|
||||
finder: boolean;
|
||||
access: boolean;
|
||||
xattrs: boolean;
|
||||
};
|
||||
declare type Info = {
|
||||
event: Event;
|
||||
path: string;
|
||||
type: Type;
|
||||
changes: FileChanges;
|
||||
flags: number;
|
||||
};
|
||||
declare type WatchHandler = (path: string, flags: number, id: string) => void;
|
||||
export declare function watch(path: string, handler: WatchHandler): () => Promise<void>;
|
||||
export declare function watch(path: string, since: number, handler: WatchHandler): () => Promise<void>;
|
||||
export declare function getInfo(path: string, flags: number): Info;
|
||||
export declare const constants: {
|
||||
None: 0x00000000;
|
||||
MustScanSubDirs: 0x00000001;
|
||||
UserDropped: 0x00000002;
|
||||
KernelDropped: 0x00000004;
|
||||
EventIdsWrapped: 0x00000008;
|
||||
HistoryDone: 0x00000010;
|
||||
RootChanged: 0x00000020;
|
||||
Mount: 0x00000040;
|
||||
Unmount: 0x00000080;
|
||||
ItemCreated: 0x00000100;
|
||||
ItemRemoved: 0x00000200;
|
||||
ItemInodeMetaMod: 0x00000400;
|
||||
ItemRenamed: 0x00000800;
|
||||
ItemModified: 0x00001000;
|
||||
ItemFinderInfoMod: 0x00002000;
|
||||
ItemChangeOwner: 0x00004000;
|
||||
ItemXattrMod: 0x00008000;
|
||||
ItemIsFile: 0x00010000;
|
||||
ItemIsDir: 0x00020000;
|
||||
ItemIsSymlink: 0x00040000;
|
||||
ItemIsHardlink: 0x00100000;
|
||||
ItemIsLastHardlink: 0x00200000;
|
||||
OwnEvent: 0x00080000;
|
||||
ItemCloned: 0x00400000;
|
||||
};
|
||||
export {};
|
||||
83
web_frontend/exhibition-demo/node_modules/fsevents/fsevents.js
generated
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
** © 2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller
|
||||
** Licensed under MIT License.
|
||||
*/
|
||||
|
||||
/* jshint node:true */
|
||||
"use strict";
|
||||
|
||||
if (process.platform !== "darwin") {
|
||||
throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`);
|
||||
}
|
||||
|
||||
const Native = require("./fsevents.node");
|
||||
const events = Native.constants;
|
||||
|
||||
function watch(path, since, handler) {
|
||||
if (typeof path !== "string") {
|
||||
throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`);
|
||||
}
|
||||
if ("function" === typeof since && "undefined" === typeof handler) {
|
||||
handler = since;
|
||||
since = Native.flags.SinceNow;
|
||||
}
|
||||
if (typeof since !== "number") {
|
||||
throw new TypeError(`fsevents argument 2 must be a number and not a ${typeof since}`);
|
||||
}
|
||||
if (typeof handler !== "function") {
|
||||
throw new TypeError(`fsevents argument 3 must be a function and not a ${typeof handler}`);
|
||||
}
|
||||
|
||||
let instance = Native.start(Native.global, path, since, handler);
|
||||
if (!instance) throw new Error(`could not watch: ${path}`);
|
||||
return () => {
|
||||
const result = instance ? Promise.resolve(instance).then(Native.stop) : Promise.resolve(undefined);
|
||||
instance = undefined;
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
function getInfo(path, flags) {
|
||||
return {
|
||||
path,
|
||||
flags,
|
||||
event: getEventType(flags),
|
||||
type: getFileType(flags),
|
||||
changes: getFileChanges(flags),
|
||||
};
|
||||
}
|
||||
|
||||
function getFileType(flags) {
|
||||
if (events.ItemIsFile & flags) return "file";
|
||||
if (events.ItemIsDir & flags) return "directory";
|
||||
if (events.MustScanSubDirs & flags) return "directory";
|
||||
if (events.ItemIsSymlink & flags) return "symlink";
|
||||
}
|
||||
function anyIsTrue(obj) {
|
||||
for (let key in obj) {
|
||||
if (obj[key]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function getEventType(flags) {
|
||||
if (events.ItemRemoved & flags) return "deleted";
|
||||
if (events.ItemRenamed & flags) return "moved";
|
||||
if (events.ItemCreated & flags) return "created";
|
||||
if (events.ItemModified & flags) return "modified";
|
||||
if (events.RootChanged & flags) return "root-changed";
|
||||
if (events.ItemCloned & flags) return "cloned";
|
||||
if (anyIsTrue(flags)) return "modified";
|
||||
return "unknown";
|
||||
}
|
||||
function getFileChanges(flags) {
|
||||
return {
|
||||
inode: !!(events.ItemInodeMetaMod & flags),
|
||||
finder: !!(events.ItemFinderInfoMod & flags),
|
||||
access: !!(events.ItemChangeOwner & flags),
|
||||
xattrs: !!(events.ItemXattrMod & flags),
|
||||
};
|
||||
}
|
||||
|
||||
exports.watch = watch;
|
||||
exports.getInfo = getInfo;
|
||||
exports.constants = events;
|
||||
BIN
web_frontend/exhibition-demo/node_modules/fsevents/fsevents.node
generated
vendored
Executable file
62
web_frontend/exhibition-demo/node_modules/fsevents/package.json
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"name": "fsevents",
|
||||
"version": "2.3.3",
|
||||
"description": "Native Access to MacOS FSEvents",
|
||||
"main": "fsevents.js",
|
||||
"types": "fsevents.d.ts",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"files": [
|
||||
"fsevents.d.ts",
|
||||
"fsevents.js",
|
||||
"fsevents.node"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "node-gyp clean && rm -f fsevents.node",
|
||||
"build": "node-gyp clean && rm -f fsevents.node && node-gyp rebuild && node-gyp clean",
|
||||
"test": "/bin/bash ./test.sh 2>/dev/null",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fsevents/fsevents.git"
|
||||
},
|
||||
"keywords": [
|
||||
"fsevents",
|
||||
"mac"
|
||||
],
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Philipp Dunkel",
|
||||
"email": "pip@pipobscure.com"
|
||||
},
|
||||
{
|
||||
"name": "Ben Noordhuis",
|
||||
"email": "info@bnoordhuis.nl"
|
||||
},
|
||||
{
|
||||
"name": "Elan Shankar",
|
||||
"email": "elan.shanker@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Miroslav Bajtoš",
|
||||
"email": "mbajtoss@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Paul Miller",
|
||||
"url": "https://paulmillr.com"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/fsevents/fsevents/issues"
|
||||
},
|
||||
"homepage": "https://github.com/fsevents/fsevents",
|
||||
"devDependencies": {
|
||||
"node-gyp": "^9.4.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,919 @@
|
||||
/* 2024长三角国际新能源汽车与智能交通产业博览会 - 高级动画样式 */
|
||||
|
||||
/* ============================================
|
||||
字体图标引入
|
||||
============================================ */
|
||||
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css');
|
||||
|
||||
/* ============================================
|
||||
自定义字体
|
||||
============================================ */
|
||||
@font-face {
|
||||
font-family: 'TechFont';
|
||||
src: url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&display=swap');
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
核心动画变量
|
||||
============================================ */
|
||||
:root {
|
||||
/* 动画时长 */
|
||||
--anim-fast: 0.2s;
|
||||
--anim-normal: 0.3s;
|
||||
--anim-slow: 0.5s;
|
||||
--anim-slower: 0.8s;
|
||||
--anim-slowest: 1.2s;
|
||||
|
||||
/* 缓动函数 */
|
||||
--ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||
--ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||
--ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
--ease-sharp: cubic-bezier(0.4, 0, 0.6, 1);
|
||||
|
||||
/* 渐变色 */
|
||||
--gradient-electric: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
--gradient-ocean: linear-gradient(135deg, #667eea 0%, #42e695 100%);
|
||||
--gradient-sunset: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
|
||||
--gradient-aurora: linear-gradient(135deg, #42e695 0%, #3bb2b8 100%);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
基础动画类
|
||||
============================================ */
|
||||
/* 淡入向上动画 */
|
||||
.animate-fadeInUp {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
animation: fadeInUp 0.8s ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInUp {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 淡入向左动画 */
|
||||
.animate-fadeInLeft {
|
||||
opacity: 0;
|
||||
transform: translateX(-30px);
|
||||
animation: fadeInLeft 0.8s ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInLeft {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 淡入向右动画 */
|
||||
.animate-fadeInRight {
|
||||
opacity: 0;
|
||||
transform: translateX(30px);
|
||||
animation: fadeInRight 0.8s ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInRight {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 动画延迟类 */
|
||||
.animation-delay-100 { animation-delay: 0.1s; }
|
||||
.animation-delay-200 { animation-delay: 0.2s; }
|
||||
.animation-delay-300 { animation-delay: 0.3s; }
|
||||
.animation-delay-400 { animation-delay: 0.4s; }
|
||||
.animation-delay-500 { animation-delay: 0.5s; }
|
||||
.animation-delay-600 { animation-delay: 0.6s; }
|
||||
.animation-delay-700 { animation-delay: 0.7s; }
|
||||
.animation-delay-800 { animation-delay: 0.8s; }
|
||||
.animation-delay-900 { animation-delay: 0.9s; }
|
||||
.animation-delay-1000 { animation-delay: 1s; }
|
||||
.animation-delay-1100 { animation-delay: 1.1s; }
|
||||
.animation-delay-2000 { animation-delay: 2s; }
|
||||
.animation-delay-4000 { animation-delay: 4s; }
|
||||
|
||||
/* ============================================
|
||||
页面加载动画
|
||||
============================================ */
|
||||
.page-loader {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
z-index: 9999;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
animation: fadeOut 0.5s ease-out 1s forwards;
|
||||
}
|
||||
|
||||
.loader-content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.loader-logo {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin: 0 auto 20px;
|
||||
background: white;
|
||||
border-radius: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
animation: pulse 1s infinite;
|
||||
}
|
||||
|
||||
.loader-text {
|
||||
color: white;
|
||||
font-size: 1.2rem;
|
||||
animation: fadeInUp 0.5s ease-out;
|
||||
}
|
||||
|
||||
.loader-progress {
|
||||
width: 200px;
|
||||
height: 4px;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border-radius: 2px;
|
||||
margin: 20px auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.loader-progress-bar {
|
||||
width: 0%;
|
||||
height: 100%;
|
||||
background: white;
|
||||
animation: loading 1s ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes loading {
|
||||
to { width: 100%; }
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
入场动画
|
||||
============================================ */
|
||||
.fade-in {
|
||||
opacity: 0;
|
||||
animation: fadeIn var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.fade-in-up {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
animation: fadeInUp var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInUp {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.fade-in-down {
|
||||
opacity: 0;
|
||||
transform: translateY(-30px);
|
||||
animation: fadeInDown var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInDown {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.fade-in-left {
|
||||
opacity: 0;
|
||||
transform: translateX(-30px);
|
||||
animation: fadeInLeft var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInLeft {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.fade-in-right {
|
||||
opacity: 0;
|
||||
transform: translateX(30px);
|
||||
animation: fadeInRight var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInRight {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
缩放动画
|
||||
============================================ */
|
||||
.zoom-in {
|
||||
opacity: 0;
|
||||
transform: scale(0.8);
|
||||
animation: zoomIn var(--anim-slow) var(--ease-bounce) forwards;
|
||||
}
|
||||
|
||||
@keyframes zoomIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoom-out {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
animation: zoomOut var(--anim-slow) var(--ease-bounce) forwards;
|
||||
}
|
||||
|
||||
@keyframes zoomOut {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
旋转动画
|
||||
============================================ */
|
||||
.rotate-in {
|
||||
opacity: 0;
|
||||
transform: rotate(-180deg) scale(0.8);
|
||||
animation: rotateIn var(--anim-slow) var(--ease-bounce) forwards;
|
||||
}
|
||||
|
||||
@keyframes rotateIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: rotate(0) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.flip-in-x {
|
||||
opacity: 0;
|
||||
transform: rotateX(-90deg);
|
||||
animation: flipInX var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes flipInX {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: rotateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.flip-in-y {
|
||||
opacity: 0;
|
||||
transform: rotateY(-90deg);
|
||||
animation: flipInY var(--anim-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes flipInY {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: rotateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
弹跳动画
|
||||
============================================ */
|
||||
.bounce-in {
|
||||
opacity: 0;
|
||||
transform: scale(0.3);
|
||||
animation: bounceIn var(--anim-slower) var(--ease-bounce) forwards;
|
||||
}
|
||||
|
||||
@keyframes bounceIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(0.3);
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
70% {
|
||||
transform: scale(0.9);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
悬停效果
|
||||
============================================ */
|
||||
.hover-grow {
|
||||
transition: transform var(--anim-normal) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.hover-grow:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.hover-shrink {
|
||||
transition: transform var(--anim-normal) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.hover-shrink:hover {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
|
||||
.hover-rotate {
|
||||
transition: transform var(--anim-normal) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.hover-rotate:hover {
|
||||
transform: rotate(5deg);
|
||||
}
|
||||
|
||||
.hover-lift {
|
||||
transition: all var(--anim-normal) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.hover-lift:hover {
|
||||
transform: translateY(-8px);
|
||||
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.hover-sink {
|
||||
transition: all var(--anim-normal) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.hover-sink:hover {
|
||||
transform: translateY(3px);
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
按钮悬停效果
|
||||
============================================ */
|
||||
.btn-hover-fill {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: color var(--anim-normal);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.btn-hover-fill::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: var(--gradient-electric);
|
||||
transition: left var(--anim-normal) var(--ease-smooth);
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.btn-hover-fill:hover::before {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.btn-hover-fill:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* 按钮波纹效果 */
|
||||
.btn-ripple {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.btn-ripple::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
transform: translate(-50%, -50%);
|
||||
transition: width 0.6s, height 0.6s;
|
||||
}
|
||||
|
||||
.btn-ripple:active::after {
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
/* 按钮发光效果 */
|
||||
.btn-glow {
|
||||
transition: all var(--anim-normal);
|
||||
}
|
||||
|
||||
.btn-glow:hover {
|
||||
box-shadow: 0 0 20px rgba(102, 126, 234, 0.6),
|
||||
0 0 40px rgba(102, 126, 234, 0.4),
|
||||
0 0 60px rgba(102, 126, 234, 0.2);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
图片悬停效果
|
||||
============================================ */
|
||||
.img-hover-zoom {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.img-hover-zoom img {
|
||||
transition: transform var(--anim-slow) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.img-hover-zoom:hover img {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
.img-hover-rotate {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.img-hover-rotate img {
|
||||
transition: transform var(--anim-slow) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.img-hover-rotate:hover img {
|
||||
transform: scale(1.1) rotate(3deg);
|
||||
}
|
||||
|
||||
.img-hover-blur {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.img-hover-blur img {
|
||||
transition: all var(--anim-slow) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.img-hover-blur:hover img {
|
||||
filter: blur(3px);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
/* 图片叠加效果 */
|
||||
.img-overlay {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.img-overlay::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(135deg, rgba(102, 126, 234, 0.8), rgba(118, 75, 162, 0.8));
|
||||
opacity: 0;
|
||||
transition: opacity var(--anim-normal);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.img-overlay:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.img-overlay-content {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: white;
|
||||
text-align: center;
|
||||
opacity: 0;
|
||||
transition: opacity var(--anim-normal);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.img-overlay:hover .img-overlay-content {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
文字动画
|
||||
============================================ */
|
||||
.text-glow {
|
||||
animation: textGlow 2s ease-in-out infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes textGlow {
|
||||
from {
|
||||
text-shadow: 0 0 10px rgba(102, 126, 234, 0.5),
|
||||
0 0 20px rgba(102, 126, 234, 0.3);
|
||||
}
|
||||
to {
|
||||
text-shadow: 0 0 20px rgba(102, 126, 234, 0.8),
|
||||
0 0 30px rgba(102, 126, 234, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
.text-typing {
|
||||
overflow: hidden;
|
||||
border-right: 2px solid;
|
||||
white-space: nowrap;
|
||||
animation: typing 3.5s steps(40, end),
|
||||
blink-caret 0.75s step-end infinite;
|
||||
}
|
||||
|
||||
@keyframes typing {
|
||||
from { width: 0; }
|
||||
to { width: 100%; }
|
||||
}
|
||||
|
||||
@keyframes blink-caret {
|
||||
from, to { border-color: transparent; }
|
||||
50% { border-color: currentColor; }
|
||||
}
|
||||
|
||||
.text-gradient-animate {
|
||||
background: linear-gradient(90deg, #667eea, #764ba2, #42e695, #667eea);
|
||||
background-size: 300% 100%;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
animation: gradientMove 5s ease infinite;
|
||||
}
|
||||
|
||||
@keyframes gradientMove {
|
||||
0% { background-position: 0% 50%; }
|
||||
50% { background-position: 100% 50%; }
|
||||
100% { background-position: 0% 50%; }
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
卡片动画
|
||||
============================================ */
|
||||
.card-3d {
|
||||
transform-style: preserve-3d;
|
||||
transition: transform var(--anim-slow) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.card-3d:hover {
|
||||
transform: rotateY(10deg) rotateX(10deg) translateZ(20px);
|
||||
}
|
||||
|
||||
.card-flip {
|
||||
position: relative;
|
||||
transform-style: preserve-3d;
|
||||
transition: transform var(--anim-slow);
|
||||
}
|
||||
|
||||
.card-flip:hover {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
.card-flip-front,
|
||||
.card-flip-back {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
|
||||
.card-flip-back {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
滚动动画
|
||||
============================================ */
|
||||
.scroll-reveal {
|
||||
opacity: 0;
|
||||
transform: translateY(50px);
|
||||
transition: all var(--anim-slower) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.scroll-reveal.revealed {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.scroll-reveal-left {
|
||||
opacity: 0;
|
||||
transform: translateX(-50px);
|
||||
transition: all var(--anim-slower) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.scroll-reveal-left.revealed {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.scroll-reveal-right {
|
||||
opacity: 0;
|
||||
transform: translateX(50px);
|
||||
transition: all var(--anim-slower) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.scroll-reveal-right.revealed {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.scroll-reveal-scale {
|
||||
opacity: 0;
|
||||
transform: scale(0.8);
|
||||
transition: all var(--anim-slower) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.scroll-reveal-scale.revealed {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
视差效果
|
||||
============================================ */
|
||||
.parallax {
|
||||
position: relative;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
.parallax-layer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.parallax-layer-back {
|
||||
transform: translateZ(-1px) scale(2);
|
||||
}
|
||||
|
||||
.parallax-layer-base {
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
.parallax-layer-front {
|
||||
transform: translateZ(1px) scale(0.5);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
加载动画
|
||||
============================================ */
|
||||
.skeleton {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: #f0f0f0;
|
||||
}
|
||||
|
||||
.skeleton::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
|
||||
animation: skeleton-loading 1.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes skeleton-loading {
|
||||
to {
|
||||
left: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
脉冲动画
|
||||
============================================ */
|
||||
.pulse {
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.05);
|
||||
opacity: 0.8;
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.pulse-slow {
|
||||
animation: pulse 3s infinite;
|
||||
}
|
||||
|
||||
.pulse-fast {
|
||||
animation: pulse 1s infinite;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
抖动动画
|
||||
============================================ */
|
||||
.shake {
|
||||
animation: shake 0.5s;
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
0%, 100% { transform: translateX(0); }
|
||||
10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
|
||||
20%, 40%, 60%, 80% { transform: translateX(10px); }
|
||||
}
|
||||
|
||||
.shake-horizontal {
|
||||
animation: shakeHorizontal 0.5s;
|
||||
}
|
||||
|
||||
@keyframes shakeHorizontal {
|
||||
0%, 100% { transform: translateX(0); }
|
||||
25% { transform: translateX(-5px); }
|
||||
75% { transform: translateX(5px); }
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
浮动动画
|
||||
============================================ */
|
||||
.float {
|
||||
animation: float 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes float {
|
||||
0%, 100% { transform: translateY(0); }
|
||||
50% { transform: translateY(-20px); }
|
||||
}
|
||||
|
||||
.float-slow {
|
||||
animation: float 5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.float-fast {
|
||||
animation: float 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
闪烁动画
|
||||
============================================ */
|
||||
.blink {
|
||||
animation: blink 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0; }
|
||||
}
|
||||
|
||||
.flash {
|
||||
animation: flash 0.5s;
|
||||
}
|
||||
|
||||
@keyframes flash {
|
||||
0%, 50%, 100% { opacity: 1; }
|
||||
25%, 75% { opacity: 0; }
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
渐变背景动画
|
||||
============================================ */
|
||||
.bg-gradient-animate {
|
||||
background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
|
||||
background-size: 400% 400%;
|
||||
animation: gradientShift 15s ease infinite;
|
||||
}
|
||||
|
||||
@keyframes gradientShift {
|
||||
0% { background-position: 0% 50%; }
|
||||
50% { background-position: 100% 50%; }
|
||||
100% { background-position: 0% 50%; }
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
光标跟随效果
|
||||
============================================ */
|
||||
.cursor-follow {
|
||||
position: fixed;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border: 2px solid #667eea;
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
transition: all 0.1s ease;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.cursor-follow.active {
|
||||
transform: scale(2);
|
||||
background: rgba(102, 126, 234, 0.1);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
工具提示
|
||||
============================================ */
|
||||
.tooltip {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tooltip::after {
|
||||
content: attr(data-tooltip);
|
||||
position: absolute;
|
||||
bottom: 125%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) scale(0);
|
||||
background: #333;
|
||||
color: white;
|
||||
padding: 8px 12px;
|
||||
border-radius: 6px;
|
||||
font-size: 14px;
|
||||
white-space: nowrap;
|
||||
opacity: 0;
|
||||
transition: all var(--anim-normal) var(--ease-smooth);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.tooltip::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 115%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) scale(0);
|
||||
border: 6px solid transparent;
|
||||
border-top-color: #333;
|
||||
opacity: 0;
|
||||
transition: all var(--anim-normal) var(--ease-smooth);
|
||||
}
|
||||
|
||||
.tooltip:hover::after,
|
||||
.tooltip:hover::before {
|
||||
transform: translateX(-50%) scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
交错动画
|
||||
============================================ */
|
||||
.stagger-children > * {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
animation: staggerIn var(--anim-slow) var(--ease-smooth) forwards;
|
||||
}
|
||||
|
||||
.stagger-children > *:nth-child(1) { animation-delay: 0.1s; }
|
||||
.stagger-children > *:nth-child(2) { animation-delay: 0.2s; }
|
||||
.stagger-children > *:nth-child(3) { animation-delay: 0.3s; }
|
||||
.stagger-children > *:nth-child(4) { animation-delay: 0.4s; }
|
||||
.stagger-children > *:nth-child(5) { animation-delay: 0.5s; }
|
||||
.stagger-children > *:nth-child(6) { animation-delay: 0.6s; }
|
||||
.stagger-children > *:nth-child(7) { animation-delay: 0.7s; }
|
||||
.stagger-children > *:nth-child(8) { animation-delay: 0.8s; }
|
||||
|
||||
@keyframes staggerIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
模糊背景
|
||||
============================================ */
|
||||
.blur-background {
|
||||
backdrop-filter: blur(10px);
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
响应式动画
|
||||
============================================ */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
}
|
||||
}
|
||||
454
web_frontend/exhibition-demo/public/web_result/css/styles.css
Normal file
@@ -0,0 +1,454 @@
|
||||
/* 2024长三角国际新能源汽车与智能交通产业博览会 - 全局样式 */
|
||||
|
||||
/* 根变量定义 */
|
||||
:root {
|
||||
/* 主题色彩系统 */
|
||||
--primary-gradient-start: #10b981;
|
||||
--primary-gradient-end: #3b82f6;
|
||||
--secondary-gradient-start: #8b5cf6;
|
||||
--secondary-gradient-end: #ec4899;
|
||||
--accent-gradient-start: #f59e0b;
|
||||
--accent-gradient-end: #ef4444;
|
||||
|
||||
/* 中性色 */
|
||||
--gray-50: #f9fafb;
|
||||
--gray-100: #f3f4f6;
|
||||
--gray-200: #e5e7eb;
|
||||
--gray-300: #d1d5db;
|
||||
--gray-400: #9ca3af;
|
||||
--gray-500: #6b7280;
|
||||
--gray-600: #4b5563;
|
||||
--gray-700: #374151;
|
||||
--gray-800: #1f2937;
|
||||
--gray-900: #111827;
|
||||
|
||||
/* 间距系统 */
|
||||
--spacing-xs: 0.5rem;
|
||||
--spacing-sm: 1rem;
|
||||
--spacing-md: 1.5rem;
|
||||
--spacing-lg: 2rem;
|
||||
--spacing-xl: 3rem;
|
||||
--spacing-2xl: 4rem;
|
||||
|
||||
/* 动画时长 */
|
||||
--transition-fast: 150ms;
|
||||
--transition-base: 300ms;
|
||||
--transition-slow: 500ms;
|
||||
--transition-slower: 700ms;
|
||||
|
||||
/* 阴影 */
|
||||
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
||||
--shadow-base: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
||||
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
||||
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
|
||||
|
||||
/* 圆角 */
|
||||
--radius-sm: 0.375rem;
|
||||
--radius-base: 0.5rem;
|
||||
--radius-lg: 0.75rem;
|
||||
--radius-xl: 1rem;
|
||||
--radius-full: 9999px;
|
||||
}
|
||||
|
||||
/* 全局重置和基础样式 */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
|
||||
line-height: 1.6;
|
||||
color: var(--gray-800);
|
||||
background-color: var(--gray-50);
|
||||
}
|
||||
|
||||
/* 渐变背景动画 */
|
||||
@keyframes gradientShift {
|
||||
0% { background-position: 0% 50%; }
|
||||
50% { background-position: 100% 50%; }
|
||||
100% { background-position: 0% 50%; }
|
||||
}
|
||||
|
||||
.gradient-bg {
|
||||
background: linear-gradient(-45deg,
|
||||
var(--primary-gradient-start),
|
||||
var(--primary-gradient-end),
|
||||
var(--secondary-gradient-start),
|
||||
var(--secondary-gradient-end));
|
||||
background-size: 400% 400%;
|
||||
animation: gradientShift 15s ease infinite;
|
||||
}
|
||||
|
||||
.gradient-primary {
|
||||
background: linear-gradient(135deg, var(--primary-gradient-start), var(--primary-gradient-end));
|
||||
}
|
||||
|
||||
.gradient-secondary {
|
||||
background: linear-gradient(135deg, var(--secondary-gradient-start), var(--secondary-gradient-end));
|
||||
}
|
||||
|
||||
.gradient-accent {
|
||||
background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
|
||||
}
|
||||
|
||||
/* 导航栏样式 */
|
||||
.navbar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1000;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
backdrop-filter: blur(10px);
|
||||
box-shadow: var(--shadow-base);
|
||||
transition: all var(--transition-base) ease;
|
||||
}
|
||||
|
||||
.navbar.scrolled {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
position: relative;
|
||||
padding: var(--spacing-xs) var(--spacing-sm);
|
||||
color: var(--gray-700);
|
||||
text-decoration: none;
|
||||
transition: color var(--transition-fast) ease;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.nav-link::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end));
|
||||
transform: translateX(-50%);
|
||||
transition: width var(--transition-base) ease;
|
||||
}
|
||||
|
||||
.nav-link:hover::after,
|
||||
.nav-link.active::after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 卡片动画效果 */
|
||||
@keyframes cardFloat {
|
||||
0%, 100% { transform: translateY(0); }
|
||||
50% { transform: translateY(-10px); }
|
||||
}
|
||||
|
||||
.card {
|
||||
background: white;
|
||||
border-radius: var(--radius-lg);
|
||||
padding: var(--spacing-lg);
|
||||
box-shadow: var(--shadow-base);
|
||||
transition: all var(--transition-base) ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px;
|
||||
background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end));
|
||||
transform: scaleX(0);
|
||||
transform-origin: left;
|
||||
transition: transform var(--transition-base) ease;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: var(--shadow-xl);
|
||||
}
|
||||
|
||||
.card:hover::before {
|
||||
transform: scaleX(1);
|
||||
}
|
||||
|
||||
/* 按钮样式 */
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: var(--spacing-sm) var(--spacing-lg);
|
||||
border-radius: var(--radius-full);
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
transition: all var(--transition-base) ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: linear-gradient(135deg, var(--primary-gradient-start), var(--primary-gradient-end));
|
||||
color: white;
|
||||
box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background: white;
|
||||
color: var(--gray-700);
|
||||
border: 2px solid var(--gray-200);
|
||||
}
|
||||
|
||||
.btn-secondary:hover {
|
||||
background: var(--gray-50);
|
||||
border-color: var(--primary-gradient-start);
|
||||
color: var(--primary-gradient-start);
|
||||
}
|
||||
|
||||
/* 波纹效果 */
|
||||
@keyframes ripple {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
transform: scale(4);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ripple {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
animation: ripple 0.6s ease-out;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* 加载动画 */
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
.spinner {
|
||||
display: inline-block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 4px solid var(--gray-200);
|
||||
border-top-color: var(--primary-gradient-start);
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
|
||||
/* 数字滚动动画 */
|
||||
@keyframes countUp {
|
||||
from { opacity: 0; transform: translateY(20px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
.count-up {
|
||||
animation: countUp var(--transition-slow) ease-out;
|
||||
}
|
||||
|
||||
/* 淡入动画 */
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; transform: translateY(20px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
.fade-in {
|
||||
animation: fadeIn var(--transition-slower) ease-out;
|
||||
}
|
||||
|
||||
/* 滑入动画 */
|
||||
@keyframes slideInLeft {
|
||||
from { opacity: 0; transform: translateX(-50px); }
|
||||
to { opacity: 1; transform: translateX(0); }
|
||||
}
|
||||
|
||||
@keyframes slideInRight {
|
||||
from { opacity: 0; transform: translateX(50px); }
|
||||
to { opacity: 1; transform: translateX(0); }
|
||||
}
|
||||
|
||||
.slide-in-left {
|
||||
animation: slideInLeft var(--transition-slow) ease-out;
|
||||
}
|
||||
|
||||
.slide-in-right {
|
||||
animation: slideInRight var(--transition-slow) ease-out;
|
||||
}
|
||||
|
||||
/* 脉冲动画 */
|
||||
@keyframes pulse {
|
||||
0%, 100% { transform: scale(1); opacity: 1; }
|
||||
50% { transform: scale(1.05); opacity: 0.9; }
|
||||
}
|
||||
|
||||
.pulse {
|
||||
animation: pulse 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* 光晕效果 */
|
||||
@keyframes glow {
|
||||
0%, 100% { box-shadow: 0 0 20px rgba(16, 185, 129, 0.5); }
|
||||
50% { box-shadow: 0 0 40px rgba(16, 185, 129, 0.8); }
|
||||
}
|
||||
|
||||
.glow {
|
||||
animation: glow 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* 时间线样式 */
|
||||
.timeline {
|
||||
position: relative;
|
||||
padding-left: var(--spacing-xl);
|
||||
}
|
||||
|
||||
.timeline::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 2px;
|
||||
background: linear-gradient(180deg, var(--primary-gradient-start), var(--primary-gradient-end));
|
||||
}
|
||||
|
||||
.timeline-item {
|
||||
position: relative;
|
||||
padding-bottom: var(--spacing-xl);
|
||||
}
|
||||
|
||||
.timeline-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -25px;
|
||||
top: 5px;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 50%;
|
||||
background: var(--primary-gradient-start);
|
||||
border: 3px solid white;
|
||||
box-shadow: var(--shadow-base);
|
||||
}
|
||||
|
||||
/* 网格布局动画 */
|
||||
.grid-item {
|
||||
opacity: 0;
|
||||
transform: scale(0.9);
|
||||
animation: gridFadeIn var(--transition-slow) ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes gridFadeIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.grid-item:nth-child(1) { animation-delay: 0.1s; }
|
||||
.grid-item:nth-child(2) { animation-delay: 0.2s; }
|
||||
.grid-item:nth-child(3) { animation-delay: 0.3s; }
|
||||
.grid-item:nth-child(4) { animation-delay: 0.4s; }
|
||||
.grid-item:nth-child(5) { animation-delay: 0.5s; }
|
||||
.grid-item:nth-child(6) { animation-delay: 0.6s; }
|
||||
|
||||
/* 响应式设计 */
|
||||
@media (max-width: 768px) {
|
||||
:root {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: var(--spacing-md);
|
||||
}
|
||||
|
||||
.timeline {
|
||||
padding-left: var(--spacing-lg);
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 打印样式 */
|
||||
@media print {
|
||||
.navbar,
|
||||
.btn,
|
||||
.no-print {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 12pt;
|
||||
color: black;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.card {
|
||||
box-shadow: none;
|
||||
border: 1px solid #ddd;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
}
|
||||
|
||||
/* 辅助类 */
|
||||
.text-gradient {
|
||||
background: linear-gradient(135deg, var(--primary-gradient-start), var(--primary-gradient-end));
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
|
||||
.hover-scale {
|
||||
transition: transform var(--transition-base) ease;
|
||||
}
|
||||
|
||||
.hover-scale:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.hover-lift {
|
||||
transition: transform var(--transition-base) ease;
|
||||
}
|
||||
|
||||
.hover-lift:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
.overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.7));
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing-md);
|
||||
}
|
||||
604
web_frontend/exhibition-demo/public/web_result/index.html
Normal file
@@ -0,0 +1,604 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>2024长三角国际新能源汽车与智能交通产业博览会</title>
|
||||
|
||||
<!-- 预加载关键资源 -->
|
||||
<link rel="preload" href="css/styles.css" as="style">
|
||||
<link rel="preload" href="css/animations.css" as="style">
|
||||
|
||||
<!-- 样式表 -->
|
||||
<link rel="stylesheet" href="css/styles.css">
|
||||
<link rel="stylesheet" href="css/animations.css">
|
||||
|
||||
<!-- Tailwind CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
|
||||
<!-- 字体 -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Noto+Sans+SC:wght@300;400;500;700;900&family=Orbitron:wght@400;700;900&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Font Awesome 图标 -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
<style>
|
||||
* {
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
.hero-gradient {
|
||||
background: linear-gradient(135deg,
|
||||
rgba(16, 185, 129, 0.1) 0%,
|
||||
rgba(59, 130, 246, 0.1) 50%,
|
||||
rgba(139, 92, 246, 0.1) 100%);
|
||||
}
|
||||
|
||||
.image-shine {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.image-shine::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
left: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background: linear-gradient(
|
||||
45deg,
|
||||
transparent 30%,
|
||||
rgba(255, 255, 255, 0.3) 50%,
|
||||
transparent 70%
|
||||
);
|
||||
transform: rotate(45deg);
|
||||
transition: all 0.6s;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.image-shine:hover::before {
|
||||
animation: shine 0.6s ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes shine {
|
||||
0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); opacity: 0; }
|
||||
50% { opacity: 1; }
|
||||
100% { transform: translateX(100%) translateY(100%) rotate(45deg); opacity: 0; }
|
||||
}
|
||||
|
||||
.floating {
|
||||
animation: floating 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes floating {
|
||||
0%, 100% { transform: translateY(0px); }
|
||||
50% { transform: translateY(-20px); }
|
||||
}
|
||||
|
||||
/* 确保页面加载时body不能滚动 */
|
||||
body.loading {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* 图片加载优化 */
|
||||
img {
|
||||
background-color: #f3f4f6;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
img.image-loaded {
|
||||
opacity: 1;
|
||||
animation: fadeIn 0.5s ease;
|
||||
}
|
||||
|
||||
img.image-error {
|
||||
opacity: 0.5;
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-gray-50 loading">
|
||||
<!-- 页面加载器 -->
|
||||
<div class="page-loader" id="pageLoader">
|
||||
<div class="loader-content">
|
||||
<div class="loader-logo">
|
||||
<i class="fas fa-car text-4xl text-emerald-500"></i>
|
||||
</div>
|
||||
<div class="loader-text">加载中...</div>
|
||||
<div class="loader-progress">
|
||||
<div class="loader-progress-bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300" id="navbar">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center fade-in-left">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="index.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="pages/overview.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="pages/exhibition.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="pages/marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="pages/operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="pages/budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="pages/risk.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex items-center space-x-4">
|
||||
<button class="md:hidden p-2" id="mobileMenuBtn">
|
||||
<i class="fas fa-bars text-xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Hero Section -->
|
||||
<section class="relative min-h-screen flex items-center justify-center overflow-hidden hero-gradient py-32">
|
||||
<!-- 背景图片 -->
|
||||
<div class="absolute inset-0 z-0">
|
||||
<div class="absolute inset-0 bg-gradient-to-br from-purple-100 via-blue-50 to-emerald-50"></div>
|
||||
<div class="absolute inset-0 opacity-10" style="background-image: url('../data/会展策划/image/博览会.jpg'); background-size: cover; background-position: center;"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-b from-transparent via-white/60 to-white/90"></div>
|
||||
</div>
|
||||
|
||||
<!-- 浮动装饰元素 -->
|
||||
<div class="absolute top-20 left-10 w-20 h-20 bg-emerald-400 rounded-full opacity-20 floating"></div>
|
||||
<div class="absolute bottom-20 right-10 w-32 h-32 bg-blue-400 rounded-full opacity-20 floating" style="animation-delay: 1s;"></div>
|
||||
<div class="absolute top-1/2 left-20 w-16 h-16 bg-purple-400 rounded-full opacity-20 floating" style="animation-delay: 2s;"></div>
|
||||
|
||||
<div class="relative z-10 container mx-auto px-6 text-center py-12">
|
||||
<div class="fade-in-up">
|
||||
<!-- 标签 -->
|
||||
<div class="inline-flex items-center px-4 py-2 bg-white/80 backdrop-blur-sm rounded-full mb-6 shadow-lg">
|
||||
<span class="animate-pulse w-2 h-2 bg-emerald-500 rounded-full mr-2"></span>
|
||||
<span class="text-sm font-semibold text-gray-700">2024年6月15-17日 · 苏州国际博览中心</span>
|
||||
</div>
|
||||
|
||||
<h1 class="text-5xl md:text-7xl font-black mb-6">
|
||||
<span class="block text-gradient-animate">2024 长三角国际</span>
|
||||
<span class="block text-gray-800 mt-2">新能源汽车与智能交通</span>
|
||||
<span class="block text-4xl md:text-5xl text-gray-600 mt-2">产业博览会</span>
|
||||
</h1>
|
||||
|
||||
<p class="text-xl md:text-2xl text-gray-600 mb-8 max-w-3xl mx-auto">
|
||||
<i class="fas fa-quote-left text-emerald-500 mr-2"></i>
|
||||
引领绿色出行新时代 · 共创智能交通新未来
|
||||
<i class="fas fa-quote-right text-emerald-500 ml-2"></i>
|
||||
</p>
|
||||
<!-- 核心信息展示 -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-12 max-w-5xl mx-auto">
|
||||
<div class="bg-white/95 backdrop-blur-md rounded-2xl p-6 border-2 border-purple-200 hover:border-purple-400 transition-all duration-300 transform hover:scale-105 animate-fadeInUp animation-delay-200 shadow-2xl">
|
||||
<div class="flex flex-col items-center">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-purple-500 to-purple-600 rounded-full flex items-center justify-center mb-3 shadow-lg">
|
||||
<i class="fas fa-calendar-alt text-3xl text-white"></i>
|
||||
</div>
|
||||
<p class="text-gray-600 text-sm font-medium mb-2">展会时间</p>
|
||||
<p class="text-gray-900 font-bold text-2xl text-center">2024年9月</p>
|
||||
<p class="text-gray-800 font-bold text-xl">12-15日</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/95 backdrop-blur-md rounded-2xl p-6 border-2 border-blue-200 hover:border-blue-400 transition-all duration-300 transform hover:scale-105 animate-fadeInUp animation-delay-400 shadow-2xl">
|
||||
<div class="flex flex-col items-center">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-blue-500 to-blue-600 rounded-full flex items-center justify-center mb-3 shadow-lg">
|
||||
<i class="fas fa-map-marked-alt text-3xl text-white"></i>
|
||||
</div>
|
||||
<p class="text-gray-600 text-sm font-medium mb-2">展会地点</p>
|
||||
<p class="text-gray-900 font-bold text-2xl text-center">国家会展中心</p>
|
||||
<p class="text-gray-800 font-bold text-xl">上海</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/95 backdrop-blur-md rounded-2xl p-6 border-2 border-green-200 hover:border-green-400 transition-all duration-300 transform hover:scale-105 animate-fadeInUp animation-delay-600 shadow-2xl">
|
||||
<div class="flex flex-col items-center">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-green-500 to-green-600 rounded-full flex items-center justify-center mb-3 shadow-lg">
|
||||
<i class="fas fa-expand-arrows-alt text-3xl text-white"></i>
|
||||
</div>
|
||||
<p class="text-gray-600 text-sm font-medium mb-2">展览规模</p>
|
||||
<p class="text-gray-900 font-bold text-3xl">50,000</p>
|
||||
<p class="text-gray-800 font-bold text-lg">平方米</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- CTA按钮组 -->
|
||||
<div class="flex flex-col md:flex-row gap-6 justify-center items-center animate-fadeInUp animation-delay-800">
|
||||
<a href="pages/overview.html" class="group relative overflow-hidden bg-white text-purple-700 px-12 py-5 rounded-full font-bold text-xl shadow-2xl hover:shadow-white/30 transition-all duration-300 transform hover:scale-110">
|
||||
<span class="absolute inset-0 bg-gradient-to-r from-purple-600 to-pink-600 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></span>
|
||||
<span class="relative z-10 flex items-center group-hover:text-white">
|
||||
<i class="fas fa-sparkles mr-3 text-2xl animate-pulse"></i>
|
||||
了解详情
|
||||
<i class="fas fa-arrow-right ml-3 group-hover:translate-x-2 transition-transform"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a href="#highlights" class="group relative overflow-hidden bg-gradient-to-r from-purple-600 to-pink-600 text-white px-12 py-5 rounded-full font-bold text-xl hover:from-purple-700 hover:to-pink-700 transition-all duration-300 transform hover:scale-110 shadow-2xl">
|
||||
<span class="relative z-10 flex items-center">
|
||||
<i class="fas fa-star mr-3 text-2xl text-yellow-300"></i>
|
||||
展会亮点
|
||||
<i class="fas fa-chevron-down ml-3 animate-bounce"></i>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Key Stats Section -->
|
||||
<section class="py-20 -mt-20 relative z-20 bg-gradient-to-br from-white via-gray-50 to-white">
|
||||
<!-- 背景装饰 -->
|
||||
<div class="absolute inset-0 opacity-5" style="background-image: url('../data/会展策划/image/Whisk_9e8c1f44ac.jpg'); background-size: cover; background-position: center;"></div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10" title="核心数据展示区">
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-12">
|
||||
<div class="text-center group animate-fadeInUp animation-delay-200 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-purple-200 group-hover:border-purple-400 group-hover:rotate-3 transition-all">
|
||||
<i class="fas fa-building text-4xl text-purple-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="350">0</span>+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">参展企业</div>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-400 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-blue-200 group-hover:border-blue-400 group-hover:-rotate-3 transition-all">
|
||||
<i class="fas fa-users text-4xl text-blue-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="50000">0</span>+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">预计观众</div>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-600 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-green-200 group-hover:border-green-400 group-hover:rotate-3 transition-all">
|
||||
<i class="fas fa-hand-holding-usd text-4xl text-green-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="10">0</span>亿+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">预计成交额</div>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-800 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-orange-200 group-hover:border-orange-400 group-hover:-rotate-3 transition-all">
|
||||
<i class="fas fa-microphone-alt text-4xl text-orange-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="20">0</span>+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">专业论坛</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Highlights Section -->
|
||||
<section id="highlights" class="py-20 relative overflow-hidden">
|
||||
<!-- 背景图片层 - 降低透明度 -->
|
||||
<div class="absolute inset-0 opacity-20" style="background-image: url('../data/会展策划/image/Whisk_27184afa6e.jpg'); background-size: cover; background-position: center; background-attachment: fixed;"></div>
|
||||
|
||||
<!-- 强化遮罩层 - 确保主体内容清晰 -->
|
||||
<div class="absolute inset-0 bg-white/85"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-br from-gray-50/95 to-purple-50/95"></div>
|
||||
<div class="absolute inset-0 opacity-10">
|
||||
<div class="absolute top-20 left-20 w-72 h-72 bg-purple-300 rounded-full mix-blend-multiply filter blur-xl animate-blob"></div>
|
||||
<div class="absolute top-40 right-20 w-72 h-72 bg-yellow-300 rounded-full mix-blend-multiply filter blur-xl animate-blob animation-delay-2000"></div>
|
||||
<div class="absolute -bottom-8 left-40 w-72 h-72 bg-pink-300 rounded-full mix-blend-multiply filter blur-xl animate-blob animation-delay-4000"></div>
|
||||
</div>
|
||||
<div class="container mx-auto px-6 relative z-10" title="展会亮点展示区">
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-center text-gray-800 mb-12 animate-fadeInUp">展会亮点</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<!-- Card 1 -->
|
||||
<div class="bg-white rounded-xl shadow-lg overflow-hidden transform transition-all duration-300 hover:scale-105 hover:shadow-2xl animate-fadeInUp animation-delay-200">
|
||||
<div class="h-48 relative overflow-hidden">
|
||||
<img src="../data/会展策划/image/3.小米汽车.jpg" alt="小米汽车" class="w-full h-full object-cover">
|
||||
<div class="absolute top-4 left-4">
|
||||
<div class="bg-blue-500 text-white px-3 py-1 rounded-full text-xs font-semibold">热门展区</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">全产业链展示</h3>
|
||||
<p class="text-gray-600 mb-4">
|
||||
涵盖整车制造、核心零部件、充电设施、智能网联等全产业链环节,打造一站式采购平台。
|
||||
</p>
|
||||
<a href="pages/exhibition.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Card 2 -->
|
||||
<div class="bg-white rounded-xl shadow-lg overflow-hidden transform transition-all duration-300 hover:scale-105 hover:shadow-2xl animate-fadeInUp animation-delay-400">
|
||||
<div class="h-48 relative overflow-hidden">
|
||||
<img src="../data/会展策划/image/2.试驾小景.jpg" alt="试驾体验" class="w-full h-full object-cover">
|
||||
<div class="absolute top-4 left-4">
|
||||
<div class="bg-emerald-500 text-white px-3 py-1 rounded-full text-xs font-semibold">互动体验</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">创新技术体验</h3>
|
||||
<p class="text-gray-600 mb-4">
|
||||
设置自动驾驶体验区、智能交通演示区,让观众亲身体验最新科技成果。
|
||||
</p>
|
||||
<a href="pages/operation.html" class="text-emerald-600 font-semibold hover:text-emerald-800 flex items-center group">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Card 3 -->
|
||||
<div class="bg-white rounded-xl shadow-lg overflow-hidden transform transition-all duration-300 hover:scale-105 hover:shadow-2xl animate-fadeInUp animation-delay-600">
|
||||
<div class="h-48 relative overflow-hidden">
|
||||
<img src="../data/会展策划/image/展会内部参观.jpg" alt="论坛峰会" class="w-full h-full object-cover">
|
||||
<div class="absolute top-4 left-4">
|
||||
<div class="bg-purple-500 text-white px-3 py-1 rounded-full text-xs font-semibold">主题论坛</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">高端论坛峰会</h3>
|
||||
<p class="text-gray-600 mb-4">
|
||||
汇聚行业领袖、专家学者,探讨产业发展趋势,发布权威研究报告。
|
||||
</p>
|
||||
<a href="pages/marketing.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Exhibition Areas -->
|
||||
<section class="py-20 bg-gradient-to-br from-white via-indigo-50 to-purple-50">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-center text-gray-800 mb-4 animate-fadeInUp">展区规划</h2>
|
||||
<p class="text-center text-gray-600 mb-12 animate-fadeInUp animation-delay-200">50,000平方米超大展览空间,打造沉浸式体验</p>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
<div class="group text-center p-6 bg-white/80 backdrop-blur border-2 border-purple-200 rounded-2xl hover:border-purple-500 hover:shadow-2xl transform transition-all duration-300 hover:-translate-y-2 animate-fadeInUp animation-delay-300">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-blue-400 to-purple-600 rounded-2xl flex items-center justify-center mx-auto mb-4 group-hover:rotate-6 transition-transform duration-300">
|
||||
<i class="fas fa-car text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-lg font-bold mb-2 text-gray-800">整车展示区</h3>
|
||||
<p class="text-purple-600 font-bold text-xl mb-1">20,000m²</p>
|
||||
<p class="text-gray-500 text-sm">100+品牌车型</p>
|
||||
<div class="mt-3 opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<span class="inline-block bg-purple-100 text-purple-700 px-3 py-1 rounded-full text-xs">核心展区</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group text-center p-6 bg-white/80 backdrop-blur border-2 border-emerald-200 rounded-2xl hover:border-emerald-500 hover:shadow-2xl transform transition-all duration-300 hover:-translate-y-2 animate-fadeInUp animation-delay-400">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-emerald-400 to-teal-600 rounded-2xl flex items-center justify-center mx-auto mb-4 group-hover:rotate-6 transition-transform duration-300">
|
||||
<i class="fas fa-microchip text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-lg font-bold mb-2 text-gray-800">核心零部件区</h3>
|
||||
<p class="text-emerald-600 font-bold text-xl mb-1">15,000m²</p>
|
||||
<p class="text-gray-500 text-sm">500+供应商</p>
|
||||
<div class="mt-3 opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<span class="inline-block bg-emerald-100 text-emerald-700 px-3 py-1 rounded-full text-xs">技术展示</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group text-center p-6 bg-white/80 backdrop-blur border-2 border-indigo-200 rounded-2xl hover:border-indigo-500 hover:shadow-2xl transform transition-all duration-300 hover:-translate-y-2 animate-fadeInUp animation-delay-500">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-indigo-400 to-blue-600 rounded-2xl flex items-center justify-center mx-auto mb-4 group-hover:rotate-6 transition-transform duration-300">
|
||||
<i class="fas fa-network-wired text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-lg font-bold mb-2 text-gray-800">智能交通区</h3>
|
||||
<p class="text-indigo-600 font-bold text-xl mb-1">10,000m²</p>
|
||||
<p class="text-gray-500 text-sm">50+解决方案</p>
|
||||
<div class="mt-3 opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<span class="inline-block bg-indigo-100 text-indigo-700 px-3 py-1 rounded-full text-xs">创新科技</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group text-center p-6 bg-white/80 backdrop-blur border-2 border-pink-200 rounded-2xl hover:border-pink-500 hover:shadow-2xl transform transition-all duration-300 hover:-translate-y-2 animate-fadeInUp animation-delay-600">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-pink-400 to-rose-600 rounded-2xl flex items-center justify-center mx-auto mb-4 group-hover:rotate-6 transition-transform duration-300">
|
||||
<i class="fas fa-gamepad text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-lg font-bold mb-2 text-gray-800">体验互动区</h3>
|
||||
<p class="text-pink-600 font-bold text-xl mb-1">5,000m²</p>
|
||||
<p class="text-gray-500 text-sm">20+互动项目</p>
|
||||
<div class="mt-3 opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<span class="inline-block bg-pink-100 text-pink-700 px-3 py-1 rounded-full text-xs">沉浸体验</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 展馆布置图 -->
|
||||
<div class="mt-12 animate-fadeInUp animation-delay-700">
|
||||
<div class="bg-white/90 backdrop-blur rounded-2xl shadow-xl overflow-hidden">
|
||||
<img src="../data/会展策划/image/展馆布置图.jpeg" alt="展馆布置图" class="w-full h-auto hover:scale-105 transition-transform duration-700">
|
||||
<div class="p-4 bg-gradient-to-r from-purple-600 to-indigo-600 text-white">
|
||||
<p class="text-center font-semibold"><i class="fas fa-map-marked-alt mr-2"></i>展馆3D全景布置图 - 点击查看详情</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Gallery Section -->
|
||||
<section class="py-20 bg-gradient-to-br from-gray-900 to-purple-900 relative overflow-hidden">
|
||||
<div class="absolute inset-0 opacity-10">
|
||||
<div class="absolute top-0 left-0 w-full h-full bg-[url('../data/会展策划/image/展会内部参观.jpg')] bg-cover bg-center bg-fixed"></div>
|
||||
</div>
|
||||
<div class="container mx-auto px-6 relative z-10" title="精彩瞬间展示区">
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-center text-white mb-12 animate-fadeInUp">精彩瞬间</h2>
|
||||
<div class="grid md:grid-cols-3 gap-6 mb-8">
|
||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-200">
|
||||
<img src="../data/会展策划/image/展会内部参观.jpg" alt="展会内部" class="w-full h-64 object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-6 text-white transform translate-y-20 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h3 class="text-xl font-bold mb-2">展馆内部参观</h3>
|
||||
<p class="text-sm">宽敞明亮的展示空间,科技感十足</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-400">
|
||||
<img src="../data/会展策划/image/签到.jpg" alt="签到处" class="w-full h-64 object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-6 text-white transform translate-y-20 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h3 class="text-xl font-bold mb-2">智能签到系统</h3>
|
||||
<p class="text-sm">快速便捷的入场体验</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-600">
|
||||
<img src="../data/会展策划/image/3.小米汽车.jpg" alt="展品展示" class="w-full h-64 object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-6 text-white transform translate-y-20 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h3 class="text-xl font-bold mb-2">明星展品</h3>
|
||||
<p class="text-sm">最新款新能源汽车亮相</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 更多图片展示 -->
|
||||
<div class="grid md:grid-cols-4 gap-4">
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-800">
|
||||
<img src="../data/会展策划/image/Whisk_03282ab7e5.jpg" alt="展品1" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-purple-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">智能驾驶展示</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-900">
|
||||
<img src="../data/会展策划/image/Whisk_15f65339bb.jpg" alt="展品2" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-indigo-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">充电技术革新</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-1000">
|
||||
<img src="../data/会展策划/image/Whisk_192cdc54bc.jpg" alt="展品3" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-blue-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">电池技术展览</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-1100">
|
||||
<img src="../data/会展策划/image/Whisk_1c05424f7f.jpg" alt="展品4" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-cyan-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">智慧交通系统</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="bg-gradient-to-b from-gray-900 to-black text-white py-16 relative overflow-hidden">
|
||||
<!-- 背景装饰 -->
|
||||
<div class="absolute inset-0 opacity-10">
|
||||
<div class="absolute bottom-0 left-0 w-96 h-96 bg-purple-500 rounded-full filter blur-3xl"></div>
|
||||
<div class="absolute top-0 right-0 w-96 h-96 bg-blue-500 rounded-full filter blur-3xl"></div>
|
||||
</div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10" title="页脚信息区">
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
|
||||
<div class="animate-fadeInUp">
|
||||
<div class="flex items-center mb-4">
|
||||
<i class="fas fa-car-side text-2xl text-purple-400 mr-2"></i>
|
||||
<h3 class="text-lg font-semibold">关于展会</h3>
|
||||
</div>
|
||||
<p class="text-gray-400 text-sm leading-relaxed">
|
||||
长三角地区最具影响力的新能源汽车与智能交通产业盛会,汇聚全球顶尖企业与技术
|
||||
</p>
|
||||
<div class="mt-4 flex space-x-3">
|
||||
<a href="#" class="w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center hover:bg-purple-600 transition">
|
||||
<i class="fab fa-weixin text-sm"></i>
|
||||
</a>
|
||||
<a href="#" class="w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center hover:bg-blue-600 transition">
|
||||
<i class="fab fa-weibo text-sm"></i>
|
||||
</a>
|
||||
<a href="#" class="w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center hover:bg-red-600 transition">
|
||||
<i class="fab fa-linkedin text-sm"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="animate-fadeInUp animation-delay-200">
|
||||
<h3 class="text-lg font-semibold mb-4">
|
||||
<i class="fas fa-link text-purple-400 mr-2"></i>快速链接
|
||||
</h3>
|
||||
<ul class="space-y-2 text-sm text-gray-400">
|
||||
<li><a href="pages/overview.html" class="hover:text-purple-400 transition">
|
||||
<i class="fas fa-chevron-right text-xs mr-1"></i>策划概述
|
||||
</a></li>
|
||||
<li><a href="pages/exhibition.html" class="hover:text-purple-400 transition">
|
||||
<i class="fas fa-chevron-right text-xs mr-1"></i>展会介绍
|
||||
</a></li>
|
||||
<li><a href="pages/marketing.html" class="hover:text-purple-400 transition">
|
||||
<i class="fas fa-chevron-right text-xs mr-1"></i>营销方案
|
||||
</a></li>
|
||||
<li><a href="pages/operation.html" class="hover:text-purple-400 transition">
|
||||
<i class="fas fa-chevron-right text-xs mr-1"></i>现场运营
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="animate-fadeInUp animation-delay-400">
|
||||
<h3 class="text-lg font-semibold mb-4">
|
||||
<i class="fas fa-phone-alt text-purple-400 mr-2"></i>联系方式
|
||||
</h3>
|
||||
<ul class="space-y-2 text-sm text-gray-400">
|
||||
<li><i class="fas fa-map-marker-alt text-purple-400 mr-2"></i>上海市青浦区崧泽大道333号</li>
|
||||
<li><i class="fas fa-phone text-purple-400 mr-2"></i>021-12345678</li>
|
||||
<li><i class="fas fa-envelope text-purple-400 mr-2"></i>info@greenmobility2024.com</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="animate-fadeInUp animation-delay-600">
|
||||
<h3 class="text-lg font-semibold mb-4">
|
||||
<i class="fas fa-qrcode text-purple-400 mr-2"></i>关注我们
|
||||
</h3>
|
||||
<div class="flex space-x-4">
|
||||
<a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center hover:bg-gray-700">
|
||||
<span>微信</span>
|
||||
</a>
|
||||
<a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center hover:bg-gray-700">
|
||||
<span>微博</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="border-t border-gray-800 mt-8 pt-8 text-center text-sm text-gray-400">
|
||||
<p>© 2024 长三角国际新能源汽车与智能交通产业博览会. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
709
web_frontend/exhibition-demo/public/web_result/js/main.js
Normal file
@@ -0,0 +1,709 @@
|
||||
// 2024长三角国际新能源汽车与智能交通产业博览会 - 交互脚本
|
||||
|
||||
// 页面加载完成后初始化
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// 隐藏页面加载器
|
||||
hidePageLoader();
|
||||
|
||||
initNavbar();
|
||||
initAnimations();
|
||||
initCounters();
|
||||
initScrollEffects();
|
||||
initRippleEffect();
|
||||
initLazyLoading();
|
||||
initFormValidation();
|
||||
initCharts();
|
||||
initTimeline();
|
||||
initInteractiveElements();
|
||||
handleImageErrors();
|
||||
});
|
||||
|
||||
// 隐藏页面加载器
|
||||
function hidePageLoader() {
|
||||
const loader = document.getElementById('pageLoader');
|
||||
if (loader) {
|
||||
// 添加淡出动画
|
||||
loader.style.opacity = '0';
|
||||
loader.style.transition = 'opacity 0.5s ease-out';
|
||||
|
||||
// 500ms后完全移除
|
||||
setTimeout(() => {
|
||||
loader.style.display = 'none';
|
||||
// 恢复body滚动
|
||||
document.body.style.overflow = 'auto';
|
||||
document.body.classList.remove('loading');
|
||||
}, 500);
|
||||
} else {
|
||||
// 如果没有找到加载器,也要确保恢复滚动
|
||||
document.body.style.overflow = 'auto';
|
||||
document.body.classList.remove('loading');
|
||||
}
|
||||
}
|
||||
|
||||
// 如果页面加载超过3秒,强制隐藏加载器
|
||||
window.addEventListener('load', function() {
|
||||
setTimeout(() => {
|
||||
hidePageLoader();
|
||||
}, 3000);
|
||||
});
|
||||
|
||||
// 导航栏交互
|
||||
function initNavbar() {
|
||||
const navbar = document.querySelector('.navbar');
|
||||
const navLinks = document.querySelectorAll('.nav-link');
|
||||
const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
|
||||
const mobileMenu = document.querySelector('.mobile-menu');
|
||||
|
||||
// 滚动时改变导航栏样式
|
||||
window.addEventListener('scroll', () => {
|
||||
if (window.scrollY > 100) {
|
||||
navbar?.classList.add('scrolled');
|
||||
} else {
|
||||
navbar?.classList.remove('scrolled');
|
||||
}
|
||||
});
|
||||
|
||||
// 高亮当前页面链接
|
||||
const currentPath = window.location.pathname;
|
||||
navLinks.forEach(link => {
|
||||
if (link.getAttribute('href') === currentPath) {
|
||||
link.classList.add('active');
|
||||
}
|
||||
});
|
||||
|
||||
// 移动端菜单切换
|
||||
mobileMenuBtn?.addEventListener('click', () => {
|
||||
mobileMenu?.classList.toggle('open');
|
||||
mobileMenuBtn.classList.toggle('active');
|
||||
});
|
||||
|
||||
// 平滑滚动到锚点
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
const target = document.querySelector(this.getAttribute('href'));
|
||||
if (target) {
|
||||
target.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'start'
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 动画初始化
|
||||
function initAnimations() {
|
||||
// Intersection Observer for fade-in animations
|
||||
const observerOptions = {
|
||||
threshold: 0.1,
|
||||
rootMargin: '0px 0px -50px 0px'
|
||||
};
|
||||
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.classList.add('animate-in');
|
||||
observer.unobserve(entry.target);
|
||||
}
|
||||
});
|
||||
}, observerOptions);
|
||||
|
||||
// 观察所有需要动画的元素
|
||||
document.querySelectorAll('.fade-in, .slide-in-left, .slide-in-right, .grid-item').forEach(el => {
|
||||
observer.observe(el);
|
||||
});
|
||||
}
|
||||
|
||||
// 数字计数器动画
|
||||
function initCounters() {
|
||||
const counters = document.querySelectorAll('.counter');
|
||||
const speed = 200; // 动画速度
|
||||
|
||||
const countUp = (counter) => {
|
||||
const target = +counter.getAttribute('data-target');
|
||||
const increment = target / speed;
|
||||
|
||||
const updateCount = () => {
|
||||
const count = +counter.innerText.replace(/[^0-9]/g, '');
|
||||
|
||||
if (count < target) {
|
||||
counter.innerText = Math.ceil(count + increment).toLocaleString();
|
||||
setTimeout(updateCount, 1);
|
||||
} else {
|
||||
counter.innerText = target.toLocaleString();
|
||||
|
||||
// 添加单位
|
||||
const unit = counter.getAttribute('data-unit');
|
||||
if (unit) {
|
||||
counter.innerText += unit;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
updateCount();
|
||||
};
|
||||
|
||||
// 使用 Intersection Observer 触发计数
|
||||
const counterObserver = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
countUp(entry.target);
|
||||
counterObserver.unobserve(entry.target);
|
||||
}
|
||||
});
|
||||
}, { threshold: 0.5 });
|
||||
|
||||
counters.forEach(counter => {
|
||||
counter.innerText = '0';
|
||||
counterObserver.observe(counter);
|
||||
});
|
||||
}
|
||||
|
||||
// 滚动效果
|
||||
function initScrollEffects() {
|
||||
let lastScrollTop = 0;
|
||||
const header = document.querySelector('header');
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
||||
|
||||
// 隐藏/显示导航栏
|
||||
if (scrollTop > lastScrollTop && scrollTop > 300) {
|
||||
header?.classList.add('hide');
|
||||
} else {
|
||||
header?.classList.remove('hide');
|
||||
}
|
||||
|
||||
lastScrollTop = scrollTop <= 0 ? 0 : scrollTop;
|
||||
|
||||
// 视差效果
|
||||
const parallaxElements = document.querySelectorAll('.parallax');
|
||||
parallaxElements.forEach(el => {
|
||||
const speed = el.getAttribute('data-speed') || 0.5;
|
||||
const yPos = -(scrollTop * speed);
|
||||
el.style.transform = `translateY(${yPos}px)`;
|
||||
});
|
||||
|
||||
// 进度条
|
||||
const progressBar = document.querySelector('.progress-bar');
|
||||
if (progressBar) {
|
||||
const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
|
||||
const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
|
||||
const scrolled = (winScroll / height) * 100;
|
||||
progressBar.style.width = scrolled + '%';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 波纹效果
|
||||
function initRippleEffect() {
|
||||
document.querySelectorAll('.btn, .card').forEach(element => {
|
||||
element.addEventListener('click', function(e) {
|
||||
const ripple = document.createElement('span');
|
||||
ripple.classList.add('ripple');
|
||||
|
||||
const rect = this.getBoundingClientRect();
|
||||
const size = Math.max(rect.width, rect.height);
|
||||
const x = e.clientX - rect.left - size / 2;
|
||||
const y = e.clientY - rect.top - size / 2;
|
||||
|
||||
ripple.style.width = ripple.style.height = size + 'px';
|
||||
ripple.style.left = x + 'px';
|
||||
ripple.style.top = y + 'px';
|
||||
|
||||
this.appendChild(ripple);
|
||||
|
||||
setTimeout(() => {
|
||||
ripple.remove();
|
||||
}, 600);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 懒加载
|
||||
function initLazyLoading() {
|
||||
const images = document.querySelectorAll('img[data-src]');
|
||||
|
||||
const imageObserver = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
const img = entry.target;
|
||||
img.src = img.dataset.src;
|
||||
img.removeAttribute('data-src');
|
||||
imageObserver.unobserve(img);
|
||||
|
||||
// 添加加载完成动画
|
||||
img.addEventListener('load', () => {
|
||||
img.classList.add('loaded');
|
||||
});
|
||||
}
|
||||
});
|
||||
}, {
|
||||
rootMargin: '50px 0px'
|
||||
});
|
||||
|
||||
images.forEach(img => imageObserver.observe(img));
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
function initFormValidation() {
|
||||
const forms = document.querySelectorAll('form');
|
||||
|
||||
forms.forEach(form => {
|
||||
form.addEventListener('submit', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
let isValid = true;
|
||||
const inputs = form.querySelectorAll('input[required], textarea[required]');
|
||||
|
||||
inputs.forEach(input => {
|
||||
if (!input.value.trim()) {
|
||||
isValid = false;
|
||||
input.classList.add('error');
|
||||
showError(input, '此字段为必填项');
|
||||
} else {
|
||||
input.classList.remove('error');
|
||||
clearError(input);
|
||||
}
|
||||
|
||||
// 邮箱验证
|
||||
if (input.type === 'email' && input.value) {
|
||||
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
if (!emailRegex.test(input.value)) {
|
||||
isValid = false;
|
||||
input.classList.add('error');
|
||||
showError(input, '请输入有效的邮箱地址');
|
||||
}
|
||||
}
|
||||
|
||||
// 电话验证
|
||||
if (input.type === 'tel' && input.value) {
|
||||
const phoneRegex = /^1[3-9]\d{9}$/;
|
||||
if (!phoneRegex.test(input.value)) {
|
||||
isValid = false;
|
||||
input.classList.add('error');
|
||||
showError(input, '请输入有效的手机号码');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (isValid) {
|
||||
// 显示成功消息
|
||||
showSuccess('表单提交成功!');
|
||||
form.reset();
|
||||
}
|
||||
});
|
||||
|
||||
// 实时验证
|
||||
form.querySelectorAll('input, textarea').forEach(input => {
|
||||
input.addEventListener('blur', function() {
|
||||
validateInput(this);
|
||||
});
|
||||
|
||||
input.addEventListener('input', function() {
|
||||
if (this.classList.contains('error')) {
|
||||
validateInput(this);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 显示错误信息
|
||||
function showError(input, message) {
|
||||
const errorEl = input.nextElementSibling;
|
||||
if (errorEl && errorEl.classList.contains('error-message')) {
|
||||
errorEl.textContent = message;
|
||||
} else {
|
||||
const error = document.createElement('span');
|
||||
error.classList.add('error-message');
|
||||
error.textContent = message;
|
||||
input.parentNode.insertBefore(error, input.nextSibling);
|
||||
}
|
||||
}
|
||||
|
||||
// 清除错误信息
|
||||
function clearError(input) {
|
||||
const errorEl = input.nextElementSibling;
|
||||
if (errorEl && errorEl.classList.contains('error-message')) {
|
||||
errorEl.remove();
|
||||
}
|
||||
}
|
||||
|
||||
// 验证输入
|
||||
function validateInput(input) {
|
||||
if (input.hasAttribute('required') && !input.value.trim()) {
|
||||
input.classList.add('error');
|
||||
showError(input, '此字段为必填项');
|
||||
return false;
|
||||
}
|
||||
|
||||
input.classList.remove('error');
|
||||
clearError(input);
|
||||
return true;
|
||||
}
|
||||
|
||||
// 显示成功消息
|
||||
function showSuccess(message) {
|
||||
const toast = document.createElement('div');
|
||||
toast.classList.add('toast', 'success');
|
||||
toast.textContent = message;
|
||||
document.body.appendChild(toast);
|
||||
|
||||
setTimeout(() => {
|
||||
toast.classList.add('show');
|
||||
}, 100);
|
||||
|
||||
setTimeout(() => {
|
||||
toast.classList.remove('show');
|
||||
setTimeout(() => {
|
||||
toast.remove();
|
||||
}, 300);
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
// 初始化图表
|
||||
function initCharts() {
|
||||
// 预算分配饼图
|
||||
const budgetChart = document.getElementById('budgetChart');
|
||||
if (budgetChart) {
|
||||
const data = [
|
||||
{ label: '场地租赁', value: 35, color: '#10b981' },
|
||||
{ label: '营销推广', value: 25, color: '#3b82f6' },
|
||||
{ label: '运营服务', value: 20, color: '#8b5cf6' },
|
||||
{ label: '人员成本', value: 15, color: '#f59e0b' },
|
||||
{ label: '其他费用', value: 5, color: '#ef4444' }
|
||||
];
|
||||
|
||||
drawPieChart(budgetChart, data);
|
||||
}
|
||||
|
||||
// 参展商类别分布
|
||||
const exhibitorChart = document.getElementById('exhibitorChart');
|
||||
if (exhibitorChart) {
|
||||
const data = [
|
||||
{ label: '整车制造', value: 40 },
|
||||
{ label: '零部件', value: 30 },
|
||||
{ label: '充电设施', value: 15 },
|
||||
{ label: '智能驾驶', value: 10 },
|
||||
{ label: '其他', value: 5 }
|
||||
];
|
||||
|
||||
drawBarChart(exhibitorChart, data);
|
||||
}
|
||||
}
|
||||
|
||||
// 绘制饼图
|
||||
function drawPieChart(canvas, data) {
|
||||
const ctx = canvas.getContext('2d');
|
||||
const centerX = canvas.width / 2;
|
||||
const centerY = canvas.height / 2;
|
||||
const radius = Math.min(centerX, centerY) - 20;
|
||||
|
||||
let currentAngle = -Math.PI / 2;
|
||||
const total = data.reduce((sum, item) => sum + item.value, 0);
|
||||
|
||||
data.forEach(item => {
|
||||
const sliceAngle = (item.value / total) * 2 * Math.PI;
|
||||
|
||||
// 绘制扇形
|
||||
ctx.beginPath();
|
||||
ctx.arc(centerX, centerY, radius, currentAngle, currentAngle + sliceAngle);
|
||||
ctx.lineTo(centerX, centerY);
|
||||
ctx.fillStyle = item.color;
|
||||
ctx.fill();
|
||||
|
||||
// 绘制标签
|
||||
const labelX = centerX + Math.cos(currentAngle + sliceAngle / 2) * (radius * 0.7);
|
||||
const labelY = centerY + Math.sin(currentAngle + sliceAngle / 2) * (radius * 0.7);
|
||||
|
||||
ctx.fillStyle = '#fff';
|
||||
ctx.font = '14px sans-serif';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(item.value + '%', labelX, labelY);
|
||||
|
||||
currentAngle += sliceAngle;
|
||||
});
|
||||
}
|
||||
|
||||
// 绘制柱状图
|
||||
function drawBarChart(canvas, data) {
|
||||
const ctx = canvas.getContext('2d');
|
||||
const barWidth = canvas.width / (data.length * 2);
|
||||
const maxValue = Math.max(...data.map(item => item.value));
|
||||
const chartHeight = canvas.height - 40;
|
||||
|
||||
data.forEach((item, index) => {
|
||||
const barHeight = (item.value / maxValue) * chartHeight;
|
||||
const x = (index * 2 + 0.5) * barWidth;
|
||||
const y = canvas.height - barHeight - 20;
|
||||
|
||||
// 绘制柱子
|
||||
const gradient = ctx.createLinearGradient(x, y, x, y + barHeight);
|
||||
gradient.addColorStop(0, '#10b981');
|
||||
gradient.addColorStop(1, '#3b82f6');
|
||||
|
||||
ctx.fillStyle = gradient;
|
||||
ctx.fillRect(x, y, barWidth, barHeight);
|
||||
|
||||
// 绘制数值
|
||||
ctx.fillStyle = '#333';
|
||||
ctx.font = '12px sans-serif';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(item.value + '%', x + barWidth / 2, y - 5);
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化时间线
|
||||
function initTimeline() {
|
||||
const timelineItems = document.querySelectorAll('.timeline-item');
|
||||
|
||||
const timelineObserver = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.classList.add('active');
|
||||
}
|
||||
});
|
||||
}, { threshold: 0.5 });
|
||||
|
||||
timelineItems.forEach(item => {
|
||||
timelineObserver.observe(item);
|
||||
});
|
||||
}
|
||||
|
||||
// 交互元素初始化
|
||||
function initInteractiveElements() {
|
||||
// 标签页切换
|
||||
const tabs = document.querySelectorAll('.tab');
|
||||
const tabContents = document.querySelectorAll('.tab-content');
|
||||
|
||||
tabs.forEach(tab => {
|
||||
tab.addEventListener('click', () => {
|
||||
const target = tab.dataset.tab;
|
||||
|
||||
// 切换标签状态
|
||||
tabs.forEach(t => t.classList.remove('active'));
|
||||
tab.classList.add('active');
|
||||
|
||||
// 切换内容显示
|
||||
tabContents.forEach(content => {
|
||||
if (content.id === target) {
|
||||
content.classList.add('active');
|
||||
content.style.display = 'block';
|
||||
} else {
|
||||
content.classList.remove('active');
|
||||
content.style.display = 'none';
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// 手风琴效果
|
||||
const accordionHeaders = document.querySelectorAll('.accordion-header');
|
||||
|
||||
accordionHeaders.forEach(header => {
|
||||
header.addEventListener('click', () => {
|
||||
const content = header.nextElementSibling;
|
||||
const isOpen = header.classList.contains('active');
|
||||
|
||||
// 关闭其他项
|
||||
accordionHeaders.forEach(h => {
|
||||
h.classList.remove('active');
|
||||
h.nextElementSibling.style.maxHeight = null;
|
||||
});
|
||||
|
||||
// 切换当前项
|
||||
if (!isOpen) {
|
||||
header.classList.add('active');
|
||||
content.style.maxHeight = content.scrollHeight + 'px';
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 模态框
|
||||
const modalTriggers = document.querySelectorAll('[data-modal]');
|
||||
const modals = document.querySelectorAll('.modal');
|
||||
const modalCloses = document.querySelectorAll('.modal-close');
|
||||
|
||||
modalTriggers.forEach(trigger => {
|
||||
trigger.addEventListener('click', () => {
|
||||
const modalId = trigger.dataset.modal;
|
||||
const modal = document.getElementById(modalId);
|
||||
if (modal) {
|
||||
modal.classList.add('open');
|
||||
document.body.style.overflow = 'hidden';
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
modalCloses.forEach(close => {
|
||||
close.addEventListener('click', () => {
|
||||
const modal = close.closest('.modal');
|
||||
modal.classList.remove('open');
|
||||
document.body.style.overflow = '';
|
||||
});
|
||||
});
|
||||
|
||||
// 点击背景关闭模态框
|
||||
modals.forEach(modal => {
|
||||
modal.addEventListener('click', (e) => {
|
||||
if (e.target === modal) {
|
||||
modal.classList.remove('open');
|
||||
document.body.style.overflow = '';
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 工具提示
|
||||
const tooltips = document.querySelectorAll('[data-tooltip]');
|
||||
|
||||
tooltips.forEach(element => {
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.classList.add('tooltip');
|
||||
tooltip.textContent = element.dataset.tooltip;
|
||||
|
||||
element.addEventListener('mouseenter', () => {
|
||||
document.body.appendChild(tooltip);
|
||||
const rect = element.getBoundingClientRect();
|
||||
tooltip.style.left = rect.left + rect.width / 2 - tooltip.offsetWidth / 2 + 'px';
|
||||
tooltip.style.top = rect.top - tooltip.offsetHeight - 10 + 'px';
|
||||
tooltip.classList.add('show');
|
||||
});
|
||||
|
||||
element.addEventListener('mouseleave', () => {
|
||||
tooltip.classList.remove('show');
|
||||
setTimeout(() => {
|
||||
tooltip.remove();
|
||||
}, 300);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 复制到剪贴板
|
||||
function copyToClipboard(text) {
|
||||
const textarea = document.createElement('textarea');
|
||||
textarea.value = text;
|
||||
document.body.appendChild(textarea);
|
||||
textarea.select();
|
||||
document.execCommand('copy');
|
||||
document.body.removeChild(textarea);
|
||||
showSuccess('已复制到剪贴板');
|
||||
}
|
||||
|
||||
// 分享功能
|
||||
function shareContent(platform) {
|
||||
const url = encodeURIComponent(window.location.href);
|
||||
const title = encodeURIComponent(document.title);
|
||||
let shareUrl = '';
|
||||
|
||||
switch(platform) {
|
||||
case 'wechat':
|
||||
// 生成微信分享二维码
|
||||
generateQRCode(window.location.href);
|
||||
break;
|
||||
case 'weibo':
|
||||
shareUrl = `https://service.weibo.com/share/share.php?url=${url}&title=${title}`;
|
||||
break;
|
||||
case 'linkedin':
|
||||
shareUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${url}`;
|
||||
break;
|
||||
case 'twitter':
|
||||
shareUrl = `https://twitter.com/intent/tweet?url=${url}&text=${title}`;
|
||||
break;
|
||||
}
|
||||
|
||||
if (shareUrl) {
|
||||
window.open(shareUrl, '_blank', 'width=600,height=400');
|
||||
}
|
||||
}
|
||||
|
||||
// 生成二维码
|
||||
function generateQRCode(text) {
|
||||
const modal = document.createElement('div');
|
||||
modal.classList.add('qr-modal');
|
||||
modal.innerHTML = `
|
||||
<div class="qr-content">
|
||||
<h3>微信扫码分享</h3>
|
||||
<div id="qrcode"></div>
|
||||
<button class="btn btn-secondary" onclick="this.parentElement.parentElement.remove()">关闭</button>
|
||||
</div>
|
||||
`;
|
||||
document.body.appendChild(modal);
|
||||
|
||||
// 这里可以集成实际的二维码生成库
|
||||
document.getElementById('qrcode').innerHTML = '二维码生成区域';
|
||||
}
|
||||
|
||||
// 主题切换
|
||||
function initThemeToggle() {
|
||||
const themeToggle = document.getElementById('themeToggle');
|
||||
const currentTheme = localStorage.getItem('theme') || 'light';
|
||||
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
themeToggle?.addEventListener('click', () => {
|
||||
const theme = document.documentElement.getAttribute('data-theme') === 'light' ? 'dark' : 'light';
|
||||
document.documentElement.setAttribute('data-theme', theme);
|
||||
localStorage.setItem('theme', theme);
|
||||
});
|
||||
}
|
||||
|
||||
// 导出为 PDF
|
||||
function exportToPDF() {
|
||||
window.print();
|
||||
}
|
||||
|
||||
// 性能监控
|
||||
function initPerformanceMonitoring() {
|
||||
// 页面加载时间
|
||||
window.addEventListener('load', () => {
|
||||
const loadTime = performance.timing.loadEventEnd - performance.timing.navigationStart;
|
||||
console.log(`页面加载时间: ${loadTime}ms`);
|
||||
|
||||
// 发送到分析服务
|
||||
if (window.gtag) {
|
||||
gtag('event', 'page_load_time', {
|
||||
value: loadTime,
|
||||
page_path: window.location.pathname
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 监控长任务
|
||||
if ('PerformanceObserver' in window) {
|
||||
const observer = new PerformanceObserver((list) => {
|
||||
for (const entry of list.getEntries()) {
|
||||
console.log('Long Task detected:', entry);
|
||||
}
|
||||
});
|
||||
|
||||
observer.observe({ entryTypes: ['longtask'] });
|
||||
}
|
||||
}
|
||||
|
||||
// 处理图片加载错误
|
||||
function handleImageErrors() {
|
||||
const images = document.querySelectorAll('img');
|
||||
const defaultImage = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZTJlOGYwIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxOCIgZmlsbD0iIzk0YTNiOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZHk9Ii4zZW0iPuWbvueJh+WKoOi9veS4rTwvdGV4dD48L3N2Zz4=';
|
||||
|
||||
images.forEach(img => {
|
||||
// 添加错误处理
|
||||
img.addEventListener('error', function() {
|
||||
console.warn('图片加载失败:', this.src);
|
||||
// 设置默认占位图
|
||||
this.src = defaultImage;
|
||||
this.alt = '图片加载失败';
|
||||
this.classList.add('image-error');
|
||||
});
|
||||
|
||||
// 添加加载成功处理
|
||||
img.addEventListener('load', function() {
|
||||
this.classList.add('image-loaded');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化性能监控
|
||||
initPerformanceMonitoring();
|
||||
initThemeToggle();
|
||||
1121
web_frontend/exhibition-demo/public/web_result/pages/budget.html
Normal file
@@ -0,0 +1,835 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>展会介绍 - 2024长三角国际新能源汽车展</title>
|
||||
|
||||
<!-- 样式表 -->
|
||||
<link rel="stylesheet" href="../css/animations.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
|
||||
<!-- 字体 -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Font Awesome 图标 -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
<style>
|
||||
* {
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
/* Glass morphism effect */
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
/* 页面加载动画 */
|
||||
.page-enter {
|
||||
animation: pageEnter 0.8s ease-out;
|
||||
}
|
||||
|
||||
@keyframes pageEnter {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 玻璃态效果 */
|
||||
.glass-card {
|
||||
background: rgba(255, 255, 255, 0.85);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.glass-card:hover {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 20px 40px rgba(0,0,0,0.15);
|
||||
}
|
||||
.nav-link {
|
||||
position: relative;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
.nav-link::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -2px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: #667eea;
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
.nav-link:hover::after,
|
||||
.nav-link.active::after {
|
||||
width: 100%;
|
||||
}
|
||||
.exhibition-card {
|
||||
transition: all 0.3s ease;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
.exhibition-card:hover {
|
||||
border-color: #667eea;
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 20px 40px rgba(0,0,0,0.1);
|
||||
}
|
||||
.scale-in {
|
||||
animation: scaleIn 0.5s ease-out;
|
||||
}
|
||||
@keyframes scaleIn {
|
||||
from { transform: scale(0.9); opacity: 0; }
|
||||
to { transform: scale(1); opacity: 1; }
|
||||
}
|
||||
.map-container {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.map-container::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
right: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
|
||||
animation: rotate 20s linear infinite;
|
||||
}
|
||||
@keyframes rotate {
|
||||
from { transform: rotate(0deg); }
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-gray-50">
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="overview.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="exhibition.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<button class="md:hidden text-gray-700">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Page Header -->
|
||||
<section class="relative pt-24 pb-16 overflow-hidden" style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);">
|
||||
<!-- 背景装饰 -->
|
||||
<div class="absolute inset-0">
|
||||
<div class="absolute top-0 left-0 w-96 h-96 bg-white/10 rounded-full filter blur-3xl animate-pulse"></div>
|
||||
<div class="absolute bottom-0 right-0 w-96 h-96 bg-purple-300/20 rounded-full filter blur-3xl animate-pulse animation-delay-2000"></div>
|
||||
</div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10 page-enter">
|
||||
<div class="flex items-center text-white/80 mb-4">
|
||||
<a href="../index.html" class="hover:text-white transition">首页</a>
|
||||
<i class="fas fa-chevron-right mx-2 text-xs"></i>
|
||||
<span>展会介绍</span>
|
||||
</div>
|
||||
<h1 class="text-4xl md:text-6xl font-bold text-white mb-4 animate-fadeInUp">
|
||||
展会介绍与预期效果
|
||||
</h1>
|
||||
<p class="text-xl text-white/90 animate-fadeInUp animation-delay-200">
|
||||
<i class="fas fa-chart-line mr-2"></i>
|
||||
深入了解展会规模、展品范围、参展商与观众构成
|
||||
</p>
|
||||
<div class="mt-8 flex flex-wrap gap-4 animate-fadeInUp animation-delay-400">
|
||||
<div class="bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm">
|
||||
<i class="fas fa-calendar mr-2"></i>2024年9月12-15日
|
||||
</div>
|
||||
<div class="bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm">
|
||||
<i class="fas fa-map-marker-alt mr-2"></i>国家会展中心(上海)
|
||||
</div>
|
||||
<div class="bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm">
|
||||
<i class="fas fa-users mr-2"></i>预计10万+参观者
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Exhibition Theme -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-6">
|
||||
<div class="text-center mb-12">
|
||||
<h2 class="text-4xl font-bold text-gray-800 mb-4">智行未来,绿动长三角</h2>
|
||||
<p class="text-xl text-gray-600 max-w-3xl mx-auto">
|
||||
2024长三角国际新能源汽车与智能交通产业博览会,致力于打造全球新能源汽车产业交流合作的重要平台
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<div class="text-center group animate-fadeInUp animation-delay-200">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-blue-100 to-blue-200 rounded-full flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform shadow-lg">
|
||||
<i class="fas fa-award text-3xl text-blue-600"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2">专业化</h3>
|
||||
<p class="text-gray-600">聚焦新能源汽车全产业链,提供专业展示交流平台</p>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-400">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-green-100 to-green-200 rounded-full flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform shadow-lg">
|
||||
<i class="fas fa-globe-asia text-3xl text-green-600"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2">国际化</h3>
|
||||
<p class="text-gray-600">汇聚全球领先企业,促进国际技术交流与合作</p>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-600">
|
||||
<div class="w-20 h-20 bg-gradient-to-br from-purple-100 to-purple-200 rounded-full flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform shadow-lg">
|
||||
<i class="fas fa-star text-3xl text-purple-600"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2">品质化</h3>
|
||||
<p class="text-gray-600">高端展会服务,打造行业标杆展会品牌</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Venue Information -->
|
||||
<section class="py-16 bg-gray-50 relative overflow-hidden">
|
||||
<!-- 背景图片 -->
|
||||
<div class="absolute inset-0 opacity-5" style="background-image: url('../../data/会展策划/image/博览会.jpg'); background-size: cover; background-position: center;"></div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12 animate-fadeInUp">
|
||||
<i class="fas fa-map-marked-alt mr-2 text-purple-600"></i>
|
||||
展会场地
|
||||
</h2>
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12">
|
||||
<div class="map-container rounded-2xl p-8 text-white relative glass-card hover:scale-[1.02] transition-all duration-300">
|
||||
<h3 class="text-2xl font-bold mb-4 animate-fadeInLeft">
|
||||
<i class="fas fa-building mr-2"></i>
|
||||
国家会展中心(上海)
|
||||
</h3>
|
||||
<div class="space-y-3 relative z-10">
|
||||
<div class="flex items-start animate-fadeInLeft animation-delay-200">
|
||||
<i class="fas fa-map-marker-alt text-xl mr-3 flex-shrink-0 mt-1 animate-pulse"></i>
|
||||
<div>
|
||||
<p class="font-semibold">详细地址</p>
|
||||
<p class="opacity-90">上海市青浦区崧泽大道333号</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start animate-fadeInLeft animation-delay-400">
|
||||
<i class="fas fa-subway text-xl mr-3 flex-shrink-0 mt-1"></i>
|
||||
<div>
|
||||
<p class="font-semibold">交通便利</p>
|
||||
<p class="opacity-90">地铁2号线直达,多条公交线路,充足停车位</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start animate-fadeInLeft animation-delay-600">
|
||||
<i class="fas fa-expand-arrows-alt text-xl mr-3 flex-shrink-0 mt-1"></i>
|
||||
<div>
|
||||
<p class="font-semibold">场馆规模</p>
|
||||
<p class="opacity-90">展览面积50万平方米,亚洲最大会展综合体</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-2xl shadow-lg p-8 glass-card hover:scale-[1.02] transition-all duration-300">
|
||||
<h3 class="text-2xl font-bold text-gray-800 mb-6 animate-fadeInRight">
|
||||
<i class="fas fa-trophy mr-2 text-yellow-500"></i>
|
||||
场馆优势
|
||||
</h3>
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center p-4 bg-blue-50 rounded-lg hover:bg-blue-100 transition-colors animate-fadeInRight animation-delay-200">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-blue-500 to-blue-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-medal text-xl"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">世界级展馆设施</h4>
|
||||
<p class="text-sm text-gray-600">配备先进的展览设施和智能化管理系统</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center p-4 bg-green-50 rounded-lg hover:bg-green-100 transition-colors animate-fadeInRight animation-delay-400">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-green-500 to-green-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-concierge-bell text-xl"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">完善的配套服务</h4>
|
||||
<p class="text-sm text-gray-600">酒店、餐饮、商务中心一应俱全</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center p-4 bg-purple-50 rounded-lg hover:bg-purple-100 transition-colors animate-fadeInRight animation-delay-600">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-purple-500 to-purple-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-hand-holding-heart text-xl"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">丰富的办展经验</h4>
|
||||
<p class="text-sm text-gray-600">成功举办进博会等大型国际展会</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center p-4 bg-orange-50 rounded-lg hover:bg-orange-100 transition-colors animate-fadeInRight animation-delay-800">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-orange-500 to-orange-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-leaf text-xl"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">绿色环保理念</h4>
|
||||
<p class="text-sm text-gray-600">全馆采用节能环保设计,获得绿色建筑认证</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Exhibition Areas Detail -->
|
||||
<section class="py-16 bg-white relative">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12 animate-fadeInUp">
|
||||
<i class="fas fa-th-large mr-2 text-blue-600"></i>
|
||||
展品范围
|
||||
</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
||||
<!-- 整车展区 -->
|
||||
<div class="exhibition-card bg-gradient-to-br from-blue-50 to-blue-100 rounded-xl p-6 animate-fadeInUp animation-delay-200">
|
||||
<div class="relative overflow-hidden rounded-xl mb-4 h-32 bg-gradient-to-r from-blue-400 to-blue-600">
|
||||
<img src="../../data/会展策划/image/3.小米汽车.jpg" alt="整车展示" class="w-full h-full object-cover opacity-60">
|
||||
<div class="absolute inset-0 flex items-center justify-center">
|
||||
<i class="fas fa-car-side text-5xl text-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-blue-500 to-blue-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-car text-xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">整车展区</h3>
|
||||
</div>
|
||||
<ul class="space-y-2 text-gray-700">
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">▸</span>
|
||||
<span>纯电动汽车:轿车、SUV、MPV、商用车</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">▸</span>
|
||||
<span>插电式混合动力汽车:增程式、并联式、混联式</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">▸</span>
|
||||
<span>氢燃料电池汽车:乘用车、商用车、专用车</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">▸</span>
|
||||
<span>智能网联汽车:L2-L4级自动驾驶展示车</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mt-4 pt-4 border-t border-blue-200">
|
||||
<p class="text-sm text-gray-600">展览面积:20,000平方米 | 预计展商:120家</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 核心零部件展区 -->
|
||||
<div class="exhibition-card bg-gradient-to-br from-green-50 to-green-100 rounded-xl p-6 animate-fadeInUp animation-delay-400">
|
||||
<div class="relative overflow-hidden rounded-xl mb-4 h-32 bg-gradient-to-r from-green-400 to-green-600">
|
||||
<img src="../../data/会展策划/image/Whisk_8236005bb2.jpg" alt="核心零部件" class="w-full h-full object-cover opacity-60">
|
||||
<div class="absolute inset-0 flex items-center justify-center">
|
||||
<i class="fas fa-battery-full text-5xl text-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-green-500 to-green-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-bolt text-xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">核心零部件展区</h3>
|
||||
</div>
|
||||
<ul class="space-y-2 text-gray-700">
|
||||
<li class="flex items-start">
|
||||
<span class="text-green-600 mr-2">▸</span>
|
||||
<span>动力电池:锂电池、固态电池、钠离子电池</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-green-600 mr-2">▸</span>
|
||||
<span>驱动电机:永磁同步、交流异步、轮毂电机</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-green-600 mr-2">▸</span>
|
||||
<span>电控系统:BMS、VCU、MCU、DC/DC转换器</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-green-600 mr-2">▸</span>
|
||||
<span>智能驾驶:激光雷达、毫米波雷达、摄像头、芯片</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mt-4 pt-4 border-t border-green-200">
|
||||
<p class="text-sm text-gray-600">展览面积:15,000平方米 | 预计展商:150家</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 智能交通展区 -->
|
||||
<div class="exhibition-card bg-gradient-to-br from-purple-50 to-purple-100 rounded-xl p-6 animate-fadeInUp animation-delay-600">
|
||||
<div class="relative overflow-hidden rounded-xl mb-4 h-32 bg-gradient-to-r from-purple-400 to-purple-600">
|
||||
<img src="../../data/会展策划/image/Whisk_5c4b912ea7.jpg" alt="智能交通" class="w-full h-full object-cover opacity-60">
|
||||
<div class="absolute inset-0 flex items-center justify-center">
|
||||
<i class="fas fa-network-wired text-5xl text-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-purple-500 to-purple-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-microchip text-xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">智能交通展区</h3>
|
||||
</div>
|
||||
<ul class="space-y-2 text-gray-700">
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">▸</span>
|
||||
<span>智慧路网:智能交通信号、车路协同系统</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">▸</span>
|
||||
<span>V2X通信:5G-V2X设备、路侧单元RSU</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">▸</span>
|
||||
<span>智能停车:自动泊车系统、智慧停车场解决方案</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">▸</span>
|
||||
<span>出行服务:MaaS平台、共享出行、智能调度</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mt-4 pt-4 border-t border-purple-200">
|
||||
<p class="text-sm text-gray-600">展览面积:10,000平方米 | 预计展商:60家</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 配套服务展区 -->
|
||||
<div class="exhibition-card bg-gradient-to-br from-orange-50 to-orange-100 rounded-xl p-6 animate-fadeInUp animation-delay-800">
|
||||
<div class="relative overflow-hidden rounded-xl mb-4 h-32 bg-gradient-to-r from-orange-400 to-orange-600">
|
||||
<img src="../../data/会展策划/image/Whisk_2a9b622636.jpg" alt="配套服务" class="w-full h-full object-cover opacity-60">
|
||||
<div class="absolute inset-0 flex items-center justify-center">
|
||||
<i class="fas fa-charging-station text-5xl text-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-orange-500 to-orange-600 text-white rounded-lg flex items-center justify-center mr-4 shadow-lg">
|
||||
<i class="fas fa-tools text-xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">配套服务展区</h3>
|
||||
</div>
|
||||
<ul class="space-y-2 text-gray-700">
|
||||
<li class="flex items-start">
|
||||
<span class="text-orange-600 mr-2">▸</span>
|
||||
<span>充电设施:充电桩、换电站、无线充电</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-orange-600 mr-2">▸</span>
|
||||
<span>金融服务:汽车金融、保险、融资租赁</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-orange-600 mr-2">▸</span>
|
||||
<span>检测认证:第三方检测、认证机构、标准制定</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-orange-600 mr-2">▸</span>
|
||||
<span>后市场服务:维修保养、二手车、汽车改装</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mt-4 pt-4 border-t border-orange-200">
|
||||
<p class="text-sm text-gray-600">展览面积:5,000平方米 | 预计展商:20家</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Exhibition Schedule -->
|
||||
<section class="py-16 bg-gray-50">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">展会日程</h2>
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<div class="bg-white rounded-2xl shadow-lg overflow-hidden">
|
||||
<div class="bg-gradient-to-r from-purple-600 to-blue-600 text-white p-6">
|
||||
<h3 class="text-2xl font-bold">2024年9月12日 - 15日</h3>
|
||||
<p class="opacity-90">为期4天的行业盛会</p>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<!-- Day 1 -->
|
||||
<div class="mb-6 pb-6 border-b">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-24 text-sm font-bold text-purple-600">第一天</div>
|
||||
<div class="text-lg font-semibold">9月12日(周四)</div>
|
||||
</div>
|
||||
<div class="ml-24 space-y-2">
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">09:00</span>
|
||||
<span>开幕典礼 & 领导致辞</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">10:00</span>
|
||||
<span>主题论坛:新能源汽车产业发展高峰论坛</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">14:00</span>
|
||||
<span>专业观众参观 & 商务洽谈</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">16:00</span>
|
||||
<span>新产品发布会(特斯拉、蔚来等)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Day 2 -->
|
||||
<div class="mb-6 pb-6 border-b">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-24 text-sm font-bold text-green-600">第二天</div>
|
||||
<div class="text-lg font-semibold">9月13日(周五)</div>
|
||||
</div>
|
||||
<div class="ml-24 space-y-2">
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">09:30</span>
|
||||
<span>智能网联汽车技术创新峰会</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">10:30</span>
|
||||
<span>自动驾驶体验区开放</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">14:00</span>
|
||||
<span>充电基础设施建设研讨会</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">15:30</span>
|
||||
<span>供需对接会 & 采购洽谈</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Day 3 -->
|
||||
<div class="mb-6 pb-6 border-b">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-24 text-sm font-bold text-blue-600">第三天</div>
|
||||
<div class="text-lg font-semibold">9月14日(周六)</div>
|
||||
</div>
|
||||
<div class="ml-24 space-y-2">
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">09:00</span>
|
||||
<span>公众开放日 - 市民参观体验</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">10:00</span>
|
||||
<span>新能源汽车试乘试驾活动</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">14:00</span>
|
||||
<span>青少年科技创新大赛</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">16:00</span>
|
||||
<span>绿色出行主题活动</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Day 4 -->
|
||||
<div class="mb-0">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-24 text-sm font-bold text-orange-600">第四天</div>
|
||||
<div class="text-lg font-semibold">9月15日(周日)</div>
|
||||
</div>
|
||||
<div class="ml-24 space-y-2">
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">09:00</span>
|
||||
<span>产业投资论坛</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">11:00</span>
|
||||
<span>项目签约仪式</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">14:00</span>
|
||||
<span>行业白皮书发布</span>
|
||||
</div>
|
||||
<div class="flex items-center text-gray-700">
|
||||
<span class="text-sm w-20">16:00</span>
|
||||
<span>闭幕式 & 成果发布</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Target Participants -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">目标参与者</h2>
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12">
|
||||
<!-- Target Exhibitors -->
|
||||
<div>
|
||||
<h3 class="text-2xl font-bold mb-6 text-purple-600">目标参展商</h3>
|
||||
<div class="space-y-4">
|
||||
<div class="bg-gray-50 rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">整车制造企业(30%)</h4>
|
||||
<p class="text-sm text-gray-600">特斯拉、比亚迪、上汽、蔚来、理想、小鹏、吉利、长城、广汽等</p>
|
||||
</div>
|
||||
<div class="bg-gray-50 rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">核心零部件企业(35%)</h4>
|
||||
<p class="text-sm text-gray-600">宁德时代、比亚迪电池、华为智能汽车、百度Apollo、博世、大陆等</p>
|
||||
</div>
|
||||
<div class="bg-gray-50 rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">科技企业(25%)</h4>
|
||||
<p class="text-sm text-gray-600">阿里巴巴、腾讯、美团、滴滴、科大讯飞、商汤科技等</p>
|
||||
</div>
|
||||
<div class="bg-gray-50 rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">服务企业(10%)</h4>
|
||||
<p class="text-sm text-gray-600">国家电网、特来电、星星充电、平安保险、建设银行等</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Target Audience -->
|
||||
<div>
|
||||
<h3 class="text-2xl font-bold mb-6 text-blue-600">目标观众</h3>
|
||||
<div class="bg-gradient-to-br from-blue-50 to-purple-50 rounded-2xl p-6">
|
||||
<div class="mb-6">
|
||||
<h4 class="font-semibold mb-3">专业观众(70%)</h4>
|
||||
<ul class="space-y-2 text-sm text-gray-700">
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">•</span>
|
||||
汽车制造商采购及技术人员
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">•</span>
|
||||
经销商和4S店负责人
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">•</span>
|
||||
政府部门和行业组织代表
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">•</span>
|
||||
投资机构和行业分析师
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-blue-600 mr-2">•</span>
|
||||
科研院所和高校研究人员
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold mb-3">普通观众(30%)</h4>
|
||||
<ul class="space-y-2 text-sm text-gray-700">
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">•</span>
|
||||
新能源汽车潜在消费者
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">•</span>
|
||||
科技爱好者和车迷
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">•</span>
|
||||
大学生和青少年群体
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<span class="text-purple-600 mr-2">•</span>
|
||||
媒体记者和自媒体博主
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Expected Results -->
|
||||
<section class="py-16 bg-gray-50">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">预期效果</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<div class="bg-white rounded-xl shadow-lg p-6 text-center">
|
||||
<div class="w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-8 h-8 text-green-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M8.433 7.418c.155-.103.346-.196.567-.267v1.698a2.305 2.305 0 01-.567-.267C8.07 8.34 8 8.114 8 8c0-.114.07-.34.433-.582zM11 12.849v-1.698c.22.071.412.164.567.267.364.243.433.468.433.582 0 .114-.07.34-.433.582a2.305 2.305 0 01-.567.267z"/>
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a1 1 0 10-2 0v.092a4.535 4.535 0 00-1.676.662C6.602 6.234 6 7.009 6 8c0 .99.602 1.765 1.324 2.246.48.32 1.054.545 1.676.662v1.941c-.391-.127-.68-.317-.843-.504a1 1 0 10-1.51 1.31c.562.649 1.413 1.076 2.353 1.253V15a1 1 0 102 0v-.092a4.535 4.535 0 001.676-.662C13.398 13.766 14 12.991 14 12c0-.99-.602-1.765-1.324-2.246A4.535 4.535 0 0011 9.092V7.151c.391.127.68.317.843.504a1 1 0 101.511-1.31c-.563-.649-1.413-1.076-2.354-1.253V5z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3">经济效益</h3>
|
||||
<div class="space-y-2 text-gray-600">
|
||||
<p>现场成交额:<span class="font-bold text-green-600">10亿+</span></p>
|
||||
<p>意向订单:<span class="font-bold text-green-600">8亿+</span></p>
|
||||
<p>带动产业收入:<span class="font-bold text-green-600">30亿+</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-xl shadow-lg p-6 text-center">
|
||||
<div class="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-8 h-8 text-blue-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM4.332 8.027a6.012 6.012 0 011.912-2.706C6.512 5.73 6.974 6 7.5 6A1.5 1.5 0 019 7.5V8a2 2 0 004 0 2 2 0 011.523-1.943A5.977 5.977 0 0116 10c0 .34-.028.675-.083 1H15a2 2 0 00-2 2v2.197A5.973 5.973 0 0110 16v-2a2 2 0 00-2-2 2 2 0 01-2-2 2 2 0 00-1.668-1.973z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3">社会效益</h3>
|
||||
<div class="space-y-2 text-gray-600">
|
||||
<p>媒体曝光:<span class="font-bold text-blue-600">1亿+次</span></p>
|
||||
<p>专业论坛:<span class="font-bold text-blue-600">20场</span></p>
|
||||
<p>发布白皮书:<span class="font-bold text-blue-600">2份</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-xl shadow-lg p-6 text-center">
|
||||
<div class="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-8 h-8 text-purple-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3">品牌效益</h3>
|
||||
<div class="space-y-2 text-gray-600">
|
||||
<p>参展商满意度:<span class="font-bold text-purple-600">90%+</span></p>
|
||||
<p>观众回访率:<span class="font-bold text-purple-600">85%+</span></p>
|
||||
<p>行业影响力:<span class="font-bold text-purple-600">TOP 3</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CTA Section -->
|
||||
<section class="py-16 bg-gradient-to-r from-blue-600 to-green-600 text-white">
|
||||
<div class="container mx-auto px-6 text-center">
|
||||
<h2 class="text-3xl font-bold mb-6">加入我们,共创绿色未来</h2>
|
||||
<p class="text-xl mb-8 opacity-90">立即申请参展,抢占优质展位</p>
|
||||
<div class="flex justify-center gap-4">
|
||||
<a href="marketing.html" class="bg-white text-blue-600 px-8 py-3 rounded-lg font-semibold hover:bg-gray-100 transition">
|
||||
了解营销方案 →
|
||||
</a>
|
||||
<a href="operation.html" class="border-2 border-white text-white px-8 py-3 rounded-lg font-semibold hover:bg-white hover:text-blue-600 transition">
|
||||
查看现场运营 →
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="bg-gray-900 text-white py-12">
|
||||
<div class="container mx-auto px-6">
|
||||
<div class="text-center text-sm text-gray-400">
|
||||
<p>© 2024 长三角国际新能源汽车与智能交通产业博览会. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- JavaScript -->
|
||||
<script src="../js/main.js"></script>
|
||||
<script>
|
||||
// 页面加载动画
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// 添加页面进入动画
|
||||
document.body.classList.add('page-enter');
|
||||
|
||||
// 图片懒加载
|
||||
const images = document.querySelectorAll('img');
|
||||
images.forEach(img => {
|
||||
img.addEventListener('load', function() {
|
||||
this.classList.add('image-loaded');
|
||||
});
|
||||
img.addEventListener('error', function() {
|
||||
this.classList.add('image-error');
|
||||
this.src = '../data/会展策划/image/博览会.jpg'; // 备用图片
|
||||
});
|
||||
});
|
||||
|
||||
// 滚动动画触发
|
||||
const observerOptions = {
|
||||
threshold: 0.1,
|
||||
rootMargin: '0px 0px -100px 0px'
|
||||
};
|
||||
|
||||
const observer = new IntersectionObserver(function(entries) {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.style.opacity = '1';
|
||||
entry.target.style.transform = 'translateY(0)';
|
||||
}
|
||||
});
|
||||
}, observerOptions);
|
||||
|
||||
// 观察所有带动画的元素
|
||||
document.querySelectorAll('.animate-fadeInUp, .animate-fadeInLeft, .animate-fadeInRight').forEach(el => {
|
||||
observer.observe(el);
|
||||
});
|
||||
|
||||
// 数字动画
|
||||
function animateNumbers() {
|
||||
const numbers = [
|
||||
{ el: document.querySelector('.economic-number'), target: 10, suffix: '亿+' },
|
||||
{ el: document.querySelector('.social-number'), target: 1, suffix: '亿+次' },
|
||||
{ el: document.querySelector('.brand-number'), target: 90, suffix: '%+' }
|
||||
];
|
||||
|
||||
numbers.forEach(item => {
|
||||
if (item.el) {
|
||||
let current = 0;
|
||||
const increment = item.target / 50;
|
||||
const timer = setInterval(() => {
|
||||
current += increment;
|
||||
if (current >= item.target) {
|
||||
current = item.target;
|
||||
clearInterval(timer);
|
||||
}
|
||||
item.el.textContent = Math.floor(current) + item.suffix;
|
||||
}, 30);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 触发数字动画
|
||||
const resultsSection = document.querySelector('#expected-results');
|
||||
if (resultsSection) {
|
||||
const resultsObserver = new IntersectionObserver(function(entries) {
|
||||
if (entries[0].isIntersecting) {
|
||||
animateNumbers();
|
||||
resultsObserver.disconnect();
|
||||
}
|
||||
});
|
||||
resultsObserver.observe(resultsSection);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,817 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>营销方案 - 2024长三角国际新能源汽车展</title>
|
||||
|
||||
<!-- 样式表 -->
|
||||
<link rel="stylesheet" href="../css/animations.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
|
||||
<!-- 字体 -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Font Awesome 图标 -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
<style>
|
||||
* {
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
/* Glass morphism effect */
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
/* 玻璃态效果 */
|
||||
.glass-card {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
/* 3D翻转卡片 */
|
||||
.flip-card {
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.flip-card-inner {
|
||||
transition: transform 0.6s;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
.flip-card:hover .flip-card-inner {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
.flip-card-front, .flip-card-back {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
|
||||
.flip-card-back {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
.nav-link {
|
||||
position: relative;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
.nav-link::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -2px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: #667eea;
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
.nav-link:hover::after,
|
||||
.nav-link.active::after {
|
||||
width: 100%;
|
||||
}
|
||||
.strategy-card {
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.strategy-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
|
||||
transition: left 0.6s ease;
|
||||
}
|
||||
.strategy-card:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
.strategy-card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 20px 40px rgba(0,0,0,0.15);
|
||||
}
|
||||
.progress-bar {
|
||||
animation: progressFill 2s ease-out forwards;
|
||||
}
|
||||
@keyframes progressFill {
|
||||
from { width: 0%; }
|
||||
}
|
||||
.pulse-dot {
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
@keyframes pulse {
|
||||
0%, 100% { transform: scale(1); opacity: 1; }
|
||||
50% { transform: scale(1.2); opacity: 0.7; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-gray-50">
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="overview.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="marketing.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<button class="md:hidden text-gray-700">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Page Header -->
|
||||
<section class="relative pt-24 pb-16 overflow-hidden" style="background: linear-gradient(135deg, #ec4899 0%, #8b5cf6 100%);">
|
||||
<!-- 背景装饰 -->
|
||||
<div class="absolute inset-0">
|
||||
<div class="absolute top-0 left-0 w-96 h-96 bg-white/10 rounded-full filter blur-3xl animate-pulse"></div>
|
||||
<div class="absolute bottom-0 right-0 w-96 h-96 bg-pink-300/20 rounded-full filter blur-3xl animate-pulse animation-delay-2000"></div>
|
||||
<!-- 背景图片 -->
|
||||
<div class="absolute inset-0 opacity-10" style="background-image: url('../../data/会展策划/image/Whisk_1c05424f7f.jpg'); background-size: cover; background-position: center;"></div>
|
||||
</div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10">
|
||||
<div class="flex items-center text-white/80 mb-4 animate-fadeInUp">
|
||||
<a href="../index.html" class="hover:text-white transition">首页</a>
|
||||
<i class="fas fa-chevron-right mx-2 text-xs"></i>
|
||||
<span>营销方案</span>
|
||||
</div>
|
||||
<h1 class="text-4xl md:text-6xl font-bold text-white mb-4 animate-fadeInUp animation-delay-200">
|
||||
<i class="fas fa-rocket mr-3"></i>
|
||||
营销推广方案
|
||||
</h1>
|
||||
<p class="text-xl text-white/90 animate-fadeInUp animation-delay-400">
|
||||
全方位、多渠道、精准化的营销策略
|
||||
</p>
|
||||
<div class="mt-8 flex flex-wrap gap-4 animate-fadeInUp animation-delay-600">
|
||||
<div class="bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm">
|
||||
<i class="fas fa-users mr-2"></i>目标观众: 10万+
|
||||
</div>
|
||||
<div class="bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm">
|
||||
<i class="fas fa-chart-line mr-2"></i>预期转化: 30%
|
||||
</div>
|
||||
<div class="bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm">
|
||||
<i class="fas fa-globe mr-2"></i>覆盖范围: 全国
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Marketing Strategy Timeline -->
|
||||
<section class="py-16 bg-white relative overflow-hidden">
|
||||
<!-- 背景装饰 -->
|
||||
<div class="absolute inset-0 opacity-5" style="background-image: url('../../data/会展策划/image/Whisk_4aabd94ef3.jpg'); background-size: cover; background-position: center;"></div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12 animate-fadeInUp">
|
||||
<i class="fas fa-calendar-alt mr-2 text-purple-600"></i>
|
||||
整体推广策略
|
||||
</h2>
|
||||
<div class="max-w-5xl mx-auto">
|
||||
<div class="relative">
|
||||
<!-- Timeline Line -->
|
||||
<div class="absolute left-1/2 transform -translate-x-1/2 h-full w-1 bg-gradient-to-b from-purple-600 to-pink-600"></div>
|
||||
|
||||
<!-- Timeline Items -->
|
||||
<div class="space-y-12">
|
||||
<!-- Phase 1 -->
|
||||
<div class="flex items-center">
|
||||
<div class="w-1/2 pr-8 text-right animate-fadeInLeft">
|
||||
<h3 class="text-xl font-bold text-purple-600">
|
||||
<i class="fas fa-fire mr-1"></i>预热期
|
||||
</h3>
|
||||
<p class="text-gray-600 mt-1">展前6个月</p>
|
||||
<div class="mt-3 bg-gradient-to-br from-purple-50 to-purple-100 rounded-lg p-4 text-left glass-card hover:scale-105 transition-transform">
|
||||
<ul class="text-sm text-gray-700 space-y-1">
|
||||
<li><i class="fas fa-check-circle text-purple-500 mr-1"></i> 品牌造势,建立认知</li>
|
||||
<li><i class="fas fa-check-circle text-purple-500 mr-1"></i> 话题营销,引发关注</li>
|
||||
<li><i class="fas fa-check-circle text-purple-500 mr-1"></i> KOL合作,扩大影响</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative flex items-center justify-center">
|
||||
<div class="w-12 h-12 bg-gradient-to-br from-purple-500 to-purple-600 text-white rounded-full flex items-center justify-center z-10 shadow-lg pulse-dot">
|
||||
<i class="fas fa-flag text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-1/2 pl-8"></div>
|
||||
</div>
|
||||
|
||||
<!-- Phase 2 -->
|
||||
<div class="flex items-center">
|
||||
<div class="w-1/2 pr-8"></div>
|
||||
<div class="relative flex items-center justify-center">
|
||||
<div class="w-12 h-12 bg-white border-4 border-pink-600 rounded-full flex items-center justify-center z-10">
|
||||
<span class="text-pink-600 font-bold">2</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-1/2 pl-8">
|
||||
<h3 class="text-xl font-bold text-pink-600">推广期</h3>
|
||||
<p class="text-gray-600 mt-1">展前3个月</p>
|
||||
<div class="mt-3 bg-pink-50 rounded-lg p-4">
|
||||
<ul class="text-sm text-gray-700 space-y-1">
|
||||
<li>• 精准投放,定向推广</li>
|
||||
<li>• 观众组织,团体邀请</li>
|
||||
<li>• 媒体合作,深度报道</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Phase 3 -->
|
||||
<div class="flex items-center">
|
||||
<div class="w-1/2 pr-8 text-right">
|
||||
<h3 class="text-xl font-bold text-blue-600">冲刺期</h3>
|
||||
<p class="text-gray-600 mt-1">展前1个月</p>
|
||||
<div class="mt-3 bg-blue-50 rounded-lg p-4 text-left">
|
||||
<ul class="text-sm text-gray-700 space-y-1">
|
||||
<li>• 密集宣传,全面覆盖</li>
|
||||
<li>• 氛围营造,期待感拉满</li>
|
||||
<li>• 最后召集,确保参与</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative flex items-center justify-center">
|
||||
<div class="w-12 h-12 bg-white border-4 border-blue-600 rounded-full flex items-center justify-center z-10">
|
||||
<span class="text-blue-600 font-bold">3</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-1/2 pl-8"></div>
|
||||
</div>
|
||||
|
||||
<!-- Phase 4 -->
|
||||
<div class="flex items-center">
|
||||
<div class="w-1/2 pr-8"></div>
|
||||
<div class="relative flex items-center justify-center">
|
||||
<div class="w-12 h-12 bg-white border-4 border-green-600 rounded-full flex items-center justify-center z-10">
|
||||
<span class="text-green-600 font-bold">4</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-1/2 pl-8">
|
||||
<h3 class="text-xl font-bold text-green-600">展期</h3>
|
||||
<p class="text-gray-600 mt-1">9月12-15日</p>
|
||||
<div class="mt-3 bg-green-50 rounded-lg p-4">
|
||||
<ul class="text-sm text-gray-700 space-y-1">
|
||||
<li>• 现场互动,实时传播</li>
|
||||
<li>• 媒体报道,扩大影响</li>
|
||||
<li>• 直播分享,线上参与</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Phase 5 -->
|
||||
<div class="flex items-center">
|
||||
<div class="w-1/2 pr-8 text-right">
|
||||
<h3 class="text-xl font-bold text-orange-600">展后</h3>
|
||||
<p class="text-gray-600 mt-1">展后1个月</p>
|
||||
<div class="mt-3 bg-orange-50 rounded-lg p-4 text-left">
|
||||
<ul class="text-sm text-gray-700 space-y-1">
|
||||
<li>• 持续发酵,延长热度</li>
|
||||
<li>• 成果展示,价值传递</li>
|
||||
<li>• 下届预热,维系关系</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative flex items-center justify-center">
|
||||
<div class="w-12 h-12 bg-white border-4 border-orange-600 rounded-full flex items-center justify-center z-10">
|
||||
<span class="text-orange-600 font-bold">5</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-1/2 pl-8"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Online Marketing -->
|
||||
<section class="py-16 bg-gray-50">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">线上推广方案</h2>
|
||||
|
||||
<!-- Digital Channels Grid -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12">
|
||||
<!-- Official Website -->
|
||||
<div class="strategy-card bg-white rounded-xl shadow-lg p-6">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-blue-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM4.332 8.027a6.012 6.012 0 011.912-2.706C6.512 5.73 6.974 6 7.5 6A1.5 1.5 0 019 7.5V8a2 2 0 004 0 2 2 0 011.523-1.943A5.977 5.977 0 0116 10c0 .34-.028.675-.083 1H15a2 2 0 00-2 2v2.197A5.973 5.973 0 0110 16v-2a2 2 0 00-2-2 2 2 0 01-2-2 2 2 0 00-1.668-1.973z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">官方网站</h3>
|
||||
</div>
|
||||
<ul class="space-y-2 text-gray-600 text-sm">
|
||||
<li>✓ 在线注册系统</li>
|
||||
<li>✓ 3D展馆导航</li>
|
||||
<li>✓ VR预览体验</li>
|
||||
<li>✓ 展商数据库</li>
|
||||
<li>✓ 活动预约系统</li>
|
||||
</ul>
|
||||
<div class="mt-4 pt-4 border-t">
|
||||
<div class="flex justify-between text-sm">
|
||||
<span class="text-gray-500">预计访问量</span>
|
||||
<span class="font-bold text-blue-600">100万+</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Social Media -->
|
||||
<div class="strategy-card bg-white rounded-xl shadow-lg p-6">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-green-100 rounded-lg flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-green-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M2 5a2 2 0 012-2h7a2 2 0 012 2v4a2 2 0 01-2 2H9l-3 3v-3H4a2 2 0 01-2-2V5z"/>
|
||||
<path d="M15 7v2a4 4 0 01-4 4H9.828l-1.766 1.767c.28.149.599.233.938.233h2l3 3v-3h2a2 2 0 002-2V9a2 2 0 00-2-2h-1z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">社交媒体</h3>
|
||||
</div>
|
||||
<div class="space-y-3">
|
||||
<div class="bg-gray-50 rounded-lg p-3">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="text-sm font-semibold">微信</span>
|
||||
<span class="text-xs text-gray-500">50万粉丝</span>
|
||||
</div>
|
||||
<div class="text-xs text-gray-600">公众号推送、朋友圈广告</div>
|
||||
</div>
|
||||
<div class="bg-gray-50 rounded-lg p-3">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="text-sm font-semibold">微博</span>
|
||||
<span class="text-xs text-gray-500">30万粉丝</span>
|
||||
</div>
|
||||
<div class="text-xs text-gray-600">#绿色出行看长三角#</div>
|
||||
</div>
|
||||
<div class="bg-gray-50 rounded-lg p-3">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="text-sm font-semibold">抖音/快手</span>
|
||||
<span class="text-xs text-gray-500">80万粉丝</span>
|
||||
</div>
|
||||
<div class="text-xs text-gray-600">短视频、直播互动</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Digital Advertising -->
|
||||
<div class="strategy-card bg-white rounded-xl shadow-lg p-6">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-purple-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M3 3a1 1 0 000 2v8a2 2 0 002 2h2.586l-1.293 1.293a1 1 0 101.414 1.414L10 15.414l2.293 2.293a1 1 0 001.414-1.414L12.414 15H15a2 2 0 002-2V5a1 1 0 100-2H3zm11.707 4.293a1 1 0 00-1.414 1.414L14.586 10l-1.293 1.293a1 1 0 101.414 1.414L16 11.414l1.293 1.293a1 1 0 001.414-1.414L17.414 10l1.293-1.293a1 1 0 00-1.414-1.414L16 8.586l-1.293-1.293z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">数字广告</h3>
|
||||
</div>
|
||||
<div class="space-y-2 text-sm">
|
||||
<div class="flex items-center justify-between py-2 border-b">
|
||||
<span class="text-gray-600">搜索引擎SEM</span>
|
||||
<span class="font-semibold">200万预算</span>
|
||||
</div>
|
||||
<div class="flex items-center justify-between py-2 border-b">
|
||||
<span class="text-gray-600">信息流广告</span>
|
||||
<span class="font-semibold">150万预算</span>
|
||||
</div>
|
||||
<div class="flex items-center justify-between py-2">
|
||||
<span class="text-gray-600">垂直媒体</span>
|
||||
<span class="font-semibold">100万预算</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Email Marketing -->
|
||||
<div class="strategy-card bg-white rounded-xl shadow-lg p-6">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-orange-100 rounded-lg flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-orange-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z"/>
|
||||
<path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">邮件营销</h3>
|
||||
</div>
|
||||
<div class="bg-gradient-to-r from-orange-50 to-yellow-50 rounded-lg p-4">
|
||||
<div class="grid grid-cols-2 gap-4 text-center">
|
||||
<div>
|
||||
<div class="text-2xl font-bold text-orange-600">10万+</div>
|
||||
<div class="text-xs text-gray-600">数据库联系人</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-2xl font-bold text-orange-600">2期/月</div>
|
||||
<div class="text-xs text-gray-600">发送频次</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="mt-4 space-y-1 text-xs text-gray-600">
|
||||
<li>• 展商推介</li>
|
||||
<li>• 活动预告</li>
|
||||
<li>• 行业资讯</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Live Streaming -->
|
||||
<div class="strategy-card bg-white rounded-xl shadow-lg p-6">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-red-100 rounded-lg flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-red-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M2 6a2 2 0 012-2h6a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V6zM14.553 7.106A1 1 0 0014 8v4a1 1 0 00.553.894l2 1A1 1 0 0018 13V7a1 1 0 00-1.447-.894l-2 1z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">直播营销</h3>
|
||||
</div>
|
||||
<div class="space-y-3">
|
||||
<div class="flex items-center">
|
||||
<div class="w-2 h-2 bg-red-600 rounded-full pulse-dot mr-2"></div>
|
||||
<span class="text-sm">展前预热直播:5场</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-2 h-2 bg-red-600 rounded-full pulse-dot mr-2"></div>
|
||||
<span class="text-sm">展期现场直播:全程</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-2 h-2 bg-red-600 rounded-full pulse-dot mr-2"></div>
|
||||
<span class="text-sm">专家访谈:20场</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- KOL Cooperation -->
|
||||
<div class="strategy-card bg-white rounded-xl shadow-lg p-6">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="w-12 h-12 bg-pink-100 rounded-lg flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-pink-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold">KOL合作</h3>
|
||||
</div>
|
||||
<div class="space-y-2">
|
||||
<div class="bg-pink-50 rounded-lg p-2 text-center">
|
||||
<div class="text-lg font-bold text-pink-600">50+</div>
|
||||
<div class="text-xs text-gray-600">汽车领域KOL</div>
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-2 text-xs">
|
||||
<div class="bg-gray-50 rounded p-2 text-center">
|
||||
<div class="font-semibold">探店视频</div>
|
||||
<div class="text-gray-500">30个</div>
|
||||
</div>
|
||||
<div class="bg-gray-50 rounded p-2 text-center">
|
||||
<div class="font-semibold">测评内容</div>
|
||||
<div class="text-gray-500">50篇</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Online Campaign Performance -->
|
||||
<div class="bg-gradient-to-r from-blue-600 to-purple-600 rounded-2xl p-8 text-white">
|
||||
<h3 class="text-2xl font-bold mb-6">线上推广预期效果</h3>
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-6">
|
||||
<div class="text-center">
|
||||
<div class="text-3xl font-bold mb-2">1亿+</div>
|
||||
<div class="text-blue-100">总曝光量</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<div class="text-3xl font-bold mb-2">500万+</div>
|
||||
<div class="text-blue-100">互动量</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<div class="text-3xl font-bold mb-2">10万+</div>
|
||||
<div class="text-blue-100">注册用户</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<div class="text-3xl font-bold mb-2">85%</div>
|
||||
<div class="text-blue-100">转化率</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Offline Marketing -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">线下推广方案</h2>
|
||||
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12">
|
||||
<!-- Traditional Media -->
|
||||
<div>
|
||||
<h3 class="text-2xl font-bold mb-6 text-purple-600">传统媒体投放</h3>
|
||||
<div class="space-y-4">
|
||||
<div class="bg-gray-50 rounded-lg p-5">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-10 h-10 bg-blue-600 text-white rounded-lg flex items-center justify-center mr-3">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">平面媒体</h4>
|
||||
<p class="text-sm text-gray-600">行业杂志、报纸广告</p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="text-sm text-gray-700 space-y-1 ml-13">
|
||||
<li>• 《中国汽车报》整版广告 x 3期</li>
|
||||
<li>• 《汽车之家》杂志封面广告</li>
|
||||
<li>• 《新能源汽车》专题报道</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="bg-gray-50 rounded-lg p-5">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-10 h-10 bg-green-600 text-white rounded-lg flex items-center justify-center mr-3">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M9.383 3.076A1 1 0 0110 4v12a1 1 0 01-1.707.707L4.586 13H2a1 1 0 01-1-1V8a1 1 0 011-1h2.586l3.707-3.707a1 1 0 011.09-.217zM14.657 2.929a1 1 0 011.414 0A9.972 9.972 0 0119 10a9.972 9.972 0 01-2.929 7.071 1 1 0 01-1.414-1.414A7.971 7.971 0 0017 10c0-2.21-.894-4.208-2.343-5.657a1 1 0 010-1.414zm-2.829 2.828a1 1 0 011.415 0A5.983 5.983 0 0115 10a5.984 5.984 0 01-1.757 4.243 1 1 0 01-1.415-1.415A3.984 3.984 0 0013 10a3.983 3.983 0 00-1.172-2.828 1 1 0 010-1.415z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">广播电台</h4>
|
||||
<p class="text-sm text-gray-600">交通广播黄金时段</p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="text-sm text-gray-700 space-y-1 ml-13">
|
||||
<li>• 上海交通广播早晚高峰广告</li>
|
||||
<li>• 专题访谈节目3期</li>
|
||||
<li>• 路况播报植入</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="bg-gray-50 rounded-lg p-5">
|
||||
<div class="flex items-center mb-3">
|
||||
<div class="w-10 h-10 bg-purple-600 text-white rounded-lg flex items-center justify-center mr-3">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M2 6a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 100 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 100-4V6z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-semibold">行业活动</h4>
|
||||
<p class="text-sm text-gray-600">参展推广、论坛宣传</p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="text-sm text-gray-700 space-y-1 ml-13">
|
||||
<li>• 北京车展展位推广</li>
|
||||
<li>• 广州车展路演活动</li>
|
||||
<li>• 行业峰会主题演讲</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Outdoor Advertising -->
|
||||
<div>
|
||||
<h3 class="text-2xl font-bold mb-6 text-blue-600">户外广告投放</h3>
|
||||
<div class="bg-gradient-to-br from-blue-50 to-purple-50 rounded-2xl p-6">
|
||||
<div class="grid grid-cols-2 gap-4 mb-6">
|
||||
<div class="bg-white rounded-lg p-4 text-center">
|
||||
<div class="text-2xl font-bold text-blue-600 mb-1">50块</div>
|
||||
<div class="text-sm text-gray-600">LED大屏广告</div>
|
||||
<div class="text-xs text-gray-500 mt-1">核心商圈覆盖</div>
|
||||
</div>
|
||||
<div class="bg-white rounded-lg p-4 text-center">
|
||||
<div class="text-2xl font-bold text-purple-600 mb-1">200个</div>
|
||||
<div class="text-sm text-gray-600">地铁灯箱</div>
|
||||
<div class="text-xs text-gray-500 mt-1">2/10/17号线</div>
|
||||
</div>
|
||||
<div class="bg-white rounded-lg p-4 text-center">
|
||||
<div class="text-2xl font-bold text-green-600 mb-1">30块</div>
|
||||
<div class="text-sm text-gray-600">高速广告牌</div>
|
||||
<div class="text-xs text-gray-500 mt-1">沪宁、沪杭高速</div>
|
||||
</div>
|
||||
<div class="bg-white rounded-lg p-4 text-center">
|
||||
<div class="text-2xl font-bold text-orange-600 mb-1">100辆</div>
|
||||
<div class="text-sm text-gray-600">公交车身</div>
|
||||
<div class="text-xs text-gray-500 mt-1">主要线路</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-3">投放策略</h4>
|
||||
<div class="space-y-2 text-sm">
|
||||
<div class="flex items-center">
|
||||
<div class="w-4 h-4 bg-blue-600 rounded-full mr-2"></div>
|
||||
<span>展前3个月开始投放</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-4 h-4 bg-purple-600 rounded-full mr-2"></div>
|
||||
<span>重点覆盖长三角核心城市</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-4 h-4 bg-green-600 rounded-full mr-2"></div>
|
||||
<span>高频次、多触点接触</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Precision Invitation -->
|
||||
<section class="py-16 bg-gray-50">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">精准邀请方案</h2>
|
||||
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<!-- Invitation Process -->
|
||||
<div class="bg-white rounded-2xl shadow-lg overflow-hidden mb-8">
|
||||
<div class="bg-gradient-to-r from-green-600 to-teal-600 text-white p-6">
|
||||
<h3 class="text-2xl font-bold">专业观众邀请体系</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||
<div class="text-center">
|
||||
<div class="w-20 h-20 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-10 h-10 text-green-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h4 class="font-semibold mb-2">呼叫中心</h4>
|
||||
<p class="text-sm text-gray-600">20人专业团队</p>
|
||||
<p class="text-xs text-gray-500 mt-1">日均呼叫1000+</p>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<div class="w-20 h-20 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-10 h-10 text-blue-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h4 class="font-semibold mb-2">一对一邀请</h4>
|
||||
<p class="text-sm text-gray-600">VIP客户定制</p>
|
||||
<p class="text-xs text-gray-500 mt-1">500+重点客户</p>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<div class="w-20 h-20 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-10 h-10 text-purple-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h4 class="font-semibold mb-2">团体邀请</h4>
|
||||
<p class="text-sm text-gray-600">协会组织参观</p>
|
||||
<p class="text-xs text-gray-500 mt-1">50+团体</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Buyer Matching Service -->
|
||||
<div class="bg-gradient-to-r from-purple-600 to-pink-600 rounded-2xl p-8 text-white">
|
||||
<h3 class="text-2xl font-bold mb-6">买家匹配服务</h3>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||
<div class="bg-white/10 backdrop-blur rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">会前</h4>
|
||||
<ul class="text-sm space-y-1 opacity-90">
|
||||
<li>• 在线预约系统</li>
|
||||
<li>• AI智能匹配</li>
|
||||
<li>• 需求精准对接</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bg-white/10 backdrop-blur rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">展中</h4>
|
||||
<ul class="text-sm space-y-1 opacity-90">
|
||||
<li>• 商务洽谈区</li>
|
||||
<li>• 专场对接会</li>
|
||||
<li>• 现场撮合服务</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bg-white/10 backdrop-blur rounded-lg p-4">
|
||||
<h4 class="font-semibold mb-2">展后</h4>
|
||||
<ul class="text-sm space-y-1 opacity-90">
|
||||
<li>• 持续跟进</li>
|
||||
<li>• 促成交易</li>
|
||||
<li>• 效果评估</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Marketing Budget -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">营销预算分配</h2>
|
||||
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<div class="bg-gray-50 rounded-2xl p-8">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center">
|
||||
<div class="flex-1">
|
||||
<div class="flex justify-between mb-2">
|
||||
<span class="font-semibold">线上推广</span>
|
||||
<span class="text-purple-600 font-bold">80万</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-4">
|
||||
<div class="bg-purple-600 h-4 rounded-full progress-bar" style="width: 40%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center">
|
||||
<div class="flex-1">
|
||||
<div class="flex justify-between mb-2">
|
||||
<span class="font-semibold">线下推广</span>
|
||||
<span class="text-blue-600 font-bold">60万</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-4">
|
||||
<div class="bg-blue-600 h-4 rounded-full progress-bar" style="width: 30%; animation-delay: 0.2s"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center">
|
||||
<div class="flex-1">
|
||||
<div class="flex justify-between mb-2">
|
||||
<span class="font-semibold">媒体合作</span>
|
||||
<span class="text-green-600 font-bold">40万</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-4">
|
||||
<div class="bg-green-600 h-4 rounded-full progress-bar" style="width: 20%; animation-delay: 0.4s"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center">
|
||||
<div class="flex-1">
|
||||
<div class="flex justify-between mb-2">
|
||||
<span class="font-semibold">精准邀请</span>
|
||||
<span class="text-orange-600 font-bold">20万</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-4">
|
||||
<div class="bg-orange-600 h-4 rounded-full progress-bar" style="width: 10%; animation-delay: 0.6s"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 pt-6 border-t text-center">
|
||||
<div class="text-3xl font-bold text-gray-800">总预算:200万元</div>
|
||||
<div class="text-gray-600 mt-2">预期ROI:500%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CTA Section -->
|
||||
<section class="py-16 bg-gradient-to-r from-pink-600 to-purple-600 text-white">
|
||||
<div class="container mx-auto px-6 text-center">
|
||||
<h2 class="text-3xl font-bold mb-6">全方位营销,确保展会成功</h2>
|
||||
<p class="text-xl mb-8 opacity-90">了解现场运营方案,体验展会精彩</p>
|
||||
<a href="operation.html" class="inline-block bg-white text-purple-600 px-8 py-3 rounded-lg font-semibold hover:bg-gray-100 transition">
|
||||
查看现场运营 →
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="bg-gray-900 text-white py-12">
|
||||
<div class="container mx-auto px-6">
|
||||
<div class="text-center text-sm text-gray-400">
|
||||
<p>© 2024 长三角国际新能源汽车与智能交通产业博览会. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
1417
web_frontend/exhibition-demo/public/web_result/pages/operation.html
Normal file
@@ -0,0 +1,523 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>策划概述 - 2024长三角国际新能源汽车展</title>
|
||||
<link rel="stylesheet" href="../css/styles.css">
|
||||
<link rel="stylesheet" href="../css/animations.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
<style>
|
||||
* {
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
/* Glass morphism effect */
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.timeline-item {
|
||||
position: relative;
|
||||
padding-left: 40px;
|
||||
}
|
||||
.timeline-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 9px;
|
||||
top: 40px;
|
||||
height: calc(100% - 40px);
|
||||
width: 2px;
|
||||
background: linear-gradient(to bottom, #667eea, #a78bfa);
|
||||
}
|
||||
.timeline-item:last-child::before {
|
||||
display: none;
|
||||
}
|
||||
.timeline-dot {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 8px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
background: white;
|
||||
border: 3px solid #667eea;
|
||||
box-shadow: 0 0 0 6px rgba(102, 126, 234, 0.1);
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
@keyframes pulse {
|
||||
0% { box-shadow: 0 0 0 6px rgba(102, 126, 234, 0.1); }
|
||||
50% { box-shadow: 0 0 0 12px rgba(102, 126, 234, 0); }
|
||||
100% { box-shadow: 0 0 0 6px rgba(102, 126, 234, 0.1); }
|
||||
}
|
||||
.gradient-text {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
.stat-card {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.stat-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
right: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
|
||||
animation: rotate 20s linear infinite;
|
||||
}
|
||||
@keyframes rotate {
|
||||
from { transform: rotate(0deg); }
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-gray-50">
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="overview.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<button class="md:hidden text-gray-700">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Page Header -->
|
||||
<section class="relative bg-gradient-to-br from-purple-600 via-indigo-600 to-blue-600 text-white pt-24 pb-16 overflow-hidden">
|
||||
<div class="absolute inset-0">
|
||||
<img src="../../data/会展策划/image/博览会.jpg" alt="博览会背景" class="w-full h-full object-cover opacity-20">
|
||||
<div class="absolute inset-0 bg-gradient-to-b from-transparent to-purple-900/50"></div>
|
||||
</div>
|
||||
<div class="absolute top-20 left-10 w-32 h-32 bg-white/10 rounded-full blur-3xl animate-float"></div>
|
||||
<div class="absolute bottom-10 right-10 w-40 h-40 bg-blue-400/20 rounded-full blur-3xl animate-float animation-delay-2000"></div>
|
||||
|
||||
<div class="container mx-auto px-6 relative z-10">
|
||||
<div class="animate-fadeInUp">
|
||||
<div class="inline-flex items-center px-4 py-2 bg-white/20 backdrop-blur rounded-full mb-6">
|
||||
<span class="animate-pulse w-2 h-2 bg-white rounded-full mr-2"></span>
|
||||
<span class="text-sm font-semibold">全方位展会规划</span>
|
||||
</div>
|
||||
<h1 class="text-5xl md:text-6xl font-bold mb-4">
|
||||
<span class="block">策划概述</span>
|
||||
</h1>
|
||||
<p class="text-xl opacity-90 max-w-3xl">
|
||||
<i class="fas fa-quote-left mr-2"></i>
|
||||
全面了解展会策划背景、目标与核心价值,打造长三角地区最具影响力的新能源汽车产业盛会
|
||||
<i class="fas fa-quote-right ml-2"></i>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Key Stats -->
|
||||
<section class="py-12 -mt-8 relative z-20">
|
||||
<div class="container mx-auto px-6">
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-6">
|
||||
<div class="stat-card text-white p-6 rounded-2xl shadow-2xl animate-fadeInUp animation-delay-200">
|
||||
<div class="relative z-10">
|
||||
<i class="fas fa-industry text-3xl mb-3 opacity-80"></i>
|
||||
<div class="text-3xl font-bold mb-1">3000+</div>
|
||||
<div class="text-sm opacity-90">产业链企业</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stat-card text-white p-6 rounded-2xl shadow-2xl animate-fadeInUp animation-delay-400">
|
||||
<div class="relative z-10">
|
||||
<i class="fas fa-coins text-3xl mb-3 opacity-80"></i>
|
||||
<div class="text-3xl font-bold mb-1">8000亿</div>
|
||||
<div class="text-sm opacity-90">2023年产值</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stat-card text-white p-6 rounded-2xl shadow-2xl animate-fadeInUp animation-delay-600">
|
||||
<div class="relative z-10">
|
||||
<i class="fas fa-car text-3xl mb-3 opacity-80"></i>
|
||||
<div class="text-3xl font-bold mb-1">900万+</div>
|
||||
<div class="text-sm opacity-90">年产销量</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stat-card text-white p-6 rounded-2xl shadow-2xl animate-fadeInUp animation-delay-800">
|
||||
<div class="relative z-10">
|
||||
<i class="fas fa-percentage text-3xl mb-3 opacity-80"></i>
|
||||
<div class="text-3xl font-bold mb-1">40%</div>
|
||||
<div class="text-sm opacity-90">全国占比</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Background Section -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
|
||||
<div class="animate-fadeInLeft">
|
||||
<h2 class="text-3xl font-bold text-gray-800 mb-6">
|
||||
<i class="fas fa-globe-asia mr-3 text-purple-600"></i>策划背景
|
||||
</h2>
|
||||
<div class="space-y-4 text-gray-600">
|
||||
<p>
|
||||
在全球碳中和目标的大背景下,新能源汽车产业正经历前所未有的发展机遇。中国作为全球最大的新能源汽车市场,2023年产销量均突破900万辆,同比增长超过35%。
|
||||
</p>
|
||||
<p>
|
||||
长三角地区作为中国经济最发达、创新能力最强的区域之一,在新能源汽车产业发展中占据举足轻重的地位。该地区聚集了特斯拉、上汽、蔚来、理想、小鹏等众多知名车企,以及宁德时代、华为等核心零部件供应商。
|
||||
</p>
|
||||
<div class="bg-purple-50 border-l-4 border-purple-600 p-4 rounded">
|
||||
<p class="font-semibold mb-2">核心数据:</p>
|
||||
<ul class="space-y-2">
|
||||
<li>• 长三角新能源汽车产量占全国40%以上</li>
|
||||
<li>• 区域内新能源汽车产业链企业超过3000家</li>
|
||||
<li>• 2023年产值突破8000亿元</li>
|
||||
<li>• 智能网联汽车测试里程超过500万公里</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="animate-fadeInRight">
|
||||
<div class="bg-gradient-to-br from-purple-100 to-blue-100 rounded-2xl p-8 relative overflow-hidden">
|
||||
<div class="absolute top-0 right-0 w-32 h-32 bg-purple-200/30 rounded-full blur-2xl"></div>
|
||||
<h3 class="text-2xl font-bold text-gray-800 mb-4 relative z-10">
|
||||
<i class="fas fa-rocket mr-2 text-purple-600"></i>产业发展机遇
|
||||
</h3>
|
||||
<div class="space-y-3 relative z-10">
|
||||
<div class="flex items-start group hover:transform hover:translate-x-2 transition-all duration-300">
|
||||
<div class="w-8 h-8 bg-gradient-to-br from-purple-500 to-purple-700 text-white rounded-full flex items-center justify-center flex-shrink-0 mt-1 group-hover:scale-110 transition-transform">1</div>
|
||||
<div class="ml-3">
|
||||
<h4 class="font-semibold">政策支持力度空前</h4>
|
||||
<p class="text-sm text-gray-600">国家及地方政府出台多项扶持政策,推动产业快速发展</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start group hover:transform hover:translate-x-2 transition-all duration-300">
|
||||
<div class="w-8 h-8 bg-gradient-to-br from-purple-500 to-purple-700 text-white rounded-full flex items-center justify-center flex-shrink-0 mt-1 group-hover:scale-110 transition-transform">2</div>
|
||||
<div class="ml-3">
|
||||
<h4 class="font-semibold">技术创新加速突破</h4>
|
||||
<p class="text-sm text-gray-600">电池技术、自动驾驶、车联网等关键技术不断革新</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start group hover:transform hover:translate-x-2 transition-all duration-300">
|
||||
<div class="w-8 h-8 bg-gradient-to-br from-purple-500 to-purple-700 text-white rounded-full flex items-center justify-center flex-shrink-0 mt-1 group-hover:scale-110 transition-transform">3</div>
|
||||
<div class="ml-3">
|
||||
<h4 class="font-semibold">市场需求持续增长</h4>
|
||||
<p class="text-sm text-gray-600">消费者对新能源汽车接受度不断提高,市场潜力巨大</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start group hover:transform hover:translate-x-2 transition-all duration-300">
|
||||
<div class="w-8 h-8 bg-gradient-to-br from-purple-500 to-purple-700 text-white rounded-full flex items-center justify-center flex-shrink-0 mt-1 group-hover:scale-110 transition-transform">4</div>
|
||||
<div class="ml-3">
|
||||
<h4 class="font-semibold">产业链日趋完善</h4>
|
||||
<p class="text-sm text-gray-600">从研发到制造,从销售到服务,产业生态系统不断成熟</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Objectives Section -->
|
||||
<section class="py-16 bg-gradient-to-br from-gray-50 via-purple-50 to-indigo-50 relative overflow-hidden">
|
||||
<div class="absolute inset-0 opacity-5">
|
||||
<img src="../../data/会展策划/image/展馆布置图.jpeg" alt="展馆布置" class="w-full h-full object-cover">
|
||||
</div>
|
||||
<div class="container mx-auto px-6 relative z-10">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-4 animate-fadeInUp">
|
||||
<i class="fas fa-bullseye mr-3 text-purple-600"></i>策划目标
|
||||
</h2>
|
||||
<p class="text-center text-gray-600 mb-12 animate-fadeInUp animation-delay-200">明确的目标引领,打造专业高效的展会平台</p>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 group animate-fadeInUp animation-delay-300">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-blue-400 to-blue-600 rounded-2xl flex items-center justify-center mb-4 group-hover:rotate-6 transition-transform">
|
||||
<i class="fas fa-award text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2 text-gray-800 group-hover:text-blue-600 transition-colors">品牌建设</h3>
|
||||
<p class="text-gray-600">打造长三角地区新能源汽车与智能交通领域第一展会品牌,成为行业风向标</p>
|
||||
<div class="mt-4 pt-4 border-t">
|
||||
<ul class="text-sm text-gray-500 space-y-1">
|
||||
<li>• 品牌知名度提升50%</li>
|
||||
<li>• 媒体曝光量超1亿次</li>
|
||||
<li>• 行业认可度达90%</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 group animate-fadeInUp animation-delay-400">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-emerald-400 to-green-600 rounded-2xl flex items-center justify-center mb-4 group-hover:rotate-6 transition-transform">
|
||||
<i class="fas fa-chart-line text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2 text-gray-800 group-hover:text-emerald-600 transition-colors">商业价值</h3>
|
||||
<p class="text-gray-600">吸引300家优质展商参展,促进产业链上下游合作,实现商业价值最大化</p>
|
||||
<div class="mt-4 pt-4 border-t">
|
||||
<ul class="text-sm text-gray-500 space-y-1">
|
||||
<li>• 现场成交额超10亿元</li>
|
||||
<li>• 意向订单8亿元</li>
|
||||
<li>• 投资回报率33.3%</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 group animate-fadeInUp animation-delay-500">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-purple-400 to-purple-600 rounded-2xl flex items-center justify-center mb-4 group-hover:rotate-6 transition-transform">
|
||||
<i class="fas fa-users text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2 text-gray-800 group-hover:text-purple-600 transition-colors">行业推动</h3>
|
||||
<p class="text-gray-600">促进技术创新和产业升级,推动新能源汽车产业高质量发展</p>
|
||||
<div class="mt-4 pt-4 border-t">
|
||||
<ul class="text-sm text-gray-500 space-y-1">
|
||||
<li>• 发布行业白皮书2份</li>
|
||||
<li>• 专业论坛20场</li>
|
||||
<li>• 技术成果发布50项</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 group animate-fadeInUp animation-delay-600">
|
||||
<div class="w-16 h-16 bg-gradient-to-br from-orange-400 to-pink-600 rounded-2xl flex items-center justify-center mb-4 group-hover:rotate-6 transition-transform">
|
||||
<i class="fas fa-leaf text-white text-2xl"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-2 text-gray-800 group-hover:text-orange-600 transition-colors">社会责任</h3>
|
||||
<p class="text-gray-600">推广绿色出行理念,助力碳中和目标实现,促进可持续发展</p>
|
||||
<div class="mt-4 pt-4 border-t">
|
||||
<ul class="text-sm text-gray-500 space-y-1">
|
||||
<li>• 碳减排宣传覆盖10万人</li>
|
||||
<li>• 绿色出行体验5万人次</li>
|
||||
<li>• 环保倡议签名3万人</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Policy Support Section -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-6">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">政策依据</h2>
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<div class="space-y-6">
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-dot"></div>
|
||||
<div class="bg-gray-50 rounded-lg p-6">
|
||||
<h3 class="text-xl font-bold mb-2">《新能源汽车产业发展规划(2021-2035年)》</h3>
|
||||
<p class="text-gray-600 mb-3">国务院办公厅发布,明确了新能源汽车产业发展的指导思想、基本原则和发展愿景。</p>
|
||||
<div class="bg-white rounded p-3">
|
||||
<p class="text-sm text-gray-500">
|
||||
<strong>核心目标:</strong>到2025年,新能源汽车新车销售量达到汽车新车销售总量的20%左右;到2035年,纯电动汽车成为新销售车辆的主流。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-dot"></div>
|
||||
<div class="bg-gray-50 rounded-lg p-6">
|
||||
<h3 class="text-xl font-bold mb-2">《上海市加快新能源汽车产业发展实施计划》</h3>
|
||||
<p class="text-gray-600 mb-3">上海市人民政府印发,提出打造国际新能源汽车发展高地的具体措施。</p>
|
||||
<div class="bg-white rounded p-3">
|
||||
<p class="text-sm text-gray-500">
|
||||
<strong>发展目标:</strong>到2025年,上海新能源汽车年产量超过120万辆,产值突破3500亿元,打造3-5家具有国际竞争力的整车企业。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-dot"></div>
|
||||
<div class="bg-gray-50 rounded-lg p-6">
|
||||
<h3 class="text-xl font-bold mb-2">《长三角地区新能源汽车产业链协同发展规划》</h3>
|
||||
<p class="text-gray-600 mb-3">长三角一体化示范区执委会发布,推动区域产业协同发展。</p>
|
||||
<div class="bg-white rounded p-3">
|
||||
<p class="text-sm text-gray-500">
|
||||
<strong>协同重点:</strong>建立跨区域产业协作机制,共建新能源汽车产业创新平台,推动充电基础设施互联互通。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-dot"></div>
|
||||
<div class="bg-gray-50 rounded-lg p-6">
|
||||
<h3 class="text-xl font-bold mb-2">《智能网联汽车道路测试与示范应用管理规范》</h3>
|
||||
<p class="text-gray-600 mb-3">工业和信息化部、公安部、交通运输部联合发布,规范智能网联汽车测试与应用。</p>
|
||||
<div class="bg-white rounded p-3">
|
||||
<p class="text-sm text-gray-500">
|
||||
<strong>示范应用:</strong>在长三角地区建设5个国家级智能网联汽车测试示范区,累计开放测试道路超过1000公里。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Market Analysis -->
|
||||
<section class="py-16 bg-gradient-to-br from-gray-50 to-white relative overflow-hidden">
|
||||
<div class="absolute top-0 right-0 w-96 h-96 bg-purple-200/20 rounded-full blur-3xl"></div>
|
||||
<div class="absolute bottom-0 left-0 w-96 h-96 bg-blue-200/20 rounded-full blur-3xl"></div>
|
||||
<div class="container mx-auto px-6 relative z-10">
|
||||
<h2 class="text-3xl font-bold text-center text-gray-800 mb-4 animate-fadeInUp">
|
||||
<i class="fas fa-chart-bar mr-3 text-purple-600"></i>市场分析
|
||||
</h2>
|
||||
<p class="text-center text-gray-600 mb-12 animate-fadeInUp animation-delay-200">深入洞察产业发展趋势,精准把握市场机遇</p>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 animate-fadeInUp animation-delay-300">
|
||||
<h3 class="text-xl font-bold mb-4 text-purple-600">
|
||||
<i class="fas fa-expand-arrows-alt mr-2"></i>市场规模
|
||||
</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex justify-between items-center py-2 border-b">
|
||||
<span class="text-gray-600">2023年销量</span>
|
||||
<span class="font-bold">949.5万辆</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center py-2 border-b">
|
||||
<span class="text-gray-600">同比增长</span>
|
||||
<span class="font-bold text-green-600">+37.9%</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center py-2 border-b">
|
||||
<span class="text-gray-600">市场渗透率</span>
|
||||
<span class="font-bold">31.6%</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center py-2">
|
||||
<span class="text-gray-600">2025年预测</span>
|
||||
<span class="font-bold">1500万辆</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 animate-fadeInUp animation-delay-400">
|
||||
<h3 class="text-xl font-bold mb-4 text-indigo-600">
|
||||
<i class="fas fa-sitemap mr-2"></i>产业链分布
|
||||
</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex items-center">
|
||||
<div class="w-24 text-sm text-gray-600">整车制造</div>
|
||||
<div class="flex-1 bg-gray-200 rounded-full h-4 ml-3">
|
||||
<div class="bg-purple-600 h-4 rounded-full" style="width: 85%"></div>
|
||||
</div>
|
||||
<span class="ml-2 text-sm font-bold">85家</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-24 text-sm text-gray-600">电池电机</div>
|
||||
<div class="flex-1 bg-gray-200 rounded-full h-4 ml-3">
|
||||
<div class="bg-purple-600 h-4 rounded-full" style="width: 70%"></div>
|
||||
</div>
|
||||
<span class="ml-2 text-sm font-bold">156家</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-24 text-sm text-gray-600">智能网联</div>
|
||||
<div class="flex-1 bg-gray-200 rounded-full h-4 ml-3">
|
||||
<div class="bg-purple-600 h-4 rounded-full" style="width: 60%"></div>
|
||||
</div>
|
||||
<span class="ml-2 text-sm font-bold">234家</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="w-24 text-sm text-gray-600">充电设施</div>
|
||||
<div class="flex-1 bg-gray-200 rounded-full h-4 ml-3">
|
||||
<div class="bg-purple-600 h-4 rounded-full" style="width: 50%"></div>
|
||||
</div>
|
||||
<span class="ml-2 text-sm font-bold">189家</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white/90 backdrop-blur rounded-xl shadow-xl p-6 hover:shadow-2xl hover:-translate-y-2 transition-all duration-300 animate-fadeInUp animation-delay-500">
|
||||
<h3 class="text-xl font-bold mb-4 text-emerald-600">
|
||||
<i class="fas fa-poll mr-2"></i>展会需求调研
|
||||
</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="bg-green-50 rounded-lg p-3">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="text-sm text-gray-600">有参展意向</span>
|
||||
<span class="font-bold text-green-600">89%</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-2">
|
||||
<div class="bg-green-600 h-2 rounded-full" style="width: 89%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-blue-50 rounded-lg p-3">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="text-sm text-gray-600">需要B2B对接</span>
|
||||
<span class="font-bold text-blue-600">76%</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-2">
|
||||
<div class="bg-blue-600 h-2 rounded-full" style="width: 76%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-purple-50 rounded-lg p-3">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="text-sm text-gray-600">关注技术交流</span>
|
||||
<span class="font-bold text-purple-600">82%</span>
|
||||
</div>
|
||||
<div class="bg-gray-200 rounded-full h-2">
|
||||
<div class="bg-purple-600 h-2 rounded-full" style="width: 82%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CTA Section -->
|
||||
<section class="py-16 bg-gradient-to-r from-purple-600 to-blue-600 text-white">
|
||||
<div class="container mx-auto px-6 text-center">
|
||||
<h2 class="text-3xl font-bold mb-6">了解更多展会详情</h2>
|
||||
<p class="text-xl mb-8 opacity-90">深入了解展会规划、参展范围和预期效果</p>
|
||||
<a href="exhibition.html" class="inline-block bg-white text-purple-600 px-8 py-3 rounded-lg font-semibold hover:bg-gray-100 transition">
|
||||
查看展会介绍 →
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="bg-gray-900 text-white py-12">
|
||||
<div class="container mx-auto px-6">
|
||||
<div class="text-center text-sm text-gray-400">
|
||||
<p>© 2024 长三角国际新能源汽车与智能交通产业博览会. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
1076
web_frontend/exhibition-demo/public/web_result/pages/risk.html
Normal file
@@ -140,21 +140,13 @@ const ResultModal: React.FC<ResultModalProps> = ({ isOpen, onClose, onViewDetail
|
||||
</div>
|
||||
|
||||
{/* 操作按钮 */}
|
||||
<div className="flex gap-3">
|
||||
<a
|
||||
href="../../web_result/index.html"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex-1 px-6 py-3 bg-gradient-to-r from-blue-600 to-purple-600 text-white rounded-xl font-medium hover:shadow-lg transform hover:scale-105 transition-all flex items-center justify-center gap-2"
|
||||
<div className="flex justify-center">
|
||||
<button
|
||||
onClick={() => window.open('http://localhost:4155', '_blank')}
|
||||
className="px-8 py-3 bg-gradient-to-r from-blue-600 to-purple-600 text-white rounded-xl font-medium hover:shadow-lg transform hover:scale-105 transition-all flex items-center justify-center gap-2"
|
||||
>
|
||||
<Eye className="w-5 h-5" />
|
||||
查看详细方案
|
||||
</a>
|
||||
<button
|
||||
className="flex-1 px-6 py-3 bg-gray-100 text-gray-700 rounded-xl font-medium hover:bg-gray-200 transition-colors flex items-center justify-center gap-2"
|
||||
>
|
||||
<Download className="w-5 h-5" />
|
||||
下载PDF
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,8 +8,25 @@ interface LandingPageProps {
|
||||
|
||||
const LandingPage: React.FC<LandingPageProps> = ({ onStart }) => {
|
||||
return (
|
||||
<div className="min-h-screen flex items-center justify-center p-8">
|
||||
<div className="max-w-4xl w-full">
|
||||
<div className="min-h-screen flex items-center justify-center p-8 relative">
|
||||
{/* 背景图片和蒙版 */}
|
||||
<div className="absolute inset-0 z-0">
|
||||
<div
|
||||
className="absolute inset-0"
|
||||
style={{
|
||||
backgroundImage: 'url(/images/博览会.jpg)',
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
backgroundRepeat: 'no-repeat',
|
||||
opacity: 0.08
|
||||
}}
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-br from-gray-900/50 via-purple-900/30 to-blue-900/40" />
|
||||
<div className="absolute inset-0 backdrop-blur-sm" />
|
||||
</div>
|
||||
|
||||
{/* 主内容 */}
|
||||
<div className="max-w-4xl w-full relative z-10">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
@@ -33,7 +50,7 @@ const LandingPage: React.FC<LandingPageProps> = ({ onStart }) => {
|
||||
transition={{ delay: 0.4 }}
|
||||
>
|
||||
<h1 className="text-6xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent">
|
||||
AI 会展策划系统
|
||||
DuoDuo Agent
|
||||
</h1>
|
||||
<p className="mt-4 text-xl text-neutral-600 dark:text-neutral-400">
|
||||
多Agent协同 · 智能生成 · 专业方案
|
||||
|
||||
@@ -14,6 +14,8 @@ interface TerminalLine {
|
||||
progress?: number;
|
||||
}
|
||||
|
||||
type TerminalLineType = TerminalLine['type'];
|
||||
|
||||
// 生成随机延迟
|
||||
const getRandomDelay = (min: number, max: number) => {
|
||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
@@ -34,7 +36,6 @@ const WorkflowPageV3 = () => {
|
||||
const [isExecuting, setIsExecuting] = useState(false);
|
||||
const terminalRef = useRef<HTMLDivElement>(null);
|
||||
const intervalRef = useRef<number | null>(null);
|
||||
const executionTimeoutRef = useRef<number | null>(null);
|
||||
|
||||
// 启动序列
|
||||
const startupSequence = [
|
||||
@@ -58,7 +59,10 @@ const WorkflowPageV3 = () => {
|
||||
];
|
||||
|
||||
// Agent执行序列 - 更丰富的输出
|
||||
const agentSequence = [
|
||||
const agentSequence: Array<{
|
||||
agent: typeof agents[0];
|
||||
outputs: Array<{ type: TerminalLineType; content: string; progress?: number }>
|
||||
}> = [
|
||||
{
|
||||
agent: agents[0], // 信息检索
|
||||
outputs: [
|
||||
@@ -329,7 +333,7 @@ const WorkflowPageV3 = () => {
|
||||
|
||||
setTerminalLines(prev => [...prev, {
|
||||
...line,
|
||||
id: Math.random().toString(36).substr(2, 9),
|
||||
id: Math.random().toString(36).substring(2, 11),
|
||||
timestamp
|
||||
}]);
|
||||
|
||||
@@ -561,7 +565,7 @@ const WorkflowPageV3 = () => {
|
||||
maxHeight: 'calc(100vh - 200px)'
|
||||
}}
|
||||
>
|
||||
<style jsx>{`
|
||||
<style>{`
|
||||
.custom-scrollbar::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
@@ -767,11 +767,28 @@ const WorkflowPageV4 = () => {
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="h-screen bg-gray-50 flex flex-col">
|
||||
<div className="h-screen bg-gray-50 flex flex-col relative">
|
||||
{/* 背景图片和蒙版 */}
|
||||
<div className="absolute inset-0 z-0">
|
||||
<div
|
||||
className="absolute inset-0"
|
||||
style={{
|
||||
backgroundImage: 'url(/images/Whisk_e8f83d1a37.jpg)',
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
backgroundRepeat: 'no-repeat',
|
||||
opacity: 0.15
|
||||
}}
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-br from-gray-900/30 via-purple-900/20 to-blue-900/30" />
|
||||
</div>
|
||||
|
||||
{/* 主内容容器 */}
|
||||
<div className="relative z-10 h-full flex flex-col">
|
||||
{/* 顶部控制栏 */}
|
||||
<div className="bg-white border-b border-gray-200 px-6 py-3 flex items-center justify-between">
|
||||
<div className="flex items-center gap-4">
|
||||
<h1 className="text-lg font-semibold text-gray-900">AI会展策划系统 - 多Agent协同演示</h1>
|
||||
<h1 className="text-lg font-semibold text-gray-900">DuoDuo Agent - 多智能体协同生成·专业方案</h1>
|
||||
<div className="flex items-center gap-2">
|
||||
<button
|
||||
onClick={status === 'idle' ? () => setShowRequirementModal(true) : pauseDemo}
|
||||
@@ -809,9 +826,9 @@ const WorkflowPageV4 = () => {
|
||||
</div>
|
||||
|
||||
{/* 主内容区 */}
|
||||
<div className="flex-1 flex overflow-hidden">
|
||||
<div className="flex-1 flex overflow-hidden backdrop-blur-sm">
|
||||
{/* 左侧:n8n工作流 */}
|
||||
<div className="w-1/2 border-r border-gray-200 bg-white flex flex-col">
|
||||
<div className="w-1/2 border-r border-gray-200 bg-white/95 backdrop-blur-md flex flex-col">
|
||||
<div className="px-4 py-2 border-b border-gray-200 flex items-center justify-between bg-gray-50">
|
||||
<div className="flex items-center gap-2">
|
||||
<div className="w-3 h-3 rounded-full bg-green-500"></div>
|
||||
@@ -1026,6 +1043,7 @@ const WorkflowPageV4 = () => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 弹窗组件 */}
|
||||
<RequirementModal
|
||||
|
||||
39
web_frontend/web_result/data/Agent_prompt/会展策划专家.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Role: 经验丰富且富有创意的会展设计师
|
||||
|
||||
## Profile
|
||||
- author: LangGPT
|
||||
- version: 1.0
|
||||
- language: 中文
|
||||
- description: 你是一位经验老道、创意新颖的会展设计师,擅长展会的整体策划,包括选址、展陈设计、预算编制、活动日期安排、营销宣传等。
|
||||
|
||||
## Skills
|
||||
1. 能快速理解并吸收外部资料与内容,整合成为实操性的策划要点。
|
||||
2. 擅长将抽象主题具体化,策划方案具有逻辑清晰、创意突出、实用可行的特点。
|
||||
3. 熟练掌握会展项目全过程,从前期调研、设计策划,到中期执行与后期评估。
|
||||
4. 能使用专业术语和严谨的结构表达完整策划内容。
|
||||
|
||||
## Background
|
||||
用户提供了三个节点文档:{{ $('When chat message received').item.json.chatInput }}代表整个会展的主题,{{ $json.text }}包含会展主题相关的资料和参考信息,{{ $json.text }}定义了文章的结构和写作范式。你的任务是理解这两个节点,并结合自身专业知识输出一份完整的策划书。
|
||||
|
||||
## Goals
|
||||
- 全文必须按照{{ $('When chat message received').item.json.chatInput }}的主题
|
||||
- 阅读并充分理解{{ $json.text }}中提供的信息和资料;
|
||||
- 遵循{{ $json.text }}所规定的文章结构与格式;
|
||||
- 撰写一份主题吸引人、语言专业、结构合理的会展策划方案书;
|
||||
- 策划书内容必须涵盖选址(中国长三角地区)、展陈设计、预算、时间安排、宣传推广等环节;
|
||||
- 正文长度不少于3000字。
|
||||
|
||||
## Rules
|
||||
1. 必须严格参考{{ $json.text }}内容进行创作,体现理解与重构能力;
|
||||
2. 主题需吸引眼球,具有创意性;
|
||||
3. 逻辑严密,段落结构清晰;
|
||||
4. 专业术语准确,语句通顺;
|
||||
5. 不允许出现“AI生成”、“我是AI”等措辞;
|
||||
6. 最终输出不得少于3000字。
|
||||
|
||||
## Workflows
|
||||
1. 阅读并吸收{{ $json.text }}内容,提炼核心信息;
|
||||
2. 确认所{{ $json.text }}规定的写作框架;
|
||||
3. 围绕会展策划关键点进行内容创作;
|
||||
4. 审核文字逻辑、术语准确性与字数;
|
||||
5. 以Json格式输出完整的策划方案书文本。
|
||||
36
web_frontend/web_result/data/Agent_prompt/信息检索专家.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Role: 会展行业信息检索专家
|
||||
|
||||
## Profile
|
||||
- author: LangGPT
|
||||
- version: 1.0
|
||||
- language: 中文
|
||||
- description: 你是一位精通信息搜索与报告撰写的专家,特别擅长会展行业的内容收集与趋势分析。
|
||||
|
||||
## Skills
|
||||
1. 能够高效检索抖音、小红书等内容平台上的行业信息;
|
||||
2. 熟悉热门新闻网站的会展相关资讯收集;
|
||||
3. 具备分析行业报告(2023~2025年)的能力;
|
||||
4. 能够撰写结构清晰、逻辑严密的行业调研报告;
|
||||
5. 输出格式符合 JSON 结构要求。
|
||||
|
||||
## Goals
|
||||
- 基于给定主题,全面检索多平台信息并进行深度分析;
|
||||
- 撰写一份约2000字的会展行业调研报告;
|
||||
- 报告结构需包含指定的章节标题;
|
||||
- 输出内容格式必须为合法的 JSON 格式。
|
||||
|
||||
## OutputFormat
|
||||
请以如下 JSON 格式输出调研报告:
|
||||
|
||||
```json
|
||||
{
|
||||
"标题": "请填写调研报告标题",
|
||||
"报告摘要": "摘要内容,控制在200字以内",
|
||||
"背景介绍": "详细背景内容",
|
||||
"市场环境分析": "市场现状、趋势、竞争分析等",
|
||||
"客户群体分析": "客户画像、行为习惯、兴趣点等",
|
||||
"招商群体分析": "潜在招商对象特征、合作模式等",
|
||||
"热门布展地点": "地点名称、特点、案例等",
|
||||
"常见预算方案": "不同预算规模下的典型方案",
|
||||
"本片内容总结": "总结全文要点"
|
||||
}
|
||||
259
web_frontend/web_result/data/Agent_prompt/格式编辑专家.md
Normal file
@@ -0,0 +1,259 @@
|
||||
# 展会活动策划书格式规范
|
||||
|
||||
## 📋 文档说明
|
||||
本文档为展会活动策划书的标准格式模板,旨在帮助Claude AI更好地理解和执行展会策划相关任务。
|
||||
|
||||
---
|
||||
|
||||
## 一、策划案概述
|
||||
|
||||
### 1.1 封面要素
|
||||
- **展会名称**:活动的正式名称
|
||||
- **策划案名称**:本策划文档的标题
|
||||
- **策划单位/人**:负责策划的组织或个人
|
||||
- **日期**:策划案完成日期
|
||||
|
||||
### 1.2 目录
|
||||
> 列出策划案各部分标题及对应页码,便于快速导航
|
||||
|
||||
### 1.3 策划背景
|
||||
**内容要求**:
|
||||
- 简述展会举办的行业背景
|
||||
- 分析市场机遇
|
||||
- 阐明举办必要性
|
||||
- *参考引用:[1, 6]*
|
||||
|
||||
### 1.4 策划目的
|
||||
**内容要求**:
|
||||
- 明确展会举办期望达成的总体目标
|
||||
- 列出具体的目标指标
|
||||
- *参考引用:[2]*
|
||||
|
||||
### 1.5 策划依据
|
||||
**内容要求**:
|
||||
- 市场调研数据
|
||||
- 政策支持文件
|
||||
- 往届经验总结
|
||||
- 行业发展趋势
|
||||
|
||||
---
|
||||
|
||||
## 二、展会介绍与预期效果
|
||||
|
||||
### 2.1 展会主题
|
||||
**内容要求**:
|
||||
- 核心主题陈述
|
||||
- 展会口号/标语
|
||||
- *参考引用:[3]*
|
||||
|
||||
### 2.2 展会地址
|
||||
**必填信息**:
|
||||
- 展馆名称
|
||||
- 具体地址
|
||||
- 交通指引
|
||||
|
||||
### 2.3 展品范围
|
||||
**内容要求**:
|
||||
- 详细列出展会展示的主要产品类别
|
||||
- 明确各展区领域划分
|
||||
- *参考引用:[1]*
|
||||
|
||||
### 2.4 举办时间
|
||||
**时间安排**:
|
||||
- 展会具体日期
|
||||
- 每日开放时间
|
||||
- 布展/撤展时间
|
||||
|
||||
### 2.5 办展机构
|
||||
|
||||
#### 组织架构
|
||||
| 机构类型 | 单位名称 | 参考引用 |
|
||||
|---------|---------|----------|
|
||||
| **主办单位** | [待填写] | [1] |
|
||||
| **承办单位** | [待填写] | [1] |
|
||||
| **协办单位** | [待填写] | - |
|
||||
| **支持单位** | [待填写] | - |
|
||||
|
||||
### 2.6 目标参展商
|
||||
**画像描述**:
|
||||
- 企业类型
|
||||
- 行业领域
|
||||
- 企业规模
|
||||
- 地域分布
|
||||
- *参考引用:[1]*
|
||||
|
||||
### 2.7 目标观众
|
||||
**观众分类**:
|
||||
- 专业观众特征
|
||||
- 采购商画像
|
||||
- 公众观众群体
|
||||
- *参考引用:[1]*
|
||||
|
||||
### 2.8 预计规模
|
||||
|
||||
#### 规模指标
|
||||
| 指标项目 | 预计数值 | 参考引用 |
|
||||
|---------|---------|----------|
|
||||
| **展览面积** | [待填写] | [7] |
|
||||
| **标准展位数量** | [待填写] | [7] |
|
||||
| **特装展位面积** | [待填写] | - |
|
||||
| **预计参展商家数** | [待填写] | [7] |
|
||||
| **预计参观人次** | [待填写] | [3, 7] |
|
||||
|
||||
### 2.9 展会定位
|
||||
**定位说明**:
|
||||
- 行业差异化定位
|
||||
- 展会特色亮点
|
||||
- 核心竞争优势
|
||||
- *参考引用:[6]*
|
||||
|
||||
### 2.10 预期效果
|
||||
|
||||
#### 效果评估维度
|
||||
1. **品牌影响力**
|
||||
- 品牌知名度提升目标
|
||||
- 行业地位巩固
|
||||
|
||||
2. **交易促成**
|
||||
- 现场成交额目标
|
||||
- 意向签约额预期
|
||||
- *参考引用:[7]*
|
||||
|
||||
3. **行业推动**
|
||||
- 对产业发展的贡献
|
||||
- 技术交流成果
|
||||
|
||||
4. **其他效益**
|
||||
- 媒体曝光度
|
||||
- 社会关注度
|
||||
- 政府关系改善
|
||||
|
||||
---
|
||||
|
||||
## 三、营销方案
|
||||
|
||||
### 3.1 整体推广策略
|
||||
> 概述营销推广的核心思路与策略组合,包括时间节点、资源配置、预算分配等
|
||||
|
||||
### 3.2 线下推广方案
|
||||
|
||||
#### 3.2.1 传统媒体广告
|
||||
- **行业杂志**:选择目标行业核心期刊
|
||||
- **报纸广告**:主流财经、行业报纸
|
||||
- **广播电视**:商业频道、行业节目
|
||||
- *参考引用:[2]*
|
||||
|
||||
#### 3.2.2 直邮与邀请函
|
||||
- **目标数据库**:精准客户名单
|
||||
- **邮寄材料**:邀请函、展会资料
|
||||
- **跟进机制**:电话确认、二次邀约
|
||||
- *参考引用:[1]*
|
||||
|
||||
#### 3.2.3 户外广告
|
||||
- **地铁广告**:重点线路、站点
|
||||
- **公交广告**:商务区域线路
|
||||
- **广告牌**:展馆周边、商业中心
|
||||
|
||||
#### 3.2.4 行业活动推广
|
||||
- **相关展会**:同期或前期展会
|
||||
- **行业会议**:峰会、论坛推广
|
||||
- **路演活动**:重点城市巡回
|
||||
|
||||
#### 3.2.5 渠道合作
|
||||
- **行业协会**:会员推荐、团体组织
|
||||
- **商会合作**:企业资源对接
|
||||
- **使馆商务处**:国际展商邀请
|
||||
|
||||
#### 3.2.6 新闻发布会
|
||||
- **发布时机**:展前关键节点
|
||||
- **亮点内容**:重大签约、新品发布
|
||||
- **媒体邀请**:主流媒体、行业媒体
|
||||
- *参考引用:[3]*
|
||||
|
||||
### 3.3 线上推广方案
|
||||
|
||||
#### 3.3.1 官网与微站
|
||||
**功能建设**:
|
||||
- 信息发布平台
|
||||
- 在线注册系统
|
||||
- 展商展品数据库
|
||||
- 移动端适配
|
||||
- *参考引用:[2]*
|
||||
|
||||
#### 3.3.2 社交媒体营销
|
||||
|
||||
##### 平台策略
|
||||
| 平台 | 推广策略 | 内容形式 |
|
||||
|------|---------|----------|
|
||||
| **微信** | 公众号运营、朋友圈广告 | 图文、视频号 |
|
||||
| **微博** | 话题营销、KOL合作 | 热搜、直播 |
|
||||
| **抖音** | 短视频种草、挑战赛 | 创意视频 |
|
||||
| **LinkedIn** | B2B精准营销 | 行业分享 |
|
||||
|
||||
*参考引用:[8]*
|
||||
|
||||
#### 3.3.3 搜索引擎营销
|
||||
- **SEM竞价**:关键词投放策略
|
||||
- **SEO优化**:网站内容优化
|
||||
- **品牌专区**:搜索结果页定制
|
||||
- *参考引用:[2]*
|
||||
|
||||
#### 3.3.4 电子邮件营销(EDM)
|
||||
- **数据库管理**:客户分类、标签化
|
||||
- **内容策划**:展会资讯、优惠信息
|
||||
- **发送策略**:频次控制、A/B测试
|
||||
- *参考引用:[2]*
|
||||
|
||||
#### 3.3.5 线上直播与短视频
|
||||
- **直播预告**:展前预热直播
|
||||
- **现场直击**:展会实时报道
|
||||
- **短视频营销**:亮点集锦、花絮
|
||||
- *参考引用:[8]*
|
||||
|
||||
#### 3.3.6 合作伙伴联动
|
||||
- **行业网站**:内容合作、广告投放
|
||||
- **流量平台**:精准引流、数据交换
|
||||
- **媒体矩阵**:多渠道协同推广
|
||||
- *参考引用:[2]*
|
||||
|
||||
### 3.4 精准邀请与对接
|
||||
|
||||
#### 3.4.1 专业买家邀请
|
||||
**邀请体系**:
|
||||
- 数据库筛选:历史客户、潜在买家
|
||||
- 呼叫中心:专业团队电话邀约
|
||||
- 合作机构:协会推荐、团体组织
|
||||
- VIP服务:重点客户特殊接待
|
||||
- *参考引用:[1]*
|
||||
|
||||
#### 3.4.2 供需匹配服务
|
||||
**服务内容**:
|
||||
- 线上预约系统:提前安排洽谈
|
||||
- 智能匹配算法:精准对接需求
|
||||
- 现场撮合服务:专人协助对接
|
||||
- 后续跟踪:展后持续服务
|
||||
- *参考引用:[3]*
|
||||
|
||||
---
|
||||
|
||||
## 📌 使用说明
|
||||
|
||||
### 执行要点
|
||||
1. **结构化思维**:按照上述框架系统性地规划展会
|
||||
2. **数据支撑**:所有预期效果需有数据依据
|
||||
3. **可执行性**:方案需具体、可落地、可评估
|
||||
4. **迭代优化**:根据实际情况动态调整策略
|
||||
|
||||
### 参考引用说明
|
||||
- [1] - [8] 为参考资料索引编号
|
||||
- 实际使用时需替换为具体的参考来源
|
||||
|
||||
### 输出格式建议
|
||||
- 使用清晰的标题层级
|
||||
- 重要数据使用表格展示
|
||||
- 关键信息使用加粗或引用格式
|
||||
- 保持格式统一性和专业性
|
||||
|
||||
---
|
||||
|
||||
*本文档为展会策划标准模板,请根据实际项目需求进行调整和完善。*
|
||||
50
web_frontend/web_result/data/Agent_prompt/活动执行专家.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Role: 会展执行专家
|
||||
|
||||
## Profile
|
||||
- author: LangGPT
|
||||
- version: 1.0
|
||||
- language: 中文
|
||||
- description: 你是一位经验丰富的会展执行专家,擅长制定展会全流程的执行计划,包括关键节点时间表、人员安排、任务分工及资源调度,确保所有事项在截止日期前高效完成。
|
||||
|
||||
## Skills
|
||||
1. 精通会展项目的时间节点控制与执行节奏规划;
|
||||
2. 擅长制定详细的时间进度表(Gantt图逻辑);
|
||||
3. 能清晰分配人员职责、任务优先级和资源配比;
|
||||
4. 熟悉从布展、搭建、演出、撤展等各阶段事项安排;
|
||||
5. 能输出结构化的任务安排表(JSON 或 Markdown 表格格式);
|
||||
|
||||
## Goals
|
||||
- 接收展会主题与截止时间后,自动生成可执行的任务排期表;
|
||||
- 每项任务需指定开始/结束时间、负责人、协作人、优先级等;
|
||||
- 输出结果支持项目管理使用,可便于导入工具如Excel、Notion、甘特图平台;
|
||||
|
||||
## OutputFormat
|
||||
|
||||
### 格式一:JSON格式(推荐结构化场景)
|
||||
|
||||
```json
|
||||
{
|
||||
"展会名称": "2025科技创新博览会",
|
||||
"执行周期": "2025年3月1日 - 2025年3月15日",
|
||||
"任务安排表": [
|
||||
{
|
||||
"任务名称": "展台搭建方案设计",
|
||||
"开始时间": "2025-03-01",
|
||||
"结束时间": "2025-03-03",
|
||||
"负责人": "王明",
|
||||
"协作人": ["设计部", "品牌方"],
|
||||
"优先级": "高",
|
||||
"备注": "设计需包含动线规划与物料明细"
|
||||
},
|
||||
{
|
||||
"任务名称": "物料采购与准备",
|
||||
"开始时间": "2025-03-04",
|
||||
"结束时间": "2025-03-06",
|
||||
"负责人": "李倩",
|
||||
"协作人": ["供应链", "仓储"],
|
||||
"优先级": "中",
|
||||
"备注": "提前确认供应商报价"
|
||||
}
|
||||
// 更多任务...
|
||||
]
|
||||
}
|
||||
62
web_frontend/web_result/data/Agent_prompt/营销宣传专家.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Role: 会展营销宣传专家
|
||||
|
||||
## Profile
|
||||
- author: LangGPT
|
||||
- version: 1.0
|
||||
- language: 中文
|
||||
- description: 你是一位精通线上与线下整合传播的会展营销专家,擅长为展会项目量身定制多渠道宣传策略,提升展会曝光度、观众到场率及品牌影响力。
|
||||
|
||||
## Skills
|
||||
1. 能基于展会定位制定精准的营销目标与内容策略;
|
||||
2. 熟悉抖音、小红书、公众号等新媒体平台营销玩法;
|
||||
3. 精通线下地推、户外广告、合作联动等传统宣传方式;
|
||||
4. 善于制定分阶段、分人群的推广计划与内容排期;
|
||||
5. 输出结构标准化、逻辑清晰的整合营销方案(含推广时间表、渠道矩阵、内容主题等);
|
||||
|
||||
## Goals
|
||||
- 为展会制定一套完整的整合营销传播方案;
|
||||
- 输出方案需包含目标设定、策略框架、渠道矩阵、内容主题、执行时间表等;
|
||||
- 内容格式需支持结构化输出,方便项目管理或汇报使用;
|
||||
|
||||
## OutputFormat
|
||||
|
||||
```json
|
||||
{
|
||||
"展会名称": "2025数字经济博览会",
|
||||
"目标受众": ["B端科技企业", "C端泛科技爱好者"],
|
||||
"营销目标": "提升展会曝光率、提升参展报名转化率",
|
||||
"营销策略": {
|
||||
"总体策略": "线上线下联动,内容驱动,精准触达",
|
||||
"分阶段策略": {
|
||||
"预热期": "内容种草 + 社媒曝光",
|
||||
"引流期": "强内容发布 + 用户互动",
|
||||
"转化期": "落地活动 + 渠道转化"
|
||||
}
|
||||
},
|
||||
"渠道矩阵": {
|
||||
"线上渠道": ["抖音", "小红书", "微信公众号", "官网", "知乎"],
|
||||
"线下渠道": ["户外广告", "地铁灯箱", "异业联动门店", "校园推广"]
|
||||
},
|
||||
"内容主题规划": [
|
||||
{"主题": "行业趋势", "形式": "图文、视频", "平台": "知乎、公众号"},
|
||||
{"主题": "展会亮点", "形式": "短视频、直播", "平台": "抖音、小红书"},
|
||||
{"主题": "嘉宾预告", "形式": "人物专访", "平台": "视频号、公众号"}
|
||||
],
|
||||
"时间与执行表": [
|
||||
{
|
||||
"阶段": "预热期",
|
||||
"时间范围": "2025-02-01 ~ 2025-02-14",
|
||||
"重点动作": "达人种草、开设话题标签、内容预告"
|
||||
},
|
||||
{
|
||||
"阶段": "引流期",
|
||||
"时间范围": "2025-02-15 ~ 2025-02-28",
|
||||
"重点动作": "高频内容推送、互动抽奖、报名链接投放"
|
||||
},
|
||||
{
|
||||
"阶段": "转化期",
|
||||
"时间范围": "2025-03-01 ~ 2025-03-08",
|
||||
"重点动作": "地推执行、户外广告投放、现场报名引导"
|
||||
}
|
||||
]
|
||||
}
|
||||
41
web_frontend/web_result/data/Agent_prompt/设计师专家.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Role: 展会设计师专家
|
||||
|
||||
## Profile
|
||||
- author: LangGPT
|
||||
- version: 1.0
|
||||
- language: 中文
|
||||
- description: 你是一位富有创意并紧跟趋势的展会设计师,擅长通过AI图像生成工具,将抽象理念转化为具体可视化效果图,尤其专注于展台搭建、空间布景与主题场景塑造。
|
||||
|
||||
## Skills
|
||||
1. 能够将展会主题、品牌调性转化为视觉设计要素;
|
||||
2. 熟悉不同类型展会的风格差异(科技、文旅、消费品等);
|
||||
3. 精通Midjourney/DALL·E/Stable Diffusion等AI图像生成提示语构造;
|
||||
4. 擅长构建具体、细致、清晰的图像提示词(prompt);
|
||||
5. 具备一定的美术与空间设计语言表达能力;
|
||||
|
||||
## Goals
|
||||
- 基于给定的展会主题与定位,设计精美、实用的展会效果图;
|
||||
- 提供5条以上适用于AI图像生成的中英文Prompt;
|
||||
- 每条提示词包括视觉元素、风格关键词、构图建议、镜头视角等;
|
||||
- 鼓励使用Midjourney标准格式:`/imagine prompt: {...}`;
|
||||
|
||||
## OutputFormat
|
||||
请以如下格式输出:
|
||||
|
||||
```json
|
||||
{
|
||||
"展会主题": "填写展会主题名称",
|
||||
"目标受众": "描述设计所面向的核心观众群体",
|
||||
"设计理念": "简述整体设计概念与方向",
|
||||
"提示词列表": [
|
||||
{
|
||||
"语言": "英文",
|
||||
"Prompt": "/imagine prompt: modern exhibition booth, minimalist style, LED walls, open layout, tech branding, ambient lighting, 3D render, ultra-realistic, --ar 16:9 --v 5"
|
||||
},
|
||||
{
|
||||
"语言": "中文",
|
||||
"Prompt": "/imagine prompt: 未来感展会展台设计,极简风格,灯光氛围,科技感十足,品牌标识突出,超写实渲染,--ar 16:9 --v 5"
|
||||
}
|
||||
// 可继续添加更多提示词
|
||||
]
|
||||
}
|
||||
54
web_frontend/web_result/data/Agent_prompt/财务预算专家.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Role: 财务预算专家
|
||||
|
||||
## Profile
|
||||
- author: LangGPT
|
||||
- version: 1.0
|
||||
- language: 中文
|
||||
- description: 你是一位精通财务管理的预算专家,擅长根据用户提供的数据信息生成标准化的财务预算报表,能清晰展现成本、收入、利润、现金流等核心财务指标。
|
||||
|
||||
## Skills
|
||||
1. 熟练编制年度、季度、项目级的财务预算;
|
||||
2. 能将结构化/半结构化的数据转化为标准财务报表;
|
||||
3. 掌握利润表、现金流量表、资产负债表等报表结构;
|
||||
4. 熟悉Excel逻辑及数据可视化表达方式;
|
||||
5. 支持以JSON或表格Markdown格式输出财务报表;
|
||||
|
||||
## Goals
|
||||
- 将用户输入的财务数据转换为格式清晰、分类合理的预算报表;
|
||||
- 报表字段需根据数据内容自动适配;
|
||||
- 输出格式以财务报表通用结构为准,包括:项目名称、预算金额、实际金额、差异、备注等;
|
||||
- 如数据不足,提供自动补全建议;
|
||||
|
||||
## OutputFormat
|
||||
支持以下两种格式任选:
|
||||
|
||||
### 格式一:JSON格式
|
||||
|
||||
```json
|
||||
{
|
||||
"报表类型": "年度预算表",
|
||||
"币种": "人民币",
|
||||
"时间周期": "2025年",
|
||||
"项目预算表": [
|
||||
{
|
||||
"项目名称": "市场推广费",
|
||||
"预算金额": 500000,
|
||||
"实际金额": 450000,
|
||||
"差异": -50000,
|
||||
"备注": "广告成本略低于预期"
|
||||
},
|
||||
{
|
||||
"项目名称": "人员成本",
|
||||
"预算金额": 1200000,
|
||||
"实际金额": 1250000,
|
||||
"差异": 50000,
|
||||
"备注": "新增一名市场专员"
|
||||
}
|
||||
// 更多项目...
|
||||
],
|
||||
"汇总": {
|
||||
"总预算": 1700000,
|
||||
"总实际支出": 1700000,
|
||||
"预算差异": 0
|
||||
}
|
||||
}
|
||||
BIN
web_frontend/web_result/data/agent头像/会展执行专家.jpg
Executable file
|
After Width: | Height: | Size: 329 KiB |
BIN
web_frontend/web_result/data/agent头像/会展策划专家.jpg
Executable file
|
After Width: | Height: | Size: 323 KiB |
BIN
web_frontend/web_result/data/agent头像/信息检索专家.jpg
Executable file
|
After Width: | Height: | Size: 332 KiB |
BIN
web_frontend/web_result/data/agent头像/结构编辑专家.jpg
Executable file
|
After Width: | Height: | Size: 328 KiB |
BIN
web_frontend/web_result/data/agent头像/营销策划专家.jpg
Executable file
|
After Width: | Height: | Size: 299 KiB |
BIN
web_frontend/web_result/data/agent头像/设计专家.jpg
Executable file
|
After Width: | Height: | Size: 343 KiB |
BIN
web_frontend/web_result/data/agent头像/预算编辑专家.jpg
Executable file
|
After Width: | Height: | Size: 342 KiB |
BIN
web_frontend/web_result/data/会展策划/image/2.试驾小景.jpg
Executable file
|
After Width: | Height: | Size: 510 KiB |
BIN
web_frontend/web_result/data/会展策划/image/3.小米汽车.jpg
Executable file
|
After Width: | Height: | Size: 398 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_03282ab7e5.jpg
Executable file
|
After Width: | Height: | Size: 422 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_15f65339bb.jpg
Executable file
|
After Width: | Height: | Size: 352 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_192cdc54bc.jpg
Executable file
|
After Width: | Height: | Size: 494 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_1c05424f7f.jpg
Executable file
|
After Width: | Height: | Size: 427 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_27184afa6e.jpg
Executable file
|
After Width: | Height: | Size: 423 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_2a9b622636.jpg
Executable file
|
After Width: | Height: | Size: 591 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_4aabd94ef3.jpg
Executable file
|
After Width: | Height: | Size: 404 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_5c4b912ea7.jpg
Executable file
|
After Width: | Height: | Size: 503 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_8236005bb2.jpg
Executable file
|
After Width: | Height: | Size: 403 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_9e8c1f44ac.jpg
Executable file
|
After Width: | Height: | Size: 516 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_be64a7b61f.jpg
Executable file
|
After Width: | Height: | Size: 330 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_c478fe089d.jpg
Executable file
|
After Width: | Height: | Size: 412 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_dcc81c5212.jpg
Executable file
|
After Width: | Height: | Size: 303 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_e2ffe75dbc 1.jpg
Executable file
|
After Width: | Height: | Size: 397 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_e2ffe75dbc.jpg
Executable file
|
After Width: | Height: | Size: 397 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_e8f83d1a37.jpg
Executable file
|
After Width: | Height: | Size: 474 KiB |
BIN
web_frontend/web_result/data/会展策划/image/Whisk_f3f954649c.jpg
Executable file
|
After Width: | Height: | Size: 390 KiB |
BIN
web_frontend/web_result/data/会展策划/image/博览会.jpg
Executable file
|
After Width: | Height: | Size: 700 KiB |
BIN
web_frontend/web_result/data/会展策划/image/展会内部参观.jpg
Executable file
|
After Width: | Height: | Size: 624 KiB |
BIN
web_frontend/web_result/data/会展策划/image/展馆布置图.jpeg
Executable file
|
After Width: | Height: | Size: 320 KiB |
BIN
web_frontend/web_result/data/会展策划/image/签到.jpg
Executable file
|
After Width: | Height: | Size: 443 KiB |
300
web_frontend/web_result/data/会展策划/汽车展会展策划案_DEMO.md
Executable file
@@ -0,0 +1,300 @@
|
||||
# 汽车展会展策划案
|
||||
|
||||
## 一、策划案概述
|
||||
|
||||
参考图片:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1. 封面
|
||||
|
||||
- 展会名称:2024长三角国际新能源汽车与智能交通产业博览会
|
||||
- 策划案名称:Green Mobility Shanghai 2024 执行策划案
|
||||
- 策划单位:上海国际会展集团会展策划部
|
||||
- 日期:20xx年xx月xx日
|
||||
|
||||
### 2. 目录
|
||||
|
||||
- 一、策划案概述:P1
|
||||
- 二、展会介绍与预期效果:P3
|
||||
- 三、营销方案:P8
|
||||
- 四、现场运营方案:P15
|
||||
- 五、预算与收益分析:P22
|
||||
- 六、风险评估与应急预案:P28
|
||||
|
||||
### 3. 策划背景
|
||||
|
||||
内容:
|
||||
|
||||
在全球碳中和目标推动下,新能源汽车产业迎来爆发式增长。长三角地区作为中国汽车产业核心集群,聚集了特斯拉、上汽、蔚来等龙头企业,新能源汽车产量占全国40%以上。同时,智能网联、自动驾驶技术快速发展,智慧交通体系建设加速推进。然而,行业缺乏一个整合整车制造、核心零部件、智能技术、基础设施的全产业链展示平台。本次展会将填补这一市场空白,打造长三角地区最具影响力的新能源汽车与智能交通产业盛会。
|
||||
|
||||
依据:
|
||||
|
||||
- 《新能源汽车产业发展规划(2021-2035年)》政策支持
|
||||
- 长三角一体化发展战略深入实施
|
||||
- 上海市打造国际新能源汽车发展高地规划
|
||||
- 市场调研显示89%的产业链企业有参展需求
|
||||
|
||||
### 4. 策划目的
|
||||
|
||||
- 品牌建设目的:打造长三角地区新能源汽车与智能交通领域第一展会品牌
|
||||
- 商业目的:吸引300家优质展商,实现现场意向交易额超8亿元人民币
|
||||
- 行业目的:促进产业链上下游合作,推动技术创新和产业升级
|
||||
- 社会目的:推广绿色出行理念,助力碳中和目标实现
|
||||
|
||||
### 5. 策划依据
|
||||
|
||||
政策依据:
|
||||
|
||||
- 《上海市加快新能源汽车产业发展实施计划》
|
||||
- 《长三角地区新能源汽车产业链协同发展规划》
|
||||
|
||||
市场依据:
|
||||
|
||||
- 2023年新能源汽车销量同比增长35%
|
||||
- 智能网联汽车市场规模突破千亿元
|
||||
|
||||
资源依据:
|
||||
|
||||
- 与20余家行业协会建立合作关系
|
||||
- 往届相关展会数据库包含5万+专业观众信息
|
||||
|
||||
## 二、展会介绍与预期效果
|
||||
|
||||
参考图片:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1. 展会主题
|
||||
|
||||
「智行未来,绿动长三角」——2024长三角国际新能源汽车与智能交通产业博览会
|
||||
|
||||
### 2. 展会地址
|
||||
|
||||
- 主展馆:国家会展中心(上海)
|
||||
- 地址:上海市青浦区崧泽大道333号
|
||||
- 选择理由:
|
||||
- 地理位置优越,交通便利
|
||||
- 设施完善,展馆面积充足
|
||||
- 配套服务齐全,经验丰富
|
||||
|
||||
### 3. 展品范围
|
||||
|
||||
- 整车展区:纯电动汽车、插电式混合动力汽车、智能网联汽车
|
||||
- 核心零部件展区:电池电机电控系统、智能驾驶系统、车联网设备、充电设施
|
||||
- 智能交通展区:智慧路网系统、车路协同解决方案、智能停车系统、出行服务平台
|
||||
- 配套服务展区:金融服务、检测认证、咨询服务、媒体服务
|
||||
|
||||
### 4. 举办时间
|
||||
|
||||
- 展期:2024年9月12日-9月15日(周四至周日)
|
||||
- 开放时间:每日09:00-17:00(16:30停止入场)
|
||||
- 选择理由:避开国庆长假、行业采购旺季、天气适宜
|
||||
|
||||
### 5. 办展机构
|
||||
|
||||
- 主办单位:中国汽车工业协会、上海市经济和信息化委员会、长三角一体化示范区执委会
|
||||
- 承办单位:上海国际会展集团
|
||||
- 协办单位:江苏省汽车行业协会、浙江省新能源汽车产业联盟、安徽省汽车工程学会
|
||||
- 支持单位:国际汽车工程师学会、中国电动汽车百人会、上海交通大学智能网联汽车研究中心
|
||||
|
||||
### 6. 目标参展商
|
||||
|
||||
- 整车企业:特斯拉、比亚迪、上汽、蔚来、理想、小鹏等
|
||||
- 零部件企业:宁德时代、华为智能汽车、百度Apollo、Mobileye等
|
||||
- 科技企业:阿里巴巴、腾讯、科大讯飞等智能网联解决方案提供商
|
||||
- 服务企业:充电运营商、出行服务商、金融机构等
|
||||
|
||||
### 7. 目标观众
|
||||
|
||||
- 专业观众:汽车制造商采购及技术人员、经销商和4S店负责人、政府部门和行业组织代表、投资机构和分析师
|
||||
- 普通观众:新能源汽车潜在消费者、科技爱好者、大学生和研究机构人员
|
||||
|
||||
### 8. 预计规模
|
||||
|
||||
- 展览面积:50,000平方米
|
||||
- 标准展位:1,200个(9平米/个)
|
||||
- 特装展位:20,000平方米
|
||||
- 参展商家数:350家
|
||||
- 参观人次:50,000人次
|
||||
|
||||
### 9. 展会定位
|
||||
|
||||
- 市场定位:B2B2C模式,兼顾专业性与大众性
|
||||
- 品质定位:高端化、国际化、专业化
|
||||
- 特色定位:注重体验互动,突出科技感和未来感
|
||||
|
||||
### 10. 预期效果
|
||||
|
||||
经济效益:
|
||||
|
||||
- 现场成交额预计超10亿元
|
||||
- 带动相关产业收入约30亿元
|
||||
|
||||
社会效益:
|
||||
|
||||
- 媒体曝光量超1亿次
|
||||
- 行业白皮书发布2份
|
||||
- 专业论坛20场
|
||||
|
||||
品牌效益:
|
||||
|
||||
- 参展商满意度90%以上
|
||||
- 专业观众重复参观意愿85%
|
||||
|
||||
## 三、营销方案
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1. 整体推广策略
|
||||
|
||||
- 策略核心:线上线下融合、精准定向投放、多渠道覆盖
|
||||
- 阶段划分:
|
||||
- 预热期(展前6个月):品牌造势,话题营销
|
||||
- 推广期(展前3个月):精准投放,观众组织
|
||||
- 冲刺期(展前1个月):密集宣传,氛围营造
|
||||
- 展期:现场互动,媒体报道
|
||||
- 展后:持续发酵,下届预热
|
||||
|
||||
### 2. 线下推广方案
|
||||
|
||||
- 行业活动:参加北京车展、广州车展等进行推广;在相关行业论坛和峰会进行宣传
|
||||
- 传统媒体:《中国汽车报》、《汽车之家》等媒体投放广告;召开新闻发布会和媒体见面会
|
||||
- 渠道推广:与各地新能源汽车产业园区合作;通过行业协会组织参观团
|
||||
- 户外广告:上海主要商圈LED屏广告;地铁机场灯箱广告;高速公路高炮广告
|
||||
|
||||
### 3. 线上推广方案
|
||||
|
||||
- 官网建设:在线注册系统、展商数据库、活动预约系统、新闻中心;特色功能:3D展馆导航、VR预览
|
||||
- 社交媒体:
|
||||
- 微信:公众号推送、朋友圈广告、小程序互动
|
||||
- 微博:话题营销 #绿色出行看长三角#、大V合作、直播活动
|
||||
- 抖音/快手:短视频、网红探店、挑战赛
|
||||
- 数字广告:搜索引擎关键词竞价;信息流广告(今日头条、腾讯新闻);垂直媒体(汽车之家、易车网)
|
||||
- 邮件营销:数据库10万+联系人;发送频次每月2期;内容包含展商推介、活动预告、行业资讯
|
||||
|
||||
### 4. 精准邀请方案
|
||||
|
||||
- 专业观众邀请:呼叫中心20人团队、一对一重点客户邀请、协会团体邀请
|
||||
- 买家匹配服务:
|
||||
- 会前:在线预约,智能匹配
|
||||
- 展中:商务洽谈区,对接会
|
||||
- 展后:持续跟进,促成交易
|
||||
|
||||
## 四、现场运营方案
|
||||
|
||||
参考图片:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1. 展区规划
|
||||
|
||||
- 整车展示区:中央展厅,20,000平方米
|
||||
- 零部件展区:西侧展厅,15,000平方米
|
||||
- 智能交通展区:东侧展厅,10,000平方米
|
||||
- 体验互动区:室外广场,5,000平方米
|
||||
|
||||
### 2. 现场服务
|
||||
|
||||
- 登记服务:电子签到系统,快速通道
|
||||
- 咨询服务:多语言服务台,智能机器人导览
|
||||
- 商务服务:会议室租赁,翻译服务
|
||||
- 后勤服务:餐饮区、休息区、医疗点
|
||||
|
||||
### 3. 活动安排
|
||||
|
||||
- 开幕典礼:9月12日上午9:00
|
||||
- 主题论坛:新能源汽车产业发展论坛、智能网联技术创新峰会、充电基础设施建设研讨会
|
||||
- 配套活动:新产品发布会、试乘试驾、技术交流会
|
||||
|
||||
### 4. 展陈设计
|
||||
|
||||
- 设计理念:科技、环保、未来
|
||||
- 色彩方案:主色调科技蓝、环保绿
|
||||
- 灯光设计:LED节能照明,重点突出
|
||||
- 空间布局:流线型,体验式
|
||||
|
||||
## 五、预算与收益分析
|
||||
|
||||
参考图片:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1. 支出预算
|
||||
|
||||
- 场地费用:300万元
|
||||
- 营销推广:200万元
|
||||
- 人员成本:150万元
|
||||
- 活动执行:100万元
|
||||
- 运营保障:80万元
|
||||
- 应急储备:70万元
|
||||
- **总计:900万元**
|
||||
|
||||
### 2. 收入预算
|
||||
|
||||
- 展位收入:700万元
|
||||
- 赞助收入:300万元
|
||||
- 广告收入:100万元
|
||||
- 门票收入:50万元
|
||||
- 其他收入:50万元
|
||||
- **总计:1,200万元**
|
||||
|
||||
### 3. 收益预测
|
||||
|
||||
- 直接收益:300万元
|
||||
- 间接收益:品牌价值提升、行业影响力扩大
|
||||
- 投资回报率:33.3%
|
||||
|
||||
## 六、风险评估与应急预案
|
||||
|
||||
参考图片
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1. 风险分析
|
||||
|
||||
- 市场风险:行业政策变化、市场竞争加剧
|
||||
- 运营风险:参展商数量不足、观众人数未达预期
|
||||
- 安全风险:消防安全、人员安全
|
||||
- 不可抗力:疫情、恶劣天气
|
||||
|
||||
### 2. 应对措施
|
||||
|
||||
- 市场风险应对:加强政策研究,及时调整策略;提升展会品质,增强竞争力
|
||||
- 运营风险应对:提前签约重点展商;多渠道观众组织
|
||||
- 安全风险应对:完善安保体系;购买保险
|
||||
- 不可抗力应对:制定线上预案;与展馆方保持沟通
|
||||
@@ -260,37 +260,37 @@
|
||||
<div class="container mx-auto px-6 relative z-10" title="核心数据展示区">
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-12">
|
||||
<div class="text-center group animate-fadeInUp animation-delay-200 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-gradient-to-br from-purple-500 to-purple-600 rounded-2xl flex items-center justify-center shadow-2xl group-hover:shadow-purple-500/30 group-hover:rotate-3 transition-all">
|
||||
<i class="fas fa-building text-4xl text-white"></i>
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-purple-200 group-hover:border-purple-400 group-hover:rotate-3 transition-all">
|
||||
<i class="fas fa-building text-4xl text-purple-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-purple-600 to-pink-600 mb-2">
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="350">0</span>+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">参展企业</div>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-400 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-gradient-to-br from-blue-500 to-blue-600 rounded-2xl flex items-center justify-center shadow-2xl group-hover:shadow-blue-500/30 group-hover:-rotate-3 transition-all">
|
||||
<i class="fas fa-users text-4xl text-white"></i>
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-blue-200 group-hover:border-blue-400 group-hover:-rotate-3 transition-all">
|
||||
<i class="fas fa-users text-4xl text-blue-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-blue-600 to-cyan-600 mb-2">
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="50000">0</span>+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">预计观众</div>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-600 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-gradient-to-br from-green-500 to-green-600 rounded-2xl flex items-center justify-center shadow-2xl group-hover:shadow-green-500/30 group-hover:rotate-3 transition-all">
|
||||
<i class="fas fa-hand-holding-usd text-4xl text-white"></i>
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-green-200 group-hover:border-green-400 group-hover:rotate-3 transition-all">
|
||||
<i class="fas fa-hand-holding-usd text-4xl text-green-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-green-600 to-emerald-600 mb-2">
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="10">0</span>亿+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">预计成交额</div>
|
||||
</div>
|
||||
<div class="text-center group animate-fadeInUp animation-delay-800 transform hover:scale-105 transition-all duration-300">
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-gradient-to-br from-orange-500 to-orange-600 rounded-2xl flex items-center justify-center shadow-2xl group-hover:shadow-orange-500/30 group-hover:-rotate-3 transition-all">
|
||||
<i class="fas fa-microphone-alt text-4xl text-white"></i>
|
||||
<div class="w-24 h-24 mx-auto mb-4 bg-white rounded-2xl flex items-center justify-center shadow-lg group-hover:shadow-xl border-2 border-orange-200 group-hover:border-orange-400 group-hover:-rotate-3 transition-all">
|
||||
<i class="fas fa-microphone-alt text-4xl text-orange-600"></i>
|
||||
</div>
|
||||
<div class="text-5xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-orange-600 to-red-600 mb-2">
|
||||
<div class="text-5xl font-bold text-gray-800 mb-2">
|
||||
<span class="counter" data-target="20">0</span>+
|
||||
</div>
|
||||
<div class="text-gray-700 font-semibold text-lg">专业论坛</div>
|
||||
@@ -316,61 +316,58 @@
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-center text-gray-800 mb-12 animate-fadeInUp">展会亮点</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<!-- Card 1 -->
|
||||
<div class="card-hover bg-white/90 backdrop-blur rounded-xl shadow-xl overflow-hidden group animate-fadeInUp animation-delay-200">
|
||||
<div class="bg-white rounded-xl shadow-lg overflow-hidden transform transition-all duration-300 hover:scale-105 hover:shadow-2xl animate-fadeInUp animation-delay-200">
|
||||
<div class="h-48 relative overflow-hidden">
|
||||
<img src="../data/会展策划/image/3.小米汽车.jpg" alt="小米汽车" class="w-full h-full object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
||||
<div class="absolute bottom-4 left-4 text-white">
|
||||
<div class="bg-blue-500 px-3 py-1 rounded-full text-xs font-semibold inline-block mb-2">热门展区</div>
|
||||
<img src="../data/会展策划/image/3.小米汽车.jpg" alt="小米汽车" class="w-full h-full object-cover">
|
||||
<div class="absolute top-4 left-4">
|
||||
<div class="bg-blue-500 text-white px-3 py-1 rounded-full text-xs font-semibold">热门展区</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<h3 class="text-xl font-bold mb-3 group-hover:text-purple-600 transition-colors">全产业链展示</h3>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">全产业链展示</h3>
|
||||
<p class="text-gray-600 mb-4">
|
||||
涵盖整车制造、核心零部件、充电设施、智能网联等全产业链环节,打造一站式采购平台。
|
||||
</p>
|
||||
<a href="pages/exhibition.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group/link">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover/link:translate-x-2"></i>
|
||||
<a href="pages/exhibition.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Card 2 -->
|
||||
<div class="card-hover bg-white/90 backdrop-blur rounded-xl shadow-xl overflow-hidden group animate-fadeInUp animation-delay-400">
|
||||
<div class="bg-white rounded-xl shadow-lg overflow-hidden transform transition-all duration-300 hover:scale-105 hover:shadow-2xl animate-fadeInUp animation-delay-400">
|
||||
<div class="h-48 relative overflow-hidden">
|
||||
<img src="../data/会展策划/image/2.试驾小景.jpg" alt="试驾体验" class="w-full h-full object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
||||
<div class="absolute bottom-4 left-4 text-white">
|
||||
<div class="bg-emerald-500 px-3 py-1 rounded-full text-xs font-semibold inline-block mb-2">互动体验</div>
|
||||
<img src="../data/会展策划/image/2.试驾小景.jpg" alt="试驾体验" class="w-full h-full object-cover">
|
||||
<div class="absolute top-4 left-4">
|
||||
<div class="bg-emerald-500 text-white px-3 py-1 rounded-full text-xs font-semibold">互动体验</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<h3 class="text-xl font-bold mb-3 group-hover:text-emerald-600 transition-colors">创新技术体验</h3>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">创新技术体验</h3>
|
||||
<p class="text-gray-600 mb-4">
|
||||
设置自动驾驶体验区、智能交通演示区,让观众亲身体验最新科技成果。
|
||||
</p>
|
||||
<a href="pages/operation.html" class="text-emerald-600 font-semibold hover:text-emerald-800 flex items-center group/link">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover/link:translate-x-2"></i>
|
||||
<a href="pages/operation.html" class="text-emerald-600 font-semibold hover:text-emerald-800 flex items-center group">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Card 3 -->
|
||||
<div class="card-hover bg-white/90 backdrop-blur rounded-xl shadow-xl overflow-hidden group animate-fadeInUp animation-delay-600">
|
||||
<div class="bg-white rounded-xl shadow-lg overflow-hidden transform transition-all duration-300 hover:scale-105 hover:shadow-2xl animate-fadeInUp animation-delay-600">
|
||||
<div class="h-48 relative overflow-hidden">
|
||||
<img src="../data/会展策划/image/展会内部参观.jpg" alt="论坛峰会" class="w-full h-full object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
||||
<div class="absolute bottom-4 left-4 text-white">
|
||||
<div class="bg-purple-500 px-3 py-1 rounded-full text-xs font-semibold inline-block mb-2">主题论坛</div>
|
||||
<img src="../data/会展策划/image/展会内部参观.jpg" alt="论坛峰会" class="w-full h-full object-cover">
|
||||
<div class="absolute top-4 left-4">
|
||||
<div class="bg-purple-500 text-white px-3 py-1 rounded-full text-xs font-semibold">主题论坛</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<h3 class="text-xl font-bold mb-3 group-hover:text-purple-600 transition-colors">高端论坛峰会</h3>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">高端论坛峰会</h3>
|
||||
<p class="text-gray-600 mb-4">
|
||||
汇聚行业领袖、专家学者,探讨产业发展趋势,发布权威研究报告。
|
||||
</p>
|
||||
<a href="pages/marketing.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group/link">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover/link:translate-x-2"></i>
|
||||
<a href="pages/marketing.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group">
|
||||
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -456,8 +453,8 @@
|
||||
<div class="grid md:grid-cols-3 gap-6 mb-8">
|
||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-200">
|
||||
<img src="../data/会展策划/image/展会内部参观.jpg" alt="展会内部" class="w-full h-64 object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<div class="absolute bottom-0 left-0 right-0 p-6 text-white transform translate-y-full group-hover:translate-y-0 transition-transform duration-300">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-6 text-white transform translate-y-20 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h3 class="text-xl font-bold mb-2">展馆内部参观</h3>
|
||||
<p class="text-sm">宽敞明亮的展示空间,科技感十足</p>
|
||||
</div>
|
||||
@@ -466,8 +463,8 @@
|
||||
|
||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-400">
|
||||
<img src="../data/会展策划/image/签到.jpg" alt="签到处" class="w-full h-64 object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<div class="absolute bottom-0 left-0 right-0 p-6 text-white transform translate-y-full group-hover:translate-y-0 transition-transform duration-300">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-6 text-white transform translate-y-20 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h3 class="text-xl font-bold mb-2">智能签到系统</h3>
|
||||
<p class="text-sm">快速便捷的入场体验</p>
|
||||
</div>
|
||||
@@ -476,8 +473,8 @@
|
||||
|
||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-600">
|
||||
<img src="../data/会展策划/image/3.小米汽车.jpg" alt="展品展示" class="w-full h-64 object-cover transform transition-transform duration-700 group-hover:scale-110">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
<div class="absolute bottom-0 left-0 right-0 p-6 text-white transform translate-y-full group-hover:translate-y-0 transition-transform duration-300">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-6 text-white transform translate-y-20 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h3 class="text-xl font-bold mb-2">明星展品</h3>
|
||||
<p class="text-sm">最新款新能源汽车亮相</p>
|
||||
</div>
|
||||
@@ -489,19 +486,35 @@
|
||||
<div class="grid md:grid-cols-4 gap-4">
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-800">
|
||||
<img src="../data/会展策划/image/Whisk_03282ab7e5.jpg" alt="展品1" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-purple-600/50 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-purple-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">智能驾驶展示</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-900">
|
||||
<img src="../data/会展策划/image/Whisk_15f65339bb.jpg" alt="展品2" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-indigo-600/50 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-indigo-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">充电技术革新</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-1000">
|
||||
<img src="../data/会展策划/image/Whisk_192cdc54bc.jpg" alt="展品3" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-blue-600/50 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-blue-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">电池技术展览</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-1100">
|
||||
<img src="../data/会展策划/image/Whisk_1c05424f7f.jpg" alt="展品4" class="w-full h-48 object-cover transform transition-all duration-500 group-hover:scale-110 group-hover:rotate-1">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-cyan-600/50 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-cyan-600/70 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end">
|
||||
<div class="p-4 text-white transform translate-y-10 group-hover:translate-y-0 transition-transform duration-300">
|
||||
<h4 class="text-sm font-bold">智慧交通系统</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,6 +19,13 @@
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
/* Glass morphism effect */
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
/* 页面加载动画 */
|
||||
.page-enter {
|
||||
animation: pageEnter 0.8s ease-out;
|
||||
@@ -106,39 +113,44 @@
|
||||
</head>
|
||||
<body class="bg-gray-50">
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed top-0 w-full bg-white shadow-md z-50">
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center group">
|
||||
<div class="relative mr-3">
|
||||
<i class="fas fa-car-side text-2xl text-purple-600 group-hover:scale-110 transition-transform"></i>
|
||||
<i class="fas fa-bolt text-xs text-green-500 absolute -top-1 -right-1 animate-pulse"></i>
|
||||
<div class="flex items-center">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||
</div>
|
||||
<span class="text-xl font-bold text-gray-800">Green Mobility 2024</span>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="../index.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-home mr-1"></i>首页
|
||||
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="overview.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-file-alt mr-1"></i>策划概述
|
||||
<a href="overview.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="exhibition.html" class="nav-link active text-purple-600 font-semibold">
|
||||
<i class="fas fa-building mr-1"></i>展会介绍
|
||||
<a href="exhibition.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-bullhorn mr-1"></i>营销方案
|
||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-cogs mr-1"></i>现场运营
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-calculator mr-1"></i>预算分析
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="risk.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-shield-alt mr-1"></i>风险评估
|
||||
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<button class="md:hidden text-gray-700">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@@ -19,6 +19,13 @@
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
/* Glass morphism effect */
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
/* 玻璃态效果 */
|
||||
.glass-card {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
@@ -109,39 +116,44 @@
|
||||
</head>
|
||||
<body class="bg-gray-50">
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed top-0 w-full bg-white shadow-md z-50">
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center group">
|
||||
<div class="relative mr-3">
|
||||
<i class="fas fa-car-side text-2xl text-purple-600 group-hover:scale-110 transition-transform"></i>
|
||||
<i class="fas fa-bolt text-xs text-green-500 absolute -top-1 -right-1 animate-pulse"></i>
|
||||
<div class="flex items-center">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||
</div>
|
||||
<span class="text-xl font-bold text-gray-800">Green Mobility 2024</span>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="../index.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-home mr-1"></i>首页
|
||||
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="overview.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-file-alt mr-1"></i>策划概述
|
||||
<a href="overview.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-building mr-1"></i>展会介绍
|
||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="marketing.html" class="nav-link active text-purple-600 font-semibold">
|
||||
<i class="fas fa-bullhorn mr-1"></i>营销方案
|
||||
<a href="marketing.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-cogs mr-1"></i>现场运营
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-calculator mr-1"></i>预算分析
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="risk.html" class="nav-link text-gray-700 hover:text-purple-600">
|
||||
<i class="fas fa-shield-alt mr-1"></i>风险评估
|
||||
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<button class="md:hidden text-gray-700">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@@ -13,6 +13,14 @@
|
||||
* {
|
||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
}
|
||||
|
||||
/* Glass morphism effect */
|
||||
.glass-morphism {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.timeline-item {
|
||||
position: relative;
|
||||
padding-left: 40px;
|
||||
@@ -78,8 +86,8 @@
|
||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
||||
<div class="container mx-auto px-6 py-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center animate-fadeInLeft">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-purple-500 to-indigo-600 rounded-lg flex items-center justify-center mr-3">
|
||||
<div class="flex items-center">
|
||||
<div class="w-10 h-10 bg-gradient-to-br from-emerald-400 to-blue-500 rounded-lg flex items-center justify-center mr-3">
|
||||
<i class="fas fa-charging-station text-white"></i>
|
||||
</div>
|
||||
<div>
|
||||
@@ -88,28 +96,31 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden md:flex space-x-8">
|
||||
<a href="../index.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
||||
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-home mr-2"></i>首页
|
||||
</a>
|
||||
<a href="overview.html" class="nav-link active text-purple-600 font-semibold">
|
||||
<i class="fas fa-info-circle mr-2"></i>策划概述
|
||||
<a href="overview.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||
</a>
|
||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展会介绍
|
||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||
</a>
|
||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销方案
|
||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||
</a>
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>现场运营
|
||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||
</a>
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||
</a>
|
||||
<a href="risk.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
||||
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||
</a>
|
||||
</div>
|
||||
<button class="md:hidden text-gray-700">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
99
web_frontend/web_result/server.js
Normal file
@@ -0,0 +1,99 @@
|
||||
const http = require('http');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const url = require('url');
|
||||
|
||||
const PORT = 4155;
|
||||
const HOST = '0.0.0.0';
|
||||
|
||||
// MIME 类型映射
|
||||
const mimeTypes = {
|
||||
'.html': 'text/html; charset=utf-8',
|
||||
'.css': 'text/css',
|
||||
'.js': 'text/javascript',
|
||||
'.json': 'application/json',
|
||||
'.png': 'image/png',
|
||||
'.jpg': 'image/jpeg',
|
||||
'.jpeg': 'image/jpeg',
|
||||
'.gif': 'image/gif',
|
||||
'.svg': 'image/svg+xml',
|
||||
'.ico': 'image/x-icon',
|
||||
'.woff': 'font/woff',
|
||||
'.woff2': 'font/woff2',
|
||||
'.ttf': 'font/ttf',
|
||||
'.eot': 'font/eot'
|
||||
};
|
||||
|
||||
// 创建服务器
|
||||
const server = http.createServer((req, res) => {
|
||||
// 解析 URL
|
||||
const parsedUrl = url.parse(req.url);
|
||||
let pathname = decodeURIComponent(parsedUrl.pathname);
|
||||
|
||||
// 默认文件
|
||||
if (pathname === '/') {
|
||||
pathname = '/index.html';
|
||||
}
|
||||
|
||||
// 构建文件路径
|
||||
const filePath = path.join(__dirname, pathname);
|
||||
|
||||
// 安全检查:确保文件路径在当前目录内
|
||||
if (!filePath.startsWith(__dirname)) {
|
||||
res.writeHead(403);
|
||||
res.end('Forbidden');
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查文件是否存在
|
||||
fs.stat(filePath, (err, stats) => {
|
||||
if (err) {
|
||||
// 文件不存在
|
||||
res.writeHead(404);
|
||||
res.end('Not Found');
|
||||
return;
|
||||
}
|
||||
|
||||
if (stats.isDirectory()) {
|
||||
// 如果是目录,尝试加载 index.html
|
||||
const indexPath = path.join(filePath, 'index.html');
|
||||
fs.stat(indexPath, (err, stats) => {
|
||||
if (err) {
|
||||
res.writeHead(404);
|
||||
res.end('Not Found');
|
||||
return;
|
||||
}
|
||||
serveFile(indexPath, res);
|
||||
});
|
||||
} else {
|
||||
// 提供文件
|
||||
serveFile(filePath, res);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 提供文件的函数
|
||||
function serveFile(filePath, res) {
|
||||
const ext = path.extname(filePath);
|
||||
const contentType = mimeTypes[ext] || 'application/octet-stream';
|
||||
|
||||
fs.readFile(filePath, (err, content) => {
|
||||
if (err) {
|
||||
res.writeHead(500);
|
||||
res.end('Internal Server Error');
|
||||
return;
|
||||
}
|
||||
|
||||
res.writeHead(200, { 'Content-Type': contentType });
|
||||
res.end(content);
|
||||
});
|
||||
}
|
||||
|
||||
// 启动服务器
|
||||
server.listen(PORT, HOST, () => {
|
||||
console.log('======================================');
|
||||
console.log(' Web Result 静态服务器');
|
||||
console.log(` 运行地址: http://localhost:${PORT}`);
|
||||
console.log(' 按 Ctrl+C 停止服务器');
|
||||
console.log('======================================');
|
||||
});
|
||||
67
web_frontend/web_result/start.bat
Normal file
@@ -0,0 +1,67 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
REM Web Result 静态服务器启动脚本 (Node.js版)
|
||||
REM 端口: 4155
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM 显示启动横幅
|
||||
echo ======================================
|
||||
echo Web Result 静态服务器
|
||||
echo 端口: 4155
|
||||
echo ======================================
|
||||
echo.
|
||||
|
||||
REM 获取脚本所在目录
|
||||
set "SCRIPT_DIR=%~dp0"
|
||||
set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||||
|
||||
REM 切换到脚本所在目录
|
||||
cd /d "%SCRIPT_DIR%"
|
||||
|
||||
REM 检查 Node.js
|
||||
where node >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [错误] Node.js 未安装
|
||||
echo 请先安装 Node.js: https://nodejs.org
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [信息] Node.js 版本:
|
||||
node --version
|
||||
echo.
|
||||
|
||||
REM 检查端口 4155 是否被占用
|
||||
netstat -ano | findstr :4155 >nul 2>&1
|
||||
if not errorlevel 1 (
|
||||
echo [警告] 端口 4155 已被占用
|
||||
echo [信息] 正在查看占用进程...
|
||||
netstat -ano | findstr :4155
|
||||
echo.
|
||||
|
||||
set /p "kill_process=是否终止占用进程?(y/N): "
|
||||
if /I "!kill_process!"=="y" (
|
||||
echo [信息] 正在终止占用进程...
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :4155') do (
|
||||
taskkill /PID %%a /F >nul 2>&1
|
||||
)
|
||||
echo [成功] 进程已终止
|
||||
timeout /t 1 /nobreak >nul
|
||||
) else (
|
||||
echo [错误] 无法启动服务器,端口被占用
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM 启动服务器
|
||||
echo [信息] 正在启动服务器...
|
||||
echo [信息] 访问地址: http://localhost:4155
|
||||
echo [提示] 按 Ctrl+C 停止服务器
|
||||
echo.
|
||||
|
||||
REM 使用 Node.js 启动服务器
|
||||
node server.js
|
||||
|
||||
pause
|
||||
59
web_frontend/web_result/start.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Web Result 静态服务器启动脚本 (Node.js版)
|
||||
# 端口: 4155
|
||||
|
||||
# 颜色定义
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
# 获取脚本所在目录
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
echo -e "${BLUE}======================================${NC}"
|
||||
echo -e "${BLUE} Web Result 静态服务器${NC}"
|
||||
echo -e "${BLUE} 端口: 4155${NC}"
|
||||
echo -e "${BLUE}======================================${NC}"
|
||||
echo
|
||||
|
||||
# 切换到脚本所在目录
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# 检查 Node.js
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo -e "${RED}[错误] Node.js 未安装${NC}"
|
||||
echo -e "${YELLOW}请先安装 Node.js: https://nodejs.org${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}[信息] Node.js 版本: $(node --version)${NC}"
|
||||
|
||||
# 检查端口是否被占用
|
||||
if lsof -Pi :4155 -sTCP:LISTEN -t >/dev/null 2>&1; then
|
||||
echo -e "${YELLOW}[警告] 端口 4155 已被占用${NC}"
|
||||
echo -e "${BLUE}[信息] 正在查看占用进程...${NC}"
|
||||
lsof -i :4155
|
||||
|
||||
read -p "是否终止占用进程?(y/N): " kill_process
|
||||
if [[ $kill_process =~ ^[Yy]$ ]]; then
|
||||
echo -e "${BLUE}[信息] 正在终止占用进程...${NC}"
|
||||
lsof -ti:4155 | xargs kill -9
|
||||
echo -e "${GREEN}[成功] 进程已终止${NC}"
|
||||
sleep 1
|
||||
else
|
||||
echo -e "${RED}[错误] 无法启动服务器,端口被占用${NC}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 启动服务器
|
||||
echo -e "${GREEN}[信息] 正在启动服务器...${NC}"
|
||||
echo -e "${GREEN}[信息] 访问地址: http://localhost:4155${NC}"
|
||||
echo -e "${YELLOW}[提示] 按 Ctrl+C 停止服务器${NC}"
|
||||
echo
|
||||
|
||||
# 使用 Node.js 启动服务器
|
||||
node server.js
|
||||