Browse Source

订单处理页面嵌套

pull/1/head
liuyu 3 years ago
parent
commit
e388390f8d
  1. 27
      control/index.php
  2. 4
      model/mGoods.php
  3. 3
      model/mOrder.php
  4. 68
      view/css/bootstrap-datetimepicker.min.css
  5. 6993
      view/css/global.css
  6. 1
      view/js/bootstrap-datetimepicker.min.js
  7. 16
      view/js/bootstrap-datetimepicker.zh-CN.js
  8. 45
      view/js/echarts.min.js
  9. 2
      view/js/jquery-1.8.1.min.js
  10. 3
      view/templates/include/footer.html
  11. 13
      view/templates/include/header.html
  12. 49
      view/templates/include/leftmenu.html
  13. 420
      view/templates/index/home.html
  14. 233
      view/templates/index/order_list.html

27
control/index.php

@ -1,6 +1,7 @@
<?php
include_once(dirname(dirname(__FILE__))."/library/publicBase.php");
include_once(SERVER_ROOT."/model/mPage.php");
class index extends publicBase {
@ -10,7 +11,10 @@ class index extends publicBase {
$shop_id = $shopinfo['id'];
$obj = new mOrder();
$this->view['date2count'] = $date2count = $obj->getLastThirtyDaysOrderNum($uid, $shop_id);
$date2count = $obj->getLastThirtyDaysOrderNum($uid, $shop_id);
$this->view['json_dates'] = json_encode(array_keys($date2count));
$this->view['json_counts'] = json_encode(array_values($date2count));
$this->view['wait_deliver_goods_count'] = $obj->getOrdersCount($uid, $shop_id, ORDER_STATUS_WAIT_DELIVER_GOODS, REFUND_STATUS_NO_AFTER_SALES);
@ -26,10 +30,10 @@ class index extends publicBase {
$shop_id = $shopinfo['id'];
$order_status = $this->get('order_status')+0;
$refund_status = $this->get('refund_status')+0;
if ($order_status) $url .= '/order_status/'.$order_status;
$url .= '/order_status/'.$order_status;
$url .= '/refund_status/'.$refund_status;
$refund_status = $this->get('refund_status')+0;
if ($refund_status) $url .= '/refund_status/'.$refund_status;
$obj = new mOrder();
$count = $obj->getOrdersCount($uid, $shop_id, $order_status, $refund_status);
@ -41,7 +45,6 @@ class index extends publicBase {
$curpage = $this->get('page')>0 ? $this->get('page') : 1;
$page->setPage($curpage);
$pagesize = $page->pagesize = 50;
$this->view['page_list'] = $page->getPageList();
$this->view['curpage'] = $curpage;
@ -52,6 +55,20 @@ class index extends publicBase {
$list = $obj->getOrderList($uid, $shop_id, $order_status, $refund_status, $curpage, $pagesize);
$this->view['list'] = $list ? $list : array();
if (empty($list)) return true;
$goods_ids = array_unique(array_column($list, 'goods_id'));
$gobj = new mGoods();
$goods_list = $gobj->getGoodsByGoodsids($goods_ids);
if (empty($goods_list)) return true;
$goodsid2skuid2info = array();
foreach ($goods_list as $goods) {
$goodsid2skuid2info[$goods['goods_id']][$goods['sku_id']] = $goods;
}
$this->view['goodsid2skuid2info'] = $goodsid2skuid2info;
}
public function export_wait_deliver_goods_tids() {

4
model/mGoods.php

@ -37,6 +37,10 @@ class mGoods extends mBase {
return $this->obj->select($this->goods, array('sql'=>'`uid`=? and `shop_id`=? and `goods_id`=? and `sku_id`=?', 'vals'=>array($uid, $shop_id, $goods_id, $sku_id)));
}
public function getGoodsByGoodsids($goods_ids) {
return $this->obj->selectIn($this->goods, array('goods_id'=>$goods_ids));
}
public function updateGoodsById($id, $data) {
return $this->obj->update($this->goods, $data, array('sql'=>'`id`=?', 'vals'=>array($id)));
}

3
model/mOrder.php

@ -108,8 +108,7 @@ class mOrder extends mBase {
public function getLastThirtyDaysOrderNum($uid, $shop_id) {
$start_date = date("Y-m-d", strtotime("-30 day"));
$sql = "select DATE_FORMAT(`pay_time`,'%Y-%m-%d') sale_day, count(*) as count from {$this->order} where `uid`={$uid} and `shop_id`={$shop_id} and `pay_time`>={$start_date}";
$sql = "select DATE_FORMAT(`pay_time`,'%Y-%m-%d') sale_day, count(*) as count from {$this->order} where `uid`={$uid} and `shop_id`={$shop_id} and `pay_time`>='{$start_date}' group by sale_day order by sale_day asc";
$list = $this->obj->execute($sql, true, true);
if (!$list) return array();

68
view/css/bootstrap-datetimepicker.min.css

@ -0,0 +1,68 @@
/*!
* Datetimepicker for Bootstrap
*
* Copyright 2012 Stefan Petre
* Improvements by Andrew Rowls
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/.datetimepicker{padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}
.datetimepicker-inline{width:220px}
.datetimepicker.datetimepicker-rtl{direction:rtl}
.datetimepicker.datetimepicker-rtl table tr td span{float:right}
.datetimepicker-dropdown,.datetimepicker-dropdown-left{top:0;left:0}
[class*=" datetimepicker-dropdown"]:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute}
[class*=" datetimepicker-dropdown"]:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute}
[class*=" datetimepicker-dropdown-top"]:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0}
[class*=" datetimepicker-dropdown-top"]:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;border-bottom:0}
.datetimepicker-dropdown-bottom-left:before{top:-7px;right:6px}
.datetimepicker-dropdown-bottom-left:after{top:-6px;right:7px}
.datetimepicker-dropdown-bottom-right:before{top:-7px;left:6px}
.datetimepicker-dropdown-bottom-right:after{top:-6px;left:7px}
.datetimepicker-dropdown-top-left:before{bottom:-7px;right:6px}
.datetimepicker-dropdown-top-left:after{bottom:-6px;right:7px}
.datetimepicker-dropdown-top-right:before{bottom:-7px;left:6px}
.datetimepicker-dropdown-top-right:after{bottom:-6px;left:7px}
.datetimepicker>div{display:none}
.datetimepicker.minutes div.datetimepicker-minutes{display:block}
.datetimepicker.hours div.datetimepicker-hours{display:block}
.datetimepicker.days div.datetimepicker-days{display:block}
.datetimepicker.months div.datetimepicker-months{display:block}
.datetimepicker.years div.datetimepicker-years{display:block}
.datetimepicker table{margin:0}
.datetimepicker td,.datetimepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0}
.table-striped .datetimepicker table tr td,.table-striped .datetimepicker table tr th{background-color:transparent}
.datetimepicker table tr td.minute:hover{background:#eee;cursor:pointer}
.datetimepicker table tr td.hour:hover{background:#eee;cursor:pointer}
.datetimepicker table tr td.day:hover{background:#eee;cursor:pointer}
.datetimepicker table tr td.old,.datetimepicker table tr td.new{color:#999}
.datetimepicker table tr td.disabled,.datetimepicker table tr td.disabled:hover{background:0;color:#999;cursor:default}
.datetimepicker table tr td.today,.datetimepicker table tr td.today:hover,.datetimepicker table tr td.today.disabled,.datetimepicker table tr td.today.disabled:hover{background-color:#fde19a;background-image:-moz-linear-gradient(top,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(top,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(top,#fdd49a,#fdf59a);background-image:-o-linear-gradient(top,#fdd49a,#fdf59a);background-image:linear-gradient(top,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a',endColorstr='#fdf59a',GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}
.datetimepicker table tr td.today:hover,.datetimepicker table tr td.today:hover:hover,.datetimepicker table tr td.today.disabled:hover,.datetimepicker table tr td.today.disabled:hover:hover,.datetimepicker table tr td.today:active,.datetimepicker table tr td.today:hover:active,.datetimepicker table tr td.today.disabled:active,.datetimepicker table tr td.today.disabled:hover:active,.datetimepicker table tr td.today.active,.datetimepicker table tr td.today:hover.active,.datetimepicker table tr td.today.disabled.active,.datetimepicker table tr td.today.disabled:hover.active,.datetimepicker table tr td.today.disabled,.datetimepicker table tr td.today:hover.disabled,.datetimepicker table tr td.today.disabled.disabled,.datetimepicker table tr td.today.disabled:hover.disabled,.datetimepicker table tr td.today[disabled],.datetimepicker table tr td.today:hover[disabled],.datetimepicker table tr td.today.disabled[disabled],.datetimepicker table tr td.today.disabled:hover[disabled]{background-color:#fdf59a}
.datetimepicker table tr td.today:active,.datetimepicker table tr td.today:hover:active,.datetimepicker table tr td.today.disabled:active,.datetimepicker table tr td.today.disabled:hover:active,.datetimepicker table tr td.today.active,.datetimepicker table tr td.today:hover.active,.datetimepicker table tr td.today.disabled.active,.datetimepicker table tr td.today.disabled:hover.active{background-color:#fbf069}
.datetimepicker table tr td.active,.datetimepicker table tr td.active:hover,.datetimepicker table tr td.active.disabled,.datetimepicker table tr td.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}
.datetimepicker table tr td.active:hover,.datetimepicker table tr td.active:hover:hover,.datetimepicker table tr td.active.disabled:hover,.datetimepicker table tr td.active.disabled:hover:hover,.datetimepicker table tr td.active:active,.datetimepicker table tr td.active:hover:active,.datetimepicker table tr td.active.disabled:active,.datetimepicker table tr td.active.disabled:hover:active,.datetimepicker table tr td.active.active,.datetimepicker table tr td.active:hover.active,.datetimepicker table tr td.active.disabled.active,.datetimepicker table tr td.active.disabled:hover.active,.datetimepicker table tr td.active.disabled,.datetimepicker table tr td.active:hover.disabled,.datetimepicker table tr td.active.disabled.disabled,.datetimepicker table tr td.active.disabled:hover.disabled,.datetimepicker table tr td.active[disabled],.datetimepicker table tr td.active:hover[disabled],.datetimepicker table tr td.active.disabled[disabled],.datetimepicker table tr td.active.disabled:hover[disabled]{background-color:#04c}
.datetimepicker table tr td.active:active,.datetimepicker table tr td.active:hover:active,.datetimepicker table tr td.active.disabled:active,.datetimepicker table tr td.active.disabled:hover:active,.datetimepicker table tr td.active.active,.datetimepicker table tr td.active:hover.active,.datetimepicker table tr td.active.disabled.active,.datetimepicker table tr td.active.disabled:hover.active{background-color:#039}
.datetimepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}
.datetimepicker .datetimepicker-hours span{height:26px;line-height:26px}
.datetimepicker .datetimepicker-hours table tr td span.hour_am,.datetimepicker .datetimepicker-hours table tr td span.hour_pm{width:14.6%}
.datetimepicker .datetimepicker-hours fieldset legend,.datetimepicker .datetimepicker-minutes fieldset legend{margin-bottom:inherit;line-height:30px}
.datetimepicker .datetimepicker-minutes span{height:26px;line-height:26px}
.datetimepicker table tr td span:hover{background:#eee}
.datetimepicker table tr td span.disabled,.datetimepicker table tr td span.disabled:hover{background:0;color:#999;cursor:default}
.datetimepicker table tr td span.active,.datetimepicker table tr td span.active:hover,.datetimepicker table tr td span.active.disabled,.datetimepicker table tr td span.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}
.datetimepicker table tr td span.active:hover,.datetimepicker table tr td span.active:hover:hover,.datetimepicker table tr td span.active.disabled:hover,.datetimepicker table tr td span.active.disabled:hover:hover,.datetimepicker table tr td span.active:active,.datetimepicker table tr td span.active:hover:active,.datetimepicker table tr td span.active.disabled:active,.datetimepicker table tr td span.active.disabled:hover:active,.datetimepicker table tr td span.active.active,.datetimepicker table tr td span.active:hover.active,.datetimepicker table tr td span.active.disabled.active,.datetimepicker table tr td span.active.disabled:hover.active,.datetimepicker table tr td span.active.disabled,.datetimepicker table tr td span.active:hover.disabled,.datetimepicker table tr td span.active.disabled.disabled,.datetimepicker table tr td span.active.disabled:hover.disabled,.datetimepicker table tr td span.active[disabled],.datetimepicker table tr td span.active:hover[disabled],.datetimepicker table tr td span.active.disabled[disabled],.datetimepicker table tr td span.active.disabled:hover[disabled]{background-color:#04c}
.datetimepicker table tr td span.active:active,.datetimepicker table tr td span.active:hover:active,.datetimepicker table tr td span.active.disabled:active,.datetimepicker table tr td span.active.disabled:hover:active,.datetimepicker table tr td span.active.active,.datetimepicker table tr td span.active:hover.active,.datetimepicker table tr td span.active.disabled.active,.datetimepicker table tr td span.active.disabled:hover.active{background-color:#039}
.datetimepicker table tr td span.old{color:#999}
.datetimepicker th.switch{width:145px}
.datetimepicker thead tr:first-child th,.datetimepicker tfoot tr:first-child th{cursor:pointer}
.datetimepicker thead tr:first-child th:hover,.datetimepicker tfoot tr:first-child th:hover{background:#eee}
.input-append.date .add-on i,.input-prepend.date .add-on i,.input-group.date .input-group-addon span{cursor:pointer;width:14px;height:14px}
.cssmultiupload {
display: block;
height: 450px;
width: 1000px;
overflow: auto;
}

6993
view/css/global.css

File diff suppressed because it is too large

1
view/js/bootstrap-datetimepicker.min.js

File diff suppressed because one or more lines are too long

16
view/js/bootstrap-datetimepicker.zh-CN.js

@ -0,0 +1,16 @@
/**
* Simplified Chinese translation for bootstrap-datetimepicker
* Yuan Cheung <advanimal@gmail.com>
*/
;(function($){
$.fn.datetimepicker.dates['zh-CN'] = {
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
today: "今天",
suffix: [],
meridiem: ["上午", "下午"]
};
}(jQuery));

45
view/js/echarts.min.js

File diff suppressed because one or more lines are too long

2
view/js/jquery-1.8.1.min.js

File diff suppressed because one or more lines are too long

3
view/templates/include/footer.html

@ -0,0 +1,3 @@
<footer>
<p>&copy; 2022-{$smarty.now|date_format:'%Y'} All rights reserved. </p>
</footer>

13
view/templates/include/header.html

@ -0,0 +1,13 @@
<nav class="topbar">
<div class="topbar-inner">
<div class="container">
<div class="topbar-infomation">
<ul>
<li class="email_drop">
<span class="name">{$_shopinfo.name}</span>
</li>
</ul>
</div>
</div>
</div>
</nav>

49
view/templates/include/leftmenu.html

@ -0,0 +1,49 @@
{literal}
<style>
.mask {
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background: rgba(0, 0, 0, 0.5);
z-index:999;
}
.url_location_pos {
background:yellow;
}
</style>
{/literal}
<div class="module_inner" id="left_menu_bar">
<div class="input-search">
<a href="/">订单统计</a>
</div>
<div class="input-search">
<a href="/index/order_list/order_status/{$smarty.const.ORDER_STATUS_WAIT_DELIVER_GOODS}/refund_status/{$smarty.const.REFUND_STATUS_NO_AFTER_SALES}">发货提醒</a>
</div>
<div class="input-search">
<a href="/index/order_list/refund_status/{$smarty.const.REFUND_STATUS_AFTER_SALE_ING}">售后监控</a>
</div>
<div class="input-search">
<a href="/index/order_list">订单列表</a>
</div>
</div>
{literal}
<script>
function parseQueryString(url){
var str=url.split("?")[0].split('//')[1].split(location.host)[1];
return str;
}
var url=location.href;
var urlpath = parseQueryString(url);
$('#left_menu_bar').find('.input-search').removeClass('url_location_pos');
$('#left_menu_bar').find('.input-search').each(function(){
if($(this).find('a').attr('href').split('?')[0]==urlpath){
$(this).find('a').addClass('url_location_pos');
}
});
</script>
{/literal}

420
view/templates/index/home.html

@ -0,0 +1,420 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="zh_CN"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="zh_CN"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="zh_CN"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js" lang="zh-CN">
<!--<![endif]-->
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>当日实时销量曲线</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<script type="text/javascript" src="/js/jquery-1.8.1.min.js"></script>
<link href="/css/global.css" media="screen" rel="stylesheet" type="text/css">
{literal}
<!--[if lt IE 9]>
<script type="text/javascript">
// iepp v2.1pre @jon_neal & @aFarkas github.com/aFarkas/iepp
// html5shiv @rem remysharp.com/html5-enabling-script
// Dual licensed under the MIT or GPL Version 2 licenses
/*@cc_on(function(a,b){function r(a){var b=-1;while(++b<f)a.createElement(e[b])}if(!window.attachEvent||!b.createStyleSheet||!function(){var a=document.createElement("div");return a.innerHTML="<elem></elem>",a.childNodes.length!==1}())return;a.iepp=a.iepp||{};var c=a.iepp,d=c.html5elements||"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|subline|summary|time|video",e=d.split("|"),f=e.length,g=new RegExp("(^|\\s)("+d+")","gi"),h=new RegExp("<(/*)("+d+")","gi"),i=/^\s*[\{\}]\s*$/,j=new RegExp("(^|[^\\n]*?\\s)("+d+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),k=b.createDocumentFragment(),l=b.documentElement,m=b.getElementsByTagName("script")[0].parentNode,n=b.createElement("body"),o=b.createElement("style"),p=/print|all/,q;c.getCSS=function(a,b){try{if(a+""===undefined)return""}catch(d){return""}var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,p.test(b)&&h.push(c.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},c.parseCSS=function(a){var b=[],c;while((c=j.exec(a))!=null)b.push(((i.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(g,"$1.iepp-$2")+c[4]);return b.join("\n")},c.writeHTML=function(){var a=-1;q=q||b.body;while(++a<f){var c=b.getElementsByTagName(e[a]),d=c.length,g=-1;while(++g<d)c[g].className.indexOf("iepp-")<0&&(c[g].className+=" iepp-"+e[a])}k.appendChild(q),l.appendChild(n),n.className=q.className,n.id=q.id,n.innerHTML=q.innerHTML.replace(h,"<$1font")},c._beforePrint=function(){if(c.disablePP)return;o.styleSheet.cssText=c.parseCSS(c.getCSS(b.styleSheets,"all")),c.writeHTML()},c.restoreHTML=function(){if(c.disablePP)return;n.swapNode(q)},c._afterPrint=function(){c.restoreHTML(),o.styleSheet.cssText=""},r(b),r(k);if(c.disablePP)return;m.insertBefore(o,m.firstChild),o.media="print",o.className="iepp-printshim",a.attachEvent("onbeforeprint",c._beforePrint),a.attachEvent("onafterprint",c._afterPrint)})(this,document)@*/
</script>
<![endif]-->
<style>
.header {
display: flex;
flex-direction: column;
}
.title-left {
opacity: 0.8;
font-size: 14pt;
font-weight: bold;
}
.contents {
display: flex;
/* justify-content: space-between; */
justify-content: space-evenly;
margin: 30px 0px;
width:80%;
}
.content-item {
margin: 20px 60px 20px 60px;
}
.item-top {
font-size: 12pt;
opacity: 0.8;
}
.item-bottom {
opacity: 0.9;
font-size: 18pt;
font-weight: bold;
line-height: 40px;
}
</style>
{/literal}
</head>
<body>
<!-- Topbar
================================================== -->
{include file="include/header.html"}
<!-- Page
================================================== -->
<div id="page">
<div class="container">
<aside id="sidebar" class="sidebar">
<div id="filter" class="filter module">
</div>
<div id="search" class="domain-search module">
{include file="include/leftmenu.html"}
</div>
</aside>
<section id="main">
<div class="alert-message block-message info" id="tempalte-tips">
<div class="row" style="text-align:center">首次使用该软件,同步历史订单可能需要一段时间,请耐心等待</div>
<div class="row" style="text-align:center">待发货订单数:<span style="color:red">{$wait_deliver_goods_count}</span></div>
<div class="row" style="text-align:center">退款订单数:<span style="color:red">{$refund_count}</span></div>
</div>
<div id="main-content">
<div class="modal-body">
<div id="container" style="height: 400px"></div>
</div>
</div>
</div>
</section>
<!--end of main section-->
</div>
<!--end of container-->
</div>
<!--end of #page-->
<!-- footer
================================================== -->
<script type="text/javascript" src="/js/echarts.min.js"></script>
<script type="text/javascript" src="/js/control.index.js?v={$smarty.const.CSS_JS_VERSION}"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
{include file="include/footer.html"}
{literal}
<style>
#feedback {
position: fixed;
right: 20px;
top: 92%;
height: 30px;
width: 100px;
color: #333;
font-size: 12px;
line-height: 20px;
background-color: #fff;
border: 1px solid #e2e2e2;
text-align: center;
}
#feedback:hover {
background-color: #e2e2e2;
}
#feedback a {
line-height: 30px;
text-decoration: none;
color: #333;
}
</style>
{/literal}
<!-- UserAgent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0 -->
{literal}
<script type="text/javascript">
var dom = document.getElementById('container');
var myChart = echarts.init(dom, null, {
renderer: 'canvas',
useDirtyRect: false
});
var app = {};
var option;
option = {
title: {
text: '订单统计'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['订单数量']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: {/literal}{$json_dates}{literal}
},
yAxis: {
type: 'value'
},
series: [
{
name: '订单数量',
type: 'line',
stack: 'Total',
data: {/literal}{$json_counts}{literal}
}
]
};
if (option && typeof option === 'object') {
myChart.setOption(option);
}
window.addEventListener('resize', myChart.resize);
</script>
<!--[if lt IE 7]>
<![endif]-->
<!--
<script type="text/javascript">
/*Load jQuery if not already loaded*/ if(typeof jQuery == 'undefined'){ document.write("<script type=\"text/javascript\" src=\"" + ('https:' == document.location.protocol ? 'https://' : 'http://')+ "ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></"+"script>"); var __noconflict = true; }
var IE6UPDATE_OPTIONS = {
url: "http://blog.dnspod.cn/2010/04/ie6-must-die/",
message: "DNSPod 新版已经完全取消对微软 Internet Explorer 6.0 浏览器的支持,IE6 用户无法正常使用 DNSPod。请升级您的IE6浏览器至IE8,或者升级至Chrome、火狐、Safari等其他浏览器。",
icons_path: "https://statics.dnspod.cn/zhanjiang/images/ie6update/"
}
</script>
<script type="text/javascript" src="https://statics.dnspod.cn/zhanjiang/javascripts/ie6update.v2.js"></script>
-->
<!--[if lt IE 7]>
<![endif]-->
<style id="__huaban_Style">
#__huaban_Container {
font-family: 'helvetica neue', arial, sans-serif;
position: absolute;
padding-top: 37px;
z-index: 100000002;
top: 0;
left: 0;
background-color: transparent;
opacity: 1;
}
#__huaban_Overlay {
position: fixed;
z-index: 9999;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #f2f2f2;
opacity: .95;
}
#__huaban_Control {
position: relative;
z-index: 100000;
float: left;
background-color: #fcf9f9;
border: solid #ccc;
border-width: 0 1px 1px 0;
height: 200px;
width: 200px;
opacity: 1;
}
#__huaban_Control img {
position: relative;
padding: 0;
display: block;
margin: 82px auto 0;
-ms-interpolation-mode: bicubic;
}
#__huaban_Control a {
position: fixed;
z-index: 10001;
right: 0;
top: 0;
left: 0;
height: 24px;
padding: 12px 0 0;
text-align: center;
font-size: 14px;
line-height: 1em;
text-shadow: 0 1px #fff;
color: #211922;
font-weight: bold;
text-decoration: none;
background: #fff url(http://huaban.com/img/fullGradient07Normal.png) 0 0 repeat-x;
border-bottom: 1px solid #ccc;
-mox-box-shadow: 0 0 2px #d7d7d7;
-webkit-box-shadow: 0 0 2px #d7d7d7;
}
#__huaban_Control a:hover {
color: #fff;
text-decoration: none;
background-color: #1389e5;
border-color: #1389e5;
text-shadow: 0 -1px #46A0E6;
}
#__huaban_Control a:active {
height: 23px;
padding-top: 13px;
background-color: #211922;
border-color: #211922;
background-image: url(http://huaban.com/img/fullGradient07Inverted.png);
text-shadow: 0 -1px #211922;
}
.__huabanImagePreview {
position: relative;
padding: 0;
margin: 0;
float: left;
background-color: #fff;
border: solid #e7e7e7;
border-width: 0 1px 1px 0;
height: 200px;
width: 200px;
opacity: 1;
z-index: 10002;
text-align: center;
}
.__huabanImagePreview .__huabanVideoIcon {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url(http://huaban.com/img/media_video.png) center center no-repeat;
}
.__huabanImagePreview .__huabanImg {
border: none;
height: 200px;
width: 200px;
opacity: 1;
padding: 0;
}
.__huabanImagePreview .__huabanImg a {
margin: 0;
padding: 0;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
display: block;
text-align: center;
z-index: 1;
}
.__huabanImagePreview .__huabanImg a:hover {
background-color: #fcf9f9;
border: none;
}
.__huabanImagePreview .__huabanImg .ImageToPin {
max-height: 200px;
max-width: 200px;
width: auto !important;
height: auto !important;
}
.__huabanImagePreview img.__huaban_PinIt {
border: none;
position: absolute;
top: 82px;
left: 42px;
display: none;
padding: 0;
background-color: transparent;
z-index: 100;
}
.__huabanImagePreview img.__huaban_vidind {
border: none;
position: absolute;
top: 75px;
left: 75px;
padding: 0;
background-color: transparent;
z-index: 99;
}
.__huabanDimensions {
color: #000;
position: relative;
margin-top: 180px;
text-align: center;
font-size: 10px;
z-index: 10003;
display: inline-block;
background: white;
border-radius: 4px;
padding: 0 2px;
}
#__huaban_Button {
display: block;
position: absolute;
z-index: 999999999;
color: #211922;
background: #fff;
text-shadow: 0 1px #eaeaea;
border-radius: 5px;
box-shadow: 0 0 2px #555;
font: 12px/1 arial;
text-align: center;
padding: 5px 8px;
cursor: pointer;
}
#__huaban_Button:hover {
background-image: -webkit-linear-gradient(top, #fefeff, #efefef);
background-image: -moz-linear-gradient(top, #fefeff, #efefef);
}
.__huaban_Button_share {
background: url(http://huaban.com/img/sharebutton.png) no-repeat !important;
text-indent: -9999px;
width: 70px;
}
</style>
{/literal}
</body>
</html>

233
view/templates/index/order_list.html

@ -0,0 +1,233 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="zh_CN"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="zh_CN"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="zh_CN"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js" lang="zh-CN">
<!--<![endif]-->
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- <script type="text/javascript" src="/js/echarts.min.js"></script> -->
<!-- <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script> -->
<script type="text/javascript" src="/js/jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="/js/jquery.form.js"></script>
<script src="/js/lightBox.js" type="text/javascript"></script>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{if $smarty.get.refund_status == $smarty.const.REFUND_STATUS_AFTER_SALE_ING}售后监控{/if}{if $smarty.get.order_status == $smarty.const.ORDER_STATUS_WAIT_DELIVER_GOODS}发货提醒{/if}</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="/css/global.css?v={$smarty.const.CSS_JS_VERSION}" media="screen" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/bootstrap-datetimepicker.min.css">
{literal}
<!--[if lt IE 9]>
<script type="text/javascript">
// iepp v2.1pre @jon_neal & @aFarkas github.com/aFarkas/iepp
// html5shiv @rem remysharp.com/html5-enabling-script
// Dual licensed under the MIT or GPL Version 2 licenses
/*@cc_on(function(a,b){function r(a){var b=-1;while(++b<f)a.createElement(e[b])}if(!window.attachEvent||!b.createStyleSheet||!function(){var a=document.createElement("div");return a.innerHTML="<elem></elem>",a.childNodes.length!==1}())return;a.iepp=a.iepp||{};var c=a.iepp,d=c.html5elements||"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|subline|summary|time|video",e=d.split("|"),f=e.length,g=new RegExp("(^|\\s)("+d+")","gi"),h=new RegExp("<(/*)("+d+")","gi"),i=/^\s*[\{\}]\s*$/,j=new RegExp("(^|[^\\n]*?\\s)("+d+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),k=b.createDocumentFragment(),l=b.documentElement,m=b.getElementsByTagName("script")[0].parentNode,n=b.createElement("body"),o=b.createElement("style"),p=/print|all/,q;c.getCSS=function(a,b){try{if(a+""===undefined)return""}catch(d){return""}var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,p.test(b)&&h.push(c.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},c.parseCSS=function(a){var b=[],c;while((c=j.exec(a))!=null)b.push(((i.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(g,"$1.iepp-$2")+c[4]);return b.join("\n")},c.writeHTML=function(){var a=-1;q=q||b.body;while(++a<f){var c=b.getElementsByTagName(e[a]),d=c.length,g=-1;while(++g<d)c[g].className.indexOf("iepp-")<0&&(c[g].className+=" iepp-"+e[a])}k.appendChild(q),l.appendChild(n),n.className=q.className,n.id=q.id,n.innerHTML=q.innerHTML.replace(h,"<$1font")},c._beforePrint=function(){if(c.disablePP)return;o.styleSheet.cssText=c.parseCSS(c.getCSS(b.styleSheets,"all")),c.writeHTML()},c.restoreHTML=function(){if(c.disablePP)return;n.swapNode(q)},c._afterPrint=function(){c.restoreHTML(),o.styleSheet.cssText=""},r(b),r(k);if(c.disablePP)return;m.insertBefore(o,m.firstChild),o.media="print",o.className="iepp-printshim",a.attachEvent("onbeforeprint",c._beforePrint),a.attachEvent("onafterprint",c._afterPrint)})(this,document)@*/
</script>
<![endif]-->
{/literal}
</head>
<body>
<!-- Topbar
================================================== -->
{include file="include/header.html"}
<!-- Page
================================================== -->
<div id="page">
<div class="container">
<aside id="sidebar" class="sidebar">
<div id="filter" class="filter module">
</div>
<div id="search" class="domain-search module">
{include file="include/leftmenu.html"}
</div>
</aside>
<section id="main">
<div id="main-content">
<div class="record-control">
<div class="header">
<span style="font-size:14px;padding:5px">{if $smarty.get.refund_status == $smarty.const.REFUND_STATUS_AFTER_SALE_ING}退款/投诉{/if}{if $smarty.get.order_status == $smarty.const.ORDER_STATUS_WAIT_DELIVER_GOODS}发货提醒{/if}</span>
<div class="flash-message"></div>
<ul class="tabs">
</ul>
</div>
</div>
{if $smarty.get.order_status == $smarty.const.ORDER_STATUS_WAIT_DELIVER_GOODS}
<div class="entry">
<div class="modal-body">
<table class="table table-striped table-bordered table-condensed">
<tbody class='js-bundle-record-list'>
<tr>
<td>
<!-- &nbsp;选择店铺:
<select name="shop_tb_pay_id" id="shop_tb_pay_id" style="width: 192px;">
<option value="0">请选择要查询的店铺</option>
{foreach from=$tb_pay_methods item=item key=key}
<option value="{$key}" {if $smarty.get.shopid == $key}selected{/if}>{$item.appid}</option>
{/foreach}
</select>
&nbsp;状态:
<select name="status" id="status" style="width: 192px;">
<option value="0">请选择状态</option>
{foreach from=$tb_status_desc item=status_desc key=status}
<option value="{$status}" {if $smarty.get.status == $status}selected{/if}>{$status_desc}</option>
{/foreach}
</select>
&nbsp;时间:
<input class="span2" style='width:80px' type="text" id="start_date" name="stime" value="{$smarty.get.start_date}" />
-
<input class="span2" style='width:80px' type="text" id="end_date" name="etime" value="{$smarty.get.end_date}"/>
<button class="button primary next" onclick="search()">搜索</button>
-->
<button onclick="exportPddOrders();" class="button primary next" style="background-color: red;background-image: -webkit-linear-gradient(top, red, red);border: 1px solid red;float:right">导出拼多多批量发货列表</button>
</td>
</tr>
</td>
</tr>
</tbody>
</table>
</div>
</div>
{/if}
<div class="modal-body">
<!-- <div id="container" style="height: 400px"></div> -->
<div class="modal-body">
<!-- <div id="container" style="height: 400px"></div> -->
<div class="modal-body">
{if count($page_list) > 1}
{if isset($prev_page)}
<a href="{$prev_page}">上一页</a>
{/if}
{foreach from=$page_list key=key item=item}
<a href="{$item.url}">{if $key+1 eq $curpage}<b>{/if}{$item.page}{if $key+1 eq $curpage}</b>{/if}</a>
{/foreach}
{if isset($post_page)}
<a href="{$post_page}">下一页</a>
{/if}
{/if}
</div>
<div class="entry">
<div class="record-control">
</div>
<div class="modal-body">
<table class="table table-bordered table-condensed">
<thead>
<tr>
<th>商品名称</th>
<th>订单号</th>
<th>收入</th>
<th>销售时间</th>
{if $smarty.get.refund_status == $smarty.const.REFUND_STATUS_AFTER_SALE_ING}
<th>操作</th>
{/if}
</tr>
</thead>
<tbody class='js-bundle-record-list'>
{foreach from=$list key=key item=item}
<tr>
<td class='td-valign'><a href="https://mobile.yangkeduo.com/goods.html?goods_id={$item.goods_id}&sku_id={$item.sku_id}" target="_blank">{$goodsid2skuid2info[$item.goods_id][$item.sku_id].goods_name}【{$goodsid2skuid2info[$item.goods_id][$item.sku_id].sku_name}】</a></td>
<td class='td-valign'>{$item.order_sn}</td>
<td class='td-valign'>{$item.pay_amount}</td>
<td class='td-valign'>{$item.pay_time}</td>
{if $smarty.get.refund_status == $smarty.const.REFUND_STATUS_AFTER_SALE_ING}
<td class='td-valign'><a href="https://mms.pinduoduo.com/aftersales/aftersale_list" target="_blank">立即处理</a></td>
{/if}
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div></section><!--end of main section-->
</div><!--end of container-->
</div><!--end of #page-->
<!-- footer
================================================== -->
<iframe width=0 height=0 name="mframe" id="mframe"></iframe>
<script src="/js/bootstrap-datetimepicker.min.js"></script>
<script src="/js/bootstrap-datetimepicker.zh-CN.js"></script>
<script src="/js/echarts.min.js"></script>
{literal}
<script type="text/javascript">
function exportPddOrders() {
location.href = '/index/export_wait_deliver_goods_tids';
}
</script>
{/literal}
{include file="include/footer.html"}
{literal}
<style>
#feedback {
position:fixed;
right:20px;
top:92%;
height:30px;
width:100px;
color:#333;
font-size:12px;
line-height: 20px;
background-color:#fff;
border:1px solid #e2e2e2;
text-align: center;
}
#feedback:hover {
background-color:#e2e2e2;
}
#feedback a{
line-height:30px;
text-decoration:none;
color:#333;
}
</style>
{/literal}
<!-- UserAgent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0 -->
{literal}
<!--[if lt IE 7]>
<![endif]-->
<!--
<script type="text/javascript">
/*Load jQuery if not already loaded*/ if(typeof jQuery == 'undefined'){ document.write("<script type=\"text/javascript\" src=\"" + ('https:' == document.location.protocol ? 'https://' : 'http://')+ "ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></"+"script>"); var __noconflict = true; }
var IE6UPDATE_OPTIONS = {
url: "http://blog.dnspod.cn/2010/04/ie6-must-die/",
message: "DNSPod 新版已经完全取消对微软 Internet Explorer 6.0 浏览器的支持,IE6 用户无法正常使用 DNSPod。请升级您的IE6浏览器至IE8,或者升级至Chrome、火狐、Safari等其他浏览器。",
icons_path: "https://statics.dnspod.cn/zhanjiang/images/ie6update/"
}
</script>
<script type="text/javascript" src="https://statics.dnspod.cn/zhanjiang/javascripts/ie6update.v2.js"></script>
-->
<!--[if lt IE 7]>
<![endif]-->
<style id="__huaban_Style">
#__huaban_Container {font-family: 'helvetica neue', arial, sans-serif; position: absolute; padding-top: 37px; z-index: 100000002; top: 0; left: 0; background-color: transparent; opacity: 1;}#__huaban_Overlay {position: fixed; z-index: 9999; top: 0; right: 0; bottom: 0; left: 0; background-color: #f2f2f2; opacity: .95;}#__huaban_Control {position:relative; z-index: 100000; float: left; background-color: #fcf9f9; border: solid #ccc; border-width: 0 1px 1px 0; height: 200px; width: 200px; opacity: 1;}#__huaban_Control img {position: relative; padding: 0; display: block; margin: 82px auto 0; -ms-interpolation-mode: bicubic;}#__huaban_Control a {position: fixed; z-index: 10001; right: 0; top: 0; left: 0; height: 24px; padding: 12px 0 0; text-align: center; font-size: 14px; line-height: 1em; text-shadow: 0 1px #fff; color: #211922; font-weight: bold; text-decoration: none; background: #fff url(http://huaban.com/img/fullGradient07Normal.png) 0 0 repeat-x; border-bottom: 1px solid #ccc; -mox-box-shadow: 0 0 2px #d7d7d7; -webkit-box-shadow: 0 0 2px #d7d7d7;}#__huaban_Control a:hover {color: #fff; text-decoration: none; background-color: #1389e5; border-color: #1389e5; text-shadow: 0 -1px #46A0E6;}#__huaban_Control a:active {height: 23px; padding-top: 13px; background-color: #211922; border-color: #211922; background-image: url(http://huaban.com/img/fullGradient07Inverted.png); text-shadow: 0 -1px #211922;}.__huabanImagePreview {position: relative; padding: 0; margin: 0; float: left; background-color: #fff; border: solid #e7e7e7; border-width: 0 1px 1px 0; height: 200px; width: 200px; opacity: 1; z-index: 10002; text-align: center;}.__huabanImagePreview .__huabanVideoIcon {position:absolute;display:block;top:0;left:0;width:100%;height:100%;background:url(http://huaban.com/img/media_video.png) center center no-repeat;}.__huabanImagePreview .__huabanImg {border: none; height: 200px; width: 200px; opacity: 1; padding: 0;}.__huabanImagePreview .__huabanImg a {margin: 0; padding: 0; position: absolute; top: 0; bottom: 0; right: 0; left: 0; display: block; text-align: center; z-index: 1;}.__huabanImagePreview .__huabanImg a:hover {background-color: #fcf9f9; border: none;}.__huabanImagePreview .__huabanImg .ImageToPin {max-height: 200px; max-width: 200px; width: auto !important; height: auto !important;}.__huabanImagePreview img.__huaban_PinIt {border: none; position: absolute; top: 82px; left: 42px; display: none; padding: 0; background-color: transparent; z-index: 100;}.__huabanImagePreview img.__huaban_vidind {border: none; position: absolute; top: 75px; left: 75px; padding: 0; background-color: transparent; z-index: 99;}.__huabanDimensions { color: #000; position: relative; margin-top: 180px; text-align: center; font-size: 10px; z-index:10003; display: inline-block; background: white; border-radius: 4px; padding: 0 2px;}#__huaban_Button { display: block; position: absolute; z-index: 999999999; color: #211922; background: #fff; text-shadow: 0 1px #eaeaea; border-radius: 5px; box-shadow: 0 0 2px #555; font: 12px/1 arial; text-align: center; padding: 5px 8px; cursor: pointer; }#__huaban_Button:hover { background-image: -webkit-linear-gradient(top, #fefeff, #efefef); background-image: -moz-linear-gradient(top, #fefeff, #efefef); }.__huaban_Button_share {background: url(http://huaban.com/img/sharebutton.png) no-repeat !important; text-indent: -9999px; width: 70px;}
</style>
{/literal}
</body>
</html>
Loading…
Cancel
Save