# FranklinWH-ToolBox AI 编程规范与操作规范 ## 项目概览 本项目是 FranklinWH 内部工具箱平台,采用 monorepo 结构(pnpm workspace),包含前端 Web 应用和后端 API 服务。 - **前端**:Vue 3 + TypeScript + Vite (rolldown-vite) - **后端**:Go 1.25+ + Fiber v2 - **包管理**:pnpm(前端)、Go Modules(后端) --- ## 一、项目结构规范 ### 前端目录结构(根目录) ``` src/ ├── assets/ # 静态资源(CSS、图片、数据文件) ├── components/ # 全局通用组件 ├── composable/ # Vue Composables(可组合函数) ├── event/ # 全局事件系统(EventEmitter) ├── injection/ # Vue provide/inject 相关 ├── layout/ # 布局组件(header、aside、footer、main) ├── router/ # 路由配置、守卫、辅助函数 ├── service/ # API 请求层(按业务模块分目录) ├── stores/ # Pinia 状态管理 ├── theme/ # 主题配置(light/dark/common) ├── types/ # TypeScript 类型声明 ├── typings/ # 全局类型扩展(window.d.ts、vue-router.d.ts) ├── utils/ # 工具函数 ├── views/ # 页面视图组件(按业务模块分目录) ├── App.vue # 根组件 └── main.ts # 入口文件 ``` ### 后端目录结构(service/) ``` service/ ├── cmd/ # 脚本(部署、构建、日志查看) ├── cache/ # 缓存层(Redis) ├── config/ # 配置加载(Viper) ├── controllers/ # 控制器层(请求处理、参数校验) ├── database/ # 数据库初始化(MySQL、PostgreSQL、MongoDB) ├── domain/ # 领域模型/实体定义 ├── dto/ # 数据传输对象 ├── docs/ # Swagger 文档 ├── function/ # 功能模块(文件处理等) ├── jobs/ # 后台定时任务 ├── logger/ # 日志配置(Zap) ├── middleware/ # 中间件(认证等) ├── models/ # 数据库模型(GORM) ├── networkEvents/ # 网络事件(Evio) ├── repositories/ # 数据访问层(MySQL/PgSQL/MongoDB/Redis/MQTT/API) ├── routes/ # 路由注册 ├── scheduler/ # 定时调度器(Cron) ├── services/ # 业务逻辑层 ├── task/ # 异步任务队列(Asynq) ├── test/ # 测试文件 └── utils/ # 工具包 ``` --- ## 二、前端编码规范 ### 2.1 通用格式 | 项目 | 规范 | | -------- | ---------- | | 缩进 | 2 空格 | | 分号 | 不使用分号 | | 引号 | 单引号 | | 行宽 | 100 字符 | | 行尾 | LF | | 尾逗号 | ES5 风格 | | 文件末尾 | 保留空行 | ### 2.2 TypeScript - 启用严格模式(`strict: true`) - 使用路径别名 `@/` 指向 `src/` - 优先使用 `interface` 定义对象类型,`type` 用于联合类型/工具类型 - 避免 `any`,必要时使用 `unknown` 并进行类型收窄 - 导出类型时使用 `export type` / `export interface` ### 2.3 Vue 组件 ```vue ``` **关键约定**: - 使用 `