|
@@ -8,31 +8,49 @@
|
|
|
<span>风场编号</span><span>{{ hoverInfo.codeNumber }}</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>空气密度</span><span>{{ hoverInfo.density }} kg/m3</span>
|
|
|
+ <span>风机数量</span><span>{{ newWind.engineTotalCount }} 台</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>总额定容量</span
|
|
|
- ><span
|
|
|
- >{{
|
|
|
- hoverInfo?.ratedCapacityNumber
|
|
|
- ? hoverInfo.ratedCapacityNumber
|
|
|
- : 0
|
|
|
- }}/KW</span
|
|
|
- >
|
|
|
+ <span>总容量</span><span>{{
|
|
|
+ newWind?.ratedCapacityNumber ? newWind.ratedCapacityNumber : 0
|
|
|
+ }}/KW</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>经度</span><span>{{ hoverInfo.longitude }}</span>
|
|
|
+ <span>经度</span><span>{{ hoverInfo.longitude }}°</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>纬度</span><span>{{ hoverInfo.latitude }}</span>
|
|
|
+ <span>纬度</span><span>{{ hoverInfo.latitude }}°</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>海拔高度</span><span>{{ hoverInfo.elevationHeight }} /米</span>
|
|
|
+ <span>分析类型数</span><span>{{
|
|
|
+ hoverInfo.analysisTypeCount ? hoverInfo.analysisTypeCount : 0
|
|
|
+ }}
|
|
|
+ 个</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>最新分析时间</span
|
|
|
- ><span> {{ $formatDateTWO(hoverInfo.wfbrCreateTime) }}</span>
|
|
|
+ <span>分析开始时间</span>
|
|
|
+ <span>{{
|
|
|
+ newWind.analysisStartTime
|
|
|
+ ? $formatDateTWO(newWind.analysisStartTime)
|
|
|
+ : "暂无数据"
|
|
|
+ }}</span>
|
|
|
</p>
|
|
|
+ <p>
|
|
|
+ <span>分析结束时间</span>
|
|
|
+ <span>{{ newWind.analysisEndTime ? $formatDateTWO(newWind.analysisEndTime) : '暂无数据' }}</span>
|
|
|
+</p>
|
|
|
+<p>
|
|
|
+ <span>数据开始时间</span>
|
|
|
+ <span>{{ newWind.dataStartTime ? $formatDateTWO(newWind.dataStartTime) : '暂无数据' }}</span>
|
|
|
+</p>
|
|
|
+<p>
|
|
|
+ <span>数据结束时间</span>
|
|
|
+ <span>{{ newWind.dataEndTime ? $formatDateTWO(newWind.dataEndTime) : '暂无数据' }}</span>
|
|
|
+</p>
|
|
|
+
|
|
|
+ <!-- <p>
|
|
|
+ <span>最新分析时间</span><span> {{ $formatDateTWO(hoverInfo.wfbrCreateTime) }}</span>
|
|
|
+ </p> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
@@ -43,17 +61,13 @@
|
|
|
<span>风机编号</span><span>{{ hoverfengji.engineCode }}</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>额定容量</span
|
|
|
- ><span
|
|
|
- >{{
|
|
|
- hoverfengji?.ratedCapacity ? hoverfengji?.ratedCapacity : 0
|
|
|
- }}
|
|
|
- /KW</span
|
|
|
- >
|
|
|
+ <span>额定容量</span><span>{{
|
|
|
+ hoverfengji?.ratedCapacity ? hoverfengji?.ratedCapacity : 0
|
|
|
+ }}
|
|
|
+ /KW</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>海拔高度</span
|
|
|
- ><span>{{ hoverfengji.elevationHeight }} /米</span>
|
|
|
+ <span>海拔高度</span><span>{{ hoverfengji.elevationHeight }} /米</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
<span>轮毂高度</span><span>{{ hoverfengji.hubHeight }} /米</span>
|
|
@@ -72,12 +86,10 @@
|
|
|
<span>额定风速</span><span>{{ hoverfengji.ratedWindSpeed }} m/s</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>切入风速</span
|
|
|
- ><span>{{ hoverfengji.ratedCutInWindspeed }} m/s</span>
|
|
|
+ <span>切入风速</span><span>{{ hoverfengji.ratedCutInWindspeed }} m/s</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
- <span>切出风速</span
|
|
|
- ><span>{{ hoverfengji.ratedCutOutWindspeed }} m/s</span>
|
|
|
+ <span>切出风速</span><span>{{ hoverfengji.ratedCutOutWindspeed }} m/s</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -98,8 +110,7 @@
|
|
|
<span>状态</span><span>{{ }}</span>
|
|
|
</p> -->
|
|
|
<p>
|
|
|
- <span>测风塔高度</span
|
|
|
- ><span>{{ hoverta.anemometerHeightStrings }}/米</span>
|
|
|
+ <span>测风塔高度</span><span>{{ hoverta.anemometerHeightStrings }}/米</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -127,14 +138,15 @@ import { Icon, Style } from "ol/style";
|
|
|
import ZoomSlider from "ol/control/ZoomSlider.js";
|
|
|
import { defaults as defaultControls } from "ol/control.js";
|
|
|
|
|
|
-import icon01 from "../../assets/img/icon01.png";
|
|
|
-import icon02 from "../../assets/img/icon02.png";
|
|
|
-import icon03 from "../../assets/img/icon03.png";
|
|
|
-import icon04 from "../../assets/img/icon04.png";
|
|
|
+import icon01 from "../../assets/img/iconFC.png";
|
|
|
+import icon02 from "../../assets/img/iconFC.png";
|
|
|
+import icon03 from "../../assets/img/iconFC.png";
|
|
|
+import icon04 from "../../assets/img/iconFJ.png";
|
|
|
import icon05 from "../../assets/img/icon05.png";
|
|
|
-import icon06 from "../../assets/img/icon06.png";
|
|
|
-import defaultIcon from "../../assets/img/icon01.png";
|
|
|
-import { queryErrDescByEngine } from "@/api/ledger.js";
|
|
|
+import icon06 from "../../assets/img/iconFJ.png";
|
|
|
+import defaultIcon from "../../assets/img/iconFJ.png";
|
|
|
+import { queryErrDescByEngine, queryFloatingWindowInfo } from "@/api/ledger.js";
|
|
|
+import { login } from "@/api/login";
|
|
|
|
|
|
export default {
|
|
|
props: {
|
|
@@ -168,6 +180,7 @@ export default {
|
|
|
left: "0px",
|
|
|
top: "0px",
|
|
|
},
|
|
|
+ newWind: {},
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
@@ -196,8 +209,8 @@ export default {
|
|
|
new TileLayer({
|
|
|
source: new XYZ({
|
|
|
// url: "http://127.0.0.1:8010/tiles/{z}/{x}/{y}.png", //本地
|
|
|
- url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内网
|
|
|
- // url: "http://106.120.102.238:18000/tiles/{z}/{x}/{y}.png", //外网
|
|
|
+ // url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内网
|
|
|
+ url: "http://106.120.102.238:18000/tiles/{z}/{x}/{y}.png", //外网
|
|
|
// url: "http://10.96.137.5:9080/tiles/{z}/{x}/{y}.png", //大~#@唐
|
|
|
}),
|
|
|
}),
|
|
@@ -295,40 +308,52 @@ export default {
|
|
|
* 初始化地图事件
|
|
|
*/
|
|
|
initEvent() {
|
|
|
+ let lastHoveredFeature = null; // 用来记录上一次悬停的 feature
|
|
|
+
|
|
|
this.map.on("pointermove", (evt) => {
|
|
|
const features = this.map.getFeaturesAtPixel(evt.pixel, {
|
|
|
hitTolerance: 1,
|
|
|
});
|
|
|
+
|
|
|
if (features && features.length > 0) {
|
|
|
const feature = features.at(0);
|
|
|
const val = feature.get("data").val;
|
|
|
- if (val == "1" || val == "30") {
|
|
|
- this.hoverInfo = feature.get("data");
|
|
|
- this.hoverStyle.left = `${evt.pixel[0] + 10}px`;
|
|
|
- this.hoverStyle.top = `${evt.pixel[1] - 150}px`;
|
|
|
- } else if (val == "4") {
|
|
|
- this.hoverfengji = feature.get("data");
|
|
|
- this.hoverfengjiStyle.left = `${evt.pixel[0] + 10}px`;
|
|
|
- this.hoverfengjiStyle.top = `${evt.pixel[1] - 150}px`;
|
|
|
- this.currentFeatureData = feature.get("data");
|
|
|
- } else if (val == "5") {
|
|
|
- this.hoverta = feature.get("data");
|
|
|
- this.hovertaStyle.left = `${evt.pixel[0] + 10}px`;
|
|
|
- this.hovertaStyle.top = `${evt.pixel[1] - 150}px`;
|
|
|
- this.currentFeatureData = feature.get("data");
|
|
|
- } else if (val == "6") {
|
|
|
- this.currentFeatureData = feature.get("data");
|
|
|
- } else {
|
|
|
- this.hoverInfo = null;
|
|
|
- this.hoverfengji = false;
|
|
|
- this.hoverta = false;
|
|
|
- this.currentFeatureData = null;
|
|
|
+
|
|
|
+ // 只有当当前悬停的 feature 和上次的不同,才触发操作
|
|
|
+ if (lastHoveredFeature !== feature) {
|
|
|
+ if (val == "1" || val == "30"||val == "-1") {
|
|
|
+ this.hoverInfo = feature.get("data");
|
|
|
+ this.hoverStyle.left = `${evt.pixel[0] + 10}px`;
|
|
|
+ this.hoverStyle.top = `${evt.pixel[1] - 150}px`;
|
|
|
+ this.getwind();
|
|
|
+ } else if (val == "4") {
|
|
|
+ this.hoverfengji = feature.get("data");
|
|
|
+ this.hoverfengjiStyle.left = `${evt.pixel[0] + 10}px`;
|
|
|
+ this.hoverfengjiStyle.top = `${evt.pixel[1] - 150}px`;
|
|
|
+ this.currentFeatureData = feature.get("data");
|
|
|
+ } else if (val == "5") {
|
|
|
+ this.hoverta = feature.get("data");
|
|
|
+ this.hovertaStyle.left = `${evt.pixel[0] + 10}px`;
|
|
|
+ this.hovertaStyle.top = `${evt.pixel[1] - 150}px`;
|
|
|
+ this.currentFeatureData = feature.get("data");
|
|
|
+ } else if (val == "6") {
|
|
|
+ this.currentFeatureData = feature.get("data");
|
|
|
+ } else {
|
|
|
+ this.hoverInfo = null;
|
|
|
+ this.hoverfengji = false;
|
|
|
+ this.hoverta = false;
|
|
|
+ this.currentFeatureData = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新 lastHoveredFeature
|
|
|
+ lastHoveredFeature = feature;
|
|
|
}
|
|
|
} else {
|
|
|
this.hoverInfo = null;
|
|
|
this.hoverfengji = false;
|
|
|
this.hoverta = false;
|
|
|
this.currentFeatureData = null;
|
|
|
+ lastHoveredFeature = null; // 没有特征时清空记录
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -352,6 +377,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+
|
|
|
handleFeatureClick(featureData) {
|
|
|
let dateArr = {
|
|
|
batchCode: this.$route.query.batchCode,
|
|
@@ -363,6 +389,25 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+ getwind() {
|
|
|
+ if (this.hoverInfo && this.hoverInfo.batchCode) {
|
|
|
+ const param = {
|
|
|
+ batchcode: this.hoverInfo.batchCode,
|
|
|
+ fieldCode: this.hoverInfo.codeNumber,
|
|
|
+ }; // 确保传递一个对象
|
|
|
+ queryFloatingWindowInfo(param)
|
|
|
+ .then((res) => {
|
|
|
+ // 处理响应数据
|
|
|
+ this.newWind = res.data;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.error("获取风信息失败", err);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ console.warn("hoverInfo 或 batchCode 未定义");
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
/**
|
|
|
* 平移缩放
|
|
|
* @param data
|