Maison >développement back-end >tutoriel php >Comment générer un rapport de présence des employés en ligne via PHP et Vue
Comment générer un rapport de présence des employés en ligne via PHP et Vue
Dans l'environnement de bureau moderne, la gestion de la présence des employés est une tâche très importante. Avec le développement continu de la technologie, la génération de rapports de présence des employés en ligne via des systèmes automatisés est devenue une exigence courante. Cet article expliquera comment utiliser PHP et Vue pour implémenter cette fonction et fournira des exemples de code spécifiques.
CREATE TABLE `attendance` ( `id` int(11) NOT NULL AUTO_INCREMENT, `employee_id` int(11) NOT NULL, `date` date NOT NULL, `clock_in_time` time NOT NULL, `clock_out_time` time NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Dans ce tableau, nous stockons les informations pertinentes de chaque pointage, y compris l'identifiant de l'employé, la date, le temps de travail et les heures de repos, etc.
<?php // 连接到数据库 $conn = new mysqli("localhost", "username", "password", "attendance"); // 检查连接是否成功 if ($conn->connect_error) { die("数据库连接失败: " . $conn->connect_error); } // 查询数据库中的考勤记录 $sql = "SELECT * FROM attendance"; $result = $conn->query($sql); // 检查查询结果是否为空 if ($result->num_rows > 0) { // 将查询结果转换为JSON格式,并输出给前端 $rows = array(); while ($row = $result->fetch_assoc()) { $rows[] = $row; } echo json_encode($rows); } else { echo "没有找到考勤记录"; } // 关闭数据库连接 $conn->close();
Dans ce fichier, nous nous connectons d'abord à la base de données, puis interrogeons les enregistrements de présence dans la base de données et convertissons les résultats en JSON. Le format est affiché sur le front-end.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>员工考勤报告</title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> </head> <body> <div id="app"> <table> <thead> <tr> <th>员工ID</th> <th>日期</th> <th>上班时间</th> <th>下班时间</th> </tr> </thead> <tbody v-if="attendance.length"> <tr v-for="record in attendance" :key="record.id"> <td>{{ record.employee_id }}</td> <td>{{ record.date }}</td> <td>{{ record.clock_in_time }}</td> <td>{{ record.clock_out_time }}</td> </tr> </tbody> <tbody v-else> <tr> <td colspan="4">没有找到考勤记录</td> </tr> </tbody> </table> </div> <script> new Vue({ el: '#app', data: { attendance: [] }, mounted() { this.getAttendance(); }, methods: { getAttendance() { axios.get('getAttendance.php') .then(response => { this.attendance = response.data; }) .catch(error => { console.log(error); }); } } }); </script> </body> </html>
Dans ce code, nous créons une instance Vue et appelons la méthode getAttendance dans la fonction hook montée pour obtenir l'enregistrement de présence. Utilisez ensuite la directive v-for pour générer chaque ligne du tableau.
Grâce aux étapes ci-dessus, nous avons utilisé avec succès PHP et Vue pour générer un rapport de présence des employés en ligne. Bien entendu, il ne s’agit que d’un exemple simple, et vous pouvez réaliser des développements plus complexes en fonction des besoins réels. J'espère que cet article vous aidera !
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!