From 76b37ed86770362bf66498a7678bcb2251dc281e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=B2=E7=A1=95?= Date: Wed, 26 Apr 2023 08:38:24 +0000 Subject: [PATCH] !86 Optimization Advanced filters, taxes, currencies, etc. * Fix region configuration province selection problem * Optimization Advanced filters, taxes, currencies, etc. --- .../Controllers/MultiFilterController.php | 43 ++++ .../Http/Controllers/SettingController.php | 6 - beike/Admin/Repositories/PermissionRepo.php | 2 +- beike/Admin/Routes/admin.php | 4 + beike/Admin/View/Components/Sidebar.php | 5 +- package.json | 2 - resources/beike/admin/css/_global.scss | 15 ++ .../admin/views/components/header.blade.php | 10 +- .../views/pages/currencies/index.blade.php | 4 + .../pages/customer_groups/index.blade.php | 4 +- .../views/pages/multi_filter/index.blade.php | 114 ++++++++++ .../admin/views/pages/regions/index.blade.php | 199 ++++++++++-------- .../admin/views/pages/rmas/index.blade.php | 1 + .../beike/admin/views/pages/setting.blade.php | 97 ++------- .../views/pages/tax_classes/index.blade.php | 4 + .../views/pages/tax_rates/index.blade.php | 4 + resources/lang/en/admin/common.php | 2 + resources/lang/en/admin/multi_filter.php | 14 ++ resources/lang/en/admin/product.php | 2 + resources/lang/en/admin/rma.php | 1 + resources/lang/en/admin/setting.php | 2 +- resources/lang/zh_cn/admin/common.php | 2 + resources/lang/zh_cn/admin/multi_filter.php | 14 ++ resources/lang/zh_cn/admin/product.php | 2 + resources/lang/zh_cn/admin/rma.php | 5 +- resources/lang/zh_cn/admin/setting.php | 2 +- resources/lang/zh_hk/admin/common.php | 2 + resources/lang/zh_hk/admin/multi_filter.php | 14 ++ resources/lang/zh_hk/admin/rma.php | 1 + resources/lang/zh_hk/admin/setting.php | 2 +- .../shared/filter_sidebar_block.blade.php | 42 ++-- 31 files changed, 409 insertions(+), 212 deletions(-) create mode 100644 beike/Admin/Http/Controllers/MultiFilterController.php create mode 100644 resources/beike/admin/views/pages/multi_filter/index.blade.php create mode 100644 resources/lang/en/admin/multi_filter.php create mode 100644 resources/lang/zh_cn/admin/multi_filter.php create mode 100644 resources/lang/zh_hk/admin/multi_filter.php diff --git a/beike/Admin/Http/Controllers/MultiFilterController.php b/beike/Admin/Http/Controllers/MultiFilterController.php new file mode 100644 index 00000000..0c4b9025 --- /dev/null +++ b/beike/Admin/Http/Controllers/MultiFilterController.php @@ -0,0 +1,43 @@ + + * @created 2023-01-04 19:45:41 + * @modified 2023-01-04 19:45:41 + */ + +namespace Beike\Admin\Http\Controllers; + +use Beike\Admin\Repositories\AttributeRepo; +use Beike\Repositories\SettingRepo; +use Illuminate\Http\Request; + +class MultiFilterController extends Controller +{ + public function index() + { + $multiFilter = system_setting('base.multi_filter'); + if ($attributeIds = $multiFilter['attribute'] ?? []) { + $multiFilter['attribute'] = AttributeRepo::getByIds($attributeIds); + } + + $data = [ + 'multi_filter' => $multiFilter, + ]; + + return view('admin::pages.multi_filter.index', $data); + } + + public function store(Request $request) + { + $settings = $request->all(); + foreach ($settings as $key => $value) { + SettingRepo::storeValue($key, $value); + } + + return redirect(admin_route('multi_filter.index'))->with('success', trans('common.updated_success')); + } +} diff --git a/beike/Admin/Http/Controllers/SettingController.php b/beike/Admin/Http/Controllers/SettingController.php index 41cf68a9..97eb7edf 100644 --- a/beike/Admin/Http/Controllers/SettingController.php +++ b/beike/Admin/Http/Controllers/SettingController.php @@ -12,7 +12,6 @@ namespace Beike\Admin\Http\Controllers; use Beike\Admin\Http\Resources\CustomerGroupDetail; -use Beike\Admin\Repositories\AttributeRepo; use Beike\Repositories\CountryRepo; use Beike\Repositories\CurrencyRepo; use Beike\Repositories\CustomerGroupRepo; @@ -35,15 +34,10 @@ class SettingController extends Controller ['value' => 'shipping', 'label' => trans('admin/setting.shipping_address')], ['value' => 'payment', 'label' => trans('admin/setting.payment_address')], ]; - $multiFilter = system_setting('base.multi_filter'); - if ($attributeIds = $multiFilter['attribute'] ?? []) { - $multiFilter['attribute'] = AttributeRepo::getByIds($attributeIds); - } $data = [ 'countries' => CountryRepo::listEnabled(), 'currencies' => CurrencyRepo::listEnabled(), - 'multi_filter' => $multiFilter, 'tax_address' => $taxAddress, 'customer_groups' => CustomerGroupDetail::collection(CustomerGroupRepo::list())->jsonSerialize(), 'themes' => $themes, diff --git a/beike/Admin/Repositories/PermissionRepo.php b/beike/Admin/Repositories/PermissionRepo.php index 96103f58..734752fe 100644 --- a/beike/Admin/Repositories/PermissionRepo.php +++ b/beike/Admin/Repositories/PermissionRepo.php @@ -138,7 +138,7 @@ class PermissionRepo */ private function getProductPermissions(): array { - $routes = ['products_index', 'products_create', 'products_show', 'products_update', 'products_delete', 'products_trashed', 'products_restore']; + $routes = ['products_index', 'products_create', 'products_show', 'products_update', 'products_delete', 'products_trashed', 'products_restore', 'products_filter_index', 'products_filter_update']; $items = $this->getPermissionList('product', $routes); return hook_filter('role.product_permissions', $items); diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 5abfda76..2a5b4eae 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -32,6 +32,10 @@ Route::prefix($adminName) Route::middleware('can:attributes_update')->put('attributes/{id}', [Controllers\AttributeController::class, 'update'])->name('attributes.update'); Route::middleware('can:attributes_delete')->delete('attributes/{id}', [Controllers\AttributeController::class, 'destroy'])->name('attributes.destroy'); + // 高级筛选 + Route::middleware('can:products_filter_index')->get('multi_filter', [Controllers\MultiFilterController::class, 'index'])->name('multi_filter.index'); + Route::middleware('can:products_filter_update')->post('multi_filter', [Controllers\MultiFilterController::class, 'store'])->name('multi_filter.store'); + // 属性组 Route::middleware('can:attribute_groups_index')->get('attribute_groups', [Controllers\AttributeGroupController::class, 'index'])->name('attribute_groups.index'); Route::middleware('can:attribute_groups_create')->post('attribute_groups', [Controllers\AttributeGroupController::class, 'store'])->name('attribute_groups.store'); diff --git a/beike/Admin/View/Components/Sidebar.php b/beike/Admin/View/Components/Sidebar.php index 5c32fd9e..92fc373e 100644 --- a/beike/Admin/View/Components/Sidebar.php +++ b/beike/Admin/View/Components/Sidebar.php @@ -122,7 +122,7 @@ class Sidebar extends Component */ private function getProductSubPrefix() { - $prefix = ['products.', 'categories.', 'brands.', 'attribute_groups.', 'attributes.']; + $prefix = ['products.', 'multi_filter.', 'categories.', 'brands.', 'attribute_groups.', 'attributes.']; return hook_filter('admin.sidebar.product.prefix', $prefix); } @@ -190,11 +190,12 @@ class Sidebar extends Component public function getProductSubRoutes() { $routes = [ - ['route' => 'categories.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'products.index', 'icon' => 'fa fa-tachometer-alt'], + ['route' => 'categories.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'brands.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], ['route' => 'attribute_groups.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'attributes.index', 'icon' => 'fa fa-tachometer-alt'], + ['route' => 'multi_filter.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'products.trashed', 'icon' => 'fa fa-tachometer-alt'], ]; diff --git a/package.json b/package.json index 1d81b15e..d3c6044c 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,6 @@ "axios": "^0.21", "bootstrap": "^5.2.1", "bootstrap-5.1.3": "npm:bootstrap@5.1.3", - "browser-sync": "^2.27.10", - "browser-sync-webpack-plugin": "^2.3.0", "laravel-mix": "^6.0.6", "lodash": "^4.17.19", "resolve-url-loader": "^4.0.0", diff --git a/resources/beike/admin/css/_global.scss b/resources/beike/admin/css/_global.scss index 532df25d..0b14b310 100644 --- a/resources/beike/admin/css/_global.scss +++ b/resources/beike/admin/css/_global.scss @@ -524,4 +524,19 @@ table.table thead th, .fw-bold, h1,h2,h3, h4, h5, h6, b, strong, .card .card-hea } } } +} + +.active-line { + position: relative; + + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: calc(100% + 1rem); + background-color: rgba($primary, 0.04); + border: 1px dashed rgba($primary, 0.5); + } } \ No newline at end of file diff --git a/resources/beike/admin/views/components/header.blade.php b/resources/beike/admin/views/components/header.blade.php index 18cdc92a..9c1bc4b3 100644 --- a/resources/beike/admin/views/components/header.blade.php +++ b/resources/beike/admin/views/components/header.blade.php @@ -20,7 +20,7 @@ @hookwrapper('admin.header.vip') @endhookwrapper + @hookwrapper('admin.header.license') + + @endhookwrapper + @hookwrapper('admin.header.marketing')