Browse Source

实时监测排版

ming 3 năm trước cách đây
mục cha
commit
302ff374a1

+ 716 - 627
src/assets/css/index.scss

@@ -1,627 +1,716 @@
-            @import './variables.scss';
-            @import './mixin.scss';
-            // @import './transition.scss';
-            @import './element-variables.scss';
-            // @import './sidebar.scss';
-            body {
-                height: 100%;
-                -moz-osx-font-smoothing: grayscale;
-                -webkit-font-smoothing: antialiased;
-                text-rendering: optimizeLegibility;
-                font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
-            }
-            
-            label {
-                font-weight: 700;
-            }
-            
-            html {
-                height: 100%;
-                box-sizing: border-box;
-            }
-            
-            #app {
-                height: 100%;
-            }
-            
-            *,
-            *:before,
-            *:after {
-                box-sizing: inherit;
-            }
-            
-            a:focus,
-            a:active {
-                outline: none;
-            }
-            
-            a,
-            a:focus,
-            a:hover {
-                cursor: pointer;
-                color: inherit;
-                text-decoration: none;
-            }
-            
-            div:focus {
-                outline: none;
-            }
-            
-            .clearfix {
-                &:after {
-                    visibility: hidden;
-                    display: block;
-                    font-size: 0;
-                    content: " ";
-                    clear: both;
-                    height: 0;
-                }
-            }
-            
-            ul li {
-                padding: 0;
-                margin: 0;
-                list-style: none
-            }
-            
-            .inOneLine {
-                display: inline-block;
-                white-space: nowrap;
-                overflow: hidden;
-                text-overflow: ellipsis;
-            }
-            
-            // main-container global css
-            .mb-5 {
-                margin-bottom: 5px
-            }
-            
-            .mb-10 {
-                margin-bottom: 10px
-            }
-            
-            .mb-20 {
-                margin-bottom: 20px
-            }
-            
-            .mr-30 {
-                margin-right: 30px
-            }
-            
-            .ml-30 {
-                margin-left: 30px
-            }
-            
-            .mt-20 {
-                margin-top: 20px
-            }
-            
-            .mt-40 {
-                margin-top: 40px
-            }
-            
-            .mt-60 {
-                margin-top: 60px
-            }
-            
-            .font-16 {
-                font-size: 16px
-            }
-            
-            .padding-20 {
-                padding: 20px
-            }
-            
-            .text-center {
-                text-align: center
-            }
-            
-            .delete-text {
-                color: #F80000!important
-            }
-            
-            .remarksTxt {
-                opacity: .45;
-                line-height: 1.5;
-            }
-            
-            .app-container {
-                padding: 20px;
-                // width: 100%;
-                width: calc(100% - 40px);
-                // height: 100%;
-                margin: 20px;
-                margin-top: 70px;
-                background: #fff;
-                min-height: calc(100vh - 140px)
-            }
-            
-            .filter-container {
-                width: 100%;
-                height: 100%;
-                display: flex;
-                -webkit-box-pack: justify;
-                -webkit-justify-content: space-between;
-                -ms-flex-pack: justify;
-                justify-content: space-between;
-                vertical-align: middle;
-                .el-button+.el-button {
-                    margin-left: 30px!important;
-                }
-                .filter-item {
-                    margin-right: 30px;
-                    display: inline-block;
-                }
-            }
-            
-            .el-input__inner {
-                height: 36px;
-                line-height: 36px
-            }
-            
-            .el-button {
-                padding: 10px 12px;
-            }
-            
-            .el-table--small {
-                font-size: 14px!important
-            }
-            
-            .el-table td,
-            .el-table th {
-                padding: 10px 0
-            }
-            
-            // 弹框样式start
-            .el-dialog__header {
-                background: #f8f8f8;
-                padding: 16px 20px 16px;
-            }
-            
-            .el-form-item:not(.user-layout .el-form-item) {
-                width: 90%;
-                max-width: 400px;
-                margin: 0 auto 20px;
-            }
-            
-            // 弹框样式end
-            // 台区列表
-            .siteTitle {
-                font-size: 16px;
-                padding: 10px 20px 30px 20px;
-                text-align: center;
-                position: relative;
-                .goBack {
-                    position: absolute;
-                    left: 0;
-                    top: 0
-                }
-            }
-            
-            .status.el-avatar {
-                width: 14px;
-                height: 14px;
-                background: #04F21C
-            }
-            
-            // 基本信息
-            .basicInfo {
-                width: 100%;
-                height: calc(100vh - 193px);
-                // border: 1px solid pink;
-                display: block;
-                overflow-y: auto;
-            }
-            
-            .siteManage-main {
-                padding: 20px;
-            }
-            
-            .groupInfo,
-            .basic-info-page,
-            .powerScore {
-                .el-form-item {
-                    margin-left: 0px!important
-                }
-            }
-            
-            .goArchive {
-                color: #056FFF;
-                text-decoration: underline;
-            }
-            
-            .blockTitle {
-                font-weight: bold
-            }
-            
-            // input长度
-            .el-form-item__content {
-                width: 250px;
-            }
-            
-            .el-date-editor.el-input,
-            .el-date-editor.el-input__inner {
-                width: 250px;
-            }
-            
-            .el-select {
-                width: 100%
-            }
-            
-            // 单选框样式
-            .el-radio {
-                margin-right: 24px
-            }
-            
-            //提交:
-            .sublitArea {
-                text-align: right;
-                margin-top: 40px
-            }
-            
-            // 图片上传样式 start
-            .el-upload.el-upload--picture-card {
-                width: 90px;
-                height: 90px;
-                line-height: 100px;
-            }
-            
-            .el-upload-list--picture-card .el-upload-list__item {
-                width: 92px!important;
-                height: 92px!important;
-                line-height: 92px!important;
-                text-align: center
-            }
-            
-            .el-upload-list--picture-card .el-upload-list__item-thumbnail {
-                width: 90px!important;
-                height: 90px!important;
-                line-height: 90px!important;
-            }
-            
-            .avatar {
-                width: 90px;
-                height: 90px;
-            }
-            
-            // 电力监测
-            .watchDog,
-            .variableList {
-                .el-form-item__content {
-                    width: 270px
-                }
-                .el-form-item__label {
-                    width: 150px!important
-                }
-                .el-form-item__content {
-                    // margin-left: 150px!important
-                }
-            }
-            
-            .paginationBlock {
-                margin-top: 20px;
-                text-align: right
-            }
-            
-            .filter-container {
-                .el-button+.el-button {
-                    margin-left: 20px !important;
-                }
-                .el-input {
-                    margin: 0 20px 0 0;
-                }
-            }
-            
-            // 树形控件icon
-            .el-tree-node__content {
-                position: relative
-            }
-            
-            .siteTree .el-icon-delete {
-                color: #409EFF;
-                position: absolute;
-                right: 6px;
-                top: 5px;
-            }
-            
-            //告警详情弹框组件
-            .alarmStatusDialog {
-                .el-form-item:not(.user-layout .el-form-item) {
-                    margin-bottom: 0
-                }
-                .deviceTit {
-                    font-size: 16px;
-                    color: #409EFF;
-                    padding: 20px 0
-                }
-                .basicTit {
-                    color: #4074e7;
-                    line-height: 49px;
-                    height: 49px;
-                }
-                .basicTit:before {
-                    content: "";
-                    width: 3px;
-                    margin-right: 9px;
-                    height: 16px;
-                    position: relative;
-                    top: 3px;
-                    display: inline-block;
-                    background: #4074e7;
-                }
-                .topInfo {
-                    position: relative;
-                    .lubo {
-                        position: absolute;
-                        right: 0px;
-                        bottom: 20px;
-                    }
-                    .handleStatus {
-                        position: absolute;
-                        right: 0px;
-                        top: 0px;
-                        color: #F80000
-                    }
-                }
-            }
-            
-            .underline {
-                position: relative;
-            }
-            
-            .underline:after {
-                position: absolute;
-                bottom: 0;
-                left: -20px;
-                right: -20px;
-                height: 1px;
-                content: '';
-                -webkit-transform: scaleY(.5);
-                transform: scaleY(.5);
-                background-color: #000; //这个是唯佳的线颜色
-                opacity: .2
-            }
-            
-            .underline:last-child:after {
-                //可以这样用
-                height: 0;
-            }
-            
-            // 谐波分析
-            .harmonicReport {
-                .filter-container .filter-item {
-                    // margin-right: 10px
-                }
-            }
-            
-            .timeTab.el-button {
-                margin-bottom: 20px;
-                border-radius: 0
-            }
-            
-            // 三项不平衡
-            .blanceChartTit {
-                padding: 10px 14px;
-                margin-bottom: 10px;
-                border-bottom: 1px solid #f0f0f0;
-                background: #FAFAFA;
-                font-weight: bold
-            }
-            
-            //评估报告
-            .assePage .blanceChartTit {
-                margin-bottom: 0;
-                width: 100%;
-                display: flex;
-                justify-content: space-between;
-                vertical-align: middle;
-                span {
-                    display: inline-block
-                }
-            }
-            
-            .assePage {
-                .subTits {
-                    margin: 25px auto;
-                    text-align: center;
-                    font-weight: bold
-                }
-                .assNum {
-                    font-size: 18px;
-                    color: #2EAEFF;
-                    margin-bottom: 10px;
-                }
-                .greenRate {
-                    color: #04A522
-                }
-                .assTxt {
-                    font-size: 14px
-                }
-                .assSmallbox {
-                    padding: 10px 0;
-                    text-align: center;
-                    font-weight: bold;
-                }
-            }
-            
-            // tab重置样式
-            .asseTabs {
-                margin-bottom: 20px;
-                border-bottom: 1px solid #E5E5E5;
-                width: calc(100% + 40px);
-                margin-left: -20px;
-            }
-            
-            .asseTabs span {
-                line-height: 50px;
-                height: 50px;
-                font-size: 16px;
-                display: inline-block;
-                padding: 0 20px;
-            }
-            
-            .asseTabs span.active {
-                border-bottom: 2px solid #2EAEFF
-            }
-            
-            .banlanceBtn {
-                max-width: 80%;
-                margin: 0 auto 20px;
-                height: 40px;
-                line-height: 40px;
-                width: 236px;
-                font-size: 16px!important;
-                // background: #6dc6ff;
-                // color: #fff
-            }
-            
-            .assCard {
-                min-height: 336px!important;
-                .noDataImg {
-                    width: 40%;
-                    margin-top: 40px;
-                }
-            }
-            
-            .assCard ul {
-                text-align: left;
-                margin: 0;
-                padding: 15px 20px 0;
-                li:not(:last-child) {
-                    border-bottom: 1px solid #F0F0F0;
-                }
-                li {
-                    line-height: 40px;
-                    display: flex;
-                    justify-content: space-between;
-                    vertical-align: middle;
-                    font-size: 14px;
-                    div {
-                        display: inline-block;
-                        white-space: nowrap;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                    }
-                    span {
-                        color: #04A522;
-                        background: #F4F4F4;
-                        display: inline-block;
-                        border-radius: 20px;
-                        line-height: 20px;
-                        height: 20px;
-                        text-align: center;
-                        width: 58px;
-                        margin-top: 10px;
-                    }
-                    span.overLimit {
-                        color: #F80000
-                    }
-                }
-            }
-            
-            .totalScore {
-                font-weight: bold;
-                text-align: center;
-                margin: 30px;
-                .el-button {
-                    font-size: 16px;
-                    margin-left: 10px;
-                }
-            }
-            
-            // 实时评分 
-            .descIcon img {
-                position: relative;
-                top: 2px;
-            }
-            
-            .smallSquare {
-                display: inline-block;
-                width: 7px;
-                position: relative;
-                top: -1px;
-                height: 7px;
-                background: #F80000;
-            }
-            
-            .smallSquare.green {
-                background: #24BE00
-            }
-            
-            .loopUnbanlanceContainer {
-                overflow: hidden;
-                .el-row {
-                    margin-bottom: 0!important;
-                }
-            }
-            
-            .loopUnbanlanceCard {
-                ul {
-                    padding: 0;
-                    margin-bottom: 0;
-                    font-size: 14px;
-                }
-                li {
-                    display: flex;
-                    >div {
-                        margin: 7px 20px;
-                    }
-                    >div:first-child {
-                        // min-width: 64px;
-                    }
-                }
-            }
-            
-            .voltagePanel {
-                .el-table--small th,
-                .el-table--small td {
-                    padding: 17px 0
-                }
-                .uList p {
-                    margin-right: 10px;
-                    padding: 11px 0
-                }
-                .shangXian {
-                    padding: 20px 0 0;
-                    display: flex;
-                    width: 300px;
-                    margin-left: 40px;
-                    text-align: center;
-                    div {
-                        width: 50%;
-                        text-align: center;
-                        position: relative
-                    }
-                    div:first-child:after {
-                        position: absolute;
-                        top: 0;
-                        z-index: 4;
-                        /* left: -20px; */
-                        right: 20px;
-                        height: 211px;
-                        width: 1px;
-                        border: 1px dashed #000;
-                        content: "";
-                        /* transform: scaleY(0.5); */
-                        background-color: rgba(0, 0, 0, 0);
-                        opacity: .2;
-                    }
-                    div:last-child:before {
-                        position: absolute;
-                        top: 0;
-                        z-index: 4;
-                        left: 20px;
-                        height: 211px;
-                        width: 1px;
-                        border: 1px dashed #000;
-                        content: "";
-                        /* transform: scaleY(.2); */
-                        background-color: rgba(0, 0, 0, 0);
-                        opacity: .2;
-                    }
-                }
-            }
-            
-            .frequencyPanel {
-                text-align: center
-            }
+                        @import './variables.scss';
+                        @import './mixin.scss';
+                        // @import './transition.scss';
+                        @import './element-variables.scss';
+                        // @import './sidebar.scss';
+                        body {
+                            height: 100%;
+                            -moz-osx-font-smoothing: grayscale;
+                            -webkit-font-smoothing: antialiased;
+                            text-rendering: optimizeLegibility;
+                            font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
+                        }
+                        
+                        label {
+                            font-weight: 700;
+                        }
+                        
+                        html {
+                            height: 100%;
+                            box-sizing: border-box;
+                        }
+                        
+                        #app {
+                            height: 100%;
+                        }
+                        
+                        *,
+                        *:before,
+                        *:after {
+                            box-sizing: inherit;
+                        }
+                        
+                        a:focus,
+                        a:active {
+                            outline: none;
+                        }
+                        
+                        a,
+                        a:focus,
+                        a:hover {
+                            cursor: pointer;
+                            color: inherit;
+                            text-decoration: none;
+                        }
+                        
+                        div:focus {
+                            outline: none;
+                        }
+                        
+                        .clearfix {
+                            &:after {
+                                visibility: hidden;
+                                display: block;
+                                font-size: 0;
+                                content: " ";
+                                clear: both;
+                                height: 0;
+                            }
+                        }
+                        
+                        ul li {
+                            padding: 0;
+                            margin: 0;
+                            list-style: none
+                        }
+                        
+                        .inOneLine {
+                            display: inline-block;
+                            white-space: nowrap;
+                            overflow: hidden;
+                            text-overflow: ellipsis;
+                        }
+                        
+                        // main-container global css
+                        .mb-5 {
+                            margin-bottom: 5px
+                        }
+                        
+                        .mb-10 {
+                            margin-bottom: 10px
+                        }
+                        
+                        .mb-20 {
+                            margin-bottom: 20px
+                        }
+                        
+                        .mr-30 {
+                            margin-right: 30px
+                        }
+                        
+                        .ml-30 {
+                            margin-left: 30px
+                        }
+                        
+                        .mt-20 {
+                            margin-top: 20px
+                        }
+                        
+                        .mt-40 {
+                            margin-top: 40px
+                        }
+                        
+                        .mt-60 {
+                            margin-top: 60px
+                        }
+                        
+                        .font-16 {
+                            font-size: 16px
+                        }
+                        
+                        .padding-20 {
+                            padding: 20px
+                        }
+                        
+                        .text-center {
+                            text-align: center
+                        }
+                        
+                        .delete-text {
+                            color: #F80000!important
+                        }
+                        
+                        .remarksTxt {
+                            opacity: .45;
+                            line-height: 1.5;
+                        }
+                        
+                        .app-container {
+                            padding: 20px;
+                            // width: 100%;
+                            width: calc(100% - 40px);
+                            // height: 100%;
+                            margin: 20px;
+                            margin-top: 70px;
+                            background: #fff;
+                            min-height: calc(100vh - 140px)
+                        }
+                        
+                        .filter-container {
+                            width: 100%;
+                            height: 100%;
+                            display: flex;
+                            -webkit-box-pack: justify;
+                            -webkit-justify-content: space-between;
+                            -ms-flex-pack: justify;
+                            justify-content: space-between;
+                            vertical-align: middle;
+                            .el-button+.el-button {
+                                margin-left: 30px!important;
+                            }
+                            .filter-item {
+                                margin-right: 30px;
+                                display: inline-block;
+                            }
+                        }
+                        
+                        .el-input__inner {
+                            height: 36px;
+                            line-height: 36px
+                        }
+                        
+                        .el-button {
+                            padding: 10px 12px;
+                        }
+                        
+                        .el-table--small {
+                            font-size: 14px!important
+                        }
+                        
+                        .el-table td,
+                        .el-table th {
+                            padding: 10px 0
+                        }
+                        
+                        // 弹框样式start
+                        .el-dialog__header {
+                            background: #f8f8f8;
+                            padding: 16px 20px 16px;
+                        }
+                        
+                        .el-form-item:not(.user-layout .el-form-item) {
+                            width: 90%;
+                            max-width: 400px;
+                            margin: 0 auto 20px;
+                        }
+                        
+                        // 弹框样式end
+                        // 台区列表
+                        .siteTitle {
+                            font-size: 16px;
+                            padding: 10px 20px 30px 20px;
+                            text-align: center;
+                            position: relative;
+                            .goBack {
+                                position: absolute;
+                                left: 0;
+                                top: 0
+                            }
+                        }
+                        
+                        .status.el-avatar {
+                            width: 14px;
+                            height: 14px;
+                            background: #04F21C
+                        }
+                        
+                        // 基本信息
+                        .basicInfo {
+                            width: 100%;
+                            height: calc(100vh - 193px);
+                            // border: 1px solid pink;
+                            display: block;
+                            overflow-y: auto;
+                        }
+                        
+                        .siteManage-main {
+                            padding: 20px;
+                        }
+                        
+                        .groupInfo,
+                        .basic-info-page,
+                        .powerScore {
+                            .el-form-item {
+                                margin-left: 0px!important
+                            }
+                        }
+                        
+                        .goArchive {
+                            color: #056FFF;
+                            text-decoration: underline;
+                        }
+                        
+                        .blockTitle {
+                            font-weight: bold
+                        }
+                        
+                        // input长度
+                        .el-form-item__content {
+                            width: 250px;
+                        }
+                        
+                        .el-date-editor.el-input,
+                        .el-date-editor.el-input__inner {
+                            width: 250px;
+                        }
+                        
+                        .el-select {
+                            width: 100%
+                        }
+                        
+                        // 单选框样式
+                        .el-radio {
+                            margin-right: 24px
+                        }
+                        
+                        //提交:
+                        .sublitArea {
+                            text-align: right;
+                            margin-top: 40px
+                        }
+                        
+                        // 图片上传样式 start
+                        .el-upload.el-upload--picture-card {
+                            width: 90px;
+                            height: 90px;
+                            line-height: 100px;
+                        }
+                        
+                        .el-upload-list--picture-card .el-upload-list__item {
+                            width: 92px!important;
+                            height: 92px!important;
+                            line-height: 92px!important;
+                            text-align: center
+                        }
+                        
+                        .el-upload-list--picture-card .el-upload-list__item-thumbnail {
+                            width: 90px!important;
+                            height: 90px!important;
+                            line-height: 90px!important;
+                        }
+                        
+                        .avatar {
+                            width: 90px;
+                            height: 90px;
+                        }
+                        
+                        // 电力监测
+                        .watchDog,
+                        .variableList {
+                            .el-form-item__content {
+                                width: 270px
+                            }
+                            .el-form-item__label {
+                                width: 150px!important
+                            }
+                            .el-form-item__content {
+                                // margin-left: 150px!important
+                            }
+                        }
+                        
+                        .paginationBlock {
+                            margin-top: 20px;
+                            text-align: right
+                        }
+                        
+                        .filter-container {
+                            .el-button+.el-button {
+                                margin-left: 20px !important;
+                            }
+                            .el-input {
+                                margin: 0 20px 0 0;
+                            }
+                        }
+                        
+                        // 树形控件icon
+                        .el-tree-node__content {
+                            position: relative
+                        }
+                        
+                        .siteTree .el-icon-delete {
+                            color: #409EFF;
+                            position: absolute;
+                            right: 6px;
+                            top: 5px;
+                        }
+                        
+                        //告警详情弹框组件
+                        .alarmStatusDialog {
+                            .el-form-item:not(.user-layout .el-form-item) {
+                                margin-bottom: 0
+                            }
+                            .deviceTit {
+                                font-size: 16px;
+                                color: #409EFF;
+                                padding: 20px 0
+                            }
+                            .basicTit {
+                                color: #4074e7;
+                                line-height: 49px;
+                                height: 49px;
+                            }
+                            .basicTit:before {
+                                content: "";
+                                width: 3px;
+                                margin-right: 9px;
+                                height: 16px;
+                                position: relative;
+                                top: 3px;
+                                display: inline-block;
+                                background: #4074e7;
+                            }
+                            .topInfo {
+                                position: relative;
+                                .lubo {
+                                    position: absolute;
+                                    right: 0px;
+                                    bottom: 20px;
+                                }
+                                .handleStatus {
+                                    position: absolute;
+                                    right: 0px;
+                                    top: 0px;
+                                    color: #F80000
+                                }
+                            }
+                        }
+                        
+                        .underline {
+                            position: relative;
+                        }
+                        
+                        .underline:after {
+                            position: absolute;
+                            bottom: 0;
+                            left: -20px;
+                            right: -20px;
+                            height: 1px;
+                            content: '';
+                            -webkit-transform: scaleY(.5);
+                            transform: scaleY(.5);
+                            background-color: #000; //这个是唯佳的线颜色
+                            opacity: .2
+                        }
+                        
+                        .underline:last-child:after {
+                            //可以这样用
+                            height: 0;
+                        }
+                        
+                        // 谐波分析
+                        .harmonicReport {
+                            .filter-container .filter-item {
+                                // margin-right: 10px
+                            }
+                        }
+                        
+                        .timeTab.el-button {
+                            margin-bottom: 20px;
+                            border-radius: 0
+                        }
+                        
+                        // 三项不平衡
+                        .blanceChartTit {
+                            padding: 10px 14px;
+                            margin-bottom: 10px;
+                            border-bottom: 1px solid #f0f0f0;
+                            background: #FAFAFA;
+                            font-weight: bold
+                        }
+                        
+                        //评估报告
+                        .assePage .blanceChartTit {
+                            margin-bottom: 0;
+                            width: 100%;
+                            display: flex;
+                            justify-content: space-between;
+                            vertical-align: middle;
+                            span {
+                                display: inline-block
+                            }
+                        }
+                        
+                        .assePage {
+                            .subTits {
+                                margin: 25px auto;
+                                text-align: center;
+                                font-weight: bold
+                            }
+                            .assNum {
+                                font-size: 18px;
+                                color: #2EAEFF;
+                                margin-bottom: 10px;
+                            }
+                            .greenRate {
+                                color: #04A522
+                            }
+                            .assTxt {
+                                font-size: 14px
+                            }
+                            .assSmallbox {
+                                padding: 10px 0;
+                                text-align: center;
+                                font-weight: bold;
+                            }
+                        }
+                        
+                        // tab重置样式
+                        .asseTabs {
+                            margin-bottom: 20px;
+                            border-bottom: 1px solid #E5E5E5;
+                            width: calc(100% + 40px);
+                            margin-left: -20px;
+                        }
+                        
+                        .asseTabs span {
+                            line-height: 50px;
+                            height: 50px;
+                            font-size: 16px;
+                            display: inline-block;
+                            padding: 0 20px;
+                        }
+                        
+                        .asseTabs span.active {
+                            border-bottom: 2px solid #2EAEFF
+                        }
+                        
+                        .banlanceBtn {
+                            max-width: 80%;
+                            margin: 0 auto 20px;
+                            height: 40px;
+                            line-height: 40px;
+                            width: 236px;
+                            font-size: 16px!important;
+                            // background: #6dc6ff;
+                            // color: #fff
+                        }
+                        
+                        .assCard {
+                            min-height: 336px!important;
+                            .noDataImg {
+                                width: 40%;
+                                margin-top: 40px;
+                            }
+                        }
+                        
+                        .assCard ul {
+                            text-align: left;
+                            margin: 0;
+                            padding: 15px 20px 0;
+                            li:not(:last-child) {
+                                border-bottom: 1px solid #F0F0F0;
+                            }
+                            li {
+                                line-height: 40px;
+                                display: flex;
+                                justify-content: space-between;
+                                vertical-align: middle;
+                                font-size: 14px;
+                                div {
+                                    display: inline-block;
+                                    white-space: nowrap;
+                                    overflow: hidden;
+                                    text-overflow: ellipsis;
+                                }
+                                span {
+                                    color: #04A522;
+                                    background: #F4F4F4;
+                                    display: inline-block;
+                                    border-radius: 20px;
+                                    line-height: 20px;
+                                    height: 20px;
+                                    text-align: center;
+                                    width: 58px;
+                                    margin-top: 10px;
+                                }
+                                span.overLimit {
+                                    color: #F80000
+                                }
+                            }
+                        }
+                        
+                        .totalScore {
+                            font-weight: bold;
+                            text-align: center;
+                            margin: 30px;
+                            .el-button {
+                                font-size: 16px;
+                                margin-left: 10px;
+                            }
+                        }
+                        
+                        // 实时评分 
+                        .descIcon img {
+                            position: relative;
+                            top: 2px;
+                        }
+                        
+                        .smallSquare {
+                            display: inline-block;
+                            width: 7px;
+                            position: relative;
+                            top: -1px;
+                            height: 7px;
+                            background: #F80000;
+                        }
+                        
+                        .smallSquare.green {
+                            background: #24BE00
+                        }
+                        
+                        .loopUnbanlancePanel,
+                        .loopHarmonicPanel {
+                            height: 591px;
+                            overflow: hidden;
+                            .el-row {
+                                margin-bottom: 0!important;
+                            }
+                        }
+                        
+                        .loopUnbanlanceCard {
+                            // height: calc(100% - 100px);
+                            ul {
+                                padding: 0;
+                                margin-bottom: 0;
+                                font-size: 14px;
+                            }
+                            li {
+                                display: flex;
+                                >div {
+                                    margin: 7px 20px;
+                                }
+                                >div:first-child {
+                                    // min-width: 64px;
+                                }
+                            }
+                        }
+                        
+                        .voltagePanel {
+                            .el-table--small th,
+                            .el-table--small td {
+                                padding: 15px 0
+                            }
+                            .uList p {
+                                margin-right: 10px;
+                                padding: 8px 0
+                            }
+                            .shangXian {
+                                padding: 20px 0 0;
+                                display: flex;
+                                width: 300px;
+                                margin-left: 40px;
+                                text-align: center;
+                                div {
+                                    width: 50%;
+                                    text-align: center;
+                                    position: relative
+                                }
+                                div:first-child:after {
+                                    position: absolute;
+                                    top: 0;
+                                    z-index: 4;
+                                    /* left: -20px; */
+                                    right: 20px;
+                                    height: 211px;
+                                    width: 1px;
+                                    border: 1px dashed #000;
+                                    content: "";
+                                    /* transform: scaleY(0.5); */
+                                    background-color: rgba(0, 0, 0, 0);
+                                    opacity: .2;
+                                }
+                                div:last-child:before {
+                                    position: absolute;
+                                    top: 0;
+                                    z-index: 4;
+                                    left: 20px;
+                                    height: 211px;
+                                    width: 1px;
+                                    border: 1px dashed #000;
+                                    content: "";
+                                    /* transform: scaleY(.2); */
+                                    background-color: rgba(0, 0, 0, 0);
+                                    opacity: .2;
+                                }
+                            }
+                        }
+                        
+                        .frequencyPanel {
+                            text-align: center;
+                            .frequencyTit {
+                                color: #F80000;
+                                font-weight: bold
+                            }
+                            .frequencyTit2 {
+                                font-weight: bold;
+                                margin: 10px auto;
+                                span {
+                                    color: #fff;
+                                    background: #21c393;
+                                    display: inline-block;
+                                    border-radius: 20px;
+                                    line-height: 24px;
+                                    height: 24px;
+                                    text-align: center;
+                                    font-size: 14px;
+                                    width: 58px;
+                                }
+                            }
+                            .frequencyBox .grid-content {
+                                min-height: 50px!important;
+                                border-radius: 0;
+                                background: #f0f0f0;
+                                border: none;
+                            }
+                            .rightSplitRed {
+                                position: relative;
+                                i {
+                                    position: absolute;
+                                    position: absolute;
+                                    right: -14.5px;
+                                    bottom: -11px;
+                                    color: #f1673d
+                                }
+                                i:after {
+                                    display: none
+                                }
+                            }
+                            .greenShadow {
+                                position: absolute;
+                                width: 118px;
+                                height: 100%;
+                                bottom: 0;
+                                background: rgba(37, 215, 162, .3);
+                                left: 41px;
+                                background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, hsla(0, 0%, 100%, .2)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, hsla(0, 0%, 100%, .2)), color-stop(.75, hsla(0, 0%, 100%, .2)), color-stop(.75, transparent), to(transparent));
+                            }
+                            .rightSplitRed .grid-content:after {
+                                position: absolute;
+                                bottom: -3px;
+                                z-index: 4;
+                                right: -8px;
+                                height: 125%;
+                                width: 2px;
+                                border: 1px solid #f1673d;
+                                content: "";
+                                background-color: rgba(0, 0, 0, 0);
+                            }
+                            .frequencyBox .grid-content {
+                                border-right: 1px dashed #aaa
+                            }
+                            .frequencyBox .el-col:last-child .grid-content {
+                                border-right: none
+                            }
+                        }
+                        
+                        .voltagePanel,
+                        .frequencyPanel,
+                        .powerPanel {
+                            height: 285px
+                        }
+                        
+                        .powerPanel {
+                            .el-table--small th,
+                            .el-table--small td {
+                                padding: 15px 0
+                            }
+                            .uList p {
+                                margin-right: 10px;
+                                padding: 8px 0
+                            }
+                        }
+                        
+                        .harmonicCard {
+                            height: calc(50% - 56px);
+                            // border: 1px solid red;
+                        }

