datashow operation

This commit is contained in:
caoqianming 2019-12-27 01:26:49 +08:00
parent fd54a366f9
commit dabf935a79
4 changed files with 18 additions and 514 deletions

View File

@ -577,7 +577,6 @@ function update() {
}
})
$.get('api/mapshow?a=operation', function (res) {
console.log(res)
for (let i = 0, len = res.length; i < len; i++) {
var data = res[i]
data.id = data.zyqy__id
@ -585,6 +584,7 @@ function update() {
data.polygon = data.zyqy__polygon
data.name = data.zyqy__name
data.type = 'zy'
data.list = data.zylist
setPoint(data)
}
})

View File

@ -1,508 +1,4 @@
function photoCompress(file, w, objDiv) {
var ready = new FileReader();
/*开始读取指定的Blob对象或File对象中的内容. 当读取操作完成时,readyState属性的值会成为DONE,如果设置了onloadend事件处理程序,则调用之.同时,result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容.*/
ready.readAsDataURL(file);
ready.onload = function () {
var re = this.result;
canvasDataURL(re, w, objDiv)
}
}
function canvasDataURL(path, obj, callback) {
var img = new Image();
img.src = path;
img.onload = function () {
var that = this;
// 默认按比例压缩
var w = that.width,
h = that.height,
scale = w / h;
w = obj.width || w;
h = obj.height || (w / scale);
var quality = 0.7; // 默认图片质量为0.7
//生成canvas
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
// 创建属性节点
var anw = document.createAttribute("width");
anw.nodeValue = w;
var anh = document.createAttribute("height");
anh.nodeValue = h;
canvas.setAttributeNode(anw);
canvas.setAttributeNode(anh);
ctx.drawImage(that, 0, 0, w, h);
// 图像质量
if (obj.quality && obj.quality <= 1 && obj.quality > 0) {
quality = obj.quality;
}
// quality值越小所绘制出的图像越模糊
var base64 = canvas.toDataURL('image/jpeg', quality);
// 回调函数返回base64的值
callback(base64);
}
}
function convertBase64UrlToBlob(urlData) {
var arr = urlData.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
//取消上传
function cancleUploadFile() {
xhr.abort();
}
//验证表单不为空
function myCheck(checkarray) {
for (var i = 0; i < checkarray.length; i++) {
if (checkarray[i] == "") {
return false;
}
}
return true;
}
//获取当前href的参数==当前dialog的地址
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var href = $('#dd').dialog('options')['href']
var r = href.split('?')[1].match(reg);
if (r != null) return unescape(r[2]); return null;
}
function GetQueryString2(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var href = $('#userdd').dialog('options')['href']
var r = href.split('?')[1].match(reg);
if (r != null) return unescape(r[2]); return null;
}
//放大和缩小图片
function bigger(o) {
var h = $(document).height()
var mh = h * 0.8
$this = $(o);
var img_content = $this.attr("src");
top.$("body").append(
"<div class='bg-img'>"
+ "<div class='tra-img' >"
+ "<img src='" + img_content + "' height='" + mh + "'>"
+ "</div></div>"
);
top.$(".bg-img").animate({
width: "100%",
height: "100%",
bottom: "0",
left: "0",
}, "normal")
$('.bg-img').on("click", function () {
$(this).remove();
})
}
//加载menutree列表
function convertmenu(rows) {
function exists(rows, parentid) {
for (var i = 0; i < rows.length; i++) {
if (rows[i].menuid == parentid) return true;
}
return false;
}
var nodes = [];
// get the top level nodes
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (!exists(rows, row.parentid)) {
nodes.push({
id: row.menuid,
text: row.menuname,
checked: row.checked,
iconCls: row.icon,
attributes: row.url
});
}
}
var toDo = [];
for (var i = 0; i < nodes.length; i++) {
toDo.push(nodes[i]);
}
while (toDo.length) {
var node = toDo.shift(); // the parent node
// get the children nodes
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (row.parentid == node.id) {
var child = { id: row.menuid, text: row.menuname, attributes: row.url, iconCls: row.icon, checked: row.checked };
if (node.children) {
node.children.push(child);
} else {
node.children = [child];
}
toDo.push(child);
}
}
}
return nodes;
}
//datagrid加载tree列表
function convert(rows, x) {
var x = x || 'open';
function exists(rows, parentId) {
for (var i = 0; i < rows.length; i++) {
if (rows[i].id == parentId) return true;
}
return false;
}
var nodes = [];
// get the top level nodes
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (!exists(rows, row.parentId)) {
nodes.push({
id: row.id,
text: row.name,
state: x,
pic: row.pic
});
}
}
var toDo = [];
for (var i = 0; i < nodes.length; i++) {
toDo.push(nodes[i]);
}
while (toDo.length) {
var node = toDo.shift(); // the parent node
// get the children nodes
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (row.parentId == node.id) {
var child = { id: row.id, text: row.name, pic: row.pic };
if (node.children) {
node.children.push(child);
} else {
node.children = [child];
}
toDo.push(child);
}
}
}
return nodes;
}
//关闭dialog-dd
function closeForm() {
$("#dd").dialog("close");
}
//关闭dialog-userdd
function closed2Form() {
$('#userdd').dialog("close");
}
//关闭dialog-userdd
function close3Form() {
$('#questiondd').dialog("close");
}
//新建iframe
function createFrame(url) {
var s = '<iframe id="ifr" scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe>';
return s;
}
//移除上传的文件或图片或列表
function removep(o) {
$(o).closest('li').remove();
}
//判断是否为数字
function isNumber(val) {
var regPos = /^\d+(\.\d+)?$/; //非负浮点数
//var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
if (regPos.test(val)) {
return true;
} else {
return false;
}
}
//判断是否为整数
function isIntNum(val) {
var regPos = /^\d+$/; // 非负整数
//var regNeg = /^\-[1-9][0-9]*$/; // 负整数
if (regPos.test(val)) {
return true;
} else {
return false;
}
}
// function opendialog(o){
// _clickTab = $(o).attr('url');
// _value = $(o).text();
// if (window.screen) {
// var myh = screen.availHeight * 0.7;
// $("#dd").dialog({
// maximizable: true,
// title: _value,
// width: 600,
// height: myh,
// closed: false,
// cache: false,
// href: _clickTab,
// modal: true,
// border:false,
// });
// $("#dd").window('center');
// }
// }
function changehref(o) {
_clickTab = $(o).attr('url');// 找到链接a中的targer的值
_value = $(o).attr('value');
$("#main").attr('value', _value);
$("#main").panel({ href: _clickTab, title: $(o).attr('title') });
// $.ajax({
// type: "get",
// url: _clickTab,
// async: false,
// success: function (data) {
// $("#main").attr('value',_value);
// $("#main").html(data);
// }
// });
}
//获取dialog-dd传值
function getQueryParam(name) {
var obj = $('#dd').dialog('options');
var queryParams = obj["queryParams"];
return queryParams[name];
}
//部分页面操作函数
//新增隐患
function edityh(troubleid) {
if (window.screen) {
var myh = screen.availHeight * 0.7;
var url = 'addtrouble?a=edityh&troubleid=' + troubleid
$("#dd").dialog({
maximizable: true,
title: '新增隐患',
width: 600,
height: myh,
closed: false,
cache: false,
href: url,
modal: true,
border: false,
});
$("#dd").window('center');
}
}
function choseusers(x) {
var x = x || 'participant';
var myh = screen.availHeight * 0.7;
$('#userdd').dialog({
maximizable: true,
title: '选择人员',
width: 900,
height: myh,
closed: false,
cache: false,
href: 'getusersf?a=' + x,
modal: true,
border: false,
});
$('#userdd').window('center');
}
//导出excel
function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
//If JSONData is not an object then JSON.parse will parse the JSON string in an Object
var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData)
: JSONData;
var CSV = '';
//Set Report title in first row or line
CSV += ReportTitle + '\r\n\n';
//This condition will generate the Label/Header
if (ShowLabel) {
var row = "";
//This loop will extract the label from 1st index of on array
for (var index in arrData[0]) {
//Now convert each value to string and comma-seprated
row += index + ',';
}
row = row.slice(0, -1);
//append Label row with line break
CSV += row + '\r\n';
}
//1st loop is to extract each row
for (var i = 0; i < arrData.length; i++) {
var row = "";
//2nd loop will extract each column and convert it in string comma-seprated
for (var index in arrData[i]) {
row += '"' + arrData[i][index] + '",';
}
row.slice(0, row.length - 1);
//add a line break after each row
CSV += row + '\r\n';
}
if (CSV == '') {
alert("Invalid data");
return;
}
//Generate a file name
var fileName = "MyReport_";
//this will remove the blank-spaces from the title and replace it with an underscore
fileName += ReportTitle.replace(/ /g, "_");
//Initialize file format you want csv or xls
var uri = 'data:text/csv;charset=utf-8,' + encodeURI(CSV);
// Now the little tricky part.
// you can use either>> window.open(uri);
// but this will not work in some browsers
// or you will not get the correct file extension
//this trick will generate a temp <a /> tag
var link = document.createElement("a");
link.href = uri;
//set the visibility hidden so it will not effect on your web-layout
link.style = "visibility:hidden";
link.download = fileName + ".csv";
//this part will append the anchor tag and remove it after automatic click
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
//loading效果
function loading(msg) {
var msg = msg || '请稍等。。';
$('body').loading({
loadingWidth: 220,
title: msg,
titleColor: '#fff',
discColor: '#EDEEE9',
discription: '',
direction: 'column',
type: 'origin',
originBg: '#ECCFBB',
originDivWidth: 40,
originDivHeight: 40,
originWidth: 6,
originHeight: 6,
smallLoading: false,
loadingBg: 'rgba(56,43,14,0.8)',
loadingMaskBg: 'rgba(66,66,66,0.2)'
});
}
//js判断为空
function isEmpty(obj) {
// 检验 undefined 和 null
if (!obj && obj !== 0 && obj !== '') { return true; }
if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) { return true; }
if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) { return true; }
return false;
}
function openlayer(title, href, w) {
var w = w || 600;
if (window.screen) {
var myh = screen.availHeight * 0.7;
$.get(href, function (res) {
layer.open({
type: 1,
content: res,
title: title,
area: [w, myh]
});
})
}
}
//打开dd-dialog
function opendg(title, href, w) {
var w = w || 600;
if (window.screen) {
var myh = screen.availHeight * 0.7;
$("#dd").dialog({
title: title,
width: w,
height: myh,
closed: false,
cache: false,
href: href,
modal: true,
border: false,
}).dialog('center');
}
}
function opendg2(title, href) {
if (window.screen) {
var myh = screen.availHeight * 0.8;
var myW = screen.availWidth * 0.7;
$("#questiondd").dialog({
title: title,
width: myW,
height: myh,
closed: false,
cache: false,
href: href,
modal: true,
border: false,
}).dialog('center');
}
}
/**
* 使用indexOf判断元素是否存在于数组中
* @param {Object} arr 数组
* @param {Object} value 元素值
*/
function isInArray(arr, value) {
if (arr.indexOf && typeof (arr.indexOf) == 'function') {
var index = arr.indexOf(value);
if (index >= 0) {
return true;
}
}
return false;
}
function parseParams(data) {
try {
var tempArr = [];
for (var i in data) {
var key = encodeURIComponent(i);
var value = encodeURIComponent(data[i]);
tempArr.push(key + '=' + value);
}
var urlParamsStr = tempArr.join('&');
return urlParamsStr;
} catch (err) {
return '';
}
}
//排序
function jsonSort(jsonObj) {
let arr = [];
for (var key in jsonObj) {
arr.push(key)
}
arr.sort();
let str = '';
for (var i in arr) {
str += arr[i] + "=" + jsonObj[arr[i]] + "&"
}
return str.substr(0, str.length - 1)
}
//map定时显示,每分钟请求一次
//map定时显示,每分钟请求一次
function update() {
if ($('#mapshowinput').length) {
source.clear()
@ -542,6 +38,7 @@ function update() {
data.polygon = data.zyqy__polygon
data.name = data.zyqy__name
data.type = 'zy'
data.list = data.zylist
setPoint(data)
}
})

