From b5444edf831e2d02c3aef58296647ea54476bd9d Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Wed, 27 Jul 2022 14:46:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0dcat=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dcat-extension-plus-master/.gitignore | 7 + packages/dcat-extension-plus-master/LICENSE | 21 +++ packages/dcat-extension-plus-master/README.md | 55 +++++++ .../dcat-extension-plus-master/composer.json | 35 +++++ packages/dcat-extension-plus-master/logo.png | Bin 0 -> 9084 bytes .../resources/assets/css/index.css | 0 .../resources/assets/js/index.js | 0 .../resources/lang/zh_CN/main.php | 15 ++ .../resources/lang/zh_CN/menu.php | 5 + .../resources/views/select_create.blade.php | 42 ++++++ .../src/Extensions/Form/SelectCreate.php | 64 ++++++++ .../src/Extensions/Show/Video.php | 32 ++++ .../src/Forms/DcatPlusSiteForm.php | 57 +++++++ .../src/Forms/DcatPlusUIForm.php | 61 ++++++++ .../Controllers/DcatPlusSiteController.php | 24 +++ .../Http/Controllers/DcatPlusUIController.php | 24 +++ .../Http/Middleware/AfterInjectDcatPlus.php | 23 +++ .../Http/Middleware/BeforeInjectDcatPlus.php | 23 +++ .../Http/Middleware/MiddleInjectDcatPlus.php | 21 +++ .../src/Http/routes.php | 16 ++ .../src/ServiceProvider.php | 56 +++++++ .../src/Setting.php | 14 ++ .../src/Support.php | 140 ++++++++++++++++++ .../dcat-extension-plus-master/version.php | 47 ++++++ src/Admin.php | 2 +- src/Extend/ServiceProvider.php | 14 +- 26 files changed, 790 insertions(+), 8 deletions(-) create mode 100644 packages/dcat-extension-plus-master/.gitignore create mode 100644 packages/dcat-extension-plus-master/LICENSE create mode 100644 packages/dcat-extension-plus-master/README.md create mode 100644 packages/dcat-extension-plus-master/composer.json create mode 100644 packages/dcat-extension-plus-master/logo.png create mode 100644 packages/dcat-extension-plus-master/resources/assets/css/index.css create mode 100644 packages/dcat-extension-plus-master/resources/assets/js/index.js create mode 100644 packages/dcat-extension-plus-master/resources/lang/zh_CN/main.php create mode 100644 packages/dcat-extension-plus-master/resources/lang/zh_CN/menu.php create mode 100644 packages/dcat-extension-plus-master/resources/views/select_create.blade.php create mode 100644 packages/dcat-extension-plus-master/src/Extensions/Form/SelectCreate.php create mode 100644 packages/dcat-extension-plus-master/src/Extensions/Show/Video.php create mode 100644 packages/dcat-extension-plus-master/src/Forms/DcatPlusSiteForm.php create mode 100644 packages/dcat-extension-plus-master/src/Forms/DcatPlusUIForm.php create mode 100644 packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusSiteController.php create mode 100644 packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusUIController.php create mode 100644 packages/dcat-extension-plus-master/src/Http/Middleware/AfterInjectDcatPlus.php create mode 100644 packages/dcat-extension-plus-master/src/Http/Middleware/BeforeInjectDcatPlus.php create mode 100644 packages/dcat-extension-plus-master/src/Http/Middleware/MiddleInjectDcatPlus.php create mode 100644 packages/dcat-extension-plus-master/src/Http/routes.php create mode 100644 packages/dcat-extension-plus-master/src/ServiceProvider.php create mode 100644 packages/dcat-extension-plus-master/src/Setting.php create mode 100644 packages/dcat-extension-plus-master/src/Support.php create mode 100644 packages/dcat-extension-plus-master/version.php diff --git a/packages/dcat-extension-plus-master/.gitignore b/packages/dcat-extension-plus-master/.gitignore new file mode 100644 index 0000000..9d4b362 --- /dev/null +++ b/packages/dcat-extension-plus-master/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +phpunit.phar +/vendor +composer.phar +composer.lock +*.project +.idea/ \ No newline at end of file diff --git a/packages/dcat-extension-plus-master/LICENSE b/packages/dcat-extension-plus-master/LICENSE new file mode 100644 index 0000000..e2bb263 --- /dev/null +++ b/packages/dcat-extension-plus-master/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 celaraze + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/dcat-extension-plus-master/README.md b/packages/dcat-extension-plus-master/README.md new file mode 100644 index 0000000..cfda9e5 --- /dev/null +++ b/packages/dcat-extension-plus-master/README.md @@ -0,0 +1,55 @@ +# Dcat Plus + +为 DcatAdmin 后台添加增强配置的功能。修改过程利用 DcatAdmin 自带的 `admin_setting()` 方法实现,不会硬编码修改任何 config 文件或者 .env 文件。 + +## 安装方式 + +最新支持 Dcat Admin 2.0.24beta + +`composer require celaraze/dcat-extension-plus` + +或者在后台扩展中,直接上传本插件的 `.zip` 文件即可。 + +### 使用 + +在菜单 `扩展` 中启用扩展后,会自动添加名为 `增强配置` 的菜单。 + +### 功能 + +- 站点标题 + +- 站点 LOGO + +- 站点微缩 LOGO + +- 站点静态资源 URL + +- 调试模式 + +- 语言切换 + +- 移除底部授权 + +- 主题色切换 + +- 菜单样式切换(默认、分离、水平) + +- 表单行操作按钮固定最右 + +- 快速创建选项:表单可用 `selectCreate()` 字段类型,是 `select` 字段的增强,支持在右侧添加快速创建选项的按钮,异步添加值。 + +```PHP +$form->selectCreate('department','部门') + ->options(Department::class) + ->ajax('/api/departments') // 必须使用 api 方式取选项列表,格式同 select 字段的使用方法 + ->url('/departments/create') // 异步打开的页面,这里是部门创建的页面 url + ->required(); +``` + +- 表单详情扩展字段类型:`video`,视频,传入参数和 `image` 相同。 + +`$show->field('name')->video()` + +## 开源协议 + +Dcat Plus 遵循 MIT 开源协议。 diff --git a/packages/dcat-extension-plus-master/composer.json b/packages/dcat-extension-plus-master/composer.json new file mode 100644 index 0000000..e6c1241 --- /dev/null +++ b/packages/dcat-extension-plus-master/composer.json @@ -0,0 +1,35 @@ +{ + "name": "celaraze/dcat-extension-plus", + "description": "增强 DcatAdmin 的使用体验。", + "alias": "Dcat 增强工具", + "type": "library", + "keywords": [ + "dcat-admin", + "extension" + ], + "homepage": "https://github.com/celaraze/dcat-extension-plus", + "license": "MIT", + "authors": [ + { + "name": "Celaraze", + "email": "celaraze@qq.com" + } + ], + "require": { + "php": ">=7.3.0", + "dcat/laravel-admin": "~2.0" + }, + "autoload": { + "psr-4": { + "Celaraze\\DcatPlus\\": "src/" + } + }, + "extra": { + "dcat-admin": "Celaraze\\DcatPlus\\ServiceProvider", + "laravel": { + "providers": [ + "Celaraze\\DcatPlus\\ServiceProvider" + ] + } + } +} diff --git a/packages/dcat-extension-plus-master/logo.png b/packages/dcat-extension-plus-master/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..356a4bdfa346c6f2fa2debeefb3485a77d2d26aa GIT binary patch literal 9084 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 '站点域名', + 'site_title' => '站点标题', + 'site_logo_text' => 'LOGO(文字)', + 'site_logo' => 'LOGO', + 'site_logo_mini' => 'LOGO(微缩)', + 'site_debug' => '调试模式', + 'footer_remove' => '移除底部授权', + 'select_create' => '快速创建选项', + 'theme_color' => '主题色', + 'sidebar_style' => '菜单样式', + 'site_lang' => '语言', + 'grid_row_actions_right' => '表单行操作按钮最右' +]; diff --git a/packages/dcat-extension-plus-master/resources/lang/zh_CN/menu.php b/packages/dcat-extension-plus-master/resources/lang/zh_CN/menu.php new file mode 100644 index 0000000..65d4bf1 --- /dev/null +++ b/packages/dcat-extension-plus-master/resources/lang/zh_CN/menu.php @@ -0,0 +1,5 @@ + '增强配置' +]; diff --git a/packages/dcat-extension-plus-master/resources/views/select_create.blade.php b/packages/dcat-extension-plus-master/resources/views/select_create.blade.php new file mode 100644 index 0000000..9939e19 --- /dev/null +++ b/packages/dcat-extension-plus-master/resources/views/select_create.blade.php @@ -0,0 +1,42 @@ +
+ +
+ {!! $label !!} +
+ +
+ +
+ @include('admin::form.error') + + + + + +
+ {!! $createDialog !!} +
+
+ + @include('admin::form.help-block') + +
+
+ +@include('admin::form.select-script') diff --git a/packages/dcat-extension-plus-master/src/Extensions/Form/SelectCreate.php b/packages/dcat-extension-plus-master/src/Extensions/Form/SelectCreate.php new file mode 100644 index 0000000..872c90d --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Extensions/Form/SelectCreate.php @@ -0,0 +1,64 @@ +addDefaultConfig([ + 'allowClear' => true, + 'placeholder' => [ + 'id' => '', + 'text' => $this->placeholder(), + ], + ]); + + $this->formatOptions(); + + $this->addVariables([ + 'options' => $this->options, + 'groups' => $this->groups, + 'configs' => $this->config, + 'cascadeScript' => $this->getCascadeScript(), + 'createDialog' => $this->build() + ]); + + $this->attribute('data-value', implode(',', Helper::array($this->value()))); + + return parent::render(); + } + + protected function build(): string + { + Form::dialog(Support::trans('main.select_create')) + ->click('.create-form') + ->url($this->url) + ->width('1200px') + ->height('800px'); + + $text = Support::trans('main.select_create'); + + return " $text "; + } + + public function url($url): SelectCreate + { + $this->url = $url; + return $this; + } +} diff --git a/packages/dcat-extension-plus-master/src/Extensions/Show/Video.php b/packages/dcat-extension-plus-master/src/Extensions/Show/Video.php new file mode 100644 index 0000000..dc75db6 --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Extensions/Show/Video.php @@ -0,0 +1,32 @@ +value, true); + $return = ''; + foreach ($items as $item) { + if (url()->isValidUrl($item)) { + $src = $item; + } elseif ($server) { + $src = rtrim($server, '/') . '/' . ltrim($item, '/'); + } else { + $disk = config('admin.upload.disk'); + + if (config("filesystems.disks.{$disk}")) { + $src = Storage::disk($disk)->url($item); + } else { + return ''; + } + } + $return .= "  "; + } + return $return; + } +} diff --git a/packages/dcat-extension-plus-master/src/Forms/DcatPlusSiteForm.php b/packages/dcat-extension-plus-master/src/Forms/DcatPlusSiteForm.php new file mode 100644 index 0000000..4d43c2f --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Forms/DcatPlusSiteForm.php @@ -0,0 +1,57 @@ +response() + ->success('站点配置更新成功!') + ->refresh(); + } + + /** + * Build a form here. + */ + public function form() + { + $this->url('site_url', Support::trans('main.site_url')) + ->help('站点域名决定了静态资源(头像、图片等)的显示路径,可以包含端口号,例如 http://chemex.it:8000 。') + ->default(admin_setting('site_url')); + $this->text('site_title', Support::trans('main.site_title')) + ->default(admin_setting('site_title')); + $this->text('site_logo_text', Support::trans('main.site_logo_text')) + ->help('文本LOGO显示的优先度低于图片,当没有上传图片作为LOGO时,此项将生效。') + ->default(admin_setting('site_logo_text')); + $this->image('site_logo', Support::trans('main.site_logo')) + ->autoUpload() + ->uniqueName() + ->default(admin_setting('site_logo')); + $this->image('site_logo_mini', Support::trans('main.site_logo_mini')) + ->autoUpload() + ->uniqueName() + ->default(admin_setting('site_logo_mini')); + $this->switch('site_debug', Support::trans('main.site_debug')) + ->help('开启 debug 模式后将会显示异常捕获信息,关闭则只返回 500 状态码。') + ->default(admin_setting('site_debug')); + $this->radio('site_lang', Support::trans('main.site_lang')) + ->options([ + 'zh_CN' => '中文(简体)', + 'en' => 'English' + ]) + ->default(admin_setting('site_lang')); + } +} diff --git a/packages/dcat-extension-plus-master/src/Forms/DcatPlusUIForm.php b/packages/dcat-extension-plus-master/src/Forms/DcatPlusUIForm.php new file mode 100644 index 0000000..5f1a43f --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Forms/DcatPlusUIForm.php @@ -0,0 +1,61 @@ +response() + ->success('站点配置更新成功!') + ->refresh(); + } + + /** + * Build a form here. + */ + public function form() + { + $this->switch('footer_remove', Support::trans('main.footer_remove')) + ->default(admin_setting('footer_remove')); + $defaultColors = [ + 'default' => '墨蓝', + 'blue' => '蓝', + 'blue-light' => '亮蓝', + 'green' => '墨绿', + ]; + foreach (explode(",", ServiceProvider::setting('additional_theme_colors')) as $value) { + if (!empty($value)) { + [$k, $v] = explode(":", $value); + $defaultColors[$k] = $v; + } + } + + $this->radio('theme_color', Support::trans('main.theme_color')) + ->options($defaultColors) + ->default(admin_setting('theme_color')); + $this->radio('sidebar_style', Support::trans('main.sidebar_style')) + ->options([ + 'default' => '默认', + 'sidebar-separate' => '菜单分离', + 'horizontal_menu' => '水平菜单' + ]) + ->default(admin_setting('sidebar_style')); + $this->switch('grid_row_actions_right', Support::trans('main.grid_row_actions_right')) + ->help('启用后表格行操作按钮将永远贴着最右侧。') + ->default(admin_setting('grid_row_actions_right')); + } +} diff --git a/packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusSiteController.php b/packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusSiteController.php new file mode 100644 index 0000000..7f92d2d --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusSiteController.php @@ -0,0 +1,24 @@ +header('增强配置') + ->description('提供了一些对站点增强的配置') + ->body(function (Row $row) { + $tab = new Tab(); + $tab->add('站点配置', new DcatPlusSiteForm(), true); + $tab->addLink('UI优化', admin_route('dcat-plus.ui.index')); + $row->column(12, $tab->withCard()); + }); + } +} diff --git a/packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusUIController.php b/packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusUIController.php new file mode 100644 index 0000000..9244936 --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Http/Controllers/DcatPlusUIController.php @@ -0,0 +1,24 @@ +header('增强配置') + ->description('提供了一些对站点增强的配置') + ->body(function (Row $row) { + $tab = new Tab(); + $tab->addLink('站点配置', admin_route('dcat-plus.site.index')); + $tab->add('UI优化', new DcatPlusUIForm(), true); + $row->column(12, $tab->withCard()); + }); + } +} diff --git a/packages/dcat-extension-plus-master/src/Http/Middleware/AfterInjectDcatPlus.php b/packages/dcat-extension-plus-master/src/Http/Middleware/AfterInjectDcatPlus.php new file mode 100644 index 0000000..98cc5b6 --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Http/Middleware/AfterInjectDcatPlus.php @@ -0,0 +1,23 @@ +initConfig(); + $support->gridRowActionsRight(); + $support->injectFields(); + $support->footerRemove(); + + return $next($request); + } +} diff --git a/packages/dcat-extension-plus-master/src/Http/routes.php b/packages/dcat-extension-plus-master/src/Http/routes.php new file mode 100644 index 0000000..623bbce --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Http/routes.php @@ -0,0 +1,16 @@ +name('dcat-plus.site.index'); + +Route::get('/dcat-plus/ui', [DcatPlusUIController::class, 'index']) + ->name('dcat-plus.ui.index'); + + + diff --git a/packages/dcat-extension-plus-master/src/ServiceProvider.php b/packages/dcat-extension-plus-master/src/ServiceProvider.php new file mode 100644 index 0000000..65c5fe9 --- /dev/null +++ b/packages/dcat-extension-plus-master/src/ServiceProvider.php @@ -0,0 +1,56 @@ + [ + BeforeInjectDcatPlus::class, + ], + 'middle' => [ + MiddleInjectDcatPlus::class, + ], + 'after' => [ + AfterInjectDcatPlus::class, + ] + ]; + protected $menu = [ + [ + 'title' => 'Dcat Plus', + 'uri' => 'dcat-plus/site', + 'icon' => 'feather icon-settings' + ] + ]; + + public function register() + { + // + } + + public function settingForm() + { + return new Setting($this); + } + + public function init() + { + parent::init(); + + } +} diff --git a/packages/dcat-extension-plus-master/src/Setting.php b/packages/dcat-extension-plus-master/src/Setting.php new file mode 100644 index 0000000..54847dc --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Setting.php @@ -0,0 +1,14 @@ +text('additional_theme_colors', 'Additional Theme Colors') + ->help("cssname1:Title1,cssname2:Title2"); + } +} diff --git a/packages/dcat-extension-plus-master/src/Support.php b/packages/dcat-extension-plus-master/src/Support.php new file mode 100644 index 0000000..e6c11a3 --- /dev/null +++ b/packages/dcat-extension-plus-master/src/Support.php @@ -0,0 +1,140 @@ +url(admin_setting('site_logo')); + $logo = ""; + } + + /** + * 处理站点LOGO-MINI自定义 + */ + if (empty(admin_setting('site_logo_mini'))) { + $logo_mini = admin_setting('site_logo_text'); + } else { + $logo_mini = Storage::disk(config('admin.upload.disk'))->url(admin_setting('site_logo_mini')); + $logo_mini = ""; + } + + /** + * 处理站点名称 + */ + $horizontal_menu = false; + if (empty(admin_setting('site_url'))) { + $site_url = 'http://localhost'; + } else { + $site_url = admin_setting('site_url'); + } + + if (empty(admin_setting('site_debug'))) { + $site_debug = true; + } else { + $site_debug = admin_setting('site_debug'); + } + + if (empty(admin_setting('theme_color'))) { + $theme_color = 'blue-light'; + } else { + $theme_color = admin_setting('theme_color'); + } + if (empty(admin_setting('sidebar_style'))) { + $sidebar_style = 'default'; + } else { + $sidebar_style = admin_setting('sidebar_style'); + if ($sidebar_style == 'horizontal_menu') { + $horizontal_menu = true; + } + } + + /** + * 复写admin站点配置 + */ + config([ + 'app.url' => $site_url, + 'app.debug' => (bool)$site_debug, + 'app.locale' => admin_setting('site_lang'), + 'app.fallback_locale' => admin_setting('site_lang'), + + 'admin.title' => admin_setting('site_title'), + 'admin.logo' => $logo, + 'admin.logo-mini' => $logo_mini, + 'admin.layout.color' => $theme_color, + 'admin.layout.body_class' => $sidebar_style, + 'admin.layout.horizontal_menu' => $horizontal_menu + ]); + } + + /** + * 注入字段. + */ + public function injectFields() + { + Form::extend('selectCreate', SelectCreate::class); + Show\Field::extend('video', Video::class); + } + + /** + * 底部授权移除. + */ + public function footerRemove() + { + if (admin_setting('footer_remove')) { + Admin::style( + <<<'CSS' +.main-footer { + display: none; +} +CSS + ); + } + } + + /** + * 行操作按钮最右. + */ + public function gridRowActionsRight() + { + if (admin_setting('grid_row_actions_right')) { + Admin::style( + << [ + '原始版本发布', + ], + '1.0.1' => [ + '增加调试模式开关 & 侧栏子菜单缩进增加', + ], + '1.0.2' => [ + '扩展表单字段 selectCreate 为 select 字段的升级版,支持快速创建。', + ], + '1.0.3' => [ + '增加扩展图标和别名。', + ], + '1.0.4' => [ + '增加表单提交预处理过滤,防止XSS攻击。', + ], + '1.0.5' => [ + '优化表单提交预处理过滤,不再依赖第三方包。', + ], + '1.0.6' => [ + 'selectCreate组件的颜色改为主题色。', + 'UI增加表格行操作按钮紧贴最右侧。' + ], + '1.0.7' => [ + '支持DcatAdmin 2.0.18beta。', + '暂时移除侧栏菜单子菜单缩进(不兼容)。', + '增加水平菜单选项。', + '原先的头部块状显示改为边距优化' + ], + '1.0.8' => [ + '提供了自定义颜色的支持入口', + ], + '1.0.9' => [ + '移除HTML、JS过滤', + '移除部分UI优化' + ], + '1.1.0' => [ + '修复debug配置无效的问题', + '自动注入扩展字段', + '移除了一些无用的配置' + ], + '1.1.1' => [ + '增加详情页视频扩展字段', + ], +]; diff --git a/src/Admin.php b/src/Admin.php index 6321540..86721ff 100755 --- a/src/Admin.php +++ b/src/Admin.php @@ -542,7 +542,7 @@ class Admin $jsVariables['pjax_container_selector'] = $pjaxId ? ('#'.$pjaxId) : ''; $jsVariables['token'] = csrf_token(); - $jsVariables['lang'] = ($lang = __('admin.client')) ? array_merge($lang, $jsVariables['lang'] ?? []) : []; + $jsVariables['lang'] = ($lang = is_array(__('admin.client')) ? __('admin.client'): []) ? array_merge($lang, $jsVariables['lang'] ?? []) : []; $jsVariables['colors'] = static::color()->all(); $jsVariables['dark_mode'] = static::isDarkMode(); $jsVariables['sidebar_dark'] = config('admin.layout.sidebar_dark') || ($sidebarStyle === 'dark'); diff --git a/src/Extend/ServiceProvider.php b/src/Extend/ServiceProvider.php index eacf4f7..642522e 100644 --- a/src/Extend/ServiceProvider.php +++ b/src/Extend/ServiceProvider.php @@ -391,13 +391,13 @@ abstract class ServiceProvider extends LaravelServiceProvider */ public function registerRoutes($callback) { - $this->loadRoutesFrom($callback); - // Admin::app()->routes(function ($router) use ($callback) { - // $router->group([ - // 'prefix' => config('admin.route.prefix'), - // 'middleware' => config('admin.route.middleware'), - // ], $callback); - // }); + // $this->loadRoutesFrom($callback); + Admin::app()->routes(function ($router) use ($callback) { + $router->group([ + 'prefix' => config('admin.route.prefix'), + 'middleware' => config('admin.route.middleware'), + ], $callback); + }); } /**