$(function () { $('.has-many-spec .add.btn') .after('
 同步最新规格
 批量设置库存
 批量设置原价
 批量设置售价
'); //同步最新规格 var template = $('template.spec-tpl').html(); $('.spec-sync').click(function () { $.ajax({ url: '`{{url}}`', method: 'POST', data: {product_id: $(this).val(), _form_: '`{{class}}`'}, success: function (res) { var fields = { supplier_name: 'name', supplier_date: 'date', supplier_price: 'price', supplier_stock: 'stock', price: 'price', stock: 'stock', original_price: 'original_price', product_spec_id: 'id' }; var data = res.data; var forms = $('.has-many-spec-forms'); //如果是原来数据库已经保存有id,调用click,提交的时候会同时删除数据库,否则直接remove掉,减小HTML体积 forms.children().each(function () { if ($(this).find('.field_id').val()) { $(this).find('.remove.btn').click(); } else { $(this).remove(); } }); for (var key in data) { var row = $(template.replace(/new___LA_KEY__/g, key)); for(var key2 in fields) { var value = fields[key2], insert_value; if (key2 === 'original_price') { insert_value = (data[key][value] * 2).toFixed(2); } else if (key2 === 'price') { insert_value = (data[key][value] * 1.5).toFixed(2); } else { insert_value = data[key][value]; } row.find('input.field_' + key2).val(insert_value); } forms.append(row); } }, error: function () { Dcat.error('服务器出现未知错误,获取供应商产品规格失败'); } }); }); //批量库存 $('.batch-stock').click(function () { var num = prompt('请输入你的库存(注:库存不能多于供应商库存)'); if (!/^\d+$/.test(num)) { return; } $('.has-many-spec input.field_stock').each(function () { var value = $(this).parents('tr').find('.field_supplier_stock').val(); var result = num > value ? value : num; $(this).val(result); }); }); //批量设置原价 $('.batch-original-price').click(function () { var num = prompt('请输入加价金额(在供应商售价基础上加)'); if (!/^\d+$/.test(num)) { return; } $('.has-many-spec input.field_original_price').each(function () { var value = $(this).parents('tr').find('.field_supplier_price').val(); var result = parseFloat(value) + parseFloat(num); $(this).val(result.toFixed(2)); }); }); //批量售价 $('.batch-price').click(function () { var num = prompt('请输入加价金额(在供应商售价基础上加)'); if (!/^\d+$/.test(num)) { return; } $('.has-many-spec input.field_price').each(function () { var value = $(this).parents('tr').find('.field_supplier_price').val(); var result = parseFloat(value) + parseFloat(num); $(this).val(result.toFixed(2)); }); }); // });