diff --git a/app/Admin/Actions/Grid/v3/ShareCardCreate.php b/app/Admin/Actions/Grid/v3/ShareCardCreate.php new file mode 100644 index 0000000..851b7bb --- /dev/null +++ b/app/Admin/Actions/Grid/v3/ShareCardCreate.php @@ -0,0 +1,34 @@ +添加'; + + public function render() + { + $modal = Modal::make() + ->xl() + ->title('分享卡片添加') + ->body(ShareCardCreateForm::make()) + ->button($this->title); + + return $modal; + } + + public function parameters() + { + + return [ + + ]; + } +} diff --git a/app/Admin/Actions/Grid/v3/ShareCardDelete.php b/app/Admin/Actions/Grid/v3/ShareCardDelete.php new file mode 100644 index 0000000..16dc535 --- /dev/null +++ b/app/Admin/Actions/Grid/v3/ShareCardDelete.php @@ -0,0 +1,40 @@ +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 + ]; + } +} diff --git a/app/Admin/Actions/Grid/v3/ShareCardEdit.php b/app/Admin/Actions/Grid/v3/ShareCardEdit.php new file mode 100644 index 0000000..aca8a8d --- /dev/null +++ b/app/Admin/Actions/Grid/v3/ShareCardEdit.php @@ -0,0 +1,39 @@ +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 [ + + ]; + } +} diff --git a/app/Admin/Controllers/v3/ShareCardSettingController.php b/app/Admin/Controllers/v3/ShareCardSettingController.php new file mode 100644 index 0000000..c454d9b --- /dev/null +++ b/app/Admin/Controllers/v3/ShareCardSettingController.php @@ -0,0 +1,74 @@ +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) { + + }); + } +} diff --git a/app/Admin/Controllers/v3/SystemConfigController.php b/app/Admin/Controllers/v3/SystemConfigController.php index 4ee820b..019fa51 100644 --- a/app/Admin/Controllers/v3/SystemConfigController.php +++ b/app/Admin/Controllers/v3/SystemConfigController.php @@ -2,11 +2,14 @@ namespace App\Admin\Controllers\v3; +use App\Admin\Forms\v3\OfficialSubscribeInfoForm; use App\Admin\Repositories\v3\SystemConfig; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Controllers\AdminController; +use Dcat\Admin\Layout\Content; +use Dcat\Admin\Widgets\Card; use App\Models\v3\SystemConfig as SystemConfigModel; use App\Libs\SsdbClient; use App\Constants\v3\SsdbKeys; @@ -117,4 +120,11 @@ class SystemConfigController extends AdminController $form->disableCreatingCheck(); }); } + + public function OfficialSubscribeInfoSettingForm(Content $content) + { + return $content + ->title('关注公众号设置') + ->body(new Card(new OfficialSubscribeInfoForm())); + } } diff --git a/app/Admin/Forms/v3/OfficialSubscribeInfoForm.php b/app/Admin/Forms/v3/OfficialSubscribeInfoForm.php new file mode 100644 index 0000000..858737c --- /dev/null +++ b/app/Admin/Forms/v3/OfficialSubscribeInfoForm.php @@ -0,0 +1,101 @@ + $input['head_title'], + 'logo' => $input['logo'], + 'title' => $input['title'], + 'sub_title' => $input['sub_title'], + 'redirect_url' => $input['redirect_url'], + ]; + $notSubscribed = [ + 'head_title' => $input['not_head_title'], + 'logo' => $input['not_logo'], + 'title' => $input['not_title'], + 'sub_title' => $input['not_sub_title'], + 'redirect_url' => $input['not_redirect_url'], + ]; + + + $data = [ + 'subscribed' => json_encode($subscribed), + 'not_subscribed' => json_encode($notSubscribed) + ]; + + $res = Redis::hmset(RedisKey::OFFICIAL_SUBSCRIBE_INFO, $data); + if($res !== false){ + return $this->success('修改成功','/official_subscribe_info'); + }else{ + return $this->error('修改失败'); + } + } + + /** + * Build a form here. + */ + public function form() + { + $data = Redis::hgetall(RedisKey::OFFICIAL_SUBSCRIBE_INFO); + + $subscribed = isset($data['subscribed']) ? json_decode( $data['subscribed'],true):[]; + $notSubscribed = isset($data['not_subscribed']) ? json_decode( $data['not_subscribed'],true):[]; + + $this->column(6,function(Form $form) use($subscribed){ + $this->display( 'setting', ' ')->value('已关注公众号提示信息设置'); + $this->text('head_title','顶部标题')->required()->value($subscribed['head_title']); + $this->image('logo','公众号logo连接')->required()->autoUpload()->saveFullUrl() + ->customFormat(function() use($subscribed){ + return [$subscribed['logo']]; + }); + $this->text('title','公众号名称或标题')->required()->value($subscribed['title']); + $this->text('sub_title','副标题,提示语')->required()->value($subscribed['sub_title']); + $this->text('redirect_url','跳转连接')->required()->value($subscribed['redirect_url']); + }); + + $this->column(6,function(Form $form) use($notSubscribed){ + $this->display( 'setting', ' ')->value('未关注公众号提示信息设置'); + $this->text('not_head_title','顶部标题')->required()->value($notSubscribed['head_title']); + $this->image('not_logo','公众号logo连接')->required()->autoUpload()->saveFullUrl() + ->customFormat(function() use($notSubscribed){ + return [$notSubscribed['logo']]; + }); + $this->text('not_title','公众号名称或标题')->required()->value($notSubscribed['title']); + $this->text('not_sub_title','副标题,提示语')->required()->value($notSubscribed['sub_title']); + $this->text('not_redirect_url','跳转连接')->required()->value($notSubscribed['redirect_url']); + }); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +} diff --git a/app/Admin/Forms/v3/ShareCardCreateForm.php b/app/Admin/Forms/v3/ShareCardCreateForm.php new file mode 100644 index 0000000..9188845 --- /dev/null +++ b/app/Admin/Forms/v3/ShareCardCreateForm.php @@ -0,0 +1,61 @@ + $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','标题')->required(); + $this->image('image','图片')->required()->autoUpload()->saveFullUrl()->width(3); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +} diff --git a/app/Admin/Forms/v3/ShareCardEditForm.php b/app/Admin/Forms/v3/ShareCardEditForm.php new file mode 100644 index 0000000..0fb9dac --- /dev/null +++ b/app/Admin/Forms/v3/ShareCardEditForm.php @@ -0,0 +1,69 @@ + $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','标题')->required()->value($title); + $this->image('image','图片')->required()->autoUpload() + ->customFormat(function() use($image){ + return [$image]; + }) + ->saveFullUrl()->width(3); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +} diff --git a/app/Admin/Repositories/v3/ShareCardSetting.php b/app/Admin/Repositories/v3/ShareCardSetting.php new file mode 100644 index 0000000..a8efa38 --- /dev/null +++ b/app/Admin/Repositories/v3/ShareCardSetting.php @@ -0,0 +1,25 @@ +makePaginator( + count($data), + $data + ); + } + +} \ No newline at end of file diff --git a/app/Admin/routes.php b/app/Admin/routes.php index f6d27c8..52034cc 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -99,5 +99,8 @@ Route::group([ // 活动商品设置 $router->get('/goods_activity_setting', 'v3\GoodsActivityController@ActivitySettingForm'); -}); + // 分享小卡片设置 + $router->resource('/share_card_setting', 'v3\ShareCardSettingController'); + // 关注公众号设置 + $router->any('/official_subscribe_info', 'v3\SystemConfigController@OfficialSubscribeInfoSettingForm');}); diff --git a/app/Libs/Redis/RedisKey.php b/app/Libs/Redis/RedisKey.php index 19e221e..eb70c60 100644 --- a/app/Libs/Redis/RedisKey.php +++ b/app/Libs/Redis/RedisKey.php @@ -9,4 +9,8 @@ class RedisKey const ACTIVITY_TYPE_LIMIT_NUMS = 'activity_type_limit_nums'; const ACTIVITY_TYPE_SETTING = 'activity_type_setting'; + + const PROGRAM_SHARE_CARD = 'program_share_card'; + + const OFFICIAL_SUBSCRIBE_INFO = 'official:subscribe_info'; } diff --git a/resources/lang/zh-CN/share-card-setting.php b/resources/lang/zh-CN/share-card-setting.php new file mode 100644 index 0000000..14f787e --- /dev/null +++ b/resources/lang/zh-CN/share-card-setting.php @@ -0,0 +1,15 @@ + [ + 'ShareCardSetting' => '分享设置', + 'shareCardSetting' => '分享设置', + 'share_card_setting' => '分享设置', + ], + 'fields' => [ + 'title' => '标题', + 'image' => '图片', + 'share_card' => ' ' + ], + 'options' => [ + ], +]; diff --git a/resources/lang/zh-CN/system-config.php b/resources/lang/zh-CN/system-config.php index 1dea41a..8c227d1 100644 --- a/resources/lang/zh-CN/system-config.php +++ b/resources/lang/zh-CN/system-config.php @@ -14,7 +14,8 @@ return [ 'desc' => '配置简介', 'sort' => '排序', 'status' => '状态', - 'status_text' => '状态' + 'status_text' => '状态', + 'share_card' => ' ' ], 'options' => [ ],