Files
E-Vote/resources/assets/js/components/demo/voter/home/attendance.vue
T
nurafrinaalimi16 942c7fe1ff edit attendance page
2025-04-21 23:33:29 +08:00

133 lines
5.1 KiB
Vue

<template>
<div class="row col-md-10 col-md-offset-1">
<div class="col-md-12">
<h4 class="text-center fw-bold">PENGESAHAN KEHADIRAN</h4>
<hr />
<h5 class="text-center">
<a href="https://drive.google.com/uc?export=download&id=1O5DVDIbGy-w0bejV6RqtJGIty-_5LJD8"
target="_blank"
style="font-weight: bold; text-decoration: none; padding: 10px 20px; border: 2px solid #007bff; color: #007bff; border-radius: 5px; display: inline-block;">
Muat Turun Etika Mesyuarat Agung
</a>
</h5>
<form @submit.prevent="edit()" id="edit_form">
<div class="form-group">
<label for="name">Nama : </label>
<input type="text" name="name" class="form-control" readonly :value="data.user.name" required />
</div>
<div class="form-group">
<label for="no_kp">No. Kad Pengenalan :</label>
<input type="text" name="no_kp" class="form-control" readonly :value="data.user.no_kp" required />
</div>
<div class="form-group">
<label for="no_anggota">No. Anggota : </label>
<input type="text" name="no_anggota" class="form-control" readonly :value="data.user.no_anggota"
required />
</div>
<div class="form-group">
<label for="no_anggota">Unit : </label>
<input type="text" name="unit" class="form-control" readonly :value="data.user.unit" required />
</div>
<div class="form-group">
<label for="role">Kehadiran :</label>
<select class="form-control" id="kehadiran" name="kehadiran" value="" required>
<option value="0">Sila Pilih :</option>
<option value="1">Fizikal</option>
<option value="2">Maya</option>
</select>
</div>
<div class="alert alert-info mt-4 small">
<p><strong>*</strong> Pendaftaran akan dibuka dari <strong>jam 7.00 pagi hingga 10.00 pagi (25 April
2025)</strong>.</p>
<p>
<strong>*</strong> Elaun kehadiran berjumlah <strong>RM300.00 (secara fizikal)</strong> akan
diberikan secara TUNAI selepas mesyuarat. <br />
Manakala <strong>RM150.00 (secara atas talian)</strong> akan dikreditkan ke akaun anggota yang
hadir penuh.
</p>
</div>
<br>
<div class="text-center mt-4">
<!-- If already confirmed attendance -->
<div v-if="data.user.kehadiran != 0" class="alert alert-success fw-bold">
KEHADIRAN ANDA TELAH DISAHKAN SECARA
<strong class="text-uppercase">
{{ data.user.kehadiran == 1 ? 'FIZIKAL' : 'MAYA' }}
</strong>
<div class="mt-2 text-dark fw-normal">
Sila ke tab <strong>Undian</strong> untuk mengundi.
</div>
</div>
<!-- If not yet confirmed attendance -->
<button type="submit" class="btn btn-lg btn-success px-5" v-else-if="data.election.status == 2">
SAYA TERIMA
</button>
</div>
</form>
</div>
</div>
</template>
<script>
export default {
data: function () {
return {
loading: false,
userSubmitted: false // Add a flag to track if the user has already submitted
}
},
methods: {
// refreshUser: function () {
// var vm = this;
// axios.get(config.API + 'voter/' + this.data.user.id)
// .then(response => {
// vm.data.user = response.data;
// console.log(response.data)
// })
// },
edit: function () {
if (this.loading) return;
this.loading = true;
var vm = this;
this.util.notify('Adding Attendance', 'loading');
axios.put(config.API + 'attendance/' + this.data.user.id, $('#edit_form').serialize())
.then(response => {
$.notifyClose();
vm.loading = false;
if (vm.util.showResult(response, 'success')) {
// ✅ Redirect to vote page
location.reload();
vm.$router.push({ name: 'Vote' }); // OR use path: vm.$router.push('/vote');
}
})
.catch(error => {
$.notifyClose();
vm.loading = false;
vm.util.showResult(error, 'error');
});
}
}
}
</script>