首頁  >  文章  >  後端開發  >  如何利用PHP和Vue搭建線上員工考勤輸入介面

如何利用PHP和Vue搭建線上員工考勤輸入介面

WBOY
WBOY原創
2023-09-26 19:25:511294瀏覽

如何利用PHP和Vue搭建線上員工考勤輸入介面

如何利用PHP和Vue建立線上員工考勤輸入介面

在現代企業中,員工考勤是管理人員必須面對和解決的問題。隨著科技的發展,傳統的紙本考勤已逐漸被電子考勤系統所取代。而建立一個線上員工考勤輸入介面是一個非常實用的方法,它可以方便管理人員記錄員工的考勤情況並進行統計分析。本文將介紹如何利用PHP和Vue建構這樣一個線上錄入介面,並給出具體的程式碼範例。

1.前期準備

首先確保你已經正確安裝了PHP和Vue的運作環境。 PHP是一種伺服器端腳本語言,而Vue是一種流行的JavaScript框架,它提供了建立使用者介面的工具。

2.建立資料庫

首先我們需要建立一個名為"attendance"的資料庫,在其中建立一個名為"employees"的表。該表將包含員工的基本訊息,如員工編號、姓名等,以及考勤資料。具體的表格結構如下:

CREATE TABLE employees (
  id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  emp_id INT(11) UNSIGNED,
  name VARCHAR(50),
  attendance_date DATE,
  time_in TIME,
  time_out TIME
);

3.後端開發

我們使用PHP來處理後端邏輯。首先建立一個名為"index.php"的文件,並新增以下程式碼:

<?php
 
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

$host = "localhost";
$db_name = "attendance";
$username = "root";
$password = "";

$conn = new PDO("mysql:host=".$host.";dbname=".$db_name, $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$data = json_decode(file_get_contents("php://input"));

$emp_id = $data->emp_id;
$name = $data->name;
$attendance_date = $data->attendance_date;
$time_in = $data->time_in;
$time_out = $data->time_out;

$query = "INSERT INTO employees (emp_id, name, attendance_date, time_in, time_out) VALUES (:emp_id, :name, :attendance_date, :time_in, :time_out)";
$stmt = $conn->prepare($query);
$stmt->bindParam(":emp_id", $emp_id);
$stmt->bindParam(":name", $name);
$stmt->bindParam(":attendance_date", $attendance_date);
$stmt->bindParam(":time_in", $time_in);
$stmt->bindParam(":time_out", $time_out);

if($stmt->execute()){
    http_response_code(201);
    echo json_encode(array("message" => "Attendance record was created."));
}
else{
    http_response_code(503);
    echo json_encode(array("message" => "Unable to create attendance record."));
}
?>

以上程式碼首先設定了回應頭,允許跨網域請求。然後連接到資料庫,將接收到的資料解析為JSON格式,並將它們插入employees表中。

4.前端開發

在前端部分,我們使用Vue來建立使用者介面。使用Vue CLI快速建立專案並安裝axios 插件,你可以在終端機中執行以下命令:

vue create attendance
cd attendance
npm install axios

接下來我們需要修改src/App.vue 檔案並新增以下程式碼:

<template>
  <div id="app">
    <h1>员工考勤录入</h1>

    <form @submit.prevent="submit">
      <label for="emp_id">员工编号:</label>
      <input type="text" v-model="emp_id"> <br>

      <label for="name">员工姓名:</label>
      <input type="text" v-model="name"> <br>

      <label for="attendance_date">考勤日期:</label>
      <input type="date" v-model="attendance_date"> <br>

      <label for="time_in">签到时间:</label>
      <input type="time" v-model="time_in"> <br>

      <label for="time_out">签退时间:</label>
      <input type="time" v-model="time_out"> <br>

      <button type="submit">提交</button>
    </form>

    <p v-if="message">{{ message }}</p>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'App',
  data() {
    return {
      emp_id: '',
      name: '',
      attendance_date: '',
      time_in: '',
      time_out: '',
      message: ''
    }
  },
  methods: {
    submit() {
      axios.post('http://localhost/index.php', {
        emp_id: this.emp_id,
        name: this.name,
        attendance_date: this.attendance_date,
        time_in: this.time_in,
        time_out: this.time_out
      })
        .then(response => {
          this.message = response.data.message
        })
        .catch(error => {
          this.message = error.response.data.message
        })
    }
  }
}
</script>

<style>
#app {
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  margin-top: 60px;
}
</style>

以上程式碼建立了一個簡單的表單,包含員工編號、姓名、考勤日期、簽到時間和簽退時間等欄位。當點擊提交按鈕時,會透過axios發送POST請求到後端的index.php檔案。接收到回應後,會在介面上顯示對應的提示訊息。

5.運行與測試

在終端機中執行以下指令啟動前端頁面:

npm run serve

同時,你需要將後端檔index.php放在Apache或Nginx伺服器的根目錄下。確保你已經啟動了Web伺服器和MySQL伺服器。

透過造訪 http://localhost:8080,你應該可以看到一個簡單的考勤輸入介面。當填寫完表單並點擊提交後,對應的考勤記錄將會儲存到資料庫中。

總結

本文介紹如何利用PHP和Vue建立一個線上員工考勤輸入介面。我們創建了一個包含員工基本資訊和考勤資料的表,使用PHP處理後端邏輯,並使用Vue建立使用者介面。透過這個介面,管理人員可以方便地輸入員工的考勤記錄。希望這個實例能幫助讀者更理解如何利用PHP和Vue進行Web開發。

以上是如何利用PHP和Vue搭建線上員工考勤輸入介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn