Merge remote-tracking branch 'origin/main' into auth-login
This commit is contained in:
@@ -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)'
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user