deliver.js 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. $('#lager').click(function () {
  5. $('#iframe1').contentWindow.location.reload('lager.html');
  6. });
  7. Controller.api.bindevent();
  8. },
  9. lager: function () {
  10. // 初始化表格参数配置
  11. Table.api.init();
  12. this.table.first();
  13. this.table.second();
  14. Controller.api.bindevent();
  15. },
  16. table:{
  17. first:function (){
  18. var table = $("#table");
  19. // 初始化表格
  20. table.bootstrapTable({
  21. url: 'deliver/lager',
  22. pk: 'id',
  23. height:400,
  24. sortName: 'id',
  25. toolbar:'#toolbar',
  26. searchFormVisible:true,
  27. onClickRow:function(row, $element, field)
  28. {
  29. $("#myTabContent1 .form-commonsearch input[name='large_id']").val(row.id);
  30. $("#myTabContent1 .btn-refresh").trigger("click");
  31. },
  32. search:false,
  33. showToggle:false,
  34. showColumns:false,
  35. showExport:false,
  36. columns: [
  37. [
  38. {checkbox: true},
  39. {field: 'id', title: 'ID', visible:false,operate: false},
  40. {field: 'bach', title: __('批次号'),operate: "LIKE"},
  41. {field: 'l_flow', title: __('托盘号'), operate: false},
  42. {field: 'matter_name', title: __('辅料名称'), operate: 'LIKE',searchList: $.getJSON("deliver/matterName")},
  43. {field: 'manufacture_date', title: '生产日期', operate: 'RANGE', addclass: 'datetimerange',datetimeFormat:'YYYY-MM-DD', formatter: Table.api.formatter.datetime},
  44. {field: 'code', title: __('大件编码'), operate: false},
  45. {field: 'small_num', title: __('小件数'),operate: false},
  46. ]
  47. ]
  48. });
  49. // 监听复选框点击事件
  50. $('#table').on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function(e, rows) {
  51. var selectedData = table.bootstrapTable('getSelections'); // 获取选中的数据
  52. // 计算选中的大件数量和小件数量
  53. // 大件数量(选中的行数)
  54. var largeItemCount = selectedData.length;
  55. var smallItemCount = selectedData.reduce(function(total, row) {
  56. // 累加每个选中项的 small_num
  57. return total + (row.small_num || 0);
  58. }, 0);
  59. // 更新页面上的提示信息
  60. $('p span').eq(1).text(largeItemCount); // 更新大件数量
  61. $('p span').eq(3).text(smallItemCount); // 更新小件数量
  62. });
  63. //导出发货按钮
  64. $('.btn-print').on('click',function () {
  65. var ids = Table.api.selectedids(table);
  66. if (ids.length === 0){
  67. alert('至少选择一个大件');
  68. }
  69. var lager = ids.toString();
  70. // window.location.href = 'print?lager_id='+lager;
  71. Fast.api.ajax({
  72. url:'deliver/print',
  73. data:{lager_id:lager},
  74. },function (data,res) {
  75. if (res.code == 1){
  76. window.location.href = '/'+res.data;
  77. table.bootstrapTable('refresh');
  78. }
  79. return false;
  80. },function (data,res) {
  81. if (res.code == 0){
  82. layer.confirm(res.msg);
  83. }
  84. return false;
  85. })
  86. })
  87. // 为表格绑定事件
  88. Table.api.bindevent(table);
  89. //去掉时间区间记忆
  90. table.on('post-body.bs.table',function (e,settings,json,xhr) {
  91. $('.datetimerange').each(function () {
  92. $(this).attr('autocomplete','off');
  93. })
  94. });
  95. }, second:function(){
  96. //小件列表
  97. var smallTable = $('#small_table');
  98. smallTable.bootstrapTable({
  99. url:'deliver/smallList',
  100. height: 300,
  101. toolbar: '#toolbar1',
  102. search:false,
  103. // commonSearch:false,
  104. showToggle:false,
  105. showColumns:false,
  106. showExport:false,
  107. columns: [
  108. [
  109. {field: 'large_id',title: __('大件id'),operate: 'LIKE',visible:false},
  110. {field: 'code', title: __('小件标签代码'),operate: false},
  111. {field: 'l_flow', title: __('当前序号'),operate: false},
  112. {field: 'print_num', title: __('打印次数'),operate: false},
  113. {field: 'status', title: __('状态'),searchList: {"0":'正常',"1":'已删除'},operate: false,formatter: Table.api.formatter.status},
  114. ]
  115. ]
  116. });
  117. // 为表格绑定事件
  118. Table.api.bindevent(smallTable);
  119. }
  120. },
  121. apply: function () {
  122. // 初始化表格参数配置
  123. Table.api.init({
  124. extend: {
  125. index_url: 'deliver/apply' + location.search,
  126. goods_url: 'deliver/goods',
  127. del_url:'deliver/apply_del',
  128. table:'deliver'
  129. }
  130. });
  131. var table = $("#table2");
  132. // 初始化表格
  133. table.bootstrapTable({
  134. url: $.fn.bootstrapTable.defaults.extend.index_url,
  135. pk: 'id',
  136. height:400,
  137. sortName: 'id',
  138. searchFormVisible:true,
  139. search:false,
  140. showToggle:false,
  141. showColumns:false,
  142. showExport:false,
  143. fixedColumns: true,
  144. fixedRightNumber: 1,
  145. columns: [
  146. [
  147. {checkbox: true},
  148. {field: 'id', title: __('Id'),visible:false,operate: false},
  149. {field: 'matter_name', title: '辅料名称', operate: 'LIKE',searchList: $.getJSON("deliver/matterName")},
  150. {field: 'matter_no', title: '辅料编码', operate: false},
  151. {field: 'username', title: '所属用户', operate: 'LIKE'},
  152. {field: 'large_num', title: '大件数量', operate: false},
  153. {field: 'small_num', title: '小件数量', operate: false},
  154. {field: 'create_time', title: '创建时间', operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
  155. {field: 'file_dir', title: '下载路径', operate: false,formatter: function (value,row,index) {
  156. if (row.status == 0){
  157. return "<a href=/"+value+">点击下载</a>";
  158. }else {
  159. return "不支持下载";
  160. }
  161. }},
  162. {field: 'status', title: '状态', operate: 'LIKE',searchList: {"0":'待发货',"1":'已删除'}, formatter: Table.api.formatter.status},
  163. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  164. ]
  165. ],
  166. });
  167. // 为表格绑定事件
  168. Table.api.bindevent(table);
  169. //发货按钮
  170. $('.btn-goods').on('click',function () {
  171. var ids = Table.api.selectedids(table);
  172. if (ids.length === 0){
  173. alert('至少选择一个订单');
  174. }
  175. var id_str = ids.toString();
  176. Fast.api.open('deliver/goods?ids='+id_str,'发货信息',{area:["60%","60%"]})
  177. });
  178. //去掉时间区间输入记忆
  179. table.on('post-body.bs.table',function (e,settings,json,xhr) {
  180. $('.datetimerange').each(function () {
  181. $(this).attr('autocomplete','off');
  182. })
  183. });
  184. Controller.api.bindevent();
  185. },
  186. goods: function () {
  187. $('#apply_btn').click(function () {
  188. var ids = $('#goods_id').val();
  189. var order_number = $('#c-order_number').val();
  190. if (order_number == null || order_number === ''){
  191. layer.confirm('订单号不能为空');
  192. }
  193. var deliveryman = $('#c-deliveryman').val();
  194. if (deliveryman == null || deliveryman === ''){
  195. layer.confirm('司机名称不能为空');
  196. }
  197. var shr_phone = $('#c-shr_phone').val();
  198. if (shr_phone == null || shr_phone === ''){
  199. layer.confirm('手机号不能为空');
  200. }
  201. var plate_number = $('#c-plate_number').val();
  202. if (plate_number == null || plate_number === ''){
  203. layer.confirm('车牌号不能为空');
  204. }
  205. var note = $('c-note').val();
  206. Fast.api.ajax({
  207. url:'deliver/apply_add',
  208. data:{
  209. ids:ids,
  210. order_number:order_number,
  211. deliveryman:deliveryman,
  212. shr_phone:shr_phone,
  213. plate_number:plate_number,
  214. note:note,
  215. }
  216. },function (data,res) {
  217. parent.Toastr.success("成功");
  218. Fast.api.close();
  219. window.parent.location.reload();
  220. return false;
  221. },function (data) {
  222. parent.Toastr.error('失败');
  223. Fast.api.close();
  224. window.parent.location.reload();
  225. return false;
  226. })
  227. });
  228. Controller.api.bindevent();
  229. },
  230. dispatch: function () {
  231. // 初始化表格参数配置
  232. Table.api.init({
  233. extend: {
  234. index_url: 'deliver/dispatch' + location.search,
  235. del_url:'deliver/dispatch_del',
  236. table:'deliver'
  237. }
  238. });
  239. var table = $("#table3");
  240. // 定义客户与地址映射表
  241. var addressMap = {
  242. "河南中烟工业有限责任公司黄金叶生产制造中心": "河南省郑州市经开区第三大街9号",
  243. "河南中烟工业有限责任公司南阳卷烟厂": "河南省南阳市宛城区新华东路6号",
  244. "河南中烟工业有限责任公司驻马店卷烟厂": "河南省驻马店市驿城区南海路1号",
  245. "河南中烟工业有限责任公司洛阳卷烟厂": "河南省洛阳市洛龙区玉林路266号",
  246. "河南中烟工业有限责任公司许昌卷烟厂": "河南省许昌市建安区魏武大道,明礼街",
  247. "河南中烟工业有限责任公司漯河卷烟厂": "河南省漯河市召陵区漓江路与庐山路交叉口东北280米",
  248. "河南中烟工业有限责任公司安阳卷烟厂": "河南省安阳市龙安区烟厂路与彩安路交叉口北100路西"
  249. };
  250. var selectedCustomerName = '';
  251. var selectedAddress = '';
  252. // 客户下拉选择绑定事件(放在这里确保页面加载后再绑定)
  253. $(document).on('change', '#customer-select', function () {
  254. selectedCustomerName = $(this).val();
  255. selectedAddress = addressMap[selectedCustomerName];
  256. console.log(selectedCustomerName)
  257. console.log(selectedAddress)
  258. });
  259. // 初始化表格
  260. table.bootstrapTable({
  261. url: $.fn.bootstrapTable.defaults.extend.index_url,
  262. pk: 'id',
  263. height:400,
  264. sortName: 'id',
  265. searchFormVisible:true,
  266. showToggle:false,
  267. showColumns:false,
  268. showExport:false,
  269. fixedColumns: true,
  270. fixedRightNumber: 1,
  271. columns: [
  272. [
  273. {checkbox: true},
  274. {field: 'id', title: __('Id'),visible:false,operate: false},
  275. {field: 'shdh', title: '收货单号', operate: false},
  276. {field: 'order_number', title: '订单号', operate: 'LIKE'},
  277. {field: 'deliveryman', title: '司机', operate: false},
  278. {field: 'plate_number', title: '车牌号', operate: false},
  279. {field: 'supplier_name', title: '供应商名称', operate: 'LIKE'},
  280. {field: 'create_time', title: '发货时间', operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
  281. {field: 'buttons',
  282. width: "120px",
  283. title: __('发货单打印'),
  284. operate: false,
  285. table: table,
  286. events: Table.api.events.operate,
  287. buttons: [
  288. {
  289. name: 'ajax',
  290. text: __('点击打印'),
  291. title: __('点击打印'),
  292. classname: 'btn btn-xs btn-success btn-magic btn-ajax',
  293. icon: 'fa fa-magic',
  294. url: 'deliver/printqrcode/id/{ids}',
  295. // confirm: '确认发送',
  296. success: function (data,res) {
  297. if (res.code === 1){
  298. // 定义默认值
  299. var defaultCustomerName = "河南中烟工业有限责任公司黄金叶生产制造中心";
  300. var defaultAddress = "河南省郑州市经开区第三大街9号";
  301. var printCustomerName = selectedCustomerName || defaultCustomerName;
  302. var printAddress = selectedAddress || defaultAddress;
  303. console.log(printCustomerName);
  304. console.log(printAddress);
  305. var arr = res.data.data;
  306. var note='';
  307. var html = '<div style="width: 1100px;height: 100px;position: relative;">\n' +
  308. ' <div style="float: left">\n' +
  309. ' <div style="width: 1000px;font-weight: 400;font-size: 28px;text-align: center;line-height: 50px;" class="company">'+res.data.supplier_name+'</div>\n' +
  310. ' <div style="width: 1000px;font-weight: 400;font-size: 24px;text-align: center;line-height: 50px;">送货单</div>\n' +
  311. ' </div>\n' +
  312. ' <div id="qrcode" style="display:inline-block;width: 105px;height: 105px;position: absolute;right: 100px;top: -5px;">\n' +
  313. ' <img src="" style="width: 105px;height: 105px;" id="qrcode_image"/>\n' +
  314. ' </div>\n' +
  315. ' </div>\n' +
  316. ' <table class="tg1" style="margin-top: 3px;border-collapse:collapse;border-spacing:0;font-weight:500;width:1186px">\n' +
  317. ' <tr class="info">\n' +
  318. ' <td colspan="6" style="border:none">客户名称:' + printCustomerName + '</td>\n' +
  319. ' <td colspan="4" style="border:none">送货单号:<span style="font-size: 16px;" id="shdh">'+res.data.shdh+'</span></td>\n' +
  320. ' </tr>\n' +
  321. ' <tr class="info">\n' +
  322. ' <td colspan="6" style="border:none">送货地址:' + printAddress + '</td>\n' +
  323. ' <td colspan="4" style="border:none">送货日期:<span style="font-size: 16px;" id="shrq_date">'+res.data.shrq_date+'</span></td>\n' +
  324. ' </tr>\n' +
  325. ' </table>\n' +
  326. ' <br>\n' +
  327. ' <table class="tg1" style="table-layout:fixed;width: 1100px;border-collapse:collapse;border-spacing:0;font-weight:500; position: relative;" id="table">'+
  328. ' <tr><th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 140px;">物料名称</th>' +
  329. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;;width: 140px;">生产批号</th>' +
  330. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 90px;">大件</th>' +
  331. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 90px;">小件</th>' +
  332. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 90px;">单位</th>' +
  333. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 130px;">实发数量</th>' +
  334. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 140px;">备注</th>' +
  335. ' <th id="explain" rowspan="'+(res.data.count+1)+'" width="7%" style="border: none"><span style="writing-mode: tb-rl;height: 300px;font-size:16px;text-align: center;">' +
  336. ' 蓝联(回):业务 黄联(回):运输 '+'<br>'+'白联:存根 红联:财务 绿联:客户</span></th></tr>';
  337. for (var i=0;i < arr.length;i++){
  338. html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].matter_name+'</td>';
  339. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+(arr[i].bach_num?arr[i].bach_num:'')+'</td>';
  340. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].large_num+'</td>';
  341. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'</td>';
  342. if(arr[i].mater_type==1){
  343. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">万张</td>';
  344. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].l_num+'</td>';
  345. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseInt(arr[i].num)+'张'+'</td>';
  346. }else if (arr[i].mater_type==2){
  347. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">kg</td>';
  348. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].l_weight +'</td>';
  349. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseFloat(arr[i].num)/1000+'kg'+'</td>';
  350. }else if (arr[i].mater_type==3){
  351. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">万支</td>';
  352. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+parseFloat(arr[i].num)*parseFloat(arr[i].small_num)/10000+'</td>';
  353. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseInt(arr[i].num)+'支'+'</td>';
  354. }
  355. }
  356. html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">送货单备注</td>' +
  357. ' <td colspan="6" class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+res.data.note+'</td></tr>'+
  358. ' </table>\n' +
  359. ' <table class="tg2" style="margin-top: 3px;border-collapse:collapse;border-spacing:0;font-weight:500;width:1086px;font-size: 16px;">\n' +
  360. ' <tr class="footer">\n' +
  361. ' <td colspan="3">发货单位:<span class="company">'+res.data.supplier_name+'</span></td>\n' +
  362. ' <td colspan="3">司机/司机电话:<span id="deliveryman">'+res.data.deliveryman+'&nbsp;&nbsp;'+res.data.shr_phone+'</span></td>\n' +
  363. ' <td colspan="3">车牌号:<span id="carid">'+res.data.plate_number+'</span></td>\n' +
  364. ' </tr>\n' +
  365. ' <tr class="footer">\n' +
  366. ' <td colspan="7">发货单位地址:<span id="address">'+res.data.address+'</span></td>\n' +
  367. ' <td colspan="3">收货单位(签名、盖章)</td>\n' +
  368. ' </tr>\n' +
  369. ' </table>'
  370. $("#printcode").html(html)
  371. var ee = $('#qrcode_image').attr('src',res.data.qrcode_add);
  372. // 将打印的区域赋值,进行打印
  373. ee.on('load',function () {
  374. var printHTML = document.querySelector('#printcode').innerHTML;
  375. window.document.body.innerHTML = printHTML;
  376. window.print();
  377. window.location.reload(); // 打印完成后重新加载页面
  378. })
  379. }
  380. return false;
  381. },
  382. error: function (data, ret) {
  383. return false;
  384. }
  385. },
  386. ],
  387. formatter: Table.api.formatter.buttons
  388. },
  389. {field: 'status', title: '状态', operate: 'LIKE',searchList: {"0":'已发货',"1":'已删除'}, formatter: Table.api.formatter.status},
  390. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  391. ]
  392. ],
  393. });
  394. // 为表格绑定事件
  395. Table.api.bindevent(table);
  396. //去掉时间区间输入记忆
  397. table.on('post-body.bs.table',function (e,settings,json,xhr) {
  398. $('.datetimerange').each(function () {
  399. $(this).attr('autocomplete','off');
  400. })
  401. });
  402. Controller.api.bindevent();
  403. },
  404. receive: function () {
  405. // 初始化表格参数配置
  406. Table.api.init({
  407. extend: {
  408. index_url: 'deliver/receive' + location.search,
  409. del_url:'deliver/receive_del',
  410. table:'deliver'
  411. }
  412. });
  413. var table = $("#table");
  414. // 定义客户与地址映射表
  415. var addressMap = {
  416. "河南中烟工业有限责任公司黄金叶生产制造中心": "河南省郑州市经开区第三大街9号",
  417. "河南中烟工业有限责任公司南阳卷烟厂": "河南省南阳市宛城区新华东路6号",
  418. "河南中烟工业有限责任公司驻马店卷烟厂": "河南省驻马店市驿城区南海路1号",
  419. "河南中烟工业有限责任公司洛阳卷烟厂": "河南省洛阳市洛龙区玉林路266号",
  420. "河南中烟工业有限责任公司许昌卷烟厂": "河南省许昌市建安区魏武大道,明礼街",
  421. "河南中烟工业有限责任公司漯河卷烟厂": "河南省漯河市召陵区漓江路与庐山路交叉口东北280米",
  422. "河南中烟工业有限责任公司安阳卷烟厂": "河南省安阳市龙安区烟厂路与彩安路交叉口北100路西"
  423. };
  424. var selectedCustomerName = '';
  425. var selectedAddress = '';
  426. // 客户下拉选择绑定事件(放在这里确保页面加载后再绑定)
  427. $(document).on('change', '#customer-select', function () {
  428. selectedCustomerName = $(this).val();
  429. selectedAddress = addressMap[selectedCustomerName];
  430. console.log(selectedCustomerName)
  431. console.log(selectedAddress)
  432. });
  433. // 初始化表格
  434. table.bootstrapTable({
  435. url: $.fn.bootstrapTable.defaults.extend.index_url,
  436. pk: 'id',
  437. height:500,
  438. sortName: 'id',
  439. searchFormVisible:true,
  440. showToggle:false,
  441. showColumns:false,
  442. showExport:false,
  443. fixedColumns: true,
  444. fixedRightNumber: 1,
  445. columns: [
  446. [
  447. {checkbox: true},
  448. {field: 'id', title: __('Id'),visible:false,operate: false},
  449. {field: 'shdh', title: '送货单号', operate: false},
  450. {field: 'order_number', title: '订单号', operate: 'LIKE'},
  451. {field: 'deliveryman', title: '司机', operate: false},
  452. {field: 'plate_number', title: '车牌号', operate: false},
  453. {field: 'supplier_name', title: '供应商名称', operate: 'LIKE'},
  454. {field: 'create_time', title: '发货时间', operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
  455. {field: 'buttons', operate: false,
  456. width: "120px",
  457. title: __('发货单打印'),
  458. table: table,
  459. events: Table.api.events.operate,
  460. buttons: [
  461. {
  462. name: 'ajax',
  463. text: __('点击打印'),
  464. title: __('点击打印'),
  465. classname: 'btn btn-xs btn-success btn-magic btn-ajax',
  466. icon: 'fa fa-magic',
  467. url: 'deliver/printqrcode/id/{ids}',
  468. // confirm: '确认发送',
  469. success: function (data,res) {
  470. if (res.code === 1){
  471. // 定义默认值
  472. var defaultCustomerName = "河南中烟工业有限责任公司黄金叶生产制造中心";
  473. var defaultAddress = "河南省郑州市经开区第三大街9号";
  474. var printCustomerName = selectedCustomerName || defaultCustomerName;
  475. var printAddress = selectedAddress || defaultAddress;
  476. console.log(printCustomerName);
  477. console.log(printAddress);
  478. var arr = res.data.data;
  479. var note='';
  480. var html = '<div style="width: 1100px;height: 100px;position: relative;">\n' +
  481. ' <div style="float: left">\n' +
  482. ' <div style="width: 1000px;font-weight: 400;font-size: 28px;text-align: center;line-height: 50px;" class="company">'+res.data.supplier_name+'</div>\n' +
  483. ' <div style="width: 1000px;font-weight: 400;font-size: 24px;text-align: center;line-height: 50px;">送货单</div>\n' +
  484. ' </div>\n' +
  485. ' <div id="qrcode" style="display:inline-block;width: 105px;height: 105px;position: absolute;right: 100px;top: -5px;">\n' +
  486. ' <img src="" style="width: 105px;height: 105px;" id="qrcode_image"/>\n' +
  487. ' </div>\n' +
  488. ' </div>\n' +
  489. ' <table class="tg1" style="margin-top: 3px;border-collapse:collapse;border-spacing:0;font-weight:500;width:1186px">\n' +
  490. ' <tr class="info">\n' +
  491. ' <td colspan="6" style="border:none">客户名称:' + printCustomerName + '</td>\n' +
  492. ' <td colspan="4" style="border:none">送货单号:<span style="font-size: 16px;" id="shdh">'+res.data.shdh+'</span></td>\n' +
  493. ' </tr>\n' +
  494. ' <tr class="info">\n' +
  495. ' <td colspan="6" style="border:none">送货地址:' + printAddress + '</td>\n' +
  496. ' <td colspan="4" style="border:none">送货日期:<span style="font-size: 16px;" id="shrq_date">'+res.data.shrq_date+'</span></td>\n' +
  497. ' </tr>\n' +
  498. ' </table>\n' +
  499. ' <br>\n' +
  500. ' <table class="tg1" style="table-layout:fixed;width: 1100px;border-collapse:collapse;border-spacing:0;font-weight:500; position: relative;" id="table">'+
  501. ' <tr><th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 140px;">物料名称</th>' +
  502. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 140px;">生产批号</th>' +
  503. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 90px;">大件</th>' +
  504. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 90px;">小件</th>' +
  505. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 90px;">单位</th>' +
  506. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 130px;">实发数量</th>' +
  507. ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;width: 140px;">备注</th>' +
  508. ' <th id="explain" rowspan="'+(res.data.count+1)+'" width="7%" style="border: none"><span style="writing-mode: tb-rl;height: 300px;font-size:16px;text-align: center;">' +
  509. ' 蓝联(回):业务 黄联(回):运输 '+'<br>'+'白联:存根 红联:财务 绿联:客户</span></th></tr>';
  510. for (var i=0;i < arr.length;i++){
  511. html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].matter_name+'</td>';
  512. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+(arr[i].bach_num?arr[i].bach_num:'')+'</td>';
  513. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].large_num+'</td>';
  514. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'</td>';
  515. if(arr[i].mater_type==1){
  516. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">万张</td>';
  517. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].l_num+'</td>';
  518. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseInt(arr[i].num)+'张'+'</td>';
  519. }else if (arr[i].mater_type==2){
  520. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">kg</td>';
  521. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].l_weight +'</td>';
  522. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseFloat(arr[i].num)/1000+'kg'+'</td>';
  523. }else if (arr[i].mater_type==3){
  524. html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">万支</td>';
  525. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+parseFloat(arr[i].num)*parseFloat(arr[i].small_num)/10000+'</td>';
  526. html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseInt(arr[i].num)+'支'+'</td>';
  527. }
  528. }
  529. html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">送货单备注</td>' +
  530. ' <td colspan="6" class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+res.data.note+'</td></tr>'+
  531. ' </table>\n' +
  532. ' <table class="tg2" style="margin-top: 3px;border-collapse:collapse;border-spacing:0;font-weight:500;width:1086px;font-size: 16px;">\n' +
  533. ' <tr class="footer">\n' +
  534. ' <td colspan="3">发货单位:<span class="company">'+res.data.supplier_name+'</span></td>\n' +
  535. ' <td colspan="3">司机/司机电话:<span id="deliveryman">'+res.data.deliveryman+'&nbsp;&nbsp;'+res.data.shr_phone+'</span></td>\n' +
  536. ' <td colspan="3">车牌号:<span id="carid">'+res.data.plate_number+'</span></td>\n' +
  537. ' </tr>\n' +
  538. ' <tr class="footer">\n' +
  539. ' <td colspan="7">发货单位地址:<span id="address">'+res.data.address+'</span></td>\n' +
  540. ' <td colspan="3">收货单位(签名、盖章)</td>\n' +
  541. ' </tr>\n' +
  542. ' </table>'
  543. $("#printcode").html(html)
  544. var ee = $('#qrcode_image').attr('src',res.data.qrcode_add);
  545. // 将打印的区域赋值,进行打印
  546. ee.on('load',function () {
  547. var printHTML = document.querySelector('#printcode').innerHTML;
  548. window.document.body.innerHTML = printHTML;
  549. window.print();
  550. window.location.reload(); // 打印完成后重新加载页面
  551. })
  552. }
  553. return false;
  554. },
  555. error: function (data, ret) {
  556. return false;
  557. }
  558. },
  559. ],
  560. formatter: Table.api.formatter.buttons
  561. },
  562. {field: 'status', title: '状态', operate: 'LIKE',searchList: {"0":'未收货',"2":'已收货'},defaultValue:'1', formatter: Table.api.formatter.status},
  563. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  564. ]
  565. ],
  566. });
  567. $('#receive').click(function (){
  568. var shdh = $('#shdh').val();
  569. if (shdh!=''){
  570. $.get('deliver/receive_add',{'shdh':shdh},function (res){
  571. if (res.code==1){
  572. //修改成功
  573. //1. 提示
  574. Toastr.success(res.msg)
  575. //2. 刷新页面
  576. table.bootstrapTable('refresh');
  577. }else{
  578. Toastr.error(res.msg)
  579. }
  580. })
  581. }
  582. })
  583. // 为表格绑定事件
  584. Table.api.bindevent(table);
  585. Controller.api.bindevent();
  586. },
  587. api: {
  588. bindevent: function () {
  589. Form.api.bindevent($("form[role=form]"));
  590. }
  591. }
  592. };
  593. return Controller;
  594. });