|
@@ -0,0 +1,618 @@
|
|
|
+<template>
|
|
|
+ <el-container>
|
|
|
+ <v-main>
|
|
|
+ <el-tabs
|
|
|
+ v-model="activeName"
|
|
|
+ label-width="380px"
|
|
|
+ @tab-click="handleClick"
|
|
|
+ type="border-card"
|
|
|
+ style="width: 100%; height: 100%"
|
|
|
+ >
|
|
|
+ <el-tab-pane label="风场功率风速排布图" name="no_1" :key="'no_1'">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ class="demo-form-inline"
|
|
|
+ style="margin-top: 1%; margin-left: 1%"
|
|
|
+ >
|
|
|
+ <el-form-item label="风场">
|
|
|
+ <el-select
|
|
|
+ v-model="fc"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="query_xml()"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in wpIdslist"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="年">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="year"
|
|
|
+ type="year"
|
|
|
+ value-format="yyyy"
|
|
|
+ placeholder="选择年"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="月">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="month"
|
|
|
+ type="month"
|
|
|
+ value-format="dd"
|
|
|
+ placeholder="选择月"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="query_scatter_1" :plain="true"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div
|
|
|
+ id="scatter_diagram_1"
|
|
|
+ style="
|
|
|
+ height: 630px;
|
|
|
+ width: 1880px;
|
|
|
+ margin-left: 3px;
|
|
|
+ margin-bottom: 3px;
|
|
|
+ "
|
|
|
+ ></div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="项目功率风速排布图" name="no_2" :key="'no_2'">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ class="demo-form-inline"
|
|
|
+ style="margin-top: 1%; margin-left: 1%"
|
|
|
+ >
|
|
|
+ <el-form-item label="风场">
|
|
|
+ <el-select
|
|
|
+ v-model="fc"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="query_xml()"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in wpIdslist"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="项目">
|
|
|
+ <el-select
|
|
|
+ v-model="pj"
|
|
|
+ @focus="query_xml"
|
|
|
+ placeholder="请选择"
|
|
|
+ multiple-limit="5"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in pjIdslist"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="年">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="year"
|
|
|
+ type="year"
|
|
|
+ value-format="yyyy"
|
|
|
+ placeholder="选择年"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="月">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="month"
|
|
|
+ type="month"
|
|
|
+ value-format="dd"
|
|
|
+ placeholder="选择月"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="query_scatter_2" :plain="true"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div
|
|
|
+ id="scatter_diagram_2"
|
|
|
+ style="
|
|
|
+ height: 630px;
|
|
|
+ width: 1878px;
|
|
|
+ margin-left: 3px;
|
|
|
+ margin-bottom: 3px;
|
|
|
+ "
|
|
|
+ ></div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="线路功率风速排布图" name="no_3" :key="'no_3'">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ class="demo-form-inline"
|
|
|
+ style="margin-top: 1%; margin-left: 1%"
|
|
|
+ >
|
|
|
+ <el-form-item label="风场">
|
|
|
+ <el-select
|
|
|
+ v-model="fc"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="query_xml()"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in wpIdslist"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="线路">
|
|
|
+ <el-select
|
|
|
+ v-model="xl"
|
|
|
+ @focus="query_xml"
|
|
|
+ placeholder="请选择"
|
|
|
+ multiple-limit="5"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in xlIdslist"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="年">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="year"
|
|
|
+ type="year"
|
|
|
+ value-format="yyyy"
|
|
|
+ placeholder="选择年"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="月">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="month"
|
|
|
+ type="month"
|
|
|
+ value-format="dd"
|
|
|
+ placeholder="选择月"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="query_scatter_3" :plain="true"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-card>
|
|
|
+ <div
|
|
|
+ id="scatter_diagram_3"
|
|
|
+ style="
|
|
|
+ height: 630px;
|
|
|
+ width: 1880px;
|
|
|
+ margin-left: 3px;
|
|
|
+ margin-bottom: 3px;
|
|
|
+ "
|
|
|
+ ></div>
|
|
|
+ </el-card>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </v-main>
|
|
|
+ </el-container>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import * as echarts from "echarts";
|
|
|
+import ecStat from "echarts-stat";
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ wpIdslist: {
|
|
|
+ name: "",
|
|
|
+ id: "",
|
|
|
+ },
|
|
|
+ pjIdslist: {
|
|
|
+ name: "麻黄山一期工程",
|
|
|
+ id: "MHS01_GC",
|
|
|
+ },
|
|
|
+ xlIdslist: {
|
|
|
+ name: "麻黄山一号集电线路",
|
|
|
+ id: "MHS01_XL",
|
|
|
+ },
|
|
|
+ fc: "MHS_FDC",
|
|
|
+ pj: "麻黄山一期工程",
|
|
|
+ xl: "麻黄山一号集电线路",
|
|
|
+ year: "2021",
|
|
|
+ month: "01",
|
|
|
+ activeName: "no_1",
|
|
|
+ xllist: [],
|
|
|
+ scatter_1: [],
|
|
|
+ scatter_2: [],
|
|
|
+ scatter_3: [],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {},
|
|
|
+ methods: {
|
|
|
+ query_wpid() {
|
|
|
+ this.$http.get("powercompare/windfarmAjax?").then((res) => {
|
|
|
+ this.wpIdslist = res.data.data;
|
|
|
+ // this.query_xml();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleClick() {
|
|
|
+ if (this.activeName == "no_1") {
|
|
|
+ this.query_scatter_1();
|
|
|
+ } else if (this.activeName == "no_2") {
|
|
|
+ this.query_scatter_2();
|
|
|
+ } else if (this.activeName == "no_3") {
|
|
|
+ this.query_scatter_3();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ query_xl() {
|
|
|
+ this.xl = "";
|
|
|
+ Object.assign(this.$data.xlIdslist, this.$options.data().xlIdslist);
|
|
|
+ this.$http
|
|
|
+ .get("powercompare/lineAjax?pjIds=" + this.xllist)
|
|
|
+ .then((res) => {
|
|
|
+ this.xlIdslist = res.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ query_scatter_1() {
|
|
|
+ let that = this;
|
|
|
+ Object.assign(this.$data.scatter_1, this.$options.data().scatter_1);
|
|
|
+ var digital = new URLSearchParams();
|
|
|
+ digital.append("wpId", this.fc);
|
|
|
+ digital.append("lnId", "");
|
|
|
+ digital.append("pjId", "");
|
|
|
+ digital.append("year", this.year);
|
|
|
+ digital.append("month", this.month);
|
|
|
+ this.$http.post("/scatter/scatterAjax", digital).then((res) => {
|
|
|
+ this.scatter_1 = res.data.data;
|
|
|
+ this.draw_scatter_diagram_1();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ query_scatter_2() {
|
|
|
+ let that = this;
|
|
|
+ Object.assign(this.$data.scatter_2, this.$options.data().scatter_2);
|
|
|
+ var digital = new URLSearchParams();
|
|
|
+ digital.append("wpId", this.fc);
|
|
|
+ digital.append("lnId", "");
|
|
|
+ digital.append("pjId", this.pj);
|
|
|
+ digital.append("year", this.year);
|
|
|
+ digital.append("month", this.month);
|
|
|
+ this.$http.post("/scatter/scatterAjax", digital).then((res) => {
|
|
|
+ this.scatter_2 = res.data.data;
|
|
|
+ this.draw_scatter_diagram_2();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ query_scatter_3() {
|
|
|
+ Object.assign(this.$data.scatter_3, this.$options.data().scatter_3);
|
|
|
+ var digital = new URLSearchParams();
|
|
|
+ digital.append("wpId", this.fc);
|
|
|
+ digital.append("lnId", this.xl);
|
|
|
+ digital.append("pjId", "");
|
|
|
+ digital.append("year", this.year);
|
|
|
+ digital.append("month", this.month);
|
|
|
+ this.$http.post("/scatter/scatterAjax", digital).then((res) => {
|
|
|
+ this.scatter_3 = res.data.data;
|
|
|
+ this.draw_scatter_diagram_3();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ query_xml() {
|
|
|
+ let that = this;
|
|
|
+ Object.assign(this.$data.xllist, this.$options.data().xllist);
|
|
|
+ Object.assign(this.$data.pjIdslist, this.$options.data().pjIdslist);
|
|
|
+ this.pj = "";
|
|
|
+ this.xl = "";
|
|
|
+ this.xllist = [];
|
|
|
+ this.$http
|
|
|
+ .get("powercompare/projectAjax?wpIds=" + this.fc)
|
|
|
+ .then((res) => {
|
|
|
+ this.pjIdslist = res.data.data;
|
|
|
+ for (let i = 0; i < Object.keys(this.pjIdslist).length; i++) {
|
|
|
+ that.xllist.push(that.pjIdslist[i].id);
|
|
|
+ }
|
|
|
+ this.query_xl();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ filter() {
|
|
|
+ for (let i = 0; i < Object.keys(this.QBlist).length; i++) {
|
|
|
+ fjj = "";
|
|
|
+ fjj = this.QBlist[i].id;
|
|
|
+ if (fjj.endsWith("FDC")) {
|
|
|
+ that.FClist.push(this.QBlist[i]);
|
|
|
+ } else {
|
|
|
+ that.GFlist.push(this.QBlist[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ draw_scatter_diagram_1() {
|
|
|
+ var chartDom = document.getElementById("scatter_diagram_1");
|
|
|
+ var myChart = echarts.init(chartDom);
|
|
|
+ var option;
|
|
|
+
|
|
|
+ echarts.registerTransform(ecStat.transform.regression);
|
|
|
+
|
|
|
+ option = {
|
|
|
+ title: {
|
|
|
+ text: "风机功率排布情况",
|
|
|
+ lft: "300px",
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ data: ["功率"],
|
|
|
+ right: "66px",
|
|
|
+ },
|
|
|
+
|
|
|
+ tooltip: {
|
|
|
+ show: false,
|
|
|
+ trigger: "axis",
|
|
|
+ axisPointer: {
|
|
|
+ type: "cross",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ type: "value",
|
|
|
+ scale: true,
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ type: "dashed",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} m/s",
|
|
|
+ },
|
|
|
+ splitNumber: 20,
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: "value",
|
|
|
+ scale: true,
|
|
|
+ min: -40,
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ type: "dashed",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} 万kw",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "功率",
|
|
|
+ type: "scatter",
|
|
|
+ color: "#FF7F50",
|
|
|
+ data: this.scatter_1,
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: "max", name: "最大值" },
|
|
|
+ { type: "min", name: "最小值" },
|
|
|
+ ],
|
|
|
+ symbol: "pin",
|
|
|
+ symbolSize: 50,
|
|
|
+ silent: true,
|
|
|
+ },
|
|
|
+ markLine: {
|
|
|
+ data: [{ type: "average", name: "平均值" }],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "line",
|
|
|
+ type: "line",
|
|
|
+ smooth: true,
|
|
|
+ datasetIndex: 1,
|
|
|
+ symbolSize: 0.1,
|
|
|
+ symbol: "circle",
|
|
|
+ color: "#87CEFA",
|
|
|
+ label: { show: false },
|
|
|
+ labelLayout: { dx: -20 },
|
|
|
+ encode: { label: 2, tooltip: 1 },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+
|
|
|
+ option && myChart.setOption(option);
|
|
|
+ },
|
|
|
+ draw_scatter_diagram_2() {
|
|
|
+ var chartDom = document.getElementById("scatter_diagram_2");
|
|
|
+ var myChart = echarts.init(chartDom);
|
|
|
+ var option;
|
|
|
+
|
|
|
+ echarts.registerTransform(ecStat.transform.regression);
|
|
|
+
|
|
|
+ option = {
|
|
|
+ title: {
|
|
|
+ text: "项目功率排布情况",
|
|
|
+ left: "300px",
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ data: ["功率"],
|
|
|
+ right: "66px",
|
|
|
+ },
|
|
|
+
|
|
|
+ tooltip: {
|
|
|
+ show: false,
|
|
|
+ trigger: "axis",
|
|
|
+ axisPointer: {
|
|
|
+ type: "cross",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ type: "dashed",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ scale: true,
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} m/s",
|
|
|
+ },
|
|
|
+ splitNumber: 20,
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ min: -40,
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ type: "dashed",
|
|
|
+ },
|
|
|
+ scale: true,
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} 万kw",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "功率",
|
|
|
+ type: "scatter",
|
|
|
+ color: "#FF7F50",
|
|
|
+ data: this.scatter_2,
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: "max", name: "最大值" },
|
|
|
+ { type: "min", name: "最小值" },
|
|
|
+ ],
|
|
|
+ symbol: "pin",
|
|
|
+ symbolSize: 50,
|
|
|
+ silent: true,
|
|
|
+ },
|
|
|
+ markLine: {
|
|
|
+ data: [{ type: "average", name: "平均值" }],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "line",
|
|
|
+ type: "line",
|
|
|
+ smooth: true,
|
|
|
+ datasetIndex: 1,
|
|
|
+ symbolSize: 0.1,
|
|
|
+ symbol: "circle",
|
|
|
+ color: "#87CEFA",
|
|
|
+ label: { show: false },
|
|
|
+ labelLayout: { dx: -20 },
|
|
|
+ encode: { label: 2, tooltip: 1 },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+
|
|
|
+ option && myChart.setOption(option);
|
|
|
+ },
|
|
|
+ draw_scatter_diagram_3() {
|
|
|
+ var chartDom = document.getElementById("scatter_diagram_3");
|
|
|
+ var myChart = echarts.init(chartDom);
|
|
|
+ var option;
|
|
|
+
|
|
|
+ echarts.registerTransform(ecStat.transform.regression);
|
|
|
+
|
|
|
+ option = {
|
|
|
+ title: {
|
|
|
+ text: "线路功率排布情况",
|
|
|
+ left: "300px",
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ data: ["功率"],
|
|
|
+ right: "66px",
|
|
|
+ },
|
|
|
+
|
|
|
+ tooltip: {
|
|
|
+ show: false,
|
|
|
+ trigger: "axis",
|
|
|
+ axisPointer: {
|
|
|
+ type: "cross",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ type: "dashed",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ scale: true,
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} m/s",
|
|
|
+ },
|
|
|
+ splitNumber: 20,
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ min: -40,
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ type: "dashed",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} 万kw",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "功率",
|
|
|
+ type: "scatter",
|
|
|
+ color: "#FF7F50",
|
|
|
+ data: this.scatter_3,
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: "max", name: "最大值" },
|
|
|
+ { type: "min", name: "最小值" },
|
|
|
+ ],
|
|
|
+ symbol: "pin",
|
|
|
+ symbolSize: 50,
|
|
|
+ silent: true,
|
|
|
+ },
|
|
|
+ // emphasis: {
|
|
|
+ // label: {
|
|
|
+ // show: true,
|
|
|
+ // position: "top",
|
|
|
+ // distance: 4,
|
|
|
+ // fontStyle: "italic",
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ markLine: {
|
|
|
+ data: [{ type: "average", name: "平均值" }],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "line",
|
|
|
+ type: "line",
|
|
|
+ smooth: true,
|
|
|
+ datasetIndex: 1,
|
|
|
+ symbolSize: 0.1,
|
|
|
+ symbol: "circle",
|
|
|
+ color: "#87CEFA",
|
|
|
+ label: { show: false },
|
|
|
+ labelLayout: { dx: -20 },
|
|
|
+ encode: { label: 2, tooltip: 1 },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+
|
|
|
+ option && myChart.setOption(option);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.query_wpid();
|
|
|
+ this.query_scatter_1();
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style scoped>
|
|
|
+</style>
|