mission-order.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <style type="text/css">
  2. .xm-label-block {
  3. background-color: #287bd2
  4. }
  5. </style>
  6. <!-- 正文开始 -->
  7. <div class="layui-fluid">
  8. <div class="layui-card">
  9. <div class="layui-card-body">
  10. <div class="layui-tab layui-tab-brief">
  11. <table id="dataTable" lay-filter="dataTable"></table>
  12. </div>
  13. </div>
  14. </div>
  15. </div>
  16. <!-- 表格操作列 -->
  17. <script type="text/html" id="tableBarUser">
  18. {{# if(d.status == 2){ }}
  19. <a class="layui-btn layui-btn-xs" lay-event="dispense">指派配送</a>
  20. {{# }else{ }}
  21. <a class="layui-btn layui-btn-xs layui-btn-disabled">指派配送</a>
  22. {{# } }}
  23. {{# if(d.status == 3){ }}
  24. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="complete">结束服务</a>
  25. {{# }else{ }}
  26. <a class="layui-btn layui-btn-primary layui-btn-xs layui-btn-disabled">结束服务</a>
  27. {{# } }}
  28. {{# if(d.status >=1 && d.status != 4 && d.status != 0){ }}
  29. <a class="layui-btn layui-btn-warn layui-btn-xs" lay-event="closed">关闭服务</a>
  30. {{# }else{ }}
  31. <a class="layui-btn layui-btn-warn layui-btn-xs layui-btn-disabled">关闭服务</a>
  32. {{# } }}
  33. <a class="layui-btn layui-btn-danger layui-btn-xs" perm-show="delete:/store/mission/order/<id>" lay-event="del">删除</a>
  34. </script>
  35. <!-- 表格状态列 -->
  36. <script type="text/html" id="tableStateUser">
  37. <!-- 1 . 下单未支付 unpay-->
  38. <!-- 2 . 支付待服务 wait-->
  39. <!-- 3 . 服务中 serve-->
  40. <!-- 4 . 服务结束-->
  41. {{# if(d.status == 1){ }}
  42. <span class="layui-badge layui-badge-yellow">待支付</span>
  43. {{# }else if(d.status == 2){ }}
  44. <span class="layui-badge layui-badge-blue">待服务</span>
  45. {{# }else if(d.status == 3){ }}
  46. <span class="layui-badge layui-badge-blue">服务中</span>
  47. {{# }else if(d.status == 4){ }}
  48. <span class="layui-badge layui-badge-green">已结束</span>
  49. {{# }else{ }}
  50. <span class="layui-badge layui-badge-gray">已关闭</span>
  51. {{# } }}
  52. </script>
  53. <!-- js部分 -->
  54. <script>
  55. layui.use(['layer', 'form', 'table', 'util', 'notice','md5', 'admin', 'setter'], function () {
  56. var $ = layui.jquery;
  57. var layer = layui.layer;
  58. var form = layui.form;
  59. var table = layui.table;
  60. var util = layui.util;
  61. var admin = layui.admin;
  62. var notice = layui.notice;
  63. var setter = layui.setter;
  64. form.render('select');
  65. // 渲染表格
  66. var insTb = table.render({
  67. elem: '#dataTable',
  68. url: setter.baseServer + 'store/mission/order',
  69. page: true,
  70. toolbar: true,
  71. cellMinWidth: 100,
  72. cols: [[
  73. {fixed:'left', type: 'checkbox'},
  74. {fixed:'left', field: 'order_no', title: '订单号', width: 200},
  75. {field: 'user', title: '下单用户',templet:function (d) {
  76. return '<a href="javascript:;" class="taxi-user-view" style="color: #35cc98;border-bottom: 1px solid;"> ' +
  77. ((d.user !== null) ? d.user.nickname + '(' + d.user.mobile + ')' : '师傅缺失') + ' </a>';
  78. }, width: 200},
  79. {field: 'mission', title: '接单任务',templet:function (d) {
  80. return '<a href="javascript:;" class="taxi-user-view" style="color: #35cc98;border-bottom: 1px solid;"> ' +
  81. ((d.mission !== null) ? d.mission.name : '数据丢失') + ' </a>';
  82. }, width: 300},
  83. // {field: 'service', title: '配送员',templet:function (d) {
  84. // return '<a href="javascript:;" class="taxi-user-view" style="color: #35cc98;border-bottom: 1px solid;"> ' +
  85. // ((d.service !== null) ? d.service.uname : '未指派')
  86. // + ' </a>';
  87. // }, width: 100},
  88. {field: 'remark', title: '任务内容', width: 100},
  89. {field: 'price', title: '价格', width: 100},
  90. {field: 'remark', title: '备注信息'},
  91. {field: 'arrive', title: '服务位置'},
  92. {field: 'address', title: '详细位置'},
  93. {
  94. field: 'created_at', sort: true, templet: function (d) {
  95. return util.toDateString(d.created_at * 1e3);
  96. }, title: '创建时间', width: 180
  97. },
  98. {field: 'status', templet: '#tableStateUser', title: '状态', width: 120},
  99. {align: 'center', toolbar: '#tableBarUser', title: '操作', minWidth: 300}
  100. ]],
  101. done:function () {
  102. admin.renderPerm()
  103. }
  104. });
  105. // 添加
  106. $(document).on('click','.user-add-btn', function () {
  107. showEditModel();
  108. });
  109. // 搜索
  110. form.on('submit(formSubSearchUser)', function (data) {
  111. insTb.reload({where: data.field}, 'data');
  112. });
  113. // 工具条点击事件
  114. table.on('tool(dataTable)', function (obj) {
  115. var data = obj.data;
  116. var layEvent = obj.event;
  117. if (layEvent === 'dispense') { // 分配师傅
  118. layer.confirm('请确定已经联系师傅前往了吗?', {
  119. skin: 'layui-layer-admin',
  120. shade: .1
  121. }, function (i) {
  122. layer.close(i);
  123. layer.load(2);
  124. admin.req('store/mission/order/' + data.id +'/dispense', function (r) {
  125. layer.closeAll('loading');
  126. if (r.code === 10000) {
  127. notice.msg(r.message, {icon: 1});
  128. insTb.reload({}, 'data');
  129. } else {
  130. notice.msg(r.message, {icon: 2});
  131. }
  132. }, 'POST');
  133. });
  134. }
  135. else if (layEvent === 'complete') { // 结束
  136. layer.confirm('确定要结束本次配送吗?', {
  137. skin: 'layui-layer-admin',
  138. shade: .1
  139. }, function (i) {
  140. layer.close(i);
  141. layer.load(2);
  142. admin.req('store/mission/order/' + data.id + '/complete', function (r) {
  143. layer.closeAll('loading');
  144. if (r.code === 10000) {
  145. notice.msg(r.message, {icon: 1});
  146. insTb.reload({}, 'data');
  147. } else {
  148. notice.msg(r.message, {icon: 2});
  149. }
  150. }, 'POST');
  151. });
  152. } else if (layEvent === 'closed') { // 结束
  153. layer.confirm('确定要关闭本次配送吗?', {
  154. skin: 'layui-layer-admin',
  155. shade: .1
  156. }, function (i) {
  157. layer.close(i);
  158. layer.load(2);
  159. admin.req('store/mission/order/' + data.id + '/closed', function (r) {
  160. layer.closeAll('loading');
  161. if (r.code === 10000) {
  162. notice.msg(r.message, {icon: 1});
  163. insTb.reload({}, 'data');
  164. } else {
  165. notice.msg(r.message, {icon: 2});
  166. }
  167. }, 'POST');
  168. });
  169. }else if (layEvent === 'del') { // 删除
  170. layer.confirm('确定要删除“' + data.order_no + '”吗?', {
  171. skin: 'layui-layer-admin',
  172. shade: .1
  173. }, function (i) {
  174. layer.close(i);
  175. layer.load(2);
  176. admin.req('store/mission/order/' + data.id, function (r) {
  177. layer.closeAll('loading');
  178. if (r.code === 10000) {
  179. notice.msg(r.message, {icon: 1});
  180. insTb.reload({}, 'data');
  181. } else {
  182. notice.msg(r.message, {icon: 2});
  183. }
  184. }, 'DELETE');
  185. });
  186. }
  187. });
  188. // 显示表单弹窗
  189. function showEditModel(data) {
  190. admin.open({
  191. type: 1,
  192. area: ['650px'], //宽高
  193. title: (data ? '修改' : '添加') + '人员信息',
  194. content: $('#modelMissionUser').html(),
  195. success: function (layero, dIndex) {
  196. $(layero).children('.layui-layer-content').css('overflow', 'visible');
  197. if(data) {
  198. $('.id_card_img')[0].src = data.id_card_img;
  199. $('.dr_license')[0].src = data.dr_license;
  200. $('.hl_license')[0].src = data.hl_license;
  201. };
  202. form.render('radio');
  203. form.render('select');
  204. // 回显数据
  205. form.val('modelMissionUserForm', data);
  206. // 表单提交事件
  207. form.on('submit(modelSubmitMissionUser)', function (form) {
  208. layer.load(2);
  209. admin.req('store/mission/user' + (data ? '/update/' + form.field.id : '/create'), form.field, function (res) {
  210. layer.closeAll('loading');
  211. if (res.code === 10000) {
  212. layer.close(dIndex);
  213. notice.msg(res.message, {icon: 1});
  214. insTb.reload({}, 'data');
  215. } else {
  216. notice.msg(res.message, {icon: 2});
  217. }
  218. }, data ? 'PUT' : 'POST');
  219. return false;
  220. });
  221. }
  222. });
  223. }
  224. });
  225. </script>