From 912640dfde97613bbcfd0386b2fe9c9df454ee90 Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Wed, 27 Jul 2022 16:38:43 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/setting/.gitignore | 7 ++ packages/setting/README.md | 3 + packages/setting/composer.json | 31 +++++++++ .../setting/resources/lang/en/setting.php | 14 ++++ .../setting/resources/lang/zh_CN/setting.php | 14 ++++ .../Http/Controllers/SettingController.php | 65 +++++++++++++++++++ packages/setting/src/Http/routes.php | 7 ++ packages/setting/src/Models/Setting.php | 14 ++++ packages/setting/src/Setting.php | 14 ++++ .../setting/src/SettingServiceProvider.php | 31 +++++++++ .../updates/CreateAdminSettingsTable.php | 17 ++--- packages/setting/version.php | 7 ++ src/Models/Setting.php | 31 --------- 13 files changed, 212 insertions(+), 43 deletions(-) create mode 100644 packages/setting/.gitignore create mode 100644 packages/setting/README.md create mode 100644 packages/setting/composer.json create mode 100755 packages/setting/resources/lang/en/setting.php create mode 100755 packages/setting/resources/lang/zh_CN/setting.php create mode 100644 packages/setting/src/Http/Controllers/SettingController.php create mode 100644 packages/setting/src/Http/routes.php create mode 100644 packages/setting/src/Models/Setting.php create mode 100644 packages/setting/src/Setting.php create mode 100644 packages/setting/src/SettingServiceProvider.php rename database/migrations/2020_09_07_090635_create_admin_settings_table.php => packages/setting/updates/CreateAdminSettingsTable.php (56%) create mode 100644 packages/setting/version.php delete mode 100644 src/Models/Setting.php diff --git a/packages/setting/.gitignore b/packages/setting/.gitignore new file mode 100644 index 0000000..9d4b362 --- /dev/null +++ b/packages/setting/.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/setting/README.md b/packages/setting/README.md new file mode 100644 index 0000000..838df4c --- /dev/null +++ b/packages/setting/README.md @@ -0,0 +1,3 @@ +# Dcat Admin Extension + + diff --git a/packages/setting/composer.json b/packages/setting/composer.json new file mode 100644 index 0000000..030a3e0 --- /dev/null +++ b/packages/setting/composer.json @@ -0,0 +1,31 @@ +{ + "name": "peidikeji/setting", + "alias": "setting", + "description": "Setting", + "type": "library", + "keywords": ["dcat-admin", "extension"], + "homepage": "https://github.com/peidikeji/setting", + "license": "MIT", + "authors": [ + { + "name": "panliang", + "email": "1163816051@qq.com" + } + ], + "require": { + "php": ">=7.1.0" + }, + "autoload": { + "psr-4": { + "Peidikeji\\Setting\\": "src/" + } + }, + "extra": { + "dcat-admin": "Peidikeji\\Setting\\SettingServiceProvider", + "laravel": { + "providers": [ + "Peidikeji\\Setting\\SettingServiceProvider" + ] + } + } +} diff --git a/packages/setting/resources/lang/en/setting.php b/packages/setting/resources/lang/en/setting.php new file mode 100755 index 0000000..7d06d31 --- /dev/null +++ b/packages/setting/resources/lang/en/setting.php @@ -0,0 +1,14 @@ + [ + 'Setting' => '配置管理', + 'setting' => '配置管理', + ], + 'fields' => [ + 'slug' => 'key', + 'value' => 'value', + ], + 'options' => [ + ], +]; diff --git a/packages/setting/resources/lang/zh_CN/setting.php b/packages/setting/resources/lang/zh_CN/setting.php new file mode 100755 index 0000000..7d06d31 --- /dev/null +++ b/packages/setting/resources/lang/zh_CN/setting.php @@ -0,0 +1,14 @@ + [ + 'Setting' => '配置管理', + 'setting' => '配置管理', + ], + 'fields' => [ + 'slug' => 'key', + 'value' => 'value', + ], + 'options' => [ + ], +]; diff --git a/packages/setting/src/Http/Controllers/SettingController.php b/packages/setting/src/Http/Controllers/SettingController.php new file mode 100644 index 0000000..3513636 --- /dev/null +++ b/packages/setting/src/Http/Controllers/SettingController.php @@ -0,0 +1,65 @@ +column('slug'); + $grid->column('name'); + $grid->column('value'); + + $grid->showCreateButton(); + $grid->showQuickEditButton(); + $grid->showDeleteButton(); + $grid->showViewButton(); + + $grid->quickSearch(['slug', 'name', 'value'])->placeholder('输入 key/名称/value 搜索'); + }); + } + + /** + * Make a show builder. + * + * @param mixed $id + * + * @return Show + */ + protected function detail($id) + { + return Show::make($id, new Setting(), function (Show $show) { + $show->field('slug'); + $show->field('name'); + $show->field('value'); + }); + } + + /** + * Make a form builder. + * + * @return Form + */ + protected function form() + { + return Form::make(new Setting(), function (Form $form) { + $unique = Rule::unique((new Setting())->getTable(), 'slug'); + if ($form->isEditing()) { + $unique->ignore($form->getKey(), 'slug'); + } + $form->text('name')->required(); + $form->text('slug')->required()->help('不能重复')->rules([$unique]); + $form->textarea('value')->required(); + }); + } +} diff --git a/packages/setting/src/Http/routes.php b/packages/setting/src/Http/routes.php new file mode 100644 index 0000000..a044c5a --- /dev/null +++ b/packages/setting/src/Http/routes.php @@ -0,0 +1,7 @@ +names('setting'); diff --git a/packages/setting/src/Models/Setting.php b/packages/setting/src/Models/Setting.php new file mode 100644 index 0000000..5cf4663 --- /dev/null +++ b/packages/setting/src/Models/Setting.php @@ -0,0 +1,14 @@ +text('key1')->required(); + $this->text('key2')->required(); + } +} diff --git a/packages/setting/src/SettingServiceProvider.php b/packages/setting/src/SettingServiceProvider.php new file mode 100644 index 0000000..5cd3d9f --- /dev/null +++ b/packages/setting/src/SettingServiceProvider.php @@ -0,0 +1,31 @@ + 'Setting', 'uri' => 'keywords', 'icon' => ''], + ]; + + public function register() + { + // + } + + public function init() + { + parent::init(); + + // + + } + + // public function settingForm() + // { + // return new Setting($this); + // } +} diff --git a/database/migrations/2020_09_07_090635_create_admin_settings_table.php b/packages/setting/updates/CreateAdminSettingsTable.php similarity index 56% rename from database/migrations/2020_09_07_090635_create_admin_settings_table.php rename to packages/setting/updates/CreateAdminSettingsTable.php index 1a050dc..d097b4b 100644 --- a/database/migrations/2020_09_07_090635_create_admin_settings_table.php +++ b/packages/setting/updates/CreateAdminSettingsTable.php @@ -6,16 +6,6 @@ use Illuminate\Support\Facades\Schema; class CreateAdminSettingsTable extends Migration { - public function getConnection() - { - return $this->config('database.connection') ?: config('database.default'); - } - - public function config($key) - { - return config('admin.'.$key); - } - /** * Run the migrations. * @@ -23,10 +13,13 @@ class CreateAdminSettingsTable extends Migration */ public function up() { - Schema::create($this->config('database.settings_table') ?: 'admin_settings', function (Blueprint $table) { + Schema::create('admin_settings', function (Blueprint $table) { $table->string('slug', 100)->primary(); $table->longText('value'); + $table->string('name')->nullable(); $table->timestamps(); + + $table->comment('配置表'); }); } @@ -37,6 +30,6 @@ class CreateAdminSettingsTable extends Migration */ public function down() { - Schema::dropIfExists($this->config('database.settings_table') ?: 'admin_settings'); + Schema::dropIfExists('admin_settings'); } } diff --git a/packages/setting/version.php b/packages/setting/version.php new file mode 100644 index 0000000..1a623b7 --- /dev/null +++ b/packages/setting/version.php @@ -0,0 +1,7 @@ + [ + 'Initialize extension.', + ], +]; diff --git a/src/Models/Setting.php b/src/Models/Setting.php deleted file mode 100644 index 29d902a..0000000 --- a/src/Models/Setting.php +++ /dev/null @@ -1,31 +0,0 @@ -init(); - - parent::__construct($attributes); - } - - protected function init() - { - $connection = config('admin.database.connection') ?: config('database.default'); - - $this->setConnection($connection); - - $this->setTable(config('admin.database.settings_table') ?: 'admin_settings'); - } -}