model()->with(['shop'])->orderByDesc('id'); $grid->column('id')->sortable(); $grid->column('type', '设备类型')->using(DeviceTypeEnum::toSelectArray()); $grid->column('shop.name', '站点名'); $grid->column('no', '设备编号'); $grid->column('temperature', '温度'); $grid->column('water_level_warning', '水位状态')->using(DeviceWaterLevelEnum::toSelectArray()); $grid->column('water_quality', '水质'); $grid->column('a', 'A路状态')->using(DeviceLuTypeEnum::toSelectArray()); $grid->column('b', 'B路状态')->using(DeviceLuTypeEnum::toSelectArray()); $grid->column('box_status', '设备状态')->using(BoxStatusEnum::toSelectArray())->label(); $grid->column('last_update_time', '最后更新时间'); $grid->column('is_use', '是否可用')->using(DeviceUseStatusEnum::toSelectArray()); $grid->column('is_line', '是否在线')->using(DeviceLineEnum::toSelectArray()); $grid->column('status', '投放状态')->using(ModelStatusEnum::toSelectArray()); $grid->actions(function (Grid\Displayers\Actions $action) { $action->disableView(); $id = $action->getKey(); $action->append(''); }); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id'); $filter->like('box_no', '设备编号'); $filter->in('shop_id', '站点')->multipleSelect(Shop::query()->where('status', ModelStatusEnum::OK)->pluck('name', 'id')); $filter->in('box_status', '设备状态')->multipleSelect(BoxStatusEnum::toSelectArray()); $filter->equal('is_use', '是否可用')->select(DeviceUseStatusEnum::toSelectArray()); $filter->equal('is_line', '是否在线')->select(DeviceLineEnum::toSelectArray()); $filter->equal('status', '投放状态')->select(ModelStatusEnum::toSelectArray()); }); }); } protected function form() { return Form::make(new Device(), function (Form $form) { $form->tab('基本信息', function (Form $form) { $form->text('no', '设备编号')->rules('required')->help('15位数字'); $form->text('box_no', '硬件编号')->rules('required')->help('15位数字'); $form->select('type', '设备类型')->options(DeviceTypeEnum::toSelectArray())->rules('required'); })->tab('绑定站点', function (Form $form) { $form->select('shop_id', '站点')->options(Shop::query()->pluck('name', 'id'))->saving(function ($val) { if (empty($val)) return 0; return $val; }); $form->rate('merchant_ratio', '商户分成比'); $form->select('status', '投放状态')->options(ModelStatusEnum::toSelectArray())->default(ModelStatusEnum::OK); })->tab('收益绑定', function (Form $form) { $form->select('agency_id', '代理人')->options(Role::byRolesSelectOptions(Role::Agency)); $form->rate('agency_ratio', '代理分成比'); $form->select('invest_id', '投资人')->options(Role::byRolesSelectOptions(Role::Invest)); $form->rate('invest_ratio', '投资分成比'); }); }); } /** * 重置设备 * @param Request $request * Author: Mead */ public function reset(Request $request) { $id = $request->get('id'); $device = Device::query()->find($id); if (!$device) { admin_toastr('找不到该设备!', 'error'); return redirect()->back(); } if ($device->is_line == DeviceLineEnum::NO) { $device->a = DeviceLuTypeEnum::FREE; $device->b = DeviceLuTypeEnum::FREE; } else { switch ((int)$device->box_status) { case BoxStatusEnum::WAIT: $device->a = DeviceLuTypeEnum::FREE; $device->b = DeviceLuTypeEnum::FREE; break; case BoxStatusEnum::A_WORK: case BoxStatusEnum::A_PAUSE_B_WAIT: $device->a = DeviceLuTypeEnum::USING; $device->b = DeviceLuTypeEnum::FREE; break; case BoxStatusEnum::AB_WORK: case BoxStatusEnum::A_PAUSE_B_WORK: case BoxStatusEnum::AB_PAUSE: case BoxStatusEnum::A_WORK_B_PAUSE: $device->a = DeviceLuTypeEnum::USING; $device->b = DeviceLuTypeEnum::USING; break; case BoxStatusEnum::B_WORK: case BoxStatusEnum::A_WAIT_B_PAUSE: $device->a = DeviceLuTypeEnum::FREE; $device->b = DeviceLuTypeEnum::USING; break; } } $device->save(); return redirect()->back(); } }