fixed designer

This commit is contained in:
Edward Yang 2022-07-11 20:08:52 +08:00
parent ff26e62d06
commit 9929324034
8 changed files with 54 additions and 52 deletions

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Beike\Shop\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Models\Category; use Beike\Models\Category;
use Beike\Repositories\CategoryRepo; use Beike\Repositories\CategoryRepo;

View File

@ -17,15 +17,18 @@ use Illuminate\Support\Str;
class AdminServiceProvider extends ServiceProvider class AdminServiceProvider extends ServiceProvider
{ {
/**
* @throws \Exception
*/
public function boot() public function boot()
{ {
$uri = request()->getRequestUri(); $uri = request()->getRequestUri();
if (! Str::startsWith($uri, '/admin')) { if (!Str::startsWith($uri, '/admin')) {
// return; return;
} }
// $this->loadRoutesFrom(__DIR__ . '/../Routes/shop.php');
$this->loadRoutesFrom(__DIR__ . '/../Routes/admin.php'); $this->loadRoutesFrom(__DIR__ . '/../Routes/admin.php');
$this->mergeConfigFrom(__DIR__ . '/../../Config/beike.php', 'beike'); $this->mergeConfigFrom(__DIR__ . '/../../Config/beike.php', 'beike');
@ -55,11 +58,13 @@ class AdminServiceProvider extends ServiceProvider
'driver' => 'local', 'driver' => 'local',
'root' => public_path('upload'), 'root' => public_path('upload'),
]); ]);
$this->loadDesignComponents();
} }
protected function registerGuard() protected function registerGuard()
{ {
Config::set('auth.guards.'.AdminUser::AUTH_GUARD, [ Config::set('auth.guards.' . AdminUser::AUTH_GUARD, [
'driver' => 'session', 'driver' => 'session',
'provider' => 'admin_users', 'provider' => 'admin_users',
]); ]);
@ -77,4 +82,40 @@ class AdminServiceProvider extends ServiceProvider
], 'beike-seeders'); ], 'beike-seeders');
} }
/**
* 加载首页 page builder 相关组件
*
* @throws \Exception
*/
protected function loadDesignComponents()
{
$viewPath = base_path() . '/beike/Admin/View';
$builderPath = $viewPath . '/DesignBuilders/';
$builderFolders = glob($builderPath . '*');
foreach ($builderFolders as $builderFolder) {
$folderName = basename($builderFolder, '.php');
$aliasName = Str::snake($folderName);
$componentName = Str::studly($folderName);
$classBaseName = "\\Beike\\Admin\\View\\DesignBuilders\\{$componentName}";
$editorClass = $classBaseName . '\\Editor';
if (!class_exists($editorClass)) {
throw new \Exception("请先定义自定义模板类 {$editorClass}");
}
$this->loadViewComponentsAs('editor', [
$aliasName => $editorClass
]);
$renderClass = $classBaseName . '\\Render';
if (!class_exists($renderClass)) {
throw new \Exception("请先定义自定义模板类 {$renderClass}");
}
$this->loadViewComponentsAs('render', [
$aliasName => $renderClass
]);
}
}
} }

View File

@ -14,6 +14,7 @@ Route::prefix('admin')
Route::get('/', [\Beike\Admin\Http\Controllers\HomeController::class, 'index'])->name('home.index'); Route::get('/', [\Beike\Admin\Http\Controllers\HomeController::class, 'index'])->name('home.index');
Route::Resource('categories', \Beike\Admin\Http\Controllers\CategoryController::class); Route::Resource('categories', \Beike\Admin\Http\Controllers\CategoryController::class);
Route::get('design/builder', [\Beike\Admin\Http\Controllers\DesignController::class, 'index'])->name('design.index');
Route::Resource('files', \Beike\Admin\Http\Controllers\FileController::class); Route::Resource('files', \Beike\Admin\Http\Controllers\FileController::class);

View File

@ -9,7 +9,7 @@
* @modified 2022-07-08 17:09:15 * @modified 2022-07-08 17:09:15
*/ */
namespace Beike\Shop\View\DesignBuilders\SlideShow; namespace Beike\Admin\View\DesignBuilders\SlideShow;
use Illuminate\View\Component; use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;

View File

@ -9,7 +9,7 @@
* @modified 2022-07-08 17:09:15 * @modified 2022-07-08 17:09:15
*/ */
namespace Beike\Shop\View\DesignBuilders\SlideShow; namespace Beike\Admin\View\DesignBuilders\SlideShow;
use Illuminate\View\Component; use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;

