Я хочу отображать данные на панели диаграммы при поиске по дате, используя Laravel - PullRequest
0 голосов
/ 14 июля 2020

У меня есть полоса диаграммы, и я пытаюсь показать данные по дате, когда я фильтрую по дате, но, к сожалению, данные не отображаются на панели диаграммы. Я хочу, чтобы, когда я выбираю дату начала и дату окончания, запись должна отображаться на панели диаграммы по дате.

enter image description here

enter image description here

Controller

public function status(Request $request)
    {
        $date = explode(' - ', $request->date);

          $manager_hourlog = Hourlog::with('project', "user")->whereBetween('date', $date)
          ->get()
          ->groupBy('project.name');

        $projects = [];
        $totals = [];
        foreach ($manager_hourlog as $key => $val) {
            $projects[] = $key;
        }
        foreach ($manager_hourlog as $key2 => $val) {

            $minutes = $val->sum('hour_work');

            $totals[] = round($minutes / 60, 1);
        }
        $users = User::where("status", 1)->get();
        
        $data = [
            // manager report
            'manager_projects' => $projects,
            'totals' => $totals,
            "manager_hourlog" => $manager_hourlog,

        ];
           return $data;
        return  response()->json($data, 200);
    }

html view

      
     Дата          Поиск     

скрипт

<script type="text/javascript">
$(function () {
$('#search').on('click', function () {
var date = $("#date").val();
$.ajax({
       type: 'GET',
       url: '{{Route("dashboard.status")}}',
        data: {
                date: date
             },
       dataType: "JSon",
       success: function(response){
            // Employee  report script
          var colors = ["#1abc9c", "#2ecc71", "#3498db", "#9b59b6", "#34495e", "#16a085", "#27ae60", "#2980b9", "#8e44ad", "#2c3e50", "#f1c40f", "#e67e22", "#e74c3c", "#ecf0f1", "#95a5a6", "#f39c12", "#d35400", "#c0392b", "#bdc3c7", "#7f8c8d"];
              @if ($auth->user_type != 1) 
              // manager  report script
              var managerchartbar = {
              labels: {!! json_encode($manager_projects) !!},
                datasets: [
              @foreach($users  as  $user)
                  {
                    label: {!! json_encode($user->name) !!},
                    backgroundColor: colors[Math.floor(Math.random() * colors.length)],
                    data: [
                      @foreach($manager_hourlog as $hourlog) 
                        {{$hourlog->where("user_id", $user->id)->sum("hour_work") / 60}},
                      @endforeach
                    ]
                  },
              @endforeach
                ]
              };
                var ctx = document.getElementById('manager').getContext('2d');
                window.myBar = new Chart(ctx, {
                  type: 'bar',
                  data: managerchartbar,
                  options: {
                    title: {
                      display: true,
                      text: 'Project Report chart'
                    },
                    tooltips: {
                      mode: 'index',
                      intersect: false
                    },
                    responsive: true,
                    scales: {
                      xAxes: [{
                        stacked: true,
                      }],
                      yAxes: [{
                        stacked: true
                      }]
                    }
                  }
                });

              @endif
              console.log(response);
          },
      error: function(xhr){
        console.log(xhr.responseText);
      }});
        });
      });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...