You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
4.1 KiB
114 lines
4.1 KiB
$(function () {
|
|
$('.has-many-spec .add.btn')
|
|
.after('<div class="btn btn-spec spec-sync btn-primary btn-outline btn-sm" style="margin-left:10px;"><i class="feather icon-plus"></i> 同步供应商最新规格</div><div class="btn btn-spec batch-stock btn-primary btn-outline btn-sm" style="margin-left:10px;"><i class="feather icon-plus"></i> 批量设置库存</div><div class="btn btn-spec batch-original-price btn-primary btn-outline btn-sm" style="margin-left:10px;"><i class="feather icon-plus"></i> 批量设置市场价</div><div class="btn btn-spec batch-price btn-primary btn-outline btn-sm" style="margin-left:10px;"><i class="feather icon-plus"></i> 批量设置销售价</div>')
|
|
.remove();
|
|
|
|
//同步最新规格
|
|
var template = $('template.spec-tpl').html();
|
|
var is_load = false;
|
|
$('.spec-sync').click(function () {
|
|
if (is_load) {
|
|
Dcat.confirm('本次载入将清除上次载入的所有数据,是否继续?', null, function () {
|
|
Dcat.loading();
|
|
post();
|
|
});
|
|
} else {
|
|
Dcat.loading();
|
|
post();
|
|
is_load = true;
|
|
}
|
|
function post() {
|
|
$.ajax({
|
|
url: '`{{url}}`',
|
|
method: 'POST',
|
|
data: {
|
|
product_id: $('input[name="product_id"]').val(),
|
|
agent_product_id: `{{agent_product_id}}`,
|
|
_form_: '`{{class}}`',
|
|
},
|
|
success: function (res) {
|
|
var fields = ['supplier_name', 'supplier_date', 'supplier_price', 'supplier_stock', 'supplier_cost_price',
|
|
'price', 'stock', 'original_price', 'product_spec_id'];
|
|
var data = res.data;
|
|
var forms = $('.has-many-spec-forms');
|
|
|
|
//只remove掉上次载入的,原来数据库保存的记录(.field_id不为空)不处理
|
|
forms.children().each(function () {
|
|
if (!$(this).find('.field_id').val()) {
|
|
$(this).remove();
|
|
}
|
|
//清理供应商已删除的规格
|
|
else if ($(this).find('.field_supplier_stock').val() == 0 && $(this).find('.field_supplier_price').val() == 0) {
|
|
$(this).find('.remove.btn').click();
|
|
}
|
|
});
|
|
|
|
for (var key in data) {
|
|
var row = $(template.replace(/new___LA_KEY__/g, key));
|
|
for (var i=0; i<fields.length; i++) {
|
|
var field = fields[i];
|
|
if (['original_price', 'price', 'stock'].indexOf(field) !== -1) {
|
|
var value = data[key]['supplier_' + field], rule = '';
|
|
//不处理市场价
|
|
if (field === 'original_price') {
|
|
rule = 'if(!this.value || isNaN(this.value) || parseFloat(this.value)<' + value + ') this.value=' + value;
|
|
}
|
|
row.find('input.field_' + field).val(value).attr({onblur: rule});
|
|
} else {
|
|
row.find('input.field_' + field).val(data[key][field]);
|
|
}
|
|
}
|
|
forms.append(row);
|
|
}
|
|
Dcat.loading(false);
|
|
},
|
|
error: function () {
|
|
Dcat.loading(false);
|
|
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 = parseFloat(num) > parseFloat(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));
|
|
});
|
|
});
|
|
});
|