243 lines
10 KiB
JavaScript
243 lines
10 KiB
JavaScript
(function(){
|
|
X.pageLogic['screen'] = {
|
|
init : function(parms){
|
|
var width = window.innerWidth - 270;
|
|
$(".screen-box").css("width",width+"px");
|
|
var me = this;
|
|
this.parms = parms;
|
|
this.callback = parms.callback; //选择后执行的回调
|
|
var reportid = parms.extData;//获取到上层弹窗传的数据
|
|
|
|
//默认开始时有一个数据
|
|
var data = {
|
|
'filts':[],
|
|
'relation':'and'
|
|
};
|
|
if(reportid){
|
|
data = reportid;
|
|
if(reportid.relation == 'and'){
|
|
$('.screen-left-qei').html("且");
|
|
}else {
|
|
$('.screen-left-qei').html("或");
|
|
}
|
|
if(reportid['filts'].length > 1){
|
|
$('.screen-left-qei').show();
|
|
}
|
|
X.laytpldata("#screen-con-box-dot",reportid['filts'],".screen-con-box",function(){
|
|
renderdate();
|
|
});
|
|
}
|
|
|
|
var my_event,load_filter_props,filter_map;
|
|
X.api("data_auth/my_event","get",{},function(d){
|
|
my_event = d;
|
|
X.api("data_auth/load_filter_props","post",{event_name:my_event[0]['category'][0]['event_name']},function(val){
|
|
load_filter_props = val;
|
|
X.api("data_auth/filter_map","get",{},function(d){
|
|
filter_map = d;
|
|
if(!reportid){
|
|
updatascreencon();
|
|
}
|
|
})
|
|
})
|
|
});
|
|
|
|
// 显示隐藏添加条件按钮
|
|
$(document).off('click','.screen-right-box .img').on('click','.screen-right-box .img',function(){
|
|
if($(".screen-buttom-box").css('display') == 'block'){
|
|
$(".screen-buttom-box").hide();
|
|
$(".screen-left-qei").css('bottom','0px');
|
|
$(".screen-right-box .img").css('transform','rotate(180deg)');
|
|
}else {
|
|
$(".screen-buttom-box").show();
|
|
$(".screen-left-qei").css('bottom','24px');
|
|
$(".screen-right-box .img").css('transform','rotate(360deg)');
|
|
}
|
|
});
|
|
|
|
//清空按钮
|
|
$(document).off('click','.screen-right-box .qingkong').on('click','.screen-right-box .qingkong',function(){
|
|
layer.closeAll();
|
|
});
|
|
|
|
$(document).off('click','.screen-left-box .screen-left-qei').on('click','.screen-left-box .screen-left-qei',function(){
|
|
if($(this).html() == "且"){
|
|
$(this).html("或");
|
|
data['relation'] = 'or';
|
|
}else {
|
|
$(this).html("且");
|
|
data['relation'] = 'and';
|
|
}
|
|
});
|
|
|
|
function updatascreencon(){
|
|
var drr={
|
|
"columnName":load_filter_props[0]['category'][0]['id'],//事件id
|
|
"columnDesc":load_filter_props[0]['category'][0]['title'],//事件中文显示
|
|
'data_type':load_filter_props[0]['category'][0]['data_type'],//类型
|
|
'comparator_name':'等于',//默认等于
|
|
"comparator":'==',//符号id
|
|
"ftv":[],//条件
|
|
"strftv":'',//显示条件
|
|
"section":[-1,1],//区间
|
|
"tableType":load_filter_props[0]['id']
|
|
};
|
|
|
|
data['filts'].push(drr);
|
|
|
|
X.laytpldata("#screen-con-box-dot",data['filts'],".screen-con-box",function(){
|
|
renderdate();
|
|
});
|
|
if(data['filts'].length >= 2){
|
|
$(".screen-left-qei").show();
|
|
}else {
|
|
$(".screen-left-qei").hide();
|
|
}
|
|
};
|
|
|
|
//条件添加按钮
|
|
$(document).off('click','.screen-buttom-box .screen-buttom').on('click','.screen-buttom-box .screen-buttom',function(){
|
|
updatascreencon();
|
|
});
|
|
|
|
X.daterender("#time-box-timechoice1");
|
|
|
|
var render_date_index;//且用户符合时间选择框的index
|
|
$(document).off('click','.right-date-box').on("click",'.right-date-box',function(){
|
|
var index = $(this).attr("data-index");
|
|
render_date_index = index;
|
|
});
|
|
|
|
function renderdate(){
|
|
lay('.right-date-box').each(function(){
|
|
layui.laydate.render({
|
|
elem: this
|
|
,type:"datetime"
|
|
,trigger: 'click'
|
|
,done: function(value, date, endDate){
|
|
data['filts'][render_date_index]['strftv'] = value;
|
|
var datearr = [];
|
|
datearr.push(value)
|
|
data['filts'][render_date_index]['ftv'] = datearr;
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
$(document).off('click','.screen-con-bg .left-type').on('click','.screen-con-bg .left-type',function(){
|
|
var obj = $(this);
|
|
var offset = obj.offset();
|
|
var index = obj.attr('data-index');
|
|
//点击按钮,数据,向左偏移,向右偏移
|
|
X.querycriteriapop(load_filter_props,'category',offset.left,offset.top+obj.height(),function(val){
|
|
obj.html(val.title);
|
|
data['filts'][index]['columnDesc'] = val.title;
|
|
data['filts'][index]['columnName'] = val.id;
|
|
data['filts'][index]['data_type'] = val.type;
|
|
data['filts'][index]['tableType'] = val.table_type;
|
|
X.laytpldata("#screen-con-box-dot",data['filts'],".screen-con-box",function(){
|
|
renderdate();
|
|
});
|
|
});
|
|
});
|
|
|
|
//下拉选项触发事件
|
|
$(document).off('click','.screen-content-sel').on('click','.screen-content-sel',function(){
|
|
var obj = $(this);
|
|
var offset = obj.offset();
|
|
var index = obj.attr('data-index');
|
|
var type =obj.attr('data-type');
|
|
|
|
X.parametersopen(filter_map[type],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){
|
|
// console.log(val);
|
|
obj.html(val.title);
|
|
data['filts'][index]['comparator_name'] = val.title;
|
|
data['filts'][index]['comparator'] = val.id;
|
|
if(val.id == "range"){
|
|
data['filts'][index]['ftv'] = [-1,1];
|
|
}
|
|
X.laytpldata("#screen-con-box-dot",data['filts'],".screen-con-box",function(){
|
|
renderdate();
|
|
});
|
|
})
|
|
});
|
|
|
|
$(document).off("click",'.right-box').on("click",'.right-box',function(){
|
|
var obj = $(this);
|
|
var index = obj.attr("data-index");
|
|
var comparator = obj.attr("data-comparator");//选择多选时才能多选
|
|
var offset = obj.offset();
|
|
var columnName = data['filts'][index]['columnName'];
|
|
X.api("data_mana/select_attr","post",{attr_name:columnName},function(val){
|
|
var darr = {
|
|
comparator:comparator,
|
|
data: val['map_']
|
|
}
|
|
if(val != "查无数据"){
|
|
X.parametersopen(darr,'dropdownlist3',[offset.top+obj.height(),offset.left],function(val){
|
|
if(comparator == "in"){
|
|
if(data['filts'][index]['strftv'] == "" ){
|
|
var strftv = val.title;
|
|
var ftv = val.id;
|
|
}else {
|
|
var strftv = val.title;
|
|
var ftv = val.id;
|
|
}
|
|
data['filts'][index]['strftv'] = strftv;
|
|
console.log(ftv);
|
|
var valarr = ftv.split(",");
|
|
data['filts'][index]['ftv']=valarr;
|
|
|
|
}else {
|
|
data['filts'][index]['strftv'] = val.title;
|
|
var arr = [];
|
|
arr.push(val.id);
|
|
data['filts'][index]['ftv'] = arr;
|
|
}
|
|
|
|
X.laytpldata("#screen-con-box-dot",data['filts'],".screen-con-box",function(){
|
|
renderdate();
|
|
});
|
|
})
|
|
}
|
|
})
|
|
// console.log(data['filts'][index]['columnName'])
|
|
});
|
|
|
|
//文本框条件输入触发事件
|
|
$(document).off('click','.screen-right-txt').on('change','.screen-right-txt',function(){
|
|
var index = $(this).attr('data-index');
|
|
var val = $(this).val();
|
|
var valarr = val.split(",");
|
|
data['filts'][index]['ftv']=valarr;
|
|
data['filts'][index]['strftv']=val;
|
|
});
|
|
|
|
//删除按钮
|
|
$(document).off('click','.screen-con-bg .screen-del').on('click','.screen-con-bg .screen-del',function(){
|
|
var index = $(this).attr('data-index');
|
|
if(data['filts'].length > 1){
|
|
data['filts'].splice(index, 1);
|
|
X.laytpldata("#screen-con-box-dot",data['filts'],".screen-con-box",function(){
|
|
renderdate();
|
|
});
|
|
if(data['filts'].length < 2){
|
|
$(".screen-left-qei").hide();
|
|
}
|
|
}else {
|
|
layer.closeAll();
|
|
$(".screen-left-qei").hide();
|
|
}
|
|
});
|
|
|
|
// 计算按钮
|
|
$(document).off('click','.screen-right-box .jisuan').on('click','.screen-right-box .jisuan',function(){
|
|
|
|
// 刷新看板里的数据暂时没有
|
|
me.callback && me.callback(data);
|
|
});
|
|
|
|
}
|
|
};
|
|
})();
|