diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php
index a2806c3..b0aa871 100644
--- a/app/AdminAgent/Controllers/AgentProductController.php
+++ b/app/AdminAgent/Controllers/AgentProductController.php
@@ -199,7 +199,7 @@ class AgentProductController extends AdminController
$form->hidden('type')->value(0)->default(0);
$js = file_get_contents(resource_path('js/select-supplier-product-change.js'));
$js = str_replace(
- ['{{url}}', '{{class}}', '{{profit}}', '\\'],
+ ['`{{url}}`', '`{{class}}`', '`{{profit}}`', '\\'],
[route(admin_api_route_name('form')), LoadSupplierSpec::class, AgentSetting::val(Admin::user()->id, 'profit'), '\\\\'],
$js
);
@@ -233,8 +233,13 @@ class AgentProductController extends AdminController
.has-many-spec .form-group .remove{margin-top:10px;}
.has-many-spec .input-group-prepend{display:none;}
.has-many-spec .input-group>.form-control:not(:first-child){border-radius:.25rem;}');
+ Admin::script(file_get_contents(resource_path('js/agent-spec-edit.js')));
})->useTable()->required();
+ if ($form->isCreating()) {
+ Admin::style('.has-many-spec .spec-sync{display:none;}');
+ }
+
/*$form->radio('type')
->options(['单品销售'])
->default(Admin::user()->type == AgentType::CLUSTER ? 1 : 0)->required()
diff --git a/app/AdminAgent/Forms/LoadSupplierSpec.php b/app/AdminAgent/Forms/LoadSupplierSpec.php
index d8fc0ce..811977c 100644
--- a/app/AdminAgent/Forms/LoadSupplierSpec.php
+++ b/app/AdminAgent/Forms/LoadSupplierSpec.php
@@ -14,7 +14,7 @@ class LoadSupplierSpec extends Form implements LazyRenderable
// 处理请求
public function handle(array $input)
{
- $id = $input['id'];
+ $id = $input['product_id'];
$spec = ProductSpec::where('product_id', $id)->get()->toArray();
return $this->response()->data($spec);
@@ -22,6 +22,7 @@ class LoadSupplierSpec extends Form implements LazyRenderable
public function form()
{
- $this->hidden('id');
+ $this->hidden('product_id');
+ $this->hidden('agent_product_id');
}
}
diff --git a/resources/js/agent-spec-edit.js b/resources/js/agent-spec-edit.js
new file mode 100644
index 0000000..5c1cf02
--- /dev/null
+++ b/resources/js/agent-spec-edit.js
@@ -0,0 +1,100 @@
+$(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));
+ });
+ });
+
+ //
+});
diff --git a/resources/js/select-supplier-product-change.js b/resources/js/select-supplier-product-change.js
index cbe7746..521bf1c 100644
--- a/resources/js/select-supplier-product-change.js
+++ b/resources/js/select-supplier-product-change.js
@@ -2,9 +2,9 @@ $(function () {
var template = $('template.spec-tpl').html();
$('input[name="product_id"]').change(function () {
$.ajax({
- url: '{{url}}',
+ url: '`{{url}`}',
method: 'POST',
- data: {id: $(this).val(), _form_: '{{class}}'},
+ data: {product_id: $(this).val(), _form_: '`{{class}}`'},
success: function (res) {
var fields = {
supplier_name: 'name',
@@ -35,7 +35,7 @@ $(function () {
if (key2 === 'original_price') {
insert_value = (data[key][value] * 2).toFixed(2);
} else if (key2 === 'price') {
- insert_value = (data[key][value] * (1 + {{profit}})).toFixed(2);
+ insert_value = (data[key][value] * (1 + `{{profit}}`)).toFixed(2);
} else {
insert_value = data[key][value];
}