feat: 优化会展策划网站UI和添加Duoduo Agent设计流程展示
主要更新: - 统一所有页面导航栏样式为glass-morphism风格 - 添加Duoduo Agent智能设计系统完整可视化流程 - 展示从CAD到展位概念的5个设计阶段 - 优化页面交互效果和用户体验 详细修改: - web_frontend/web_result/pages/: 统一6个页面导航栏样式 - operation.html: 新增Duoduo Agent设计流程展示模块 - 添加5张设计阶段图片展示 (CAD/概念/白模/渲染/最终方案) - 增强视觉效果和动画交互 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
23
n8n-n8n-1.109.2/n8n-20250908-141135.log
Normal file
23
n8n-n8n-1.109.2/n8n-20250908-141135.log
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
> 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)
|
||||||
BIN
web_frontend/exhibition-demo/image/Agent_BG.jpg
Normal file
BIN
web_frontend/exhibition-demo/image/Agent_BG.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 514 KiB |
15
web_frontend/exhibition-demo/node_modules/.package-lock.json
generated
vendored
15
web_frontend/exhibition-demo/node_modules/.package-lock.json
generated
vendored
@@ -2121,6 +2121,21 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"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": {
|
"node_modules/function-bind": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
|
"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
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
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
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
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
BIN
web_frontend/exhibition-demo/node_modules/fsevents/fsevents.node
generated
vendored
Executable file
Binary file not shown.
62
web_frontend/exhibition-demo/node_modules/fsevents/package.json
generated
vendored
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -142,7 +142,7 @@ const ResultModal: React.FC<ResultModalProps> = ({ isOpen, onClose, onViewDetail
|
|||||||
{/* 操作按钮 */}
|
{/* 操作按钮 */}
|
||||||
<div className="flex gap-3">
|
<div className="flex gap-3">
|
||||||
<a
|
<a
|
||||||
href="../../web_result/index.html"
|
href="../web_result/index.html"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
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"
|
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"
|
||||||
|
|||||||
@@ -8,8 +8,25 @@ interface LandingPageProps {
|
|||||||
|
|
||||||
const LandingPage: React.FC<LandingPageProps> = ({ onStart }) => {
|
const LandingPage: React.FC<LandingPageProps> = ({ onStart }) => {
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen flex items-center justify-center p-8">
|
<div className="min-h-screen flex items-center justify-center p-8 relative">
|
||||||
<div className="max-w-4xl w-full">
|
{/* 背景图片和蒙版 */}
|
||||||
|
<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
|
<motion.div
|
||||||
initial={{ opacity: 0, y: 20 }}
|
initial={{ opacity: 0, y: 20 }}
|
||||||
animate={{ opacity: 1, y: 0 }}
|
animate={{ opacity: 1, y: 0 }}
|
||||||
@@ -33,7 +50,7 @@ const LandingPage: React.FC<LandingPageProps> = ({ onStart }) => {
|
|||||||
transition={{ delay: 0.4 }}
|
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">
|
<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>
|
</h1>
|
||||||
<p className="mt-4 text-xl text-neutral-600 dark:text-neutral-400">
|
<p className="mt-4 text-xl text-neutral-600 dark:text-neutral-400">
|
||||||
多Agent协同 · 智能生成 · 专业方案
|
多Agent协同 · 智能生成 · 专业方案
|
||||||
|
|||||||
@@ -767,11 +767,28 @@ const WorkflowPageV4 = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
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="bg-white border-b border-gray-200 px-6 py-3 flex items-center justify-between">
|
||||||
<div className="flex items-center gap-4">
|
<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">
|
<div className="flex items-center gap-2">
|
||||||
<button
|
<button
|
||||||
onClick={status === 'idle' ? () => setShowRequirementModal(true) : pauseDemo}
|
onClick={status === 'idle' ? () => setShowRequirementModal(true) : pauseDemo}
|
||||||
@@ -809,9 +826,9 @@ const WorkflowPageV4 = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 主内容区 */}
|
{/* 主内容区 */}
|
||||||
<div className="flex-1 flex overflow-hidden">
|
<div className="flex-1 flex overflow-hidden backdrop-blur-sm">
|
||||||
{/* 左侧:n8n工作流 */}
|
{/* 左侧: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="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="flex items-center gap-2">
|
||||||
<div className="w-3 h-3 rounded-full bg-green-500"></div>
|
<div className="w-3 h-3 rounded-full bg-green-500"></div>
|
||||||
@@ -1026,6 +1043,7 @@ const WorkflowPageV4 = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{/* 弹窗组件 */}
|
{/* 弹窗组件 */}
|
||||||
<RequirementModal
|
<RequirementModal
|
||||||
|
|||||||
@@ -260,37 +260,37 @@
|
|||||||
<div class="container mx-auto px-6 relative z-10" title="核心数据展示区">
|
<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="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="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">
|
<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-white"></i>
|
<i class="fas fa-building text-4xl text-purple-600"></i>
|
||||||
</div>
|
</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>+
|
<span class="counter" data-target="350">0</span>+
|
||||||
</div>
|
</div>
|
||||||
<div class="text-gray-700 font-semibold text-lg">参展企业</div>
|
<div class="text-gray-700 font-semibold text-lg">参展企业</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-center group animate-fadeInUp animation-delay-400 transform hover:scale-105 transition-all duration-300">
|
<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">
|
<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-white"></i>
|
<i class="fas fa-users text-4xl text-blue-600"></i>
|
||||||
</div>
|
</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>+
|
<span class="counter" data-target="50000">0</span>+
|
||||||
</div>
|
</div>
|
||||||
<div class="text-gray-700 font-semibold text-lg">预计观众</div>
|
<div class="text-gray-700 font-semibold text-lg">预计观众</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-center group animate-fadeInUp animation-delay-600 transform hover:scale-105 transition-all duration-300">
|
<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">
|
<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-white"></i>
|
<i class="fas fa-hand-holding-usd text-4xl text-green-600"></i>
|
||||||
</div>
|
</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>亿+
|
<span class="counter" data-target="10">0</span>亿+
|
||||||
</div>
|
</div>
|
||||||
<div class="text-gray-700 font-semibold text-lg">预计成交额</div>
|
<div class="text-gray-700 font-semibold text-lg">预计成交额</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-center group animate-fadeInUp animation-delay-800 transform hover:scale-105 transition-all duration-300">
|
<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">
|
<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-white"></i>
|
<i class="fas fa-microphone-alt text-4xl text-orange-600"></i>
|
||||||
</div>
|
</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>+
|
<span class="counter" data-target="20">0</span>+
|
||||||
</div>
|
</div>
|
||||||
<div class="text-gray-700 font-semibold text-lg">专业论坛</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>
|
<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">
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||||
<!-- Card 1 -->
|
<!-- 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">
|
<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">
|
<img src="../data/会展策划/image/3.小米汽车.jpg" alt="小米汽车" class="w-full h-full object-cover">
|
||||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
<div class="absolute top-4 left-4">
|
||||||
<div class="absolute bottom-4 left-4 text-white">
|
<div class="bg-blue-500 text-white px-3 py-1 rounded-full text-xs font-semibold">热门展区</div>
|
||||||
<div class="bg-blue-500 px-3 py-1 rounded-full text-xs font-semibold inline-block mb-2">热门展区</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<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 class="text-gray-600 mb-4">
|
||||||
涵盖整车制造、核心零部件、充电设施、智能网联等全产业链环节,打造一站式采购平台。
|
涵盖整车制造、核心零部件、充电设施、智能网联等全产业链环节,打造一站式采购平台。
|
||||||
</p>
|
</p>
|
||||||
<a href="pages/exhibition.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group/link">
|
<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/link:translate-x-2"></i>
|
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Card 2 -->
|
<!-- 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">
|
<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">
|
<img src="../data/会展策划/image/2.试驾小景.jpg" alt="试驾体验" class="w-full h-full object-cover">
|
||||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
<div class="absolute top-4 left-4">
|
||||||
<div class="absolute bottom-4 left-4 text-white">
|
<div class="bg-emerald-500 text-white px-3 py-1 rounded-full text-xs font-semibold">互动体验</div>
|
||||||
<div class="bg-emerald-500 px-3 py-1 rounded-full text-xs font-semibold inline-block mb-2">互动体验</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<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 class="text-gray-600 mb-4">
|
||||||
设置自动驾驶体验区、智能交通演示区,让观众亲身体验最新科技成果。
|
设置自动驾驶体验区、智能交通演示区,让观众亲身体验最新科技成果。
|
||||||
</p>
|
</p>
|
||||||
<a href="pages/operation.html" class="text-emerald-600 font-semibold hover:text-emerald-800 flex items-center group/link">
|
<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/link:translate-x-2"></i>
|
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Card 3 -->
|
<!-- 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">
|
<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">
|
<img src="../data/会展策划/image/展会内部参观.jpg" alt="论坛峰会" class="w-full h-full object-cover">
|
||||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
<div class="absolute top-4 left-4">
|
||||||
<div class="absolute bottom-4 left-4 text-white">
|
<div class="bg-purple-500 text-white px-3 py-1 rounded-full text-xs font-semibold">主题论坛</div>
|
||||||
<div class="bg-purple-500 px-3 py-1 rounded-full text-xs font-semibold inline-block mb-2">主题论坛</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<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 class="text-gray-600 mb-4">
|
||||||
汇聚行业领袖、专家学者,探讨产业发展趋势,发布权威研究报告。
|
汇聚行业领袖、专家学者,探讨产业发展趋势,发布权威研究报告。
|
||||||
</p>
|
</p>
|
||||||
<a href="pages/marketing.html" class="text-purple-600 font-semibold hover:text-purple-800 flex items-center group/link">
|
<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/link:translate-x-2"></i>
|
了解更多 <i class="fas fa-arrow-right ml-2 transform transition-transform group-hover:translate-x-2"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -456,8 +453,8 @@
|
|||||||
<div class="grid md:grid-cols-3 gap-6 mb-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">
|
<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">
|
<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 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="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="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>
|
<h3 class="text-xl font-bold mb-2">展馆内部参观</h3>
|
||||||
<p class="text-sm">宽敞明亮的展示空间,科技感十足</p>
|
<p class="text-sm">宽敞明亮的展示空间,科技感十足</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -466,8 +463,8 @@
|
|||||||
|
|
||||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-400">
|
<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">
|
<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 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="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="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>
|
<h3 class="text-xl font-bold mb-2">智能签到系统</h3>
|
||||||
<p class="text-sm">快速便捷的入场体验</p>
|
<p class="text-sm">快速便捷的入场体验</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -476,8 +473,8 @@
|
|||||||
|
|
||||||
<div class="group relative overflow-hidden rounded-2xl shadow-2xl animate-fadeInUp animation-delay-600">
|
<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">
|
<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 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="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="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>
|
<h3 class="text-xl font-bold mb-2">明星展品</h3>
|
||||||
<p class="text-sm">最新款新能源汽车亮相</p>
|
<p class="text-sm">最新款新能源汽车亮相</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -489,19 +486,35 @@
|
|||||||
<div class="grid md:grid-cols-4 gap-4">
|
<div class="grid md:grid-cols-4 gap-4">
|
||||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-800">
|
<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">
|
<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>
|
||||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-900">
|
<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">
|
<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>
|
||||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-1000">
|
<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">
|
<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>
|
||||||
<div class="group relative overflow-hidden rounded-xl shadow-xl animate-fadeInUp animation-delay-1100">
|
<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">
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -19,6 +19,13 @@
|
|||||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
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 {
|
.page-enter {
|
||||||
animation: pageEnter 0.8s ease-out;
|
animation: pageEnter 0.8s ease-out;
|
||||||
@@ -106,39 +113,44 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="bg-gray-50">
|
<body class="bg-gray-50">
|
||||||
<!-- Navigation -->
|
<!-- 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="container mx-auto px-6 py-4">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div class="flex items-center group">
|
<div class="flex items-center">
|
||||||
<div class="relative mr-3">
|
<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-car-side text-2xl text-purple-600 group-hover:scale-110 transition-transform"></i>
|
<i class="fas fa-charging-station text-white"></i>
|
||||||
<i class="fas fa-bolt text-xs text-green-500 absolute -top-1 -right-1 animate-pulse"></i>
|
</div>
|
||||||
|
<div>
|
||||||
|
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||||
|
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-xl font-bold text-gray-800">Green Mobility 2024</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden md:flex space-x-8">
|
<div class="hidden md:flex space-x-8">
|
||||||
<a href="../index.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-home mr-1"></i>首页
|
<i class="fas fa-home mr-2"></i>首页
|
||||||
</a>
|
</a>
|
||||||
<a href="overview.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="overview.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-file-alt mr-1"></i>策划概述
|
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||||
</a>
|
</a>
|
||||||
<a href="exhibition.html" class="nav-link active text-purple-600 font-semibold">
|
<a href="exhibition.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-building mr-1"></i>展会介绍
|
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||||
</a>
|
</a>
|
||||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-bullhorn mr-1"></i>营销方案
|
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||||
</a>
|
</a>
|
||||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-cogs mr-1"></i>现场运营
|
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||||
</a>
|
</a>
|
||||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-calculator mr-1"></i>预算分析
|
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||||
</a>
|
</a>
|
||||||
<a href="risk.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-shield-alt mr-1"></i>风险评估
|
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="md:hidden text-gray-700">
|
||||||
|
<i class="fas fa-bars text-2xl"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -19,6 +19,13 @@
|
|||||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
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 {
|
.glass-card {
|
||||||
background: rgba(255, 255, 255, 0.9);
|
background: rgba(255, 255, 255, 0.9);
|
||||||
@@ -109,39 +116,44 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="bg-gray-50">
|
<body class="bg-gray-50">
|
||||||
<!-- Navigation -->
|
<!-- 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="container mx-auto px-6 py-4">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div class="flex items-center group">
|
<div class="flex items-center">
|
||||||
<div class="relative mr-3">
|
<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-car-side text-2xl text-purple-600 group-hover:scale-110 transition-transform"></i>
|
<i class="fas fa-charging-station text-white"></i>
|
||||||
<i class="fas fa-bolt text-xs text-green-500 absolute -top-1 -right-1 animate-pulse"></i>
|
</div>
|
||||||
|
<div>
|
||||||
|
<h1 class="text-lg font-bold">NEVIT 2024</h1>
|
||||||
|
<p class="text-xs text-gray-500">新能源汽车产业博览会</p>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-xl font-bold text-gray-800">Green Mobility 2024</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden md:flex space-x-8">
|
<div class="hidden md:flex space-x-8">
|
||||||
<a href="../index.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="../index.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-home mr-1"></i>首页
|
<i class="fas fa-home mr-2"></i>首页
|
||||||
</a>
|
</a>
|
||||||
<a href="overview.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="overview.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-file-alt mr-1"></i>策划概述
|
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||||
</a>
|
</a>
|
||||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-building mr-1"></i>展会介绍
|
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||||
</a>
|
</a>
|
||||||
<a href="marketing.html" class="nav-link active text-purple-600 font-semibold">
|
<a href="marketing.html" class="nav-link active text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-bullhorn mr-1"></i>营销方案
|
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||||
</a>
|
</a>
|
||||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-cogs mr-1"></i>现场运营
|
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||||
</a>
|
</a>
|
||||||
<a href="budget.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="budget.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-calculator mr-1"></i>预算分析
|
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||||
</a>
|
</a>
|
||||||
<a href="risk.html" class="nav-link text-gray-700 hover:text-purple-600">
|
<a href="risk.html" class="text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-shield-alt mr-1"></i>风险评估
|
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="md:hidden text-gray-700">
|
||||||
|
<i class="fas fa-bars text-2xl"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -13,6 +13,14 @@
|
|||||||
* {
|
* {
|
||||||
font-family: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
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 {
|
.timeline-item {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
@@ -78,8 +86,8 @@
|
|||||||
<nav class="fixed top-0 w-full glass-morphism shadow-md z-50 transition-all duration-300">
|
<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="container mx-auto px-6 py-4">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div class="flex items-center animate-fadeInLeft">
|
<div class="flex items-center">
|
||||||
<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="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>
|
<i class="fas fa-charging-station text-white"></i>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@@ -88,28 +96,31 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden md:flex space-x-8">
|
<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>首页
|
<i class="fas fa-home mr-2"></i>首页
|
||||||
</a>
|
</a>
|
||||||
<a href="overview.html" class="nav-link active text-purple-600 font-semibold">
|
<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>策划概述
|
<i class="fas fa-info-circle mr-2"></i>展会概览
|
||||||
</a>
|
</a>
|
||||||
<a href="exhibition.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
<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>展会介绍
|
<i class="fas fa-th-large mr-2"></i>展览内容
|
||||||
</a>
|
</a>
|
||||||
<a href="marketing.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
<a href="marketing.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-bullhorn mr-2"></i>营销方案
|
<i class="fas fa-bullhorn mr-2"></i>营销推广
|
||||||
</a>
|
</a>
|
||||||
<a href="operation.html" class="nav-link text-gray-700 hover:text-purple-600 transition-colors">
|
<a href="operation.html" class="nav-link text-gray-700 hover:text-emerald-500 transition-colors">
|
||||||
<i class="fas fa-cogs mr-2"></i>现场运营
|
<i class="fas fa-cogs mr-2"></i>运营服务
|
||||||
</a>
|
</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>预算分析
|
<i class="fas fa-chart-pie mr-2"></i>预算分析
|
||||||
</a>
|
</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>风险评估
|
<i class="fas fa-shield-alt mr-2"></i>风险评估
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="md:hidden text-gray-700">
|
||||||
|
<i class="fas fa-bars text-2xl"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user