convey.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. {extend name="common/common2" /}
  2. {block name="main"}
  3. <style>
  4. .ys-color1{
  5. color: #ffffff;
  6. background-color: #acb3d8;
  7. }
  8. .ys-color2{
  9. color: #ffffff;
  10. background-color: #fff500;
  11. }
  12. .ys-color3{
  13. color: #ffffff;
  14. background-color: #ec891a;
  15. }
  16. .ys-color4{
  17. color: #ffffff;
  18. background-color: #e45946;
  19. }
  20. .ys-yellow{
  21. /*color: #CC6600;*/
  22. }
  23. .input-group{
  24. margin-bottom: 10px;
  25. }
  26. .ui-jqgrid tr.jqgrow td {
  27. white-space: normal !important;
  28. height:auto;
  29. vertical-align:text-top;
  30. padding-top:10px;
  31. word-wrap: break-word!important;
  32. }
  33. .cur1{
  34. float: right;
  35. margin-left: 3px;
  36. cursor: auto;
  37. }
  38. .cur2{
  39. background: #0000!important;
  40. border-color: #0000;
  41. color: black;
  42. font-size: 20px;
  43. line-height: 20px;
  44. }
  45. .yd{
  46. color: #023894;
  47. }
  48. </style>
  49. <div class="ibox">
  50. <div class="ibox-content">
  51. <div class="row">
  52. <div class="col-xs-12" style="text-align: right;">
  53. <form class="form-inline" id="form-search" action="{:url('convey')}?mode={$mode}">
  54. <div class="input-group">
  55. <input type="text" class="form-control" name="ysname" placeholder="运送员">
  56. </div>
  57. <div class="input-group">
  58. <input class="form-control" id="start" readonly placeholder="需求时间" name="xqtime" >
  59. </div>
  60. <div class="input-group">
  61. <input class="form-control" id="end" readonly placeholder="应完成时间" name="ywctime" >
  62. </div>
  63. <div class="input-group">
  64. <select name="priority" class="form-control">
  65. <option value="">优先级</option>
  66. <option value="1">可延缓的</option>
  67. <option value="2">常规</option>
  68. <option value="3">紧急</option>
  69. <option value="4">预约</option>
  70. </select>
  71. </div>
  72. <div class="input-group">
  73. <select name="type" class="form-control">
  74. <option value="">运送类型</option>
  75. {foreach $order_type_list as $k=>$v}
  76. <option value="{$v['id']}">{$v['title']}</option>
  77. {/foreach}
  78. </select>
  79. </div>
  80. <div class="input-group">
  81. <select name="status" class="form-control">
  82. <option value="">选择状态</option>
  83. <option value="1">新任务</option>
  84. <option value="2">进行中</option>
  85. <option value="3">延时中</option>
  86. </select>
  87. </div>
  88. <div class="input-group">
  89. <select name="start" class="form-control">
  90. <option value="">开始地点</option>
  91. {foreach $address as $k=>$v}
  92. <option value="{$v['id']}">{$v['title']}</option>
  93. {/foreach}
  94. </select>
  95. </div>
  96. <div class="input-group">
  97. <select name="end" class="form-control">
  98. <option value="">结束地点</option>
  99. {foreach $address as $k=>$v}
  100. <option value="{$v['id']}">{$v['title']}</option>
  101. {/foreach}
  102. </select>
  103. </div>
  104. <div class="input-group">
  105. <span class="input-group-btn">
  106. <button class="btn-sm btn-primary" type="button" id ="search-btn" ><i class="fa fa-search"></i></button>
  107. </span> &nbsp;
  108. <span class="input-group-btn">
  109. <button class="btn-sm btn-warning" type="button" id="search-clear"><i class="fa fa-undo"></i></button>
  110. </span>
  111. </div>
  112. </form>
  113. </div>
  114. </div>
  115. </div>
  116. <div class="ibox-content">
  117. <a href="javascript:;" url="{:url('dispatchAdd',[],'')}/mode/3" data-title="创建运送订单" onclick="layer_open(this,1)" class="btn btn-sm btn-primary">新增</a>
  118. <a href="javascript:;" url="{:url('batchsend',[],'')}/mode/3" data-title="派工" class="btn btn-sm btn-primary paiGong">派工</a>
  119. <a href="javascript:;" class="btn btn-sm btn-primary finish">完成</a>
  120. <a href="javascript:;" class="btn btn-sm btn-primary quxiao">取消</a>
  121. <a href="javascript:;" class="btn btn-sm btn-primary yanchi">延迟</a>
  122. <a href="javascript:;" class="btn btn-sm btn-primary quxiaoyanchi">取消延迟</a>
  123. <a href="javascript:;" class="btn btn-sm btn-primary ysystatus">运送员状态</a>
  124. <a href="javascript:;" class="btn btn-sm btn-primary bhgd">驳回工单{if $count>0}({$count}){/if}</a>
  125. <a href="javascript:;" class="cur1 btn btn-sm btn-success">已取消(<span id="yqx">0</span>)</a>
  126. <a href="javascript:;" class="cur1 btn btn-sm btn-success">已完成(<span id="ywc">0</span>)</a>
  127. <a href="javascript:;" class="cur1 btn btn-sm btn-success">已派发(<span id="ypf">0</span>)</a>
  128. <a href="javascript:;" class="cur1 btn btn-sm btn-success">待处理(<span id="dcl">0</span>)</a>
  129. <a href="javascript:;" class="cur1 cur2 btn btn-sm btn-success">当日数据:</a>
  130. <br/>
  131. <br/>
  132. <div style="line-height: 30px; height: 30px;">
  133. <a style="float:left;" href="javascript:;" class="btn btn-sm btn-primary off">{if $refresh>0}关闭刷新{else}开启刷新{/if}</a>
  134. <span id="timermsglabel" {if $refresh==0} style="display: none" {else} style="color:black;margin-left: 10px" {/if} >{$sxJg}秒后自动刷新页面</>
  135. </div>
  136. </div>
  137. <div class="ibox-content">
  138. <div class="jqGrid_wrapper">
  139. <table id="table" style="border-collapse: collapse"></table>
  140. <div id="pager"></div>
  141. </div>
  142. </div>
  143. </div>
  144. {/block}
  145. {block name="script"}
  146. <script src="/static/layDate-v5.0.9/laydate.js"></script>
  147. <script>
  148. $ppp= {$sxJg};
  149. $(function () {
  150. laydate.render({
  151. elem: '#start',
  152. trigger: 'click' ,
  153. theme: '#148d8f',
  154. range:true
  155. });
  156. laydate.render({
  157. elem: '#end',
  158. trigger: 'click' ,
  159. theme: '#148d8f',
  160. range:true
  161. });
  162. $(window).bind("resize",function(){
  163. var width=$(".jqGrid_wrapper").width();
  164. $("#table").setGridWidth(width);
  165. });
  166. $.jgrid.defaults.styleUI="Bootstrap";
  167. $("#table").jqGrid({
  168. url:"{:url('convey')}?mode={$mode}",
  169. datatype: "json",
  170. colModel:[
  171. {label:'状态',name:'status',index:'status',width:55,editable: false,sortable: false,formatter: function (a, b, c) {
  172. if(a===1){
  173. if(c.ss >0){
  174. return '<span class="yd">●</span><span class="label ys-color'+c.ss+'">新订单</span>'
  175. }else {
  176. return '<span class="yd">●</span><span class="label">新订单<i class="fa fa-exclamation-triangle-fill"></i></span>'
  177. }
  178. }
  179. if(a===2){
  180. if(c.ss >0){
  181. return '<span class="label ys-color'+c.ss+'">进行中</span>'
  182. }else {
  183. return '<span class="label">进行中</span>'
  184. }
  185. }
  186. if(a===3){
  187. if(c.ss >0){
  188. return '<span class="label ys-color'+c.ss+'">延迟中</span>'
  189. }else {
  190. return '<span class="label">延迟中</span>'
  191. }
  192. }
  193. }},
  194. {label:'运送类型',name:'type_name',index:'type_name',width:70,editable: false,sortable: false},
  195. {label:'任务备注',name:'content',index:'content',width:70,sortable: false},
  196. {label:'开始地点',name:'start_name',index:'start_name',width:70,sortable: false},
  197. {label:'结束地点',name:'end_name',index:'end_name',width:70,sortable: false},
  198. {label:'运送员',name:'real_names',index:'real_names',width:60,sortable: false},
  199. {label:'需求',name:'xtime',index:'xtime',width:40,sortable: false},
  200. {label:'派工',name:'stime',index:'stime',width:40,sortable: false},
  201. {label:'接受',name:'ctime',index:'ctime',width:40,sortable: false},
  202. {label:'优先级',name:'priorityName',index:'priorityName',width:60,editable: false,sortable: false,formatter: function (a, b, c) {
  203. if(c.priority==3){
  204. return "<span class='label' style='color: red'>"+a+"</span><img src='/admin/img/jj.png' style='width: 20px !important;height: 20px !important;' alt=''>";
  205. }else {
  206. return a;
  207. }
  208. }},
  209. {label:'床号',name:'bed_number',index:'bed_number',width:40,sortable: false},
  210. {label:'运送设备',name:'device_name',index:'device_name',width:60,sortable: false},
  211. {label:'创建人',name:'real_name',index:'real_name',width:50,sortable: false},
  212. {label:'延迟原因',name:'delay_reason',index:'delay_reason',width:50,sortable: false},
  213. {label:'延迟时间',name:'delay_diff',index:'delay_diff',width:50,sortable: false},
  214. {label:'剩余时间',name:'last_time',index:'last_time',width:50,sortable: false},
  215. {label:'操作',width:50,sortable: false,formatter: function (a, b, c) {
  216. var detail_url = "{:url('detail2',[],'')}/id/"+c.id;
  217. var print = "{:url('print',[],'')}/id/"+c.id;
  218. var btn = '<a url="'+detail_url+'" href="javascript:;" style="display: inline-block;margin-bottom: 2px" data-title="详情" onclick="layer_open(this,1)"><span class="label label-primary" title="详情">详情</span></a>&nbsp;<br/>';
  219. // var btn = '<a href="'+detail_url+'" ><span class="label label-primary" title="详情">详情</span></a>&nbsp;';
  220. btn += '<a url="'+print+'" href="javascript:;" onclick="layer_open(this,1)" ><span class="label label-success" data-title="打印">打印</span></a>';
  221. return btn;
  222. }},
  223. ],
  224. rowNum:1000,
  225. rowList:[1000],
  226. pager: '#pager',
  227. sortname: '',
  228. viewrecords: true,
  229. autowidth:true,
  230. mtype: 'post',
  231. height: 'auto',
  232. emptyrecords: "暂无数据",
  233. sortorder: "",
  234. multiselect: true,//可多选
  235. caption:"运送调度订单列表",
  236. loadComplete: function (xhr) {
  237. if(xhr.code==0){
  238. layer.msg(xhr.msg);
  239. return false;
  240. }
  241. $("#dcl").html(xhr.dcl);
  242. $("#ypf").html(xhr.ypf);
  243. $("#yqx").html(xhr.yqx);
  244. $("#ywc").html(xhr.ywc);
  245. },
  246. });
  247. var interval = function () {
  248. if($ppp<1)
  249. {
  250. // clearInterval(interval);
  251. $ppp = {$sxJg};
  252. $("#search-btn").click();
  253. }else{
  254. $("#timermsglabel").html($ppp+"秒后自动刷新页面");
  255. $ppp--;
  256. }
  257. }
  258. if(parseInt('{$refresh}') >0){
  259. var time1 = setInterval(interval,1000);
  260. }
  261. //派工
  262. $('.paiGong').click(function (res) {
  263. var rowIds = jQuery("#table").jqGrid('getGridParam', 'selarrrow'); //获取勾选记录的ID
  264. if(rowIds.length <=0){
  265. updateAlert('请选择订单','alert-danger');
  266. setTimeout(function(){
  267. $('#top-alert').find('button').click();
  268. },1500);
  269. return;
  270. }
  271. clearInterval(time1);
  272. var url = "{:url('batchsend',[],'')}/id/"+rowIds.join(',')+"/mode/3";
  273. var title = '派工';
  274. layer.open({
  275. type: 2,
  276. shade: 0.8,
  277. title: title,
  278. area: ['800px', '90%'],
  279. fix: false, //不固定
  280. maxmin: true,
  281. content: url,
  282. skin: 'layer-ext-moon',
  283. success: function(layero, index) {
  284. $("#search-btn").click();
  285. },
  286. end:function () {
  287. time1 = setInterval(interval,1000);
  288. $("#search-btn").click();
  289. }
  290. });
  291. })
  292. //完成
  293. $('.finish').click(function (res) {
  294. var rowIds = jQuery("#table").jqGrid('getGridParam', 'selarrrow'); //获取勾选记录的ID
  295. if(rowIds.length <=0){
  296. updateAlert('请选择订单','alert-danger');
  297. setTimeout(function(){
  298. $('#top-alert').find('button').click();
  299. },1500);
  300. return;
  301. }
  302. var url = "{:url('batchfinish',[],'')}/id/"+rowIds.join(',');
  303. layer.confirm('确定要完成选中的订单吗?', {
  304. icon: 3,
  305. btn: ['确定', '取消'],
  306. skin: 'layer-ext-moon'
  307. }, function(index) {
  308. $.post(url,{},function (res) {
  309. if(res.code==1){
  310. layer.msg('完成成功', {
  311. time: 2000 //2秒关闭(如果不配置,默认是3秒)
  312. }, function () {
  313. location.reload();
  314. });
  315. }else {
  316. layer.msg(res.msg);
  317. }
  318. })
  319. });
  320. })
  321. //取消
  322. $('.quxiao').click(function (res) {
  323. var rowIds = jQuery("#table").jqGrid('getGridParam', 'selarrrow'); //获取勾选记录的ID
  324. if(rowIds.length <=0){
  325. updateAlert('请选择订单','alert-danger');
  326. setTimeout(function(){
  327. $('#top-alert').find('button').click();
  328. },1500);
  329. return;
  330. }
  331. if(rowIds.length >1){
  332. updateAlert('每次只能取消一条','alert-danger');
  333. setTimeout(function(){
  334. $('#top-alert').find('button').click();
  335. },1500);
  336. return;
  337. }
  338. clearInterval(time1);
  339. var url = "{:url('disCancel',[],'')}/id/"+rowIds.join(',');
  340. var title = '取消';
  341. layer.open({
  342. type: 2,
  343. shade: 0.8,
  344. title: title,
  345. area: ['800px', '90%'],
  346. fix: false, //不固定
  347. maxmin: true,
  348. content: url,
  349. skin: 'layer-ext-moon',
  350. success: function(layero, index) {
  351. },
  352. end:function () {
  353. time1 = setInterval(interval,1000);
  354. }
  355. });
  356. })
  357. //延迟
  358. $('.yanchi').click(function (res) {
  359. var rowIds = jQuery("#table").jqGrid('getGridParam', 'selarrrow'); //获取勾选记录的ID
  360. if(rowIds.length <=0){
  361. updateAlert('请选择订单','alert-danger');
  362. setTimeout(function(){
  363. $('#top-alert').find('button').click();
  364. },1500);
  365. return;
  366. }
  367. clearInterval(time1);
  368. var url = "{:url('batchdelay',[],'')}/id/"+rowIds.join(',');
  369. var title = '延迟';
  370. layer.open({
  371. type: 2,
  372. shade: 0.8,
  373. title: title,
  374. area: ['800px', '90%'],
  375. fix: false, //不固定
  376. maxmin: true,
  377. content: url,
  378. skin: 'layer-ext-moon',
  379. success: function(layero, index) {
  380. },
  381. end:function () {
  382. time1 = setInterval(interval,1000);
  383. }
  384. });
  385. })
  386. //取消延迟
  387. $('.quxiaoyanchi').click(function (res) {
  388. var rowIds = jQuery("#table").jqGrid('getGridParam', 'selarrrow'); //获取勾选记录的ID
  389. if(rowIds.length <=0){
  390. updateAlert('请选择订单','alert-danger');
  391. setTimeout(function(){
  392. $('#top-alert').find('button').click();
  393. },1500);
  394. return;
  395. }
  396. var url = "{:url('batchcanceldelay',[],'')}/id/"+rowIds.join(',');
  397. layer.confirm('确定要取消延迟选中的订单吗?', {
  398. icon: 3,
  399. btn: ['确定', '取消'],
  400. skin: 'layer-ext-moon'
  401. }, function(index) {
  402. $.post(url,{},function (res) {
  403. if(res.code==1){
  404. layer.msg('取消成功', {
  405. time: 2000 //2秒关闭(如果不配置,默认是3秒)
  406. }, function () {
  407. location.reload();
  408. });
  409. }else {
  410. layer.msg(res.msg);
  411. }
  412. })
  413. });
  414. })
  415. //运送员状态
  416. $('.ysystatus').click(function (res) {
  417. var rowIds = jQuery("#table").jqGrid('getGridParam', 'selarrrow'); //获取勾选记录的ID
  418. // if(rowIds.length <=0){
  419. // updateAlert('请选择订单','alert-danger');
  420. // setTimeout(function(){
  421. // $('#top-alert').find('button').click();
  422. // },1500);
  423. // return;
  424. // }
  425. var url = "{:url('conveystatus',[],'')}/id/"+rowIds.join(',');
  426. var title = '运送员状态';
  427. clearInterval(time1);
  428. layer.open({
  429. type: 2,
  430. shade: 0.8,
  431. title: title,
  432. area: ['800px', '90%'],
  433. fix: false, //不固定
  434. maxmin: true,
  435. content: url,
  436. skin: 'layer-ext-moon',
  437. success: function(layero, index) {
  438. }, end:function () {
  439. time1 = setInterval(interval,1000);
  440. }
  441. });
  442. })
  443. //驳回工单
  444. $('.bhgd').click(function (res) {
  445. $ppp = 3000;
  446. var url = "{:url('bhTodoList')}";
  447. var title = '驳回工单';
  448. layer.open({
  449. type: 2,
  450. shade: 0.8,
  451. title: title,
  452. area: ['90%', '90%'],
  453. fix: false, //不固定
  454. maxmin: true,
  455. content: url,
  456. skin: 'layer-ext-moon',
  457. success: function(layero, index) {
  458. }
  459. });
  460. })
  461. $('.off').click(function () {
  462. $.post('{:url("orderRefreshOff")}',{},function (res) {
  463. if(res.code==1){
  464. if(res.data.status==1){
  465. time1 = setInterval(interval,1000);
  466. $("#timermsglabel").css('display','');
  467. $("#timermsglabel").css('margin-left','10px');
  468. $(".off").html('关闭刷新');
  469. }else {
  470. clearInterval(time1);
  471. $("#timermsglabel").css('display','none');
  472. $(".off").html('开启刷新');
  473. }
  474. }else {
  475. layer.msg(res.msg);
  476. }
  477. })
  478. })
  479. });
  480. window.alert=function(){
  481. return '';
  482. }
  483. </script>
  484. {/block}