diff --git a/packages/banner/.gitignore b/packages/banner/.gitignore deleted file mode 100644 index 9d4b362..0000000 --- a/packages/banner/.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/banner/README.md b/packages/banner/README.md deleted file mode 100644 index 10fd682..0000000 --- a/packages/banner/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# 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'], - ]] -]; -``` - -## 接口文档 - -[Apifox](https://www.apifox.cn/apidoc/shared-86eb60cb-ba8f-46c6-b718-f33f99de5e7d/api-39896291) - -## 数据表 - -### 广告位: 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/composer.json b/packages/banner/composer.json deleted file mode 100644 index d822a24..0000000 --- a/packages/banner/composer.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "peidikeji/banner", - "alias": "广告管理", - "description": "广告管理", - "type": "library", - "keywords": ["dcat-admin", "extension"], - "homepage": "https://github.com/peidikeji/banner", - "license": "MIT", - "authors": [ - { - "name": "liutk", - "email": "961510893@qq.com" - } - ], - "require": { - "php": ">=7.1.0" - }, - "autoload": { - "psr-4": { - "Peidikeji\\Banner\\": "src/" - } - }, - "extra": { - "dcat-admin": "Peidikeji\\Banner\\BannerServiceProvider", - "laravel": { - "providers": [ - "Peidikeji\\Banner\\BannerServiceProvider" - ] - } - } -} diff --git a/packages/banner/resources/lang/en/banner-ad.php b/packages/banner/resources/lang/en/banner-ad.php deleted file mode 100644 index 0b67a5f..0000000 --- a/packages/banner/resources/lang/en/banner-ad.php +++ /dev/null @@ -1,3 +0,0 @@ - [ - 'BannerAd' => '广告位管理', - 'banner-ads'=> '广告位管理', - ], - 'fields' => [ - 'name' => '名称', - 'key' => 'key', - 'width' => '宽度', - 'height' => '高度', - 'is_enable' => '启用', - 'remarks' => '备注', - ], - 'options' => [ - ], -]; diff --git a/packages/banner/resources/lang/zh_CN/banner.php b/packages/banner/resources/lang/zh_CN/banner.php deleted file mode 100644 index 805dac7..0000000 --- a/packages/banner/resources/lang/zh_CN/banner.php +++ /dev/null @@ -1,22 +0,0 @@ - [ - 'Banner' => '广告图管理', - 'banners' => '广告图管理', - ], - 'fields' => [ - 'ad_id'=>'广告位', - 'name'=>'名称', - 'path'=>'内容', - 'sort'=>'排序', - 'is_enable'=>'启用', - 'remarks'=> '备注', - 'ext'=>'扩展字段', - 'ad' => [ - 'name' => '广告位' - ], - ], - 'options' => [ - ], -]; diff --git a/packages/banner/resources/views/.keep b/packages/banner/resources/views/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/banner/src/BannerServiceProvider.php b/packages/banner/src/BannerServiceProvider.php deleted file mode 100644 index d4b99dd..0000000 --- a/packages/banner/src/BannerServiceProvider.php +++ /dev/null @@ -1,25 +0,0 @@ - '', 'title' => '广告管理', 'icon' => 'feather icon-image', 'uri' => ''], - ['parent' => '广告管理', 'title' => '广告位置', 'icon' => '', 'uri' => 'banner-ads'], - ['parent' => '广告管理', 'title' => '广告内容', 'icon' => '', 'uri' => 'banners'], - ]; - } - return $this->menu; - } -} diff --git a/packages/banner/src/Http/Admin/BannerAdController.php b/packages/banner/src/Http/Admin/BannerAdController.php deleted file mode 100644 index 60ec379..0000000 --- a/packages/banner/src/Http/Admin/BannerAdController.php +++ /dev/null @@ -1,100 +0,0 @@ -filled('q')) { - $query->where('name', 'like', '%'.$request->input('q').'%'); - } - - if ($request->filled('id')) { - $query->where('id',$request->input('id')); - } - - $query->select(['id', 'name as text', 'width', 'height']); - - if ($request->filled('_paginate')) { - $list = $query->paginate(); - } else { - $list = $query->get(); - } - return $list; - } - - protected function grid() - { - return Grid::make(new BannerAd(), function ($grid) { - $grid->disableRowSelector(); - - $grid->column('name'); - $grid->column('key'); - $grid->column('width'); - $grid->column('height'); - $grid->column('is_enable')->if(function(){ - return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.banner_ads.edit'); - })->then(function (GridColumn $column) { - $column->switch(); - })->else(function (GridColumn $column) { - $column->bool(); - }); - $grid->column('remarks'); - $grid->disableCreateButton(!(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.banner_ads.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.banner_ads.edit')); - $actions->delete(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.banner_ads.destroy')); - }); - - $grid->filter(function (Grid\Filter $filter) { - $filter->panel(); - $filter->expand(); - $filter->like('name')->width(3); - $filter->like('key')->width(3); - }); - }); - } - - protected function form() - { - return Form::make(new BannerAd(), function (Form $form) { - $form->text('name')->required(); - $unique = Rule::unique((new BannerAd())->getTable()); - if ($form->isEditing()) { - $unique->ignore($form->getKey()); - } - $form->text('key')->required()->rules([$unique]); - $form->number('width')->min(0); - $form->number('height')->min(0); - $form->switch('is_enable')->default(1); - $form->text('remarks'); - }); - } - - public function destroy($id) - { - //如果该广告位下还有内容,则一起删除 - Banner::where(['ad_id' => $id])->delete(); - - return parent::destroy($id); - } -} diff --git a/packages/banner/src/Http/Admin/BannerController.php b/packages/banner/src/Http/Admin/BannerController.php deleted file mode 100644 index 96ab942..0000000 --- a/packages/banner/src/Http/Admin/BannerController.php +++ /dev/null @@ -1,121 +0,0 @@ -model()->sort(); - - $grid->disableRowSelector(); - $grid->column('ad.name'); - $grid->column('path')->image('', 50); - $grid->column('name'); - $grid->column('sort'); - $grid->column('is_enable')->if(function () { - return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.banners.edit'); - })->then(function (GridColumn $column) { - $column->switch(); - })->else(function (GridColumn $column) { - $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))); - - return "
$card
"; - }); - }); - - $grid->column('remarks'); - - $grid->setDialogFormDimensions('50%', '70%'); - $grid->disableCreateButton(!(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.banners.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.banners.edit')); - $actions->delete(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.banners.destroy')); - }); - - $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); - }); - }); - } - - protected function form() - { - return Form::make(new Banner(), function (Form $form) { - $form->select('ad_id') - ->options('api/banner-ads') - ->required(); - $form->text('name'); - $form->image('path') - ->uniqueName() - ->move('banner') - ->saveFullUrl() - ->autoSave(false) - ->autoUpload() - ->removable(false) //禁止用户从页面点击删除服务器上的文件,可以实现图片覆盖上传效果 - ->retainable() - ->required()->help('建议尺寸:'); - Admin::script( - << 建议尺寸:'+ cicun); - } - }); - }); - JS - ); - $form->number('sort') - ->min(0) - ->help('数值越小, 越靠前'); - $form->keyValue('ext')->default($this->extDefaults)->setKeyLabel('键名')->setValueLabel('键值'); - $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 deleted file mode 100644 index 7d04027..0000000 --- a/packages/banner/src/Http/Api/BannerController.php +++ /dev/null @@ -1,35 +0,0 @@ -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(); - - $data = []; - foreach ($keys as $key) { - $ad = $ads->where('key', $key)->first(); - $data[$key] = $ad ? BannerResource::collection($ad->banners) : []; - } - - return $this->json($data); - } - -} diff --git a/packages/banner/src/Http/Resources/BannerResource.php b/packages/banner/src/Http/Resources/BannerResource.php deleted file mode 100644 index cfbb007..0000000 --- a/packages/banner/src/Http/Resources/BannerResource.php +++ /dev/null @@ -1,18 +0,0 @@ - $this->id, - 'name' => $this->name, - 'path' => $this->path, - 'ext' => $this->ext, - ]; - } -} diff --git a/packages/banner/src/Http/routes.php b/packages/banner/src/Http/routes.php deleted file mode 100644 index 6ec9e7a..0000000 --- a/packages/banner/src/Http/routes.php +++ /dev/null @@ -1,16 +0,0 @@ -name('api.banner_ads'); -} - -if(! Route::has('dcat.admin.banner_ads.index')){ - Route::resource('banner-ads', BannerAdController::class)->names('banner_ads'); -} -if(! Route::has('dcat.admin.banners.index')){ - Route::resource('banners', BannerController::class); -} diff --git a/packages/banner/src/Http/web.php b/packages/banner/src/Http/web.php deleted file mode 100644 index baec154..0000000 --- a/packages/banner/src/Http/web.php +++ /dev/null @@ -1,9 +0,0 @@ - 'api', 'prefix' => 'api'], function () { - Route::get('banner', [BannerController::class, 'index']); -}); diff --git a/packages/banner/src/Models/Banner.php b/packages/banner/src/Models/Banner.php deleted file mode 100644 index 78befcf..0000000 --- a/packages/banner/src/Models/Banner.php +++ /dev/null @@ -1,33 +0,0 @@ - 'array' - ]; - - public function ad() - { - return $this->belongsTo(BannerAd::class, 'ad_id'); - } - - 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 deleted file mode 100644 index 0f43c17..0000000 --- a/packages/banner/src/Models/BannerAd.php +++ /dev/null @@ -1,23 +0,0 @@ -hasMany(Banner::class, 'ad_id'); - } - - public function scopeEnable($query){ - return $query->where('is_enable', 1); - } -} diff --git a/packages/banner/updates/CreateBannerTable.php b/packages/banner/updates/CreateBannerTable.php deleted file mode 100644 index 33adb9a..0000000 --- a/packages/banner/updates/CreateBannerTable.php +++ /dev/null @@ -1,56 +0,0 @@ -id(); - $table->string('name')->comment('名称'); - $table->string('key')->unique()->comment('key'); - $table->unsignedInteger('width')->nullable()->comment('宽'); - $table->unsignedInteger('height')->nullable()->comment('高'); - $table->unsignedTinyInteger('is_enable')->default(1)->comment('可用状态'); - $table->string('remarks')->nullable()->comment('备注'); - - $table->timestamps(); - }); - } - - if (!Schema::hasTable('banners')) { - Schema::create('banners', function (Blueprint $table) { - $table->id(); - $table->unsignedBigInteger('ad_id')->comment('位置ID'); - $table->string('path')->comment('地址'); - $table->string('name')->nullable()->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('备注'); - - $table->timestamps(); - }); - } - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('banners'); - Schema::dropIfExists('banner_ads'); - } -}; diff --git a/packages/banner/version.php b/packages/banner/version.php deleted file mode 100644 index 6c09ca3..0000000 --- a/packages/banner/version.php +++ /dev/null @@ -1,7 +0,0 @@ - [ - 'CreateBannerTable.php', - ], -];