Table des matières
{{ month }} 考勤统计
员工考勤统计
Maison développement back-end tutoriel php Comment utiliser PHP et Vue pour créer un module d'analyse statistique de la présence des employés

Comment utiliser PHP et Vue pour créer un module d'analyse statistique de la présence des employés

Sep 26, 2023 am 11:09 AM
php vue 员工考勤

Comment utiliser PHP et Vue pour créer un module danalyse statistique de la présence des employés

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
);
Copier après la connexion

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);
?>
Copier après la connexion

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 id="month-考勤统计">{{ 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>
Copier après la connexion

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

Dans le code ci-dessus, nous utilisons un fichier PHP nommé 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 id="员工考勤统计">员工考勤统计</h1>
    <attendance-statistics></attendance-statistics>
  </div>
</template>

<script>
import AttendanceStatistics from './components/AttendanceStatistics.vue';

export default {
  components: {
    AttendanceStatistics
  }
}
</script>
Copier après la connexion
Grâce aux étapes ci-dessus, nous avons réussi à construire un module d'analyse statistique simple et pratique pour la présence des employés. En utilisation réelle, nous pouvons étendre et optimiser ce module en fonction des besoins, comme l'ajout de conditions de filtrage, l'exportation de rapports et d'autres fonctions.

En résumé, utiliser PHP et Vue pour créer un module d'analyse statistique de la présence des employés peut aider les entreprises à mieux gérer la présence des employés. Grâce à la combinaison de PHP et MySQL et à la flexibilité de Vue, nous pouvons facilement interroger, afficher et analyser les données, fournissant ainsi une base et une référence pour les décisions de gestion d'entreprise. 🎜

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment pouvez-vous empêcher une classe d'être prolongée ou une méthode d'être remplacée en PHP? (mot-clé final) Comment pouvez-vous empêcher une classe d'être prolongée ou une méthode d'être remplacée en PHP? (mot-clé final) Apr 08, 2025 am 12:03 AM

Dans PHP, le mot-clé final est utilisé pour empêcher les classes d'être héritées et les méthodes écrasées. 1) Lors du marquage de la classe comme final, la classe ne peut pas être héritée. 2) Lors du marquage de la méthode comme final, la méthode ne peut pas être réécrite par la sous-classe. L'utilisation de mots clés finaux garantit la stabilité et la sécurité de votre code.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Que signifie la charge paresseuse? Que signifie la charge paresseuse? Apr 07, 2025 pm 11:54 PM

Dans vue.js, le chargement paresseux permet de charger dynamiquement les composants ou les ressources, en réduisant le temps de chargement des pages initiales et en améliorant les performances. La méthode de mise en œuvre spécifique comprend l'utilisation de & lt; keep-alive & gt; et & lt; composant est & gt; composants. Il convient de noter que le chargement paresseux peut provoquer des problèmes de FOUC (écran d'éclat) et ne doit être utilisé que pour les composants qui nécessitent un chargement paresseux pour éviter les frais généraux de performances inutiles.

Comment utiliser Vue Traversal Comment utiliser Vue Traversal Apr 07, 2025 pm 11:48 PM

Il existe trois méthodes courantes pour que Vue.js traverse les tableaux et les objets: la directive V-FOR est utilisée pour traverser chaque élément et les modèles de rendu; La directive V-Bind peut être utilisée avec V-FOR pour définir dynamiquement les valeurs d'attribut pour chaque élément; et la méthode .map peut convertir les éléments du tableau en nouveaux tableaux.

See all articles