skill-order.html 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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/skill/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. <!--师傅列表-->
  54. <script type="text/html" id="modelSkillUser">
  55. <table class="layui-table" id="SkillUserTb" lay-filter="SkillUserTb"></table>
  56. </script>
  57. <!-- js部分 -->
  58. <script>
  59. layui.use(['layer', 'form', 'table', 'util', 'notice','md5', 'admin', 'setter', 'xmSelect'], function () {
  60. var $ = layui.jquery;
  61. var layer = layui.layer;
  62. var form = layui.form;
  63. var table = layui.table;
  64. var util = layui.util;
  65. var admin = layui.admin;
  66. var notice = layui.notice;
  67. var setter = layui.setter;
  68. var md5 = layui.md5;
  69. var xmSelect = layui.xmSelect;
  70. form.render('select');
  71. // 渲染表格
  72. var insTb = table.render({
  73. elem: '#dataTable',
  74. url: setter.baseServer + 'store/skill/order',
  75. page: true,
  76. toolbar: true,
  77. cellMinWidth: 100,
  78. cols: [[
  79. {fixed:'left', type: 'numbers'},
  80. {fixed:'left', field: 'order_no', title: '订单号', width: 200},
  81. {field: 'user', title: '下单用户',templet:function (d) {
  82. return '<a href="javascript:;" class="taxi-user-view" style="color: #35cc98;border-bottom: 1px solid;"> ' +
  83. ((d.user !== null) ? d.user.nickname + '(' + d.user.mobile + ')' : '无所属') + ' </a>';
  84. }, width: 200},
  85. {field: 'skill', title: '下单技能',templet:function (d) {
  86. return '<a href="javascript:;" class="taxi-user-view" style="color: #35cc98;border-bottom: 1px solid;"> ' +
  87. ((d.skill !== null) ? d.skill.name : '数据错误') + ' </a>';
  88. }, width: 200},
  89. {field: 'service', title: '服务师傅',templet:function (d) {
  90. return '<a href="javascript:;" class="taxi-user-view" style="color: #35cc98;border-bottom: 1px solid;"> ' +
  91. ((d.service !== null) ? d.service.uname + '(' + d.service.mobile + ')' : '数据错误')
  92. + ' </a>';
  93. }, width: 200},
  94. {field: 'price', title: '价格', width: 100},
  95. {field: 'remark', title: '备注信息'},
  96. {
  97. field: 'created_at', sort: true, templet: function (d) {
  98. return util.toDateString(d.created_at * 1e3);
  99. }, title: '创建时间', width: 180
  100. },
  101. {field: 'status', templet: '#tableStateUser', title: '状态', width: 120},
  102. {align: 'center', toolbar: '#tableBarUser', title: '操作', minWidth: 300}
  103. ]],
  104. done:function () {
  105. admin.renderPerm()
  106. }
  107. });
  108. // 搜索
  109. form.on('submit(formSubSearchUser)', function (data) {
  110. insTb.reload({where: data.field}, 'data');
  111. });
  112. // 工具条点击事件
  113. table.on('tool(dataTable)', function (obj) {
  114. var data = obj.data;
  115. var layEvent = obj.event;
  116. if (layEvent === 'dispense') { // 分配师傅
  117. layer.confirm('请确定已经联系“' + data.service.uname + '”师傅前往了吗?', {
  118. skin: 'layui-layer-admin',
  119. shade: .1
  120. }, function (i) {
  121. layer.close(i);
  122. layer.load(2);
  123. admin.req('store/skill/order/' + data.id +'/dispense', function (r) {
  124. layer.closeAll('loading');
  125. if (r.code === 10000) {
  126. notice.msg(r.message, {icon: 1});
  127. insTb.reload({}, 'data');
  128. } else {
  129. notice.msg(r.message, {icon: 2});
  130. }
  131. }, 'POST');
  132. });
  133. }else if (layEvent === 'complete') { // 结束
  134. layer.confirm('确定要结束本次服务吗?', {
  135. skin: 'layui-layer-admin',
  136. shade: .1
  137. }, function (i) {
  138. layer.close(i);
  139. layer.load(2);
  140. admin.req('store/skill/order/' + data.id + '/complete', function (r) {
  141. layer.closeAll('loading');
  142. if (r.code === 10000) {
  143. notice.msg(r.message, {icon: 1});
  144. insTb.reload({}, 'data');
  145. } else {
  146. notice.msg(r.message, {icon: 2});
  147. }
  148. }, 'POST');
  149. });
  150. } else if (layEvent === 'closed') { // 结束
  151. layer.confirm('确定要关闭本次服务吗?', {
  152. skin: 'layui-layer-admin',
  153. shade: .1
  154. }, function (i) {
  155. layer.close(i);
  156. layer.load(2);
  157. admin.req('store/skill/order/' + data.id + '/closed', function (r) {
  158. layer.closeAll('loading');
  159. if (r.code === 10000) {
  160. notice.msg(r.message, {icon: 1});
  161. insTb.reload({}, 'data');
  162. } else {
  163. notice.msg(r.message, {icon: 2});
  164. }
  165. }, 'POST');
  166. });
  167. }else if (layEvent === 'del') { // 删除
  168. layer.confirm('确定要删除“' + data.order_no + '”吗?', {
  169. skin: 'layui-layer-admin',
  170. shade: .1
  171. }, function (i) {
  172. layer.close(i);
  173. layer.load(2);
  174. admin.req('store/skill/order/' + data.id + '/delete', function (r) {
  175. layer.closeAll('loading');
  176. if (r.code === 10000) {
  177. notice.msg(r.message, {icon: 1});
  178. insTb.reload({}, 'data');
  179. } else {
  180. notice.msg(r.message, {icon: 2});
  181. }
  182. }, 'DELETE');
  183. });
  184. }
  185. });
  186. });
  187. </script>