# 阴阳师日常
**Repository Path**: lan0811/qingtao
## Basic Information
- **Project Name**: 阴阳师日常
- **Description**: 阴阳师日常修行小助手
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://web.lanaiw.top
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-07-30
- **Last Updated**: 2026-08-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🍵 痒痒鼠日常 · 阴阳师日常工作台
**阴阳师玩家的每日修行小助手 —— 日常打卡 · 周常追踪 · 活动倒计时 · 资源账本 · 宠物养成 · 攒抽规划**
> 开服五分钟,修行一目了然。动动手指,今日修行轻松搞定!
---
## 📖 项目简介
「痒痒鼠日常」(阴阳师日常工作台)是一款面向 **阴阳师** 玩家的本地 Android 辅助应用,帮你把游戏里的「每日必做」管起来:
- ✅ **日常打卡**:每日修行一键勾选(内置 9 项,支持自定义增删),24:00 自动重置,完成数达档发放宠物食物;
- ✅ **周常追踪**:每周修行 7 项(支持自定义),周一自动归档,仅保留最近 4 周,完成随机掉落礼物;
- ✅ **活动提醒**:抽卡 / 超鬼王 / 崽战 / 联动 / 限时副本的创建、倒计时、紧急置顶、归档,支持搜索与类型筛选;
- ✅ **资源账本**:体力 / 勾玉 / 蓝票 / 黑蛋 收支联动,流水明细与累计统计;
- ✅ **多账号管理**:添加 / 切换 / 重命名 / 删除,各账号打卡、周常、资源、活动、宠物、抽卡数据完全隔离,老数据升级自动迁移;
- ✅ **宠物养成**:小团子独立成长,好感五级、饱食自然衰减、投喂送礼、自定义互动文案,陪伴你完成每日修行;
- ✅ **应用内桌宠**:五个主页面常驻悬浮,直接拖动、半圆交互按钮、三档动效,9 套逐帧动画;
- ✅ **攒抽规划 + 抽卡模拟器**:蓝票 / 勾玉换算抽数、多目标进度与达成日期推算;本地整活抽卡(常驻 / 活动限定 / 自定义心愿池,90 抽硬保底);
全部数据保存在 **本地数据库(uni 本地存储)**,无云端、无广告、无需登录,开箱即用。
> 当前版本:**3.1.2 / versionCode 312**(单宠小团子 · 主题皮肤 · 每日运势)。宠物系统仅在应用内显示,不申请 Android 系统悬浮窗权限。
---
## 🌟 主要功能
### 打卡与统计
- ✅ **顶部全局通栏**:时间 / 农历 / 星期 / 距凌晨 5 点游戏刷新倒计时,实时刷新,常驻所有页面;农历算法自实现(1900~2100,干支年 / 生肖 / 农历日期)
- ✅ **今日总览 + 今日待办明细**:首页汇总日常 / 周常 / 活动未完成项,区分每日 / 每周 / 限时分组展示,导航角标 + 点击直达
- ✅ **每日修行打卡**:三列三行图标格,进度条 + 完成计数,24:00 自动重置;完成 1/3/5/9 项发放寿司 / 饭团 / 丸子 / 蛋糕,领奖账防取消重勾重复发奖
- ✅ **周常修行打卡**:单行勾选 + 一键重置整周,每个任务首次完成随机掉落勾玉 / 蓝票 / 黑蛋 / 桃子,周一自动归档近 4 周
- ✅ **自定义任务**:日常 / 周常任务模板全局共用(切换账号保留),支持增删与重命名、首字兜底图标、折叠管理面板,打卡数据仍按账号隔离
- ✅ **打卡统计图表**:近 7 天完成率环形图 + 柱状图、近 4 周柱状图(原生 view/css 手绘,无第三方图表库)
### 资源与活动
- ✅ **资源收支联动**:4 类资源(体力 / 勾玉 / 蓝票 / 黑蛋)增 / 减实时更新余额,写入流水并累加累计收支统计
- ✅ **活动 CRUD 与提醒**:倒计时 ≤24h 或已过期 → 角标变红 + 首页清单置顶 + 倒计时红字;搜索 + 类型筛选 + 进度条,结束可归档,行内点击编辑
- ✅ **壁纸系统**:内置 4 张和风壁纸 + 本地上传 + 定时轮换(每小时 / 每6小时 / 每日)+ 分页专属优先
- ✅ **主题皮肤**:四套浅色和风主题(薄荷绿 / 樱花粉 / 山吹金 / 紫藤),个人页底部面板色块即时切换、全局保存,只换配色不改变布局
- ✅ **每日运势**:以日期为种子的固定运势(同一天全设备一致、不闪变),首页展示吉凶 / 幸运数字 / 幸运色 / 宜忌清单与和风文案,标注仅供娱乐
- ✅ **樱花特效**:可开关的全屏飘落樱花
### 账号与数据
- ✅ **多账号管理**:个人页添加 / 切换多个游戏账号,各账号数据完全隔离、无需登录;壁纸 / 设置 / 任务模板全局共用;老数据首次升级自动引导迁移;账号删除双重确认(列出将清除的数据明细)
- ✅ **数据备份**:JSON 全量导出(SAF 文件管理器选路径,含全部账号)/ 导入恢复 / 一键清空当前账号
- ✅ **无账号冷启动引导**:全新安装进入首页弹窗提示添加账号(可跳过、弹窗内直接建号),老数据迁移期不拦截
### 宠物系统 2.0
- ✅ **宠物养成**:小团子支持改名、头像与签到联动,饱食每日自然衰减,五级好感(初识 → 羁绊),每日互动上限 10 次,自定义等级文案
- ✅ **投喂送礼闭环**:日常打卡奖励食物、周常掉落礼物 → 宠物小窝投喂 / 送礼 → 涨饱食涨好感 → 互动文案变化,奖励防重复发放
- ✅ **应用内桌宠**:首页 / 日常 / 周常 / 活动 / 个人五页常驻,直接拖动与左右吸附、记忆归一化位置,半圆交互按钮自动朝向屏幕内侧,支持小 / 中 / 大尺寸与完整 / 精简 / 关闭动效
- ✅ **逐帧动画**:小团子内置 9 套透明 WebP 精灵表(384×384 帧、4 列网格),含静态回退图
### 宠物生态 3.0
- ✅ **宠物币经济**:单机自洽的经济循环(图标 / 余额 / 收支流水),账号级隔离,打工 / 小游戏赚取、商店消费
- ✅ **离线打工**:5 档工作按好感等级解锁(百鬼书屋 1h → 百鬼夜行护卫 24h),真实小时离线计时(关 App 照常结算),派工需饱食 ≥30 并扣 5 饱食,领薪按实际小时扣饱食,饿肚子(饱食 ≤20)收益减半,防系统时间回拨
- ✅ **宠物商店**:食物 / 礼物 / 家具三分类;10 种可计数装饰与 4 套唯一功能家具外观,余额不足或重复外观禁用,跨键消费失败自动回滚
- ✅ **宠物小游戏**:猜式神(三选一)/ 猜拳 / 翻牌配对三款,赢宠物币;每日每游戏限 5 次、日收益封顶 60,跨日重置防刷
- ✅ **沉浸式宠物小窝**:正面 2.5D 横向宽幅和风房间,昼夜场景、六阶段状态机、宠物自主闲逛与 12 项家具行为、镜头跟随、功能家具外观切换、避让通道的网格拖拽装饰和底部功能抽屉
- ✅ **宠物进化**:小团子进化形态及 9 套动作动画已内置;好感达到 1000 后可执行不可逆进化,小窝、宠物中心与悬浮桌宠全局联动,数据按账号隔离
### 抽卡专题(v2.0.2 新增)
- ✅ **攒抽规划**:按「蓝票 + 勾玉÷100」换算当前可抽数(黑蛋 / 黑碎另列不计抽),支持多个目标(名称 / 目标抽数 / 备注)+ 每日预计新增抽数推算达成日期,资源账本变动自动重算进度
- ✅ **抽卡模拟器**:整活本地抽卡(**仅供娱乐,非真实概率**)——常驻池 / 活动限定池 / 自定义心愿池三卡池,单抽 / 十连逐张翻卡,90 抽硬保底(SSR:SP=2:1,按池独立计数、跨会话持久),出货统计与欧非称号,账号级隔离、不消耗任何资源
- ✅ **式神图鉴数据**:常驻池按官方式神图鉴补全非联动式神 218 位(SSR 64 / SP 50 / SR 66 / R 38),联动式神(犬夜叉 / 银魂 / 鬼灭 / 死神等)不入常驻池
---
## 📸 页面导览
| 页面 | 说明 |
|---|---|
| 🏠 **首页** | 今日总览(日常 / 周常进度)、今日待办明细、5 点倒计时、今日壁纸大图、无账号引导 |
| ✅ **日常** | 每日修行打卡(可自定义任务)+ 资源记录区(4 类收支)+ 累计收支统计 |
| 📅 **周常** | 本周修行打卡(可自定义任务)+ 一键重置 + 过往 4 周记录 |
| 🎯 **活动** | 活动创建(类型 / 起止日期)、搜索筛选、进行中倒计时、紧急置顶、归档管理 |
| 👤 **个人** | 身份卡 + 速览 + 攒抽摘要 + 功能入口(数据统计 / 宠物小窝 / 壁纸素材库 / 设置 / 关于软件)+ 账号管理 |
| 🏡 **宠物小窝** | 宽幅房间、自主生活、家具互动、拖拽布置、投喂送礼、成长进化与桌宠设置 |
| 🎴 **抽卡模拟器** | 三卡池(常驻 / 活动限定 / 自定义心愿池)、单抽 / 十连逐张翻卡、保底计数、出货统计、欧非称号 |
| 📊 **数据统计** | 近 7 天完成率环形图 + 柱状图、近 4 周柱状图 |
| 🖼️ **壁纸素材库** | 内置壁纸 / 本地上传、定时轮换设置、分页专属壁纸 |
| ⚙️ **设置** | 基础设置(提醒 / 樱花特效 / 高亮)与数据管理(备份 / 导入 / 清空) |
> 5 个 tabBar 主页面 + 5 个独立子页(宠物小窝 / 抽卡模拟器 / 数据统计 / 壁纸素材库 / 设置),共 10 个页面。
---
## 🚀 快速上手
### 前置条件
- 系统要求:**Android 10+**
- 开发工具:[HBuilderX](https://www.dcloud.io/hbuilderx.html)(uni-app 5+ App 开发)
### 本地运行
```bash
# 克隆/打开项目后,用 HBuilderX 打开 Android/ 目录
# 运行到 Android 手机或模拟器(真机调试 / 标准基座)
运行 → 运行到手机或模拟器 → 运行到 Android App 基座
```
### 打包发布
```bash
# HBuilderX → 发行 → 原生 App-云打包
# 签名:自用证书 / 云端证书(测试包 uni.app.UNIF1BB05F)
# 产物:Android/unpackage/release/apk/*.apk
```
> ⚠️ 标准基座安装包恒为 DCloud 默认图标 / 启动页,应用图标与启动页需**云打包 / 自定义基座**验证。
> 版本号仅维护在 `Android/manifest.json` 和 `Android/utils/version.js`;应用只展示版本号,不执行联网检查、下载或安装更新。
---
## 🔧 技术架构
| 层 | 技术选型 |
|---|---|
| 框架 | uni-app(Vue3,`vueVersion: 3`)+ 5+ App 运行时 |
| 语言 | Vue3 组合式 / 选项式、JavaScript(ES Module) |
| 存储 | uni 本地存储(`uni.setStorageSync` 统一封装 `utils/store.js`:JSON 序列化 + 默认值合并 + v1→v2→v3→v4 版本迁移钩子 + 多账号命名空间解析) |
| 时间/农历 | 自实现轻量农历算法(1900~2100,无第三方依赖) |
| 图表 | 原生 view/css 手绘:柱状图(flex 定宽柱条)+ 环形图(CSS conic-gradient) |
| 文件 | `plus.io`(壁纸落盘 `_doc/wallpapers/`)、`plus.android`(SAF 文档选择:`ACTION_CREATE_DOCUMENT` / `ACTION_OPEN_DOCUMENT` + MediaStore / Downloads 降级链) |
| 动画 | 透明 WebP 精灵表逐帧播放(384×384、4 列网格,`PetSprite.vue`) |
| UI | 青桃和风设计系统(设计 token 落地于 `App.vue` 全局 CSS 变量,薄荷绿 × 樱花粉 × 米白) |
| 构建 | HBuilderX 云打包 / CLI 语法校验(esbuild)+ Node 逻辑集成测试(mock uni/plus) |
### 目录结构
```
阴阳师-日常/
├─ AGENTS.md # 开发规则
├─ README.md # 项目说明(本文件)
├─ Android/ # uni-app 工程
│ ├─ App.vue # 全局生命周期 + 设计变量 + 启动初始化(迁移/重置/壁纸轮换)
│ ├─ pages.json # 5 页 tabBar + 5 子页(共 10 页)
│ ├─ manifest.json # 应用配置(图标/启动页/权限/版本号)
│ ├─ main.js # 入口
│ ├─ utils/
│ │ ├─ store.js # 本地存储统一封装(v6 多账号命名空间 + 单宠数据迁移)
│ │ ├─ time.js # 时间格式化 / 农历 / 5点倒计时 / 日键周键
│ │ ├─ checkin.js # 打卡重置/归档/统计(日常24点、周常周一)
│ │ ├─ tasks.js # 默认日常/周常任务数据源(内置 d1~d9 / w1~w7)
│ │ ├─ reward.js # 打卡奖励规则(日常食物、周常礼物,防重复发奖)
│ │ ├─ pet.js # 宠物养成领域逻辑(成长/饱食/好感/文案)
│ │ ├─ petAssets.js # 宠物动画资源表
│ │ ├─ petHome.js # 宽幅房间、功能锚点、外观与安全摆放领域逻辑
│ │ ├─ petRoomBehavior.js # 12 项行为、六阶段状态机与动效档位
│ │ ├─ gacha.js # 攒抽规划 + 抽卡模拟器领域逻辑(与 UI 解耦可单测)
│ │ ├─ export.js # JSON 导出/导入(SAF + MediaStore 降级链)
│ │ ├─ wallpaper.js # 壁纸轮换/分页专属/上传
│ │ ├─ version.js # 仅保存应用版本号
│ │ └─ badge.js # 导航角标(含重入护栏)
│ ├─ components/
│ │ ├─ TopBar.vue # 顶部通栏(时间/农历/倒计时)
│ │ ├─ WallpaperLayer.vue # 壁纸背景层
│ │ ├─ Petals.vue # 樱花特效
│ │ ├─ ProgressRing.vue # 环形进度
│ │ ├─ BarChart.vue # 柱状图
│ │ ├─ FloatingPet.vue # 应用内悬浮桌宠(拖动/吸附/半圆按钮)
│ │ └─ PetSprite.vue # 宠物逐帧动画播放器
│ ├─ pages/
│ │ ├─ home/ # 首页(今日总览 + 待办明细)
│ │ ├─ daily/ # 日常(打卡 + 资源)
│ │ ├─ weekly/ # 周常
│ │ ├─ activity/ # 活动
│ │ ├─ profile/ # 个人(枢纽:身份/速览/攒抽/入口)
│ │ ├─ pet-home/ # 宠物小窝
│ │ ├─ gacha/ # 抽卡模拟器
│ │ ├─ stats/ # 数据统计
│ │ ├─ settings/ # 设置
│ │ └─ wallpaper/ # 壁纸素材库
│ └─ static/
│ ├─ data/gacha_pool.js # 抽卡池式神名单(218 位非联动 + 概率配置)
│ ├─ pets/ # 小团子逐帧动画(普通/进化形态 × 9 套 WebP + manifest)
│ ├─ icons/ # 任务/资源/功能图标(20+ 张压缩 PNG)
│ ├─ wallpapers/ # 4 张内置壁纸(fox-1~3 / ji)
│ ├─ app-icon.png # 应用图标(小团子形象)
│ └─ splash-*.png # 启动页(Android启动页预览.jpg)
├─ _verify/ # 本地验证脚本(run-tests / syntax-check 等)
├─ 图标/ # 设计源图标
├─ 内置壁纸/ # 设计源壁纸
├─ 宠物素材/ # 宠物素材(应用图标源)
├─ image/ # 启动页/预览图
├─ docs/ # 文档(含游戏数据同步可行性分析报告)
└─ .zcode/plans/ # 开发计划文档
```
### 数据模型(本地存储键)
v6 数据层:账号隔离键自动落 `acc_<账号id>_` 命名空间,页面侧以原键名调用、命名空间解析在 store 层完成;全局键(设置 / 壁纸 / 任务模板 / 桌宠设置)所有账号共用。
| Key | 结构 | 说明 |
|---|---|---|
| `accounts` | `[{ id, name, onmyojiId, digitalId, avatar, signDays, createdAt }]` | 账号列表(个人资料并入账号对象) |
| `current_account_id` | `string` | 当前激活账号 id |
| `daily_tasks` / `weekly_tasks` | `[{ id, name, icon }]` | 任务模板(全局共用,自定义增删后仍全局) |
| `acc__daily_checkin` | `{ date, done: {taskId: true}, rewards }` | 该账号日常打卡,24:00 自动重置,done 为对象映射 |
| `acc__daily_records` | `[{ date, doneCount }]` | 该账号近 7 天归档 |
| `acc__weekly_checkin` | `{ weekKey, done, gifts, rewardedTaskIds }` | 该账号周常打卡,周一自动重置,礼物防重复 |
| `acc__weekly_records` | `[{ weekKey, done }]` | 该账号过往 4 周归档 |
| `acc__resource_current` | `{ tili, jade, ticket, egg }` | 该账号资源现有值 |
| `acc__resource_flow` | `[{ id, type, delta, ts, remark }]` | 该账号收支流水 |
| `acc__resource_total` | `{ type: { in, out } }` | 该账号累计收支 |
| `acc__activities` | `[{ id, name, type, startDate, endDate, archived }]` | 该账号活动列表 |
| `acc__pet_rewards` | `{ food, gifts }` | 该账号宠物库存(打卡奖励 + 商店购入) |
| `acc__pet_data` | `{ currentPetId: 'pet1', pets: { pet1 } }` | 该账号小团子养成数据(好感/饱食/互动/文案/进化标记) |
| `acc__pet_economy` | `{ balance, flow, jobs, game }` | 该账号宠物币余额/流水、进行中打工、小游戏日账 |
| `acc__pet_home` | `{ themeId, functional, ownedFunctional, decorInventory, decorations, cameraX }` | 该账号功能家具、可计数装饰库存、自由摆放实例与房间镜头 |
| `acc__gacha_plan` | `{ goals: [...], dailyEstimate: { pullsPerDay } }` | 该账号攒抽规划 |
| `acc__gacha_history` | `{ totalPulls, counts, pity, recent }` | 该账号抽卡统计与保底计数(recent ≤ 50 条) |
| `acc__gacha_custom_pool` | `{ name, characters }` | 该账号自定义心愿池名单 |
| `wallpapers` | `{ autoMode, perPage, builtin, uploaded }` | 壁纸配置(全局共用) |
| `settings` | `{ remindOn, sakuraOn, midnightHighlight }` | 基础设置(全局共用) |
| `pet_settings` | `{ visible, size, motion, position }` | 桌宠设置(全局共用) |
---
## 🧪 测试与验证
- **逻辑集成测试**:Node mock uni/plus 存储,**全量断言通过、失败恒为 0**(含随机大样本断言,总数随保底触发样本浮动)。覆盖:日常/周常重置与归档、任务模板与打卡隔离、资源流水、活动倒计时置顶、壁纸轮换/分页、SAF 导出导入与降级链、多账号迁移与备份还原、奖励累计防重复、农历日期、周键、宠物成长与文案校验、攒抽规划换算与 ETA、抽卡保底与大样本概率分布(2 万抽保底 / 10 万抽分布)、账号隔离
- **语法校验**:esbuild 全量 13 个 utils(含卡池数据)+ 15 个 vue `