添加链接

This commit is contained in:
chenlin
2025-12-29 17:37:38 +08:00
parent 07331d0e15
commit 260cacb8dd
10 changed files with 281 additions and 218 deletions

View File

@@ -208,7 +208,7 @@
</div>
</div>
<div style=" display: flex; width: 100%;margin-top: 1vw; flex: 1; justify-content: flex-end;">
<AlertList style="margin-right: 1vw;" title="告警详情" :list-data="mockData.alertData.details" />
<AlertList linkUrl="http://10.0.64.20/security/console/command-center?p=tabl" style="margin-right: 1vw;" title="告警详情" :list-data="mockData.alertData.details" />
</div>
</div>
<!-- 右下区域 -->
@@ -231,7 +231,7 @@
</div>
</div>
<div style=" display: flex; width: 100%;margin-top: 1vw; flex: 1; justify-content: flex-end;">
<AlertList style="margin-right: 1vw;" title="工单详情" :list-data="mockData.timeoutWorkOrders.details" />
<AlertList linkUrl="http://10.0.64.20/pms/workorder-list" style="margin-right: 1vw;" title="工单详情" :list-data="mockData.timeoutWorkOrders.details" />
</div>
</div>
</div>
@@ -680,6 +680,50 @@ interface RegionItem {
code: string
pic_url: string
}
// 缓存工具函数 - 三个页面共享的缓存
const CACHE_KEY = 'shared_regionOption_cache'
const CACHE_DURATION = 5 * 60 * 1000 // 5分钟
interface CacheData {
records: any[] // 原始接口返回的数据
timestamp: number
}
const getCachedRegionOption = (): any[] | null => {
try {
const cached = sessionStorage.getItem(CACHE_KEY)
if (cached) {
const cacheData: CacheData = JSON.parse(cached)
const now = Date.now()
// 检查缓存是否在有效期内
if (now - cacheData.timestamp < CACHE_DURATION) {
console.log('使用缓存的 regionOption 数据')
return cacheData.records
} else {
console.log('缓存已过期,清除缓存')
sessionStorage.removeItem(CACHE_KEY)
}
}
} catch (error) {
console.error('读取缓存失败:', error)
sessionStorage.removeItem(CACHE_KEY)
}
return null
}
const setCachedRegionOption = (records: any[]) => {
try {
const cacheData: CacheData = {
records,
timestamp: Date.now()
}
sessionStorage.setItem(CACHE_KEY, JSON.stringify(cacheData))
console.log('regionOption 数据已缓存')
} catch (error) {
console.error('保存缓存失败:', error)
}
}
const regionOption = ref<RegionItem[]>([])
onMounted(async () => {
updateTime()
@@ -692,50 +736,40 @@ onMounted(async () => {
handleRiskTabChange('安全类')
try {
let { records } = await getTableList(
'park_info_list'
)
// records = [
// {
// "region_id": "130601",
// "park_code": "1825468527486140416",
// "region": "北京",
// "park_name": "雄安新区总部",
// "pic_url": "1"
// },
// {
// "region_id": "130601",
// "park_code": "1825468527486140417",
// "region": "北京",
// "park_name": "雄安地面站",
// "pic_url": "2"
// },
// {
// "region_id": "130603",
// "park_code": "1825468527486140426",
// "region": "武汉",
// "park_name": "花山新区总部",
// "pic_url": "3"
// }
// ]
if (records && records.length > 0) {
// 更新为新的数据格式
regionOption.value = records.map(el => ({
name: el.park_name,
code: el.park_code,
pic_url: el.pic_url
}))
// 先检查缓存
const cachedRecords = getCachedRegionOption()
let records = cachedRecords
if (!records || records.length === 0) {
// 缓存不存在或已过期,调用接口
try {
let result = await getTableList('park_info_list')
records = result.records || []
if (records && records.length > 0) {
// 保存到缓存
setCachedRegionOption(records)
}
} catch (error) {
console.error('初始化园区数据失败:', error)
records = []
}
}
if (records && records.length > 0) {
// 更新为新的数据格式
regionOption.value = records.map(el => ({
name: el.park_name,
code: el.park_code,
pic_url: el.pic_url
}))
for (let i = 0; i < regionOption.value.length; i++) {
const el = regionOption.value[i];
if (el.code == query.campus_id && el.pic_url) {
backgroundImage.value = el.pic_url
}
for (let i = 0; i < regionOption.value.length; i++) {
const el = regionOption.value[i];
if (el.code == query.campus_id && el.pic_url) {
backgroundImage.value = el.pic_url
}
}
} catch (error) {
console.error('初始化园区数据失败:', error)
}
// 初始化数据
await loadDashboardData()