This commit is contained in:
2026-01-14 14:17:38 +08:00
commit f1e2ff6563
126 changed files with 13636 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
# 开发规范
## 1. 技术栈
- **前端**Vue 3 + Arco Design + TypeScript
- **后端**Go + Wails
- **远程数据库**MySQL历史数据源
- **本地存储**SQLite本地缓存+ 文件存储(配置/离线数据包)
## 2. 代码风格
- 统一使用 UTF-8 编码
- 前端遵循 ESLint 规则
- Go 代码遵循 `gofmt` 格式化
## 3. 命名规范
### 3.1 Go 后端
- 类型/结构体:大驼峰 `XxxService`
- 方法/变量:小驼峰 `GetList()`
- 常量:全大写下划线 `DEFAULT_PAGE_SIZE`
### 3.2 前端
- 组件:大驼峰 `XxxList.vue`
- 方法/变量:小驼峰 `getList()`
- 常量:全大写下划线 `DEFAULT_PAGE_SIZE`
## 4. Wails 绑定规范
- Go 结构体导出方法供前端调用
- 方法参数不超过3个超过时封装为结构体
- 方法名使用动词开头:`GetXxx``SaveXxx``DeleteXxx`
## 5. Arco Design 使用规范
- 优先使用 Arco 提供的组件和样式
- 避免过度自定义样式,保持主题兼容性
- 不使用 title 属性(如 `<a-card>`
- 颜色规范:
- 红球数字:`#F53F3F`Arco 红色)
- 蓝球数字:`#165DFF`Arco 蓝色)
- 未匹配数字:默认黑色
## 6. 代码质量要求
- 架构优良、性能良好、结构简单
- 方便维护,减少 AI 味
- 新增文件代码签名:`JueChen`
### 6.1 精准控制原则
- **精准定位问题**:找到问题的根本原因,而非到处添加防御性代码
- **精准设置样式**:只针对真正需要控制的元素设置样式,避免大量重复的 `overflow-x: hidden` 等防御性样式
- **可维护性优先**:代码改动时能明确知道哪个地方控制了什么,避免维护困难
### 6.2 主动性编程原则
- **主动解决问题**:找到问题的根源并修复,而不是用 `!important` 或大量覆盖样式来掩盖问题
- **主动思考设计**:考虑布局和样式设计的合理性,而非被动地添加防御性代码
- **主动优化代码**:定期审查代码,移除不必要的防御性代码,保持代码简洁
### 6.3 避免过度防御
- **不滥用 `!important`**:只在必要时使用,优先通过提高选择器优先级解决问题
- **不大量使用 `overflow-x: hidden`**:只在真正需要的地方使用,通常是 `body` 级别作为最后防线
- **不过度设置 `width: 100%`**:只在需要明确控制宽度的元素上设置
- **不重复设置相同样式**:避免在多个层级重复设置相同的样式属性
## 7. 版本控制
- Commit message`<type><subject>`,使用中文
- 提交前自检lint、功能测试
---
> 文档维护者JueChen
> 创建时间2026-01-07

View File

@@ -0,0 +1,53 @@
# Wails 绑定规范
## 1. 概述
Wails 通过 context 绑定 Go 方法供前端调用,无需 HTTP API。
## 2. Go 后端绑定
### 2.1 结构体定义
```go
type App struct {
ctx context.Context
}
func NewApp() *App {
return &App{}
}
```
### 2.2 方法绑定
- 导出方法(首字母大写)自动绑定
- 方法参数不超过3个超过时使用结构体
- 返回错误统一使用 `error` 类型
### 2.3 命名规范
- 查询:`GetXxx()``ListXxx()`
- 新增:`CreateXxx()``SaveXxx()`
- 更新:`UpdateXxx()`
- 删除:`DeleteXxx()`
## 3. 前端调用
### 3.1 调用方式
```typescript
// 导入绑定的方法
import { GetXxx, SaveXxx } from '@/wailsjs/go/main/App'
// 调用
const data = await GetXxx()
```
### 3.2 错误处理
- 统一使用 try-catch 处理
- 错误信息展示给用户
## 4. 参数规范
- 简单参数直接传递
- 复杂参数使用结构体/对象
- 字段命名使用小驼峰
---
> 文档维护者JueChen
> 创建时间2026-01-07

