链街Dcat后台
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.
 
 
 
 

119 lines
3.4 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\ImsCjdcMarket;
use App\Models\ImsCjdcStore;
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')
->using([0 => '未绑定', 1 => '已绑定'])
->label([0 => 'danger', 1 => 'success']);
$grid->created_at;
$grid->updated_at->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
$filter->equal('store_id');
});
});
}
/**
* 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->display('id');
$form->text("device_name", '设备编号')->required();
//$form->number("store_id",'商户ID')->required();
// $form->select('market_id','所在市场')->options('/api/getAllMarket');
$form->select('store_id', '商户')->options(function ($id) {
$store = ImsCjdcStore::find($id);
if ($store) {
return [$store->id => $store->name];
}
})->ajax('/api/stores');
$form->switch('is_bind', '是否绑定');
//$form->image("device_name")->disk('oss');
$form->display('created_at');
$form->display('updated_at');
});
}
public function getAllMarkets()
{
$data = [];
$markets = ImsCjdcMarket::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 ImsCjdcStore::where('name', 'like', "%$q%")->paginate(null, ['id', 'name as text']);
}
}