芝麻web文件管理V1.00
编辑当前文件:/home/forge/stage.sksb.smartcon-survey.com/app/Livewire/TopicDetail.php
'#4CAF50', 1 => '#8AC249', 2 => '#FFEB3B', 3 => '#FFC107', 4 => '#F44336', 98 => 'rgb(229, 231, 235)']; public $reversedColors = [0 => '#4CAF50', 1 => '#8AC249', 2 => '#FFEB3B', 3 => '#FFC107', 4 => '#F44336', 98 => 'rgb(229, 231, 235)']; public $indexLabels = ['sehr zufrieden', 'zufrieden', 'teils/teils', 'unzufrieden', 'sehr unzufrieden']; protected $queryString = [ 'topicId', ]; public function changeOpen() { $this->open = ! $this->open; } public function mount() { $this->currentTopic = Topic::where('id', $this->topicId)->first(); $this->quarters = (new QuarterFilter)->quarters(); $this->interviews = Interview::where([ ['topic_id', $this->topicId], ['is_test', 0], ])->get(); // Different filters depending on company (admiral/löwen) // We don't use the deparments from the db, but instead we use groups $this->departments = Department::all(); $sh = new SurveyJSHelper; $sh->setResults($this->currentTopic, $this->interviews)->addAverage(); $this->results = $sh->getResults(); } public static function baseFilter($topicId): array { return [['is_test', '=', 0], ['topic_id', '=', $topicId]]; } public function updatedInterviews($value) { $sh = new SurveyJSHelper; $sh->setResults($this->currentTopic, $this->interviews)->addAverage(); $this->results = $sh->getResults(); } public function clearFilter() { $this->selectedDepartments = []; $this->selectedAges = []; $this->leadingPosition = null; $this->selectedGender = null; $this->selectedQuarters = []; $this->filter(); } public function filter() { $filters = new InterviewFilter($this->allFilters()); $this->interviews = Interview::where('topic_id', $this->topicId)->filter($filters)->get(); $sh = new SurveyJSHelper; $sh->setResults($this->currentTopic, $this->interviews)->addAverage(); $this->results = $sh->getResults(); } public function allFilters() { $all = [ 'departments' => $this->selectedDepartments, 'ages' => $this->selectedAges, 'quarter' => $this->selectedQuarters, 'leadingPosition' => $this->leadingPosition, ]; $all = array_map(fn ($item) => ! empty($item) || $item == '0' ? $item : null, $all); return array_filter($all, fn ($item) => $item !== null); } public function render() { return view('livewire.topic-detail'); } }