2023-01-29 10:26:52 +08:00

599 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{extend name="public/base" /}
{block name="body"}
<style>
.clear {width:100%;height:0px;line-height:0px;overflow:hidden;clear:both;font-size:0px;}
.clear5 {width:100%;height:5px;line-height:5px;overflow:hidden;clear:both;font-size:0px;}
.clear10 {width:100%;height:10px;line-height:10px;overflow:hidden;clear:both;font-size:0px;}
.clear15 {width:100%;height:15px;line-height:15px;overflow:hidden;clear:both;font-size:0px;}
.clear20 {width:100%;height:20px;line-height:20px;overflow:hidden;clear:both;font-size:0px;}
.clear25 {width:100%;height:25px;line-height:25px;overflow:hidden;clear:both;font-size:0px;}
.clear30 {width:100%;height:30px;line-height:30px;overflow:hidden;clear:both;font-size:0px;}
.clear40 {width:100%;height:40px;line-height:40px;overflow:hidden;clear:both;font-size:0px;}
.clear50 {width:100%;height:50px;line-height:50px;overflow:hidden;clear:both;font-size:0px;}
.clear60 {width:100%;height:60px;line-height:60px;overflow:hidden;clear:both;font-size:0px;}
.table-bordered th{text-align: center;font-size:13px;}
.fom{width: 120px;margin-left:10px;float: left;}
.md1{width: 100%;display: inline-block;}
.timw{width:200px;}
.md2{width: 100%;display: inline-block;}
.texsize{font-size: 13px;}
.xixi{font-size:12px;font-weight: 400;color: #000;}
.modtit {
width: 900px;
height: 42px;
line-height: 42px;
background: #2c3e50;
color: #fff;
padding: 0 20px 0 20px;
font-size: 14px;
display: flex;
justify-content: space-between;
}
.modtit .p2{
cursor: pointer;
}
.model-tit{
width: 100%;
background-color: #FFFFFF;
display: flex;
margin: 30px 0;
font-size: 22px;
}
.model-tit span{
flex: 1;
text-align: center;
}
.tips_word{
color: red;
margin-bottom: 10px;
margin-left:26px;
}
.table tbody>tr>td{
font-size:13px;
}
.table tbody>tr>td:first-child{
font-size:13px;
}
.table tbody>tr>td:first-child{
font-weight: 400;
}
</style>
<div class="main-box clearfix">
<div class="main-box-body clearfix">
<div class="clear20"></div>
<div class="md1">
<form action="" method="get">
<input type="text" placeholder="ID" name="id" class="form-control fom" value="{$wid}">
<input type="text" placeholder="书名编号" name="booknumber" class="form-control fom" value="{$booknumber}">
<input type="text" placeholder="书名" name="bkname" class="form-control fom" value="{$wbkname}">
<select class="form-control fom" name="type" id="type" style="width:auto;">
<option value="">未选择</option>
{volist name="category_list" id="v"}
<option value="{$v.id}">{$v.title}</option>
{/volist}
</select>
<!--<div class="input-group timw" style="float: left;">-->
<!-- <input type="text" class="form-control fom" name="printime" id="printime" value="" placeholder="">-->
<!-- <span class="input-group-addon"><i class="fa fa-th"></i></span>-->
<!--</div>-->
<!--<div class="input-group timw" style="float: left;">-->
<!-- <input type="text" class="form-control fom" name="oftime" id="oftime" value="" placeholder="">-->
<!-- <span class="input-group-addon"><i class="fa fa-th"></i></span>-->
<!--</div>-->
<input type="submit" class="btn btn-primary fom" value="搜索">
</form>
{if$sex==1}
<a href="/admin/Works/index?sex=2" class="btn btn-default" style="margin-left:20px">女频</a>
<a href="/admin/Works/index?sex=1" class="btn btn-primary">男频</a>
{else}
<a href="/admin/Works/index?sex=2" class="btn btn-primary" style="margin-left:20px">女频</a>
<a href="/admin/Works/index?sex=1" class="btn btn-default">男频</a>
{/if}
</div>
<div class="clear10"></div>
<p class="text-success" style="margin-left:9px;">默认按充值最多排序</p>
<div class="container">
<table class="table table-bordered" id="table" cellspacing="0" cellpadding="2" border="1">
<thead>
<tr>
<th>ID</th>
<th>书名</th>
<th>分类</th>
<!--<th>今日充值</th>-->
<!--<th>昨日充值</th>-->
<!--<th>总充值</th>-->
<th>操作</th>
</tr>
</thead>
<tbody id="table" cellspacing="0" cellpadding="2" border="1">
{volist name="list" id="v"}
<tr class="littr">
<th class="text-success texsize">{$v.id}</th>
<th class="text-info texsize">{$v.title}</th>
<th class="texsize text-warning">{$v.category}</th>
<!--<th class="texsize text-danger" style="color:#6495ed;">{$v.day}<br><span class="xixi">{$v.day_count}笔</span></th>-->
<!--<th class="texsize text-danger" style="color:#6495ed;">{$v.zday}<br><span class="xixi">{$v.zday_count}笔</span></th>-->
<!--<th class="texsize text-danger" style="color:#6495ed;">{$v.money}<br><span class="xixi">{$v.money_count}笔</span></th>-->
<th><div class="btn btn-danger btn-jun" onclick="info('{$v.id}','{$v.title}')">充值留存分析</div></th>
</tr>
{/volist}
</tbody>
</table>
{$page}
</div>
</div>
<div class="modal fade" id="myModalinfo" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"
style="box-shadow: 2px 2px 2px #eee;">
<div class="modal-dialog">
<div class="modal-content" style="overflow:auto;height:580px;width:900px;">
<div class="modtit">
<p>充值留存分析</p>
<p class="p2" onclick="closinfo()">关闭</p>
</div>
<div class="clear10"></div>
<button class="btn btn-primary" type="button" onclick="infos(1)">今日</button>
<button class="btn btn-primary" type="button" onclick="infos(2)">昨日</button>
<button class="btn btn-primary" type="button" onclick="infos(3)">全部</button>
<button class="btn btn-primary excel" type="button" onclick="excel()" id='1'>下载书籍订阅记录</button>
<p style="margin-top:10px;margin-left:2px;" id="timetexts"></p>
<div class="model-tit">
<span>书籍ID<b id="bookid"></b></span>
<span>书籍名:<b id="bookname"></b></span>
</div>
<div class="tips_word">默认展示今日的数据</div>
<div class="main-box-body clearfix">
<p style="height:2px;"></p>
<div class="container">
<table class="table table-bordered" id="tableone" cellspacing="0" cellpadding="2" border="1">
<thead>
<tr class="tables-s">
<th class="text-center">阅读总人数</th>
<th class="text-center">总订阅书币</th>
<th class="text-center">一充</th>
<th class="text-center">二充</th>
<th class="text-center">三充及以上</th>
</tr>
</thead>
<tbody id="table" cellspacing="0" cellpadding="2" border="1">
</tbody>
</table>
<table class="table table-bordered" id="tableone2" cellspacing="0" cellpadding="2" border="1">
<thead>
<tr class="tables-s">
<th class="text-center">章节</th>
<th class="text-center">阅读人数</th>
<th class="text-center">占比</th>
<th class="text-center">订阅书币</th>
<th class="text-center">占比</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody id="table" cellspacing="0" cellpadding="2" border="1">
<tr>
<td class="text-center">1-10章</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- 章节详情订阅统计 -->
<div class="modal fade" id="myModalchapter" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"
style="box-shadow: 2px 2px 2px #eee;">
<div class="modal-dialog">
<div class="modal-content" style="overflow:auto;height:580px;width:900px;">
<div class="modtit">
<p>章节订阅详情</p>
<p class="p2" onclick="closchapter()">关闭</p>
</div>
<div class="main-box-body clearfix">
<p style="height:2px;"></p>
<div class="container">
<table class="table table-bordered" id="tablechapter" cellspacing="0" cellpadding="2" border="1">
<thead>
<tr class="tables-s">
<th class="text-center">章节序号</th>
<th class="text-center">章节名</th>
<th class="text-center">新增人数</th>
<th class="text-center">离开人数</th>
<th class="text-center">留存人数</th>
<!--<th class="text-center">订阅书币</th>-->
</tr>
</thead>
<tbody id="table" cellspacing="0" cellpadding="2" border="1">
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" id="staid">
</div>
{/block}
{block name="script"}
<script src = "/public/js/colResizable-1.6.min.js" ></script>
<!-- datepicker statr -->
<link href="/public/plugs/datepicker/css/foundation-datepicker.min.css" rel="stylesheet" type="text/css">
<script src="/public/plugs/datepicker/js/foundation-datepicker.js"></script>
<script src="/public/plugs/datepicker/js/foundation-datepicker.zh-CN.js"></script>
<script>
$(function(){
//此处实现表格可拖放属性
$("#table").colResizable({
liveDrag:true,//实现实时拖动,可看见拖动轨迹
draggingClass:"dragging", //防止拖动出险虚标线
resizeMode: "overflow" //表的宽度可以超过父级宽度
});
});
// 时间表单插件
$('#printime').fdatepicker({
clearBtn: true,
todayBtn: true,
format: 'yyyy-mm-dd h:i',
pickTime: true
});
$('#oftime').fdatepicker({
clearBtn: true,
todayBtn: true,
format: 'yyyy-mm-dd h:i',
pickTime: true
});
function info(id,tit){
$('#bookid').html(id)
$('#bookname').html(tit)
$("#myModalinfo").modal('show');
var tab = $("#tableone>tbody");
var tabs = $("#tableone2>tbody");
tab.html('数据较大,加载中请稍等。。。');
tabs.html('数据较大,加载中请稍等。。。');
$.ajax({
type: "POST",
url: "{:url('Works/analyze')}",
data:{id:id},
dataType: "json",
success: function (data) {
$('#staid').val(data.data.articleid)
if (data.status == 1) {
var tab = $("#tableone>tbody");
var tabs = $("#tableone2>tbody");
var tr;
var trs;
tr = '<tr>' +
'<td class="text-center">' + data.data.seenum + '</td>' +
'<td class="text-center">' + data.data.subscribe + '</td>' +
'<td class="text-center">人数:' + data.data.onenum + '<br>金额:'+ data.data.onemoney +'<br>一充率:'+ data.data.onerate +' %</td>' +
'<td class="text-center">人数:' + data.data.twonum + '<br>金额:'+ data.data.twomoney +'<br>二充率:'+ data.data.tworate +' %</td>' +
'<td class="text-center">人数:' + data.data.threenum + '<br>金额:'+ data.data.threemoney +'<br>三充率:'+ data.data.threerate +' %</td>' +
'</tr>';
trs = '<tr>' +
'<td class="text-center">1-10章</td>' +
'<td class="text-center">' + data.data.one + '</td>' +
'<td class="text-center">' + data.data.rate1 + ' %</td>' +
'<td class="text-center">' + data.data.one_sub + ' </td>' +
'<td class="text-center">' + data.data.rate9 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(1,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' + '<tr>' +
'<td class="text-center">11-20章</td>' +
'<td class="text-center">' + data.data.two + '</td>' +
'<td class="text-center">' + data.data.rate2 + ' %</td>' +
'<td class="text-center">' + data.data.two_sub + ' </td>' +
'<td class="text-center">' + data.data.rate10 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(2,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">21-100章</td>' +
'<td class="text-center">' + data.data.three + '</td>' +
'<td class="text-center">' + data.data.rate3 + ' %</td>' +
'<td class="text-center">' + data.data.three_sub + ' </td>' +
'<td class="text-center">' + data.data.rate11 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(3,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">101-200章</td>' +
'<td class="text-center">' + data.data.four + '</td>' +
'<td class="text-center">' + data.data.rate4 + ' %</td>' +
'<td class="text-center">' + data.data.four_sub + ' </td>' +
'<td class="text-center">' + data.data.rate12 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(4,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">201-300章</td>' +
'<td class="text-center">' + data.data.five + '</td>' +
'<td class="text-center">' + data.data.rate5 + ' %</td>' +
'<td class="text-center">' + data.data.five_sub + ' </td>' +
'<td class="text-center">' + data.data.rate13 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(5,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">301-400章</td>' +
'<td class="text-center">' + data.data.six + '</td>' +
'<td class="text-center">' + data.data.rate6 + ' %</td>' +
'<td class="text-center">' + data.data.six_sub + ' </td>' +
'<td class="text-center">' + data.data.rate14 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(6,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">401-500章</td>' +
'<td class="text-center">' + data.data.seven + '</td>' +
'<td class="text-center">' + data.data.rate7 + ' %</td>' +
'<td class="text-center">' + data.data.seven_sub + ' </td>' +
'<td class="text-center">' + data.data.rate15 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(7,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">500章以上</td>' +
'<td class="text-center">' + data.data.eight + '</td>' +
'<td class="text-center">' + data.data.rate8 + ' %</td>' +
'<td class="text-center">' + data.data.eight_sub + ' </td>' +
'<td class="text-center">' + data.data.rate16 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(8,' + data.date + ')">订阅详情</div>' + ' </td>' +
'</tr>' +
tab.html(tr);
tabs.html(trs);
}else{
var tab = $("#tableone>tbody");
var tabs = $("#tableone2>tbody");
tab.html('<tr><td>暂无数据<td/></tr>');
tabs.html('<tr><td>暂无数据<td/></tr>');
}
}
});
}
function infos(date){
var id = $("#bookid").text();
$("#myModalinfo").modal('show');
var tab = $("#tableone>tbody");
var tabs = $("#tableone2>tbody");
tab.html('数据较大,加载中请稍等。。。');
tabs.html('数据较大,加载中请稍等。。。');
$.ajax({
type: "POST",
url: "{:url('Works/analyze')}",
data:{id:id,date:date},
dataType: "json",
success: function (data) {
$('#staid').val(data.data.id)
$('.excel').attr('id',date);
if (data.status == 1) {
var tab = $("#tableone>tbody");
var tabs = $("#tableone2>tbody");
var tr;
var trs;
tr = '<tr>' +
'<td class="text-center">' + data.data.seenum + '</td>' +
'<td class="text-center">' + data.data.subscribe + '</td>' +
'<td class="text-center">人数:' + data.data.onenum + '<br>金额:'+ data.data.onemoney +'<br>一充率:'+ data.data.onerate +' %</td>' +
'<td class="text-center">人数:' + data.data.twonum + '<br>金额:'+ data.data.twomoney +'<br>二充率:'+ data.data.tworate +' %</td>' +
'<td class="text-center">人数:' + data.data.threenum + '<br>金额:'+ data.data.threemoney +'<br>三充率:'+ data.data.threerate +' %</td>' +
'</tr>';
trs = '<tr>' +
'<td class="text-center">1-10章</td>' +
'<td class="text-center">' + data.data.one + '</td>' +
'<td class="text-center">' + data.data.rate1 + ' %</td>' +
'<td class="text-center">' + data.data.one_sub + ' </td>' +
'<td class="text-center">' + data.data.rate9 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(1)">订阅详情</div>' + ' </td>' +
'</tr>' + '<tr>' +
'<td class="text-center">11-20章</td>' +
'<td class="text-center">' + data.data.two + '</td>' +
'<td class="text-center">' + data.data.rate2 + ' %</td>' +
'<td class="text-center">' + data.data.two_sub + ' </td>' +
'<td class="text-center">' + data.data.rate10 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(2)">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">21-100章</td>' +
'<td class="text-center">' + data.data.three + '</td>' +
'<td class="text-center">' + data.data.rate3 + ' %</td>' +
'<td class="text-center">' + data.data.three_sub + ' </td>' +
'<td class="text-center">' + data.data.rate11 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(3)">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">101-200章</td>' +
'<td class="text-center">' + data.data.four + '</td>' +
'<td class="text-center">' + data.data.rate4 + ' %</td>' +
'<td class="text-center">' + data.data.four_sub + ' </td>' +
'<td class="text-center">' + data.data.rate12 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(4)">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">201-300章</td>' +
'<td class="text-center">' + data.data.five + '</td>' +
'<td class="text-center">' + data.data.rate5 + ' %</td>' +
'<td class="text-center">' + data.data.five_sub + ' </td>' +
'<td class="text-center">' + data.data.rate13 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(5)">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">301-400章</td>' +
'<td class="text-center">' + data.data.six + '</td>' +
'<td class="text-center">' + data.data.rate6 + ' %</td>' +
'<td class="text-center">' + data.data.six_sub + ' </td>' +
'<td class="text-center">' + data.data.rate14 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(6)">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">401-500章</td>' +
'<td class="text-center">' + data.data.seven + '</td>' +
'<td class="text-center">' + data.data.rate7 + ' %</td>' +
'<td class="text-center">' + data.data.seven_sub + ' </td>' +
'<td class="text-center">' + data.data.rate15 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(7)">订阅详情</div>' + ' </td>' +
'</tr>' +'<tr>' +
'<td class="text-center">500章以上</td>' +
'<td class="text-center">' + data.data.eight + '</td>' +
'<td class="text-center">' + data.data.rate8 + ' %</td>' +
'<td class="text-center">' + data.data.eight_sub + ' </td>' +
'<td class="text-center">' + data.data.rate16 + ' %</td>' +
'<td class="text-center">' + '<div class="btn btn-info" onclick="tabchapter(8)">订阅详情</div>' + ' </td>' +
'</tr>' +
tab.html(tr);
tabs.html(trs);
}else{
var tab = $("#tableone>tbody");
var tabs = $("#tableone2>tbody");
tab.html('<tr><td>暂无数据<td/></tr>');
tabs.html('<tr><td>暂无数据<td/></tr>');
}
}
});
}
function closinfo(){
$("#myModalinfo").modal('hide');
}
function closchapter(){
$("#myModalchapter").modal('hide');
}
function tabchapter(t,date){
$("#myModalchapter").modal('show');
var tab = $("#tablechapter>tbody");
tab.html('数据较大,加载中请稍等。。。');
var id = $('#staid').val()
$.ajax({
type: "POST",
url: "{:url('Works/subscribeinfo')}",
data:{t:t,id:id,date:date},
dataType: "json",
success: function (data) {
if (data.status == 1) {
var tab = $("#tablechapter>tbody");
var tr;
$.each(data.data, function (index, value) {
tr += '<tr>' +
'<td class="text-center">' + value.chapterorder + '</td>' +
'<td class="text-center">' + value.chaptername + '</td>' +
'<td class="text-center">' + value.seenum + '</td>' +
'<td class="text-center">' + value.nums + '</td>' +
'<td class="text-center">' + value.survivenum + '</td>' +
// '<td class="text-center">' + value.subscription + '</td>' +
'</tr>';
});
tab.html(tr);
}else{
var tab = $("#tablechapter>tbody");
tab.html('<tr><td>暂无数据<td/></tr>');
}
}
});
}
function upc(t,id){
swal({
title: '确定?',
text: "",
type: 'warning',
buttons:{
confirm: {
text : '确认',
className : 'btn btn-success'
},
cancel: {
text : '关闭',
visible: true,
className: 'btn btn-danger'
}
}
}).then((Delete) => {
if (Delete) {
$.ajax({
type: "POST",
url: "{:url('Works/upc')}",
data: {status:t,id:id},
dataType: "json",
success: function(data){
if(data.status==1){
swal('成功',data.reg, {icon : "success",buttons:{confirm:{className : 'btn btn-success'}},});
window.location = '';
}else{
swal('错误',data.reg, {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
}
}
});
} else {
//关闭执行
swal.close();
}
});
}
function excel(){
var id = $("#bookid").text();
location.href = "{:url('Works/bookExcelList')}?id="+id+"&date="+$('.excel').attr('id');
}
//设置为兴趣推荐书籍
function setsavor(t,id){
swal({
title: '确定设置?',
text: "设置后优先推荐",
type: 'warning',
buttons:{
confirm: {
text : '确认',
className : 'btn btn-success'
},
cancel: {
text : '关闭',
visible: true,
className: 'btn btn-danger'
}
}
}).then((Delete) => {
if (Delete) {
$.ajax({
type: "POST",
url: "{:url('Works/setsavor')}",
data: {t:t,id:id},
dataType: "json",
success: function(data){
if(data.status==1){
swal('成功',data.reg, {icon : "success",buttons:{confirm:{className : 'btn btn-success'}},});
$('#savor'+id).html(data.text)
if(data.class==1){
$('#savor'+id).removeClass('btn btn-info')
$('#savor'+id).addClass('btn btn-danger')
}else{
$('#savor'+id).removeClass('btn btn-danger')
$('#savor'+id).addClass('btn btn-info')
}
}else{
swal('错误',data.reg, {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
}
}
});
} else {
//关闭执行
swal.close();
}
});
}
</script>
{/block}