+ 0 - 2
src/views/powerQuality/asseReport/index.vue

@@ -20,8 +20,6 @@
       <br>
 
     <!-- tab切换 end -->
-
-   
   </div>
 </template>
 

+ 16 - 222
src/views/powerQuality/realTimeMonitoring/loopMonitor.vue

@@ -31,7 +31,7 @@
 
       <!-- 三项不平衡度 -->
       <el-col :span="8">
-        <div class="grid-content bg-purple loopUnbanlanceContainer">
+        <div class="grid-content bg-purple loopUnbanlancePanel">
           <div class="blanceChartTit">
             <span>三项不平衡度</span>
           </div>
@@ -40,7 +40,7 @@
               <div
                 class="grid-content "
                 style="text-align: center" >
-                 <loop-pieChart></loop-pieChart>
+                 <loop-radarChart></loop-radarChart>
                 </div>
             </el-col>
             <el-col :span="12" class="loopUnbanlanceCard">
@@ -79,7 +79,7 @@
               <div
                 class="grid-content "
                 style="text-align: center" >
-                 <loop-pieChart></loop-pieChart>
+                 <loop-radarChart></loop-radarChart>
                 </div>
             </el-col>
             <el-col :span="12" class="loopUnbanlanceCard">
@@ -117,136 +117,12 @@
         </div>
       </el-col>
        <!-- 三项不平衡度 end -->
