header('收集数据') ->description('收集的数据在处理完成之后,你可以手动勾选发布,也可以等程序自动发布(10分站一次)') ->body(function (Row $row) { $row->column(6,new RobotUsers()); $row->column(6,new collectedStatus()); }) ->body($this->grid()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { return Grid::make(new MiniCollecterCollected(), function (Grid $grid) { $counts = DB::table('wx_user') ->select( DB::raw('SUM(CASE WHEN is_robot > 0 THEN 1 ELSE 0 END) AS robot_count'), DB::raw('SUM(CASE WHEN is_robot = 1 THEN 1 ELSE 0 END) AS free_robot_count'), )->first(); if($counts){ if($counts->robot_count <= 0){ $grid->header(function ($collection) { return '
你还一个机器人都没有呢,无法做任何操作,先去用户管理添加机器人
'; }); }else if($counts->free_robot_count <= 0){ $grid->header(function ($collection) { return '
可绑定的机器人不足,你可以去用户管理添加机器人, 默认一个机器人账号绑定一个第三方账号,你也可以设置一个机器人账号绑定多个第三方账号
'; }); } } $grid->simplePaginate(); $grid->quickSearch(['id', 'link','author','title', 'content'])->placeholder('搜索文章ID,标题,内容,作者...')->width(50); $grid->column('id')->sortable(); $grid->model()->orderBy('id', 'desc'); // $grid->column('post_unique'); // $grid->column('author_unique'); $grid->column('link')->display(function ($v){ return '查看'; }); $grid->column('author'); $grid->column('title_or_content', '预览')->display(function ($v){ if($this->title){ return $this->title; } if($this->content){ return mb_substr(strip_tags($this->content), 0, 40) . '...'; } return ''; })->limit(20); $grid->column('imgs')->display(function ($v){ return count(json_decode($v, true)); }); $grid->column('comments')->display(function ($v){ if(is_string($v)){ $com_arr = json_decode($v, true); if($com_arr && is_array($com_arr)){ return count($com_arr); } }else if(is_array($v)){ return count($v); } }); $grid->column('tags')->display(function ($v){ return count(json_decode($v, true)); }); $grid->column('musics'); $grid->column('videos')->display(function ($v){ if(is_string($v)){ return count(json_decode($v, true)); }else if(is_array($v)){ return count($v); } return 0; }); $grid->column('post_id'); $grid->column('status')->using([0 => '待处理', 1 => '待发布', 2 => '已发布', 3 => '处理中', 4 => '处理失败'])->label([ 0=>'red', 1=>'green', 2=>'default', 3 => 'red', 4 => 'darkred' ])->sortable(); $grid->column('tenant_id')->editable(); // $grid->column('created_at'); $grid->column('updated_at')->sortable(); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id'); }); $grid->tools([ new CollecterConfigButton(), new ImportCollectJsonButton() ]); $grid->disableCreateButton(); $grid->batchActions(function ($batch) { $batch->add((new BatchCollecterpublishAction())); $batch->add((new BatchCollecterProcessAction())); }); $grid->actions(function (Grid\Displayers\Actions $actions) { // $actions->append((new PostCommentLotteryAction())->setKey($this->id)); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new MiniCollecterCollected(), function (Show $show) { $show->field('id'); $show->field('post_unique'); $show->field('author_unique'); $show->field('link'); $show->field('author'); $show->field('title'); $show->field('content'); $show->field('imgs'); $show->field('comments'); $show->field('tags'); $show->field('musics'); $show->field('videos'); $show->field('post_id'); $show->field('circle_id'); $show->field('user_id'); $show->field('tenant_id'); $show->field('status'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new MiniCollecterCollected(), function (Form $form) { $form->display('id'); $form->text('post_unique'); $form->text('author_unique'); $form->text('link'); $form->text('author'); $form->text('title'); if(__system_is_model_enable('laradocs', 'dcat-neditor')){ $form->neditor('content'); }else{ $form->editor('content'); } // $form->text('imgs'); // $form->text('comments'); // $form->text('tags'); // $form->text('musics'); // $form->text('videos'); $form->text('post_id'); $form->select('circle_id', '发布圈子')->options(WxCircle::pluck('circle_name','id')); $form->select('user_id', '用户')->options(function ($id) { if($id){ $user = \App\Models\User\WxUser::find($id); if ($user) { return [$user->id => $user->user_name]; } } })->ajax('select/users'); // $form->text('status'); $form->text('tenant_id'); $form->display('created_at'); $form->display('updated_at'); $form->deleting(function (Form $form){ global $__MINI_GLOBAL_TENANT_ID__; if($__MINI_GLOBAL_TENANT_ID__ > 0){ return $form->response()->error('权限不足,不可以删除其他分站对象'); } }); }); } }