133 lines
5.1 KiB
Vue
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> |