From 20b0ce2db27b64a60de60aee05dedd448099e330 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 08 七月 2024 10:12:16 +0800
Subject: [PATCH] xiugai

---
 src/views/riskWarningSys/warningBigScreen/index.vue |  708 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 408 insertions(+), 300 deletions(-)

diff --git a/src/views/riskWarningSys/warningBigScreen/index.vue b/src/views/riskWarningSys/warningBigScreen/index.vue
index 164931e..ffcb8aa 100644
--- a/src/views/riskWarningSys/warningBigScreen/index.vue
+++ b/src/views/riskWarningSys/warningBigScreen/index.vue
@@ -1,5 +1,25 @@
 <template>
     <div id="container" class="dark">
+        <div class="warn-dialog" :class="dialogShow">
+            <div>预警消息</div>
+            <p>企业8月份总体安全生产预警指数SPI风险值高于预警阈值,可能存在未处理隐患,请注意查阅相关风险因素,采取风险防控措施。</p>
+            <span @click="dialogShow = 'hide'">关闭</span>
+        </div>
+        <div class="info-panel" :class="dialogHide"  @click="openDialog">
+            <div class="info-tit">
+                <div>
+                    <el-icon><Bell /></el-icon>
+                    <div style="margin-left: 10px">消息预警</div>
+                </div>
+                <div @click.stop="dialogHide = 'hide'">X</div>
+            </div>
+            <div class="info-desc">
+                企业8月份总体安全生产预警指数SPI风险值高于预警阈值。
+            </div>
+            <div class="info-num">
+                1
+            </div>
+        </div>
         <div class="header-content">
             <div class="logo">
                 <img v-if="screenTheme.isDark" src="../../../assets/warningScreen/logo_dark.png" alt="" />
@@ -10,10 +30,10 @@
 <!--                <img src="themeStyle.skinIcon" class="qiehuan" @click="changeTheme" />-->
                 <span class="datetime">{{currentTime}}</span>
                 <div class="btns">
-                    <div class="themeBtn" @click="changeTheme()">
-                        <img v-if="screenTheme.isDark" src="../../../assets/warningScreen/skin.png"/>
-                        <img v-else src="../../../assets/warningScreen/skin-light.png"/>
-                    </div>
+<!--                    <div class="themeBtn" @click="changeTheme()">-->
+<!--                        <img v-if="screenTheme.isDark" src="../../../assets/warningScreen/skin.png"/>-->
+<!--                        <img v-else src="../../../assets/warningScreen/skin-light.png"/>-->
+<!--                    </div>-->
                     <div class="fullBtn" @click="onScreenfullClick">
                         <div class="toFull">
                             <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
@@ -44,57 +64,44 @@
                 <div class="left-mid">
                     <dv-border-box-13 :backgroundColor="boxBg" :color="boxColor" class="box-bg"></dv-border-box-13>
                     <div class="part-tit">
-                        <span>| 应急演练次数</span>
+                        <span>| 智能巡检超期未巡检任务</span>
 <!--                        <img @click="jumpPage(2)" src="../../../assets/warningScreen/small-full.png">-->
                         <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(2)"/>
                     </div>
                     <div class="chart-box">
-                        <span class="train-tip">距上次演练结束 5 天</span>
-                        <training :size="1"></training>
+                        <training :size="1" :theme="screenTheme.isDark"></training>
                     </div>
                 </div>
                 <div class="left-bottom">
                     <dv-border-box-13 :backgroundColor="boxBg" :color="boxColor" class="box-bg"></dv-border-box-13>
                     <div class="part-tit">
-                        <span>| 隐患等级数量分布</span>
-                        <div>
-                            <el-select class="selector" v-model="month" placeholder="Select" :teleported="false" size="default">
-                                <el-option
-                                        v-for="item in optionList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                />
-                            </el-select>
-<!--                            <img @click="jumpPage(3)" src="../../../assets/warningScreen/small-full.png">-->
-                            <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(3)"/>
-                        </div>
-
+                        <span>| 隐患趋势</span>
+                        <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(3)"/>
                     </div>
                     <div class="chart-box">
-                        <risk :size="1" :month="month"></risk>
+                        <risk :size="1" :theme="screenTheme.isDark" :dep="departList"></risk>
                     </div>
                 </div>
             </div>
             <div class="main-middle">
                 <div class="mid-top">
                     <dv-border-box-11 title="SPI数据分析" :backgroundColor="boxBg" :color="boxBigColor" class="box-bg"></dv-border-box-11>
-                    <div class="part-tit" style="position: absolute;top: 12%;padding: 0 4%">
-                        <el-cascader
-                                class="spiSe"
-                                :teleported="false"
-                                v-model="spiValue"
-                                :options="spiOptions"
-                                :props="props"
-                                :show-all-levels="false"
-                                @change="handleChange"
-                        />
-<!--                        <span>SPI数据分析</span>-->
-<!--                        <img @click="jumpPage(4)" src="../../../assets/warningScreen/small-full.png">-->
+                    <div class="part-tit" style="position: absolute;top: 10%;padding: 0 4%;align-items: flex-start;z-index: 10001">
+                        <div class="spiChart">
+<!--                            <el-cascader-->
+<!--                                    class="spiSe"-->
+<!--                                    :teleported="false"-->
+<!--                                    v-model="depValue"-->
+<!--                                    :options="departList"-->
+<!--                                    :props="depProps"-->
+<!--                                    :show-all-levels="false"-->
+<!--                                    @change="depChange"-->
+<!--                            />-->
+                        </div>
                         <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(4)"/>
                     </div>
-                    <div class="chart-box">
-                        <spi :size="1"></spi>
+                    <div class="chart-box" style="top: 60px;height: calc(100% - 70px)">
+                        <spi :size="1" :theme="screenTheme.isDark"></spi>
                     </div>
                 </div>
                 <div class="mid-bottom">
@@ -153,7 +160,7 @@
                         <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(9)"/>
                     </div>
                     <div class="chart-box">
-                        <monitor></monitor>
+                        <monitor :size="1" ref="monRef" :theme="screenTheme.isDark"></monitor>
                     </div>
                 </div>
                 <div class="right-bottom">
@@ -173,7 +180,17 @@
 
 <script lang="ts">
     import screenfull from 'screenfull';
-    import { toRefs, reactive, ref, onMounted, defineComponent, defineAsyncComponent, nextTick, onUnmounted } from 'vue';
+    import {
+        toRefs,
+        reactive,
+        ref,
+        onMounted,
+        defineComponent,
+        defineAsyncComponent,
+        nextTick,
+        onUnmounted,
+        onBeforeUnmount
+    } from 'vue';
     import { ElTable } from 'element-plus';
     import { FormInstance, FormRules, ElMessage } from 'element-plus';
     import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent/index.ts';
@@ -183,6 +200,9 @@
     import '/@/theme/bigScreen.css'
     import {useScreenTheme} from "/@/stores/screenTheme"
     import {storeToRefs} from "pinia";
+    import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage";
+    import {NextLoading} from "/@/utils/loading";
+    import {videoApi} from "/@/api/systemManage/video";
 
     // 定义接口来定义对象的类型
     interface stateType {
@@ -191,10 +211,13 @@
         boxBigColor: Array<string>;
         isScreenfull: boolean;
         currentTime: string;
-        month: number;
-        spiValue: number;
-        optionList: Array<any>;
-        spiOptions: Array<any>
+        depValue: number;
+        dialogShow: string;
+        dialogHide: string;
+        depProps: object;
+        departList: Array<any>;
+        lastTrain: number | null;
+        timer: any|null
     }
     export default defineComponent({
         name: 'warningScreen',
@@ -220,112 +243,57 @@
             }
             const state = reactive<stateType>({
                 boxBg: 'rgba(8, 109, 209, 0.2)',
+                depValue: 1,
                 boxColor: [],
                 boxBigColor: [],
+                lastTrain: null,
                 isScreenfull: false,
                 currentTime: '',
-                month: 0,
-                spiValue: 0,
-                optionList: [
-                    {
-                        label: '年度',
-                        value: 0
-                    },
-                    {
-                        label: '一月',
-                        value: 1
-                    },
-                    {
-                        label: '二月',
-                        value: 2
-                    },
-                    {
-                        label: '三月',
-                        value: 3
-                    },
-                    {
-                        label: '四月',
-                        value: 4
-                    },
-                    {
-                        label: '五月',
-                        value: 5
-                    },
-                    {
-                        label: '六月',
-                        value: 6
-                    },
-                    {
-                        label: '七月',
-                        value: 7
-                    },
-                    {
-                        label: '八月',
-                        value: 8
-                    },
-                    {
-                        label: '九月',
-                        value: 9
-                    },
-                    {
-                        label: '十月',
-                        value: 10
-                    }
-                ],
-                spiOptions: [
-                    {
-                        value: 0,
-                        label: '公司级别SPI'
-                    },
-                    {
-                        value: 1,
-                        label: 'A事业部SPI',
-                        children: [
-                            {
-                                value: 11,
-                                label: 'A车间SPI'
-                            },
-                            {
-                                value: 12,
-                                label: 'B车间SPI'
-                            },
-                            {
-                                value: 13,
-                                label: 'C车间SPI'
-                            }
-                        ]
-                    },
-                    {
-                        value: 2,
-                        label: 'B事业部SPI',
-                        children: [
-                            {
-                                value: 21,
-                                label: 'D车间SPI'
-                            },
-                            {
-                                value: 22,
-                                label: 'E车间SPI'
-                            },
-                            {
-                                value: 23,
-                                label: 'F车间SPI'
-                            }
-                        ]
-                    }
-                ]
+                dialogShow: 'hide',
+                dialogHide: 'hide',
+                depProps: {
+                    expandTrigger: 'hover',
+                    checkStrictly: true,
+                    value: 'depId',
+                    label: 'depName',
+                    emitPath: false
+                },
+                departList: [],
+                timer: null
             });
-
+            const monRef = ref()
             // 页面载入时执行方法
             onMounted(() => {
-                getTime()
+              NextLoading.done();
+                state.depValue = screenTheme.value.depId
+                getTime();
+                getAllDepartment();
+                state.timer = setInterval(()=>{
+                    getTime()
+                },1000)
                 getTheme()
             });
 
             const getTime =()=>{
-                setInterval(() => {
-                    state.currentTime = new Date().toLocaleString();
-                }, 1000);
+                state.currentTime = new Date().toLocaleString();
+            }
+
+            // 获取部门列表
+            const getAllDepartment = async () => {
+                let res = await teamManageApi().getAllDepartment();
+                if (res.data.code === '200') {
+                    state.departList = JSON.parse(JSON.stringify(res.data.data))
+                } else {
+                    ElMessage({
+                        type: 'warning',
+                        message: res.data.msg
+                    });
+                }
+            }
+
+            const depChange = (value)=>{
+                state.depValue = value
+                screenThemes.setDepId(value)
             }
 
             const changeTheme = () =>{
@@ -339,8 +307,8 @@
                 }else{
                     document.getElementById('container').setAttribute( "class", 'light' )
                     state.boxBg = '#fff'
-                    state.boxColor = ['#ccc','#333']
-                    state.boxBigColor = ['#666','#fff']
+                    state.boxColor = ['#fff','#ccc']
+                    state.boxBigColor = ['#999','#fff']
                 }
             }
 
@@ -353,8 +321,8 @@
                 }else{
                     window.document.getElementById('container').setAttribute( "class", 'light' );
                     state.boxBg = '#fff'
-                    state.boxColor = ['#ccc','#333']
-                    state.boxBigColor = ['#666','#fff']
+                    state.boxColor = ['#fff','#ccc']
+                    state.boxBigColor = ['#999','#fff']
                 }
             }
 
@@ -374,6 +342,18 @@
                 });
             };
 
