From c21cd2309608fcd6af37445f5156447b471d1ff6 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 9 Sep 2022 16:12:35 +0800
Subject: [PATCH 01/16] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'README.md'?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 90aaad2..f27323f 100755
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@ Fork From [jqhph/dcat-admin](https://github.com/jqhph/dcat-admin)
## 安装
+- 可选 `composer` 镜像: `composer config repo.packagist composer https://mirrors.aliyun.com/composer/`
- `composer config repositories.peidikeji/dcat-admin git https://gitea.peidikeji.cn/pdkj/dcat-admin.git`
- `composer require peidikeji/dcat-admin`
From 3a74e8c495c58a1784d18e6ac6b2eace3f4b4cb1 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 9 Sep 2022 16:22:00 +0800
Subject: [PATCH 02/16] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'README.md'?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index f27323f..0e62e3e 100755
--- a/README.md
+++ b/README.md
@@ -4,9 +4,35 @@ Fork From [jqhph/dcat-admin](https://github.com/jqhph/dcat-admin)
## 安装
-- 可选 `composer` 镜像: `composer config repo.packagist composer https://mirrors.aliyun.com/composer/`
+- `composer` 镜像(可选): `composer config repo.packagist composer https://mirrors.aliyun.com/composer/`
- `composer config repositories.peidikeji/dcat-admin git https://gitea.peidikeji.cn/pdkj/dcat-admin.git`
- `composer require peidikeji/dcat-admin`
+- 修改 `config/app.php`
+
+```php
+return [
+ 'timezone' => env('TIMEZONE', 'Asia/Chongqing'),
+ 'locale' => 'zh_CN',
+ 'faker_locale' => 'zh_CN',
+];
+```
+
+- 修改 `app\Providers\AppServiceProvider.php`
+
+```php
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Http\Resources\Json\JsonResource;
+
+ public function boot()
+ {
+ Schema::defaultStringLength(191);
+ JsonResource::withoutWrapping();
+ }
+```
+
+- 修改`.env` 中的数据库配置
+- `php artisan admin:publish`
+- `php artisan admin:install`
## 改动
From 0e8b898655f21ac12d33718a9eb74dc3ea1df6b2 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 9 Sep 2022 16:24:02 +0800
Subject: [PATCH 03/16] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'README.md'?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 0e62e3e..3320de3 100755
--- a/README.md
+++ b/README.md
@@ -33,6 +33,7 @@ use Illuminate\Http\Resources\Json\JsonResource;
- 修改`.env` 中的数据库配置
- `php artisan admin:publish`
- `php artisan admin:install`
+- 进入管理后台 `{host}/admin`, admin, admin
## 改动
From b46d4ea6c4f6937325d2c3f24f9060c1a711592c Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 9 Sep 2022 16:27:05 +0800
Subject: [PATCH 04/16] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'README.md'?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/README.md b/README.md
index 3320de3..3ceea38 100755
--- a/README.md
+++ b/README.md
@@ -31,6 +31,20 @@ use Illuminate\Http\Resources\Json\JsonResource;
```
- 修改`.env` 中的数据库配置
+
+```
+APP_URL=网站域名(如: https://laravel.com)
+
+LOG_DEPRECATIONS_CHANNEL=null(删除本项)
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=laravel
+DB_USERNAME=root
+DB_PASSWORD=
+```
+
- `php artisan admin:publish`
- `php artisan admin:install`
- 进入管理后台 `{host}/admin`, admin, admin
From 30f95ae8c7f848e1fae45d26cb8fc0816f440ba6 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Wed, 14 Sep 2022 11:41:09 +0800
Subject: [PATCH 05/16] Setting Model
---
.../Http/Controllers/SettingController.php | 2 +-
packages/setting/src/Setting.php | 14 ---------
src/Models/Setting.php | 31 +++++++++++++++++++
3 files changed, 32 insertions(+), 15 deletions(-)
delete mode 100644 packages/setting/src/Setting.php
create mode 100644 src/Models/Setting.php
diff --git a/packages/setting/src/Http/Controllers/SettingController.php b/packages/setting/src/Http/Controllers/SettingController.php
index aaf10fb..59684a3 100644
--- a/packages/setting/src/Http/Controllers/SettingController.php
+++ b/packages/setting/src/Http/Controllers/SettingController.php
@@ -12,7 +12,7 @@ use Dcat\Admin\Http\Controllers\AdminController;
class SettingController extends AdminController
{
- protected $translation = 'peidikeji.setting::setting';
+ protected $translation = 'peidikeji.dcat-admin-extension-setting::setting';
protected function grid()
{
diff --git a/packages/setting/src/Setting.php b/packages/setting/src/Setting.php
deleted file mode 100644
index 4501af3..0000000
--- a/packages/setting/src/Setting.php
+++ /dev/null
@@ -1,14 +0,0 @@
-text('key1')->required();
- $this->text('key2')->required();
- }
-}
diff --git a/src/Models/Setting.php b/src/Models/Setting.php
new file mode 100644
index 0000000..29d902a
--- /dev/null
+++ b/src/Models/Setting.php
@@ -0,0 +1,31 @@
+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');
+ }
+}
From 13956a91ab71a948c98bf16a24323e7c42d4f2e3 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Thu, 15 Sep 2022 09:36:26 +0800
Subject: [PATCH 06/16] update dcat-admin-setting
---
packages/setting/README.md | 28 +++++++-
packages/setting/composer.json | 7 +-
.../Http/Controllers/SettingController.php | 4 +-
.../setting/src/SettingServiceProvider.php | 16 +----
.../updates/SettingPermissionSeeder.php | 69 -------------------
packages/setting/version.php | 4 --
6 files changed, 34 insertions(+), 94 deletions(-)
delete mode 100644 packages/setting/updates/SettingPermissionSeeder.php
diff --git a/packages/setting/README.md b/packages/setting/README.md
index 838df4c..8cacfa4 100644
--- a/packages/setting/README.md
+++ b/packages/setting/README.md
@@ -1,3 +1,29 @@
-# Dcat Admin Extension
+# Dcat Admin Extension Setting
+配置管理, 使用 `dcat-admin` 原有的数据表 `admin_settings`
+## 数据表
+
+| column | type | nullable | default | comment |
+| - | - | - | - | - |
+| slug | varchar(100) | not null | - | 主键 |
+| name | varchart(100) | null | - | 名称 |
+| value | longtext | null | - | 内容 |
+| created_at | timestamp | null | - | 创建时间 |
+| updated_at | timestamp | null | - | 更新时间 |
+
+## 权限
+
+```php
+$permissions = [
+ 'settings' => ['name' => '配置管理', 'curd' => true],
+];
+```
+
+## 菜单
+
+```php
+$menus = [
+ ['title' => '配置管理', 'icon' => '', 'uri' => '/settings', 'permission' => 'settings'],
+];
+```
diff --git a/packages/setting/composer.json b/packages/setting/composer.json
index 821c80a..6deabd5 100644
--- a/packages/setting/composer.json
+++ b/packages/setting/composer.json
@@ -3,8 +3,8 @@
"alias": "setting",
"description": "Setting",
"type": "library",
- "keywords": ["dcat-admin", "extension"],
- "homepage": "https://github.com/peidikeji/setting",
+ "keywords": ["dcat-admin", "extension", "setting"],
+ "homepage": "https://gitea.peidikeji.cn/pdkj/dcat-admin/src/branch/master/packages/setting",
"license": "MIT",
"authors": [
{
@@ -12,9 +12,6 @@
"email": "1163816051@qq.com"
}
],
- "require": {
- "php": ">=7.1.0"
- },
"autoload": {
"psr-4": {
"Peidikeji\\Setting\\": "src/"
diff --git a/packages/setting/src/Http/Controllers/SettingController.php b/packages/setting/src/Http/Controllers/SettingController.php
index 59684a3..cd30616 100644
--- a/packages/setting/src/Http/Controllers/SettingController.php
+++ b/packages/setting/src/Http/Controllers/SettingController.php
@@ -23,13 +23,13 @@ class SettingController extends AdminController
$grid->column('name');
$grid->column('value');
- $grid->disableCreateButton(!(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.settings.create')));
+ $grid->showCreateButton(Admin::user()->can('dcat.admin.settings.create'));
$grid->enableDialogCreate();
$grid->actions(function (Grid\Displayers\Actions $actions) {
$actions->disableView();
$actions->disableEdit();
- $actions->quickEdit(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.settings.edit'));
+ $actions->quickEdit(Admin::user()->can('dcat.admin.settings.edit'));
});
$grid->quickSearch(['slug', 'name', 'value'])->placeholder('输入 key/名称/value 搜索');
diff --git a/packages/setting/src/SettingServiceProvider.php b/packages/setting/src/SettingServiceProvider.php
index 99710d7..6a76ec9 100644
--- a/packages/setting/src/SettingServiceProvider.php
+++ b/packages/setting/src/SettingServiceProvider.php
@@ -3,29 +3,19 @@
namespace Peidikeji\Setting;
use Dcat\Admin\Extend\ServiceProvider;
-use Dcat\Admin\Admin;
class SettingServiceProvider extends ServiceProvider
{
- protected $menu = [
- // ['title' => 'Setting', 'uri' => 'keywords', 'icon' => ''],
- ];
+ // protected $menu = [
+ // ['title' => '配置管理', 'uri' => 'settings', 'icon' => 'fa fa-gear'],
+ // ];
public function register()
{
- //
}
public function init()
{
parent::init();
-
- //
-
}
-
- // public function settingForm()
- // {
- // return new Setting($this);
- // }
}
diff --git a/packages/setting/updates/SettingPermissionSeeder.php b/packages/setting/updates/SettingPermissionSeeder.php
deleted file mode 100644
index 5cf8563..0000000
--- a/packages/setting/updates/SettingPermissionSeeder.php
+++ /dev/null
@@ -1,69 +0,0 @@
- ['name' => '配置管理', 'curd' => true],
- ];
- $this->createPermissionData($permissions);
- }
-
- /**
- * 插入权限
- *
- * @param array $permissions
- * @param string $key
- * @param integer $pId
- */
- public function createPermissionData(array $permissions, string $key = '', int $pId = 0)
- {
- $curdArr = [
- 'index' => '列表',
- 'create' => '新增',
- 'edit' => '修改',
- 'destroy' => '删除',
- 'show' => '详情',
- ];
- foreach ($permissions as $slug => $permission) {
- //是否已存在该权限
- $slugKey = 'dcat.admin.' . ($key ? $key . '.' . $slug : $slug);
-
-
- $pper = Permission::updateOrCreate(['slug' => $slugKey], ['name' => is_string($permission) ? $permission : $permission['name'], 'parent_id' => $pId]);
-
- if (!is_string($permission)) {
- if (!isset($permission['children'])) {
- $permission['children'] = [];
- }
- //判断是否默认插入curd权限
- if (isset($permission['curd']) && $permission['curd']) {
- if (is_array($permission['curd'])) {
- $permission['curd'] = array_reverse($permission['curd']);
- foreach ($permission['curd'] as $value) {
- $permission['children'] = array_merge([$value => $curdArr[$value]], $permission['children']);
- }
- } else {
- $permission['children'] = array_merge($curdArr, $permission['children']);
- }
- }
-
- if (count($permission['children']) > 0) {
- $_key = $permission['curd'] !== false ? ($key ? $key . '.' . $slug : $slug) : $key;
- $this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
- }
- }
- }
- }
-}
diff --git a/packages/setting/version.php b/packages/setting/version.php
index 9bac31a..65ff79e 100644
--- a/packages/setting/version.php
+++ b/packages/setting/version.php
@@ -4,9 +4,5 @@ return [
'1.0.0' => [
'初始化配置管理',
'CreateAdminSettingsTable.php',
- ],
- '1.0.1' => [
- '添加配置管理权限迁移文件',
- 'SettingPermissionSeeder.php'
]
];
From 82d81c5db4cbb5a2c55c9975af5bd1424d69ba50 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Thu, 15 Sep 2022 10:09:03 +0800
Subject: [PATCH 07/16] update keywords
---
packages/keywords/README.md | 16 ++++++
packages/keywords/composer.json | 5 +-
.../resources/lang/zh_CN/keywords.php | 2 +-
.../Http/Controllers/KeywordsController.php | 4 +-
.../keywords/src/KeywordsServiceProvider.php | 7 +--
packages/keywords/src/Setting.php | 14 -----
.../keywords/updates/KeywordsTableSeeder.php | 56 -------------------
packages/keywords/version.php | 1 -
8 files changed, 21 insertions(+), 84 deletions(-)
delete mode 100644 packages/keywords/src/Setting.php
delete mode 100644 packages/keywords/updates/KeywordsTableSeeder.php
diff --git a/packages/keywords/README.md b/packages/keywords/README.md
index c2d5851..7b00315 100644
--- a/packages/keywords/README.md
+++ b/packages/keywords/README.md
@@ -11,3 +11,19 @@
| parent_id | bigint unsigned | notnull | 0 | - | 上级id |
| type_key | string(191) | nullable | - | - | 上级的key |
| level | int unsigned | - | 1 | - | 所属层级 |
+
+## 权限
+
+```php
+$permissions = [
+ 'keywords' => ['name' => '字典管理', 'curd' => true],
+];
+```
+
+## 菜单
+
+```php
+$menus = [
+ ['title' => '字典管理', 'icon' => '', 'uri' => '/keywords', 'permission' => 'keywords'],
+];
+```
diff --git a/packages/keywords/composer.json b/packages/keywords/composer.json
index 5c934b3..31cedaa 100644
--- a/packages/keywords/composer.json
+++ b/packages/keywords/composer.json
@@ -4,7 +4,7 @@
"description": "字典表管理",
"type": "library",
"keywords": ["dcat-admin", "extension"],
- "homepage": "https://gitee.com/paddy_technology/dcat-admin-extension-keywords",
+ "homepage": "https://gitea.peidikeji.cn/pdkj/dcat-admin/src/branch/master/packages/keywords",
"license": "MIT",
"authors": [
{
@@ -12,9 +12,6 @@
"email": "1163816051@qq.com"
}
],
- "require": {
- "php": ">=7.1.0"
- },
"autoload": {
"psr-4": {
"Peidikeji\\Keywords\\": "src/"
diff --git a/packages/keywords/resources/lang/zh_CN/keywords.php b/packages/keywords/resources/lang/zh_CN/keywords.php
index 35604d2..6840b70 100644
--- a/packages/keywords/resources/lang/zh_CN/keywords.php
+++ b/packages/keywords/resources/lang/zh_CN/keywords.php
@@ -7,7 +7,7 @@ return [
],
'fields' => [
'name' => '名称',
- 'key' => '键',
+ 'key' => 'Key',
'value' => '值',
'parent_id' => '上级',
],
diff --git a/packages/keywords/src/Http/Controllers/KeywordsController.php b/packages/keywords/src/Http/Controllers/KeywordsController.php
index f56361a..f5af163 100644
--- a/packages/keywords/src/Http/Controllers/KeywordsController.php
+++ b/packages/keywords/src/Http/Controllers/KeywordsController.php
@@ -84,13 +84,13 @@ class KeywordsController extends AdminController
protected function form()
{
return Form::make(new Keywords(), function (Form $form) {
- $form->select('parent_id')->ajax(admin_url('api/keywords?'.http_build_query(['_paginate' => 1, 'parent_id' => '0'])));
+ $form->select('parent_id')->ajax(admin_url('api/keywords?'.http_build_query(['_paginate' => 1, 'parent_id' => '0'])))->model(Keywords::class, 'id', 'name');
$unique = Rule::unique((new Keywords())->getTable());
if ($form->isEditing()) {
$unique->ignore($form->getKey());
}
- $form->text('key')->required()->rules([$unique]);
+ $form->text('key')->required()->rules([$unique])->help('不能重复');
$form->text('name')->required();
$form->text('value');
diff --git a/packages/keywords/src/KeywordsServiceProvider.php b/packages/keywords/src/KeywordsServiceProvider.php
index 0b87e1d..5c4af64 100644
--- a/packages/keywords/src/KeywordsServiceProvider.php
+++ b/packages/keywords/src/KeywordsServiceProvider.php
@@ -7,16 +7,11 @@ use Dcat\Admin\Extend\ServiceProvider;
class KeywordsServiceProvider extends ServiceProvider
{
protected $menu = [
- // ['title' => 'Keywords', 'uri' => 'keywords', 'icon' => ''],
+ ['title' => 'Keywords', 'uri' => 'keywords', 'icon' => 'feather icon-list'],
];
public function init()
{
parent::init();
}
-
- // public function settingForm()
- // {
- // return new Setting($this);
- // }
}
diff --git a/packages/keywords/src/Setting.php b/packages/keywords/src/Setting.php
deleted file mode 100644
index 8f9ecb1..0000000
--- a/packages/keywords/src/Setting.php
+++ /dev/null
@@ -1,14 +0,0 @@
-text('key1')->required();
- $this->text('key2')->required();
- }
-}
diff --git a/packages/keywords/updates/KeywordsTableSeeder.php b/packages/keywords/updates/KeywordsTableSeeder.php
deleted file mode 100644
index 2a786ce..0000000
--- a/packages/keywords/updates/KeywordsTableSeeder.php
+++ /dev/null
@@ -1,56 +0,0 @@
- ['name' => '字典管理', 'curd' => true]
- ];
- // Permission::where('slug', 'like', 'dcat.admin.keywords%')->delete();
- $this->createPermissionData($permissions);
- }
-
- protected function createPermissionData(array $permissions, string $key = '', int $pId = 0)
- {
- $curdArr = [
- 'index' => '列表',
- 'create' => '新增',
- 'edit' => '修改',
- 'destroy' => '删除',
- 'show' => '详情',
- ];
- foreach ($permissions as $slug => $permission) {
- //是否已存在该权限
- $slugKey = 'dcat.admin.' . ($key ? $key . '.' . $slug : $slug);
-
- $pper = Permission::updateOrCreate(['slug' => $slugKey], ['name' => is_string($permission) ? $permission : $permission['name'], 'parent_id' => $pId]);
-
- if (!is_string($permission)) {
- if (!isset($permission['children'])) {
- $permission['children'] = [];
- }
- //判断是否默认插入curd权限
- if (isset($permission['curd']) && $permission['curd']) {
- if (is_array($permission['curd'])) {
- $permission['curd'] = array_reverse($permission['curd']);
- foreach ($permission['curd'] as $value) {
- $permission['children'] = array_merge([$value => $curdArr[$value]], $permission['children']);
- }
- } else {
- $permission['children'] = array_merge($curdArr, $permission['children']);
- }
- }
-
- if (count($permission['children']) > 0) {
- $_key = $permission['curd'] !== false ? ($key ? $key . '.' . $slug : $slug) : $key;
- $this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
- }
- }
- }
- }
-}
diff --git a/packages/keywords/version.php b/packages/keywords/version.php
index 8a8e79a..4698188 100644
--- a/packages/keywords/version.php
+++ b/packages/keywords/version.php
@@ -3,6 +3,5 @@
return [
'1.0.0' => [
'CreateKeywordsTable.php',
- 'KeywordsTableSeeder.php'
],
];
From fe5a665c0827652280579970afd1f98cf50880b4 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Thu, 15 Sep 2022 10:39:01 +0800
Subject: [PATCH 08/16] update keywords
---
.../KeywordsController.php | 19 +------------
.../src/Http/Api/KeywordsController.php | 27 +++++++++++++++++++
.../src/Http/Resources/KeywordResource.php | 2 ++
packages/keywords/src/Http/routes.php | 2 +-
packages/keywords/src/Http/web.php | 6 ++---
5 files changed, 34 insertions(+), 22 deletions(-)
rename packages/keywords/src/Http/{Controllers => Admin}/KeywordsController.php (82%)
create mode 100644 packages/keywords/src/Http/Api/KeywordsController.php
diff --git a/packages/keywords/src/Http/Controllers/KeywordsController.php b/packages/keywords/src/Http/Admin/KeywordsController.php
similarity index 82%
rename from packages/keywords/src/Http/Controllers/KeywordsController.php
rename to packages/keywords/src/Http/Admin/KeywordsController.php
index f5af163..2e7a13c 100644
--- a/packages/keywords/src/Http/Controllers/KeywordsController.php
+++ b/packages/keywords/src/Http/Admin/KeywordsController.php
@@ -1,6 +1,6 @@
all());
-
- $list = $query->get();
-
- return response()->json(['code' => 200, 'data' => KeywordResource::collection($list), 'message' => '']);
- }
-
- public function jsonOne($key)
- {
- $info = Keywords::where('key', $key)->firstOrFail();
-
- return response()->json(['code' => 200, 'data' => KeywordResource::make($info), 'message' => '']);
- }
-
protected function grid()
{
return Grid::make(new Keywords(), function ($grid) {
diff --git a/packages/keywords/src/Http/Api/KeywordsController.php b/packages/keywords/src/Http/Api/KeywordsController.php
new file mode 100644
index 0000000..f48abda
--- /dev/null
+++ b/packages/keywords/src/Http/Api/KeywordsController.php
@@ -0,0 +1,27 @@
+all());
+
+ $list = $query->get();
+
+ return $this->json(KeywordResource::collection($list));
+ }
+
+ public function show($key)
+ {
+ $info = Keywords::where(fn($q) => $q->where('key', $key)->orWhere('id', $key))->firstOrFail();
+
+ return $this->json(KeywordResource::make($info));
+ }
+}
diff --git a/packages/keywords/src/Http/Resources/KeywordResource.php b/packages/keywords/src/Http/Resources/KeywordResource.php
index e911669..552f313 100644
--- a/packages/keywords/src/Http/Resources/KeywordResource.php
+++ b/packages/keywords/src/Http/Resources/KeywordResource.php
@@ -20,6 +20,8 @@ class KeywordResource extends JsonResource
'key' => $this->key,
'type_key' => $this->type_key,
'value' => $this->value,
+ 'parent_id' => $this->parent_id,
+ 'level' => $this->level,
];
}
}
diff --git a/packages/keywords/src/Http/routes.php b/packages/keywords/src/Http/routes.php
index f596189..459fcfb 100644
--- a/packages/keywords/src/Http/routes.php
+++ b/packages/keywords/src/Http/routes.php
@@ -1,6 +1,6 @@
'api', 'prefix' => 'api'], function () {
- Route::get('keywords', [KeywordsController::class, 'json']);
- Route::get('keywords/{key}', [KeywordsController::class, 'jsonOne']);
+ Route::get('keywords', [KeywordsController::class, 'index']);
+ Route::get('keywords/{key}', [KeywordsController::class, 'show']);
});
From aed7cf155f23b77dc1c5bd6258f78f5237ded47e Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 16 Sep 2022 10:21:36 +0800
Subject: [PATCH 09/16] update banner
---
packages/banner/README.md | 55 +++++++++++-
packages/banner/src/BannerAdFilter.php | 28 -------
packages/banner/src/BannerFilter.php | 23 -----
packages/banner/src/BannerServiceProvider.php | 14 ++--
.../BannerAdController.php | 11 ++-
.../BannerController.php | 83 ++++++-------------
.../banner/src/Http/Api/BannerController.php | 41 +++++++++
.../src/Http/Resources/BannerResource.php | 6 --
packages/banner/src/Http/routes.php | 9 +-
packages/banner/src/Http/web.php | 4 +-
packages/banner/src/Models/Banner.php | 11 ++-
packages/banner/src/Models/BannerAd.php | 9 +-
packages/banner/src/Setting.php | 14 ----
.../banner/updates/BannerPermissionSeeder.php | 71 ----------------
packages/banner/updates/CreateBannerTable.php | 2 +-
packages/banner/version.php | 1 -
16 files changed, 149 insertions(+), 233 deletions(-)
delete mode 100644 packages/banner/src/BannerAdFilter.php
delete mode 100644 packages/banner/src/BannerFilter.php
rename packages/banner/src/Http/{Controllers => Admin}/BannerAdController.php (93%)
rename packages/banner/src/Http/{Controllers => Admin}/BannerController.php (62%)
create mode 100644 packages/banner/src/Http/Api/BannerController.php
delete mode 100644 packages/banner/src/Setting.php
delete mode 100644 packages/banner/updates/BannerPermissionSeeder.php
diff --git a/packages/banner/README.md b/packages/banner/README.md
index 838df4c..f3f32c2 100644
--- a/packages/banner/README.md
+++ b/packages/banner/README.md
@@ -1,3 +1,56 @@
-# Dcat Admin Extension
+# Dact-Admin Extension Banner
+广告管理
+## 权限
+
+```php
+$permissions = [
+ 'image' => ['name' => '广告管理', 'curd' => false, 'children' => [
+ 'banner_ads' => ['name' => '广告位置', 'curd' => true],
+ 'banners' => ['name' => '广告内容', 'curd' => true],
+ ]],
+];
+```
+
+## 菜单
+
+```php
+$menus = [
+ ['title' => '广告管理', 'icon' => 'feather icon-image', 'uri' => '', 'permission' => ['banner_ads', 'banners'], 'children' => [
+ ['title' => '广告位置', 'icon' => '', 'uri' => '/banner-ads', 'permission' => 'banner_ads'],
+ ['title' => '广告内容', 'icon' => '', 'uri' => '/banners', 'permission' => 'banners'],
+ ]]
+];
+```
+
+## 数据表
+
+### 广告位: banner_ads
+
+| column | type | nullable | default | comment |
+| - | - | - | - | - |
+| id | bigint | not null | - | 主键 |
+| name | varchar(100) | not null | - | 名称 |
+| key | varchar(100) | not null | - | 关键字(unique) |
+| width | integer | null | - | 建议尺寸 |
+| height | integer | null | - | 建议尺寸 |
+| is_enable | integer | not null | 1 | 是否可用 |
+| remarks | varchar(100) | null | - | 备注 |
+| created_at | timestamp | null | - | 创建时间 |
+| updated_at | timestamp | null | - | 更新时间 |
+
+### 广告图: banner
+
+| column | type | nullable | default | comment |
+| - | - | - | - | - |
+| id | bigint | not null | - | 主键 |
+| ad_id | bigint | not null | - | 位置 id |
+| path | varchar(191) | not null | - | 图片地址 |
+| name | varchar(191) | null | - | 名称 |
+| sort | integer | not null | 1 | 排序(asc) |
+| is_enable | integer | not null | 1 | 是否可用 |
+| ext | json | null | - | 其他配置 |
+| remarks | varchar(191) | null | - | 备注 |
+| created_at | timestamp | null | - | 创建时间 |
+| updated_at | timestamp | null | - | 更新时间 |
diff --git a/packages/banner/src/BannerAdFilter.php b/packages/banner/src/BannerAdFilter.php
deleted file mode 100644
index 9a504ab..0000000
--- a/packages/banner/src/BannerAdFilter.php
+++ /dev/null
@@ -1,28 +0,0 @@
- [input_key1, input_key2]].
- *
- * @var array
- */
- public $relations = [];
-
- public function q($v)
- {
- $this->where(function ($q) use ($v) {
- $q->where('key', 'like', '%'.$v.'%')->orWhere('name', 'like', '%'.$v.'%');
- });
- }
-
- public function key($v)
- {
- $this->where('key', $v);
- }
-}
diff --git a/packages/banner/src/BannerFilter.php b/packages/banner/src/BannerFilter.php
deleted file mode 100644
index 3f0cbbd..0000000
--- a/packages/banner/src/BannerFilter.php
+++ /dev/null
@@ -1,23 +0,0 @@
- [input_key1, input_key2]].
- *
- * @var array
- */
- public $relations = [];
-
- public function q($v)
- {
- $this->where(function ($q) use ($v) {
- $q->where('key', 'like', '%'.$v.'%')->orWhere('name', 'like', '%'.$v.'%');
- });
- }
-}
diff --git a/packages/banner/src/BannerServiceProvider.php b/packages/banner/src/BannerServiceProvider.php
index 56a874b..35df930 100644
--- a/packages/banner/src/BannerServiceProvider.php
+++ b/packages/banner/src/BannerServiceProvider.php
@@ -3,21 +3,17 @@
namespace Peidikeji\Banner;
use Dcat\Admin\Extend\ServiceProvider;
-use Dcat\Admin\Admin;
class BannerServiceProvider extends ServiceProvider
{
-
- public function register()
- {
- //
- }
+ protected $menu = [
+ ['parent' => '', 'title' => '广告管理', 'icon' => 'feather icon-image', 'uri' => ''],
+ ['parent' => '广告管理', 'title' => '广告位置', 'icon' => '', 'uri' => 'banner-ads'],
+ ['parent' => '广告管理', 'title' => '广告内容', 'icon' => '', 'uri' => 'banners'],
+ ];
public function init()
{
parent::init();
-
- //
-
}
}
diff --git a/packages/banner/src/Http/Controllers/BannerAdController.php b/packages/banner/src/Http/Admin/BannerAdController.php
similarity index 93%
rename from packages/banner/src/Http/Controllers/BannerAdController.php
rename to packages/banner/src/Http/Admin/BannerAdController.php
index 38c5b64..50993cd 100644
--- a/packages/banner/src/Http/Controllers/BannerAdController.php
+++ b/packages/banner/src/Http/Admin/BannerAdController.php
@@ -1,6 +1,6 @@
text('key')->required()->rules([Rule::unique((new BannerAd())->getTable())]);
$form->number('width')->min(0);
$form->number('height')->min(0);
- $form->switch('is_enable');
+ $form->switch('is_enable')->default(1);
$form->text('remarks');
});
}
- public function destroy($id){
+ public function destroy($id)
+ {
//如果该广告位下还有内容,则一起删除
- Banner::where([
- 'ad_id' => $id
- ])->delete();
+ Banner::where(['ad_id' => $id])->delete();
return parent::destroy($id);
}
diff --git a/packages/banner/src/Http/Controllers/BannerController.php b/packages/banner/src/Http/Admin/BannerController.php
similarity index 62%
rename from packages/banner/src/Http/Controllers/BannerController.php
rename to packages/banner/src/Http/Admin/BannerController.php
index e236cfe..770992a 100644
--- a/packages/banner/src/Http/Controllers/BannerController.php
+++ b/packages/banner/src/Http/Admin/BannerController.php
@@ -1,62 +1,31 @@
'']
-
- public function json(Request $request)
- {
- $keys = (array) $request->input('keys');
-
- if (empty($keys)) {
- return response()->json([]);
- }
-
-
- $ads = BannerAd::with([
- 'banners' => function ($query) {
- $query->enable()->latest('sort');
- },
- ])->enable()->whereIn('key', $keys)->get();
-
- $mapAds = $ads->mapWithKeys(function ($item) use ($request) {
- return [
- $item->key => BannerResource::collection($item->banners)->resolve($request),
- ];
- });
-
- foreach ($keys as $key) {
- if (! $mapAds->has($key)) {
- $mapAds->put($key, []);
- }
- }
-
- return response()->json($mapAds);
- }
+ protected $extDefaults = [];
protected function grid()
{
- return Grid::make(new Banner(), function ($grid) {
+ return Grid::make(new Banner(), function (Grid $grid) {
+ $grid->model()->sort();
+
$grid->disableRowSelector();
- $grid->column('path')->image(100);
+ $grid->column('path')->image('', 50);
$grid->column('name');
$grid->column('sort');
- $grid->column('is_enable')->if(function(){
+ $grid->column('is_enable')->if(function () {
return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.banners.edit');
})->then(function (GridColumn $column) {
$column->switch();
@@ -64,16 +33,16 @@ class BannerController extends AdminController
$column->bool();
});
$grid->column('ext')
- ->if(function(){
- return $this->ext;
- })->then(function (GridColumn $column) {
- $column->display('展开')->expand(function () {
- // 返回显示的详情
- $card = new Card(null, sprintf('
%s
', json_encode($this->ext, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)));
+ ->if(function () {
+ return $this->ext;
+ })->then(function (GridColumn $column) {
+ $column->display('展开')->expand(function () {
+ // 返回显示的详情
+ $card = new Card(null, sprintf('%s
', json_encode($this->ext, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)));
- return "$card
";
+ return "$card
";
+ });
});
- });
$grid->column('remarks');
@@ -96,11 +65,12 @@ class BannerController extends AdminController
});
}
- protected function form(){
+ protected function form()
+ {
return Form::make(new Banner(), function (Form $form) {
$form->select('ad_id')
- ->options('api/banner-ads')
- ->required();
+ ->options('api/banner-ads')
+ ->required();
$form->text('name');
$form->image('path')
->uniqueName()
@@ -108,11 +78,11 @@ class BannerController extends AdminController
->saveFullUrl()
->autoSave(false)
->autoUpload()
- ->removable(false)//禁止用户从页面点击删除服务器上的文件,可以实现图片覆盖上传效果
+ ->removable(false) //禁止用户从页面点击删除服务器上的文件,可以实现图片覆盖上传效果
->retainable()
->required()->help('建议尺寸:');
- Admin::script(
- <<number('sort')
- ->min(0)
- ->help('数值越大, 越靠前');
+ ->min(0)
+ ->help('数值越小, 越靠前');
$form->keyValue('ext')->default($this->extDefaults)->setKeyLabel('键名')->setValueLabel('键值');
- $form->switch('is_enable');
+ $form->switch('is_enable')->default(1);
$form->text('remarks');
});
}
diff --git a/packages/banner/src/Http/Api/BannerController.php b/packages/banner/src/Http/Api/BannerController.php
new file mode 100644
index 0000000..5c35b59
--- /dev/null
+++ b/packages/banner/src/Http/Api/BannerController.php
@@ -0,0 +1,41 @@
+validate([
+ 'key' => 'required'
+ ]);
+ $keys = $request->input('key');
+ $keys = is_array($keys) ? $keys : explode(',', $keys);
+
+ $ads = BannerAd::with([
+ 'banners' => function ($query) {
+ $query->enable()->sort();
+ },
+ ])->enable()->whereIn('key', $keys)->get();
+
+ $mapAds = $ads->mapWithKeys(function ($item) use ($request) {
+ return [
+ $item->key => BannerResource::collection($item->banners)->resolve($request),
+ ];
+ });
+
+ foreach ($keys as $key) {
+ if (! $mapAds->has($key)) {
+ $mapAds->put($key, []);
+ }
+ }
+
+ return $this->json($mapAds);
+ }
+
+}
diff --git a/packages/banner/src/Http/Resources/BannerResource.php b/packages/banner/src/Http/Resources/BannerResource.php
index 4adb6d7..cfbb007 100644
--- a/packages/banner/src/Http/Resources/BannerResource.php
+++ b/packages/banner/src/Http/Resources/BannerResource.php
@@ -6,12 +6,6 @@ use Illuminate\Http\Resources\Json\JsonResource;
class BannerResource extends JsonResource
{
- /**
- * Transform the resource into an array.
- *
- * @param \Illuminate\Http\Request $request
- * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
- */
public function toArray($request)
{
return [
diff --git a/packages/banner/src/Http/routes.php b/packages/banner/src/Http/routes.php
index ab3ef77..6ec9e7a 100644
--- a/packages/banner/src/Http/routes.php
+++ b/packages/banner/src/Http/routes.php
@@ -1,15 +1,16 @@
name('api.banner_ads');
+ Route::get('api/banner-ads', [BannerAdController::class, 'list'])->name('api.banner_ads');
}
if(! Route::has('dcat.admin.banner_ads.index')){
- Route::resource('banner-ads', Controllers\BannerAdController::class)->names('banner_ads');
+ Route::resource('banner-ads', BannerAdController::class)->names('banner_ads');
}
if(! Route::has('dcat.admin.banners.index')){
- Route::resource('banners', Controllers\BannerController::class);
+ Route::resource('banners', BannerController::class);
}
diff --git a/packages/banner/src/Http/web.php b/packages/banner/src/Http/web.php
index a7e14ea..baec154 100644
--- a/packages/banner/src/Http/web.php
+++ b/packages/banner/src/Http/web.php
@@ -1,9 +1,9 @@
'api', 'prefix' => 'api'], function () {
- Route::get('banners', [BannerController::class, 'json']);
+ Route::get('banner', [BannerController::class, 'index']);
});
diff --git a/packages/banner/src/Models/Banner.php b/packages/banner/src/Models/Banner.php
index 752bd7f..78befcf 100644
--- a/packages/banner/src/Models/Banner.php
+++ b/packages/banner/src/Models/Banner.php
@@ -2,14 +2,13 @@
namespace Peidikeji\Banner\Models;
-use EloquentFilter\Filterable;
use Illuminate\Database\Eloquent\Model;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Banner extends Model
{
- use HasFactory, HasDateTimeFormatter, Filterable;
+ use HasFactory, HasDateTimeFormatter;
protected $fillable = ['ad_id', 'path', 'name', 'sort', 'is_enable', 'ext', 'remarks'];
@@ -22,7 +21,13 @@ class Banner extends Model
return $this->belongsTo(BannerAd::class, 'ad_id');
}
- public function scopeEnable($query){
+ public function scopeEnable($query)
+ {
return $query->where('is_enable', 1);
}
+
+ public function scopeSort($q)
+ {
+ return $q->orderBy('sort');
+ }
}
diff --git a/packages/banner/src/Models/BannerAd.php b/packages/banner/src/Models/BannerAd.php
index e2a1e48..0f43c17 100644
--- a/packages/banner/src/Models/BannerAd.php
+++ b/packages/banner/src/Models/BannerAd.php
@@ -2,23 +2,16 @@
namespace Peidikeji\Banner\Models;
-use EloquentFilter\Filterable;
-use Peidikeji\Banner\BannerAdFilter;
use Illuminate\Database\Eloquent\Model;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class BannerAd extends Model
{
- use HasFactory, HasDateTimeFormatter, Filterable;
+ use HasFactory, HasDateTimeFormatter;
protected $fillable = ['name', 'key', 'width', 'height', 'is_enable', 'remarks'];
- public function modelFilter()
- {
- return BannerAdFilter::class;
- }
-
public function banners()
{
return $this->hasMany(Banner::class, 'ad_id');
diff --git a/packages/banner/src/Setting.php b/packages/banner/src/Setting.php
deleted file mode 100644
index 88820ad..0000000
--- a/packages/banner/src/Setting.php
+++ /dev/null
@@ -1,14 +0,0 @@
-text('key1')->required();
- $this->text('key2')->required();
- }
-}
diff --git a/packages/banner/updates/BannerPermissionSeeder.php b/packages/banner/updates/BannerPermissionSeeder.php
deleted file mode 100644
index 785bd62..0000000
--- a/packages/banner/updates/BannerPermissionSeeder.php
+++ /dev/null
@@ -1,71 +0,0 @@
- ['name' => '广告位管理', 'curd' => true],
- 'banners' => ['name' => '广告图管理', 'curd' => true],
- ];
- $this->createPermissionData($permissions);
- }
-
- /**
- * 插入权限
- *
- * @param array $permissions
- * @param string $key
- * @param integer $pId
- */
- public function createPermissionData(array $permissions, string $key = '', int $pId = 0)
- {
- $curdArr = [
- 'index' => '列表',
- 'create' => '新增',
- 'edit' => '修改',
- 'destroy' => '删除',
- 'show' => '详情',
- ];
- foreach ($permissions as $slug => $permission) {
- //是否已存在该权限
- $slugKey = 'dcat.admin.' . ($key ? $key . '.' . $slug : $slug);
-
-
- $pper = Permission::updateOrCreate(['slug' => $slugKey], ['name' => is_string($permission) ? $permission : $permission['name'], 'parent_id' => $pId]);
-
- if (!is_string($permission)) {
- if (!isset($permission['children'])) {
- $permission['children'] = [];
- }
- //判断是否默认插入curd权限
- if (isset($permission['curd']) && $permission['curd']) {
- if (is_array($permission['curd'])) {
- $permission['curd'] = array_reverse($permission['curd']);
- foreach ($permission['curd'] as $value) {
- $permission['children'] = array_merge([$value => $curdArr[$value]], $permission['children']);
- }
- } else {
- $permission['children'] = array_merge($curdArr, $permission['children']);
- }
- }
-
- if (count($permission['children']) > 0) {
- $_key = $permission['curd'] !== false ? ($key ? $key . '.' . $slug : $slug) : $key;
- $this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
- }
- }
- }
- }
-}
diff --git a/packages/banner/updates/CreateBannerTable.php b/packages/banner/updates/CreateBannerTable.php
index 48f7342..33adb9a 100644
--- a/packages/banner/updates/CreateBannerTable.php
+++ b/packages/banner/updates/CreateBannerTable.php
@@ -33,7 +33,7 @@ class CreateBannerTable extends Migration
$table->unsignedBigInteger('ad_id')->comment('位置ID');
$table->string('path')->comment('地址');
$table->string('name')->nullable()->comment('名称');
- $table->unsignedInteger('sort')->comment('排序');
+ $table->unsignedInteger('sort')->default(1)->comment('排序(asc)');
$table->unsignedTinyInteger('is_enable')->default(1)->comment('可用状态');
$table->text('ext')->nullable()->comment('扩展字段,可用于跳转配置等');
$table->string('remarks')->nullable()->comment('备注');
diff --git a/packages/banner/version.php b/packages/banner/version.php
index 92bf9e9..6c09ca3 100644
--- a/packages/banner/version.php
+++ b/packages/banner/version.php
@@ -2,7 +2,6 @@
return [
'1.0.0' => [
- '初始化广告管理插件',
'CreateBannerTable.php',
],
];
From 23c6bc2a5387d5d2d1ea5ff711fc5fb1eb30a716 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 16 Sep 2022 10:37:04 +0800
Subject: [PATCH 10/16] banner
---
packages/banner/src/Http/Api/BannerController.php | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/packages/banner/src/Http/Api/BannerController.php b/packages/banner/src/Http/Api/BannerController.php
index 5c35b59..7d04027 100644
--- a/packages/banner/src/Http/Api/BannerController.php
+++ b/packages/banner/src/Http/Api/BannerController.php
@@ -23,19 +23,13 @@ class BannerController extends Controller
},
])->enable()->whereIn('key', $keys)->get();
- $mapAds = $ads->mapWithKeys(function ($item) use ($request) {
- return [
- $item->key => BannerResource::collection($item->banners)->resolve($request),
- ];
- });
-
+ $data = [];
foreach ($keys as $key) {
- if (! $mapAds->has($key)) {
- $mapAds->put($key, []);
- }
+ $ad = $ads->where('key', $key)->first();
+ $data[$key] = $ad ? BannerResource::collection($ad->banners) : [];
}
- return $this->json($mapAds);
+ return $this->json($data);
}
}
From a3d6962f222727627d18a0ec137361168ba5137f Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 16 Sep 2022 10:40:07 +0800
Subject: [PATCH 11/16] banner
---
packages/banner/README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/packages/banner/README.md b/packages/banner/README.md
index f3f32c2..10fd682 100644
--- a/packages/banner/README.md
+++ b/packages/banner/README.md
@@ -24,6 +24,10 @@ $menus = [
];
```
+## 接口文档
+
+[Apifox](https://www.apifox.cn/apidoc/shared-86eb60cb-ba8f-46c6-b718-f33f99de5e7d/api-39896291)
+
## 数据表
### 广告位: banner_ads
From fdeb57ec7e70a629454a54e77490abe14801944e Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 16 Sep 2022 10:53:55 +0800
Subject: [PATCH 12/16] remove menu
---
packages/banner/src/BannerServiceProvider.php | 10 +++++-----
packages/keywords/src/KeywordsServiceProvider.php | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/packages/banner/src/BannerServiceProvider.php b/packages/banner/src/BannerServiceProvider.php
index 35df930..c1ce9da 100644
--- a/packages/banner/src/BannerServiceProvider.php
+++ b/packages/banner/src/BannerServiceProvider.php
@@ -6,11 +6,11 @@ use Dcat\Admin\Extend\ServiceProvider;
class BannerServiceProvider extends ServiceProvider
{
- protected $menu = [
- ['parent' => '', 'title' => '广告管理', 'icon' => 'feather icon-image', 'uri' => ''],
- ['parent' => '广告管理', 'title' => '广告位置', 'icon' => '', 'uri' => 'banner-ads'],
- ['parent' => '广告管理', 'title' => '广告内容', 'icon' => '', 'uri' => 'banners'],
- ];
+ // protected $menu = [
+ // ['parent' => '', 'title' => '广告管理', 'icon' => 'feather icon-image', 'uri' => ''],
+ // ['parent' => '广告管理', 'title' => '广告位置', 'icon' => '', 'uri' => 'banner-ads'],
+ // ['parent' => '广告管理', 'title' => '广告内容', 'icon' => '', 'uri' => 'banners'],
+ // ];
public function init()
{
diff --git a/packages/keywords/src/KeywordsServiceProvider.php b/packages/keywords/src/KeywordsServiceProvider.php
index 5c4af64..204193f 100644
--- a/packages/keywords/src/KeywordsServiceProvider.php
+++ b/packages/keywords/src/KeywordsServiceProvider.php
@@ -6,9 +6,9 @@ use Dcat\Admin\Extend\ServiceProvider;
class KeywordsServiceProvider extends ServiceProvider
{
- protected $menu = [
- ['title' => 'Keywords', 'uri' => 'keywords', 'icon' => 'feather icon-list'],
- ];
+ // protected $menu = [
+ // ['title' => 'Keywords', 'uri' => 'keywords', 'icon' => 'feather icon-list'],
+ // ];
public function init()
{
From b3418d033cdeeded534debea1b4f94903fc939b0 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 16 Sep 2022 15:40:09 +0800
Subject: [PATCH 13/16] remove extension article
---
packages/article/.gitignore | 7 -
packages/article/README.md | 3 -
packages/article/composer.json | 31 ----
.../resources/lang/en/article-category.php | 3 -
.../article/resources/lang/en/article.php | 3 -
.../resources/lang/zh_CN/article-category.php | 19 ---
.../article/resources/lang/zh_CN/article.php | 31 ----
packages/article/resources/views/.keep | 0
.../article/src/ArticleServiceProvider.php | 27 ----
.../Controllers/ArticleCategoryController.php | 142 ------------------
.../Http/Controllers/ArticleController.php | 136 -----------------
packages/article/src/Http/routes.php | 12 --
packages/article/src/Models/Article.php | 75 ---------
.../article/src/Models/ArticleCategory.php | 70 ---------
packages/article/src/Setting.php | 14 --
.../updates/AddMediaToArticleTable.php | 35 -----
.../article/updates/AddnumToArticleTable.php | 36 -----
.../updates/ArticlePermissionSeeder.php | 70 ---------
.../article/updates/CreateArticleTable.php | 70 ---------
packages/article/version.php | 16 --
20 files changed, 800 deletions(-)
delete mode 100644 packages/article/.gitignore
delete mode 100644 packages/article/README.md
delete mode 100644 packages/article/composer.json
delete mode 100644 packages/article/resources/lang/en/article-category.php
delete mode 100644 packages/article/resources/lang/en/article.php
delete mode 100644 packages/article/resources/lang/zh_CN/article-category.php
delete mode 100644 packages/article/resources/lang/zh_CN/article.php
delete mode 100644 packages/article/resources/views/.keep
delete mode 100644 packages/article/src/ArticleServiceProvider.php
delete mode 100644 packages/article/src/Http/Controllers/ArticleCategoryController.php
delete mode 100644 packages/article/src/Http/Controllers/ArticleController.php
delete mode 100644 packages/article/src/Http/routes.php
delete mode 100644 packages/article/src/Models/Article.php
delete mode 100644 packages/article/src/Models/ArticleCategory.php
delete mode 100644 packages/article/src/Setting.php
delete mode 100644 packages/article/updates/AddMediaToArticleTable.php
delete mode 100644 packages/article/updates/AddnumToArticleTable.php
delete mode 100644 packages/article/updates/ArticlePermissionSeeder.php
delete mode 100644 packages/article/updates/CreateArticleTable.php
delete mode 100644 packages/article/version.php
diff --git a/packages/article/.gitignore b/packages/article/.gitignore
deleted file mode 100644
index 9d4b362..0000000
--- a/packages/article/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.DS_Store
-phpunit.phar
-/vendor
-composer.phar
-composer.lock
-*.project
-.idea/
\ No newline at end of file
diff --git a/packages/article/README.md b/packages/article/README.md
deleted file mode 100644
index 838df4c..0000000
--- a/packages/article/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Dcat Admin Extension
-
-
diff --git a/packages/article/composer.json b/packages/article/composer.json
deleted file mode 100644
index 670a32d..0000000
--- a/packages/article/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "peidikeji/article",
- "alias": "文章管理",
- "description": "文章管理",
- "type": "library",
- "keywords": ["dcat-admin", "extension"],
- "homepage": "https://github.com/peidikeji/article",
- "license": "MIT",
- "authors": [
- {
- "name": "liutk",
- "email": "961510893@qq.com"
- }
- ],
- "require": {
- "php": ">=7.1.0"
- },
- "autoload": {
- "psr-4": {
- "Peidikeji\\Article\\": "src/"
- }
- },
- "extra": {
- "dcat-admin": "Peidikeji\\Article\\ArticleServiceProvider",
- "laravel": {
- "providers": [
- "Peidikeji\\Article\\ArticleServiceProvider"
- ]
- }
- }
-}
diff --git a/packages/article/resources/lang/en/article-category.php b/packages/article/resources/lang/en/article-category.php
deleted file mode 100644
index 0b67a5f..0000000
--- a/packages/article/resources/lang/en/article-category.php
+++ /dev/null
@@ -1,3 +0,0 @@
- [
- 'ArticleCategory' => '文章分类',
- 'article-categories'=> '文章分类',
- ],
- 'fields' => [
- 'parent_id' => '上级',
- 'name' => '名称',
- 'key' => 'KEY',
- 'is_enable' => '可用状态',
- 'is_recommend' => '推荐状态',
- 'sort' => '排序',
- 'remarks' => '备注'
- ],
- 'options' => [
- ],
-];
diff --git a/packages/article/resources/lang/zh_CN/article.php b/packages/article/resources/lang/zh_CN/article.php
deleted file mode 100644
index d6678d9..0000000
--- a/packages/article/resources/lang/zh_CN/article.php
+++ /dev/null
@@ -1,31 +0,0 @@
- [
- 'Article' => '文章管理',
- 'articles'=> '文章管理',
- ],
- 'fields' => [
- 'title' => '标题',
- 'sub_title' => '副标题',
- 'author' => '作者',
- 'author_name' => '作者',
- 'category_id' => '分类',
- 'category'=>[
- 'name' => '分类',
- ],
- 'admin_user_id' => '创建人',
- 'cover' => '封面',
- 'media_path' => '媒体资源',
- 'is_recommend' => '推荐状态',
- 'content' => '内容',
- 'is_enable' => '可用状态',
- 'sort' => '排序',
- 'published_at' => '发布时间',
- 'remarks' => '备注',
- 'like_nums' => '点赞数',
- 'read_nums' => '浏览数'
- ],
- 'options' => [
- ],
-];
diff --git a/packages/article/resources/views/.keep b/packages/article/resources/views/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/packages/article/src/ArticleServiceProvider.php b/packages/article/src/ArticleServiceProvider.php
deleted file mode 100644
index b5a11c7..0000000
--- a/packages/article/src/ArticleServiceProvider.php
+++ /dev/null
@@ -1,27 +0,0 @@
-'']
-
- public function grid(){
- return Grid::make(new ArticleCategory(), function ($grid) {
- $grid->disableRowSelector();
-
- $grid->model()->sort();
- $grid->column('name')->tree(true, false);
- $grid->column('key');
- $grid->column('sort')->editable(['mask' => '{alias:\'numeric\',min:0,max:999}']);
- $grid->column('is_enable')->if(function(){
- return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.article_categories.edit');
- })->then(function (GridColumn $column) {
- $column->switch();
- })->else(function (GridColumn $column) {
- $column->bool();
- });
- $grid->column('is_recommend')
- ->if(function(){
- return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.article_categories.edit');
- })->then(function (GridColumn $column) {
- $column->switch();
- })->else(function (GridColumn $column) {
- $column->bool();
- });
-
- $grid->model()->orderBy('sort', 'desc');
- $grid->model()->orderBy('created_at', 'desc');
-
- $grid->setDialogFormDimensions('50%', '70%');
- $grid->disableCreateButton(!(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.article_categories.create')));
- $grid->enableDialogCreate();
-
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableView();
- $actions->disableEdit();
- $actions->quickEdit(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.article_categories.edit'));
- $actions->delete(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.article_categories.destroy'));
- });
-
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel();
- $filter->expand();
- $filter->like('name')->width(3);
- $filter->like('key')->width(3);
- $filter->equal('parent_id', '上级分类')->select(ArticleCategory::selectOptions())->width(3);
- });
-
- });
- }
-
- public function form()
- {
- return Form::make(new ArticleCategory(), function (Form $form) {
-
- $form->select('parent_id')->help('不选默认为顶级')->options(ArticleCategory::selectOptions())->default(0);
- $form->text('name')->required();
- $unique = Rule::unique((new ArticleCategory())->getTable(), 'key');
- if ($form->isCreating()) {
- $form->text('key')->help('不填则自动生成, 唯一')->rules([$unique]);
- } else {
- $form->text('key')->required()->help('唯一')->rules([$unique->ignore($form->getKey())]);
- }
- $form->number('sort')
- ->min(0)
- ->default(0)
- ->help('数值越大, 越靠前');
- $form->switch('is_enable')->default(0);
- $form->switch('is_recommend')->default(0);
- $form->text('remarks');
- $form->hidden('level')->default(1);
-
- $form->keyValue('ext', '扩展字段')->default($this->extDefaults)->setKeyLabel('键名')->setValueLabel('键值')
- ->saving(function($v){
- return json_encode($v ?? []);
- });
-
- $controller = $this;
- $form->saving(function (Form $form) use ($controller) {
- if ($form->isCreating() && !$form->key) {
- $form->key = $controller->generateKey();
- }
- });
-
- $form->saved(function (Form $form) {
- if ($form->isEditing() && $form->input('is_enable') !== null && $form->input('is_enable') != $form->model()->is_enable) {
- //处理分类子级状态同步(层级)父级
- ArticleCategory::where('path', 'like', "%-".$form->model()->id."-%")->update(['is_enable' => $form->is_enable]);
- //处理父级状态
- if($form->is_enable){
- //如果状态是开启,判断(层级)父级是否开启
- $exPath = trim('-', $form->model()->path);
- $parentIds = $exPath ? explode('-', $exPath) : [];
- if($parentIds){
- ArticleCategory::whereIn('id', $parentIds)->update(['is_enable' => $form->is_enable]);
- }
- }
- }
- });
-
- $form->deleting(function (Form $form) {
- $hasArticles = Article::where('category_id', $form->getKey())->exists();
- if ($hasArticles) {
- return $form->response()->error('需要先删除该分类下的文章');
- }
- $hasChildren = ArticleCategory::where('parent_id', $form->getKey())->exists();
- if ($hasChildren) {
- return $form->response()->error('需要先删除该分类下的子级');
- }
- });
-
-
- });
- }
-
- protected function generateKey()
- {
- do {
- $id = ArticleCategory::max('id') + 1;
- $key = 'category-' . $id;
- } while (ArticleCategory::where('key', $key)->exists());
-
- return $key;
- }
-}
diff --git a/packages/article/src/Http/Controllers/ArticleController.php b/packages/article/src/Http/Controllers/ArticleController.php
deleted file mode 100644
index 2d6e7a1..0000000
--- a/packages/article/src/Http/Controllers/ArticleController.php
+++ /dev/null
@@ -1,136 +0,0 @@
-'']
-
- public function grid(){
- return Grid::make(Article::with(['category', 'adminUser']), function ($grid) {
- $grid->disableRowSelector();
- $grid->column('category.name')->label();
- $grid->column('title')->display(function ($v) {
- if (mb_strlen($v) > 20) {
- return mb_substr($v, 0, 17) . '...';
- } else {
- return $v;
- }
- });
- $grid->column('cover')->image(100, 100);
- $grid->column('author_name')->display(function (){
- return $this->author_name;
- });
- $grid->column('like_nums');
- $grid->column('read_nums');
- $grid->column('sort')->editable(['mask' => '{alias:\'numeric\',min:0,max:999}']);
- $grid->column('published_at');
- $grid->column('is_enable')->if(function(){
- return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.edit');
- })->then(function (GridColumn $column) {
- $column->switch();
- })->else(function (GridColumn $column) {
- $column->bool();
- });
- $grid->column('is_recommend')->if(function(){
- return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.edit');
- })->then(function (GridColumn $column) {
- $column->switch();
- })->else(function (GridColumn $column) {
- $column->bool();
- });
-
- // $grid->column('remarks');
-
- $grid->model()->orderBy('sort', 'desc');
- $grid->model()->orderBy('created_at', 'desc');
-
-
- $grid->setDialogFormDimensions('50%', '70%');
- $grid->disableCreateButton(!(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.create')));
- $grid->enableDialogCreate();
-
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableView();
- $actions->disableEdit();
- $actions->quickEdit(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.edit'));
- $actions->delete(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.destroy'));
- });
-
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel();
- $filter->expand();
- $filter->equal('category_id', '分类')->select(ArticleCategory::selectOptions())->width(3);
- $filter->like('title')->width(3);
- $filter->between('published_at')->datetime()->width(7);
- });
- });
- }
-
- public function form()
- {
- return Form::make(new Article(), function($form){
- $form->select('category_id')->options(ArticleCategory::selectOptions(false));
- $form->text('title')->required();
- $form->text('sub_title');
- $form->image('cover')
- ->uniqueName()
- ->move('articles/'.Carbon::now()->toDateString())
- ->saveFullUrl()
- ->autoSave(false)
- ->autoUpload()
- ->removable(false)//禁止用户从页面点击删除服务器上的文件,可以实现图片覆盖上传效果
- ->retainable();
- $form->text('author');
- $form->file('media_path')->chunked()
- ->accept('mp4,mp3', 'mp4/*,mp3/*')
- ->move('articles-media/'.Carbon::now()->toDateString())
- ->maxSize(204800)//默认最大200M
- ->saveFullUrl()
- ->removable(false)
- ->autoUpload()->autoSave(false);
-
- $form->datetime('published_at');
- $form->switch('is_enable')->default(0);
- $form->switch('is_recommend')->default(0);
- $form->number('sort')->min(0)->default(0);
- $form->text('remarks');
-
- $form->keyValue('ext', '扩展字段')->default($this->extDefaults)->setKeyLabel('键名')->setValueLabel('键值')
- ->saving(function($v){
- return json_encode($v ?? []);
- });
-
- $form->editor('content')->options([
- 'plugins' => [
- 'image',
- 'lists',
- 'preview',
- 'fullscreen',
- 'table',
- ],
- 'toolbar' => [
- 'undo redo | preview fullscreen | styleselect | fontsizeselect bold italic underline strikethrough forecolor backcolor | image blockquote removeformat codesample',
- 'alignleft aligncenter alignright alignjustify| indent outdent bullist numlist table subscript superscript | code',
- ]
- ])->height('800');
- Admin::style(<<names('article_categories');
-}
-
-if(! Route::has('dcat.admin.articles.index')){
- Route::resource('articles', Controllers\ArticleController::class);
-}
diff --git a/packages/article/src/Models/Article.php b/packages/article/src/Models/Article.php
deleted file mode 100644
index cccf062..0000000
--- a/packages/article/src/Models/Article.php
+++ /dev/null
@@ -1,75 +0,0 @@
-admin_user_id = Admin::user()->id;
- // 添加/修改分类时, 更新 category_path
- if ($model->isDirty('category_id')) {
- $model->category_path = ArticleCategory::where('id', $model->category_id)->value('path') . $model->category_id . '-';
- }
- });
- }
-
- public function category()
- {
- return $this->belongsTo(ArticleCategory::class, 'category_id');
- }
-
- public function adminUser()
- {
- return $this->belongsTo(Administrator::class, 'admin_user_id');
- }
-
- public function getAuthorNameAttribute()
- {
- return $this->attributes['author'] ?? ($this->attributes['admin_user_id'] ? (Administrator::find($this->attributes['admin_user_id'])?->name ?? '未知') : '未知');
- }
-
- //public function image(): Attribute
- //{
- // return Attribute::make(
- // get: fn ($v) => $v ?: 'https://via.placeholder.com/640x480.png',
- // set: fn ($v) => $v ?: 'https://via.placeholder.com/640x480.png',
- // );
- //}
-
- public function scopeSort($q)
- {
- return $q->orderBy('sort', 'desc')->latest('published_at')->latest('id');
- }
-
- public function scopePublish($q)
- {
- return $q->where('published_at', '<=', now());
- }
-}
diff --git a/packages/article/src/Models/ArticleCategory.php b/packages/article/src/Models/ArticleCategory.php
deleted file mode 100644
index 859d989..0000000
--- a/packages/article/src/Models/ArticleCategory.php
+++ /dev/null
@@ -1,70 +0,0 @@
-parent_id) {
- // 将层级设为 1
- $category->level = 1;
- // 将 path 设为 -
- $category->path = '-';
- } else {
- // 将层级设为父类目的层级 + 1
- $category->level = $category->parent->level + 1;
- // 将 path 值设为父类目的 path 追加父类目 ID 以及最后跟上一个 - 分隔符
- $category->path = $category->parent->path . $category->parent_id . '-';
- }
- });
- }
-
- public static function selectOptions($root = true)
- {
- $rootText = '顶级';
-
- $options = (new static())->withQuery(function ($q) {
- return $q->sort();
- })->buildSelectOptions();
-
- return collect($options)->when($root, fn ($c) => $c->prepend($rootText, 0))->all();
- }
-
- public function articles()
- {
- return $this->hasMany(Article::class, 'category_id');
- }
-
- public function parent()
- {
- return $this->belongsTo(static::class, 'parent_id');
- }
-
- public function children()
- {
- return $this->hasMany(static::class, 'parent_id')->sort();
- }
-
- public function scopeSort($q)
- {
- return $q->orderBy('sort', 'desc')->orderBy('id');
- }
-}
diff --git a/packages/article/src/Setting.php b/packages/article/src/Setting.php
deleted file mode 100644
index 1e96681..0000000
--- a/packages/article/src/Setting.php
+++ /dev/null
@@ -1,14 +0,0 @@
-text('key1')->required();
- $this->text('key2')->required();
- }
-}
diff --git a/packages/article/updates/AddMediaToArticleTable.php b/packages/article/updates/AddMediaToArticleTable.php
deleted file mode 100644
index be5203e..0000000
--- a/packages/article/updates/AddMediaToArticleTable.php
+++ /dev/null
@@ -1,35 +0,0 @@
-string('media_path')->nullable()->comment('资源地址');
- });
- }
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::table('articles', function (Blueprint $table) {
- //
- $table->dropColumn('media_path');
- });
- }
-};
diff --git a/packages/article/updates/AddnumToArticleTable.php b/packages/article/updates/AddnumToArticleTable.php
deleted file mode 100644
index 0239986..0000000
--- a/packages/article/updates/AddnumToArticleTable.php
+++ /dev/null
@@ -1,36 +0,0 @@
-unsignedBigInteger('like_nums')->default(0)->comment('点赞数');
- $table->unsignedBigInteger('read_nums')->default(0)->comment('阅读数');
- });
- }
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::table('articles', function (Blueprint $table) {
- //
- $table->dropColumn(['like_nums', 'read_nums']);
- });
- }
-};
diff --git a/packages/article/updates/ArticlePermissionSeeder.php b/packages/article/updates/ArticlePermissionSeeder.php
deleted file mode 100644
index 533ff10..0000000
--- a/packages/article/updates/ArticlePermissionSeeder.php
+++ /dev/null
@@ -1,70 +0,0 @@
- ['name' => '文章分类管理', 'curd' => true],
- 'articles' => ['name' => '文章管理', 'curd' => true],
- ];
- $this->createPermissionData($permissions);
- }
-
- /**
- * 插入权限
- *
- * @param array $permissions
- * @param string $key
- * @param integer $pId
- */
- public function createPermissionData(array $permissions, string $key = '', int $pId = 0)
- {
- $curdArr = [
- 'index' => '列表',
- 'create' => '新增',
- 'edit' => '修改',
- 'destroy' => '删除',
- 'show' => '详情',
- ];
- foreach ($permissions as $slug => $permission) {
- //是否已存在该权限
- $slugKey = 'dcat.admin.' . ($key ? $key . '.' . $slug : $slug);
-
-
- $pper = Permission::updateOrCreate(['slug' => $slugKey], ['name' => is_string($permission) ? $permission : $permission['name'], 'parent_id' => $pId]);
-
- if (!is_string($permission)) {
- if (!isset($permission['children'])) {
- $permission['children'] = [];
- }
- //判断是否默认插入curd权限
- if (isset($permission['curd']) && $permission['curd']) {
- if (is_array($permission['curd'])) {
- $permission['curd'] = array_reverse($permission['curd']);
- foreach ($permission['curd'] as $value) {
- $permission['children'] = array_merge([$value => $curdArr[$value]], $permission['children']);
- }
- } else {
- $permission['children'] = array_merge($curdArr, $permission['children']);
- }
- }
-
- if (count($permission['children']) > 0) {
- $_key = $permission['curd'] !== false ? ($key ? $key . '.' . $slug : $slug) : $key;
- $this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
- }
- }
- }
- }
-}
diff --git a/packages/article/updates/CreateArticleTable.php b/packages/article/updates/CreateArticleTable.php
deleted file mode 100644
index 4dff730..0000000
--- a/packages/article/updates/CreateArticleTable.php
+++ /dev/null
@@ -1,70 +0,0 @@
-id();
- $table->string('name')->comment('名称');
- $table->string('key')->unique()->nullable()->comment('key');
- $table->unsignedTinyInteger('is_recommend')->default(0)->comment('推荐状态');
- $table->unsignedTinyInteger('is_enable')->default(1)->comment('可用状态');
- $table->unsignedBigInteger('parent_id')->default(0)->comment('上级ID');
- $table->unsignedInteger('level')->default(1)->comment('层级');
- $table->string('path')->default('-')->comment('所有的父级ID');
- $table->unsignedInteger('sort')->default(0)->comment('排序 desc');
- $table->string('remarks')->nullable()->comment('备注');
-
- $table->text('ext')->nullable()->comment('扩展字段,可用于SEO配置等');
-
- $table->timestamps();
- });
- }
-
- if (!Schema::hasTable('articles')) {
- Schema::create('articles', function (Blueprint $table) {
- $table->id();
- $table->unsignedBigInteger('category_id')->nullable()->comment('分类ID');
- $table->string('category_path')->default('-')->comment('分类 path');
- $table->unsignedBigInteger('admin_user_id')->comment('创建人');
- $table->string('title')->comment('文章标题');
- $table->string('sub_title')->nullable()->comment('副标题');
- $table->string('author')->nullable()->comment('作者');
- $table->string('cover')->nullable()->comment('封面');
- $table->longText('content')->nullable()->comment('文章内容');
- $table->timestamp('published_at')->nullable()->comment('发布时间');
- $table->unsignedInteger('sort')->default(1)->comment('排序 desc');
- $table->string('remarks')->nullable()->comment('备注');
-
- $table->unsignedTinyInteger('is_recommend')->default(0)->comment('推荐状态');
- $table->unsignedTinyInteger('is_enable')->default(1)->comment('可用状态');
-
- $table->text('ext')->nullable()->comment('扩展字段,可用于SEO配置等');
-
- $table->timestamps();
- });
- }
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('articles');
- Schema::dropIfExists('article_categories');
- }
-};
diff --git a/packages/article/version.php b/packages/article/version.php
deleted file mode 100644
index 34f933b..0000000
--- a/packages/article/version.php
+++ /dev/null
@@ -1,16 +0,0 @@
- [
- '初始化文章管理',
- 'CreateArticleTable.php',
- ],
- '1.0.1' => [
- '文章添加点赞,浏览字段',
- 'AddnumToArticleTable.php',
- ],
- '1.0.2' => [
- '文章添加媒体内容',
- 'AddMediaToArticleTable.php',
- ],
-];
From a32043e86a73fe5502160e03d96e8b4a3902073c Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Fri, 16 Sep 2022 17:15:02 +0800
Subject: [PATCH 14/16] update banner
---
packages/banner/src/Http/Admin/BannerAdController.php | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/packages/banner/src/Http/Admin/BannerAdController.php b/packages/banner/src/Http/Admin/BannerAdController.php
index 50993cd..e4c0b0a 100644
--- a/packages/banner/src/Http/Admin/BannerAdController.php
+++ b/packages/banner/src/Http/Admin/BannerAdController.php
@@ -18,7 +18,11 @@ class BannerAdController extends AdminController
public function list(Request $request)
{
- $query = BannerAd::filter($request->all());
+ $query = BannerAd::query();
+
+ if ($request->filled('q')) {
+ $query->where('name', 'like', '%'.$request->input('q').'%');
+ }
$query->select(['id', 'name as text', 'width', 'height']);
From 11bcca42133e072ced0a80f734d6446ee97bbab6 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Mon, 19 Sep 2022 15:47:08 +0800
Subject: [PATCH 15/16] tag
---
packages/banner/resources/lang/zh_CN/banner.php | 5 ++++-
packages/banner/src/Http/Admin/BannerController.php | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/packages/banner/resources/lang/zh_CN/banner.php b/packages/banner/resources/lang/zh_CN/banner.php
index 06f30b9..805dac7 100644
--- a/packages/banner/resources/lang/zh_CN/banner.php
+++ b/packages/banner/resources/lang/zh_CN/banner.php
@@ -12,7 +12,10 @@ return [
'sort'=>'排序',
'is_enable'=>'启用',
'remarks'=> '备注',
- 'ext'=>'扩展字段'
+ 'ext'=>'扩展字段',
+ 'ad' => [
+ 'name' => '广告位'
+ ],
],
'options' => [
],
diff --git a/packages/banner/src/Http/Admin/BannerController.php b/packages/banner/src/Http/Admin/BannerController.php
index 770992a..e7ec072 100644
--- a/packages/banner/src/Http/Admin/BannerController.php
+++ b/packages/banner/src/Http/Admin/BannerController.php
@@ -9,6 +9,7 @@ use Dcat\Admin\Widgets\Card;
use Peidikeji\Banner\Models\Banner;
use Dcat\Admin\Grid\Column as GridColumn;
use Dcat\Admin\Http\Controllers\AdminController;
+use Peidikeji\Banner\Models\BannerAd;
class BannerController extends AdminController
{
@@ -18,10 +19,11 @@ class BannerController extends AdminController
protected function grid()
{
- return Grid::make(new Banner(), function (Grid $grid) {
+ return Grid::make(Banner::with(['ad']), function (Grid $grid) {
$grid->model()->sort();
$grid->disableRowSelector();
+ $grid->column('ad.name');
$grid->column('path')->image('', 50);
$grid->column('name');
$grid->column('sort');
@@ -60,6 +62,7 @@ class BannerController extends AdminController
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->expand();
+ $filter->equal('ad_id')->select(BannerAd::pluck('name', 'id'))->width(3);
$filter->like('name')->width(3);
});
});
From 56ee1dcb4dc404baaa825587091b3ac867e34fe8 Mon Sep 17 00:00:00 2001
From: panliang <1163816051@qq.com>
Date: Wed, 21 Sep 2022 13:30:58 +0800
Subject: [PATCH 16/16] update widget form add back button
---
src/Widgets/Form.php | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/Widgets/Form.php b/src/Widgets/Form.php
index 5af92c5..1979daa 100755
--- a/src/Widgets/Form.php
+++ b/src/Widgets/Form.php
@@ -140,7 +140,7 @@ class Form implements Renderable
*
* @var array
*/
- protected $buttons = ['reset' => true, 'submit' => true];
+ protected $buttons = ['reset' => true, 'submit' => true, 'back' => false];
/**
* @var bool
@@ -489,6 +489,13 @@ class Form implements Renderable
return $this;
}
+ public function backButton(bool $value = true)
+ {
+ $this->buttons['back'] = $value;
+
+ return $this;
+ }
+
/**
* Disable reset button.
*
@@ -500,6 +507,11 @@ class Form implements Renderable
return $this->resetButton(! $value);
}
+ public function disableBackButton(bool $value = true)
+ {
+ return $this->backButton(! $value);
+ }
+
/**
* Disable submit button.
*
@@ -623,7 +635,7 @@ class Form implements Renderable
return <<
- {$this->renderResetButton()}{$this->renderSubmitButton()}
+ {$this->renderBackButton()}{$this->renderResetButton()}{$this->renderSubmitButton()}
HTML;
}
@@ -644,6 +656,15 @@ HTML;
}
}
+ protected function renderBackButton()
+ {
+ if (! empty($this->buttons['back'])) {
+ $back = trans('admin.back');
+
+ return " {$back}";
+ }
+ }
+
/**
* 提交按钮文本.
*