|
@@ -2,13 +2,13 @@
|
|
|
<div class="health-2">
|
|
|
<div class="power-info mg-b-16">
|
|
|
<div class="info-tab">
|
|
|
- <div class="tab active" @click="changeDate">
|
|
|
+ <div class="tab" :class="type === '2' ? 'active' : ''" @click="changeDate('2')">
|
|
|
<i class="svg-icon svg-icon svg-icon-sm">
|
|
|
<svg-icon :svgid="'svg-h-day'" />
|
|
|
</i>
|
|
|
<span> 7日健康趋势 </span>
|
|
|
</div>
|
|
|
- <div class="tab">
|
|
|
+ <div class="tab" :class="type === '3' ? 'active' : ''" @click="changeDate('3')">
|
|
|
<i class="svg-icon svg-icon svg-icon-sm">
|
|
|
<svg-icon :svgid="'svg-h-month'" />
|
|
|
</i>
|
|
@@ -21,51 +21,51 @@
|
|
|
</div>
|
|
|
<div class="info-chart">
|
|
|
<panel class="info-chart-panel" :title="'损失电量分析'">
|
|
|
- <vertival-bar-line-chart :height="'310px'" />
|
|
|
+ <vertival-bar-line-chart :bardata="bardata" :lineData="lineData" :height="'310px'" />
|
|
|
</panel>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="fc-info mg-b-16">
|
|
|
- <div class="fc-item">
|
|
|
- <div class="title">牛首山风场</div>
|
|
|
+ <div class="fc-item" v-for="(item, index) in wpmap" :key="index">
|
|
|
+ <div class="title">{{item.name}}</div>
|
|
|
<div class="tags">
|
|
|
<div class="tag">
|
|
|
<i class="svg-icon svg-icon-gray-l svg-icon-lg">
|
|
|
- <svg-icon :svgid="'svg-duoyun'" />
|
|
|
+ <svg-icon :svgid="item.svgIcon" />
|
|
|
</i>
|
|
|
</div>
|
|
|
<div class="tag">
|
|
|
<div class="tag-title">实时风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
+ <div class="tag-value">{{item.sjfs}}<span class="unit">m/s</span></div>
|
|
|
</div>
|
|
|
<div class="tag">
|
|
|
<div class="tag-title">预测风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
+ <div class="tag-value">{{item.ycfs}}<span class="unit">m/s</span></div>
|
|
|
</div>
|
|
|
<div class="tag">
|
|
|
<div class="tag-title">健康度(优)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
+ <div class="tag-value">{{item.ysl}}<span class="unit">台</span></div>
|
|
|
</div>
|
|
|
<div class="tag">
|
|
|
<div class="tag-title">健康度(良)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
+ <div class="tag-value">{{item.lsl}}<span class="unit">台</span></div>
|
|
|
</div>
|
|
|
<div class="tag">
|
|
|
<div class="tag-title">健康度(差)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
+ <div class="tag-value">{{item.csl}}<span class="unit">台</span></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="health-info">
|
|
|
<div class="title">
|
|
|
设备健康度
|
|
|
<div class="actions">
|
|
|
- <div class="action active">
|
|
|
+ <div class="action" :class="item.showType === '1' ? 'active' : ''" @click="changeWpShowType(index, '1')">
|
|
|
<i class="svg-icon svg-icon-sm">
|
|
|
<svg-icon :svgid="'svg-wind-site'" />
|
|
|
</i>
|
|
|
比例
|
|
|
</div>
|
|
|
- <div class="action">
|
|
|
+ <div class="action" :class="item.showType === '2' ? 'active' : ''" @click="changeWpShowType(index, '2')">
|
|
|
<i class="svg-icon svg-icon-sm">
|
|
|
<svg-icon :svgid="'svg-wind-site'" />
|
|
|
</i>
|
|
@@ -74,262 +74,14 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="info-body">
|
|
|
- <div class="proportion-info">
|
|
|
- <thermometer-chart :height="'120px'" :width="'80px'" />
|
|
|
- <dashboard :height="'150px'" :width="'150px'" />
|
|
|
+ <div class="proportion-info" v-show="item.showType === '1'">
|
|
|
+ <thermometer-chart :value="item.jkd" :height="'120px'" :width="'80px'" />
|
|
|
+ <dashboard :value="item.csl" :max="item.jrts" :height="'150px'" :width="'150px'" />
|
|
|
</div>
|
|
|
- <div class="device-list"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fc-item">
|
|
|
- <div class="title">牛首山风场</div>
|
|
|
- <div class="tags">
|
|
|
- <div class="tag">
|
|
|
- <i class="svg-icon svg-icon-gray-l svg-icon-lg">
|
|
|
- <svg-icon :svgid="'svg-duoyun'" />
|
|
|
- </i>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">实时风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">预测风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(优)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(良)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(差)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="health-info">
|
|
|
- <div class="title">
|
|
|
- 设备健康度
|
|
|
- <div class="actions">
|
|
|
- <div class="action active">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 比例
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 风机号
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="info-body">
|
|
|
- <div class="proportion-info" v-show="false">
|
|
|
- <thermometer-chart :height="'120px'" :width="'80px'" />
|
|
|
- <dashboard :height="'150px'" :width="'150px'" />
|
|
|
- </div>
|
|
|
- <div class="device-list">
|
|
|
- <div class="item green">1号</div>
|
|
|
- <div class="item purple">1号</div>
|
|
|
- <div class="item orange">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- <div class="item">1号</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fc-item">
|
|
|
- <div class="title">牛首山风场</div>
|
|
|
- <div class="tags">
|
|
|
- <div class="tag">
|
|
|
- <i class="svg-icon svg-icon-gray-l svg-icon-lg">
|
|
|
- <svg-icon :svgid="'svg-duoyun'" />
|
|
|
- </i>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">实时风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">预测风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(优)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(良)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(差)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="health-info">
|
|
|
- <div class="title">
|
|
|
- 设备健康度
|
|
|
- <div class="actions">
|
|
|
- <div class="action active">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 比例
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 风机号
|
|
|
- </div>
|
|
|
+ <div class="device-list" v-show="item.showType === '2'">
|
|
|
+ <div class="item red" v-for="(gzItem, gzIndex) in item.gzId" :key="gzIndex">{{gzItem.name}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="info-body">
|
|
|
- <div class="proportion-info">
|
|
|
- <thermometer-chart :height="'120px'" :width="'80px'" />
|
|
|
- <dashboard :height="'150px'" :width="'150px'" />
|
|
|
- </div>
|
|
|
- <div class="device-list"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fc-item">
|
|
|
- <div class="title">牛首山风场</div>
|
|
|
- <div class="tags">
|
|
|
- <div class="tag">
|
|
|
- <i class="svg-icon svg-icon-gray-l svg-icon-lg">
|
|
|
- <svg-icon :svgid="'svg-duoyun'" />
|
|
|
- </i>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">实时风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">预测风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(优)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(良)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(差)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="health-info">
|
|
|
- <div class="title">
|
|
|
- 设备健康度
|
|
|
- <div class="actions">
|
|
|
- <div class="action active">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 比例
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 风机号
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="info-body">
|
|
|
- <div class="proportion-info">
|
|
|
- <thermometer-chart :height="'120px'" :width="'80px'" />
|
|
|
- <dashboard :height="'150px'" :width="'150px'" />
|
|
|
- </div>
|
|
|
- <div class="device-list"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fc-item">
|
|
|
- <div class="title">牛首山风场</div>
|
|
|
- <div class="tags">
|
|
|
- <div class="tag">
|
|
|
- <i class="svg-icon svg-icon-gray-l svg-icon-lg">
|
|
|
- <svg-icon :svgid="'svg-duoyun'" />
|
|
|
- </i>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">实时风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">预测风速</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">m/s</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(优)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(良)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- <div class="tag">
|
|
|
- <div class="tag-title">健康度(差)</div>
|
|
|
- <div class="tag-value">12.34<span class="unit">台</span></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="health-info">
|
|
|
- <div class="title">
|
|
|
- 设备健康度
|
|
|
- <div class="actions">
|
|
|
- <div class="action active">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 比例
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <i class="svg-icon svg-icon-sm">
|
|
|
- <svg-icon :svgid="'svg-wind-site'" />
|
|
|
- </i>
|
|
|
- 风机号
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="info-body">
|
|
|
- <div class="proportion-info">
|
|
|
- <thermometer-chart :height="'120px'" :width="'80px'" />
|
|
|
- <dashboard :height="'150px'" :width="'150px'" />
|
|
|
- </div>
|
|
|
- <div class="device-list"></div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -351,92 +103,117 @@ export default {
|
|
|
components: { SvgIcon, Panel, VertivalBarLineChart, ThermometerChart, Dashboard, Table },
|
|
|
data() {
|
|
|
return {
|
|
|
+ type: "2",
|
|
|
+ bardata:{
|
|
|
+ area:[],
|
|
|
+ legend:[],
|
|
|
+ data:[[]]
|
|
|
+ },
|
|
|
+ wpmap:[],
|
|
|
+ lineData:[],
|
|
|
tableData: {
|
|
|
column: [
|
|
|
{
|
|
|
- name: "",
|
|
|
- field: "index",
|
|
|
+ name: "风机编号",
|
|
|
+ field: "windTurbineId",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
},
|
|
|
{
|
|
|
- name: "项目",
|
|
|
- field: "name",
|
|
|
+ name: "故障时间",
|
|
|
+ field: "stopTime",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
},
|
|
|
{
|
|
|
- name: "项目",
|
|
|
- field: "lqf",
|
|
|
+ name: "故障类型",
|
|
|
+ field: "stopTypeId",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
},
|
|
|
{
|
|
|
- name: "项目",
|
|
|
- field: "yggl",
|
|
|
+ name: "报警描述",
|
|
|
+ field: "warningId",
|
|
|
is_num: false,
|
|
|
is_light: false,
|
|
|
},
|
|
|
- {
|
|
|
- name: "项目",
|
|
|
- field: "yyy",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- },
|
|
|
- {
|
|
|
- name: "项目",
|
|
|
- field: "pcspp",
|
|
|
- is_num: false,
|
|
|
- is_light: false,
|
|
|
- },
|
|
|
- ],
|
|
|
- data: [
|
|
|
- {
|
|
|
- index: 1,
|
|
|
- name: "MG01-01",
|
|
|
- lqf: "0.1000",
|
|
|
- yggl: "0.1000",
|
|
|
- yyy: "0.10",
|
|
|
- pcspp: "0.1000",
|
|
|
- u1: "0.1000",
|
|
|
- u2: "0.1000",
|
|
|
- v1: "0.1000",
|
|
|
- v2: "0.1000",
|
|
|
- w1: "0.1000",
|
|
|
- w2: "0.1000",
|
|
|
- zca: "0.1000",
|
|
|
- zcb: "0.1000",
|
|
|
- clx: "0.1000",
|
|
|
- clx1: "0.1000",
|
|
|
- clx2: "0.1000",
|
|
|
- jc: "0.1000",
|
|
|
- hh: "0.1000",
|
|
|
- hj: "0.1000",
|
|
|
- is_light: false,
|
|
|
- },
|
|
|
],
|
|
|
+ data: [],
|
|
|
},
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
- for (let i = 1; i < 20; i++) {
|
|
|
- this.tableData.data.push(JSON.parse(JSON.stringify(this.tableData.data[0])));
|
|
|
- this.tableData.data[i].index = i + 1;
|
|
|
- }
|
|
|
-
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "POST",
|
|
|
- subUrl: "recommen/findAllChartjz",
|
|
|
- data: {
|
|
|
- wpId: "0",
|
|
|
- type: that.type
|
|
|
- },
|
|
|
- success (res) {
|
|
|
- console.log(123123,res);
|
|
|
- }
|
|
|
- });
|
|
|
+ this.requestData();
|
|
|
+ this.getAllMap();
|
|
|
},
|
|
|
+
|
|
|
+ methods:{
|
|
|
+ // 获取顶部柱状图数据
|
|
|
+ requestData(){
|
|
|
+ let that = this;
|
|
|
+ that.API.requestData({
|
|
|
+ method: "POST",
|
|
|
+ subUrl: "recommen/findAllChartjz",
|
|
|
+ data: {
|
|
|
+ wpId: "0",
|
|
|
+ type: that.type
|
|
|
+ },
|
|
|
+ success (res) {
|
|
|
+ // 顶部图表绿线
|
|
|
+ let lineData = res.data.lvchart;
|
|
|
+
|
|
|
+ let area = res.data.datechart;
|
|
|
+ let legend = ["优数量", "良数量", "差数量"];
|
|
|
+ let data = [];
|
|
|
+
|
|
|
+ let dataLength = res.data.datechart.length;
|
|
|
+
|
|
|
+ for(let i=0;i<dataLength;i++){
|
|
|
+ data.push([res.data.yslchart[i], res.data.lslchart[i], res.data.cslchart[i]]);
|
|
|
+ }
|
|
|
+
|
|
|
+ let bardata = {
|
|
|
+ area,
|
|
|
+ legend,
|
|
|
+ data
|
|
|
+ };
|
|
|
+
|
|
|
+ that.bardata = bardata;
|
|
|
+ that.lineData = lineData;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ getAllMap(){
|
|
|
+ let that = this;
|
|
|
+ that.API.requestData({
|
|
|
+ method: "POST",
|
|
|
+ subUrl: "healthmain/findAllMap",
|
|
|
+ success (res) {
|
|
|
+
|
|
|
+ res.data.wpmap.forEach(ele=>{
|
|
|
+ if(ele.tqyb < 10) ele.tqyb = ("0" + ele.tqyb);
|
|
|
+ ele.showType = "1";
|
|
|
+ ele.svgIcon = ("svg-" + ele.tqyb);
|
|
|
+ });
|
|
|
+
|
|
|
+ that.wpmap = res.data.wpmap;
|
|
|
+
|
|
|
+ that.tableData.data = res.data.gzls;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 改变风场显示类型
|
|
|
+ changeWpShowType(index, showType){
|
|
|
+ this.wpmap[index].showType = showType;
|
|
|
+ },
|
|
|
+
|
|
|
+ changeDate(type){
|
|
|
+ this.type = type;
|
|
|
+ this.requestData();
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
|