doorOperation('rozl8eri3NwjyMrG6gYT000000 ', 0); // $res = (new DeviceServer())->sendMsg(868626044260472 ,$rule); // $lock_info = LockInfo::where(['status'=>1,'send_status'=>1])->orderBy('box_type','asc')->get()->GroupBy('device_id'); dd($lock_info->toArray()); // $res = (new DeviceServer())->getProperty('rozl8eri3NwjyMrG6gYT000000 '); // $res = (new DeviceServer())->getDeviceStatus('rozl8eri3NwjyMrG6gYT000000 ');//设备状态 // $res = (new DeviceServer())->switchDevice('rozl8eri3NwjyMrG6gYT000000 ',1);//启用禁用 // dd($res); $grid->disableCreateButton(false); $device_id = request('device_id'); //Admin::script("$('input').combodate({ // minYear: 1975, // maxYear: 2013, // minuteStep: 10 //}); "); if(!empty($device_id)){ $grid->model()->where('device_id',$device_id) ->orderBy('device_id','asc') ->orderBy('box_type','asc') ->orderBy('open_time','asc'); } $grid->column('device_id','设备')->display(function ($w){ return DeviceInfo::where(['id'=>$w])->value('device_name'); }); $grid->column('box_type', __('锁位名称'))->display(function ($t){ $box_type = [1=>'一号箱',2=>'二号箱',3=>'三号箱',4=>'四号箱',5=>'五号箱',6=>'六号箱']; if(empty($t)) return '未知'; return $box_type[$t]; }); $grid->column('time_type', __('时间段'))->editable('select',[1=>'上午',2=>'下午']); $grid->column('open_time', __('开门时间'))->editable('time'); $grid->column('close_time', __('关门时间'))->editable('time2'); $grid->column('start_time', __('启动时间'))->editable('datetime'); $grid->column('type', __('类型'))->using(LockInfo::get_type()); $grid->column('value','时间')->display(function ($is){ if($this->type !== 3){ return LockInfo::get_type()[$this->type]; } else { $str = ''; foreach ($is as $i){ $str .=LockInfo::week_day()[$i].','; } return $str; } }); $states= [ 'off'=>['text'=>'禁用','value'=>0,'color'=>'danger'], 'on'=>['text'=>'启用','value'=>1,'color'=>'success'] ]; $grid->column('status', __('状态'))->switch($states); $grid->filter(function ($fliter){ $fliter->where(function($query){ $query->whereHas('boxs',function($query){ $query->where('name','like',"%{$this->input}%"); }); },'盒子名称'); $fliter->equal('status','状态')->select(['禁用','启用']); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(LockInfo::findOrFail($id)); $show->field('id', __('Id')); $show->field('device_id', __('Device id')); $show->field('lock_key', __('Lock key')); $show->field('lock_name', __('Lock name')); $show->field('open_time', __('Open time')); $show->field('close_time', __('Close time')); $show->field('start_time', __('Start time')); $show->field('rules', __('Rules')); $show->field('status', __('Status')); $show->field('created_at', __('Created at')); $show->field('updated_at', __('Updated at')); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new LockInfo()); if($form->isEditing()){ $form->display('devices.device_name', __('设备')); $form->select('box_type', __('锁位'))->options(function ($w){ $box_type = [1=>'一号箱',2=>'二号箱',3=>'三号箱',4=>'四号箱',5=>'五号箱',6=>'六号箱']; if($w == 1){ array_pop($box_type); } return $box_type; }); } else { $form->select('device_id', __('设备'))->options(function (){ return DeviceInfo::pluck('device_name','id')->toArray(); })->load('box_type','/admin/get_box'); $form->select('box_type', __('锁位'))->options(function (){ $box_type = [1=>'一号箱',2=>'二号箱',3=>'三号箱',4=>'四号箱',5=>'五号箱']; return $box_type; }); } $form->select('time_type','时间段')->options([1=>'上午',2=>'下午']); $form->datetime('open_time', __('开门时间'))->format("HH:mm")->rules('required',['required'=>'开门时间必须']); $form->datetime('close_time', __('关闭时间'))->format("HH:mm")->rules('required',['required'=>'关门时间必须']); $form->datetime('start_time', __('开启时间'))->rules('required',['required'=>'开启时间必须']); $form->select('type', __('类型'))->options([ '1'=>'不重复', '2'=>'每天', '3'=>'每周', ])->when(3,function (Form $form){ $form->multipleSelect('value','日期')->options(LockInfo::week_day()); })->rules('required',['required'=>'请选择类型']); $states= [ 'off'=>['text'=>'禁用','value'=>0,'color'=>'danger'], 'on'=>['text'=>'启用','value'=>1,'color'=>'success'] ]; $form->switch('status', __('状态'))->states($states)->default(1); $form->setWidth(6); // 抛出错误信息 $form->saving(function ($form) { $box_type = $form->box_type; $device_id = $form->device_id; $lock_count = LockInfo::where(['device_id'=>$device_id,'box_type'=>$box_type])->count(); if($lock_count >3){ return response($lock_count); $error = new MessageBag([ 'title' => '错误信息', 'message' => '每个箱体最多只能设置4条规则', ]); return back()->with(compact('error')); } }); return $form; } }