View File

@ -37,8 +37,6 @@ class ShopServiceProvider extends ServiceProvider
$this->loadViewComponentsAs('shop', [ $this->loadViewComponentsAs('shop', [
'sidebar' => AccountSidebar::class, 'sidebar' => AccountSidebar::class,
]); ]);
$this->loadDesignComponents();
} }
protected function loadSettings() protected function loadSettings()
@ -80,39 +78,4 @@ class ShopServiceProvider extends ServiceProvider
$menuCategories = CategoryRepo::getTwoLevelCategories(); $menuCategories = CategoryRepo::getTwoLevelCategories();
View::share('categories', $menuCategories); View::share('categories', $menuCategories);
} }
/**
* 加载首页 page builder 相关组件
*
* @throws \Exception
*/
protected function loadDesignComponents()
{
$viewPath = base_path() . '/beike/Shop/View';
$builderPath = $viewPath . '/DesignBuilders/';
$builderFolders = glob($builderPath . '*');
foreach ($builderFolders as $builderFolder) {
$folderName = basename($builderFolder, '.php');
$aliasName = Str::snake($folderName);
$componentName = Str::studly($folderName);
$classBaseName = "\\Beike\\Shop\\View\\DesignBuilders\\{$componentName}";
$editorClass = $classBaseName . '\\Editor';
if (!class_exists($editorClass)) {
throw new \Exception("请先定义自定义模板类 {$editorClass}");
}
$this->loadViewComponentsAs('editor', [
$aliasName => $editorClass
]);
$renderClass = $classBaseName . '\\Render';
if (!class_exists($renderClass)) {
throw new \Exception("请先定义自定义模板类 {$renderClass}");
}
$this->loadViewComponentsAs('render', [
$aliasName => $renderClass
]);
}
}
} }

View File

@ -1,11 +1,8 @@
<?php <?php
use Beike\Models\Customer; use Beike\Models\Customer;
use Beike\Shop\Http\Controllers\Account\AddressController;
use Beike\Shop\Http\Controllers\Account\ForgottenController;
use Beike\Shop\Http\Controllers\Account\OrderController;
use Beike\Shop\Http\Controllers\ZoneController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Beike\Shop\Http\Controllers\ZoneController;
use Beike\Shop\Http\Controllers\CartController; use Beike\Shop\Http\Controllers\CartController;
use Beike\Shop\Http\Controllers\HomeController; use Beike\Shop\Http\Controllers\HomeController;
use Beike\Shop\Http\Controllers\PagesController; use Beike\Shop\Http\Controllers\PagesController;
@ -13,11 +10,12 @@ use Beike\Shop\Http\Controllers\ProductController;
use Beike\Shop\Http\Controllers\CategoryController; use Beike\Shop\Http\Controllers\CategoryController;
use Beike\Shop\Http\Controllers\CheckoutController; use Beike\Shop\Http\Controllers\CheckoutController;
use Beike\Shop\Http\Controllers\Account\LoginController; use Beike\Shop\Http\Controllers\Account\LoginController;
use Beike\Shop\Http\Controllers\Account\OrderController;
use Beike\Shop\Http\Controllers\Account\LogoutController; use Beike\Shop\Http\Controllers\Account\LogoutController;
use Beike\Shop\Http\Controllers\Account\AddressController;
use Beike\Shop\Http\Controllers\Account\AccountController; use Beike\Shop\Http\Controllers\Account\AccountController;
use Beike\Shop\Http\Controllers\Account\RegisterController; use Beike\Shop\Http\Controllers\Account\RegisterController;
use Beike\Shop\Http\Controllers\Account\ForgottenController;
use Beike\Shop\Http\Controllers\DesignController;
Route::prefix('/') Route::prefix('/')
@ -71,5 +69,4 @@ Route::prefix('/')
}); });
}); });
Route::get('design/builder', [DesignController::class, 'index'])->name('design.index');
Route::get('/{url_key}', [PagesController::class, 'show'])->name('pages.show'); Route::get('/{url_key}', [PagesController::class, 'show'])->name('pages.show');

View File

@ -48,7 +48,7 @@
</el-row> </el-row>
</div> </div>
<div class="preview-iframe"> <div class="preview-iframe">
<iframe src="{{ shop_route('home.index') }}" frameborder="0" id="preview-iframe" width="100%" height="100%"></iframe> <iframe src="{{ url('/') }}" frameborder="0" id="preview-iframe" width="100%" height="100%"></iframe>
</div> </div>
</div> </div>