SmartSubstationPlatform/riis-web/src/views/task/patrolmonitor/index.vue

824 lines
28 KiB
Vue
Raw Normal View History

2025-04-24 14:53:21 +08:00
<script lang="ts">
export default {
name: "patrolmonitor", // 巡视监控(日历)主页面
};
</script>
<script setup lang="ts">
import Page from '@/components/Pagination/page.vue'
import { ref, onMounted, onBeforeUnmount, nextTick } from "vue";
import { ElMessage } from "element-plus";
import { getdata, getTask, operate } from "@/api/patrolmonitor";
2025-04-24 14:53:21 +08:00
import { useUserStore } from '@/store/modules/user';
import { useRouter } from 'vue-router';
import { stationOnline } from '@/api/substation';
import PatrolDetails from '@/views/task/patrolDetails/index.vue';
import Eldialog from '@/components/seccmsdialog/eldialog.vue';
import PatrolmonitorMonth from '@/views/task/patrolmonitorMonth/index.vue';
const router = useRouter();
const userStore = useUserStore();
const calendar = ref()
const selectDate = (val: string) => {
calendar.value.selectDate(val)
}
const isPatrolDetails:any =ref(true)
//日历点击事件
function clickDay(row: any) {
info.value.startDate = row.day;
info.value.endDate = row.day;
if (row.day == today.value) {
getData(1, true)
} else {
info.value.current = 1;
getData(0, true)
}
}
//获取当前日期
const currentdate = ref()
const today = ref()
let endTime = new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1);
const startTime = new Date(new Date(new Date().toLocaleDateString()).getTime());
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var year = date.getFullYear();
var month: any = date.getMonth() + 1;
var strDate: any = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var hour = date.getHours(); //小时数0到23
var minute = date.getMinutes(); //分钟数0到59
var second = date.getSeconds(); //秒数0到59
today.value = year + seperator1 + month + seperator1 + strDate
currentdate.value = year + seperator1 + month + seperator1 + strDate + " " + hour + ":" + minute + ":" + second;
info.value.currentDate = today.value;
info.value.startDate = today.value;
info.value.endDate = today.value;
}
//控制行变色
const tableRowClassName = ({
row,
rowIndex,
}: {
row: any
rowIndex: number
}) => {
if (row.lastItem == 'Now') {
return 'lastItem-row'
} else if (rowIndex % 2 === 0) {
// return 'warning-row'
} else if (rowIndex % 2 === 1) {
// return 'success-row'
}
return ''
}
//获取表格数据
//表格所需参数
const info: any = ref({
size: 10,
current: 1,
stationCode: userStore.stationCode,
startDate: '',
endDate: '',
})
const stateData = ref([
{
id:'1',
name:'已完成',
},
{ id:'2',
name:' 执行中',
},
{ id:'0',
name:'待执行',
},
{ id:'5',
name:'未执行',
},
{ id:'6',
name:'超期执行',
},
{ id:'3',
name:'暂停',
},
{ id:'4',
name:'终止',
},
])
const taskState = ref()
const total = ref()
const tableloading = ref(false)
//表格数据
const tableData: any = ref([])
//日历统计数据
const statistics: any = ref({})
const taskName = ref('')
function getData(val: any, loading: any) {
console.log(userStore)
if (info.value.startDate != '' && info.value.endDate != '') {
var startDate = new Date(info.value.startDate);
var endDate = new Date(info.value.endDate);
if (startDate > endDate) {
ElMessage({
type: "warning",
message: "开始时间不能大于结束时间",
});
return false
}
}
if ((info.value.startDate != '' && info.value.endDate == '') || (info.value.startDate == '' && info.value.endDate != '')) {
ElMessage({
type: "warning",
message: "开始时间或结束时间不能为空",
});
return false
}
tableloading.value = true
info.value['status'] = val
info.value['taskName '] = taskName.value
info.value['taskState '] = taskState.value
getdata(info.value).then((res: any) => {
2025-04-24 14:53:21 +08:00
// getNowFormatDate()
const flag = ref(false)
tableloading.value = false
tableData.value = res.data.mapPage.records
info.value.size = res.data.mapPage.size
info.value.current = res.data.mapPage.current
total.value = res.data.mapPage.total
let result = res.data.mapPage.records.some((item: any) => item.taskState == 2)
if (res.data.mapPage.records.length > 0) {
for (var i = 0; i < res.data.mapPage.records.length; i++) {
if (result) {
if (new Date(res.data.mapPage.records[i].planStartTime) > new Date(startTime) && new Date(res.data.mapPage.records[i].planStartTime) < new Date(endTime) && res.data.mapPage.records[i].taskState == 2 && info.value.current == res.data.page) {
res.data.mapPage.records[i].lastItem = 'Now'
flag.value = true
if (flag.value) {
break;
}
}
} else {
if (new Date(res.data.mapPage.records[i].planStartTime) > new Date(currentdate.value) && new Date(res.data.mapPage.records[i].planStartTime) < new Date(endTime) && res.data.mapPage.records[i].taskState == 0 && info.value.current == res.data.page) {
res.data.mapPage.records[i].lastItem = 'Now'
flag.value = true
if (flag.value) {
break;
}
}
}
}
}
}).catch(()=>{
tableloading.value = false
})
const params = {
stationCode: info.value.stationCode,
startDate: info.value.startDate,
endDate: info.value.endDate,
currentDate: info.value.currentDate,
// taskName: taskName.value,
}
getTask(params).then((row: any) => {
statistics.value = row.data
})
}
//操作巡视任务
function Operate(row: any, optType: any) {
if (row.isStationFlag == 1) {
const paramsa = {
stationcode: userStore.stationCode
}
stationOnline(paramsa).then((res: any) => {
if (res == 1) {
const params = {
taskTodoId: row.taskTodoId,
optType: optType
}
operate(params).then((res: any) => {
if (res.code == 0) {
const typeText = ref('')
if (optType == 'pause') {
typeText.value = '暂停'
} else if (optType == 'resume') {
typeText.value = '恢复'
} else if (optType == 'runNow') {
typeText.value = '执行'
} else if (optType == 'delete') {
typeText.value = '删除'
} else if (optType == 'stop') {
typeText.value = '终止'
}
ElMessage({
type: "success",
message: typeText.value + "成功",
});
getData(0, true)
}
})
} else if (res == 0) {
ElMessage({
type: 'error',
message: '当前变电站节点不在线,请稍后重试!',
})
getData(0, true)
return false
}
})
} else {
const params = {
taskTodoId: row.taskTodoId,
optType: optType
}
operate(params).then((res: any) => {
if (res.code == 0) {
const typeText = ref('')
if (optType == 'pause') {
typeText.value = '暂停'
} else if (optType == 'resume') {
typeText.value = '恢复'
} else if (optType == 'runNow') {
typeText.value = '执行'
} else if (optType == 'delete') {
typeText.value = '删除'
} else if (optType == 'stop') {
typeText.value = '终止'
}
ElMessage({
type: "success",
message: typeText.value + "成功",
});
getData(0, true)
}
})
}
}
const PatrolDetailsInfo:any=ref({})
//保存页面未跳转前的状态
function detailed(row:any) {
PatrolDetailsInfo.value.taskTodoId = row.taskTodoId,
PatrolDetailsInfo.value.isStationFlag = row.isStationFlag
isPatrolDetails.value = false
sessionStorage.setItem('size', info.value.size)
sessionStorage.setItem('current', info.value.current)
sessionStorage.setItem('startDate', info.value.startDate)
sessionStorage.setItem('endDate', info.value.endDate)
}
//重置
function resetting() {
getNowFormatDate()
calendar.value.selectDate('today')
taskName.value = ''
taskState.value = ''
getData(1, true)
}
const ws = new WebSocket( userStore.wsApiBaseUrl+ '/websocket/taskresult_'+ userStore.stationCode + "_" + userStore.userId);
function setupWebSocket() {
ws.onopen = () => {
};
ws.onerror = (error:any) => {
};
ws.onmessage = (e:any) => {
if (e.data != 0) {
getData(1, false)
}
};
ws.onclose = () => {
};
}
onBeforeUnmount(() => {
if(ws != null)
{
ws.close()
}
})
onMounted(() => {
setupWebSocket()
getNowFormatDate()
if (router.options.history.state.forward) {
if (sessionStorage.getItem('size')) {
var size = sessionStorage.getItem('size')
var current = sessionStorage.getItem('current')
var startDate = sessionStorage.getItem('startDate')
var endDate = sessionStorage.getItem('endDate')
info.value.size = size
info.value.current = current
info.value.startDate = startDate
info.value.endDate = endDate
getData(0, true)
sessionStorage.removeItem('size');
sessionStorage.removeItem('current');
sessionStorage.removeItem('startDate');
sessionStorage.removeItem('endDate');
} else {
getData(1, true)
}
} else {
getData(1, true)
}
})
const dialogVisible = ref(false)
function ylOpen(){
dialogVisible.value = true;
}
function handleClose(){
dialogVisible.value = false;
}
function retrunClick(){
isPatrolDetails.value = true;
}
</script>
<template>
<div>
<div class="patrolmonitorbox" v-show="isPatrolDetails == true" style="position: relative;
display: flex;
box-sizing: border-box;
padding: 15px;
2025-04-27 15:09:38 +08:00
padding-top:17px ;
2025-04-24 14:53:21 +08:00
padding-bottom: 0;">
<div class="leftNav">
<el-scrollbar height="calc(100vh - 160px)">
<div style="height:40px;line-height: 40px; position: relative;display: flex;justify-content: space-between;align-items: center;">
<div style=" font-weight: 700; font-style: normal;padding-left: 15px;padding-top: 5px;
font-size: 16px;display:inline-block;color: #FFFFFF;"
class="fontFamily">巡视时间</div>
<img src="@/assets/patrolmonitor/xsjk_yl.png" alt="" srcset="" style="padding-right: 15px;cursor: pointer;padding-top: 5px;" @click="ylOpen">
</div>
<div style="z-index: 100;width: 280px;text-align: center;">
<el-calendar ref="calendar">
<template #header="{ date }">
<div style="z-index:100;cursor:pointer; " @click="selectDate('prev-month')"><img
src="@/assets/videoimg/smallleft.png" style="z-index:100" alt=""></div>
<div style="z-index:100;cursor:pointer; font-family: 'Arial Normal', 'Arial';
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #B5D7FF;" @click="selectDate('today')">{{ date }}</div>
<div style="z-index:100;cursor:pointer;" @click="selectDate('next-month')"><img
src="@/assets/videoimg/smallright.png" alt="" style="z-index:100"></div>
</template>
<template #dateCell="{ data }">
<div @click="clickDay(data)">
{{ data.day.split("-").slice(2).join("-") }}
</div>
</template>
</el-calendar>
</div>
<div class="dataTime">
<div class="dataTimeText">任务名称</div>
<div class="dataTimeInput">
<div class="screenHomepage "><el-input v-model="taskName" placeholder="请输入任务名称" @clear="getData(1, true)"
@keyup.enter="getData(1, true)" clearable /></div>
</div>
</div>
<div class="dataTime" style="z-index:300;">
<div class="dataTimeText">任务状态</div>
<div class="dataTimeInput">
<div class="screenHomepage ">
<el-select v-model="taskState" class="selType" :teleported="false" style="width: 100%;z-index: 200;"
:popper-append-to-body="false" clearable placeholder="任务状态" @change="getData(1, true)">
<el-option v-for="item in stateData" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</div>
</div>
</div>
<div class="dataTime">
<div class="dataTimeText">开始时间</div>
<div class="dataTimeInput"> <el-date-picker style="width: 100%;z-index: 200;" class="screenHomepage" v-model="info.startDate" type="date"
placeholder="" popper-class="elDatePicker" format="YYYY-MM-DD" value-format="YYYY-MM-DD" /></div>
</div>
<div class="dataTime">
<div class="dataTimeText">结束时间</div>
<div class="dataTimeInput"> <el-date-picker style="width: 100%;z-index: 200;" class="screenHomepage" v-model="info.endDate" type="date"
placeholder=" " popper-class="elDatePicker" format="YYYY-MM-DD" value-format="YYYY-MM-DD" /></div>
</div>
<div style="width: 100%;display: flex;justify-content: space-around;">
<div v-if="info.startDate == today && info.endDate == today"
style="position: relative;z-index: 100;width: 110px;height: 33px;">
<el-button class="three-button" @click=" info.current = 1, getData(1, true), getNowFormatDate"
style="border: none;z-index:100;position: relative; color: #009BFF;width: 110px;height: 34px;">查询</el-button>
</div>
<div v-if="info.startDate != today || info.endDate != today"
style="position: relative;z-index: 100;width: 110px;height: 33px;">
<el-button class="three-button" @click="info.current = 1, getData(0, true), getNowFormatDate"
style="border: none;z-index:100;position: relative; color: #009BFF;width: 110px;height: 34px;">查询</el-button>
</div>
<div style="position: relative;z-index: 100;width: 110px;height: 33px;">
<el-button class="three-button" @click=" resetting()"
style="border: none;z-index:100;position: relative; color: #009BFF;width: 110px;height: 34px;">重置</el-button>
</div>
</div>
</el-scrollbar>
</div>
<div class="rightNav">
<div style="height: 45px;padding-top: 10px;position: relative;display: flex;align-items: center;justify-content:space-between;">
<div style="display: flex;align-items: center;justify-content: space-between;">
<div class="task"
style="font-weight: 700; font-style: normal;font-size: 16px;color: #FFFFFF;left: 15px;top:8px ;">任务总数{{
statistics.allCount }}</div>
<div class="task" style="color: #EDFAFE;left: 160px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/fff.png" alt="" style="display: inline-block;"> 已完成{{ statistics.execute }}</div>
<div class="task" style="color: #00F9A2;left: 260px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/green.png" alt="" style="display: inline-block;"> 执行中{{ statistics.executing }}
</div>
<div class="task" style="color: #00FFFF;left: 360px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/blue.png" alt="" style="display: inline-block;"> 待执行{{ statistics.executed }}
</div>
<div class="task" style="color: #09f;left: 470px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/xsri_wzx.png" alt="" style="display: inline-block;"> 未执行{{ statistics.unexecuted
}}
</div>
<div class="task" style="color: #a851ff;left: 570px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/xsri_cq.png" alt="" style="display: inline-block;"> 超期执行{{ statistics.overdue }}
</div>
<div class="task" style="color: #FFBD00;left: 680px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/yellow.png" alt="" style="display: inline-block;"> 暂停{{ statistics.suspend }}
</div>
<div class="task" style="color: #FF3300;left: 770px;top:10px;font-size: 14px;"> <img
src="@/assets/MenuIcon/red.png" alt="" style="display: inline-block;"> 终止{{ statistics.stop }}</div>
</div>
</div>
<!-- <img src="@/assets/MenuIcon/xsri_lb1.png" alt="" style="width:100%;position: absolute;"> -->
<!-- <div style="position: relative;"> -->
<el-table :data="tableData" class="PatrolMonitoring"
2025-04-27 15:09:38 +08:00
style="width: 99%;margin:auto;position: relative; height:calc(79vh); overflow: auto;margin-top: 10px; "
2025-04-24 14:53:21 +08:00
stripe :header-cell-style="tableBg">
<el-table-column type="index" align="center" label="序号" width="50px" />
<el-table-column prop="taskName" label="任务名称" min-width="140px" align="left" />
<el-table-column prop="taskType" label="任务类型" width="100px" align="center">
<template #default="scope">
<span v-if="scope.row.type == 1">例行巡视</span>
<span v-else-if="scope.row.type == 2">特殊巡视</span>
<span v-else-if="scope.row.type == 3">专项巡视</span>
<span v-else-if="scope.row.type == 4">自定义巡视</span>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column prop="deviceSumnum" label="点位数量" align="center" width="80px" />
<el-table-column prop="deviceCount" label="设备数量" align="center" width="80px" />
<el-table-column prop="planStartTime" label="计划开始时间" width="170px" align="center" />
<el-table-column prop="startTime" label="执行/取消时间" width="170px" align="center" />
<el-table-column prop="endTime" label="结束时间" width="170px" align="center">
<template #default="scope">
<span v-if="scope.row.endTime != null">{{ scope.row.endTime }}</span>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column prop="taskProgress" label="进度" align="center" width="100px">
<template #default="scope">
<el-progress :text-inside="true" :stroke-width="18" :percentage="scope.row.taskProgress" status="success" />
</template>
</el-table-column>
<el-table-column prop="taskState" label="状态" align="center" width="100px">
<template #default="scope">
<span v-if="scope.row.taskState == 0" style="color: #00FFFF;">待执行</span>
<span v-else-if="scope.row.taskState == 1">已完成</span>
<span v-else-if="scope.row.taskState == 2" style="color: #00F9A2;">执行中</span>
<span v-else-if="scope.row.taskState == 3" style="color: #FFBD00;">暂停</span>
<span v-else-if="scope.row.taskState == 4" style="color: #FF3300;">终止</span>
<span v-else-if="scope.row.taskState == 5" style="color: #09f;">未执行</span>
<span v-else-if="scope.row.taskState == 6" style="color: #a851ff;">超期执行</span>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column prop="description" label="巡视结果" width="140px" align="center">
<template #default="scope">
<span>成功{{ scope.row.result.successCount }}</span><span>失败{{ scope.row.result.failCount }}</span><br />
<span>正常{{ scope.row.result.normalCount }}</span><span style="color: #FF3300;">异常{{
scope.row.result.abnormalCount }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="140px">
<template #default="scope">
<div style="display: flex; justify-content: space-between;align-items: center;">
<img src="@/assets/tableIcon/patrolmonitor/u2219.png" alt="" title="立即执行" class="cursorpointer"
v-hasPerm="['task:runnow']" v-if="scope.row.taskState == 0"
@click="Operate(scope.row, 'runNow')">
<img src="@/assets/tableIcon/patrolmonitor/u2219_disabled.png" alt="" title="立即执行"
v-hasPerm="['task:runnow']" v-else>
<img class="cursorpointer" src="@/assets/tableIcon/patrolmonitor/u2225.png" v-hasPerm="['task:suspend']" v-if="scope.row.taskState == 2 || scope.row.taskState == 0"
title="暂停" @click="Operate(scope.row, 'pause')">
<img v-else src="@/assets/tableIcon/patrolmonitor/u2225_disabled.png" v-hasPerm="['task:suspend']"
title="暂停">
<img class="cursorpointer" src="@/assets/tableIcon/patrolmonitor/u2228.png" v-hasPerm="['task:suspend']" v-if="scope.row.taskState == 3" title="恢复"
@click="Operate(scope.row, 'resume')">
<img v-else src="@/assets/tableIcon/patrolmonitor/u2228_disabled.png" v-hasPerm="['task:suspend']" title="恢复">
<img class="cursorpointer" src="@/assets/tableIcon/patrolmonitor/u2231.png"
v-hasPerm="['task:shutdown']"
v-if="scope.row.taskState == 0 || scope.row.taskState == 3 "
@click="Operate(scope.row, 'stop')"
title="终止" >
<img v-else src="@/assets/tableIcon/patrolmonitor/u2231_disabled.png"
v-hasPerm="['task:shutdown']"
title="终止" >
<img class="cursorpointer" src="@/assets/tableIcon/patrolmonitor/u2222.png"
@click="detailed(scope.row)"
title="详情" >
</div>
</template>
</el-table-column>
</el-table>
<!-- </div> -->
<div style="display: flex;justify-content: center;margin-top: 5px;">
<Page style="position: relative;z-index: 100;" :total="total" v-model:size="info.size"
v-model:current="info.current" @pagination="getData(0, true)"></Page>
</div>
</div>
</div>
<PatrolDetails class=" PatrolDetailsBox " :PatrolDetailsInfo="PatrolDetailsInfo" v-if="isPatrolDetails == false"
@retrunClick="retrunClick"></PatrolDetails>
<Eldialog v-if="dialogVisible" :title="'巡视监控月历'" :zIndex="2000" :width="'calc(100vw - 80px)'"
@before-close="handleClose" :elclass="'ylclass'" >
<template v-slot:PopFrameContent>
<PatrolmonitorMonth v-if="dialogVisible" style="padding-top: 10px;"> </PatrolmonitorMonth>
</template>
</Eldialog>
</div>
</template>
<style scoped lang="scss">
.patrolmonitorbox{
.dataTimeInput {
width: 100%;
position: relative;
margin-left: -12px;
.dataTimeImg {
right: 20px;
top: 10px;
position: absolute;
}
}
.dataTime {
width: 90%;
position: relative;
z-index: 100;
margin: 10px 25px;
.dataTimeText {
color: #B5D7FF;
font-size: 14px;
margin-bottom: 10px;
margin-left: -10px;
}
}
.imgbg {
width: 100vw;
height: 100vh;
position: absolute;
top: 0;
left: 0;
}
.leftNav {
min-width: 280px;
2025-04-27 15:09:38 +08:00
height: calc(90vh);
2025-04-24 14:53:21 +08:00
position: relative;
2025-04-27 15:09:38 +08:00
background: url(@/assets/navigation/ty_260x988.png);
2025-04-24 14:53:21 +08:00
background-size: 100% 100%;
}
.rightNav {
width: calc(100vW - 305px);
2025-04-27 15:09:38 +08:00
height: calc(90vh);
2025-04-24 14:53:21 +08:00
margin-left: 8px;
position: relative;
2025-04-27 15:09:38 +08:00
background: url(@/assets/navigation/ty_1614x988.png) ;
2025-04-24 14:53:21 +08:00
background-size: 100% 100%;
}
.task {
// z-index: 100;
// display: inline-block;
// position: absolute;
margin-left: 25px;
}
:deep(.lastItem-row) {
background-color: rgb(255 204 0 / 30%) !important;
}
:deep(.el-input__wrapper) {
background-color: #0e3329;
}
:deep(.el-input__inner) {
color: #fff !important;
}
:deep(.el-table__body-wrapper) {
color: #fff;
}
// 日历
:deep(.el-calendar) {
--el-calendar-cell-width: 30px;
background-color: #ffffff00;
}
:deep(.el-calendar-table .el-calendar-day) {
background: rgb(31, 41, 56) ;
border: 1px solid rgb(34, 55, 71) ;
padding: 0px !important;
line-height: 28px;
width: 32px;
}
:deep(.el-calendar-table__row) {
display: flex;
}
:deep(.el-calendar-table__row td) {
display: block;
border: none !important;
margin: 2px 2px;
z-index: 100;
color: #B5D7FF;
box-sizing: border-box;
}
:deep(.el-calendar-table__row td div div) {
border: 1px solid rgb(27,40, 56, 0) !important;
font-size: 14px;
}
:deep(.el-calendar-table__row .is-today div div) {
color: #fff;
z-index: 100;
}
:deep(.el-calendar-table__row .is-selected) {
border-radius: 4px;
// overflow: hidden;
}
:deep(.el-calendar-table__row .is-selected div div) {
background-color: rgb(0,153,255);
border: 1px solid rgb(0,153,255) !important;
color: #ffffff;
border-radius: 4px;
}
:deep(.el-calendar-table__row .is-selected div div:hover) {
color: #ffffff;
}
:deep(.el-calendar-table__row td :hover) {
box-sizing: border-box;
border-radius: 4px;
}
:deep(.el-calendar-table__row td div div:hover) {
// border: 1px solid #00f39f !important;
// background-color: #0e332a;
color: rgb(0, 153, 255);
box-sizing: border-box;
border-radius: 4px;
}
:deep(.el-calendar__body) {
padding: 12px 10px 35px;
padding-left: 14px;
}
:deep(.el-calendar-table thead th) {
display: block;
padding: 5px 0px;
margin: 0px 10px;
z-index: 100;
color: #fff;
}
:deep(.el-calendar-table thead) {
display: flex;
}
//日历
:deep(.el-calendar__header) {
justify-content: space-around !important;
align-items: center !important;
border: none;
}
:deep(.el-table) {
--el-table-row-hover-bg-color: transparent !important;
--el-table-border-color: transparent !important;
--el-table-bg-color: transparent !important;
}
:deep(.el-table__empty-text) {
color: #fff !important;
}
//按钮样式
.three-button {
width: 111px;
height: 41px;
background: url('@/assets/patrolmonitor/anniiu5.png') no-repeat;
background-size: 100% 100%;
font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
font-weight: 700;
font-style: normal;
font-size: 14px;
color: #009BFF;
border: none;
:deep(.el-button.is-disabled, .el-button.is-disabled:focus, .el-button.is-disabled:hover) {
color: #009BFF !important;
background: url('@/assets/patrolmonitor/anniiu5.png') no-repeat;
background: url('@/assets/patrolmonitor/anniiu6.png') no-repeat !important;
background-size: 100% 100% !important;
border: none !important;
}
&:focus {
color: #009BFF;
background: url('@/assets/patrolmonitor/anniiu5.png') no-repeat;
background: url('@/assets/patrolmonitor/anniiu6.png') no-repeat;
background-size: 100% 100%;
}
&:hover {
border: none !important;
background: url('@/assets/patrolmonitor/anniiu6.png') no-repeat;
background-size: 100% 100%;
color: #009BFF;
}
}
// :deep(.el-input__wrapper:hover) {
// // box-shadow: 0 0 0 1px #00F9A2 inset;
// color: rgba(0, 118, 253, 1);
// }
:deep(.el-progress-bar__outer) {
background-color: rgb(255 255 255 / 20%) !important;
}
:deep(.el-calendar-table:not(.is-range) td.prev) {
color: rgba(181, 215, 255, 0.3);
}
:deep(.el-calendar-table:not(.is-range) td.next) {
color: rgba(181, 215, 255, 0.3);
}
}
:deep(.el-progress-bar__inner) {
background-color: rgb(0, 153, 255) !important;
}
.cursorpointer{
cursor: pointer;
}
</style>
<style>
.ylclass .el-dialog__body{
height: calc(100vh - 78px);
}
.PatrolDetailsBox .returnButton{
position: absolute;
right: -0;
z-index: 1000;
top: -41px;
}
</style>