index.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. layui.config({
  2. base: "../../../admin/js/layuiPlugins/"
  3. }).use(['form', 'layer', 'jquery', 'laypage', 'element', 'table', 'laydate', 'cascade'], function() {
  4. var form = layui.form,
  5. layer = layui.layer,
  6. laypage = layui.laypage,
  7. $ = layui.jquery,
  8. table = layui.table,
  9. element = layui.element,
  10. laydate = layui.laydate,
  11. cascade = layui.cascade;
  12. //自定义验证
  13. form.verify({
  14. namelength: [
  15. /^.{0,18}$/,
  16. "长度限制在0-18个字符噢"
  17. ]
  18. });
  19. //监听一级Tab切换
  20. element.on('tab(productTabBrief)', function(obj) {
  21. switch (obj.index) {
  22. case 0:
  23. tableVm.reload();
  24. break;
  25. }
  26. });
  27. var vm = function(obj) {
  28. var _this = this;
  29. _this.dataId = obj.dataId || 'dataListId'; //数据表ID
  30. _this.elem = obj.elem || 'dataListBox'; //数据表容器
  31. _this.url = obj.url || ''; //数据表接口URL
  32. _this.page = obj.page; //分页
  33. _this.limit = obj.limit;
  34. _this.cols = obj.cols || []; //表头
  35. _this.done = obj.done || ''; //表头
  36. _this.formObj = {}; //当前表单对象
  37. _this.searchParameter = {}; //搜索参数
  38. _this.config = {};
  39. _this.where = obj.where;
  40. _this.config.dateTime = obj.dateTime;
  41. _this.dateTime = {
  42. year: 365 * 1 * 24 * 3600 * 1000,
  43. month: 30 * 1 * 24 * 3600 * 1000,
  44. day: 24 * 3600 * 1000,
  45. }
  46. _this.main();
  47. };
  48. //入口函数
  49. vm.prototype.main = function() {
  50. var _this = this;
  51. _this.initializationData()
  52. };
  53. //初始化表格
  54. vm.prototype.initializationData = function() {
  55. var _this = this;
  56. _this.dataListObj = table.render({
  57. id: _this.dataId,
  58. elem: _this.elem,
  59. url: _this.url,
  60. page: _this.page,
  61. cols: _this.cols,
  62. done: _this.done,
  63. where: $.extend(_this.where, _this.searchParameter),
  64. limit: _this.limit,
  65. });
  66. };
  67. //重新加载数据表
  68. vm.prototype.reload = function() {
  69. var _this = this;
  70. _this.dataListObj = table.reload(_this.dataId, { //执行重载数据表
  71. where: _this.searchParameter,
  72. page: {
  73. curr: 1
  74. }
  75. });
  76. };
  77. //初始化组件
  78. vm.prototype.initializationModule = function(obj) {
  79. var _this = this;
  80. $.ajax({
  81. url: obj.url,
  82. data: obj.data,
  83. success: function(res) {
  84. var html = '<option value="">' + obj.prompt + '</option>';
  85. for (var i in res.data) {
  86. html += '<option value="' + res.data[i].id + '">' + res.data[i].name +
  87. '</option>';
  88. }
  89. $(obj.elem).html(html);
  90. form.render();
  91. }
  92. });
  93. };
  94. //初始化事件监听
  95. vm.prototype.eventMonitor = function(id) {
  96. var _this = this;
  97. //监听搜索表单事件
  98. if (typeof(_this.formEvent) == "object") {
  99. form.on('submit(' + _this.formEvent + ')', function(obj) {
  100. _this.formInfoSearch(_this.formEvent, obj);
  101. return false;
  102. });
  103. }
  104. return _this;
  105. };
  106. //搜索处理函数
  107. vm.prototype.formInfoSearch = function(id, obj) {
  108. var _this = this;
  109. _this.searchParameter = obj.field;
  110. if (obj.field.dateRange) {
  111. _this.searchParameter.beginTime = obj.field.dateRange.substring(0, 10);
  112. _this.searchParameter.endTime = obj.field.dateRange.substring(13, 23);
  113. }else{
  114. _this.searchParameter.beginTime = '';
  115. _this.searchParameter.endTime = '';
  116. }
  117. delete _this.searchParameter.dateRange;
  118. _this.reload();
  119. };
  120. //渲染时间选择器
  121. vm.prototype.showTimeSelect = function() {
  122. var _this = this;
  123. laydate.render({
  124. elem: _this.datePicker,
  125. range: true
  126. });
  127. };
  128. //jquer事件绑定
  129. vm.prototype.$event = function() {
  130. var _this = this;
  131. $(_this.dataExportBtn).on("click", function(e) {
  132. _this.dataExport();
  133. });
  134. };
  135. //数据导出处理函数
  136. vm.prototype.dataExport = function() {
  137. var _this = this;
  138. _this.downloadParameter = '?';
  139. for (var i in _this.dataListObj.config.where) {
  140. _this.downloadParameter += "&" + i + '=' + _this.dataListObj.config.where[i];
  141. }
  142. _this.startDownload();
  143. };
  144. //启动下载
  145. vm.prototype.startDownload = function() {
  146. var _this = this;
  147. window.open(window.hywa.config.href + window.hywa.config.port[_this.dataDownload] + _this.downloadParameter);
  148. };
  149. // 表格列表
  150. var tableVm = new vm({
  151. dataId: 'tableData',
  152. elem: '#tableData',
  153. url: 'riderPickTableUrl',
  154. dateTime: {
  155. year: 1,
  156. day: 1,
  157. },
  158. page: true,
  159. cols: [
  160. [{
  161. field: 'orderNumber',
  162. title: '订单号',
  163. width: 220,
  164. align: 'center'
  165. }, {
  166. field: 'orderTime',
  167. title: '下单时间',
  168. align: 'center',
  169. width: 180
  170. }, {
  171. field: 'stockNumber',
  172. title: '取货单号',
  173. width: 220,
  174. align: 'center'
  175. }, {
  176. field: 'productName',
  177. title: '商品名称'
  178. }, {
  179. field: 'specification',
  180. title: '规格',
  181. templet: '<span>{{d.specification}}斤装</span>',
  182. align: 'center'
  183. }, {
  184. field: 'amount',
  185. title: '数量',
  186. align: 'center'
  187. }, {
  188. field: 'sellerName',
  189. title: '供应商'
  190. }, {
  191. field: 'note',
  192. title: '客户备注'
  193. }, {
  194. field: 'riderName',
  195. title: '骑手',
  196. align: 'center'
  197. }, {
  198. field: 'status',
  199. title: '订单状态',
  200. align: 'center',
  201. templet: '#orderStatusTpl'
  202. }]
  203. ]
  204. });
  205. //初始化事件监听
  206. tableVm.formEvent = ['tableSearch'];
  207. tableVm.eventMonitor();
  208. tableVm.$event();
  209. tableVm.datePicker = '#datePicker'; //时间容器
  210. tableVm.showTimeSelect();
  211. });