map/ui/dasadmin/src/views/backend/dashboard.vue

658 lines
23 KiB
Vue
Raw Normal View History

2024-06-13 11:30:23 +08:00
<template>
2024-11-11 16:24:03 +08:00
<div class="default-main" ref="HomeHight">
2024-11-19 13:44:32 +08:00
<el-row style="margin: 0px;">
2024-11-22 16:42:59 +08:00
<el-col :md="24" :lg="24" class="col-top">
<el-row class="overview">
2024-11-22 17:19:11 +08:00
<el-col :xs="12" :sm="8" :md="8" :lg="4">
2024-11-22 16:42:59 +08:00
<div class="overviewItem" style="margin-left: 0px;">
<img class="small-panel-pic" src="~assets/dashboard/overview01.png" alt="" />
<div class="small-base">
2024-11-22 17:00:48 +08:00
<div class="small-title">全场平均风速</div>
2024-11-22 16:42:59 +08:00
<div class="small-value">
<span class="content-number">{{realData.attributeMap.windfarmavgwindspeed}}</span>
<span>m/s</span>
</div>
</div>
</div>
</el-col>
2024-11-22 17:19:11 +08:00
<el-col :xs="12" :sm="8" :md="8" :lg="4">
2024-11-22 16:42:59 +08:00
<div class="overviewItem">
<img class="small-panel-pic" src="~assets/dashboard/overview02.png" alt="" />
<div class="small-base">
2024-11-22 17:00:48 +08:00
<div class="small-title">全场实时有功</div>
2024-11-22 16:42:59 +08:00
<div class="small-value">
<span class="content-number">{{realData.attributeMap.windfarmactivepower}}</span>
2024-11-25 14:53:58 +08:00
<span>kW</span>
2024-11-22 16:42:59 +08:00
</div>
</div>
</div>
</el-col>
2024-11-22 17:19:11 +08:00
<el-col :xs="12" :sm="8" :md="8" :lg="4">
2024-11-22 16:42:59 +08:00
<div class="overviewItem">
<img class="small-panel-pic" src="~assets/dashboard/overview03.png" alt="" />
<div class="small-base">
2024-11-22 17:00:48 +08:00
<div class="small-title">全场实时无功</div>
2024-11-22 16:42:59 +08:00
<div class="small-value">
<span class="content-number">{{realData.attributeMap.windfarmreactivepower}}</span>
<span>kvar</span>
</div>
</div>
</div>
</el-col>
2024-11-22 17:19:11 +08:00
<el-col :xs="12" :sm="8" :md="8" :lg="4">
2024-11-22 16:42:59 +08:00
<div class="overviewItem">
<img class="small-panel-pic" src="~assets/dashboard/overview04.png" alt="" />
<div class="small-base">
<div class="small-title">日发电量</div>
<div class="small-value">
<span class="content-number">{{realData.attributeMap.windfarmdayprodenergy}}</span>
<span>kWh</span>
</div>
</div>
</div>
</el-col>
2024-11-22 17:19:11 +08:00
<el-col :xs="12" :sm="8" :md="8" :lg="4">
2024-11-22 16:42:59 +08:00
<div class="overviewItem">
<img class="small-panel-pic" src="~assets/dashboard/overview05.png" alt="" />
<div class="small-base">
<div class="small-title">本月发电量</div>
<div class="small-value">
<span class="content-number">{{realData.attributeMap.windfarmmonthprodenergy}}</span>
<span>kWh</span>
</div>
</div>
</div>
</el-col>
2024-11-22 17:19:11 +08:00
<el-col :xs="12" :sm="8" :md="8" :lg="4">
2024-11-22 16:42:59 +08:00
<div class="overviewItem" style="margin-right: 0px;">
<img class="small-panel-pic" src="~assets/dashboard/overview06.png" alt="" />
<div class="small-base">
<div class="small-title">年发电量</div>
<div class="small-value">
<span class="content-number">{{realData.attributeMap.windfarmyearprodenergy}}</span>
<span>kWh</span>
</div>
</div>
</div>
</el-col>
</el-row>
</el-col>
<el-col :md="24" :lg="24">
<div class="AlertPart">
<div class="AlertPic">
<img src="~assets/dashboard/alert01.png" alt="">
</div>
<div class="realAlert"
ref="scrollRef"
@mouseover.native="clearScroll"
@mouseleave.native="createScroll"
>
<p v-for="(item,index) in tableData"
:key="index"
@mouseover="showButton"
@mouseout="hideButton"
>
<span>{{item.eventTimeFormate}}</span>
<span>{{item.deviceCode}}</span>
<span>{{item.eventText}}</span>
<span v-show="showConfirmButton" >
<a style="color: #0277b3; cursor: pointer;" @click="open(item)" >确认</a>
</span>
</p>
</div>
</div>
</el-col>
<el-col :md="24" :lg="24" class="col-center" style="padding-right: 10px;">
2024-10-24 09:04:51 +08:00
<div class="grid-content ep-bg-purple-light">
<!--风机矩阵-->
<div class="matrix panelBg">
<div class="homeHeader">
<div class="cardLabel">风机矩阵</div>
</div>
2024-11-11 16:38:43 +08:00
<el-scrollbar>
<WindContent :parentData="FanList" @StatusListData="StatusListData"></WindContent>
</el-scrollbar>
2024-06-13 11:30:23 +08:00
</div>
2024-10-24 09:04:51 +08:00
</div>
</el-col>
</el-row>
2024-06-13 11:30:23 +08:00
</div>
</template>
<script setup lang="ts">
2024-11-08 15:44:06 +08:00
import { nextTick, onActivated, onMounted, reactive, ref, onBeforeMount, onUnmounted, VNodeRef } from 'vue'
2024-06-13 11:30:23 +08:00
import * as echarts from 'echarts'
2024-11-08 15:44:06 +08:00
import { useTemplateRefsList, useEventListener } from '@vueuse/core'
import { useI18n } from 'vue-i18n'
2024-10-24 09:04:51 +08:00
import WindContent from '/@/views/backend/home/windMatrix.vue'
import { equipList } from '/@/api/backend/realData/request'
2024-11-08 15:44:06 +08:00
import { getWindFarmRealData, getWindTurbineMatrixData, getHistoryData } from '/@/api/backend/dashboard.ts'
import { dayjs, ElMessage, ElMessageBox, TableInstance } from 'element-plus'
2024-10-31 13:48:17 +08:00
import { getRealTimeState } from '/@/views/backend/equipment/airBlower/utils.ts'
2024-11-08 15:44:06 +08:00
import { useRoute } from 'vue-router'
2024-11-06 16:31:28 +08:00
import { getAlarmListReq, eventComfirm } from '/@/api/backend/alarms/request'
2024-10-31 16:49:12 +08:00
const route = useRoute()
2024-10-24 09:04:51 +08:00
2024-06-13 11:30:23 +08:00
const d = new Date()
const { t } = useI18n()
2024-11-08 15:44:06 +08:00
let timer: any = null
2024-10-31 16:49:12 +08:00
let myTable = ref<TableInstance>()
2024-10-24 09:04:51 +08:00
2024-11-08 15:44:06 +08:00
const realData = ref({
2024-10-31 09:21:15 +08:00
windFarmId: '',
2024-11-08 15:44:06 +08:00
attributeMap: {},
2024-10-24 09:04:51 +08:00
})
2024-10-31 16:49:12 +08:00
2024-11-22 16:42:59 +08:00
const attributeList = ref({
attributesList:[
'windfarmactivepower',
'windfarmreactivepower',
'windfarmavgwindspeed',
'windfarmdayprodenergy',
'windfarmmonthprodenergy',
'windfarmyearprodenergy',
]
})
2024-11-08 15:44:06 +08:00
const formatAttributeValue = (value: any) => {
if (value === undefined) {
return '-'
}
if (typeof value !== 'number') {
throw new Error('Invalid data type for attribute value')
}
return value % 1 === 0 ? value : value.toFixed(2)
2024-10-31 16:49:12 +08:00
}
2024-10-31 09:21:15 +08:00
const overviewList = () => {
2024-11-22 16:42:59 +08:00
getWindFarmRealData(attributeList.value).then((res) => {
2024-10-31 09:21:15 +08:00
if (res.code == 200) {
2024-11-08 15:44:06 +08:00
res.data.attributeMap.windfarmactivepower = formatAttributeValue(res.data.attributeMap.windfarmactivepower)
2024-11-22 16:42:59 +08:00
res.data.attributeMap.windfarmreactivepower = formatAttributeValue(res.data.attributeMap.windfarmreactivepower)
2024-11-08 15:44:06 +08:00
res.data.attributeMap.windfarmavgwindspeed = formatAttributeValue(res.data.attributeMap.windfarmavgwindspeed)
2024-11-22 16:42:59 +08:00
res.data.attributeMap.windfarmdayprodenergy = formatAttributeValue(res.data.attributeMap.windfarmdayprodenergy)
res.data.attributeMap.windfarmmonthprodenergy = formatAttributeValue(res.data.attributeMap.windfarmmonthprodenergy)
2024-11-08 15:44:06 +08:00
res.data.attributeMap.windfarmyearprodenergy = formatAttributeValue(res.data.attributeMap.windfarmyearprodenergy)
const data: any = {
2024-10-31 13:48:17 +08:00
windFarmId: res.data.windFarmId,
attributeMap: {
windfarmactivepower: res.data.attributeMap.windfarmactivepower,
2024-11-22 16:42:59 +08:00
windfarmreactivepower: res.data.attributeMap.windfarmreactivepower,
2024-10-31 13:48:17 +08:00
windfarmavgwindspeed: res.data.attributeMap.windfarmavgwindspeed,
2024-11-22 16:42:59 +08:00
windfarmdayprodenergy: res.data.attributeMap.windfarmdayprodenergy,
windfarmmonthprodenergy: res.data.attributeMap.windfarmmonthprodenergy,
windfarmyearprodenergy: res.data.attributeMap.windfarmyearprodenergy
2024-11-08 15:44:06 +08:00
},
2024-10-31 13:48:17 +08:00
}
2024-11-08 15:44:06 +08:00
realData.value = data
} else {
2024-10-31 09:21:15 +08:00
ElMessage.error({
message: res.msg,
type: 'error',
})
}
})
}
2024-11-08 15:44:06 +08:00
const currentDayStatus = ref({
2024-10-31 09:21:15 +08:00
windTurbineNum: 0,
installedCapacity: 0,
runCapacityTotal: 0,
runNum: 0,
standbyCapacityTotal: 0,
standbyNum: 0,
faultCapacityTotal: 0,
faultNum: 0,
offlineCapacityTotal: 0,
offlineNum: 0,
StandCapacityTotal: 0,
StandNum: 0,
StartCapacityTotal: 0,
2024-11-08 15:44:06 +08:00
StarteNum: 0,
2024-10-24 09:04:51 +08:00
})
2024-11-08 15:44:06 +08:00
const deviceCode = ref([])
2024-10-31 13:48:17 +08:00
const FanList = ref([])
2024-10-31 09:21:15 +08:00
const StatusListData = () => {
getWindTurbineMatrixData().then((res) => {
if (res.code == 200) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.windTurbineNum = res.data.length
const data = res.data.map((item, index) => {
2024-10-31 13:48:17 +08:00
const state = getRealTimeState(item.attributeMap)
2024-11-08 15:44:06 +08:00
item.attributeMap.iwindspeed =
item.attributeMap.iwindspeed !== undefined
? item.attributeMap.iwindspeed % 1 === 0
? item.attributeMap.iwindspeed
2024-11-22 16:42:59 +08:00
: item.attributeMap.iwindspeed.toFixed(2)
2024-11-08 15:44:06 +08:00
: '--'
item.attributeMap.igenpower =
item.attributeMap.igenpower !== undefined
? item.attributeMap.igenpower % 1 === 0
? item.attributeMap.igenpower
2024-11-22 16:42:59 +08:00
: item.attributeMap.igenpower.toFixed(2)
2024-11-08 15:44:06 +08:00
: '--'
item.attributeMap.ikwhthisday =
item.attributeMap.ikwhthisday !== undefined
? item.attributeMap.ikwhthisday % 1 === 0
? item.attributeMap.ikwhthisday
2024-11-22 16:42:59 +08:00
: item.attributeMap.ikwhthisday.toFixed(2)
2024-11-08 15:44:06 +08:00
: '--'
2024-10-31 09:21:15 +08:00
// 初始化计数器和累加器
if (index === 0) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.runNum = 0
currentDayStatus.value.standbyNum = 0
currentDayStatus.value.StandNum = 0
currentDayStatus.value.StarteNum = 0
currentDayStatus.value.offlineNum = 0
currentDayStatus.value.faultNum = 0
currentDayStatus.value.runCapacityTotal = 0
currentDayStatus.value.standbyCapacityTotal = 0
currentDayStatus.value.StandCapacityTotal = 0
currentDayStatus.value.StartCapacityTotal = 0
currentDayStatus.value.offlineCapacityTotal = 0
currentDayStatus.value.faultCapacityTotal = 0
currentDayStatus.value.installedCapacity = 0
2024-10-31 09:21:15 +08:00
}
// 更新容量
if (item.nominalCapacity !== undefined) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.installedCapacity += item.nominalCapacity
2024-10-31 09:21:15 +08:00
}
// 根据运行模式更新状态和数量
2024-10-31 13:48:17 +08:00
//const mode = item.attributeMap.iturbineoperationmode
if ([7, 8, 17, 18, 19, 20, 21].includes(state)) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.runCapacityTotal += item.nominalCapacity
currentDayStatus.value.runNum += 1
2024-10-31 13:48:17 +08:00
} else if ([1, 2, 3, 4, 5, 6].includes(state)) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.standbyCapacityTotal += item.nominalCapacity
currentDayStatus.value.standbyNum += 1
2024-10-31 13:48:17 +08:00
} else if ([9, 10, 12, 13, 14, 15].includes(state)) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.StandCapacityTotal += item.nominalCapacity
currentDayStatus.value.StandNum += 1
2024-10-31 13:48:17 +08:00
} else if (state === 16) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.StartCapacityTotal += item.nominalCapacity
currentDayStatus.value.StarteNum += 1
2024-10-31 13:48:17 +08:00
} else if (state === 0) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.offlineCapacityTotal += item.nominalCapacity
currentDayStatus.value.offlineNum += 1
2024-10-31 13:48:17 +08:00
} else if (state === 11) {
2024-11-08 15:44:06 +08:00
currentDayStatus.value.faultCapacityTotal += item.nominalCapacity
currentDayStatus.value.faultNum += 1
2024-10-31 09:21:15 +08:00
}
2024-10-31 13:48:17 +08:00
const propertiesToFormat = [
'runCapacityTotal',
'standbyCapacityTotal',
'StandCapacityTotal',
'StartCapacityTotal',
'offlineCapacityTotal',
'faultCapacityTotal',
2024-11-08 15:44:06 +08:00
'installedCapacity',
]
2024-10-31 13:48:17 +08:00
2024-11-08 15:44:06 +08:00
propertiesToFormat.forEach((property) => {
2024-10-31 13:48:17 +08:00
if (currentDayStatus.value[property] !== null && currentDayStatus.value[property] !== undefined) {
currentDayStatus.value[property] = Number(currentDayStatus.value[property].toFixed(1))
2024-10-31 13:48:17 +08:00
}
2024-11-08 15:44:06 +08:00
})
2024-10-31 13:48:17 +08:00
return {
2024-11-08 15:44:06 +08:00
irn: item.irn,
name: item.name ?? '-',
model: item.model || '-',
modelId: item.modelId,
belongLine: item.belongLine || '-',
standard: item.standard,
attributeMap: {
iwindspeed: item.attributeMap.iwindspeed,
igenpower: item.attributeMap.igenpower,
ikwhthisday: item.attributeMap.ikwhthisday,
iturbineoperationmode: state,
locked: item.attributeMap.locked,
2024-11-18 18:14:19 +08:00
irotorspeed: item.attributeMap.irotorspeed,
2024-11-08 15:44:06 +08:00
},
2024-10-31 13:48:17 +08:00
}
2024-11-08 15:44:06 +08:00
})
FanList.value = data
} else {
2024-10-31 09:21:15 +08:00
ElMessage.error({
message: res.msg,
type: 'error',
})
}
})
}
2024-06-13 11:30:23 +08:00
2024-10-31 16:49:12 +08:00
const timestampToTime = (timestamp: any) => {
timestamp = timestamp ? timestamp : null
let date = new Date(timestamp)
let Y = date.getFullYear() + '-'
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
let m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
return Y + M + D + h + m
}
2024-11-08 15:44:06 +08:00
const tableData = ref()
2024-06-13 11:30:23 +08:00
const getTableData = (deviceCode) => {
2024-11-08 15:44:06 +08:00
const data: any = {
2024-11-22 16:42:59 +08:00
startTime: new Date(new Date().toLocaleDateString()).getTime(),
endTime: Date.now(),
2024-11-08 15:44:06 +08:00
deviceCode: deviceCode,
limit: 100,
2024-11-22 16:42:59 +08:00
eventLevel:2
2024-10-24 09:04:51 +08:00
}
2024-11-25 14:53:58 +08:00
// console.log(JSON.stringify(data))
2024-11-06 16:31:28 +08:00
getAlarmListReq(data).then((res) => {
if (res.code == 200) {
//tableData.value = res.rows
tableData.value = res.rows.map((item: any) => {
return {
...item,
eventTimeFormate: timestampToTime(item.eventTime),
}
})
} else {
ElMessage.error(res.msg ?? '查询失败')
}
})
}
const open = (val: any) => {
ElMessageBox.confirm('是否确认?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
okSubmit(val)
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消确认',
})
})
}
const okSubmit = (val: any) => {
const reqData: any = [
{
eventTime: val.eventTime,
eventId: val.eventId,
confirmed: 1,
deviceId: val.deviceId,
},
]
2024-11-06 16:31:28 +08:00
eventComfirm(reqData)
.then((res: any) => {
if (res.code == 200) {
ElMessage.success(res.msg ?? '确认成功')
getTableData(deviceCode.value)
} else {
ElMessage.error(res.msg ?? '查询失败')
}
})
.catch((err) => {
ElMessage.error(err?.response?.data?.msg ?? '查询失败')
})
}
2024-06-13 11:30:23 +08:00
2024-11-19 13:44:32 +08:00
const scrollRef=ref()
2024-11-22 16:42:59 +08:00
const showConfirmButton = ref(false)
const showButton = () => {
showConfirmButton.value = true;
}
const hideButton = () => {
showConfirmButton.value = false;
}
2024-10-24 09:04:51 +08:00
const clearScroll = () => {
clearInterval(timer)
2024-06-13 11:30:23 +08:00
}
2024-10-24 09:04:51 +08:00
const createScroll = () => {
clearScroll()
2024-11-19 13:44:32 +08:00
timer =setInterval(() => {
scrollRef.value.scrollLeft += 1;
if (scrollRef.value.clientWidth + scrollRef.value.scrollLeft == scrollRef.value.scrollWidth) {
scrollRef.value.scrollLeft = 0
2024-06-13 11:30:23 +08:00
}
//scrollRef.value.scrollTop += 1
/* if (scrollRef.value.clientHeight + scrollRef.value.scrollTop == scrollRef.value.scrollHeight) {
scrollRef.value.scrollTop = 0
}*/
2024-11-19 13:44:32 +08:00
}, 30);
2024-06-13 11:30:23 +08:00
}
let autoUpdateForSecondTimer: any = null
2024-10-31 09:21:15 +08:00
const autoUpdate = () => {
if (!autoUpdateForSecondTimer) {
autoUpdateForSecondTimer = setInterval(() => {
2024-10-31 09:21:15 +08:00
StatusListData()
overviewList()
2024-10-31 09:21:15 +08:00
}, 2000)
}
2024-11-19 13:44:32 +08:00
2024-10-31 09:21:15 +08:00
}
2024-11-11 16:24:03 +08:00
const HomeHight = ref()
const computedHeight = reactive({
powerHeight: '298px',
centerHeight: '1100px',
alarmHeight: '350px',
})
const sizeChange = () => {
const rect = HomeHight.value?.getBoundingClientRect()
if (!rect) return
2024-11-22 16:42:59 +08:00
computedHeight.centerHeight = rect.height - 190 + 'px'
2024-11-13 10:46:37 +08:00
if (window.screen.width < 1360) {
2024-11-22 16:42:59 +08:00
computedHeight.centerHeight = rect.height - 0 + 'px'
}
if (rect.width < 1360) {
computedHeight.centerHeight = rect.height - 0 + 'px'
2024-11-13 10:46:37 +08:00
}
2024-11-11 16:24:03 +08:00
}
onMounted(() => {
window.addEventListener('resize', sizeChange)
sizeChange()
2024-11-19 13:44:32 +08:00
//getAllChartData()
2024-11-11 16:24:03 +08:00
createScroll()
2024-11-22 16:42:59 +08:00
overviewList()
2024-11-11 16:24:03 +08:00
StatusListData()
autoUpdate()
equipList({ objectType: 10002 }).then((res) => {
res.data.map((item: any) => {
2024-11-25 14:05:10 +08:00
deviceCode.value.push(item.code)
2024-11-11 16:24:03 +08:00
})
getTableData(deviceCode.value)
})
})
2024-10-31 09:21:15 +08:00
onUnmounted(() => {
2024-11-11 16:24:03 +08:00
window.removeEventListener('resize', sizeChange)
2024-10-31 09:21:15 +08:00
clearInterval(timer)
autoUpdateForSecondTimer && clearInterval(autoUpdateForSecondTimer)
2024-11-08 15:44:06 +08:00
})
2024-06-13 11:30:23 +08:00
</script>
<style scoped lang="scss">
2024-11-11 16:24:03 +08:00
$marginNum: 10px;
$labelHeight: 30px;
2024-11-11 16:24:03 +08:00
@mixin cardDefaultStyle {
margin-top: $marginNum;
margin-bottom: $marginNum;
padding: 10px;
border-radius: 10px;
background-color: #fff;
}
@mixin cardlabel {
.cardLabel {
height: $labelHeight;
font-size: 18px;
font-weight: 600;
color: #4e5969;
line-height: 30px;
/* padding-left: 10px;*/
2024-11-08 15:44:06 +08:00
}
}
2024-10-24 09:04:51 +08:00
.default-main {
2024-11-11 16:24:03 +08:00
width: 100%;
2024-11-13 17:28:29 +08:00
height: 100%;
2024-11-19 13:44:32 +08:00
/* min-height: 920px;*/
2024-10-24 09:04:51 +08:00
padding: 0;
margin: 0;
2024-11-08 15:44:06 +08:00
color: #4e5969;
background-color: #f2f3f5;
2024-11-18 18:14:19 +08:00
.el-row {
2024-11-13 17:28:29 +08:00
width: calc(100% - 0px);
2024-11-18 18:14:19 +08:00
.el-col {
2024-11-13 17:28:29 +08:00
height: calc(100% - 10px);
}
}
2024-11-08 15:44:06 +08:00
.content-number {
2024-10-24 09:04:51 +08:00
color: #333333;
2024-11-22 16:42:59 +08:00
font-size: 28px;
2024-10-24 09:04:51 +08:00
}
2024-11-08 15:44:06 +08:00
.homelabel {
2024-10-24 09:04:51 +08:00
font-family: PingFangSC-Semibold;
font-size: 18px;
2024-11-08 15:44:06 +08:00
color: #4e5969;
2024-10-24 09:04:51 +08:00
letter-spacing: 0;
line-height: 18px;
font-weight: 600;
margin-bottom: 10px;
2024-06-13 11:30:23 +08:00
display: block;
}
2024-11-22 16:42:59 +08:00
.overview {
width: calc(100% - 10px);
height: 100%;
.overviewItem{
height: 100px;
display: flex;
background: #FFFFFF;
border-radius: 6px;
margin: 5px;
align-items: center;
color: #4E5969;
.small-panel-pic{
2024-11-22 17:00:48 +08:00
width: 80px;
height: 80px;
2024-11-22 16:42:59 +08:00
}
}
}
.AlertPart{
width: calc(100% - 10px);
height: 60px;
margin: 10px 0;
background-image: linear-gradient(90deg, #FFE3E3 0%, #FBFDFF 100%);
border: 2px solid #FFFFFF;
border-radius: 6px;
display: flex;
align-items: center;
.AlertPic{
width: 50px;
text-align: center;
img{
width: 24px;
height: 24px;
}
}
.realAlert{
overflow: hidden;
white-space: nowrap;
cursor: pointer;
font-size: 20px;
color: #333333;
width: 100%;
p{
padding-right: 30px;
display: inline-block;
2024-11-26 10:45:30 +08:00
span{
padding-right: 10px;
}
2024-11-22 16:42:59 +08:00
}
}
}
2024-11-08 15:44:06 +08:00
.grid-content {
2024-11-13 10:46:37 +08:00
/* overflow-x: hidden;*/
width: 100%;
2024-10-24 09:04:51 +08:00
height: 100%;
2024-11-08 15:44:06 +08:00
.panelBg {
2024-10-24 09:04:51 +08:00
background-color: #ffffff;
padding: 10px;
2024-10-24 09:04:51 +08:00
border-radius: 5px;
margin-bottom: 10px;
2024-06-13 11:30:23 +08:00
}
2024-11-22 16:42:59 +08:00
2024-11-08 15:44:06 +08:00
.matrix {
@include cardlabel;
2024-11-25 09:39:23 +08:00
background: url('/@/assets/dashboard/bg2.png') no-repeat #ffffff;
2024-10-24 09:04:51 +08:00
background-size: 100% 100%;
2024-11-19 13:44:32 +08:00
/* min-height: 900px;*/
2024-11-11 16:24:03 +08:00
width: 100%;
height: v-bind('computedHeight.centerHeight');
margin-bottom: 0;
2024-11-18 18:14:19 +08:00
.el-scrollbar {
2024-11-13 17:28:29 +08:00
height: calc(100% - 20px);
}
.homeHeader{
display: flex;
2024-11-21 10:26:04 +08:00
.cardLabel{
width: 100px;
}
}
2024-11-11 16:24:03 +08:00
2024-11-08 11:31:40 +08:00
}
2024-11-11 16:24:03 +08:00
}
}
2024-11-22 17:19:11 +08:00
2024-11-18 18:27:52 +08:00
@media screen and (max-width: 1360px) {
2024-11-13 17:28:29 +08:00
.default-main {
2024-11-18 18:27:52 +08:00
font-size: 11px !important;
2024-06-13 11:30:23 +08:00
}
}
2024-11-11 16:24:03 +08:00
@media screen and (max-width: 1480px) {
.default-main {
2024-11-11 16:24:03 +08:00
font-size: 12px !important;
2024-11-22 17:19:11 +08:00
.content-number {
font-size: 16px !important;
2024-11-11 16:24:03 +08:00
}
2024-06-13 11:30:23 +08:00
}
}
2024-11-11 16:24:03 +08:00
@media screen and (max-width: 1680px) {
2024-11-08 17:45:25 +08:00
.default-main {
2024-11-11 16:24:03 +08:00
/*font-size: 12px !important;*/
.content-number {
2024-11-22 17:19:11 +08:00
font-size: 18px !important;
2024-11-11 16:24:03 +08:00
}
.homelabel {
font-size: 16px !important;
margin-bottom: 10px !important;
}
.grid-content {
2024-11-18 18:14:19 +08:00
.cardLabel {
2024-11-13 17:28:29 +08:00
font-size: 16px !important;
}
2024-11-11 16:24:03 +08:00
.panelBg {
/* padding: 10px !important;*/
margin-bottom: 10px !important;
}
}
2024-11-08 17:45:25 +08:00
}
}
2024-06-13 11:30:23 +08:00
</style>