You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
6.7 KiB
198 lines
6.7 KiB
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Admin\Repositories\Store;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Show;
|
|
use Dcat\Admin\Controllers\AdminController;
|
|
use App\Models\StoreType as StoreTypeModel;
|
|
use App\Models\LanzuMmInfo as MminfoModel;
|
|
use App\Models\ImsCjdcMarket as MarketModel;
|
|
use App\Admin\Common\StoreQRCode;
|
|
use App\Admin\Repositories\StoreType;
|
|
use App\Models\Store as StoreModel;
|
|
use App\Models\ImsCjdcUser as UserModel;
|
|
use App\Models\Category as CategoryModel;
|
|
|
|
class StoreController extends AdminController
|
|
{
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
return Grid::make(new Store(), function (Grid $grid) {
|
|
$grid->model()->orderBy('id','desc');
|
|
$grid->id->sortable();
|
|
$grid->logo_url->image('',50);
|
|
$grid->name;
|
|
|
|
$grid->market_id->display(function ($marketId){
|
|
$market = MarketModel::getMarketInfo($marketId,'name');
|
|
return empty($market) ? '' : $market->name;
|
|
});
|
|
$grid->mm_user_id->display(function ($mmUserId){
|
|
$mmUser = MminfoModel::getMmInfo($mmUserId,'name');
|
|
return empty($mmUser) ? '' : $mmUser->name;
|
|
});
|
|
$grid->store_applet_img->image('',50);
|
|
$grid->cash_code_img->image('',50);
|
|
|
|
$grid->sort->sortable();
|
|
$grid->is_rest->switch();
|
|
$grid->is_open->switch();
|
|
|
|
// 搜索
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->equal('id');
|
|
});
|
|
|
|
// 每页10条
|
|
$grid->paginate(10);
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a show builder.
|
|
*
|
|
* @param mixed $id
|
|
*
|
|
* @return Show
|
|
*/
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, new Store(), function (Show $show) {
|
|
$show->id;
|
|
$show->mm_user_id;
|
|
$show->market_id;
|
|
$show->name;
|
|
$show->address;
|
|
|
|
$show->tel;
|
|
$show->announcement;
|
|
$show->is_rest;
|
|
$show->logo;
|
|
$show->details;
|
|
$show->coordinates;
|
|
$show->business_license;
|
|
$show->store_type_id;
|
|
$show->is_open;
|
|
$show->sort;
|
|
$show->user_id;
|
|
$show->environment;
|
|
$show->expire_time;
|
|
$show->zm_img;
|
|
$show->fm_img;
|
|
$show->link_name;
|
|
$show->link_tel;
|
|
$show->admin_id;
|
|
$show->loudspeaker_imei;
|
|
|
|
$show->time;
|
|
$show->time2;
|
|
$show->time3;
|
|
$show->time4;
|
|
|
|
$show->created_at;
|
|
$show->updated_at;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
*
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(new Store(), function (Form $form) {
|
|
// 查询市场经理
|
|
$mmList = MminfoModel::getMmInfoArray();
|
|
// 查询市场
|
|
$marketList = MarketModel::getMarket();
|
|
// 查询一级分类
|
|
$storeTypeList = CategoryModel::getCategoryArray([['parent_id','=',0]]);
|
|
// 用户
|
|
$userList = UserModel::getUserArray();
|
|
|
|
$form->column(6, function (Form $form) use($mmList,$marketList,$storeTypeList){
|
|
$form->hidden('id');
|
|
$form->select('mm_user_id')->options($mmList);
|
|
$form->select('market_id')->required()->options($marketList);
|
|
$form->select('store_type_id')->required()->options($storeTypeList);
|
|
$form->text('name')->required()->maxLength(50);
|
|
$form->image('logo')->required();
|
|
$form->mobile('tel');
|
|
$form->text('link_name')->required();
|
|
$form->mobile('link_tel')->required();
|
|
$form->number('sort');
|
|
$form->switch('is_rest')
|
|
->customFormat(function ($v) {
|
|
return $v == '休息' ? 1 : 0;
|
|
})
|
|
->saving(function ($v) {
|
|
return $v;
|
|
});
|
|
$form->switch('is_open')
|
|
->customFormat(function ($v) {
|
|
return $v == '开启' ? 1 : 0;
|
|
})
|
|
->saving(function ($v) {
|
|
return $v;
|
|
})->default(1);
|
|
$form->text('address');
|
|
});
|
|
$form->column(6, function (Form $form) {
|
|
$form->image('business_license')->required();
|
|
$form->image('zm_img')->required();
|
|
$form->image('fm_img')->required();
|
|
$form->text('admin_id')->required();/*需要优化 一个用户只能绑定一家店铺*/
|
|
$form->text('user_id')->required();/*需要优化 一个用户只能绑定一家店铺*/
|
|
$form->timeRange('time1','time2','营业时间段一')->required();
|
|
$form->timeRange('time3','time4','营业时间段二');
|
|
});
|
|
$form->column(12, function (Form $form) {
|
|
$form->map('lat','lng','地址');
|
|
$form->textarea('introduction')->required();
|
|
$form->textarea('announcement');
|
|
$form->multipleImage('environment');
|
|
});
|
|
|
|
// $form->text('coordinates')->width(4)
|
|
// ->placeholder('输入 经纬度,如: 108.281552,22.83731')
|
|
// ->help("通过网址 <a href='https://lbs.amap.com/console/show/picker' target='_blank'>https://lbs.amap.com/console/show/picker</a> 获取经纬度");
|
|
|
|
$form->saved(function (Form $form){
|
|
$id = $form->getKey();
|
|
// $form->isCreating() &&
|
|
if(!empty($id)){
|
|
$qrCode = new StoreQRCode();
|
|
// 生成小程序码 店铺
|
|
$sRes = $qrCode->SetStoreWeChatCode($id);
|
|
|
|
// 生产小程序码 收银
|
|
$pRes = $qrCode->SetPayWeChatCode($id);
|
|
|
|
// 保存图片
|
|
$store = StoreModel::find($id);
|
|
$store->store_applet_img = $sRes['status'] ? $sRes['path'] : '';
|
|
$store->cash_code_img = $pRes['status'] ? $pRes['path'] : '';;
|
|
$store->save();
|
|
|
|
// 剪裁图片
|
|
// $form->image('cash_code_img')->crop(270, 270, [5, 5]);
|
|
}
|
|
});
|
|
|
|
$form->disableResetButton();
|
|
$form->disableViewCheck();
|
|
$form->disableEditingCheck();
|
|
$form->disableCreatingCheck();
|
|
});
|
|
}
|
|
|
|
}
|