|
@@ -2,14 +2,14 @@
|
|
|
<div class="sand-table" id="sandTable">
|
|
|
<img :src="require('@assets/png/3dback.png')" class="i3dback" />
|
|
|
<!-- <img :src="require('@assets/png/3dcloud.png')" class="i3dcloud" /> -->
|
|
|
- <StBack></StBack>
|
|
|
- <ThreeModel1
|
|
|
+ <!-- <StBack></StBack> -->
|
|
|
+ <!-- <ThreeModel1
|
|
|
class="three-model-layer"
|
|
|
:data="mapSource"
|
|
|
@when="when"
|
|
|
@clickMapItem="clickMapItem"
|
|
|
- ></ThreeModel1>
|
|
|
- <div class="sand-table-left" v-if="showPanel">
|
|
|
+ ></ThreeModel1> -->
|
|
|
+ <div class="sand-table-left">
|
|
|
<PanelSand
|
|
|
class="left-panel"
|
|
|
title="气象预测"
|
|
@@ -46,101 +46,15 @@
|
|
|
</template>
|
|
|
</PanelSandToolbar>
|
|
|
</div>
|
|
|
- <div class="sand-table-right" v-if="showPanel">
|
|
|
- <PanelSand class="right-panel" title="视频监控">
|
|
|
- <!-- <el-row v-for="(pItem, pIndex) in videoArray" :key="pIndex">
|
|
|
- <el-col
|
|
|
- :span="12"
|
|
|
- class="pre-img-box"
|
|
|
- v-for="(cItem, cIndex) in pItem"
|
|
|
- :key="cIndex"
|
|
|
- @click="openVideoDialog(cItem)"
|
|
|
- >
|
|
|
- <div class="mask"></div>
|
|
|
- <iframe
|
|
|
- class="pre-img videoBoxiframe"
|
|
|
- :class="cItem.class"
|
|
|
- width="95%"
|
|
|
- height="8.657vh"
|
|
|
- :src="cItem.url + cItem.token"
|
|
|
- v-if="cItem.switch"
|
|
|
- />
|
|
|
- </el-col> -->
|
|
|
- <el-row v-for="(pItem, pIndex) in videoArray1" :key="pIndex">
|
|
|
- <el-col
|
|
|
- :span="12"
|
|
|
- class="pre-img-box"
|
|
|
- v-for="(cItem, cIndex) in pItem"
|
|
|
- :key="cIndex"
|
|
|
- @click="openVideoDialog1(cItem)"
|
|
|
- >
|
|
|
- <div class="mask"></div>
|
|
|
- <hlsVideo
|
|
|
- class="pre-img videoBoxiframe"
|
|
|
- width="95%"
|
|
|
- height="8.657vh"
|
|
|
- :code="cItem.code"
|
|
|
- :class="cItem.class"
|
|
|
- v-if="cItem.switch"
|
|
|
- />
|
|
|
- <!-- <iframe
|
|
|
- class="pre-img videoBoxiframe"
|
|
|
- :class="cItem.class"
|
|
|
- width="95%"
|
|
|
- height="8.657vh"
|
|
|
- src="http://192.168.1.18:1935/hls/NSS_FDC_ZK/index.m3u8"
|
|
|
- v-if="cItem.switch"
|
|
|
- /> -->
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </PanelSand>
|
|
|
- <PanelSand class="right-panel mg-t-16" title="工单管理">
|
|
|
- <div
|
|
|
- class="person-info-box mg-t-16 animated a0"
|
|
|
- :class="peopleClass"
|
|
|
- v-if="workData.data[0]"
|
|
|
- >
|
|
|
- <img
|
|
|
- class="header mg-r-8 bg-green"
|
|
|
- style="width: 75px; height: 75px; cursor: pointer"
|
|
|
- :src="workData.data[workDataIndex].imgurl"
|
|
|
- @click="jumpUrl('/health/frist?tab=2')"
|
|
|
- />
|
|
|
- <div class="person-info">
|
|
|
- <div class="green font-lg" style="font-weight: bold">
|
|
|
- {{ workData.data[workDataIndex].laborname }}
|
|
|
- </div>
|
|
|
- <div class="white font-sm">
|
|
|
- <span>职务:{{ workData.data[workDataIndex].jobcode }}</span>
|
|
|
- <!-- <span class="mg-l-16">当前任务编号 000000</span> -->
|
|
|
- </div>
|
|
|
- <div class="white font-sm">
|
|
|
- <!-- 平均检修时间 <span class="green">5</span> 小时 -->
|
|
|
- 开始时间
|
|
|
- <span class="green">{{
|
|
|
- workData.data[workDataIndex].starttime
|
|
|
- }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="table mg-t-8" style="min-height: 180px">
|
|
|
- <Table :data="workData" />
|
|
|
- </div>
|
|
|
- </PanelSand>
|
|
|
- <PanelSandToolbar class="right-panel mg-t-16" title="部件">
|
|
|
- <template v-slot:tools>
|
|
|
- <div class="exchange" @click="changeBjSwitch">
|
|
|
- <span :class="bjSwitch ? 'gray' : 'green'">库存</span>
|
|
|
- <i class="green fa fa-exchange mg-l-8 mg-r-8"></i>
|
|
|
- <span :class="bjSwitch ? 'green' : 'gray'">记录</span>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template v-slot:default>
|
|
|
- <RadarPieChart height="21vh" :list="bjChartData" title="部件情况" />
|
|
|
- </template>
|
|
|
- </PanelSandToolbar>
|
|
|
- </div>
|
|
|
- <div class="sand-table-bottom" :style="$store.state.themeName === 'dark' ? 'right: calc(50vw - 545px);' : 'right: calc(50vw - 590px);'" v-if="showPanel">
|
|
|
+
|
|
|
+ <div
|
|
|
+ class="sand-table-bottom"
|
|
|
+ :style="
|
|
|
+ $store.state.themeName === 'dark'
|
|
|
+ ? 'right: calc(50vw - 545px);'
|
|
|
+ : 'right: calc(50vw - 590px);'
|
|
|
+ "
|
|
|
+ >
|
|
|
<Ppanel
|
|
|
title="利用小时"
|
|
|
:data="riseNumber(gxkmap.bg_dxkyss)"
|
|
@@ -535,8 +449,7 @@ import Col from "@com/coms/grid/col.vue";
|
|
|
import Row from "@com/coms/grid/row.vue";
|
|
|
import SvgIcon from "@com/coms/icon/svg-icon.vue";
|
|
|
import hlsVideo from "./component/hls.vue";
|
|
|
-import api from "@api/wisdomOverhaul/one/index.js"
|
|
|
-// import api from "@api/wisdomOverhaul/windResource/index.js";
|
|
|
+import api from "@api/wisdomOverhaul/index";
|
|
|
|
|
|
export default {
|
|
|
// 名称
|
|
@@ -785,16 +698,11 @@ export default {
|
|
|
},
|
|
|
|
|
|
getWtInfo() {
|
|
|
-
|
|
|
-
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "POST",
|
|
|
- subUrl: "sandtable/findWtInfo",
|
|
|
- data: {
|
|
|
- wpId: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
+ api
|
|
|
+ .sandtableFindWtInfo({
|
|
|
+ wpId: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
res.data.tqmap5.ls.forEach((ele) => {
|
|
|
ele.time = new Date(ele.time).formatDate("yyyy-MM-dd hh:mm");
|
|
|
});
|
|
@@ -822,8 +730,8 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- that.tqmap1 = res.data.tqmap1;
|
|
|
- that.tqmap5 = res.data.tqmap5.ls;
|
|
|
+ this.tqmap1 = res.data.tqmap1;
|
|
|
+ this.tqmap5 = res.data.tqmap5.ls;
|
|
|
|
|
|
res.data.sels.forEach((ele) => {
|
|
|
ele.stopTime = new Date(ele.stopTime).formatDate(
|
|
@@ -840,40 +748,103 @@ export default {
|
|
|
);
|
|
|
});
|
|
|
|
|
|
- that.sels.data = res.data.sels;
|
|
|
- that.rmls.data = res.data.rmls;
|
|
|
- that.gxkmap = res.data.gxkmap;
|
|
|
- that.weatherChart = weatherChart;
|
|
|
- },
|
|
|
- });
|
|
|
+ this.sels.data = res.data.sels;
|
|
|
+ this.rmls.data = res.data.rmls;
|
|
|
+ this.gxkmap = res.data.gxkmap;
|
|
|
+ this.weatherChart = weatherChart;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "POST",
|
|
|
+ // subUrl: "sandtable/findWtInfo",
|
|
|
+ // data: {
|
|
|
+ // wpId: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // res.data.tqmap5.ls.forEach((ele) => {
|
|
|
+ // ele.time = new Date(ele.time).formatDate("yyyy-MM-dd hh:mm");
|
|
|
+ // });
|
|
|
+
|
|
|
+ // const keys = ["wd", "sd"];
|
|
|
+ // let weatherChart = [
|
|
|
+ // {
|
|
|
+ // title: "温度",
|
|
|
+ // smooth: true,
|
|
|
+ // value: [],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // title: "湿度",
|
|
|
+ // smooth: true,
|
|
|
+ // value: [],
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+
|
|
|
+ // keys.forEach((key, keyIndex) => {
|
|
|
+ // res.data.tqmap5.ls.forEach((ele) => {
|
|
|
+ // weatherChart[keyIndex].value.push({
|
|
|
+ // text: ele.time,
|
|
|
+ // value: ele[key],
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+
|
|
|
+ // that.tqmap1 = res.data.tqmap1;
|
|
|
+ // that.tqmap5 = res.data.tqmap5.ls;
|
|
|
+
|
|
|
+ // res.data.sels.forEach((ele) => {
|
|
|
+ // ele.stopTime = new Date(ele.stopTime).formatDate(
|
|
|
+ // "yyyy-MM-dd hh:mm:ss"
|
|
|
+ // );
|
|
|
+ // ele.startTime = new Date(ele.stopTime).formatDate(
|
|
|
+ // "yyyy-MM-dd hh:mm:ss"
|
|
|
+ // );
|
|
|
+ // });
|
|
|
+
|
|
|
+ // res.data.rmls.forEach((ele) => {
|
|
|
+ // ele.recodedate = new Date(ele.recodedate).formatDate(
|
|
|
+ // "yyyy-MM-dd hh:mm:ss"
|
|
|
+ // );
|
|
|
+ // });
|
|
|
+
|
|
|
+ // that.sels.data = res.data.sels;
|
|
|
+ // that.rmls.data = res.data.rmls;
|
|
|
+ // that.gxkmap = res.data.gxkmap;
|
|
|
+ // that.weatherChart = weatherChart;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取中部地图数据
|
|
|
getWpHealthInfo() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "POST",
|
|
|
- subUrl: "sandtable/judgeWpHealth",
|
|
|
- data: {
|
|
|
- wpId: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
- that.mapSource = res.data;
|
|
|
- },
|
|
|
- });
|
|
|
+ api
|
|
|
+ .sandtableJudgeWpHealth({
|
|
|
+ wpId: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ this.mapSource = res.data;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "POST",
|
|
|
+ // subUrl: "sandtable/judgeWpHealth",
|
|
|
+ // data: {
|
|
|
+ // wpId: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // that.mapSource = res.data;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取报警玫瑰图
|
|
|
getWarnMGT() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://192.168.1.18:8075/",
|
|
|
- subUrl: "alarm/count/query/alltotal",
|
|
|
- data: {
|
|
|
- stationid: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
+ api
|
|
|
+ .queryAlltotal({
|
|
|
+ stationid: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
let warnChartData = [];
|
|
|
for (let key in res.data) {
|
|
|
const ele = res.data[key];
|
|
@@ -882,22 +853,38 @@ export default {
|
|
|
name: ele.relatePartsText,
|
|
|
});
|
|
|
}
|
|
|
- that.warnChartData = warnChartData;
|
|
|
- },
|
|
|
- });
|
|
|
+ this.warnChartData = warnChartData;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://192.168.1.18:8075/",
|
|
|
+ // subUrl: "alarm/count/query/alltotal",
|
|
|
+ // data: {
|
|
|
+ // stationid: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // let warnChartData = [];
|
|
|
+ // for (let key in res.data) {
|
|
|
+ // const ele = res.data[key];
|
|
|
+ // warnChartData.push({
|
|
|
+ // value: ele.count,
|
|
|
+ // name: ele.relatePartsText,
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // that.warnChartData = warnChartData;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取故障玫瑰图
|
|
|
getStopMGT() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://192.168.1.18:8075/",
|
|
|
- subUrl: "shutdown/count/alltotal",
|
|
|
- data: {
|
|
|
- stId: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
+ api
|
|
|
+ .countAlltotal({
|
|
|
+ stId: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
let warnChartData = [];
|
|
|
for (let key in res.data) {
|
|
|
const ele = res.data[key];
|
|
@@ -906,22 +893,38 @@ export default {
|
|
|
name: ele.type,
|
|
|
});
|
|
|
}
|
|
|
- that.warnChartData = warnChartData;
|
|
|
- },
|
|
|
- });
|
|
|
+ this.warnChartData = warnChartData;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://192.168.1.18:8075/",
|
|
|
+ // subUrl: "shutdown/count/alltotal",
|
|
|
+ // data: {
|
|
|
+ // stId: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // let warnChartData = [];
|
|
|
+ // for (let key in res.data) {
|
|
|
+ // const ele = res.data[key];
|
|
|
+ // warnChartData.push({
|
|
|
+ // value: ele.count,
|
|
|
+ // name: ele.type,
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // that.warnChartData = warnChartData;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取库存玫瑰图
|
|
|
getRepertoryMGT() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://192.168.1.18:9988/",
|
|
|
- subUrl: "inventory/groupcount",
|
|
|
- data: {
|
|
|
- stId: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
+ api
|
|
|
+ .inventoryGroupcount({
|
|
|
+ stId: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
let bjChartData = [];
|
|
|
for (let key in res.data) {
|
|
|
const ele = res.data[key];
|
|
@@ -930,22 +933,38 @@ export default {
|
|
|
name: ele.description,
|
|
|
});
|
|
|
}
|
|
|
- that.bjChartData = bjChartData;
|
|
|
- },
|
|
|
- });
|
|
|
+ this.bjChartData = bjChartData;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://192.168.1.18:9988/",
|
|
|
+ // subUrl: "inventory/groupcount",
|
|
|
+ // data: {
|
|
|
+ // stId: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // let bjChartData = [];
|
|
|
+ // for (let key in res.data) {
|
|
|
+ // const ele = res.data[key];
|
|
|
+ // bjChartData.push({
|
|
|
+ // value: ele.curbal,
|
|
|
+ // name: ele.description,
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // that.bjChartData = bjChartData;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取记录玫瑰图
|
|
|
getRecordMGT() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://192.168.1.18:9988/",
|
|
|
- subUrl: "equoperationrecord/equupdatecount",
|
|
|
- data: {
|
|
|
- stId: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
+ api
|
|
|
+ .equoperationrecordEquupdatecount({
|
|
|
+ stId: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
let bjChartData = [];
|
|
|
for (let key in res.data) {
|
|
|
const ele = res.data[key];
|
|
@@ -954,46 +973,87 @@ export default {
|
|
|
name: ele.description,
|
|
|
});
|
|
|
}
|
|
|
- that.bjChartData = bjChartData;
|
|
|
- },
|
|
|
- });
|
|
|
+ this.bjChartData = bjChartData;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://192.168.1.18:9988/",
|
|
|
+ // subUrl: "equoperationrecord/equupdatecount",
|
|
|
+ // data: {
|
|
|
+ // stId: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // let bjChartData = [];
|
|
|
+ // for (let key in res.data) {
|
|
|
+ // const ele = res.data[key];
|
|
|
+ // bjChartData.push({
|
|
|
+ // value: ele.count,
|
|
|
+ // name: ele.description,
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // that.bjChartData = bjChartData;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取中部地图数据
|
|
|
getTop4Info() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://192.168.1.18:9988/",
|
|
|
- subUrl: "equoperationrecord/top4",
|
|
|
- data: {
|
|
|
- stId: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
+ api
|
|
|
+ .equoperationrecordTop4({
|
|
|
+ stId: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
res.data.forEach((ele, index) => {
|
|
|
ele.index = index;
|
|
|
ele.jobcode = ele.jobcode || "------";
|
|
|
});
|
|
|
- that.workData.data = res.data;
|
|
|
- },
|
|
|
- });
|
|
|
+ this.workData.data = res.data;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://192.168.1.18:9988/",
|
|
|
+ // subUrl: "equoperationrecord/top4",
|
|
|
+ // data: {
|
|
|
+ // stId: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // res.data.forEach((ele, index) => {
|
|
|
+ // ele.index = index;
|
|
|
+ // ele.jobcode = ele.jobcode || "------";
|
|
|
+ // });
|
|
|
+ // that.workData.data = res.data;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
// 获取主要指标
|
|
|
getWpMainInfo() {
|
|
|
- let that = this;
|
|
|
- that.API.requestData({
|
|
|
- method: "GET",
|
|
|
- baseURL: "http://10.155.32.4:8034/",
|
|
|
- subUrl: "benchmark/zyzb",
|
|
|
- data: {
|
|
|
- windPowerStation: that.wpId,
|
|
|
- },
|
|
|
- success(res) {
|
|
|
- that.mainInfo = res.data;
|
|
|
- that.showMainInfoDialog = true;
|
|
|
- },
|
|
|
- });
|
|
|
+ api
|
|
|
+ .benchmarkZyzb({
|
|
|
+ windPowerStation: this.wpId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ this.mainInfo = res.data;
|
|
|
+ this.showMainInfoDialog = true;
|
|
|
+ });
|
|
|
+
|
|
|
+ // let that = this;
|
|
|
+ // that.API.requestData({
|
|
|
+ // method: "GET",
|
|
|
+ // baseURL: "http://10.155.32.4:8034/",
|
|
|
+ // subUrl: "benchmark/zyzb",
|
|
|
+ // data: {
|
|
|
+ // windPowerStation: that.wpId,
|
|
|
+ // },
|
|
|
+ // success(res) {
|
|
|
+ // that.mainInfo = res.data;
|
|
|
+ // that.showMainInfoDialog = true;
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
clickStopRow(row) {
|