lanzu_qinsheng 5 years ago
parent
commit
849964acf7
  1. 40
      app/Admin/Actions/Grid/v3/StoreChangeMarket.php
  2. 8
      app/Admin/Controllers/v3/GoodsActivityController.php
  3. 8
      app/Admin/Controllers/v3/GoodsController.php
  4. 18
      app/Admin/Controllers/v3/StoreController.php
  5. 3
      app/Admin/Forms/v3/GoodsActivityCopyForm.php
  6. 5
      app/Admin/Forms/v3/GoodsCopyForm.php
  7. 15
      app/Admin/Forms/v3/GoodsImageForm.php
  8. 76
      app/Admin/Forms/v3/StoreChangeMarketForm.php

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

@ -0,0 +1,40 @@
<?php
namespace App\Admin\Actions\Grid\v3;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
use App\Admin\Forms\v3\StoreChangeMarketForm;
class StoreChangeMarket extends RowAction
{
/**
* @return string
*/
protected $title = ' 换市场 ';
public function render()
{
$id = $this->getKey();
$modal = Modal::make()
->xl()
->title($this->title)
->body(StoreChangeMarketForm::make()->setKey($id)->payload([
'id'=>$this->row->id,
'name'=>$this->row->name,
'market_id'=>$this->row->market_id
]))
->button($this->title);
return $modal;
}
public function parameters()
{
return [
];
}
}

8
app/Admin/Controllers/v3/GoodsActivityController.php

@ -196,9 +196,9 @@ class GoodsActivityController extends AdminController
$form->select('store_id')->required()->options($storeList);
$form->text('name')->required()->maxLength(20);
if($form->isCreating()){
$form->image('cover_img')->autoUpload()->retainable()->required();
$form->image('cover_img')->uniqueName()->autoUpload()->retainable()->required();
}else{
$form->image('cover_img')->autoUpload()->required();
$form->image('cover_img')->uniqueName()->autoUpload()->required();
}
$form->select('type')->options(GoodsActivityModel::$_TYPE)->default('flash_sale');
$form->datetime('expire_time')->required()->format('YYYY-MM-DD HH:mm:ss')->rules('after:now',['after'=>'活动结束时间必须大于当前时间!'])->customFormat(function ($v) {
@ -220,13 +220,13 @@ class GoodsActivityController extends AdminController
});
$form->column(12, function (Form $form) {
$form->hasMany('image_banners', function (Form\NestedForm $form) {
$form->image('path')->autoUpload()->width(2);
$form->image('path')->uniqueName()->autoUpload()->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(1)->default(1);
})->required();
$form->divider();
$form->hasMany('video_banners', function (Form\NestedForm $form) {
$form->file('path')->autoUpload()->width(2);
$form->file('path')->uniqueName()->autoUpload()->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(2)->default(2);
});

8
app/Admin/Controllers/v3/GoodsController.php

@ -220,9 +220,9 @@ class GoodsController extends AdminController
$form->select('store_id')->required()->options($storeList);
$form->text('name')->required()->maxLength(20);
if($form->isCreating()){
$form->image('cover_img')->autoUpload()->retainable()->required();
$form->image('cover_img')->uniqueName()->autoUpload()->retainable()->required();
}else{
$form->image('cover_img')->autoUpload()->required();
$form->image('cover_img')->uniqueName()->autoUpload()->required();
}
$form->number('sort');
});
@ -238,13 +238,13 @@ class GoodsController extends AdminController
});
$form->column(12, function (Form $form) {
$form->hasMany('image_banners', function (Form\NestedForm $form) {
$form->image('path')->autoUpload()->required()->width(2);
$form->image('path')->uniqueName()->autoUpload()->required()->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(1)->default(1);
})->required();
$form->divider();
$form->hasMany('video_banners', function (Form\NestedForm $form) {
$form->file('path')->autoUpload()->width(2);
$form->file('path')->uniqueName()->autoUpload()->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(2)->default(2);
});

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

@ -2,6 +2,7 @@
namespace App\Admin\Controllers\v3;
use App\Admin\Actions\Grid\v3\StoreChangeMarket;
use App\Admin\Common\Auth;
use App\Admin\Repositories\v3\Store;
use App\Models\LanzuMmInfo;
@ -97,7 +98,13 @@ class StoreController extends AdminController
$grid->is_operation->switch();
$grid->is_open->switch();
$grid->actions([new StoreSetTime()]);
$actions = [
new StoreSetTime()
];
if($this->storeChangeMarketCan()){
$actions[] = new StoreChangeMarket();
}
$grid->actions($actions);
// 搜索
$grid->filter(function (Grid\Filter $filter) use($marketList){
$filter->equal('id');
@ -422,4 +429,13 @@ class StoreController extends AdminController
$user = Admin::user();
return $user->can('store_balance');
}
/**
* @return bool
*/
protected function storeChangeMarketCan(): bool
{
$user = Admin::user();
return $user->can('store_change_market');
}
}

3
app/Admin/Forms/v3/GoodsActivityCopyForm.php

@ -84,9 +84,8 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable
if($model->save() && !empty($goodsBanners)){
$goodsId = $model->getKey();
$banners = [];
foreach($goodsBanners as $kb => $vb){
$banners[] = [
$banners = [
'goods_id' => $goodsId,
'type' => $vb->type,
'path' => $vb->path,

5
app/Admin/Forms/v3/GoodsCopyForm.php

@ -24,7 +24,7 @@ class GoodsCopyForm extends Form
// 获取外部传递参数
$goodsId = $input['goods_id'];
$storeIds= $input['store_ids'];
$goods = GoodsModel::find($goodsId);
$goodsBanners = GoodsBannerModel::where('goods_id',$goodsId)->get();
$markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id');
@ -61,9 +61,8 @@ class GoodsCopyForm extends Form
if($model->save() && !empty($goodsBanners)){
$goodsId = $model->getKey();
$banners = [];
foreach($goodsBanners as $kb => $vb){
$banners[] = [
$banners = [
'goods_id' => $goodsId,
'type' => $vb->type,
'path' => $vb->path,

15
app/Admin/Forms/v3/GoodsImageForm.php

@ -31,6 +31,13 @@ class GoodsImageForm extends Form implements LazyRenderable
$bannerImg= $input['img_banner'];
if($goodsId > 0 && !empty($coverImg)){
$lastLen = strrpos($coverImg,',');
if($lastLen != false){
$coverImg = substr($coverImg,$lastLen+1);
}
if(strlen($coverImg) > 200){
return $this->error('上传图片名称过长');
}
$data = ['cover_img' => $coverImg];
$res1 = GoodsModel::where('id',$goodsId)->update($data);
}
@ -63,15 +70,13 @@ class GoodsImageForm extends Form implements LazyRenderable
$goodName = $this->payload['name'] ?? '';
$coverImg = $this->payload['cover_img'] ?? '';
$this->search = $this->payload['search'] ?? '';
// $goods = GoodsModel::select('name','cover_img')->find($id);
// $goodName = empty($goods->name)?'':$goods->name;
// $coverImg = empty($goods->cover_img) ? '':$goods->cover_img;
$this->hidden('goods_id')->value($id);
$this->display('name','商品名称')->value($goodName);
$this->image('cover_img','封面图')->customFormat(function($cover_img) use($coverImg){
$this->image('cover_img','封面图')->uniqueName()->retainable()->customFormat(function() use($coverImg){
return [$coverImg];
})->autoUpload();
$this->multipleImage('img_banner','轮播图')->customFormat(function($img_banner) use($id){
$this->multipleImage('img_banner','轮播图')->uniqueName()->customFormat(function() use($id){
if(!$id){
return ;
}

76
app/Admin/Forms/v3/StoreChangeMarketForm.php

@ -0,0 +1,76 @@
<?php
namespace App\Admin\Forms\v3;
use Dcat\Admin\Widgets\Form;
use Symfony\Component\HttpFoundation\Response;
use App\Models\v3\Store as StoreModel;
use App\Models\v3\Market as MarketModel;
use App\Models\v3\Goods as GoodsModel;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
class StoreChangeMarketForm extends Form implements LazyRenderable
{
use LazyWidget;
/**
* Handle the form request.
*
* @param array $input
*
* @return Response
*/
public function handle(array $input)
{
// 获取外部传递参数
$id = $input['id'];
$marketId = $input['market_id'];
$store = StoreModel::find($id);
if(empty($store)){
return $this->error('店铺不存在!');
}
$goods = GoodsModel::select('id')->where('store_id',$id)->first();
if($goods){
return $this->error('店铺存在商品,不可更换市场!');
}
if(!empty($marketId)){
$store->market_id = $marketId;
}
if($store->save()){
return $this->success('修改成功!');
}
return $this->error('未做任何修改或者修改失败!');
}
/**
* Build a form here.
*/
public function form()
{
$id = $this->payload['id'] ?? 0;
$name = $this->payload['name'] ?? '';
$marketId = $this->payload['market_id'] ?? 0;
$marketList = MarketModel::getMarketArray();
unset($marketList[$marketId]);
$this->hidden('id')->value($id);
$this->display('name','店铺')->value($name);
$this->select('market_id','所属市场')->options($marketList)->required();
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
return [];
}
}
Loading…
Cancel
Save