Browse Source

分享小卡片设置

master
liangyuyan 5 years ago
parent
commit
02e16a0fba
  1. 34
      app/Admin/Actions/Grid/v3/ShareCardCreate.php
  2. 40
      app/Admin/Actions/Grid/v3/ShareCardDelete.php
  3. 39
      app/Admin/Actions/Grid/v3/ShareCardEdit.php
  4. 74
      app/Admin/Controllers/v3/ShareCardSettingController.php
  5. 7
      app/Admin/Controllers/v3/SystemConfigController.php
  6. 78
      app/Admin/Forms/v3/ProgramShareCardForm.php
  7. 61
      app/Admin/Forms/v3/ShareCardCreateForm.php
  8. 69
      app/Admin/Forms/v3/ShareCardEditForm.php
  9. 25
      app/Admin/Repositories/v3/ShareCardSetting.php
  10. 2
      app/Admin/routes.php
  11. 15
      resources/lang/zh-CN/share-card-setting.php
  12. 3
      resources/lang/zh-CN/system-config.php

34
app/Admin/Actions/Grid/v3/ShareCardCreate.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 [
];
}
}

40
app/Admin/Actions/Grid/v3/ShareCardDelete.php

@ -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
];
}
}

39
app/Admin/Actions/Grid/v3/ShareCardEdit.php

@ -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 [
];
}
}

74
app/Admin/Controllers/v3/ShareCardSettingController.php

@ -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) {
});
}
}

7
app/Admin/Controllers/v3/SystemConfigController.php

@ -120,11 +120,4 @@ class SystemConfigController extends AdminController
$form->disableCreatingCheck();
});
}
public function shareCardSettingForm(Content $content)
{
return $content
->title('分享设置')
->body(new Card(new ProgramShareCardForm()));
}
}

78
app/Admin/Forms/v3/ProgramShareCardForm.php

@ -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 [];
}
}

61
app/Admin/Forms/v3/ShareCardCreateForm.php

@ -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 [];
}
}

69
app/Admin/Forms/v3/ShareCardEditForm.php

@ -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 [];
}
}

25
app/Admin/Repositories/v3/ShareCardSetting.php

@ -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
);
}
}

2
app/Admin/routes.php

@ -98,6 +98,6 @@ Route::group([
$router->any('/goods_report_export', 'v3\GoodsReportController@export');
// 分享小卡片设置
$router->get('/share_card_setting', 'v3\SystemConfigController@shareCardSettingForm');
$router->resource('/share_card_setting', 'v3\ShareCardSettingController');
});

15
resources/lang/zh-CN/share-card-setting.php

@ -0,0 +1,15 @@
<?php
return [
'labels' => [
'ShareCardSetting' => '分享设置',
'shareCardSetting' => '分享设置',
'share_card_setting' => '分享设置',
],
'fields' => [
'title' => '标题',
'image' => '图片',
'share_card' => ' '
],
'options' => [
],
];

3
resources/lang/zh-CN/system-config.php

@ -14,7 +14,8 @@ return [
'desc' => '配置简介',
'sort' => '排序',
'status' => '状态',
'status_text' => '状态'
'status_text' => '状态',
'share_card' => ' '
],
'options' => [
],

Loading…
Cancel
Save