This commit is contained in:
罗松柏 2021-07-23 14:37:55 +08:00
parent 655c4797c6
commit d5ef2bf36a
17 changed files with 1537 additions and 223 deletions

View File

@ -8,6 +8,7 @@
<!-- <link rel="stylesheet" href="./static/css/analysis.css" > <!-- <link rel="stylesheet" href="./static/css/analysis.css" >
<link rel="stylesheet" href="./static/css/projectadmin.css" > --> <link rel="stylesheet" href="./static/css/projectadmin.css" > -->
<link rel="stylesheet" href="./static/css/event.css" > <link rel="stylesheet" href="./static/css/event.css" >
<link rel="stylesheet" href="./static/css/basics.css" >
<link rel="stylesheet" href="./static/css/daterangepicker.css"><!-- 时间选择控件样式 --> <link rel="stylesheet" href="./static/css/daterangepicker.css"><!-- 时间选择控件样式 -->
<!-- <link rel="stylesheet" href="./static/img/iconfont/iconfont.css"> --> <!-- <link rel="stylesheet" href="./static/img/iconfont/iconfont.css"> -->
<script src="./src/jquery.min.js"></script> <script src="./src/jquery.min.js"></script>
@ -18,8 +19,11 @@
<!-- <script src="./src/aaa.js"></script> --> <!-- <script src="./src/aaa.js"></script> -->
<script src="./src/moment.min.js"></script><!-- 时间选择控件 --> <script src="./src/moment.min.js"></script><!-- 时间选择控件 -->
<script src="./src/daterangepicker.min.js"></script><!-- 时间选择控件 --> <script src="./src/daterangepicker.min.js"></script><!-- 时间选择控件 -->
<script src="./src/icontains.js" type="text/javascript"></script> <!-- 多级下拉框选项 --> <script src="./src/xm-select.js"></script>
<script src="./src/comboTreePlugin.js" type="text/javascript"></script><!-- 多级下拉框选项 -->
<!-- <script src="./src/icontains.js" type="text/javascript"></script> 多级下拉框选项 -->
<!-- <script src="./src/comboTreePlugin.js" type="text/javascript"></script>多级下拉框选项 -->
<!-- <script src="./src/doT.js"></script> --> <!-- <script src="./src/doT.js"></script> -->
<!-- <script src="./src/puble.js"></script> --> <!-- <script src="./src/puble.js"></script> -->
<!-- <script src="./src/x.min.js"></script> --> <!-- <script src="./src/x.min.js"></script> -->

View File

