lining 3 năm trước cách đây
mục cha
commit
1a3b45a0a6

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 171 - 2302
package-lock.json


+ 1 - 1
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "newneic",
+  "name": "project-neic",
   "version": "0.1.0",
   "private": true,
   "scripts": {

+ 44 - 28
src/App.vue

@@ -1,33 +1,35 @@
 <template class="app">
-  <TitleBar class="titleBar" />
-  <div class="right">
-    <el-col>
-      <el-row>
-        <el-col>
-          <ModeControl
-            ref="modeControl"
-            :current="current"
-            @clicks="handleClick"
-          ></ModeControl>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col>
-          <FocusArea />
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col>
-          <WarningArea></WarningArea>
-        </el-col>
-      </el-row>
-    </el-col>
+  <div>
+    <TitleBar class="titleBar" />
+    <div class="right">
+      <el-col>
+        <el-row>
+          <el-col>
+            <ModeControl
+              ref="modeControl"
+              :current="current"
+              @clicks="handleClick"
+            ></ModeControl>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <FocusArea />
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <WarningArea></WarningArea>
+          </el-col>
+        </el-row>
+      </el-col>
+    </div>
+    <div class="Dialog" v-show="state">
+      <div class="D-" @click="none">-</div>
+    </div>
+    <StatusBar class="statusBar" @getData="getData" />
+    <router-view />
   </div>
-  <div class="Dialog" v-show="state">
-    <div class="D-" @click="none">-</div>
-  </div>
-  <StatusBar class="statusBar" @getData="getData" />
-  <router-view />
 </template>
 <script>
 import TitleBar from "views/TitleBar.vue";
@@ -190,4 +192,18 @@ body {
 .el-collapse-item__wrap {
   border: none !important;
 }
+</style>
+<style lang="less">
+#app {
+  .currentScroll::-webkit-scrollbar {
+    width: 8px;
+    height: 0px;
+    background-color: black;
+  }
+
+  .currentScroll::-webkit-scrollbar-thumb {
+    background-color: #292929;
+    border-radius: 6px;
+  }
+}
 </style>

BIN
src/assets/sound/Track52.mp3


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 5930
src/components/BoosterStation/dwk.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 4944
src/components/BoosterStation/hzj.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 2844
src/components/BoosterStation/mch.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 9139
src/components/BoosterStation/mhs.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 5432
src/components/BoosterStation/nss.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 5304
src/components/BoosterStation/pl1.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 3617
src/components/BoosterStation/pl2.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 4050
src/components/BoosterStation/qs.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 2502
src/components/BoosterStation/sbdl.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 4403
src/components/BoosterStation/sbq.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 12163
src/components/BoosterStation/xh.vue


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 10411
src/components/BoosterStation/xs.vue


+ 0 - 730
src/components/areaCard.vue

@@ -1,730 +0,0 @@
-/* 自定义tabs */
-<template>
-    <!-- <transition>
-        <div :class='areaClass' @mouseover="hover = false" @mouseleave="hover = false" onselectstart="return false">
-            <div :class="headerClass">
-                <div :class='circleClass'></div>
-                <span class="gy-card-title">{{ title }}</span>
-                <img class="gy-card-decoration01" src="../../assets/img/controlcenter/decoration01.png">
-                <img class="gy-card-decoration02" src="../../assets/img/controlcenter/decoration02.png">
-            </div>
-            <div :class='contentClass'>
-                <el-scrollbar style="height: 100%">
-                    <slot></slot>
-                </el-scrollbar>
-            </div>
-        </div>
-    </transition> -->
-    <div class="body" :style="style">
-        <img class="logo" src="../assets/img/logo.png" alt="">
-        <div class="title">{{ title }}</div>
-        <div style="margin-top: 50px; height: 91%;">
-            <el-scrollbar>
-                <div class="scoll">
-                    <div class="matrix" v-if="faultList.length>0">
-                        <div class="problemTitle">故障</div>
-                        <MatrixBlock @on-click="handleClick" :dataList="faultList"></MatrixBlock>
-                    </div>
-                    <div class="matrix" v-if="maintainList.length>0">
-                        <div class="problemTitle">维护</div>
-                        <MatrixBlock @on-click="handleClick" :dataList="maintainList"></MatrixBlock>
-                    </div>
-                    <div class="matrix" v-if="offlineList.length>0">
-                        <div class="problemTitle">离线</div>
-                        <MatrixBlock @on-click="handleClick" :dataList="offlineList"></MatrixBlock>
-                    </div>
-                    <div class="matrix" v-if="listedList.length>0">
-                        <div class="problemTitle">挂牌</div>
-                        <MatrixBlock @on-click="handleClick" :dataList="listedList"></MatrixBlock>
-                    </div>
-                    <div class="matrix" v-if="listedList.length>0">
-                        <div class="problemTitle">挂牌</div>
-                        <MatrixBlock @on-click="handleClick" :dataList="listedList"></MatrixBlock>
-                    </div>
-                </div>
-            </el-scrollbar>
-        </div>
-    </div>
-</template>
-
-<script>
-    import BackgroundData from 'utils/BackgroundData'
-    // import ProblemMatrixCard from "./problem/ProblemMatrixCard.vue";
-    import MatrixBlock from "./matrixBlock.vue";
-    export default {
-        name: 'gy-card',
-        components: {
-            // ProblemMatrixCard,
-            MatrixBlock
-        },
-        emits: ["parentRun"],
-        props: {
-            title: {
-                type: String,
-                default: '校验区',
-                required: true
-            },
-            height: {
-                type: Number,
-                default: 200,
-            },
-            areaStyle: {
-                type: String,
-                default: 'check',
-                required: true
-            },
-            circleStyle: {
-                type: String,
-                default: 'green',
-                required: true
-            },
-            contentStyle: {
-                type: String,
-                default: '44',
-                required: true
-            },
-            showFlag: {
-                type: Boolean,
-                default: false,
-            }
-        },
-        data() {
-            return {
-                dialogVisible: false,
-                currentWindturbine: {},
-                values: [],
-                hover: false,
-                big: false,
-                current: 0,
-                faultList: [],
-                maintainList: [],
-                offlineList: [],
-                listedList: [],
-                chooseList: [],
-                titleList: [
-                    {
-                        id: 0,
-                        title: '麻黄山',
-                    },
-                    {
-                        id: 1,
-                        title: '牛首山',
-                    },
-                    {
-                        id: 2,
-                        title: '青山',
-                    },
-                    {
-                        id: 3,
-                        title: '石板泉',
-                    },
-                    {
-                        id: 4,
-                        title: '香山',
-                    },
-                ],
-            }
-        },
-        computed: {
-            style() {
-                return `width: 100%; height: 82%;`
-            },
-            areaClass() {
-                if (this.big) {
-                    return `gy-card-area-big`;
-                } else {
-                    return `gy-card-area-${this.areaStyle}`;
-                }
-            },
-            circleClass() {
-                return `gy-card-circle gy-card-circle-${this.circleStyle}`;
-            },
-            contentClass() {
-                if (this.big) {
-                    return `gy-card-content-big`;
-                } else {
-                    return `gy-card-content-${this.contentStyle}`;
-                }
-            },
-            headerClass() {
-                if (this.hover) {
-                    return `gy-card-header-hover`;
-                } else {
-                    return `gy-card-header`;
-                }
-            }
-        },
-        methods: {
-            handleClick(values) {
-                if (values.active) {
-                    let showIndex = null
-                    this.chooseList.forEach((item, index) => {
-                        if (item.windturbineId === values.windturbineId) {
-                            showIndex = index
-                        }
-                    })
-                    this.chooseList.splice(showIndex, 1);
-                } else {
-                    this.chooseList.push(values)
-                }
-            },
-            /* 右键菜单 */
-            contextmenu() {
-                const { remote } = require("electron");
-                let that = this;
-                const menuTemplate = [
-                    {
-                        label: "启动",
-                        click() {
-                            that.menuClicked({ type: "send", controlType: '1' });
-                        },
-                    },
-                    {
-                        label: "停机",
-                        click() {
-                            that.menuClicked({ type: "send", controlType: '2' });
-                        },
-                    },
-                    {
-                        label: "复位",
-                        click() {
-                            that.menuClicked({ type: "send", controlType: '5' });
-                        },
-                    },
-                    {
-                        label: "维护",
-                        click() {
-                            that.menuClicked({ type: "send", controlType: '6' });
-                        },
-                    },
-                    {
-                        label: "取消维护",
-                        click() {
-                            that.menuClicked({ type: "send", controlType: '8' });
-                        },
-                    },
-                    {
-                        label: "挂牌",
-                        submenu: [
-                            {
-                                label: "检修",
-                                click() {
-                                    that.menuClicked({ type: "lock", value: "CheckLock" });
-                                },
-                            },
-                            {
-                                label: "故障维修",
-                                click() {
-                                    that.menuClicked({ type: "lock", value: "FaultLock" });
-                                },
-                            },
-                            {
-                                label: "场内受累检修",
-                                click() {
-                                    that.menuClicked({ type: "lock", value: "StationCheckLock" });
-                                },
-                            },
-                            {
-                                label: "场内受累故障",
-                                click() {
-                                    that.menuClicked({ type: "lock", value: "StationFaulLock" });
-                                },
-                            },
-                            {
-                                label: "场外受累电网",
-                                click() {
-                                    that.menuClicked({
-                                        type: "lock",
-                                        value: "StationPowerLineLock",
-                                    });
-                                },
-                            },
-                            {
-                                label: "场外受累天气",
-                                click() {
-                                    that.menuClicked({ type: "lock", value: "StationWeatherLock" });
-                                },
-                            },
-                        ],
-                    },
-                    {
-                        label: "取消挂牌",
-                        click() {
-                            that.menuClicked({ type: 'lock', value: 'UnLock' });
-                        },
-                    },
-                    // {
-                    //     label: "标注",
-                    //     click() {
-                    //         that.menuClicked({ type: "marking" });
-                    //     },
-                    // },
-                ];
-                const menu = remote.Menu.buildFromTemplate(menuTemplate);
-
-                menu.popup(remote.getCurrentWindow());
-            },
-            menuClicked(msg) {
-                let bd = BackgroundData.getInstance();
-                
-                if (msg.type == "lock") {
-                    // 挂牌
-                    let los = this.getSelectedItems();
-                    for (let id in los) {
-                        los[id].lockType = msg.value;
-                    }
-                    bd.windturbineControl(
-                        los,
-                        true,
-                        '',
-                        this.controlSuccess,
-                        this.controlError
-                    );
-                } else if (msg.type == "send") {
-                    // 发送
-                    let vs = this.getSelectedItems(true);
-                    for (let item in los) {
-                        los[item].controlType = Number(msg.controlType)
-                    }
-                    bd.windturbineControl(
-                        vs,
-                        false,
-                        '',
-                        '',
-                        this.controlSuccess,
-                        this.controlError
-                    );
-                } else if (msg.type == "marking") {
-                    // 标注
-                    let vvs = this.getSelectedItems();
-                    bd.marking(vvs);
-                }
-                this.clearSelected();
-            },
-            /* 获取选中的项目,isControl:是否是控制 */
-            getSelectedItems() {
-                // isControl
-                let ls = new Array();
-                this.$refs.malfunction.outputSelectedItems(ls);
-                return ls;
-            },
-            /* 清除所有选择 */
-            clearSelected() {
-                this.$refs.malfunction.clearSelected();
-            },
-            filter(value, windturbineId) {
-                let array = [];
-                let flag = false;
-                for (let i = 0; i < value.length; i++) {
-                    if (value[i].windturbineId == windturbineId) {
-                        flag = true;
-                        array.push(flag); // 风机是否已经存在
-                        array.push(i); // 风机在values数组的位置
-                        array.push(value[i].active); // 当前风机是否被选中
-                        break;
-                    }
-                }
-                return array;
-            },
-            changeTitle(id) {
-                this.current = id
-                this.$refs.malfunction.dateClick(id)
-            },
-            addCard(val) {
-                let active = false;
-                let array = this.filter(this.values, val.windturbineId);
-                if (!array[0]) {
-                    // 维护
-                    val.active = active;
-                    if (val.modelId.indexOf("105") >= 0) {
-                        val.rollSpeed *= 9.55;
-                    }
-                    this.values.push(val);
-                } else {
-                    val.active = array[2];
-                    this.values.splice(array[1], 1, val);
-                }
-            },
-            showWindows(item) {
-                this.dialogVisible = true;
-                this.currentWindturbine = item;
-            }
-        },
-        watch: {
-            "$store.getters.windturbinelist": {
-                deep: true,
-                handler: function (json) {
-                    let vs = {};
-                    this.faultList = []
-                    this.maintainList = []
-                    this.offlineList = []
-                    this.listedList = []
-                    let arr = Object.keys(json).sort()
-                    for (let id of arr) {
-                        let val = json[id];
-                        this.chooseList.forEach(item => {
-                            if (item.windturbineId === val.windturbineId) {
-                                val.active = true
-                            }
-                        })
-                        switch (val.status) {
-                            case 5:
-                                this.faultList.push(val)
-                                break;
-                            case 6:
-                                this.maintainList.push(val)
-                                break;
-                            case 7:
-                                this.offlineList.push(val)
-                                break;
-                        }
-                        if (val.lockValue > 0) {
-                            this.listedList.push(val)
-                        }
-                    }
-                },
-            },
-        },
-    }
-</script>
-
-<style scoped="scoped">
-    .body {
-        border: 1px solid #373737;
-        width: 100%;
-        margin-left: 15px;
-        margin-top: 10px;
-    }
-
-    .body .scoll {
-        height: 91%;
-    }
-
-    .title {
-        color: #ffffff;
-        font-size: 14px;
-        margin-left: 32px;
-        /* margin-top: 12px; */
-        margin-bottom: 10px;
-        width: 570px;
-        height: 50px;
-        display: flex;
-        align-items: center;
-        position: absolute;
-        background-color: #000000;
-    }
-
-    .title::before {
-        z-index: 1;
-        content: '';
-        position: absolute;
-        left: -18px !important;
-        /* top: 30px !important; */
-        width: 5px;
-        height: 5px;
-        background-color: #54B75A;
-        border-radius: 50%;
-    }
-
-    .logo {
-        position: absolute;
-        top: 2px;
-        left: 18px;
-    }
-
-    .matrix {
-        margin-left: 20px;
-        margin-right: 10px;
-        padding-bottom: 20px;
-        border-bottom: 1px solid rgba(31, 31, 31, 1);
-    }
-
-    .problemTitle {
-        font-size: 12px;
-        color: #BFBFBF;
-        margin-top: 20px;
-        margin-bottom: 20px;
-        margin-left: 12px;
-    }
-
-    .gy-card-header {
-        position: relative;
-        height: 40px;
-        background-color: #292929;
-        color: white;
-        box-sizing: border-box;
-    }
-
-    .gy-card-content-89 {
-        position: relative;
-        height: calc(89vh - 50px);
-        background-color: #000000;
-        color: white;
-        box-sizing: border-box;
-        border-radius: 7px;
-    }
-
-    .gy-card-content-44 {
-        position: relative;
-        height: calc(44vh - 50px);
-        background-color: #000000;
-        color: white;
-        box-sizing: border-box;
-        border-radius: 7px;
-    }
-
-    .gy-card-content-37 {
-        position: relative;
-        height: calc(37vh - 50px);
-        background-color: #000000;
-        color: white;
-        box-sizing: border-box;
-        border-radius: 7px;
-    }
-
-    .gy-card-content-25 {
-        position: relative;
-        height: calc(25vh - 50px);
-        background-color: #000000;
-        color: white;
-        box-sizing: border-box;
-        border-radius: 7px;
-    }
-
-    .gy-card-circle {
-        position: relative;
-        top: 7px;
-        display: inline-block;
-        width: 7px;
-        height: 7px;
-        -moz-border-radius: 50%;
-        -webkit-border-radius: 50%;
-        border-radius: 50%;
-    }
-
-    .gy-card-circle-green {
-        background-color: #008000;
-    }
-
-    .gy-card-circle-yellow {
-        background-color: #ffff00;
-    }
-
-    .gy-card-title {
-        position: relative;
-        top: 10px;
-        left: 10px;
-    }
-
-    .gy-card-decoration01 {
-        position: absolute;
-        right: 80px;
-    }
-
-    .gy-card-decoration02 {
-        position: absolute;
-        top: 20px;
-        right: 20px;
-    }
-
-    .gy-card-area-problem {
-        position: relative;
-        height: 89vh;
-        background-color: #292929;
-        border-radius: 7px;
-        margin: 0px;
-        padding-top: 0;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-alarm {
-        position: relative;
-        height: 25vh;
-        margin-top: 10px;
-        background-color: #292929;
-        border-radius: 7px;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-check {
-        position: relative;
-        height: 44vh;
-        background-color: #292929;
-        border-radius: 7px;
-        margin-top: 10px;
-        padding-top: 0;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-control {
-        position: relative;
-        width: 100%;
-        height: 44vh;
-        background-color: #292929;
-        border-radius: 7px;
-        margin: 0px;
-        padding-top: 0;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-label {
-        position: relative;
-        height: 25vh;
-        margin-top: 10px;
-        background-color: #292929;
-        border-radius: 7px;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-recommended {
-        position: relative;
-        height: 37vh;
-        background-color: #292929;
-        border-radius: 7px;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-header-hover {
-        position: relative;
-        height: 40px;
-        background-color: #292929;
-        color: white;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-problem:hover {
-        position: relative;
-        height: 89vh;
-        background-color: #292929;
-        border-radius: 7px;
-        margin: 0px;
-        padding-top: 0;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-alarm:hover {
-        position: relative;
-        height: 25vh;
-        margin-top: 10px;
-        background-color: #292929;
-        border-radius: 7px;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-label:hover {
-        position: relative;
-        height: 25vh;
-        margin-top: 10px;
-        background-color: #292929;
-        border-radius: 7px;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-    .gy-card-area-recommended:hover {
-        position: relative;
-        height: 37vh;
-        background-color: #292929;
-        border-radius: 7px;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-    }
-
-
-    .gy-card-area-big {
-        position: fixed;
-        top: 0px;
-        left: 0px;
-        width: 100vw;
-        height: 100vh;
-        background-color: #292929;
-        border-radius: 7px;
-        margin: 0px;
-        padding-top: 0;
-        padding-left: 10px;
-        padding-right: 10px;
-        padding-bottom: 10px;
-        box-sizing: border-box;
-        z-index: 900;
-    }
-
-    .gy-card-content-big {
-        position: relative;
-        height: calc(100vh - 50px);
-        background-color: #000000;
-        color: white;
-        box-sizing: border-box;
-        border-radius: 7px;
-    }
-
-    .el-scrollbar__wrap {
-        overflow: scroll;
-        width: 110%;
-        height: 120%;
-    }
-
-    ::-webkit-scrollbar {
-        width: 0;
-        height: 0;
-    }
-
-    .scroll {
-        color: #ffffff;
-        min-height: 300px;
-        height: 400px;
-    }
-
-
-    .content {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 80px;
-        color: #ffffff;
-        height: 25px;
-        border: 1px solid blue;
-        margin-right: 10px;
-        margin-bottom: 10px;
-    }
-
-    .content_on {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 80px;
-        color: #ffffff;
-        height: 25px;
-        border: 1px solid blue;
-        margin-right: 10px;
-        margin-bottom: 10px;
-        background-color: chartreuse;
-    }
-</style>

+ 106 - 103
src/components/control/areaCard.vue

@@ -1,10 +1,11 @@
 /* 自定义tabs */
 <template>
-  <div class="body" :style="style">
-    <img class="logo" src="../../assets/img/logo.png" alt="" />
-    <div class="title">
-      <div>{{ title }}</div>
-      <!-- <div style="display: flex; flex-direction: row; align-items: center">
+  <div>
+    <div class="body" :style="style">
+      <img class="logo" src="../../assets/img/logo.png" alt="" />
+      <div class="title">
+        <div>{{ title }}</div>
+        <!-- <div style="display: flex; flex-direction: row; align-items: center">
         <div v-for="(item, index) in controlTypeList" :key="index">
           <div
             v-if="!item.type"
@@ -34,58 +35,60 @@
           </div>
         </div>
       </div> -->
-    </div>
-    <div style="margin-top: 50px; height: 85%" @contextmenu="contextmenu">
-      <el-scrollbar>
-        <div class="scoll">
-          <div class="matrix" v-if="startList.length > 0">
-            <div class="problemTitle">启动</div>
-            <MatrixBlock
-              @on-click="handleDetial"
-              @choose-click="handleClick"
-              :dataList="startList"
-            >
-            </MatrixBlock>
-          </div>
-          <div class="matrix" v-if="stopList.length > 0">
-            <div class="problemTitle">停机</div>
-            <MatrixBlock
-              @on-click="handleDetial"
-              @choose-click="handleClick"
-              :dataList="stopList"
-            >
-            </MatrixBlock>
-          </div>
-          <div class="matrix" v-if="maintainList.length > 0">
-            <div class="problemTitle">维护</div>
-            <MatrixBlock
-              @on-click="handleDetial"
-              @choose-click="handleClick"
-              :dataList="maintainList"
-            >
-            </MatrixBlock>
-          </div>
-          <div class="matrix" v-if="unMaintainList.length > 0">
-            <div class="problemTitle">取消维护</div>
-            <MatrixBlock
-              @on-click="handleDetial"
-              @choose-click="handleClick"
-              :dataList="unMaintainList"
-            >
-            </MatrixBlock>
+      </div>
+      <div style="margin-top: 50px; height: 85%" @contextmenu="contextmenu">
+         <div class="scoll currentScroll">
++        <div class="currentScroll" style="height: 100%; overflow-y: scroll">
+            <div class="matrix" v-if="startList.length > 0">
+              <div class="problemTitle">启动</div>
+              <MatrixBlock
+                @on-click="handleDetial"
+                @choose-click="handleClick"
+                :dataList="startList"
+              >
+              </MatrixBlock>
+            </div>
+            <div class="matrix" v-if="stopList.length > 0">
+              <div class="problemTitle">停机</div>
+              <MatrixBlock
+                @on-click="handleDetial"
+                @choose-click="handleClick"
+                :dataList="stopList"
+              >
+              </MatrixBlock>
+            </div>
+            <div class="matrix" v-if="maintainList.length > 0">
+              <div class="problemTitle">维护</div>
+              <MatrixBlock
+                @on-click="handleDetial"
+                @choose-click="handleClick"
+                :dataList="maintainList"
+              >
+              </MatrixBlock>
+            </div>
+            <div class="matrix" v-if="unMaintainList.length > 0">
+              <div class="problemTitle">取消维护</div>
+              <MatrixBlock
+                @on-click="handleDetial"
+                @choose-click="handleClick"
+                :dataList="unMaintainList"
+              >
+              </MatrixBlock>
+            </div>
           </div>
         </div>
-      </el-scrollbar>
+      </div>
+      <!-- <div v-if="current == 1" class="send" @click="handleSend">发送</div> -->
+      <div v-if="current == 1" class="sends">发送</div>
     </div>
-    <!-- <div v-if="current == 1" class="send" @click="handleSend">发送</div> -->
-    <div v-if="current == 1" class="sends" >发送</div>
+
+    <WindturbineDetailPages
+      v-model="dialogVisible"
+      @close="handleClose"
+      :windturbine="currentWindturbine"
+    >
+    </WindturbineDetailPages>
   </div>
-  <WindturbineDetailPages
-    v-model="dialogVisible"
-    @close="handleClose"
-    :windturbine="currentWindturbine"
-  >
-  </WindturbineDetailPages>
   <!-- <StationSvgDetailPages
     v-model="svgVisible"
     :stationName="stationName"
@@ -202,26 +205,26 @@ export default {
           //     this.windturbinelist[item.windturbineId].stationId
           // )[0].type;
           // if (status) {
-            let arr = Object.keys(this.windturbinelist).sort();
-            this.windturbinelist =
-              arr.length !== 0
-                ? this.windturbinelist
-                : this.$store.state.windturbinelist;
-            switch (item.operateStyle) {
-              case "Start":
-                this.windturbinelist[item.windturbineId].controlType = 1;
-                break;
-              case "Stop":
-                this.windturbinelist[item.windturbineId].controlType = 2;
-                break;
-              case "Maintain":
-                this.windturbinelist[item.windturbineId].controlType = 6;
-                break;
-              case "UnMaintain":
-                this.windturbinelist[item.windturbineId].controlType = 8;
-                break;
-            }
-            dateList.push(this.windturbinelist[item.windturbineId]);
+          let arr = Object.keys(this.windturbinelist).sort();
+          this.windturbinelist =
+            arr.length !== 0
+              ? this.windturbinelist
+              : this.$store.state.windturbinelist;
+          switch (item.operateStyle) {
+            case "Start":
+              this.windturbinelist[item.windturbineId].controlType = 1;
+              break;
+            case "Stop":
+              this.windturbinelist[item.windturbineId].controlType = 2;
+              break;
+            case "Maintain":
+              this.windturbinelist[item.windturbineId].controlType = 6;
+              break;
+            case "UnMaintain":
+              this.windturbinelist[item.windturbineId].controlType = 8;
+              break;
+          }
+          dateList.push(this.windturbinelist[item.windturbineId]);
           // }
         });
         let mss = {};
@@ -447,15 +450,15 @@ export default {
       this.chooseList = [];
     },
     removeList(mk) {
-        let indx = -1;
-        for (let id in this.titleList) {
-            if (this.titleList[id].windturbineId == mk.windturbineId) {
-                indx = id;
-                break;
-            }
+      let indx = -1;
+      for (let id in this.titleList) {
+        if (this.titleList[id].windturbineId == mk.windturbineId) {
+          indx = id;
+          break;
         }
-        if (indx < 0) return;
-        this.titleList.splice(indx, 1);
+      }
+      if (indx < 0) return;
+      this.titleList.splice(indx, 1);
     },
     /* 控制成功 */
     controlSuccess(msg) {
@@ -464,7 +467,7 @@ export default {
         let val = msg.data[id];
         if (val.errorCode !== "0") {
           bd.removeCheckouts(val);
-          this.removeList(val)
+          this.removeList(val);
         }
       }
       if (msg.data || msg.data !== {}) {
@@ -632,26 +635,26 @@ export default {
             //     this.windturbinelist[item.windturbineId].stationId
             // )[0].type;
             // if (status) {
-              let arr = Object.keys(this.windturbinelist).sort();
-              this.windturbinelist =
-                arr.length !== 0
-                  ? this.windturbinelist
-                  : this.$store.state.windturbinelist;
-              switch (item.operateStyle) {
-                case "Start":
-                  this.windturbinelist[item.windturbineId].controlType = 1;
-                  break;
-                case "Stop":
-                  this.windturbinelist[item.windturbineId].controlType = 2;
-                  break;
-                case "Maintain":
-                  this.windturbinelist[item.windturbineId].controlType = 6;
-                  break;
-                case "UnMaintain":
-                  this.windturbinelist[item.windturbineId].controlType = 8;
-                  break;
-              }
-              dateList.push(this.windturbinelist[item.windturbineId]);
+            let arr = Object.keys(this.windturbinelist).sort();
+            this.windturbinelist =
+              arr.length !== 0
+                ? this.windturbinelist
+                : this.$store.state.windturbinelist;
+            switch (item.operateStyle) {
+              case "Start":
+                this.windturbinelist[item.windturbineId].controlType = 1;
+                break;
+              case "Stop":
+                this.windturbinelist[item.windturbineId].controlType = 2;
+                break;
+              case "Maintain":
+                this.windturbinelist[item.windturbineId].controlType = 6;
+                break;
+              case "UnMaintain":
+                this.windturbinelist[item.windturbineId].controlType = 8;
+                break;
+            }
+            dateList.push(this.windturbinelist[item.windturbineId]);
             // }
           });
           // let mss = {};
@@ -744,7 +747,7 @@ export default {
   bottom: 20px;
   right: 10px;
 }
-.sends{
+.sends {
   width: 86px;
   height: 26px;
   display: flex;

+ 3 - 4
src/components/control/controlAllArea.vue

@@ -34,7 +34,7 @@
           <!-- 简单矩阵 -->
           <box-select node=".box" @selectList="selectList">
             <div v-if="selectValue === '0'">
-              <div v-for="(item, key) of allList">
+              <div v-for="(item, index) in allList" :key="index">
                 <div class="box1">
                   {{ key }}
                 </div>
@@ -48,7 +48,7 @@
             </div>
             <!-- 全部矩阵 -->
             <div v-if="selectValue === '1'">
-              <div v-for="(item, key) of allList">
+              <div v-for="(item, index) in allList" :key="index">
                 <div class="box1">
                   {{ key }}
                 </div>
@@ -61,7 +61,7 @@
               </div>
             </div>
             <!-- 其他 -->
-            <div v-if="selectValue != '0' && selectValue != '1'">
+            <div v-else>
               <MatrixBlock
                 @choose-click="handleClick"
                 @on-click="handleDetails"
@@ -70,7 +70,6 @@
               </MatrixBlock>
             </div>
           </box-select>
-
         </div>
         <!-- </div>
         </el-scrollbar> -->

+ 39 - 24
src/components/eaxyMatrixBlock.vue

@@ -11,10 +11,9 @@
       :id="item.windturbineId"
       v-for="(item, index) in dataList"
       :key="index"
+      @click="onSelectHandler(item)"
       @dblclick="sendMsg(item)"
-     
     >
-
       {{ item.windturbineId }}
     </div>
   </div>
@@ -63,6 +62,14 @@ export default {
       }`;
     },
 
+    onSelectHandler(values) {
+      if (this.area === "problem") {
+        this.$emit("problem-click", values);
+      } else {
+        this.$emit("choose-click", values);
+      }
+    },
+
     sendMsg: function (itm) {
       // this.dialogVisible = true;
       this.$emit("on-click", itm);
@@ -175,7 +182,7 @@ export default {
   color: #ffffff;
 }
 .box-0 {
-  width: 135px;
+  width: 117px;
   height: 20px;
   color: #ffffff;
   border: 1px solid rgba(255, 255, 255, 1);
@@ -186,6 +193,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #ffffff;
+  justify-content: center;
 }
 
 .unbox-0 {
@@ -254,9 +262,9 @@ export default {
 }
 
 .box-1 {
-  width: 135px;
-  height: 50px;
-  /* color: #ffffff; */
+  width: 117px;
+  height: 20px;
+  color: rgba(197, 48, 200, 1);
   border: 1px solid rgba(197, 48, 200, 1);
   background-color: rgba(197, 48, 200, 0.05);
   display: flex;
@@ -265,6 +273,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #ef3af2;
+  justify-content: center;
 }
 
 .unbox-1 {
@@ -331,9 +340,9 @@ export default {
 }
 
 .box-2 {
-  width: 135px;
-  height: 50px;
-  color: #ffffff;
+  width: 117px;
+  height: 20px;
+  color: rgba(05, 187, 76, 1);
   border: 1px solid rgba(05, 187, 76, 1);
   background-color: rgba(05, 187, 76, 0.05);
   display: flex;
@@ -342,6 +351,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #09e45e;
+  justify-content: center;
 }
 
 .unbox-2 {
@@ -408,9 +418,9 @@ export default {
 }
 
 .box-3 {
-  width: 135px;
-  height: 50px;
-  color: #ffffff;
+  width: 117px;
+  height: 20px;
+  color: rgba(05, 187, 76, 1);
   border: 1px solid rgba(05, 187, 76, 1);
   background-color: rgba(05, 187, 76, 0.05);
   display: flex;
@@ -419,6 +429,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #09e45e;
+  justify-content: center;
 }
 
 .unbox-3 {
@@ -485,9 +496,9 @@ export default {
 }
 
 .box-4 {
-  width: 135px;
-  height: 50px;
-  color: #ffffff;
+  width: 117px;
+  height: 20px;
+  color: rgba(75, 85, 174, 1);
   border: 1px solid rgba(75, 85, 174, 1);
   background-color: rgba(75, 85, 174, 0.05);
   display: flex;
@@ -496,6 +507,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #6876f2;
+  justify-content: center;
 }
 
 .unbox-4 {
@@ -563,9 +575,9 @@ export default {
 }
 
 .box-5 {
-  width: 133px;
-  height: 48px;
-  color: #ffffff;
+  width: 117px;
+  height: 20px;
+  color: rgba(186, 50, 55, 1);
   border: 2px solid rgba(186, 50, 55, 1);
   background-color: rgba(186, 50, 55, 0.05);
   display: flex;
@@ -574,6 +586,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #ff1313;
+  justify-content: center;
 }
 
 @keyframes fade {
@@ -679,9 +692,9 @@ export default {
 }
 
 .box-6 {
-  width: 135px;
-  height: 50px;
-  color: #ffffff;
+  width: 117px;
+  height: 20px;
+  color: rgba(225, 125, 36, 1);
   border: 1px solid rgba(225, 125, 36, 1);
   background-color: rgba(225, 125, 36, 0.05);
   display: flex;
@@ -690,6 +703,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #f28627;
+  justify-content: center;
 }
 
 .unbox-6 {
@@ -756,9 +770,9 @@ export default {
 }
 
 .box-7 {
-  width: 135px;
-  height: 50px;
-  color: #ffffff;
+  width: 117px;
+  height: 20px;
+  color: rgba(96, 103, 105, 1);
   border: 1px solid rgba(96, 103, 105, 1);
   background-color: rgba(96, 103, 105, 0.05);
   display: flex;
@@ -767,6 +781,7 @@ export default {
   margin-right: 5px;
   margin-top: 10px;
   box-shadow: 0px 0px 6px #ffffff;
+  justify-content: center;
 }
 
 .unbox-7 {

+ 0 - 287
src/components/focus/currentWarningCard.vue

@@ -1,287 +0,0 @@
-<template>
-  <div
-    class="currentWarningCardTableBox"
-    :class="$store.state.currentWarningCardClass"
-  >
-    <el-table
-      :data="tableData"
-      class="table"
-      height="30vh"
-      :header-cell-style="{
-        background: '#000000',
-        color: 'rgb(220,220,220)',
-        padding: '4px',
-        fontSize: '14px',
-        'border-bottom': 'solid 1px black',
-      }"
-      :cell-class-name="setCellClassName"
-    >
-      <el-table-column
-        prop="lastUpdateTime"
-        align="center"
-        label="时间"
-        width="150"
-      >
-      </el-table-column>
-      <el-table-column prop="alertText" align="center" label="描述" width="280">
-      </el-table-column>
-      <el-table-column prop="isSelected" align="center" label="确认">
-        <template v-slot="scope">
-          <input
-            type="checkbox"
-            v-model="scope.row.isSelected"
-            @click="itemChecked(scope.row)"
-          />
-        </template>
-      </el-table-column>
-    </el-table>
-  </div>
-</template>
-
-<script>
-import MessageBridge from "utils/MessageBridge";
-import BackgroundData from "utils/BackgroundData";
-import api from "api/index";
-
-export default {
-  name: "AlarmArea",
-  components: {},
-  created() {
-    this.initData();
-    this.faultMessage();
-  },
-  props: {
-    activeTab: {
-      type: String,
-      default: "",
-    },
-  },
-  data() {
-    return {
-      values: [],
-      tableData: [],
-      dialogVisible: false,
-      showSvg: false,
-      svgVisible: false,
-      svgWeb: "",
-      stationName: "",
-      currentWindturbine: {},
-      audio: null,
-    };
-  },
-  methods: {
-    filtrationData(activeTab) {
-      let syzAlarm = [];
-      let syzBase = [];
-      this.values.forEach((ele) => {
-        if (
-          ele.stationId === activeTab &&
-          ele.rank === this.$store.state.syzAlarmRank &&
-          ele.category1 === "SYZ"
-        ) {
-          syzAlarm.push(ele);
-        } else if (ele.stationId === activeTab && ele.category1 === "SYZ") {
-          syzBase.push(ele);
-        }
-      });
-
-      this.$store.commit(
-        "currentWarningCardClass",
-        syzAlarm.length ? "show" : ""
-      );
-
-      this.tableData = [].concat(syzAlarm, syzBase);
-    },
-    initData() {
-      let mb = MessageBridge.getInstance();
-      let vs = [
-        {
-          key: "/topic/fault-popup",
-          action: this.faultMessage,
-        },
-      ];
-      mb.register(vs);
-    },
-    faultMessage(json) {
-      let val = json ? JSON.parse(json) : this.$store.state.warning;
-      if (Object.keys(val).length > 0) {
-        let sleected = {};
-        this.values.forEach((it) => {
-          if (it.isSelected) {
-            sleected[it.id] = 0;
-          }
-        });
-        this.values = new Array();
-        for (let v in val) {
-          let vl = val[v];
-          if (vl.stationId != "QS_FDC" && vl.category1 == "FJ") {
-            vl.alertText = vl.windturbineName + "-" + vl.alertText;
-          }
-          if (sleected[vl.id] == 0 && BackgroundData.getInstance().LoginUser) {
-            vl.isSelected = true;
-          }
-          if (vl.category1 !== "GF" && vl.objectId.indexOf("GDC") === -1) {
-            this.values.push(vl);
-          }
-        }
-        this.filtrationData(this.activeTab);
-      }
-    },
-    close() {
-      this.dialogVisible = false;
-      this.svgVisible = false;
-    },
-    itemChecked(row) {
-      if (row.isSelected == true) {
-        row.isSelected = false;
-        return;
-      }
-      let bd = BackgroundData.getInstance();
-      if (!bd.LoginUser) {
-        this.$notify({
-          title: "请登录",
-          message: "确认报警需要先登录!",
-          type: "warning",
-          position: "bottom-right",
-          offset: 60,
-          duration: 3000,
-        });
-        row.isSelected = false;
-        return;
-      }
-      row.isSelected = true;
-      this.confirm(row);
-    },
-    confirm(item) {
-      api
-        .sendWarning({
-          snapID: item.snapIDString,
-          faultID: item.idString,
-          userName: BackgroundData.getInstance().LoginUser.name,
-        })
-        .then((msg) => {
-          let mms = msg.data > 0 ? "报警确认成功!" : "报警确认出现错误!";
-          let tp = msg.data > 0 ? "success" : "error";
-          msg.data === 0 ? (item.isSelected = false) : "";
-          this.$notify({
-            title: "报警",
-            message: mms,
-            type: tp,
-            position: "bottom-right",
-            offset: 60,
-            duration: 3000,
-          });
-        });
-    },
-    setCellClassName({ row }) {
-      if (row.rank === this.$store.state.syzAlarmRank) {
-        return "cellBase flicker";
-      } else {
-        return "cellBase";
-      }
-    },
-  },
-  watch: {
-    activeTab(res) {
-      this.filtrationData(res);
-    },
-  },
-};
-</script>
-<style scoped>
-.el-table::before {
-  width: 0;
-}
-
-.table {
-  background-color: rgba(0, 0, 0, 0.5);
-}
-
-:deep(.el-table__body-wrapper::-webkit-scrollbar) {
-  width: 8px;
-  height: 0px;
-  background-color: black;
-}
-
-:deep(.el-table__body-wrapper::-webkit-scrollbar-thumb) {
-  background-color: #292929;
-  border-radius: 6px;
-}
-
-:deep(.el-table td, .el-table th) {
-  border-bottom: 2px solid black;
-}
-.el-table__body-wrapper {
-  background-color: black;
-}
-tr {
-  line-height: 1.5;
-  background: #1e1e1e;
-  margin-bottom: 2px;
-  border-radius: 5px;
-}
-
-/* .ToolBar {
-  position: absolute;
-  right: 12px;
-  width: 586px;
-  text-align: center;
-  z-index: 2;
-  font-size: 14px;
-  height: 28px;
-  margin: 5px;
-  background: #1e1e1e;
-} */
-.table-main {
-  font-size: 14px;
-  width: 600px;
-  text-align: center;
-  background: #000000;
-  margin: 5px;
-  border-collapse: separate;
-  border-spacing: 0px 5px;
-}
-
-.currentWarningCardTableBox {
-  position: absolute;
-  right: -400px;
-  bottom: 40px;
-  padding-left: 5px;
-  padding-right: 5px;
-  opacity: 0.3;
-  transition: 0.3s;
-}
-.currentWarningCardTableBox:hover,
-.currentWarningCardTableBox.show {
-  right: 10px;
-  transition: 0.3s;
-  opacity: 1;
-}
-.currentWarningCardTableBox.hide {
-  opacity: 0.3;
-  transition: 0.3s;
-  right: -200px;
-}
-</style>
-<style lang="less">
-.cellBase {
-  background: rgb(30, 30, 30) !important;
-  color: rgb(220, 220, 220);
-  padding: 3px;
-  font-size: 12px;
-}
-.cellBase.flicker {
-  animation: flicker 0.6s infinite;
-}
-@keyframes flicker {
-  0% {
-    color: rgb(220, 220, 220);
-  }
-  50% {
-    color: orangered;
-  }
-  100% {
-    color: rgb(220, 220, 220);
-  }
-}
-</style>

+ 0 - 367
src/components/focus/syzDetails.vue

@@ -1,367 +0,0 @@
-<template>
-  <el-dialog
-    width="90%"
-    @open="opened"
-    @closed="closed"
-    :fullscreen="true"
-    :show-close="true"
-    class="dialogs"
-  >
-    <template #title>
-      <div class="showTitles currentShowTitles">
-        <div class="titles">升压站</div>
-      </div>
-    </template>
-    <div class="bodyy">
-      <el-tabs
-        type="border-card"
-        stretch
-        lazy
-        style="width: 100%; height: 100%"
-        v-model="activeTab"
-        @tab-click="tabClick"
-      >
-        <el-tab-pane
-          class="syzDetailsPaneItem"
-          v-for="(item, index) in syzArray"
-          :key="index"
-          :name="item.id"
-        >
-          <template #label>
-            <span v-if="pageshowMode % 2">
-              <el-badge is-dot v-if="item.isWarning === '1'">
-                <span>{{ item.name }}</span>
-              </el-badge>
-              <span v-else>{{ item.name }}</span>
-            </span>
-            <span v-else>
-              <el-badge is-dot v-if="item.isWarning === '1'">
-                <span>{{ item.name }}</span>
-              </el-badge>
-              <span v-else>{{ item.name }}</span>
-            </span>
-          </template>
-          <Mhs v-if="item.id === 'MHS_FDC'" />
-          <Nss v-if="item.id === 'NSS_FDC'" />
-          <Qs v-if="item.id === 'QS_FDC'" />
-          <Sbq v-if="item.id === 'SBQ_FDC'" />
-          <Xs v-if="item.id === 'XS_FDC'" />
-          <Pl1 v-if="item.id === 'PL1_GDC'" />
-          <Pl2 v-if="item.id === 'PL2_GDC'" />
-          <Dwk v-if="item.id === 'DWK_GDC'" />
-          <Mch v-if="item.id === 'MCH_GDC'" />
-          <Xh v-if="item.id === 'XH_GDC'" />
-          <Sbdl v-if="item.id === 'QS3_FDC'" />
-          <div class="alarmIconBox" @click="switchAlarmSound(index)">
-            <el-tooltip
-              v-if="item.isMute"
-              effect="light"
-              :content="`当前${item.name}升压站报警已消音,请注意`"
-              placement="left"
-            >
-              <i
-                class="el-icon-close-notification"
-                style="color: orangered"
-              ></i>
-            </el-tooltip>
-            <i v-else class="el-icon-bell" style="color: rgb(219, 215, 0)"></i>
-          </div>
-        </el-tab-pane>
-      </el-tabs>
-      <CurrentWarningCard
-        :currentClass="$store.state.currentWarningCardClass"
-        :activeTab="activeTab || 'MHS_FDC'"
-      />
-    </div>
-  </el-dialog>
-</template>
-<script>
-import Mhs from "../BoosterStation/mhs.vue";
-import Nss from "../BoosterStation/nss.vue";
-import Qs from "../BoosterStation/qs.vue";
-import Sbq from "../BoosterStation/sbq.vue";
-import Xs from "../BoosterStation/xs.vue";
-import Dwk from "../BoosterStation/dwk.vue";
-import Sbdl from "../BoosterStation/sbdl.vue";
-import Pl1 from "../BoosterStation/pl1.vue";
-import Pl2 from "../BoosterStation/pl2.vue";
-import Mch from "../BoosterStation/mch.vue";
-import Xh from "../BoosterStation/xh.vue";
-
-import CurrentWarningCard from "./currentWarningCard.vue";
-export default {
-  components: {
-    Mhs,
-    Nss,
-    Qs,
-    Sbq,
-    Xs,
-    Dwk,
-    Sbdl,
-    Pl1,
-    Pl2,
-    Mch,
-    Xh,
-    CurrentWarningCard,
-  },
-  data() {
-    return {
-      activeTab: this.$store.state.activeTab,
-      svgVisible: true,
-      audio: null,
-      timmer: null,
-      syzArray: this.$store.getters.syzArray || [],
-      pageshowMode: 0,
-    };
-  },
-  created() {},
-  mounted() {},
-  updated() {},
-  methods: {
-    // 初始化第一次报警并判断是否播放声音
-    initAlarm() {
-      let syzAlarmArray = this.$store.getters.syzAlarmArray;
-
-      const firstAlarmItem = syzAlarmArray.find((ele) => {
-        return !ele.isConfirm && ele.rank === this.$store.state.syzAlarmRank;
-      });
-
-      firstAlarmItem &&
-        this.audioPlay(this.getSound(firstAlarmItem.soundSource));
-
-      firstAlarmItem &&
-        this.$store.getters.syzAlarmArray.forEach((ele) => {
-          if (ele.stationId === firstAlarmItem.stationId) {
-            ele.isConfirm = true;
-          }
-        });
-
-      this.activeTab =
-        firstAlarmItem?.stationId ||
-        syzAlarmArray.find((ele) => {
-          return ele.rank === this.$store.state.syzAlarmRank;
-        })?.stationId ||
-        this.$store.getters.syzArray[0].id;
-
-      syzAlarmArray.forEach((ele) => {
-        if (ele.stationId === firstAlarmItem?.stationId) {
-          ele.isConfirm = true;
-          this.clearWarningTag(ele.stationId);
-        } else if (
-          !ele.isConfirm &&
-          ele.stationId !== firstAlarmItem?.stationId
-        ) {
-          this.renderWarningTag(ele.stationId);
-        }
-      });
-
-      this.$store.commit("syzAlarmArray", syzAlarmArray);
-    },
-
-    // 定时器循环数据判断小红点渲染及是否播放声音
-    renderAlarm(stationId = "", playSound = true) {
-      let syzAlarmArray = this.$store.getters.syzAlarmArray;
-
-      syzAlarmArray.forEach((ele) => {
-        if (ele.stationId === stationId) {
-          ele.isConfirm = true;
-          this.clearWarningTag(ele.stationId);
-        } else if (!ele.isConfirm && ele.stationId !== stationId) {
-          this.renderWarningTag(ele.stationId);
-        }
-      });
-
-      const res = syzAlarmArray.find((ele) => {
-        return !ele.isConfirm;
-      });
-
-      if (playSound) {
-        // this.audioPlay("./static/sound/syz.mp3");
-      }
-
-      this.$store.commit("syzAlarmArray", syzAlarmArray);
-    },
-
-    // 返回音频文件路径
-    getSound(fileName) {
-      return `./static/sound/${fileName}.mp3`;
-    },
-
-    // 播放音频
-    audioPlay(audioPath) {
-      let soundMuteSelf = [];
-      let soundMuteOther = [];
-
-      this.$store.getters.syzAlarmArray.forEach((ele) => {
-        if (ele.stationId === this.activeTab) {
-          soundMuteSelf.push(ele);
-        } else {
-          soundMuteOther.push(ele);
-        }
-      });
-
-      let alarmSelfLock = soundMuteSelf.some((ele) => {
-        return !ele.isConfirm;
-      });
-
-      let alarmOtherLock = soundMuteOther.some((ele) => {
-        return !ele.isConfirm;
-      });
-
-      if (alarmOtherLock) {
-        this.audio = new Audio(audioPath);
-        this.audio.play();
-      } else if (alarmSelfLock) {
-        this.$store.getters.syzArray.forEach((ele) => {
-          if (ele.stationId === this.activeTab) {
-            ele.isMute = false;
-            this.audio = new Audio(audioPath);
-            this.audio.play();
-          }
-        });
-      } else if (!alarmSelfLock) {
-        this.$store.getters.syzArray.forEach((ele) => {
-          if (ele.stationId === this.activeTab) {
-            if (!ele.isMute) {
-              this.audio = new Audio(audioPath);
-              this.audio.play();
-            }
-          }
-        });
-      }
-    },
-
-    // 显示某个小红点
-    renderWarningTag(stationId = "") {
-      this.$store.getters.syzArray.forEach((ele) => {
-        if (ele.id === stationId) {
-          ele.isWarning = "1";
-        }
-      });
-      this.pageshowMode++;
-    },
-
-    // 清除某个小红点
-    clearWarningTag(stationId = "") {
-      this.$store.getters.syzArray.forEach((ele) => {
-        if (ele.id === stationId) {
-          ele.isWarning = "0";
-        }
-      });
-      this.pageshowMode++;
-    },
-
-    // 切换报警声音开关
-    switchAlarmSound(index) {
-      this.$store.getters.syzArray[index].isMute =
-        !this.$store.getters.syzArray[index].isMute;
-    },
-
-    opened() {
-      this.initAlarm();
-      this.timmer = setInterval(() => {
-        this.renderAlarm();
-      }, 3000);
-    },
-
-    closed() {
-      clearInterval(this.timmer);
-      this.timmer = null;
-      this.$store.commit("activeTab", "");
-      this.$store.commit("syzDialogShow", false);
-    },
-
-    tabClick(res) {
-      this.$store.commit("activeTab", res.props.name);
-      this.renderAlarm(res.props.name, false);
-    },
-  },
-  watch: {
-    "$store.state.syzArray"(res) {
-      this.syzArray = res;
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.bodyy {
-  display: flex;
-  flex-direction: row;
-  background-color: black;
-  width: 100%;
-  margin-top: -30px;
-  height: 91vh;
-  position: relative;
-  overflow: hidden;
-
-  .syzDetailsPaneItem {
-    position: relative;
-
-    .alarmIconBox {
-      position: absolute;
-      right: 0;
-      top: 0;
-      cursor: pointer;
-
-      i {
-        font-size: 20px;
-      }
-    }
-  }
-}
-</style>
-<style lang="less">
-.bodyy {
-  .pop-up-main,
-  .paln-box {
-    width: 100%;
-    height: 90vh;
-    overflow: hidden;
-    position: relative;
-  }
-  .movableItem {
-    width: 100% !important;
-    height: 100% !important;
-
-    .svg {
-      width: 100%;
-      height: 92%;
-      margin-left: 0;
-      margin-top: 8%;
-    }
-  }
-
-  .el-badge__content.is-fixed.is-dot {
-    right: 0;
-    top: 10px;
-    background: #f25656;
-    animation: twinkle 0.75s infinite;
-    border-color: transparent;
-  }
-
-  @keyframes twinkle {
-    0% {
-      opacity: 0;
-    }
-    50% {
-      opacity: 1;
-    }
-    100% {
-      opacity: 0;
-    }
-  }
-}
-
-.currentShowTitles {
-  width: 100%;
-  position: relative;
-  .alarIcon {
-    position: absolute;
-    right: 50px;
-    top: 5;
-    font-size: 20px;
-    cursor: pointer;
-  }
-}
-</style>

+ 3 - 1
src/components/matrixBlock.vue

@@ -1,4 +1,5 @@
 <template>
+<div>
   <div class="box" style="display: flex; flex-direction: row; flex-wrap: wrap">
     <div
       :class="
@@ -13,7 +14,7 @@
       :key="index"
       @click="onSelectHandler(item)"
       @dblclick="sendMsg(item)"
-      style="margin-right: 15px"
+      style="margin-right: 8px"
     >
       <div
         :class="item.active ? 'left-' + item.status : 'unleft-' + item.status"
@@ -101,6 +102,7 @@
     @close="handleClose"
     :windturbine="currentWindturbine"
   ></WindturbineDetailPages>
+  </div>
 </template>
 <script>
 import WindturbineDetailPages from "./WindturbineDetailPages.vue";

+ 0 - 562
src/components/problem/ProblemMatrixCard.vue

@@ -1,562 +0,0 @@
-<template>
-  <div class="main" v-if="values.length > 0">
-    <div>{{ title }}</div>
-    <div class="content">
-      <div class="card" v-for="(item, index) in values" :key="index" :class="
-          item.active
-            ? 'card-select-' + item.status
-            : 'card-unselect-' + item.status
-        " @click="onSelectHandler(item)" @dblclick="sendMsg(item)">
-        <div class="card-left" :class="
-            item.active
-              ? 'card-left-select-' + item.status
-              : 'card-left-unselect-' + item.status
-          ">
-          <div>{{ item.windturbineId.slice(0, 2) }}</div>
-          <div>{{ item.windturbineId.slice(5) }}</div>
-        </div>
-        <div class="card-right" :class="
-            item.active
-              ? 'card-right-select-' + item.status
-              : 'card-right-unselect-' + item.status
-          ">
-          <div class="rightrow">{{ item.windSpeed.toFixed(2) }} m/s</div>
-          <div class="rightrow">{{ item.power.toFixed(2) }} kw</div>
-          <div class="rightrow">{{ item.rollSpeed.toFixed(2) }} rpm</div>
-        </div>
-      </div>
-    </div>
-    <div class="bottom"></div>
-  </div>
-  <!-- <WindturbineDetailPages v-model="dialogVisible" :windturbine="currentWindturbine"></WindturbineDetailPages> -->
-</template>
-
-<script>
-  // import WindturbineDetailPages from "../WindturbineDetailPages.vue";
-  export default {
-    name: "ControlMatrixCard",
-    props: {
-      // dateClick,
-      title: String,
-      type: Number,
-      datas: Object,
-      flag: {
-        type: Boolean,
-        default: false,
-      }
-    },
-    data() {
-      return {
-        values: [],
-        dialogVisible: false,
-        currentWindturbine: {},
-        cacheFlag: false,
-      };
-    },
-    components: {
-      // WindturbineDetailPages,
-    },
-    methods: {
-      
-      // 点击卡片事件
-      onSelectHandler(item) {
-        item.active = !item.active;
-      },
-      sendMsg: function (itm) {
-        if (this.flag) {
-          this.$emit("showWindows", itm);
-        } else {
-          this.dialogVisible = true;
-          this.currentWindturbine = itm;
-        }
-      },
-      filter(value, windturbineId) {
-        let array = [];
-        let flag = false;
-        for (let i = 0; i < value.length; i++) {
-          if (value[i].windturbineId == windturbineId) {
-            flag = true;
-            array.push(flag); // 风机是否已经存在
-            array.push(i); // 风机在values数组的位置
-            array.push(value[i].active); // 当前风机是否被选中
-            break;
-          }
-        }
-        return array;
-      },
-      addCard(val) {
-        let active = false;
-        let array = this.filter(this.values, val.windturbineId);
-        if (!array[0]) {
-          // 维护
-          val.active = active;
-          if (val.modelId.indexOf("105") >= 0) {
-            val.rollSpeed *= 9.55;
-          }
-          this.values.push(val);
-        } else {
-          val.active = array[2];
-          this.values.splice(array[1], 1, val);
-        }
-      },
-      /* 获取选中的项目 */
-      getSelectedItems() {
-        let ls = new Array();
-        this.values.forEach((item) => {
-          if (item.active) {
-            ls.push(item);
-          }
-        });
-        return ls;
-      },
-      /* 将选中的项目填充到数组中 */
-      outputSelectedItems(ls) {
-        this.values.forEach((item) => {
-          if (item.active && !this.isHas(item, ls)) {
-            ls.push(item);
-          }
-        });
-      },
-
-      /* 清除选中的项目 */
-      clearSelected() {
-        this.values.forEach((item) => (item.active = false));
-      },
-
-      isHas(item, ls) {
-        for (let id in ls) {
-          if (ls[id].windturbineId == item.windturbineId) {
-            return true;
-          }
-        }
-        return false;
-      },
-
-      clear(vs) {
-        let ll = new Array();
-        this.values.forEach((item) => {
-          let it = vs[item.windturbineId];
-          if (typeof it === "undefined") {
-            ll.push(item);
-          }
-        });
-        for (let v1 in ll) {
-          let ind = this.values.indexOf(ll[v1]);
-          if (ind < 0) continue;
-          this.values.splice(ind, 1);
-        }
-      },
-      dateClick(type){
-        console.log(this.cacheDate);
-        let vs = {};
-        let address = ''
-          switch (type) {
-            case 0:
-              address = 'MG'
-              break;
-            case 1:
-              address = 'NG'
-              break;
-            case 2:
-              address = 'QG'
-              break;
-            case 3:
-              address = 'SG'
-              break;
-            case 4:
-              address = 'XG'
-              break;
-          }
-          let arr = Object.keys(this.cacheDate).sort()
-          for (let id of arr) {
-            let val = this.cacheDate[id];
-            if (val.windturbineId.substring(0, 2) === address) {
-                this.addCard(val);
-                vs[val.windturbineId] = 0;
-              }
-          }
-          this.clear(vs);
-      },
-    },
-    watch: {
-      "$store.getters.windturbinelist": {
-        deep: true,
-        handler: function (json) {
-          let vs = {};
-          let address = ''
-          switch (this.type) {
-            case 0:
-              address = 'MG'
-              break;
-            case 1:
-              address = 'NG'
-              break;
-            case 2:
-              address = 'QG'
-              break;
-            case 3:
-              address = 'SG'
-              break;
-            case 4:
-              address = 'XG'
-              break;
-          }
-          if (this.flag && !this.cacheFlag){
-            this.cacheDate = json
-            this.cacheFlag = true
-          }
-          let arr = Object.keys(json).sort()
-          for (let id of arr) {
-            let val = json[id];
-            if (this.flag) {
-              if (val.windturbineId.substring(0, 2) === address) {
-                this.addCard(val);
-                vs[val.windturbineId] = 0;
-              }
-            } else {
-              if (val.status == this.type) {
-                this.addCard(val);
-                vs[val.windturbineId] = 0;
-              }
-              if (this.type < 0 && val.lockValue) {
-                this.addCard(val);
-                vs[val.windturbineId] = 0;
-              }
-            }
-          }
-          // console.log(this.values);
-          this.clear(vs);
-        },
-      },
-    },
-  };
-</script>
-
-<style scoped>
-  .rightrow {
-    margin-right: 3px;
-  }
-
-  .content {
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-  }
-
-  .bottom {
-    background-color: #292929;
-    width: 100%;
-    height: 2px;
-    margin-top: 5px;
-  }
-
-  .main {
-    margin: 0 5px 15px 5px;
-  }
-
-  /*  最外层卡片 */
-  .card {
-    width: 112px;
-    height: 49px;
-    font-size: 12px;
-    margin-left: 3px;
-    margin-top: 4px;
-    display: flex;
-    flex-direction: row;
-    cursor: pointer;
-    /* border: 2px solid rgb(75, 85, 174); */
-  }
-
-  /*  卡片左边部分 */
-  .card-left {
-    width: 25px;
-    margin: 3px;
-    font-size: 14px;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-around;
-    align-items: center;
-    /* background-color: rgb(75, 85, 174); */
-  }
-
-  /* 卡片右边部分 */
-  .card-right {
-    display: flex;
-    flex: 1;
-    flex-direction: column;
-    justify-content: space-around;
-    align-items: flex-end;
-    padding-right: 3px;
-    /* border-left: 2px dashed rgb(75, 85, 174); */
-  }
-
-  /* ***********颜色************ */
-  /* *********************** */
-  /*  最外层卡片选中和未选中 */
-  .card-select-0 {
-    border: 2px solid rgb(255, 255, 255, 0.5);
-  }
-
-  .card-unselect-0 {
-    border: 2px solid rgb(255, 255, 255);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-0 {
-    background-color: rgb(255, 255, 255, 0.5);
-    color: rgb(0, 0, 0, 0.5);
-  }
-
-  .card-left-unselect-0 {
-    background-color: rgb(255, 255, 255, .5);
-    color: rgb(0, 0, 0);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-0 {
-    border-left: 2px dashed rgb(255, 255, 255, 0.5);
-  }
-
-  .card-right-unselect-0 {
-    border-left: 2px dashed rgb(255, 255, 255, .5);
-    background-color: rgb(255, 255, 255, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** */
-  /*  最外层卡片选中和未选中 */
-  .card-select-1 {
-    border: 2px solid rgb(197, 48, 200, 0.5);
-  }
-
-  .card-unselect-1 {
-    border: 2px solid rgb(197, 48, 200);
-  }
-
-  .card-select-1 {
-    border: 2px solid rgb(197, 48, 200, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-1 {
-    background-color: rgb(197, 48, 200, 0.5);
-  }
-
-  .card-left-unselect-1 {
-    background-color: rgb(197, 48, 200, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-1 {
-    border-left: 2px dashed rgb(197, 48, 200, 0.5);
-  }
-
-  .card-right-unselect-1 {
-    border-left: 2px dashed rgb(197, 48, 200, .5);
-    background-color: rgb(197, 48, 200, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** */
-  /*  最外层卡片选中和未选中 */
-  .card-select-2 {
-    border: 2px solid rgb(05, 187, 76, 0.5);
-  }
-
-  .card-unselect-2 {
-    border: 2px solid rgb(05, 187, 76);
-  }
-
-  .card-select-2 {
-    border: 2px solid rgb(05, 187, 76, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-2 {
-    background-color: rgb(05, 187, 76, 0.5);
-  }
-
-  .card-left-unselect-2 {
-    background-color: rgb(05, 187, 76, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-2 {
-    border-left: 2px dashed rgb(05, 187, 76, 0.5);
-  }
-
-  .card-right-unselect-2 {
-    border-left: 2px dashed rgb(05, 187, 76, .5);
-    background-color: rgb(05, 187, 76, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** */
-  /*  最外层卡片选中和未选中 */
-  .card-select-3 {
-    border: 2px solid rgb(05, 187, 76, 0.5);
-  }
-
-  .card-unselect-3 {
-    border: 2px solid rgb(05, 187, 76);
-  }
-
-  .card-select-3 {
-    border: 2px solid rgb(05, 187, 76, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-3 {
-    background-color: rgb(05, 187, 76, 0.5);
-  }
-
-  .card-left-unselect-3 {
-    background-color: rgb(05, 187, 76, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-3 {
-    border-left: 2px dashed rgb(05, 187, 76, 0.5);
-  }
-
-  .card-right-unselect-3 {
-    border-left: 2px dashed rgb(05, 187, 76, .5);
-    background-color: rgb(05, 187, 76, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** */
-  /*  最外层卡片选中和未选中 */
-  .card-select-4 {
-    border: 2px solid rgb(75, 85, 174, 0.5);
-  }
-
-  .card-unselect-4 {
-    border: 2px solid rgb(75, 85, 174);
-  }
-
-  .card-select-4 {
-    border: 2px solid rgb(75, 85, 174, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-4 {
-    background-color: rgb(75, 85, 174, 0.5);
-  }
-
-  .card-left-unselect-4 {
-    background-color: rgb(75, 85, 174, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-4 {
-    border-left: 2px dashed rgb(75, 85, 174, 0.5);
-  }
-
-  .card-right-unselect-4 {
-    border-left: 2px dashed rgb(75, 85, 174, .5);
-    background-color: rgb(75, 85, 174, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** *
-/*  最外层卡片选中和未选中 */
-  .card-select-5 {
-    border: 2px solid rgb(186, 50, 55, 0.5);
-  }
-
-  .card-unselect-5 {
-    border: 2px solid rgb(186, 50, 55);
-  }
-
-  .card-select-5 {
-    border: 2px solid rgb(186, 50, 55, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-5 {
-    background-color: rgb(186, 50, 55, 0.5);
-  }
-
-  .card-left-unselect-5 {
-    background-color: rgb(186, 50, 55, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-5 {
-    border-left: 2px dashed rgb(186, 50, 55, 0.5);
-  }
-
-  .card-right-unselect-5 {
-    border-left: 2px dashed rgb(186, 50, 55, .5);
-    background-color: rgb(186, 50, 55, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** *
-/*  最外层卡片选中和未选中 */
-  .card-select-6 {
-    border: 2px solid rgb(225, 125, 36, 0.5);
-  }
-
-  .card-unselect-6 {
-    border: 2px solid rgb(225, 125, 36);
-  }
-
-  .card-select-6 {
-    border: 2px solid rgb(225, 125, 36, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-6 {
-    background-color: rgb(225, 125, 36, 0.5);
-  }
-
-  .card-left-unselect-6 {
-    background-color: rgb(225, 125, 36, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-6 {
-    border-left: 2px dashed rgb(225, 125, 36, 0.5);
-  }
-
-  .card-right-unselect-6 {
-    border-left: 2px dashed rgb(225, 125, 36, .5);
-    background-color: rgb(225, 125, 36, .15);
-  }
-
-  /* ***********颜色************ */
-  /* *********************** *
-/*  最外层卡片选中和未选中 */
-  .card-select-7 {
-    border: 2px solid rgb(96, 103, 105, 0.5);
-  }
-
-  .card-unselect-7 {
-    border: 2px solid rgb(96, 103, 105);
-  }
-
-  .card-select-7 {
-    border: 2px solid rgb(96, 103, 105, 0.5);
-  }
-
-  /*  左边卡片选中和未选中 */
-  .card-left-select-7 {
-    background-color: rgb(96, 103, 105, 0.5);
-  }
-
-  .card-left-unselect-7 {
-    background-color: rgb(96, 103, 105, .5);
-  }
-
-  /*  右边卡片选中和未选中 */
-  .card-right-select-7 {
-    border-left: 2px dashed rgb(96, 103, 105, 0.5);
-  }
-
-  .card-right-unselect-7 {
-    border-left: 2px dashed rgb(96, 103, 105, .5);
-    background-color: rgb(96, 103, 105, .15);
-  }
-</style>

+ 4 - 13
src/components/problem/areaCard.vue

@@ -1,5 +1,6 @@
 /* 自定义tabs */
 <template>
+<div>
   <div class="body" :style="style">
     <img class="logo" src="../../assets/img/logo.png" alt="" />
     <div class="Title">{{ title }}</div>
@@ -71,7 +72,7 @@
           <template v-slot:title>
                <div class="tit1">
             <div class="title">风速功率不匹配</div>
-            <span class="num1">{{ unpaidList.length }}</span>
+            <span class="num">{{ unpaidList.length }}</span>
                </div>
           </template>
           <MatrixBlock
@@ -93,6 +94,7 @@
     @close="handleClose"
     :windturbine="currentWindturbine"
   ></WindturbineDetailPages>
+  </div>
 </template>
 
 <script>
@@ -501,23 +503,12 @@ export default {
   display: inline-block;
   width: 30px;
   height: 30px;
-  background-color: rgba(75, 85, 174, 1);
+  background-color: rgba(37, 116, 219, 1);
   border-radius: 50%;
   line-height: 30px;
   text-align: center;
   box-sizing: border-box;
 }
-.num1 {
-  margin-left: 439px;
-  color: #fff;
-  display: inline-block;
-  width: 30px;
-  height: 30px;
-  background-color: rgba(75, 85, 174, 1);
-  border-radius: 50%;
-  line-height: 30px;
-  text-align: center;
-}
 .body {
   border: 1px solid #373737;
   width: 100%;

+ 0 - 146
src/utils/PhotoelectricDetailPages.js

@@ -1,146 +0,0 @@
-// import axios from 'axios';
-// import {config} from '../../config';
-
-export const Photoelectric = {
-	'MHS_BT': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0296", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0294", calc: "0.1" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0295", calc: "0.01" },
-		{ name: "实发有功", tag: "ActualPower", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0013", calc: "0.833" },
-		{ name: "理论功率", tag: "TheoryPower", value: "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0193", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "MHSFGL.NX_GD_MHSF_YC_P1_L1_001_CDQ001", calc: "1" },
-		{ name: "AGC投入", tag: "AgcIn", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI1207" },
-		{ name: "AGC远方", tag: "AgcFar", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI1208" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI1209" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI1210" },
-		{ name: "状态", tag: "Status", value: "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0263" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "69.5" },
-	],
-	'QS_BT': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI1281", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI1284", calc: "1" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI1285", calc: "0.1" },
-		{ name: "实发有功", tag: "ActualPower", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI1282", calc: "1" },
-		{ name: "理论功率", tag: "TheoryPower", value: "QSFCJSFW.NX_GD_QSF_FJ_P1_XXX_XXX_CI0192", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "QSFGL.NX_GD_QSF_YC_P1_L1_001_CDQ001", calc: "1" },
-		{ name: "AGC投入", tag: "AgcIn", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI2442" },
-		{ name: "AGC远方", tag: "AgcFar", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI2443" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI2444" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI2445" },
-		{ name: "状态", tag: "Status", value: "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0263" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "99" },
-	],
-	'NSS_BT': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI1019", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI1010", calc: "0.001" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI1011", calc: "0.001" },
-		{ name: "实发有功", tag: "ActualPower", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI1009", calc: "0.001" },
-		{ name: "理论功率", tag: "TheoryPower", value: "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0193", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "NSSFGL.NX_GD_NSSF_YC_P1_L1_001_CDQ001", calc: "0.001" },
-		{ name: "AGC投入", tag: "AgcIn", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_DI1547" },
-		{ name: "AGC远方", tag: "AgcFar", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_DI1556" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_DI1567" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_DI1568" },
-		{ name: "状态", tag: "Status", value: "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0263" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "148.5" },
-	],
-	"XN6_BT": [
-		{ name: "有功设定限值", tag: "PowerSet", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0818", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0819", calc: "0.1" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0820", calc: "0.1" },
-		{ name: "实发有功", tag: "ActualPower", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0012", calc: "0.001" },
-		{ name: "理论功率", tag: "TheoryPower", value: "SBQFCJSFW.NX_GD_SBQF_FJ_P1_XXX_XXX_CI0192", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_CDQ001", calc: "1" },
-		{ name: "AGC投入", tag: "AgcIn", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3831" },
-		{ name: "AGC远方", tag: "AgcFar", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3832" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3833" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3834" },
-		{ name: "状态", tag: "Status", value: "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0263" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "49.5" },
-	],
-	'N5_BT': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0818", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0819", calc: "1" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0820", calc: "1" },
-		{ name: "实发有功", tag: "ActualPower", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0817", calc: "1" },
-		{ name: "理论功率", tag: "TheoryPower", value: "SBQFCJSFW.NX_GD_SBQF_FJ_P2_XXX_XXX_CI0192,SBQFCJSFW.NX_GD_SBQF_FJ_P3_XXX_XXX_CI0192,SBQFCJSFW.NX_GD_SBQF_FJ_P4_XXX_XXX_CI0192", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_CDQ001", calc: "1" },
-		{ name: "AGC投入", tag: "AgcIn", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3831" },
-		{ name: "AGC远方", tag: "AgcFar", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3832" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3833" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3834" },
-		{ name: "状态", tag: "Status", value: "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI026X" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "149" },
-	],
-	'XS_BT': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0411", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0412", calc: "1" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0413", calc: "1" },
-		{ name: "实发有功", tag: "ActualPower", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0415", calc: "1" },
-		{ name: "理论功率", tag: "TheoryPower", value: "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0193", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "XSFGL.NX_G D_XSF_YC_P1_L1_001_CDQ001", calc: "1" },
-		{ name: "AGC投入", tag: "AgcIn", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI1749" },
-		{ name: "AGC远方", tag: "AgcFar", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI1750" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI1753" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI1754" },
-		{ name: "状态", tag: "Status", value: "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0263" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "99" },
-	],
-	'SL_BT': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_AI0052", calc: "1" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_AI0053", calc: "1" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_AI0054", calc: "1" },
-		{ name: "实发有功", tag: "ActualPower", value: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0013", calc: "1" },
-		{ name: "理论功率", tag: "TheoryPower", value: "QSFCJSFW.NX_GD_QSF_FJ_P3_XXX_XXX_CI0192", calc: "0.001" },
-		{ name: "预测功率", tag: "ForecastPower", value: "SLFGL.NX_GD_QSF_YC_P1_L1_001_LCDQ01", calc: "1" },
-		{ name: "AGC投入", tag: "AgcIn", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0142" },
-		{ name: "AGC远方", tag: "AgcFar", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0143" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0162" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0163" },
-		{ name: "状态", tag: "Status", value: "SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0165" },
-		{ name: "装机容量", tag: "InstalledCapacity", value: "49.5" },
-	],
-	"DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0263": [
-		{ name: "有功设定限值", tag: "PowerSet", value: "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0837" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0838" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0839" },
-		{ name: "实发有功", tag: "ActualPower", value: "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0842", calc: "0.01" },
-		{ name: "理论功率", tag: "TheoryPower", value: "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0192" },
-		{ name: "预测功率", tag: "ForecastPower", value: "DWKGGL.NX_GD_DWKG_YC_P1_L1_001_CDQ001" },
-		{ name: "AGC投入", tag: "AgcIn", value: "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_DI0761" },
-		{ name: "AGC远方", tag: "AgcFar", value: "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_DI0767" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "" },
-	],
-	'PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0263': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0838" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0836" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0837" },
-		{ name: "实发有功", tag: "ActualPower", value: "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0835" },
-		{ name: "理论功率", tag: "TheoryPower", value: "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0192" },
-		{ name: "预测功率", tag: "ForecastPower", value: "PLGGL.NX_GD_PLG_YC_P1_L1_001_CDQ0001" },
-		{ name: "AGC投入", tag: "AgcIn", value: "" },
-		{ name: "AGC远方", tag: "AgcFar", value: "" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "" },
-	],
-	'XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0263': [
-		{ name: "有功设定限值", tag: "PowerSet", value: "XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0204" },
-		{ name: "AGC可调上限", tag: "AgcUp", value: "XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0194" },
-		{ name: "AGC可调下限", tag: "AgcLower", value: "XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0195" },
-		{ name: "实发有功", tag: "ActualPower", value: "XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0193" },
-		{ name: "理论功率", tag: "TheoryPower", value: "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0192" },
-		{ name: "预测功率", tag: "ForecastPower", value: "XHGGL.NX_GD_XHG_YC_P1_L1_001_CDQ001" },
-		{ name: "AGC投入", tag: "AgcIn", value: "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0099" },
-		{ name: "AGC远方", tag: "AgcFar", value: "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0100" },
-		{ name: "有功增闭锁", tag: "SumLock", value: "" },
-		{ name: "有功减闭锁", tag: "SubLock", value: "" },
-	],
-	// constructor(){
-	// 	this.getDatas = this.getDatas.bind(this);
-	// 	this.getTags=this.getTags.bind(this);
-	// }
-	// getDatas(){
-	// 	return this.tags;
-	// }
-}

+ 0 - 268
src/utils/baseTool.js

@@ -1,268 +0,0 @@
-
-let loadingStatus = null;
-
-import { ElMessage } from 'element-plus';
-import { ElLoading } from 'element-plus';
-
-export default {
-  /**
-   * 页面顶部出现消息提示
-   * @param {Object} options 传入一个对象为配置项,其中:
-   * @param {Boolean} showClose 是否显示可手动关闭的 x 于提示框右侧,默认 false
-   * @param {Boolean} center 消息提示内容是否居中,默认 true
-   * @param {String} msg 消息提示的内容
-   * @param {String} type 消息提示的类型,可选值为 ['success(成功)','warning(警告)','error(错误)',或者直接传入空字符串],默认 error
-   */
-  showMsg(options) {
-    
-    ElMessage({
-      showClose: (options.showClose == true || options.showClose == false) ? options.showClose : false,
-      center: (options.center == true || options.center == false) ? options.center : true,
-      message: options.msg,
-      type: (options.type || options.type === '') ? options.type : 'error'
-    });
-  },
-
-  /**
-   * 显示防穿透点击 loading 蒙版
-   * @param {Objectr} opt 传入一个对象为配置项,其中:
-   * @param {String} target 此蒙版需要绑定的 DOM 标签 ID 或者 CLASS 或者 TAGNAME,默认绑在 body 上
-   * @param {Boolean} body 是否插入蒙版至 boyd 上,默认 true
-   * @param {Boolean} fullscreen 蒙版是否全屏蒙住整个 html 页面,默认 true
-   * @param {Boolean} lock 蒙版出现时,是否锁定屏幕滚动,默认 false
-   * @param {String} text 蒙版上显示的提示文本
-   * @param {String} background 蒙版的背景颜色,写死 50% 透明度的纯黑色
-   */
-  showLoading(opt) {
-    let options = opt || {};
-    loadingStatus = ElLoading.service({
-      target: options.target || 'body',
-      body: (options.body == true || options.body == false) ? options.body : false,
-      fullscreen: (options.fullscreen == true || options.fullscreen == false) ? options.fullscreen : true,
-      lock: (options.lock == true || options.lock == false) ? options.lock : false,
-      text: options.text || '请稍等...',
-      background: 'rgba(0,0,0,.5)',
-    });
-  },
-
-  /**
-   * 获取标签上的自定义属性
-   * @param {any} node 传入 字符串 或 标准DOM对象 或 jQuery DOM对象 ,函数自动判断传入的类型并返回其 dataset 属性。
-   */
-  getCurrentData(node) {
-    // 如果传入的是 jQuery 对象
-    if (window.jQuery && node instanceof jQuery) {
-      return node[0].dataset;
-    } else {
-      // 判断传入的是否是标准 DOM 对象
-      let isDom = (typeof node === 'object') ?
-        function (obj) {
-          return obj instanceof HTMLElement;
-        } :
-        function (obj) {
-          return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';
-        };
-
-      // 如果是标准 DOM 对象,输出 dataset
-      if (isDom(node)) {
-        return node.dataset;
-      } else {
-        // 如果是不是,则表示传入的是字符串,根据字符串取 DOM 后输出 dataset
-        let dom = document.querySelector(node);
-        return dom.dataset;
-      }
-    }
-  },
-
-  /**
-   * 关闭loading
-   */
-  closeLoading() {
-    loadingStatus.close();
-  },
-
-  /**
-   * 深拷贝 json 数组
-   * @param {Array} jsonArray 传入 Json 数组,返回一个指向新指针拷贝份数据
-   */
-  deepCopy(jsonArray) {
-    return JSON.parse(JSON.stringify(jsonArray));
-  },
-
-  /**
-   * 根据后端返回的 ID 遍历树形结构包装组件编辑用数据函数
-   * @param {String} key 需要找到的 ID
-   * @param {Array} treeData 树形 Array
-   */
-  getTreeDeepArr(key, treeData) {
-
-    let arr = []; // 在递归时操作的数组
-    let returnArr = []; // 存放结果的数组
-    let depth = 0; // 定义全局层级
-
-    // 定义递归函数
-    function childrenEach(childrenData, depthN) {
-
-      for (var j = 0; j < childrenData.length; j++) {
-
-        depth = depthN; // 将执行的层级赋值 到 全局层级
-        arr[depthN] = (childrenData[j].id);
-
-        if (childrenData[j].id == key) {
-
-          returnArr = arr.slice(0, depthN + 1); //将目前匹配的数组,截断并保存到结果数组
-          break;
-
-        } else {
-
-          if (childrenData[j].children) {
-
-            depth++;
-            childrenEach(childrenData[j].children, depth);
-
-          }
-
-        }
-
-      }
-
-      return returnArr;
-
-    }
-
-    return childrenEach(treeData, depth);
-
-  },
-
-  /**
-   * 获取数据的类型
-   * @param {any} options 传入一个数据,返回其类型 (object, array, string, number等)
-   */
-  getType(options) {
-    return Object.prototype.toString.call(options).slice(8, Object.prototype.toString.call(options).length - 1).toLowerCase();
-  },
-
-  /**
-   * 控制页面滚动到指定位置
-   * @param {Object} options 传入一个配置项,其中:
-   * @param {String} el 需要滚动的 DOM 元素选择器,可以为 CLASS 或 ID
-   * @param {Number} scrollTop 需要滚动到顶部的位置,数值越低滚动的越靠近顶部,默认 0
-   * @param {Number} scrollLeft 需要滚动到顶部的位置,数值越低滚动的越靠近顶部,默认 0
-   * @param {Number} speed 滚动到指定位置需要的时间 (动画时间),默认 200
-   * @param {Function} success 滚动执行完毕后的回调函数
-   */
-  scrollTo(options) {
-    if (!options || !options.el) {
-      this.showMsg({
-        msg: 'scrollTo() 方法需要传入 el 属性'
-      });
-      return;
-    }
-    if ($(options.el)[0] && ($(options.el)[0].scrollHeight > (window.innerHeight || document.documentElement.clientHeight))) {
-      $(options.el).animate({
-        scrollTop: options.scrollTop || 0,
-        scrollLeft: options.scrollLeft || 0,
-      }, options.speed || 200, () => {
-        options.success && options.success();
-      });
-    } else {
-      options.success && options.success();
-    }
-  },
-
-  /**
-   * JS 触发全屏功能
-   */
-  requestFullscreen() {
-    //全屏
-    const docElm = document.documentElement;
-    //W3C
-    if (docElm.requestFullscreen) {
-      docElm.requestFullscreen();
-    }
-
-    //FireFox
-    else if (docElm.mozRequestFullScreen) {
-      docElm.mozRequestFullScreen();
-    }
-
-    //Chrome等
-    else if (docElm.webkitRequestFullScreen) {
-      docElm.webkitRequestFullScreen();
-    }
-
-    //IE11
-    else if (docElm.msRequestFullscreen) {
-      docElm.msRequestFullscreen();
-    }
-  },
-
-  /**
-   * 颜色进制转换  16 <--> 10 互转
-   * @param {String} colorStr 传入一个颜色字符串, 16进制 或者 10进制 ,返回转换后的结果,例:传入 #1890ff ,返回 rgb(24, 144, 255),反之亦然
-   */
-  replaceColor(colorStr) {
-    if (!colorStr) return '';
-
-    let colorString = colorStr.replace(/#|rgb|\(|\)|\|;|\s+/g, "");
-
-    if (colorString.indexOf(",") === -1) {
-      let color10 = [];
-      for (let i = 0; i < colorString.length; i++) {
-        if (!((i + 1) % 2)) {
-          color10.push(parseInt((colorString[i - 1] + colorString[i]), 16));
-        }
-      }
-      return "rgb(" + color10.toString() + ")";
-    } else {
-      let colorArray = colorString.split(',');
-      let color16 = '';
-      colorArray.forEach(ele => {
-        color16 += (parseInt(ele).toString(16));
-      });
-      return "#" + color16;
-    }
-  },
-
-  /**
-   * 生成指定范围内的随机数
-   * @param {Int} minNum 范围下限
-   * @param {Int} maxNum 范围上限
-   * @returns 
-   */
-  randomNum(minNum, maxNum) {
-    switch (arguments.length) {
-      case 1:
-        return parseInt(Math.random() * minNum + 1, 10);
-      case 2:
-        return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
-      default:
-        return 0;
-    }
-  },
-
-  // 正则表达式
-  regs: {
-    // 是否为手机号
-    isPhone: /^1(3|4|5|6|7|8|9)\d{9}$/,
-    // 是否为合法 15 或 18 位身份证号
-    isIdentityCard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/,
-    // 是否是邮箱
-    isMail: /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/,
-    // 是否是数字
-    isNumber: /^(-?\d+)(\.\d+)?$/
-  },
-
-  // elementUI 自定义表单效验规则
-  elCkeck: {
-    isNumber(rule, value, callback) {
-      if (value === '') {
-        callback(new Error('该值不可为空'));
-      } else if (!/^(-?\d+)(\.\d+)?$/.test(value)) {
-        callback(new Error('输入有误,仅支持输入数字'));
-      } else {
-        callback();
-      }
-    }
-  }
-}

+ 0 - 11
src/utils/config.js

@@ -1,11 +0,0 @@
-export const config = {
-    shardingUrl:"192.168.10.18:8075",// 报警地址
-    calcUrl:"192.168.10.18:8099",// 大后台地址
-    adapterUrl:"192.168.10.18:8011",// 数据适配器地址
-};
-
-// export const config = {
-//     shardingUrl:"18.6.30.53:8075",// 报警地址
-//     calcUrl:"18.6.30.63:8099",// 大后台地址
-//     adapterUrl:"18.6.30.63:8011",// 数据适配器地址
-// };

+ 0 - 419
src/utils/warningInfo.js

@@ -1,419 +0,0 @@
-export default class warningInfo {
-    warning =[
-        {"SNAPID":"1","COUNT":"35","TIME":"1057.617","WINDTURBINEID":"XG01_11","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"2","COUNT":"163","TIME":"748.783","WINDTURBINEID":"NG01_01","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"3","COUNT":"70","TIME":"639.417","WINDTURBINEID":"NG01_87","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"4","COUNT":"242","TIME":"627.867","WINDTURBINEID":"SG01_101","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"5","COUNT":"137","TIME":"622.933","WINDTURBINEID":"MG01_42","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"6","COUNT":"369","TIME":"590.8","WINDTURBINEID":"MG01_43","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"7","COUNT":"140","TIME":"584.617","WINDTURBINEID":"NG01_42","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"8","COUNT":"126","TIME":"536.833","WINDTURBINEID":"XG01_30","ALERTTEXT":"三相电流不平衡","CATEGORY":"1"}
-        ,
-        {"SNAPID":"9","COUNT":"1","TIME":"5.25","WINDTURBINEID":"NG01_88","ALERTTEXT":"主轴温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"10","COUNT":"1","TIME":"5.25","WINDTURBINEID":"XG01_31","ALERTTEXT":"主轴温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"11","COUNT":"1","TIME":"5.25","WINDTURBINEID":"NG01_12","ALERTTEXT":"主轴温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"12","COUNT":"1","TIME":"5.25","WINDTURBINEID":"NG01_85","ALERTTEXT":"主轴温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"13","COUNT":"1","TIME":"5.25","WINDTURBINEID":"NG01_01","ALERTTEXT":"主轴温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"14","COUNT":"15","TIME":"955.75","WINDTURBINEID":"XG01_29","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"15","COUNT":"15","TIME":"900.55","WINDTURBINEID":"XG01_30","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"16","COUNT":"18","TIME":"858.033","WINDTURBINEID":"SG01_75","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"17","COUNT":"38","TIME":"850.3","WINDTURBINEID":"SG01_95","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"18","COUNT":"14","TIME":"836.05","WINDTURBINEID":"SG01_67","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"19","COUNT":"12","TIME":"829.35","WINDTURBINEID":"XG01_28","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"20","COUNT":"17","TIME":"825.15","WINDTURBINEID":"SG01_72","ALERTTEXT":"主轴温度温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"21","COUNT":"9","TIME":"154.517","WINDTURBINEID":"SG01_71","ALERTTEXT":"主轴温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"22","COUNT":"1","TIME":"1.4","WINDTURBINEID":"SG01_71","ALERTTEXT":"主轴齿轮箱侧温度传感器异常值","CATEGORY":"1"}
-        ,
-        {"SNAPID":"23","COUNT":"34","TIME":"1073.15","WINDTURBINEID":"QG01_71","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"24","COUNT":"36","TIME":"1061.417","WINDTURBINEID":"QG01_70","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"25","COUNT":"33","TIME":"1056.85","WINDTURBINEID":"QG01_75","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"26","COUNT":"34","TIME":"1046.15","WINDTURBINEID":"QG01_82","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"27","COUNT":"33","TIME":"1045.117","WINDTURBINEID":"QG01_67","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"28","COUNT":"36","TIME":"1023.117","WINDTURBINEID":"QG01_81","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"29","COUNT":"35","TIME":"1021.033","WINDTURBINEID":"QG01_86","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"30","COUNT":"36","TIME":"1015.933","WINDTURBINEID":"QG01_77","ALERTTEXT":"停机收浆超时","CATEGORY":"2"}
-        ,
-        {"SNAPID":"31","COUNT":"26","TIME":"850.133","WINDTURBINEID":"NG01_15","ALERTTEXT":"单机发电机U2绕组温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"32","COUNT":"39","TIME":"960.167","WINDTURBINEID":"NG01_15","ALERTTEXT":"单机发电机U2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"33","COUNT":"7","TIME":"8.917","WINDTURBINEID":"MG01_13","ALERTTEXT":"单机发电机U2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"34","COUNT":"22","TIME":"67.733","WINDTURBINEID":"MG01_17","ALERTTEXT":"单机发电机V2绕组温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"35","COUNT":"20","TIME":"1069.233","WINDTURBINEID":"NG01_73","ALERTTEXT":"单机发电机V2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"36","COUNT":"34","TIME":"476.533","WINDTURBINEID":"MG01_17","ALERTTEXT":"单机发电机V2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"37","COUNT":"21","TIME":"1063.15","WINDTURBINEID":"NG01_73","ALERTTEXT":"单机发电机V2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"38","COUNT":"40","TIME":"437.183","WINDTURBINEID":"MG01_17","ALERTTEXT":"单机发电机V2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"39","COUNT":"51","TIME":"476.3","WINDTURBINEID":"SG01_26","ALERTTEXT":"单机发电机W2绕组温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"40","COUNT":"33","TIME":"315.733","WINDTURBINEID":"NG01_07","ALERTTEXT":"单机发电机W2绕组温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"41","COUNT":"45","TIME":"132.017","WINDTURBINEID":"NG01_73","ALERTTEXT":"单机发电机W2绕组温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"42","COUNT":"33","TIME":"486","WINDTURBINEID":"SG01_26","ALERTTEXT":"单机发电机W2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"43","COUNT":"13","TIME":"462.183","WINDTURBINEID":"SG01_31","ALERTTEXT":"单机发电机W2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"44","COUNT":"107","TIME":"448.767","WINDTURBINEID":"NG01_07","ALERTTEXT":"单机发电机W2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"45","COUNT":"75","TIME":"400.95","WINDTURBINEID":"NG01_73","ALERTTEXT":"单机发电机W2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"46","COUNT":"31","TIME":"171.75","WINDTURBINEID":"NG01_05","ALERTTEXT":"单机发电机W2绕组温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"47","COUNT":"33","TIME":"482.1","WINDTURBINEID":"SG01_26","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"48","COUNT":"14","TIME":"449.267","WINDTURBINEID":"SG01_31","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"49","COUNT":"108","TIME":"436.333","WINDTURBINEID":"NG01_07","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"50","COUNT":"74","TIME":"383.517","WINDTURBINEID":"NG01_73","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"51","COUNT":"30","TIME":"122.85","WINDTURBINEID":"NG01_05","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"52","COUNT":"1","TIME":"1.4","WINDTURBINEID":"SG01_79","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"53","COUNT":"1","TIME":"1.217","WINDTURBINEID":"SG01_70","ALERTTEXT":"单机发电机W2绕组超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"54","COUNT":"1","TIME":"73.083","WINDTURBINEID":"SG01_94","ALERTTEXT":"单机发电机轴a温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"55","COUNT":"1","TIME":"26.85","WINDTURBINEID":"SG01_30","ALERTTEXT":"单机发电机轴a温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"56","COUNT":"9","TIME":"153.8","WINDTURBINEID":"SG01_71","ALERTTEXT":"单机发电机轴b温度超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"57","COUNT":"1","TIME":"42.983","WINDTURBINEID":"SG01_15","ALERTTEXT":"单机发电机轴b温度预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"58","COUNT":"18","TIME":"36.767","WINDTURBINEID":"NG01_29","ALERTTEXT":"单机变桨电池柜温度1温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"59","COUNT":"1","TIME":"1.7","WINDTURBINEID":"SG01_17","ALERTTEXT":"单机变桨电池柜温度2预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"60","COUNT":"263","TIME":"85.617","WINDTURBINEID":"NG01_11","ALERTTEXT":"单机变桨电池柜温度3温度传感器异常值","CATEGORY":"2"}
-        ,
-        {"SNAPID":"61","COUNT":"298","TIME":"98.25","WINDTURBINEID":"NG01_11","ALERTTEXT":"单机变桨电池柜温度3超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"62","COUNT":"13","TIME":"716.05","WINDTURBINEID":"NG01_02","ALERTTEXT":"单机变桨电池柜温度3预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"63","COUNT":"2","TIME":"75.2","WINDTURBINEID":"SG01_26","ALERTTEXT":"单机变桨电池柜温度3预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"64","COUNT":"2","TIME":"11.217","WINDTURBINEID":"SG01_17","ALERTTEXT":"单机变桨电池柜温度3预警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"65","COUNT":"367","TIME":"1143","WINDTURBINEID":"NG01_05","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"66","COUNT":"432","TIME":"1136.383","WINDTURBINEID":"NG01_02","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"67","COUNT":"23","TIME":"954.583","WINDTURBINEID":"NG01_18","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"68","COUNT":"923","TIME":"902.1","WINDTURBINEID":"NG01_37","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"69","COUNT":"16","TIME":"887.617","WINDTURBINEID":"XG01_41","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"70","COUNT":"379","TIME":"341.567","WINDTURBINEID":"SG01_47","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"71","COUNT":"818","TIME":"334.3","WINDTURBINEID":"NG01_33","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"72","COUNT":"399","TIME":"317.85","WINDTURBINEID":"SG01_45","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"73","COUNT":"355","TIME":"310.467","WINDTURBINEID":"SG01_50","ALERTTEXT":"单机风向标故障","CATEGORY":"2"}
-        ,
-        {"SNAPID":"74","COUNT":"9","TIME":"154.15","WINDTURBINEID":"SG01_71","ALERTTEXT":"单机齿轮箱油温超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"75","COUNT":"2","TIME":"1.683","WINDTURBINEID":"SG01_25","ALERTTEXT":"单机齿轮箱油温超限报警","CATEGORY":"1"}
-        ,
-        {"SNAPID":"76","COUNT":"13","TIME":"91.167","WINDTURBINEID":"QG01_75","ALERTTEXT":"发电机转速超速","CATEGORY":"1"}
-        ,
-        {"SNAPID":"77","COUNT":"10","TIME":"80.05","WINDTURBINEID":"QG01_79","ALERTTEXT":"发电机转速超速","CATEGORY":"1"}
-        ,
-        {"SNAPID":"78","COUNT":"8","TIME":"76.15","WINDTURBINEID":"QG01_76","ALERTTEXT":"发电机转速超速","CATEGORY":"1"}
-        ,
-        {"SNAPID":"79","COUNT":"6","TIME":"73.933","WINDTURBINEID":"QG01_78","ALERTTEXT":"发电机转速超速","CATEGORY":"1"}
-        ,
-        {"SNAPID":"80","COUNT":"14","TIME":"73.4","WINDTURBINEID":"QG01_73","ALERTTEXT":"发电机转速超速","CATEGORY":"1"}
-        ,
-        {"SNAPID":"81","COUNT":"11","TIME":"799.283","WINDTURBINEID":"NG01_45","ALERTTEXT":"发电机轴A损坏或碳刷室温度过高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"82","COUNT":"11","TIME":"598.717","WINDTURBINEID":"NG01_33","ALERTTEXT":"发电机轴A损坏或碳刷室温度过高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"83","COUNT":"14","TIME":"465.75","WINDTURBINEID":"SG01_116","ALERTTEXT":"发电机轴A损坏或碳刷室温度过高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"84","COUNT":"14","TIME":"438.967","WINDTURBINEID":"NG01_46","ALERTTEXT":"发电机轴A损坏或碳刷室温度过高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"85","COUNT":"6","TIME":"419.033","WINDTURBINEID":"NG01_20","ALERTTEXT":"发电机轴A损坏或碳刷室温度过高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"86","COUNT":"13","TIME":"413.517","WINDTURBINEID":"NG01_42","ALERTTEXT":"发电机轴A损坏或碳刷室温度过高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"87","COUNT":"3","TIME":"5.267","WINDTURBINEID":"SG01_30","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"88","COUNT":"1","TIME":"4.617","WINDTURBINEID":"SG01_05","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"89","COUNT":"1","TIME":"4.617","WINDTURBINEID":"SG01_13","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"90","COUNT":"1","TIME":"4.617","WINDTURBINEID":"SG01_18","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"91","COUNT":"1","TIME":"4.617","WINDTURBINEID":"SG01_32","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"92","COUNT":"1","TIME":"4.617","WINDTURBINEID":"SG01_14","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"93","COUNT":"1","TIME":"4.617","WINDTURBINEID":"SG01_04","ALERTTEXT":"发电机轴a每分钟温升超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"94","COUNT":"5","TIME":"119.283","WINDTURBINEID":"NG01_01","ALERTTEXT":"发电机轴承温升大于40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"95","COUNT":"2","TIME":"89.4","WINDTURBINEID":"SG01_15","ALERTTEXT":"发电机轴承温升大于40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"96","COUNT":"1","TIME":"81.217","WINDTURBINEID":"SG01_30","ALERTTEXT":"发电机轴承温升大于40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"97","COUNT":"22","TIME":"26.933","WINDTURBINEID":"NG01_01","ALERTTEXT":"发电机轴承温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"98","COUNT":"1","TIME":"11","WINDTURBINEID":"NG01_25","ALERTTEXT":"发电机轴承温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"99","COUNT":"1","TIME":"10.283","WINDTURBINEID":"NG01_76","ALERTTEXT":"发电机轴承温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"100","COUNT":"2","TIME":"9.467","WINDTURBINEID":"NG01_05","ALERTTEXT":"发电机轴承温升速度大于1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"101","COUNT":"2","TIME":"77.067","WINDTURBINEID":"SG01_15","ALERTTEXT":"发电机轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"102","COUNT":"1","TIME":"66.133","WINDTURBINEID":"SG01_30","ALERTTEXT":"发电机轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"103","COUNT":"3","TIME":"43.65","WINDTURBINEID":"SG01_29","ALERTTEXT":"发电机轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"104","COUNT":"1","TIME":"1.733","WINDTURBINEID":"SG01_07","ALERTTEXT":"发电机轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"105","COUNT":"2","TIME":"253","WINDTURBINEID":"SG01_71","ALERTTEXT":"变桨电容电压低","CATEGORY":"1"}
-        ,
-        {"SNAPID":"106","COUNT":"1","TIME":"1.167","WINDTURBINEID":"NG01_06","ALERTTEXT":"变桨电容电压低","CATEGORY":"1"}
-        ,
-        {"SNAPID":"107","COUNT":"2","TIME":"252.767","WINDTURBINEID":"SG01_71","ALERTTEXT":"变桨电容电压高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"108","COUNT":"1","TIME":"1","WINDTURBINEID":"SG01_84","ALERTTEXT":"变桨电容电压高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"109","COUNT":"9","TIME":"1235.967","WINDTURBINEID":"MG01_03","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"110","COUNT":"13","TIME":"1217.117","WINDTURBINEID":"MG01_04","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"111","COUNT":"13","TIME":"1199.65","WINDTURBINEID":"MG01_05","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"112","COUNT":"9","TIME":"1156.35","WINDTURBINEID":"MG01_23","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"113","COUNT":"12","TIME":"1156.183","WINDTURBINEID":"MG01_15","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"114","COUNT":"8","TIME":"1155.367","WINDTURBINEID":"MG01_02","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"115","COUNT":"9","TIME":"1151.533","WINDTURBINEID":"MG01_25","ALERTTEXT":"变桨通信不良","CATEGORY":"2"}
-        ,
-        {"SNAPID":"116","COUNT":"1","TIME":"1.45","WINDTURBINEID":"SG01_20","ALERTTEXT":"叶轮转速超速","CATEGORY":"1"}
-        ,
-        {"SNAPID":"117","COUNT":"1","TIME":"1.4","WINDTURBINEID":"SG01_71","ALERTTEXT":"夏季单机齿轮箱油温温度传感器异常值","CATEGORY":"1"}
-        ,
-        {"SNAPID":"118","COUNT":"1","TIME":"1.217","WINDTURBINEID":"SG01_30","ALERTTEXT":"大风引起震动","CATEGORY":"1"}
-        ,
-        {"SNAPID":"119","COUNT":"271","TIME":"1100.55","WINDTURBINEID":"MG01_07","ALERTTEXT":"断轴或联轴器打滑","CATEGORY":"2"}
-        ,
-        {"SNAPID":"120","COUNT":"299","TIME":"1032.717","WINDTURBINEID":"SG01_30","ALERTTEXT":"断轴或联轴器打滑","CATEGORY":"2"}
-        ,
-        {"SNAPID":"121","COUNT":"701","TIME":"755.233","WINDTURBINEID":"SG01_66","ALERTTEXT":"断轴或联轴器打滑","CATEGORY":"2"}
-        ,
-        {"SNAPID":"122","COUNT":"654","TIME":"722.317","WINDTURBINEID":"XG01_29","ALERTTEXT":"断轴或联轴器打滑","CATEGORY":"2"}
-        ,
-        {"SNAPID":"123","COUNT":"343","TIME":"705.417","WINDTURBINEID":"QG01_79","ALERTTEXT":"断轴或联轴器打滑","CATEGORY":"2"}
-        ,
-        {"SNAPID":"124","COUNT":"1","TIME":"1.483","WINDTURBINEID":"SG01_26","ALERTTEXT":"机端过电压","CATEGORY":"2"}
-        ,
-        {"SNAPID":"125","COUNT":"11","TIME":"5.017","WINDTURBINEID":"NG01_44","ALERTTEXT":"机组逆功率","CATEGORY":"2"}
-        ,
-        {"SNAPID":"126","COUNT":"10","TIME":"3.667","WINDTURBINEID":"MG01_21","ALERTTEXT":"机组逆功率","CATEGORY":"2"}
-        ,
-        {"SNAPID":"127","COUNT":"2","TIME":"2.233","WINDTURBINEID":"NG01_37","ALERTTEXT":"机组逆功率","CATEGORY":"2"}
-        ,
-        {"SNAPID":"128","COUNT":"3","TIME":"2","WINDTURBINEID":"NG01_96","ALERTTEXT":"机组逆功率","CATEGORY":"2"}
-        ,
-        {"SNAPID":"129","COUNT":"8","TIME":"153.583","WINDTURBINEID":"SG01_71","ALERTTEXT":"机舱温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"130","COUNT":"12","TIME":"32.683","WINDTURBINEID":"SG01_79","ALERTTEXT":"机舱温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"131","COUNT":"225","TIME":"81.35","WINDTURBINEID":"NG01_85","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"132","COUNT":"102","TIME":"31.733","WINDTURBINEID":"XG01_10","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"133","COUNT":"74","TIME":"28.95","WINDTURBINEID":"XG01_19","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"134","COUNT":"92","TIME":"28.883","WINDTURBINEID":"NG01_78","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"135","COUNT":"64","TIME":"24.15","WINDTURBINEID":"SG01_01","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"136","COUNT":"63","TIME":"23.983","WINDTURBINEID":"XG01_25","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"137","COUNT":"63","TIME":"23.983","WINDTURBINEID":"XG01_25","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"138","COUNT":"63","TIME":"22.55","WINDTURBINEID":"SG01_19","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"139","COUNT":"63","TIME":"21.25","WINDTURBINEID":"XG01_08","ALERTTEXT":"机舱震动幅度超限","CATEGORY":"1"}
-        ,
-        {"SNAPID":"140","COUNT":"2","TIME":"11.183","WINDTURBINEID":"NG01_70","ALERTTEXT":"桨叶角度差","CATEGORY":"1"}
-        ,
-        {"SNAPID":"141","COUNT":"3","TIME":"9.567","WINDTURBINEID":"SG01_71","ALERTTEXT":"桨叶角度差","CATEGORY":"1"}
-        ,
-        {"SNAPID":"142","COUNT":"2","TIME":"8.417","WINDTURBINEID":"NG01_61","ALERTTEXT":"桨叶角度差","CATEGORY":"1"}
-        ,
-        {"SNAPID":"143","COUNT":"2","TIME":"8.1","WINDTURBINEID":"NG01_73","ALERTTEXT":"桨叶角度差","CATEGORY":"1"}
-        ,
-        {"SNAPID":"144","COUNT":"2","TIME":"8.083","WINDTURBINEID":"NG01_78","ALERTTEXT":"桨叶角度差","CATEGORY":"1"}
-        ,
-        {"SNAPID":"145","COUNT":"2","TIME":"7.2","WINDTURBINEID":"NG01_28","ALERTTEXT":"桨叶角度差","CATEGORY":"1"}
-        ,
-        {"SNAPID":"146","COUNT":"16","TIME":"939.983","WINDTURBINEID":"XG01_02","ALERTTEXT":"桨叶角过小","CATEGORY":"1"}
-        ,
-        {"SNAPID":"147","COUNT":"15","TIME":"931.35","WINDTURBINEID":"XG01_09","ALERTTEXT":"桨叶角过小","CATEGORY":"1"}
-        ,
-        {"SNAPID":"148","COUNT":"6","TIME":"879.167","WINDTURBINEID":"XG01_14","ALERTTEXT":"桨叶角过小","CATEGORY":"1"}
-        ,
-        {"SNAPID":"149","COUNT":"14","TIME":"868.917","WINDTURBINEID":"XG01_04","ALERTTEXT":"桨叶角过小","CATEGORY":"1"}
-        ,
-        {"SNAPID":"150","COUNT":"6","TIME":"849.1","WINDTURBINEID":"XG01_15","ALERTTEXT":"桨叶角过小","CATEGORY":"1"}
-        ,
-        {"SNAPID":"151","COUNT":"1","TIME":"103.55","WINDTURBINEID":"SG01_15","ALERTTEXT":"石板泉发电机轴承温度超过70度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"152","COUNT":"1","TIME":"101.083","WINDTURBINEID":"SG01_30","ALERTTEXT":"石板泉发电机轴承温度超过70度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"153","COUNT":"1","TIME":"95.117","WINDTURBINEID":"SG01_29","ALERTTEXT":"石板泉发电机轴承温度超过70度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"154","COUNT":"1","TIME":"59.733","WINDTURBINEID":"SG01_07","ALERTTEXT":"石板泉发电机轴承温度超过70度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"155","COUNT":"113","TIME":"63.85","WINDTURBINEID":"NG01_17","ALERTTEXT":"风机偏航过程震动","CATEGORY":"1"}
-        ,
-        {"SNAPID":"156","COUNT":"22","TIME":"7.05","WINDTURBINEID":"NG01_27","ALERTTEXT":"风机偏航过程震动","CATEGORY":"1"}
-        ,
-        {"SNAPID":"157","COUNT":"16","TIME":"6.3","WINDTURBINEID":"NG01_06","ALERTTEXT":"风机偏航过程震动","CATEGORY":"1"}
-        ,
-        {"SNAPID":"158","COUNT":"15","TIME":"6.05","WINDTURBINEID":"NG01_55","ALERTTEXT":"风机偏航过程震动","CATEGORY":"1"}
-        ,
-        {"SNAPID":"159","COUNT":"15","TIME":"5.367","WINDTURBINEID":"NG01_85","ALERTTEXT":"风机偏航过程震动","CATEGORY":"1"}
-        ,
-        {"SNAPID":"160","COUNT":"5","TIME":"75.95","WINDTURBINEID":"SG01_94","ALERTTEXT":"风机轴a轴b温差大","CATEGORY":"1"}
-        ,
-        {"SNAPID":"161","COUNT":"1","TIME":"1.2","WINDTURBINEID":"SG01_06","ALERTTEXT":"风机轴a轴b温差大","CATEGORY":"1"}
-        ,
-        {"SNAPID":"162","COUNT":"229","TIME":"74.883","WINDTURBINEID":"NG01_22","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"163","COUNT":"51","TIME":"60.333","WINDTURBINEID":"QG01_78","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"164","COUNT":"39","TIME":"59.017","WINDTURBINEID":"QG01_77","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"165","COUNT":"42","TIME":"58.783","WINDTURBINEID":"QG01_77","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"166","COUNT":"44","TIME":"58.333","WINDTURBINEID":"QG01_76","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"167","COUNT":"38","TIME":"57.917","WINDTURBINEID":"QG01_76","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"168","COUNT":"31","TIME":"56.983","WINDTURBINEID":"QG01_79","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"169","COUNT":"37","TIME":"55.767","WINDTURBINEID":"QG01_79","ALERTTEXT":"风速突变","CATEGORY":"1"}
-        ,
-        {"SNAPID":"170","COUNT":"69","TIME":"94.183","WINDTURBINEID":"XG01_21","ALERTTEXT":"齿轮箱油温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"171","COUNT":"2","TIME":"80.2","WINDTURBINEID":"XG01_06","ALERTTEXT":"齿轮箱油温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"172","COUNT":"8","TIME":"39.45","WINDTURBINEID":"XG01_04","ALERTTEXT":"齿轮箱油温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"173","COUNT":"4","TIME":"12.9","WINDTURBINEID":"XG01_18","ALERTTEXT":"齿轮箱油温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"174","COUNT":"2","TIME":"1.65","WINDTURBINEID":"SG01_25","ALERTTEXT":"齿轮箱油温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"175","COUNT":"98","TIME":"717.85","WINDTURBINEID":"XG01_09","ALERTTEXT":"齿轮箱温控阀故障或换热器效率低","CATEGORY":"2"}
-        ,
-        {"SNAPID":"176","COUNT":"145","TIME":"636.117","WINDTURBINEID":"XG01_05","ALERTTEXT":"齿轮箱温控阀故障或换热器效率低","CATEGORY":"2"}
-        ,
-        {"SNAPID":"177","COUNT":"220","TIME":"611.05","WINDTURBINEID":"XG01_01","ALERTTEXT":"齿轮箱温控阀故障或换热器效率低","CATEGORY":"2"}
-        ,
-        {"SNAPID":"178","COUNT":"177","TIME":"552.133","WINDTURBINEID":"XG01_08","ALERTTEXT":"齿轮箱温控阀故障或换热器效率低","CATEGORY":"2"}
-        ,
-        {"SNAPID":"179","COUNT":"127","TIME":"466.717","WINDTURBINEID":"XG01_06","ALERTTEXT":"齿轮箱温控阀故障或换热器效率低","CATEGORY":"2"}
-        ,
-        {"SNAPID":"180","COUNT":"103","TIME":"419.083","WINDTURBINEID":"XG01_13","ALERTTEXT":"齿轮箱温控阀故障或换热器效率低","CATEGORY":"2"}
-        ,
-        {"SNAPID":"181","COUNT":"26","TIME":"838.017","WINDTURBINEID":"XG01_09","ALERTTEXT":"齿轮箱轴承温升超过40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"182","COUNT":"15","TIME":"820.867","WINDTURBINEID":"XG01_25","ALERTTEXT":"齿轮箱轴承温升超过40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"183","COUNT":"17","TIME":"676.2","WINDTURBINEID":"XG01_08","ALERTTEXT":"齿轮箱轴承温升超过40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"184","COUNT":"17","TIME":"658.5","WINDTURBINEID":"XG01_06","ALERTTEXT":"齿轮箱轴承温升超过40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"185","COUNT":"39","TIME":"626.133","WINDTURBINEID":"XG01_12","ALERTTEXT":"齿轮箱轴承温升超过40度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"186","COUNT":"16","TIME":"27.183","WINDTURBINEID":"XG01_04","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"187","COUNT":"25","TIME":"26.8","WINDTURBINEID":"SG01_90","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"188","COUNT":"10","TIME":"26.517","WINDTURBINEID":"MG01_19","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"189","COUNT":"27","TIME":"25.717","WINDTURBINEID":"SG01_103","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"190","COUNT":"18","TIME":"25.467","WINDTURBINEID":"XG01_21","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"191","COUNT":"14","TIME":"25.35","WINDTURBINEID":"MG01_22","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"192","COUNT":"21","TIME":"23.4","WINDTURBINEID":"QG01_79","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"193","COUNT":"16","TIME":"23.317","WINDTURBINEID":"SG01_107","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"194","COUNT":"13","TIME":"21.65","WINDTURBINEID":"SG01_97","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"195","COUNT":"21","TIME":"20.483","WINDTURBINEID":"NG01_01","ALERTTEXT":"齿轮箱轴承温升速度超过1.5","CATEGORY":"1"}
-        ,
-        {"SNAPID":"196","COUNT":"17","TIME":"947.717","WINDTURBINEID":"XG01_25","ALERTTEXT":"齿轮箱轴承温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"197","COUNT":"17","TIME":"947.717","WINDTURBINEID":"XG01_25","ALERTTEXT":"齿轮箱轴承温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"198","COUNT":"14","TIME":"852.633","WINDTURBINEID":"XG01_35","ALERTTEXT":"齿轮箱轴承温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"199","COUNT":"39","TIME":"756.067","WINDTURBINEID":"NG01_89","ALERTTEXT":"齿轮箱轴承温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"200","COUNT":"29","TIME":"615.25","WINDTURBINEID":"XG01_09","ALERTTEXT":"齿轮箱轴承温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"201","COUNT":"26","TIME":"604","WINDTURBINEID":"SG01_90","ALERTTEXT":"齿轮箱轴承温差大于8度","CATEGORY":"1"}
-        ,
-        {"SNAPID":"202","COUNT":"10","TIME":"328.7","WINDTURBINEID":"XG01_21","ALERTTEXT":"齿轮箱轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"203","COUNT":"2","TIME":"80.667","WINDTURBINEID":"XG01_06","ALERTTEXT":"齿轮箱轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"204","COUNT":"1","TIME":"72.733","WINDTURBINEID":"SG01_103","ALERTTEXT":"齿轮箱轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"205","COUNT":"1","TIME":"71.067","WINDTURBINEID":"SG01_97","ALERTTEXT":"齿轮箱轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"206","COUNT":"9","TIME":"60.95","WINDTURBINEID":"XG01_28","ALERTTEXT":"齿轮箱轴承温度高","CATEGORY":"1"}
-        ,
-        {"SNAPID":"207","COUNT":"9","TIME":"154.183","WINDTURBINEID":"SG01_71","ALERTTEXT":"齿轮箱高速轴轴温大于90度","CATEGORY":"1"}
-        
-        ]
-        
-}

+ 28 - 0
src/views/StatusBar.vue

@@ -102,6 +102,8 @@
 </template>
 
 <script>
+import api from "api/index";
+import axios from "axios";
 export default {
   data() {
     return {
@@ -142,9 +144,35 @@ export default {
     this.statusTimer = null;
   },
   created() {
+    // this.ceshi(false,0)
     // this.refreshData()
   },
   methods: {
+    // ceshi(type,index){
+    //   const controller = new AbortController();
+
+    //   axios.get('http://10.83.68.205:8099/api/station/compared', {
+    //     signal: controller.signal
+    //   }).then(function(response) {
+    //     //...
+    //   });
+    //   if(type){
+    //     console.log(111);
+    //     controller.abort()
+    //   }
+        
+    //   setTimeout(() => {
+        
+    //   if(index>=10 && index< 11){
+    //     this.ceshi(true,13)
+    //   }else if(index<10 ){
+    //     index++
+    //     this.ceshi(false,index)
+    //   }else{
+    //     this.ceshi(false,20)
+    //   }
+    //   }, 1000);
+    // },
     appendZero(obj) {
       if (obj < 10) {
         return "0" + obj;