View File

@@ -0,0 +1,88 @@
# 数据存储规范
## 1. 存储架构
### 1.1 远程数据库MySQL
- **用途**:完整历史数据源
- **地址**39.99.243.191:3306
- **账号**u_ssq
- **密码**u_ssq@260106
- **连接方式**:需要时连接,支持离线模式
### 1.2 本地数据库SQLite
- **用途**:本地数据缓存、离线查询支持
- **位置**:应用数据目录
- **同步策略**:增量同步,定期更新
### 1.3 文件存储
- **配置文件**:应用配置、用户偏好
- **离线数据包**:完整历史数据导出/导入
- **缓存文件**:临时数据
### 1.4 前端存储
- **LocalStorage**临时数据、用户偏好、UI 状态
## 2. 数据库设计规范
### 2.1 表名规范
- 小写字母,单词间下划线:`ssq_history``query_cache`
### 2.2 字段规范
- 小写字母,单词间下划线:`issue_number``red_ball_1``created_at`
- 主键统一使用 `id`INT 或 BIGINT
- 时间字段:`created_at``updated_at`DATETIME
### 2.3 数据类型规范
- **期号**`VARCHAR(20)`,如 "2025145"
- **球号**`TINYINT`,范围 1-33红球或 1-16蓝球
- **日期**`DATE``DATETIME`
### 2.4 索引规范
- 主键索引:`PRIMARY KEY (id)`
- 查询索引:`INDEX idx_issue_number (issue_number)`
- 日期索引:`INDEX idx_open_date (open_date)`
## 3. 数据同步规范
### 3.1 同步策略
- **增量同步**:基于 `id``issue_number` 增量更新
- **全量同步**:首次安装或数据修复
- **同步时机**:应用启动检查、手动触发、定时任务
### 3.2 数据校验
- 期号唯一性校验
- 球号范围校验(红球 1-33蓝球 1-16
- 数据完整性校验
### 3.3 错误处理
- 网络错误:使用本地缓存
- 数据冲突:以远程为准或用户选择
- 同步失败:记录日志,下次重试
## 4. Go 结构体映射
### 4.1 ORM 工具
- 使用 `gorm` 进行 ORM 映射
- MySQL 和 SQLite 使用相同模型结构
### 4.2 结构体规范
```go
type SsqHistory struct {
ID int `gorm:"primaryKey" json:"id"`
IssueNumber string `gorm:"type:varchar(20);not null;index" json:"issue_number"`
OpenDate *time.Time `gorm:"type:date" json:"open_date"`
RedBall1 int `gorm:"type:tinyint;not null" json:"red_ball_1"`
// ... 其他字段
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
```
### 4.3 表名映射
- 实现 `TableName()` 方法指定表名
- 或使用 `gorm` 默认命名规则
---
> 文档维护者JueChen
> 创建时间2026-01-07

View File

@@ -0,0 +1,43 @@
# 工作事项推进日志规范
## 1. 日志格式
### 1.1 基本信息
- 事项标题
- 创建时间
- 状态(待办/进行中/已完成/已取消)
- 优先级(高/中/低)
### 1.2 详细内容
- 需求描述
- 实现方案
- 进展情况
- 遇到的问题
- 解决方案
### 1.3 时间记录
- 创建时间
- 开始时间
- 完成时间
- 重要节点时间
## 2. 更新规范
### 2.1 更新频率
- 重要事项每日更新
- 普通事项按进度更新
- 完成后及时标记
### 2.2 更新内容
- 记录关键进度节点
- 记录遇到的问题和解决方案
- 记录重要的决策和变更
## 3. 日志位置
- 主要日志:`docs/TODO-LIST.md`
- 功能迭代详细日志:`docs/04-功能迭代/{功能名称}/`
---
> 文档维护者JueChen
> 创建时间2026-01-07