supplier_print_tpl_detail.blade.php 65 KB

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