|
@@ -5,27 +5,57 @@
|
|
|
<div class="query-item">
|
|
|
<div class="lable">场站:</div>
|
|
|
<div class="search-input">
|
|
|
- <el-select v-model="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getWt(wpId, true); }">
|
|
|
- <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
|
|
|
+ <el-select
|
|
|
+ v-model="wpId"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ popper-class="select"
|
|
|
+ @change="
|
|
|
+ (wpId) => {
|
|
|
+ getWt(wpId, true);
|
|
|
+ }
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in wpArray"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="query-item">
|
|
|
<div class="lable">风机:</div>
|
|
|
<div class="search-input">
|
|
|
- <el-select v-model="wtId" clearable placeholder="请选择" popper-class="select">
|
|
|
- <el-option v-for="item in wtArray" :key="item.id" :value="item.id" :label="item.name" />
|
|
|
+ <el-select
|
|
|
+ v-model="wtId"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ popper-class="select"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in wtArray"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="query-item">
|
|
|
- <div class="lable">日期:</div>
|
|
|
- <div class="search-input">
|
|
|
- <el-date-picker v-model="recorddate" type="date"
|
|
|
- value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
|
|
|
- </el-date-picker>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="lable">日期:</div>
|
|
|
+ <div class="search-input">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="recorddate"
|
|
|
+ type="date"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ placeholder="选择日期"
|
|
|
+ popper-class="date-select"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="query-actions">
|
|
|
<button class="btn green" @click="search">搜索</button>
|
|
@@ -34,8 +64,20 @@
|
|
|
<div class="df-table">
|
|
|
<ComTable height="35vh" :data="tableData"></ComTable>
|
|
|
</div>
|
|
|
- <Mlc height="300px" :list="chartData" :units="chartUnit" :showLegend="true" />
|
|
|
- <el-dialog title="月风电功率编辑" v-model="dialogShow" width="85%" top="10vh" custom-class="modal" :close-on-click-modal="true">
|
|
|
+ <Mlc
|
|
|
+ height="300px"
|
|
|
+ :list="chartData"
|
|
|
+ :units="chartUnit"
|
|
|
+ :showLegend="true"
|
|
|
+ />
|
|
|
+ <el-dialog
|
|
|
+ title="月风电功率编辑"
|
|
|
+ v-model="dialogShow"
|
|
|
+ width="85%"
|
|
|
+ top="10vh"
|
|
|
+ custom-class="modal"
|
|
|
+ :close-on-click-modal="true"
|
|
|
+ >
|
|
|
<el-form class="mg-b-16" label-width="100px" inline>
|
|
|
<el-form-item class="mg-b-8" label="风机编号:">
|
|
|
<el-input v-model="wtId" readonly placeholder=""></el-input>
|
|
@@ -44,19 +86,29 @@
|
|
|
<el-input v-model="editItem._year" readonly placeholder=""></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="mg-b-8" label="月份:">
|
|
|
- <el-input v-model="editItem._month" readonly placeholder=""></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="editItem._month"
|
|
|
+ readonly
|
|
|
+ placeholder=""
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="mg-b-8" label="风速:">
|
|
|
<el-input v-model="editItem.speed" readonly placeholder=""></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="mg-b-8" label="实际拟合:">
|
|
|
- <el-input v-model="editItem.actualpower" placeholder="请输入"></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="editItem.actualpower"
|
|
|
+ placeholder="请输入"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="mg-b-8" label="最优拟合:">
|
|
|
- <el-input v-model="editItem.optimalpower" placeholder="请输入"></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="editItem.optimalpower"
|
|
|
+ placeholder="请输入"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <button style="width:100%;" class="btn" @click="editWtInfo">修改</button>
|
|
|
+ <button style="width: 100%" class="btn" @click="editWtInfo">修改</button>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -64,6 +116,8 @@
|
|
|
<script>
|
|
|
import ComTable from "@com/coms/table/table.vue";
|
|
|
import Mlc from "@com/chart/line/multiple-line-chart.vue";
|
|
|
+import api1 from "@api/economic/index.js";
|
|
|
+import api from "@api/wisdomOverhaul/energy/index.js";
|
|
|
export default {
|
|
|
// 名称
|
|
|
name: "cutAnalyse",
|
|
@@ -71,11 +125,11 @@ export default {
|
|
|
// 使用组件
|
|
|
components: {
|
|
|
ComTable,
|
|
|
- Mlc
|
|
|
+ Mlc,
|
|
|
},
|
|
|
|
|
|
// 数据
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
const that = this;
|
|
|
return {
|
|
|
isAsc: "asc",
|
|
@@ -83,9 +137,11 @@ export default {
|
|
|
wtArray: [],
|
|
|
wpId: "",
|
|
|
wtId: "",
|
|
|
- editItem:{},
|
|
|
- dialogShow:false,
|
|
|
- recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
|
|
|
+ editItem: {},
|
|
|
+ dialogShow: false,
|
|
|
+ recorddate: new Date(new Date().getTime() - 3600 * 1000 * 24).formatDate(
|
|
|
+ "yyyy-MM-dd"
|
|
|
+ ),
|
|
|
tableData: {
|
|
|
column: [
|
|
|
{
|
|
@@ -93,28 +149,28 @@ export default {
|
|
|
field: "windturbineid",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
- sortable: true
|
|
|
+ sortable: true,
|
|
|
},
|
|
|
{
|
|
|
name: "风速",
|
|
|
field: "speed",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
- sortable: true
|
|
|
+ sortable: true,
|
|
|
},
|
|
|
{
|
|
|
name: "实际拟合功率",
|
|
|
field: "actualpower",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
- sortable: true
|
|
|
+ sortable: true,
|
|
|
},
|
|
|
{
|
|
|
name: "最优拟合功率",
|
|
|
field: "optimalpower",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
- sortable: true
|
|
|
+ sortable: true,
|
|
|
},
|
|
|
// {
|
|
|
// name: "操作",
|
|
@@ -122,8 +178,8 @@ export default {
|
|
|
// is_num: false,
|
|
|
// is_light: false,
|
|
|
// template() {
|
|
|
- // return "<el-button type='text' style='cursor: pointer;'>修改</el-button>";
|
|
|
- // },
|
|
|
+ // return "<el-button type='text' style='cursor: pointer;'>修改</el-button>";
|
|
|
+ // },
|
|
|
// click(e, row){
|
|
|
// that.editItem = row;
|
|
|
// that.editItem._year = new Date(that.recorddate).getFullYear();
|
|
@@ -134,169 +190,273 @@ export default {
|
|
|
],
|
|
|
data: [],
|
|
|
},
|
|
|
- chartData: [{
|
|
|
- title: "",
|
|
|
- yAxisIndex: 0,
|
|
|
- value: []
|
|
|
- }],
|
|
|
+ chartData: [
|
|
|
+ {
|
|
|
+ title: "",
|
|
|
+ yAxisIndex: 0,
|
|
|
+ value: [],
|
|
|
+ },
|
|
|
+ ],
|
|
|
// chartUnit: ["功率(MW)", "(m/s)"]
|
|
|
- chartUnit: ["功率(MW)"]
|
|
|
+ chartUnit: ["功率(MW)"],
|
|
|
};
|
|
|
},
|
|
|
|
|
|
// 函数
|
|
|
methods: {
|
|
|
// 获取风场
|
|
|
- getWp (reGetWp) {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- subUrl: "powercompare/windfarmAjax",
|
|
|
- success (res) {
|
|
|
- that.wpArray = res.data;
|
|
|
- that.wpId = res.data[0].id;
|
|
|
- that.getWt(that.wpId, reGetWp);
|
|
|
- }
|
|
|
+ getWp(reGetWp) {
|
|
|
+ api1.benchmarkingWplist({}).then((res) => {
|
|
|
+ this.wpArray = res.data;
|
|
|
+ this.wpId = res.data[0].id;
|
|
|
+ this.getWt(this.wpId, reGetWp);
|
|
|
});
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // subUrl: "powercompare/windfarmAjax",
|
|
|
+ // success (res) {
|
|
|
+ // that.wpArray = res.data;
|
|
|
+ // that.wpId = res.data[0].id;
|
|
|
+ // that.getWt(that.wpId, reGetWp);
|
|
|
+ // }
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取风机
|
|
|
- getWt (wpid, reGetWp) {
|
|
|
- let that = this;
|
|
|
- if (that.wpId) {
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://10.155.32.4:9001",
|
|
|
- subUrl: "benchmarking/wtList",
|
|
|
- data: {
|
|
|
- wpid
|
|
|
- },
|
|
|
- success (res) {
|
|
|
- that.wtArray = res.data;
|
|
|
- that.wtId = res.data[0].id;
|
|
|
+ getWt(wpid, reGetWp) {
|
|
|
+ if (this.wpId) {
|
|
|
+ api1
|
|
|
+ .powercompareWindturbineAjax({
|
|
|
+ wpId: wpid,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ this.wtArray = res.data;
|
|
|
+ this.wtId = res.data[0].id;
|
|
|
if (!reGetWp) {
|
|
|
- that.getTabData();
|
|
|
+ this.getTabData();
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
}
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // if (this.wpId) {
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://10.155.32.4:9001",
|
|
|
+ // subUrl: "benchmarking/wtList",
|
|
|
+ // data: {
|
|
|
+ // wpid
|
|
|
+ // },
|
|
|
+ // success (res) {
|
|
|
+ // that.wtArray = res.data;
|
|
|
+ // that.wtId = res.data[0].id;
|
|
|
+ // if (!reGetWp) {
|
|
|
+ // that.getTabData();
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
},
|
|
|
|
|
|
- getTabData () {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "POST",
|
|
|
- subUrl: "powersaturation/powersaturationmonthlist",
|
|
|
- data: {
|
|
|
- wtId: that.wtId,
|
|
|
- year: new Date(that.recorddate).getFullYear(),
|
|
|
- month: (new Date(that.recorddate).getMonth() + 1)
|
|
|
- },
|
|
|
- success (res) {
|
|
|
- that.tableData.data = res.data.list;
|
|
|
- that.getChartData();
|
|
|
- }
|
|
|
- });
|
|
|
+ getTabData() {
|
|
|
+ api
|
|
|
+ .powersaturationPowersaturationmonthlist({
|
|
|
+ wtId: this.wtId,
|
|
|
+ year: new Date(this.recorddate).getFullYear(),
|
|
|
+ month: new Date(this.recorddate).getMonth() + 1,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if(res.data)
|
|
|
+ this.tableData.data = res.data.list;
|
|
|
+ this.getChartData();
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "POST",
|
|
|
+ // subUrl: "powersaturation/powersaturationmonthlist",
|
|
|
+ // data: {
|
|
|
+ // wtId: that.wtId,
|
|
|
+ // year: new Date(that.recorddate).getFullYear(),
|
|
|
+ // month: new Date(that.recorddate).getMonth() + 1,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // that.tableData.data = res.data.list;
|
|
|
+ // that.getChartData();
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取图表数据
|
|
|
- getChartData () {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "POST",
|
|
|
- subUrl: "powersaturation/powersaturationmonthchart",
|
|
|
- data: {
|
|
|
- wtId: that.wtId,
|
|
|
- year: new Date(that.recorddate).getFullYear(),
|
|
|
- month: (new Date(that.recorddate).getMonth() + 1)
|
|
|
- },
|
|
|
- success (res) {
|
|
|
+ getChartData() {
|
|
|
|
|
|
- const keyArray = [
|
|
|
- // {
|
|
|
- // key: "value1",
|
|
|
- // title: "风速"
|
|
|
- // },
|
|
|
- {
|
|
|
- key: "value2",
|
|
|
- title: "实际拟合功率"
|
|
|
- }, {
|
|
|
- key: "value3",
|
|
|
- title: "最优拟合功率"
|
|
|
- }, {
|
|
|
- key: "value4",
|
|
|
- title: "保证功率"
|
|
|
- }];
|
|
|
+ api.powersaturationPowersaturationmonthchart({
|
|
|
+ wtId: this.wtId,
|
|
|
+ year: new Date(this.recorddate).getFullYear(),
|
|
|
+ month: new Date(this.recorddate).getMonth() + 1,
|
|
|
+ }).then((res) => {
|
|
|
+ if(res.data){
|
|
|
+ const keyArray = [
|
|
|
+ // {
|
|
|
+ // key: "value1",
|
|
|
+ // title: "风速"
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ key: "value2",
|
|
|
+ title: "实际拟合功率",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: "value3",
|
|
|
+ title: "最优拟合功率",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: "value4",
|
|
|
+ title: "保证功率",
|
|
|
+ },
|
|
|
+ ];
|
|
|
|
|
|
let chartData = [
|
|
|
- // {
|
|
|
- // title: "风速",
|
|
|
- // // yAxisIndex: 1,
|
|
|
- // yAxisIndex: 0,
|
|
|
- // value: []
|
|
|
- // },
|
|
|
- {
|
|
|
- title: "实际拟合功率",
|
|
|
- yAxisIndex: 0,
|
|
|
- value: []
|
|
|
- }, {
|
|
|
- title: "最优拟合功率",
|
|
|
- yAxisIndex: 0,
|
|
|
- value: []
|
|
|
- }, {
|
|
|
- title: "保证功率",
|
|
|
- yAxisIndex: 0,
|
|
|
- value: []
|
|
|
- }];
|
|
|
+ // {
|
|
|
+ // title: "风速",
|
|
|
+ // // yAxisIndex: 1,
|
|
|
+ // yAxisIndex: 0,
|
|
|
+ // value: []
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ title: "实际拟合功率",
|
|
|
+ yAxisIndex: 0,
|
|
|
+ value: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "最优拟合功率",
|
|
|
+ yAxisIndex: 0,
|
|
|
+ value: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "保证功率",
|
|
|
+ yAxisIndex: 0,
|
|
|
+ value: [],
|
|
|
+ },
|
|
|
+ ];
|
|
|
|
|
|
keyArray.forEach((keyEle, keyIndex) => {
|
|
|
- res.data.forEach(ele => {
|
|
|
+ res.data.forEach((ele) => {
|
|
|
chartData[keyIndex].value.push({
|
|
|
text: "",
|
|
|
- value: ele[keyEle.key]
|
|
|
+ value: ele[keyEle.key],
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- that.chartData = chartData;
|
|
|
- }
|
|
|
+ this.chartData = chartData;
|
|
|
+ }
|
|
|
+
|
|
|
});
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "POST",
|
|
|
+ // subUrl: "powersaturation/powersaturationmonthchart",
|
|
|
+ // data: {
|
|
|
+ // wtId: that.wtId,
|
|
|
+ // year: new Date(that.recorddate).getFullYear(),
|
|
|
+ // month: new Date(that.recorddate).getMonth() + 1,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // const keyArray = [
|
|
|
+ // // {
|
|
|
+ // // key: "value1",
|
|
|
+ // // title: "风速"
|
|
|
+ // // },
|
|
|
+ // {
|
|
|
+ // key: "value2",
|
|
|
+ // title: "实际拟合功率",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // key: "value3",
|
|
|
+ // title: "最优拟合功率",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // key: "value4",
|
|
|
+ // title: "保证功率",
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+
|
|
|
+ // let chartData = [
|
|
|
+ // // {
|
|
|
+ // // title: "风速",
|
|
|
+ // // // yAxisIndex: 1,
|
|
|
+ // // yAxisIndex: 0,
|
|
|
+ // // value: []
|
|
|
+ // // },
|
|
|
+ // {
|
|
|
+ // title: "实际拟合功率",
|
|
|
+ // yAxisIndex: 0,
|
|
|
+ // value: [],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // title: "最优拟合功率",
|
|
|
+ // yAxisIndex: 0,
|
|
|
+ // value: [],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // title: "保证功率",
|
|
|
+ // yAxisIndex: 0,
|
|
|
+ // value: [],
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+
|
|
|
+ // keyArray.forEach((keyEle, keyIndex) => {
|
|
|
+ // res.data.forEach((ele) => {
|
|
|
+ // chartData[keyIndex].value.push({
|
|
|
+ // text: "",
|
|
|
+ // value: ele[keyEle.key],
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+
|
|
|
+ // that.chartData = chartData;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 编辑
|
|
|
- editWtInfo(){
|
|
|
+ editWtInfo() {
|
|
|
let that = this;
|
|
|
|
|
|
that.editItem.actualpower += "";
|
|
|
that.editItem.optimalpower += "";
|
|
|
|
|
|
- if(!that.editItem.actualpower || !that.editItem.optimalpower){
|
|
|
+ if (!that.editItem.actualpower || !that.editItem.optimalpower) {
|
|
|
that.BASE.showMsg({
|
|
|
- msg:"实际拟合与最优拟合不可为空"
|
|
|
+ msg: "实际拟合与最优拟合不可为空",
|
|
|
});
|
|
|
- }else{
|
|
|
-
|
|
|
+ } else {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- search () {
|
|
|
+ search() {
|
|
|
if (!this.wpId || !this.wtId) {
|
|
|
this.BASE.showMsg({
|
|
|
- msg: '场站与风机为必选项'
|
|
|
+ msg: "场站与风机为必选项",
|
|
|
});
|
|
|
} else {
|
|
|
this.getTabData();
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
|
|
|
- created () {
|
|
|
+ created() {
|
|
|
this.getWp();
|
|
|
},
|
|
|
|
|
|
- mounted () { },
|
|
|
+ mounted() {},
|
|
|
|
|
|
- unmounted () { },
|
|
|
+ unmounted() {},
|
|
|
};
|
|
|
</script>
|
|
|
|
|
@@ -325,7 +485,7 @@ export default {
|
|
|
height: 30vh;
|
|
|
|
|
|
&:before {
|
|
|
- content: '';
|
|
|
+ content: "";
|
|
|
width: 0.37vh;
|
|
|
height: 0.37vh;
|
|
|
background: @write;
|