View File

@ -2,7 +2,7 @@
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv='refresh' content='1800'>
<meta http-equiv='refresh' content='1600'>
<title>数据大屏</title>
<link rel="stylesheet" href="/static/safesite/mystatic/css/bigdata/style.css" />
@ -341,7 +341,7 @@
//设置弹出框的容器
element: container,
//是否自动平移,即假如标记在屏幕边缘,弹出时自动平移地图使弹出框完全可见
autoPan: true
autoPan: false
});
$.get('../api/map?a=default', function (res) {
$('#map').empty()
@ -391,7 +391,7 @@
if (feature) {
var data = feature.getProperties()
//设置弹出框内容可以HTML自定义
var html = "<p style='color:blue'>" + data.name + "</p>"
var html = "<p style='color:green;font-weight:bold' >" + data.name + "</p>"
if (data.type == 'yh') {
html = html + "<p style='color:blue'>事故隐患数量:" + data.num.toString() + "</p>"
}
@ -400,6 +400,9 @@
}
else if (data.type == 'zy') {
html = html + "<p style='color:blue'>危险作业数量:" + data.num.toString() + "</p>"
for(let i=0;i<data.list.length;i++){
html = html + "<p style='color:red'>"+(i+1).toString()+":"+ data.list[i].zylx__dickeyname + "--" +data.list[i].zybm__partname + "--" + data.list[i].zyfzr__name +"--作业人数"+data.list[i].num.toString()+ "</p>"
}
}
else if (data.type == 'fx') {
html = html + "<p style='color:blue'>风险等级:" + data.risklevel + "</p>"
@ -471,14 +474,14 @@
var data = feature.getProperties()
if (data.type == 'yh') {
src = '/static/safesite/mystatic/images/mapyh.png'
anchor = [0.5, 50]
anchor = [0.9, 50]
} else if (data.type == 'ws') {
src = '/static/safesite/mystatic/images/mapws.png'
anchor = [0.1, 50]
}
else if (data.type == 'zy') {
src = '/static/safesite/mystatic/images/mapzy.png'
anchor = [0.9, 50]
anchor = [0.5, 50]
}
else {
src = '/static/safesite/mystatic/images/icon1.png'
@ -518,7 +521,8 @@
id: i.id,
name: i.name,
type: i.type,
num: i.num
num: i.num,
list:i.list
});
pointFeature.setStyle(createPointStyle(pointFeature));
source.addFeature(pointFeature)

View File

@ -6194,9 +6194,12 @@ def apimapshow(req):
elif a == 'operation':
objs = Operation.objects.filter(usecomp__partid=companyid, deletemark=1).exclude(
zyqy=None).exclude(zyzt__zyzt='已关闭')
objs = objs.values('zyqy__id', 'zyqy__name',
objs1 = objs.values('zyqy__id', 'zyqy__name',
'zyqy__polygon').annotate(num=Count('zyqy'))
return HttpResponse(json.dumps(list(objs)), content_type="application/json")
for i in objs1:
i['zylist'] = list(objs.filter(zyqy__id=i['zyqy__id']).values('zyid','zylx__dickeyname','zyfzr__name',
'zybm__partname').annotate(num=Count('zyry')))
return HttpResponse(json.dumps(list(objs1)), content_type="application/json")
elif a == 'all':
date1 = datetime.now() - timedelta(days=30)
yh = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1).exclude(yhzt=6).exclude(yhqy=None).exclude(