order.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. ;
  2. layui.define(['form','table','laydate'], function (e) {
  3. var s = layui.$,
  4. table = layui.table,
  5. laydate = layui.laydate,
  6. form = layui.form;
  7. laydate.render({
  8. elem: 'input[name="expire_time"]'
  9. ,type: 'date'
  10. ,range: '~'
  11. });
  12. table.render({
  13. elem:'#order-table'
  14. ,url:'load.html'
  15. ,toolbar:'#topToolbar'
  16. ,cellMinWidth: 80
  17. ,cols: [[
  18. {field:'id', title: 'ID',edit: 'text'}
  19. ,{field:'customer', title: '客户'}
  20. ,{field:'denomination', title: '面额'}
  21. ,{field:'pay_amount', title: '实付金额'}
  22. ,{field:'num', title: '销售数量'}
  23. ,{field:'discount', title: '折扣率'}
  24. ,{field:'expire_time', title: '有效期'}
  25. ,{field:'card_number', title: '序列号范围'}
  26. ,{field:'goods_type', title: '可用品类'}
  27. ,{field:'store_type', title: '店铺分类'}
  28. ,{field:'create_time', title: '创建时间'}
  29. // ,{title:'操作', fixed: 'right', width:250, align:'center', toolbar: '#rowToolbar'}
  30. ]]
  31. ,id: 'order-table'
  32. ,page: true
  33. });
  34. table.on('toolbar(order)',function(obj){
  35. switch(obj.event){
  36. case "add":
  37. layer.open({
  38. type: 2,
  39. title: '添加订单',
  40. shadeClose: true,
  41. shade: true,
  42. area: ['80%', '80%'],
  43. content: 'add.html'
  44. });
  45. break;
  46. }
  47. })
  48. form.on('submit(LAY-order-add)',function(data){
  49. s.post('add.html',data.field,function(r){
  50. if (!r.code) {
  51. var index = parent.layer.getFrameIndex(window.name);
  52. parent.layer.close(index);
  53. parent.layui.table.reload('order-table')
  54. }else{
  55. layer.msg(r.msg)
  56. }
  57. })
  58. return false;
  59. })
  60. form.on('submit(LAY-order-search)',function(data){
  61. table.reload('order-table',{
  62. where:data.field,
  63. page:{
  64. curr:1
  65. }
  66. })
  67. return false;
  68. })
  69. form.on('select(goods-type)',function(data){
  70. var id = s(data.elem).find('option:selected').val();
  71. var classname = data.elem.name == 'goods_type_1'?'2':'3';
  72. order.prototype.loadgoodstype(classname,id);
  73. })
  74. s('.layui-add-goods-type').on('click',function(){
  75. var goods_type_1 = s('select[name=goods_type_1]').val();
  76. var goods_type_2 = s('select[name=goods_type_2]').val();
  77. var goods_type_3 = s('select[name=goods_type_3]').val();
  78. var value = goods_type_3 == 0?(goods_type_2==0?goods_type_1:goods_type_2):goods_type_3;
  79. if (s('.goods-type input[value='+value+']').length > 0) {
  80. layer.msg('已选择了该品类');return false;
  81. }
  82. var text = '';
  83. if (goods_type_1 != 0) {
  84. text += s('select[name=goods_type_1] > option:selected').text();;
  85. }
  86. if (goods_type_2 != 0) {
  87. text += ' ' + s('select[name=goods_type_2] > option:selected').text();;
  88. }
  89. if (goods_type_3 != 0) {
  90. text += ' ' + s('select[name=goods_type_3] > option:selected').text();
  91. }
  92. if (s.trim(text) == '') {
  93. layer.msg('请选择品类');return false;
  94. }
  95. var length = s('.goods-type .item').length;
  96. var div = ['<div class="item">',
  97. '<input type="hidden" name="goods_type['+length+'][id]" value="'+value+'">',
  98. '<input type="hidden" name="goods_type['+length+'][cname]" value="'+text+'">',
  99. '<span>'+text+'</span>',
  100. '<i class="layui-icon layui-icon-close" onclick="layui.$(this).parent().remove();"></i>',
  101. '</div>'];
  102. s('.goods-type').append(div.join(''));
  103. if(s('.goods-type').is(':hidden')){
  104. s('.goods-type').show();
  105. }
  106. })
  107. s('.layui-add-store-type').on('click',function(){
  108. var store_type_1 = s('select[name=store_type_1]').val();
  109. if (s('.store-type input[value='+store_type_1+']').length > 0) {
  110. layer.msg('已选择了该品类');return false;
  111. }
  112. var text = '';
  113. if (store_type_1 != 0) {
  114. text = s('select[name=store_type_1] > option:selected').text();;
  115. }
  116. if (s.trim(text) == '') {
  117. layer.msg('请选择品类');return false;
  118. }
  119. var length = s('.store-type .item').length;
  120. var div = ['<div class="item">',
  121. '<input type="hidden" name="store_type['+length+'][id]" value="'+store_type_1+'">',
  122. '<input type="hidden" name="store_type['+length+'][cname]" value="'+text+'">',
  123. '<span>'+text+'</span>',
  124. '<i class="layui-icon layui-icon-close" onclick="layui.$(this).parent().remove();"></i>',
  125. '</div>'];
  126. s('.store-type').append(div.join(''));
  127. if(s('.store-type').is(':hidden')){
  128. s('.store-type').show();
  129. }
  130. })
  131. s('.layui-card-number-ids-add').on('click',function(){
  132. var length = s('.card-number-ids-tbody').find('tr').length;
  133. var tr = ['<tr>',
  134. '<td><input type="text" name="card_number['+length+'][start]" value="" class="layui-input"></td>',
  135. '<td><input type="text" name="card_number['+length+'][end]" value="" class="layui-input"></td>',
  136. '<td><input type="text" name="card_number['+length+'][num]" value="" class="layui-input"></td>',
  137. '<td><a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-sm" onclick="layui.$(this).parents(\'tr\').remove()">删除</a></td>',
  138. '</tr>']
  139. s('.card-number-ids tbody').append(tr.join(''))
  140. s('[name="card_number['+length+'][end]"]').on('blur',function(){
  141. var start = parseInt(s('[name="card_number['+length+'][start]"]').val());
  142. var end = parseInt(s(this).val());
  143. if(end < start){
  144. layer.msg('结束序号必须大于等于起始序号')
  145. return false;
  146. }
  147. s('[name="card_number['+length+'][num]').val(end - start + 1);
  148. })
  149. })
  150. var order = function(){
  151. if (s('select[name=goods_type_1]').length > 0) {
  152. order.prototype.loadgoodstype(1,0);
  153. }
  154. }
  155. order.prototype.loadgoodstype = function(level,pid){
  156. s.post('/admin/goods.type/loadforselect.html',{pid:pid},function(r){
  157. if (!r.code) {
  158. var selected = s('select[name=goods_type_'+level+']').data('selected');
  159. var options = [];
  160. for (var index in r.data) {
  161. options.push('<option value="'+r.data[index]['id']+'" '+(selected == r.data[index]['id']?'selected':'')+' >'+r.data[index]['cname']+'</option>');
  162. }
  163. s('select[name=goods_type_'+level+'] option:not(:first)').remove();
  164. s('select[name=goods_type_'+level+']').append(options.join(''));
  165. form.render('select');
  166. if (level != 3) {
  167. var pid = s('select[name=goods_type_'+level+']').val();
  168. if (pid > 0) {
  169. level = level == 1?2:3;
  170. order.prototype.loadindustry(level,pid);
  171. }
  172. }
  173. }
  174. })
  175. }
  176. e('customer/order', new order())
  177. })