dsh-offwork 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +58 -39
- package/client.js +1001 -299
- package/client.source.js +896 -252
- package/clock.js +81 -34
- package/index.js +142 -66
- package/locale/en.json +6 -1
- package/locale/zh.json +6 -1
- package/package.json +18 -5
- package/tests/clock.test.mjs +76 -33
- package/tests/host.test.mjs +76 -27
- package/tests/ui.test.mjs +77 -20
- package/tools/build.mjs +22 -7
- package/tools/check-package.mjs +96 -0
- package/ui-utils.js +21 -10
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# 更新记录
|
|
2
|
+
|
|
3
|
+
## 1.0.1 — 2026-11-04
|
|
4
|
+
|
|
5
|
+
- 修复默认 82% 透明度与原生滑块取值不一致的问题,支持按 1% 调整。
|
|
6
|
+
- 为设置中的工资显示和计薪方式按钮补充明确的辅助名称。
|
|
7
|
+
- 统一源码格式,固定开发依赖,补充开发指南及格式、语法和打包检查。
|
|
8
|
+
- 更新 GitHub Actions,发布前执行完整检查。
|
|
9
|
+
- 明确界面和工具中的 Harness Host 配置存储说明。
|
|
10
|
+
- 补充真实 Harness 截图、市场图标、浏览器验证记录及插件迭代计划。
|
|
11
|
+
|
|
12
|
+
## 1.0.0 — 2026-11-04
|
|
13
|
+
|
|
14
|
+
- 首次发布 Harness 页面内的下班倒计时与实时工资悬浮窗。
|
|
15
|
+
- 支持月薪 / 日薪、跨午夜班次、工作日、时区和可选无薪休息。
|
|
16
|
+
- 支持拖动、展开 / 收起、金额遮蔽、透明度和显示偏好记忆。
|
|
17
|
+
- 提供中英文界面、配置命令及代理工具。
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
`dsh-offwork` 提供可拖动的页面悬浮窗,支持月薪 / 日薪、跨午夜班次、无薪休息扣除和工资隐藏,工作时可以收起成小条。
|
|
6
6
|
|
|
7
|
-
[GitHub 仓库](https://github.com/SnowBeatRain/dsh-offwork) · [npm 包](https://www.npmjs.com/package/dsh-offwork) · [问题反馈](https://github.com/SnowBeatRain/dsh-offwork/issues)
|
|
7
|
+
[GitHub 仓库](https://github.com/SnowBeatRain/dsh-offwork) · [npm 包](https://www.npmjs.com/package/dsh-offwork) · [问题反馈](https://github.com/SnowBeatRain/dsh-offwork/issues) · [迭代路线图](https://github.com/SnowBeatRain/dsh-offwork/blob/main/ROADMAP.md)
|
|
8
8
|
|
|
9
9
|
## 功能
|
|
10
10
|
|
|
@@ -17,6 +17,18 @@
|
|
|
17
17
|
- **中文 / English**:提供中英文界面,并响应系统的减少动态效果设置。
|
|
18
18
|
- **代理工具**:可通过 Harness 命令或 `offwork_clock` 工具读取和更新配置。
|
|
19
19
|
|
|
20
|
+
## 效果预览
|
|
21
|
+
|
|
22
|
+
以下截图来自独立的 Harness 测试配置,使用示例月薪 12,000 元、月计薪 20 天及受控的浏览器时间。
|
|
23
|
+
|
|
24
|
+
**页面内的小条**
|
|
25
|
+
|
|
26
|
+

|
|
27
|
+
|
|
28
|
+
**展开详情与设置**
|
|
29
|
+
|
|
30
|
+
<img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/assets/screenshot-detail.png" alt="展开后的计薪进度、工资与班次详情" width="328"> <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/assets/screenshot-settings.png" alt="薪资、作息、时区和透明度设置" width="372">
|
|
31
|
+
|
|
20
32
|
## 运行环境
|
|
21
33
|
|
|
22
34
|
- DeepSeek Harness:`>=0.2.1-rc.5 <0.3.0-0`。
|
|
@@ -28,13 +40,19 @@
|
|
|
28
40
|
|
|
29
41
|
### 从 npm 安装
|
|
30
42
|
|
|
31
|
-
|
|
43
|
+
在 Harness 中使用 `plugin_manager` 的 `install_bundle` 操作,将 `target` 填为 `dsh-offwork`:
|
|
32
44
|
|
|
33
45
|
```text
|
|
34
46
|
plugin_manager → install_bundle → target: dsh-offwork
|
|
35
47
|
```
|
|
36
48
|
|
|
37
|
-
这是 Harness 插件,请通过 Harness 插件管理器安装,以加载 Host 配置和 Web
|
|
49
|
+
这是 Harness 插件,请通过 Harness 插件管理器安装,以加载 Host 配置和 Web 悬浮窗。使用命令行管理 Web 配置时,也可以运行:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
dsh plugin --profile web add dsh-offwork
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`web` 是配置名称,使用其他配置时请替换为实际名称。
|
|
38
56
|
|
|
39
57
|
### 从 GitHub 安装
|
|
40
58
|
|
|
@@ -67,15 +85,15 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
67
85
|
|
|
68
86
|
### 常用操作
|
|
69
87
|
|
|
70
|
-
| 操作
|
|
71
|
-
|
|
|
72
|
-
| 移动悬浮窗
|
|
73
|
-
| 微调位置
|
|
74
|
-
| 展开 / 收起
|
|
75
|
-
| 显示 / 隐藏工资
|
|
76
|
-
| 修改薪资和作息
|
|
77
|
-
| 调整透明度
|
|
78
|
-
| 获取其他页面保存的配置 | 点击「读取最新配置」
|
|
88
|
+
| 操作 | 使用方式 |
|
|
89
|
+
| ---------------------- | ----------------------------------------------- |
|
|
90
|
+
| 移动悬浮窗 | 按住小条或卡片的空白处拖动 |
|
|
91
|
+
| 微调位置 | 悬浮窗获得键盘焦点后,使用方向键调整;Home 复位 |
|
|
92
|
+
| 展开 / 收起 | 点击上箭头展开详情,点击下箭头收回小条 |
|
|
93
|
+
| 显示 / 隐藏工资 | 点击眼睛图标或「显示工资」 |
|
|
94
|
+
| 修改薪资和作息 | 点击齿轮进入设置 |
|
|
95
|
+
| 调整透明度 | 在设置中调整「背景透明度」,仅影响背景层 |
|
|
96
|
+
| 获取其他页面保存的配置 | 点击「读取最新配置」 |
|
|
79
97
|
|
|
80
98
|
同一浏览器、同一站点下的多个标签页会同步显示偏好。薪资与作息配置由 Harness Host 共享,其他页面保存后可手动读取最新配置。
|
|
81
99
|
|
|
@@ -83,12 +101,12 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
83
101
|
|
|
84
102
|
所有金额以人民币(CNY)显示,表示按配置估算的税前收入。
|
|
85
103
|
|
|
86
|
-
| 项目
|
|
87
|
-
|
|
|
88
|
-
| 月薪模式的日薪 | 月薪 ÷ 月计薪天数
|
|
89
|
-
| 日薪模式的日薪 | 直接使用填写的日薪
|
|
90
|
-
| 有效时薪
|
|
91
|
-
| 本班已赚
|
|
104
|
+
| 项目 | 计算方式 |
|
|
105
|
+
| -------------- | ------------------------------- |
|
|
106
|
+
| 月薪模式的日薪 | 月薪 ÷ 月计薪天数 |
|
|
107
|
+
| 日薪模式的日薪 | 直接使用填写的日薪 |
|
|
108
|
+
| 有效时薪 | 日薪 ÷ 扣除无薪休息后的班次时长 |
|
|
109
|
+
| 本班已赚 | 日薪 × 已完成的有效计薪比例 |
|
|
92
110
|
|
|
93
111
|
例如,月薪为 10,000 元、月计薪天数为 21.75 天,上班时间为 09:00–18:00,并扣除 12:00–13:00 的无薪休息时,日薪约为 459.77 元,有效时薪约为 57.47 元。
|
|
94
112
|
|
|
@@ -148,35 +166,37 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
148
166
|
|
|
149
167
|
## 开发
|
|
150
168
|
|
|
151
|
-
建议使用 Node.js 22,与仓库 CI
|
|
169
|
+
建议使用 Node.js 22,与仓库 CI 保持一致。运行时无第三方依赖;开发依赖仅用于代码格式检查,通过锁文件固定版本。
|
|
152
170
|
|
|
153
171
|
```sh
|
|
154
172
|
git clone https://github.com/SnowBeatRain/dsh-offwork.git
|
|
155
173
|
cd dsh-offwork
|
|
156
|
-
npm
|
|
157
|
-
npm
|
|
158
|
-
npm
|
|
174
|
+
npm ci --ignore-scripts
|
|
175
|
+
npm run format
|
|
176
|
+
npm run check
|
|
159
177
|
```
|
|
160
178
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
|
164
|
-
|
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
179
|
+
`npm run format` 统一源码格式并重新生成客户端;`npm run check` 检查格式、生成物一致性、自动化测试、JavaScript 语法及 npm 打包内容。单独构建使用 `npm run build`,单独运行测试使用 `npm test`。代码约定和人工验证步骤见 [贡献指南](https://github.com/SnowBeatRain/dsh-offwork/blob/main/CONTRIBUTING.md)。
|
|
180
|
+
|
|
181
|
+
| 文件 | 用途 |
|
|
182
|
+
| ------------------ | ------------------------------------ |
|
|
183
|
+
| `client.source.js` | Web 界面源码 |
|
|
184
|
+
| `clock.js` | 班次、时区和工资计算 |
|
|
185
|
+
| `ui-utils.js` | 界面状态与显示辅助函数 |
|
|
186
|
+
| `client.js` | 构建生成的客户端文件,请通过构建更新 |
|
|
187
|
+
| `index.js` | Host 命令、代理工具、配置校验与保存 |
|
|
188
|
+
| `tests/` | 计算、持久化与界面辅助逻辑测试 |
|
|
169
189
|
|
|
170
|
-
`npm run build` 将计算模块和界面辅助模块内联到 `client.js`。`npm test` 先检查生成物是否与源码一致,再运行测试,覆盖班次边界、夜班、休息、时区与夏令时、金额精度、磁盘持久化和命令 /
|
|
190
|
+
`npm run build` 将计算模块和界面辅助模块内联到 `client.js`。`npm test` 先检查生成物是否与源码一致,再运行测试,覆盖班次边界、夜班、休息、时区与夏令时、金额精度、磁盘持久化和命令 / 工具行为。`1.0.1` 已在隔离的 Harness `0.2.1-rc.5` 与 Headless Chromium 中完成设置、拖动、刷新恢复及双标签页等浏览器验证,范围与限制见 [验证记录](https://github.com/SnowBeatRain/dsh-offwork/blob/main/docs/VALIDATION-1.0.1.md)。
|
|
171
191
|
|
|
172
192
|
## 发布到 npm(维护者)
|
|
173
193
|
|
|
174
194
|
包名为 `dsh-offwork`,版本以 `package.json` 为准。发布前确认 npm 账号拥有该包的发布权限,并完成检查:
|
|
175
195
|
|
|
176
196
|
```sh
|
|
197
|
+
npm ci --ignore-scripts
|
|
177
198
|
npm run build
|
|
178
|
-
npm
|
|
179
|
-
npm pack --dry-run
|
|
199
|
+
npm run check
|
|
180
200
|
```
|
|
181
201
|
|
|
182
202
|
检查打包清单,确认包含 README、客户端、Host 入口和语言文件,且不包含 `data.json`、`.env` 或其他本地配置。
|
|
@@ -188,7 +208,7 @@ npm login
|
|
|
188
208
|
npm publish --access public
|
|
189
209
|
```
|
|
190
210
|
|
|
191
|
-
`npm publish` 会通过 `prepublishOnly`
|
|
211
|
+
`npm publish` 会通过 `prepublishOnly` 自动执行构建和完整检查。npm 不允许覆盖已发布的同名版本,后续发布需先更新版本,例如 `npm version patch` 或 `npm version minor`。
|
|
192
212
|
|
|
193
213
|
### GitHub Actions 发布
|
|
194
214
|
|
|
@@ -196,15 +216,14 @@ npm publish --access public
|
|
|
196
216
|
|
|
197
217
|
1. 在 GitHub 仓库的 **Settings → Secrets and variables → Actions** 中配置 `NPM_TOKEN`,使用具备该包发布权限并满足 npm 发布认证要求的 npm 令牌。GitHub 登录使用的 `ghp_…` 令牌不能用于 npm 发布。
|
|
198
218
|
2. 确认代码已提交,且标签版本与 `package.json` 中的版本完全一致。
|
|
199
|
-
3.
|
|
219
|
+
3. 通过 `npm version patch`、`npm version minor` 或 `npm version major` 创建版本提交和标签,再推送到 GitHub。例如发布修订版本:
|
|
200
220
|
|
|
201
221
|
```sh
|
|
202
|
-
|
|
203
|
-
git push origin main
|
|
204
|
-
git push origin v1.0.0
|
|
222
|
+
npm version patch
|
|
223
|
+
git push origin main --follow-tags
|
|
205
224
|
```
|
|
206
225
|
|
|
207
|
-
|
|
226
|
+
在 [Actions 页面](https://github.com/SnowBeatRain/dsh-offwork/actions) 确认发布结果。本地发布和 Actions 发布任选一种,避免重复发布同一版本。
|
|
208
227
|
|
|
209
228
|
## 许可与反馈
|
|
210
229
|
|