diff --git a/beike/Admin/Http/Requests/ProductRequest.php b/beike/Admin/Http/Requests/ProductRequest.php index c473a627..f5ab8cfa 100644 --- a/beike/Admin/Http/Requests/ProductRequest.php +++ b/beike/Admin/Http/Requests/ProductRequest.php @@ -44,6 +44,10 @@ class ProductRequest extends FormRequest if($this->active == 1){ $rules['minimum_order'] = 'required|numeric|gt:0'; } + // 判断:销售方式为按 批 卖,每批的数量必须大于0 + if($this->sales_method == 'batches'){ + $rules['piece_to_batch'] = 'required|numeric|gt:0'; + } return $rules; } @@ -58,6 +62,7 @@ class ProductRequest extends FormRequest 'skus.*.origin_price' => trans('product.origin_price'), // 'skus.*.cost_price' => trans('product.cost_price'), 'minimum_order' => trans('product.minimum_order'), + 'piece_to_batch' => trans('product.one_batch_is_equal_to'), ]; } } diff --git a/beike/Models/Product.php b/beike/Models/Product.php index c55a7ad2..bfe5faa1 100644 --- a/beike/Models/Product.php +++ b/beike/Models/Product.php @@ -11,7 +11,24 @@ class Product extends Base use HasFactory; use SoftDeletes; - protected $fillable = ['images', 'video', 'position', 'brand_id', 'tax_class_id', 'weight', 'weight_class', 'active', 'variables', 'price_setting', 'length', 'width', 'height', 'minimum_order']; + protected $fillable = [ + 'images', + 'video', + 'position', + 'brand_id', + 'tax_class_id', + 'weight', + 'weight_class', + 'active', + 'variables', + 'price_setting', + 'length', + 'width', + 'height', + 'minimum_order', + 'sales_method', + 'piece_to_batch' + ]; protected $casts = [ 'active' => 'boolean', diff --git a/resources/beike/admin/views/pages/products/form/form.blade.php b/resources/beike/admin/views/pages/products/form/form.blade.php index 2be41d44..63c9f5bb 100644 --- a/resources/beike/admin/views/pages/products/form/form.blade.php +++ b/resources/beike/admin/views/pages/products/form/form.blade.php @@ -95,21 +95,31 @@ -
-
CM X
-
CM X
-
CM
+
+ +
CM X
+ +
CM X
+ +
CM
+ + +
/{{ __('product.piece') }}
+
/{{ __('product.batches') }}
-
+
- @foreach ($weight_classes as $item) @endforeach + +
/{{ __('product.piece') }}
+
/{{ __('product.batches') }}
@@ -138,6 +148,28 @@ {{--计量单位--}} + {{--销售方式--}} + +
+
+ + +
+
+ + +
+
+
+ + {{--状态--}}
@@ -183,14 +215,26 @@
- -
-
_@{{ item.num }}件
+ +
/{{ __('product.piece') }}
+
/{{ __('product.batches') }}
+
+
+ _ + @{{ form.sales_method == 'piece' ? item.num : item.num * form.piece_to_batch }}{{ __('product.piece') }} +
- -
@{{ item.num }}件等于价格:@{{ item.num * item.price }}
+ +
+ + @{{ item.num }}件等于价格:@{{ (item.num * item.price).toFixed(2) }} + +
+
@@ -204,8 +248,10 @@
-
@{{ item.num }} ~ @{{ form.numPrices[index + 1].num - 1 }}
-
≧@{{ item.num }}
+
+ @{{ form.sales_method == 'piece' ? item.num : item.num * form.piece_to_batch }} ~ @{{ form.sales_method == 'piece' ? (form.numPrices[index + 1].num - 1) : form.numPrices[index + 1].num * form.piece_to_batch - 1 }} +
+
≧@{{ form.sales_method == 'piece' ? item.num : item.num * form.piece_to_batch }}
价格@{{ item.price }}
@@ -396,19 +442,31 @@ {{-- 未开启根据数量设置价格、直接下单产品 --}} {{-- 未开启根据数量设置价格、非直接下单商品 --}} {{--开启根据数量设置价格 - 数量固定为最小起订量--}} @@ -672,6 +730,8 @@ price_setting: @json(old('price_setting', $product->price_setting) ?? 'sku'), numPrices: @json(old('numPrices', $product->numprices) ?? []), minimum_order: {{$product->minimum_order ?? 0}}, + sales_method: '{{$product->sales_method ?? 'piece'}}', + piece_to_batch: {{$product->piece_to_batch ?? 1}} }, variablesBatch: { diff --git a/resources/lang/en/admin/product.php b/resources/lang/en/admin/product.php index 3016cf05..5cbe9257 100644 --- a/resources/lang/en/admin/product.php +++ b/resources/lang/en/admin/product.php @@ -50,7 +50,10 @@ return [ 'width' => 'Width', 'height' => 'Height', 'weight_class' => 'weight unit', - + 'price_setting_by' =>[ + 'sku' => 'Set prices based on specifications', + 'num' => 'Set prices based on quantity', + ], 'confirm_batch_product' => 'Are you sure you want to delete the selected products in batches? ', 'confirm_batch_status' => 'Confirm to modify the status of the selected products in batches? ', 'confirm_batch_restore' => 'Confirm to restore the selected product? ', diff --git a/resources/lang/en/product.php b/resources/lang/en/product.php index 7b9bcf12..01e74f3b 100644 --- a/resources/lang/en/product.php +++ b/resources/lang/en/product.php @@ -30,5 +30,11 @@ return [ 'has_been_inactive' => 'The product has been inactive', 'minimum_order' => 'Min Order', 'minimum_order_error' => 'The purchase quantity must be greater than or equal to :num', - 'unit_of_measurement' => 'Unit of measurement' + 'unit_of_measurement' => 'Unit of measurement', + 'sales_method' => 'Sales method', + 'sales_method_piece' => 'Sell by piece', + 'sales_method_batches' => 'Sold in batches', + 'one_batch_is_equal_to' => 'one batch is equal to', + 'piece' => 'piece', + 'batches' => 'batches', ]; diff --git a/resources/lang/zh_cn/product.php b/resources/lang/zh_cn/product.php index ea45a441..8bfa4fbb 100644 --- a/resources/lang/zh_cn/product.php +++ b/resources/lang/zh_cn/product.php @@ -31,5 +31,11 @@ return [ 'has_been_inactive' => '该商品已下架', 'minimum_order' => '起订量', 'minimum_order_error' => '采购数量必须大于等于:num', - 'unit_of_measurement' => '计量单位' + 'unit_of_measurement' => '计量单位', + 'sales_method' => '销售方式', + 'sales_method_piece' => '按件卖', + 'sales_method_batches' => '按批卖', + 'one_batch_is_equal_to' => '1批等于', + 'piece' => '件', + 'batches' => '批', ];