feat: 新增qbi看板
Co-Authored-By: 武世龙 <wusl13@xiaopeng.com>
18 文件已重命名
1个文件已添加
2个文件已修改
| | |
| | | [ |
| | | ".kiro/lark-doc-implement", |
| | | ".kiro/lark-wiki-dev", |
| | | ".kiro/lark-wiki-dev_084245" |
| | | ".kiro/lark-wiki-dev_084245", |
| | | ".kiro/lark-wiki-fetch" |
| | | ] |
| | |
| | | fullScreen: false, |
| | | }, |
| | | { |
| | | // 数据分析:内嵌 Quick BI 报表看板(一级菜单) |
| | | // id 同时作为权限码:超级管理员(role 含 super)在 usePermission 中直通, |
| | | // 其余账号需后台下发该权限码才可见该 tab,符合"仅超管可见"的诉求。 |
| | | name: 'dataAnalysis', |
| | | path: '/dataAnalysis', |
| | | title: '数据分析', |
| | | requiresAuth: true, |
| | | icon: 'icon-park-outline:chart-histogram', |
| | | menuType: 'page', |
| | | componentPath: '/dataAnalysis/index.vue', |
| | | id: 93100, |
| | | keepAlive: true, |
| | | pid: null, |
| | | }, |
| | | { |
| | | name: 'safetyManagement', |
| | | path: '/safetyManagement', |
| | | title: '安全管理', |
| New file |
| | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue' |
| | | |
| | | defineOptions({ name: 'dataAnalysis' }) |
| | | |
| | | /** |
| | | * Quick BI 报表看板地址(当前为单个固定看板)。 |
| | | * 直连 SSO 访问:报表访问权限由 Quick BI 自身按登录身份校验, |
| | | * 无 QBI 权限时会在 iframe 内展示 QBI 自带的「未加入组织 / 权限不足」页面, |
| | | * 本系统无需额外处理该分支。 |
| | | * 后续如需切换或新增看板,仅调整此常量即可。 |
| | | */ |
| | | const QBI_DASHBOARD_URL |
| | | = 'https://ai-quickbi.xiaopeng.link/dashboard/view/pc.htm?pageId=0e63337e-9b9e-4e72-9894-5cb5c357ef86&dd_orientation=auto' |
| | | |
| | | const loading = ref(true) |
| | | |
| | | function handleLoaded() { |
| | | loading.value = false |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="data-analysis-wrapper"> |
| | | <iframe |
| | | :src="QBI_DASHBOARD_URL" |
| | | title="数据分析" |
| | | class="data-analysis-iframe" |
| | | frameborder="0" |
| | | scrolling="auto" |
| | | @load="handleLoaded" |
| | | /> |
| | | <div v-if="loading" class="data-analysis-loading"> |
| | | <n-spin size="large" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .data-analysis-wrapper { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | .data-analysis-iframe { |
| | | display: block; |
| | | width: 100%; |
| | | height: 100%; |
| | | border: none; |
| | | } |
| | | |
| | | .data-analysis-loading { |
| | | position: absolute; |
| | | inset: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-color: #fff; |
| | | } |
| | | </style> |