-      <el-col :span="16">
-        <div class="grid-content bg-purple">
-          <div class="blanceChartTit">
-            <span>谐波</span>
-          </div>
 
-          <el-row :gutter="20" style="padding: 20px">
-            <el-col :span="8"
-              ><div
-                class="grid-content bg-purple assCard"
-                style="text-align: center"
-              >
-                <div class="subTits">A相电压</div>
-                <el-row :gutter="20" style="padding: 0 20px">
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum">0/128</div>
-                      <div class="assTxt">超限数/测点数</div>
-                    </div></el-col
-                  >
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum greenRate">100%</div>
-                      <div class="assTxt">合格率</div>
-                    </div></el-col
-                  >
-                </el-row>
-                <el-button class="banlanceBtn" round type="primary"
-                  >合格</el-button
-                >
-                <ul>
-                  <li>
-                    <div>最大值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>最小值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>平均值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                </ul>
-                
-              </div></el-col
-            >
-            <el-col :span="8"
-              ><div
-                class="grid-content bg-purple assCard"
-                style="text-align: center"
-              >
-                <div class="subTits">B相电压</div>
-                <el-row :gutter="20" style="padding: 0 20px">
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum">0/128</div>
-                      <div class="assTxt">超限数/测点数</div>
-                    </div></el-col
-                  >
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum greenRate">100%</div>
-                      <div class="assTxt">合格率</div>
-                    </div></el-col
-                  >
-                </el-row>
-                <el-button class="banlanceBtn" round type="danger"
-                  >不合格,会影响设备安全运行</el-button
-                >
-                <ul>
-                  <li>
-                    <div>最大值:234.87V(6.76%)</div>
-                    <span class="overLimit">超限</span>
-                  </li>
-                  <li>
-                    <div>最小值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>平均值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                </ul>
-              </div></el-col
-            >
-            <el-col :span="8"
-              ><div
-                class="grid-content bg-purple assCard"
-                style="text-align: center"
-              >
-                <div class="subTits">C相电压</div>
-                <el-row :gutter="20" style="padding: 0 20px">
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum">0/128</div>
-                      <div class="assTxt">超限数/测点数</div>
-                    </div></el-col
-                  >
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum greenRate">100%</div>
-                      <div class="assTxt">合格率</div>
-                    </div></el-col
-                  >
-                </el-row>
-                <el-button class="banlanceBtn" round type="primary"
-                  >合格</el-button
-                >
-                <ul>
-                  <li>
-                    <div>最大值:234.87V(6.76%)</div>
-                    <span class="overLimit">超限</span>
-                  </li>
-                  <li>
-                    <div>最小值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>平均值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                </ul>
-              </div></el-col
-            >
-          </el-row>
-        </div>
+      <!-- 谐波 -->
+      <el-col :span="16">
+        <harmonic-panel></harmonic-panel>
       </el-col>
