783 lines
32 KiB
PHP
783 lines
32 KiB
PHP
@extends('layouts.base')
|
||
|
||
@section('content')
|
||
@section('title', trans('单个打印'))
|
||
<style>
|
||
.mask {
|
||
display: none;
|
||
width: 100%;
|
||
height: 100%;
|
||
z-index: 1000;
|
||
position: fixed;
|
||
background-color: rgba(0, 0, 0, 0.6);
|
||
top: 0;
|
||
left: 0;
|
||
}
|
||
|
||
.mask .addDataNode {
|
||
display: none;
|
||
position: relative;
|
||
left: 50%;
|
||
top: 50%;
|
||
color: white;
|
||
}
|
||
</style>
|
||
<div class="rightlist">
|
||
<div class="mask">
|
||
<div class="addDataNode">正在推送打印任务...</div>
|
||
{{-- <div class="addDataNode" onclick="cancel()">取消</div>--}}
|
||
</div>
|
||
<div class="panel panel-default">
|
||
<div class="panel-heading">查找订单</div>
|
||
<div style="padding: 10px; padding-bottom: 0px;" class="panel-body">
|
||
<div class="alert alert-info">数据量大可能会引起卡顿,请在搜索前根据需要选择您的搜索条件。</div>
|
||
<form id="form1" role="form" class="form-horizontal" method="post" action="">
|
||
<div class="form-group">
|
||
<div class="col-sm-8 col-lg-12 col-xs-12">
|
||
<div class="input-group">
|
||
<div class="input-group-addon">订单号</div>
|
||
<input type="text" placeholder="订单号" value="" name="search[order_sn]" class="form-control">
|
||
<div class="input-group-addon">快递单号</div>
|
||
<input type="text" placeholder="快递单号" value="" name="search[express_sn]" class="form-control">
|
||
<div class="input-group-addon">用户信息</div>
|
||
<input type="text" placeholder="用户手机号/姓名/昵称" value="" name="search[member]" class="form-control">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-sm-12 col-lg-12 col-xs-12">
|
||
<div class="input-group">
|
||
<div class="input-group-addon">订单状态</div>
|
||
<select class="form-control" name="search[order_status]">
|
||
<option value="">全部</option>
|
||
<option value="0">待付款</option>
|
||
<option value="1" selected="">待发货</option>
|
||
<option value="2">已发货</option>
|
||
<option value="3">已完成</option>
|
||
<option value="-1">已关闭</option>
|
||
</select>
|
||
<div class="input-group-addon">快递单打印状态</div>
|
||
<select class="form-control" name="search[express_print_status]">
|
||
<option value="">全部</option>
|
||
<option value="no">未打印</option>
|
||
{{--<option value="1">部分打印</option>--}}
|
||
<option value="end">打印完成</option>
|
||
</select>
|
||
<div class="input-group-addon">发货单打印状态</div>
|
||
<select class="form-control" name="search[send_print_status]">
|
||
<option selected="" value="">全部</option>
|
||
<option value="no" >未打印</option>
|
||
{{--<option value="1">部分打印</option>--}}
|
||
<option value="end">打印完成</option>
|
||
</select>
|
||
<div class="input-group-addon">电子面单打印状态</div>
|
||
<select class="form-control" name="search[panel_print_status]">
|
||
<option selected="" value="">全部</option>
|
||
<option value="no" >未打印</option>
|
||
{{--<option value="1">部分打印</option>--}}
|
||
<option value="end">打印完成</option>
|
||
</select>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-sm-8 col-lg-12 col-xs-12">
|
||
<div class="input-group">
|
||
<div class="input-group-addon">下单时间</div>
|
||
<div class="col-sm-3">
|
||
<label class="radio-inline">
|
||
<input type="radio" name="search[create_order_time]" value="0" checked="checked">不搜索
|
||
</label>
|
||
<label class="radio-inline">
|
||
<input type="radio" name="search[create_order_time]" value="1">搜索
|
||
</label>
|
||
</div>
|
||
<div style="height: 34px; float: left;">
|
||
<script type="text/javascript">
|
||
require(["daterangepicker"], function($) {
|
||
$(function() {
|
||
$(".daterange.daterange-time").each(function() {
|
||
var elm = this;
|
||
$(this).daterangepicker({
|
||
startDate: $(elm).prev().prev().val(),
|
||
endDate: $(elm).prev().val(),
|
||
format: "YYYY-MM-DD HH:mm",
|
||
timePicker: true,
|
||
timePicker12Hour: false,
|
||
timePickerIncrement: 1,
|
||
minuteStep: 1
|
||
}, function(start, end) {
|
||
$(elm).find(".date-title").html(start.toDateTimeStr() + " 至 " + end.toDateTimeStr());
|
||
$(elm).prev().prev().val(start.toDateTimeStr());
|
||
$(elm).prev().val(end.toDateTimeStr());
|
||
});
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
|
||
<input type="hidden" value="{!! date('Y-m-d H:m', strtotime('-1 month')) !!}" name="time[start]">
|
||
<input type="hidden" value="{!! date('Y-m-d H:m') !!}" name="time[end]">
|
||
<button type="button" class="btn btn-default daterange daterange-time" data-original-title="" title=""><span class="date-title"><?php echo date('Y-m-d H:i:s', strtotime("-1 month"))?> 至 <?php echo date('Y-m-d H:i:s',time())?></span> <i class="fa fa-calendar"></i></button>
|
||
</div>
|
||
<div style="height: 34px; width: 150px; float: left; padding-left: 5px;">
|
||
<button id="search-btn" onclick="search()" class="btn btn-primary" type="button" data-original-title="" title=""><i class="fa fa-search"></i> 搜索</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<div id="orderresult" style="height: auto; overflow: hidden;"></div>
|
||
</div>
|
||
|
||
|
||
<div class="modal fade" id="errorModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||
<div class="modal-dialog">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||
<h4 class="modal-title" id="myModalLabel">未打印订单</h4>
|
||
</div>
|
||
<div class="modal-body">
|
||
|
||
<table class="table table-bordered">
|
||
<thead>
|
||
<tr>
|
||
<th>订单编号</th>
|
||
<th>错误原因</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="errorMsg">
|
||
|
||
{{--js填充--}}
|
||
|
||
</tbody>
|
||
</table>
|
||
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||
</div>
|
||
</div><!-- /.modal-content -->
|
||
</div><!-- /.modal -->
|
||
</div>
|
||
|
||
|
||
|
||
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width="0"
|
||
height="0">
|
||
<embed id="LODOP_EM" type="application/x-print-lodop" width="0" height="0" pluginspage="{{resource_get('plugins/exhelper/src/common/lodop/install_lodop32.exe', 1)}}"></embed>
|
||
</object>
|
||
<script language='javascript' src="{{resource_get('plugins/exhelper/src/common/static/js/LodopFuncs.js', 1)}}"></script>
|
||
</div>
|
||
<!-- -->
|
||
|
||
|
||
<script language="javascript">
|
||
var LODOP=getCLodop();
|
||
// 执行搜索
|
||
function search(){
|
||
var data = {
|
||
order_sn: $.trim($(":input[name='search[order_sn]']").val()),
|
||
express_sn: $.trim($(":input[name='search[express_sn]']").val()),
|
||
member: $.trim($(":input[name='search[member]']").val()),
|
||
order_status: $.trim($("select[name='search[order_status]']").val()),
|
||
express_print_status: $.trim($("select[name='search[express_print_status]']").val()),
|
||
send_print_status: $.trim($("select[name='search[send_print_status]']").val()),
|
||
panel_print_status: $.trim($("select[name='search[panel_print_status]']").val()),
|
||
create_order_time: $(":input[name='search[create_order_time]']:checked").val(),
|
||
time: {start: $(":input[name='time[start]']").val(),end: $(":input[name='time[end]']").val()}
|
||
};
|
||
$('#search-btn').html("<i class='fa fa-spinner fa-spin'></i> 正在搜索...");
|
||
$.ajax({
|
||
url: "{!! yzWebUrl('plugin.exhelper.admin.supplier-print-once.search') !!}",
|
||
data: {search:data},
|
||
success:function(html){
|
||
$('#search-btn').html("<i class='fa fa-search'></i> 搜索")
|
||
$('#orderresult').html(html);
|
||
setallPrintBtnState(false);
|
||
$('.order_item').click(function(){
|
||
setalldoprintDivIsShow(false)
|
||
ordersDivIsShow(true)
|
||
clearCheckBoxChange()
|
||
$('#orders').find('.panel-body').html("<i class='fa fa-spinner fa-spin'></i> 正在加载...")
|
||
$.ajax({
|
||
url: "{!! yzWebUrl('plugin.exhelper.admin.supplier-print-once.detail') !!}",
|
||
data: {orderids: $(this).data('orderids')},
|
||
success:function(html){
|
||
$('#orders').html(html);
|
||
}
|
||
});
|
||
})
|
||
|
||
//全选
|
||
$("#allChange").click(function (){
|
||
var oneChangeLen = $(".oneChange").length;
|
||
if(oneChangeLen == 0){
|
||
alert('暂无订单!')
|
||
return false;
|
||
}
|
||
var _thisState = $(this).is(":checked");
|
||
$(".oneChange").prop("checked",_thisState)
|
||
setallPrintBtnState(_thisState);
|
||
})
|
||
|
||
//单选
|
||
$(".oneChange").click(function () {
|
||
setAllChangeState();
|
||
var oneChangeState = $(".oneChange").is(":checked");
|
||
setallPrintBtnState(oneChangeState);
|
||
|
||
})
|
||
|
||
//开始打印
|
||
$('.alldoprint').click(function () {
|
||
if($(this).attr('disabled')){
|
||
return false;
|
||
}else{
|
||
var thisCate = $(this).data("cate");
|
||
printAll(thisCate)
|
||
}
|
||
})
|
||
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
/**
|
||
* 根据checkbox设置是否勾选全选按钮
|
||
*/
|
||
function setAllChangeState()
|
||
{
|
||
var stateNum = 0;
|
||
var oneChangeLen = $('.oneChange').length;
|
||
$('.oneChange').each(function () {
|
||
if( $(this).is(":checked")){
|
||
stateNum++
|
||
}else{
|
||
stateNum--
|
||
}
|
||
});
|
||
if(stateNum == oneChangeLen){
|
||
$("#allChange").prop("checked",true)
|
||
}else{
|
||
$("#allChange").prop("checked",false)
|
||
setallPrintBtnState(false);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 多选打印显示控制
|
||
* @param bool
|
||
*/
|
||
function setalldoprintDivIsShow(bool)
|
||
{
|
||
if(bool){
|
||
$('#alldoprintDiv').show();
|
||
}else{
|
||
$('#alldoprintDiv').hide();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 打开了详细信息就取消全部checkBox勾选
|
||
*/
|
||
function clearCheckBoxChange()
|
||
{
|
||
$("#allChange").prop("checked",false)
|
||
$(".oneChange").prop("checked",false)
|
||
}
|
||
|
||
/**
|
||
* 订单详情DIV展示控制
|
||
* @param bool
|
||
*/
|
||
function ordersDivIsShow(bool)
|
||
{
|
||
if(bool){
|
||
$('#orders').show()
|
||
}else{
|
||
$('#orders').hide()
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 控制打印按钮
|
||
* @param _thisState
|
||
*/
|
||
function setallPrintBtnState(_thisState){
|
||
if(_thisState){
|
||
// 正常
|
||
$("#alldoprint1").data("state",0).removeClass("btn-disabled").addClass("btn-primary").attr('disabled', false);
|
||
$("#alldoprint2").data("state",0).removeClass("btn-disabled").addClass("btn-warning").attr('disabled', false);
|
||
$("#alldoprint3").data("state",0).removeClass("btn-disabled").addClass("btn-default").attr('disabled', false);
|
||
$("#alldosend").data("state",0).removeClass("btn-disabled").addClass("btn-success").attr('disabled', false);
|
||
ordersDivIsShow(false)
|
||
setalldoprintDivIsShow(true)
|
||
}else{
|
||
$("#alldoprint1").data("state",1).removeClass("btn-primary").addClass("btn-disabled").attr('disabled', true);
|
||
$("#alldoprint2").data("state",1).removeClass("btn-warning").addClass("btn-disabled").attr('disabled', true);
|
||
$("#alldoprint3").data("state",1).removeClass("btn-default").addClass("btn-disabled").attr('disabled', true);
|
||
ordersDivIsShow(true)
|
||
setalldoprintDivIsShow(false)
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 全选打印
|
||
* @param type
|
||
* @returns {boolean}
|
||
*/
|
||
function printAll(type)
|
||
{
|
||
if(confirm("多张单打印无预览效果,直接打印!确定吗?")){
|
||
$('.mask,.addDataNode').show();
|
||
}else{
|
||
return false;
|
||
}
|
||
|
||
//打印快递单或发货单
|
||
var printDatasTemp;
|
||
var printUser;
|
||
var printTemp;
|
||
var response;
|
||
var orders;
|
||
var ordersNum;
|
||
var orderIds = getOrderIds();
|
||
var printNum = 0; //打印次数
|
||
|
||
if(type == 3){
|
||
printElectronics();
|
||
return;
|
||
}
|
||
|
||
//打印快递单或发货单
|
||
var url = "{!! yzWebUrl('plugin.exhelper.admin.supplier-print-once.print-all') !!}";
|
||
var data = {
|
||
type:type,
|
||
order_ids:orderIds,
|
||
};
|
||
|
||
// 执行ajax获取打印模版
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: url,
|
||
data: data,
|
||
dataType:'json',
|
||
async:false,
|
||
success: function(data){
|
||
// console.log(data);
|
||
// return;
|
||
response = data.data;
|
||
if(data.result==1){
|
||
printDatasTemp = response.temp.respDatas;
|
||
printUser = response.temp.respUser;
|
||
printTemp = response.temp.respTemp;
|
||
orders = response.orders;
|
||
ordersNum = orders.length;
|
||
}else{
|
||
alert(data.msg);
|
||
return;
|
||
}
|
||
}
|
||
});
|
||
|
||
console.log('orders',orders);
|
||
orders.forEach((order, orderIndex) => {
|
||
/*打印的模板数据*/
|
||
var rep_sendInfo = order.address.sendinfo;
|
||
var rep_realName = order.address.realname;
|
||
var rep_nickName = order.address.realname;
|
||
var rep_mobile = order.address.mobile;
|
||
var rep_province = order.addressInfo.province;
|
||
var rep_city = order.addressInfo.city;
|
||
var rep_area = order.address.district;
|
||
var rep_address = order.address.address;
|
||
var rep_ordersn = '';
|
||
let price=0;
|
||
let dispatchprice = 0;
|
||
var info = [];
|
||
//克隆对象
|
||
var printDatas = $.extend(true, {}, printDatasTemp);
|
||
/*打印的模板数据*/
|
||
|
||
order.list.forEach(_order => {
|
||
if(rep_ordersn){
|
||
rep_ordersn += ", ";
|
||
}
|
||
rep_ordersn += _order.order_sn;
|
||
price += Number(_order.price);
|
||
dispatchprice += Number(_order.dispatch_price);
|
||
_order.has_many_order_goods.forEach(goods => {
|
||
info.push(setOrderInfos(_order, goods))
|
||
});
|
||
})
|
||
|
||
saveSenderAll({rep_realName, rep_mobile, rep_province, rep_city, rep_area, rep_address, rep_ordersn})
|
||
|
||
console.log('order',order);
|
||
|
||
/*打印模板的初始化*/
|
||
$.each(printDatas,function(tempIndex){
|
||
this.items = this.items.replace("sendinfo",rep_sendInfo);
|
||
this.items = this.items.replace("realname",rep_realName);
|
||
this.items = this.items.replace("nickname",rep_nickName);
|
||
this.items = this.items.replace("mobile",rep_mobile);
|
||
this.items = this.items.replace("province",rep_province);
|
||
this.items = this.items.replace("city",rep_city);
|
||
this.items = this.items.replace("area",rep_area);
|
||
this.items = this.items.replace("address",rep_address);
|
||
this.items = this.items.replace("ordersn",rep_ordersn);
|
||
this.items = this.items.replace("shopname",printTemp.shopname);
|
||
});
|
||
LODOP.PRINT_INITA(0,0,printTemp.width+"mm",printTemp.height+"mm","单据打印");
|
||
LODOP.NewPageA();
|
||
LODOP.SET_PRINT_PAGESIZE(1,printTemp.width+"mm",printTemp.height+"mm", "");
|
||
if(printTemp.bg){
|
||
// LODOP.ADD_PRINT_IMAGE(0,0,printTemp.width,printTemp.height,"<img border='0' src='"+printTemp.bg+"'>");
|
||
LODOP.ADD_PRINT_SETUP_BKIMG("<img border='0' src='"+printTemp.bg+"'>");
|
||
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true);//设置预览包含背景图
|
||
LODOP.SET_SHOW_MODE("BKIMG_PRINT",true);//设置打印背景图
|
||
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",1);
|
||
}
|
||
LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW",true);
|
||
/*打印模板的初始化*/
|
||
|
||
|
||
let isMerge=false;
|
||
let dispatchIsMerge=false;
|
||
$.each(printDatas,function(i,d){
|
||
|
||
//打印准备
|
||
if(d.cate==1){
|
||
LODOP.ADD_PRINT_TEXTA('"t_'+i+'"',d.top+"px",d.left+"px",d.width+"px",d.height+"px",d.pre+d.items+d.last);
|
||
if(d.color){
|
||
LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"FontColor",d.color); // 文字颜色
|
||
}
|
||
if(d.bold){
|
||
LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"Bold",1); // 文字加粗
|
||
}
|
||
if(d.align){
|
||
LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"Alignment",d.align); // 对齐方式
|
||
}
|
||
var FontSize = !d.size?"12":d.size;
|
||
LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"FontSize",FontSize); //文字大小
|
||
var FontName = !d.font?"微软雅黑":d.font;
|
||
LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"FontName",FontName); // 文字字体
|
||
}
|
||
|
||
if(d.cate==2){
|
||
|
||
var strings = d.string.split(',');
|
||
var values = d.items.split(',');
|
||
var _html = '<table border style="width: '+d.width+'; display:table-fixed; border-collapse:collapse;border-spacing:0;border-left:1px solid '+d.color+';border-top:1px solid '+d.color+'; corlor:'+d.color+'; ';
|
||
if(d.align==1){
|
||
_html += "text-align:left;"
|
||
}
|
||
if(d.align==2){
|
||
_html += "text-align:center;"
|
||
}
|
||
if(d.align==3){
|
||
_html += "text-align:right;"
|
||
}
|
||
_html += '">';
|
||
|
||
_html += '<tr>';
|
||
|
||
$.each(strings, function(ii,s) {
|
||
_html += '<td style="border-right:1px solid '+d.color+'; border-bottom:1px solid '+d.color+'; font-size:'+d.size+'pt; font-family:'+d.font+'; color:'+d.color+';">'+s;
|
||
_html += '</td>';
|
||
});
|
||
|
||
|
||
order.list.forEach((_order, index) => {
|
||
_html += '</tr>';
|
||
$.each(values, function(iii,val) {
|
||
str = '';
|
||
dispatchStr='';
|
||
if (val == 'price'){
|
||
if(isMerge===false){
|
||
str = 'rowspan='+rowLength+' style="text-align:center;"';
|
||
_html += '<td '+str+' style="border-right:1px solid '+d.color+'; border-bottom:1px solid '+d.color+'; font-size:'+d.size+'pt; font-family:'+d.font+'; color:'+d.color+';">';
|
||
_html += (price).toFixed(2);
|
||
isMerge=true;
|
||
}
|
||
}else if (val == 'dispatchprice') {
|
||
if (dispatchIsMerge ===false){
|
||
dispatchStr = 'rowspan='+rowLength+' style="text-align:center;"';
|
||
_html += '<td '+dispatchStr+' style="border-right:1px solid '+d.color+'; border-bottom:1px solid '+d.color+'; font-size:'+d.size+'pt; font-family:'+d.font+'; color:'+d.color+';">';
|
||
_html += (dispatchprice).toFixed(2);
|
||
dispatchIsMerge=true;
|
||
}
|
||
}else{
|
||
_html += '<td style="border-right:1px solid '+d.color+'; border-bottom:1px solid '+d.color+'; font-size:'+d.size+'pt; font-family:'+d.font+'; color:'+d.color+';">';
|
||
}
|
||
// _html += '<td '+str+' style="border-right:1px solid '+d.color+'; border-bottom:1px solid '+d.color+'; font-size:'+d.size+'pt; font-family:'+d.font+'; color:'+d.color+';">';
|
||
if(val=="printsn"){
|
||
_html += index+1;
|
||
}else{
|
||
if (val == 'price'&&isMerge==true) {
|
||
_html += '';
|
||
}else if (val == 'dispatchprice'&&dispatchIsMerge==true){
|
||
_html += '';
|
||
}
|
||
else {
|
||
_html += info[index][val];
|
||
}
|
||
}
|
||
|
||
_html += '</td>';
|
||
});
|
||
_html += '</tr>';
|
||
})
|
||
_html += '</table>';
|
||
|
||
LODOP.ADD_PRINT_HTM(d.top+"px", d.left+"px", d.width+"px", d.height+"px", _html);
|
||
}
|
||
|
||
});
|
||
//选择默认的打印机
|
||
LODOP.SET_PRINTER_INDEX(-1)
|
||
// 获取打印状态
|
||
if (LODOP.CVERSION) {
|
||
printNum++
|
||
if(LODOP.PRINT()){
|
||
console.log("打印次数", printNum)
|
||
if(printNum == ordersNum){
|
||
console.log('打印完成!')
|
||
successHander();
|
||
}
|
||
}else{
|
||
alert("打印已取消");
|
||
return;
|
||
}
|
||
};
|
||
|
||
})
|
||
}
|
||
|
||
|
||
/**
|
||
* 全部打印成功回调
|
||
*/
|
||
function successHander()
|
||
{
|
||
setTimeout(function () {
|
||
cancel("推送完成!");
|
||
}, 1000); // 延时1秒
|
||
}
|
||
|
||
/**
|
||
* 关闭loading
|
||
*/
|
||
function cancel(msg)
|
||
{
|
||
$('.mask,.addDataNode').hide();
|
||
alert(msg);
|
||
}
|
||
|
||
/**
|
||
* 订单的详细信息
|
||
* @param order
|
||
* @param goods
|
||
* @returns {*|{note: string, odsn: (*|string), goodname: *, productsn: *, changedispatchprice: *, goodssn: *, goodoption: string, goodshortname: (*|string), deductprice: *, deductenough: (*|string), discountprice: *, goodweight: string, goodunit: methods.form.goods.sku, dispatchprice: (*|number), total: number, goodsprice: *, allprice: string, price: (*|string), realprice: string, vipdiscount: (*|string), productprice: string, marketprice: string, couponprice: number}}
|
||
*/
|
||
function setOrderInfos(order, goods)
|
||
{
|
||
var _ordersn = order.order_sn // 订单编号
|
||
var _goodname = goods.title; // 商品名称
|
||
if(goods.has_one_short){
|
||
var _goodshortname = goods.has_one_short.short_title; // 商品简称
|
||
}else{
|
||
var _goodshortname = '-';
|
||
}
|
||
var _goodssn = goods.goods_sn; // 商品编码
|
||
var _productsn = goods.product_sn; //商品条码
|
||
|
||
var _marketprice = (goods.goods_price / Number(goods.total)).toFixed(2); //商品原价
|
||
var _productprice = (goods.price / Number(goods.total)).toFixed(2); //商品原价
|
||
var _allprice = _productprice * Number(goods.total); // 商品总价
|
||
_allprice = _allprice.toFixed(2);
|
||
var _total = Number(goods.total); // 商品数量
|
||
var _note = ' '; //备注栏
|
||
var _goodoption = '-'
|
||
if(goods.goods_option_title != ''){
|
||
_goodoption = goods.goods_option_title; // 商品规格
|
||
}
|
||
var _goodunit = goods.goods.sku; // 商品单位
|
||
var _goodweight = '-'; // 商品重量
|
||
if(goods.goods.weight != ''){
|
||
_goodweight = goods.goods.weight; // 商品规格
|
||
}
|
||
|
||
var _realprice = _productprice; // 商品折后价格
|
||
|
||
//订单信息
|
||
var _goodsprice = goods.goods_price; // 商品小计
|
||
var _dispatchprice = order.dispatch_price; // 运费
|
||
var _deductprice = goods.deduction_amount; // 抵扣金额
|
||
var _discountprice = order.discount_price; // 优惠券金额
|
||
var _vipdiscount = goods.price; // 会员折扣
|
||
if(Number(goods.vip_price) > 0 ){
|
||
_vipdiscount = goods.price - goods.vip_price
|
||
}
|
||
|
||
var _changeprice = order.change_price; // 改价优惠
|
||
var _changedispatchprice = order.change_dispatch_price; // 运费改价
|
||
var _couponprice = 0; // 优惠券优惠
|
||
var _price = order.price; // 实付费
|
||
|
||
info = {
|
||
'odsn':_ordersn,'goodname':_goodname,'goodshortname':_goodshortname,'goodssn':_goodssn,'productsn':_productsn,
|
||
'marketprice':_marketprice,
|
||
'productprice':_productprice,
|
||
'allprice':_allprice,
|
||
'total':_total,
|
||
'note':_note,
|
||
'goodoption':_goodoption,
|
||
'goodunit':_goodunit,
|
||
'goodweight':_goodweight,
|
||
'realprice':_realprice,
|
||
'goodsprice':_goodsprice,
|
||
'dispatchprice':_dispatchprice,
|
||
'discountprice':_discountprice,
|
||
'deductprice':_deductprice,
|
||
'vipdiscount':_vipdiscount,
|
||
'deductenough':_changeprice,'changedispatchprice':_changedispatchprice,'couponprice':_couponprice,
|
||
'price':_price
|
||
};
|
||
return info;
|
||
}
|
||
|
||
function getOrderIds()
|
||
{
|
||
let orderIds = [];
|
||
|
||
$('.oneChange').each(function () {
|
||
var _thisState = $(this).is(":checked");
|
||
var _orderIds = $(this).data('orderids');
|
||
if(_thisState){
|
||
orderIds.push(_orderIds);
|
||
}
|
||
});
|
||
console.log("orderIdsorderIds",orderIds)
|
||
return orderIds;
|
||
}
|
||
|
||
function saveSenderAll(data){
|
||
|
||
// ajax 执行写入数据库
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.saveAddress') !!}",
|
||
data: {
|
||
realname:data.rep_realName,
|
||
mobile:data.rep_mobile,
|
||
province:data.rep_province,
|
||
city:data.rep_city,
|
||
area:data.rep_area,
|
||
address:data.rep_address,
|
||
ordersns:data.rep_ordersn.split(','),
|
||
},
|
||
dataType:'json',
|
||
success: function (result){
|
||
if(result.result=='error'){
|
||
alert(result.resp);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
|
||
function printElectronics() {
|
||
var orderIds = getOrderIds();
|
||
var htmtList;
|
||
var errors;
|
||
var zipCode = prompt("发件地邮编(快递是EMS、邮政的必填否则报错,不是可不填)");
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: "{!! yzWebUrl('plugin.exhelper.admin.panel.print-electronics') !!}",
|
||
data: {
|
||
order_ids: orderIds,
|
||
zip_code: zipCode,
|
||
},
|
||
dataType: 'json',
|
||
success: function (result) {
|
||
var data = result.data;
|
||
if (result.result == 1) {
|
||
htmtList = data.html_list;
|
||
errors = data.errors;
|
||
printStart(htmtList);
|
||
alertError(errors);
|
||
} else {
|
||
cancel('推送失败。错误原因:' + result.msg);
|
||
return;
|
||
}
|
||
}
|
||
});
|
||
|
||
}
|
||
|
||
/**
|
||
* 开始打印电子面单
|
||
* @param htmtList
|
||
*/
|
||
function printStart(htmtList)
|
||
{
|
||
var htmlListCount = htmtList.length;
|
||
htmtList.forEach((html, htmlIdx) => {
|
||
LODOP.PRINT_INITA(0, 0, "100mm", "150mm", "单据打印");
|
||
LODOP.NewPageA();
|
||
LODOP.SET_PRINT_PAGESIZE(1, "80mm", "130mm", "");
|
||
LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW", true);
|
||
LODOP.ADD_PRINT_HTM('0mm', '0mm', '150mm', '150mm', html);
|
||
//选择默认的打印机
|
||
LODOP.SET_PRINTER_INDEX(-1)
|
||
//获取打印状态
|
||
if (LODOP.CVERSION) {
|
||
if(LODOP.PRINT()){
|
||
if(htmlListCount == (htmlIdx + 1)){
|
||
console.log('打印完成!')
|
||
successHander();
|
||
}
|
||
}else{
|
||
cancel('推送失败。错误原因:' + result.msg);
|
||
return;
|
||
}
|
||
}
|
||
})
|
||
|
||
}
|
||
|
||
/**
|
||
* 打印错误的电子面单返回数据
|
||
* @param alertError
|
||
*/
|
||
function alertError(alertError)
|
||
{
|
||
var html = '';
|
||
$("#errorMsg").html('');
|
||
if(alertError.length > 0){
|
||
alertError.forEach(error => {
|
||
html += `
|
||
<tr>
|
||
<td>${error.order_sn}</td>
|
||
<td style="width:50%;white-space:normal;word-wrap:break-word;word-break:break-all;">${error.msg}</td>
|
||
</tr>
|
||
`
|
||
})
|
||
$("#errorMsg").append(html);
|
||
$('#errorModal').modal('show')
|
||
}
|
||
}
|
||
|
||
|
||
</script>
|
||
@endsection
|