


Bagaimana untuk menjana proses permohonan lebih masa untuk kehadiran pekerja melalui PHP dan Vue
Cara menjana proses permohonan lebih masa untuk kehadiran pekerja melalui PHP dan Vue
Dengan pecutan kadar kerja dan peningkatan tekanan di tempat kerja, kerja lebih masa Ia telah menjadi kebiasaan bagi ramai pekerja. Penyeragaman dan pengurusan proses permohonan lebih masa pekerja bukan sahaja dapat meningkatkan kecekapan kerja, tetapi juga melindungi hak dan kepentingan pekerja. Artikel ini memperkenalkan cara menggunakan PHP dan Vue untuk menjana proses permohonan lebih masa untuk kehadiran pekerja.
Langkah 1: Wujudkan pangkalan data
Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat kehadiran pekerja dan rekod permohonan kerja lebih masa. Anda boleh menggunakan MySQL atau sistem pengurusan pangkalan data lain untuk mencipta pangkalan data bernama "kehadiran" dan mencipta dua jadual dalam pangkalan data: pekerja dan permintaan_lebih masa.
Struktur pekerja meja pekerja adalah seperti berikut:
CREATE TABLE employees ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), department VARCHAR(50), position VARCHAR(50) );
Struktur borang permohonan lebih masa_permintaan lebih masa adalah seperti berikut:
CREATE TABLE overtime_requests ( id INT PRIMARY KEY AUTO_INCREMENT, employee_id INT, overtime_date DATE, overtime_hours INT, reason VARCHAR(100), status VARCHAR(20) );
Step 2: Pembangunan bahagian belakang#🎜🎜 #Seterusnya, kami menggunakan PHP untuk mengendalikan logik bahagian belakang. Buat fail bernama "overtime.php" untuk mengendalikan operasi yang berkaitan dengan aplikasi lebih masa. Berikut ialah contoh kod:
<?php // 连接数据库 $connection = new mysqli("localhost", "username", "password", "attendance"); // 获取员工列表 function getEmployees() { global $connection; $query = "SELECT * FROM employees"; $result = $connection->query($query); $employees = []; while ($row = $result->fetch_assoc()) { $employees[] = $row; } return $employees; } // 提交加班申请 function submitOvertimeRequest($employeeId, $overtimeDate, $overtimeHours, $reason) { global $connection; $query = "INSERT INTO overtime_requests (employee_id, overtime_date, overtime_hours, reason, status) VALUES ('$employeeId', '$overtimeDate', '$overtimeHours', '$reason', 'pending')"; $result = $connection->query($query); return $result; } // 获取加班申请列表 function getOvertimeRequests() { global $connection; $query = "SELECT * FROM overtime_requests"; $result = $connection->query($query); $overtimeRequests = []; while ($row = $result->fetch_assoc()) { $overtimeRequests[] = $row; } return $overtimeRequests; } // 更新加班申请状态 function updateOvertimeRequestStatus($requestId, $status) { global $connection; $query = "UPDATE overtime_requests SET status = '$status' WHERE id = '$requestId'"; $result = $connection->query($query); return $result; } ?>
Kini, kami menggunakan Vue untuk mengendalikan interaksi dan paparan bahagian hadapan. Cipta fail bernama "overtime.vue" untuk memproses logik bahagian hadapan bagi aplikasi lebih masa. Berikut ialah contoh kod:
<template> <div> <h2 id="加班申请">加班申请</h2> <form @submit="submitRequest"> <label for="employee">员工:</label> <select v-model="selectedEmployee" id="employee" required> <option v-for="employee in employees" :value="employee.id">{{ employee.name }}</option> </select> <br> <label for="date">加班日期:</label> <input v-model="selectedDate" type="date" id="date" required> <br> <label for="hours">加班小时数:</label> <input v-model="hours" type="number" id="hours" required> <br> <label for="reason">加班原因:</label> <textarea v-model="reason" id="reason" required></textarea> <br> <button type="submit">提交申请</button> </form> <h2 id="加班申请列表">加班申请列表</h2> <table> <thead> <tr> <th>员工</th> <th>加班日期</th> <th>加班小时数</th> <th>加班原因</th> <th>状态</th> </tr> </thead> <tbody> <tr v-for="request in requests" :key="request.id"> <td>{{ request.employee_id }}</td> <td>{{ request.overtime_date }}</td> <td>{{ request.overtime_hours }}</td> <td>{{ request.reason }}</td> <td>{{ request.status }}</td> </tr> </tbody> </table> </div> </template> <script> import axios from 'axios'; export default { data() { return { employees: [], selectedEmployee: '', selectedDate: '', hours: 0, reason: '', requests: [] }; }, mounted() { this.getEmployees(); this.getRequests(); }, methods: { getEmployees() { axios.get('overtime.php?action=getEmployees') .then(response => { this.employees = response.data; }) .catch(error => { console.error(error); }); }, submitRequest() { const data = { employeeId: this.selectedEmployee, overtimeDate: this.selectedDate, overtimeHours: this.hours, reason: this.reason }; axios.post('overtime.php?action=submitRequest', data) .then(response => { this.getRequests(); this.clearForm(); }) .catch(error => { console.error(error); }); }, getRequests() { axios.get('overtime.php?action=getRequests') .then(response => { this.requests = response.data; }) .catch(error => { console.error(error); }); }, clearForm() { this.selectedEmployee = ''; this.selectedDate = ''; this.hours = 0; this.reason = ''; } } }; </script>
Akhir sekali, kita perlu menambah penghalaan dan antara muka pada projek untuk menunjukkan proses permohonan lebih masa. Anda boleh menggunakan Penghala Vue untuk melompat dan memaparkan halaman.
import Vue from 'vue'; import VueRouter from 'vue-router'; import Overtime from './components/Overtime.vue'; Vue.use(VueRouter); const routes = [ { path: '/', name: 'overtime', component: Overtime } ]; const router = new VueRouter({ routes }); new Vue({ router, render: h => h(App) }).$mount('#app');
<template> <div id="app"> <router-view></router-view> </div> </template>
Atas ialah kandungan terperinci Bagaimana untuk menjana proses permohonan lebih masa untuk kehadiran pekerja melalui PHP dan Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Dalam PHP, kata kunci akhir digunakan untuk mencegah kelas daripada diwarisi dan kaedah ditimpa. 1) Apabila menandakan kelas sebagai muktamad, kelas tidak boleh diwarisi. 2) Apabila menandakan kaedah sebagai muktamad, kaedah itu tidak boleh ditulis semula oleh subkelas. Menggunakan kata kunci akhir memastikan kestabilan dan keselamatan kod anda.

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

