Comment utiliser PHP et Vue pour développer un mécanisme de gestion des exceptions pour la présence en ligne des employés
Ensuite, nous utilisons PHP pour développer l'interface backend. Tout d’abord, nous créons un fichier nommé config.php pour configurer les informations de connexion à la base de données. L'exemple de code est le suivant :
<?php $host = 'localhost'; // 数据库主机名 $dbName = 'attendance'; // 数据库名 $username = 'root'; // 数据库用户名 $password = '123456'; // 数据库密码
Ensuite, nous créons un fichier nommé db.php pour encapsuler les fonctions pour les opérations de base de données. L'exemple de code est le suivant :
<?php function connect() { global $host, $dbName, $username, $password; $conn = new mysqli($host, $username, $password, $dbName); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } return $conn; } function query($conn, $sql) { $result = $conn->query($sql); $rows = array(); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $rows[] = $row; } } return $rows; } function insert($conn, $sql) { return $conn->query($sql); }
Ensuite, nous créons un fichier nommé employé.php pour fournir des interfaces liées aux employés. L'exemple de code est le suivant :
<?php require_once 'config.php'; require_once 'db.php'; function getEmployees() { $conn = connect(); $sql = 'SELECT * FROM employee'; $rows = query($conn, $sql); $conn->close(); return $rows; } $method = $_SERVER['REQUEST_METHOD']; if ($method === 'GET') { echo json_encode(getEmployees()); }
De même, nous créons un fichier nommé fréquentation.php pour fournir des interfaces liées à la présence. L'exemple de code est le suivant :
<?php require_once 'config.php'; require_once 'db.php'; function getAttendance($employeeId, $month) { $conn = connect(); $sql = "SELECT * FROM attendance WHERE employee_id = $employeeId AND DATE_FORMAT(date, '%Y-%m') = '$month'"; $rows = query($conn, $sql); $conn->close(); return $rows; } function addAttendance($employeeId, $date, $startTime, $endTime) { $conn = connect(); $sql = "INSERT INTO attendance (employee_id, date, start_time, end_time) VALUES ($employeeId, '$date', '$startTime', '$endTime')"; $result = insert($conn, $sql); $conn->close(); return $result; } $method = $_SERVER['REQUEST_METHOD']; if ($method === 'GET') { $employeeId = $_GET['employee_id']; $month = $_GET['month']; echo json_encode(getAttendance($employeeId, $month)); } elseif ($method === 'POST') { $employeeId = $_POST['employee_id']; $date = $_POST['date']; $startTime = $_POST['start_time']; $endTime = $_POST['end_time']; echo json_encode(addAttendance($employeeId, $date, $startTime, $endTime)); }
npm install vue axios --save
Ensuite, nous créons un fichier nommé Attendance.vue pour afficher les enregistrements de présence. L'exemple de code est le suivant :
<template> <div> <h2>考勤记录</h2> <div v-for="record in records" :key="record.id"> <p>{{ record.date }}: {{ record.start_time }} - {{ record.end_time }}</p> <p v-if="record.exception === 1" style="color: red;">异常</p> </div> </div> </template> <script> import axios from 'axios'; export default { data() { return { records: [], }; }, mounted() { this.getAttendance(); }, methods: { getAttendance() { const employeeId = 1; const month = '2021-01'; axios.get(`http://localhost/attendance.php?employee_id=${employeeId}&month=${month}`) .then((response) => { this.records = response.data; }) .catch((error) => { console.error(error); }); }, }, }; </script> <style scoped> h2 { font-size: 20px; font-weight: bold; } </style>
function checkException($startTime, $endTime) { $start = strtotime($startTime); $end = strtotime($endTime); $workStart = strtotime('09:00:00'); $workEnd = strtotime('18:00:00'); if ($start > $workStart && $end < $workEnd) { return 0; // 正常 } else { return 1; // 异常 } } function addAttendance($employeeId, $date, $startTime, $endTime) { $exception = checkException($startTime, $endTime); $conn = connect(); $sql = "INSERT INTO attendance (employee_id, date, start_time, end_time, exception) VALUES ($employeeId, '$date', '$startTime', '$endTime', $exception)"; $result = insert($conn, $sql); $conn->close(); return $result; }
Dans le fichier Attendance.vue, nous pouvons afficher des informations sur les exceptions basées sur la marque d'exception. L'exemple de code est le suivant :
<template> <div> <h2>考勤记录</h2> <div v-for="record in records" :key="record.id"> <p>{{ record.date }}: {{ record.start_time }} - {{ record.end_time }}</p> <p v-if="record.exception === 1" style="color: red;">异常</p> </div> </div> </template>
À ce stade, nous avons terminé la mise en œuvre du mécanisme de gestion des exceptions pour développer un système de présence des employés en ligne utilisant PHP et Vue.
Résumé
Cet article présente comment utiliser PHP et Vue pour développer un système de présence des employés en ligne et se concentre sur la mise en œuvre du mécanisme de gestion des exceptions. En concevant rationnellement la structure des tables de la base de données, en utilisant PHP pour développer l'interface back-end et en utilisant Vue pour développer l'interface front-end, nous pouvons mettre en œuvre efficacement un système de présence en ligne des employés et améliorer l'exactitude et l'efficacité du traitement des données de présence. Dans le même temps, grâce à la mise en œuvre du mécanisme de gestion des exceptions, les exceptions de présence peuvent être découvertes à temps, ce qui facilite leur gestion et leur suivi par les gestionnaires.
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!