diff --git a/beike/Admin/Providers/AdminServiceProvider.php b/beike/Admin/Providers/AdminServiceProvider.php index c09e2b97..e9da4e9f 100644 --- a/beike/Admin/Providers/AdminServiceProvider.php +++ b/beike/Admin/Providers/AdminServiceProvider.php @@ -19,6 +19,7 @@ use Beike\Admin\View\Components\Form\InputLocale; use Beike\Admin\View\Components\Form\RichText; use Beike\Admin\View\Components\Form\Select; use Beike\Admin\View\Components\Form\SwitchRadio; +use Beike\Admin\View\Components\Form\SwitchRadioStatus; use Beike\Admin\View\Components\Form\Textarea; use Beike\Admin\View\Components\Header; use Beike\Admin\View\Components\NoData; @@ -139,6 +140,7 @@ class AdminServiceProvider extends ServiceProvider 'alert' => Alert::class, 'form-input-locale' => InputLocale::class, 'form-switch' => SwitchRadio::class, + 'form-switch-status' => SwitchRadioStatus::class, 'form-input' => Input::class, 'form-select' => Select::class, 'form-image' => Image::class, diff --git a/beike/Admin/View/Components/Form/SwitchRadioStatus.php b/beike/Admin/View/Components/Form/SwitchRadioStatus.php new file mode 100644 index 00000000..099670a0 --- /dev/null +++ b/beike/Admin/View/Components/Form/SwitchRadioStatus.php @@ -0,0 +1,26 @@ +name = $name; + $this->title = $title; + $this->value = $value; + } + + public function render() + { + return view('admin::components.form.switch-radio-status'); + } +} diff --git a/beike/Shop/Http/Controllers/CartController.php b/beike/Shop/Http/Controllers/CartController.php index 4b8b261e..29521e1b 100644 --- a/beike/Shop/Http/Controllers/CartController.php +++ b/beike/Shop/Http/Controllers/CartController.php @@ -61,7 +61,7 @@ class CartController extends Controller $customer = current_customer(); $sku = ProductSku::query() - ->whereRelation('product', 'active', '=', true) + // ->whereRelation('product', 'active', '=', true) ->findOrFail($skuId); $cart = CartService::add($sku, $quantity, $customer); diff --git a/beike/Shop/Http/Controllers/CheckoutController.php b/beike/Shop/Http/Controllers/CheckoutController.php index c5fc22d3..959c2824 100644 --- a/beike/Shop/Http/Controllers/CheckoutController.php +++ b/beike/Shop/Http/Controllers/CheckoutController.php @@ -57,7 +57,14 @@ class CheckoutController extends Controller public function confirm() { try { - $data = (new CheckoutService)->confirm(); + $checkoutService = new CheckoutService; + $selectedProducts = $checkoutService->selectedProducts->toArray(); + foreach($selectedProducts as $product){ + if($product['product']['active'] == FALSE){ + return json_fail(trans('common.product_active_false')); + } + } + $data = $checkoutService->confirm(); return hook_filter('checkout.confirm.data', $data); } catch (\Exception $e) { diff --git a/plugins/LatestProducts/Controllers/MenusController.php b/plugins/LatestProducts/Controllers/MenusController.php index 02295409..44fd5e19 100644 --- a/plugins/LatestProducts/Controllers/MenusController.php +++ b/plugins/LatestProducts/Controllers/MenusController.php @@ -29,7 +29,7 @@ class MenusController extends Controller { $products = ProductRepo::getBuilder( [ - 'active' => 1, + // 'active' => 1, 'sort' => 'created_at', 'order' => 'desc', ]) diff --git a/resources/beike/admin/views/components/form/switch-radio-status.blade.php b/resources/beike/admin/views/components/form/switch-radio-status.blade.php new file mode 100644 index 00000000..a91567a7 --- /dev/null +++ b/resources/beike/admin/views/components/form/switch-radio-status.blade.php @@ -0,0 +1,13 @@ + +
+
+ + +
+
+ + +
+
+ {{ $slot }} +
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 f04cbb14..05981fdc 100644 --- a/resources/beike/admin/views/pages/products/form/form.blade.php +++ b/resources/beike/admin/views/pages/products/form/form.blade.php @@ -136,7 +136,7 @@ - + @hook('admin.product.edit.extra') diff --git a/resources/beike/admin/views/pages/products/index.blade.php b/resources/beike/admin/views/pages/products/index.blade.php index eb69168f..7a7d382e 100644 --- a/resources/beike/admin/views/pages/products/index.blade.php +++ b/resources/beike/admin/views/pages/products/index.blade.php @@ -135,9 +135,12 @@ {{ $product['position'] }} @if ($type != 'trashed') -
- -
+{{--
--}} +{{-- --}} +{{--
--}} + + {{ $product['active'] ? __('common.enable_status') : __('common.disable_status') }} + @endif @hook('admin.product.list.column_value') diff --git a/resources/lang/en/common.php b/resources/lang/en/common.php index ea550fb0..0941cb5e 100644 --- a/resources/lang/en/common.php +++ b/resources/lang/en/common.php @@ -28,7 +28,9 @@ return [ 'all' => 'All', 'status' => 'Status', 'enable' => 'Enable', + 'enable_status' => 'Ordering of products', 'disable' => 'Disable', + 'disable_status' => 'Indirect ordering of products', 'enabled' => 'Enabled', 'disabled' => 'Disabled', 'home' => 'Home', @@ -93,6 +95,7 @@ return [ 'error_page' => 'The data you accessed does not exist or has been deleted~', 'error_page_btn' => 'Return to previous page', 'no_repeat' => 'Do not re-add', + 'product_active_false' => 'Product active are indirect ordering of products', 'contacts' => 'Contacts', 'content' => 'Content', diff --git a/resources/lang/zh_cn/common.php b/resources/lang/zh_cn/common.php index 388a09f2..09a4ffbc 100644 --- a/resources/lang/zh_cn/common.php +++ b/resources/lang/zh_cn/common.php @@ -27,7 +27,9 @@ return [ 'all' => '全部', 'status' => '状态', 'enable' => '启用', + 'enable_status' => '直接下单产品', 'disable' => '禁用', + 'disable_status' => '非直接下单产品', 'enabled' => '启用', 'disabled' => '禁用', 'home' => '首页', @@ -92,6 +94,7 @@ return [ 'error_page' => '您访问的数据不存在或已被删除~', 'error_page_btn' => '返回上一页', 'no_repeat' => '请勿重新添加', + 'product_active_false' => '产品状态为非直接下单产品', 'contacts' => '联系人', 'content' => '内容', diff --git a/themes/default/product/product.blade.php b/themes/default/product/product.blade.php index 2d8b3295..f2b3a136 100644 --- a/themes/default/product/product.blade.php +++ b/themes/default/product/product.blade.php @@ -203,6 +203,28 @@ @endif @else {{--
{{ __('product.has_been_inactive') }}
--}} +
+ @hook('product.detail.buy.before') + @hookwrapper('product.detail.quantity.input') +
+ +
+ + +
+
+ @endhookwrapper + @hookwrapper('product.detail.add_to_cart') + + @endhookwrapper +
@endif