12 changed files with 360 additions and 87 deletions
-
34app/Admin/Actions/Grid/v3/ShareCardCreate.php
-
40app/Admin/Actions/Grid/v3/ShareCardDelete.php
-
39app/Admin/Actions/Grid/v3/ShareCardEdit.php
-
74app/Admin/Controllers/v3/ShareCardSettingController.php
-
7app/Admin/Controllers/v3/SystemConfigController.php
-
78app/Admin/Forms/v3/ProgramShareCardForm.php
-
61app/Admin/Forms/v3/ShareCardCreateForm.php
-
69app/Admin/Forms/v3/ShareCardEditForm.php
-
25app/Admin/Repositories/v3/ShareCardSetting.php
-
2app/Admin/routes.php
-
15resources/lang/zh-CN/share-card-setting.php
-
3resources/lang/zh-CN/system-config.php
@ -0,0 +1,34 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Actions\Grid\v3; |
|||
|
|||
use Dcat\Admin\Grid\RowAction; |
|||
use Dcat\Admin\Widgets\Modal; |
|||
use App\Admin\Forms\v3\ShareCardCreateForm; |
|||
|
|||
class ShareCardCreate extends RowAction |
|||
{ |
|||
/** |
|||
* @return string |
|||
*/ |
|||
protected $title = '<button class="btn btn-primary btn-outline">添加</button>'; |
|||
|
|||
public function render() |
|||
{ |
|||
$modal = Modal::make() |
|||
->xl() |
|||
->title('分享卡片添加') |
|||
->body(ShareCardCreateForm::make()) |
|||
->button($this->title); |
|||
|
|||
return $modal; |
|||
} |
|||
|
|||
public function parameters() |
|||
{ |
|||
|
|||
return [ |
|||
|
|||
]; |
|||
} |
|||
} |
|||
@ -0,0 +1,40 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Actions\Grid\v3; |
|||
|
|||
use Dcat\Admin\Grid\RowAction; |
|||
use Illuminate\Support\Facades\Redis; |
|||
use App\Libs\Redis\RedisKey; |
|||
use Illuminate\Http\Request; |
|||
|
|||
class ShareCardDelete extends RowAction |
|||
{ |
|||
/** |
|||
* @return string |
|||
*/ |
|||
protected $title = ' 删除 '; |
|||
|
|||
public function handle(Request $request) |
|||
{ |
|||
$id = $request->get('id'); |
|||
$res = Redis::hdel(RedisKey::PROGRAM_SHARE_CARD ,$id); |
|||
if($res !== false){ |
|||
return $this->response()->success('删除成功!','/share_card_setting'); |
|||
}else{ |
|||
return $this->response()->error('删除失败!'); |
|||
} |
|||
} |
|||
|
|||
// 确认弹窗信息
|
|||
public function confirm() |
|||
{ |
|||
return '您确定要删除吗?'; |
|||
} |
|||
|
|||
public function parameters() |
|||
{ |
|||
return [ |
|||
'id' => $this->row->id ?? 0 |
|||
]; |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Actions\Grid\v3; |
|||
|
|||
use Dcat\Admin\Grid\RowAction; |
|||
use Dcat\Admin\Widgets\Modal; |
|||
use App\Admin\Forms\v3\ShareCardEditForm; |
|||
|
|||
class ShareCardEdit extends RowAction |
|||
{ |
|||
/** |
|||
* @return string |
|||
*/ |
|||
protected $title = ' 编辑 '; |
|||
|
|||
public function render() |
|||
{ |
|||
|
|||
$modal = Modal::make() |
|||
->xl() |
|||
->title('编辑') |
|||
->body(ShareCardEditForm::make()->payload([ |
|||
'id'=>$this->row->id, |
|||
'title'=>$this->row->title, |
|||
'image'=>$this->row->image |
|||
])) |
|||
->button($this->title); |
|||
|
|||
return $modal; |
|||
} |
|||
|
|||
public function parameters() |
|||
{ |
|||
|
|||
return [ |
|||
|
|||
]; |
|||
} |
|||
} |
|||
@ -0,0 +1,74 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Controllers\v3; |
|||
|
|||
use App\Admin\Actions\Grid\v3\ShareCardCreate; |
|||
use App\Admin\Actions\Grid\v3\ShareCardDelete; |
|||
use App\Admin\Actions\Grid\v3\ShareCardEdit; |
|||
use App\Admin\Repositories\v3\ShareCardSetting; |
|||
use Dcat\Admin\Form; |
|||
use Dcat\Admin\Grid; |
|||
use Dcat\Admin\Show; |
|||
use Dcat\Admin\Controllers\AdminController; |
|||
class ShareCardSettingController extends AdminController |
|||
{ |
|||
|
|||
/** |
|||
* Make a grid builder. |
|||
* |
|||
* @return Grid |
|||
*/ |
|||
protected function grid() |
|||
{ |
|||
return Grid::make(new ShareCardSetting(), function (Grid $grid) { |
|||
$grid->column('id'); |
|||
$grid->column('title'); |
|||
$grid->column('image')->image('',80); |
|||
|
|||
$grid->tools([new ShareCardCreate()]); |
|||
$grid->actions([new ShareCardEdit(), new ShareCardDelete()]); |
|||
// 每页1条
|
|||
$grid->paginate(10); |
|||
$grid->disableCreateButton(); |
|||
$grid->disableBatchActions(); |
|||
$grid->disableBatchDelete(); |
|||
|
|||
$grid->toolsWithOutline(); |
|||
|
|||
$grid->disableDeleteButton(); |
|||
$grid->disableEditButton(); |
|||
$grid->disableQuickEditButton(); |
|||
$grid->disableViewButton(); |
|||
// $grid->disableActions();
|
|||
|
|||
$grid->disableRowSelector(); |
|||
$grid->disableFilter(); |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Make a show builder. |
|||
* |
|||
* @param mixed $id |
|||
* |
|||
* @return Show |
|||
*/ |
|||
protected function detail($id) |
|||
{ |
|||
return Show::make($id, new ShareCardSetting(), function (Show $show) { |
|||
|
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Make a form builder. |
|||
* |
|||
* @return Form |
|||
*/ |
|||
protected function form() |
|||
{ |
|||
return Form::make(new ShareCardSetting(), function (Form $form) { |
|||
|
|||
}); |
|||
} |
|||
} |
|||
@ -1,78 +0,0 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Forms\v3; |
|||
|
|||
use Dcat\Admin\Widgets\Form; |
|||
use Symfony\Component\HttpFoundation\Response; |
|||
use Illuminate\Support\Facades\Redis; |
|||
use App\Libs\Redis\RedisKey; |
|||
use Dcat\Admin\Form\NestedForm; |
|||
|
|||
class ProgramShareCardForm extends Form |
|||
{ |
|||
|
|||
/** |
|||
* Handle the form request. |
|||
* |
|||
* @param array $input |
|||
* |
|||
* @return Response |
|||
*/ |
|||
public function handle(array $input) |
|||
{ |
|||
// 获取外部传递参数
|
|||
$data = $input['share_card']; |
|||
|
|||
$data[0]['image'] = ''; |
|||
foreach($data as &$value){ |
|||
$value = json_encode($value); |
|||
} |
|||
// dd($data);
|
|||
$res = Redis::hmset(RedisKey::PROGRAM_SHARE_CARD , $data); |
|||
if($res){ |
|||
return $this->success('修改成功','/share_card_setting'); |
|||
}else{ |
|||
return $this->error('修改失败'); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Build a form here. |
|||
*/ |
|||
public function form() |
|||
{ |
|||
$data = Redis::hgetall(RedisKey::PROGRAM_SHARE_CARD); |
|||
|
|||
$this->display('setting' , '设置')->value('小程序分享卡片设置'); |
|||
foreach($data as &$value){ |
|||
$value = json_decode($value,true); |
|||
// dd($data);
|
|||
$this->table('share_card', function (NestedForm $table) use($value){ |
|||
$table->text('title','标题')->value($value['title'])->width(10); |
|||
$table->image('image','图片')->autoUpload()->width(2) |
|||
->customFormat(function() use($value){ |
|||
return [$value['image']]; |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
|
|||
// $this->hasMany('share_card', function (NestedForm $form) {
|
|||
// $form->text('title','标题')->required()->default('');
|
|||
// $form->image('image','图片')->autoUpload()->saveFullUrl()->width(3);
|
|||
// });
|
|||
|
|||
// $this->image('img');->saveFullUrl()
|
|||
} |
|||
|
|||
/** |
|||
* The data of the form. |
|||
* |
|||
* @return array |
|||
*/ |
|||
public function default() |
|||
{ |
|||
return []; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Forms\v3; |
|||
|
|||
use Dcat\Admin\Widgets\Form; |
|||
use Symfony\Component\HttpFoundation\Response; |
|||
use Illuminate\Support\Facades\Redis; |
|||
use App\Libs\Redis\RedisKey; |
|||
|
|||
class ShareCardCreateForm extends Form |
|||
{ |
|||
|
|||
/** |
|||
* Handle the form request. |
|||
* |
|||
* @param array $input |
|||
* |
|||
* @return Response |
|||
*/ |
|||
public function handle(array $input) |
|||
{ |
|||
$list = Redis::hgetall(RedisKey::PROGRAM_SHARE_CARD); |
|||
$id = count($list) + 1; |
|||
$data = [ |
|||
'id' => $id, |
|||
'title' => $input['title'], |
|||
'image' => $input['image'] |
|||
]; |
|||
|
|||
$data = json_encode($data); |
|||
|
|||
$res = Redis::hset(RedisKey::PROGRAM_SHARE_CARD ,$id, $data); |
|||
if($res){ |
|||
return $this->success('添加成功','/share_card_setting'); |
|||
}else{ |
|||
return $this->error('添加失败'); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Build a form here. |
|||
*/ |
|||
public function form() |
|||
{ |
|||
$this->display('setting' , ' ')->value('小程序分享卡片设置'); |
|||
|
|||
$this->text('title','标题'); |
|||
$this->image('image','图片')->autoUpload()->saveFullUrl()->width(3); |
|||
} |
|||
|
|||
/** |
|||
* The data of the form. |
|||
* |
|||
* @return array |
|||
*/ |
|||
public function default() |
|||
{ |
|||
return []; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,69 @@ |
|||
<?php |
|||
|
|||
namespace App\Admin\Forms\v3; |
|||
|
|||
use Dcat\Admin\Widgets\Form; |
|||
use Symfony\Component\HttpFoundation\Response; |
|||
use Illuminate\Support\Facades\Redis; |
|||
use App\Libs\Redis\RedisKey; |
|||
use Dcat\Admin\Contracts\LazyRenderable; |
|||
use Dcat\Admin\Traits\LazyWidget; |
|||
|
|||
class ShareCardEditForm extends Form implements LazyRenderable |
|||
{ |
|||
use LazyWidget; |
|||
/** |
|||
* Handle the form request. |
|||
* |
|||
* @param array $input |
|||
* |
|||
* @return Response |
|||
*/ |
|||
public function handle(array $input) |
|||
{ |
|||
$id = $input['id']; |
|||
$data = [ |
|||
'id' => $id, |
|||
'title' => $input['title'], |
|||
'image' => $input['image'] |
|||
]; |
|||
|
|||
$data = json_encode($data); |
|||
|
|||
$res = Redis::hset(RedisKey::PROGRAM_SHARE_CARD ,$id, $data); |
|||
if($res !== false){ |
|||
return $this->success('修改成功','/share_card_setting'); |
|||
}else{ |
|||
return $this->error('修改失败'); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Build a form here. |
|||
*/ |
|||
public function form() |
|||
{ |
|||
$id = $this->payload['id'] ?? 0; |
|||
$title = $this->payload['title'] ?? ''; |
|||
$image = $this->payload['image'] ?? ''; |
|||
$this->display('setting' , ' ')->value('小程序分享卡片设置'); |
|||
$this->hidden('id')->value($id); |
|||
$this->text('title','标题')->value($title); |
|||
$this->image('image','图片')->autoUpload() |
|||
->customFormat(function() use($image){ |
|||
return [$image]; |
|||
}) |
|||
->saveFullUrl()->width(3); |
|||
} |
|||
|
|||
/** |
|||
* The data of the form. |
|||
* |
|||
* @return array |
|||
*/ |
|||
public function default() |
|||
{ |
|||
return []; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?php |
|||
namespace App\Admin\Repositories\v3; |
|||
|
|||
use Dcat\Admin\Grid\Model as GridModel; |
|||
use Dcat\Admin\Repositories\Repository; |
|||
use Illuminate\Support\Facades\Redis; |
|||
use App\Libs\Redis\RedisKey; |
|||
|
|||
class ShareCardSetting extends Repository |
|||
{ |
|||
public function get(GridModel $model) |
|||
{ |
|||
|
|||
$data = Redis::hgetall(RedisKey::PROGRAM_SHARE_CARD); |
|||
foreach($data as &$value){ |
|||
$value = json_decode($value,true); |
|||
} |
|||
|
|||
return $model->makePaginator( |
|||
count($data), |
|||
$data |
|||
); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
<?php |
|||
return [ |
|||
'labels' => [ |
|||
'ShareCardSetting' => '分享设置', |
|||
'shareCardSetting' => '分享设置', |
|||
'share_card_setting' => '分享设置', |
|||
], |
|||
'fields' => [ |
|||
'title' => '标题', |
|||
'image' => '图片', |
|||
'share_card' => ' ' |
|||
], |
|||
'options' => [ |
|||
], |
|||
]; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue