|
@@ -1,552 +1,390 @@
|
|
|
<template>
|
|
|
- <div>
|
|
|
- <div class="query mg-b-8">
|
|
|
- <div class="query-items">
|
|
|
- <div class="query-item">
|
|
|
- <div class="lable">场站:</div>
|
|
|
- <div class="search-input">
|
|
|
- <el-select v-model="value1" clearable placeholder="请选择" popper-class="select">
|
|
|
- <el-option
|
|
|
- v-for="item in ChangZhan"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="query-item" v-if="shows == 'd'">
|
|
|
- <div class="lable">日期:</div>
|
|
|
- <div class="search-input">
|
|
|
- <el-date-picker
|
|
|
- v-model="date"
|
|
|
- type="date"
|
|
|
- placeholder="选择日期"
|
|
|
- popper-class="date-select"
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
- ></el-date-picker>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="query-item" v-if="shows == 'm'">
|
|
|
- <div class="lable">年月:</div>
|
|
|
- <div class="search-input">
|
|
|
- <el-date-picker
|
|
|
- v-model="date"
|
|
|
- type="month"
|
|
|
- placeholder="选择年月"
|
|
|
- popper-class="date-select"
|
|
|
- value-format="YYYY-MM"
|
|
|
- ></el-date-picker>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="query-item" v-if="shows == 'y'">
|
|
|
- <div class="lable">年:</div>
|
|
|
- <div class="search-input">
|
|
|
- <el-date-picker
|
|
|
- v-model="date"
|
|
|
- type="year"
|
|
|
- placeholder="选择年"
|
|
|
- popper-class="date-select"
|
|
|
- value-format="YYYY"
|
|
|
- ></el-date-picker>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
- <div class="query-item">
|
|
|
- <div class="lable">类型:</div>
|
|
|
- <div class="search-input">
|
|
|
- <el-select v-model="cur" @change="handleOpen(cur)" clearable placeholder="请选择" popper-class="select">
|
|
|
- <el-option
|
|
|
- v-for="(item, index) of optionData"
|
|
|
- :key="index"
|
|
|
- :value="index"
|
|
|
- :label="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
+ <el-scrollbar height="92vh">
|
|
|
+ <div class="query mg-b-8">
|
|
|
+ <div class="query-items">
|
|
|
+ <div class="query-item">
|
|
|
+ <div class="lable">场站:</div>
|
|
|
+ <div class="search-input">
|
|
|
+ <el-select v-model="station" placeholder="请选择" popper-class="select">
|
|
|
+ <el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="query-item">
|
|
|
+ <div class="lable">样本类型:</div>
|
|
|
+ <div class="search-input">
|
|
|
+ <el-select v-model="yblx" placeholder="请选择样本" popper-class="select">
|
|
|
+ <el-option v-for="item in yblxArr" :key="item.value" :value="item.value"
|
|
|
+ :label="item.label">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="query-item">
|
|
|
+ <div class="lable">风机型号:</div>
|
|
|
+ <div class="search-input">
|
|
|
+ <el-select v-model="model" multiple collapse-tags clearable placeholder="请选择"
|
|
|
+ popper-class="select">
|
|
|
+ <el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="query-item">
|
|
|
+ <div class="lable">时间:</div>
|
|
|
+ <div class="search-input">
|
|
|
+ <el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="query-actions">
|
|
|
+ <button class="btn" @click="list">查询</button>
|
|
|
+ <button class="btn" @click="dbfx">对比</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="query-actions">
|
|
|
- <button class="btn green" @click="handleSubmit">查询</button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="table-box">
|
|
|
- <div class="title">{{ showTitle }}</div>
|
|
|
- <ComTable
|
|
|
- ref="curRef"
|
|
|
- :data="tableData"
|
|
|
- :pageSize="20"
|
|
|
- :pageable='false'
|
|
|
- height="73vh"
|
|
|
- v-loading="tableLoading"
|
|
|
- element-loading-text="拼命加载中.."
|
|
|
- element-loading-background="rgba(0, 0, 0, 0.8)"
|
|
|
- ></ComTable>
|
|
|
- </div>
|
|
|
- <el-dialog :title="'历史数据查询>>'+hisDialogTitle" v-model="hisDialogVisible" width="70%" top="11vh" custom-class="modal">
|
|
|
- <gradeHistory :option="hisOption" ref="gradeHistory"/>
|
|
|
- </el-dialog>
|
|
|
- </div>
|
|
|
+ <el-row :type="'flex'" class="content">
|
|
|
+ <ComTable :data="tableData" height="70vh" v-loading="tableLoading" element-loading-text="拼命加载中"
|
|
|
+ element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
|
|
|
+ </el-row>
|
|
|
+ <el-dialog title="数据对比" v-model="dialog" width="90%" top="10vh" custom-class="modal"
|
|
|
+ :close-on-click-modal="false" :before-close="onClickDialogClose" class="isvisiable">
|
|
|
+ <scatter-line-chart :lineData="scatterLineData.lineData" :data="scatterLineData.data" xTitle="风速"
|
|
|
+ yTitle="功率" :height="'70vh'" />
|
|
|
+ </el-dialog>
|
|
|
+ </el-scrollbar>
|
|
|
</template>
|
|
|
-<script>
|
|
|
-import ComTable from "@/components/coms/table/table-unpage.vue";
|
|
|
-import GradeHistory from "../../HealthControl/gradeHistory.vue";
|
|
|
|
|
|
-export default {
|
|
|
- name: "gradeassessment",
|
|
|
- components: { ComTable, GradeHistory },
|
|
|
- data() {
|
|
|
- let that = this;
|
|
|
- return {
|
|
|
- cur: 0,
|
|
|
- optionData: [
|
|
|
- "日统计",
|
|
|
- "月统计",
|
|
|
- "年统计"
|
|
|
- ],
|
|
|
- hisDialogVisible: false,
|
|
|
- hisDialogTitle:"",
|
|
|
- ChangZhan: [{
|
|
|
- id:'1',
|
|
|
- name:'麻黄山风电场'
|
|
|
- },{
|
|
|
- id:'1',
|
|
|
- name:'牛首山风电场'
|
|
|
- },{
|
|
|
- id:'1',
|
|
|
- name:'青山风电场'
|
|
|
- },{
|
|
|
- id:'1',
|
|
|
- name:'石板泉风电场'
|
|
|
- },{
|
|
|
- id:'1',
|
|
|
- name:'香山风电场'
|
|
|
- }],
|
|
|
- // value1: "MHS_FDC",
|
|
|
- value1: "麻黄山风电场",
|
|
|
- date: "",
|
|
|
- shows: "d",
|
|
|
- showTitle: "日统计",
|
|
|
- tableLoading: true,
|
|
|
- dataIds: new Set(),
|
|
|
- hisOption:{},
|
|
|
- tableData: {
|
|
|
- column: [
|
|
|
- {
|
|
|
- name: "风机编号",
|
|
|
- field: "windturbineid",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "等級",
|
|
|
- field: "level",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
+<script>
|
|
|
+ import ComTable from "@/components/coms/table/table.vue";
|
|
|
+ import ScatterLineChart from "@/components/chart/combination/scatter-line-chart.vue";
|
|
|
+ import BASE from "@tools/basicTool.js";
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ ComTable,
|
|
|
+ ScatterLineChart,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ const that = this;
|
|
|
+ return {
|
|
|
+ scatterLineData: {
|
|
|
+ data: [{
|
|
|
+ title: "1",
|
|
|
+ value: [
|
|
|
+ [14.49, 337.0],
|
|
|
+ [5.78, 368.0],
|
|
|
+ [5.08, 247.0],
|
|
|
+ [4.79, 171.0],
|
|
|
+ [4.05, 120.0],
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "2",
|
|
|
+ value: [
|
|
|
+ [14.49, 37.0],
|
|
|
+ [5.78, 68.0],
|
|
|
+ [5.08, 47.0],
|
|
|
+ [4.79, 71.0],
|
|
|
+ [4.05, 20.0],
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ lineData: {
|
|
|
+ xTitle: "风速",
|
|
|
+ yTitle: "功率",
|
|
|
+ legends: [],
|
|
|
+ data: [
|
|
|
+ [80.67, 48.38, 65, 95.84, 71.84],
|
|
|
+ [93.67, 98.38, 165, 295.84, 471.84],
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ids: [],
|
|
|
+ windId: '',
|
|
|
+ checkLength: 0, //对标分析只能选择5个
|
|
|
+ yblx: 0,
|
|
|
+ yblxArr: [{
|
|
|
+ label: '正样本',
|
|
|
+ value: 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '负样本',
|
|
|
+ value: 1
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ dialog: false, //传感点组件隐藏或显示
|
|
|
+ ChangZhan: [],
|
|
|
+ fjxh: [],
|
|
|
+ fjxhArr: [],
|
|
|
+ model: [],
|
|
|
+ time: [],
|
|
|
+ station: '',
|
|
|
+ tableData: {
|
|
|
+ column: [{
|
|
|
+ name: "序号",
|
|
|
+ field: "index",
|
|
|
+ is_light: false,
|
|
|
+ width: '50px',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "",
|
|
|
+ field: "check",
|
|
|
+ is_light: false,
|
|
|
+ width: '50px',
|
|
|
+ template: function() {
|
|
|
+ return "<input class='check curCheckBox' type='CheckBox'/>";
|
|
|
+ },
|
|
|
+ click: function(event, data) {
|
|
|
+ let id = data.id;
|
|
|
+ that.windId = data.windturbineid;
|
|
|
+ if (event.target.checked == false && that.checkLength <= 5) {
|
|
|
+ that.ids.forEach((item, i) => {
|
|
|
+ if (item == id) {
|
|
|
+ that.ids.splice(i, 1);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ that.checkLength--;
|
|
|
+ } else if (event.target.checked && that.checkLength < 5) {
|
|
|
+ that.ids.push(id);
|
|
|
+ that.checkLength++;
|
|
|
+ } else if (that.checkLength == 5) {
|
|
|
+ event.target.checked = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "样本类型",
|
|
|
+ field: "tag",
|
|
|
+ is_light: false,
|
|
|
+ width: '100px',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "风机编号",
|
|
|
+ field: "windturbineid",
|
|
|
+ is_light: false,
|
|
|
+ width: '150px',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "开始时间",
|
|
|
+ field: "starttime",
|
|
|
+ is_light: false,
|
|
|
+ width: '350px',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "结束时间",
|
|
|
+ field: "endtime",
|
|
|
+ is_light: false,
|
|
|
+ width: '350px',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "操作",
|
|
|
+ field: "cz",
|
|
|
+ is_light: false,
|
|
|
+ width: '200px',
|
|
|
+ template: () => {
|
|
|
+ return (
|
|
|
+ "<el-button type='text' style='cursor: pointer;' value='config'>查看</el-button> "
|
|
|
+ );
|
|
|
+ },
|
|
|
+ click(e, row) {
|
|
|
+ that.onClickOption(e, row);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ data: [],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ async startAjax() {
|
|
|
+ var that = this;
|
|
|
+ that.time = [new Date((new Date() - (3600 * 24 * 1000 * 30))).formatDate("yyyy-MM-dd hh:mm:ss"),
|
|
|
+ new Date().formatDate("yyyy-MM-dd hh:mm:ss")
|
|
|
+ ];
|
|
|
+ await that.API.requestData({
|
|
|
+ method: "GET",
|
|
|
+ baseURL: "http://10.155.32.4:9001/",
|
|
|
+ subUrl: "benchmarking/wplist",
|
|
|
+ success(res) {
|
|
|
+ that.ChangZhan = res.data;
|
|
|
+ that.station = res.data[0].name
|
|
|
+ },
|
|
|
+ });
|
|
|
|
|
|
- {
|
|
|
- name: "综合排名",
|
|
|
- field: "rank",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "发电量(kWh)",
|
|
|
- field: "dayfdl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "理论发电量(kWh)",
|
|
|
- field: "dayllfdl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "平均风速(m/s)",
|
|
|
- field: "dayfs",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "平均功率(kW)",
|
|
|
- field: "daygl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "故障损失电量(kWh)",
|
|
|
- field: "daygzssdl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "限电损失电量(kWh)",
|
|
|
- field: "dayxdssdl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "维护损失电量(kWh)",
|
|
|
- field: "daywhssdl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "性能损失电量(kWh)",
|
|
|
- field: "dayxnssdl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "利用小时数(h)",
|
|
|
- field: "daylyxs",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "拟合优度(%)",
|
|
|
- field: "daynhyd",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "设备可利用率(%)",
|
|
|
- field: "daysbklyl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "等效可用系数(%)",
|
|
|
- field: "daydxkyxs",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "有效风时数(h)",
|
|
|
- field: "dayyxfss",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "平均切入风速(m/s)",
|
|
|
- field: "dayxfqr",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "静风频率(%)",
|
|
|
- field: "dayjfpl",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "功率一致性系数(%)",
|
|
|
- field: "dayglyzxxs",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "操作",
|
|
|
- field: "sjbz",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- sortable: true,
|
|
|
- id: "id",
|
|
|
- template: () => {
|
|
|
- return "<el-button type='text' style='cursor: pointer;' value='ls'>历史</el-button>";
|
|
|
- },
|
|
|
- click: function(event, data) {
|
|
|
- if('ls' == event.target.getAttribute("value")){
|
|
|
- that.hisOption["shows"] = that.shows;
|
|
|
- that.hisOption["date"] = that.date;
|
|
|
- that.hisOption["windturbineid"] = data.windturbineid;
|
|
|
- that.hisDialogTitle = data.windturbineid;
|
|
|
- that.hisDialogVisible = true;
|
|
|
- that.$refs.gradeHistory.getTable();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- data: []
|
|
|
- },
|
|
|
- tableId: ""
|
|
|
- };
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.ChangZhanVal();
|
|
|
- this.date = this.getDate(0);
|
|
|
- this.getTable(this.date);
|
|
|
- },
|
|
|
- methods: {
|
|
|
- // 获取表格数据
|
|
|
- getTable(date) {
|
|
|
- let that = this;
|
|
|
- let subUrl = "";
|
|
|
- const data = {
|
|
|
- isAsc: "asc",
|
|
|
- wpId: this.value1
|
|
|
- };
|
|
|
- if ("d" == this.shows) {
|
|
|
- subUrl = "/benchmarking/gadaylistByPage";
|
|
|
- data["recorddate"] = date;
|
|
|
- }
|
|
|
- if ("m" == this.shows) {
|
|
|
- subUrl = "/benchmarking/gamonthlistByPage";
|
|
|
- const dateStr = date.split("-");
|
|
|
- if (dateStr.length > 1) {
|
|
|
- data["year"] = dateStr[0];
|
|
|
- data["month"] = dateStr[1];
|
|
|
- }
|
|
|
- }
|
|
|
- if ("y" == this.shows) {
|
|
|
- subUrl = "/benchmarking/gayearlistByPage";
|
|
|
- data["year"] = date;
|
|
|
- }
|
|
|
- that.tableLoading = true;
|
|
|
- that.API.requestData({
|
|
|
- timeout: 60000,
|
|
|
- method: "POST",
|
|
|
- subUrl: subUrl,
|
|
|
- data: data,
|
|
|
- success(res) {
|
|
|
- that.tableLoading = false;
|
|
|
- if (res.code === 200) {
|
|
|
- var items = [];
|
|
|
- res.data.list.forEach((item, index) => {
|
|
|
- item["index"] = index;
|
|
|
- items[index] = item;
|
|
|
- });
|
|
|
- that.tableData.data = items;
|
|
|
- }
|
|
|
- },
|
|
|
- Error(res) {
|
|
|
- console.log("tag", res);
|
|
|
- }
|
|
|
- });
|
|
|
- // if (that.res.code === 200) {
|
|
|
- // that.tableLoading = false;
|
|
|
- // var items = [];
|
|
|
- // that.res.data.list.forEach((item, index) => {
|
|
|
- // item["index"] = index;
|
|
|
- // items[index] = item;
|
|
|
- // });
|
|
|
- // that.tableData.data = items;
|
|
|
- // }
|
|
|
- },
|
|
|
- // tab
|
|
|
- handleOpen(index) {
|
|
|
-
|
|
|
- this.$nextTick(() => {
|
|
|
- this.cur = index;
|
|
|
- this.showTitle = this.optionData[index];
|
|
|
- if (index == 0) {
|
|
|
- this.date = this.getDate(0);
|
|
|
- this.shows = "d";
|
|
|
- }
|
|
|
- if (index == 1) {
|
|
|
- this.date = this.getDate(1);
|
|
|
- this.shows = "m";
|
|
|
- }
|
|
|
- if (index == 2) {
|
|
|
- this.date = this.getDate(2);
|
|
|
- this.shows = "y";
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 场站
|
|
|
- ChangZhanVal() {
|
|
|
- var that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://10.155.32.4:9001/",
|
|
|
- subUrl: "benchmarking/wplist",
|
|
|
- success(res) {
|
|
|
- that.ChangZhan = res.data;
|
|
|
- that.value1 = res.data[0].id;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 查询
|
|
|
- handleSubmit() {
|
|
|
- this.clearCheckBox();
|
|
|
- this.getTable(this.date);
|
|
|
- },
|
|
|
- getChartData(resData) {
|
|
|
- const chartData = {};
|
|
|
- const rowMap = {};
|
|
|
- resData.forEach(function(rowData, index) {
|
|
|
- rowMap[rowData["name"]] = rowData["data1"];
|
|
|
- });
|
|
|
- chartData["name"] = resData[resData.length - 1]["name"];
|
|
|
- chartData["value"] = [];
|
|
|
- chartData["value"].push(rowMap["平均切入风速"]);
|
|
|
- chartData["value"].push(rowMap["性能损失电量"]);
|
|
|
- chartData["value"].push(rowMap["拟合优度"]);
|
|
|
- chartData["value"].push(rowMap["功率一致性系数"]);
|
|
|
- chartData["value"].push(rowMap["利用小时"]);
|
|
|
- chartData["value"].push(rowMap["设备可利用率"]);
|
|
|
- chartData["value"].push(rowMap["等效可利用系数"]);
|
|
|
- chartData["value"].push(rowMap["有效风时数"]);
|
|
|
- chartData["value"].push(rowMap["平均风速"]);
|
|
|
- chartData["value"].push(rowMap["静风频率"]);
|
|
|
- return chartData;
|
|
|
- },
|
|
|
- // 获取日期
|
|
|
- getDate(vl) {
|
|
|
- var date = new Date();
|
|
|
- var year = date.getFullYear(),
|
|
|
- month = date.getMonth() + 1,
|
|
|
- day = date.getDate() - 1;
|
|
|
- month >= 1 && month <= 9 ? (month = "0" + month) : "";
|
|
|
- day >= 0 && day <= 9 ? (day = "0" + day) : "";
|
|
|
- if (vl == 0) {
|
|
|
- return year + "-" + month + "-" + day;
|
|
|
- }
|
|
|
- if (vl == 1) {
|
|
|
- return year + "-" + month;
|
|
|
- }
|
|
|
- if (vl == 2) {
|
|
|
- return year + "";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-};
|
|
|
+ await that.API.requestData({
|
|
|
+ method: "GET",
|
|
|
+ baseURL: "http://192.168.1.18:9002/",
|
|
|
+ subUrl: "basic/station/all",
|
|
|
+ success(res) {
|
|
|
+ let fjxhArr = [];
|
|
|
+ let model = [],
|
|
|
+ fjxh = [];
|
|
|
+ res.data.forEach(ele => {
|
|
|
+ fjxhArr.push({
|
|
|
+ id: ele.id,
|
|
|
+ value: ele.model.split("/")
|
|
|
+ })
|
|
|
+ if (ele.id == "MHS_FDC") {
|
|
|
+ model = ele.model.split("/");
|
|
|
+ model.forEach(ele => {
|
|
|
+ fjxh.push({
|
|
|
+ label: ele,
|
|
|
+ value: ele
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ that.fjxhArr = fjxhArr;
|
|
|
+ that.model = model;
|
|
|
+ that.fjxh = fjxh;
|
|
|
+ },
|
|
|
+ });
|
|
|
+ that.list()
|
|
|
+ },
|
|
|
+ onClickOption(e, row) { // 操作按钮
|
|
|
+ if ("config" == e.target.getAttribute("value")) { //查看
|
|
|
+ this.chart([row.id], row.windturbineid);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ chart(ids, windId) {
|
|
|
+ const that = this;
|
|
|
+ BASE.showLoading({ text:"加载中..." });
|
|
|
+ that.API.requestData({
|
|
|
+ method: "GET",
|
|
|
+ baseURL: "http://192.168.1.18:9002/",
|
|
|
+ subUrl: "case/performance/scatter",
|
|
|
+ data: {
|
|
|
+ id: ids,
|
|
|
+ interval: 30
|
|
|
+ },
|
|
|
+ success(res) {
|
|
|
+ if (res.code == 200) {
|
|
|
+ let data = res.data,
|
|
|
+ keys = Object.keys(data),
|
|
|
+ fs = [],
|
|
|
+ zs = [],
|
|
|
+ dotData = [];
|
|
|
+ keys.forEach(ele => {
|
|
|
+ let keyId = ele.substring(ele.indexOf("_") + 1, ele.indexOf("_" + windId)),
|
|
|
+ dataType = ele.slice(0, 1);
|
|
|
+ ids.forEach(ele2 => {
|
|
|
+ if (ele2 == keyId && dataType == 'C') {
|
|
|
+ data[ele].forEach(ele3 => {
|
|
|
+ fs.push(ele3.fs)
|
|
|
+ zs.push(ele3.zs)
|
|
|
+ })
|
|
|
+ } else if (ele2 == keyId && dataType == 'S') {
|
|
|
+ dotData.push({
|
|
|
+ title: keyId,
|
|
|
+ value: data[ele]
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ that.scatterLineData.data = dotData;
|
|
|
+ that.scatterLineData.lineData.data = [fs, zs];
|
|
|
+ BASE.closeLoading();
|
|
|
+ that.dialog = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ dbfx() {
|
|
|
+ var that = this;
|
|
|
+ if (that.ids.length <= 5 && that.ids.length != 0) {
|
|
|
+ that.chart(that.ids, that.windId);
|
|
|
+ } else {
|
|
|
+ this.BASE.showMsg({
|
|
|
+ type: "warning",
|
|
|
+ msg: "请选择测点后再对比",
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ },
|
|
|
+ list() {
|
|
|
+ var that = this;
|
|
|
+ let station = '';
|
|
|
+ if (typeof that.time[0].valueOf() != 'string') {
|
|
|
+ that.time[0] = that.formatDate(that.time[0].valueOf())
|
|
|
+ }
|
|
|
+ if (typeof that.time[1].valueOf() != 'string') {
|
|
|
+ that.time[1] = that.formatDate(that.time[1].valueOf())
|
|
|
+ }
|
|
|
+ if (typeof that.station.valueOf() == 'string') {
|
|
|
+ that.ChangZhan.forEach(ele => {
|
|
|
+ if (ele.name == that.station) {
|
|
|
+ station = ele.id
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (that.model.length == 0) {
|
|
|
+ that.BASE.showMsg({
|
|
|
+ type: "warning",
|
|
|
+ msg: "请选择风机型号",
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ that.API.requestData({
|
|
|
+ showLoading: true,
|
|
|
+ method: "GET",
|
|
|
+ baseURL: "http://192.168.1.18:9002/",
|
|
|
+ subUrl: "case/performance/list",
|
|
|
+ data: {
|
|
|
+ tag: that.yblx,
|
|
|
+ stationen: station ? station : that.station,
|
|
|
+ model: that.model,
|
|
|
+ starttime: that.time[0].valueOf(),
|
|
|
+ endtime: that.time[1].valueOf()
|
|
|
+ },
|
|
|
+ success(res) {
|
|
|
+ if (res.code == 200) {
|
|
|
+ if (res.data.length) {
|
|
|
+ let data = res.data;
|
|
|
+ that.tableData.data = [];
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ let obj = {
|
|
|
+ index: i + 1,
|
|
|
+ tag: data[i].tag == 0 ? '正样本' : '负样本',
|
|
|
+ windturbineid: data[i].windturbineid,
|
|
|
+ starttime: data[i].starttime,
|
|
|
+ endtime: data[i].endtime,
|
|
|
+ id: data[i].id
|
|
|
+ };
|
|
|
+ that.tableData.data.push(obj);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.startAjax();
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ station(res) {
|
|
|
+ let fjxh = [];
|
|
|
+ this.fjxhArr.forEach(ele => {
|
|
|
+ if (ele.id == res) {
|
|
|
+ ele.value.forEach(ele2 => {
|
|
|
+ fjxh.push({
|
|
|
+ label: ele2,
|
|
|
+ value: ele2
|
|
|
+ })
|
|
|
+ })
|
|
|
+ this.model = ele.value;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.fjxh = fjxh;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ };
|
|
|
</script>
|
|
|
-<style scoped>
|
|
|
-.newsDiv {
|
|
|
- color: rgba(255, 255, 255, 0.75);
|
|
|
- background-color: rgba(255, 255, 255, 0.1);
|
|
|
- margin-bottom: 8px;
|
|
|
- line-height: 3.4259vh;
|
|
|
- padding: 0 15px;
|
|
|
-}
|
|
|
-.newspan {
|
|
|
- line-height: 30px;
|
|
|
- cursor: pointer;
|
|
|
- padding: 0 1vw;
|
|
|
- margin: 0 2px;
|
|
|
- color: #9ca5a8;
|
|
|
- transition: color 0.2s ease-in-out;
|
|
|
- position: relative;
|
|
|
-}
|
|
|
-.newspan:hover {
|
|
|
- background: linear-gradient(
|
|
|
- to top,
|
|
|
- rgba(5, 187, 76, 0.5),
|
|
|
- rgba(5, 187, 76, 0)
|
|
|
- );
|
|
|
- color: white;
|
|
|
- position: relative;
|
|
|
-}
|
|
|
-.newspan:hover::after {
|
|
|
- content: "";
|
|
|
- position: absolute;
|
|
|
- width: 100%;
|
|
|
- height: 0.463vh;
|
|
|
- border: 0.093vh solid #05bb4c;
|
|
|
- border-top: 0;
|
|
|
- left: 0;
|
|
|
- bottom: 0;
|
|
|
- box-sizing: border-box;
|
|
|
-}
|
|
|
-.active {
|
|
|
- background: linear-gradient(
|
|
|
- to top,
|
|
|
- rgba(5, 187, 76, 0.5),
|
|
|
- rgba(5, 187, 76, 0)
|
|
|
- );
|
|
|
- color: white;
|
|
|
- position: relative;
|
|
|
-}
|
|
|
-.active::after {
|
|
|
- content: "";
|
|
|
- position: absolute;
|
|
|
- width: 100%;
|
|
|
- height: 0.463vh;
|
|
|
- border: 0.093vh solid #05bb4c;
|
|
|
- border-top: 0;
|
|
|
- left: 0;
|
|
|
- bottom: 0;
|
|
|
- box-sizing: border-box;
|
|
|
-}
|
|
|
-.title {
|
|
|
- background: rgba(255, 255, 255, 0.1);
|
|
|
- margin-bottom: 8px;
|
|
|
- padding: 1vh;
|
|
|
-}
|
|
|
-</style>
|
|
|
-<style lang="less">
|
|
|
-.decision-page-2 {
|
|
|
- .content .project-table {
|
|
|
- tbody {
|
|
|
- height: calc(100vh - 24.5vh);
|
|
|
- }
|
|
|
- }
|
|
|
- .project-table {
|
|
|
- overflow: auto;
|
|
|
- tbody {
|
|
|
- height: 239px;
|
|
|
- }
|
|
|
-
|
|
|
- th,
|
|
|
- td {
|
|
|
- color: #b2bdc0;
|
|
|
-
|
|
|
- &:nth-child(1) {
|
|
|
- width: 50px;
|
|
|
- }
|
|
|
-
|
|
|
- &:nth-child(2) {
|
|
|
- width: 50px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- .action {
|
|
|
- text-decoration: underline;
|
|
|
- color: @green;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
-}
|
|
|
+<style lang="less" scoped>
|
|
|
+ .el-select.w {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
</style>
|