|
@@ -2,7 +2,7 @@
|
|
|
<div class="base-container no-events">
|
|
|
<fnHeader showDate></fnHeader>
|
|
|
<div class="content">
|
|
|
- <navigation @handleTab="handleTab"></navigation>
|
|
|
+ <navigation @handleTab="handleTab" @handleTabFeiXun="handleTabFeiXun"></navigation>
|
|
|
<div class="left yes-events">
|
|
|
<tool-list
|
|
|
direction="left"
|
|
@@ -16,42 +16,15 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="home-bottom">
|
|
|
- <time-line class="time-wrap yes-events"></time-line>
|
|
|
- <img class="fly-icon" src="@/assets/images/home/fly-icon.png" alt="">
|
|
|
- <!-- <div class="log-box yes-events">
|
|
|
- <chart-box class="overflow">
|
|
|
- <template #title-name>
|
|
|
- <div class="box-name" @click="handleSelectArea">果园日志</div>
|
|
|
- </template>
|
|
|
- <div class="log-content">
|
|
|
- 2月13日,共抽样193棵树,拍摄了193张照片,{{indicatorChartData.content}}
|
|
|
- </div>
|
|
|
- <div class="chart-wrap">
|
|
|
- <indicator-chart :key="0 + 'log'" type="feature" :chartData="indicatorChartData"></indicator-chart>
|
|
|
- </div>
|
|
|
- </chart-box>
|
|
|
- </div> -->
|
|
|
- <!-- <div class="file-box yes-events">
|
|
|
- <chart-box name="果园档案">
|
|
|
- <template #title-right>
|
|
|
- <el-icon class="arrow-icon cursor-pointer" color="#141414"
|
|
|
- ><DArrowLeft
|
|
|
- /></el-icon>
|
|
|
- <div class="edit-btn cursor-pointer" @click="toFilePage">编辑</div>
|
|
|
- </template>
|
|
|
- <file-bar></file-bar>
|
|
|
- </chart-box>
|
|
|
- </div> -->
|
|
|
+ <!-- <time-line class="time-wrap yes-events"></time-line> -->
|
|
|
+ <!-- <img class="fly-icon" src="@/assets/images/home/fly-icon.png" alt=""> -->
|
|
|
+ <div class="bottom-button" v-show="curName==='查看遥感信息'" @click="handleSetps">生成采样航线</div>
|
|
|
</div>
|
|
|
<div class="right yes-events">
|
|
|
<div class="list">
|
|
|
<chart-box name="农事列表" arrow="arrow-left" :class="{'list-wrap': rightIndex===0}">
|
|
|
<template v-if="rightIndex===0">
|
|
|
<album></album>
|
|
|
- <!-- <img class="tabs" src="@/assets/images/home/ns-tabs.png" alt="">
|
|
|
- <div class="img-box">
|
|
|
- <img @click="handleAct(item)" v-for="item in 2" :key="item" :src="require(`@/assets/images/home/0${act<=2&&act==item?item+'-act':item}.png`)" alt="">
|
|
|
- </div> -->
|
|
|
</template>
|
|
|
<template v-if="rightIndex===1">
|
|
|
<div class="img-box1">
|
|
@@ -81,7 +54,7 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 图例 -->
|
|
|
- <img class="legend yes-events" src="@/assets/images/home/legend.png" alt="">
|
|
|
+ <!-- <img class="legend yes-events" src="@/assets/images/home/legend.png" alt=""> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div ref="mapRef" class="bottom-map"></div>
|
|
@@ -91,8 +64,21 @@
|
|
|
:imageUrl="urls"
|
|
|
:curIndex="urlsIndex"
|
|
|
></PicturePreview>
|
|
|
+ <!-- -->
|
|
|
<album-carousel></album-carousel>
|
|
|
+ <!-- 果园报告 -->
|
|
|
<PdfDialog title="果园报告" ></PdfDialog>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ v-model="dialogVisible"
|
|
|
+ width="450"
|
|
|
+ align-center
|
|
|
+ >
|
|
|
+ <div class="dialog-box" style="text-align: center;">
|
|
|
+ <img style="width:65px;height:65px;margin-bottom:12px" src="@/assets/images/home/search.png" alt="">
|
|
|
+ <div style="font-size:25px">正在分析中...</div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
@@ -103,6 +89,7 @@ import PicturePreview from "@/components/PicturePreview.vue";
|
|
|
import fnHeader from "@/components/fnHeader.vue";
|
|
|
import navigation from "@/components/navigation.vue";
|
|
|
import chartBox from "@/components/chartBox.vue";
|
|
|
+import StaticMapLayers from "@/components/static_map_change/Layers.js"
|
|
|
import toolList from "@/components/toolList.vue";
|
|
|
import fileBar from "@/components/fileBar.vue";
|
|
|
import HomeMap from "./map/homeMap";
|
|
@@ -141,12 +128,14 @@ let regionLayer = null
|
|
|
let blueRegionLayer = null
|
|
|
const router = useRouter();
|
|
|
const mapRef = ref();
|
|
|
+let staticMapLayers = null;
|
|
|
onMounted(() => {
|
|
|
- homeMap.initMap("POINT(113.61448114737868 23.585550924763083)", mapRef.value);
|
|
|
+ homeMap.initMap("POINT (113.67884027228604 23.511176408307904)", mapRef.value);
|
|
|
// homeMap.initMap(store.getters.userinfo.location, mapRef.value);
|
|
|
// regionLayer = new RegionLayer(homeMap.kmap.map, currentFarm, currentRegion)
|
|
|
- samplePointLayer = new SamplePointLayer(homeMap.kmap.map)
|
|
|
+ samplePointLayer = new SamplePointLayer(homeMap.kmap.map,homeMap.kmap)
|
|
|
blueRegionLayer = new BlueRegionLayer(homeMap.kmap)
|
|
|
+ staticMapLayers = new StaticMapLayers(homeMap.kmap);
|
|
|
|
|
|
getYellow()
|
|
|
// getFarmLog()
|
|
@@ -155,6 +144,21 @@ onMounted(() => {
|
|
|
eventBus.on('area:id',areaId)
|
|
|
//选项卡子项事件监听
|
|
|
eventBus.on('handleTabItem',handleTabItem)
|
|
|
+
|
|
|
+ // editStep(0)
|
|
|
+ // eventBus.emit('steps','0')
|
|
|
+ VE_API.feixun.getSteps({"k": "step",resultType:"json"}).then(res =>{
|
|
|
+ if(res.data.step!=='0'){
|
|
|
+ setTimeout(()=>{
|
|
|
+ getSteps('all')
|
|
|
+ },500)
|
|
|
+ }else{
|
|
|
+ setTimeout(()=>{
|
|
|
+ editStep(res.data)
|
|
|
+ },500)
|
|
|
+ eventBus.emit('steps','0')
|
|
|
+ }
|
|
|
+ })
|
|
|
});
|
|
|
|
|
|
onUnmounted(()=>{
|
|
@@ -162,18 +166,77 @@ onUnmounted(()=>{
|
|
|
eventBus.off('handleTabItem',handleTabItem)
|
|
|
})
|
|
|
|
|
|
+const getSteps = (type) =>{
|
|
|
+ VE_API.feixun.getSteps({"k": "step",resultType:"json"}).then(res =>{
|
|
|
+ eventBus.emit('steps:value',{data:res.data})
|
|
|
+ if(type=='area'){
|
|
|
+ getBlueRegionList(()=>{},res.data.blue_step)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(type=='all'){
|
|
|
+
|
|
|
+ getBlueRegionList(()=>{},res.data.blue_step)
|
|
|
+ samplePointLayer.initData(organId.value,regionId.value)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(type=='point'){
|
|
|
+ samplePointLayer.initData(organId.value,regionId.value)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const dialogVisible = ref(false)
|
|
|
+
|
|
|
+const curName = ref('异常总览')
|
|
|
+function handleTabFeiXun(name){
|
|
|
+ staticMapLayers.hideAll()
|
|
|
+ curName.value = name
|
|
|
+ if(name==='查看飞巡结果'){
|
|
|
+ editStep(1,2,'area')
|
|
|
+ eventBus.emit('steps','1')
|
|
|
+ getSteps('all')
|
|
|
+ }
|
|
|
+ if(name==='精细检测'){
|
|
|
+ editStep(2,2,'point')
|
|
|
+ }
|
|
|
+ if(name==='查看遥感信息'){
|
|
|
+ handleTabItem('地形因子')
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const handleSetps = () =>{
|
|
|
+ dialogVisible.value = true
|
|
|
+ setTimeout(()=>{
|
|
|
+ dialogVisible.value = false
|
|
|
+ staticMapLayers.hideAll()
|
|
|
+ editStep(1,1,'all')
|
|
|
+ },1000)
|
|
|
+}
|
|
|
+
|
|
|
+async function editStep(step,blue_step,type){
|
|
|
+ await VE_API.feixun.editStep({step,blue_step})
|
|
|
+ getSteps(type)
|
|
|
+ // VE_API.feixun.editStep({step}).then(res =>{
|
|
|
+ // getSteps(type)
|
|
|
+ // })
|
|
|
+}
|
|
|
+
|
|
|
const blueList = ref([])
|
|
|
-const getBlueRegionList = (callback) =>{
|
|
|
- VE_API.farm.blueRegionList({farmId:organId.value,regionId:regionId.value}).then(({ data }) => {
|
|
|
+const getBlueRegionList = (callback,step) =>{
|
|
|
+ VE_API.farm.blueRegionList({farmId:organId.value,selectAll:1}).then(({ data }) => {
|
|
|
blueList.value = data.map(item =>{
|
|
|
- let color = 'rgba(255, 255, 255, 0.5)' //失效区域
|
|
|
- if(item.status===2){ //物候期风险
|
|
|
- color = 'rgba(63, 255, 53, 0.5)'
|
|
|
+ let color = 'rgba(255, 255, 255, 0)' //失效区域
|
|
|
+ if(item.stepStatus===1){ //物候期风险
|
|
|
+ color = 'rgba(255, 255, 255, 0.5)'
|
|
|
+ }
|
|
|
+ if(item.stepStatus===0){ //物候期风险
|
|
|
+ color = 'rgba(255, 255, 255, 0.5)'
|
|
|
}
|
|
|
- if(item.status===3){ //生长异常
|
|
|
+ if(item.stepStatus===2){ //生长异常
|
|
|
color = 'rgba(255, 252, 61, 0.5)'
|
|
|
}
|
|
|
- if(item.status===4){ //病虫害
|
|
|
+ if(item.stepStatus===3){ //病虫害
|
|
|
color = 'rgba(255, 73, 73, 0.5)'
|
|
|
}
|
|
|
return {
|
|
@@ -181,7 +244,7 @@ const getBlueRegionList = (callback) =>{
|
|
|
color
|
|
|
}
|
|
|
})
|
|
|
- blueRegionLayer.initData(blueList.value)
|
|
|
+ blueRegionLayer.initData(blueList.value,'',step!=='0'?true:false)
|
|
|
callback && callback()
|
|
|
});
|
|
|
}
|
|
@@ -195,11 +258,11 @@ const handleTab = async ({name,id,isUpdate,params}) =>{
|
|
|
tabName.value = name
|
|
|
tabId.value = id
|
|
|
if(id===0){
|
|
|
- getBlueRegionList(()=>{
|
|
|
- if(isUpdate){
|
|
|
- handleTabItem(params)
|
|
|
- }
|
|
|
- })
|
|
|
+ // getBlueRegionList(()=>{
|
|
|
+ // if(isUpdate){
|
|
|
+ // handleTabItem(params)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
}else{
|
|
|
getFarmIndexReport((()=>{
|
|
|
if(isUpdate){
|
|
@@ -213,24 +276,49 @@ const handleTab = async ({name,id,isUpdate,params}) =>{
|
|
|
function areaId({areaId,farmId}){
|
|
|
organId.value = farmId
|
|
|
regionId.value = areaId
|
|
|
- samplePointLayer.initData(farmId,areaId)
|
|
|
+ setTimeout(()=>{
|
|
|
+ samplePointLayer.initData(farmId,areaId)
|
|
|
+ },350)
|
|
|
if(tabId.value===0){
|
|
|
- getBlueRegionList()
|
|
|
+ // getBlueRegionList()
|
|
|
+ // VE_API.feixun.getSteps({"k": "step",}).then(res =>{
|
|
|
+ // if(res.data!=='0'){
|
|
|
+ // setTimeout(()=>{
|
|
|
+ // getSteps('all')
|
|
|
+ // },450)
|
|
|
+ // }else{
|
|
|
+ // setTimeout(()=>{
|
|
|
+ // editStep(0)
|
|
|
+ // },450)
|
|
|
+ // eventBus.emit('steps','0')
|
|
|
+ // }
|
|
|
+ // })
|
|
|
}else{
|
|
|
getFarmIndexReport()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//选项卡子项事件监听
|
|
|
-const handleTabItem = (e) =>{
|
|
|
- if(reportData.value.blueZoneList){
|
|
|
- const index = reportData.value.blueZoneList.findIndex(item => item.key===e)
|
|
|
- let arr = []
|
|
|
- if(reportData.value.blueZoneList.length){
|
|
|
- arr = blueListConvert(reportData.value.blueZoneList[index].obj,index)
|
|
|
- }
|
|
|
- blueRegionLayer.initData(arr,'87')
|
|
|
+const handleTabItem = (name) =>{
|
|
|
+ let text = '井岗荔枝分布'
|
|
|
+ if(name==='地形因子'){
|
|
|
+ text = '井岗地形因子'
|
|
|
+ }else if(name==='推测物候期'){
|
|
|
+ text = '井岗推测物候期'
|
|
|
}
|
|
|
+ if(text!==''){
|
|
|
+ staticMapLayers.showSingle(text,true)
|
|
|
+ }else{
|
|
|
+ staticMapLayers.hideAll()
|
|
|
+ }
|
|
|
+ // if(reportData.value.blueZoneList){
|
|
|
+ // const index = reportData.value.blueZoneList.findIndex(item => item.key===e)
|
|
|
+ // let arr = []
|
|
|
+ // if(reportData.value.blueZoneList.length){
|
|
|
+ // arr = blueListConvert(reportData.value.blueZoneList[index].obj,index)
|
|
|
+ // }
|
|
|
+ // blueRegionLayer.initData(arr,'87')
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
const reportData = ref({})
|
|
@@ -274,7 +362,6 @@ const indicatorChartData = ref({})
|
|
|
const blueZone = ref('ws0y1meyhxp4')
|
|
|
|
|
|
const getFarmLog = () =>{
|
|
|
- console.log('getfarmlog')
|
|
|
const params = {
|
|
|
id: null,
|
|
|
farmId: 766,
|
|
@@ -598,9 +685,21 @@ const toFilePage = () => {
|
|
|
.home-bottom {
|
|
|
display: flex;
|
|
|
align-items: flex-end;
|
|
|
+ justify-content: flex-end;
|
|
|
width: calc(100% - 60px - 430px * 2 );
|
|
|
- height: 152px;
|
|
|
+ // height: 152px;
|
|
|
align-self: flex-end;
|
|
|
+ .bottom-button{
|
|
|
+ background: linear-gradient(0deg,#FFD887,#ED9E1E);
|
|
|
+ border: 1px solid rgba(255, 255, 255, 0.61);
|
|
|
+ border-radius: 12px;
|
|
|
+ font-size: 20px;
|
|
|
+ font-family: "PangMenZhengDao";
|
|
|
+ padding: 15px 39px 16px 39px;
|
|
|
+ color: #000;
|
|
|
+ cursor: pointer;
|
|
|
+ pointer-events: auto;
|
|
|
+ }
|
|
|
.time-wrap{
|
|
|
height: 85px;
|
|
|
}
|