feat: 初始提交(仅核心代码,已排除大文件)

This commit is contained in:
yangxiangyuan
2026-07-08 10:29:50 +08:00
commit be7c5842f1
623 changed files with 332897 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
* { box-sizing: border-box }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif }
.topbar { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; border-bottom: 1px solid #ddd; position: sticky; top: 0; background: #fff; z-index: 10 }
.tabs { display: flex; gap: 8px }
.tab { border: none; background: #f5f5f5; padding: 8px 12px; border-radius: 8px; cursor: pointer; text-decoration: none; color: inherit }
.tab.active { background: #222; color: #fff }
.settings { border: none; background: #fff; padding: 6px 10px; border: 1px solid #222; border-radius: 6px; cursor: pointer }
main { padding: 12px }
.modal { position: fixed; inset: 0; display: grid; place-items: center; background: rgba(0,0,0,0.35); z-index: 1000 }
.hidden { display: none }
.modal-body { background: #fff; width: 520px; max-width: 90vw; border-radius: 10px; padding: 16px; display: grid; gap: 8px }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px }
mark { background: #ffe58f }
.kw-0 { background: #ffe58f }
.kw-1 { background: #ffd6e7 }
.kw-2 { background: #d6f5ff }
.kw-3 { background: #d9f7be }
.kw-4 { background: #fff1b8 }
.kw-5 { background: #efdbff }
+61
View File
@@ -0,0 +1,61 @@
const el = id => document.getElementById(id)
const highlight = (text, terms) => {
if (!terms || terms.length === 0) return text
let s = text
terms.forEach((t, i) => {
const cls = `kw-${i % 6}`
const re = new RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi')
s = s.replace(re, `<mark class="${cls}">$1</mark>`)
})
return s
}
const fmtCNDateTime = (d) => {
const date = d instanceof Date ? d : new Date()
try {
const s = new Intl.DateTimeFormat('zh-CN', { timeZone: 'Asia/Shanghai', year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false }).format(date)
return s.replace(/\//g, '-').replace(/\u200E/g, '')
} catch {
const pad = n => String(n).padStart(2, '0')
const y = date.getFullYear(), m = pad(date.getMonth()+1), day = pad(date.getDate()), hh = pad(date.getHours()), mm = pad(date.getMinutes()), ss = pad(date.getSeconds())
return `${y}-${m}-${day} ${hh}:${mm}:${ss}`
}
}
const fmtCNSimpleTime = (d) => {
const date = d instanceof Date ? d : new Date()
try {
const s = new Intl.DateTimeFormat('zh-CN', { timeZone: 'Asia/Shanghai', hour: '2-digit', minute: '2-digit', hour12: false }).format(date)
return s.replace(/\u200E/g, '')
} catch {
const pad = n => String(n).padStart(2, '0')
return `${pad(date.getHours())}:${pad(date.getMinutes())}`
}
}
const cnDateStr = (d) => {
const date = d instanceof Date ? d : new Date()
try {
const s = new Intl.DateTimeFormat('zh-CN', { timeZone: 'Asia/Shanghai', year: 'numeric', month: '2-digit', day: '2-digit' }).format(date)
return s.replace(/\//g, '-').replace(/\u200E/g, '')
} catch {
const pad = n => String(n).padStart(2, '0')
return `${date.getFullYear()}-${pad(date.getMonth()+1)}-${pad(date.getDate())}`
}
}
window.fmtCNDateTime = fmtCNDateTime
window.fmtCNSimpleTime = fmtCNSimpleTime
window.cnDateStr = cnDateStr
;(function handleSetToken() {
try {
const u = new URL(window.location.href)
const token = u.searchParams.get('set_token')
if (token) {
localStorage.setItem('toolbox_creds_token', token)
u.searchParams.delete('set_token')
window.history.replaceState(null, '', u.toString())
}
} catch {}
})()
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
<header class="topbar">
<nav class="tabs">
<a class="tab" href="/go?systemId=Tools-weibo" data-key="weibo">微博跟踪</a>
<a class="tab" href="/go?systemId=Tools-markets" data-key="markets">市场跟踪</a>
<a class="tab" href="/go?systemId=Tools-wall-" data-key="wall">告知墙</a>
<a class="tab" href="/go?systemId=Tools-funds" data-key="funds">本金变动池</a>
<a class="tab" href="/go?systemId=Tools-ccb_private_funds" data-key="ccb_private_funds">建行私募理财</a>
<a class="tab" href="/go?systemId=Tools-cloud" data-key="cloud">云产品管理</a>
<a class="tab" href="/go?systemId=Tools-weekly" data-key="weekly">工作周报</a>
<a class="tab" href="/go?systemId=TRAE-Rebalance&url=https%3A%2F%2Ftraesite.umersoft.com%3A8960%2FRebalance.html" data-key="rebalance">再平衡</a>
<a class="tab" href="/go?systemId=Wager&url=https%3A%2F%2Ftraesite.umersoft.com%3A8956" data-key="wager">投注</a>
<a class="tab" href="/go?systemId=TRAE-PSC&url=https%3A%2F%2Ftraesite.umersoft.com%3A8969%2F" data-key="disk">安全网盘</a>
<a class="tab" href="/go?systemId=FitnessDiary" data-key="fitness">运动日志</a>
<a class="tab" href="/go?systemId=CalendarReminder&url=https%3A%2F%2Ftraesite.umersoft.com%3A8972%2F" data-key="fitness">日历提醒</a>
</nav>
</header>
+26
View File
@@ -0,0 +1,26 @@
(async function(){
try {
const wrap = document.querySelector('#topbar')
if (!wrap) return
const res = await fetch('/common/nav.html')
const html = await res.text()
wrap.innerHTML = html
const path = location.pathname.toLowerCase()
let key = ''
if (path.includes('/tools/weibo/')) key = 'weibo'
else if (path.includes('/tools/markets/')) key = 'markets'
else if (path.includes('/tools/wall/')) key = 'wall'
else if (path.includes('/tools/funds/')) key = 'funds'
else if (path.includes('/tools/ccb_private_funds/')) key = 'ccb_private_funds'
else if (path.includes('/tools/cloud/')) key = 'cloud'
else if (path.includes('/tools/weekly/')) key = 'weekly'
else if (path.includes('/tools/ai-lib/')) key = 'ai-lib'
else if (path.includes('/tools/expense/')) key = 'expense'
if (key) {
wrap.querySelectorAll('a.tab').forEach(a => {
if (a.dataset.key === key) a.classList.add('active')
else a.classList.remove('active')
})
}
} catch {}
})()
+128
View File
@@ -0,0 +1,128 @@
[
{
"name": "地下偶像相关揭示板",
"url": "https://m.weibo.cn/u/7716940453",
"icon": "text_italic.png"
},{
"name": "世界树剧场",
"url": "https://m.weibo.cn/u/7925328421",
"icon": "user_go.png"
},
{
"name": "育音堂",
"url": "https://weibo.com/u/1802208671",
"icon": "weather_sun.png"
},
{
"name": "X下载利器",
"url": "https://ssstwitter.com/",
"icon": "twitter_tool.png"
},
{
"name": "上海地下偶像联盟",
"url": "https://m.weibo.cn/u/7912812433",
"icon": "weibo.png"
},
{
"name": "免费ICON",
"url": "https://igoutu.cn/icons",
"icon": ""
},
{
"name": "培训/导航/LOGO",
"url": "http://112.74.31.221:8888/default.html",
"icon": "HDA.png"
},
{
"name": "Git 服务器",
"url": "http://47.101.56.101:8998/Home/LogOn?ReturnUrl=%2F",
"icon": "HDA.png"
},
{
"name": "禅道 项目系统",
"url": "http://112.74.31.221:82/zentao/user-login-L3plbnRhby9teS5odG1s.html",
"icon": "HDA.png"
},
{
"name": "阿里云-合规报告",
"url": "https://security.aliyun.com/trust-center/compliance?spm=5176.32436255.J_JIpOXHuIiVOM6_FDQtQLN.2.377618c54gQlJa",
"icon": "aliyun.png"
},
{
"name": "硅谷-阿里合同",
"url": "https://traesite.umersoft.com:8975/download_files/%E9%98%BF%E9%87%8C%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%8D%8F%E8%AE%AE.pdf",
"icon": "aliyun.png"
},
{
"name": "在线MP3播放",
"url": "https://music.cpp-prog.com",
"icon": "music.png"
},
{
"name": "上海市医疗器械追溯报告系统",
"url": "https://zssb.yjj.sh.gov.cn",
"icon": "GOV.png"
},
{
"name": "虚拟显示器,USB-MMIDD 驱动",
"url": "https://traesite.umersoft.com:8975/download_files/usbmmidd_v2.zip",
"icon": "download.png"
},
{
"name": "CHROME纯净版X64",
"url": "https://traesite.umersoft.com:8975/download_files/ChromeStandaloneSetup64.exe",
"icon": "download.png"
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
},
{
"name": "测试长标题如果不指定图标",
"url": "#",
"icon": ""
}
]