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