DistMessage.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Distributor\Metrics;
  3. use Dcat\Admin\Widgets\Metrics\Round;
  4. use Illuminate\Http\Request;
  5. use App\Models\DistMessage as DistMessageModel;
  6. class DistMessage extends Round
  7. {
  8. /**
  9. * 初始化卡片内容
  10. */
  11. protected function init()
  12. {
  13. parent::init();
  14. // 卡片内容宽度
  15. $this->contentWidth(12, 0);
  16. $this->title('Messages');
  17. }
  18. /**
  19. * 处理请求
  20. *
  21. * @param Request $request
  22. *
  23. * @return mixed|void
  24. */
  25. public function handle(Request $request)
  26. {
  27. // 获取最新的10条消息
  28. $messages = DistMessageModel::latest()->take(10)->get();
  29. // 卡片内容
  30. $this->withContent($messages);
  31. }
  32. /**
  33. * 卡片内容.
  34. *
  35. * @param \Illuminate\Support\Collection $messages
  36. *
  37. * @return $this
  38. */
  39. public function withContent($messages)
  40. {
  41. $content = '';
  42. foreach ($messages as $message) {
  43. $content .= <<<HTML
  44. <div class="chart-info d-flex justify-content-between mb-1">
  45. <div class="series-info d-flex align-items-center">
  46. . <a href="/dist/messages/{$message->id}"><span class="text-bold-600 ml-50">{$message->title} ({$message->created_at->toDateString()})</span>
  47. </a>
  48. </div>
  49. <div class="product-result">
  50. <span>{$message->status}</span>
  51. </div>
  52. </div>
  53. HTML;
  54. }
  55. return $this->content(
  56. <<<HTML
  57. <div class="col-12 d-flex flex-column flex-wrap text-center" style="">
  58. {$content}
  59. </div>
  60. HTML
  61. );
  62. }
  63. }