layui.use(['form', 'table', 'laydate'], function(){ var form = layui.form; var table = layui.table; var laydate = layui.laydate; laydate.render({ elem: '#begin_time' //指定元素 }); laydate.render({ elem: '#end_time' //指定元素 }); var renderTable = function() { table.render({ id: 'list' ,elem: '#sample' ,url: '/api/ApiOrderServiceList' //数据接口 ,method:'post' ,cellMinWidth: 80 //全局定义常规单元格的最小宽度 ,page: true //开启分页 ,cols: [[ //表头 {title: '序号', type: 'numbers', fixed: 'left', width: 80} ,{field: 'service_sn', title: '售后单号', width: 170} ,{field: 'order_sn', title: '订单编号', width: 150, templet: '<div><a href="/details/{{ d.order_id }}" class="layui-table-link" target="_blank">{{d.order_sn}}</a></div>'} ,{field: 'user_account', title: '用户账号', width: 150} ,{field: 'apply_name', title: '申请人', width: 120} ,{field: 'auditor_name', title: '审核人', width: 120} ,{field: 'service_amount', title: '售后金额', width: 120} ,{field: 'service_status_val', title: '售后状态', templet: '#status', width: 120} ,{field: 'refund_status_val', title: '退款状态', width: 120} ,{field: 'return_status_val', title: '退货状态', width: 120} ,{field: 'create_time', title: '申请时间', width: 180} ,{field: 'auditor_time', title: '审核时间', width: 180} ,{title: '操作', align:'center', fixed: 'right', toolbar: '#list_action', width: 200} ]] ,limit: 10 ,limits: [10, 20, 50,] }); }; renderTable(); form.on('submit(load)', function(data) { //执行重载 table.reload('list', { page: { curr: 1 } ,where: data.field }); return false; }); // tool操作 table.on('tool(list)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性lay-filter="对应的值" var data = obj.data; //获得当前行数据 var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值) var tr = obj.tr; //获得当前行 tr 的DOM对象 var type = 0; var area = 'auto'; var title = ''; var content = ''; var url = '/api/ApiOrderServiceAction'; var datax = []; if (layEvent === 'submit'){ // 提交 title = '提交申请'; content = '确定提交该申请吗?'; datax = {id: data.id, service_status: 2}; } else if (layEvent === 'audit'){ // 审核 title = '审核申请'; content = '确定审核该申请吗?'; datax = {id: data.id, service_status: 3, service_type: data.service_type}; } else if (layEvent === 'cancel'){ // 取消 title = '取消申请'; content = '确定取消该申请吗?'; datax = {id: data.id, service_status: -1}; } else if (layEvent === 'confirm'){ // 确认退款 title = '确认退款'; content = '确认已退款吗?'; url = '/api/ApiConfirmRefund'; datax = {id: data.id}; } else if (layEvent === 'edit'){ // 编辑 type = 1; area = ['1200px', '700px']; title = '编辑申请'; content = $('.order_service_info'); // 填充内容 $('.service_type').val(data.service_type); if (data.refund_type == 0) { $('.refund_type_section').hide(); } else { $('.refund_type_section').show(); $('.refund_type').val(data.refund_type); } if (data.refund_type == 2) { // 支付宝 $('.alipay-info').show(); $('.ali_customer_name').val(data.customer_name); $('.ali_refund_account').val(data.refund_account); } else if (data.refund_type == 3) { // 银行 $('.bank-info').show(); $('.bank_customer_name').val(data.customer_name); $('.bank_refund_account').val(data.refund_account); $('.bank_name').val(data.bank_name); $('.bank_sub_name').val(data.bank_sub_name); } // 获取售后数量 var serviced_num = []; $.ajax({ url : '/api/ApiOrderServicedNum', type: 'post', data: {order_id: data.order_id}, dataType: 'json', async: false, success: function(resp) { if (resp.data) serviced_num = resp.data; }, error: function(err) { console.log(err) } }) var html = ''; var items = data.items; var len = items.length; for (var i = 0; i < len; i++) { html += '<tr>\ <td>'+ (i + 1) +'</td>\ <td>'+ items[i].goods_name +'</td>\ <td>'+ items[i].brand_name +'</td>\ <td class="origin-goods-number">'+ items[i].goods_number +'</td>\ <td class="fqty">'+ items[i].removal_number +'</td>\ <td class="single_pre_price">'+ items[i].single_pre_price +'</td>\ <td class="service-goods-number">'+( serviced_num[items[i].goods_id] ? serviced_num[items[i].goods_id] : 0 )+'</td>'; if (items[i].adjust_number != 0) { html += '<td><input type="text" class="form-control adjust_number" name="service_item['+items[i].id+'][adjust_number]" value="'+ items[i].adjust_number +'"></td>'; } else { html += '<td><input type="text" class="form-control adjust_number" name="service_item['+items[i].id+'][adjust_number]"></td>'; } if (items[i].adjust_price != 0.000000) { html += '<td><input type="text" class="form-control adjust_price" name="service_item['+items[i].id+'][adjust_price]" value="'+ items[i].adjust_price +'"></td>'; } else { html += '<td><input type="text" class="form-control adjust_price" name="service_item['+items[i].id+'][adjust_price]"></td>'; } // 申请原因 var str = ''; for (var j in apply_reason) { if (j == items[i].apply_reason) { str += '<option value="'+j+'" selected>'+apply_reason[j]+'</option>'; } else { str += '<option value="'+j+'">'+apply_reason[j]+'</option>'; } } html += '<td>\ <select class="form-control apply_reason" name="service_item['+items[i].id+'][apply_reason]">\ <option value="">请选择</option>\ '+str+'\ </select>\ </td>'; html += '<td><input type="text" class="form-control remark" name="service_item['+items[i].id+'][remark]" value="'+ items[i].remark +'"></td>'; html += '</tr>'; } $('.order-service-table tbody').html(html); url = '/api/ApiOrderServiceEdit'; } layer.open({ type: type, area: area, title: title, content: content, btn: ['确认', '取消'], yes: function(index) { if (layEvent == 'edit') { var service_type = $('.service_type').val(); var refund_type = $('.refund_type').val(); if (!service_type) { layer.tips('请选择售后类型', $('.service_type')); return false; } if (!refund_type && data.refund_type != 0) { layer.tips('请选择退款方式', $('.refund_type')); return false; } if (refund_type == 2) { // 支付宝 var ali_customer_name = $('.ali_customer_name').val(); var ali_refund_account = $('.ali_refund_account').val(); if (!ali_customer_name) { layer.tips('请填写客户/公司', $('.ali_customer_name')); return false; } if (!ali_refund_account) { layer.tips('请填写支付账户', $('.ali_refund_account')); return false; } } else if (refund_type == 3) { // 银行 var bank_customer_name = $('.bank_customer_name').val(); var bank_refund_account = $('.bank_refund_account').val(); var bank_name = $('.bank_name').val(); var bank_sub_name = $('.bank_sub_name').val(); if (!bank_customer_name) { layer.tips('请填写客户/公司', $('.bank_customer_name')); return false; } if (!bank_refund_account) { layer.tips('请填写银行账号', $('.bank_refund_account')); return false; } if (!bank_name) { layer.tips('请填写银行名称', $('.bank_name')); return false; } if (!bank_sub_name) { layer.tips('请填写银行支行', $('.bank_sub_name')); return false; } } var is_all_num_empty = false; // 校验全部申请数量是否为空 var is_all_price_empty = false; // 校验全部单价是否为空 var is_all_reason_empty = false; // 校验全部申请原因是否为空 var is_all_remark_empty = false; // 校验全部备注是否为空 var is_one_empty = false; // 同一行的售后数量或单价中一个为空 $('.order-service-table').find('tbody tr').each(function() { var goods_number = $(this).find('.adjust_number').val(); var goods_price = $(this).find('.adjust_price').val(); var apply_reason = $(this).find('.apply_reason').val(); var remark = $(this).find('.remark').val(); if (goods_number) is_all_num_empty = true; if (goods_price) is_all_price_empty = true; if (apply_reason) is_all_reason_empty = true; if (remark) is_all_remark_empty = true; // 单行任意一个存在,则该行所有输入框必填 if (goods_number || goods_price || apply_reason || remark) { if (!goods_number) { layer.tips('请填写数量', $(this).find('.adjust_number')); is_one_empty = true; return false; } if (!goods_price) { layer.tips('请填写单价', $(this).find('.adjust_price')); is_one_empty = true; return false; } if (!apply_reason) { layer.tips('请选择申请原因', $(this).find('.apply_reason')); is_one_empty = true; return false; } if (!remark) { layer.tips('请填写原因备注', $(this).find('.remark')); is_one_empty = true; return false; } } }) if (is_one_empty) return false; if (!is_all_num_empty) { layer.msg('请填写申请数量'); return false; } if (!is_all_price_empty) { layer.msg('请填写售后单价'); return false; } if (!is_all_reason_empty) { layer.msg('请选择申请原因'); return false; } if (!is_all_remark_empty) { layer.msg('请填写原因备注'); return false; } datax = $('.orderServiceForm').serialize() + '&order_id=' + data.order_id + '&id=' + data.id; $.ajax({ url : '/ajax/orderServiceCheck', type: 'post', data: datax, dataType: 'json', success: function (resp) { var data = resp.data; if (refund_type == 1 && !data) { // 退款方式为原路返回,且系统不满足原路返回 layer.msg('不满足原路返回条件,请更改退款方式'); return false; } if (refund_type != 1 && data) { // 退款方式非原路返回,且系统满足原路返回 layer.confirm('此售后单满足系统自动原路返回,是否需要原路返回?', { title: '导出数据' ,btn: ['需要', '否,我要手工写单'] }, function(){ // 确定 layer.closeAll('dialog'); // 确定时关闭弹框 layer.close(index); datax = datax + '&refund_type=1'; // 退款方式更新为原路返回 order_service(datax); }, function() { // 取消 layer.closeAll('dialog'); // 确定时关闭弹框 layer.close(index); order_service(datax); }); return false; } layer.close(index); order_service(datax); // 以上条件不满足时调用 }, error: function (res) { console.log(res); } }) return false; } $.ajax({ url : url, type: 'post', data: datax, dataType: 'json', success: function(resp) { if (resp.errcode == 0) { layer.close(index) layer.msg(resp.errmsg); renderTable(); // 重新加载table $('.search').trigger("click"); // 触发搜索按钮 return false; } layer.alert(resp.errmsg); }, error: function(err) { console.log(err) } }) layer.msg(title+'中...', {icon: 16, time: 0, shade: 0.3}); // 阻止重复提交 return false; }, cancel: function(index) { layer.close(index); } }) }); function order_service(datax) { $.ajax({ url : '/api/ApiOrderServiceEdit', type: 'post', data: datax, dataType: 'json', success: function (resp) { if(resp.errcode === 0){ layer.msg(resp.errmsg || '操作成功'); renderTable(); // 重新加载table $('.search').trigger("click"); // 触发搜索按钮 return false; } layer.alert(resp.errmsg || '网络异常'); return false; }, error: function (res) { console.log(res); } }) layer.msg('编辑中...', {icon: 16, time: 0, shade: 0.3}); // 阻止重复提交 } // 导出 // $('.export').click(function() { // var account = $('input[name=account]').val(), // goods_name = $('input[name=goods_name]').val(), // order_sn = $('input[name=order_sn]').val(), // begin_time = $('input[name=begin_time]').val(), // end_time = $('input[name=end_time]').val(), // url = '/export/selfSampleExport'; // if (!account && !goods_name && !order_sn && !begin_time && !end_time) { // layer.msg('请选择筛选条件'); // return false; // } // layer.confirm('确定导出数据吗?', { // title: '导出数据' // ,btn: ['确定', '取消'] // }, function(){ // layer.closeAll('dialog'); // 确定时关闭弹框 // window.location.href = url+'?account='+account+'&goods_name='+goods_name+'&order_sn='+order_sn+'&begin_time='+begin_time+'&end_time='+end_time; // }); // }) });