ah_jjzhgd_webscreen/js/personnelControl/personnelControl.js

237 lines
7.7 KiB
JavaScript
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.

let element, layer, table, tree;
const bidCode = parent.$('#bidPro').val();
var map;
layui.use(['layer', 'element', 'table', 'tree'], function () {
element = layui.element;
layer = layui.layer;
table = layui.table;
tree = layui.tree;
//人员列表
PersonnelList();
//人员运动趋预警
PersonnelMovementWarning();
//穿戴装备
wearGarList();
});
// 人员列表
function PersonnelList(){
const url = commonUrl + "screen/largeScreen/personnelControl/getPersonnelList";
const params = {
"roleCode": roleCode,
"orgId": orgId,
"userId": userId,
"bidCode": bidCode,
"keyWord": $("#keyWord").val()
}
let encryptStr = encryptCBC(JSON.stringify(params));
ajaxRequest(url, "POST", encryptStr, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
// 人员列表树
let treeList = getTreeList(result.data, bidCode, []);
renderTree(treeList);
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}else if(result.code === 401){
loginout(1)
}
}, function (xhr) {
// error(xhr)
}, function (xhr, status, error) {
error(xhr, status, error)
}, "application/json",aqEnnable);
}
//递归拼接树
function getTreeList(rootList, id, List) {
for (let item of rootList) {
if (item.parentId == id) {
let newItem = Object.assign({}, item); // 创建一个新的对象,避免直接修改原始对象
newItem.spread = true;
newItem.children = [];
List.push(newItem);
getTreeList(rootList, newItem.id, newItem.children);
}
}
return List;
}
//layui渲染树
function renderTree(treeList) {
tree.render({
elem: '#tree',
data: treeList,
isJump: false, // 禁止点击节点时跳转
showLine: false, // 不显示连接线
onlyIconControl: false, // 仅允许节点左侧图标控制展开收起
click: function(obj) {
}
});
}
//人员运动趋预警
function PersonnelMovementWarning(){
const url = commonUrl + "screen/largeScreen/personnelControl/getPersonnelMovementList";
table.render({
elem: '#dome',
url: url,
skin: 'line',
page: false,
headers:{
decrypt:"decrypt",
"Authorization":token
},
where: {
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode
},
cols: [[
{field: 'warningTime', align: 'center', title: '时间'},
{field: 'warningContent', align: 'center', title: '预警内容'},
]],
initComplete: function () {
// 在表格渲染完成后,重新渲染序号列
var that = this.elem.next();
var tool = that.children('.layui-table-box').children('.layui-table-fixed').children('.layui-table-body').children('.layui-table');
tool.find("tr").each(function (index, item) {
$(this).find('td[data-field="LAY_TABLE_INDEX"]').text(index + 1);
});
},
done:function(res, curr, count, origin){
console.log(res);
}
})
}
//穿戴装备
function wearGarList(){
const url = commonUrl + "screen/largeScreen/personnelControl/getWearEquipmentList";
table.render({
elem: '#dome1',
url: url,
skin: 'line',
page: false,
headers:{
decrypt:"decrypt",
"Authorization":token
},
where: {
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode
},
cols: [[
{field: 'number', width:80,title: '序号', align: 'center', type: 'numbers'},
{field: 'deviceType', width:120, align: 'center', title: '装备类型'},
{field: 'deviceName', width:120, align: 'center', title: '装备名称'},
{field: 'userName', width:80, align: 'center', title: '负责人'},
{field: 'status', align: 'center', title: '状态' ,templet: function (d) {
if(d.status == 1){
return "在线";
}else if(d.status == 0){
return '<span color={red}>离线</span>';
}
}
},
{field: 'warningContent', align: 'center', fixed: 'right', title: '操作', templet: function (d) {
if (d.status == 0) {
return "--";
}else{
return '<span color={red}>开启对讲</span>';
}
}
},
]],
initComplete: function () {
// 在表格渲染完成后,重新渲染序号列
var that = this.elem.next();
var tool = that.children('.layui-table-box').children('.layui-table-fixed').children('.layui-table-body').children('.layui-table');
tool.find("tr").each(function (index, item) {
$(this).find('td[data-field="LAY_TABLE_INDEX"]').text(index + 1);
});
},
done:function(res, curr, count, origin){
console.log(res);
}
})
}
document.addEventListener('DOMContentLoaded', function() {
// 获取经纬度
var lat,lon;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
lat = position.coords.latitude;
lon = position.coords.longitude;
console.log(lon,lat)
map= new BMap.Map("map");
map.centerAndZoom(new BMap.Point(lon,lat), 11);
map.enableScrollWheelZoom(true);
var marker = new BMap.Marker(new BMap.Point(lon,lat)); // 创建标注
map.addOverlay(marker);
var overlays = [];
var overlaycomplete = function (e) {
overlays.push(e.overlay);
};
var styleOptions = {
strokeColor: "red", //边线颜色。
fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
strokeWeight: 3, //边线的宽度,以像素为单位。
strokeOpacity: 0.8, //边线透明度取值范围0 - 1。
fillOpacity: 0.6, //填充的透明度取值范围0 - 1。
strokeStyle: 'solid' //边线的样式solid或dashed。
}
//实例化鼠标绘制工具
var drawingManager = new BMapLib.DrawingManager(map, {
isOpen: false, //是否开启绘制模式
enableDrawingTool: true, //是否显示工具栏
drawingToolOptions: {
anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
offset: new BMap.Size(5, 5), //偏离值
},
circleOptions: styleOptions, //圆的样式
polylineOptions: styleOptions, //线的样式
polygonOptions: styleOptions, //多边形的样式
rectangleOptions: styleOptions //矩形的样式
});
//添加鼠标绘制工具监听事件,用于获取绘制结果
drawingManager.addEventListener('overlaycomplete', overlaycomplete);
console.log(overlays)
function clearAll() {
for (var i = 0; i < overlays.length; i++) {
map.removeOverlay(overlays[i]);
}
overlays.length = 0
}
});
} else {
console.log("浏览器不支持 Geolocation API");
}
});