今日已赚 · VS Code / Trae 扩展
把「今日已赚」单文件 HTML 封装为 IDE 扩展:看板以 Webview 呈现,界面与计薪效果与原单文件版一致;数据由浏览器 localStorage 改为扩展 globalState,重装、多窗口保持一致。
- 扩展 ID:
notyourboy-zjp.daily-earnings(publisher / author 均为 notyourboy-zjp)
- 版本:
1.0.1
- 兼容:VS Code
^1.70.0 及以上;Trae(同源 VS Code 内核)可直接安装同一 .vsix
- 无编译步骤:纯 CommonJS + 原生 Webview
开发环境、目录结构、调试与打包方式见工程根目录的 DEVELOPMENT.md(该文件不随扩展打包)。
1. 功能
| 能力 |
说明 |
| 状态栏 |
左侧常驻 今日 ¥xx.xx,每分钟自动刷新;鼠标悬停显示详细 tooltip(今日状态、上下班打卡时间、有效工时、基本工资/加班/补贴明细、本月累计与出勤统计);点击直接打开看板 |
| 看板 Webview |
与原 HTML 完全一致的界面:月薪、休息制度(双休/单休/大小周)、2026 法定节假日与调休、午休扣除、打卡结算与补录、弹性工作制、加班费三模式(倍率/固定时薪/每次固定)、取整方式、特殊补贴多规则、月度统计 |
| 计算精度 |
24 位小数 BigInt 定点运算,与原版逐位一致 |
| 数据持久化 |
所有 daily-earnings-widget:* 键写入扩展 globalState,卸载重装/多窗口共享 |
| 旧数据迁移 |
①扩展侧自动识别 :v1~:v7 旧配置并升级到 :v8;②首次在 webview 打开且扩展侧为空时,自动把浏览器 localStorage 中的旧数据一次性导入 |
| 贡献命令 |
今日已赚: 打开日薪看板 / 上班打卡 / 下班打卡 / 打开今日已赚 HTML |
命令说明
- 打开日薪看板:在侧边(
ViewColumn.Beside)打开 Webview 看板,已打开则聚焦。
- 上班打卡 / 下班打卡:写当日打卡记录并立即刷新状态栏;打卡后看板自动重载为最新数据。手动打卡模式下会提示前往看板填写时间。
- 打开今日已赚 HTML:用系统默认浏览器打开原单文件。查找顺序为:设置项
dailyEarnings.htmlPath → 扩展内置副本 original/今日已赚.html → 工程同级 ../今日已赚.html → 当前工作区根目录及其 output 子目录;找不到时弹窗让你选择文件,并记住到设置里。
2. 安装
VS Code
任选其一:
- 命令面板:
Ctrl+Shift+P → 扩展: 从 VSIX 安装...(Extensions: Install from VSIX...)→ 选择 daily-earnings-1.0.1.vsix
- 命令行:
code --install-extension "C:\...\daily-earnings-vscode\daily-earnings-1.0.1.vsix"
- 扩展视图:左侧扩展面板右上角
... → 从 VSIX 安装...
Trae
- 命令面板:
Ctrl+Shift+P → Extensions: Install from VSIX... → 选择同一个 .vsix
- 命令行:
trae --install-extension "C:\...\daily-earnings-1.0.1.vsix"(可执行名视安装而定,若报找不到命令就用命令面板方式)
- 安装后按
Ctrl+Shift+P → Reload Window 重载窗口,状态栏即出现「今日 ¥xx.xx」
安装完成后状态栏会立即显示金额,点击即可打开看板。
3. 设置
| 设置项 |
类型 |
默认 |
说明 |
dailyEarnings.htmlPath |
string |
空 |
原单文件 今日已赚.html 的绝对路径,用于「打开今日已赚 HTML」命令。留空则自动在扩展同级目录、工作区目录中查找;命令执行时找不到会弹窗选择并记住路径 |
在设置中搜索 今日已赚 即可定位。其余计薪参数(月薪、班次、休息制度、加班费、补贴规则等)不在 IDE 设置面板中,直接在 Webview 看板的设置区调整,随配置持久化到 globalState。
4. 数据存储位置与迁移
| 数据 |
位置 |
| 配置(月薪/班次/休息制度/加班/补贴规则等) |
扩展 globalState,键 daily-earnings-widget:v8(JSON 字符串) |
打卡记录(按 YYYY-MM-DD 索引) |
扩展 globalState,键 daily-earnings-widget:punches |
| 界面偏好(当前视图) |
扩展 globalState,键 daily-earnings-widget:view |
| 旧版本配置(v1~v7) |
首次激活时读取并升级为 v8,原键保留不删 |
globalState 落盘位置(按操作系统):
- Windows:
%APPDATA%\<IDE 目录名>\User\globalStorage\notyourboy-zjp.daily-earnings\state.vscdb
- VS Code 为
%APPDATA%\Code\...,Trae 为 %APPDATA%\Trae\...(实际目录名以安装版本为准)
- macOS:
~/Library/Application Support/<IDE>/User/globalStorage/notyourboy-zjp.daily-earnings/state.vscdb
- Linux:
~/.config/<IDE>/User/globalStorage/notyourboy-zjp.daily-earnings/state.vscdb
说明:
- 卸载扩展后
globalStorage 一般会保留,重装即恢复数据;如需彻底清除,删除上述 globalStorage\notyourboy-zjp.daily-earnings 目录。
- 扩展标识历次变更(
local-tools → notyourboy → notyourboy-zz → notyourboy-zjp)都会导致 globalStorage 目录随之变化;如需保留旧数据,请把旧目录(如 ...\User\globalStorage\notyourboy-zz.daily-earnings\)整个复制为 ...\User\globalStorage\notyourboy-zjp.daily-earnings\。
- 原单文件 HTML 仍使用浏览器
localStorage(键 daily-earnings-widget:v1~:v8、:punches),两套数据互不干扰;webview 首次打开时会把浏览器旧数据一次性导入扩展侧。
5. 常见问题
状态栏显示 ¥--:说明计算异常,打开「输出」频道 今日已赚 查看堆栈(通常是配置项被手工改成非法值,clampCfg 会自动兜底,重载窗口通常即可恢复)。
看板数据与状态栏不一致:二者共用同一份 lib/calc.js 口径并有一致性回归保护;若出现差异,请开发者按 DEVELOPMENT.md 中的自检流程定位。
「打开今日已赚 HTML」提示找不到文件:在设置中搜索 今日已赚,把 Daily Earnings: Html Path 指向原 HTML 的绝对路径;或在该弹窗中直接选择文件(会记住路径)。
Trae 中命令搜不到:确认安装后已 Reload Window;Trae 与 VS Code 使用同一套扩展清单,engines.vscode 为 ^1.70.0,不会因版本过高被拒装。
6. 版本记录
1.0.1(当前):发布者标识统一为 notyourboy-zjp,扩展 ID 为 notyourboy-zjp.daily-earnings;清理扩展详情页的标注残留与冗余版本描述,计薪逻辑与界面未改动。
1.0.0:首个公开版本,含状态栏实时计时、Webview 看板、打卡结算与补录、月度/年度统计与趋势图、Excel 导出、加班费三模式与周期补贴。
| |