jh-admin/app/shop/view/delivery/lists.html

528 lines
19 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/delivery_lists.css"/>
<style>
.table-tab .layui-tab-content {padding-top: 0;}
.layui-layer-content {line-height: 30px;}
.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>
<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" onclick="datePick(7, this);return false;">近7天</button>
<button class="layui-btn layui-btn-primary date-picker-btn" onclick="datePick(30, this);return false;">近30天</button>
</div>
</div>
<div class="layui-form-item">
<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="form-row">
<button class="layui-btn" id="btn_search" lay-submit lay-filter="btn_search">筛选</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
</div>
</div>
<div class="layui-tab table-tab" lay-filter="order_tab">
<div class="layui-tab-content">
<div class="order-operation" style="display: none">
<div class="layui-form order-operation-btn all-selected-checkbox">
<div class="order-operation-all-btn">
<input type="checkbox" name="" lay-skin="primary" lay-filter="allCheckbox">
<input type="hidden" name="allOrderId">
</div>
<div class="btn-box">
<span class="btn-deliver">批量发货</span>
<span class="btn-dispatch-bill">打印发货单</span>
{if addon_is_exit('electronicsheet',$user_info.site_id) == 1}
<span class="btn-express-sheet">打印电子面单</span>
{/if}
</div>
</div>
</div>
<!-- 列表 -->
<div id="delivery_list"></div>
</div>
</div>
<div class="order-operation" style="display: none">
<div class="layui-form order-operation-btn all-selected-checkbox">
<div class="order-operation-all-btn">
<input type="checkbox" name="" lay-skin="primary" lay-filter="allCheckbox">
<input type="hidden" name="allOrderId">
</div>
<div class="btn-box">
<span class="btn-deliver">批量发货</span>
<span class="btn-dispatch-bill">打印发货单</span>
{if addon_is_exit('electronicsheet',$user_info.site_id) == 1}
<span class="btn-express-sheet">打印电子面单</span>
{/if}
</div>
</div>
<div id="delivery_page"></div>
</div>
<div id="order_operation"></div>
{/block}
{block name="script"}
<script src="SHOP_JS/deliver_lists.js"></script>
<script src="SHOP_JS/lodop_funcs.js"></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="electronicsheet/print_html" /}
<script>
var laypage,element, form, hash_url;
var is_refresh = false;
var order_type_status_json = [];
var orderDataAll = [];
/**
*通过hash获取页数
*/
function getHashPage(){
var page = 1;
var hash = location.hash;
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];
}
}
});
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(form_json.order_type, 2);
form.val("order_list", form_json);
setOrderStatusTab(form_json.order_status);
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;
resetOrderStatus(data.field.order_type, 2);
setHashOrderList(data.field);
return false;
});
//批量导出
form.on('submit(batch_export)', function(data){
data.field.order_type = 1;
data.field.order_status = 1;
location.href = ns.url("shop/order/exportOrderGoods",data.field);
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("delivery_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 = [];
$.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 laypage_util;
var delivery = new Delivery();
function getOrderList(){
var url = ns.url("shop/delivery/lists", ns.urlReplace(location.hash.replace('#!', '')));
$.ajax({
type : 'get',
dataType: 'json',
url :url,
success : function(res){
if(res.code == 0){
setOrderInfo(res.data.list);
delivery.setData(res.data);
$("#delivery_list").html(delivery.fetch());
form.render();
$(".order-operation").show();
//批量选择
form.on('checkbox(allCheckbox)', function(data){
$(".sub-selected-checkbox input").prop("checked",data.elem.checked);
$(".all-selected-checkbox input").prop("checked",data.elem.checked);
form.render("checkbox");
getOrderId();
});
//全选选择
form.on('checkbox(subCheckbox)', function(data){
var subLen = $(".sub-selected-checkbox input:checked").length;
$(".all-selected-checkbox input").prop("checked",false);
if (subLen == 10){
$(".all-selected-checkbox input").prop("checked",true);
}
form.render("checkbox");
getOrderId();
});
//获取选中的id
function getOrderId(){
var subLen = $(".sub-selected-checkbox input:checked").length,
lists = $(".sub-selected-checkbox input:checked");
orderDataAll = [];
lists.each(function(index,item){
orderDataAll.push(JSON.parse($(item).parents(".sub-selected-checkbox").attr("data-json")));
});
}
laypage_util = new Page({
elem: 'delivery_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);
}
//批量发货
$("body").on("click",".order-operation .btn-deliver", function () {
var subLen = $(".sub-selected-checkbox input:checked").length;
if (subLen <=0 ) {
layer.msg("请选择订单");
return false;
}
orderBatchDelivery(orderDataAll);
});
/**
* 批量打印发货单
*/
var LODOP; //声明为全局变量
function PrintOneURL(url){
LODOP=getLodop();
if(LODOP) {
LODOP.PRINT_INIT("发货单打印");
LODOP.ADD_PRINT_TBURL(5, 10, "770", "95%", url);
LODOP.SET_PRINT_STYLEA(0, "HOrient", 3);
LODOP.SET_PRINT_STYLEA(0, "VOrient", 3);
LODOP.ADD_PRINT_TEXT(590, 680, 130, 22, "页号:第#页/共&页");
LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
LODOP.SET_PRINT_STYLEA(0, "Horient", 1);
LODOP.SET_PRINT_STYLEA(0, "Vorient", 1);
LODOP.SET_SHOW_MODE("MESSAGE_GETING_URL", ""); //该语句隐藏进度条或修改提示信息
// LODOP.SET_SHOW_MODE("MESSAGE_PARSING_URL","");//该语句隐藏进度条或修改提示信息
}
}
function dispatchBill(url) {
PrintOneURL(url);
// LODOP.PREVIEW(); //预览
LODOP.PRINT(); //直接打印
}
$("body").on("click",".order-operation .btn-dispatch-bill", function () {
var subLen = $(".sub-selected-checkbox input:checked").length;
if (subLen <=0 ) {
layer.msg("请选择订单");
return false;
}
for (var i = 0; i < orderDataAll.length; i++){
var url = ns.url("shop/printer/batchprintorder",{order_id: orderDataAll[i].order_id});
dispatchBill(url)
}
});
$("body").on("click",".order-operation .btn-express-sheet", function () {
var subLen = $(".sub-selected-checkbox input:checked").length;
if (subLen <=0 ) {
layer.msg("请选择订单");
return false;
}
var order_id_list = [];
for (var i = 0; i < orderDataAll.length; i++){
order_id_list.push(orderDataAll[i].order_id);
}
printElectronicsheetAction(order_id_list);
});
</script>
{/block}