print_tpl_detail.blade.php 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178
  1. <style>.btn-disabled, .btn-disabled:hover {background: #ddd; border: 1px solid #bbb; color: #999; cursor: not-allowed;}</style>
  2. <style>.trbody td {border-left: 1px solid #ccc;}.tac { text-align: center;}</style>
  3. <style>
  4. .loader {
  5. position: fixed;
  6. left: 0px;
  7. top: 0px;
  8. width: 100%;
  9. height: 100%;
  10. z-index: 9999;
  11. background: url('https://img-blog.csdn.net/20161205162919763') 50% 50% no-repeat rgb(249,249,249);
  12. }
  13. </style>
  14. <script language='javascript' src="{{resource_get('plugins/exhelper/src/common/static/js/LodopFuncs.js', 1)}}"></script>
  15. <script language='javascript' src="{{resource_get('plugins/exhelper/src/common/static/js/jquery.jqprint-0.3.js')}}"></script>
  16. <script language='javascript' src="{{resource_get('plugins/exhelper/src/common/static/js/jquery-migrate-1.2.1.min.js')}}"></script>
  17. {{--<script src="http://www.jq22.com/jquery/jquery-migrate-1.2.1.min.js";></script>--}}
  18. <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width="0"
  19. height="0">
  20. <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>
  21. </object>
  22. <div class="panel-heading">订单信息</div>
  23. <div class="panel-body">
  24. <form class="form-horizontal">
  25. <div class="form-group">
  26. <div class="col-sm-7">
  27. <div class="input-group">
  28. <span class="input-group-addon">姓名</span>
  29. <input style="width: 200px" type="hidden" name="nickname" value="{{$address->realname}}"/>
  30. <input style="width: 200px" type="text" class="form-control" name="realname" value="{{$address->realname}}" style="border-right: none;" />
  31. <span class="input-group-addon" style="border-right: none;">电话</span>
  32. <input style="width: 200px" type="text" class="form-control" name="mobile" value="{{$address->mobile}}" />
  33. </div>
  34. </div>
  35. </div>
  36. <div class="form-group">
  37. <div class="col-sm-12 col-xs-12">
  38. <div class="input-group">
  39. <span class="input-group-addon">地址</span>
  40. <input type="text" class="form-control" name="province" style="width:100px; border-right: none;" value="{{$province}}" />
  41. <input type="text" class="form-control" name="city" style="width:100px; border-right: none;" value="{{$city}}" />
  42. <input type="text" class="form-control" name="area" style="width:100px; border-right: none;" value="{{$district}}" />
  43. <input type="text" class="form-control" name="address" value="{{$address->address}}" style="width:700px; border-right: none;" />
  44. </div>
  45. </div>
  46. </div>
  47. <div class="form-group">
  48. <div class="col-sm-12 col-xs-12">
  49. <div class="input-group">
  50. <span class="input-group-addon">邮编</span>
  51. <input type="text" class="form-control" name="zip_code" id="zip_code" value="" style="width:500px; border-right: none;" />
  52. <i style="color: red">注:邮政快递必须填写收件人邮编</i>
  53. </div>
  54. </div>
  55. </div>
  56. <table class='table' style='float:left;border:1px solid #ccc;margin-bottom:5px;table-layout: fixed'>
  57. <tr class='trhead'>
  58. <td style='width:30px;'><input type="checkbox" checked="" class="cBoxOrderAll"></td>
  59. <td colspan='2' style='text-align:left;'>订单总数: {{$list->count()}} <br/>订单金额: {{$list->sum('price')}}</td>
  60. <td class="tac" style="border: 1px solid #ccc;">规格及编码</td>
  61. <td class="tac" style="border: 1px solid #ccc;">单价(元)</td>
  62. <td class="tac" style="border: 1px solid #ccc;">数量</td>
  63. <td class="tac" style="border: 1px solid #ccc;">支付方式</td>
  64. <td class="tac" style="border: 1px solid #ccc;">配送方式</td>
  65. <td class="tac" style="border: 1px solid #ccc;">价格</td>
  66. <td class="tac" style="border: 1px solid #ccc;">订单状态</td>
  67. <td class="tac" style="border: 1px solid #ccc;">打印状态<br/>次数</td>
  68. </tr>
  69. </table>
  70. <div class="allorder">
  71. @foreach($list as $item)
  72. <table class='table' style='float:left;border:1px solid #ccc;margin-top:5px;margin-bottom:5px;table-layout: fixed' data-ordersn="{{$item->order_sn}}">
  73. <tr>
  74. <td style='border-bottom:1px solid #ccc;background:#efefef;width:30px;'>
  75. <input type="checkbox" class="cBoxOrderOne" checked="" data-price="{{ $item->price }}" data-dispatch-price="{{ $item->dispatch_price }}">
  76. </td>
  77. <td class colspan='9' style='border-bottom:1px solid #ccc;background:#efefef;'>
  78. <b>订单编号: </b><span class="ordersn">{{$item->order_sn}}</span>
  79. <b>下单时间: </b>
  80. {{$item->create_time}}
  81. @if(!empty($item->refund_id))
  82. <label class='label label-danger'>退款申请</label>
  83. @endif
  84. <b>打印状态: </b>
  85. <span class="orderprintstate">
  86. @if(!isset($item->hasOnePrint) || $item->hasOnePrint->express_print_status == 0)
  87. 快递单未打印
  88. @elseif($item->hasOnePrint->express_print_status > 0)
  89. 快递单已打印
  90. @endif
  91. </span>
  92. <span class="orderprintstate2">
  93. @if(!isset($item->hasOnePrint) || $item->hasOnePrint->send_print_status == 0)
  94. 发货单未打印
  95. @elseif($item->hasOnePrint->send_print_status > 0)
  96. 发货单已打印
  97. @endif
  98. </span>
  99. <span class="orderprintstate3">
  100. @if(!isset($item->hasOnePrint) || $item->hasOnePrint->panel_print_status == 0)
  101. 电子面单未打印
  102. @elseif($item->hasOnePrint->panel_print_status > 0)
  103. 电子面单已打印
  104. @endif
  105. </span>
  106. </td>
  107. <td style='border-bottom:1px solid #ccc;background:#efefef;text-align: center'></td>
  108. </tr>
  109. @foreach($item->hasManyOrderGoods as $k => $g)
  110. <tr class='trbody' id="ordergoodstr">
  111. <td style='width:80px;'>
  112. <input type="checkbox" class="cBoxGood" checked="">
  113. </td>
  114. <td id="orderinfo" valign='top' colspan='2' style='text-align: left; width: 400px; position: relative; '
  115. data-ordersn="{{$item->order_sn}}" data-orderid="{{$item->id}}" data-ordergoodid="{{$g->id}}" data-goodid="{{$g->goods_id}}" data-goodtitle="{{$g->title}}"
  116. data-shorttitle = "@if(!$g->hasOneShort)-@else{{$g->hasOneShort->short_title}}@endif" data-goodnum="{{$g->total}}" data-goodssn="{{$g->goods->goods_sn}}" data-productsn="{{$g->goods->product_sn}}" data-marketprice="{!! $g->goods_price/$g->total !!}"
  117. data-productprice="{!! $g->price/$g->total !!}" data-total="{{$g->total}}" data-goodoption="@if(!$g->goods_option_title)-@else{{$g->goods_option_title}}@endif" data-goodunit="@if(!$g->goods->sku)-@else{{$g->goods->sku}}@endif"
  118. data-realprice="{!! $g->price/$g->total !!}" data-goodweight="@if(!$g->goods->weight)-@else{{$g->goods->weight}}@endif" data-goodsprice="{{$g->goods_price}}" data-dispatchprice="{{$item->dispatch_price}}" data-discountprice="{{$item->discount_price}}"
  119. data-deductprice="{{$g->deduction_amount}}"
  120. data-vipdiscount="{!! $g->vip_price != 0 ? $g->price - $g->vip_price : $g->vip_price !!}"
  121. {{--data-deductcredit2="{$item['deductcredit2']}" data-deductenough="{$item['deductenough']}" data-changeprice="{$item['changeprice']}" data-changedispatchprice="{$item['changedispatchprice']}" data-couponprice="{$item['couponprice']}" --}}
  122. data-price="{{$item->price}}" >
  123. <img src="{!! tomedia($g->thumb) !!}" style="width: 50px; height: 50px;border:1px solid #ccc;padding:1px;" >
  124. <span class='goodtitle' >@if($g->goods->alias){{$g->goods->alias}}@else{{$g->goods->title}}@endif</span>
  125. <span class="editShort" style="position: absolute; bottom: 0; right: 0; background: rgba(0,0,0,0.5); font-size: 12px; color: #FFF; padding-left: 11px; border-radius: 20px 0px 0px 0px; width: 40px; cursor: pointer;" data-do="e">编辑</span>
  126. </td>
  127. <td class="tac">
  128. @if($g->goods_option_title)<span class="label label-primary">{{$g->goods_option_title}}</span>@endif
  129. <br/>{{$g->goods->goods_sn}}
  130. </td>
  131. <td class="tac">原价: {!! $g->goods_price/$g->total !!}<br/>折后: {!! $g->price/$g->total !!}</td>
  132. <td class="tac">x{{$g->total}}</td>
  133. @if($k == 0)
  134. <td rowspan="{!! count($item->hasManyOrderGoods) !!}" class="tac"><label class='label label-success'>{{$item->pay_type_name}}</label></td>
  135. <td rowspan="{!! count($item->hasManyOrderGoods) !!}" class="tac">{{$item->express->express_company_name}}</td>
  136. <td style='text-align:center;' rowspan="{!! count($item->hasManyOrderGoods) !!}">实付金额: {{$item->price}} 元
  137. <br/>含运费 {{$item->dispatch_price}} 元
  138. </td>
  139. <td style='text-align:center;' rowspan="{!! count($item->hasManyOrderGoods) !!}">订单总额: {{$item->order_goods_price}} 元
  140. </td>
  141. <td rowspan="{!! count($item->hasManyOrderGoods) !!}" class="tac">
  142. <label class='label label-success label-oss'>{{$item->status_name}}</label><br />
  143. <a href="{!! yzWebUrl('order.detail.index', ['id' => $item->id]) !!}" >查看详情</a>
  144. </td>
  145. @endif
  146. <td class="tac" style="border: 1px solid #ccc;padding: 2px 4px">
  147. <label class="icon-ps1 label label-@if($item->hasOnePrint->express_print_status > 0){!! $css = 'primary' !!}@else{!! $css = 'default' !!}@endif" data-printstate="{{$item->hasOnePrint->express_print_status}}">@if($item->hasOnePrint->express_print_status > 0)快递单 x {{$item->hasOnePrint->express_print_status}}@else{{快递单未打印}}@endif</label><br>
  148. <label class="icon-ps2 label label-@if($item->hasOnePrint->send_print_status > 0){!! $css = 'success' !!}@else{!! $css = 'default' !!}@endif" data-printstate="{{$item->hasOnePrint->send_print_status}}">@if($item->hasOnePrint->send_print_status > 0)发货单 x {{$item->hasOnePrint->send_print_status}}@else{{发货单未打印}}@endif</label><br>
  149. <label class="test label label-@if($item->hasOnePrint->panel_print_status > 0){!! $css = 'danger' !!}@else{!! $css = 'default' !!}@endif" data-printstate="{{$item->hasOnePrint->panel_print_status}}">@if($item->hasOnePrint->panel_print_status > 0)电子面单 x {{$item->hasOnePrint->panel_print_status}}@else{{电子面单未打印}}@endif</label>
  150. </td>
  151. </tr>
  152. @endforeach
  153. </table>
  154. @endforeach
  155. </div>
  156. <div class="form-group" style="margin-bottom: 0;">
  157. <div class="col-sm-12">
  158. <div class='form-control-static'>发货信息</div>
  159. </div>
  160. </div>
  161. <div class="form-group">
  162. <div class="col-sm-12">
  163. <textarea class='form-control sendinfo' style="min-height: 100px; height: auto;">{{$address->sendinfo}}</textarea>
  164. </div>
  165. </div>
  166. </form>
  167. </div>
  168. <div class="panel-footer" style="height: auto; overflow: hidden;">
  169. <div class="form-group">
  170. <div class="col-sm-12">
  171. <p style="color:red;">注:电子面单打印建议使用谷歌浏览器,其他浏览器不支持打印预览效果,由于快递单模板不同,请自行调整打印大小,方法:点击打印电子面单,点击"更多设置","缩放"选择自定义调整大小</p>
  172. <span class="btn btn-primary doprint" id="doprint1" data-state="0" data-cate="1">打印快递单</span>
  173. <span class="btn btn-warning doprint" id="doprint2" data-state="0" data-cate="2">打印发货单</span>
  174. <span class="btn btn-default doprint" id="doprint3" data-state="0" data-cate="3">打印电子面单</span>
  175. <input type="checkbox" id="inputFn" checked>是否打印电子面单订单备注
  176. <!-- <span class="btn btn-success" id="dosend" data-state="0">一键发货</span> -->
  177. </div>
  178. </div>
  179. </div>
  180. <!-- 一键发货浮层 -->
  181. <div id="modal-send" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
  182. <div class="modal-dialog" style="width:700px;margin:0px auto;">
  183. <div class="modal-content">
  184. <div class="modal-header">
  185. <button aria-hidden="true" data-dismiss="modal" class="close" type="button">×</button>
  186. <div style="height: 50px;">
  187. <div style="height: 50px; width: 90px; font-size: 22px; line-height: 60px; float: left;">一键发货</div>
  188. <div style="height: 50px; width: 150px; float: right; font-size: 14px; margin-right: 10px; line-height: 70px;">快递类型: [<span id="expresscom" data-expresscom="" data-express="">loading</span>]</div>
  189. <div style="height: 50px; 300px; float: right; font-size: 14px; margin-right: 10px; line-height: 70px; overflow: hidden; text-align: right;">快递模版: <span id="printtempname">loading</span></div>
  190. </div>
  191. </div>
  192. <div class="modal-body" style=" text-align: center; max-height: 700px; overflow-y: auto;">
  193. <table class="table sendtable" style="margin-bottom: 0;"></table>
  194. <div id="module-menus"></div>
  195. </div>
  196. <div class="modal-footer">
  197. <span style="float: left; line-height: 30px; color: #999;">提示: 快递类型请在快递单默认模版更改。</span>
  198. <a class="btn btn-primary" onclick="cleardata()">清除数据</a>
  199. <a class="btn btn-success dosend" onclick="dosend()" data-state="0">执行发货</a>
  200. <a href="#" class="btn btn-default" data-dismiss="modal" aria-hidden="true">取消</a>
  201. </div>
  202. </div>
  203. </div>
  204. </div>
  205. <script>
  206. $(function(){
  207. var printDatas;
  208. var printUser;
  209. var printTemp;
  210. $(".panel-body").find("input[type=checkbox]").change(function(){
  211. changeSendInfo();
  212. });
  213. $(".doprint").click(function(){
  214. // 执行保存收件人信息
  215. savesender();
  216. var thisState = $(this).data("state");
  217. var thisCate = $(this).data("cate");
  218. if(thisState>0){
  219. return;
  220. }
  221. if (thisCate == 3) {
  222. //检测订单数量 == 1
  223. console.log($('input[class="cBoxOrderOne"]:checked').length);
  224. if ($('input[class="cBoxOrderOne"]:checked').length > 1) {
  225. alert('暂不支持多订单打印面单'); return ;
  226. // var order_sn = new Array();
  227. // $("input[class='cBoxGood']").each(function(index) {
  228. // console.log('this.html = '+$(this).html(), 'ordersn_value = '+ $(this).parent().next().attr('data-ordersn'));
  229. // if ($(this).is(':checked')) {
  230. // order_sn.push($(this).parent().next().attr('data-ordersn') );
  231. // }
  232. // });
  233. // } else if( $("input[class='cBoxGood']:checked").length > 5) {
  234. // // alert('请选择等于或少于5条订单操作'); return false;
  235. // // alert('暂不支持多订单打印面单'); return ;
  236. }
  237. var order_sn = $('input[class="cBoxOrderOne"]:checked').parent().next().find('.ordersn').text();
  238. var zip_code = $('#zip_code').val();
  239. console.log(order_sn);
  240. let value = document.getElementById('inputFn').checked;
  241. // $('#loading').fadeOut('slow');
  242. //获取电子面单信息
  243. $.ajax({
  244. type: 'POST',
  245. url: "{!! yzWebUrl('plugin.exhelper.admin.panel.test') !!}",
  246. data: {ordersn: order_sn,zip_code:zip_code,is_check:value ? 1 : 0},
  247. dataType: 'json',
  248. success: function(msg) {
  249. // if ($("input[class='cBoxGood']:checked").length > 1) {
  250. // $.each(msg, function(i, temp){
  251. // if (msg[i].result == 'success') {
  252. // //判断模板宽高
  253. // switch (msg[i].resp.data.exhelper_style) {
  254. // case 'PJ':
  255. // var panel_width = 80;
  256. // break;
  257. // case 'CNEX':
  258. // var panel_width = 90;
  259. // break;
  260. // default :
  261. // var panel_width = 100;
  262. // }
  263. // //执行打印
  264. // printpanel(msg[i].resp.html, panel_width, msg[i].resp.data.panel_style, order_sn[i]);
  265. // } else {
  266. // //获取失败时
  267. // alert(msg[i].resp);
  268. // }
  269. // });
  270. // }
  271. if ($("input[class='cBoxOrderOne']:checked").length == 1 && msg.result == 'success') {
  272. // alert('电子面单下单成功,订单状态为已发货');
  273. //判断模板宽高
  274. switch (msg.resp.data.exhelper_style) {
  275. case 'PJ':
  276. var panel_width = 80;
  277. break;
  278. case 'CNEX':
  279. var panel_width = 90;
  280. break;
  281. default :
  282. var panel_width = 100;
  283. }
  284. console.log('dsdsdsdfsd',msg.resp.html)
  285. var html = $("<div id='div1' style='width:100%;height:100%'>").append(msg.resp.html);
  286. //jqprint
  287. // $(html[0].outerHTML).jqprint();
  288. $(html[0].outerHTML).jqprint({
  289. importCSS:false
  290. });
  291. changeOrderPrintInfo('print3', order_sn);
  292. // $("#div1").remove();
  293. //执行打印
  294. // printpanel(msg.resp.html, panel_width, msg.resp.data.panel_style, order_sn);
  295. } else {
  296. alert(msg.resp);
  297. }
  298. }
  299. });
  300. return ;
  301. }
  302. //打印快递单或发货单
  303. var url = "{!! yzWebUrl('plugin.exhelper.admin.print-once.getPrintTemp') !!}";
  304. var data = {type:thisCate};
  305. // 执行ajax获取打印模版
  306. $.ajax({
  307. type: 'POST',
  308. url: url,
  309. data: data,
  310. dataType:'json',
  311. async:false,
  312. success: function(d){
  313. if(d.result=="success"){
  314. printDatas = d.respDatas;
  315. printUser = d.respUser;
  316. printTemp = d.respTemp;
  317. if (thisCate == 3) {
  318. printTemp = d.resp;
  319. console.log(printTemp);
  320. }
  321. }else{
  322. alert(d.resp);
  323. return;
  324. }
  325. }
  326. });
  327. var rep_sendInfo = $(".sendinfo").val();
  328. var rep_realName =$(":input[name=realname]").val();
  329. var rep_nickName =$(":input[name=nickname]").val();
  330. var rep_mobile =$(":input[name=mobile]").val();
  331. var rep_province =$(":input[name=province]").val();
  332. var rep_city =$(":input[name=city]").val();
  333. var rep_area =$(":input[name=area]").val();
  334. var rep_address =$(":input[name=address]").val();
  335. var rep_ordersn = '';
  336. $(".ordersn").each(function(){
  337. if(rep_ordersn){
  338. rep_ordersn += ", ";
  339. }
  340. rep_ordersn += $(this).text();
  341. });
  342. $.each(printDatas,function(){
  343. this.items = this.items.replace("sendinfo",rep_sendInfo);
  344. this.items = this.items.replace("realname",rep_realName);
  345. this.items = this.items.replace("nickname",rep_nickName);
  346. this.items = this.items.replace("mobile",rep_mobile);
  347. this.items = this.items.replace("province",rep_province);
  348. this.items = this.items.replace("city",rep_city);
  349. this.items = this.items.replace("area",rep_area);
  350. this.items = this.items.replace("address",rep_address);
  351. this.items = this.items.replace("ordersn",rep_ordersn);
  352. this.items = this.items.replace("shopname",printTemp.shopname);
  353. });
  354. // 定义打印模版信息
  355. LODOP.PRINT_INITA(0,0,printTemp.width+"mm",printTemp.height+"mm","单据打印");
  356. LODOP.NewPageA();
  357. LODOP.SET_PRINT_PAGESIZE(1,printTemp.width+"mm",printTemp.height+"mm", "");
  358. if(printTemp.bg){
  359. // LODOP.ADD_PRINT_IMAGE(0,0,printTemp.width,printTemp.height,"<img border='0' src='"+printTemp.bg+"'>");
  360. LODOP.ADD_PRINT_SETUP_BKIMG("<img border='0' src='"+printTemp.bg+"'>");
  361. LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true);//设置预览包含背景图
  362. LODOP.SET_SHOW_MODE("BKIMG_PRINT",true);//设置打印背景图
  363. LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",1);
  364. }
  365. LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW",true);
  366. let isMerge=false;
  367. let dispatchIsMerge=false;
  368. $.each(printDatas,function(i,d){
  369. if(d.cate==1){
  370. LODOP.ADD_PRINT_TEXTA('"t_'+i+'"',d.top+"px",d.left+"px",d.width+"px",d.height+"px",d.pre+d.items+d.last);
  371. if(d.color){
  372. LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"FontColor",d.color); // 文字颜色
  373. }
  374. if(d.bold){
  375. LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"Bold",1); // 文字加粗
  376. }
  377. if(d.align){
  378. LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"Alignment",d.align); // 对齐方式
  379. }
  380. var FontSize = !d.size?"12":d.size;
  381. LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"FontSize",FontSize); //文字大小
  382. var FontName = !d.font?"微软雅黑":d.font;
  383. LODOP.SET_PRINT_STYLEA('"t_'+i+'"',"FontName",FontName); // 文字字体
  384. }
  385. if(d.cate==2){
  386. var strings = d.string.split(',');
  387. var values = d.items.split(',');
  388. 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+'; ';
  389. if(d.align==1){
  390. _html += "text-align:left;"
  391. }
  392. if(d.align==2){
  393. _html += "text-align:center;"
  394. }
  395. if(d.align==3){
  396. _html += "text-align:right;"
  397. }
  398. _html += '">';
  399. _html += '<tr>';
  400. $.each(strings, function(ii,s) {
  401. console.log('ii: ',ii);
  402. console.log('s: ',s);
  403. _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;
  404. _html += '</td>';
  405. });
  406. _html += '</tr>';
  407. var info = [];
  408. let rowLength = $(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne").length;
  409. var str = '';
  410. var dispatchStr = '';
  411. const checkeds=$(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne");
  412. let price=0;
  413. let dispatchprice = 0;
  414. $("input[type='checkbox']:checked.cBoxOrderOne").each(function(index){
  415. console.log($(this).data('price'),$(this).data('dispatchPrice'));
  416. price+=Number($(this).data('price'));
  417. dispatchprice+=Number($(this).data('dispatchPrice'));
  418. })
  419. $(checkeds).each(function(index){
  420. var _this = $(this).parent().next()
  421. var _ordersn = _this.data("ordersn") // 订单编号
  422. var _goodname = _this.data("goodtitle"); // 商品名称
  423. var _goodshortname = _this.data("shorttitle"); // 商品简称
  424. var _goodssn = _this.data("goodssn"); // 商品编码
  425. var _productsn = _this.data("productsn"); //商品条码
  426. var _marketprice = _this.data("marketprice"); //商品原价
  427. var _productprice = _this.data("productprice"); //商品现价
  428. var _allprice = _this.data("productprice") * _this.data("total"); // 商品总价
  429. _allprice = _allprice.toFixed(2);
  430. var _total = _this.data("total"); // 商品数量
  431. var _note = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; //备注栏
  432. var _goodoption = _this.data("goodoption"); // 商品规格
  433. var _goodunit = _this.data("goodunit"); // 商品单位
  434. var _goodweight = _this.data("goodweight"); // 商品重量
  435. var _realprice = _this.data("realprice"); // 商品折后价格
  436. _realprice = _realprice.toFixed(2);
  437. //订单信息
  438. var _goodsprice = _this.data("goodsprice"); // 商品小计
  439. var _dispatchprice = _this.data("dispatchprice"); // 运费
  440. var _deductprice = _this.data("deductprice"); // 抵扣金额
  441. var _discountprice = _this.data("discountprice"); // 优惠券金额
  442. var _vipdiscount = _this.data("vipdiscount"); // 会员折扣
  443. var _deductcredit2 = _this.data("deductcredit2"); // 余额抵扣
  444. var _deductenough = _this.data("deductenough"); // 满额立减
  445. var _changeprice = _this.data("changeprice"); // 改价优惠
  446. var _changedispatchprice = _this.data("changedispatchprice"); // 运费改价
  447. var _couponprice = _this.data("couponprice"); // 优惠券优惠
  448. var _price = _this.data("price"); // 实付费
  449. // var goodsprice = _this.data("goodsprice"); // 订单总额
  450. // dispatchprice+=Number(_dispatchprice);
  451. // price+=Number(_price);
  452. info.push({
  453. 'odsn':_ordersn,'goodname':_goodname,'goodshortname':_goodshortname,'goodssn':_goodssn,'productsn':_productsn,
  454. 'marketprice':_marketprice,
  455. 'productprice':_productprice,
  456. 'allprice':_allprice,
  457. 'total':_total,
  458. 'note':_note,
  459. 'goodoption':_goodoption,
  460. 'goodunit':_goodunit,
  461. 'goodweight':_goodweight,
  462. 'realprice':_realprice,
  463. 'goodsprice':_goodsprice,
  464. 'dispatchprice':_dispatchprice,
  465. 'discountprice':_discountprice,
  466. 'deductprice':_deductprice,
  467. 'vipdiscount':_vipdiscount,
  468. 'deductenough':_changeprice,'changedispatchprice':_changedispatchprice,'couponprice':_couponprice,
  469. 'price':_price
  470. });
  471. });
  472. $(checkeds).each(function(index){
  473. var _this = $(this).parent().next()
  474. var _ordersn = _this.data("ordersn") // 订单编号
  475. var _goodname = _this.data("goodtitle"); // 商品名称
  476. var _goodshortname = _this.data("shorttitle"); // 商品简称
  477. var _goodssn = _this.data("goodssn"); // 商品编码
  478. var _productsn = _this.data("productsn"); //商品条码
  479. var _marketprice = _this.data("marketprice"); //商品原价
  480. var _productprice = _this.data("productprice"); //商品现价
  481. var _allprice = _this.data("productprice") * _this.data("total"); // 商品总价
  482. _allprice = _allprice.toFixed(2);
  483. var _total = _this.data("total"); // 商品数量
  484. var _note = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; //备注栏
  485. var _goodoption = _this.data("goodoption"); // 商品规格
  486. var _goodunit = _this.data("goodunit"); // 商品单位
  487. var _goodweight = _this.data("goodweight"); // 商品重量
  488. var _realprice = _this.data("realprice"); // 商品折后价格
  489. _realprice = _realprice.toFixed(2);
  490. //订单信息
  491. var _goodsprice = _this.data("goodsprice"); // 商品小计
  492. var _dispatchprice = _this.data("dispatchprice"); // 运费
  493. var _deductprice = _this.data("deductprice"); // 抵扣金额
  494. var _discountprice = _this.data("discountprice"); // 优惠券金额
  495. var _vipdiscount = _this.data("vipdiscount"); // 会员折扣
  496. var _deductcredit2 = _this.data("deductcredit2"); // 余额抵扣
  497. var _deductenough = _this.data("deductenough"); // 满额立减
  498. var _changeprice = _this.data("changeprice"); // 改价优惠
  499. var _changedispatchprice = _this.data("changedispatchprice"); // 运费改价
  500. var _couponprice = _this.data("couponprice"); // 优惠券优惠
  501. var _price = _this.data("price"); // 实付费
  502. // var goodsprice = _this.data("goodsprice"); // 订单总额
  503. _html += '<tr>';
  504. // row += 1;
  505. $.each(values, function(iii,val) {
  506. str = '';
  507. dispatchStr='';
  508. if (val == 'price'){
  509. if(isMerge===false){
  510. str = 'rowspan='+rowLength+' style="text-align:center;"';
  511. _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+';">';
  512. _html += (price).toFixed(2);
  513. isMerge=true;
  514. }
  515. }else if (val == 'dispatchprice') {
  516. if (dispatchIsMerge ===false){
  517. dispatchStr = 'rowspan='+rowLength+' style="text-align:center;"';
  518. _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+';">';
  519. _html += (dispatchprice).toFixed(2);
  520. dispatchIsMerge=true;
  521. }
  522. }else{
  523. _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+';">';
  524. }
  525. // _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+';">';
  526. if(val=="printsn"){
  527. _html += index+1;
  528. }else{
  529. if (val == 'price'&&isMerge==true) {
  530. _html += '';
  531. }else if (val == 'dispatchprice'&&dispatchIsMerge==true){
  532. _html += '';
  533. }
  534. else {
  535. _html += info[index][val];
  536. }
  537. }
  538. _html += '</td>';
  539. });
  540. _html += '</tr>';
  541. });
  542. _html += '</table>';
  543. LODOP.ADD_PRINT_HTM(d.top+"px", d.left+"px", d.width+"px", d.height+"px", _html);
  544. }
  545. });
  546. // 获取打印状态
  547. if (LODOP.CVERSION) {
  548. LODOP.On_Return=function(TaskID,Value) {
  549. if (!Value) {
  550. alert("打印已取消");
  551. } else {
  552. alert("已提交至打印机");
  553. // 执行修改订单表数据
  554. if(thisCate==1){
  555. changeOrderPrintInfo("print1", rep_ordersn);
  556. }
  557. if(thisCate==2){
  558. changeOrderPrintInfo("print2", rep_ordersn);
  559. }
  560. }
  561. };
  562. LODOP.PREVIEW();
  563. return;
  564. };
  565. });
  566. $("#dosend").click(function(){
  567. var thisState = $(this).data("state");
  568. if(thisState>0){
  569. return;
  570. }
  571. // 遍历已选中订单
  572. var ordersns = [];
  573. $(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne").each(function() {
  574. var _this = $(this).parent().next();
  575. var ordersn = _this.data("ordersn");
  576. var inarray = $.inArray(ordersn,ordersns);
  577. if(inarray<0){
  578. ordersns.push(ordersn);
  579. }
  580. });
  581. // 初始化信息
  582. $(".dosend").text("执行发货").data("state",0);
  583. // 执行ajax
  584. $.ajax({
  585. type: 'POST',
  586. url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.getOrderState') !!}",
  587. data: {ordersns:ordersns},
  588. dataType:'json',
  589. async:false,
  590. success: function(result){
  591. result.printTemp.expresscom = !result.printTemp.expresscom?'其他快递':result.printTemp.expresscom;
  592. $("#modal-send").find("#expresscom").text(result.printTemp.expresscom).data({'expresscom':result.printTemp.expresscom,'express':result.printTemp.express});
  593. $("#modal-send").find("#printtempname").text(result.printTemp.expressname);
  594. $(".sendtable").html("");
  595. var _table = '<tr style="font-weight: bold;">';
  596. _table+='<td style="width:60px;">序号</td>';
  597. _table+='<td style="width: 200px;">订单号</td>';
  598. _table+='<td style="width: 80px;">订单状态</td>';
  599. _table+='<td style="width: 100px;">快递公司</td>';
  600. _table+='<td>';
  601. _table+='<span style="float: left; margin-left: 30px;">快递单号</span>';
  602. _table+='<a href="javascript:;" style="float: right;" onclick="autonum()"><i class="fa fa-angle-double-down"></i> 自动填充</a>';
  603. _table+='</td></tr>';
  604. $(".sendtable").html(_table);
  605. $.each(result.datas, function(i,arr) {
  606. var sn = i+1;
  607. var _html = '<tr data-state="'+arr.status+'" data-ordersn="'+arr.ordersn+'">';
  608. _html+='<td>'+sn+'</td>';
  609. _html+='<td>'+arr.ordersn+'</td>';
  610. _html+='<td>';
  611. if(arr.status==0){_html+='<label class="label label-danger">待付款</label>';}
  612. if(arr.status==1){_html+='<label class="label label-info">待发货</label>';}
  613. if(arr.status==2){_html+='<label class="label label-warning">待收货</label>';}
  614. if(arr.status==3){_html+='<label class="label label-success">已完成</label>';}
  615. _html+='</td>';
  616. _html+='<td>'
  617. //if(arr.status==0){_html+=' - ';}
  618. //if(arr.status==1){_html+=result.printTemp.expresscom;}
  619. //if(arr.status>1){_html+=arr.expresscom;}
  620. _html+='</td>';
  621. _html+='<td>';
  622. if(arr.status==0){_html+='<input class="form-control" type="tel" data-state="'+arr.status+'" value="" placeholder="订单状态为“待付款”无法发货" disabled="">';}
  623. if(arr.status==1){_html+='<input class="form-control" type="tel" data-state="'+arr.status+'" value="" placeholder="请输入单号">';}
  624. if(arr.status>1){_html+='<input class="form-control" type="tel" data-state="'+arr.status+'" value="'+arr.expresssn+'" disabled="">';}
  625. _html+='</td>';
  626. _html+='</tr>';
  627. // 获取订单状态 并且 赋给 #modal-send
  628. $(".sendtable").append(_html);
  629. // 显示 #modal-send
  630. $("#modal-send").modal();
  631. });
  632. }
  633. });
  634. });
  635. });
  636. </script>
  637. <script>
  638. //执行打印电子面单
  639. function printpanel(html_text, width, height, order_sn) {
  640. LODOP = getLodop($('#LODOP_OB'), $('#LODOP_EM'));
  641. console.log(LODOP);
  642. LODOP.PRINT_INITA("");
  643. // LODOP.PRINT_INIT(0, 0, width+'mm', height+'mm', '打印电子面单');
  644. LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW", 1); //自动关闭窗口
  645. LODOP.SET_PRINT_MODE("RESELECT_PRINTER", 1);
  646. LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS", 1); //设置打印模式
  647. // LODOP.SET_PRINT_MODE("POS_BASEON_PAPER",true); //“可打区域”边缘为基点
  648. LODOP.SET_PRINT_PAGESIZE(1, width+"mm", height, ""); //设定纸张大小及纵向打印
  649. // LODOP.SET_PRINT_PAGESIZE(0, width+"mm", height, ""); //设定纸张大小及纵向打印(test)
  650. LODOP.ADD_PRINT_HTML("0mm", "0mm", width+"mm", height, html_text);
  651. // LODOP.SET_PREVIEW_WINDOW(1, 2, 0, , , "打印电子面单.开始打印"); //设置预览窗口
  652. // LODOP.SELECT_PRINTER(); //选择打印设备
  653. // LODOP.PRINT();
  654. console.log('CVERSION:'+LODOP.CVERSION);
  655. if (LODOP.CVERSION) {
  656. LODOP.On_Return = function (TaskID, Value) {
  657. // TaskID1=LODOP.GET_VALUE("PRINT_STATUS_OK",P_ID);
  658. console.log('Value:'+Value+':TaskID'+TaskID);
  659. // if (LODOP.GET_VALUE('PRINT_STATUS_ID', 'PRINT_JOBID') == 128 || LODOP.GET_VALUE('PRINT_STATUS_ID','PRINT_JOBID') == 20) {
  660. // if (Value==1) {
  661. // alert('准备打印');
  662. // // return true;
  663. // // 修改订单打印状态
  664. // changeOrderPrintInfo('print3', order_sn);
  665. // }
  666. if(!Value) {
  667. // alert('打印已取消:value'+Value+',taskid:'+TaskID);
  668. alert('打印已取消');
  669. } else {
  670. alert('准备打印');
  671. // 修改订单打印状态
  672. changeOrderPrintInfo('print3', order_sn);
  673. }
  674. };
  675. LODOP.PREVIEW();
  676. return ;
  677. }
  678. }
  679. // 执行保存收件人信息
  680. function savesender(){
  681. var realname = $(":input[name=realname]").val();
  682. var mobile = $(":input[name=mobile]").val();
  683. var province = $(":input[name=province]").val();
  684. var city = $(":input[name=city]").val();
  685. var area = $(":input[name=area]").val();
  686. var address = $(":input[name=address]").val();
  687. // 遍历获取 订单号
  688. var ordersns = [];
  689. $(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne").each(function() {
  690. var _this = $(this).parent().next();
  691. var ordersn = _this.data("ordersn");
  692. var inarray = $.inArray(ordersn,ordersns);
  693. if(inarray<0){
  694. ordersns.push(ordersn);
  695. }
  696. });
  697. // ajax 执行写入数据库
  698. $.ajax({
  699. type: 'POST',
  700. url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.saveAddress') !!}",
  701. data: {
  702. realname:realname,
  703. mobile:mobile,
  704. province:province,
  705. city:city,
  706. area:area,
  707. address:address,
  708. ordersns:ordersns
  709. },
  710. dataType:'json',
  711. success: function(result){
  712. if(result.result=='error'){
  713. alert(result.resp);
  714. }
  715. }
  716. });
  717. }
  718. // 清除数据
  719. function cleardata(){
  720. $(".sendtable").find("input").each(function(){
  721. var _state = $(this).data("state");
  722. if(_state!=1){
  723. $(this).parent().parent().remove();
  724. }
  725. });
  726. }
  727. // 执行一键发货
  728. function dosend(){
  729. var _thisState = $(".dosend").data("state");
  730. if(_thisState==1){
  731. alert("正在执行...请稍候...");
  732. return;
  733. }
  734. if(_thisState==2){
  735. return;
  736. }
  737. var state = 0;
  738. $(".sendtable").find("input[data-state=1]").each(function(){
  739. if($(this).val()==''){
  740. alert("您还有未填写快递单号的订单哦~");
  741. Tip.focus($(this),'不能为空!');
  742. state = 1;
  743. return false;
  744. }
  745. });
  746. // 遍历输入框内容
  747. if(state==0){
  748. if(confirm('确定执行发货?')){
  749. $(".dosend").data("state",1);
  750. var total =$(".sendtable").find("input[data-state=1]").length;
  751. if(total<1){
  752. alert("当前可发货订单为空");
  753. return;
  754. }
  755. var expresscom = $("#modal-send").find("#expresscom").data("expresscom");
  756. var express = $("#modal-send").find("#expresscom").data("express");
  757. $(".sendtable").find("input[data-state=1]").each(function(i){
  758. var expresssn = $(this).val();
  759. var ordersn = $(this).parent().parent().data("ordersn");
  760. $.ajax({
  761. type: 'POST',
  762. url: "{!! yzWebUrl('plugin.exhelper.admin.doprint',array('op'=>'dosend','type'=>$type)) !!}",
  763. data: {ordersn:ordersn,expresssn:expresssn,expresscom:expresscom,express:express},
  764. dataType:'json',
  765. //async:false,
  766. success: function(result){
  767. if(result.result=='error'){
  768. alert(result.resp);
  769. }
  770. if(result.result=='success'){
  771. $(".dosend").text("正在执行...("+i+"/"+total+")");
  772. $(".sendtable").find("tr[data-ordersn="+ordersn+"]").find("input").attr("disabled","disabled").data("state",2);
  773. $(".sendtable").find("tr[data-ordersn="+ordersn+"]").find("label").removeClass("label-info").addClass("label-warning").text("待收货");
  774. $(".sendtable").find("tr[data-ordersn="+ordersn+"]").data("state",2);
  775. $(".allorder").find("table[data-ordersn="+ordersn+"]").find(".label-oss").removeClass("label-info").addClass("label-warning").text("待收货");
  776. }
  777. }
  778. });
  779. if(i+1==total){
  780. alert("发货完成");
  781. $(".dosend").text("发货完成");
  782. $(".dosend").data("state",2);
  783. }
  784. });
  785. }
  786. }
  787. }
  788. // 自动填充
  789. function autonum(){
  790. var indexval = $(".sendtable").find("input:first");
  791. console.log('indexval: '+indexval);
  792. var val = $.trim(indexval.val());
  793. console.log('val: '+val);
  794. if(val==''){
  795. Tip.focus(indexval,'不能为空!');
  796. return;
  797. }
  798. $(".sendtable").find("input[data-state=1]").each(function(){
  799. $(this).val(val);
  800. });
  801. }
  802. // 执行遍历发货信息并重组
  803. function changeSendInfo(){
  804. var arr = [];
  805. var sendInfo = '';
  806. $(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne").each(function(){
  807. var goodId = $(this).parent().next().data("goodid")
  808. var goodNum = $(this).parent().next().data("goodnum");
  809. var shortTitle = $(this).parent().next().data("shorttitle");
  810. var goodTitle = $(this).parent().next().data("goodtitle");
  811. var gTitle = !shortTitle?goodTitle:shortTitle;
  812. var state = -1;
  813. $.each(arr,function(i,d){
  814. if(d.id===goodId){
  815. state = i;
  816. return false;
  817. }
  818. });
  819. if(state>-1){
  820. arr[state].num += goodNum;
  821. }else{
  822. arr.push({'id':goodId,'title':gTitle,'num':goodNum});
  823. }
  824. });
  825. $.each(arr, function(i,v) {
  826. sendInfo += v.title + " x "+ v.num + "; ";
  827. });
  828. $(".sendinfo").val(sendInfo);
  829. }
  830. </script>
  831. <script>
  832. // 公共JS脚本
  833. $(function(){
  834. // 全选当前页面所有订单
  835. $(".cBoxOrderAll").click(function(){
  836. //$("#gset").attr("checked","checked");
  837. var _thisState = $(this).is(":checked");
  838. var ordersn = $('#orderinfo').attr('data-ordersn');
  839. if(_thisState){
  840. $(".allorder").find("input[type=checkbox]").each(function(){
  841. this.checked = true;
  842. });
  843. setPrintBtnState(0, ordersn);
  844. }else{
  845. $(".allorder").find("input[type=checkbox]").each(function(){
  846. this.checked = false;
  847. });
  848. setPrintBtnState(1, ordersn);
  849. }
  850. });
  851. $(".cBoxOrderOne").click(function(){
  852. var _thisState = $(this).is(":checked");
  853. if(_thisState){
  854. $(this).parent().parent().parent().parent().find("input[type=checkbox]").each(function(){
  855. this.checked = true;
  856. });
  857. }else{
  858. $(this).parent().parent().parent().parent().find("input[type=checkbox]").each(function(){
  859. this.checked = false;
  860. });
  861. }
  862. });
  863. $(".cBoxGood").click(function(){
  864. var _thisState = $(this).is(":checked");
  865. var _table = $(this).closest(".table");
  866. if(_thisState){
  867. _table.find(".cBoxGood").each(function(){
  868. _tS = $(this).is(":checked");
  869. if(!_tS){
  870. return;
  871. }
  872. _table.find(".cBoxOrderOne").each(function(){
  873. this.checked = true;
  874. });
  875. });
  876. }else{
  877. _table.find(".cBoxOrderOne").each(function(){
  878. this.checked = false;
  879. });
  880. }
  881. });
  882. $(".allorder").find("input[type=checkbox]").change(function(){
  883. // 设置 打印按钮状态
  884. var gBtn = $(".allorder").find("input[type=checkbox]:checked").not(".cBoxOrderOne").length;
  885. console.log('设置打印按钮状态-gBtn: ' + gBtn);
  886. var ordersn = $('#orderinfo').attr('data-ordersn');
  887. console.log('设置打印按钮状态-ordersn: '+ ordersn);
  888. if(gBtn<=0){
  889. setPrintBtnState(1, ordersn);
  890. }else{
  891. setPrintBtnState(0, ordersn);
  892. }
  893. // 遍历选择框
  894. $(".allorder").find(".cBoxGood").each(function(){
  895. var _thisState = $(this).is(":checked");
  896. if(!_thisState){
  897. $(".cBoxOrderAll").each(function(){
  898. this.checked = false;
  899. });
  900. return false;
  901. }
  902. $(".cBoxOrderAll").each(function(){
  903. this.checked = true;
  904. });
  905. });
  906. });
  907. // 修改商品短标题
  908. $(".editShort").click(function(){
  909. var _this = $(this);
  910. var _td = _this.parent();
  911. var clickDo = _this.data("do");
  912. var goodId = _td.data("goodid");
  913. var goodTitle = _td.data("goodtitle");
  914. var shortTitle = _td.data("shorttitle");
  915. if(clickDo=='e'){
  916. var gTitle = shortTitle?shortTitle:goodTitle;
  917. _this.text("保存");
  918. _td.find(".goodtitle").html("<input type='text' value='"+gTitle+"' style=' padding-left:0; margin-left:0;'>");
  919. _this.data("do","s");
  920. }
  921. else if(clickDo=='s'){
  922. var gTitle = _td.find(".goodtitle").find("input").val();
  923. if(!goodId){
  924. return;
  925. }
  926. // 执行ajax
  927. $.ajax({
  928. type: 'POST',
  929. url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.shortTitle') !!}",
  930. data: {goodid:goodId,shorttitle:gTitle},
  931. dataType:'json',
  932. success: function(d){
  933. // 成功 后执行
  934. var pTitle = !gTitle?goodTitle:gTitle;
  935. _td.data("shorttitle",pTitle).find(".goodtitle").html(pTitle);
  936. _this.text("编辑").data("do","e");
  937. $("td[data-goodid="+goodId+"]").each(function(){
  938. $(this).data("shorttitle",pTitle);
  939. $(this).find(".goodtitle").text(pTitle);
  940. $(this).find(".editShort").text("编辑").data("do","e");
  941. // 执行遍历重组发货信息
  942. changeSendInfo();
  943. });
  944. }
  945. });
  946. }
  947. });
  948. });
  949. function setPrintBtnState(d, ordersn){
  950. $.ajax({
  951. dataType: 'json',
  952. data: {ordersn: ordersn},
  953. url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.getOrderPrintStatus') !!}",
  954. success: function(res){
  955. console.log(res);
  956. if (res.result != 1) {
  957. alert(res.msg);
  958. } else {
  959. // editBtnClass(res.msg);
  960. }
  961. }
  962. });
  963. if(d==0){
  964. // 正常
  965. $("#doprint1").data("state",0).removeClass("btn-disabled").addClass("btn-primary");
  966. $("#doprint2").data("state",0).removeClass("btn-disabled").addClass("btn-warning");
  967. $("#doprint3").data("state",0).removeClass("btn-disabled").addClass("btn-default");
  968. $("#dosend").data("state",0).removeClass("btn-disabled").addClass("btn-success");
  969. }else{
  970. $("#doprint1").data("state",1).removeClass("btn-primary").addClass("btn-disabled");
  971. $("#doprint2").data("state",1).removeClass("btn-warning").addClass("btn-disabled");
  972. $("#doprint3").data("state",1).removeClass("btn-default").addClass("btn-disabled");
  973. $("#dosend").data("state",1).removeClass("btn-success").addClass("btn-disabled");
  974. }
  975. }
  976. // function editBtnClass(msg) {
  977. // if (msg.express_print_status == 1) {
  978. // //部分打印
  979. // } else if(msg.express_print_status == 2) {
  980. // //完全打印
  981. // $("#doprint1").data("state",0).removeClass("btn-default").addClass("btn-primary");
  982. // } else {
  983. // //未打印
  984. // $("#doprint1").data("state",1).removeClass("btn-primary").addClass("btn-default");
  985. // }
  986. // switch(msg.send_print_status) {
  987. // case '0':
  988. // //未打印快递单
  989. // $("#doprint2").data("state",1).removeClass("btn-warning").addClass("btn-default");
  990. // break;
  991. // case '1':
  992. // break;
  993. // default :
  994. // $("#doprint2").data("state",0).removeClass("btn-default").addClass("btn-warning");
  995. // break;
  996. // }
  997. // switch(msg.panel_print_status) {
  998. // case '0':
  999. // //未打印电子面单
  1000. // $("#doprint3").data("state",1).removeClass("btn-success").addClass("btn-default");
  1001. // break;
  1002. // case '1':
  1003. // break;
  1004. // default :
  1005. // $("#doprint3").data("state",0).removeClass("btn-default").addClass("btn-danger");
  1006. // break;
  1007. // }
  1008. // }
  1009. // 执行修改订单打印数据,修改样式
  1010. function changeOrderPrintInfo(pt, rep_ordersn) {
  1011. // alert('1.1');
  1012. // 遍历已选中的商品
  1013. var arr = [];
  1014. $(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne").each(function() {
  1015. var _this = $(this).parent().next();
  1016. // console.log('__this1 = '+_this.html());
  1017. var orderid = _this.data("orderid");
  1018. console.log('orderid: '+ orderid);
  1019. var ordergoodid = _this.data("ordergoodid");
  1020. console.log('ordergoodid: ' + ordergoodid);
  1021. arr.push({
  1022. orderid: orderid,
  1023. ordergoodid: ordergoodid
  1024. });
  1025. });
  1026. var column = '';
  1027. switch (pt) {
  1028. case 'print1' : column = 'express_print_status' ; break;
  1029. case 'print2' : column = 'send_print_status' ; break;
  1030. default : column = 'panel_print_status' ; break;
  1031. }
  1032. // console.log('get_order_id'+ orderid);
  1033. // 修改订单打印状态信息
  1034. $.ajax({
  1035. type: 'POST',
  1036. // url: "{php echo $this->createPluginWebUrl('exhelper/doprint',array('op'=>'pushdata','type'=>$type))}",
  1037. // url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.shortTitle') !!}",
  1038. url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.editOrderPrintStatus') !!}",
  1039. data: {
  1040. arr: arr,
  1041. // pt:pt
  1042. column: column
  1043. },
  1044. dataType: 'json',
  1045. success: function(d) {
  1046. console.log('d: '+JSON.stringify(d));
  1047. // if (d.result == 'success') {
  1048. if (d.result == 1) {
  1049. $(".allorder").find("input:checkbox:checked").not(".cBoxOrderOne").each(function() {
  1050. var _this = $(this).parent().parent();
  1051. // console.log('__this2 = '+_this.html());
  1052. if(pt=="print1"){
  1053. var _order = $(this).closest("tbody").find(".orderprintstate");
  1054. console.log('_order:' + _order);
  1055. var iconps1 = _this.find(".icon-ps1").data("printstate");
  1056. // 判断如果是未打印 则更改样式,如果是已经打印则更新打印次数
  1057. if (iconps1 < 1) {
  1058. _this.find(".icon-ps1").removeClass("label-default").addClass("label-primary").text("快递单 x 1").data("printstate", 1);
  1059. } else {
  1060. var num = iconps1 + 1;
  1061. _this.find(".icon-ps1").text("快递单 x " + num).data("printstate", num);
  1062. }
  1063. // 判断订单打印状态
  1064. _order.text("快递单已打印");
  1065. }
  1066. else if(pt=="print2"){
  1067. var _order = $(this).closest("tbody").find(".orderprintstate2");
  1068. var iconps2 = _this.find(".icon-ps2").data("printstate");
  1069. // 判断如果是未打印 则更改样式,如果是已经打印则更新打印次数
  1070. if (iconps2 < 1) {
  1071. // alert('<1');
  1072. _this.find(".icon-ps2").removeClass("label-default").addClass("label-success").text("发货单 x 1").data("printstate", 1);
  1073. console.log('num: ' + _this.find(".icon-ps2").removeClass("label-default").addClass("label-success").text("发货单 x 1").data("printstate"));
  1074. } else {
  1075. // alert('>1');
  1076. var num = iconps2 + 1;
  1077. if (num + 1 > 2) {return ;}
  1078. console.log('num: '+num);
  1079. _this.find(".icon-ps2").text("发货单 x " + num).data("printstate", num);
  1080. // _this.find(".icon-ps2").text("发货单已打印");
  1081. changeBtnNum(num, 'print2');
  1082. }
  1083. // 判断订单打印状态
  1084. _order.text("发货单已打印");
  1085. }
  1086. else {
  1087. //样式查找
  1088. var _order = $(this).closest("tbody").find(".orderprintstate3");
  1089. var iconps3 = _this.find(".test").data("printstate");
  1090. console.log('iconps3='+iconps3);
  1091. // 判断如果是未打印 则更改样式,如果是已经打印则更新打印次数
  1092. if (iconps3 < 1) {
  1093. // alert('<1');
  1094. _this.find(".test").removeClass("label-default").addClass("label-danger").text("电子面单 x 1").data("printstate", 1);
  1095. } else {
  1096. // alert('>1');
  1097. var num = iconps3 + 1;
  1098. console.log('num='+num);
  1099. _this.find(".test").text("电子面单 x " + num).data("printstate", num);
  1100. }
  1101. // 判断订单打印状态
  1102. _order.text("电子面单已打印");
  1103. }
  1104. });
  1105. }
  1106. }
  1107. });
  1108. // 写入打印记录
  1109. function changeBtnNum(num,btn) {
  1110. $.ajax({
  1111. type: 'POST',
  1112. url: "{!! yzWebUrl('plugin.exhelper.admin.print-once.editOrderPrintStatus') !!}",
  1113. dataType: 'json',
  1114. data: {num: num, column: btn},
  1115. })
  1116. .done(function() {
  1117. console.log("success");
  1118. })
  1119. .fail(function() {
  1120. console.log("error");
  1121. })
  1122. .always(function() {
  1123. console.log("complete");
  1124. });
  1125. }
  1126. }
  1127. </script>