ソースを参照

首页接口对接、模拟数据创建、页面结构调整、样式调整

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 7 ヶ月 前
コミット
341edf68c8

+ 4 - 4
.env.development

@@ -11,24 +11,24 @@ VUE_APP_TITLE = '页面标题'
 # 马力军
 # VUE_APP_LOGIN_URL = 'http://192.168.2.45:48080'
 # 王波
-VUE_APP_LOGIN_URL = 'http://192.168.0.105:48080'
+VUE_APP_LOGIN_URL = 'http://192.168.0.101:48080'
 
 # 发电能力分析
-VUE_APP_GENERAT_URL = 'http://192.168.0.105:9002'
+VUE_APP_GENERAT_URL = 'http://192.168.0.101:9002'
 # 马力军
 # VUE_APP_GENERAT_URL = 'http://192.168.2.45:9002'
 # 王波
 # VUE_APP_GENERAT_URL = 'http://192.168.2.232:9002'
 
 # 智能报表
-VUE_APP_REPORT_URL = 'http://192.168.0.105:9001'
+VUE_APP_REPORT_URL = 'http://192.168.0.101:9001'
 # 马力军
 # VUE_APP_REPORT_URL = 'http://192.168.2.45:9001'
 # 王波
 # VUE_APP_REPORT_URL = 'http://192.168.2.232:9001'
 
 # 功率预测
-VUE_APP_BASE_URL = 'http://192.168.0.105:8086'
+VUE_APP_BASE_URL = 'http://192.168.0.101:8086'
 # 马力军
 # VUE_APP_BASE_URL = 'http://192.168.2.45:8086'
 # 王波

+ 11 - 8
.env.production

@@ -13,8 +13,9 @@ VUE_APP_TITLE = '页面标题'
 
 # 登录
 # VUE_APP_LOGIN_URL = 'http://123.60.219.66:48080'
-VUE_APP_LOGIN_URL = 'http://192.168.0.105:48080'
-# VUE_APP_LOGIN_URL = 'http://172.16.12.101:48080'
+# VUE_APP_LOGIN_URL = 'http://192.168.0.105:48080'
+# VUE_APP_LOGIN_URL = 'http://10.127.7.241:48080'
+VUE_APP_LOGIN_URL = 'http://172.16.12.101:48080'
 # VUE_APP_LOGIN_URL = 'http://192.168.2.231:48080'
 # VUE_APP_LOGIN_URL = 'http://127.0.0.1:48080'
 
@@ -22,22 +23,24 @@ VUE_APP_LOGIN_URL = 'http://192.168.0.105:48080'
 
 # 发电能力分析
 # VUE_APP_GENERAT_URL = 'http://123.60.219.66:9002'
-VUE_APP_GENERAT_URL = 'http://192.168.0.105:9002'
-# VUE_APP_GENERAT_URL = 'http://172.16.12.101:9002'
+# VUE_APP_GENERAT_URL = 'http://10.127.7.241:9002'
+VUE_APP_GENERAT_URL = 'http://172.16.12.101:9002'
 # VUE_APP_GENERAT_URL = 'http://192.168.2.231:9002'
 # VUE_APP_GENERAT_URL = 'http://127.0.0.1:9002'
 
 # 智能报表
 # VUE_APP_REPORT_URL = 'http://123.60.219.66:9001'
-VUE_APP_REPORT_URL = 'http://192.168.0.105:9001'
-# VUE_APP_REPORT_URL = 'http://172.16.12.101:9001'
+# VUE_APP_REPORT_URL = 'http://192.168.0.105:9001'
+# VUE_APP_REPORT_URL = 'http://10.127.7.241:8083'
+VUE_APP_REPORT_URL = 'http://172.16.12.101:9001'
 # VUE_APP_REPORT_URL = 'http://192.168.2.231:9001'
 # VUE_APP_REPORT_URL = 'http://127.0.0.1:9001'
 
 # 功率预测
 # VUE_APP_BASE_URL = 'http://123.60.219.66:8086'
-VUE_APP_BASE_URL = 'http://192.168.0.105:8086'
-# VUE_APP_BASE_URL = 'http://172.16.12.101:8086'
+# VUE_APP_BASE_URL = 'http://192.168.0.105:8086'
+# VUE_APP_BASE_URL = 'http://10.127.7.241:8086'
+VUE_APP_BASE_URL = 'http://172.16.12.101:8086'
 # VUE_APP_BASE_URL = 'http://192.168.2.231:8086'
 # VUE_APP_BASE_URL = 'http://127.0.0.1:8086'
 

