diff --git a/beike/Admin/Http/Controllers/ProductController.php b/beike/Admin/Http/Controllers/ProductController.php index b855f5ef..7e4a64be 100644 --- a/beike/Admin/Http/Controllers/ProductController.php +++ b/beike/Admin/Http/Controllers/ProductController.php @@ -28,6 +28,10 @@ class ProductController extends Controller return view('admin::pages.products.index', $data); } + public function trashed(Request $request) + { + } + public function create(Request $request) { return $this->form($request, new Product()); diff --git a/beike/Admin/Repositories/PermissionRepo.php b/beike/Admin/Repositories/PermissionRepo.php index 6b8cbc1a..04918bad 100644 --- a/beike/Admin/Repositories/PermissionRepo.php +++ b/beike/Admin/Repositories/PermissionRepo.php @@ -42,7 +42,10 @@ class PermissionRepo $permissions = [ ['title' => trans('admin/common.order'), 'permissions' => $this->getOrderPermissions()], ['title' => trans('admin/common.product'), 'permissions' => $this->getProductPermissions()], + ['title' => trans('admin/common.category'), 'permissions' => $this->getCategoryPermissions()], + ['title' => trans('admin/common.brand'), 'permissions' => $this->getBrandPermissions()], ['title' => trans('admin/common.customer'), 'permissions' => $this->getCustomerPermissions()], + ['title' => trans('admin/common.customer_group'), 'permissions' => $this->getCustomerGroupPermissions()], ['title' => trans('admin/common.setting'), 'permissions' => $this->getSettingPermissions()], ['title' => trans('admin/common.plugin'), 'permissions' => $this->getPluginPermissions()], @@ -76,12 +79,38 @@ class PermissionRepo */ private function getProductPermissions(): array { - $routes = ['products_index', 'products_create', 'products_edit', 'products_update', 'products_delete']; + $routes = ['products_index', 'products_create', 'products_edit', 'products_update', 'products_delete', 'products_trashed']; $items = $this->getPermissionList('product', $routes); return hook_filter('role.product_permissions', $items); } + /** + * 分类权限列表 + * + * @return \string[][] + */ + private function getCategoryPermissions(): array + { + $routes = ['categories_index', 'categories_create', 'categories_edit', 'categories_update', 'categories_delete']; + $items = $this->getPermissionList('category', $routes); + return hook_filter('role.category_permissions', $items); + } + + + /** + * 品牌权限列表 + * + * @return \string[][] + */ + private function getBrandPermissions(): array + { + $routes = ['brands_index', 'brands_create', 'brands_edit', 'brands_update', 'brands_delete']; + $items = $this->getPermissionList('brand', $routes); + return hook_filter('role.brand_permissions', $items); + } + + /** * 客户权限列表 * @@ -95,6 +124,19 @@ class PermissionRepo } + /** + * 客户组权限列表 + * + * @return \string[][] + */ + private function getCustomerGroupPermissions(): array + { + $routes = ['customer_groups_index', 'customer_groups_create', 'customer_groups_edit', 'customer_groups_update', 'customer_groups_delete']; + $items = $this->getPermissionList('customer_group', $routes); + return hook_filter('role.customer_group_permissions', $items); + } + + /** * 设置权限列表 * diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 720a6fd1..3904680e 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -68,6 +68,7 @@ Route::prefix($adminName) Route::post('plugins/{code}/uninstall', [Controllers\PluginController::class, 'uninstall'])->name('plugins.uninstall'); Route::put('products/restore', [Controllers\ProductController::class, 'restore']); + Route::get('products/trashed', [Controllers\ProductController::class, 'trashed'])->name('products.trashed'); Route::get('products/{id}/name', [Controllers\ProductController::class, 'name'])->name('products.name'); Route::get('products/names', [Controllers\ProductController::class, 'getNames'])->name('products.names'); Route::resource('products', Controllers\ProductController::class); diff --git a/beike/Repositories/ProductRepo.php b/beike/Repositories/ProductRepo.php index 51603611..6b21041d 100644 --- a/beike/Repositories/ProductRepo.php +++ b/beike/Repositories/ProductRepo.php @@ -114,6 +114,12 @@ class ProductRepo $builder->where('active', (int)$data['active']); } + // 回收站 + if (isset($data['trashed']) && $data['trashed']) { + $builder->onlyTrashed(); + } + + return $builder; }