Procházet zdrojové kódy

提交测试手机版用户首页的统计异常问题

lvhao před 5 měsíci
rodič
revize
148c78eefd

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1836 - 0
core/CoreApp/controllers/Userbak.php


+ 670 - 0
template/erp/phone/p_user_statisticsbak.html

@@ -0,0 +1,670 @@
+{Template phone/header_phone}
+<div class="warp">
+<!-- <div class="qxtss"><i class="fa fa-spin fa-opera"></i>当日实时</div>
+<div class="qxtssjz">截止时间:<font></font></div>
+<div class="qstssqb"><font style="color:#fc5454"></font><font style="color:#0099FF"></font></div>-->
+<div class="qxtss" style="text-align: center;"><a href="/user/shopfx" style="color:#666">进入店铺统计</a></div>
+<div class="qxtss"><i class="fa fa-spin fa-connectdevelop"></i>数据统计
+<em><font>快捷</font> <span class="switch-off" id="directory"></span> <font>周期</font></em>
+<em><font>全部</font> <span class="switch-off" themeColor="#6d9eeb" id="source"></span> <font>线下</font></em>
+</div>
+<ul class="qsttime dr">
+<li data-time="0" class="ac">{$dr[0]}</li>
+<li data-time="1">{$dr[1]}</li>
+<li data-time="2">{$dr[2]}</li>
+<li data-time="3">{$dr[3]}</li>
+<li data-time="7">周</li>
+<li data-time="30">月</li>
+<li data-time="90">季</li>
+<li data-time="365">年</li>
+<div style="clear: both;"></div>
+</ul>
+<ul class="qsttime zq none">
+<p>
+<label class="timeinput"><input class="input" id="t1" value="{date('Y-m-d',time()-31*24*3600)}" name="ktime" type="text" readonly></label>
+<label class="timeinput"><input class="input" id="t2" value="{date('Y-m-d',time())}" name="jtime" type="text" readonly></label>
+<span class="inputspan">确定</span>
+</p>
+<div style="clear: both;"></div>
+</ul>
+<ul class="qxttj qstdlz">
+<span>独立站</span>
+<li>总金额:<font></font></li>
+<li>总单量:<font></font></li>
+<li style="width:100%;text-align: center;margin-top: -20px;">实收总金额:<font></font></li>
+<div style="clear:both"></div>
+</ul>
+<ul class="qxttj qsttt">
+<span>TikTok</span>
+<li>总金额:<font></font></li>
+<li>总单量:<font></font></li>
+<li style="width:100%;text-align: center;margin-top: -20px;">实收总金额:<font></font></li>
+<div style="clear:both"></div>
+</ul>
+<ul class="qxttj qstsmt">
+<span>速卖通</span>
+<li>总金额:<font></font></li>
+<li>总单量:<font></font></li>
+<li style="width:100%;text-align: center;margin-top: -20px;">实收总金额:<font></font></li>
+<div style="clear:both"></div>
+</ul>
+<div class="qxtph"><i class="fa fa-spin fa-modx"></i>店铺详情</div>
+<ul id="dlz" class="dpxq">
+<div class='t1'><font>独立站</font></div>
+<div class="t2">
+</div>
+</ul>
+<ul id="tiktok" class="dpxq">
+<div class='t1'><font>TikTok</font></div>
+<div class="t2">
+</div>
+</ul>
+<ul id="smt" class="dpxq">
+<div class='t1'><font>速卖通</font></div>
+<div class="t2">
+</div>
+</ul>
+<!--
+<div id="container" style="width:100%;height:300px;margin:0 auto"></div>
+<div id="containertwo" style="width:100%;height:300px;margin:0 auto"></div>
+<div id="container3" style="width:100%;height:300px;margin:0 auto"></div>
+
+<div id="containerzzt" style="width:100%;margin:0 auto;padding-top:10px;"></div>
+<div style="width:100%;overflow-x: scroll;">
+<div id="sncontainer" style="min-width:700px;width:100%;margin-top: -50px;"></div>
+</div>
+<div class="containerzzt" style="padding:15px 0;text-align: center;"><i class="fa fa-spinner fa-pulse"></i> 柱状图数据加载中...</div>
+-->
+
+<div class="qxtss none"><i class="fa fa-spin fa-joomla"></i>昨日产品排行</div>
+<table id="qstcp" class="qstcp" border="0" style="border-collapse:collapse;"></table>
+</div>
+<input name="tab" value="1" type="hidden">
+<input name="source" value="0" type="hidden">
+<input class="scrolltop" name="scrolltop" value="0" type="hidden">
+<input name="id" value="0" type="hidden">
+
+<div class="cs">
+<div class="cs_warp cs_log">
+<div class="wpt">
+<div class="cs_t"><font></font><span><i class="fa fa-close"></i></span></div>
+<ul class="xqtime">
+<li id="a0" data-time="0" class="ac">{$dr[0]}</li>
+<li id="a1" data-time="1">{$dr[1]}</li>
+<li id="a2" data-time="2">{$dr[2]}</li>
+<li id="a3" data-time="3">{$dr[3]}</li>
+<li id="a7" data-time="7">周</li>
+<li id="a30" data-time="30">月</li>
+<li id="a90" data-time="90">季</li>
+<li id="a365" data-time="365">年</li>
+<div style="clear:both"></div>
+</ul>
+</div>
+<div style="width:100%;height:127px;"></div>
+<table id="dpxq" class="qstcp" border="0" style="border-collapse:collapse;"></table>
+</div>
+</div>
+
+<script src="{$theme}js/echarts.min.js"></script>
+<script src="{$theme}js/honeySwitch.js?v=202004020002"></script>
+<script type="text/javascript">
+ $.selectYY_MM_DD("#t1");
+  $.selectYY_MM_DD("#t2");
+$(".qsttime .inputspan").click(function() {
+	var time = $("#t1").val()+'|'+$("#t2").val();
+	 defaultgo(time);
+});
+$(".qsttime li").click(function() {
+	var time = $(this).data("time");
+	$(".qsttime li").removeClass("ac");
+	$(this).addClass("ac");
+	 defaultgo(time);
+});
+ $(document).ready(function() {
+	 switchEvent("#source",function()
+	 {
+		 $("input[name=source]").val("1");//2d 店内
+		 if($("input[name=tab]").val() == '2')
+		 {var time = $("#t1").val()+'|'+$("#t2").val();
+		 }
+		 else
+		 {
+		     var time = $(".qsttime .ac").data("time");
+		 }
+		 defaultgo(time);
+	},function()
+	{
+		 $("input[name=source]").val("0");
+		if($("input[name=tab]").val() == '2')
+		 {
+			 var time = $("#t1").val()+'|'+$("#t2").val();
+		 }
+		 else
+		 {
+		     var time = $(".qsttime .ac").data("time");
+		 }
+		 defaultgo(time);
+			});
+	 switchEvent("#directory",function(){
+		 $("input[name=tab]").val("2");
+		 $(".dr").hide();
+				$(".zq").show();
+				var time = $("#t1").val()+'|'+$("#t2").val();
+				 defaultgo(time);
+			},function(){
+				$("input[name=tab]").val("1");
+				$(".zq").hide();
+				$(".dr").show();
+				$(".dr li").eq(0).trigger("click");
+			});
+	 $(".syc li:eq(0)").hide();
+	 var time = $(".qsttime .ac").data("time");
+	 defaultgo(time);
+ })
+ $("select[name='qxtsssel']").change(function() {
+	//ss();
+});
+ function ss() {
+	 layx.load('loadId','数据加载中');
+	  $.ajax({
+        url: "/user/statisticsbak/",
+        data: "sstime=1&shop=",
+        type: "POST",
+        dataType: "json",
+        success: function(a) {
+			$(".qxtssjz font").text(a.sstime);
+$(".qstssqb font:eq(0)").text(a.sssl+"单");
+$(".qstssqb font:eq(1)").text(a.ssje+"$");
+ layx.destroy('loadId');
+		}
+	  });
+ };
+
+ function defaultgo(t) {
+	 layx.load('loadId','数据加载中');
+	 if(!isNaN(t)){
+	 time = t*24*3600+24*3600;
+	 }
+	 else
+	 {
+		 time = t;
+	 }
+	  $.ajax({
+        url: "/user/statisticsbak/",
+        data: "time="+time+"&tab="+$("input[name=tab]").val()+"&source="+$("input[name=source]").val()+"&shop="+$(".qxtsssel").children("option:selected").val(),
+        type: "POST",
+        dataType: "json",
+        success: function(a) {
+            if (a && a.success) {
+$(".qstdlz li:eq(0) font").text(a.dlzje+"$");
+$(".qstdlz li:eq(1) font").text(a.dlzsl+"单");
+$(".qstdlz li:eq(2) font").text(a.dlzssje+"$");
+$(".qstsmt li:eq(0) font").text(a.smtje+"$");
+$(".qstsmt li:eq(1) font").text(a.smtsl+"单");
+$(".qstsmt li:eq(2) font").text(a.smtssje+"$");
+$(".qsttt li:eq(0) font").text(a.ttje+"$");
+$(".qsttt li:eq(1) font").text(a.ttsl+"单");
+$(".qsttt li:eq(2) font").text(a.ttssje+"$");
+$(".qstqb font:eq(0)").text(a.zje+"$");
+$(".qstqb font:eq(1)").text(a.zsl+"单");
+$("#qstcp").html("");
+$("#dlz .t2").html("<li><font>店铺</font><font>数量</font><font>金额</font><font>客单价</font><font>实收金额</font>");//<font>返单率</font><font>重合率</font><font>复购率</font></li>
+$("#tiktok .t2").html("<li><font>店铺</font><font>数量</font><font>金额</font><font>客单价</font><font>实收金额</font>");//<font>返单率</font><font>重合率</font><font>复购率</font></li>
+$("#smt .t2").html("<li><font>店铺</font><font>数量</font><font>金额</font><font>客单价</font><font>实收金额</font>");//<font>返单率</font><font>重合率</font><font>复购率</font></li>
+for (i = 0; i < a.shopdata.length; i++) 
+{
+	if( a.shopdata[i]['b'] == '270')
+	{
+       $("#smt .t2").append("<li class='xq' id=" + a.shopdata[i]['id'] + " data-id=" + a.shopdata[i]['id'] + ">");
+       $("#smt .t2 #" + a.shopdata[i]['id']).append("<font>" + a.shopdata[i]['name'] + "</font><font>" + a.shopdata[i]['num'] + "</font><font>" + a.shopdata[i]['money'] + "</font><font>" + a.shopdata[i]['bl'] + "</font><font>" + a.shopdata[i]['tmoney'] + "</font>");//<font><i class='fa fa-spinner fa-pulse'></i></font><font><i class='fa fa-spinner fa-pulse'></i></font><font><i class='fa fa-spinner fa-pulse'></i></font>
+       $("#smt .t2").append("</li>");
+	}
+	else if ( a.shopdata[i]['b'] == '269')
+	{
+		$("#dlz .t2").append("<li class='xq' id=" + a.shopdata[i]['id'] + " data-id=" + a.shopdata[i]['id'] + ">");
+       $("#dlz .t2 #" + a.shopdata[i]['id']).append("<font>" + a.shopdata[i]['name'] + "</font><font>" + a.shopdata[i]['num'] + "</font><font>" + a.shopdata[i]['money'] + "</font><font>" + a.shopdata[i]['bl'] + "</font><font>" + a.shopdata[i]['tmoney'] + "</font>");//<font><i class='fa fa-spinner fa-pulse'></i></font><font><i class='fa fa-spinner fa-pulse'></i></font><font><i class='fa fa-spinner fa-pulse'></i></font>
+       $("#dlz .t2").append("</li>");
+	}
+	else
+	{
+		$("#tiktok .t2").append("<li class='xq' id=" + a.shopdata[i]['id'] + " data-id=" + a.shopdata[i]['id'] + ">");
+       $("#tiktok .t2 #" + a.shopdata[i]['id']).append("<font>" + a.shopdata[i]['name'] + "</font><font>" + a.shopdata[i]['num'] + "</font><font>" + a.shopdata[i]['money'] + "</font><font>" + a.shopdata[i]['bl'] + "</font><font>" + a.shopdata[i]['tmoney'] + "</font>");//<font><i class='fa fa-spinner fa-pulse'></i></font><font><i class='fa fa-spinner fa-pulse'></i></font><font><i class='fa fa-spinner fa-pulse'></i></font>
+       $("#tiktok .t2").append("</li>");
+	}
+}
+$(".t2 li").each(function() {
+var t1width = $("#dlz .t1").width()-15;
+$(this).css("width",t1width+(t1width-120-40-62)+"px");//+240
+$(this).find('font:eq(2)').css("width",(t1width-120-40-62)+"px");
+$(this).find('font:eq(4)').css("width",(t1width-120-40-62)+"px");
+$(this).find('font:eq(5)').css("width","80px");
+$(this).find('font:eq(6)').css("width","80px");
+$(this).find('font:eq(7)').css("width","80px");
+});
+/**昨日产品
+for (i = 0; i < a.sycp.length; i++) 
+{
+   $("#qstcp").append("<tr id=" + i + "><td>" + a.sycp[i][0] + "</td><td>" + a.sycp[i][2] + "</td></tr>");
+}
+**/
+
+
+ if(t>6 || isNaN(t))
+ {
+	 /** 取消柱状图
+	 $("#containertwo").show();
+	  $("#container").show();//单日期需要的时候删除
+	  $(".qxtph").css("margin-top","-25px");//单日期需要的时候删除
+	 zx2(a.time,a.timeold,a.dlzmoney,a.dlzmoneyb,a.smtmoney,a.smtmoneyb);
+	 **/
+ }
+ else
+ {
+	 $("#containertwo").hide();
+	 $("#container").hide();//单日期需要的时候删除
+	 $(".qxtph").css("margin-top","10px");//单日期需要的时候删除
+	 //zx1(a.time,a.dlzmoney,a.smtmoney); //单日期需要的时候打开
+ }
+ layx.destroy('loadId');
+ //ss();
+ /** 取消柱状图
+  zhcx("time="+time+"&tab="+$("input[name=tab]").val()+"&source="+$("input[name=source]").val()+"&shop="+$(".qxtsssel").children("option:selected").val());//柱状图暂时不需要先关闭
+  取消柱状图 **/
+} 
+        }
+    });
+ };
+ /** 返单率这些暂时弃用
+ function zhcx(list) {
+	  $.ajax({
+        url: "/user/statisticsbak/",
+        data: "zhcx=1&"+list,
+        type: "POST",
+        dataType: "json",
+        success: function(a) {
+			 if (a && a.success) {
+		for (i = 0; i < a.shopdata.length; i++) 
+{
+	if( a.shopdata[i]['b'] == '270')
+	{
+       $("#smt .t2 #"+a.shopdata[i]['id']+" font:eq(5)").text(a.shopdata[i]['fdl']);
+	   $("#smt .t2 #"+a.shopdata[i]['id']+" font:eq(6)").text(a.shopdata[i]['chl']);
+	   $("#smt .t2 #"+a.shopdata[i]['id']+" font:eq(7)").text(a.shopdata[i]['fgl']);
+	}
+	else if ( a.shopdata[i]['b'] == '269')
+	{
+		$("#dlz .t2 #"+a.shopdata[i]['id']+" font:eq(5)").text(a.shopdata[i]['fdl']);
+		$("#dlz .t2 #"+a.shopdata[i]['id']+" font:eq(6)").text(a.shopdata[i]['chl']);
+		$("#dlz .t2 #"+a.shopdata[i]['id']+" font:eq(7)").text(a.shopdata[i]['fgl']);
+	}
+	else
+	{
+		$("#tiktok .t2 #"+a.shopdata[i]['id']+" font:eq(5)").text(a.shopdata[i]['fdl']);
+		$("#tiktok .t2 #"+a.shopdata[i]['id']+" font:eq(6)").text(a.shopdata[i]['chl']);
+		$("#tiktok .t2 #"+a.shopdata[i]['id']+" font:eq(7)").text(a.shopdata[i]['fgl']);
+	}
+}
+		}
+		}
+	  });
+ };
+ **/
+ 
+$(".dpxq").on('click',".xq",function() {
+	 myTop =  Math.max(document.body.scrollTop, document.documentElement.scrollTop);
+	 $(".scrolltop").val(myTop);
+	$(".cs .cs_t font").text($(this).find("font:eq(0)").html()+" 店铺售出产品信息");
+	dpxq($(this).data('id'),$(".xqtime #a"+$(".qsttime .ac").data("time")).data("time"));
+	$(".xqtime li").removeClass("ac");
+	$(".xqtime #a"+$(".qsttime .ac").data("time")).addClass("ac");
+	$("input[name='id']").val($(this).data('id'));
+	 layx.load('loadId','数据加载中');
+});
+$(".xqtime li").click(function() {
+	$(".xqtime li").removeClass("ac");
+	$(this).addClass("ac");
+	dpxq($("input[name='id']").val(),$(this).data("time"));
+	 layx.load('loadId','数据加载中');
+});
+function dpxq(id,time) {
+	$("#dpxq").html("");
+	$(".warp").hide();
+	$(".cs").show();
+	$("html,body").scrollTop(0)
+	time = time*24*3600+24*3600;
+	$.ajax({
+        url: "/user/statisticsbak/",
+        data: "id="+id+"&xqtime="+time,
+        type: "POST",
+        dataType: "json",
+        success: function(a) {
+            if (a && a.success) 
+			{
+				if(a.dpxq.length > 0)
+				{
+				    for (i = 0; i < a.dpxq.length; i++) 
+				    {
+   				        $("#dpxq").append("<tr id=" + i + "><td>" + a.dpxq[i][0] + "</td><td>" + a.dpxq[i][2] + "</td></tr>");
+				    }
+				}
+				else
+				{
+					$("#dpxq").append("<tr><td width='100%' height='70' style='color:#555'>暂无订单</td></tr>");
+				}
+				layx.destroy('loadId');
+			}
+			else
+			{
+			}
+		}
+	});
+	
+};
+ $(".cs .cs_t i").click(function() {
+	 $(".warp").show();
+    $(".cs").hide();
+	$("html,body").scrollTop($(".scrolltop").val());
+	
+});
+/** 取消柱状图
+function zx1(time,dlzmoney,smtmoney) {
+	var dom = document.getElementById("container");
+var myChart = echarts.init(dom);
+var app = {};
+option = null;
+option = {
+    tooltip: {
+        trigger: 'axis'
+    },
+    legend: {
+        data:['独立站','速卖通']
+    },
+	grid: {
+        left: '3%',
+        right: '5%',
+        containLabel: true
+    },
+   toolbox: {
+        feature: {
+        }
+    },
+    xAxis:  {
+        type: 'category',
+        boundaryGap: false,
+        data: time
+    },
+    yAxis: {
+        type: 'value',
+        axisLabel: {
+            formatter: '{value} 元'
+        }
+    },
+    series: [
+        {
+            name:'独立站',
+            type:'line',
+            data: dlzmoney,
+            markPoint: {
+                data: [
+                    {type: 'max', name: '最大值'}
+                ]
+            },
+			itemStyle : 
+			{
+				normal : {color:'#e3815e'} 
+            }
+        },
+        {
+            name:'速卖通',
+            type:'line',
+            data: smtmoney,
+            markPoint: {
+                data: [
+                     {type: 'max', name: '最大值'}
+                ]
+            },
+			itemStyle : 
+			{
+				normal :{color:'#d18515'}
+            }
+        }
+    ]
+};
+if (option && typeof option === "object") {
+    myChart.setOption(option, true);
+}
+}
+function zx2(time,timeold,dlzmoney,dlzmoneyb,smtmoney,smtmoneyb) {
+var dom = document.getElementById("container");
+var myChart = echarts.init(dom);
+var app = {};
+option = null;
+option = {
+    tooltip: {
+        trigger: 'axis'
+    },
+    legend: {
+        data:['独立站近期','独立站往期']
+    },
+	grid: {
+        left: '3%',
+        right: '5%',
+        containLabel: true
+    },
+  toolbox: {
+        feature: {
+        }
+    },
+	xAxis:  [
+	{
+        type: 'category',
+        boundaryGap: false,
+        data: time,
+		axisLine:{lineStyle:{color:'#c23531'}} 
+    },
+	{
+        type: 'category',
+        boundaryGap: false,
+        data: timeold,
+		position:'top',
+		axisLine:{lineStyle:{color:'#2f4554'}}
+    }
+	],
+    yAxis: {
+        type: 'value',
+        axisLabel: {
+            formatter: '{value} 元'
+        }
+    },
+    series: [
+        {
+            name:'独立站近期',
+            type:'line',
+            data: dlzmoney,
+            markPoint: {
+                data: [
+                    {type: 'max', name: '最大值'}
+                ]
+            }
+        },
+        {
+            name:'独立站往期',
+            type:'line',
+            data: dlzmoneyb,
+            markPoint: {
+                data: [
+                     {type: 'max', name: '最大值'}
+                ]
+            }
+        }
+    ]
+};
+
+
+var domtwo = document.getElementById("containertwo");
+var myCharttwo = echarts.init(domtwo);
+var apptwo = {};
+optiontwo = null;
+optiontwo = {
+    tooltip: {
+        trigger: 'axis'
+    },
+    legend: {
+        data:['速卖通近期','速卖通往期']
+    },
+	grid: {
+        left: '3%',
+        right: '5%',
+        containLabel: true
+    },
+    toolbox: {
+        feature: {
+        }
+    },
+    xAxis:  [
+	{
+        type: 'category',
+        boundaryGap: false,
+        data: time,
+		axisLine:{lineStyle:{color:'#c23531'}} 
+    },
+	{
+        type: 'category',
+        boundaryGap: false,
+        data: timeold,
+		position:'top',
+		axisLine:{lineStyle:{color:'#2f4554'}}
+    }
+	],
+    yAxis: {
+        type: 'value',
+        axisLabel: {
+            formatter: '{value} 元'
+        }
+    },
+    series: [
+        {
+            name:'速卖通近期',
+            type:'line',
+            data: smtmoney,
+            markPoint: {
+                data: [
+                    {type: 'max', name: '最大值'}
+                ]
+            }
+        },
+        {
+            name:'速卖通往期',
+            type:'line',
+            data: smtmoneyb,
+            markPoint: {
+                data: [
+                     {type: 'max', name: '最大值'}
+                ]
+            }
+        }
+    ]
+};
+if (option && typeof option === "object") {
+    myChart.setOption(option, true);
+}
+if (optiontwo && typeof optiontwo === "object") {
+    myCharttwo.setOption(optiontwo, true);
+}
+}
+**/
+ //ss();
+setTimeout(function(){
+knzzt();
+},5000);
+  function knzzt() {
+	  $.ajax({
+        url: "/user/zzt/",
+        data: "a=1",
+        type: "POST",
+        dataType: "json",
+        success: function(a) {
+			zzt(a.time,a.data,a.sntime,a.sndata);
+		}
+	  });
+ };
+
+function zzt(time,data,sntime,sndata) {
+$('#containerzzt').css('height','300px');
+$('#sncontainer').css('height','300px');
+$('.containerzzt').hide();
+var dom = document.getElementById("containerzzt");
+var myChart = echarts.init(dom);
+var app = {};
+optionzzt = null;
+optionzzt = {
+    legend: {},
+    tooltip: {},
+	grid: {
+        left: '3%',
+        right: '5%',
+        containLabel: true
+    },
+    dataset: {
+        source: [
+             ['product','2021','2020','2019'],
+            data[0],
+			data[1],
+			data[2],
+			data[3],
+			data[4],
+			data[5],
+			data[6],
+			data[7],
+			data[8],
+			data[9],
+			data[10],
+			data[11]
+        ]
+    },
+    xAxis: {type: 'category'},
+    yAxis: {},
+    // Declare several bar series, each will be mapped
+    // to a column of dataset.source by default.
+    series: [
+        {type: 'bar'},
+        {type: 'bar'},
+        {type: 'bar'}
+    ]
+};
+;
+if (optionzzt && typeof optionzzt === "object") {
+    myChart.setOption(optionzzt, true);
+}
+
+var dom = document.getElementById("sncontainer");
+var myChart = echarts.init(dom);
+var app = {};
+snoption = null;
+snoption = {
+	grid: {
+        left: '3%',
+        right: '5%',
+        containLabel: true
+    },
+    xAxis: {
+        type: 'category',
+        data: sntime
+    },
+    yAxis: {
+        type: 'value'
+    },
+    series: [{
+        data: sndata,
+        type: 'bar'
+    }]
+};
+;
+if (snoption && typeof snoption === "object") {
+    myChart.setOption(snoption, true);
+}
+}
+$('#containerzzt canvas').css('margin','0 auto');
+       </script>
+<script type="text/javascript" src="{$theme}js/laydate.js"></script>
+{Template phone/footer_phone}