Merge branch 'dev' of http://120.46.213.136:9528/isoftstone/lc_frontend into dev
This commit is contained in:
@@ -122,20 +122,20 @@ export const getTrainingManagementDataPark = (data) => {
|
|||||||
|
|
||||||
// 动环监控-总设备数 /jeelowcode/power_env_device_totol_num
|
// 动环监控-总设备数 /jeelowcode/power_env_device_totol_num
|
||||||
export const getPowerEnvDeviceTotalNum = (data) => {
|
export const getPowerEnvDeviceTotalNum = (data) => {
|
||||||
return request.post({ url: '/jeelowcode/power_env_device_totol_num', data })
|
return request.post({ url: '/jeelowcode/report-data/list/power_env_device_totol_num', data })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 动环监控-告警设备类型分布 /jeelowcode/power_env_device_alarm_distribution
|
// 动环监控-告警设备类型分布 /jeelowcode/power_env_device_alarm_distribution
|
||||||
export const getPowerEnvDeviceAlarmDistribution = (data) => {
|
export const getPowerEnvDeviceAlarmDistribution = (data) => {
|
||||||
return request.post({ url: '/jeelowcode/power_env_device_alarm_distribution', data })
|
return request.post({ url: '/jeelowcode/report-data/list/power_env_device_alarm_distribution', data })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 动环监控-当月告警趋势 /jeelowcode/power_env_alarm_trend
|
// 动环监控-当月告警趋势 /jeelowcode/power_env_alarm_trend
|
||||||
export const getPowerEnvAlarmTrend = (data) => {
|
export const getPowerEnvAlarmTrend = (data) => {
|
||||||
return request.post({ url: '/jeelowcode/power_env_alarm_trend', data })
|
return request.post({ url: '/jeelowcode/report-data/list/power_env_alarm_trend', data })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 动环监控-园区信息列表 /jeelowcode/power_env_device_group_type_campus
|
// 动环监控-园区信息列表 /jeelowcode/power_env_device_group_type_campus
|
||||||
export const getPowerEnvDeviceGroupTypeCampus = (data) => {
|
export const getPowerEnvDeviceGroupTypeCampus = (data) => {
|
||||||
return request.post({ url: '/jeelowcode/power_env_device_group_type_campus', data })
|
return request.post({ url: '/jeelowcode/report-data/list/power_env_device_group_type_campus', data })
|
||||||
}
|
}
|
||||||
@@ -102,10 +102,17 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
} else {
|
} else {
|
||||||
if(import.meta.env.VITE_DEFAULT_SSO =='true'){
|
if(import.meta.env.VITE_DEFAULT_SSO =='true'){
|
||||||
authUtil.setTenantId("1")
|
authUtil.setTenantId("1")
|
||||||
|
// 正确构造包含查询参数的重定向URL
|
||||||
|
let redirectUrl = to.fullPath;
|
||||||
|
if (Object.keys(to.query).length > 0) {
|
||||||
|
const queryParams = new URLSearchParams(to.query as Record<string, string>).toString();
|
||||||
|
redirectUrl = `${to.path}?${queryParams}`;
|
||||||
|
}
|
||||||
|
|
||||||
const redirectUri =
|
const redirectUri =
|
||||||
location.origin +
|
location.origin +
|
||||||
'/social-login?' +
|
'/social-login?' +
|
||||||
`type=100&redirect=${to.fullPath}`
|
`type=100&redirect=${encodeURIComponent(redirectUrl)}`
|
||||||
|
|
||||||
// 进行跳转
|
// 进行跳转
|
||||||
const res = await LoginApi.socialAuthRedirect(100, encodeURIComponent(redirectUri))
|
const res = await LoginApi.socialAuthRedirect(100, encodeURIComponent(redirectUri))
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
class="alert-text"
|
class="alert-text"
|
||||||
:class="[{ error: item.error }, { warn: item.warn }]"
|
:class="[{ error: item.error }, { warn: item.warn }]"
|
||||||
>
|
>
|
||||||
{{ (index + 1) }} {{ item.text }}
|
<a href="'http://10.0.64.20/pms/workorder-list'">{{ (index + 1) }} {{ item.text }}</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
<div class="safe-wrapper">
|
<div class="safe-wrapper">
|
||||||
<span class="safe-title">
|
<span class="safe-title">
|
||||||
<img width="22" style="margin: 3px 5px 0 0" src="@/assets/images/ybp_icon.png" />
|
<img width="22" style="margin: 3px 5px 0 0" src="@/assets/images/ybp_icon.png" />
|
||||||
安全指数:
|
安全指数:<p title="安全指数 = 逾期隐患百分比 × 60% + 安全考核通过率 × 20% + 安全培训完成率 × 20%"></p>
|
||||||
</span>
|
</span>
|
||||||
<span class="pending-count">{{ hiddenDangerData?.safetyIndex || 0 }}</span>
|
<span class="pending-count">{{ hiddenDangerData?.safetyIndex || 0 }}</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -392,7 +392,8 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
p{width:17px; height:17px; background-color:rgb(125, 125, 152); border-radius:50%; text-align:center; }
|
||||||
|
p:before{content:'?'; color:yellow; font-weight: bold;}
|
||||||
.center-container {
|
.center-container {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 55%;
|
top: 55%;
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ onMounted(() => {
|
|||||||
line-height: 25px;
|
line-height: 25px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #1afb8f;
|
background-color: #158e56;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,12 +11,12 @@
|
|||||||
{{ currentTime }}
|
{{ currentTime }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span class="weather-warning">
|
<!-- <span class="weather-warning">
|
||||||
天气预警:
|
天气预警:
|
||||||
<span style="color: red">
|
<span style="color: red">
|
||||||
2025年08月19日13:25分中央气象台发布雄安地区于17时至夜间将有200毫米强降雨,并伴有10级大风......
|
2025年08月19日13:25分中央气象台发布雄安地区于17时至夜间将有200毫米强降雨,并伴有10级大风......
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span> -->
|
||||||
<!-- 主内容区 -->
|
<!-- 主内容区 -->
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<div class="left-wrapper">
|
<div class="left-wrapper">
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="weather-warning">
|
<div class="weather-warning">
|
||||||
<span>天气预警:</span>
|
<!-- <span>天气预警:</span> -->
|
||||||
<!-- 预报内容 -->
|
<!-- 预报内容 -->
|
||||||
<div class="weather-scroll-container" @mouseenter="stopWeatherScroll" @mouseleave="startWeatherScroll">
|
<!-- <div class="weather-scroll-container" @mouseenter="stopWeatherScroll" @mouseleave="startWeatherScroll">
|
||||||
<div class="weather-scroll-content" :style="{ transform: `translateX(${scrollPosition}px)` }">
|
<div class="weather-scroll-content" :style="{ transform: `translateX(${scrollPosition}px)` }">
|
||||||
<span v-for="(item, index) in weatherData" :key="index" class="weather-item"
|
<span v-for="(item, index) in weatherData" :key="index" class="weather-item"
|
||||||
:style="{ color: getLevelColor(item.level_code) }">
|
:style="{ color: getLevelColor(item.level_code) }">
|
||||||
{{ item.content }}
|
{{ item.content }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -1355,7 +1355,7 @@ const timeOut1 = (): void => {
|
|||||||
|
|
||||||
@keyframes typeFlashEffect {
|
@keyframes typeFlashEffect {
|
||||||
0% {
|
0% {
|
||||||
background-color: #1afb8f;
|
background-color: #158e56;
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
@@ -1363,7 +1363,7 @@ const timeOut1 = (): void => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
background-color: #1afb8f;
|
background-color: #158e56;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1381,14 +1381,14 @@ const timeOut1 = (): void => {
|
|||||||
line-height: 25px;
|
line-height: 25px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #1afb8f;
|
background-color: #158e56;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
animation: typeNumberPulse 1.5s ease-in-out infinite;
|
animation: typeNumberPulse 1.5s ease-in-out infinite;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.type-number:hover {
|
.type-number:hover {
|
||||||
background-color: #16d47a;
|
background-color: #158e56;
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<div class="card-title">在线设备数</div>
|
<div class="card-title">在线设备数</div>
|
||||||
<div class="card-value">{{ onlineDevices.toLocaleString() }}</div>
|
<div class="card-value">{{ onlineDevices.toLocaleString() }}</div>
|
||||||
<div class="card-trend online-rate">
|
<div class="card-trend online-rate">
|
||||||
<span>在线率 {{ onlineRate }}%</span>
|
<!-- <span>在线率 {{ onlineRate }}%</span> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -109,6 +109,8 @@
|
|||||||
<a
|
<a
|
||||||
:class="['detail-link', row.hasAlarm ? 'detail-alarm' : 'detail-normal']"
|
:class="['detail-link', row.hasAlarm ? 'detail-alarm' : 'detail-normal']"
|
||||||
@click="handleViewDetail(row)"
|
@click="handleViewDetail(row)"
|
||||||
|
:href="'http://10.0.64.20/configcenter/console/device-manage'"
|
||||||
|
target="_blank"
|
||||||
>
|
>
|
||||||
<span v-if="row.hasAlarm" class="alarm-badge">异常</span>
|
<span v-if="row.hasAlarm" class="alarm-badge">异常</span>
|
||||||
<span v-else class="normal-badge">正常</span>
|
<span v-else class="normal-badge">正常</span>
|
||||||
@@ -440,8 +442,10 @@ const fetchTotalDevices = async () => {
|
|||||||
pageSize: 10
|
pageSize: 10
|
||||||
};
|
};
|
||||||
const response = await getPowerEnvDeviceTotalNum(params);
|
const response = await getPowerEnvDeviceTotalNum(params);
|
||||||
if (response.code === 0 && response.data?.records?.length > 0) {
|
debugger
|
||||||
const total = parseInt(response.data.records[0].total || '0', 10);
|
if (response.records?.length > 0) {
|
||||||
|
debugger
|
||||||
|
const total = parseInt(response.records[0].total || '0', 10);
|
||||||
totalDevices.value = total;
|
totalDevices.value = total;
|
||||||
onlineDevices.value = total; // 在线设备数也用total
|
onlineDevices.value = total; // 在线设备数也用total
|
||||||
}
|
}
|
||||||
@@ -522,11 +526,12 @@ const fetchParkList = async () => {
|
|||||||
pageSize: parkListPage.value.pageSize
|
pageSize: parkListPage.value.pageSize
|
||||||
};
|
};
|
||||||
const response = await getPowerEnvDeviceGroupTypeCampus(params);
|
const response = await getPowerEnvDeviceGroupTypeCampus(params);
|
||||||
if (response.code === 0 && response.data) {
|
debugger
|
||||||
parkListPage.value.total = response.data.total || 0;
|
if (response.records?.length>0) {
|
||||||
|
parkListPage.value.total = response.records?.length || 0;
|
||||||
|
|
||||||
if (response.data.records && response.data.records.length > 0) {
|
if (response.records && response.records.length > 0) {
|
||||||
parkList.value = response.data.records.map((item: any) => {
|
parkList.value = response.records.map((item: any) => {
|
||||||
const upsCount = parseInt(item.ups || '0', 10);
|
const upsCount = parseInt(item.ups || '0', 10);
|
||||||
const jmktCount = parseInt(item.jmkt || '0', 10);
|
const jmktCount = parseInt(item.jmkt || '0', 10);
|
||||||
const wsdCount = parseInt(item.wsd || '0', 10);
|
const wsdCount = parseInt(item.wsd || '0', 10);
|
||||||
|
|||||||
Reference in New Issue
Block a user