Pagination adalah teknologi yang memisahkan set data besar ke dalam halaman kecil untuk meningkatkan prestasi dan pengalaman pengguna. Di VUE, anda boleh menggunakan kaedah terbina dalam berikut untuk paging: Kirakan jumlah halaman: TotalPages () Traversal Page Number: V-For Directive Untuk menetapkan halaman semasa: CurrentPage Dapatkan data halaman semasa: CurrentPagedata ()

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

Pemintasan fungsi dalam VUE adalah teknik yang digunakan untuk mengehadkan bilangan kali fungsi dipanggil dalam tempoh masa yang ditentukan dan mencegah masalah prestasi. Kaedah pelaksanaan adalah: mengimport perpustakaan lodash: import {debounce} dari 'lodash'; Gunakan fungsi debounce untuk membuat fungsi memintas: const debouncedfunction = debounce (() = & gt; { / logical /}, 500); Panggil fungsi Intercept, dan fungsi kawalan dipanggil paling banyak sekali dalam 500 milisaat.

Loop foreach di vue.js menggunakan arahan V-untuk, yang membolehkan pemaju meleleh melalui setiap elemen dalam array atau objek dan melakukan operasi tertentu pada setiap elemen. Sintaks adalah seperti berikut: & lt; template & gt; & lt; ul & gt; & lt; li v-for = & quot; item dalam item & gt; & gt; {{item}} & lt;/li & gt; & lt;/ul & gt; & lt;/template & gt; & am
