Comment utiliser PHP et Vue pour créer un module d'analyse statistique pour la présence des employés
La gestion des présences est un élément très important pour les entreprises. Elle peut aider les entreprises à comprendre l'état de travail et l'état de présence des employés en temps réel. Dans la gestion d’entreprise moderne, il est courant d’utiliser l’analyse des données pour évaluer la présence des employés. Cet article expliquera comment utiliser PHP et Vue pour créer un module d'analyse statistique simple et pratique pour la présence des employés afin d'aider les entreprises à gérer plus efficacement la présence des employés.
Tout d'abord, nous devons préparer l'environnement de développement, y compris l'installation de PHP et Vue. Assurez-vous que nous avons installé PHP et les extensions et outils liés à PHP, ainsi que Node.js et l'outil d'échafaudage de Vue, Vue CLI.
Ensuite, nous avons commencé à construire le module d'analyse statistique de la présence des employés. Tout d’abord, nous devons créer une table de base de données MySQL pour stocker les enregistrements de présence des employés. La structure de la table est la suivante :
CREATE TABLE attendance ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, employee_id INT(11) NOT NULL, attendance_date DATE NOT NULL, attendance_status ENUM('Present', 'Late', 'Absent') NOT NULL );
En PHP, nous pouvons utiliser PDO pour nous connecter à la base de données et effectuer des opérations sur les données. Ce qui suit est un exemple de code PHP simple pour interroger les statistiques de présence des employés pour un mois donné.
<?php // 数据库连接信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "attendance"; // 建立数据库连接 $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 查询某个月份的考勤统计 $month = $_GET['month']; $sql = "SELECT employee_id, COUNT(*) AS total_attendance, SUM(CASE WHEN attendance_status = 'Present' THEN 1 ELSE 0 END) AS total_present, SUM(CASE WHEN attendance_status = 'Late' THEN 1 ELSE 0 END) AS total_late, SUM(CASE WHEN attendance_status = 'Absent' THEN 1 ELSE 0 END) AS total_absent FROM attendance WHERE DATE_FORMAT(attendance_date, '%Y-%m') = :month GROUP BY employee_id"; $stmt = $conn->prepare($sql); $stmt->bindParam(':month', $month); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); // 将结果转换为JSON格式返回给前端 echo json_encode($results); ?>
Ensuite, nous devons créer un composant Vue pour afficher les statistiques de présence des employés. Ce qui suit est un exemple simple de composant Vue pour afficher les statistiques de présence des employés pour un certain mois :
<template> <div> <h2>{{ month }} 考勤统计</h2> <table> <thead> <tr> <th>员工ID</th> <th>总出勤天数</th> <th>正常出勤天数</th> <th>迟到天数</th> <th>旷工天数</th> </tr> </thead> <tbody> <tr v-for="record in attendanceRecords" :key="record.employee_id"> <td>{{ record.employee_id }}</td> <td>{{ record.total_attendance }}</td> <td>{{ record.total_present }}</td> <td>{{ record.total_late }}</td> <td>{{ record.total_absent }}</td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { month: '2021-01', attendanceRecords: [] }; }, mounted() { this.fetchAttendanceData(this.month); }, methods: { fetchAttendanceData(month) { fetch(`/api/attendance.php?month=${month}`) .then(response => response.json()) .then(data => { this.attendanceRecords = data; }) .catch(error => { console.error(error); }); } } } </script>
Dans l'exemple de code ci-dessus, nous utilisons la fonction hook de cycle de vie de Vue montée
pour charger le composant lorsqu'il est chargé. . Appelez la méthode fetchAttendanceData
pour obtenir les données de présence. Dans la méthode fetchAttendanceData
, nous utilisons l'API Fetch pour envoyer une requête GET à l'interface backend de PHP pour obtenir des données, et assignons les données obtenues à attendanceRecords
pour le rendu de la page. . mounted
来在组件加载时调用fetchAttendanceData
方法来获取考勤数据。在fetchAttendanceData
方法中,我们使用了Fetch API发送一个GET请求到PHP的后端接口来获取数据,并将获取到的数据赋值给attendanceRecords
以供页面渲染。
我们在上述代码中使用了一个名为attendance.php
attendance.php
comme interface back-end, qui est responsable de l'interrogation de la base de données et du renvoi des données. Dans des projets réels, nous pouvons utiliser des routeurs (tels que Laravel ou Symfony) pour créer une API backend plus complète. Enfin, il suffit d'ajouter ce composant Vue à la page : <template> <div> <h1>员工考勤统计</h1> <attendance-statistics></attendance-statistics> </div> </template> <script> import AttendanceStatistics from './components/AttendanceStatistics.vue'; export default { components: { AttendanceStatistics } } </script>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!