Showing
1 changed file
with
52 additions
and
46 deletions
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <div class="wrapper"> | 2 | <div class="wrapper"> |
| 3 | <div ref="wrapRef" :style="{ height, width }"> </div> | 3 | <div ref="wrapRef" :style="{ height, width }"> </div> |
| 4 | <div class="right-wrap"> | 4 | <div class="right-wrap"> |
| 5 | - <BasicTable @register="registerTable" @rowClick="deviceRowClick"> | 5 | + <BasicTable style="cursor: pointer" @register="registerTable" @rowClick="deviceRowClick"> |
| 6 | <template #deviceState="{ record }"> | 6 | <template #deviceState="{ record }"> |
| 7 | <Tag | 7 | <Tag |
| 8 | :color=" | 8 | :color=" |
| @@ -230,24 +230,28 @@ | @@ -230,24 +230,28 @@ | ||
| 230 | const BMap = (window as any).BMap; | 230 | const BMap = (window as any).BMap; |
| 231 | const wrapEl = unref(wrapRef); | 231 | const wrapEl = unref(wrapRef); |
| 232 | const map = new BMap.Map(wrapEl); | 232 | const map = new BMap.Map(wrapEl); |
| 233 | - if (record.deviceInfo.address) { | ||
| 234 | - keys = await getDeviceDataKeys(entityId); | ||
| 235 | - const { name, organizationDTO, deviceState, deviceProfile } = record; | ||
| 236 | - const { longitude, latitude, address } = record.deviceInfo; | ||
| 237 | - const point = new BMap.Point(longitude, latitude); | ||
| 238 | - let options = { | ||
| 239 | - width: 330, // 信息窗口宽度 | ||
| 240 | - height: 0, // 信息窗口高度 | ||
| 241 | - }; | ||
| 242 | - map.centerAndZoom(point, 15); | ||
| 243 | - map.enableScrollWheelZoom(true); | ||
| 244 | - // 创建信息窗口对象 | ||
| 245 | - const res = await getDeviceActiveTime(entityId); | 233 | + // if (record.deviceInfo.address) { |
| 234 | + keys = await getDeviceDataKeys(entityId); | ||
| 235 | + const { name, organizationDTO, deviceState, deviceProfile } = record; | ||
| 236 | + const { longitude, latitude, address } = record.deviceInfo; | ||
| 237 | + //这里如果没有地理位置 最好设置一个默认位置 不然地图会全蓝 | ||
| 238 | + const point = new BMap.Point( | ||
| 239 | + longitude == '' ? 104.04666605565338 : longitude, | ||
| 240 | + latitude == '' ? 30.543516387560476 : latitude | ||
| 241 | + ); | ||
| 242 | + let options = { | ||
| 243 | + width: 330, // 信息窗口宽度 | ||
| 244 | + height: 0, // 信息窗口高度 | ||
| 245 | + }; | ||
| 246 | + map.centerAndZoom(point, 15); | ||
| 247 | + map.enableScrollWheelZoom(true); | ||
| 248 | + // 创建信息窗口对象 | ||
| 249 | + const res = await getDeviceActiveTime(entityId); | ||
| 246 | 250 | ||
| 247 | - let { value: activeStatus, lastUpdateTs } = res[0]; | ||
| 248 | - lastUpdateTs = moment(lastUpdateTs).format('YYYY-MM-DD HH:mm:ss'); | ||
| 249 | - let infoWindow = new BMap.InfoWindow( | ||
| 250 | - ` | 251 | + let { value: activeStatus, lastUpdateTs } = res[0]; |
| 252 | + lastUpdateTs = moment(lastUpdateTs).format('YYYY-MM-DD HH:mm:ss'); | ||
| 253 | + let infoWindow = new BMap.InfoWindow( | ||
| 254 | + ` | ||
| 251 | <div style="display:flex;justify-content:space-between; margin:20px 0px;"> | 255 | <div style="display:flex;justify-content:space-between; margin:20px 0px;"> |
| 252 | <div style="font-size:16px;font-weight:bold">${name}</div> | 256 | <div style="font-size:16px;font-weight:bold">${name}</div> |
| 253 | ${ | 257 | ${ |
| @@ -261,43 +265,45 @@ | @@ -261,43 +265,45 @@ | ||
| 261 | </div> | 265 | </div> |
| 262 | <div>所属组织:${organizationDTO.name}</div> | 266 | <div>所属组织:${organizationDTO.name}</div> |
| 263 | <div style="margin-top:6px;">接入协议:${deviceProfile.transportType}</div> | 267 | <div style="margin-top:6px;">接入协议:${deviceProfile.transportType}</div> |
| 264 | - <div style="margin-top:6px;">设备位置:${address}</div> | 268 | + <div style="margin-top:6px;">设备位置:${ |
| 269 | + address == '' ? '该设备暂无地理位置' : address | ||
| 270 | + }</div> | ||
| 265 | <div style="margin-top:6px;">${activeStatus ? '在' : '离'}线时间:${lastUpdateTs}</div> | 271 | <div style="margin-top:6px;">${activeStatus ? '在' : '离'}线时间:${lastUpdateTs}</div> |
| 266 | <div style="display:flex;justify-content:end; margin-top:10px"> | 272 | <div style="display:flex;justify-content:end; margin-top:10px"> |
| 267 | <button onclick="openDeviceInfoDrawer()" style="margin-right:10px;color:#fff;background-color:#409eff;padding:4px; border-radius:4px;">设备信息</button> | 273 | <button onclick="openDeviceInfoDrawer()" style="margin-right:10px;color:#fff;background-color:#409eff;padding:4px; border-radius:4px;">设备信息</button> |
| 268 | <button onclick="openHistoryModal()" style="color:#fff;background-color:#409eff;padding:4px; border-radius:4px;">历史数据</button> | 274 | <button onclick="openHistoryModal()" style="color:#fff;background-color:#409eff;padding:4px; border-radius:4px;">历史数据</button> |
| 269 | </div> | 275 | </div> |
| 270 | `, | 276 | `, |
| 271 | - options | ||
| 272 | - ); | 277 | + options |
| 278 | + ); | ||
| 273 | 279 | ||
| 274 | - map.openInfoWindow(infoWindow, map.getCenter()); | ||
| 275 | - let preMarker = null; | 280 | + map.openInfoWindow(infoWindow, map.getCenter()); |
| 281 | + let preMarker = null; | ||
| 276 | 282 | ||
| 277 | - const rivet = deviceState === 'INACTIVE' ? djx : deviceState === 'ONLINE' ? zx : lx; | ||
| 278 | - let myIcon = new BMap.Icon(rivet, new BMap.Size(20, 30)); | ||
| 279 | - let marker = new BMap.Marker(point, { icon: myIcon }); | ||
| 280 | - if (marker) { | ||
| 281 | - map.removeOverlay(preMarker); | ||
| 282 | - } | ||
| 283 | - map.addOverlay(marker); | ||
| 284 | - //标注监听事件 | ||
| 285 | - marker.addEventListener('click', function () { | ||
| 286 | - map.openInfoWindow(infoWindow, map.getCenter()); | ||
| 287 | - }); | ||
| 288 | - //标注监听事件 | ||
| 289 | - } else { | ||
| 290 | - const point = new BMap.Point(106.63028229687498, 36.06735821600903); | ||
| 291 | - let options = { | ||
| 292 | - width: 100, // 信息窗口宽度 | ||
| 293 | - height: 100, // 信息窗口高度 | ||
| 294 | - title: '提示', // 信息窗口标题 | ||
| 295 | - }; | ||
| 296 | - map.centerAndZoom(point, 5); | ||
| 297 | - map.enableScrollWheelZoom(true); | ||
| 298 | - let infoWindow = new BMap.InfoWindow('该设备暂无地理位置', options); // 创建信息窗口对象 | ||
| 299 | - map.openInfoWindow(infoWindow, map.getCenter()); | 283 | + const rivet = deviceState === 'INACTIVE' ? djx : deviceState === 'ONLINE' ? zx : lx; |
| 284 | + let myIcon = new BMap.Icon(rivet, new BMap.Size(20, 30)); | ||
| 285 | + let marker = new BMap.Marker(point, { icon: myIcon }); | ||
| 286 | + if (marker) { | ||
| 287 | + map.removeOverlay(preMarker); | ||
| 300 | } | 288 | } |
| 289 | + map.addOverlay(marker); | ||
| 290 | + //标注监听事件 | ||
| 291 | + marker.addEventListener('click', function () { | ||
| 292 | + map.openInfoWindow(infoWindow, map.getCenter()); | ||
| 293 | + }); | ||
| 294 | + //标注监听事件 | ||
| 295 | + // } else { | ||
| 296 | + // const point = new BMap.Point(106.63028229687498, 36.06735821600903); | ||
| 297 | + // let options = { | ||
| 298 | + // width: 100, // 信息窗口宽度 | ||
| 299 | + // height: 100, // 信息窗口高度 | ||
| 300 | + // title: '提示', // 信息窗口标题 | ||
| 301 | + // }; | ||
| 302 | + // map.centerAndZoom(point, 5); | ||
| 303 | + // map.enableScrollWheelZoom(true); | ||
| 304 | + // let infoWindow = new BMap.InfoWindow('该设备暂无地理位置', options); // 创建信息窗口对象 | ||
| 305 | + // map.openInfoWindow(infoWindow, map.getCenter()); | ||
| 306 | + // } | ||
| 301 | }; | 307 | }; |
| 302 | 308 | ||
| 303 | // 设备信息 | 309 | // 设备信息 |