Compare commits

..

2 Commits

Author SHA1 Message Date
wgx ecdc6110f8 地图添加企业标点 2026-08-12 17:56:11 +08:00
wgx 7d92dbb698 稷山面源污染初始化 2026-08-08 18:56:52 +08:00
9 changed files with 155 additions and 61 deletions

View File

@ -1055,6 +1055,7 @@ packages:
'@xmldom/xmldom@0.8.11':
resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==}
engines: {node: '>=10.0.0'}
deprecated: this version has critical issues, please update to the latest version
'@xtuc/ieee754@1.2.0':
resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}

BIN
public/image/enticon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>吉县黄河流域农业面源污染平台</title>
<title>稷山重点流域农业面源污染平台</title>
<link rel="stylesheet" href="<%= BASE_URL %>reset.css">
<!-- <link rel="stylesheet" href="<%= BASE_URL %>layui/dist/css/layui.css">-->
<!-- <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>-->

View File

@ -112,6 +112,14 @@ export function getSoilSummry(data) {
headers: {},
})
}
// 各个站坐标点
export function getCompanyList() {
return requests({
url: '/zh-applet-admin/appmana/bigScreen/getEntList',
method: 'get',
headers: {},
})
}
// 查询设备下各检测项的历史数据
export function survItemSummary(obj) {
return requests({

View File

@ -8,7 +8,7 @@ const requests = axios.create({
// 请求拦截器
requests.interceptors.request.use((config)=>{
config.headers['X-Access-Token'] = localStorage.getItem("token") // 请求头带上token
config.headers['X-Tenant-Id'] = '1002'
config.headers['X-Tenant-Id'] = '1003'
return config
},(error)=>{
return Promise.reject(new Error('faile'));

View File

@ -14,7 +14,7 @@
element-loading-background="rgba(0, 0, 0, 0.8)"
>
<div class="nav">
<span class="nav_ti nav_mag">吉县黄河流域农业面源污染平台</span>
<span class="nav_ti nav_mag">稷山县重点流域农业面源污染综合治理平台</span>
<span class="nav_tit">治理效果评价和监测一张图</span>
</div>
<div class="nav_btn">
@ -77,22 +77,22 @@
</vue-seamless-scroll>
</div>
<div class="in1con_lf_img">
<div
class="in1con_lf_imglf animate__animated animate__delay-1s animate__infinite animate__slow animate__pulse">
<img src="@/assets/image/xmgk01.png" class="in1con_lf_imgone" alt="">
<span class="in1con_lf_imglf_tit">农田污染监测站</span>
<span class="in1con_lf_imglf_num">
<animate-number class="in1con_lf_imglf_num_jix" ref="reNum" from="0"
:to="2" :key="stationCount0" duration="3000"></animate-number>
</span>
</div>
<!-- <div-->
<!-- class="in1con_lf_imglf animate__animated animate__delay-1s animate__infinite animate__slow animate__pulse">-->
<!-- <img src="@/assets/image/xmgk01.png" class="in1con_lf_imgone" alt="">-->
<!-- <span class="in1con_lf_imglf_tit">农田污染监测站</span>-->
<!-- <span class="in1con_lf_imglf_num">-->
<!-- <animate-number class="in1con_lf_imglf_num_jix" ref="reNum" from="0"-->
<!-- :to="1" :key="stationCount0" duration="3000"></animate-number>-->
<!-- </span>-->
<!-- </div>-->
<div
class="in1con_lf_imglf animate__animated animate__delay-1s animate__infinite animate__slow animate__pulse">
<img src="@/assets/image/xmgk02.png" class="in1con_lf_imgone" alt="">
<span class="in1con_lf_imglf_tit">畜禽污染监测站</span>
<span class="in1con_lf_imglf_num">
<animate-number class="in1con_lf_imglf_num_jix" ref="reNum" from="0"
:to="2" :key="stationCount0" duration="3000"></animate-number>
:to="1" :key="stationCount0" duration="3000"></animate-number>
</span>
</div>
<!-- <div-->
@ -191,10 +191,10 @@
<img src="@/assets/image/icon-blue.png" class="xcdimg" alt="">
<span class="scdlist_tit">畜禽污染监测站</span>
</div>
<div class="scdlist" @click="switchIcon('orient')">
<img src="@/assets/image/icon-yellow.png" class="xcdimg" alt="">
<span class="scdlist_tit">农田污染监测站</span>
</div>
<!-- <div class="scdlist" @click="switchIcon('orient')">-->
<!-- <img src="@/assets/image/icon-yellow.png" class="xcdimg" alt="">-->
<!-- <span class="scdlist_tit">农田污染监测站</span>-->
<!-- </div>-->
<!-- <div class="scdlist" @click="switchIcon('watershed')">-->
<!-- <img src="@/assets/image/waterlive.png" class="xcdimg" alt="">-->
<!-- <span class="scdlist_tit">小流域监测站</span>-->
@ -225,13 +225,13 @@
:value="item.value">
</el-option>
</el-select>
<el-tooltip class=" " effect="dark" style="position: absolute;left: 300px;"
:content="dataTypeEchart?'当前:监测值为正常历史监测数据。':'当前对比值为1#监测站数据减去2#监测站数据。'"
placement="top-start">
<span class="dataTypeEchart" @click="switchEchartType">
{{ dataTypeEchart ? '监测值' : '对比值' }}
</span>
</el-tooltip>
<!-- <el-tooltip class=" " effect="dark" style="position: absolute;left: 300px;"-->
<!-- :content="dataTypeEchart?'当前:监测值为正常历史监测数据。':'当前对比值为1#监测站数据减去2#监测站数据。'"-->
<!-- placement="top-start">-->
<!-- <span class="dataTypeEchart" @click="switchEchartType">-->
<!-- {{ dataTypeEchart ? '监测值' : '对比值' }}-->
<!-- </span>-->
<!-- </el-tooltip>-->
<el-tabs type="card" @tab-click="doGetIndexSummry" v-show="dataTypeEchart">
<el-tab-pane v-for="(item,index) in stationInfoList" :label="item.stationShortName||item.stationName" lazy>
<template>
@ -315,7 +315,7 @@
<div style="background: #0d4e62;height: 1px;width: 94%;margin: 0 auto;margin-top: 0.4vw;"></div>
<div>
<div class="in1con_lf_tit " style="cursor: pointer;" @click1="taizhangDialogShowFlag=true">
<span class="in1con_lf_titshow1">核算与评估</span>
<span class="in1con_lf_titshow1">治理效果分析</span>
<img src="@/assets/image/title_bg.png" class="in1con_lf_titimg" alt="">
<!-- <span class="in1con_lf_titshow2 " style="">台账>></span>-->
</div>
@ -450,7 +450,7 @@
</div>
<el-row>
<el-col :span="12">
<div class="grid-content bg-purple" style="width:80%;margin-left:10%;">
<div class="grid-content bg-purple" style="">
<el-carousel indicator-position="outside">
<el-carousel-item v-for="(item,index) in qyinformation.extPics" :key="index">
<viewer :images="qyinformation.extPics">
@ -462,8 +462,8 @@
</el-col>
<el-col :span="12">
<div class="grid-content bg-purple-light">
<span class="tctit">{{ qyinformation.name }}</span>
<span class="tcgldw">{{ qyinformation.notes }}</span>
<span class="tctit">{{ qyinformation.entName }}</span>
<span class="tcgldw">{{ qyinformation.entIntro }}</span>
</div>
</el-col>
</el-row>
@ -482,7 +482,7 @@ import ScaleBox from 'vue2-scale-box'
import {
displayInfo,
fwlist,
getAllstationAndPestLight,
getAllstationAndPestLight, getCompanyList,
getIndexSummry,
getNewestData,
getPollutionDict,
@ -545,6 +545,7 @@ export default {
qcdtdialogTableVisible: false,
qyinfordtdialogTableVisible: false,
shipdialogTableVisible: false,
entList:[],
qyinformation: '',
listData: [],
summryAllData: null,
@ -555,7 +556,8 @@ export default {
dialogVisible: false,
inforname: '',
loading: true,
zoomData: 14,
zoomData: 10,
focusZoomData: 14,
isShowLightNumber: '1',
switchValue: true,
fullscreen: false, //
@ -626,10 +628,37 @@ export default {
// })
// }, 2000)
//
let that = this;
setTimeout(() => {
this.$nextTick(() => {
this.initMap(this.zoomData, this.isShowLightNumber);
})
getCompanyList().then(res => {
that.entList = res.result.map(item => {
item.type = 'cusLocaltion';
item.longitude = item.entLong;
item.latitude = item.entLat;
item.name = item.entName;
item.picUrl = 'temp/enticon.png';
item.width = 0 ;
item.height = 0;
// zIndex: item.type == 'soil' ? that.lastZIndex : (that.lastZIndex+1),
// icon: this.urlimg + item.picUrl,
// position: [item.longitude, item.latitude],
// offset: new AMap.Pixel(item.width, item.height),//
// title: item.name,
return item;
});
// ids: item.ids,
// extPics: item.extPics,
// notes: item.notes,
// name: item.name,
// item: item,
// stationType: item.type
//
console.log(that.entList,'111222')
that.$nextTick(() => {
that.initMap(that.zoomData, that.isShowLightNumber);
})
});
}, 2000)
//
this.getNowTime();
@ -658,7 +687,7 @@ export default {
mapTypeSwitch() {
this.mapTypeFlag = !this.mapTypeFlag
if (this.mapTypeFlag == true) {//
this.zoomData = 14
// this.zoomData = 14
if (this.isShowLight == undefined) {
let isShowLight = '1'
this.initMap(this.zoomData, isShowLight);
@ -672,7 +701,7 @@ export default {
})
}, 1000)
} else {//
this.zoomData = 15
// this.zoomData = 15
if (this.isShowLight == undefined) {
this.initMap(this.zoomData, '1');
} else {
@ -772,15 +801,15 @@ export default {
}, 200)
},
initMap(zoomnum, isShowLight) {
console.log("初始化地图。")
let that = this;
// let isShowLight = this.isShowLightNumber
getAllstationAndPestLight(isShowLight).then(res => {
//
that.aMap = new AMap.Map('container', {
viewMode: '3D',
resizeEnable: true,
zoom: zoomnum,
center: [110.719361, 36.068184],//
center: [110.867954, 35.631413],//
mapStyle: 'amap://styles/blue',
dragEnable: true,//truesetStatus/getStatus
jogEnable: true,//使truesetStatus/getStatus
@ -795,13 +824,14 @@ export default {
scale: (2, 2.5)
});
that.aMap.on('complete', (e) => {
var markerData = res.result;
let Marker = markerData.filter(ele => ele.type != 'light').sort((a,b) => {
let Marker = res.result.filter(ele => ele.type != 'light').sort((a,b) => {
if (b.type=='soil') return 1;
if (b.type!='soil') return -1;
return 0;
});//
console.log(Marker,'Marker')
// console.log(Marker,'Marker')
Marker.push(...this.entList);
console.log("初始化地图。2", Marker)
Marker.map(item => {
let marker = new AMap.Marker({
zIndex: item.type == 'soil' ? that.lastZIndex : (that.lastZIndex+1),
@ -809,6 +839,10 @@ export default {
position: [item.longitude, item.latitude],
offset: new AMap.Pixel(item.width, item.height),//
title: item.name,
label: {
content: item.type == "cusLocaltion"? item.name : '',
direction: 'top'
},
extData: {
ids: item.ids,
extPics: item.extPics,
@ -823,7 +857,6 @@ export default {
let indexnumb = e.target.getExtData().ids.slice(-1);
this.qcdtinfor = this.stationInfoList[indexnumb]
this.qcdtdialogTableVisible = true
// console.log('livestock or orient', this.qyinformation)
})
this.markersOrient.push(marker)
} else if(item.type == 'soil'){//
@ -833,16 +866,27 @@ export default {
// console.log('soil click', )
})
this.markersSoil.push(marker);
} else {
} else if(item.type == "cusLocaltion"){//
marker.on("click", e => {
this.qyinformation= e.target.getExtData().item
if(this.qyinformation.entPics){
this.qyinformation.extPics = this.qyinformation.entPics.split(",");
}else {
this.qyinformation.extPics = []
}
console.log("this.qyinformation",this.qyinformation)
this.qyinfordtdialogTableVisible = true
})
} else {
this.markersOther.push(marker)
}
marker.setMap(that.aMap);
})
this.$forceUpdate();
// that.aMap.setFitView(null, false, [100,400,200,200], 16);
that.aMap.setFitView();
// that.aMap.setFitView();
setTimeout(() => {
that.aMap.setFitView(null, false, [130, 380, 480, 480], 16);
that.aMap.setFitView(null, false, [130, 380, 480, 480], 12);
// let temp = that.aMap.getCenter();//
// that.aMap.setZoomAndCenter(that.aMap.getZoom()-1, [temp.lng, temp.lat - 0.15]);
}, 2000)
@ -1142,13 +1186,13 @@ export default {
arr.map(item => {
item.setzIndex((that.lastZIndex+=2));
});
that.aMap.setFitView(arr, false, [300, 500, 360, 360], 16);
that.aMap.setFitView(arr, false, [300, 500, 360, 360], that.focusZoomData);
// setTimeout(() => {
// let temp = that.aMap.getCenter();//
// that.aMap.setZoomAndCenter(that.aMap.getZoom()-2, [temp.lng, temp.lat - 0.15]);
// },2000)
} else {
that.aMap.setFitView(null, false, [100, 400, 360, 360], 16);
that.aMap.setFitView(null, false, [100, 400, 360, 360], that.zoomData);
}
}
},
@ -1516,14 +1560,8 @@ a:hover {
.map img {
width: 80%;
margin-left: 10%;
//margin-left: 10%;
}
.map img {
width: 80%;
margin-left: 10%;
}
.mapActived1 {
position: absolute;
top: 41.5%;
@ -1767,20 +1805,23 @@ a:hover {
/* 企业弹窗样式 */
.tctit {
font-size: 1.2vw;
color: #fff;
color: #0bf373;
font-weight: bold;
display: block;
margin-bottom: 1.6vw;
margin: 5px auto;
text-align: center;
}
.tcgldw {
font-size: 1vw;
font-size: 0.8vw;
color: #fff;
line-height: 2vw;
display: block;
padding-right: 3%;
height: 15vw;
overflow: auto;
text-indent: 2em;
}
/* 定义滚动条样式 */
@ -1944,5 +1985,49 @@ a:hover {
.mywrcov_onenumjx{
font-size: 1.2vw;
}
.amap-marker-label{
//width: 60px;
font-size: 16px;
line-height: 18px;
text-align: center;
height: 18px;
font-family: STLiti;
color: #bbd6f1;
border-radius: 15px;
padding: 5px;
background-color: rgba(77, 140, 241, 0.84);
border: solid 2px rgba(100,255,200,0.8);
}
.tz_cov{
width: 100%;
height: 30vw;
margin: 0 auto;
/* margin-top: 4vw; */
border: 1px solid #0169d0;
position: relative;
background: rgba(16, 45, 80, 1);
box-shadow: inset 0px 0px 16px 0px rgba(0, 145, 255, 1);
padding: 20px;
}
.tz_cov_top{
width: 40%;
height: 3vw;
margin: 0 auto;
background: url(../../assets/image/tz_tltle_bg.png)no-repeat;
background-size: cover;
text-align: center;
line-height: 3vw;
margin-bottom: 2vw;
}
.tz_cov_top_tit{
font-size: 1vw;
color: #fff;
text-shadow: 0px 2px 0px rgba(4,49,52,0.55);
font-family: douyuFont;
}
.grid-content{
padding: 10px
}
</style>

View File

@ -7,7 +7,7 @@
<!-- <source src="http://fxnsp.sxcooh.com/lh-api/sys/common/static/v/loginback.mp4">-->
<source src="https://fxnsp.sxcooh.com/lh-api/sys/common/static/v/loginback.mp4">
</video>
<div class="maintitle">吉县农业面源污染在线监测平台</div>
<div class="maintitle">稷山县农业面源污染综合治理平台</div>
<!-- <img src="@/assets/image/logintltle3.png" alt="" class="logintltle">-->
<el-form
class="loginipt demo-ruleForm"

View File

@ -159,7 +159,7 @@
<img src="@/assets/image/sanguang.png" class="sanguang2" alt="">
<img src="@/assets/image/sanguang.png" class="sanguangbt2" alt="">
<div class="zywr_lf_tit">
<span class="zywr_titshow">要污染指标</span>
<span class="zywr_titshow">点污染指标趋势</span>
<el-select class="dataTypeEchart2" v-model="dateType" placeholder="请选择" @change="changeDateType">
<el-option
v-for="item in dateTypeOptions"
@ -199,7 +199,7 @@
<div style="background: #0d4e62;height: 1px;width: 94%;margin: 0 auto;margin-top: 0.4vw;"></div>
<div class="xuqingchuli" v-if="stationType==='livestock'">
<div class="in1con_lf_tit ">
<span class="in1con_lf_titshow">畜禽粪污处理</span>
<span class="in1con_lf_titshow">粪污处理情况分析</span>
<img src="@/assets/image/title_bg.png" class="in1con_lf_titimg" alt="">
</div>
<div class="qxfwzcl">
@ -217,7 +217,7 @@
<img src="@/assets/image/png01_iSpt.png" class="png01_iSpt" alt="">
<img src="@/assets/image/qcshuj.png" class="qcshuj" alt="">
<span class="qxfwzcl_rit_smt">{{DisplayListdetailList3?.detailCode}}</span>
<span class="qxfwzcl_rit_num in1con_lf_imglf_num_jix">{{DisplayListdetailList3?.detailValue}} <span style="font-size: 0.5vw;">万头</span> </span>
<span class="qxfwzcl_rit_num in1con_lf_imglf_num_jix">{{DisplayListdetailList3?.detailValue}} <span style="font-size: 0.7vw;">{{DisplayListdetailList3?.detailValue2}}</span> </span>
</div>
</div>
</div>
@ -2584,7 +2584,7 @@ a:hover {
border-left-color: rgb(71 105 172) !important;
}
.dataTypeEchart2{
left: 246px;
left: 246px !important;
top: 0px;
}
.switchLive {

View File

@ -6,7 +6,7 @@
<!-- src="https://i.tianqi.com?c=code&amp;id=10&amp;color=%23FFFFFF&amp;icon=1&amp;py=fenxi&amp;site=12"-->
<!-- style="pointer-events: none;"></iframe>-->
<!-- <iframe width="300" height="40" src="https://i.tianqi.com/?c=code&a=getcode&id=11&icon=1&color=%23FFFFFF" frameborder="0"></iframe>-->
<iframe width="300" height="40" src="https://i.tianqi.com/?c=code&a=getcode&id=34&icon=1&color=%23FFFFFF&py=jixian" frameborder="0"></iframe>
<iframe width="300" height="40" src="https://i.tianqi.com/?c=code&a=getcode&id=34&icon=1&color=%23FFFFFF&py=jishan" frameborder="0"></iframe>
</div>
</template>