v0.3.20: 每日汇报系统 — 每天8点自动收集前一日数据并推送汇总报告
新增:
- src/services/daily-report.service.ts (核心服务: 数据收集/报告生成/格式化/调度器)
- API: GET/PUT daily-report/config, GET daily-report/preview, POST daily-report/test, GET daily-report/last-run
- 前端: 侧边栏"📊 每日汇报"菜单 + SystemConfig.vue 配置面板(时间/内容开关/预览/测试发送)
- main.ts: 每60秒检查调度, 08:00-08:04 窗口内运行
报告内容: 搜索统计/转存统计(成功率)/各网盘容量和活跃状态/用户数
This commit is contained in:
@@ -0,0 +1 @@
|
||||
.admin-layout[data-v-469751e8]{display:flex;height:100vh;background:var(--bg-page)}.admin-sidebar[data-v-469751e8]{width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#111827,#1e293b);position:relative;z-index:10}.sidebar-brand[data-v-469751e8]{display:flex;align-items:center;gap:10px;padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-logo[data-v-469751e8]{font-size:28px;line-height:1;flex-shrink:0}.sidebar-brand-text h2[data-v-469751e8]{font-size:16px;font-weight:700;margin:0;color:#fff;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-brand-text p[data-v-469751e8]{font-size:11px;margin:2px 0 0;color:#ffffff73;letter-spacing:1px}.sidebar-menu[data-v-469751e8]{flex:1;display:flex;flex-direction:column;background:transparent!important;border-right:none!important;padding:4px 0}.sidebar-menu[data-v-469751e8] .el-menu-item,.sidebar-menu[data-v-469751e8] .el-sub-menu__title{color:#ffffffa6;height:44px;line-height:44px;transition:all .2s ease;margin:0 6px;border-radius:var(--radius-sm)}.sidebar-menu[data-v-469751e8] .el-menu-item:hover,.sidebar-menu[data-v-469751e8] .el-sub-menu__title:hover{background:#ffffff14;color:#ffffffe6}.sidebar-menu[data-v-469751e8] .el-menu-item.is-active{color:#fff;background:linear-gradient(90deg,#409eff40,#6366f126);font-weight:500}.sidebar-menu[data-v-469751e8] .el-menu-item:after{display:none}.sidebar-menu[data-v-469751e8] .el-sub-menu .el-menu{background:#0003!important}.sidebar-menu[data-v-469751e8] .el-sub-menu .el-menu .el-menu-item{padding-left:52px!important;font-size:13px;height:38px;line-height:38px}.sidebar-menu[data-v-469751e8] .el-icon{font-size:16px}.sidebar-spacer[data-v-469751e8]{flex:1}.sidebar-version[data-v-469751e8]{text-align:center;font-size:11px;color:#ffffff40;padding:8px 0;letter-spacing:.5px}.admin-content[data-v-469751e8]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.content-header[data-v-469751e8]{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;background:var(--bg-card);border-bottom:1px solid var(--border-light);flex-shrink:0}.content-breadcrumb[data-v-469751e8]{display:flex;align-items:center;gap:8px}.breadcrumb-current[data-v-469751e8]{font-size:18px;font-weight:700;color:var(--text)}.content-actions[data-v-469751e8] .el-button{color:var(--text-secondary);gap:4px}.content-body[data-v-469751e8]{flex:1;overflow-y:auto;padding:24px 28px}.content-body[data-v-469751e8] .save-bar{position:fixed;bottom:32px;right:32px;z-index:100;background:var(--bg-card);padding:12px 16px;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:0 4px 16px #0000001f;display:flex;gap:10px;transition:box-shadow .2s,transform .2s}.content-body[data-v-469751e8] .save-bar:hover{box-shadow:0 6px 24px #0000002e;transform:translateY(-2px)}
|
||||
Reference in New Issue
Block a user