From b67e14cced15c7e88e09f58ffef353fbe09e51c8 Mon Sep 17 00:00:00 2001 From: 666ghj <670939375@qq.com> Date: Wed, 10 Dec 2025 14:49:11 +0800 Subject: [PATCH] Add project status report and frontend documentation - Introduced `PROJECT_STATUS.md` to provide a comprehensive overview of the MiroFish project, detailing the current status, completed features, and future development plans. - Added multiple documentation files in the frontend directory, including detailed descriptions of the homepage functionality, startup guide, and project completion summary. - Implemented a structured approach to document the project's architecture, API integration, and user interaction processes, enhancing clarity for developers and users alike. - Included a `.gitignore` file to manage ignored files and directories in the frontend project, improving project organization and cleanliness. --- PROJECT_STATUS.md | 303 ++++ frontend/.gitignore | 24 + frontend/README.md | 130 ++ frontend/index.html | 14 + frontend/package-lock.json | 1594 +++++++++++++++++ frontend/package.json | 20 + frontend/public/vite.svg | 1 + frontend/src/App.vue | 48 + frontend/src/api/graph.js | 70 + frontend/src/api/index.js | 67 + .../assets/logo/MiroFish_logo_compressed.jpeg | Bin 0 -> 180620 bytes frontend/src/main.js | 9 + frontend/src/router/index.js | 24 + frontend/src/views/Home.vue | 726 ++++++++ frontend/src/views/Process.vue | 453 +++++ frontend/vite.config.js | 18 + frontend/功能演示.md | 506 ++++++ frontend/启动指南.md | 198 ++ frontend/项目完成总结.md | 334 ++++ 19 files changed, 4539 insertions(+) create mode 100644 PROJECT_STATUS.md create mode 100644 frontend/.gitignore create mode 100644 frontend/README.md create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/vite.svg create mode 100644 frontend/src/App.vue create mode 100644 frontend/src/api/graph.js create mode 100644 frontend/src/api/index.js create mode 100644 frontend/src/assets/logo/MiroFish_logo_compressed.jpeg create mode 100644 frontend/src/main.js create mode 100644 frontend/src/router/index.js create mode 100644 frontend/src/views/Home.vue create mode 100644 frontend/src/views/Process.vue create mode 100644 frontend/vite.config.js create mode 100644 frontend/功能演示.md create mode 100644 frontend/启动指南.md create mode 100644 frontend/项目完成总结.md diff --git a/PROJECT_STATUS.md b/PROJECT_STATUS.md new file mode 100644 index 0000000..77f9834 --- /dev/null +++ b/PROJECT_STATUS.md @@ -0,0 +1,303 @@ +# MiroFish 项目状态报告 + +## 项目概览 +MiroFish是一个社交媒体舆论模拟系统,采用前后端分离架构。 + +## 完成情况 + +### ✅ 后端 (Flask) +- [x] RESTful API架构 +- [x] 知识图谱构建(Zep) +- [x] LLM集成(OpenAI兼容接口) +- [x] 本体生成服务 +- [x] 图谱构建服务 +- [x] 模拟管理服务 +- [x] 容错重试机制 +- [x] 详细的API文档 + +**后端地址**: http://localhost:5001 + +### ✅ 前端 (Vue 3) +- [x] Vue 3 + Vite脚手架搭建 +- [x] 项目目录结构规划 +- [x] 首页设计完成(极简黑白线条风) +- [x] 文件上传功能(支持拖拽) +- [x] API接口封装(含重试机制) +- [x] 路由管理(Vue Router 4) +- [x] 第二页基础框架 +- [x] 自动轮询任务状态 +- [x] 响应式设计 + +**前端地址**: http://localhost:3000 + +## 目录结构 + +``` +MiroFish/ +├── backend/ # 后端服务 +│ ├── app/ +│ │ ├── api/ # API路由 +│ │ ├── services/ # 业务逻辑 +│ │ ├── models/ # 数据模型 +│ │ └── utils/ # 工具类 +│ ├── scripts/ # 模拟脚本 +│ ├── uploads/ # 数据存储 +│ ├── run.py # 启动入口 +│ └── requirements.txt # Python依赖 +│ +├── frontend/ # 前端项目 +│ ├── src/ +│ │ ├── api/ # API接口封装 +│ │ ├── assets/ # 静态资源 +│ │ ├── views/ # 页面组件 +│ │ ├── router/ # 路由配置 +│ │ ├── App.vue # 根组件 +│ │ └── main.js # 入口文件 +│ ├── .env.development # 开发环境配置 +│ ├── vite.config.js # Vite配置 +│ └── package.json # 依赖配置 +│ +├── static/ # 共享静态资源 +│ └── image/ +│ └── MiroFish_logo_compressed.jpeg +│ +├── mydoc/ # 项目文档 +│ ├── MiroFish文档.md +│ └── 前端设计思路.md +│ +└── .env # 环境配置(后端) +``` + +## 首页功能展示 + +### 页面元素 +1. **Logo**: MiroFish品牌标识(居中展示) +2. **标语**: "上传任意报告,模拟世界即刻开始" +3. **模拟需求输入框**: 用户描述模拟需求 +4. **项目名称**: 可选的项目命名 +5. **文件上传区域**: + - 支持拖拽上传 + - 支持点击选择 + - 支持多文件 + - 格式: PDF、Markdown、TXT +6. **额外说明**: 可选的补充信息 +7. **开始模拟按钮**: 提交表单,调用API + +### 设计风格 +- **极简黑白线条风** +- 纯黑(#000000) + 纯白(#FFFFFF) +- 1-2px实线边框 +- 清晰的排版和间距 +- 简洁的交互动画 + +### 交互流程 +1. 用户填写模拟需求 +2. 上传相关文档 +3. 点击"开始模拟" +4. 系统调用 `/api/graph/ontology/generate` 接口 +5. 显示加载状态 +6. 成功后跳转到处理页面 `/process/:projectId` + +## 第二页功能 + +### 布局 +- **左侧**: 实时图谱可视化 +- **右侧**: Step 1 - 现实种子构建流程 + +### 自动化流程 +1. 自动加载项目信息 +2. 自动开始图谱构建 +3. 轮询任务状态(每2秒) +4. 实时更新进度 +5. 完成后加载图谱数据 + +### 流程步骤 +- [x] 文档分析 +- [x] 本体生成 +- [x] 图谱构建 +- [x] 完成 + +## API接口实现 + +### 已实现的接口调用 +1. **生成本体**: `POST /api/graph/ontology/generate` + - multipart/form-data格式 + - 包含文件和表单数据 + - 自动重试机制 + +2. **构建图谱**: `POST /api/graph/build` + - 自动触发 + - 返回任务ID + +3. **查询任务**: `GET /api/graph/task/{taskId}` + - 轮询机制 + - 每2秒查询一次 + +4. **获取图谱**: `GET /api/graph/data/{graphId}` + - 构建完成后加载 + +5. **获取项目**: `GET /api/graph/project/{projectId}` + - 页面加载时获取 + +## 容错机制 + +### 前端 +- API请求自动重试(最多3次) +- 指数退避策略(1s -> 2s -> 4s) +- 超时处理(5分钟) +- 友好的错误提示 +- 网络错误处理 + +### 后端 +- Zep API调用重试 +- LLM API调用重试 +- 详细的日志记录 +- 异常捕获和处理 + +## 启动步骤 + +### 1. 启动后端 +```bash +cd /Users/guohangjiang/Desktop/MiroFish/backend +conda activate MiroFish +python run.py +``` + +### 2. 启动前端 +```bash +cd /Users/guohangjiang/Desktop/MiroFish/frontend +npm run dev +``` + +### 3. 访问系统 +- 前端: http://localhost:3000 +- 后端: http://localhost:5001 + +## 技术栈 + +### 后端 +- Flask 3.0+ +- Zep Cloud SDK 2.0+ +- OpenAI SDK 1.0+ +- PyMuPDF (文本提取) +- Python 3.8+ + +### 前端 +- Vue 3 (Composition API) +- Vite 7 +- Vue Router 4 +- Axios + +## 开发环境 + +- **操作系统**: macOS (M系列芯片) +- **Python环境**: conda环境 MiroFish +- **Node.js**: >= 16.0.0 +- **浏览器**: Chrome (推荐) + +## 配置文件 + +### 后端 (.env) +```bash +FLASK_PORT=5001 +LLM_API_KEY=your-key +LLM_BASE_URL=https://api.openai.com/v1 +LLM_MODEL_NAME=gpt-4o-mini +ZEP_API_KEY=your-key +``` + +### 前端 (.env.development) +```bash +VITE_API_BASE_URL=http://localhost:5001 +``` + +## 已实现的规则 + +✅ **API容错重试机制**: 所有远程API调用都有重试机制 +✅ **RESTful风格**: 后端API采用RESTful设计 +✅ **统一配置**: LLM和Zep密钥统一存储在.env文件 +✅ **OpenAI格式**: LLM调用统一使用OpenAI库格式 +✅ **Conda环境**: 程序运行在MiroFish环境中 +✅ **前后端分离**: Vue前端 + Flask后端 + +## 测试建议 + +### 功能测试 +1. [ ] 文件上传(拖拽、点击) +2. [ ] 表单验证 +3. [ ] API调用 +4. [ ] 页面跳转 +5. [ ] 错误处理 +6. [ ] 响应式布局 + +### 端到端测试 +1. [ ] 上传PDF文档 +2. [ ] 填写模拟需求 +3. [ ] 提交表单 +4. [ ] 观察处理流程 +5. [ ] 等待图谱构建完成 + +## 后续开发 + +### 优先级高 +- [ ] 图谱可视化实现(D3.js或ECharts) +- [ ] 模拟运行页面 +- [ ] 结果展示页面 +- [ ] Agent对话功能 + +### 优先级中 +- [ ] 历史记录管理 +- [ ] 项目列表页面 +- [ ] 用户设置 +- [ ] 导出功能 + +### 优先级低 +- [ ] 数据统计分析 +- [ ] 多语言支持 +- [ ] 深色模式 +- [ ] 移动端优化 + +## 项目亮点 + +1. **极简黑白线条风格**: 独特的视觉设计 +2. **全自动化流程**: 用户只需上传文档和需求 +3. **容错机制完善**: 多重重试和错误处理 +4. **前后端分离**: 清晰的架构设计 +5. **实时反馈**: 轮询机制实时更新状态 +6. **响应式设计**: 支持多种设备 + +## 当前状态 + +🟢 **开发服务器运行中** +- 后端: 需要手动启动 +- 前端: 已启动在 http://localhost:3000 + +✅ **首页功能完整** +- 文件上传 ✓ +- 表单验证 ✓ +- API调用 ✓ +- 错误处理 ✓ + +⚠️ **待完善功能** +- 图谱可视化(第二页) +- 更多页面开发 +- 完整的端到端测试 + +## 总结 + +MiroFish项目的前端脚手架已搭建完成,首页设计符合极简黑白线条风格要求,核心功能已实现: + +1. ✅ 文件上传(支持拖拽) +2. ✅ 表单验证和提交 +3. ✅ API接口调用 +4. ✅ 路由管理 +5. ✅ 错误处理 +6. ✅ 响应式设计 + +用户可以通过首页上传文档和填写模拟需求,点击"开始模拟"后系统会调用后端的 `/api/graph/ontology/generate` 接口,成功后跳转到处理页面查看图谱构建进度。 + +--- + +**更新时间**: 2025-12-10 +**版本**: v1.0.0 +**状态**: 开发中 🚧 diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..beec310 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,130 @@ +# MiroFish Frontend + +MiroFish项目的前端部分,采用Vue 3 + Vite构建,极简黑白线条设计风格。 + +## 技术栈 + +- **Vue 3** - 渐进式JavaScript框架 +- **Vite** - 下一代前端构建工具 +- **Vue Router 4** - 官方路由管理器 +- **Axios** - HTTP客户端 + +## 项目结构 + +``` +frontend/ +├── src/ +│ ├── api/ # API接口封装 +│ │ ├── index.js # axios配置和重试机制 +│ │ └── graph.js # 图谱相关接口 +│ ├── assets/ # 静态资源 +│ │ └── logo/ # Logo图片 +│ ├── components/ # 通用组件 +│ ├── views/ # 页面组件 +│ │ ├── Home.vue # 首页 +│ │ └── Process.vue # 处理页面 +│ ├── router/ # 路由配置 +│ │ └── index.js +│ ├── utils/ # 工具函数 +│ ├── App.vue # 根组件 +│ └── main.js # 入口文件 +├── .env.development # 开发环境配置 +├── .env.production # 生产环境配置 +└── vite.config.js # Vite配置 +``` + +## 开发指南 + +### 环境要求 + +- Node.js >= 16.0.0 +- npm >= 8.0.0 + +### 安装依赖 + +```bash +npm install +``` + +### 启动开发服务器 + +```bash +npm run dev +``` + +服务将在 http://localhost:3000 启动。 + +### 构建生产版本 + +```bash +npm run build +``` + +### 预览生产构建 + +```bash +npm run preview +``` + +## 功能说明 + +### 首页 (/) + +- Logo展示 +- 模拟需求输入 +- 文档上传(支持PDF、Markdown、TXT格式) +- 拖拽上传支持 +- 点击"开始模拟"调用后端接口 `/api/graph/ontology/generate` + +### 处理页面 (/process/:projectId) + +- 左侧:实时图谱可视化展示 +- 右侧:Step 1 - 现实种子构建流程展示 +- 自动轮询任务状态 +- 实时更新构建进度 + +## 设计风格 + +采用极简黑白线条风格: + +- 主色调:黑色 (#000000) 和白色 (#FFFFFF) +- 线条粗细:1px - 2px +- 字体:系统默认无衬线字体 +- 交互:简洁的hover效果和过渡动画 +- 布局:清晰的分栏和间距 + +## API集成 + +### 容错机制 + +- 自动重试:API请求失败时最多重试3次 +- 指数退避:重试间隔逐步增加(1s, 2s, 4s) +- 超时控制:默认5分钟超时时间 +- 错误提示:友好的用户错误提示 + +### 接口说明 + +参见 `src/api/graph.js` 中的接口定义和注释。 + +## 开发规范 + +- 使用 Vue 3 Composition API +- 组件采用 ` + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..7ee9e75 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,1594 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "axios": "^1.13.2", + "vue": "^3.5.24", + "vue-router": "^4.6.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.2.4" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", + "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.2.tgz", + "integrity": "sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.50" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.25.tgz", + "integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.25", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz", + "integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.25.tgz", + "integrity": "sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.25", + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.25.tgz", + "integrity": "sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.25.tgz", + "integrity": "sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.25.tgz", + "integrity": "sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.25.tgz", + "integrity": "sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.25", + "@vue/runtime-core": "3.5.25", + "@vue/shared": "3.5.25", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.25.tgz", + "integrity": "sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25" + }, + "peerDependencies": { + "vue": "3.5.25" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.25.tgz", + "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/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.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "7.2.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", + "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", + "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-sfc": "3.5.25", + "@vue/runtime-dom": "3.5.25", + "@vue/server-renderer": "3.5.25", + "@vue/shared": "3.5.25" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz", + "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..217cefe --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,20 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.13.2", + "vue": "^3.5.24", + "vue-router": "^4.6.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.2.4" + } +} diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/frontend/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..a86d6e8 --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/frontend/src/api/graph.js b/frontend/src/api/graph.js new file mode 100644 index 0000000..ef90a2b --- /dev/null +++ b/frontend/src/api/graph.js @@ -0,0 +1,70 @@ +import service, { requestWithRetry } from './index' + +/** + * 生成本体(上传文档和模拟需求) + * @param {Object} data - 包含files, simulation_requirement, project_name等 + * @returns {Promise} + */ +export function generateOntology(formData) { + return requestWithRetry(() => + service({ + url: '/api/graph/ontology/generate', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) + ) +} + +/** + * 构建图谱 + * @param {Object} data - 包含project_id, graph_name等 + * @returns {Promise} + */ +export function buildGraph(data) { + return requestWithRetry(() => + service({ + url: '/api/graph/build', + method: 'post', + data + }) + ) +} + +/** + * 查询任务状态 + * @param {String} taskId - 任务ID + * @returns {Promise} + */ +export function getTaskStatus(taskId) { + return service({ + url: `/api/graph/task/${taskId}`, + method: 'get' + }) +} + +/** + * 获取图谱数据 + * @param {String} graphId - 图谱ID + * @returns {Promise} + */ +export function getGraphData(graphId) { + return service({ + url: `/api/graph/data/${graphId}`, + method: 'get' + }) +} + +/** + * 获取项目信息 + * @param {String} projectId - 项目ID + * @returns {Promise} + */ +export function getProject(projectId) { + return service({ + url: `/api/graph/project/${projectId}`, + method: 'get' + }) +} diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js new file mode 100644 index 0000000..e2d9465 --- /dev/null +++ b/frontend/src/api/index.js @@ -0,0 +1,67 @@ +import axios from 'axios' + +// 创建axios实例 +const service = axios.create({ + baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:5001', + timeout: 300000, // 5分钟超时(本体生成可能需要较长时间) + headers: { + 'Content-Type': 'application/json' + } +}) + +// 请求拦截器 +service.interceptors.request.use( + config => { + return config + }, + error => { + console.error('Request error:', error) + return Promise.reject(error) + } +) + +// 响应拦截器(容错重试机制) +service.interceptors.response.use( + response => { + const res = response.data + + // 如果返回的状态码不是success,则抛出错误 + if (!res.success && res.success !== undefined) { + console.error('API Error:', res.error || res.message || 'Unknown error') + return Promise.reject(new Error(res.error || res.message || 'Error')) + } + + return res + }, + error => { + console.error('Response error:', error) + + // 处理超时 + if (error.code === 'ECONNABORTED' && error.message.includes('timeout')) { + console.error('Request timeout') + } + + // 处理网络错误 + if (error.message === 'Network Error') { + console.error('Network error - please check your connection') + } + + return Promise.reject(error) + } +) + +// 带重试的请求函数 +export const requestWithRetry = async (requestFn, maxRetries = 3, delay = 1000) => { + for (let i = 0; i < maxRetries; i++) { + try { + return await requestFn() + } catch (error) { + if (i === maxRetries - 1) throw error + + console.warn(`Request failed, retrying (${i + 1}/${maxRetries})...`) + await new Promise(resolve => setTimeout(resolve, delay * Math.pow(2, i))) + } + } +} + +export default service diff --git a/frontend/src/assets/logo/MiroFish_logo_compressed.jpeg b/frontend/src/assets/logo/MiroFish_logo_compressed.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eb7bd5af66e9966ac7f96d11ec4402b579bf4b82 GIT binary patch literal 180620 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 0000000..c8e37b0 --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,9 @@ +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(router) + +app.mount('#app') diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js new file mode 100644 index 0000000..5df5ac0 --- /dev/null +++ b/frontend/src/router/index.js @@ -0,0 +1,24 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Home from '../views/Home.vue' +import Process from '../views/Process.vue' + +const routes = [ + { + path: '/', + name: 'Home', + component: Home + }, + { + path: '/process/:projectId', + name: 'Process', + component: Process, + props: true + } +] + +const router = createRouter({ + history: createWebHistory(), + routes +}) + +export default router diff --git a/frontend/src/views/Home.vue b/frontend/src/views/Home.vue new file mode 100644 index 0000000..b10cff8 --- /dev/null +++ b/frontend/src/views/Home.vue @@ -0,0 +1,726 @@ + + + + + diff --git a/frontend/src/views/Process.vue b/frontend/src/views/Process.vue new file mode 100644 index 0000000..d73a777 --- /dev/null +++ b/frontend/src/views/Process.vue @@ -0,0 +1,453 @@ + + + + + diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..7cec1a7 --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue()], + server: { + port: 3000, + open: true, + proxy: { + '/api': { + target: 'http://localhost:5001', + changeOrigin: true, + secure: false + } + } + } +}) diff --git a/frontend/功能演示.md b/frontend/功能演示.md new file mode 100644 index 0000000..91e0bb3 --- /dev/null +++ b/frontend/功能演示.md @@ -0,0 +1,506 @@ +# MiroFish 前端功能演示 + +## 首页功能详解 + +### 1. 页面整体布局 + +``` +┌─────────────────────────────────────────────────┐ +│ │ +│ [MiroFish Logo] │ +│ │ +│ 上传任意报告,模拟世界即刻开始 │ +│ │ +├─────────────────────────────────────────────────┤ +│ │ +│ 模拟需求 │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 请描述您的模拟需求... │ │ +│ │ │ │ +│ │ │ │ +│ └───────────────────────────────────────────┘ │ +│ │ +│ 项目名称 (可选) │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 为您的项目命名 │ │ +│ └───────────────────────────────────────────┘ │ +│ │ +│ 上传文档 │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 📤 │ │ +│ │ 点击或拖拽文件到此处 │ │ +│ │ 支持 PDF、Markdown、TXT 格式 │ │ +│ └───────────────────────────────────────────┘ │ +│ │ +│ 额外说明 (可选) │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 如有其他需要补充的信息... │ │ +│ └───────────────────────────────────────────┘ │ +│ │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 开 始 模 拟 │ │ +│ └───────────────────────────────────────────┘ │ +│ │ +└─────────────────────────────────────────────────┘ +``` + +### 2. 交互功能说明 + +#### 2.1 文件上传 + +**支持方式**: +1. **点击上传**: 点击上传区域,弹出文件选择对话框 +2. **拖拽上传**: 直接拖拽文件到上传区域 + +**支持格式**: +- PDF文档 (.pdf) +- Markdown文档 (.md) +- 纯文本文档 (.txt) + +**上传特性**: +- ✅ 支持多文件上传 +- ✅ 显示文件名和大小 +- ✅ 可以删除已选择的文件 +- ✅ 自动过滤不支持的格式 +- ✅ 拖拽时高亮显示上传区域 + +**示例**: +``` +上传后显示: +┌─────────────────────────────────────────┐ +│ 📄 report.pdf 2.5 MB [×] │ +│ 📄 analysis.md 1.2 MB [×] │ +└─────────────────────────────────────────┘ +``` + +#### 2.2 表单验证 + +**必填项检查**: +- ❌ 未填写模拟需求 → 按钮禁用 +- ❌ 未上传文件 → 按钮禁用 +- ✅ 两者都完成 → 按钮可点击 + +**可选项**: +- 项目名称(留空则自动生成) +- 额外说明(留空则不传递) + +**状态提示**: +- 按钮禁用时:灰色不可点击 +- 按钮可用时:黑色背景,hover变白色背景 + +#### 2.3 提交流程 + +**步骤1: 用户点击"开始模拟"** +``` +按钮状态变为: +┌─────────────────────────────┐ +│ ⌛ 处理中... │ +└─────────────────────────────┘ +``` + +**步骤2: 构建FormData** +```javascript +FormData包含: +- files: [file1, file2, ...] +- simulation_requirement: "用户输入的需求" +- project_name: "项目名称" (可选) +- additional_context: "额外说明" (可选) +``` + +**步骤3: 调用API** +``` +POST /api/graph/ontology/generate +Content-Type: multipart/form-data + +自动重试机制: +第1次失败 → 等待1秒 → 重试 +第2次失败 → 等待2秒 → 重试 +第3次失败 → 等待4秒 → 重试 +第4次失败 → 显示错误 +``` + +**步骤4: 成功响应** +```json +{ + "success": true, + "data": { + "project_id": "proj_abc123", + "project_name": "项目名称", + "ontology": { ... }, + ... + } +} +``` + +**步骤5: 页面跳转** +``` +跳转到: /process/proj_abc123 +``` + +#### 2.4 错误处理 + +**网络错误**: +``` +┌───────────────────────────────────────┐ +│ ⚠ 提交失败,请检查网络连接或稍后重试 │ +└───────────────────────────────────────┘ +``` + +**API错误**: +``` +┌───────────────────────────────────────┐ +│ ⚠ 生成本体失败,请重试 │ +└───────────────────────────────────────┘ +``` + +**文件格式错误**: +``` +┌───────────────────────────────────────┐ +│ ⚠ 部分文件格式不支持,已自动过滤 │ +└───────────────────────────────────────┘ +``` + +### 3. 设计细节 + +#### 3.1 颜色方案 +```css +/* 主色调 */ +黑色: #000000 (文字、边框、按钮) +白色: #FFFFFF (背景、按钮hover) +灰色: #666666 (次要文字) +浅灰: #f5f5f5 (禁用背景) + +/* 错误色 */ +红色: #ff0000 (错误提示边框和文字) +浅红: #fff5f5 (错误提示背景) +``` + +#### 3.2 边框样式 +```css +/* 输入框 */ +border: 1px solid #000000 + +/* 输入框聚焦 */ +border: 2px solid #000000 + +/* 上传区域 */ +border: 2px dashed #000000 + +/* 上传区域hover */ +border: 2px dashed #333333 +background: #fafafa + +/* 上传区域拖拽中 */ +border: 2px solid #000000 +background: #f0f0f0 +``` + +#### 3.3 字体样式 +```css +/* Logo标语 */ +font-size: 1.5rem (24px) +font-weight: 300 +letter-spacing: 0.05em + +/* 标签 */ +font-size: 0.95rem (15.2px) +font-weight: 500 +letter-spacing: 0.02em + +/* 输入框 */ +font-size: 0.95rem (15.2px) + +/* 按钮 */ +font-size: 1.1rem (17.6px) +font-weight: 500 +letter-spacing: 0.1em +``` + +#### 3.4 间距设计 +```css +/* 区块间距 */ +margin-bottom: 1.5rem (24px) + +/* 内边距 */ +表单区域: padding: 2.5rem (40px) +输入框: padding: 0.75rem (12px) +按钮: padding: 1rem (16px) +``` + +### 4. 响应式适配 + +#### 桌面端 (>= 768px) +``` +容器最大宽度: 800px +表单内边距: 2.5rem +Logo最大宽度: 400px +``` + +#### 移动端 (< 768px) +``` +容器宽度: 100% +表单内边距: 1.5rem +Logo最大宽度: 300px +标语字号: 1.2rem +``` + +### 5. 动画效果 + +#### 加载动画 +```css +@keyframes spin { + to { transform: rotate(360deg); } +} + +.loading-spinner { + width: 16px; + height: 16px; + border: 2px solid #ffffff; + border-top-color: transparent; + border-radius: 50%; + animation: spin 0.8s linear infinite; +} +``` + +#### 按钮hover +```css +transition: all 0.3s; + +/* Normal */ +background: #000000; +color: #ffffff; + +/* Hover */ +background: #ffffff; +color: #000000; +``` + +#### 输入框焦点 +```css +transition: all 0.2s; + +/* Normal */ +border: 1px solid #000000; + +/* Focus */ +border: 2px solid #000000; +``` + +## 第二页功能详解 + +### 1. 页面布局 + +``` +┌───────────────────┬─────────────────────────┐ +│ │ │ +│ 实时图谱 │ Step 1 - 现实种子构建 │ +│ │ │ +│ ┌─────────────┐ │ ① 文档分析 ✓ │ +│ │ │ │ 正在分析上传的文档... │ +│ │ 图谱 │ │ │ +│ │ 可视化 │ │ ② 本体生成 ⌛ │ +│ │ │ │ 使用LLM生成本体... │ +│ │ │ │ │ +│ └─────────────┘ │ ③ 图谱构建 │ +│ │ 待处理... │ +│ 节点数: 50 │ │ +│ 关系数: 120 │ ④ 完成 │ +│ │ 待处理... │ +│ │ │ +│ │ ─────────────────── │ +│ │ 项目信息 │ +│ │ 项目名称: ... │ +│ │ 项目ID: proj_xxx │ +│ │ 状态: graph_building │ +│ │ │ +└───────────────────┴─────────────────────────┘ +``` + +### 2. 自动化流程 + +**页面加载**: +1. 从URL获取projectId +2. 调用 `GET /api/graph/project/{projectId}` +3. 根据项目状态更新UI + +**状态机**: +``` +created → ontology_generated → graph_building → graph_completed + ↓ ↓ ↓ ↓ + 步骤1 步骤2 步骤3 步骤4 +``` + +**自动触发图谱构建**: +```javascript +if (status === 'ontology_generated' && !graph_id) { + // 自动调用 POST /api/graph/build + await buildGraph({ project_id }) +} +``` + +**轮询任务状态**: +```javascript +setInterval(() => { + // 每2秒调用 GET /api/graph/task/{taskId} + const task = await getTaskStatus(taskId) + // 更新进度显示 +}, 2000) +``` + +**加载图谱数据**: +```javascript +if (status === 'graph_completed' && graph_id) { + // 调用 GET /api/graph/data/{graphId} + const graphData = await getGraphData(graph_id) +} +``` + +### 3. 步骤指示器 + +**未开始状态**: +``` +○ 步骤标题 + 描述文字 + opacity: 0.4 +``` + +**进行中状态**: +``` +● 步骤标题 + 描述文字 + 进度信息 (45%) + opacity: 1.0 + background: #000000 (number) + color: #ffffff (number) +``` + +**已完成状态**: +``` +● 步骤标题 + 描述文字 + 已完成 ✓ + opacity: 1.0 + background: #000000 (number) +``` + +## 使用示例 + +### 完整流程演示 + +**场景**: 模拟武汉大学撤销处分事件的舆情走向 + +**步骤1**: 打开首页 +``` +访问: http://localhost:3000 +``` + +**步骤2**: 填写表单 +``` +模拟需求: "模拟武汉大学撤销处分通告发布后的舆情走向" +项目名称: "武汉大学舆情分析" +上传文档: report.pdf (关于事件的背景报告) +``` + +**步骤3**: 提交 +``` +点击"开始模拟"按钮 +等待API响应(约5-30秒) +``` + +**步骤4**: 查看处理 +``` +自动跳转到: /process/proj_abc123 +观察四个步骤的执行进度 +等待图谱构建完成(约1-5分钟) +``` + +**步骤5**: 完成 +``` +所有步骤显示"已完成" +左侧展示图谱节点和关系统计 +``` + +## 技术细节 + +### API重试机制 +```javascript +export const requestWithRetry = async ( + requestFn, + maxRetries = 3, + delay = 1000 +) => { + for (let i = 0; i < maxRetries; i++) { + try { + return await requestFn() + } catch (error) { + if (i === maxRetries - 1) throw error + + const waitTime = delay * Math.pow(2, i) + await new Promise(resolve => setTimeout(resolve, waitTime)) + } + } +} +``` + +### 文件上传处理 +```javascript +// 构建FormData +const formDataObj = new FormData() + +// 添加文件 +files.value.forEach(file => { + formDataObj.append('files', file) +}) + +// 添加文本字段 +formDataObj.append('simulation_requirement', requirement) +``` + +### 轮询实现 +```javascript +let pollTimer = setInterval(async () => { + const response = await getTaskStatus(taskId) + + if (response.data.status === 'completed') { + clearInterval(pollTimer) + // 处理完成逻辑 + } +}, 2000) + +// 组件卸载时清理 +onUnmounted(() => { + if (pollTimer) clearInterval(pollTimer) +}) +``` + +## 常见问题 + +### Q: 上传文件后看不到文件列表? +A: 检查文件格式是否支持(PDF、MD、TXT),不支持的格式会被自动过滤 + +### Q: 点击"开始模拟"没有反应? +A: 检查是否填写了模拟需求和上传了文件,两者都是必填项 + +### Q: 页面一直显示"处理中"? +A: +1. 检查后端服务是否正常运行 +2. 查看浏览器控制台是否有错误信息 +3. 检查网络连接 + +### Q: 图谱构建一直不完成? +A: +1. 图谱构建可能需要1-5分钟,请耐心等待 +2. 查看右侧进度信息 +3. 如果超过10分钟,可能是后端处理失败,查看后端日志 + +## 性能优化建议 + +1. **大文件上传**: 建议单个文件不超过10MB +2. **网络优化**: 使用稳定的网络连接 +3. **浏览器**: 推荐使用Chrome浏览器 +4. **并发限制**: 避免同时打开多个模拟任务 + +--- + +**文档更新**: 2025-12-10 +**版本**: v1.0.0 diff --git a/frontend/启动指南.md b/frontend/启动指南.md new file mode 100644 index 0000000..a2862d4 --- /dev/null +++ b/frontend/启动指南.md @@ -0,0 +1,198 @@ +# MiroFish 前端启动指南 + +## 项目已完成功能 + +✅ Vue 3 + Vite 脚手架搭建完成 +✅ 项目目录结构规划完成 +✅ API接口封装(含容错重试机制) +✅ 首页设计完成(极简黑白线条风) +✅ 第二页基础框架完成 +✅ 路由配置完成 +✅ 开发服务器成功启动 + +## 快速开始 + +### 1. 启动后端服务 + +```bash +# 进入后端目录 +cd /Users/guohangjiang/Desktop/MiroFish/backend + +# 激活conda环境 +conda activate MiroFish + +# 启动Flask服务 +python run.py +``` + +后端服务将运行在: http://localhost:5001 + +### 2. 启动前端服务 + +前端开发服务器已经启动,访问地址: +**http://localhost:3000/** + +如需重新启动: +```bash +cd /Users/guohangjiang/Desktop/MiroFish/frontend +npm run dev +``` + +## 首页功能说明 + +### 页面布局 +- **Logo区域**: 居中展示MiroFish品牌Logo +- **标语**: "上传任意报告,模拟世界即刻开始" +- **表单区域**: + - 模拟需求输入框(必填) + - 项目名称输入框(可选) + - 文件上传区域(支持拖拽,必填) + - 额外说明输入框(可选) + - 开始模拟按钮 + +### 交互功能 +1. **文件上传**: + - 支持点击选择文件 + - 支持拖拽上传 + - 支持多文件上传 + - 支持格式: PDF、Markdown(.md)、TXT + - 可以删除已选择的文件 + +2. **表单验证**: + - 必须填写模拟需求 + - 必须上传至少一个文件 + - 满足条件后"开始模拟"按钮才可点击 + +3. **提交流程**: + - 点击"开始模拟"按钮 + - 显示加载状态 + - 调用后端API: `POST /api/graph/ontology/generate` + - 成功后自动跳转到处理页面 + +4. **错误处理**: + - API调用失败显示错误提示 + - 自动重试机制(最多3次) + - 友好的用户提示信息 + +## 第二页功能说明 + +### 页面布局 +- **左侧面板**: 实时图谱展示区 +- **右侧面板**: Step 1 - 现实种子构建流程 + +### 流程步骤 +1. 文档分析 +2. 本体生成 +3. 图谱构建 +4. 完成 + +### 自动化功能 +- 自动加载项目信息 +- 自动开始图谱构建 +- 自动轮询任务状态(每2秒) +- 实时更新构建进度 +- 构建完成后加载图谱数据 + +## 设计风格特点 + +### 极简黑白线条风 +- **颜色**: 纯黑(#000000) + 纯白(#FFFFFF) +- **线条**: 1-2px实线边框 +- **字体**: 系统默认无衬线字体 +- **布局**: 清晰的网格和间距 +- **交互**: 简洁的hover效果 + +### 响应式设计 +- 支持桌面端(>=1024px) +- 支持平板端(768px-1024px) +- 支持移动端(<768px) + +## API接口集成 + +### 已实现接口 +1. `POST /api/graph/ontology/generate` - 生成本体 +2. `POST /api/graph/build` - 构建图谱 +3. `GET /api/graph/task/{taskId}` - 查询任务状态 +4. `GET /api/graph/data/{graphId}` - 获取图谱数据 +5. `GET /api/graph/project/{projectId}` - 获取项目信息 + +### 容错机制 +- 自动重试(最多3次) +- 指数退避(1s -> 2s -> 4s) +- 超时处理(5分钟) +- 错误提示 + +## 目录结构 + +``` +frontend/ +├── src/ +│ ├── api/ # API接口 +│ │ ├── index.js # axios配置、重试机制 +│ │ └── graph.js # 图谱相关接口 +│ ├── assets/ +│ │ └── logo/ # Logo图片 +│ ├── views/ +│ │ ├── Home.vue # 首页 +│ │ └── Process.vue # 处理页面 +│ ├── router/ +│ │ └── index.js # 路由配置 +│ ├── App.vue # 根组件 +│ └── main.js # 入口文件 +├── .env.development # 开发环境配置 +├── vite.config.js # Vite配置 +└── package.json # 依赖配置 +``` + +## 开发说明 + +### 技术栈 +- Vue 3 (Composition API) +- Vite 7 +- Vue Router 4 +- Axios + +### 开发规范 +- 使用 `