order.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'pickup/order/index' + location.search,
  8. add_url: 'pickup/order/add',
  9. edit_url: 'pickup/order/edit',
  10. del_url: 'pickup/order/del',
  11. multi_url: 'pickup/order/multi',
  12. table: 'gift_order',
  13. },
  14. pageSize: 30,
  15. pageList: [30, 50, 100, 'All'],
  16. });
  17. var table = $("#table");
  18. // 初始化表格
  19. table.bootstrapTable({
  20. url: $.fn.bootstrapTable.defaults.extend.index_url,
  21. pk: 'id',
  22. sortName: 'id',
  23. showToggle: false,
  24. columns: [
  25. [
  26. {checkbox: true},
  27. {field: 'id', title: __('Id')},
  28. {field: 'order_no', title: __('Order_no'), visible: false},
  29. // {field: 'gift_goods_ids', title: __('Gift_goods_ids')},
  30. {field: 'gift_goods_title', title: __('Gift_goods_title'), formatter: function (value, row, index) {
  31. let text = "";
  32. let text_pre = "";
  33. for (var key in value) {
  34. text = text + value[key] + text_pre;
  35. text_pre = "<br/>";
  36. }
  37. return text;
  38. }},
  39. // {field: 'gift_goods_image', title: __('Gift_goods_image'), events: Table.api.events.image, formatter: Table.api.formatter.image},
  40. {field: 'gift_package_id', title: __('Gift_package_id'), visible: false},
  41. {field: 'gift_package_title', title: __('Gift_package_title')},
  42. {field: 'gift_package_image', title: __('Gift_package_image'), visible: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
  43. {field: 'name', title: __('Name')},
  44. {field: 'mobile', title: __('Mobile')},
  45. {field: 'province_city', title: __('Province_city'), visible: true},
  46. {field: 'address', title: __('Address'), visible: true},
  47. // {field: 'ship_date_expected', title: __('Ship_date_expected')},
  48. {field: 'comments', title: __('Comments'), visible: false},
  49. {field: 'card_id', title: __('Card_id')},
  50. {field: 'createtime', title: __('Createtime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
  51. {field: 'kd_company', title: __('Kd_company')},
  52. {field: 'kd_number', title: __('Kd_number')},
  53. {field: 'ship_date', title: __('Ship_date'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
  54. {field: 'status', title: __('Status'), searchList: {"1": __('Status 1'), "2": __('Status 2'), "3": __('Status 3'), "4": __('Status 4')}, formatter: Table.api.formatter.status},
  55. {
  56. field: 'operate',
  57. title: __('Operate'),
  58. table: table,
  59. buttons: [
  60. {
  61. name: 'order_delivery',
  62. title: "发货",
  63. text: "发货",
  64. extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
  65. url: 'pickup/order/delivery',
  66. icon: 'fa fa-send',
  67. classname: 'btn btn-info btn-xs btn-execute btn-dialog'
  68. },
  69. {
  70. name: 'order_transport',
  71. title: "查看物流",
  72. text: "查看物流",
  73. extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
  74. url: 'pickup/order/transport',
  75. icon: 'fa fa-truck',
  76. classname: 'btn btn-info btn-xs btn-execute btn-dialog'
  77. },
  78. {
  79. name: 'order_detail',
  80. title: "订单详情",
  81. text: "订单详情",
  82. extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
  83. url: 'pickup/order/detail',
  84. icon: 'fa fa-reorder',
  85. classname: 'btn btn-info btn-xs btn-execute btn-dialog'
  86. },
  87. ],
  88. events: Table.api.events.operate,
  89. formatter: function (value, row, index) {
  90. var that = $.extend({}, this);
  91. var table = $(that.table).clone(true);
  92. if (row.status > 1) {
  93. $(table).data("operate-order_delivery", null);
  94. }
  95. if (row.status == 1) {
  96. $(table).data("operate-order_transport", null);
  97. }
  98. that.table = table;
  99. return Table.api.formatter.operate.call(that, value, row, index);
  100. }
  101. }
  102. ]
  103. ]
  104. });
  105. // 为表格绑定事件
  106. Table.api.bindevent(table);
  107. $(".toolbar").on('click', ".btn-impDelivery", function () {//撤销发货
  108. require(['upload'], function (Upload) {
  109. Upload.api.plupload($(".btn-impDelivery", ".toolbar"), function (data, ret) {
  110. Fast.api.ajax({
  111. url: Fast.api.fixurl("pickup/order/impDelivery"),
  112. data: {file: data.url},
  113. }, function (data, ret) {
  114. table.bootstrapTable('refresh');
  115. });
  116. });
  117. });
  118. });
  119. },
  120. add: function () {
  121. Controller.api.bindevent();
  122. },
  123. edit: function () {
  124. Controller.api.bindevent();
  125. },
  126. delivery: function () {
  127. Controller.api.bindevent();
  128. },
  129. transport: function () {
  130. Controller.api.bindevent();
  131. },
  132. detail: function () {
  133. Controller.api.bindevent();
  134. let itemid = $("#item-id").val();
  135. $(".form-group").on('click', ".btn-set_order_st1", function () {//撤销发货
  136. //ajax请求接口,改变订单状态,但不清理发货的快递信息
  137. Layer.confirm(
  138. __('你确定要设置此订单为<b>待发货</b>状态吗?'),
  139. {icon: 3, title: __('Warning'), shadeClose: true},
  140. function (index) {
  141. // var url = $.fn.bootstrapTable.defaults.extend.setstatus_url;
  142. var url = Fast.api.fixurl("pickup/order/setstatus");
  143. $.ajax({
  144. url: url,
  145. type: "GET",
  146. dataType: "json",
  147. data: {itemid: itemid, status: 1},
  148. beforeSend: function (result) {},
  149. success: function (result) {
  150. Toastr.success("设置成功");
  151. },
  152. error: function (xhr, status, error) {
  153. Toastr.error("设置失败");
  154. // Toastr.warning(ret.msg);
  155. }
  156. });
  157. Layer.close(index);
  158. }
  159. );
  160. });
  161. $(".form-group").on('click', ".btn-set_order_st2", function () {//发货
  162. //打开发货页面
  163. var url = Fast.api.fixurl("pickup/order/delivery/ids/" + itemid);
  164. Fast.api.open(url, __('发货'), $(this).data() || {});
  165. });
  166. $(".form-group").on('click', ".btn-set_order_st3", function () {//设置订单完成
  167. //ajax请求接口,改变订单状态,设置订单完成
  168. Layer.confirm(
  169. __('你确定要设置此订单为<b>已完成</b>状态吗?'),
  170. {icon: 3, title: __('Warning'), shadeClose: true},
  171. function (index) {
  172. var url = Fast.api.fixurl("pickup/order/setstatus");
  173. $.ajax({
  174. url: url,
  175. type: "GET",
  176. dataType: "json",
  177. data: {itemid: itemid, status: 3},
  178. beforeSend: function (result) {},
  179. success: function (result) {
  180. Toastr.success("设置成功");
  181. },
  182. error: function (xhr, status, error) {
  183. Toastr.error("设置失败");
  184. // Toastr.warning(ret.msg);
  185. }
  186. });
  187. Layer.close(index);
  188. }
  189. );
  190. });
  191. $(".form-group").on('click', ".btn-set_order_st4", function () {//设置订单失效
  192. //ajax请求接口,改变订单状态,设置订单完成
  193. Layer.confirm(
  194. __('你确定要设置此订单为<b>已关闭</b>状态吗?'),
  195. {icon: 3, title: __('Warning'), shadeClose: true},
  196. function (index) {
  197. var url = Fast.api.fixurl("pickup/order/setstatus");
  198. $.ajax({
  199. url: url,
  200. type: "GET",
  201. dataType: "json",
  202. data: {itemid: itemid, status: 4},
  203. beforeSend: function (result) {},
  204. success: function (result) {
  205. Toastr.success("设置成功");
  206. },
  207. error: function (xhr, status, error) {
  208. Toastr.error("设置失败");
  209. // Toastr.warning(ret.msg);
  210. }
  211. });
  212. Layer.close(index);
  213. }
  214. );
  215. });
  216. },
  217. api: {
  218. bindevent: function () {
  219. Form.api.bindevent($("form[role=form]"));
  220. }
  221. }
  222. };
  223. return Controller;
  224. });