hb_zhgd_screen/js/personnelControl/personnelControlList.js

418 lines
15 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, from, $, colorpicker;
const bidCode = parent.$('#bidPro').val();
let map;
let overlays = [];
let coordinates = []; //电子围栏坐标存放处
layui.use(['layer', 'element', 'table', 'tree', 'form', 'jquery'], function () {
element = layui.element;
colorpicker = layui.colorpicker;
layer = layui.layer;
table = layui.table;
tree = layui.tree;
form = layui.form;
$ = layui.jquery;
// 响应成功后的拦截器
$.ajaxSetup({
beforeSend: function(xhr, options) {
var originalSuccess = options.success
options.success = function(data, textStatus, jqXhr) {
data = modifyResponseData(data);
// success(data,textStatus, jqXhr);
originalSuccess.apply(this, arguments)
}
}
})
//围栏类型下拉选
getRailLists();
//报警下拉选
getGiveAnAlarmLists();
//警戒等级下拉选
getGuardAgainstLists();
colorpicker.render({
elem: '#ID-colorpicker-demo-form',
color: '#1c97f5',
done: function(color){
$('#color').val(color);
}
});
mapInit('recreate');
$('#addButton').on('click', function(){
$('#hiddenContent').toggle(); // 切换显示与隐藏
$('#content').toggle(); // 切换显示与隐藏
mapInit('draw');
});
$('#return').on('click', function(){
$('#hiddenContent').toggle(); // 切换显示与隐藏
$('#content').toggle(); // 切换显示与隐藏
mapInit('recreate');
});
form.on('submit(demo1)', function(data){
let field = data.field; // 获取表单字段值
field.arrayField = coordinates.toString();
field.roleCode = roleCode;
field.orgId = orgId;
field.userId = userId;
field.bidCode = bidCode;
console.log(field);
const url = commonUrl + "screen/largeScreen/personnelControl/addNewFence";
let encryptStr = encryptCBC(JSON.stringify(field));
ajaxRequest(url, "POST", encryptStr, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
$('#hiddenContent').toggle(); // 切换显示与隐藏
$('#content').toggle(); // 切换显示与隐藏
table.reload('dome');
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}else if(result.code === 401){
loginout(1)
}
}, function (xhr) {
error(xhr)
} , "application/json",aqEnnable);
// return false; // 阻止默认 form 跳转
});
//穿戴装备
wearGarList();
});
//穿戴装备
function wearGarList(){
const url = commonUrl + "screen/largeScreen/personnelControl/getNewFenceList";
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: 'number', width:60,title: '序号', align: 'center', type: 'numbers'},
{field: 'fenceName', width:110, align: 'center', title: '围栏名称'},
{field: 'fenceType', width:110, align: 'center', title: '围栏类型'},
{field: 'alarmType', width:100, align: 'center', title: '报警类型'},
{field: 'alertType', width:100, align: 'center', title: '警戒等级'},
{field: 'color', width:80, align: 'center', title: '颜色', templet: d => {
return '<div style="width: 20px;height: 20px;background-color: '+d.color+'"></div>';
}
},
{field: 'status', align: 'center', title: '状态', templet: '#switchTpl'},
{
fixed: 'right', width:80, title: '操作', align: 'center', templet: d => {
let text = "";
text +='<a lay-event="del" style="color: #f80b37;cursor: pointer;font-size: 16px">删除</a>';
return text;
}
}
]],
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);
},
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [5, 10, 20, 100],
limit: 7
});
table.on('tool(test)', function (obj) {
var data = obj.data; //当前行数据
var rowIndex = obj.index;
var layEvent = obj.event; //当前点击的事件名
if (layEvent === 'del') {
layer.confirm('确定要删除吗?', {
btn : [ '确定', '取消' ]
}, function(index) {
const url = commonUrl + "screen/largeScreen/personnelControl/delSubcontractorById";
const params = {
"roleCode": roleCode,
"orgId": orgId,
"userId": userId,
"bidCode": bidCode,
"id": data.id
}
let encryptStr = encryptCBC(JSON.stringify(params));
ajaxRequest(url, "POST", encryptStr, true, function () {
}, function (result) {
if (result.code === 200) {
layer.close(index);
table.reload('dome');
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}else if(result.code === 401){
loginout(1)
}
}, function (xhr) {
// error(xhr)
}, "application/json",aqEnnable);
});
}
});
//权限判断
form.on('switch(statusSwitch)', function(data){
debugger
var isChecked = data.elem.checked; // 获取复选框的当前状态
var value = data.value; // 获取复选框的值
let status = isChecked ? 1 : 0;
const url = commonUrl + "screen/largeScreen/personnelControl/subcontractorSwitchListen";
const params = {
"roleCode": roleCode,
"orgId": orgId,
"userId": userId,
"bidCode": bidCode,
"id": value,
"status": status
}
let encryptStr = encryptCBC(JSON.stringify(params));
ajaxRequest(url, "POST", encryptStr, true, function () {
}, function (result) {
if (result.code === 200) {
layer.msg('状态更新成功');
table.reload('dome');
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}else if(result.code === 401){
loginout(1)
}
}, function (xhr) {
// error(xhr)
}, "application/json",aqEnnable);
});
}
function mapInit(module){
// 获取经纬度
var lat,lon;
// if (navigator.geolocation) {
// navigator.geolocation.getCurrentPosition(function (position) {
// lat = position.coords.latitude;
// lon = position.coords.longitude;
lat = '31.93566198931321';
lon = '117.16010067578883';
console.log(lon,lat)
map= new BMap.Map("map");
map.centerAndZoom(new BMap.Point(lon,lat), 15);
map.enableScrollWheelZoom();
var marker = new BMap.Marker(new BMap.Point(lon,lat)); // 创建标注
map.addOverlay(marker);
if (module === 'draw') {
drawAFence();
} else if (module === 'recreate') {
RecreateFence();
}
// });
// } else {
// console.log("浏览器不支持 Geolocation API");
// }
}
//围栏显示
function RecreateFence(){
const url = commonUrl + "screen/largeScreen/personnelControl/getReplicaFence";
const params = {
"roleCode": roleCode,
"orgId": orgId,
"userId": userId,
"bidCode": bidCode
}
let encryptStr = encryptCBC(JSON.stringify(params));
ajaxRequest(url, "POST", encryptStr, true, function () {
}, function (result) {
// console.log(result);
if (result.code === 200) {
let rawData = result.data;
let polygonsDatas = [];
// 将原始数据按 id 分组
let idGroups = {};
rawData.forEach(function(item) {
if (!idGroups[item.id]) {
idGroups[item.id] = [];
}
idGroups[item.id].push(item);
});
// 将每组数据转换为 BMapGL.Point 格式并添加到 polygonsDatas 中
for (let id in idGroups) {
let points = idGroups[id].map(function(item) {
return new BMap.Point(parseFloat(item.longitude), parseFloat(item.latitude));
});
let color = idGroups[id][0].color;
polygonsDatas.push({ points: points, color: color });
}
console.log(polygonsDatas);
polygonsDatas.forEach(function(data) {
// 创建一个多边形对象
var polygon = new BMap.Polygon([data.points], {
zIndex: 999,
fillOpacity: 0,
strokeColor: data.color,
strokeWeight: 2,
strokeOpacity: 1
});
map.addOverlay(polygon);
});
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}else if(result.code === 401){
loginout(1)
}
}, function (xhr) {
// error(xhr)
} , "application/json",aqEnnable);
}
//绘制围栏
function drawAFence(){
var overlaycomplete = function (e) {
overlays.push(e.overlay);
debugger
if (overlays.length > 0) {
console.log(overlays[0])
var polygon = e.overlay.getPath();//Array<Point> 返回多边型的点数组
// const polygon = overlays[0].Po;
for (let i = 0; i < polygon.length; i++) {
coordinates.push(polygon[i].lng + '@' +polygon[i].lat);
}
console.log("多边形顶点坐标:", coordinates);
}
};
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);
}
function getRailLists(){
// let paramData = 'bidCode=' + bidCode + '&roleCode=' + roleCode + '&orgId=' + orgId + '&userId=' + userId;
// let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData);
const url = commonUrl + "system/sys/select/getRailLists"; // url
ajaxRequestGet(url, "GET", true, function () {
}, function (result) {
if (result.code === 200) {
let html = '';
if (result.data && result.data.length > 0) {
$.each(result.data, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>'
})
}
$('#railType').empty().append(html);
layui.form.render();
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}
}, function (xhr, status, error) {
error(xhr, status, error)
}, aqEnnable);
}
function getGiveAnAlarmLists(){
let paramData = 'bidCode=' + bidCode + '&roleCode=' + roleCode + '&orgId=' + orgId + '&userId=' + userId;
let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData);
const url = commonUrl + "system/sys/select/getGiveAnAlarmLists?params=" + montageParam; // url
ajaxRequestGet(url, "GET", true, function () {
}, function (result) {
if (result.code === 200) {
let html = '';
if (result.data && result.data.length > 0) {
$.each(result.data, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>'
})
}
$('#giveAnAlarmType').empty().append(html);
layui.form.render();
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}
}, function (xhr, status, error) {
error(xhr, status, error)
}, aqEnnable);
}
function getGuardAgainstLists(){
let paramData = 'bidCode=' + bidCode + '&roleCode=' + roleCode + '&orgId=' + orgId + '&userId=' + userId;
let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData);
const url = commonUrl + "system/sys/select/getGuardAgainstLists?params=" + montageParam; // url
ajaxRequestGet(url, "GET", true, function () {
}, function (result) {
if (result.code === 200) {
let html = '';
if (result.data && result.data.length > 0) {
$.each(result.data, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>'
})
}
$('#guardAgainstType').empty().append(html);
layui.form.render();
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}
}, function (xhr, status, error) {
error(xhr, status, error)
}, aqEnnable);
}