admin/app/shop/view/order/pickuporder.html

472 lines
15 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="base"/}
{block name="resources"}
<link rel="stylesheet" href="SHOP_CSS/order_list.css"/>
<style>
.table-tab .layui-tab-content {padding-top: 0;}
.line-hiding{ cursor : default; -webkit-line-clamp: 2 !important;}
.layui-layout-admin.admin-style-2 .layui-form-item .layui-input-inline{background-color: #fff;}
.layui-layout-admin.admin-style-2 .layui-table-cell{height: 32px;line-height: 32px;}
</style>
{/block}
{block name="main"}
<div class="screen layui-collapse" lay-filter="selection_panel">
<div class="layui-colla-item">
<form class="layui-colla-content layui-form layui-show" lay-filter="order_list">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">搜索方式</label>
<div class="layui-input-inline">
<select name="order_label" >
{foreach $order_label_list as $k => $label_val}
<option value="{$k}">{$label_val}</option>
{/foreach}
</select>
</div>
<div class="layui-input-inline">
<input type="text" name="search" autocomplete="off" class="layui-input" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">营销类型</label>
<div class="layui-input-inline">
<select name="promotion_type" lay-filter="promotion_type">
<option value="">全部</option>
{foreach $promotion_type as $promotion_type_k => $promotion_type_val}
<option value="{$promotion_type_val.type}">{$promotion_type_val.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">订单来源</label>
<div class="layui-input-inline">
<select name="order_from">
<option value="">全部</option>
{foreach $order_from_list as $order_from_k => $order_from_v}
<option value="{$order_from_k}">{$order_from_v['name']}</option>
{/foreach}
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">下单时间</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="start_time" placeholder="开始时间" id="start_time" readonly>
<i class=" iconrili iconfont calendar"></i>
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="end_time" placeholder="结束时间" id="end_time" readonly>
<i class=" iconrili iconfont calendar"></i>
</div>
<button class="layui-btn layui-btn-primary date-picker-btn date-picker-btn-seven" onclick="datePick(7, this);return false;">近7天</button>
<button class="layui-btn layui-btn-primary date-picker-btn date-picker-btn-thirty" onclick="datePick(30, this);return false;">近30天</button>
</div>
<div class="layui-inline">
<label class="layui-form-label">付款方式</label>
<div class="layui-input-inline">
<select name="pay_type" >
<option value="">全部</option>
{foreach pay_type_list as $pay_type_k => $pay_type_v}
<option value="{$pay_type_k}">{$pay_type_v}</option>
{/foreach}
</select>
</div>
</div>
</div>
<div class="form-row">
<button class="layui-btn" lay-submit id="btn_search"lay-filter="btn_search">筛选</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="batch_export_order_goods" >导出订单商品</button>
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="batch_export_order" >导出订单</button>
<a class="layui-btn layui-btn-primary" href="{:addon_url('shop/order/export')}" target="_blank">查看已生成报表</a>
</div>
<input type="hidden" name="status"/>
<input type="hidden" name="page"/>
</form>
</div>
</div>
<div class="layui-tab table-tab" lay-filter="order_tab">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="">全部订单</li>
</ul>
<div class="layui-tab-content">
<!-- 列表 -->
<div id="order_list"></div>
</div>
</div>
<div id="order_page"></div>
<div id="order_operation"></div>
{/block}
{block name="script"}
{include file="order/order_common_action" /}
<!-- 修改订单收货地址 -->
{include file="order/order_action" /}
<!-- 发货 -->
{include file="order/order_delivery_action" /}
<!-- 外卖发货 -->
{include file="localorder/local_order_delivery_action" /}
<!-- 主动退款 -->
{include file="order/shop_active_refund" /}
<script src="SHOP_JS/pickuporder.js"></script>
<script>
var laypage,element, form, hash_url;
var is_refresh = false;
var laypage_util;
var order_type_status_json = {:json_encode($order_type_list)};
/**
*通过hash获取页数
*/
function getHashPage(){
var page = 1;
var hash = location.hash;
var startTime = '';
var endTime = '';
var hash_arr = hash.split("&");
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
if(item_arr[0].indexOf("page") != "-1"){
page = item_arr[1];
}
if (item_arr[0].indexOf("start_time") != "-1") {
startTime = ns.date_to_time(item_arr[1].split("%")[0]);
}
if (item_arr[0].indexOf("end_time") != "-1") {
endTime = ns.date_to_time(item_arr[1].split("%")[0]);
}
}
});
var _time = (endTime - startTime) / (24 * 60 * 60);
if (_time == 6) {
$(".date-picker-btn-seven").addClass("selected");
$(".date-picker-btn-thirty").removeClass("selected");
} else if (_time == 29) {
$(".date-picker-btn-thirty").addClass("selected");
$(".date-picker-btn-seven").removeClass("selected");
} else {
$(".date-picker-btn-seven").removeClass("selected");
$(".date-picker-btn-thirty").removeClass("selected");
}
return page;
}
//从hash中获取数据
function getHashData(){
var hash = ns.urlReplace(location.hash);
var data= [];
var hash_arr = hash.split("&");
var form_json = {
"end_time" : "",
"order_from" : "",
"order_label" : $("select[name=order_label]").val(),
"order_name" : "",
"order_status" : "",
"promotion_type" : "",
"pay_type" : "",
"search" : "",
"start_time" : "",
"order_type" : 'all',
'page_size':'',
"page" : ""
};
if(hash_arr.length > 0){
// page = hash_arr[0].replace('#!page=', '');
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
$.each(form_json,function(key, form_val){
if(item_arr[0].indexOf(key) != "-1"){
form_json[key] = item_arr[1];
}
})
}
})
}
resetOrderStatus(2, 2);
form.val("order_list", form_json);
return form_json;
}
/**
* 获取哈希值order_type
*/
function getHashOrderType(){
var hash = ns.urlReplace(location.hash);
var hash_arr = hash.split("&");
var order_type = "all";
if(hash_arr.length > 0){
// page = hash_arr[0].replace('#!page=', '');
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
if(item_arr[0].indexOf("order_type") != "-1") {
order_type = item_arr[1];
}
}
})
}
return order_type;
}
layui.use(['laypage','laydate','form', 'element'], function(){
form = layui.form;
laypage = layui.laypage;
element = layui.element;
var laydate = layui.laydate;
form.render();
//渲染时间
laydate.render({
elem: '#start_time'
,type: 'datetime'
,change: function(value, date, endDate){
$(".date-picker-btn").removeClass("selected");
}
});
laydate.render({
elem: '#end_time'
,type: 'datetime'
,change: function(value, date, endDate){
$(".date-picker-btn").removeClass("selected");
}
});
//监听筛选事件
form.on('submit(btn_search)', function(data){
is_refresh = true;
data.field.page = 1;
if (!data.field.order_type){
data.field.order_type = 'all'
}
resetOrderStatus(data.field.order_type, 2);
setHashOrderList(data.field);
setOrderStatusTab(data.field.order_status);
return false;
});
//批量导出(订单项)
form.on('submit(batch_export_order_goods)', function(data){
// location.href = ns.url("shop/order/exportOrderGoods",data.field);
$.ajax({
type: 'post',
dataType: 'json',
url: ns.url("shop/order/exportpickupordergoods"),
data: data.field,
success: function (res) {
}
})
window.open(ns.url("shop/order/export",{}))
// location.href = ns.url("shop/order/orderexportlist",{});
return false;
});
//批量导出(订单)
form.on('submit(batch_export_order)', function(data){
// location.href = ns.url("shop/order/exportOrder",data.field);
$.ajax({
type: 'post',
dataType: 'json',
url: ns.url("shop/order/exportpickuporder"),
data: data.field,
success: function (res) {
}
})
window.open(ns.url("shop/order/export",{}))
// location.href = ns.url("shop/order/orderexportlist",{});
return false;
});
//订单类型
form.on('select(order_type)', function(data){
resetOrderStatus(data.value, 1);
return false;
});
//监听Tab切换以改变地址hash值
element.on('tab(order_tab)', function(){
var status = this.getAttribute('lay-id');
form.val("order_list", {"order_status":status});
var hash_data = getHashList();
hash_data.order_status = status;
hash_data.page = 1;
setHashOrderList(hash_data);
});
getHashData();
getOrderList();//筛选
});
function setOrderStatusTab(order_status){
$(".layui-tab-title li").removeClass("layui-this");
$(".layui-tab-title li").each(function(){
var status = $(this).attr("lay-id");
if(status == order_status){
$(this).addClass("layui-this")
}
});
}
//重置状态tab 选项卡
function resetOrderStatus(order_type, is_tab){
var hash_order_type = getHashOrderType();
if(hash_order_type != order_type || is_refresh == false){
if(is_tab != 1 || is_refresh == false) {
$(".layui-tab-title li").not(':first').remove();
$(".layui-tab-title li").find(":first").addClass("layui-this");
}
if(is_tab != 2 || is_refresh == false){
$("select[name=order_status] option").not(':first').remove();
}
var status_item = order_type_status_json[order_type]["status"];
$.each(status_item,function(index, itemobj){
if(is_tab != 1 || is_refresh == false) {
$(".layui-tab-title").append('<li lay-id="' + index + '">' + itemobj + '</li>');
}
if(is_tab != 2 || is_refresh == false) {
$("select[name=order_status]").append('<option value="' + index + '">' + itemobj + '</option>');
}
});
form.render('select');
}
}
//哈希值 订单数据
function setHashOrderList(data){
var hash = "";
$.each(data,function(index, itemobj){
if(itemobj != "" && itemobj != "all"){
if(hash == ""){
hash += "#!"+index +"="+itemobj;
}else{
hash += "&"+index +"="+itemobj;
}
}
});
// window.location.href = hash;
hash_url = hash;
location.hash = hash;
getOrderList();
}
function getHashList(){
var hash = ns.urlReplace(location.hash);
var data= [];
var hash_arr = hash.split("&");
var form_json = {
"end_time" : "",
"order_from" : "",
"order_label" : $("select[name=order_label]").val(),
"order_name" : "",
"order_status" : "",
"promotion_type" : "",
"pay_type" : "",
"search" : "",
"start_time" : "",
"order_type" : 'all',
'page_size':'',
"page" : ""
};
if(hash_arr.length > 0){
// page = hash_arr[0].replace('#!page=', '');
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
$.each(form_json,function(key, form_val){
if(item_arr[0].indexOf(key) != "-1"){
form_json[key] = item_arr[1];
}
})
}
})
}
return form_json;
}
var order = new Order();
function getOrderList(){
var url = ns.url("shop/order/pickuporder", ns.urlReplace(location.hash.replace('#!', '')));
$.ajax({
type : 'get',
dataType: 'json',
url :url,
success : function(res){
if(res.code == 0){
setOrderInfo(res.data.list);
order.setData(res.data);
$("#order_list").html(order.fetch());
//执行一个laypage实例
laypage_util = new Page({
elem: 'order_page',
count: res.data.count,
curr: getHashPage(),
limit:getHashData()['page_size'] || 10,
callback: function(obj){
var hash_data = getHashData();
hash_data.page = obj.curr;
hash_data.page_size = obj.limit;
setHashOrderList(hash_data);
}
});
}else{
layer.msg(res.message);
}
}
});
}
/**
* 七天时间
*/
function datePick(date_num,event_obj){
$(".date-picker-btn").removeClass("selected");
$(event_obj).addClass('selected');
// alert(new Date().format("yyyy-MM-dd hh:mm"));
var now_date = new Date();
Date.prototype.Format = function (fmt,date_num) { //author: meizz
this.setDate(this.getDate()-date_num);
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
// var now_time = new Date().Format("yyyy-MM-dd HH:mm:ss",0);//当前日期
var now_time = new Date().Format("yyyy-MM-dd 23:59:59",0);//当前日期
var before_time = new Date().Format("yyyy-MM-dd 00:00:00",date_num-1);//前几天日期
$("input[name=start_time]").val(before_time,0);
$("input[name=end_time]").val(now_time,date_num-1);
}
</script>
{/block}