Heim >Backend-Entwicklung >PHP-Tutorial >Wie man mit PHP und Vue einen Ausnahmebehandlungsmechanismus für die Online-Anwesenheit von Mitarbeitern entwickelt
So verwenden Sie PHP und Vue, um einen Ausnahmebehandlungsmechanismus für die Online-Anwesenheit von Mitarbeitern zu entwickeln
Als nächstes verwenden wir PHP, um die Backend-Schnittstelle zu entwickeln. Zuerst erstellen wir eine Datei mit dem Namen config.php, um die Datenbankverbindungsinformationen zu konfigurieren. Der Beispielcode lautet wie folgt:
<?php $host = 'localhost'; // 数据库主机名 $dbName = 'attendance'; // 数据库名 $username = 'root'; // 数据库用户名 $password = '123456'; // 数据库密码
Dann erstellen wir eine Datei mit dem Namen db.php, um Funktionen für Datenbankoperationen zu kapseln. Der Beispielcode lautet wie folgt:
<?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); }
Als nächstes erstellen wir eine Datei mit dem Namen „mitarbeiter.php“, um mitarbeiterbezogene Schnittstellen bereitzustellen. Der Beispielcode lautet wie folgt:
<?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()); }
Ähnlich erstellen wir eine Datei mit dem Namen attendance.php, um anwesenheitsbezogene Schnittstellen bereitzustellen. Der Beispielcode lautet wie folgt:
<?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
Als nächstes erstellen wir eine Datei mit dem Namen Attendance.vue, um Anwesenheitslisten anzuzeigen. Der Beispielcode lautet wie folgt:
<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; }
In der Datei Attendance.vue können wir Ausnahmeinformationen basierend auf der Ausnahmemarkierung anzeigen. Der Beispielcode lautet wie folgt:
<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>
Zu diesem Zeitpunkt haben wir die Implementierung des Ausnahmebehandlungsmechanismus für die Entwicklung eines Online-Anwesenheitssystems für Mitarbeiter mithilfe von PHP und Vue abgeschlossen.
Zusammenfassung
Dieser Artikel stellt die Verwendung von PHP und Vue zur Entwicklung eines Online-Anwesenheitssystems für Mitarbeiter vor und konzentriert sich auf die Implementierung des Ausnahmebehandlungsmechanismus. Durch rationales Entwerfen der Datenbanktabellenstruktur, Verwenden von PHP zum Entwickeln der Back-End-Schnittstelle und Verwenden von Vue zum Entwickeln der Front-End-Schnittstelle können wir ein Online-Anwesenheitssystem für Mitarbeiter effizient implementieren und die Genauigkeit und Verarbeitungseffizienz der Anwesenheitsdaten verbessern. Gleichzeitig können durch die Implementierung des Ausnahmebehandlungsmechanismus Anwesenheitsausnahmen rechtzeitig erkannt werden, was den Managern die Handhabung und Nachverfolgung erleichtert.
Das obige ist der detaillierte Inhalt vonWie man mit PHP und Vue einen Ausnahmebehandlungsmechanismus für die Online-Anwesenheit von Mitarbeitern entwickelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!