+ 2 - 0
components.d.ts

@@ -20,6 +20,8 @@ declare module 'vue' {
     EchartsPie: typeof import('./src/components/homeComponent/echartsPie.vue')['default']
     EchartsPie2: typeof import('./src/components/homeComponent/echartsPie2.vue')['default']
     ElButton: typeof import('element-plus/es')['ElButton']
+    ElCarousel: typeof import('element-plus/es')['ElCarousel']
+    ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
     ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElCol: typeof import('element-plus/es')['ElCol']

+ 2 - 2
public/static/config/modeConfig.js

@@ -18,8 +18,8 @@ const tilesMaxLevel = 18;
 // 切换模块时是否提示当前模块名称(用于对内介绍项目时便捷显示模块名称)
 const showModuleName = 0;
 
-const reportBaseUrl = "http://10.127.7.241:8083";
-// const reportBaseUrl = "http://172.16.12.101:8083";
+// const reportBaseUrl = "http://10.127.7.241:8083";
+const reportBaseUrl = "http://172.16.12.101:8083";
 
 // if (localTest) {
 //     baseURL = "http://192.168.10.8:9002/" // 联机调试 

+ 17 - 4
src/assets/css/eleCss/el-input.less

@@ -18,10 +18,6 @@
                             color: #fff;
                         }
                     }
-
-
-
-
                 }
             }
 
@@ -38,6 +34,23 @@
 
             .el-select {
 
+                .el-select__wrapper{
+                    width: 120px;
+                    background-color: transparent;
+                    color: #fff;
+                    .el-select__selection{
+                        .el-select__selected-item{
+                            .el-tag{
+                                background: transparent;
+                                border: 1px solid #fff;
+                            }
+                            span{
+                                color: #fff;
+                            }
+                        }
+                    }
+                }
+
                 .select-trigger {
                     .el-select__tags .el-tag--info {
                         background-color: transparent;

BIN
src/assets/images/headerCom/lyxs.png


BIN
src/assets/weather/icowater.png


BIN
src/assets/weather/sun.png


+ 0 - 1
src/components/generatingCapacityComponent/tree.vue

@@ -250,7 +250,6 @@ export default {
     },
     funCurrentChange(current, currentNode) {
       this.activeNode = current?.id || "";
-      console.log(111, this.activeNode);
       this.$emit("currentChange", {
         current,
         currentNode,

+ 3 - 1
src/main.js

@@ -9,6 +9,7 @@ import { createApp } from 'vue'
 import App from './App.vue'
 import router from './router'
 import utils from '@/utils/index.js'
+import basicTool from '@/tools/basicTool.js'
 import store from './store'
 import axios from 'axios'
 import ElementPlus from 'element-plus'
@@ -53,10 +54,11 @@ const app = createApp(App)
 for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
   app.component(key, component)
 }
+app.config.globalProperties.BASE = basicTool;
 app.config.globalProperties.$utils = utils;
 app.config.globalProperties.$echarts = echarts;
 app.config.globalProperties.$axios = axios;
 app.config.globalProperties.icoName = icon;
-app.config.globalProperties.reportBaseUrl =  modeConfig?.reportBaseUrl || "";
+app.config.globalProperties.reportBaseUrl = modeConfig?.reportBaseUrl || "";
 app.use(L);
 app.use(store).use(router).use(ElementPlus, { size: 'small', locale: zhCn }).mount('#app')

+ 2 - 1
src/views/generatingCapacity/dataAnalysis/angleAnalysis/index.vue

@@ -12,6 +12,7 @@
           <tree-cop
             :data="treeData"
             :height="treeHeight"
+            :currentNodeKey="currentNodeKey"
             @currentChange="funCurrentChange"
             @refresh="funGetTree"
           >
@@ -126,7 +127,6 @@ const funRepeatMap = (arr, type) => {
         if (!actTreeNode.value && type === "prepare") {
           //判断当且仅有process获取tree时 赋值
           actTreeNode.value = o;
-          
         }
       }
     }
@@ -160,6 +160,7 @@ const funGetTree = async () => {
         child.path.indexOf(child.station + "_") + (child.station + "_").length
       ),
     };
+    currentNodeKey.value = actTreeNode.value?.id || "";
     funExcelChange(obj);
   }
 };

ファイルの差分が大きいため隠しています
+ 1204 - 1038
src/views/generatingCapacity/dataAnalysis/hotAnalysis/index.vue


+ 40 - 9
src/views/generatingCapacity/dataAnalysis/lineAnalysis/index.vue

@@ -416,11 +416,19 @@ const funChartArea = () => {
               valueIndex: 0,
             },
             {
-              xAxis: 10,
+              xAxis: 7,
               valueIndex: 0,
             },
             {
-              xAxis: 12,
+              xAxis: 9,
+              valueIndex: 0,
+            },
+            {
+              xAxis: 11,
+              valueIndex: 0,
+            },
+            {
+              xAxis: 20,
               valueIndex: 0,
             },
             {
@@ -499,7 +507,6 @@ const funChartArea = () => {
           ],
         },
       };
-      console.log(1122, seriesData);
       isChartArea.value = true;
     } else {
       seriesData.value[0] = {
@@ -616,19 +623,31 @@ const funTimeArea = async () => {
           data: [],
         },
         {
-          name: "5~10m风速",
+          name: "5~7m风速",
+          type: "bar",
+          stack: "a",
+          data: [],
+        },
+        {
+          name: "7~9m风速",
+          type: "bar",
+          stack: "a",
+          data: [],
+        },
+        {
+          name: "9~11m风速",
           type: "bar",
           stack: "a",
           data: [],
         },
         {
-          name: "10~12m风速",
+          name: "11~20m风速",
           type: "bar",
           stack: "a",
           data: [],
         },
         {
-          name: "12~25m风速",
+          name: "20~25m风速",
           type: "bar",
           stack: "a",
           data: [],
@@ -642,19 +661,31 @@ const funTimeArea = async () => {
           data: [],
         },
         {
-          name: "5~10m风速",
+          name: "5~7m风速",
+          type: "bar",
+          stack: "a",
+          data: [],
+        },
+        {
+          name: "7~9m风速",
+          type: "bar",
+          stack: "a",
+          data: [],
+        },
+        {
+          name: "9~11m风速",
           type: "bar",
           stack: "a",
           data: [],
         },
         {
-          name: "10~12m风速",
+          name: "11~20m风速",
           type: "bar",
           stack: "a",
           data: [],
         },
         {
-          name: "12~25m风速",
+          name: "20~25m风速",
           type: "bar",
           stack: "a",
           data: [],

+ 18 - 2
src/views/generatingCapacity/dataAnalysis/posAnalysis/components/leafletMap.vue

@@ -38,8 +38,8 @@
         },
         watch: {
             ids(val) {
-                // this.funStationPos(val)
-                this.funStationPosLabel(val)
+                this.funStationPos(val)
+                // this.funStationPosLabel(val)
             },
         },
         mounted() {
@@ -135,6 +135,22 @@
                                     <div class="item">海拔高度:${item.altitude}m</div>
                                 </div>`).addTo(this.map);
 
+                            let latlng = L.latLng(Number(item.latitude), Number(item.longitude));
+                            let c = L.circleMarker(latlng, {
+                                radius: 5,
+                                color: 'transparent',
+                                labelStyle: {
+                                    text: item.aname,
+                                    scale: 1,
+                                    rotation: 0,
+                                    offsetY: 35,
+                                    fillStyle: '#000',
+                                    zIndex: i
+                                },
+                                data: item
+                            }).addTo(this.map);
+                            this.layers.push(c)
+
                             this.ciLayer.addLayer(marker)
                             this.layers.push(marker)
 

ファイルの差分が大きいため隠しています
+ 846 - 752
src/views/generatingCapacity/dataAnalysis/spaceAnalysis/index.vue


+ 168 - 138
src/views/generatingCapacity/dataFilter/prepare/search.vue

@@ -1,147 +1,177 @@
 <template>
-    <div class="seach">
-        <el-form class="generat-seach" :inline="true" :model="queryForm">
-            <el-form-item label="场站" class="!mb-0">
-                <el-select v-model="queryForm.station" class="w-[150px]" @change="funStationChange">
-                    <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="风机" class="!mb-0">
-                <el-select multiple class="w-[150px]" v-model="queryForm.wtIds" @clear="checkAll = false" collapse-tags>
-                    <el-option label="全选" :class="{'selected': checkAll}" @click="funCheckAll"></el-option>
-                    <el-option v-for="item in windList" :key="item.id" :label="item.name" :value="item.id"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="开始时间" class="!mb-0">
-                <div class="search-input">
-                    <el-date-picker type="date" class="!w-[150px]" v-model="queryForm.st"></el-date-picker>
-                </div>
-            </el-form-item>
-            <el-form-item label="结束时间" class="!mb-0">
-                <el-date-picker type="date" class="!w-[150px]" v-model="queryForm.et"></el-date-picker>
-            </el-form-item>
-            <el-form-item label="等间隔" class="!mb-0">
-                <el-radio-group v-model="queryForm.interval">
-                    <el-radio :label="1">一秒钟</el-radio>
-                    <el-radio :label="2">一分钟</el-radio>
-                    <el-radio :label="3">十分钟</el-radio>
-                    <el-radio :label="4">十五分钟</el-radio>
-                </el-radio-group>
-            </el-form-item>
-            <el-form-item class="!mb-0">
-                <el-button type="primary" @click="funSubmit">执行</el-button>
-            </el-form-item>
-        </el-form>
-    </div>
+  <div class="seach">
+    <el-form class="generat-seach" :inline="true" :model="queryForm">
+      <el-form-item label="场站" class="!mb-0">
+        <el-select
+          v-model="queryForm.station"
+          class="w-[150px]"
+          @change="funStationChange"
+        >
+          <el-option
+            v-for="item in stationList"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="风机" class="!mb-0">
+        <el-select
+          multiple
+          class="w-[150px]"
+          v-model="queryForm.wtIds"
+          @clear="checkAll = false"
+          collapse-tags
+        >
+          <el-option
+            label="全选"
+            :class="{ selected: checkAll }"
+            @click="funCheckAll"
+          ></el-option>
+          <el-option
+            v-for="item in windList"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始时间" class="!mb-0">
+        <div class="search-input">
+          <el-date-picker
+            type="date"
+            class="!w-[150px]"
+            v-model="queryForm.st"
+          ></el-date-picker>
+        </div>
+      </el-form-item>
+      <el-form-item label="结束时间" class="!mb-0">
+        <el-date-picker
+          type="date"
+          class="!w-[150px]"
+          v-model="queryForm.et"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="等间隔" class="!mb-0">
+        <el-radio-group v-model="queryForm.interval">
+          <el-radio :label="1">一秒钟</el-radio>
+          <el-radio :label="2">一分钟</el-radio>
+          <el-radio :label="3">十分钟</el-radio>
+          <el-radio :label="4">十五分钟</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item class="!mb-0">
+        <el-button type="primary" @click="funSubmit">执行</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
 </template>
 
 <script>
-    import SubmitBtn from '@/components/generatingCapacityComponent/SubmitBtn.vue'
-    import {
-        ElMessage
-    } from 'element-plus'
-    import {
-        apiGetbaseStation,
-        apiGetbaseWindturbine,
-        apiGetpowerpreparedata
-    } from '@/api/gengra'
-    export default {
-        components: {
-            SubmitBtn
-        },
-        data() {
-            return {
-                queryForm: {
-                    station: '',
-                    wtIds: [],
-                    st: Date.now() - 30 * 24 * 60 * 60 * 1000,
-                    et: Date.now(),
-                    interval: 3
-                },
-                checkAll: true,
-                stationList: [],
-                windList: []
-            }
-        },
-        mounted() {
-            this.funGetStation()
-        },
-        methods: {
-            funSubmit() {
-                const startDate = new Date(this.queryForm.st).setHours(0, 0, 0, 0)
-                const endDate = new Date(this.queryForm.et).setHours(0, 0, 0, 0)
-                const query = {
-                    station: this.queryForm.station,
-                    wtIds: this.queryForm.wtIds.join(),
-                    st: new Date(startDate).getTime(),
-                    et: new Date(endDate).getTime(),
-                    interval: this.queryForm.interval
-                }
-                switch (this.queryForm.interval) {
-                    case 2:
-                        query.interval = 60
-                        break;
-                    case 3:
-                        query.interval = 600
-                        break;
-                    case 4:
-                        query.interval = 900
-                        break;
-                }
-                apiGetpowerpreparedata(query).then(res => {
-                    if (res.code === 200) {
-                        ElMessage.success(res.msg)
-                    }
-                })
-            },
-            /**场站 */
-            funGetStation() {
-                let that = this
-                apiGetbaseStation().then(res => {
-                    if (res) {
-                        that.stationList = res.data
-                        if (that.stationList.length) {
-                            that.queryForm.station = that.stationList[0].id
-                            that.funGetWind(that.queryForm.station)
-                        }
-                    }
-                })
-            },
-            funStationChange(stationId) {
-                if (stationId) {
-                    this.funGetWind(stationId)
-                } else {
-                    this.windList = []
-                }
-            },
-            /**风机 */
-            funGetWind(stationId) {
-                let that = this
-                apiGetbaseWindturbine({
-                    stationId: stationId
-                }).then(res => {
-                    if (res) {
-                        that.windList = res.data
-                        that.queryForm.wtIds = res.data.map(o => o.id)
-                        that.checkAll = true
-                    }
-                })
-            },
-            funCheckAll() {
-                this.checkAll = !this.checkAll
-                if (this.checkAll) {
-                    this.queryForm.wtIds = this.windList.map(o => o.id)
-                } else {
-                    this.queryForm.wtIds = []
-                }
-            }
+import SubmitBtn from "@/components/generatingCapacityComponent/SubmitBtn.vue";
+import { ElMessage } from "element-plus";
+import {
+  apiGetbaseStation,
+  apiGetbaseWindturbine,
+  apiGetpowerpreparedata,
+} from "@/api/gengra";
+export default {
+  components: {
+    SubmitBtn,
+  },
+  data() {
+    return {
+      queryForm: {
+        station: "",
+        wtIds: [],
+        st: Date.now() - 30 * 24 * 60 * 60 * 1000,
+        et: Date.now(),
+        interval: 3,
+      },
+      checkAll: true,
+      stationList: [],
+      windList: [],
+    };
+  },
+  mounted() {
+    this.funGetStation();
+  },
+  methods: {
+    funSubmit() {
+      const startDate = new Date(this.queryForm.st).setHours(0, 0, 0, 0);
+      const endDate = new Date(this.queryForm.et).setHours(0, 0, 0, 0);
+      const query = {
+        station: this.queryForm.station,
+        wtIds: this.queryForm.wtIds.join(),
+        st: new Date(startDate).getTime(),
+        et: new Date(endDate).getTime(),
+        interval: this.queryForm.interval,
+      };
+      switch (this.queryForm.interval) {
+        case 2:
+          query.interval = 60;
+          break;
+        case 3:
+          query.interval = 600;
+          break;
+        case 4:
+          query.interval = 900;
+          break;
+      }
+      apiGetpowerpreparedata(query).then((res) => {
+        if (res.code === 200) {
+          ElMessage.success(res.msg);
         }
-    }
+      });
+    },
+    /**场站 */
+    funGetStation() {
+      let that = this;
+      apiGetbaseStation().then((res) => {
+        if (res) {
+          that.stationList = res.data;
+          if (that.stationList.length) {
+            that.queryForm.station = that.stationList[0].id;
+            that.funGetWind(that.queryForm.station);
+          }
+        }
+      });
+    },
+    funStationChange(stationId) {
+      if (stationId) {
+        this.funGetWind(stationId);
+      } else {
+        this.windList = [];
+      }
+    },
+    /**风机 */
+    funGetWind(stationId) {
+      let that = this;
+      apiGetbaseWindturbine({
+        stationId: stationId,
+      }).then((res) => {
+        if (res) {
+          that.windList = res.data;
+          that.queryForm.wtIds = res.data.map((o) => o.id);
+          that.checkAll = true;
+        }
+      });
+    },
+    funCheckAll() {
+      this.checkAll = !this.checkAll;
+      if (this.checkAll) {
+        this.queryForm.wtIds = this.windList.map((o) => o.id);
+      } else {
+        this.queryForm.wtIds = [];
+      }
+    },
+  },
+};
 </script>
 
 <style lang="less">
-    .seach {
-        padding: 20px 0 0 20px;
-    }
+.seach {
+  padding: 20px 0 0 20px;
+}
 </style>

ファイルの差分が大きいため隠しています
+ 5559 - 0
src/views/home/component/data.json


ファイルの差分が大きいため隠しています
+ 3245 - 1604
src/views/home/index.vue