赖素文
authored
about a year ago
1
赖素文
authored
about a year ago
2
let action = null ;
赖素文
authored
about a year ago
3
let mapObj = null ;
赖素文
authored
about a year ago
4
var app = null ;
赖素文
authored
about a year ago
5
赖素文
authored
about a year ago
6
7
8
9
10
11
12
13
14
15
16
17
18
layui . config ({
base : "/js/" ,
version : 1
}). use ([ 'system' ], function () {
var form = layui . form ,
$ = layui . jquery ,
element = layui . element ,
table = layui . table ,
system = layui . system ,
sysU = new system . u (),
sendDataWhere = null ,
areaName = "configure" ,
controllerName = "BaseProject" ,
赖素文
authored
about a year ago
19
vueApp = null ;
赖素文
authored
about a year ago
20
21
22
23
24
25
26
action = {
}
app = {
data : {
赖素文
authored
about a year ago
27
mapEle : "container" ,
赖素文
authored
about a year ago
28
29
},
methods : {
赖素文
authored
about a year ago
30
31
32
/**
* 初始化地图
* /
赖素文
authored
about a year ago
33
34
35
initMap () {
mapObj = mapApp ( app.data.mapEle ) .initMap () ;
},
赖素文
authored
about a year ago
36
37
38
/ **
* 获取项目数据
* /
赖素文
authored
about a year ago
39
getProjectDataList () {
赖素文
authored
about a year ago
40
var ajaxConfig = {
赖素文
authored
about a year ago
41
data: { pageRequest: null, entity: { flag: "projectMapList" } },
赖素文
authored
about a year ago
42
43
44
url: `/ configure / BaseProject / Load ` ,
success : function ( result ) {
if ( sysU . successBefore ( result )) return false ;
赖素文
authored
about a year ago
45
46
47
app . methods . createMarkerInfo ( result );
app . methods . initVueDataValue ( result );
app . methods . createSidebarList ( result );
赖素文
authored
about a year ago
48
49
50
51
}
};
sysU . ajax ( ajaxConfig );
},
赖素文
authored
about a year ago
52
53
54
/**
* 创建marker标注
*/
赖素文
authored
about a year ago
55
createMarkerInfo ( json ) {
赖素文
authored
about a year ago
56
57
json . Result . list . forEach ( item => {
var content = ` < h4 style = 'margin:0;' > 地址 : $ { item . projectAddress } < /h4>
HuXiYu
authored
about a year ago
58
设备总数:${item.eqCount}、
赖素文
authored
about a year ago
59
60
61
62
在线:<span style='color:blue;'>${item.eqOnLineCount}</ span > 、
待机 : $ { item . eqFreeCount }
故障 : $ { item . eqFailureCount } < br />
离线 ( 5 m ) : < span style = 'color:red;' > $ { item . eqOfflineCount } < /span>
赖素文
authored
about a year ago
63
<div style = 'display: flex;' >
赖素文
authored
about a year ago
64
<div><a style='text-decoration: underline;color: blue;' onclick='app.methods.mapMarkerClick ( ${JSON.stringify ( item ) } ) ' href='#'>项目概述</ a >< /div>
赖素文
authored
about a year ago
65
</ div > ` ; //定义大标题 写html语句标签
赖素文
authored
about a year ago
66
mapObj . createMarkerInfo ( content , {
赖素文
authored
about a year ago
67
title : "项目名称:" + item . projectName ,
赖素文
authored
about a year ago
68
longitude : item . longitude ,
赖素文
authored
about a year ago
69
70
latitude : item . latitude ,
id : item . id
赖素文
authored
about a year ago
71
72
73
});
})
},
赖素文
authored
about a year ago
74
赖素文
authored
about a year ago
75
mapMarkerClick ( item ) {
赖素文
authored
about a year ago
76
debugger
赖素文
authored
about a year ago
77
78
var url = ` / configure / BaseProject / ProjectOverview ? id = $ { item . id } & keys = $ { item . keys } & projectName = $ { item . projectName } ` ;
var urlHtml = $ ( ` < a title = "项目概述" data - url = "${url}" >< i class = "layui-icon" data - icon = "" >< /i><cite>项目概述</ cite >< /a>` )
赖素文
authored
about a year ago
79
80
81
localStorage.setItem ( "projectMapKeys", item.keys ) ;
localStorage.setItem ( "projectMapName", item.projectName ) ;
赖素文
authored
about a year ago
82
83
84
85
86
87
88
var tabsEle = window.parent.document.querySelectorAll ( "#top_tabs cite" ) ;
for ( var i = 0; i < tabsEle.length; i++ ) {
if ( tabsEle [ i ] .innerText == "项目概述" ) {
$ ( tabsEle [ i ]) .next () .click ()
break;
}
}
赖素文
authored
about a year ago
89
window.top.tab.tabAdd ( urlHtml ) ;
赖素文
authored
about a year ago
90
91
92
93
94
95
},
/ **
* 创建右侧项目列表
* /
createSidebarList ( json ) {
var sidebarList = [] ;
赖素文
authored
about a year ago
96
var index = 1;
赖素文
authored
about a year ago
97
json.Result.list.forEach ( item => {
赖素文
authored
about a year ago
98
var content = `<dd><a class='projectListA' onclick='app.methods.findLocateMarker ( ${item.id.toString () },event ) ' href="javascript:;">【${index++}】${item.projectName}</ a >< /dd>`;/ / 定义大标题 写 html 语句标签
赖素文
authored
about a year ago
99
100
101
102
103
104
105
106
107
sidebarList . push ( content )
})
if ( sidebarList . length > 0 ) {
$ ( ".sidebar-list-item" ). empty (). append ( sidebarList . join ( " " ))
}
},
/**
* 查找Marker并打开对应的infoWindow信息框
*/
赖素文
authored
about a year ago
108
findLocateMarker ( markerId , event ) {
赖素文
authored
about a year ago
109
mapObj . getLocateMarker ( markerId );
赖素文
authored
about a year ago
110
111
$ ( ".projectListA" ). css ( "color" , "rgba(255, 255, 255, .7)" )
$ ( event . currentTarget ). css ( "color" , "#42b983" )
赖素文
authored
about a year ago
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
},
/**
* 初始化vue
*/
initVue : function () {
vueApp = new Vue ({
el : '.vueApp' ,
data : {
footer : {
projectCount : 0 ,
eqCount : 0 ,
eqOnlineRate : "" ,
eqTuoRate : "" ,
}
},
methods : {
}
});
},
/**
* vue 集合赋值
*/
赖素文
authored
about a year ago
135
initVueDataValue : ( result ) => {
HuXiYu
authored
about a year ago
136
var res = result . Result ;
赖素文
authored
about a year ago
137
138
139
140
141
vueApp . footer . projectCount = res . list . length ;
//设备总数
vueApp . footer . eqCount = res . sumEqCount ;
vueApp . footer . eqOnlineRate = res . onlineRate ;
vueApp . footer . eqTuoRate = res . tuoShanRate ;
赖素文
authored
about a year ago
142
143
144
}
},
registerEvent : function () {
赖素文
authored
about a year ago
145
146
},
赖素文
authored
about a year ago
147
148
init : function () {
app . methods . initMap ();
赖素文
authored
about a year ago
149
150
app . methods . initVue ();
app . methods . getProjectDataList ();
赖素文
authored
about a year ago
151
app . registerEvent ();
赖素文
authored
about a year ago
152
}
赖素文
authored
about a year ago
153
154
155
};
app . init ();
});