HomeController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Model\SystemConfig;
  5. use Encore\Admin\Controllers\Dashboard;
  6. use Encore\Admin\Layout\Column;
  7. use Encore\Admin\Layout\Content;
  8. use Encore\Admin\Layout\Row;
  9. use Encore\Admin\Widgets\Box;
  10. use Encore\Admin\Widgets\Echarts\Echarts;
  11. use Encore\Admin\Widgets\InfoBox;
  12. class HomeController extends Controller
  13. {
  14. public function index(Content $content)
  15. {
  16. return $content
  17. ->title('首页')
  18. ->description('欢迎来到!')
  19. ->row(function (Row $row) {
  20. $row->column(12,function (Column $column){
  21. $column->append('<div style="height: 53px;"></div>');
  22. });
  23. })
  24. ->row(function (Row $row) {
  25. $row->column(3, function (Column $column) {
  26. $column->append(infoBox('设备总数', 'dropbox', '/admin/device_info', 'green', Sta::getDeviceCount()));
  27. });
  28. $row->column(3, function (Column $column) {
  29. $column->append(infoBox('在营设备', 'user-plus', '/admin/device_info?status=0', 'green', Sta::getDeviceCount(0)));
  30. });
  31. $row->column(3, function (Column $column) {
  32. $column->append(infoBox('设备最新版本号', 'user-plus', '/admin/setting_form', 'green', SystemConfig::get('lock_config','soft_version')));
  33. });
  34. $row->column(3, function (Column $column) {
  35. $column->append(infoBox('物联网卡数', 'user-plus', '/admin/phone_infos', 'green', Sta::getPhoneCount()));
  36. });
  37. })
  38. ->row(function (Row $row) {
  39. $row->column(6, function (Column $column) {
  40. $sta = Sta::getDeviceChart();
  41. $echarts = (new Echarts('设备状态', '当前设备状态', 'device'))
  42. ->setData($sta['d'])->setSeriesType('pie')
  43. ->bindLegend($sta['h']);
  44. $column->append(new Box('', $echarts));
  45. });
  46. $row->column(6, function (Column $column) {
  47. $sta = Sta::getDeviceTypeChart();
  48. $echarts = (new Echarts('设备类型', '当前设备状态', 'device_type'))
  49. ->setData($sta['d'])->setSeriesType('pie')
  50. ->bindLegend($sta['h']);
  51. $column->append(new Box('', $echarts));
  52. });
  53. });
  54. }
  55. }
  56. /**
  57. * 消息框
  58. * @param $name
  59. * @param $icon
  60. * @param $link
  61. * @param $color
  62. * @param $info
  63. * @return string HTML
  64. */
  65. function infoBox($name, $icon, $link, $color, $info)
  66. {
  67. return (new InfoBox($name, $icon, $color, $link, $info))->render();
  68. }