卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章22016本站已运行3417

如何利用PHP和Vue搭建在线员工考勤录入界面

如何利用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开发一个简单的文件下载功能
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