+            const openDialog = () => {
+                if(state.dialogShow == 'hide'){
+                    state.dialogShow = 'showup'
+                }else{
+                    state.dialogShow = 'hide'
+                }
+            }
+
+            const closeInfo = ()=>{
+                state.dialogHide = 'hide'
+            };
+
             const jumpPage = (num) =>{
                 router.push({
                     path: 'screenPage',
@@ -385,9 +365,15 @@
 
             // 返回上一页
             const goBack = () => {
-                window.history.go(-1);
+                // window.history.go(-1);
+              router.push({
+                path: 'newMenu'
+              });
             };
 
+            onBeforeUnmount(() =>{
+                clearInterval(state.timer)
+            })
             // 隐患状态列表
             // const getDeviceRecord = async () => {
             //     const data = { pageSize: state.pageSize, pageIndex: state.pageIndex};
@@ -406,8 +392,12 @@
                 router,
                 props,
                 screenTheme,
+                monRef,
+                openDialog,
+                closeInfo,
                 changeTheme,
                 onScreenfullClick,
+                depChange,
                 jumpPage,
                 goBack,
                 ...toRefs(state)
@@ -418,6 +408,17 @@
 
 <style scoped lang="scss">
     $homeNavLengh: 8;
+    .hide{
+        display: none;
+    }
+    #container{
+      width: 100%;
+      height: 100%;
+    }
+    .showup{
+        display: block;
+    }
+
     .dark {
         width: 100%;
         height: 100%;
@@ -428,9 +429,100 @@
         background-size: 100% 100%;
         color: #11FEEE;
 
+        .warn-dialog{
+            position: absolute;
+            z-index: 999999;
+            top: 25%;
+            left: 50%;
+            width: 50%;
+            height: 50%;
+            transform: translateX(-50%);
+            border-radius: 8px;
+            transition: .3s;
+            box-shadow: 0 15px 30px rgba(0,0,0,.2);
+            border: 1px solid rgba(17,254,238,.4);
+            padding: 1.5rem;
+            background: rgba(0,16,32,.8);
+
+            div{
+                font-size: 1.5rem;
+                text-align: center;
+            }
+
+            p{
+                margin-top: 20px;
+                font-size: 1.125rem;
+                line-height: 28px;
+                text-align: left
+            }
+
+            span{
+                position: inherit;
+                right: 20px;
+                top: 20px;
+                font-size: 1rem;
+                cursor: pointer;
+            }
+        }
+
+        .info-panel{
+            position: absolute;
+            width: 20%;
+            right: 50px;
+            bottom: 50px;
+            z-index: 9999999;
+            font-size: 1rem;
+            padding: 0 10px;
+            border-radius: 4px;
+            cursor: pointer;
+            box-shadow: 0 15px 30px rgba(0,0,0,.2);
+            border: 1px solid rgba(17,254,238,.4);
+            background: rgba(0,16,32,.8);
+
+            .info-tit{
+                display: flex;
+                align-items: center;
+                padding: 10px;
+                border-bottom: 1px solid rgba(17,254,238,.4);
+                justify-content: space-between;
+
+                &>div{
+                    display: flex;
+                    align-items: center;
+
+                    img{
+                        width: 18px;
+                        height: 18px;
+                        margin-right: 10px;
+                    }
+                }
+            }
+
+            .info-desc{
+                padding: 15px 10px;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+                overflow: hidden;
+            }
+            .info-num{
+                position: inherit;
+                width: 24px;
+                height: 24px;
+                line-height: 24px;
+                text-align: center;
+                left: -12px;
+                top: -12px;
+                color: #fff;
+                z-index: 999999999;
+                border-radius: 50%;
+                border: 1px solid #ff0000;
+                background: #ff0000;
+            }
+        }
+
         .header-content {
             width: 100%;
-            height: 72px;
+            height: 7.8%;
             padding: 0 20px;
             font-size: 1.25rem;
             display: flex;
@@ -444,15 +536,15 @@
                 align-items: center;
                 justify-content: center;
                 img {
-                    height: 35px;
-                    width: 128px;
+                    width: 10rem;
+                    height: auto;
                 }
             }
             .title {
                 width: 46%;
                 font-size: 2rem;
                 font-weight: bolder;
-                line-height: 72px;
+                line-height: 7.8%;
                 text-align: center;
                 letter-spacing: 2px;
             }
@@ -468,6 +560,7 @@
 
                 .datetime {
                     color: #11FEEE;
+                    font-size: 0.9rem;
                 }
                 .btns{
                     display: flex;
@@ -484,7 +577,8 @@
                             height: 1rem;
                         }
                         div{
-                            margin-left: 6px;
+                            margin-left: 0.4rem;
+                            font-size: 0.9rem;
                         }
                     }
                     .themeBtn{
@@ -505,7 +599,7 @@
         }
         .main-content{
             width: 100%;
-            height: calc(100vh - 72px);
+            height: calc(100vh - 7.8%);
             padding: 0.4rem 1.5rem 2rem;
             display: flex;
             align-items: center;
@@ -553,71 +647,27 @@
                         justify-content: space-between;
                         align-items: center;
                         z-index: 9999;
-                        div{
-                            width: 40%;
-                            display: flex;
-                            align-items: center;
-                            justify-content: end;
-                        }
-                        span{
-                            font-size: 1.25rem;
-                            font-weight: bolder;
-                            color: #11feee;
-                        }
-                        ::v-deep(.el-cascader){
+
+                        .spiChart{
                             width: 25% !important;
-                        }
-                        ::v-deep(.el-popper){
-                            background-color: rgba(10,31,92,1);
-                            border: 1px solid rgba(17,254,238,.4);
-                            color: #11FEEE;
-                            .el-cascader-node__label{
-                                color: #11FEEE;
-                            }
-                            .el-icon{
-                                color: #11FEEE;
-                            }
-                            .el-cascader-node{
-                                &:hover{
-                                    background: #0049af;
-                                }
-                            }
-                        }
-                        ::v-deep(.el-popper__arrow){
-                            &::before{
-                                background-color: rgba(10,31,92,.6) !important;
-                                border: 1px solid rgba(17,254,238,.4);
-                            }
-                        }
-                        ::v-deep(.el-input__wrapper){
-                            width: 20%;
-                            box-shadow: none;
-                            border: 1px solid rgba(17,254,238,.2);
-                            background: rgba(10,31,92,.6) !important;
-                            height: 2.5rem;
-                            color: #11FEEE;
 
-                            input{
-                                font-size: 1.25rem;
-                                color: #11FEEE;
+                            ::v-deep(.el-cascader){
+                                width: 100% !important;
                             }
-                            .el-icon{
-                                color: #11FEEE;
-                            }
-                        }
-                        .selector{
-                            width: calc(100% - 1.25rem);
-                            margin-right: 0.8rem;
-
                             ::v-deep(.el-popper){
                                 background-color: rgba(10,31,92,1);
                                 border: 1px solid rgba(17,254,238,.4);
                                 color: #11FEEE;
-                                .el-select-dropdown__item{
+                                .el-cascader-node__label{
                                     color: #11FEEE;
                                 }
-                                .el-select-dropdown__item.hover{
-                                    background: #0049af;
+                                .el-icon{
+                                    color: #11FEEE;
+                                }
+                                .el-cascader-node{
+                                    &:hover{
+                                        background: #0049af;
+                                    }
                                 }
                             }
                             ::v-deep(.el-popper__arrow){
@@ -627,20 +677,27 @@
                                 }
                             }
                             ::v-deep(.el-input__wrapper){
+                                width: 20%;
                                 box-shadow: none;
                                 border: 1px solid rgba(17,254,238,.2);
                                 background: rgba(10,31,92,.6) !important;
-                                height: 1.5rem;
+                                height: 2.5rem;
                                 color: #11FEEE;
 
                                 input{
-                                    font-size: 0.8rem;
+                                    font-size: 1.25rem;
                                     color: #11FEEE;
                                 }
                                 .el-icon{
                                     color: #11FEEE;
                                 }
                             }
+                        }
+
+                        span{
+                            font-size: 1.25rem;
+                            font-weight: bolder;
+                            color: #11feee;
                         }
 
                         img{
@@ -650,24 +707,21 @@
                         }
                     }
                     .chart-box{
+                        position: absolute;
+                        top: 40px;
+                        bottom: 0;
+                        left: 0;
+                        right: 0;
                         width: 100%;
-                        height: calc(100% - 20px);
-                        margin-top: 20px;
+                        height: calc(100% - 50px);
+                        z-index: 10000;
                         .train-tip{
                             display: block;
                             font-size: 0.8rem;
-                            margin-top: 5%;
-                            margin-left: 2%;
+                            margin-top: 2%;
+                            margin-left: 5%;
                             color: #fff;
-                        }
-                        accident{
-                            width: 100%;
-                            height: 100%;
-                        }
-
-                        training{
-                            width: 100%;
-                            height: 100%;
+                            height: 1rem;
                         }
                     }
                 }
@@ -726,9 +780,101 @@
         background-size: 100% 100%;
         color: #000;
 
+        .warn-dialog{
+            position: absolute;
+            z-index: 999999;
+            top: 25%;
+            left: 50%;
+            width: 50%;
+            height: 50%;
+            transform: translateX(-50%);
+            border-radius: 8px;
+            transition: .3s;
+            box-shadow: 0 15px 30px rgba(0,0,0,.2);
+            border: 1px solid #ccc;
+            padding: 1.5rem;
+            background: #fff;
+
+            div{
+                font-size: 1.5rem;
+                text-align: center;
+            }
+
+            p{
+                margin-top: 20px;
+                font-size: 1.125rem;
+                line-height: 28px;
+                text-align: left
+            }
+
+            span{
+                position: inherit;
+                right: 20px;
+                top: 20px;
+                font-size: 1rem;
+                cursor: pointer;
+            }
+        }
+
+        .info-panel{
+            position: absolute;
+            width: 20%;
+            right: 50px;
+            bottom: 50px;
+            z-index: 9999999;
+            font-size: 1rem;
+            color: #333;
+            padding: 0 10px;
+            border-radius: 4px;
+            cursor: pointer;
+            box-shadow: 0 15px 30px rgba(0,0,0,.2);
+            border: 1px solid #ccc;
+            background: #fff;
+
+            .info-tit{
+                display: flex;
+                align-items: center;
+                padding: 10px;
+                border-bottom: 1px solid #ccc;
+                justify-content: space-between;
+
+                &>div{
+                    display: flex;
+                    align-items: center;
+
+                    img{
+                        width: 18px;
+                        height: 18px;
+                        margin-right: 10px;
+                    }
+                }
+            }
+
+            .info-desc{
+                padding: 15px 10px;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+                overflow: hidden;
+            }
+            .info-num{
+                position: inherit;
+                width: 24px;
+                height: 24px;
+                line-height: 24px;
+                text-align: center;
+                left: -12px;
+                top: -12px;
+                color: #fff;
+                z-index: 999999999;
+                border-radius: 50%;
+                border: 1px solid #ff0000;
+                background: #ff0000;
+            }
+        }
+
         .header-content {
             width: 100%;
-            height: 72px;
+            height: 7.8%;
             padding: 0 20px;
             font-size: 1.25rem;
             display: flex;
@@ -742,15 +888,15 @@
                 align-items: center;
                 justify-content: center;
                 img {
-                    height: 35px;
-                    width: 128px;
+                    width: 10rem;
+                    height: auto;
                 }
             }
             .title {
                 width: 46%;
                 font-size: 2rem;
                 font-weight: bolder;
-                line-height: 72px;
+                line-height: 7.8%;
                 text-align: center;
                 letter-spacing: 2px;
             }
@@ -766,6 +912,7 @@
 
                 .datetime {
                     color: #000;
+                    font-size: 0.9rem;
                 }
                 .btns{
                     display: flex;
@@ -782,7 +929,8 @@
                             height: 1rem;
                         }
                         div{
-                            margin-left: 6px;
+                            margin-left: 0.4rem;
+                            font-size: 0.9rem;
                         }
                     }
                     .themeBtn{
@@ -803,7 +951,7 @@
         }
         .main-content{
             width: 100%;
-            height: calc(100vh - 72px);
+            height: calc(100vh - 7.8%);
             padding: 0.4rem 1.5rem 2rem;
             display: flex;
             align-items: center;
@@ -851,94 +999,57 @@
                         justify-content: space-between;
                         align-items: center;
                         z-index: 9999;
-                        div{
-                            width: 40%;
-                            display: flex;
-                            align-items: center;
-                            justify-content: end;
-                        }
-                        span{
-                            font-size: 1.25rem;
-                            font-weight: bolder;
-                            color: #000;
-                        }
-                        ::v-deep(.el-cascader){
+
+                        .spiChart{
                             width: 25% !important;
-                        }
-                        ::v-deep(.el-popper){
-                            background-color: #fff;
-                            border: 1px solid #ccc;
-                            color: #000;
-                            .el-cascader-node__label{
-                                color: #000;
-                            }
-                            .el-icon{
-                                color: #000;
-                            }
-                            .el-cascader-node{
-                                &:hover{
-                                    background: #ccc;
-                                }
-                            }
-                        }
-                        ::v-deep(.el-popper__arrow){
-                            &::before{
-                                background-color: #fff !important;
-                                border: 1px solid #ccc;
-                            }
-                        }
-                        ::v-deep(.el-input__wrapper){
-                            width: 20%;
-                            box-shadow: none;
-                            border: 1px solid #ccc;
-                            background: #fff !important;
-                            height: 2.5rem;
-                            color: #000;
 
-                            input{
-                                font-size: 1.25rem;
-                                color: #000;
+                            ::v-deep(.el-cascader){
+                                width: 100% !important;
                             }
-                            .el-icon{
-                                color: #000;
-                            }
-                        }
-                        .selector{
-                            width: calc(100% - 1.25rem);
-                            margin-right: 0.8rem;
-
                             ::v-deep(.el-popper){
-                                background-color: rgba(255,255,255,1);
+                                background-color: #fff;
                                 border: 1px solid #ccc;
-                                color: #fff;
-                                .el-select-dropdown__item{
+                                color: #000;
+                                .el-cascader-node__label{
                                     color: #000;
                                 }
-                                .el-select-dropdown__item.hover{
-                                    background: #ccc;
+                                .el-icon{
+                                    color: #000;
+                                }
+                                .el-cascader-node{
+                                    &:hover{
+                                        background: #ccc;
+                                    }
                                 }
                             }
                             ::v-deep(.el-popper__arrow){
                                 &::before{
-                                    background-color: rgba(255,255,255,.6) !important;
+                                    background-color: #fff !important;
                                     border: 1px solid #ccc;
                                 }
                             }
                             ::v-deep(.el-input__wrapper){
+                                width: 20%;
                                 box-shadow: none;
                                 border: 1px solid #ccc;
                                 background: #fff !important;
-                                height: 1.5rem;
-                                color: #fff;
+                                height: 2.5rem;
+                                color: #000;
 
                                 input{
-                                    font-size: 0.8rem;
+                                    font-size: 1.25rem;
                                     color: #000;
                                 }
                                 .el-icon{
                                     color: #000;
                                 }
                             }
+                        }
+
+                        span{
+                            font-size: 1.25rem;
+                            font-weight: bolder;
+                            color: #000;
                         }
 
                         img{
@@ -948,24 +1059,21 @@
                         }
                     }
                     .chart-box{
+                        position: absolute;
+                        top: 40px;
+                        bottom: 0;
+                        left: 0;
+                        right: 0;
                         width: 100%;
-                        height: calc(100% - 20px);
-                        margin-top: 20px;
+                        height: calc(100% - 50px);
+                        z-index: 10000;
                         .train-tip{
                             display: block;
                             font-size: 0.8rem;
-                            margin-top: 5%;
-                            margin-left: 2%;
+                            margin-top: 2%;
+                            margin-left: 5%;
                             color: #333;
-                        }
-                        accident{
-                            width: 100%;
-                            height: 100%;
-                        }
-
-                        training{
-                            width: 100%;
-                            height: 100%;
+                            height: 1rem;
                         }
                     }
                 }

--
Gitblit v1.9.2