赖素文
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
sysNowClickEle =- 1 ;
赖素文
authored
about a year ago
20
vueApp = null ;
赖素文
authored
about a year ago
21
22
23
24
25
26
27
action = {
}
app = {
data : {
赖素文
authored
about a year ago
28
mapEle : "container" ,
王硕
authored
about a year ago
29
refreshDataTimeEle : document . getElementById ( 'refreshDataTime' )
赖素文
authored
about a year ago
30
31
},
methods : {
赖素文
authored
about a year ago
32
33
34
/**
* 初始化地图
* /
赖素文
authored
about a year ago
35
36
37
initMap () {
mapObj = mapApp ( app.data.mapEle ) .initMap () ;
},
王硕
authored
about a year ago
38
赖素文
authored
about a year ago
39
40
41
/ **
* 获取项目数据
* /
赖素文
authored
about a year ago
42
getProjectDataList () {
赖素文
authored
about a year ago
43
var ajaxConfig = {
赖素文
authored
about a year ago
44
data: { pageRequest: null, entity: { flag: "projectMapList" } },
赖素文
authored
about a year ago
45
46
47
url: `/ configure / BaseProject / Load ` ,
success : function ( result ) {
if ( sysU . successBefore ( result )) return false ;
赖素文
authored
about a year ago
48
49
50
app . methods . createMarkerInfo ( result );
app . methods . initVueDataValue ( result );
app . methods . createSidebarList ( result );
王硕
authored
about a year ago
51
52
53
if ( sysNowClickEle != - 1 ) {
$ ( "#a_" + sysNowClickEle ). click (). css ( "color" , "#42b983" );
}
赖素文
authored
about a year ago
54
55
56
57
}
};
sysU . ajax ( ajaxConfig );
},
赖素文
authored
about a year ago
58
59
60
/**
* 创建marker标注
*/
赖素文
authored
about a year ago
61
createMarkerInfo ( json ) {
赖素文
authored
about a year ago
62
63
json . Result . list . forEach ( item => {
var content = ` < h4 style = 'margin:0;' > 地址 : $ { item . projectAddress } < /h4>
HuXiYu
authored
about a year ago
64
设备总数:${item.eqCount}、
赖素文
authored
about a year ago
65
66
67
68
在线:<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
69
<div style = 'display: flex;' >
赖素文
authored
about a year ago
70
<div><a style='text-decoration: underline;color: blue;' onclick='app.methods.mapMarkerClick ( ${JSON.stringify ( item ) } ) ' href='#'>项目概述</ a >< /div>
赖素文
authored
about a year ago
71
</ div > ` ; //定义大标题 写html语句标签
赖素文
authored
about a year ago
72
mapObj . createMarkerInfo ( content , {
赖素文
authored
about a year ago
73
title : "项目名称:" + item . projectName ,
赖素文
authored
about a year ago
74
longitude : item . longitude ,
赖素文
authored
about a year ago
75
76
latitude : item . latitude ,
id : item . id
赖素文
authored
about a year ago
77
78
79
});
})
},
赖素文
authored
about a year ago
80
赖素文
authored
about a year ago
81
mapMarkerClick ( item ) {
赖素文
authored
about a year ago
82
debugger
赖素文
authored
about a year ago
83
84
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
85
86
87
localStorage.setItem ( "projectMapKeys", item.keys ) ;
localStorage.setItem ( "projectMapName", item.projectName ) ;
赖素文
authored
about a year ago
88
89
90
91
92
93
94
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
95
window.top.tab.tabAdd ( urlHtml ) ;
赖素文
authored
about a year ago
96
97
98
99
100
101
},
/ **
* 创建右侧项目列表
* /
createSidebarList ( json ) {
var sidebarList = [] ;
赖素文
authored
about a year ago
102
var index = 1;
赖素文
authored
about a year ago
103
json.Result.list.forEach ( item => {
王硕
authored
about a year ago
104
var content = `<dd><a id='a_${item.id}' class='projectListA' onclick='app.methods.findLocateMarker ( ${item.id.toString () },event ) ' href="javascript:;">【${index++}】${item.projectName}</ a >< /dd>`;/ / 定义大标题 写 html 语句标签
赖素文
authored
about a year ago
105
106
107
108
109
110
111
112
113
sidebarList . push ( content )
})
if ( sidebarList . length > 0 ) {
$ ( ".sidebar-list-item" ). empty (). append ( sidebarList . join ( " " ))
}
},
/**
* 查找Marker并打开对应的infoWindow信息框
*/
赖素文
authored
about a year ago
114
findLocateMarker ( markerId , event ) {
赖素文
authored
about a year ago
115
mapObj . getLocateMarker ( markerId );
王硕
authored
about a year ago
116
sysNowClickEle = markerId ;
赖素文
authored
about a year ago
117
118
$ ( ".projectListA" ). css ( "color" , "rgba(255, 255, 255, .7)" )
$ ( event . currentTarget ). css ( "color" , "#42b983" )
赖素文
authored
about a year ago
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
},
/**
* 初始化vue
*/
initVue : function () {
vueApp = new Vue ({
el : '.vueApp' ,
data : {
footer : {
projectCount : 0 ,
eqCount : 0 ,
eqOnlineRate : "" ,
eqTuoRate : "" ,
}
},
methods : {
}
});
},
/**
* vue 集合赋值
*/
赖素文
authored
about a year ago
142
initVueDataValue : ( result ) => {
HuXiYu
authored
about a year ago
143
var res = result . Result ;
赖素文
authored
about a year ago
144
145
146
147
148
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
149
150
151
152
},
refreshDataMethod : function () {
王硕
authored
about a year ago
153
154
155
156
const tabsEle = Array . from ( window . parent . document . querySelectorAll ( "#top_tabs .layui-this" ));
const isOK = tabsEle . some ( tab => tab . innerText === "项目地图" );
if ( ! isOK ) return ;
王硕
authored
about a year ago
157
158
159
160
161
162
163
164
let currenttime = parseInt ( app . data . refreshDataTimeEle . innerHTML );
if ( currenttime === 0 ) {
currenttime = 20 ;
app . methods . getProjectDataList ();
} else {
currenttime -- ;
}
app . data . refreshDataTimeEle . innerHTML = currenttime ;
赖素文
authored
about a year ago
165
166
167
}
},
registerEvent : function () {
王硕
authored
about a year ago
168
赖素文
authored
about a year ago
169
},
王硕
authored
about a year ago
170
赖素文
authored
about a year ago
171
172
init : function () {
app . methods . initMap ();
赖素文
authored
about a year ago
173
174
app . methods . initVue ();
app . methods . getProjectDataList ();
王硕
authored
about a year ago
175
setInterval ( app . methods . refreshDataMethod , 1000 );
赖素文
authored
about a year ago
176
app . registerEvent ();
赖素文
authored
about a year ago
177
}
赖素文
authored
about a year ago
178
179
180
};
app . init ();
});