Merge remote-tracking branch 'origin/main' into auth-login

This commit is contained in:
mac
2026-07-17 15:02:47 +08:00
11 changed files with 490 additions and 251 deletions
+12 -10
View File
@@ -11,29 +11,29 @@
<router-link to="/service/catalog" class="nav-item" active-class="active">
<span class="ic">▤</span>基础服务
</router-link>
<router-link to="/tasks" class="nav-item" active-class="active">
<router-link to="/task/log" class="nav-item" active-class="active">
<span class="ic">▧</span>任务日志<span class="badge">2</span>
</router-link>
</div>
<div class="nav-group">
<div class="nav-label">资源纳管</div>
<router-link to="/resource/mgmt" class="nav-item" active-class="active">
<router-link to="/resource/management" class="nav-item" active-class="active">
<span class="ic">▥</span>资源管理<span class="badge">CMDB</span>
</router-link>
<router-link to="/cluster" class="nav-item" active-class="active">
<router-link to="/infrastructure/cluster" class="nav-item" active-class="active">
<span class="ic">◆</span>集群与容器<span class="badge">3</span>
</router-link>
<router-link to="/tenants" class="nav-item" active-class="active">
<router-link to="/business/quota" class="nav-item" active-class="active">
<span class="ic">▦</span>业务配额
</router-link>
</div>
<div class="nav-group">
<div class="nav-label">可观测性</div>
<router-link to="/monitor" class="nav-item" active-class="active">
<span class="ic">◎</span>监控
<router-link to="/observable/monitoring" class="nav-item" active-class="active">
<span class="ic">◎</span>监控看板
</router-link>
<router-link to="/alert" class="nav-item" active-class="active">
<span class="ic">⚡</span>告警
<router-link to="/observable/alert" class="nav-item" active-class="active">
<span class="ic">⚡</span>告警信息
</router-link>
</div>
<div class="nav-group">
@@ -60,7 +60,7 @@
<span class="ic" style="font-size:12px;">▦</span>全部总览
</router-link>
</div>
<router-link to="/subsystem/authz" class="nav-item" active-class="active">
<router-link to="/subsystem/authorization" class="nav-item" active-class="active">
<span class="ic">▦</span>子系统赋权
</router-link>
<router-link v-if="isPlatformAdmin" to="/business-line/manage" class="nav-item" active-class="active">
@@ -75,7 +75,7 @@
<router-link to="/audit/login" class="nav-item" active-class="active">
<span class="ic">📋</span>登录审计
</router-link>
<router-link to="/audit/ops" class="nav-item" active-class="active">
<router-link to="/audit/operation" class="nav-item" active-class="active">
<span class="ic">📝</span>运维操作审计
</router-link>
</div>
@@ -104,6 +104,7 @@ const subsystems = [
{ name: 'Apollo', label: '配置中心', icon: 'AP' },
{ name: 'qpass', label: '七牛统一运维平台', icon: 'QP' },
{ name: 'Grafana', label: '指标可视化平台', icon: 'GF' },
{ name: 'Superset', label: '日志数据可视化', icon: 'SS' },
]
const isPortalActive = computed(() => {
@@ -118,6 +119,7 @@ function dotColor(icon: string): string {
AP: 'var(--tag-blue-text)',
QP: 'var(--tag-amber-text)',
GF: 'var(--warn)',
SS: 'var(--tag-cyan-text)',
}
return colors[icon] || 'var(--text-dim)'
}
+10 -10
View File
@@ -11,20 +11,23 @@
</div>
<p>{{ system.description }}</p>
<div class="sso-row">
<span class="sso-dot" :class="{ warn: system.status === 'integrating' }"></span>
{{ system.status === 'integrated' ? 'LDAP 原生配置接入 · 零代码' : 'LDAP 接入改造中' }}
<span class="sso-dot" :class="{ warn: system.status !== 'active' }"></span>
{{ system.status === 'active' ? 'LDAP 原生配置接入 · 在线' : 'LDAP 接入改造中' }}
</div>
</div>
</template>
<script setup lang="ts">
import { computed } from 'vue'
import { subsystemApi, type Subsystem } from '@/api/subsystem'
import { useRouter } from 'vue-router'
import type { Subsystem } from '@/api/subsystem'
const props = defineProps<{
system: Subsystem
}>()
const router = useRouter()
const bgColor = computed(() => {
const colors: Record<string, string> = {
W: 'var(--logo-w-bg)',
@@ -33,6 +36,7 @@ const bgColor = computed(() => {
AP: 'var(--logo-ap-bg)',
QP: 'var(--logo-qp-bg)',
GF: 'var(--logo-gf-bg)',
SS: 'var(--logo-ss-bg)',
}
return colors[props.system.icon] || 'var(--bg-panel-2)'
})
@@ -45,17 +49,13 @@ const iconColor = computed(() => {
AP: 'var(--tag-blue-text)',
QP: 'var(--tag-amber-text)',
GF: 'var(--warn)',
SS: 'var(--tag-cyan-text)',
}
return colors[props.system.icon] || 'var(--text-mid)'
})
const handleClick = async () => {
if (props.system.sso_enabled) {
const { data } = await subsystemApi.getSSOUrl(props.system.id)
window.location.assign(data.sso_url)
} else {
window.open(props.system.url, '_blank')
}
const handleClick = () => {
router.push(`/subsystem/detail/${props.system.name.toLowerCase()}`)
}
</script>