@ -134,23 +134,23 @@
<!-- <div class="analtsis-condition">指标</div> <!-- <div class="analtsis-condition">指标</div>
<div class="analtsis-condition">分组</div> --> <div class="analtsis-condition">分组</div> -->
<div class="analtsis-chart-switch-box"> <div class="analtsis-chart-switch-box">
<div class="analtsis-chart-switch select-chart" title="转化图"> <i class="iconfont" style="font-size: 18px; ">&#xe670;</i> </div> <div class="analtsis-chart-switch select-chart" title="柱状分布图"> <i class="iconfont" style="font-size: 18px; ">&#xe670;</i> </div>
<div class="analtsis-chart-switch " title="趋势图"> <i class="iconfont" style="font-size: 18px; ">&#xe601;</i> </div> <div class="analtsis-chart-switch " title="饼状图"> <i class="iconfont" style="font-size: 18px; ">&#xe601;</i> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 统计图 --> <!-- 统计图 -->
<div class="analysis-echarts" id="routeanalysis-echarts" style="height: 900px;"></div> <div class="analysis-echarts" id="attribute-echarts" style="height: 400px;"></div>
<div class="table-div-box" style="height: 100%; margin-top: 16px;"> <div class="table-div-box" style="height: 100%; margin-top: 16px;">
<table class="table-fenxi-box"> <table class="table-fenxi-box">
<thead> <thead>
<tr class="table-fenxi-th"> <tr class="table-attrbute-th">
</tr> </tr>
</thead> </thead>
<tbody class="table-fenxi-td"> <tbody class="table-attrbute-td">
</tbody> </tbody>
@ -180,3 +180,18 @@
</div> </div>
{{# }); }} {{# }); }}
</script> </script>
<script id="table-attrbute-th-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<th>{{item}}</th>
{{# }); }}
</script>
<script id="table-attrbute-td-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<tr >
<td>{{index}}</td>
<td>{{item}}</td>
</tr>
{{# }); }}
</script>

View File

@ -1,26 +1,29 @@
<!-- 你的HTML代码 --> <!-- 你的HTML代码 -->
<div class="layui-layout layui-layout-admin"> <div class="layui-layout layui-layout-admin">
<div id="toptab" class="toptab"> <div id="analysis-zhanwei" class="toptab">
<div class="layui-header modify-layui-header"> <div class="layui-header modify-layui-header">
<div class="layui-logo modify-layui-logo"> <div class="layui-logo modify-layui-logo">
<img src="./static/img/logo.png" style="width:40px; margin-top: 0px;"> <img src="./static/img/logo.png" style="width:40px; margin-top: 0px;">
</div> </div>
<ul class="layui-nav layui-project layui-project-box"> <ul class="layui-nav layui-project layui-project-box">
<!-- <li class="layui-nav-item">
<a href="javascript:;" class="projecttit">{{d[0]["name"]}}</a>
<dl class="layui-nav-child">
{{# layui.each(d, function(index, item){ }}
<dd><a href="javascript:void(0);" class="selectproject" data-id="{{item._id}}">{{item.name}}</a></dd>
{{# }); }}
</dl>
</li> -->
</ul> </ul>
<ul class="layui-nav layui-layout-left qvjiantou"> <ul class="layui-nav layui-layout-left qvjiantou">
<li class="layui-nav-item"> <li class="layui-nav-item">
<a class="ajax-content" href="dashboard" data-id="main-content">数据看板</a> <a class="ajax-content" href="dashboard" data-id="main-content">数据看板</a>
</li> </li>
<!-- <li class="layui-nav-item">
<a href="javascript:;">基础分析</a>
<dl class="layui-nav-child">
<dd><a class="ajax-content" href="dataOverview" data-id="conetnt">运营日报</a></dd>
<dd><a class="ajax-content" href="ltv" data-id="conetnt">产品LTV</a></dd>
<dd><a class="ajax-content" href="retainedrate" data-id="conetnt">留存率</a></dd>
<dd><a class="ajax-content" href="retainedpay" data-id="conetnt">付费留存</a></dd>
<dd><a class="ajax-content" href="manytimespay" data-id="conetnt">多次付费率</a></dd>
</dl>
</li> -->
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;">行为分析</a> <a href="javascript:;">行为分析</a>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
@ -64,7 +67,7 @@
</dl> </dl>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="conetnt"> <div id="conetnt">
@ -142,7 +145,7 @@
<div class="tab-shiqvshezhi"> 当前时间 </div> <div class="tab-shiqvshezhi"> 当前时间 </div>
</div> </div>
<div class="tab-right-box"> <div class="tab-right-box" >
<div class="username"></div> <div class="username"></div>
<div class="img-box time" title="时间筛选"> <div class="img-box time" title="时间筛选">
<img src="./static/img/rli.png" /> <img src="./static/img/rli.png" />
@ -156,19 +159,21 @@
<!-- <div class="img-box" title="共享"> <!-- <div class="img-box" title="共享">
<img src="./static/img/fenxiang.png" /> <img src="./static/img/fenxiang.png" />
</div> --> </div> -->
<div class="img-box baobiao" title="设置"> <div class="img-box shezhi" title="设置">
<img src="./static/img/shezhi.png" /> <img src="./static/img/shezhi.png" />
</div> </div>
<!-- <div class="baobiao" title="报表"> <div class="img-box baobiao" title="报表">
<img src="./static/img/baobiao.png"> <img src="./static/img/baobiao2.png">
</div> --> </div>
</div> </div>
</div> </div>
<div style="padding: 15px;"> <div style="padding: 15px; height: calc(100% - 90px); overflow-y:auto; ">
<div class="layui-row layui-col-space15" id="chart-box">
<!-- 图表数据显示区域 -->
<div class="layui-row layui-col-space15">
<!-- onmousemove="moveaction('data1')" onmouseout="outaction('data1')" --> <!-- onmousemove="moveaction('data1')" onmouseout="outaction('data1')" -->
<div class="layui-col-md6" id="data1" > <!-- <div class="layui-col-md6" id="data1" >
<div class="layui-card"> <div class="layui-card">
<div class="row-top"> <div class="row-top">
<div class="row-tit"> <div class="row-tit">
@ -225,9 +230,9 @@
</div> </div>
</div> </div>
</div> </div> -->
<!-- onmousemove="moveaction('data2')" onmouseout="outaction('data2')" --> <!-- onmousemove="moveaction('data2')" onmouseout="outaction('data2')" -->
<div class="layui-col-md6" id="data2"> <!-- <div class="layui-col-md6" id="data2">
<div class="layui-card"> <div class="layui-card">
<div class="row-top"> <div class="row-top">
<div class="row-tit"> <div class="row-tit">
@ -263,11 +268,33 @@
</div> </div>
<div class="table-box"> <div class="table-box">
<table class="layui-hide" id="test"></table> <table class="table-fenxi-box">
<thead>
<tr class="table-fenxi-th">
<th>当日</th>
<th>当日</th>
<th>当日</th>
<th>当日</th>
<th>当日</th>
<th>当日</th>
</tr>
</thead>
<tbody class="table-fenxi-td">
<tr >
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
</div> </div> -->
</div> </div>
</div> </div>
@ -501,14 +528,15 @@
</li> </li>
</script> </script>
<!-- 我的看板 -->
<script id="mykanban-dot" type="text/html"> <script id="mykanban-dot" type="text/html">
{{# layui.each(d, function(index, item){ }} {{# layui.each(d, function(index, item){ }}
{{# if(item.type === 'ordinary'){ }} {{# if(item.type === 'ordinary'){ }}
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;" class="fontcolor mykanban"> <img src="./static/img/wenjian.png"/><span>{{item.name}}</span> </a> <a href="javascript:;" class="fontcolor mykanban"> <img src="./static/img/wenjian.png" data-id="{{item._id}}"/><span>{{item.name}}</span> </a>
{{# layui.each(item.children, function(indexs, items){ }} {{# layui.each(item.children, function(indexs, items){ }}
<dl class="layui-nav-child modeify-layui-nav-child"> <dl class="layui-nav-child modeify-layui-nav-child">
<dd class="layui-left-dd"><a href="javascript:;" class="fontcolor second category"><span>{{items.name}} </span> <dd class="layui-left-dd" data-id="{{items._id}}"><a href="javascript:;" class="fontcolor second category"><span>{{items.name}} </span>
<img src="./static/img/gengduo.png" alt=""> </a></dd> <img src="./static/img/gengduo.png" alt=""> </a></dd>
</dl> </dl>
{{# }); }} {{# }); }}
@ -520,7 +548,7 @@
<img class='kanbanwenjianimg' src="./static/img/gengduo.png"/></a> <img class='kanbanwenjianimg' src="./static/img/gengduo.png"/></a>
{{# layui.each(item.children, function(indexs, items){ }} {{# layui.each(item.children, function(indexs, items){ }}
<dl class="layui-nav-child modeify-layui-nav-child"> <dl class="layui-nav-child modeify-layui-nav-child">
<dd class="layui-left-dd"><a href="javascript:;" class="fontcolor second category"><span>{{items.name}}</span> <dd class="layui-left-dd" data-id="{{items._id}}"><a href="javascript:;" class="fontcolor second category"><span>{{items.name}}</span>
<img src="./static/img/gengduo.png" alt=""> </a></dd> <img src="./static/img/gengduo.png" alt=""> </a></dd>
</dl> </dl>
{{# }); }} {{# }); }}
@ -529,28 +557,29 @@
{{# }); }} {{# }); }}
</script> </script>
<!-- 空间 -->
<script id="kongjian-dot" type="text/html"> <script id="kongjian-dot" type="text/html">
{{# layui.each(d, function(index, item) { }} {{# layui.each(d, function(index, item) { }}
{{# if(item.name != undefined ){ }} {{# if(item.name != undefined ){ }}
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;" class="fontcolor mykanban category xiangmukongjian"> <i class="layui-icon layui-icon-template-1"></i> {{item.name}} <img src="./static/img/renyuan.png"/></a> <a href="javascript:;" class="fontcolor mykanban category xiangmukongjian" data-id="{{item._id}}"> <i class="layui-icon layui-icon-template-1"></i> {{item.name}} <img src="./static/img/renyuan.png"/></a>
<dl class="layui-nav-child modeify-layui-nav-child"> <dl class="layui-nav-child modeify-layui-nav-child">
{{# layui.each(item.children, function(indexs, items){ }} {{# layui.each(item.children, function(indexs, items){ }}
{{# if(items.isFolder === true){ }} {{# if(items.isFolder === true){ }}
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;" class="fontcolor mykanban second category xiangmukongjian"> <i class="layui-icon layui-icon-file-b"></i> {{items.name}} <a href="javascript:;" class="fontcolor mykanban second category xiangmukongjian" data-id="{{items._id}}"> <i class="layui-icon layui-icon-file-b"></i> {{items.name}}
<img src="./static/img/gengduo.png"/></a> <img src="./static/img/gengduo.png"/></a>
{{# layui.each(items.children, function(value, datas){ }} {{# layui.each(items.children, function(value, datas){ }}
<dl class="layui-nav-child modeify-layui-nav-child"> <dl class="layui-nav-child modeify-layui-nav-child">
<dd class="layui-left-dd"><a href="javascript:;" class="fontcolor second3 category"> <span>{{datas.name}}</span> <dd class="layui-left-dd" data-id="{{datas._id}}"><a href="javascript:;" class="fontcolor second3 category"> <span>{{datas.name}}</span>
<img src="./static/img/gengduo.png" alt=""></a></dd> <img src="./static/img/gengduo.png" alt=""></a></dd>
</dl> </dl>
{{# }); }} {{# }); }}
</li> </li>
{{# } else { }} {{# } else { }}
<dd class="layui-left-dd"><a href="javascript:;" class="fontcolor second category"> <span>{{items.name}} </span> <dd class="layui-left-dd" data-id="{{items._id}}"><a href="javascript:;" class="fontcolor second category"> <span>{{items.name}} </span>
<img src="./static/img/gengduo.png" alt=""></a> <img src="./static/img/gengduo.png" alt=""></a>
</dd> </dd>
{{# } }} {{# } }}
@ -560,4 +589,132 @@
{{# } }} {{# } }}
{{# }); }} {{# }); }}
</script> </script>
<!-- 看板模型 -->
<script id="kanban-model-dot" type="text/html">
<div class="layui-col-md6" >
<div class="layui-card">
<div class="row-top">
<div class="row-tit">
<p><a href="#">日活跃用户数</a></p>
<div class="tishi" title="活跃用户可以通过“登录.触发用户数”来进行计算,即有登录行为的用户的去重数.">
<img src="./static/img/tishi.png" />
</div>
</div>
<div class="control">
<div class="action-box" >
<div class="tishi" title="更新">
<img src="./static/img/gengxin.png" />
</div>
<div class="tishi" title="探索">
<img src="./static/img/fangda.png" />
</div>
<div class="tishi" title="更多">
<img src="./static/img/gengduo.png" />
</div>
</div>
</div>
</div>
<div class="condition-box">
<div class="time-cond">
<span>过去30天</span>
<div class="xian"></div>
<span>按天</span>
</div>
<div class="chart control">
<img src="./static/img/qvshitu.png" /> <span>趋势图</span>
</div>
</div>
<p class="dqtime">2021-03-23(二)</p>
<div class="data-box">
<div style="display: flex; align-items: center;">
<div class="data-num">351<span></span></div>
<div class="proportion">
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>5.4%</span></div>
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>5.4%</span></div>
</div>
</div>
<div class="thesum">
<div class="thesum-box">
<div class="thesum-data">总和 <span>12074</span></div>
<div class="thesum-data">均值 <span>402.47</span></div>
</div>
</div>
</div>
<div class="echarts-box">
<div id="charts" class="echarts"></div>
</div>
</div>
</div>
<div class="layui-col-md6" id="data2">
<div class="layui-card">
<div class="row-top">
<div class="row-tit">
<p><a href="#">日活跃用户数</a></p>
<div class="tishi" title="活跃用户数可以通过“登录.触发用户数”来进行计算,即有登录行为的用户的去重数。">
<img src="./static/img/tishi.png" />
</div>
</div>
<div class="control">
<div class="action-box" >
<div class="tishi" title="更新">
<img src="./static/img/gengxin.png" />
</div>
<div class="tishi" title="探索">
<img src="./static/img/fangda.png" />
</div>
<div class="tishi" title="更多">
<img src="./static/img/gengduo.png" />
</div>
</div>
</div>
</div>
<div class="condition-box">
<div class="time-cond">
<span>过去30天</span>
<div class="xian"></div>
<span>按天</span>
</div>
<div class="chart control">
<img src="./static/img/qvshitu.png" /> <span>趋势图</span>
</div>
</div>
<div class="table-box">
<table class="table-fenxi-box">
<thead>
<tr class="table-fenxi-th">
<th>当日</th>
<th>当日</th>
<th>当日</th>
<th>当日</th>
<th>当日</th>
<th>当日</th>
</tr>
</thead>
<tbody class="table-fenxi-td">
<tr >
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</script>

View File

@ -1,4 +1,4 @@
<script id="demo" type="text/html"> <script id="toptab-dot" type="text/html">
<div class="layui-header modify-layui-header"> <div class="layui-header modify-layui-header">
<div class="layui-logo modify-layui-logo"> <div class="layui-logo modify-layui-logo">
<img src="./static/img/logo.png" style="width:40px; margin-top: 0px;"> <img src="./static/img/logo.png" style="width:40px; margin-top: 0px;">
@ -14,25 +14,35 @@
</li> </li>
</ul> </ul>
<!-- 头部区域可配合layui已有的水平导航 -->
<ul class="layui-nav layui-layout-left qvjiantou"> <ul class="layui-nav layui-layout-left qvjiantou">
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;">数据看板</a> <a class="ajax-content" href="dashboard" data-id="main-content">数据看板</a>
</li>
<li class="layui-nav-item">
<a href="javascript:;">基础分析</a>
<dl class="layui-nav-child">
<dd><a class="ajax-content" href="dataOverview" data-id="conetnt">运营日报</a></dd>
<dd><a class="ajax-content" href="ltv" data-id="conetnt">产品LTV</a></dd>
<dd><a class="ajax-content" href="retained" data-id="conetnt">留存率</a></dd>
<dd><a class="ajax-content" href="retainedpay" data-id="conetnt">付费留存</a></dd>
<dd><a class="ajax-content" href="manytimespay" data-id="conetnt">多次付费率</a></dd>
</dl>
</li> </li>
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;">行为分析</a> <a href="javascript:;">行为分析</a>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
<dd><a href="javascript:void(0);">事件分析</a></dd> <dd><a class="ajax-content" href="analysis" data-id="conetnt">事件分析</a></dd>
<dd><a href="javascript:void(0);">留存分析</a></dd> <dd><a class="ajax-content" href="retained" data-id="conetnt">留存分析</a></dd>
<dd><a href="javascript:void(0);">漏斗分析</a></dd> <dd><a class="ajax-content" href="funnelanalysis" data-id="conetnt">漏斗分析</a></dd>
<dd><a href="javascript:void(0);">分布分析</a></dd> <dd><a class="ajax-content" href="distribution" data-id="conetnt">分布分析</a></dd>
<dd><a href="javascript:void(0);">路径分析</a></dd> <dd><a class="ajax-content" href="routeanalysis" data-id="conetnt">路径分析</a></dd>
<dd><a class="ajax-content" href="sqlquery" data-id="conetnt">SQL查询</a></dd>
</dl> </dl>
</li> </li>
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;">用户分析</a> <a href="javascript:;">用户分析</a>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
<dd><a href="javascript:void(0);">属性分析</a></dd> <dd><a class="ajax-content" href="attribute" data-id="conetnt">属性分析</a></dd>
<dd><a href="javascript:void(0);">用户分群</a></dd> <dd><a href="javascript:void(0);">用户分群</a></dd>
<dd><a href="javascript:void(0);">用户标签</a></dd> <dd><a href="javascript:void(0);">用户标签</a></dd>
</dl> </dl>
@ -40,9 +50,9 @@
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;">数据管理</a> <a href="javascript:;">数据管理</a>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
<dd><a href="javascript:void(0);">事件管理</a></dd> <dd><a class="ajax-content" href="eventmanagement" data-id="conetnt">事件管理</a></dd>
<dd><a href="javascript:void(0);">事件属性管理</a></dd> <dd><a class="ajax-content" href="eventattradmin" data-id="conetnt">事件属性管理</a></dd>
<dd><a href="javascript:void(0);">用户属性管理</a></dd> <dd><a class="ajax-content" href="userattradmin" data-id="conetnt">用户属性管理</a></dd>
<dd><a href="javascript:void(0);">预警管理</a></dd> <dd><a href="javascript:void(0);">预警管理</a></dd>
</dl> </dl>
</li> </li>
@ -54,34 +64,12 @@
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;">设置</a> <a href="javascript:;">设置</a>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
<dd><a href="javascript:void(0);">个人设置</a></dd> <dd><a class="ajax-content" href="personalsettings" data-id="conetnt">个人设置</a></dd>
<dd><a href="javascript:void(0);" data-url="projectadmin">项目管理</a></dd> <dd><a class="ajax-content" href="projectinfo" data-id="conetnt">项目管理</a></dd>
<dd><a href="javascript:void(0);">系统管理</a></dd> <dd><a href="javascript:void(0);">系统管理</a></dd>
<dd><a href="javascript:void(0);">退出登录</a></dd> <dd><a href="javascript:void(0);">退出登录</a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>
</div> </div>
</script> </script>
<!-- <script>
var data = {_id:'111',create_date: "2021-05-05T21:42:14.256000",name: "ddd",user_id: "5df2b9bbada711eb8857001a7dda710c",members: ["5df2b9bbada711eb8857001a7dda710c"]};
var getTpl = demo.innerHTML,
view = document.getElementById('toptab');
// X.api("project/","get",function(d){
// X.laytpldata('#layui-project-dot',d,'.layui-project-box');
// data=d;
// console.log(d);
layui.use('laytpl', function () {
var laytpl = layui.laytpl;
laytpl(getTpl).render(data, function (html) {
view.innerHTML = html;
});
})
layui.element.init();
// X.pageLogic.dashboard.freshMenu(d[0]["_id"]);
// // me.freshMenu(d[0]["_id"]);
// X.DATA['projectid'] = d[0]["_id"];
// });
</script> -->

1035
web/src/x.min.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -40,8 +40,10 @@
} }
X.gourl = function(url,id){ X.gourl = function(url,id){
setHashParms('page',url); if(url || id){
setContentByUrl(url,id); setHashParms('page',url);
setContentByUrl(url,id);
}
}; };

View File

@ -102,8 +102,8 @@ var X = window.X || {
(function(){ (function(){
// var ipurl = "http://10.0.0.77:7889/api/v1/"; var ipurl = "http://10.0.0.77:7889/api/v1/";
var ipurl = "http://139.159.159.3:9865/api/v1/"; // var ipurl = "http://139.159.159.3:9865/api/v1/";
//设置或读取登录缓存需要保存到localStorage防止刷新时候登录数据丢失 //设置或读取登录缓存需要保存到localStorage防止刷新时候登录数据丢失
X.loginCache = function(data){ X.loginCache = function(data){
@ -168,7 +168,7 @@ var X = window.X || {
layer.close(index); layer.close(index);
} }
}); });
} };
X.template = function(url,id,data,callback){ X.template = function(url,id,data,callback){
$.get('pages/'+ url + '.html',function(content){ $.get('pages/'+ url + '.html',function(content){
@ -272,7 +272,7 @@ var X = window.X || {
extData : data, extData : data,
callback : callback callback : callback
}); });
} };
X.parametersopen = function(data,url,offset,callback){ X.parametersopen = function(data,url,offset,callback){
X.open({ X.open({
@ -286,7 +286,7 @@ var X = window.X || {
extData : data, extData : data,
callback : callback callback : callback
}); });
} };
// 渲染树形菜单 // 渲染树形菜单
X.treemenu = function(elem,data,id){ X.treemenu = function(elem,data,id){
@ -298,7 +298,7 @@ var X = window.X || {
,isJump: false //是否允许点击节点时弹出新窗口跳转 ,isJump: false //是否允许点击节点时弹出新窗口跳转
}); });
} };
//渲染穿梭框 //渲染穿梭框
X.laytransfer = function(elem,data,title,id){ X.laytransfer = function(elem,data,title,id){
@ -309,7 +309,7 @@ var X = window.X || {
,showSearch: true ,showSearch: true
,id: id ,id: id
}) })
} };
// 分组项取交集 // 分组项取交集
X.groupintersection=function(c , a , callback){ X.groupintersection=function(c , a , callback){
@ -348,7 +348,7 @@ var X = window.X || {
} }
callback && callback(dataArr); callback && callback(dataArr);
} };
// 日期选择器 // 日期选择器
X.daterender = function(id,callback){ X.daterender = function(id,callback){
@ -375,7 +375,7 @@ var X = window.X || {
callback && callback(start,end,label); callback && callback(start,end,label);
// console.log(start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD')); // console.log(start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
}); });
} };
X.updatatime = function(id){ X.updatatime = function(id){
var myDate = new Date; var myDate = new Date;
@ -390,7 +390,12 @@ var X = window.X || {
var time = year + "-" + mon + "-" + date + " " + h+":"+m+":"+s var time = year + "-" + mon + "-" + date + " " + h+":"+m+":"+s
// console.log(year + "-" + mon + "-" + date + " " + h+":"+m+":"+s); // console.log(year + "-" + mon + "-" + date + " " + h+":"+m+":"+s);
$(id).attr('title',"最新更新时间:"+time); $(id).attr('title',"最新更新时间:"+time);
} };
//多选下拉框
X.select = function(){
};
//多选标签-基本配置 //多选标签-基本配置
X.selectM = function(id,data,width,callback){ X.selectM = function(id,data,width,callback){
@ -405,7 +410,7 @@ var X = window.X || {
,verify:'required', ,verify:'required',
callback:callback callback:callback
}); });
} };
X.layuidate=function(id){ X.layuidate=function(id){
layui.laydate.render({ layui.laydate.render({
@ -413,7 +418,25 @@ var X = window.X || {
,type: 'datetime' ,type: 'datetime'
,range: true ,range: true
}); });
} };
X.eventtable=function(data,callback){
var titledata,condata = [];
for(let i in data){
if(data[i]['groups']['length'] == 0){
titledata= $.extend(true,[],data[0]['date_range']) ;
titledata.unshift('指标','阶段总和');
condata.push(data[i].values[0]);
condata[i].unshift(data[i]['event_name'],data[i]['sum']);
// console.log(condata);
}
}
var dataArr = {
titledata:titledata,
condata:condata
}
callback && callback(dataArr);
};
// 分组项 // 分组项
// X.grouped=function(data,id){ // X.grouped=function(data,id){

View File

@ -59,8 +59,9 @@
data['eventView']['startTime'] = timearr[0] + " "+"00:00:00"; data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
data['eventView']['endTime'] = timearr[2]+" "+"23:59:59"; data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
// X.template("toptab","analysis-zhanwei",X.DATA['projectarr'],function(){
X.api("data_auth/my_event","get",{},function(d){ X.api("data_auth/my_event","get",{},function(d){
dataArr = d; dataArr = d;
X.api("data_auth/load_prop_quotas","post",{event_name:dataArr[0]['category'][0]['event_name']},function(d){ X.api("data_auth/load_prop_quotas","post",{event_name:dataArr[0]['category'][0]['event_name']},function(d){
retdata = d.staid_quots.concat(d.props); retdata = d.staid_quots.concat(d.props);
@ -87,9 +88,9 @@
}) })
}) })
// groupeddata = d.group_by; // groupeddata = d.group_by;
}) })
// });
// 渲染选择时间下拉框 // 渲染选择时间下拉框
layui.dropdown.render({ layui.dropdown.render({
@ -211,7 +212,7 @@
$(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function() { $(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function() {
var obj = $(this); var obj = $(this);
var offset = obj.offset(); var offset = obj.offset();
var index = obj.attr('data-index'); var index = obj.attr('data-index')
X.querycriteriapop(dataArr,'setgrouping',offset.left,offset.top+obj.height(),function(val){ X.querycriteriapop(dataArr,'setgrouping',offset.left,offset.top+obj.height(),function(val){
var htmlstring = val.id; var htmlstring = val.id;
obj.html(htmlstring); obj.html(htmlstring);

View File

@ -4,6 +4,7 @@
var data ={ var data ={
"eventView":{ "eventView":{
"cksql":'user_property',
"groupBy":[ "groupBy":[
], ],
@ -12,15 +13,14 @@
] ]
}, },
"events":{ "events":{
"analysis":"PER_CAPITA_NUM", "analysis":"",
"analysisDesc":"",
"analysisName":"", "analysisName":"",
"eventNameDisplay":"", "eventNameDisplay":"",
"filts":[ "filts":[
], ],
"quota":"user_prop0", "quota":"",
"quotaDesc":"user_prop0", "quotaDesc":"",
"quotatype":"", "quotatype":"",
"relation":"and", "relation":"and",
"tableType":"user" "tableType":"user"
@ -58,7 +58,7 @@
data['events']['quotaDesc'] = user_attr[0]['title']; data['events']['quotaDesc'] = user_attr[0]['title'];
data['events']['quotatype'] = user_attr[0]['data_type']; data['events']['quotatype'] = user_attr[0]['data_type'];
$('.ant-dropdown-trigger').html(user_attr[0]['title']); $('.ant-dropdown-trigger').html(user_attr[0]['title']);
$('.analysis-choicetypename').hide();
var arr = { var arr = {
category: user_attr, category: user_attr,
@ -66,10 +66,17 @@
title:'用户属性' title:'用户属性'
} }
user_data.push(arr); user_data.push(arr);
console.log(user_data); // console.log(user_data);
X.api("data_auth/quotas_map","get",{},function(val){ X.api("data_auth/quotas_map","get",{},function(val){
quotas_map = val; quotas_map = val;
if(user_attr[0]['data_type'] == ""){
$('.analysis-choicetypename').hide();
}else {
$('.analysis-choicetypename').html(quotas_map[user_attr[0]['data_type']][0]['title']);
data['events']['analysis'] = quotas_map[user_attr[0]['data_type']][0]['id'];
data['events']['analysisName'] = quotas_map[user_attr[0]['data_type']][0]['title'];
}
}) })
X.api("data_auth/filter_map","get",{},function(val){ X.api("data_auth/filter_map","get",{},function(val){
@ -78,6 +85,15 @@
}) })
// sql语句显示
$(document).off('click','.sqlquery').on('click','.sqlquery',function(){
var obj = $(this);
var offset = obj.offset();
X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){
})
})
// 分析属性 // 分析属性
$(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function(){ $(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function(){
var obj = $(this); var obj = $(this);
@ -91,7 +107,7 @@
$('.analysis-choicetypename').hide(); $('.analysis-choicetypename').hide();
}else { }else {
$('.analysis-choicetypename').show(); $('.analysis-choicetypename').show();
data['events']['analysisName'] = quotas_map[val.data_type][0].id; data['events']['analysis'] = quotas_map[val.data_type][0].id;
data['events']['analysisDesc'] = quotas_map[val.data_type][0].title; data['events']['analysisDesc'] = quotas_map[val.data_type][0].title;
$('.analysis-choicetypename').html(quotas_map[val.data_type][0]['title']); $('.analysis-choicetypename').html(quotas_map[val.data_type][0]['title']);
} }
@ -103,7 +119,7 @@
var offset = obj.offset(); var offset = obj.offset();
X.querycriteriapop(quotas_map[data['events']['quotatype']],'dropdownlist',offset.left,offset.top+obj.height(),function(val){ X.querycriteriapop(quotas_map[data['events']['quotatype']],'dropdownlist',offset.left,offset.top+obj.height(),function(val){
obj.html(val.title); obj.html(val.title);
data['events']['analysisName'] = val.id; data['events']['analysis'] = val.id;
data['events']['analysisDesc'] = val.title; data['events']['analysisDesc'] = val.title;
}) })
@ -174,7 +190,7 @@
"column_id":user_data[0]['category'][0]['id'],//事件id "column_id":user_data[0]['category'][0]['id'],//事件id
'data_type':user_data[0]['category'][0]['data_type'],//类型 'data_type':user_data[0]['category'][0]['data_type'],//类型
'comparator_name':'等于',//默认等于 'comparator_name':'等于',//默认等于
"comparator_id":'==',//符号id "comparator":'==',//符号id
"ftv":[],//条件 "ftv":[],//条件
"strftv":'',//显示条件 "strftv":'',//显示条件
"section":[-1,1],//区间 "section":[-1,1],//区间
@ -224,7 +240,7 @@
var filter_type = data['events']['filts'][index]['data_type']; var filter_type = data['events']['filts'][index]['data_type'];
X.querycriteriapop( filter_map[filter_type] ,'dropdownlist',offset.left,offset.top+obj.height(),function(val){ X.querycriteriapop( filter_map[filter_type] ,'dropdownlist',offset.left,offset.top+obj.height(),function(val){
obj.html(val.title); obj.html(val.title);
data['events']['filts'][index]['comparator_id'] = val.id; data['events']['filts'][index]['comparator'] = val.id;
data['events']['filts'][index]['comparator_name'] = val.title; data['events']['filts'][index]['comparator_name'] = val.title;
if(val.id == "range"){ if(val.id == "range"){
data['events']['filts'][index]['ftv'] = [-1,1]; data['events']['filts'][index]['ftv'] = [-1,1];
@ -233,14 +249,161 @@
}) })
}) })
// 计算按钮 $(document).off('click','.analysis-overall-situation-input input').on('blur','.analysis-overall-situation-input input',function(){
$(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){ var val = $(this).val();
console.log(data); var titarr = val.split(",");
var index = $(this).attr("data-index");
data['events']['filts'][index]['strftv'] = val;
data['events']['filts'][index]['ftv'] = titarr;
}) })
// $(document).off('click','.analysis-navigation-bar-right-img').on('click','.analysis-navigation-bar-right-img',function(){ $(document).off('click','.analysis-overall-situation-input2 input').on('blur','.analysis-overall-situation-input2 input',function(){
// location.reload(); var name = $(this).attr('name');
// }) var val = $(this).val();
var index = $(this).attr("data-index");
if(name == 'start'){
data['events']['filts'][index][index]['ftv'][0] = val;
}else {
data['events']['filts'][index]['ftv'][1] = val;
}
})
$(document).off('click','.analysis-overall-situation-del').on('click','.analysis-overall-situation-del',function(){
var index = $(this).attr('data-index');
data['events']['filts'].splice(index,1);
if(data['events']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
}
X.template("globalfilter","xinwei-whole",data['events']['filts']);
})
// 计算按钮
$(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){
X.api("ck/user_property_model","post",data,function(val){
attributetable(val);
querydata = val;
updata(val)
})
})
function updata(d){
var title = $(".select-chart").attr("title");
if(title == '柱状分布图'){ attributebar(d);}
else if(title == '饼状图'){ attributepie(d); }
}
var querydata;
$(document).off('click','.analtsis-chart-switch').on('click','.analtsis-chart-switch',function(){
if(querydata){
$('.analtsis-chart-switch-box .analtsis-chart-switch').removeClass('select-chart');
$(this).addClass('select-chart');
if($(this).attr('title') == '柱状分布图'){ attributebar(querydata);}
else if($(this).attr('title') == '饼状图'){
attributepie(querydata);
}
}else{
layer.msg('请先计算数据,在切换图表');
}
})
function attributetable(val){
X.laytpldata("#table-attrbute-th-dot",val.title,".table-attrbute-th");
X.laytpldata("#table-attrbute-td-dot",val.value,".table-attrbute-td");
}
function attributebar(val){
var xAxisData = [];
var seriesdata =[];
for(let i in val.value){
xAxisData.push(i);
seriesdata.push(val.value[i]);
}
var myChart = echarts.init(document.getElementById('attribute-echarts'));
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
color: X.DATA.echartscolor,
// legend: {
// data: legendData
// },
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
axisTick: {show: false},
data: xAxisData
}
],
yAxis: [
{
type: 'value'
}
],
series: [{
data: seriesdata,
type: 'bar',
}]
};
myChart.setOption(option,true);
}
function attributepie(val){
// console.log(val);
var seriesdata = [];
for(let i in val.value){
var arr = {
value: val['value'][i],
name: i
};
seriesdata.push(arr);
}
// console.log(seriesdata);
var myChart = echarts.init(document.getElementById('attribute-echarts'));
var option = {
// color: X.DATA.echartscolor,
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
},
series: [
{
name: '访问来源',
type: 'pie',
radius: ['40%', '70%'],
data: seriesdata,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
myChart.setOption(option,true);
}
} }
}; };

View File

@ -6,23 +6,25 @@
var popid=''; var popid='';
// $(".toptab").load("./pages/toptab.html");
layui.element.init(); layui.element.init();
// 项目列表 // 项目列表
// http://10.0.0.7:6789/ // http://10.0.0.7:6789/
X.api("project/","get",{},function(d){ X.api("project/","get",{},function(d){
X.laytpldata('#layui-project-dot',d,'.layui-project-box'); X.laytpldata('#layui-project-dot',d,'.layui-project-box');
X.DATA['projectarr'] = d;
X.DATA['projectid'] = d[0]["_id"]; X.DATA['projectid'] = d[0]["_id"];
X.DATA["game"] = d[0]["game"]; X.DATA["game"] = d[0]["game"];
me.freshMenu(d[0]["_id"]); me.freshMenu(d[0]["_id"]);
// X.template("toptab","analysis-zhanwei",d);
}); });
// $(".username").html(X.DATA.userinfo.name); // $(".username").html(X.DATA.userinfo.name);
// 选择项目 // 选择项目
$(document).on('click','.selectproject',function(){ $(document).off('click','.selectproject').on('click','.selectproject',function(){
var id = $(this).attr("data-id"); var id = $(this).attr("data-id");
var game = $(this).attr("data-game"); var game = $(this).attr("data-game");
$(".projecttit").html($(this).html()); $(".projecttit").html($(this).html());
@ -30,20 +32,46 @@
X.DATA["game"] = game; X.DATA["game"] = game;
//侧边栏数据渲染 //侧边栏数据渲染
me.freshMenu(id); me.freshMenu(id);
}) // X.pageLogic.dashboard.freshMenu(id);
});
//a标签点击跳转事件 //a标签点击跳转事件
$(document).on('click','.layui-nav-child a',function(){ $(document).on('click','.layui-nav-child a',function(){
var url = $(this).attr("data-url"); var url = $(this).attr("data-url");
X.gourl(url); X.gourl(url);
}) });
// 修改面板名 // 修改面板名
$(document).on('click','.layui-left-dd',function(){ $(document).on('click','.layui-left-dd',function(){
// console.log($(this).find("span").html());
$(".tab-tit-box .tab-tit").html($(this).find("span").html()); $(".tab-tit-box .tab-tit").html($(this).find("span").html());
}) X.DATA['dashboard_id'] = $(this).attr('data-id'); //看板id
// 获取报表数据
gettabledata();
});
// 获取表格数据
function gettabledata(){
X.api('dashboard','post',{id:X.DATA['dashboard_id']},function(d){
// console.log(d);
for(let i in d){
X.api("ck/"+d[i]['model']+"_model","post",{report_id:d[i]['report_id']},function(val){
// console.log(val);
if(d[i]['model'] == "event"){
if(d[i]['graph_type'] == 'table'){
X.eventtable(val,function(data){
console.log(data);
X.template("modeltable","chart-box",data);
})
}else if(d[i]['graph_type'] == 'echarts'){
}
}
})
}
})
};
// 渲染添加按钮侧边栏下拉框 // 渲染添加按钮侧边栏下拉框
X.laydropdown("#chuangjian",X.DATA.createsidebar,function(d){ X.laydropdown("#chuangjian",X.DATA.createsidebar,function(d){
if(d.url){ if(d.url){
@ -66,7 +94,7 @@
//更新时间按钮 //更新时间按钮
$(".updatetime").click(function(){ $(".updatetime").click(function(){
X.updatatime(".updatetime"); X.updatatime(".updatetime");
}) });
//管理我创建的看板 //管理我创建的看板
$(".sousuo-box .kbglkanbanbtn").click(function(){ $(".sousuo-box .kbglkanbanbtn").click(function(){
@ -80,7 +108,7 @@
skin: 'yourclass', skin: 'yourclass',
url: 'adminkanban' url: 'adminkanban'
}) })
}) });
//渲染时区下拉框 //渲染时区下拉框
layui.dropdown.render({ layui.dropdown.render({
@ -93,7 +121,7 @@
//数据更新 //数据更新
// this.elem.val(obj.title); // this.elem.val(obj.title);
} }
}); });
//筛选 //筛选
$(".tab-right-box .tjsx").click(function(){ $(".tab-right-box .tjsx").click(function(){
@ -190,7 +218,7 @@
}) })
}); });
$(".tab-right-box .baobiao").click(function(){ $(document).off('click','.tab-right-box .shezhi').on("click",".tab-right-box .shezhi",function(){
X.open({ X.open({
type: 1, type: 1,
title: false, title: false,
@ -201,7 +229,14 @@
skin: 'yourclass', skin: 'yourclass',
url: 'kanbanshezhi' url: 'kanbanshezhi'
}) })
}) });
// 保存报表列表
$(document).off('click','.baobiao').on('click','.baobiao',function(){
X.parametersopen({},'kanbanadmin','rt',function(){
console.log(111);
gettabledata();
})
});
//侧边栏更多控制按钮 //侧边栏更多控制按钮
// taboperation = function(e,type,id,name){ // taboperation = function(e,type,id,name){

View File

@ -674,7 +674,6 @@
X.laytpldata("#table-fenxi-td-dot",tabdata,".table-fenxi-td"); X.laytpldata("#table-fenxi-td-dot",tabdata,".table-fenxi-td");
} }
var querydata;
$(document).off('click','.analtsis-chart-switch').on('click','.analtsis-chart-switch',function(){ $(document).off('click','.analtsis-chart-switch').on('click','.analtsis-chart-switch',function(){
if(querydata){ if(querydata){
$('.analtsis-chart-switch-box .analtsis-chart-switch').removeClass('select-chart'); $('.analtsis-chart-switch-box .analtsis-chart-switch').removeClass('select-chart');

View File

@ -5,7 +5,7 @@
// 弹窗占满整平 // 弹窗占满整平
$('.kanbanshezhi-box').css('height',window.innerHeight+'px'); $('.kanbanshezhi-box').css('height',window.innerHeight+'px');
me.renderdata(); // me.renderdata();
//关闭弹窗 //关闭弹窗
$('.kanbanshezhi-top .kanbanshezhi-tuihui').click(function(){ $('.kanbanshezhi-top .kanbanshezhi-tuihui').click(function(){

View File

@ -15,7 +15,7 @@
var userinfo = X.DATA.userinfo; var userinfo = X.DATA.userinfo;
$(".gly-firs").html(userinfo.name.substring(0,1)); $(".gly-firs").html(userinfo.name.substring(0,1));
$(".gly-name").html(userinfo.name); $(".gly-name").html(userinfo.name);
X.api('user/all_user',"get",{},function(d){ X.api('user/all_account',"get",{},function(d){
for(let i in d){ for(let i in d){
d[i]["firs"] = d[i]['name'].substring(0,1); d[i]["firs"] = d[i]['name'].substring(0,1);
d[i]["authority"] = "r"; d[i]["authority"] = "r";

View File

@ -2,9 +2,8 @@
X.pageLogic['retained'] = { X.pageLogic['retained'] = {
init : function(parms){ init : function(parms){
// X.gourl("grouped","shushi");
X.template("grouped","shushi"); X.template("grouped","shushi");
// X.template("toptab","analysis-zhanwei",X.DATA['projectarr']);
var data ={ var data ={
"eventView":{ "eventView":{
"cksql":"retention", "cksql":"retention",

View File

@ -1,27 +1,34 @@
(function(){ (function(){
X.pageLogic['toptab'] = { X.pageLogic['toptab'] = {
init : function(){ init : function(parms){
console.log(111) var me = this;
var data = {'_id':'111',create_date: "2021-05-05T21:42:14.256000",name: "ddd",user_id: "5df2b9bbada711eb8857001a7dda710c",}; var data;
var getTpl = demo.innerHTML, if(parms){
view = document.getElementById('toptab'); this.parms = parms;
X.api("project/","get",function(d){ data = parms;
// X.laytpldata('#layui-project-dot',d,'.layui-project-box'); }else {
data=d; X.api("project/","get",{},function(d){
console.log(d); data = d;
layui.use('laytpl', function () { X.DATA['projectarr'] = d;
var laytpl = layui.laytpl; X.DATA['projectid'] = d[0]["_id"];
laytpl(getTpl).render(data, function (html) { X.DATA["game"] = d[0]["game"];
view.innerHTML = html; });
}); }
}) console.log(data);
// 选择项目
layui.element.init();
X.laytpldata("#toptab-dot",data,"#analysis-zhanwei");
// X.pageLogic.dashboard.freshMenu(d[0]["_id"]);
// // me.freshMenu(d[0]["_id"]); $(document).off('click','.selectproject').on('click','.selectproject',function(){
// X.DATA['projectid'] = d[0]["_id"]; var id = $(this).attr("data-id");
}); var game = $(this).attr("data-game");
$(".projecttit").html($(this).html());
X.DATA['projectid'] = id;
X.DATA["game"] = game;
//侧边栏数据渲染
X.pageLogic.dashboard.freshMenu(id);
})
} }
}; };
})(); })();

View File

@ -291,4 +291,36 @@
.table-sql-box { padding: 16px; overflow: auto; } .table-sql-box { padding: 16px; overflow: auto; }
.slq-left { text-align: left; } .slq-left { text-align: left; }
/* 看板管理 */
.kanbanadmin-box{ width: 734px; background-color: #fff; }
.kanbanadmin-top { padding: 16px 24px; color: rgba(0, 0, 0, 0.85); border-bottom: 1px solid #f0f0f0; border-radius: 2px 2px 0 0; display: flex; justify-content: space-between; align-items: center; font-size: 16px; font-weight: 500; }
.kanbanadmin-tuihui { cursor: pointer; }
.kanbanadmin-con-box { width: 734px; display: flex; height: calc(100% - 105px); }
.kanbanadmin-left-box { width: 50%; border-right: 1px solid #f0f0f0; height: 100%; }
.kanbanadmin-right-box { width: 50%; height: 100%; }
.kanbanadmin-head-box { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #f0f0f0; height: 56px; padding: 0 24px; line-height: 56px; }
.kanbanadmin-head-box span { font-size: 14px; }
.kanbanadmin-head-tit { color: #202d3f; }
.kanbanadmin-head-right { color: #67729d; }
.baobiaoguanli { cursor: pointer; }
.kanbanadmin-ss-box { display: flex; justify-content: space-between; align-items: center; height: 48px; padding: 0px 16px; line-height: 32px; border-bottom: 1px solid #f0f0f0; }
.kanbanadmin-ss { width: 230px; height: 32px; padding: 0 8px 0 30px; color: #42546d; font-size: 14px; line-height: 30px; border-right: 2px; background: url("../img/fangdajing2.png") no-repeat 100%; background-position: left; display: flex; align-items: center; }
.kanbanadmin-ss img { display: none; width: 16px; height: 16px; cursor: pointer; }
.kanbanadmin-ss input { border: 0px; height: 30px; line-height: 30px; }
.kanbanadmin-ss-right { display: inline-block; height: 32px; padding: 0 8px; overflow: hidden; color: #67729d; line-height: 32px; text-overflow: ellipsis; border-right: 2px; cursor: pointer; }
.kanbanadmin-ss-right:hover{ background-color: #f6f8fa; color: #4fa1ff; }
.to-be-added-baobiao { height: calc(100% - 115px); padding: 4px; overflow-x: hidden; overflow-y: auto; }
.kanbanadmin-list-box { display: flex; align-items: center; justify-content: space-between; height: 40px; padding: 0 8px 0 0; line-height: 40px; cursor: grab; }
.kanbanadmin-list-box:hover{ background-color: #f6f8fa; }
.kanbanadmin-list-box:hover > .kanbanadmin-list-add-box{ display: block; }
.kanbanadmin-list-tit { font-size: 13px; color: #42546d; margin-left: 16px; }
.kanbanadmin-list-add-box { display: none; }
.kanbanadmin-list-add { display: inline-block; min-width: 24px; height: 24px; padding: 0 4px; line-height: 22px; text-align: center; border-right: 2px; cursor: pointer; font-size: 20px; }
.kanbanadmin-list-add:hover{ background-color: #f0f2f5; color: #3d90ff; }
.kanbanadmin-but-box { display: flex; align-items: center; justify-content: flex-end; padding: 8px 16px; border-top: 1px solid #f0f0f0; }
.kanbanadmin-but-box div { margin-left: 16px; padding: 0 12px; height: 32px; font-weight: 400; font-size: 14px; line-height: 30px; text-shadow: none; border-radius: 2px; cursor: pointer; }
.kanbanadmin-but-qx { color: #42546d; border: 1px solid #f0f0f0; }
.kanbanadmin-but-yy { color: #fff; background-color: #3d90ff; }
.to-added-baobiao { height: calc(100% - 65px); padding: 4px; overflow-x: hidden; overflow-y: auto; }

View File

@ -1,5 +1,5 @@
.layui-layout-admin .modify-layui-header { background-color: #475285; } .layui-layout-admin .modify-layui-header { background-color: #475285; }
.modify-layui-logo { background-color: #404a77; width: 80px !important; height: 60px; color: #fff; text-align: center;} .modify-layui-logo { position: absolute; left: 0; top: 0; height: 100%; line-height: 60px; text-align: center; font-size: 16px; background-color: #404a77; width: 80px !important; height: 60px; color: #fff; text-align: center;}
.modify-layui-side { width: 270px !important; } .modify-layui-side { width: 270px !important; }
.modify-layui-bg-black { background-color: #fff !important; } .modify-layui-bg-black { background-color: #fff !important; }
.modify-layui-side-scroll { width: 290px !important; } .modify-layui-side-scroll { width: 290px !important; }
@ -20,7 +20,7 @@
.layui-table-body { height: 100% !important; } .layui-table-body { height: 100% !important; }
.layui-form-item .layui-form-checkbox[lay-skin=primary] { text-indent: 0px !important; } .layui-form-item .layui-form-checkbox[lay-skin=primary] { text-indent: 0px !important; }
.layui-anim-downbit { max-height: 350px; overflow-y: auto; overflow-x: hidden; } .layui-anim-downbit { max-height: 350px; overflow-y: auto; overflow-x: hidden; }
..layui-nav .layui-nav-child dd.layui-this a, .layui-nav-child dd.layui-this { background-color: #f6f8fa !important; } .layui-nav .layui-nav-child dd.layui-this a, .layui-nav-child dd.layui-this { background-color: #f6f8fa !important; }
.username { color: #67729d; margin-right: 16px; } .username { color: #67729d; margin-right: 16px; }
.layui-project { position:absolute; top: 0; left: 80px; ;} .layui-project { position:absolute; top: 0; left: 80px; ;}
@ -83,7 +83,7 @@
.layui-card:last-child { padding-bottom: 12px; } .layui-card:last-child { padding-bottom: 12px; }
.echarts { width: 100%; height: 204px; } .echarts { width: 100%; height: 204px; }
.control { display: none; } .control { display: none; }
.table-box { padding: 0 24px; margin-top: 10px; height: 283px; } .table-box { margin: 10px 24px 0 24px; height: 283px; overflow-x: auto; }
.layui-table-body { height: 242px; overflow: auto; } .layui-table-body { height: 242px; overflow: auto; }