Maison >développement back-end >tutoriel php >Comment utiliser PHP et Vue pour développer un mécanisme de gestion des exceptions pour la présence en ligne des employés

Comment utiliser PHP et Vue pour développer un mécanisme de gestion des exceptions pour la présence en ligne des employés

王林
王林original
2023-09-25 17:28:411469parcourir

Comment utiliser PHP et Vue pour développer un mécanisme de gestion des exceptions pour la présence en ligne des employés

Comment utiliser PHP et Vue pour développer un mécanisme de gestion des exceptions pour la présence en ligne des employés

  1. Introduction
    La présence des employés est l'un des maillons importants de la gestion d'entreprise. La méthode traditionnelle de fréquentation présente de nombreuses lacunes, telles que des erreurs dans les données de fréquentation et des statistiques manuelles gênantes. Avec le développement des technologies de l'information, utiliser PHP et Vue pour développer un système de présence des employés en ligne est devenu un choix plus efficace et plus précis. Cet article présentera comment utiliser PHP et Vue pour développer un système de présence des employés en ligne et se concentrera sur la mise en œuvre du mécanisme de gestion des exceptions.
  2. Utilisez PHP pour développer des interfaces back-end
    Avant d'utiliser PHP pour développer des interfaces back-end, nous devons d'abord concevoir la structure des tables de la base de données. Cet article utilise MySQL comme base de données et conçoit les tables suivantes :
  3. Table des employés (employé) : stocke les informations de base des employés, telles que le nom, le numéro de poste, etc.
  4. Tableau de présence (présence) : stocke les enregistrements de présence des employés, y compris des champs tels que la date, le temps de travail et les heures d'absence.

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));
}
  1. Développer une interface frontale à l'aide de Vue
    Avant d'utiliser Vue pour développer une interface frontale, nous devons d'abord installer Vue et Axios. Exécutez la commande suivante dans la fenêtre de ligne de commande :
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>
  1. Mise en œuvre du mécanisme de gestion des exceptions
    Le mécanisme de gestion des exceptions est une partie très importante du système de présence des employés en ligne. Lors du téléchargement des données de présence, nous devons déterminer si les enregistrements de présence sont anormaux selon certaines règles et marquer les enregistrements anormaux. Dans le fichier assistance.php, nous pouvons ajouter le code suivant pour implémenter le mécanisme de gestion des exceptions :
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn