merge: 合入本地 Ops 扩展与 origin/main(ECR-009–016)

保留远程用户侧 ECR-009–016 与本地 Ops 目录/RBAC/CMS/危机等能力;文档标注分叉期间 ECR 编号冲突。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-13 01:45:53 +08:00
co-authored by Cursor
593 changed files with 21918 additions and 328 deletions
+11 -1
View File
@@ -28,6 +28,14 @@ async function onLogout() {
<RouterLink to="/analytics">数据</RouterLink>
<RouterLink to="/content">内容</RouterLink>
<RouterLink to="/users">用户</RouterLink>
<RouterLink to="/plans">套餐</RouterLink>
<RouterLink to="/codes">兑换码</RouterLink>
<RouterLink to="/ask">问答</RouterLink>
<RouterLink to="/safety">安全</RouterLink>
<RouterLink to="/ai">AI</RouterLink>
<RouterLink to="/crisis">危机</RouterLink>
<RouterLink to="/cms">CMS</RouterLink>
<RouterLink to="/catalogs">目录仓</RouterLink>
<RouterLink to="/orders">订单</RouterLink>
<RouterLink v-if="auth.isSuper" to="/pricing">定价</RouterLink>
<RouterLink to="/push">推送</RouterLink>
@@ -35,7 +43,8 @@ async function onLogout() {
<RouterLink to="/audit">审计</RouterLink>
</nav>
<div class="foot">
<span class="muted">{{ auth.username || '管理员' }} · {{ auth.role }}</span>
<span class="muted">{{ auth.username || '管理员' }}</span>
<span v-if="auth.role" class="role">{{ auth.role }} · {{ auth.permissions.length }} </span>
<button class="btn ghost" type="button" @click="onLogout">退出</button>
</div>
</aside>
@@ -75,6 +84,7 @@ nav a.router-link-active {
box-shadow: 0 4px 12px rgba(229, 77, 66, 0.08);
}
.foot { margin-top: auto; display: flex; flex-direction: column; gap: 0.5rem; }
.role { font-size: 0.75rem; color: var(--muted); }
.main { padding: 1.5rem 1.75rem; }
@media (max-width: 800px) {
.shell { grid-template-columns: 1fr; }