//基础通用方法 var X = window.X || { event : new EventEmitter(), pageLogic : {}, DATA : { 'createsidebar':[{ title: '新建看板',id: 0,url:'newkanban'},{title: '新建文件夹',id: 1,url:'newwenjian'},{title: '创建空间',id: 2,url:'kongjianshezhi'}], 'taboperationdata':{ kanban:[ {'title':'重命名','img':'xiugai.png','click':'modifyname'}, {'title':'移动至','img':'yidong.png','click':'move'}, {'title':'复制看板','img':'fuzhi.png','click':'copy'}, {'title':'删除看板','img':'del.png','click':'del'}, ], wenjian:[ {'title':'重新命名','img':'xiugai.png','click':'modifyname'}, {'title':'删除文件夹','img':'del.png','click':'del'}, ], baobiao:[ {'title':'复制看板','img':'fuzhi.png','click':'copy'} ] }, //用户搜索条件 'search':{ category:[ { 'title':'全部', 'id':'0', 'Category':[] }, { 'title':'用户属性', 'id':'1', 'Category':[ {'title':'账户ID','id':'10','type':'string'}, {'title':'访客ID','id':'11','type':'string'}, {'title':'注册时间','id':'12','type':'time'}, {'title':'来源渠道','id':'13','type':'time'}, ] }, { 'title':'测试', 'id':'2', 'Category':[ {'title':'账户ID','id':'10','type':'string'}, {'title':'访客ID','id':'11','type':'string'}, {'title':'注册时间','id':'12','type':'time'}, {'title':'来源渠道','id':'13','type':'time'}, ] } ], condition:[ {'title':'等于','id':'0','default':false}, {'title':'不等于','id':'1','default':false}, {'title':'包括','id':'2','default':true}, {'title':'不包括','id':'3','default':false}, {'title':'有值','id':'4','default':false}, {'title':'无值','id':'5','default':false}, {'title':'正则匹配','id':'6','default':false}, {'title':'正则不匹配','id':'7','default':false}, ], condition2:[ {'title':'等于','id':'0','default':false}, {'title':'不等于','id':'1','default':false}, {'title':'小于','id':'2','default':true}, {'title':'大于','id':'3','default':false}, {'title':'有值','id':'4','default':false}, {'title':'无值','id':'5','default':false}, {'title':'区间','id':'6','default':false} ] }, //日期控件参数 'locale': { "format": 'YYYY-MM-DD', "separator": " - ", "applyLabel": "应用", "cancelLabel": "取消", "fromLabel": "起始时间", "toLabel": "结束时间'", "customRangeLabel": "自定义", "weekLabel": "W", "daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"], "monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], "firstDay": 1 }, 'timezone':[ {'title': "UTC+08:00 默认",id:8}, {'title': "当前时区",id:8}, {'title': "UTC-12:00",id:12}, {'title': "UTC-11:00",id:11}, {'title': "UTC-10:00",id:10}, {'title': "UTC-09:00",id:9}, {'title': "UTC-08:00",id:8}, {'title': "UTC-07:00",id:7}, {'title': "UTC±00:00",id:0} ], 'analysis':{ 'type1':[ {"title":'全部','id':'0','Category':[]}, { 'title':'事件属性', 'id':'1', 'Category':[ {'title':'时间偏移','id':'10','type':'string'}, {'title':'区服ID','id':'11','type':'string'}, {'title':'来源渠道','id':'12','type':'string'}, {'title':'VIP等级','id':'13','type':'string'}, ] }, { 'title':'用户属性', 'id':'2', 'Category':[ {'title':'账户ID','id':'14','type':'string'}, {'title':'访客ID','id':'15','type':'string'}, {'title':'注册时间','id':'16','type':'time'}, {'title':'来源渠道','id':'17','type':'time'}, ] }, ] } }, }; (function(){ // var ipurl = "http://10.0.0.77:7889/api/v1/"; var ipurl = "http://119.29.176.224:7889/api/v1/"; //设置或读取登录缓存,需要保存到localStorage,防止刷新时候登录数据丢失 X.loginCache = function(data){ if(data == null){ var _cache = localStorage.loginData; if(_cache){ return JSON.parse(_cache); }else{ return null; } }else{ localStorage.loginData = JSON.stringify(data); } }; //统一API接口调用 X.api = function(url,type,parms,callback){ var loginCache = X.loginCache(); var token = (loginCache? loginCache.token:""); token = "Bearer "+token; if(url.indexOf("login") != -1){ var data = parms; var url = ipurl+url; }else { var data = {}; if(parms != 1){ var data = JSON.stringify(parms); } if(url == 'data_mana/list'){ var url = ipurl+url+"?game="+ X.DATA.game+"&"+parms || "" }else { var url = ipurl+url+"?game="+ X.DATA.game || "" } } var index $.ajax({ headers: { Authorization:token//此处放置请求到的用户token }, url: url, type:type, data:data, async:false, beforeSend: function () { // loading 显示 index = layer.load(1); }, success:function(d){ // console.log(d); layer.close(index); if(d.code == 0){ callback && callback(d.data); }else { layer.msg(d.msg); } }, error:function(error){ layer.msg('服务器错误'); // console.log('服务器错误'); layer.close(index); } }); } X.template = function(url,id,data,callback){ $.get('pages/'+ url + '.html',function(content){ $('#'+id).html(content); X.pageLogic[url] && X.pageLogic[url].init && X.pageLogic[url].init(data); callback && callback(); // X.pageLogic[parms.url] && X.pageLogic[parms.url].init && X.pageLogic[parms.url].init( parms ); }); }; //弹窗 X.open = function(parms){ if(parms.url){ var url = 'pages/'+ parms.url + '.html'; $.get(url,function(html){ parms.content = html; // openindes是弹出层的标记,方便后面多个弹框对应关闭 parms.success = function(layero, index){ parms.layIndex = index; X.pageLogic[parms.url] && X.pageLogic[parms.url].init && X.pageLogic[parms.url].init( parms ); }; layer.open(parms); }) }else{ layer.open(parms); } }; //渲染表格无分页无操作 X.tabledata = function(id,url,data){ var loginCache = X.loginCache(); var token = (loginCache? loginCache.token:""); token = "Bearer "+token; layui.table.render({ headers: { Authorization: token } ,elem: id ,url: ipurl+url+"?game="+X.DATA.game ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 ,cols: data }); }; //渲染表格有分页有操作 X.laytabledata = function(id,url,data,arr){ var loginCache = X.loginCache(); var token = (loginCache? loginCache.token:""); token = "Bearer "+token; var url if(arr){ url = ipurl+url+"?game="+X.DATA.game+arr; }else { url = ipurl+url+"?game="+X.DATA.game; } layui.table.render({ headers: { Authorization: token } ,elem: id ,url: url ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 ,cols: data ,height: 'full-20' }); }; //渲染模板,模板id,数据,位置id X.laytpldata = function (mbid ,data,wzid,callback){ var getTpl = $(mbid).html() layui.laytpl(getTpl).render(data, function(html){ $(wzid).html(html); layui.element.init(); //重新渲染 callback && callback(); }); }; //渲染下拉框 X.laydropdown = function(id,data,callback){ layui.dropdown.render({ elem: id ,data: data ,click: callback }); }; //查询条件弹框 id:位置,data:数据,deviationleft:左偏移量,deviationtop:上偏移量 X.querycriteriapop = function(data,url,deviationleft, deviationtop, callback){ var innerHeight = window.innerHeight; if(innerHeight - deviationtop < 420){ deviationtop = deviationtop - 450 } X.open({ type: 1, title: false, closeBtn: 0, shade:[0.1, '#000'], shadeClose: true, offset: [deviationtop,deviationleft], url: url, extData : data, callback : callback }); } X.parametersopen = function(data,url,offset,callback){ X.open({ type: 1, title: false, closeBtn: 0, shadeClose: true, skin: 'yourclass', offset:offset, url: url, extData : data, callback : callback }); } // 渲染树形菜单 X.treemenu = function(elem,data,id){ layui.tree.render({ elem: elem ,data: data ,showCheckbox: true //是否显示复选框 ,id: id ,isJump: false //是否允许点击节点时弹出新窗口跳转 }); } //渲染穿梭框 X.laytransfer = function(elem,data,title,id){ layui.transfer.render({ elem: elem ,data: data ,title: title ,showSearch: true ,id: id }) } // 分组项取交集 X.groupintersection=function(c , a , callback){ var dataArr=[]; var arr=[]; for(let i in c){ for(let j in a){ if(c[i]['id'] == a[j]['id']){ for(let z in c[i]['category']){ for(let q in a[j]['category']){ if(c[i]['category'][z]['title'] == a[j]['category'][q]['title']){ arr.push(c[i]['category'][z]); } } } if(arr.length > 0){ var data = { title: c[i]['title'], id:c[i]['id'], category:arr }; dataArr.push(data); } } } } callback && callback(dataArr); } // 日期选择器 X.daterender = function(id,callback){ // console.log(moment().subtract(1, 'week').startOf('week')) $(id).daterangepicker({ 'locale': X.DATA.locale, ranges: { '今日': [moment(), moment()], '昨日': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], '最近7日': [moment().subtract(7, 'days'), moment().subtract(1, 'days')], '最近30日': [moment().subtract(30, 'days'), moment().subtract(1, 'days')], '上周': [moment().subtract(1, 'week').startOf('week')+86400000, moment().subtract(1, 'week').endOf('week')+86400000], '本周': [moment().startOf('week')+86400000, moment()+86400000], '本月': [moment().startOf('month'), moment()], '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month') ] }, "alwaysShowCalendars": true, "startDate": moment().subtract(29, 'days'), "endDate": new Date(), "opens": "right", }, function (start, end, label) { callback && callback(start,end,label); // console.log(start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD')); }); } X.updatatime = function(id){ var myDate = new Date; var year = myDate.getFullYear(); //获取当前年 var mon = myDate.getMonth() + 1; //获取当前月 var date = myDate.getDate(); //获取当前日 var h = myDate.getHours();//获取当前小时数(0-23) var m = myDate.getMinutes();//获取当前分钟数(0-59) var s = myDate.getSeconds();//获取当前秒 var week = myDate.getDay(); var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; var time = year + "-" + mon + "-" + date + " " + h+":"+m+":"+s // console.log(year + "-" + mon + "-" + date + " " + h+":"+m+":"+s); $(id).attr('title',"最新更新时间:"+time); } //多选标签-基本配置 X.selectM = function(id,data,width,callback){ layui.selectM({ //元素容器【必填】 elem: id //候选数据【必填】 ,data: data ,width: width ,max: 100 //添加验证 ,verify:'required', callback:callback }); } X.layuidate=function(id){ layui.laydate.render({ elem: id ,type: 'datetime' ,range: true }); } // 分组项 X.grouped=function(data,id){ console.log(data) var html for(let i in data){ html = html + `