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.
128 lines
3.8 KiB
128 lines
3.8 KiB
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Admin\Repositories\LanzuServiceSpeaker;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Show;
|
|
use Dcat\Admin\Controllers\AdminController;
|
|
use App\Models\v3\Market as MarketModel;
|
|
use App\Models\v3\Store as StoreModel;
|
|
use Illuminate\Http\Request;
|
|
|
|
class LanzuServiceSpeakerController extends AdminController
|
|
{
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
|
|
protected $title = '播报机管理';
|
|
|
|
protected function grid()
|
|
{
|
|
return Grid::make(new LanzuServiceSpeaker(['store']), function (Grid $grid) {
|
|
|
|
$grid->model()->orderBy('updated_at', 'desc');
|
|
$grid->id->sortable();
|
|
$grid->column('device_name', '设备编号');
|
|
$grid->column('store_id', '商户ID');
|
|
$grid->column('store.name', '商户名');
|
|
$grid->column('is_bind', '是否绑定')->switch();
|
|
// $grid->column('is_bind')
|
|
// ->using([0 => '未绑定', 1 => '已绑定'])
|
|
// ->label([0 => 'danger', 1 => 'success']);
|
|
|
|
$grid->column('bind_time_text', '绑定时间')->sortable();
|
|
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$storeList = StoreModel::getStoreArray();
|
|
$filter->equal('id');
|
|
$filter->like('device_name', '设备编号');
|
|
$filter->equal('store_id','商户')->select($storeList);
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a show builder.
|
|
*
|
|
* @param mixed $id
|
|
*
|
|
* @return Show
|
|
*/
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, new LanzuServiceSpeaker(), function (Show $show) {
|
|
$show->id;
|
|
$show->created_at->as(function ($time) {
|
|
if ($time) {
|
|
return date('Y-m-d H:i', $time);
|
|
} else {
|
|
return '-';
|
|
}
|
|
|
|
});
|
|
$show->updated_at->as(function ($time) {
|
|
if ($time) {
|
|
return date('Y-m-d H:i', $time);
|
|
} else {
|
|
return '-';
|
|
}
|
|
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
*
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(new LanzuServiceSpeaker(), function (Form $form) {
|
|
$form->hidden('id');
|
|
$form->text("device_name", '设备编号')->required();
|
|
//$form->number("store_id",'商户ID')->required();
|
|
// $form->select('market_id','所在市场')->options('/api/getAllMarket');
|
|
|
|
$storeList = StoreModel::getStoreArray();
|
|
$form->select('store_id', '商户')->options($storeList);
|
|
$form->switch('is_bind', '是否绑定')
|
|
->customFormat(function ($v) {
|
|
return $v == 1 ? 1 : 0;
|
|
})
|
|
->saving(function ($v) {
|
|
return $v == 1 ? 1 : 0;
|
|
});
|
|
//$form->image("device_name")->disk('oss');
|
|
|
|
$form->disableResetButton();
|
|
$form->disableViewCheck();
|
|
$form->disableEditingCheck();
|
|
$form->disableCreatingCheck();
|
|
});
|
|
}
|
|
|
|
public function getAllMarkets()
|
|
{
|
|
$data = [];
|
|
$markets = MarketModel::all();
|
|
foreach ($markets as $market) {
|
|
$item = [];
|
|
$item['id'] = $market->id;
|
|
$item['text'] = $market->name;
|
|
$data[] = $item;
|
|
}
|
|
return response()->json($data);
|
|
}
|
|
|
|
public function getStores(Request $request)
|
|
{
|
|
$q = $request->get('q');
|
|
return StoreModel::where('name', 'like', "%$q%")->paginate(null, ['id', 'name as text']);
|
|
}
|
|
}
|