perbarui tampilan prt 3
This commit is contained in:
parent
d2e645c206
commit
62c5887282
|
|
@ -5,344 +5,156 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>PosSehat - Login</title>
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
|
||||
<!-- Font Awesome -->
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet"/>
|
||||
|
||||
<style>
|
||||
body {
|
||||
background-color: #f0f8ff;
|
||||
font-family: 'Segoe UI', sans-serif;
|
||||
background-color: #fffaf7; /* Warna oranye sangat muda */
|
||||
font-family: 'Poppins', sans-serif;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: bold;
|
||||
font-size: 1.5rem;
|
||||
color: #ff5757;
|
||||
}
|
||||
|
||||
.navbar-brand span {
|
||||
color: #ff5757;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: #ff5757;
|
||||
}
|
||||
/* Navbar Brand */
|
||||
.navbar-brand { font-weight: bold; font-size: 1.5rem; color: #FF782D !important; }
|
||||
.nav-link { font-weight: 500; color: #333 !important; }
|
||||
.nav-link:hover { color: #FF782D !important; }
|
||||
|
||||
/* Buttons */
|
||||
.btn-primary {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
background: #FF782D;
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
background: #e66a25;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(255, 120, 45, 0.3);
|
||||
}
|
||||
|
||||
.hero-section {
|
||||
background-color: #fff7f2;
|
||||
min-height: 100vh; /* agar tetap bisa lebih tinggi dari viewport jika konten bertambah */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 100px; /* agar konten tidak tertutup navbar fixed-top */
|
||||
}
|
||||
|
||||
.card {
|
||||
/* Hero & Card */
|
||||
.hero-section {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 80px;
|
||||
}
|
||||
.login-card {
|
||||
background-color: #ffffff;
|
||||
padding: 2rem;
|
||||
padding: 2.5rem;
|
||||
border: none;
|
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.hero-section {
|
||||
padding-top: 120px;
|
||||
flex-direction: column;
|
||||
align-items: start;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: 1px solid #ddd;
|
||||
padding: 12px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: #ff5757;
|
||||
box-shadow: 0 0 0 0.2rem rgba(94, 121, 255, 0.25);
|
||||
border-color: #FF782D;
|
||||
box-shadow: 0 0 0 0.25rem rgba(255, 120, 45, 0.1);
|
||||
}
|
||||
|
||||
/* Animasi Lingkaran */
|
||||
.circle-background {
|
||||
position: absolute;
|
||||
top: 30%;
|
||||
left: 10%;
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
background: rgba(173, 216, 230, 0.2);
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 350px;
|
||||
height: 350px;
|
||||
background: rgba(255, 120, 45, 0.08);
|
||||
border-radius: 50%;
|
||||
animation: expandCircle 3s ease-in-out infinite;
|
||||
z-index: -1;
|
||||
animation: expandCircle 4s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes expandCircle {
|
||||
0% { width: 250px; height: 250px; }
|
||||
50% { width: 300px; height: 300px; }
|
||||
100% { width: 250px; height: 250px; }
|
||||
0%, 100% { transform: translate(-50%, -50%) scale(1); }
|
||||
50% { transform: translate(-50%, -50%) scale(1.2); }
|
||||
}
|
||||
|
||||
.animated {
|
||||
opacity: 0;
|
||||
/* Animasi Muncul */
|
||||
.animate-up {
|
||||
animation: fadeInUp 1s forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInUp {
|
||||
from { opacity: 0; transform: translateY(20px); }
|
||||
from { opacity: 0; transform: translateY(30px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
.image-container img {
|
||||
max-width: 100%;
|
||||
border-radius: 1rem;
|
||||
animation-delay: 1.5s;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
border: none;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
}
|
||||
|
||||
.hero-section {
|
||||
background-color: #fff7f2;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.hero-section img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-weight: bold;
|
||||
color: #27304b;
|
||||
}
|
||||
|
||||
.service-card {
|
||||
border-radius: 16px;
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: #d47c64;
|
||||
color: #fff;
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.footer a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.circle-background {
|
||||
position: absolute;
|
||||
top: 30%;
|
||||
left: 10%;
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
background: #ffeadc(173, 216, 230, 0.2);
|
||||
border-radius: 50%;
|
||||
animation: expandCircle 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes expandCircle {
|
||||
0% {
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
50% {
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
.gradient-icon {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
/* -webkit-background-clip: text; */
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.fade-left,
|
||||
.fade-right,
|
||||
.fade-up {
|
||||
opacity: 0;
|
||||
transition: opacity 1s ease-out;
|
||||
}
|
||||
|
||||
.fade-left.animate__fadeInLeft {
|
||||
animation: fadeInLeft 1s forwards;
|
||||
}
|
||||
|
||||
.fade-right.animate__fadeInRight {
|
||||
animation: fadeInRight 1s forwards;
|
||||
}
|
||||
|
||||
.fade-up.animate__fadeInUp {
|
||||
animation: fadeInUp 1s forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInLeft {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(-50px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInRight {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(50px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.shadow-card {
|
||||
box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.2);
|
||||
height: 300px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.shadow-card:hover {
|
||||
box-shadow: 0px 12px 25px rgba(0, 0, 0, 0.15);
|
||||
transform: translateY(-5px);
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: bold;
|
||||
font-size: 1.5rem;
|
||||
color: #ff5757;
|
||||
}
|
||||
|
||||
.navbar-brand span {
|
||||
color: #00bcd4;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: #ff5757;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Navbar langsung dalam file -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-white py-3 shadow-sm fixed-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="/">PosSehat<span></span></a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<a class="navbar-brand" href="/">PosSehat</a>
|
||||
<div class="collapse navbar-collapse justify-content-end">
|
||||
<ul class="navbar-nav align-items-center">
|
||||
<li class="nav-item"><a class="nav-link" href="/">Beranda</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#fiturutama">Fitur</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#footer">Kontak</a></li>
|
||||
<li class="nav-item"><a class="btn btn-primary rounded-pill px-4 ms-3" href="/login">Login</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Login Section -->
|
||||
<section class="hero-section">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="row align-items-center g-5">
|
||||
|
||||
<!-- Image -->
|
||||
<div class="col-md-6 text-center">
|
||||
<div class="image-container position-relative">
|
||||
<img src="assets/img/posyandu.png" alt="Login Illustration" class="animated fadeInUp">
|
||||
<!-- <div class="circle-background"></div> -->
|
||||
<div class="col-md-6 text-center position-relative d-none d-md-block">
|
||||
<div class="circle-background"></div>
|
||||
<div class="image-container animate-up">
|
||||
<img src="{{ asset('assets/img/posyandu.png') }}" alt="PosSehat Illustration">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Login Form -->
|
||||
<div class="col-md-6">
|
||||
<div class="card shadow-lg animated" style="animation-delay: 1s;">
|
||||
<h3 class="text-center fw-bold mb-3 " style="animation-delay: 0.5s; color: #ff5757">Selamat Datang</h3>
|
||||
<p class="text-center text-muted mb-4 animated" style="animation-delay: 0.7s;">Silakan masuk untuk melanjutkan</p>
|
||||
<div class="login-card animate-up" style="animation-delay: 0.3s;">
|
||||
<div class="mb-4">
|
||||
<h3 class="fw-bold" style="color: #FF782D">Selamat Datang</h3>
|
||||
<p class="text-muted">Silakan masuk ke akun petugas Anda</p>
|
||||
</div>
|
||||
|
||||
@if(session('error'))
|
||||
<div class="alert alert-danger">
|
||||
{{ session('error') }}
|
||||
<div class="alert alert-danger border-0 small" style="border-radius: 10px;">
|
||||
<i class="bi bi-exclamation-triangle me-2"></i> {{ session('error') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form action="/proseslogin" method="POST">
|
||||
@csrf
|
||||
<div class="mb-3 animated" style="animation-delay: 0.9s;">
|
||||
<label for="email" class="form-label">Email</label>
|
||||
<input type="email" class="form-control rounded-3" id="email" name="email" placeholder="Masukkan email Anda" required>
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label small fw-bold text-muted">Email</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white border-end-0 text-muted"><i class="bi bi-envelope"></i></span>
|
||||
<input type="email" class="form-control border-start-0" id="email" name="email" placeholder="nama@email.com" required>
|
||||
</div>
|
||||
<div class="mb-3 animated" style="animation-delay: 1.1s;">
|
||||
<label for="password" class="form-label">Password</label>
|
||||
<input type="password" class="form-control rounded-3" id="password" name="password" placeholder="Masukkan password Anda" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="password" class="form-label small fw-bold text-muted">Password</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white border-end-0 text-muted"><i class="bi bi-lock"></i></span>
|
||||
<input type="password" class="form-control border-start-0" id="password" name="password" placeholder="••••••••" required>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary w-100 rounded-pill mt-3 animated" style="animation-delay: 1.3s;">Masuk</button>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary w-100 rounded-pill py-2 shadow-sm">
|
||||
Masuk Sekarang <i class="bi bi-arrow-right-short ms-1"></i>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="text-center mt-4 animated" style="animation-delay: 1.5s;">
|
||||
<a href="#" class="text-muted small">Lupa password?</a>
|
||||
|
||||
<div class="text-center mt-4">
|
||||
<a href="#" class="text-muted small text-decoration-none">Lupa password? Hubungi Admin</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -351,7 +163,6 @@
|
|||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Bootstrap JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -8,328 +8,291 @@
|
|||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/animate.css@4.1.1/animate.min.css" rel="stylesheet" />
|
||||
<style>
|
||||
/* === Styles kamu yang lama dipertahankan === */
|
||||
body {
|
||||
font-family: 'Segoe UI', sans-serif;
|
||||
background-color: #f8f9ff;
|
||||
}
|
||||
<style>
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Poppins', 'Segoe UI', sans-serif; /* Poppins terasa lebih modern */
|
||||
background-color: #ffffff;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
border: none;
|
||||
}
|
||||
section {
|
||||
scroll-margin-top: 100px;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
}
|
||||
/* Warna Utama: Oranye PosSehat */
|
||||
.btn-primary {
|
||||
background: #FF782D;
|
||||
border: none;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-section {
|
||||
background-color: #fff7f2;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.btn-primary:hover {
|
||||
background: #e66a25;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(255, 120, 45, 0.3);
|
||||
}
|
||||
|
||||
.hero-section img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.hero-section {
|
||||
background-color: #fffaf7; /* Oranye sangat muda */
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-weight: bold;
|
||||
color: #27304b;
|
||||
}
|
||||
.section-title {
|
||||
font-weight: 800;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
.service-card {
|
||||
border-radius: 16px;
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.fitur-scroll {
|
||||
padding-top: 100px; /* Jarak agar konten turun */
|
||||
margin-top: -100px; /* Menarik section kembali ke atas secara layout */
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: #d47c64;
|
||||
color: #fff;
|
||||
padding: 40px 0;
|
||||
}
|
||||
.service-card {
|
||||
border-radius: 20px;
|
||||
padding: 30px;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.service-card:hover {
|
||||
transform: translateY(-10px);
|
||||
box-shadow: 0 15px 35px rgba(255, 120, 45, 0.1);
|
||||
}
|
||||
|
||||
.footer a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.footer {
|
||||
background-color: #2c3e50; /* Gelap elegan agar oranye lebih menyala */
|
||||
color: #fff;
|
||||
padding: 60px 0 20px 0;
|
||||
}
|
||||
|
||||
.circle-background {
|
||||
position: absolute;
|
||||
top: 30%;
|
||||
left: 10%;
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
background: #ffeadc(173, 216, 230, 0.2);
|
||||
border-radius: 50%;
|
||||
animation: expandCircle 3s ease-in-out infinite;
|
||||
}
|
||||
.footer a { color: #bdc3c7; text-decoration: none; transition: 0.3s; }
|
||||
.footer a:hover { color: #FF782D; }
|
||||
|
||||
@keyframes expandCircle {
|
||||
0% {
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
50% {
|
||||
/* Perbaikan Lingkaran Background */
|
||||
.circle-background {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%); /* Menjaga di tengah */
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
}
|
||||
background: rgba(255, 120, 45, 0.1); /* Oranye transparan */
|
||||
border-radius: 50%;
|
||||
z-index: 1; /* Di bawah gambar */
|
||||
animation: expandCircle 4s ease-in-out infinite;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
}
|
||||
}
|
||||
@keyframes expandCircle {
|
||||
0%, 100% { transform: translate(-50%, -50%) scale(1); }
|
||||
50% { transform: translate(-50%, -50%) scale(1.3); }
|
||||
}
|
||||
|
||||
.gradient-icon {
|
||||
background: linear-gradient(90deg, #ff5757, #ff5757);
|
||||
/* -webkit-background-clip: text; */
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
/* Perbaikan Ikon Gradient */
|
||||
.gradient-icon {
|
||||
background: linear-gradient(135deg, #FF782D, #ffb38e);
|
||||
-webkit-background-clip: text; /* WAJIB ADA */
|
||||
-webkit-text-fill-color: transparent;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.fade-left,
|
||||
.fade-right,
|
||||
.fade-up {
|
||||
opacity: 0;
|
||||
transition: opacity 1s ease-out;
|
||||
}
|
||||
/* Navbar Style */
|
||||
.navbar-brand { font-weight: 800; color: #FF782D !important; letter-spacing: 1px; }
|
||||
.navbar-brand span { color: #2c3e50; }
|
||||
.nav-link { font-weight: 600; color: #555 !important; margin: 0 10px; }
|
||||
.nav-link:hover { color: #FF782D !important; }
|
||||
|
||||
.fade-left.animate__fadeInLeft {
|
||||
animation: fadeInLeft 1s forwards;
|
||||
}
|
||||
/* Animations Base */
|
||||
.fade-left, .fade-right, .fade-up { opacity: 0; }
|
||||
|
||||
.fade-right.animate__fadeInRight {
|
||||
animation: fadeInRight 1s forwards;
|
||||
}
|
||||
@keyframes myFadeInLeft {
|
||||
from { opacity: 0; transform: translateX(-50px); }
|
||||
to { opacity: 1; transform: translateX(0); }
|
||||
}
|
||||
@keyframes myFadeInRight {
|
||||
from { opacity: 0; transform: translateX(50px); }
|
||||
to { opacity: 1; transform: translateX(0); }
|
||||
}
|
||||
@keyframes myFadeInUp {
|
||||
from { opacity: 0; transform: translateY(50px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
.fade-up.animate__fadeInUp {
|
||||
animation: fadeInUp 1s forwards;
|
||||
}
|
||||
/* Class yang akan dipicu JavaScript */
|
||||
.show-now {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
.animate-left { animation: myFadeInLeft 1s forwards; }
|
||||
.animate-right { animation: myFadeInRight 1s forwards; }
|
||||
.animate-up { animation: myFadeInUp 1s forwards; }
|
||||
|
||||
@keyframes fadeInLeft {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(-50px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInRight {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(50px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.shadow-card {
|
||||
box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.2);
|
||||
height: 300px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.shadow-card:hover {
|
||||
box-shadow: 0px 12px 25px rgba(0, 0, 0, 0.15);
|
||||
transform: translateY(-5px);
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: bold;
|
||||
font-size: 1.5rem;
|
||||
color: #ff5757;
|
||||
}
|
||||
|
||||
.navbar-brand span {
|
||||
color: #00bcd4;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: #5e79ff;
|
||||
}
|
||||
|
||||
</style>
|
||||
/* Dasar transparan agar bisa dianimasikan */
|
||||
.fade-left, .fade-right, .fade-up {
|
||||
opacity: 0;
|
||||
transition: opacity 0.5s ease;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Navbar -->
|
||||
<!-- Navbar -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-white py-3 shadow-sm fixed-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="/">PosSehat<span></span></a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><a class="nav-link" href="/">Beranda</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#fiturutama">Fitur</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#footer">Kontak</a></li>
|
||||
<li class="nav-item"><a class="btn btn-primary rounded-pill px-4 ms-3" href="/login">Login</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
<!-- Hero Section -->
|
||||
<section class="hero-section pt-5">
|
||||
<div class="container pt-5">
|
||||
<div class="row align-items-center pt-5">
|
||||
<div class="col-md-6 fade-left">
|
||||
<h1 class="mb-3 display-5 fw-bold text-dark">Sistem Informasi yang Mendukung Kegiatan Posyandu</h1>
|
||||
<p class="lead text-dark mb-4">Gunakan Teknologi untuk Meningkatkan Pendataan dan Pelayanan Posyandu Secara Efisien dan Terintegrasi.</p>
|
||||
</div>
|
||||
<div class="col-md-6 text-center fade-right">
|
||||
<div class="image-container position-relative">
|
||||
<img src="assets/img/posyandu.png" alt="Anak" class="img-fluid animated fadeInUp" style="animation-delay: 1.5s;">
|
||||
<div class="circle-background"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Fitur -->
|
||||
<section class="py-5" id="fiturutama">
|
||||
<div class="container">
|
||||
<h3 class="section-title text-center mb-5 display-6 fade-up">Fitur Utama</h3>
|
||||
<div class="row g-5">
|
||||
|
||||
<!-- Fitur 1 -->
|
||||
<div class="col-md-4 fade-left">
|
||||
<div class="service-card text-center h-100 p-4">
|
||||
<div class="mb-4">
|
||||
<i class="fas fa-chart-line fa-3x gradient-icon"></i>
|
||||
</div>
|
||||
<h5 class="fw-bold mb-3">Pencatatan Data Balita</h5>
|
||||
<p class="text-muted">Catat informasi balita dengan cepat, mulai dari identitas hingga status pertumbuhannya.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fitur 2 -->
|
||||
<div class="col-md-4 fade-up">
|
||||
<div class="service-card text-center h-100 p-4">
|
||||
<div class="mb-4">
|
||||
<i class="fas fa-book-open fa-3x gradient-icon"></i>
|
||||
</div>
|
||||
<h5 class="fw-bold mb-3">Deteksi Stunting</h5>
|
||||
<p class="text-muted">Lakukan deteksi stunting berdasarkan data berat, tinggi, dan usia balita secara otomatis.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fitur 3 -->
|
||||
<div class="col-md-4 fade-right">
|
||||
<div class="service-card text-center h-100 p-4">
|
||||
<div class="mb-4">
|
||||
<i class="fas fa-hospital-alt fa-3x gradient-icon"></i>
|
||||
</div>
|
||||
<h5 class="fw-bold mb-3">Pencatatan Ibu Hamil</h5>
|
||||
<p class="text-muted">Pantau kondisi ibu hamil dengan pencatatan kehamilan secara sistematis dan rapi.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="footer" id="footer">
|
||||
<!-- Navbar -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-white py-3 shadow-sm fixed-top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h5>PosSehat<span class="text-info">.</span></h5>
|
||||
<p>Perum Villa Kembang Asri Sukowiryo, Kec. Bondowoso, Kabupaten Bondowoso, Jawa Timur 68219</p>
|
||||
<div>
|
||||
<a href="#"><i class="fab fa-facebook-f me-3"></i></a>
|
||||
<a href="#"><i class="fab fa-instagram me-3"></i></a>
|
||||
<a href="#"><i class="fab fa-twitter"></i></a>
|
||||
</div>
|
||||
<a class="navbar-brand" href="/">PosSehat<span></span></a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><a class="nav-link" href="/">Beranda</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#fiturutama">Fitur</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#footer">Kontak</a></li>
|
||||
<li class="nav-item"><a class="btn btn-primary rounded-pill px-4 ms-3" href="/login">Login</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<h6>Informasi</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="#">Tentang Kami</a></li>
|
||||
<li><a href="#">Blog</a></li>
|
||||
<li><a href="#">Pusat Bantuan</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6>Wilayah Layanan</h6>
|
||||
<p>Bondowoso, Jawa Timur</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6>Kontak</h6>
|
||||
<p>+6285646546543<br>info@possehat.id<br>Telp: +6285331904446</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-4">
|
||||
<small>© PosSehat 2026</small>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</nav>
|
||||
|
||||
|
||||
<section class="hero-section">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-6 fade-left">
|
||||
<h1 class="mb-3 display-4 fw-bold text-dark">Sistem Informasi Digital <span style="color: #FF782D;">PosSehat</span></h1>
|
||||
<p class="lead text-muted mb-4">Gunakan teknologi untuk meningkatkan efisiensi pendataan dan deteksi dini kesehatan Ibu & Balita di Posyandu.</p>
|
||||
<div class="d-flex gap-3">
|
||||
<a href="/login" class="btn btn-primary btn-lg rounded-pill px-5">Mulai Sekarang</a>
|
||||
<a href="#fiturutama" class="btn btn-outline-secondary btn-lg rounded-pill px-4">Pelajari Fitur</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 text-center fade-right position-relative">
|
||||
<div class="circle-background"></div>
|
||||
<img src="assets/img/posyandu.png" alt="Posyandu" class="img-fluid position-relative" style="z-index: 2;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Fitur -->
|
||||
<section class="py-3" id="fiturutama">
|
||||
<div class="container">
|
||||
<h3 class="section-title text-center mb-5 display-6 fade-up">Fitur Utama</h3>
|
||||
<div class="row g-5">
|
||||
|
||||
<!-- Fitur 1 -->
|
||||
<div class="col-md-4 fade-left">
|
||||
<div class="service-card text-center h-100 p-4">
|
||||
<div class="mb-4">
|
||||
<i class="fas fa-chart-line fa-3x gradient-icon"></i>
|
||||
</div>
|
||||
<h5 class="fw-bold mb-3">Pencatatan Data Balita</h5>
|
||||
<p class="text-muted">Catat informasi balita dengan cepat, mulai dari identitas hingga status pertumbuhannya.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fitur 2 -->
|
||||
<div class="col-md-4 fade-up">
|
||||
<div class="service-card text-center h-100 p-4">
|
||||
<div class="mb-4">
|
||||
<i class="fas fa-book-open fa-3x gradient-icon"></i>
|
||||
</div>
|
||||
<h5 class="fw-bold mb-3">Deteksi Stunting</h5>
|
||||
<p class="text-muted">Lakukan deteksi stunting berdasarkan data berat, tinggi, dan usia balita secara otomatis.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fitur 3 -->
|
||||
<div class="col-md-4 fade-right">
|
||||
<div class="service-card text-center h-100 p-4">
|
||||
<div class="mb-4">
|
||||
<i class="fas fa-hospital-alt fa-3x gradient-icon"></i>
|
||||
</div>
|
||||
<h5 class="fw-bold mb-3">Pencatatan Ibu Hamil</h5>
|
||||
<p class="text-muted">Pantau kondisi ibu hamil dengan pencatatan kehamilan secara sistematis dan rapi.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="footer" id="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h5>PosSehat<span class="text-info">.</span></h5>
|
||||
<p>Perum Villa Kembang Asri Sukowiryo, Kec. Bondowoso, Kabupaten Bondowoso, Jawa Timur 68219</p>
|
||||
<div>
|
||||
<a href="#"><i class="fab fa-facebook-f me-3"></i></a>
|
||||
<a href="#"><i class="fab fa-instagram me-3"></i></a>
|
||||
<a href="#"><i class="fab fa-twitter"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<h6>Informasi</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="#">Tentang Kami</a></li>
|
||||
<li><a href="#">Blog</a></li>
|
||||
<li><a href="#">Pusat Bantuan</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6>Wilayah Layanan</h6>
|
||||
<p>Bondowoso, Jawa Timur</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6>Kontak</h6>
|
||||
<p>+6285646546543<br>info@possehat.id<br>Telp: +6285331904446</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-4">
|
||||
<small>© PosSehat 2026</small>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script>
|
||||
// Scroll animation handler
|
||||
const addFadeInClass = (entries, observer) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
const section = entry.target;
|
||||
if (section.classList.contains('fade-left')) {
|
||||
section.classList.add('animate__fadeInLeft');
|
||||
} else if (section.classList.contains('fade-right')) {
|
||||
section.classList.add('animate__fadeInRight');
|
||||
} else if (section.classList.contains('fade-up')) {
|
||||
section.classList.add('animate__fadeInUp');
|
||||
}
|
||||
observer.unobserve(section);
|
||||
}
|
||||
});
|
||||
};
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
const observerOptions = {
|
||||
threshold: 0.1 // 10% muncul di layar langsung gerak
|
||||
};
|
||||
|
||||
const observer = new IntersectionObserver(addFadeInClass, { threshold: 0.5 });
|
||||
document.querySelectorAll('.fade-left, .fade-right, .fade-up').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
const el = entry.target;
|
||||
// Paksa opacity jadi 1
|
||||
el.classList.add('show-now');
|
||||
|
||||
// Tambahkan animasi sesuai class awal
|
||||
if (el.classList.contains('fade-left')) el.classList.add('animate-left');
|
||||
if (el.classList.contains('fade-right')) el.classList.add('animate-right');
|
||||
if (el.classList.contains('fade-up')) el.classList.add('animate-up');
|
||||
|
||||
observer.unobserve(el);
|
||||
}
|
||||
});
|
||||
}, observerOptions);
|
||||
|
||||
// Ambil semua elemen yang mau dianimasikan
|
||||
document.querySelectorAll('.fade-left, .fade-right, .fade-up').forEach(el => {
|
||||
observer.observe(el);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,50 +1,88 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Laporan Hasil Pengukuran Ibu Hamil</title>
|
||||
<title>Laporan Pengukuran Ibu Hamil - {{ $pengukuran->ibuHamil->nama ?? 'Data' }}</title>
|
||||
<style>
|
||||
body { font-family: sans-serif; font-size: 12px; }
|
||||
.header { text-align: center; margin-bottom: 20px; }
|
||||
.table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
|
||||
.table th, .table td { border: 1px solid #ddd; padding: 8px; text-align: left; }
|
||||
.table th { background-color: #f2f2f2; }
|
||||
.chart-container { text-align: center; margin-top: 20px; }
|
||||
.chart-image { width: 100%; max-width: 600px; border: 1px solid #eee; }
|
||||
.footer { margin-top: 30px; font-style: italic; font-size: 10px; }
|
||||
.text-bold { font-weight: bold; }
|
||||
body { font-family: 'Helvetica', 'Arial', sans-serif; font-size: 12px; color: #333; line-height: 1.5; }
|
||||
.header { text-align: center; margin-bottom: 25px; border-bottom: 2px solid #FF782D; padding-bottom: 10px; }
|
||||
.header h2 { color: #FF782D; margin: 0; text-transform: uppercase; font-size: 18px; }
|
||||
.header p { margin: 5px 0; color: #666; font-size: 10px; letter-spacing: 1px; }
|
||||
|
||||
.info-box {
|
||||
background-color: #fdf2f5; /* Pink muda khas Ibu Hamil */
|
||||
border-left: 5px solid #9c3a5b;
|
||||
padding: 10px;
|
||||
margin-bottom: 15px;
|
||||
background-color: #fff5f0; /* Oranye sangat muda */
|
||||
border-left: 5px solid #FF782D;
|
||||
padding: 12px;
|
||||
margin-bottom: 20px;
|
||||
font-size: 11px;
|
||||
line-height: 1.4;
|
||||
border-radius: 0 5px 5px 0;
|
||||
}
|
||||
|
||||
.table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
|
||||
.table th, .table td { border: 1px solid #eee; padding: 10px; text-align: left; }
|
||||
.table th { background-color: #fafafa; color: #555; font-weight: bold; width: 35%; }
|
||||
|
||||
.section-title {
|
||||
color: #FF782D;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid #ffccbc;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.chart-container { text-align: center; margin: 20px 0; padding: 10px; border: 1px solid #f9f9f9; }
|
||||
.chart-image { width: 100%; max-width: 580px; }
|
||||
|
||||
.edukasi-item { margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px dashed #eee; }
|
||||
.edukasi-item strong { color: #FF782D; font-size: 12px; }
|
||||
|
||||
.rekomendasi {
|
||||
margin-top: 20px;
|
||||
background-color: #fffaf0;
|
||||
border: 1px solid #ffeccb;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
color: #856404;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 40px;
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 10px;
|
||||
font-style: italic;
|
||||
font-size: 9px;
|
||||
color: #999;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-bold { font-weight: bold; }
|
||||
.status-text { color: #FF782D; font-weight: bold; font-size: 13px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 style="color: #9c3a5b;">LAPORAN HASIL PENGUKURAN IBU HAMIL</h2>
|
||||
<p>Aplikasi PosSehat - Kesehatan Ibu & Anak</p>
|
||||
<h2>LAPORAN HASIL PENGUKURAN IBU HAMIL</h2>
|
||||
<p>Aplikasi PosSehat Digital - Kesehatan Ibu & Anak</p>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<span class="text-bold">Panduan Indeks Massa Tubuh (IMT):</span><br>
|
||||
IMT digunakan untuk memantau apakah status gizi Ibu selama kehamilan berada dalam kondisi ideal.<br>
|
||||
• <span class="text-bold">Gizi Kurang:</span> < 18.5 |
|
||||
<span class="text-bold">Gizi Normal:</span> 18.5 - 24.9 |
|
||||
<span class="text-bold">Gizi Lebih:</span> 24.9 - 29.9 |
|
||||
<span class="text-bold">Obesitas:</span> > 29.9
|
||||
IMT memantau status gizi Ibu selama kehamilan:<br>
|
||||
• <span class="text-bold">Kurang:</span> < 18.5 |
|
||||
<span class="text-bold">Normal:</span> 18.5 - 24.9 |
|
||||
<span class="text-bold">Lebih:</span> 25.0 - 29.9 |
|
||||
<span class="text-bold">Obesitas:</span> > 30.0
|
||||
</div>
|
||||
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th style="width: 30%;">Nama Ibu</th>
|
||||
<td>{{ $pengukuran->ibuHamil->nama ?? '-' }}</td>
|
||||
<th>Nama Ibu Hamil</th>
|
||||
<td><strong style="font-size: 13px;">{{ $pengukuran->ibuHamil->nama ?? '-' }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Tanggal Periksa</th>
|
||||
<td>{{ $pengukuran->tanggal }}</td>
|
||||
<th>Tanggal Pemeriksaan</th>
|
||||
<td>{{ \Carbon\Carbon::parse($pengukuran->tanggal)->translatedFormat('d F Y') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Usia Kehamilan</th>
|
||||
|
|
@ -64,40 +102,40 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<th>Status Gizi</th>
|
||||
<td><strong style="color: #9c3a5b;">{{ $pengukuran->status_gizi }}</strong></td>
|
||||
<td><span class="status-text">{{ strtoupper($pengukuran->status_gizi) }}</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Grafik Perkembangan (BB & IMT)</h3>
|
||||
<div class="section-title">Grafik Perkembangan (BB & IMT)</div>
|
||||
<div class="chart-container">
|
||||
@if($chartImage)
|
||||
<img src="{{ $chartImage }}" class="chart-image">
|
||||
@else
|
||||
<p style="color: red;">Grafik tidak tersedia. Pastikan grafik muncul di layar sebelum mencetak.</p>
|
||||
<p style="color: #999;">Grafik visual tidak tersedia dalam laporan ini.</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<h3>Edukasi & Informasi Kesehatan</h3>
|
||||
@forelse($edukasi as $item)
|
||||
<div style="margin-bottom: 12px; border-bottom: 1px solid #eee; padding-bottom: 5px;">
|
||||
<strong style="color: #9c3a5b;">{{ $item->judul }}</strong>
|
||||
<p style="margin-top: 5px;">{{ $item->konten }}</p>
|
||||
</div>
|
||||
@empty
|
||||
<p>Edukasi belum tersedia.</p>
|
||||
@endforelse
|
||||
|
||||
<div style="margin-top: 20px; border: 1px solid #9c3a5b; padding: 10px; border-radius: 5px;">
|
||||
<span class="text-bold">Rekomendasi Medis:</span><br>
|
||||
@if($pengukuran->status_gizi == 'Normal')
|
||||
Status gizi Ibu terpantau baik. Pertahankan asupan nutrisi seimbang, konsumsi tablet tambah darah, dan rutin lakukan kontrol kehamilan sesuai jadwal.
|
||||
<div class="section-title">Edukasi & Rekomendasi</div>
|
||||
<div class="rekomendasi">
|
||||
<strong>Pesan Petugas Kesehatan:</strong><br>
|
||||
@if(strtolower($pengukuran->status_gizi) == 'ibu hamil gizi normal')
|
||||
Status gizi Ibu terpantau <strong>Baik/Normal</strong>. Pertahankan asupan nutrisi seimbang, konsumsi tablet tambah darah, dan rutin lakukan kontrol kehamilan.
|
||||
@else
|
||||
Ibu disarankan untuk berkonsultasi lebih lanjut dengan Bidan atau Dokter di Puskesmas mengenai pola makan dan kenaikan berat badan yang ideal selama kehamilan.
|
||||
Status gizi Ibu memerlukan perhatian lebih. Mohon konsultasikan hasil ini dengan Bidan atau Dokter untuk mengatur pola makan yang ideal.
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 15px;">
|
||||
@foreach($edukasi as $item)
|
||||
<div class="edukasi-item">
|
||||
<strong>{{ $item->judul }}</strong>
|
||||
<p style="margin: 3px 0 0 0; color: #555;">{{ $item->konten }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
Dicetak pada: {{ date('d-m-Y H:i:s') }} oleh Petugas: {{ $pengukuran->petugas->nama ?? 'Sistem PosSehat' }}
|
||||
Dicetak pada: {{ date('d-m-Y H:i') }} | Petugas: {{ $pengukuran->petugas->nama ?? 'Sistem PosSehat' }}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,124 +1,152 @@
|
|||
@extends('layouts.dashboard')
|
||||
|
||||
@section('title', 'Pengukuran Ibu Hamil')
|
||||
@section('title', 'Form Pengukuran Ibu Hamil')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="pagetitle mb-4">
|
||||
<h1 style="color: #9c3a5b;">Form Pengukuran Ibu Hamil</h1>
|
||||
<h1 style="color: #FF782D; font-weight: 700;">Form Pengukuran Ibu Hamil</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{ route('pengukuran_ibu_hamil.index') }}">Data Pengukuran</a></li>
|
||||
<li class="breadcrumb-item active">Tambah Data</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-10">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Tambah Data Pengukuran</h5>
|
||||
<div class="card shadow-sm border-0" style="border-radius: 20px;">
|
||||
<div class="card-body p-4">
|
||||
<div class="d-flex align-items-center mb-4">
|
||||
<div class="icon-box me-3" style="background: #fff5f0; padding: 10px; border-radius: 12px;">
|
||||
<i class="bi bi-droplet-half" style="color: #FF782D; font-size: 1.5rem;"></i>
|
||||
</div>
|
||||
<h5 class="card-title mb-0" style="color: #2c3e50; font-weight: 600;">Input Pemeriksaan Ibu Hamil</h5>
|
||||
</div>
|
||||
|
||||
<!-- General Form Elements -->
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<div class="alert alert-danger border-0 shadow-sm mb-4" style="border-radius: 12px;">
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form action="{{ route('pengukuran_ibu_hamil.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<label for="tanggal" class="col-sm-2 col-form-label">Tanggal</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="date" class="form-control" name="tanggal" id="tanggal_ukur" value="{{ date('Y-m-d') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label">Nama</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="ibu_hamil_id" id="ibu_id" class="form-control select2" required>
|
||||
<option value="">-- Pilih Ibu Hamil --</option>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label fw-semibold">Tanggal Periksa</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white border-end-0"><i class="bi bi-calendar-check text-muted"></i></span>
|
||||
<input type="date" class="form-control border-start-0 custom-input" name="tanggal" id="tanggal_ukur" value="{{ date('Y-m-d') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@foreach($ibu_hamil as $ibu)
|
||||
<option value="{{ $ibu->id }}" data-tgl="{{ $ibu->tgl_lahir }}">
|
||||
{{ $ibu->nama }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label fw-semibold">Nama Ibu Hamil</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white border-end-0"><i class="bi bi-search text-muted"></i></span>
|
||||
<select name="ibu_hamil_id" id="ibu_id" class="form-select border-start-0 custom-input select2" required>
|
||||
<option value="" selected disabled>Cari nama ibu...</option>
|
||||
@foreach($ibu_hamil as $ibu)
|
||||
<option value="{{ $ibu->id }}" data-tgl="{{ $ibu->tgl_lahir }}">
|
||||
{{ $ibu->nama }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label fw-semibold text-muted">Usia Ibu (Tahun)</label>
|
||||
<input type="text" id="usia" name="usia" class="form-control bg-light border-0 px-3" readonly placeholder="Otomatis terisi" style="border-radius: 10px;">
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label fw-semibold">Usia Kehamilan (Minggu)</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white border-end-0"><i class="bi bi-clock-history text-muted"></i></span>
|
||||
<input type="number" class="form-control border-start-0 custom-input" name="usia_kehamilan" required placeholder="Contoh: 12">
|
||||
<span class="input-group-text bg-light border-start-0 text-muted">Minggu</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12"><hr class="my-4 opacity-25"></div>
|
||||
|
||||
<div class="col-md-4 mb-3">
|
||||
<label class="form-label fw-semibold">Berat Badan</label>
|
||||
<div class="input-group">
|
||||
<input type="number" step="0.1" class="form-control custom-input fs-5 fw-bold text-center" name="berat_badan" required placeholder="0.0">
|
||||
<span class="input-group-text bg-light border-start-0 text-muted">kg</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-3">
|
||||
<label class="form-label fw-semibold">Tinggi Badan</label>
|
||||
<div class="input-group">
|
||||
<input type="number" step="0.1" class="form-control custom-input fs-5 fw-bold text-center" name="tinggi_badan" required placeholder="0.0">
|
||||
<span class="input-group-text bg-light border-start-0 text-muted">cm</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-3">
|
||||
<label class="form-label fw-semibold">LILA (Lingkar Lengan)</label>
|
||||
<div class="input-group">
|
||||
<input type="number" step="0.1" class="form-control custom-input fs-5 fw-bold text-center" name="lila" required placeholder="0.0">
|
||||
<span class="input-group-text bg-light border-start-0 text-muted">cm</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="nama" class="col-sm-2 col-form-label">Usia</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="usia" name="usia" class="form-control" readonly>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end gap-2 border-top mt-4 pt-4">
|
||||
<a href="{{ route('pengukuran_ibu_hamil.index') }}" class="btn btn-light px-4" style="border-radius: 10px;">Batal</a>
|
||||
<button type="submit" class="btn btn-orange px-4 py-2" style="background-color: #FF782D; color: white; border-radius: 10px; font-weight: 600; border: none;">
|
||||
<i class="bi bi-save me-2"></i>Simpan Data Pengukuran
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="berat_badan" class="col-sm-2 col-form-label">Berat Badan</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" name="berat_badan" required placeholder="kg">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="tinggi_badan" class="col-sm-2 col-form-label">Tinggi Badan</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" name="tinggi_badan" required placeholder="cm">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="lila" class="col-sm-2 col-form-label">Lila</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" name="lila" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="usia_kehamilan" class="col-sm-2 col-form-label">Usia Kehamilan</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" name="usia_kehamilan" required placeholder="minggu">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-10">
|
||||
<button type="submit" class="btn btn-primary">Submit Form</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form><!-- End General Form Elements -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
.custom-input:focus {
|
||||
border-color: #FF782D !important;
|
||||
box-shadow: 0 0 0 0.25rem rgba(255, 120, 45, 0.1) !important;
|
||||
}
|
||||
.input-group-text { border-radius: 10px 0 0 10px; }
|
||||
.custom-input { border-radius: 0 10px 10px 0 !important; }
|
||||
/* Style untuk baris BB/TB/LILA */
|
||||
.col-md-4 .custom-input { border-radius: 10px 0 0 10px !important; }
|
||||
.col-md-4 .input-group-text { border-radius: 0 10px 10px 0; }
|
||||
</style>
|
||||
|
||||
<script>
|
||||
document.getElementById("ibu_id").addEventListener("change", function() {
|
||||
|
||||
let selected = this.options[this.selectedIndex];
|
||||
let tgl_lahir = selected.getAttribute("data-tgl");
|
||||
|
||||
if(tgl_lahir){
|
||||
|
||||
let lahir = new Date(tgl_lahir);
|
||||
let today = new Date();
|
||||
|
||||
let usia = today.getFullYear() - lahir.getFullYear();
|
||||
let m = today.getMonth() - lahir.getMonth();
|
||||
|
||||
if (m < 0 || (m === 0 && today.getDate() < lahir.getDate())) {
|
||||
usia--;
|
||||
}
|
||||
|
||||
document.getElementById("usia").value = usia;
|
||||
document.getElementById("usia").value = usia + " Tahun";
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -4,97 +4,106 @@
|
|||
|
||||
@section('content')
|
||||
|
||||
<!-- Page Title -->
|
||||
<div class="pagetitle mb-4">
|
||||
<h1 style="color: #9c3a5b;">Data Pengukuran Ibu Hamil</h1>
|
||||
<h1 style="color: #FF782D; font-weight: 700;">Data Pengukuran Ibu Hamil</h1>
|
||||
<p class="text-muted">Monitoring kesehatan nutrisi dan perkembangan ibu hamil secara berkala.</p>
|
||||
</div>
|
||||
|
||||
<!-- Card -->
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body">
|
||||
<div class="card shadow-sm border-0" style="border-radius: 20px;">
|
||||
<div class="card-body p-4">
|
||||
|
||||
<!-- Card Header -->
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<h5 class="card-title mb-0">Daftar Hasil Pengukuran</h5>
|
||||
<div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-4">
|
||||
<h5 class="card-title mb-0" style="color: #2c3e50; font-weight: 600;">Daftar Hasil Pengukuran</h5>
|
||||
|
||||
<a href="{{ route('pengukuran_ibu_hamil.create') }}" class="btn btn-success btn-sm">
|
||||
<i class="bi bi-plus-circle me-1"></i> Tambah Pengukuran
|
||||
</a>
|
||||
<div class="mt-3 mt-md-0">
|
||||
<a href="{{ route('pengukuran_ibu_hamil.create') }}" class="btn btn-orange px-4 py-2 shadow-sm" style="background-color: #FF782D; color: white; border-radius: 10px; font-weight: 500;">
|
||||
<i class="bi bi-plus-circle me-2"></i> Tambah Pengukuran
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="GET" action="{{ route('pengukuran_ibu_hamil.index') }}" class="mb-3">
|
||||
<div class="input-group" style="max-width: 300px;">
|
||||
<input type="text" name="search" class="form-control" id="search"
|
||||
placeholder="Cari nama..."
|
||||
value="{{ request('search') }}">
|
||||
|
||||
<button class="btn btn-primary" type="submit">
|
||||
<i class="bi bi-search"></i> Cari
|
||||
</button>
|
||||
<form method="GET" action="{{ route('pengukuran_ibu_hamil.index') }}" class="mb-4">
|
||||
<div class="input-group search-bar" style="max-width: 400px;">
|
||||
<span class="input-group-text bg-white border-end-0" style="border-radius: 10px 0 0 10px;">
|
||||
<i class="bi bi-search" style="color: #FF782D;"></i>
|
||||
</span>
|
||||
<input type="text" name="search" class="form-control border-start-0 custom-input" id="search"
|
||||
placeholder="Cari nama ibu hamil..."
|
||||
value="{{ request('search') }}" style="border-radius: 0 10px 10px 0;">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- Table -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle datatable">
|
||||
<thead class="table-light">
|
||||
<table class="table table-hover align-middle custom-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%" >No</th>
|
||||
<th>Petugas</th>
|
||||
<th>Tanggal</th>
|
||||
<th>Nama</th>
|
||||
<th>Usia</th>
|
||||
<th>Berat Badan</th>
|
||||
<th>Tinggi Badan</th>
|
||||
<th>Lila</th>
|
||||
<th>Usia Kehamilan</th>
|
||||
<th>IMT</th>
|
||||
<th>Status Gizi</th>
|
||||
<th style="width: 15%" class="text-center">Aksi</th>
|
||||
<th style="width: 5%">No</th>
|
||||
<th>Tanggal & Petugas</th>
|
||||
<th>Identitas Ibu</th>
|
||||
<th>Fisik (BB/TB/LILA)</th>
|
||||
<th class="text-center">Kehamilan</th>
|
||||
<th class="text-center">IMT & Status</th>
|
||||
<th style="width: 10%" class="text-center">Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pengukuran-ibuhamil-table">
|
||||
@forelse ($p_ibuhamil as $index => $ibu)
|
||||
<tr>
|
||||
<td>{{ $p_ibuhamil->firstItem() + $index }}</td>
|
||||
<td>{{ $ibu->petugas->nama ?? '-' }}</td>
|
||||
<td>{{ $ibu->tanggal }}</td>
|
||||
<td>{{ $ibu->ibuHamil->nama ?? '-' }}</td>
|
||||
<td>{{ \Carbon\Carbon::parse($ibu->ibuHamil->tgl_lahir)->age ?? '-' }}</td>
|
||||
<td>{{ $ibu->berat_badan }}</td>
|
||||
<td>{{ $ibu->tinggi_badan }}</td>
|
||||
<td>{{ $ibu->lila }}</td>
|
||||
<td class="text-center">{{ $ibu->usia_kehamilan }}</td>
|
||||
<td>{{ $ibu->imt }}</td>
|
||||
<td>{{ $ibu->status_gizi }}</td>
|
||||
<td class="fw-bold text-muted">{{ $p_ibuhamil->firstItem() + $index }}</td>
|
||||
<td>
|
||||
<div class="fw-bold text-dark">{{ \Carbon\Carbon::parse($ibu->tanggal)->translatedFormat('d M Y') }}</div>
|
||||
<small class="text-muted"><i class="bi bi-person-badge me-1"></i>{{ $ibu->petugas->nama ?? '-' }}</small>
|
||||
</td>
|
||||
<td>
|
||||
<div class="fw-bold text-dark">{{ $ibu->ibuHamil->nama ?? '-' }}</div>
|
||||
<small class="text-muted">{{ \Carbon\Carbon::parse($ibu->ibuHamil->tgl_lahir)->age }} Tahun</small>
|
||||
</td>
|
||||
<td>
|
||||
<div class="small">
|
||||
<span class="badge bg-blue-soft text-primary mb-1">BB: {{ $ibu->berat_badan }}kg</span>
|
||||
<span class="badge bg-green-soft text-success mb-1">TB: {{ $ibu->tinggi_badan }}cm</span>
|
||||
<br>
|
||||
<span class="badge bg-purple-soft text-purple">LILA: {{ $ibu->lila }}cm</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<!-- Detail -->
|
||||
<a href="{{ route('pengukuran_ibu_hamil.detail', $ibu->id) }}"
|
||||
class="btn btn-sm btn-info"
|
||||
title="Detail">
|
||||
<i class="bi bi-eye"></i>
|
||||
</a>
|
||||
|
||||
<!-- Delete -->
|
||||
<form action="{{ route('pengukuran_ibu_hamil.destroy', $ibu->id) }}"
|
||||
method="POST"
|
||||
style="display:inline;">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button class="btn btn-sm btn-danger"
|
||||
onclick="return confirm('Yakin ingin menghapus data?')"
|
||||
title="Hapus">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="badge bg-light text-dark border px-3 py-2" style="border-radius: 8px;">
|
||||
{{ $ibu->usia_kehamilan }} <small>Minggu</small>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<div class="fw-bold text-dark mb-1">IMT: {{ $ibu->imt }}</div>
|
||||
@php
|
||||
$statusClass = match(strtolower($ibu->status_gizi)) {
|
||||
'gizi kurang' => 'bg-danger',
|
||||
'gizi normal', 'normal' => 'bg-success',
|
||||
'gizi lebih', 'obesitas' => 'bg-warning text-dark',
|
||||
default => 'bg-secondary'
|
||||
};
|
||||
@endphp
|
||||
<span class="badge {{ $statusClass }} px-2 py-1" style="font-size: 10px; border-radius: 5px;">
|
||||
{{ strtoupper($ibu->status_gizi) }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<div class="d-flex justify-content-center gap-1">
|
||||
<a href="{{ route('pengukuran_ibu_hamil.detail', $ibu->id) }}" class="btn btn-sm btn-detail-custom" title="Detail">
|
||||
<i class="bi bi-eye"></i>
|
||||
</a>
|
||||
<form action="{{ route('pengukuran_ibu_hamil.destroy', $ibu->id) }}" method="POST" style="display:inline;">
|
||||
@csrf @method('DELETE')
|
||||
<button class="btn btn-sm btn-delete-custom" onclick="return confirm('Hapus data pengukuran ini?')" title="Hapus">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="12" class="text-center text-muted">
|
||||
Belum ada data pengukuran
|
||||
<td colspan="7" class="text-center py-5 text-muted">
|
||||
<i class="bi bi-clipboard-x d-block mb-2" style="font-size: 3rem; color: #dee2e6;"></i>
|
||||
Belum ada data pengukuran ditemukan
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
|
|
@ -102,15 +111,31 @@ class="btn btn-sm btn-info"
|
|||
</table>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-center mt-3">
|
||||
<div class="d-flex justify-content-center mt-4">
|
||||
{{ $p_ibuhamil->withQueryString()->links() }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.custom-table th { color: #7a7a7a; font-weight: 600; text-transform: uppercase; font-size: 11px; padding: 15px; border: none; }
|
||||
.custom-table td { padding: 15px; border-bottom: 1px solid #f8f9fa; }
|
||||
|
||||
/* Soft Badges */
|
||||
.bg-blue-soft { background-color: #e7f3ff; color: #007bff; }
|
||||
.bg-green-soft { background-color: #eafff1; color: #28a745; }
|
||||
.bg-purple-soft { background-color: #f3e8ff; color: #6f42c1; }
|
||||
.text-purple { color: #6f42c1; }
|
||||
|
||||
/* Action Buttons */
|
||||
.btn-detail-custom { background-color: #e7f3ff; color: #007bff; border: none; border-radius: 8px; }
|
||||
.btn-detail-custom:hover { background-color: #007bff; color: white; }
|
||||
.btn-delete-custom { background-color: #fff5f5; color: #fa5252; border: none; border-radius: 8px; }
|
||||
.btn-delete-custom:hover { background-color: #fa5252; color: white; }
|
||||
</style>
|
||||
|
||||
<script>
|
||||
let delayTimer;
|
||||
let delayTimer;
|
||||
|
||||
document.getElementById('search').addEventListener('keyup', function () {
|
||||
clearTimeout(delayTimer);
|
||||
|
|
@ -129,6 +154,7 @@ class="btn btn-sm btn-info"
|
|||
});
|
||||
}, 300);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -1,90 +1,117 @@
|
|||
@extends('layouts.dashboard')
|
||||
|
||||
@section('title','Detail Edukasi Ibu Hamil')
|
||||
@section('title','Detail Perkembangan Ibu Hamil')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Detail Edukasi</h1>
|
||||
<div class="pagetitle mb-4">
|
||||
<h1 style="color: #FF782D; font-weight: 700;">Laporan Kesehatan Ibu Hamil</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{ route('pengukuran_ibu_hamil.index') }}">Data Pengukuran</a></li>
|
||||
<li class="breadcrumb-item active">Detail Laporan</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="card shadow-sm border-0 mb-4" style="border-radius: 20px;">
|
||||
<div class="card-body pt-4">
|
||||
<div class="text-center mb-4">
|
||||
<div class="d-inline-flex align-items-center justify-content-center bg-orange-light rounded-circle mb-3" style="width: 80px; height: 80px;">
|
||||
<i class="bi bi-person-heart" style="font-size: 2.5rem; color: #FF782D;"></i>
|
||||
</div>
|
||||
<h4 class="fw-bold text-dark mb-0">{{ $pengukuran->ibuHamil->nama ?? '-' }}</h4>
|
||||
<span class="text-muted">{{ \Carbon\Carbon::parse($pengukuran->ibuHamil->tgl_lahir)->age ?? '-' }} Tahun</span>
|
||||
</div>
|
||||
|
||||
<section class="section">
|
||||
<div class="row align-items-top">
|
||||
<div class="col-lg-13">
|
||||
<div class="status-box p-3 rounded-4 mb-3 text-center" style="background-color: #f8f9fa;">
|
||||
<small class="text-uppercase fw-bold text-muted d-block mb-1">Status Gizi (IMT)</small>
|
||||
@php
|
||||
$statusClass = match(strtolower($pengukuran->status_gizi)) {
|
||||
'normal' => 'bg-success',
|
||||
'gizi kurang' => 'bg-danger',
|
||||
'gizi lebih', 'obesitas' => 'bg-warning text-dark',
|
||||
default => 'bg-secondary'
|
||||
};
|
||||
@endphp
|
||||
<span class="badge {{ $statusClass }} fs-6 px-4 py-2" style="border-radius: 10px;">
|
||||
{{ strtoupper($pengukuran->status_gizi) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- Default Card -->
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form id="formPdf" action="/cetak-ibu-hamil/{{ $pengukuran->id }}" method="POST">
|
||||
<ul class="list-group list-group-flush small">
|
||||
<li class="list-group-item d-flex justify-content-between px-0">
|
||||
<span class="text-muted">Usia Kehamilan:</span>
|
||||
<span class="fw-bold text-orange">{{ $pengukuran->usia_kehamilan }} Minggu</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between px-0">
|
||||
<span class="text-muted">Nilai IMT:</span>
|
||||
<span class="fw-bold">{{ $pengukuran->imt }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between px-0">
|
||||
<span class="text-muted">LILA:</span>
|
||||
<span class="fw-bold">{{ $pengukuran->lila }} cm</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between px-0">
|
||||
<span class="text-muted">BB / TB:</span>
|
||||
<span class="fw-bold">{{ $pengukuran->berat_badan }}kg / {{ $pengukuran->tinggi_badan }}cm</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<form id="formPdf" action="/cetak-ibu-hamil/{{ $pengukuran->id }}" method="POST" class="mt-4">
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="chartImage" id="chartImage">
|
||||
|
||||
<button type="submit" class="btn btn-danger">
|
||||
Cetak PDF
|
||||
<button type="submit" class="btn btn-danger w-100 py-2 shadow-sm" style="border-radius: 12px;">
|
||||
<i class="bi bi-file-pdf me-2"></i> Cetak Laporan PDF
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="card-title">Hasil Pengukuran</h5>
|
||||
|
||||
<!-- Table -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle datatable">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Petugas</th>
|
||||
<th>Tanggal</th>
|
||||
<th>Nama</th>
|
||||
<th>Usia</th>
|
||||
<th>Berat Badan</th>
|
||||
<th>Tinggi Badan</th>
|
||||
<th>Lila</th>
|
||||
<th>Usia Kehamilan</th>
|
||||
<th>IMT</th>
|
||||
<th>Status Gizi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ $pengukuran->petugas->nama ?? '-' }}</td>
|
||||
<td>{{ $pengukuran->tanggal }}</td>
|
||||
<td>{{ $pengukuran->ibuHamil->nama ?? '-' }}</td>
|
||||
<td>{{ \Carbon\Carbon::parse($pengukuran->ibuHamil->tgl_lahir)->age ?? '-' }}</td>
|
||||
<td>{{ $pengukuran->berat_badan }}</td>
|
||||
<td>{{ $pengukuran->tinggi_badan }}</td>
|
||||
<td>{{ $pengukuran->lila }}</td>
|
||||
<td class="text-center">{{ $pengukuran->usia_kehamilan }}</td>
|
||||
<td>{{ $pengukuran->imt }}</td>
|
||||
<td>{{ $pengukuran->status_gizi }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-lg-8">
|
||||
<div class="card shadow-sm border-0 mb-4" style="border-radius: 20px;">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title" style="color: #2c3e50;"><i class="bi bi-activity me-2 text-orange"></i>Grafik BB & IMT</h5>
|
||||
<div id="grafikIbuHamil"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Grafik Perkembangan -->
|
||||
<h5 class="card-title">Grafik Perkembangan Pengukuran Ibu Hamil</h5>
|
||||
|
||||
<div id="grafikIbuHamil" style="min-height:350px;"></div>
|
||||
<hr>
|
||||
|
||||
<h5 class="card-title">Edukasi dan Informasi Kesehatan</h5>
|
||||
<div class="edukasi-content p-3 bg-light rounded">
|
||||
<div class="card shadow-sm border-0" style="border-radius: 20px;">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title" style="color: #2c3e50;"><i class="bi bi-lightbulb me-2 text-warning"></i>Saran Kesehatan Ibu</h5>
|
||||
<div class="edukasi-content mt-2">
|
||||
@forelse($edukasi as $item)
|
||||
<div class="mb-3">
|
||||
<h6 class="fw-bold text-primary"><i class="bi bi-info-circle-fill me-2"></i>{{ $item->judul }}</h6>
|
||||
<p class="mb-0">{{ $item->konten }}</p>
|
||||
<div class="d-flex align-items-start p-3 mb-3 border-0 shadow-sm rounded-4" style="background-color: #fffaf0;">
|
||||
<div class="icon-circle me-3" style="color: #FF782D;">
|
||||
<i class="bi bi-info-circle-fill fs-4"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="fw-bold mb-1" style="color: #FF782D;">{{ $item->judul }}</h6>
|
||||
<p class="mb-0 text-muted small" style="line-height: 1.6;">{{ $item->konten }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@empty
|
||||
<p class="text-danger">Edukasi belum tersedia untuk kategori ini.</p>
|
||||
<div class="alert alert-light border-0 text-center py-4">
|
||||
<i class="bi bi-info-circle d-block mb-2 fs-2 text-muted"></i>
|
||||
<p class="text-muted mb-0">Edukasi belum tersedia untuk kategori gizi ini.</p>
|
||||
</div>
|
||||
@endforelse
|
||||
</div>
|
||||
</div><!-- End Default Card -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
.bg-orange-light { background-color: #fff5f0; }
|
||||
.text-orange { color: #FF782D; }
|
||||
.rounded-4 { border-radius: 1rem !important; }
|
||||
</style>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
|
||||
<script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue