dsh-mesh-access 1.4.3 → 1.4.5
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 +9 -0
- package/lib/client.js +29 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -173,3 +173,12 @@
|
|
|
173
173
|
|
|
174
174
|
- 1.4.0 面板读的是 tn.urlPlain(不存在),实际接口返回的是 tn.url,
|
|
175
175
|
导致密钥模式下「手机首次打开」链接整块不渲染。改为读 tn.url(公网地址)。
|
|
176
|
+
|
|
177
|
+
## 1.4.4 — 模式切换改分段滑块开关
|
|
178
|
+
|
|
179
|
+
- 「入口登录」三个模式按钮改为分段滑块(segmented toggle):胶囊容器内
|
|
180
|
+
密钥 / 账号密码 / 关闭 三段,当前模式高亮滑块样式,点其它段即切换。
|
|
181
|
+
|
|
182
|
+
## 1.4.5 — 滑块加模式说明
|
|
183
|
+
|
|
184
|
+
- 滑块上方加标签「门锁模式(三选一…当前:xx)」,下方加一行三种模式含义说明。
|
package/lib/client.js
CHANGED
|
@@ -387,15 +387,37 @@ window.__ModuleLoader__.load({
|
|
|
387
387
|
: mode === 'basic' ? '已切到账号密码模式:弹窗登录一次,24 小时内该设备免登录'
|
|
388
388
|
: '已关闭入口登录:任何知道地址的人都能打开,请确认你接受')
|
|
389
389
|
const firstUrl = (tn.url || tn.urlPlain) && a.key ? (tn.url || tn.urlPlain) + '?meshkey=' + encodeURIComponent(a.key) : null
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
390
|
+
const modes = [
|
|
391
|
+
{ m: 'key', label: '密钥' },
|
|
392
|
+
{ m: 'basic', label: '账号密码' },
|
|
393
|
+
{ m: 'off', label: '关闭' },
|
|
394
|
+
]
|
|
395
|
+
const segItem = (m, label, active) => h('div', {
|
|
396
|
+
style: {
|
|
397
|
+
padding: '6px 16px', borderRadius: 999, cursor: 'pointer', fontSize: 13,
|
|
398
|
+
background: active ? 'rgba(88,166,255,.9)' : 'transparent',
|
|
399
|
+
color: active ? '#fff' : 'inherit',
|
|
400
|
+
fontWeight: active ? 600 : 400,
|
|
401
|
+
transition: 'all .15s ease', userSelect: 'none',
|
|
402
|
+
},
|
|
403
|
+
onClick: () => { if (!authBusy && !active) setMode(m) },
|
|
393
404
|
}, label)
|
|
405
|
+
const modeNames = { key: '密钥', basic: '账号密码', off: '已关闭' }
|
|
394
406
|
return h('div', null,
|
|
395
|
-
h('div', { style: S.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
407
|
+
h('div', { style: S.hint }, '门锁模式(三选一,点选切换;同一时间只有一种生效,当前:' + (modeNames[a.mode] || a.mode) + '):'),
|
|
408
|
+
h('div', {
|
|
409
|
+
style: {
|
|
410
|
+
display: 'inline-flex', gap: 4, padding: 4, borderRadius: 999,
|
|
411
|
+
border: '1px solid rgba(127,127,127,.4)', background: 'rgba(127,127,127,.12)',
|
|
412
|
+
marginBottom: 4,
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
modes.map(x => segItem(x.m, x.label, a.mode === x.m)),
|
|
416
|
+
),
|
|
417
|
+
h('div', { style: { ...S.hint, marginTop: 6 } },
|
|
418
|
+
'密钥=无弹窗(手机用带密钥的地址认证一次,30 天免登录) · ',
|
|
419
|
+
'账号密码=浏览器弹窗(登录一次 24 小时内仅该设备免登录) · ',
|
|
420
|
+
'关闭=无门锁(任何拿到地址的人都能进,不建议)',
|
|
399
421
|
),
|
|
400
422
|
authMsg ? h('div', { style: { ...S.hint, color: '#7ee787', marginTop: 8 } }, authMsg) : null,
|
|
401
423
|
a.mode === 'key'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-mesh-access",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "Control your DSH from your phone: opens a port on the mesh/VPN interface from inside the running server process, so a phone browser gets the same instance and the same session list — no SSH, no second dsh. Also reachable from another PC, a GUI NAS, or a TV box.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|