-      
-
+       <!-- 谐波 end -->
     </el-row>
 
 
@@ -264,109 +140,27 @@
       </el-col>
       <!-- 频率 end -->
 
-      
+      <!-- 有功功率 -->
       <el-col :span="8">
-        <div class="grid-content bg-purple">
-          <div class="blanceChartTit">
-            <span>有功功率和无功功率</span>
-          </div>
-          <el-row :gutter="20" style="padding: 20px">
-            <el-col :span="12"
-              ><div
-                class="grid-content bg-purple assCard"
-                style="text-align: center"
-              >
-                <div class="subTits">电流不平衡度</div>
-                <el-row :gutter="20" style="padding: 0 20px">
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum">0/128</div>
-                      <div class="assTxt">超限数/测点数</div>
-                    </div></el-col
-                  >
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum greenRate">100%</div>
-                      <div class="assTxt">合格率</div>
-                    </div></el-col
-                  >
-                </el-row>
-                <el-button class="banlanceBtn" round type="primary"
-                  >合格</el-button
-                >
-                <ul>
-                  <li>
-                    <div>最大值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>最小值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>平均值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                </ul>
-              </div></el-col
-            >
-
-            <el-col :span="12"
-              ><div
-                class="grid-content bg-purple assCard"
-                style="text-align: center"
-              >
-                <div class="subTits">电压不平衡度</div>
-                <el-row :gutter="20" style="padding: 0 20px">
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum">0/128</div>
-                      <div class="assTxt">超限数/测点数</div>
-                    </div></el-col
-                  >
-                  <el-col :span="12">
-                    <div class="grid-content bg-purple assSmallbox">
-                      <div class="assNum greenRate">100%</div>
-                      <div class="assTxt">合格率</div>
-                    </div></el-col
-                  >
-                </el-row>
-                <el-button class="banlanceBtn" round type="primary"
-                  >合格</el-button
-                >
-                <ul>
-                  <li>
-                    <div>最大值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>最小值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                  <li>
-                    <div>平均值:234.87V(6.76%)</div>
-                    <span>未超限</span>
-                  </li>
-                </ul>
-              </div></el-col
-            >
-          </el-row>
-        </div>
+        <power-panel></power-panel>
       </el-col>
