diff --git a/hertz_server_diango_ui/.env b/hertz_server_diango_ui/.env new file mode 100644 index 0000000..1c234cc --- /dev/null +++ b/hertz_server_diango_ui/.env @@ -0,0 +1,10 @@ +# API 基础地址 +VITE_API_BASE_URL=http://192.168.124.23:8000 + +# 应用配置 +VITE_APP_TITLE=Hertz Admin +VITE_APP_VERSION=1.0.0 + +# 开发服务器配置 +VITE_DEV_SERVER_HOST=localhost +VITE_DEV_SERVER_PORT=3000 diff --git a/hertz_server_diango_ui/.env.development b/hertz_server_diango_ui/.env.development new file mode 100644 index 0000000..155b281 --- /dev/null +++ b/hertz_server_diango_ui/.env.development @@ -0,0 +1 @@ +VITE_API_BASE_URL=http://192.168.124.40:8000 diff --git a/hertz_server_diango_ui/.env.production b/hertz_server_diango_ui/.env.production new file mode 100644 index 0000000..155b281 --- /dev/null +++ b/hertz_server_diango_ui/.env.production @@ -0,0 +1 @@ +VITE_API_BASE_URL=http://192.168.124.40:8000 diff --git a/hertz_server_diango_ui/README.md b/hertz_server_diango_ui/README.md index eb7b458..366c161 100644 --- a/hertz_server_diango_ui/README.md +++ b/hertz_server_diango_ui/README.md @@ -2,7 +2,7 @@
基于 Vite + Vue 3 + TypeScript + Ant Design Vue + Pinia + Vue Router 构建 @@ -12,15 +12,16 @@ --- -## ✨ 特性一览 +## ✨ 特性(面向前端) -- 设计统一:全局“苹果风格”主题(卡片/弹窗/按钮/输入/分页),开箱即用且风格一致 -- 工程规范:TypeScript 强类型、请求与错误拦截、模块化 API、权限化菜单/路由 -- 典型业务: - - 知识库管理:分类树、列表搜索、编辑/发布,已优化分类切换闪烁 +- **工程化完善**:TS 强类型、模块化 API、统一请求封装、权限化菜单/路由 +- **设计统一**:全局“超现代风格”主题,卡片 / 弹窗 / 按钮 / 输入 / 分页风格一致 +- **业务可复用**: + - 知识库管理:分类树 + 列表搜索 + 编辑/发布 - YOLO 模型:模型管理、模型类别管理、告警处理中心、检测历史管理 - - 认证体系:登录/注册(字段对齐、错误信息透出),可扩展验证码 -- 体验友好:延迟 loading 避免闪烁、毛玻璃质感、统一按钮与交互反馈 + - AI 助手:多会话列表 + 消息记录 + 多布局对话界面(含错误调试信息) + - 认证体系:登录/注册、验证码 +- **可扩展**:清晰的目录划分和命名规范,方便直接加模块或替换现有实现 ## 🧩 技术栈 @@ -31,28 +32,158 @@ - 状态:Pinia - 路由:Vue Router -## 📦 目录结构(核心) +## 📦 项目结构与职责 -``` +> 根目录:`通用大模型模板/` + +```bash 通用大模型模板/ └─ hertz_server_diango_ui_2/ # 前端工程(Vite) - ├─ public/ # 公共静态资源 + ├─ public/ # 公共静态资源(不走打包器) ├─ src/ - │ ├─ api/ # 接口定义(auth、yolo、knowledge、…) - │ ├─ locales/ # 国际化 - │ ├─ router/ # 路由与菜单(admin_menu.ts 自动化) - │ ├─ stores/ # Pinia - │ ├─ styles/ # 全局样式与变量(index.scss、variables.scss) - │ ├─ utils/ # 工具(请求、权限、URL 等) - │ └─ views/ # 页面 - │ ├─ admin_page/ # 管理端模块 - │ ├─ user_pages/ # 用户端模块 - │ └─ register.vue / Login.vue # 登录注册 - ├─ index.html - ├─ package.json - └─ vite.config.ts + │ ├─ api/ # 接口定义(auth / yolo / knowledge / captcha / ai ...) + │ │ └─ yolo.ts # YOLO 模型 & 检测 & 类别相关 API + │ ├─ locales/ # 国际化文案 + │ ├─ router/ # 路由与菜单配置 + │ │ ├─ admin_menu.ts # 管理端菜单 + 路由映射(权限 key) + │ │ ├─ user_menu_ai.ts # 用户端菜单 + 路由映射(含 AI 助手) + │ │ └─ index.ts # Vue Router 实例 + 全局路由守卫 + │ ├─ stores/ # Pinia Store + │ │ ├─ hertz_app.ts # 全局应用设置(语言、布局、菜单折叠等) + │ │ ├─ hertz_user.ts # 用户 / 鉴权状态 + │ │ └─ hertz_theme.ts # 主题配置与 CSS 变量 + │ ├─ styles/ # 全局样式与变量 + │ │ ├─ index.scss # 全局组件风格覆盖(Button / Table / Modal ...) + │ │ └─ variables.scss # 主题色、阴影、圆角等变量 + │ ├─ utils/ # 工具方法 & 基础设施 + │ │ ├─ hertz_request.ts # Axios 封装(baseURL、拦截器、错误提示) + │ │ ├─ hertz_url.ts # 统一 URL 构造(API / 媒体 / WebSocket) + │ │ ├─ hertz_env.ts # 读取 & 校验 env 变量 + │ │ └─ hertz_router_utils.ts # 路由相关工具 & 调试 + │ ├─ views/ # 所有页面 + │ │ ├─ admin_page/ # 管理端页面 + │ │ │ ├─ ModelManagement.vue # YOLO 模型管理 + │ │ │ ├─ AlertLevelManagement.vue # 模型类别管理 + │ │ │ ├─ DetectionHistoryManagement.vue # 检测历史管理 + │ │ │ └─ ... # 其他管理端模块 + │ │ ├─ user_pages/ # 用户端页面(检测端 + AI 助手) + │ │ │ ├─ index.vue # 用户端主布局 + 顶部导航 + │ │ │ ├─ AiChat.vue # AI 助手对话页面 + │ │ │ ├─ YoloDetection.vue # 离线检测页面 + │ │ │ ├─ LiveDetection.vue # 实时检测页面(WebSocket) + │ │ │ └─ ... # 告警中心 / 通知中心 / 知识库等 + │ │ ├─ Login.vue # 登录页 + │ │ └─ register.vue # 注册页 + │ ├─ App.vue # 应用根组件 + │ └─ main.ts # 入口文件(挂载 Vue / 路由 / Pinia) + ├─ .env.development # 开发环境变量(前端专用) + ├─ .env.production # 生产构建环境变量 + ├─ vite.config.ts # Vite 配置(代理、构建、别名等) + └─ package.json ``` +## 📁 文件与命名规范(建议) + +- **组件 / 页面** + - 页面:`src/views/admin_page/FooBarManagement.vue`,以业务 + Management 命名 + - 纯组件:放到 `src/components/`,使用大驼峰命名,如 `UserSelector.vue` +- **接口文件** + - 同一业务一个文件:`src/api/yolo.ts`、`src/api/auth.ts` + - 内部导出 `xxxApi` 对象 + TS 类型:`type AlertLevel`, `type YoloModel` 等 +- **样式** + - 全局或主题相关:放 `src/styles/`(注意不要在这里写页面私有样式) + - 单页面样式:使用 `