Browse Source

分类绑定到小程序首页导航

master
liangyuyan 5 years ago
parent
commit
12c47091c4
  1. 41
      app/Admin/Actions/Tree/CategoryTie.php
  2. 18
      app/Admin/Controllers/v3/CategoryController.php
  3. 34
      app/Admin/Extensions/TypeCorrelationBind.php
  4. 55
      app/Admin/Forms/CategoryTieForm.php
  5. 7
      app/Admin/routes.php
  6. 3
      app/Models/v3/Category.php
  7. 13
      resources/lang/zh-CN/category-tie.php

41
app/Admin/Actions/Tree/CategoryTie.php

@ -13,10 +13,11 @@ use App\Models\v3\Category as CategoryModel;
class CategoryTie extends AbstractTool class CategoryTie extends AbstractTool
{ {
/** /**
* @return string * @return string
*/ */
protected $title = '绑定分类到首页';
protected $title = '绑定分类到首页导航';
/** /**
* Handle the action request. * Handle the action request.
@ -28,17 +29,17 @@ class CategoryTie extends AbstractTool
public function handle(Request $request) public function handle(Request $request)
{ {
return $this->response() return $this->response()
->success('Processed successfully.')
->redirect('/category');
->success('跳转到绑定页面' )
->redirect('/categoryTie');
} }
/** /**
* @return string|void * @return string|void
*/ */
public function href()
{
// public function href()
// {
// return admin_url('category/tie'); // return admin_url('category/tie');
}
// }
/** /**
* @return string|array|void * @return string|array|void
@ -48,20 +49,20 @@ class CategoryTie extends AbstractTool
// return ['Confirm?', 'contents']; // return ['Confirm?', 'contents'];
} }
/**
* 添加JS
*
* @return string
*/
protected function script()
{
return <<<JS
$('.category-tie-row').on('click', function () {
// Your code.
window.location.href ='/admin/category/tie';
});
JS;
}
// protected function actionScript()
// {
// return <<<JS
// function (data, target, action) {
// console.log('发起请求之前', data, target, action);
// // return false; 在这里return false可以终止执行后面的操作
// // 更改传递到接口的主键值
// action.options.key = 123;
// }
// JS;
// }
/** /**
* @param Model|Authenticatable|HasPermissions|null $user * @param Model|Authenticatable|HasPermissions|null $user

18
app/Admin/Controllers/v3/CategoryController.php

@ -12,6 +12,7 @@ use Dcat\Admin\Controllers\AdminController;
use Dcat\Admin\Show; use Dcat\Admin\Show;
use Dcat\Admin\Widgets\Card; use Dcat\Admin\Widgets\Card;
use App\Admin\Forms\CategoryTieForm; use App\Admin\Forms\CategoryTieForm;
use App\Libs\SsdbClient;
class CategoryController extends AdminController class CategoryController extends AdminController
{ {
@ -23,13 +24,16 @@ class CategoryController extends AdminController
$tree->branch(function ($branch) { $tree->branch(function ($branch) {
// 查询分类ssdb // 查询分类ssdb
$ssdb = new SsdbClient();
$category = $ssdb->client()->hgetall('applet_index_category');
$select = array_keys($category);
$src = $branch['cover_img_url']; $src = $branch['cover_img_url'];
$logo = "<img src='$src' style='margin-left: 20px; max-width:35px;max-height:35px' class='img'/>"; $logo = "<img src='$src' style='margin-left: 20px; max-width:35px;max-height:35px' class='img'/>";
$actions = ''; $actions = '';
$actions = ($branch['parent_id'] == 0) ?'<a href="/admin/category/'.$branch['id'].'/tie" style="margin-left: 20px;">已绑定</a>':$actions;
$actions = (in_array($branch['id'],$select)) ?'<a href="/admin/category/'.$branch['id'].'/tie" style="margin-left: 20px;">已绑定</a>':$actions;
return "{$branch['id']} - {$branch['title']} $logo $actions"; return "{$branch['id']} - {$branch['title']} $logo $actions";
}); });
$tree->tools(function (Tree\Tools $tools) { $tree->tools(function (Tree\Tools $tools) {
@ -43,14 +47,14 @@ class CategoryController extends AdminController
public function form() public function form()
{ {
return Form::make(new Category(),function (Form $form){ return Form::make(new Category(),function (Form $form){
// 只查一级 // 只查一级
$parentList = Category::getCategoryArray([['parent_id','=',0]],[0=>'顶级']); $parentList = Category::getCategoryArray([['parent_id','=',0]],[0=>'顶级']);
$form->select('parent_id')->default(0)->options($parentList); $form->select('parent_id')->default(0)->options($parentList);
$form->text('title'); $form->text('title');
$form->image('cover_img'); $form->image('cover_img');
$form->number('sort'); $form->number('sort');
$form->disableResetButton(); $form->disableResetButton();
@ -60,13 +64,11 @@ class CategoryController extends AdminController
}); });
} }
public function CategoryTieForm(Content $content)
public function CategoryTieForms(Content $content)
{ {
return $content return $content
->title('绑定分类到首页') ->title('绑定分类到首页')
->body(new Card(new CategoryTieForm()), function (Form $form) {
});
->body(new Card(new CategoryTieForm()));
} }
/** /**

34
app/Admin/Extensions/TypeCorrelationBind.php

@ -1,34 +0,0 @@
<?php
namespace App\Admin\Extensions;
use Dcat\Admin\Grid\RowAction;
class TypeCorrelationBind extends RowAction
{
public function title()
{
return '绑定';
}
/**
* 添加JS
*
* @return string
*/
protected function script()
{
return <<<JS
$('.type-bind-row').on('click', function () {
// Your code.
window.location.href ='/admin/coupon/TieForm';
});
JS;
}
public function html()
{
$this->setHtmlAttribute(['class' => 'coupon-edit-row']);
return parent::html();
}
}

55
app/Admin/Forms/CategoryTieForm.php

@ -5,12 +5,11 @@ namespace App\Admin\Forms;
use Dcat\Admin\Widgets\Form; use Dcat\Admin\Widgets\Form;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use App\Libs\SsdbClient; use App\Libs\SsdbClient;
use App\Models\v3\Category as CategoryModel;
class CategoryTieForm extends Form class CategoryTieForm extends Form
{ {
/**
*
*/
protected $ssdb; protected $ssdb;
/** /**
@ -22,19 +21,24 @@ class CategoryTieForm extends Form
*/ */
public function handle(array $input) public function handle(array $input)
{ {
$ids = $input['category_ids'];
$category = CategoryModel::select('id','title','cover_img')->whereIn('id',$ids)->get();
$data = [];
if(!empty($category)){
foreach ($category as $key => $value){
$data[$value->id] = json_encode([
'icon' => $value->cover_img,
'name' => $value->title
]);
}
}
$data = [
'activity' => $input['activity'],
'forward' => $input['forward'],
'repay' => $input['repay'],
];
$coupon = $this->ssdb->client()->multi_hset('coupon_rebate_activity',$data);
if($coupon === false){
$category = $this->ssdb->client()->multi_hset('applet_index_category',$data);
if($category === false){
return $this->error('修改失败'); return $this->error('修改失败');
} }
return $this->success('修改成功', '/couponTie');
return $this->success('修改成功', '/category');
} }
/** /**
@ -42,19 +46,14 @@ class CategoryTieForm extends Form
*/ */
public function form() public function form()
{ {
// $this->ssdb = new SsdbClient();
// $coupon = $this->ssdb->client()->hgetall('coupon_rebate_activity');
// if(empty($coupon)){
// $coupon = [
// 'activity'=> 0,
// 'forward'=> '',
// 'repay' => ''
// ];
// }
$this->ssdb = new SsdbClient();
$category = $this->ssdb->client()->hgetall('applet_index_category');
$select = array_keys($category);
// 只查一级
$parentList = CategoryModel::where('parent_id',0)->pluck('title','id')->toArray();
$this->text('id')->required();
$this->image('cover_img')->required();
$this->text('title')->required();
$this->multipleSelect('category_ids','选择分类')->required()->options($parentList)->value($select)->default($select);
} }
/** /**
@ -64,11 +63,7 @@ class CategoryTieForm extends Form
*/ */
public function default() public function default()
{ {
return [
'activity' => '2',
'forward' => '',
'repay' => '',
];
return [];
} }
} }

7
app/Admin/routes.php

@ -12,8 +12,8 @@ Route::group([
'middleware' => config('admin.route.middleware'), 'middleware' => config('admin.route.middleware'),
], function (Router $router) { ], function (Router $router) {
//$router->get('/', 'HomeController@index');
$router->resource('/', 'LanzuCsInfoController');
$router->get('/', 'HomeController@index');
//$router->resource('/', 'LanzuCsInfoController');
$router->resource('/speaker', 'LanzuServiceSpeakerController'); $router->resource('/speaker', 'LanzuServiceSpeakerController');
$router->resource('/mp', 'LanzuMpInfoController'); $router->resource('/mp', 'LanzuMpInfoController');
$router->any('/mp_data', 'LanzuMpInfoController@showData'); $router->any('/mp_data', 'LanzuMpInfoController@showData');
@ -46,7 +46,7 @@ Route::group([
// 分类 // 分类
$router->resource('/category', 'v3\CategoryController'); $router->resource('/category', 'v3\CategoryController');
$router->get('/category/tie', 'v3\CategoryController@CategoryTieForm');
$router->get('/categoryTie', 'v3\CategoryController@CategoryTieForms');
// 店铺 // 店铺
$router->resource('/store', 'v3\StoreController'); $router->resource('/store', 'v3\StoreController');
@ -54,5 +54,6 @@ Route::group([
$router->resource('/goods', 'v3\GoodsController'); $router->resource('/goods', 'v3\GoodsController');
// banner // banner
$router->resource('/banner', 'v3\BannerController'); $router->resource('/banner', 'v3\BannerController');
$router->any('/test', 'Test@test');
}); });

3
app/Models/v3/Category.php

@ -67,7 +67,7 @@ class Category extends Model
return $array; return $array;
} }
/** /**
* 处理旧图片 * 处理旧图片
* @param $value * @param $value
@ -81,4 +81,5 @@ class Category extends Model
return $value; return $value;
} }
} }
} }

13
resources/lang/zh-CN/category-tie.php

@ -0,0 +1,13 @@
<?php
return [
'labels' => [
'CategoryTie' => '绑定',
'categoryTie' => '绑定',
],
'fields' => [
'category_ids' => '选择分类',
],
'options' => [
'actions' => '操作'
],
];
Loading…
Cancel
Save