Merge branch 'feature/download_type_list' of wmtx/platform into release

iOS下载统计
master
廖金灵 5 years ago committed by Gogs
commit a1f3c6e205

@ -580,4 +580,11 @@ class AjaxController extends ThinkController{
$this->ajaxReturn(['code'=>1]);
}
public function getPromoteChildren($pid)
{
$info = M('promote', 'tab_')->where(['id'=>$pid])->find();
if (empty($info)) return $this->ajaxReturn(['code'=>1, 'data'=>[]]);
$result = M('promote', 'tab_')->field("id,account,nickname")->where(['parent_id'=>$pid])->select();
$this->ajaxReturn(['code'=>1, 'data'=>$result]);
}
}

@ -3,6 +3,7 @@ namespace Admin\Controller;
use Think\Controller;
use GuzzleHttp\Client;
use Admin\Model\PromoteModel;
class ExportController extends Controller
{
@ -8496,4 +8497,153 @@ class ExportController extends Controller
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'url'=>U($url,$GetData),'menu'=>$menu]);
}
public function exportPackDownload($pid=0, $level=PromoteModel::LEVEL_PRESIDENT)
{
$xlsName = 'IOS下载统计报表';
$map = [];
$map['_string'] = " 1=1 ";
if ($pid) {
$info = M('promote', 'tab_')->where(['id'=>$pid])->find();
if (empty($info)) return $this->error('未找到该用户');
$level = $map['p.level'] = $info['level'] + 1;
$map['p.parent_id'] = $pid;
} else {
$map['p.level'] = $level;
}
$typeArr = ['未知', '企业签下载', 'TF下载', '超级签下载'];
if (I('promote_id')) {
$map['p.id'] = I('promote_id');
}
$pdlMap = "";
if ($startTime = I('create_time_start')) {
$startTime = strtotime($startTime);
$pdlMap .= " and pdl.create_time >={$startTime}";
}
if ($endTime = I('create_time_end')) {
$endTime = strtotime($endTime) + 86400;
$pdlMap .= " and pdl.create_time < {$endTime}";
}
if ($info['level'] == PromoteModel::LEVEL_GROUP_LEADER) {
$xlsData = M('promote', 'tab_')->alias('p')
->field('p.id, p.level, p.account, count(pdl.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left')
->where($map)
->group('p.id')
->select();
} else {
$xlsData = M('promote', 'tab_')->alias('p')
->field('p.id, p.level, p.account, count(p2.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join("tab_promote p2 on p2.chain like CONCAT(p.chain, p.id, '/%')", 'left')
->join("tab_package_download_log pdl on pdl.promote_id = p2.id $pdlMap", 'left')
->where($map)
->group('p.id')
->select();
}
$xlsCell = array(
array('account', PromoteModel::$levelArr[$level]."账号"),
array('lowercount', PromoteModel::$levelArr[$level+1]."数量"),
array('tfcount', 'TF下载数'),
array('supersigncount', "超级签下载数"),
array('signcount', "企业签下载数"),
);
$this->exportAddOperationLog('Statistics/packDownload','统计-IOS下载统计-导出');
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
public function exportUserPackDownload()
{
$xlsName = 'IOS下载统计详细报表';
$typeArr = ['未知', '企业签下载', 'TF下载', '超级签下载'];
$map = [];
$map['_string'] = " 1=1 ";
if ($pid) {
$info = M('promote', 'tab_')->where(['id'=>$pid])->find();
if (empty($info)) return $this->error('未找到该用户');
//if ($info['level'] != PromoteModel::LEVEL_GROUP_LEADER) {return $this->error('无效的pid');} // 跳转玩家资料页面
// 获取包括他自己的下级id
$promote_ids = M('promote', 'tab_')->where("chain like '{$info['chain']}{$pid}/%' or (id={$pid}) ")->field('id')->select();
$promote_ids ? $map['pdl.promote_id'] = ['in', array_column($promote_ids, 'id')] : null;
$info['chain'] = $info['level'] == PromoteModel::LEVEL_PRESIDENT ? [$info['id']] : array_merge(explode('/', trim($info['chain'], '/')), [$info['id']]);
}
if (I('user_account')) {
$map['u.account'] = I('user_account');
}
if ($startTime = I('create_time_start')) {
$startTime = strtotime($startTime);
$map['_string'] .= " and pdl.create_time >={$startTime}";
}
if ($endTime = I('create_time_end')) {
$endTime = strtotime($endTime) + 86400;
$map['_string'] .= " and pdl.create_time < {$endTime}";
}
$list = M('package_download_log', 'tab_')->alias('pdl')
->field('pdl.promote_id, pdl.create_time, pdl.type, p.chain, u.account, p.level')
->join('tab_promote p on p.id = pdl.promote_id')
->join('tab_user u on u.id = pdl.user_id', 'left')
->where($map)
->select();
$parentIds = [];
foreach ($list as $index => $item) {
$list[$index]['type_name'] = $typeArr[$item['type']];
$ids = explode('/', trim($item['chain'], '/'));
$parentIds = array_merge($parentIds, $ids, [$item['promote_id']]);
switch ($item['level']) {
case PromoteModel::LEVEL_PRESIDENT:
$list[$index]['president_id'] = $item['promote_id'];
break;
case PromoteModel::LEVEL_DEPARMENT:
$list[$index]['president_id'] = $ids[0];
$list[$index]['department_id'] = $item['promote_id'];
break;
case PromoteModel::LEVEL_GROUP_LEADER://组长
$list[$index]['president_id'] = $ids[0];
$list[$index]['department_id'] = $ids[1];
$list[$index]['group_leader_id'] = $item['promote_id'];
break;
case PromoteModel::LEVEL_TEAM_MEMBER:
$list[$index]['president_id'] = $ids[0];
$list[$index]['department_id'] = $ids[1];
$list[$index]['group_leader_id'] = $ids[2];
$list[$index]['member_id'] = $item['promote_id'];
break;
}
}
$parents = $parentIds ? array_column(M('promote', 'tab_')->field('id, account')->where(['id'=>['in', array_unique($parentIds)]])->select(), 'account', 'id') : [];
foreach ($list as &$v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
$v['type_name'] = $typeArr[$v['type']];
$v['promote'] = isset($parents[$v['member_id']]) ? $parents[$v['member_id']] : '-';
$v['group_leader'] = isset($parents[$v['group_leader_id']]) ? $parents[$v['group_leader_id']] : '-';
$v['department'] = isset($parents[$v['department_id']]) ? $parents[$v['department_id']] : '-';
$v['president'] = isset($parents[$v['president_id']]) ? $parents[$v['president_id']] : '-';
}
$xlsCell = array(
array('account', "玩家账号"),
array('type_name', "类型"),
array('create_time', '时间'),
array('promote', "所属推广员"),
array('group_leader', "所属组长"),
array('department', "所属部门长"),
array('president', '所属会长')
);
$this->exportAddOperationLog('Statistics/packUserDownload','统计-IOS下载详细统计-导出');
$this->exportExcel($xlsName, $xlsCell, $list);
}
}

@ -2,6 +2,7 @@
namespace Admin\Controller;
use User\Api\UserApi as UserApi;
use Admin\Model\PromoteModel;
/**
* 后台首页控制器
@ -1137,5 +1138,177 @@ class StatisticsController extends ThinkController {
$this->display('ltv');
}
public function packDownload($p=1, $row=10, $pid = 0, $level=PromoteModel::LEVEL_PRESIDENT)
{
$map = [];
$map['_string'] = " 1=1 ";
if ($pid) {
$info = M('promote', 'tab_')->where(['id'=>$pid])->find();
if (empty($info)) return $this->error('未找到该用户');
//if ($info['level'] == PromoteModel::LEVEL_GROUP_LEADER) {return $this->error('跳转玩家资料页面');} // 跳转玩家资料页面
$level = $map['p.level'] = $info['level'] + 1;
$map['p.parent_id'] = $pid;
} else {
$map['p.level'] = $level;
//if ($level == PromoteModel::LEVEL_TEAM_MEMBER) {return $this->error('跳转玩家资料页面');} // 跳转玩家资料页面
}
$typeArr = ['未知', '企业签下载', 'TF下载', '超级签下载'];
if (I('promote_id')) {
$map['p.id'] = I('promote_id');
}
$count = M('promote', 'tab_')->alias('p')->where($map)->count();
$pdlMap = "";
if ($startTime = I('create_time_start')) {
$startTime = strtotime($startTime);
$pdlMap .= " and pdl.create_time >={$startTime}";
}
if ($endTime = I('create_time_end')) {
$endTime = strtotime($endTime) + 86400;
$pdlMap .= " and pdl.create_time < {$endTime}";
}
if ($info['level'] == PromoteModel::LEVEL_GROUP_LEADER) {
$list = M('promote', 'tab_')->alias('p')
->field('p.id, p.level, p.account, count(pdl.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left')
->where($map)
->page($p, $row)
->group('p.id')
->select();
$total = M('promote', 'tab_')->alias('p')
->field('count(pdl.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left')
->where($map)
->select();
} else {
$list = M('promote', 'tab_')->alias('p')
->field('p.id, p.level, p.account, count(p2.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join("tab_promote p2 on p2.chain like CONCAT(p.chain, p.id, '/%')", 'left')
->join("tab_package_download_log pdl on pdl.promote_id = p2.id $pdlMap", 'left')
->where($map)
->page($p, $row)
->group('p.id')
->select();
$total = M('promote', 'tab_')->alias('p')
->field('count(p2.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join("tab_promote p2 on p2.chain like CONCAT(p.chain, p.id, '/%')", 'left')
->join("tab_package_download_log pdl on pdl.promote_id = p2.id $pdlMap", 'left')
->where($map)
->select();
//echo M()->getLastSql();exit;
}
$page = set_pagination($count, $row);
if ($page) {
$this->assign('_page', $page);
}
$promoters = M('promote', 'tab_')->field('id, account')->where(array_merge(['level'=>$level], $pid ? ['parent_id'=>$pid] : []))->select();
$this->assign('promoters', $promoters);
$this->assign('types', $typeArr);
$this->assign('level_desc', PromoteModel::$levelArr[$level]);
$this->assign('level_low_desc', PromoteModel::$levelArr[$level+1]);
$this->assign('level', $level);
$this->assign('list_data', $list);
$this->assign('total', $total);
$this->display('packdownload');
}
public function packUserDownload($p=1, $row=10, $pid = 0)
{
$typeArr = ['未知', '企业签下载', 'TF下载', '超级签下载'];
$map = [];
$map['_string'] = " 1=1 ";
if ($pid) {
$info = M('promote', 'tab_')->where(['id'=>$pid])->find();
if (empty($info)) return $this->error('未找到该用户');
//if ($info['level'] != PromoteModel::LEVEL_GROUP_LEADER) {return $this->error('无效的pid');} // 跳转玩家资料页面
// 获取包括他自己的下级id
$promote_ids = M('promote', 'tab_')->where("chain like '{$info['chain']}{$pid}/%' or (id={$pid}) ")->field('id')->select();
$promote_ids ? $map['pdl.promote_id'] = ['in', array_column($promote_ids, 'id')] : null;
$info['chain'] = $info['level'] == PromoteModel::LEVEL_PRESIDENT ? [$info['id']] : array_merge(explode('/', trim($info['chain'], '/')), [$info['id']]);
}
if (I('user_account')) {
$map['u.account'] = I('user_account');
}
if ($startTime = I('create_time_start')) {
$startTime = strtotime($startTime);
$map['_string'] .= " and pdl.create_time >={$startTime}";
}
if ($endTime = I('create_time_end')) {
$endTime = strtotime($endTime) + 86400;
$map['_string'] .= " and pdl.create_time < {$endTime}";
}
$list = M('package_download_log', 'tab_')->alias('pdl')
->field('pdl.promote_id, pdl.create_time, pdl.type, p.chain, u.account, p.level')
->join('tab_promote p on p.id = pdl.promote_id')
->join('tab_user u on u.id = pdl.user_id', 'left')
->where($map)
->page($p, $row)
->select();
$total = M('package_download_log', 'tab_')->alias('pdl')
->field('count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount')
->join('tab_promote p on p.id = pdl.promote_id')
->join('tab_user u on u.id = pdl.user_id', 'left')
->where($map)
->select();
$count = M('package_download_log', 'tab_')->alias('pdl')
->join('tab_promote p on p.id = pdl.promote_id')
->join('tab_user u on u.id = pdl.user_id', 'left')
->where($map)
->count();
$parentIds = [];
foreach ($list as $index => $item) {
$list[$index]['type_name'] = $typeArr[$item['type']];
$ids = explode('/', trim($item['chain'], '/'));
$parentIds = array_merge($parentIds, $ids, [$item['promote_id']]);
switch ($item['level']) {
case PromoteModel::LEVEL_PRESIDENT:
$list[$index]['president_id'] = $item['promote_id'];
break;
case PromoteModel::LEVEL_DEPARMENT:
$list[$index]['president_id'] = $ids[0];
$list[$index]['department_id'] = $item['promote_id'];
break;
case PromoteModel::LEVEL_GROUP_LEADER://组长
$list[$index]['president_id'] = $ids[0];
$list[$index]['department_id'] = $ids[1];
$list[$index]['group_leader_id'] = $item['promote_id'];
break;
case PromoteModel::LEVEL_TEAM_MEMBER:
$list[$index]['president_id'] = $ids[0];
$list[$index]['department_id'] = $ids[1];
$list[$index]['group_leader_id'] = $ids[2];
$list[$index]['member_id'] = $item['promote_id'];
break;
}
}
$parents = $parentIds ? array_column(M('promote', 'tab_')->field('id, account')->where(['id'=>['in', array_unique($parentIds)]])->select(), 'account', 'id') : [];
$page = set_pagination($count, $row);
if ($page) {
$this->assign('_page', $page);
}
$this->assign('parents', $parents);
$this->assign('presidents', M('promote', 'tab_')->where(['level'=>1])->select());
$this->assign('types', $typeArr);
$this->assign('promoter', $info?:[]);
$this->assign('list_data', $list);
$this->assign('total', $total);
$this->display('packuserdownload');
}
}

@ -15,7 +15,17 @@ use Think\Model;
*/
class PromoteModel extends Model{
const LEVEL_PRESIDENT = 1;
const LEVEL_DEPARMENT = 2;
const LEVEL_GROUP_LEADER = 3;
const LEVEL_TEAM_MEMBER = 4;
public static $levelArr = [
self::LEVEL_PRESIDENT => '会长',
self::LEVEL_DEPARMENT => '部门长',
self::LEVEL_GROUP_LEADER => '组长',
self::LEVEL_TEAM_MEMBER => '组员'
];
/* 自动验证规则 */
protected $_validate = array(

@ -0,0 +1,248 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css"/>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<!-- 标题栏 -->
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">iOS渠道下载统计</h3>
<p class="description_text">说明统计iOS渠道下载</p>
</div>
<div class="cf top_nav_list">
<!-- <div class="fl button_list">
<a class="confirm ajax-post" id="dtnn" target-form="ids" url="{:U('Member/delprovide')}"><span class="button_icon button_icon2 "></span>批量删除</a>
</div> -->
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
<input type="hidden" name="pid" value="{:I('pid')}">
</div>
<div class="input-list" >
<input type="text" id="time-start" name="create_time_start" class="" value="{:I('create_time_start')}" placeholder="创建开始时间" />
&nbsp;-&nbsp;
<input type="text" id="time-end" name="create_time_end" class="" value="{:I('create_time_end')}" placeholder="创建结束时间" />
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="promote_id" name="promote_id" class="select_gallery">
<option value="">{$level_desc}账号</option>
<?php foreach($promoters as $promote):?>
<option value="{$promote.id}" <?php echo I('promote_id') == $promote['id'] ? "selected" : "" ?>>{$promote.account}</option>
<?php endforeach;?>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search"
url="{:U('Statistics/packdownload','model='.$model['name'] . '&row=' . I('row'),false)}">
搜索
</a>
<a class="sch-btn" onclick="javascript:void(window.history.go(-1))">返回</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<!-- <th class="">
<input class="check-all" type="checkbox">
</th> -->
<th>{$level_desc}账号</th>
<th>{$level_low_desc}数量</th>
<th>TF下载数</th>
<th>超级签下载数</th>
<th>企业签下载数</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name="list_data">
<td colspan="8" class="text-center">aOh! 暂时还没有内容!</td>
<else/>
<volist name="list_data" id="data">
<tr>
<!-- <td><input class="ids" type="checkbox" value="{$data['id']}" name="ids"></td> -->
<td>{$data.account}</td>
<td>{$data.lowercount}</td>
<td >{$data.tfcount}</td>
<td>{$data.supersigncount}</td>
<td>{$data.signcount}</td>
<td>
<?php if($data['level'] < 4):?>
<a href="{:U('Statistics/packdownload',array('pid'=>$data['id']))}">查看下级 </a>
<?php else:?>
<a href="{:U('Statistics/packuserdownload',array('pid'=>$data['id']))}">查看下级 </a>
<?php endif;?>
</td>
</tr>
</volist>
<tr>
<!-- <td><input class="ids" type="checkbox" value="{$data['id']}" name="ids"></td> -->
<td>汇总</td>
<td>{$total[0]['lowercount']}</td>
<td >{$total[0]['tfcount']}</td>
<td>{$total[0]['supersigncount']}</td>
<td>{$total[0]['signcount']}</td>
<td>
<?php if($data['level'] < 4):?>
<a href="{:U('Statistics/packdownload',array('level'=>$level+1))}">查看所有下级 </a>
<?php else:?>
<a href="{:U('Statistics/packuserdownload')}">查看所有下级 </a>
<?php endif;?>
</td>
</tr>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
<if condition="$is_admin eq true ">
<a class="sch-btn" href="{:U('Export/exportPackDownload',I('get.'))}">导出</a>
</if>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '
<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
';
</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript">
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Statistics/packdownload')}');
$(function () {
<volist name = ":I('get.')" id = "vo" > Think.setValue('{$key}', "{$vo}");
</volist >
$(".select_gallery").select2();
//搜索功能
$("#search").click(function () {
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
var start = $("#time-start").val();
var end = $("#time-end").val();
if (start !='' && end != ''){
if (Date.parse(start) > Date.parse(end)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function (event) {
if (event.keyCode === 13) {
$("#search").click();
}
});
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left'
})
$(".drop-down2").on('click', function (event) {
var navlist = $(this).find('.i_list_li');
if (navlist.hasClass('hidden')) {
navlist.removeClass('hidden');
$('#i_list_id').focus().val('');
} else {
navlist.addClass('hidden');
}
$(document).one("click", function () {
navlist.addClass('hidden');
});
event.stopPropagation();
});
var a = $('.i_list_li li a');
$('#i_list_id').on('keyup', function (event) {
var val = $.trim($(this).val()).toLowerCase();
$('#i_list_idh').val(val);
});
$("#i_list_li").find("a").each(function () {
$(this).click(function () {
var text = $.trim($(this).text()).toLowerCase();
$("#i_list_id").val(text);
$('#i_list_idh').val(text);
})
});
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('#time-end').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
})
</script>
</block>

@ -0,0 +1,320 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css"/>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<!-- 标题栏 -->
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">iOS渠道下载统计</h3>
<p class="description_text">说明统计iOS渠道下载</p>
</div>
<div class="cf top_nav_list">
<!-- <div class="fl button_list">
<a class="confirm ajax-post" id="dtnn" target-form="ids" url="{:U('Member/delprovide')}"><span class="button_icon button_icon2 "></span>批量删除</a>
</div> -->
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list" >
<input type="text" id="time-start" name="create_time_start" class="" value="{:I('create_time_start')}" placeholder="开始时间" />
&nbsp;-&nbsp;
<input type="text" id="time-end" name="create_time_end" class="" value="{:I('create_time_end')}" placeholder="结束时间" />
</div>
<input type="hidden" name="pid" id='promote_id' value="{:I('pid')}">
<div class="input-list input-list-game search_label_rehab">
<select id="promote1" class="select_gallery promote-id" onchange="getList(1)" data-title="会长账号">
<option value="">会长账号</option>
<?php foreach($presidents as $item):?>
<option value="{$item.id}" <?php if ($promoter['chain'][0] == $item['id']):?>selected<?php endif;?> >{$item['account']}</option>
<?php endforeach;?>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="promote2" class="select_gallery promote-id" onchange="getList(2)" data-title="部门长账号">
<option value="">部门长账号</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="promote3" class="select_gallery promote-id" onchange="getList(3)" data-title="组长账号">
<option value="">组长账号</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="promote4" class="select_gallery promote-id" onchange="getList(4)" data-title="推广员账号">
<option value="">推广员账号</option>
</select>
</div>
<div class="input-list">
<input type="text" id='user_account' name='user_account' value="{:I('user_account')}" placeholder="玩家账号">
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search"
url="{:U('Statistics/packuserdownload','model='.$model['name'] . '&row=' . I('row'),false)}">
搜索
</a>
<a class="sch-btn" onclick="javascript:void(window.history.go(-1))">返回</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<!-- <th class="">
<input class="check-all" type="checkbox">
</th> -->
<th>玩家账号</th>
<th>类型</th>
<th>时间</th>
<th>所属推广员</th>
<th>所属组长</th>
<th>所属部门长</th>
<th>所属会长</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name="list_data">
<td colspan="8" class="text-center">aOh! 暂时还没有内容!</td>
<else/>
<volist name="list_data" id="data">
<tr>
<!-- <td><input class="ids" type="checkbox" value="{$data['id']}" name="ids"></td> -->
<td>{$data.account}</td>
<td>{$data.type_name}</td>
<td >{$data.create_time|date='Y-m-d H:i:s',###}</td>
<td><?php echo $parents[$data['member_id']]?></td>
<td><?php echo $parents[$data['group_leader_id']]?></td>
<td><?php echo $parents[$data['department_id']]?></td>
<td><?php echo $parents[$data['president_id']]?></td>
</tr>
</volist>
<tr>
<!-- <td><input class="ids" type="checkbox" value="{$data['id']}" name="ids"></td> -->
<td>汇总</td>
<td colspan="8" style="text-align: left;">TF下载{$total[0]['tfcount']} 超级签下载:{$total[0]['supersigncount']} 企业签下载:{$total[0]['signcount']}</td>
</tr>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
<if condition="$is_admin eq true ">
<a class="sch-btn" href="{:U('Export/exportUserPackDownload',I('get.'))}">导出</a>
</if>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '
<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
';
</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript">
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Statistics/packdownload')}');
$(function () {
<volist name = ":I('get.')" id = "vo" > Think.setValue('{$key}', "{$vo}");
</volist >
$(".select_gallery").select2();
//搜索功能
$("#search").click(function () {
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
var start = $("#time-start").val();
var end = $("#time-end").val();
if (start !='' && end != ''){
if (Date.parse(start) > Date.parse(end)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function (event) {
if (event.keyCode === 13) {
$("#search").click();
}
});
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left'
})
$(".drop-down2").on('click', function (event) {
var navlist = $(this).find('.i_list_li');
if (navlist.hasClass('hidden')) {
navlist.removeClass('hidden');
$('#i_list_id').focus().val('');
} else {
navlist.addClass('hidden');
}
$(document).one("click", function () {
navlist.addClass('hidden');
});
event.stopPropagation();
});
var a = $('.i_list_li li a');
$('#i_list_id').on('keyup', function (event) {
var val = $.trim($(this).val()).toLowerCase();
$('#i_list_idh').val(val);
});
$("#i_list_li").find("a").each(function () {
$(this).click(function () {
var text = $.trim($(this).text()).toLowerCase();
$("#i_list_id").val(text);
$('#i_list_idh').val(text);
})
});
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('#time-end').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
})
var levelCurrent = "{$promoter['level']}";
var parentIds = {:json_encode($promoter['chain'])};
var president_id = department_id = group_leader_id = team_member_id = null;
function getList(level)
{
var obj = $('#promote'+level);
// 清除下级联动数据
var childrens = $(obj).parents('.search_label_rehab').nextAll().children('.promote-id');
$.each(childrens, function(index, item){
var title = $(item).attr('data-title');
$(item).empty().html("<option value='' selected>"+title+"</option>").select2();
});
var next = $(obj).parents('.search_label_rehab').next().children('.promote-id');
var text = next.attr('data-title');
var pid = $(obj).val();
$("#promote_id").val(pid);
// 获取下级数据
$.ajax({
url:"{:U('Ajax/getPromoteChildren')}",
method:"GET",
async:false,
data:{pid:pid},
dataType:"JSON",
success:function(response){
var html = "<option value='' selected>"+text+"</option>";
$.each(response.data, function(index, item){
if (parentIds[level] && parentIds[level] == item.id) {
html += "<option value='"+item.id+"' selected >"+item.account+"</option>";
} else {
html += "<option value='"+item.id+"'>"+item.account+"</option>";
}
});
next.html(html);
next.select2();
}
});
}
if (levelCurrent) {
switch (levelCurrent) {
case 1:
president_id = parentIds[0];
break;
case 2:
president_id = parentIds[0];
department_id = parentIds[1];
break;
case 3:
president_id = parentIds[0];
department_id = parentIds[1];
group_leader_id = parentIds[2];
break;
case 4:
president_id = parentIds[0];
department_id = parentIds[1];
group_leader_id = parentIds[2];
team_member_id = parentIds[2];
break;
}
for (var i=1; i <= levelCurrent; i++) {
$('#promote'+i).change();
}
}
</script>
</block>
Loading…
Cancel
Save