瀏覽代碼

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/router/index.js
wangt 1 年之前
父節點
當前提交
5225700d4c

+ 105 - 22
src/router/index.js

@@ -3,37 +3,120 @@ import VueRouter from 'vue-router'
 import Login from '../views/Login/Login.vue'
 import Table1 from '../views/Articles/index.vue'
 import Fdjh from '../views/fdjh/fdjh.vue'
+import Gznfh1 from '@/views/ydjhdjk/gznfh/index.vue'
+import Gznfh from '@/views/ydjhdjk/gznfh/gznfh.vue'
+import Llx from '@/views/ystjjk/llx/llx.vue'
+import Llx1 from '@/views/ystjjk/llx/index.vue'
+import Dm from '@/views/ystjjk/dm/dm.vue'
+import Dm1 from '@/views/ystjjk/dm/index.vue'
+import Hd from '@/views/sjcjjk/hd/hd.vue'
+import Hd1 from '@/views/sjcjjk/hd/index.vue'
+import Fdgf from '@/views/sjcjjk/fdgf/fdgf.vue'
+import Fdgf1 from '@/views/sjcjjk/fdgf/index.vue'
+import Ptfh from '@/views/sjcjjk/ptfh/ptfh.vue'
+import Ptfh1 from '@/views/sjcjjk/ptfh/index.vue'
+import Gaoznfh from '@/views/sjcjjk/gznfh/gznfh.vue'
+import Gaoznfh1 from '@/views/sjcjjk/gznfh/index.vue'
 import Xtpz from '../views/xtpz/xtpz.vue'
-
 Vue.use(VueRouter)
 
 const routes = [
-  {
-    path: '/xndc',
-    component: () => import('@/views/xndc/index'),
-    hidden: true
-  },
-  {
-    path: '/',
-    name: 'Login',
-    component: Login
-  },
-  {
-    path: '/table1',
-    name: 'Table1',
-    component: Table1
-  },
-  {
-    path: '/fdjh',
-    name: '发电计划',
-    component: Fdjh
-  },
+    {
+        path: '/xndc',
+        component: () => import('@/views/xndc/index'),
+        hidden: true
+    },
+    {
+        path: '/',
+        name: 'Login',
+        component: Login
+    },
+    {
+        path: '/table1',
+        name: 'Table1',
+        component: Table1
+    },
+    {
+        path: '/fdjh',
+        name: '发电计划',
+        component: Fdjh
+    },
+    {
+        path: '/gznfh1',
+        name: '高载能负荷',
+        component: Gznfh1
+    },
+    {
+        path: '/gznfh',
+        name: '高载能负荷',
+        component: Gznfh
+    },
+    {
+        path: '/llx1',
+        name: '联络线',
+        component: Llx1
+    },
+    {
+        path: '/llx',
+        name: '联络线',
+        component: Llx
+    },
+    {
+        path: '/dm1',
+        name: '断面',
+        component: Dm1
+    },
+    {
+        path: '/dm',
+        name: '断面',
+        component: Dm
+    },
+    {
+        path: '/hd1',
+        name: '火电厂',
+        component: Hd1
+    },
+    {
+        path: '/hd',
+        name: '火电厂',
+        component: Hd
+    },
+    {
+        path: '/fdgf1',
+        name: '风电、光伏电站',
+        component: Fdgf1
+    },
+    {
+        path: '/fdgf',
+        name: '风电、光伏电站',
+        component: Fdgf
+    },
+    {
+        path: '/ptfh1',
+        name: '普通负荷',
+        component: Ptfh1
+    },
+    {
+        path: '/ptfh',
+        name: '普通负荷',
+        component: Ptfh
+    },
+    {
+        path: '/gaoznfh1',
+        name: '高载能负荷',
+        component: Gaoznfh1
+    },
+    {
+        path: '/gaoznfh',
+        name: '高载能负荷',
+        component: Gaoznfh
+    },
+
   {
     path: '/xtpz',
     name: '系统配置',
     component: Xtpz
   }
-
 ]
 
 const router = new VueRouter({

+ 30 - 9
src/views/Login/Login.vue

@@ -5,9 +5,9 @@
                 <div class="tab-wrapper">
                     <img :class="flag1? 'active1':'active2'" alt=""
                          src="img/img_2.png" style="display: inline-block;position: absolute;top:50px;">
-                    <div :class="flag1? 'active':''" class="tab1" @click="handleChange">账号登</div>
+                    <div :class="flag1? 'active':''" class="tab1" @click="handleChange">账号登</div>
                     <img alt="" src="./img/split.png" style="display: inline-block;position: absolute;top:-12px;">
-                    <div :class="flag2? 'active':''" class="tab2" @click="handleChange">人脸识别</div>
+                    <div :class="flag2? 'active':''" class="tab2" @click="handleChange1">人脸识别</div>
                 </div>
                 <div v-if="flag1">
                     <div class="input-div">
@@ -16,7 +16,8 @@
                     </div>
                     <div class="input-div">
                         <img alt="" class="password-img" src="./img/password.png">
-                        <el-input v-model="password" class="password" placeholder="请输入登陆密码"></el-input>
+                        <el-input v-model="password" class="password" placeholder="请输入登陆密码"
+                                  show-password></el-input>
                     </div>
                     <div style="text-align: left">
                         <el-checkbox v-model="checked" class="rememberMe">记住密码</el-checkbox>
@@ -84,7 +85,9 @@ export default {
                         localStorage.removeItem("password");
                     }
                     this.$message.success("登录成功")
-                    this.$router.push('/table1');
+                    setTimeout(() => {
+                        this.$router.push('/xndc');
+                    }, 400);
                 }
             }
         },
@@ -96,8 +99,12 @@ export default {
             console.log(tab, event);
         },
         handleChange() {
-            this.flag1 = !this.flag1
-            this.flag2 = !this.flag2
+            this.flag1 = true
+            this.flag2 = false
+        },
+        handleChange1() {
+            this.flag1 = false
+            this.flag2 = true
         }
     }
 }
@@ -138,6 +145,7 @@ export default {
 
   .tab1 {
     margin-right: 33px;
+
   }
 
   .tab1, .tab2 {
@@ -145,7 +153,7 @@ export default {
     font-size: 24px !important;
     font-weight: 1000;
     height: 50px;
-    color: white;
+    color: #c4c4c4;
     display: inline;
 
 
@@ -155,7 +163,10 @@ export default {
   }
 
   .active {
-
+    color: white;
+    background: url('./img/img_3.png') no-repeat;
+    background-position-y: bottom;
+    background-position-x: 50%;
   }
 
   .active1 {
@@ -166,7 +177,6 @@ export default {
     left: 310px;
   }
 
-
   .line {
     width: 2px;
     height: 20px;
@@ -174,6 +184,7 @@ export default {
   }
 }
 
+
 .tab {
   width: 500px;
   height: 603px;
@@ -271,6 +282,16 @@ export default {
   background-image: url("./img/img2.png")
 }
 
+/deep/ .el-input__clear {
+  height: 163px;
+  font-size: 20px;
+}
+
+/deep/ .el-icon-view:before {
+  content: "\e6ce";
+  font-size: 25px;
+}
+
 /deep/ .el-button {
   height: 50px;
   width: 188px;

二進制
src/views/Login/img/img_3.png


+ 83 - 0
src/views/sjcjjk/fdgf/fdgf.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/fdgf1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'fdgf-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>

+ 199 - 0
src/views/sjcjjk/fdgf/index.vue

@@ -0,0 +1,199 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">风电、光伏电站</span>
+            </div>
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="场站名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="实发值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="测量时间"
+                        prop="time">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="数据接收时间"
+                        prop="date">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 83 - 0
src/views/sjcjjk/gznfh/gznfh.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/gaoznfh1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'gznfh-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>

+ 199 - 0
src/views/sjcjjk/gznfh/index.vue

@@ -0,0 +1,199 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">高载能负荷</span>
+            </div>
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="节点名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="预测值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="预测时间"
+                        prop="time">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="数据接收时间"
+                        prop="date">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 83 - 0
src/views/sjcjjk/hd/hd.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/hd1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'hd-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>

+ 199 - 0
src/views/sjcjjk/hd/index.vue

@@ -0,0 +1,199 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">火电厂</span>
+            </div>
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="场站名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="实发值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="测量时间"
+                        prop="time">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="数据接收时间"
+                        prop="date">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 199 - 0
src/views/sjcjjk/ptfh/index.vue

@@ -0,0 +1,199 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">普通负荷</span>
+            </div>
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="节点名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="预测值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="预测时间"
+                        prop="time">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="数据接收时间"
+                        prop="date">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 83 - 0
src/views/sjcjjk/ptfh/ptfh.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/ptfh1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'ptfh-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>

+ 18 - 0
src/views/xndc/index.vue

@@ -19,6 +19,7 @@
           <div class="barTitle">
             风电发电功率
           </div>
+          <RightTop/>
         </div>
       </div>
       <div class="main-card">
@@ -26,6 +27,7 @@
           <div class="barTitle">
             负荷用电功率
           </div>
+          <LeftMiddle/>
         </div>
         <div class="barBox">
           <div class="barTitle">
@@ -36,6 +38,7 @@
           <div class="barTitle">
             光伏发电功率
           </div>
+          <RightMiddle/>
         </div>
       </div>
       <div class="main-card">
@@ -43,6 +46,7 @@
           <div class="barTitle">
             储能发电/用电功率
           </div>
+          <LeftBottom/>
         </div>
         <div class="barBox">
           <div class="barTitle">
@@ -53,6 +57,7 @@
           <div class="barTitle">
             火电发电功率
           </div>
+          <RightBottom/>
         </div>
       </div>
     </div>
@@ -60,7 +65,20 @@
 </template>
 
 <script>
+import LeftMiddle from "./modules/left-middle"
+import LeftBottom from "./modules/left-bottom"
+import RightTop from "./modules/right-top"
+import RightMiddle from "./modules/right-middle"
+import RightBottom from "./modules/right-bottom"
+
 export default {
+  components: {
+    LeftMiddle,
+    LeftBottom,
+    RightTop,
+    RightMiddle,
+    RightBottom
+  }
 }
 </script>
 

+ 263 - 0
src/views/xndc/modules/left-bottom.vue

@@ -0,0 +1,263 @@
+<template>
+  <div class="left_bottom">
+    <Echart
+        :options="options"
+        id="leftBottomChart"
+        class="echarts_top"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import { graphic } from "echarts";
+export default {
+  data() {
+    return {
+      options: {},
+    };
+  },
+  props: {},
+  mounted() {
+    this.getData();
+  },
+  methods: {
+    getData() {
+      this.init({
+        "timePoints": ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00',
+          '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
+          '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
+          '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
+        "jhData": [
+          1060,
+          1020,
+          1000,
+          970,
+          950,
+          980,
+          995,
+          1020,
+          1050,
+          1080,
+          1140,
+          1180,
+          1190,
+          1100,
+          1180,
+          1200,
+          1240,
+          1280,
+          1255,
+          1240,
+          1250,
+          1260,
+          1140,
+          1050
+        ],
+        "sfData": [
+          1100,
+          1085,
+          1060,
+          1032,
+          980,
+          1020,
+          1045,
+          1030,
+          1095,
+          1120,
+          1180,
+          1220,
+          1235
+        ],
+        "ycData": [
+          1160,
+          1120,
+          1100,
+          1070,
+          1050,
+          1080,
+          1095,
+          1120,
+          1150,
+          1180,
+          1240,
+          1300,
+          1330,
+          1200,
+          1280,
+          1300,
+          1340,
+          1380,
+          1355,
+          1340,
+          1350,
+          1360,
+          1240,
+          1150
+        ]
+      })
+    },
+    init(newData) {
+      this.options = {
+        title: {
+          subtext: "MW",
+          left: '5%',
+          top: '5px',
+          // left: 15,// 距离左边位置
+          // top: -10,// 距离上面位置
+          subtextStyle: { // 设置二级标题的样式
+            color: "#efefef"
+          }
+        },
+        tooltip: {
+          trigger: "axis",
+          backgroundColor: "rgba(0,0,0,.6)",
+          borderColor: "rgba(147, 235, 248, .8)",
+          textStyle: {
+            color: "#efefef",
+          },
+        },
+        legend: {
+          textStyle: {
+            color: "#efefef",
+          },
+          itemStyle: {
+            // 去掉图例上的圆圈
+            opacity: 0
+          },
+          top: "20",
+        },
+        grid: {
+          top: '20%',
+          left: '6%',
+          right: '2%',
+          bottom: '3%',
+          containLabel: true
+        },
+        xAxis: {
+          data: newData.timePoints,
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          axisTick: {
+            show: false,
+          },
+        },
+        yAxis: {
+          scale: true,//yAxis 刻度 自适应 最大值/最小值
+          splitLine: {
+            show: true,
+            lineStyle: {
+              color: "#efefef",
+              type: 'dashed'
+            }
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          // // y轴横线
+          // axisTick: {
+          //   show: true
+          // }
+        },
+        series: [
+          {
+            name: "计划值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#f0e62f",
+            },
+            data: newData.jhData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          {
+            name: "实发值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#2ff042",
+            },
+            label: {
+              show: true,
+              position: 'right',
+              textStyle: {
+                fontSize: 16,
+                fontWeight: 1000,
+                color: "#2ff042"
+              },
+              formatter: (params) => {
+                if (newData.sfData.length - 1 == params.dataIndex) {
+                  return params.value
+                } else {
+                  return ""
+                }
+              },
+            },
+            markLine: {
+              // 锁定最后一个元素展示纵向虚线
+              symbol: ['none', 'none'],
+              label: { show: false },
+              data: [{ xAxis: newData.sfData.length - 1 }],
+            },
+            areaStyle: {
+              //右,下,左,上
+              color: new graphic.LinearGradient(
+                  0, 0, 0, 1,
+                  [
+                    {
+                      offset: 0,
+                      color: "rgba(9,243,13,0.74)",
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(9,202,243,.0)",
+                    },
+                  ],
+                  false
+              ),
+            },
+            data: newData.sfData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          // {
+          //   name: "预测值",
+          //   type: "line",
+          //   smooth: true,
+          //   // showAllSymbol: true,
+          //   // symbol: "emptyCircle",
+          //   symbolSize: 0,
+          //   lineStyle: {
+          //     color: "#f0692f",
+          //     type: 'dashed'
+          //   },
+          //   data: newData.ycData,
+          // },
+        ],
+      };
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.left_bottom {
+  width: 100%;
+  height: 100%;
+
+  .echarts_top {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 265 - 0
src/views/xndc/modules/left-middle.vue

@@ -0,0 +1,265 @@
+<template>
+  <div class="left_middle">
+    <Echart
+        :options="options"
+        id="leftMiddleChart"
+        class="echarts_top"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import { graphic } from "echarts";
+export default {
+  data() {
+    return {
+      options: {},
+    };
+  },
+  props: {},
+  mounted() {
+    this.getData();
+  },
+  methods: {
+    getData() {
+      this.init({
+        "timePoints": ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00',
+          '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
+          '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
+          '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
+        "jhData": [
+          1060,
+          1020,
+          1000,
+          970,
+          950,
+          980,
+          995,
+          1020,
+          1050,
+          1080,
+          1140,
+          1180,
+          1190,
+          1100,
+          1180,
+          1200,
+          1240,
+          1280,
+          1255,
+          1240,
+          1250,
+          1260,
+          1140,
+          1050
+        ],
+        "sfData": [
+          1100,
+          1085,
+          1060,
+          1032,
+          980,
+          1020,
+          1045,
+          1030,
+          1095,
+          1120,
+          1180,
+          1220,
+          1235
+        ],
+        "ycData": [
+          1160,
+          1120,
+          1100,
+          1070,
+          1050,
+          1080,
+          1095,
+          1120,
+          1150,
+          1180,
+          1240,
+          1300,
+          1330,
+          1200,
+          1280,
+          1300,
+          1340,
+          1380,
+          1355,
+          1340,
+          1350,
+          1360,
+          1240,
+          1150
+        ]
+      })
+    },
+    init(newData) {
+      this.options = {
+        title: {
+          subtext: "MW",
+          left: '5%',
+          top: '5px',
+          // left: 15,// 距离左边位置
+          // top: -10,// 距离上面位置
+          subtextStyle: { // 设置二级标题的样式
+            color: "#efefef"
+          }
+        },
+        tooltip: {
+          trigger: "axis",
+          backgroundColor: "rgba(0,0,0,.6)",
+          borderColor: "rgba(147, 235, 248, .8)",
+          textStyle: {
+            color: "#efefef",
+          },
+        },
+        legend: {
+          textStyle: {
+            color: "#efefef",
+          },
+          itemStyle: {
+            // 去掉图例上的圆圈
+            opacity: 0
+          },
+          top: "20",
+        },
+        grid: {
+          top: '20%',
+          left: '6%',
+          right: '2%',
+          bottom: '3%',
+          containLabel: true
+        },
+        xAxis: {
+          data: newData.timePoints,
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          axisTick: {
+            show: false,
+          },
+        },
+        yAxis: {
+          scale: true,//yAxis 刻度 自适应 最大值/最小值
+          splitLine: {
+            show: true,
+            lineStyle: {
+              color: "#efefef",
+              type: 'dashed'
+            }
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          // // y轴横线
+          // axisTick: {
+          //   show: true
+          // }
+        },
+        series: [
+          {
+            name: "计划值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#f0e62f",
+            },
+            data: newData.jhData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          {
+            name: "实测值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#2ff042",
+            },
+            label: {
+              show: true,
+              position: 'right',
+              textStyle: {
+                fontSize: 16,
+                fontWeight: 1000,
+                color: "#2ff042"
+              },
+              formatter: (params) => {
+                if (newData.sfData.length - 1 == params.dataIndex) {
+                  return params.value
+                } else {
+                  return ""
+                }
+              },
+            },
+            markLine: {
+              // 锁定最后一个元素展示纵向虚线
+              symbol: ['none', 'none'],
+              label: { show: false },
+              data: [{ xAxis: newData.sfData.length - 1 }],
+            },
+            areaStyle: {
+              //右,下,左,上
+              color: new graphic.LinearGradient(
+                  0, 0, 0, 1,
+                  [
+                    {
+                      offset: 0,
+                      color: "rgba(9,243,13,0.74)",
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(9,202,243,.0)",
+                    },
+                  ],
+                  false
+              ),
+            },
+            data: newData.sfData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          {
+            name: "预测值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            lineStyle: {
+              color: "#f0692f",
+              type: 'dashed'
+            },
+            data: newData.ycData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+        ],
+      };
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.left_middle {
+  width: 100%;
+  height: 100%;
+
+  .echarts_top {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 250 - 0
src/views/xndc/modules/right-bottom.vue

@@ -0,0 +1,250 @@
+<template>
+  <div class="right_bottom">
+    <Echart
+        :options="options"
+        id="rightMiddleChart"
+        class="echarts_top"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import { graphic } from "echarts";
+export default {
+  data() {
+    return {
+      options: {},
+    };
+  },
+  props: {},
+  mounted() {
+    this.getData();
+  },
+  methods: {
+    getData() {
+      this.init({
+        "timePoints": ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00',
+          '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
+          '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
+          '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
+        "jhData": [
+          1060,
+          1020,
+          1000,
+          970,
+          950,
+          980,
+          995,
+          1020,
+          1050,
+          1080,
+          1140,
+          1180,
+          1190,
+          1100,
+          1180,
+          1200,
+          1240,
+          1280,
+          1255,
+          1240,
+          1250,
+          1260,
+          1140,
+          1050
+        ],
+        "sfData": [
+          1100,
+          1085,
+          1060,
+          1032,
+          980,
+          1020,
+          1045,
+          1030,
+          1095,
+          1120,
+          1180,
+          1220,
+          1235
+        ],
+        "ycData": [
+          1160,
+          1120,
+          1100,
+          1070,
+          1050,
+          1080,
+          1095,
+          1120,
+          1150,
+          1180,
+          1240,
+          1300,
+          1330,
+          1200,
+          1280,
+          1300,
+          1340,
+          1380,
+          1355,
+          1340,
+          1350,
+          1360,
+          1240,
+          1150
+        ]
+      })
+    },
+    init(newData) {
+      this.options = {
+        title: {
+          subtext: "MW",
+          left: '5%',
+          top: '5px',
+          // left: 15,// 距离左边位置
+          // top: -10,// 距离上面位置
+          subtextStyle: { // 设置二级标题的样式
+            color: "#efefef"
+          }
+        },
+        tooltip: {
+          trigger: "axis",
+          backgroundColor: "rgba(0,0,0,.6)",
+          borderColor: "rgba(147, 235, 248, .8)",
+          textStyle: {
+            color: "#efefef",
+          },
+        },
+        legend: {
+          textStyle: {
+            color: "#efefef",
+          },
+          itemStyle: {
+            // 去掉图例上的圆圈
+            opacity: 0
+          },
+          top: "20",
+        },
+        grid: {
+          top: '20%',
+          left: '6%',
+          right: '2%',
+          bottom: '3%',
+          containLabel: true
+        },
+        xAxis: {
+          data: newData.timePoints,
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          axisTick: {
+            show: false,
+          },
+        },
+        yAxis: {
+          scale: true,//yAxis 刻度 自适应 最大值/最小值
+          splitLine: {
+            show: true,
+            lineStyle: {
+              color: "#efefef",
+              type: 'dashed'
+            }
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          // // y轴横线
+          // axisTick: {
+          //   show: true
+          // }
+        },
+        series: [
+          {
+            name: "计划值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#f0e62f",
+            },
+            data: newData.jhData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          {
+            name: "实发值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#f0692f",
+            },
+            label: {
+              show: true,
+              position: 'right',
+              textStyle: {
+                fontSize: 16,
+                fontWeight: 1000,
+                color: "#f0862f"
+              },
+              formatter: (params) => {
+                if (newData.sfData.length - 1 == params.dataIndex) {
+                  return params.value
+                } else {
+                  return ""
+                }
+              },
+            },
+            markLine: {
+              // 锁定最后一个元素展示纵向虚线
+              symbol: ['none', 'none'],
+              label: { show: false },
+              data: [{ xAxis: newData.sfData.length - 1 }],
+            },
+            areaStyle: {
+              //右,下,左,上
+              color: new graphic.LinearGradient(
+                  0, 0, 0, 1,
+                  [
+                    {
+                      offset: 0,
+                      color: "rgba(249,128,58,0.9)",
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(9,202,243,.0)",
+                    },
+                  ],
+                  false
+              ),
+            },
+            data: newData.sfData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+        ],
+      };
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.right_bottom {
+  width: 100%;
+  height: 100%;
+
+  .echarts_top {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 265 - 0
src/views/xndc/modules/right-middle.vue

@@ -0,0 +1,265 @@
+<template>
+  <div class="right_middle">
+    <Echart
+        :options="options"
+        id="rightMiddleChart"
+        class="echarts_top"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import { graphic } from "echarts";
+export default {
+  data() {
+    return {
+      options: {},
+    };
+  },
+  props: {},
+  mounted() {
+    this.getData();
+  },
+  methods: {
+    getData() {
+      this.init({
+        "timePoints": ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00',
+          '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
+          '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
+          '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
+        "jhData": [
+          1060,
+          1020,
+          1000,
+          970,
+          950,
+          980,
+          995,
+          1020,
+          1050,
+          1080,
+          1140,
+          1200,
+          1160,
+          1100,
+          1180,
+          1200,
+          1240,
+          1280,
+          1255,
+          1240,
+          1250,
+          1260,
+          1140,
+          1050
+        ],
+        "sfData": [
+          1100,
+          1085,
+          1060,
+          1032,
+          980,
+          1020,
+          1045,
+          1030,
+          1095,
+          1120,
+          1180,
+          1220,
+          1235
+        ],
+        "ycData": [
+          1160,
+          1120,
+          1100,
+          1070,
+          1050,
+          1080,
+          1095,
+          1120,
+          1150,
+          1180,
+          1240,
+          1300,
+          1330,
+          1200,
+          1280,
+          1300,
+          1340,
+          1380,
+          1355,
+          1340,
+          1350,
+          1360,
+          1240,
+          1150
+        ]
+      })
+    },
+    init(newData) {
+      this.options = {
+        title: {
+          subtext: "MW",
+          left: '5%',
+          top: '5px',
+          // left: 15,// 距离左边位置
+          // top: -10,// 距离上面位置
+          subtextStyle: { // 设置二级标题的样式
+            color: "#efefef"
+          }
+        },
+        tooltip: {
+          trigger: "axis",
+          backgroundColor: "rgba(0,0,0,.6)",
+          borderColor: "rgba(147, 235, 248, .8)",
+          textStyle: {
+            color: "#efefef",
+          },
+        },
+        legend: {
+          textStyle: {
+            color: "#efefef",
+          },
+          itemStyle: {
+            // 去掉图例上的圆圈
+            opacity: 0
+          },
+          top: "20",
+        },
+        grid: {
+          top: '20%',
+          left: '6%',
+          right: '2%',
+          bottom: '3%',
+          containLabel: true
+        },
+        xAxis: {
+          data: newData.timePoints,
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          axisTick: {
+            show: false,
+          },
+        },
+        yAxis: {
+          scale: true,//yAxis 刻度 自适应 最大值/最小值
+          splitLine: {
+            show: true,
+            lineStyle: {
+              color: "#efefef",
+              type: 'dashed'
+            }
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          // // y轴横线
+          // axisTick: {
+          //   show: true
+          // }
+        },
+        series: [
+          {
+            name: "计划值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#f0e62f",
+            },
+            data: newData.jhData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          {
+            name: "实发值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#2ff1e7",
+            },
+            label: {
+              show: true,
+              position: 'right',
+              textStyle: {
+                fontSize: 16,
+                fontWeight: 1000,
+                color: "#2ff0bd"
+              },
+              formatter: (params) => {
+                if (newData.sfData.length - 1 == params.dataIndex) {
+                  return params.value
+                } else {
+                  return ""
+                }
+              },
+            },
+            markLine: {
+              // 锁定最后一个元素展示纵向虚线
+              symbol: ['none', 'none'],
+              label: { show: false },
+              data: [{ xAxis: newData.sfData.length - 1 }],
+            },
+            areaStyle: {
+              //右,下,左,上
+              color: new graphic.LinearGradient(
+                  0, 0, 0, 1,
+                  [
+                    {
+                      offset: 0,
+                      color: "rgba(58,249,224,0.85)",
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(9,202,243,.0)",
+                    },
+                  ],
+                  false
+              ),
+            },
+            data: newData.sfData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+          {
+            name: "预测值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            lineStyle: {
+              color: "#f0692f",
+              type: 'dashed'
+            },
+            data: newData.ycData.sort(function () {
+              return Math.random() - 0.5
+            }),
+          },
+        ],
+      };
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.right_middle {
+  width: 100%;
+  height: 100%;
+
+  .echarts_top {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 259 - 0
src/views/xndc/modules/right-top.vue

@@ -0,0 +1,259 @@
+<template>
+  <div class="right_top">
+    <Echart
+        :options="options"
+        id="rightTopChart"
+        class="echarts_top"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import { graphic } from "echarts";
+export default {
+  data() {
+    return {
+      options: {},
+    };
+  },
+  props: {},
+  mounted() {
+    this.getData();
+  },
+  methods: {
+    getData() {
+      this.init({
+        "timePoints": ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00',
+          '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
+          '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
+          '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
+        "jhData": [
+          1060,
+          1020,
+          1000,
+          970,
+          950,
+          980,
+          995,
+          1020,
+          1050,
+          1080,
+          1140,
+          1180,
+          1190,
+          1100,
+          1180,
+          1200,
+          1240,
+          1280,
+          1255,
+          1240,
+          1250,
+          1260,
+          1140,
+          1050
+        ],
+        "scData": [
+          1100,
+          1085,
+          1060,
+          1032,
+          980,
+          1020,
+          1045,
+          1030,
+          1095,
+          1120,
+          1180,
+          1220,
+          1235
+        ],
+        "ycData": [
+          1160,
+          1120,
+          1100,
+          1070,
+          1050,
+          1080,
+          1095,
+          1120,
+          1150,
+          1180,
+          1240,
+          1300,
+          1330,
+          1200,
+          1280,
+          1300,
+          1340,
+          1380,
+          1355,
+          1340,
+          1350,
+          1360,
+          1240,
+          1150
+        ]
+      })
+    },
+    init(newData) {
+      this.options = {
+        title: {
+          subtext: "MW",
+          left: '5%',
+          top: '5px',
+          // left: 15,// 距离左边位置
+          // top: -10,// 距离上面位置
+          subtextStyle: { // 设置二级标题的样式
+            color: "#efefef"
+          }
+        },
+        tooltip: {
+          trigger: "axis",
+          backgroundColor: "rgba(0,0,0,.6)",
+          borderColor: "rgba(147, 235, 248, .8)",
+          textStyle: {
+            color: "#efefef",
+          },
+        },
+        legend: {
+          textStyle: {
+            color: "#efefef",
+          },
+          itemStyle: {
+            // 去掉图例上的圆圈
+            opacity: 0
+          },
+          top: "20",
+        },
+        grid: {
+          top: '20%',
+          left: '6%',
+          right: '2%',
+          bottom: '3%',
+          containLabel: true
+        },
+        xAxis: {
+          data: newData.timePoints,
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          axisTick: {
+            show: false,
+          },
+        },
+        yAxis: {
+          scale: true,//yAxis 刻度 自适应 最大值/最小值
+          splitLine: {
+            show: true,
+            lineStyle: {
+              color: "#efefef",
+              type: 'dashed'
+            }
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#efefef",
+            },
+          },
+          // // y轴横线
+          // axisTick: {
+          //   show: true
+          // }
+        },
+        series: [
+          {
+            name: "计划值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#f0e62f",
+            },
+            data: newData.jhData,
+          },
+          {
+            name: "实测值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            itemStyle: {
+              color: "#2ff042",
+            },
+            label: {
+              show: true,
+              position: 'right',
+              textStyle: {
+                fontSize: 16,
+                fontWeight: 1000,
+                color: "#2ff042"
+              },
+              formatter: (params) => {
+                if (newData.scData.length - 1 == params.dataIndex) {
+                  return params.value
+                } else {
+                  return ""
+                }
+              },
+            },
+            markLine: {
+              // 锁定最后一个元素展示纵向虚线
+              symbol: ['none', 'none'],
+              label: { show: false },
+              data: [{ xAxis: newData.scData.length - 1 }],
+            },
+            areaStyle: {
+              //右,下,左,上
+              color: new graphic.LinearGradient(
+                  0, 0, 0, 1,
+                  [
+                    {
+                      offset: 0,
+                      color: "rgba(9,243,13,0.74)",
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(9,202,243,.0)",
+                    },
+                  ],
+                  false
+              ),
+            },
+            data: newData.scData,
+          },
+          {
+            name: "预测值",
+            type: "line",
+            smooth: true,
+            // showAllSymbol: true,
+            // symbol: "emptyCircle",
+            symbolSize: 0,
+            lineStyle: {
+              color: "#f0692f",
+              type: 'dashed'
+            },
+            data: newData.ycData,
+          },
+        ],
+      };
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.right_top {
+  width: 100%;
+  height: 100%;
+
+  .echarts_top {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 83 - 0
src/views/ydjhdjk/gznfh/gznfh.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/gznfh1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'gznfh-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>

+ 291 - 0
src/views/ydjhdjk/gznfh/index.vue

@@ -0,0 +1,291 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">高载能负荷</span>
+            </div>
+            <!--            <el-row :gutter="20">
+                            <el-form>
+                                <el-col>
+                                    <el-form-item
+                                            label="场站名称:"
+                                            label-width="100px"
+                                            style="font-weight: 700"
+                                    >
+                                        <el-select v-model="form.taskNumber" placeholder="请选择" size="mini">
+                                            <el-option
+                                                    v-for="item in options0"
+                                                    :key="item.value"
+                                                    :label="item.label"
+                                                    :value="item.value">
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col>
+                                    <el-form-item
+                                            label="装机容量(MVA):"
+                                            label-width="150px"
+                                            style="font-weight: 700"
+                                    >
+                                        <el-select v-model="form.taskNumber" placeholder="请选择" size="mini">
+                                            <el-option
+                                                    v-for="item in options2"
+                                                    :key="item.value"
+                                                    :label="item.label"
+                                                    :value="item.value">
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col>
+                                    <el-form-item
+                                            label="是否受控:"
+                                            label-width="100px"
+                                            style="font-weight: 700"
+                                    >
+                                        <el-select v-model="form.taskNumber" placeholder="请选择" size="mini">
+                                            <el-option
+                                                    v-for="item in options"
+                                                    :key="item.value"
+                                                    :label="item.label"
+                                                    :value="item.value">
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col>
+                                    <el-form-item
+                                            label="下发状态:"
+                                            label-width="100px"
+                                            style="font-weight: 700"
+                                    >
+                                        <el-select v-model="form.taskNumber" placeholder="请选择" size="mini">
+                                            <el-option
+                                                    v-for="item in options1"
+                                                    :key="item.value"
+                                                    :label="item.label"
+                                                    :value="item.value">
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col>
+                                    <el-form-item
+                                            label="日期:"
+                                            label-width="60px"
+                                            style="font-weight: 700"
+                                    >
+                                        <el-date-picker
+                                                v-model="form.date"
+                                                placeholder="选择日期"
+                                                size="mini"
+                                                type="date">
+                                        </el-date-picker>
+                                    </el-form-item>
+                                </el-col>
+                            </el-form>
+                        </el-row>-->
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="节点名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="虚拟电厂计划值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="计划时刻"
+                        prop="time">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="执行时刻"
+                        prop="time">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="下发状态"
+                        prop="status">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="下发时间"
+                        prop="date">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 83 - 0
src/views/ystjjk/dm/dm.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/dm1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'dm-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>

+ 209 - 0
src/views/ystjjk/dm/index.vue

@@ -0,0 +1,209 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">断面</span>
+            </div>
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="联络线名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="虚拟电厂计划值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="现货系统计划值"
+                        prop="capacity">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="现货系统偏差值"
+                        prop="capacity">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="实测值"
+                        prop="capacity">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="实测值偏差值"
+                        prop="capacity">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 209 - 0
src/views/ystjjk/llx/index.vue

@@ -0,0 +1,209 @@
+<template>
+    <div class="table-wrapper">
+        <div class="table-box">
+            <div class="title"
+                 style="font-family: AliMaMa;font-size: 30px;font-weight: 1000;text-align: left;height: 40px">
+                <span style="position: absolute;top:-3px;left: 70px">联络线</span>
+            </div>
+            <el-table
+                    :cell-style="{border:0,color:'#fff'}"
+                    :data="tableData"
+                    :header-cell-style="{color:'#fff'}"
+                    :row-style="{backgroundColor:'rgb(4,66,115,0.3)'}"
+                    size="mini"
+                    style="width: 1429px;font-size: 17px;background: none"
+            >
+                <el-table-column
+                        align="center"
+                        label="联络线名称"
+                        prop="stationName"
+                        width="270px"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="虚拟电厂计划值"
+                        prop="capacity"
+                >
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="现货系统计划值"
+                        prop="capacity">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="现货系统偏差值"
+                        prop="capacity">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="实测值"
+                        prop="capacity">
+                </el-table-column>
+                <el-table-column
+                        align="center"
+                        label="实测值偏差值"
+                        prop="capacity">
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: 'Article-Index',
+    data() {
+        return {
+            form: {
+                taskNumber: '',
+                date: '',
+                current: 1,
+                size: 10
+            },
+            tableData: []
+        }
+    },
+    methods: {},
+    mounted() {
+        const tableDataList = require('../../tabledata.json');
+        this.tableData = tableDataList.windDataList
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+@font-face {
+  font-family: AliMaMa;//自定义字体名称
+  src: url("../../Articles/font/AlimamaDaoLiTi.ttf")
+}
+
+body {
+  border: 0;
+  background-image: url(../../Articles/img/bgc.png)
+}
+
+.table-wrapper {
+  width: 1483px;
+  padding-left: 20px;
+
+  .table-box {
+    min-height: 600px;
+    background-size: cover;
+  }
+
+  .title {
+    margin-bottom: 20px;
+    margin-left: 60px;
+    font-size: 18px;
+    color: #fff;
+  }
+
+  /deep/ .el-form-item__label {
+    color: #fff;
+    font-size: 17px;
+  }
+
+  /deep/ .el-input__inner {
+    background-color: rgba(14, 73, 131);
+    border: 1px solid rgb(64, 153, 255);
+    height: 34px;
+    font-size: 17px;
+  }
+
+  /deep/ .el-table__header {
+    background: url(../../Articles/img/bg1.png);
+  }
+
+  /deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
+    background-color: rgb(103, 118, 49) !important
+  }
+
+  /deep/ .el-col {
+    padding: 0;
+    display: inline-block;
+    position: relative;
+  }
+
+  /deep/ .el-col:nth-child(1) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(2) {
+    width: 22%;
+  }
+
+  /deep/ .el-col:nth-child(3) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(4) {
+    width: 19%;
+  }
+
+  /deep/ .el-col:nth-child(5) {
+    width: 15%;
+  }
+
+
+  /deep/ .el-input__inner:nth-child(1) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 176px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 126px;
+  }
+
+  /deep/ .el-input__inner:nth-child(2) {
+    width: 175px;
+  }
+
+  /deep/ .el-icon-arrow-up {
+    transform: rotateZ(0deg);
+
+  }
+
+
+  /deep/ .el-icon-arrow-up:before {
+    content: url(../../Articles/img/xiala2.png);
+  }
+
+  /deep/ .el-input__prefix {
+    right: -60px;
+    padding-top: 3px;
+  }
+
+  /deep/ .el-icon-date:before {
+    content: url(../../Articles/img/riqi.png);
+  }
+
+  /deep/ .el-table__header tr {
+    background: url(../../Articles/img/bg1.png);
+    height: 49px;
+
+  }
+
+  /deep/ .el-table th.el-table__cell {
+    background: none;
+  }
+
+  /deep/ .el-table__body {
+    -webkit-border-vertical-spacing: 13px; // 垂直间距
+  }
+
+  /deep/ .el-form-item__content {
+    text-align: left;
+  }
+
+  /deep/ .el-table, .el-table__expanded-cell {
+    background-color: rgb(1, 40, 81);
+  }
+}
+</style>

+ 83 - 0
src/views/ystjjk/llx/llx.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="page">
+        <iframe class="image_2 pos_2">
+            <img src="../../fdjh/img/fdjh-left.png">
+        </iframe>
+        <div id="iframe1" class="image_3 pos_3" style="">
+            <iframe src="/public#/llx1" style="width: 100%;height: 100%">
+            </iframe>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'llx-name',
+}
+</script>
+
+<style lang="css" scoped>
+.page {
+    background-image: url('../../fdjh/img/fdjh-bj.png');
+    position: absolute;
+    width: 1920px;
+    height: 1080px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.image {
+    width: 100vw;
+    height: 4.5833vw;
+}
+
+iframe {
+    border: 0;
+}
+
+#iframe1 {
+    background-image: url(../../fdjh/img/img.png);
+}
+
+.pos {
+    position: absolute;
+    width: 1920px;
+    height: 88px;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 992px;
+}
+
+.image_2 {
+    width: 23.56rem;
+    height: 56.88rem;
+}
+
+.pos_2 {
+    position: absolute;
+    width: 377px;
+    height: 910px;
+    left: 30px;
+    right: 1513px;
+    top: 142px;
+    bottom: 28px;
+}
+
+.image_3 {
+    width: 91.19rem;
+    height: 56.88rem;
+}
+
+.pos_3 {
+    position: absolute;
+    width: 1479px;
+    height: 910px;
+    left: 408px;
+    right: 33px;
+    top: 142px;
+    bottom: 28px;
+}
+</style>