- 清理废弃的 CI/CD 工作流文件与 dogfood 输出 - 添加 vitest 测试环境配置(mocks、setup 文件) - 添加算法、服务、页面、工具类的单元测试 - 更新 vitest 配置、依赖与文档
133 lines
4.0 KiB
Markdown
133 lines
4.0 KiB
Markdown
# 万事宜 (Everything Is Suitable)
|
||
|
||
中国传统文化研究工具 — 紫微斗数排盘 / 黄历查询 / 运势分析
|
||
|
||
## 项目概述
|
||
|
||
**万事宜**是一款纯客户端 UniApp 应用,所有计算和数据存储均在本地完成,无需网络连接、无需后端服务、无需注册账号。支持 H5、微信小程序、App 多端发布。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
everything-is-suitable/
|
||
├── everything-is-suitable-uniapp/ # UniApp 主应用
|
||
│ ├── src/
|
||
│ │ ├── algorithms/ # 核心算法(紫微斗数、黄历、运势)
|
||
│ │ ├── components/ # 通用组件
|
||
│ │ ├── locales/ # 国际化(9种语言)
|
||
│ │ ├── pages/ # 页面
|
||
│ │ │ ├── almanac-search/ # 黄历搜索
|
||
│ │ │ ├── ziwei/ # 紫微斗数排盘
|
||
│ │ │ └── fortune/ # 运势分析
|
||
│ │ ├── services/ # 业务服务层(纯本地计算)
|
||
│ │ ├── types/ # TypeScript 类型定义
|
||
│ │ ├── utils/ # 工具函数(存储、缓存、导出等)
|
||
│ │ ├── App.vue
|
||
│ │ ├── main.ts
|
||
│ │ ├── manifest.json
|
||
│ │ └── pages.json
|
||
│ ├── e2e/ # E2E 测试(Playwright)
|
||
│ ├── Jenkinsfile # Jenkins CI/CD 配置
|
||
│ ├── Dockerfile # H5 部署 Docker 配置
|
||
│ ├── nginx.conf # Nginx 配置(纯静态,无后端代理)
|
||
│ ├── package.json
|
||
│ ├── vite.config.ts
|
||
│ └── vitest.config.ts
|
||
├── assets/ # 落地页素材
|
||
├── docs/ # 项目文档
|
||
│ ├── plans/ # 历史规划文档
|
||
│ ├── baselines/ # 测试基线
|
||
│ ├── reports/ # 测试报告
|
||
│ └── superpowers/ # Superpowers 工作流计划
|
||
├── index.html # 落地页
|
||
├── i18n.js # 落地页国际化
|
||
└── README.md
|
||
```
|
||
|
||
## 技术栈
|
||
|
||
| 类别 | 技术 |
|
||
|------|------|
|
||
| 框架 | UniApp (Vue 3 + TypeScript) |
|
||
| 构建 | Vite |
|
||
| 测试 | Vitest (单元) + Playwright (E2E) |
|
||
| 国际化 | vue-i18n (9种语言) |
|
||
| 存储 | uni.getStorageSync/setStorageSync |
|
||
| CI/CD | Jenkins |
|
||
| 部署 | Docker + Nginx (H5) |
|
||
|
||
## 快速开始
|
||
|
||
### 前置要求
|
||
|
||
- Node.js >= 20.0.0
|
||
- npm >= 9.0.0
|
||
|
||
### 安装与运行
|
||
|
||
```bash
|
||
cd everything-is-suitable-uniapp
|
||
npm install
|
||
|
||
# H5 开发模式
|
||
npm run dev:h5
|
||
|
||
# 微信小程序开发模式
|
||
npm run dev:mp-weixin
|
||
```
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
# 构建 H5
|
||
npm run build:h5
|
||
|
||
# 构建微信小程序
|
||
npm run build:mp-weixin
|
||
```
|
||
|
||
### 测试
|
||
|
||
```bash
|
||
# 单元测试
|
||
npm run test
|
||
|
||
# 单元测试 + 覆盖率
|
||
npm run test:coverage
|
||
|
||
# E2E 测试
|
||
npm run test:e2e
|
||
```
|
||
|
||
## 纯客户端架构说明
|
||
|
||
本应用采用纯客户端架构,核心特征:
|
||
|
||
- **零网络请求**:所有算法(紫微斗数排盘、黄历计算、运势推演)均在客户端本地执行
|
||
- **零后端依赖**:无 API 调用、无数据库、无服务器
|
||
- **本地存储**:用户数据通过 `uni.getStorageSync/setStorageSync` 存储在设备本地
|
||
- **离线可用**:manifest.json 中 INTERNET 权限设为 false,无需网络即可使用全部功能
|
||
- **隐私安全**:用户数据不离开设备,无需注册账号
|
||
|
||
## 功能模块
|
||
|
||
### 黄历搜索 (almanac-search)
|
||
- 每日宜忌查询
|
||
- 条件搜索(嫁娶、搬家、开市等)
|
||
- 搜索历史与模板
|
||
|
||
### 紫微斗数 (ziwei)
|
||
- 自动排盘(支持公历输入)
|
||
- 十二宫位完整展示
|
||
- 十四主星 + 辅星体系
|
||
- 三方四正分析
|
||
|
||
### 运势分析 (fortune)
|
||
- 每日/每月/每年运势
|
||
- 事业、财运、感情、健康多维度
|
||
- 幸运色、幸运数字、幸运方位
|
||
|
||
## 许可证
|
||
|
||
MIT License
|