196 lines
4.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="videoPage">
<headers>
<image @click="goBack" src="../../static/logo.png" class="backImg" v-show="showMapBack"></image>
<view class="headerName">
{{backArr.length>0?[backArr.length-1].name:'集团'}}
</view>
</headers>
<!-- @markertap="markertap" -->
<!-- @updated='mapUpdated' :latitude="latitude"
:longitude="longitude"-->
<map class="map" style="height: 500px;"
scale="3"
:markers="markers"
:show-location="true"
>
</map>
</view>
</template>
<script>
// import amap from '../../static/js/amap-wx.js'
import headers from '../../components/headers/headers.vue'
export default {
components:{headers},
data() {
return {
mapData: [],
backArr: [],
searchsn:'',
latitude:'22.720017',
longitude:'114.171091',
markers:[],
mobileTopHeight:10,
userInfo:null,
showMapBack:false,
// mapObj:null
};
},
mounted() {
this.userInfo = JSON.parse(uni.getStorageSync('userInfo'))
this.initMap()
this.initData(true);
},
methods:{
initMap(){
// this.mapObj = new amap.AMapWX({
// key: '78f31be3debf6947dca6e092e56a22b4' //该key 是在高德中申请的微信小程序key
// });
// amapPluginInstance.getPoiAround({
// success: function(data){
// //成功回调
// },
// fail: function(info){
// //失败回调
// console.log(info)
// }
// })
},
goBack() {
if(this.backArr.length==1){
this.backArr=[]
}else{
this.backArr=this.backArr.splice(0, this.backArr.length-1);
}
this.initData()
},
initData(type) {
var that = this
if(this.backArr.length>0){
this.searchsn=this.backArr[this.backArr.length-1].sn
}else{
switch (that.userInfo.accountType) {
case 2:
this.searchsn=that.userInfo.headquartersSn
break;
case 3:
this.searchsn=that.userInfo.sn
break;
case 4:
this.searchsn=that.userInfo.sn
break;
case 5:
this.searchsn=that.userInfo.sn
break;
}
}
if((this.backArr.length==0&&that.userInfo.accountType==2) ||
(this.backArr.length==1&&that.userInfo.accountType==3) ||
(this.backArr.length==2&&that.userInfo.accountType==4||that.userInfo.accountType==5)){
this.showMapBack=false
}else{
this.showMapBack=true
}
if(that.userInfo.accountType==5){
this.getProjectDetail()
}else{
this.loadData(type);
}
},
//获取所有企业下区域数据
loadData(type) {
//typetrue代表第一调用
var that = this
this.sendRequest({
url: "xmgl/company/getComapnyStatisticsList",
data: {sn: this.searchsn},
method: "POST",
success(res){
that.mapData = res.result.companyList?res.result.companyList:res.result.projectList
if(type){
// this.showMapBack=false
that.backArr=[]
// if(that.userInfo.accountType==4){
if(res.result.parentCompany){
that.backArr.push({name:res.result.parentCompany.companyName,sn:res.result.parentCompany.companySn})
}
// }
// if(that.userInfo.accountType==3||that.userInfo.accountType==4){
if(res.result.companyInfo){
that.backArr.push({name:res.result.companyInfo.companyName,sn:res.result.companyInfo.companySn})
}
// }
// console.log('that.userInfo',this)
// debugger
if((that.backArr.length==0&&that.userInfo.accountType==2) ||
(that.backArr.length==1&&that.userInfo.accountType==3) ||
(that.backArr.length==2&&that.userInfo.accountType==4)){
that.showMapBack=false
}else{
that.showMapBack=true
}
}
if(that.mapData.length>0){
that.markers = []
for (let i = 0; i < that.mapData.length; i++) {
var item = that.mapData[i]
var json = {
latitude:item.latitude,
longitude:item.longitude,
iconPath:'/static/logo.png',
label:{
content:item.name,
color:'#fff',
fontSize: 16,
borderRadius: 3,
padding: 5,
bgColor:'#5181F6',
textAlign:'center',
x: 80,
y: 80
}
}
// if(i==0){
// this.latitude=item.latitude
// this.longitude=item.longitude
// }
that.markers.push(json)
}
// that.mapObj.setFitView();
}else{
// this.$message('该区域下没有数据!')
}
}
})
},
//获取项目详细
getProjectDetail(){
this.sendRequest({
url: "xmgl/project/getProjectInfoBySn",
data: {projectSn: this.searchsn},
method: "POST",
success(res){
// this.mapData=[res.result]
// this.mapObj.clearMap()
// this.setAreaMarker()
}
})
},
}
}
</script>
<style lang="scss" scoped>
.videoPage{
width: 100%;
height: 100%;
}
.map{
width: 100%;
height: 100%;
}
</style>