-    
+       <!-- 有功功率 end -->
+  
     </el-row>
-
     
   </div>
  
 </template>
 
 <script> 
-import loopPieChart from "./loopMonitorComponent/loopPieChart";
+import loopRadarChart from "./loopMonitorComponent/loopRadarChart";
+
+import harmonicPanel from "./loopMonitorComponent/harmonicPanel";
 import voltagePanel from "./loopMonitorComponent/voltagePanel";
 import frequencyPanel from "./loopMonitorComponent/frequencyPanel";
+import powerPanel from "./loopMonitorComponent/powerPanel";
 export default {
-   components: { loopPieChart,voltagePanel,frequencyPanel },
+   components: { loopRadarChart,harmonicPanel,voltagePanel,frequencyPanel,powerPanel },
   name: "LoopMonitor",
  
   data() {

+ 21 - 7
src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/frequencyPanel.vue

@@ -1,20 +1,34 @@
 <template>
-  <div class="frequencyPanel">
-    <div class="grid-content bg-purple">
+  <div class="">
+    <div class="grid-content bg-purple frequencyPanel">
       <div class="blanceChartTit">
         <span>频率</span>
       </div>
-      <div style="padding: 20px">
-        <div>当前频率 50.03hZ</div>
-        <div>频率偏差<el-button type="success" round>0.06%</el-button></div>
-        <el-row>
+      <div style="padding: 30px">
+        <div class="frequencyTit">当前频率 50.03hZ</div>
+        <div class="frequencyTit2">
+            频率偏差
+            <span>0.06%</span>
+        </div>
+        <el-row class="mt-40 frequencyBox">
             <el-col :span="2"><div class="grid-content bg-purple"></div></el-col>
             <el-col :span="5"><div class="grid-content bg-purple-light"></div></el-col>
-            <el-col :span="5"><div class="grid-content bg-purple"></div></el-col>
+            <el-col  class="rightSplitRed" :span="5">
+                <div class="grid-content bg-purple"></div>
+                <i class="el-icon-caret-top"></i>
+                <div class="greenShadow"></div>
+            </el-col>
             <el-col :span="5"><div class="grid-content bg-purple-light"></div></el-col>
             <el-col :span="5"><div class="grid-content bg-purple-light"></div></el-col>
             <el-col :span="2"><div class="grid-content bg-purple"></div></el-col>
         </el-row>
+        <el-row class="mt-20" style="text-align:right">
+            <el-col :span="2">49</el-col>
+            <el-col :span="5">49.5</el-col>
+            <el-col :span="5">50</el-col>
+            <el-col :span="5">50.5</el-col>
+            <el-col :span="5">51</el-col>
+        </el-row>
       </div>
     </div>
   </div>

+ 87 - 0
src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/harmonicPanel.vue

@@ -0,0 +1,87 @@
+<template>
+  <div class="">
+    <div class="grid-content bg-purple loopHarmonicPanel">
+      <div class="blanceChartTit">
+        <span>谐波</span>
+      </div>
+
+      <div style="text-align: center; margin-top: 20px">
+        <el-button
+          class="search-button timeTab"
+          @click="num = 0"
+          :type="num == 0 ? 'primary' : ''"
+          >含量</el-button
+        >
+        <el-button
+          class="search-button timeTab"
+          @click="num = 1"
+          :type="num == 1 ? 'primary' : ''"
+          style="margin-left: 0 !important; margin-right: 20px"
+          >有效值</el-button
+        >
+      </div>
+      <div class="harmonicCard" style="border-bottom: 1px solid #d3dce6">
+        <div style="text-align: center; margin-top:20px">电压谐波 / %</div>
+        <loopLine-Chart></loopLine-Chart>
+      </div>
+      <div class="harmonicCard">
+        <div style="text-align: center; margin-top:20px">电压谐波 / %</div>
+        <loopLine-Chart></loopLine-Chart>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import loopLineChart from "./loopLineChart";
+export default {
+  components: { loopLineChart },
+  name: "HarmonicPanel",
+  data() {
+    return {
+      num: 0,
+      tableData: [
+        {
+          date: "10.31(kV)",
+          name: "Tom",
+          pointNum: 60,
+          status: "warning",
+        },
+        {
+          date: "0(kV)",
+          name: "Tom2",
+          pointNum: 0,
+          status: "exception",
+        },
+      ],
+    };
+  },
+};
+</script>
+<style scoped lang="scss">
+.el-row {
+  margin-bottom: 20px;
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+.el-col {
+  border-radius: 4px;
+}
+.bg-purple-dark {
+  border: 1px solid #99a9bf;
+}
+.bg-purple {
+  border: 1px solid #d3dce6;
+}
+.bg-purple-light {
+  border: 1px solid #e5e9f2;
+}
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+.row-bg {
+  padding: 10px 0;
+  border: 1px solid #f9fafc;
+}
+</style>

+ 207 - 0
src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/loopLineChart.vue

@@ -0,0 +1,207 @@
+<template>
+  <div shadow="never" class="homeBoxCard" v-loading="loading">
+    <div class="height400" ref="lineChartBanlance" />
+  </div>
+</template>
+<script lang="ts">
+import {
+  computed,
+  defineComponent,
+  onMounted,
+  Ref,
+  ref,
+  watch,
+  ComputedRef,
+} from "vue";
+import { useStore } from "vuex";
+import { useI18n } from "vue-i18n";
+import { EChartOption } from "echarts";
+import useEcharts from "@/composables/useEcharts";
+import { StateType as HomeStateType } from "../../../home/store";
+// import { ChartDataType } from "../../data";
+
+const worksChartOption: EChartOption = {
+  // backgroundColor: "pink",
+  color: ["#f2e251", "#40ABFE", "#fe8161"],
+
+  legend: {
+        icon: 'rect',
+    // bottom: "0",
+    right:40,
+    data: ["A", "B", "C"],
+  },
+  // toolbox: {
+  //   show: false,
+  // },
+  tooltip: {
+    // show: true
+    trigger: "axis",
+    axisPointer: { type: "cross" },
+  },
+  grid: {
+    left: "20",
+    right: "40",
+    top: "40",
+    bottom: "20",
+    containLabel: true,
+  },
+  xAxis: {
+    axisLabel: {
+      color: "#444",
+      fontSize: 14,
+    },
+    /*改变xy轴颜色*/
+    axisLine: {
+      lineStyle: {
+        color: "#444",
+        width: 1, //这里是为了突出显示加上的
+      },
+    },
+    boundaryGap: false,
+    data: [
+      "总谐波",
+      "3次谐波",
+      "5次谐波",
+      "7次谐波",
+      "9次谐波",
+      "11次谐波",
+      "13次谐波",
+      "15次谐波",
+      "17次谐波",
+      "19次谐波",
+      "21次谐波",
+      "23次谐波",
+      "25次谐波",
+
+    ],
+  },
+  yAxis: {
+    // name: "A",
+    nameTextStyle: {
+      color: "#707070",
+      fontSize: 14,
+    },
+    axisLabel: {
+      color: "#444",
+      fontSize: 14,
+    },
+
+    axisLine: {
+      symbolOffset: [0, 4],
+      lineStyle: { color: "#444" },
+    },
+    splitArea: {
+      show: false,
+    },
+  },
+
+  series: [
+    {
+      name: "A",
+      type: "line",
+      symbolSize: 7,
+      smooth: false,
+      data: [
+        10, 2, 12, 0, 5, 10, 2, 12, 0, 5, 10, 2, 12, 0, 5, 10, 2, 12, 0, 5, 10,
+        2, 12, 0, 5,
+      ],
+    },
+    {
+      name: "B",
+      type: "line",
+      symbolSize: 7,
+      smooth: false,
+      data: [
+        10, 2, 12, 0, 7, 8, 9, 7, 19, 7, 8, 9, 7, 19, 7, 8, 9, 7, 19, 7, 8, 9,
+        7, 19, 7, 8, 9, 7, 19,
+      ],
+    },
+    {
+      name: "C",
+      type: "line",
+      symbolSize: 7,
+      smooth: false,
+      data: [
+        5, 3, 6, 5, 14, 5, 3, 6, 5, 14, 5, 3, 6, 5, 14, 5, 3, 6, 5, 14, 5, 3, 6,
+        5, 14, 5, 3, 6, 5, 14,
+      ],
+    },
+  ],
+};
+
+interface WorksChartCardSetupData {
+  t: (key: string | number) => string;
+  loading: Ref<boolean>;
+  lineChartBanlance: Ref;
+  total: ComputedRef<number>;
+  num: ComputedRef<number>;
+}
+
+export default defineComponent({
+  name: "LoopLineChart",
+  setup(): WorksChartCardSetupData {
+    const store = useStore<{ Home: HomeStateType }>();
+    const { t } = useI18n();
+
+    // 总数
+    const total = computed<number>(() => store.state.Home.worksChartData.total);
+    // num
+    const num = computed<number>(() => store.state.Home.worksChartData.num);
+    // chart Data
+    // const chartData = computed<ChartDataType>(
+    //   () => store.state.Home.worksChartData.chart
+    // );
+
+    // echarts 图表
+    const lineChartBanlance = ref<HTMLDivElement>();
+    const echarts = useEcharts(lineChartBanlance, worksChartOption);
+    // watch([echarts, chartData], () => {
+    //   if (echarts.value) {
+    //     const option: EChartOption = {
+    //       xAxis: {
+    //         // data: ["03-01", "03-01", "03-01", "03-01", "03-01", "03-01", "03-01"]
+    //         data: chartData.value.day,
+    //       },
+    //       series: [
+    //         {
+    //           name: "新增",
+    //           // data: [3, 1, 1, 2, 2, 2, 2]
+    //           data: chartData.value.num,
+    //         },
+    //       ],
+    //     };
+    //     echarts.value.setOption(option);
+    //   }
+    // });
+
+    // 读取数据 func
+    const loading = ref<boolean>(true);
+    const getData = async () => {
+      loading.value = true;
+      await store.dispatch("Home/queryWorksChartData");
+      loading.value = false;
+    };
+
+    onMounted(() => {
+      getData();
+    });
+
+    return {
+      t,
+      loading,
+      lineChartBanlance,
+      total,
+      num,
+    };
+  },
+});
+</script>
+<style lang="scss" scoped>
+.homeBoxCard {
+  height: 100%;
+  margin-bottom: 24px;
+  .height400 {
+    height: 80%;
+  }
+}
+</style>

+ 79 - 74
src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/loopPieChart.vue → src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/loopRadarChart.vue

@@ -1,6 +1,6 @@
 <template>
   <div shadow="never" class="homeBoxCard" v-loading="loading">
-    <div class="height200" ref="pieChart" />
+    <div class="height260" ref="lineChartBanlance" />
   </div>
 </template>
 <script lang="ts">
@@ -20,88 +20,93 @@ import useEcharts from "@/composables/useEcharts";
 import { StateType as HomeStateType } from "../../../home/store";
 // import { ChartDataType } from "../../data";
 
-var echartData=[
-               {value:335, legendname:'优秀',name:"优秀",itemStyle:{color:"#40ABFE"}},
-               {value:335, legendname:'合格',name:"合格",itemStyle:{color:"#EEAA3F"}},
-               {value:335, legendname:'不合格',name:"不合格",itemStyle:{color:"#FF2222"}},
-            
-            ]
-
-var total_datas = 0;
-for (var i = 0; i < echartData.length; i++) {
-    total_datas += Number(echartData[i].value)
-    console.log(typeof(echartData[i].value))
-}
 const worksChartOption: EChartOption = {
-  
-   title: [
-    {
-        text:''+total_datas,
-        subtext: '共计回路',
-        textStyle:{
-            fontSize:24,
-            color:"black"
-        },
-        subtextStyle: {
-            fontSize: 16,
-            color: 'black'
-        },
-        textAlign:"center",
-        left: '49%',
-        top: '40%',
-    }],
-    tooltip: {
-        trigger: 'item',
-        formatter:function (parms:any){
-          var str=  parms.seriesName+"</br>"+
-            parms.marker+""+parms.data.legendname+"</br>"+
-            "数量:"+ parms.data.value+"</br>"+
-            "占比:"+ parms.percent+"%";
-            return  str ;
-        }
+  backgroundColor: "#FFF",
+  tooltip: {},
+  grid: {
+    left: "20",
+    right: "40",
+    top: "-20",
+    bottom: "0",
+    containLabel: true,
+  },
+  radar: {
+     shape: 'circle',
+    radius: "70%",
+    center: ["50%", "55%"],
+    splitNumber: 5,
+    nameGap: "15",
+    name: {
+      textStyle: {
+        color: "#a8a8a8",
+      },
     },
-    legend: {
-        type:"scroll",
-        orient: 'horizontal',
-        bottom:'0%',
-        align:'left',
-        // top:'middle',
-        textStyle: {
-            color:'#8C8C8C'
-        },
-        height:250
+    axisLine: {
+      lineStyle: {
+        color: "#ebebeb",
+      },
+    },
+    splitLine: {
+      lineStyle: {
+        width: 1,
+        color: "#ebebeb",
+      },
     },
-    series: [
+    splitArea: {
+      areaStyle: {
+        color: ["#f8f8f8", "#fff"].reverse(),
+      },
+    },
+    indicator: [
+      {
+        name: "Ua",
+        max: 100,
+      },
+      {
+        name: "Ub",
+        max: 100,
+      },
+      {
+        name: "Uc",
+        max: 100,
+      },
+     
+    ],
+  },
+  series: [
+    {
+      name: "Title✍",
+      type: "radar",
+      symbolSize: 12,
+      itemStyle: {
+        borderColor: "#ebebeb",
+        borderWidth: 2,
+      },
+      areaStyle: {
+        opacity: 0.3,
+      },
+      data: [
         {
-            name:'标题',
-            type:'pie',
-            center: ['50%', '50%'],
-            radius: ['40%', '60%'],
-
-             clockwise: false, //饼图的扇区是否是顺时针排布
-            avoidLabelOverlap: false,
-            label : {
-              show : false
-            },
-            labelLine : {
-              show : false
-            },
-            data:echartData
-        }
-    ]
-
+          itemStyle: {
+            color: "#5eb6db",
+          },
+          value: [20, 33, 80, 50, 30, 40, 100],
+        },
+      ],
+    },
+  ],
 };
 
 interface WorksChartCardSetupData {
   t: (key: string | number) => string;
   loading: Ref<boolean>;
-  pieChart: Ref;
+  lineChartBanlance: Ref;
   total: ComputedRef<number>;
   num: ComputedRef<number>;
 }
 
 export default defineComponent({
-  name: "PieChart",
+  name: "LoopRadarChart",
   setup(): WorksChartCardSetupData {
     const store = useStore<{ Home: HomeStateType }>();
     const { t } = useI18n();
@@ -116,8 +121,8 @@ export default defineComponent({
     // );
 
     // echarts 图表
-    const pieChart = ref<HTMLDivElement>();
-    const echarts = useEcharts(pieChart, worksChartOption);
+    const lineChartBanlance = ref<HTMLDivElement>();
+    const echarts = useEcharts(lineChartBanlance, worksChartOption);
     // watch([echarts, chartData], () => {
     //   if (echarts.value) {
     //     const option: EChartOption = {
@@ -152,7 +157,7 @@ export default defineComponent({
     return {
       t,
       loading,
-      pieChart,
+      lineChartBanlance,
       total,
       num,
     };
@@ -178,8 +183,8 @@ export default defineComponent({
     font-size: 30px;
     color: #515a6e;
   }
-  .height200 {
-    height: 200px;
+  .height260 {
+    height:200px;
   }
 }
 </style>

+ 88 - 0
src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/powerPanel.vue

@@ -0,0 +1,88 @@
+<template>
+  <div class="">
+    <div class="grid-content bg-purple powerPanel">
+      <div class="blanceChartTit">
+        <span>有功功率和无功功率</span>
+      </div>
+      <div style="padding: 70px 20px ">
+        <div style="display: flex">
+          <div class="uList">
+            <p>有功功率</p>
+            <p>无功功率</p>
+          </div>
+          <el-table
+            :data="tableData"
+            :show-header="false"
+            border
+            style="width: 80%"
+          >
+            <el-table-column prop="name" label="进度条">
+              <template #default="scope">
+                <div class="demo-progress" >
+                  <el-progress
+                    :text-inside="true"
+                    :stroke-width="14"
+                    :percentage="scope.row.pointNum"
+                    :status="scope.row.status"
+                  />
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column prop="date" label="日期"  width="100"> </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  name: "PowerPanel",
+  data() {
+    return {
+         tableData: [
+        {
+          date: "10.31(kV)",
+          name: "Tom",
+          pointNum: 60,
+          status: "warning",
+        },
+        {
+          date: "0(kV)",
+          name: "Tom2",
+          pointNum: 0,
+          status: "exception",
+        },
+      ],
+    };
+  },
+};
+</script>
+<style scoped lang="scss">
+.el-row {
+  margin-bottom: 20px;
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+.el-col {
+  border-radius: 4px;
+}
+.bg-purple-dark {
+  border: 1px solid #99a9bf;
+}
+.bg-purple {
+  border: 1px solid #d3dce6;
+}
+.bg-purple-light {
+  border: 1px solid #e5e9f2;
+}
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+.row-bg {
+  padding: 10px 0;
+  border: 1px solid #f9fafc;
+}
+</style>

+ 30 - 31
src/views/powerQuality/realTimeMonitoring/loopMonitorComponent/voltagePanel.vue

@@ -1,6 +1,6 @@
 <template>
-  <div class="voltagePanel">
-    <div class="grid-content bg-purple">
+  <div class="">
+    <div class="grid-content bg-purple voltagePanel">
       <div class="blanceChartTit">
         <span>电压</span>
         <span class="subs">额定电压:10kV</span>
@@ -10,36 +10,35 @@
           <div>下限5.37kv</div>
           <div>上限6.18kV</div>
         </div>
-         <div style="padding: 20px; display: flex">
-        <div class="uList">
-          <p>Ua</p>
-          <p>Ub</p>
-          <p>Uc</p>
+        <div style="padding: 20px; display: flex">
+          <div class="uList">
+            <p>Ua</p>
+            <p>Ub</p>
+            <p>Uc</p>
+          </div>
+          <el-table
+            :data="tableData"
+            :show-header="false"
+            border
+            style="width: 100%"
+          >
+            <el-table-column prop="name" label="进度条" width="300px">
+              <template #default="scope">
+                <div class="demo-progress" style="width: 100%">
+                  <el-progress
+                    style="width: 100%"
+                    :text-inside="true"
+                    :stroke-width="14"
+                    :percentage="scope.row.pointNum"
+                    :status="scope.row.status"
+                  />
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column prop="date" label="日期"> </el-table-column>
+          </el-table>
         </div>
-        <el-table
-          :data="tableData"
-          :show-header="false"
-          border
-          style="width: 100%"
-        >
-          <el-table-column prop="name" label="进度条" width="300px">
-            <template #default="scope">
-              <div class="demo-progress" style="width: 100%">
-                <el-progress
-                  style="width: 100%"
-                  :text-inside="true"
-                  :stroke-width="14"
-                  :percentage="scope.row.pointNum"
-                  :status="scope.row.status"
-                />
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column prop="date" label="日期"> </el-table-column>
-        </el-table>
       </div>
-      </div>
-     
     </div>
   </div>
 </template>
@@ -97,5 +96,5 @@ export default {
 .row-bg {
   padding: 10px 0;
   border: 1px solid #f9fafc;
-} 
+}
 </style>