CommentList.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Admin\Actions\Feeds;
  3. use App\Models\FeedComment;
  4. use Dcat\Admin\Grid;
  5. use Dcat\Admin\Grid\LazyRenderable;
  6. class CommentList extends LazyRenderable
  7. {
  8. public function grid(): Grid
  9. {
  10. $grid = new Grid(new FeedComment());
  11. $grid->model()->where(['feed_id'=>$this->payload['id']])->with(['user:id,name,avatar','to_user:id,name,avatar']);
  12. $grid->column('user_id',trans('feeds.action.operator'))->display(function ($res){
  13. $str = "";
  14. $str.="<div style='margin-right:10px;text-align: center;display: flex'>";
  15. $str.='<img data-action="preview-img" src="'.$this->user->avatar.'" style="max-width:50px;max-height:50px;cursor:pointer" class="img img-thumbnail">';
  16. $str.='<div>';
  17. $str.='<p style="margin-bottom: 2px">ID:'.$this->user->id.'</p>';
  18. $str.='<p>'.trans('user.fields.name').':'.$this->user->name.'</p>';
  19. $str.="</div>";
  20. $str.="</div>";
  21. return $str;
  22. });
  23. $grid->column('pid',trans('feeds.action.type'))->display(function ($res){
  24. if($res>0){
  25. $str = trans('feeds.action.reply');
  26. }else{
  27. $str = trans('feeds.action.commented');
  28. }
  29. return $str;
  30. });
  31. $grid->column('to_uid',trans('feeds.action.Person_replied'))->display(function ($res){
  32. $str = "";
  33. $str.="<div style='margin-right:10px;text-align: center;display: flex'>";
  34. $str.='<img data-action="preview-img" src="'.$this->to_user->avatar.'" style="max-width:50px;max-height:50px;cursor:pointer" class="img img-thumbnail">';
  35. $str.='<div>';
  36. $str.='<p style="margin-bottom: 2px">ID:'.$this->to_user->id.'</p>';
  37. $str.='<p>'.trans('user.fields.name').':'.$this->to_user->name.'</p>';
  38. $str.="</div>";
  39. $str.="</div>";
  40. return $str;
  41. });
  42. $grid->column('content',trans('feeds.action.content'))->limit(50);
  43. $grid->column('created_at');
  44. $grid->quickSearch(['content']);
  45. $grid->paginate(10);
  46. $grid->batchActions(function (Grid\Tools\BatchActions $batch){
  47. $batch->disableDelete(false);
  48. $batch->add(new CommentBatchAction(trans('feeds.action.Batch_delete'),1));
  49. });
  50. $grid->setActionClass(Grid\Displayers\Actions::class);
  51. $grid->disableActions();
  52. // $grid->actions(function (Grid\Displayers\Actions $actionss) {
  53. //
  54. // $actionss->disableView();
  55. // $actionss->disableEdit();
  56. // $actionss->append(new LikeAction());
  57. // });
  58. $grid->filter(function (Grid\Filter $filter) {
  59. $filter->like('content',trans('feeds.action.content'))->width(4);
  60. });
  61. return $grid;
  62. }
  63. }