Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP dan Vue untuk membangunkan mekanisme pengendalian pengecualian untuk kehadiran pekerja dalam talian

Cara menggunakan PHP dan Vue untuk membangunkan mekanisme pengendalian pengecualian untuk kehadiran pekerja dalam talian

王林
王林asal
2023-09-25 17:28:411375semak imbas

Cara menggunakan PHP dan Vue untuk membangunkan mekanisme pengendalian pengecualian untuk kehadiran pekerja dalam talian

Cara menggunakan PHP dan Vue untuk membangunkan mekanisme pengendalian pengecualian untuk kehadiran pekerja dalam talian

  1. Pengenalan
    Kehadiran pekerja ialah salah satu pautan penting dalam pengurusan perusahaan. Kaedah kehadiran tradisional mempunyai banyak kelemahan, seperti ralat dalam data kehadiran dan statistik manual yang menyusahkan. Dengan perkembangan teknologi maklumat, menggunakan PHP dan Vue untuk membangunkan sistem kehadiran pekerja dalam talian telah menjadi pilihan yang lebih cekap dan tepat. Artikel ini akan memperkenalkan cara menggunakan PHP dan Vue untuk membangunkan sistem kehadiran pekerja dalam talian, dan menumpukan pada pelaksanaan mekanisme pengendalian pengecualian.
  2. Gunakan PHP untuk membangunkan antara muka belakang
    Sebelum menggunakan PHP untuk membangunkan antara muka belakang, kita perlu mereka bentuk struktur jadual pangkalan data terlebih dahulu. Artikel ini menggunakan MySQL sebagai pangkalan data dan mereka bentuk jadual berikut:
  3. Jadual pekerja (pekerja): menyimpan maklumat asas pekerja, seperti nama, nombor kerja, dsb.
  4. Jadual kehadiran (kehadiran): Menyimpan rekod kehadiran pekerja, termasuk medan seperti tarikh, masa bekerja dan waktu tidak bekerja.

Seterusnya, kami menggunakan PHP untuk membangunkan antara muka bahagian belakang. Pertama, kami mencipta fail bernama config.php untuk mengkonfigurasi maklumat sambungan pangkalan data. Kod sampel adalah seperti berikut:

<?php
$host = 'localhost';  // 数据库主机名
$dbName = 'attendance';  // 数据库名
$username = 'root';  // 数据库用户名
$password = '123456';  // 数据库密码

Kemudian, kami mencipta fail bernama db.php untuk merangkum fungsi untuk operasi pangkalan data. Kod sampel adalah seperti berikut:

<?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);
}

Seterusnya, kami mencipta fail bernama employee.php untuk menyediakan antara muka berkaitan pekerja. Kod sampel adalah seperti berikut:

<?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());
}

Begitu juga, kami mencipta fail bernama attendance.php untuk menyediakan antara muka berkaitan kehadiran. Kod sampel adalah seperti berikut:

<?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. Bangunkan antara muka hadapan menggunakan Vue
    Sebelum menggunakan Vue untuk membangunkan antara muka hadapan, kita perlu memasang Vue dan Axios terlebih dahulu. Jalankan arahan berikut dalam tetingkap baris arahan:
npm install vue axios --save

Seterusnya, kami mencipta fail bernama Attendance.vue untuk memaparkan rekod kehadiran. Kod sampel adalah seperti berikut:

<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. Pelaksanaan mekanisme pengendalian pengecualian
    Mekanisme pengendalian pengecualian adalah bahagian yang sangat penting dalam sistem kehadiran pekerja dalam talian. Semasa memuat naik data kehadiran, kami perlu menentukan sama ada rekod kehadiran tidak normal mengikut peraturan tertentu dan menandakan rekod tidak normal. Dalam fail attendance.php, kami boleh menambah kod berikut untuk melaksanakan mekanisme pengendalian pengecualian:
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;
}

Dalam fail Attendance.vue, kami boleh memaparkan maklumat pengecualian berdasarkan tanda pengecualian. Kod sampel adalah seperti berikut:

<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>

Pada ketika ini, kami telah menyelesaikan pelaksanaan mekanisme pengendalian pengecualian untuk membangunkan sistem kehadiran pekerja dalam talian menggunakan PHP dan Vue.

Ringkasan
Artikel ini memperkenalkan cara menggunakan PHP dan Vue untuk membangunkan sistem kehadiran pekerja dalam talian, dan memfokuskan pada pelaksanaan mekanisme pengendalian pengecualian. Dengan mereka bentuk struktur jadual pangkalan data secara rasional, menggunakan PHP untuk membangunkan antara muka bahagian belakang, dan menggunakan Vue untuk membangunkan antara muka bahagian hadapan, kami boleh melaksanakan sistem kehadiran pekerja dalam talian dengan cekap dan meningkatkan ketepatan dan kecekapan pemprosesan data kehadiran. Pada masa yang sama, melalui pelaksanaan mekanisme pengendalian pengecualian, pengecualian kehadiran boleh ditemui dalam masa, menjadikannya lebih mudah untuk pengurus mengendalikan dan menjejaki.

Atas ialah kandungan terperinci Cara menggunakan PHP dan Vue untuk membangunkan mekanisme pengendalian pengecualian untuk kehadiran pekerja dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn