Skip to content

Conversation

@smcstf57d7-collab
Copy link

<title>نظام تقييم الأداء الوظيفي</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.9.2/html2pdf.bundle.min.js"></script> <style> body { font-family: "Arial", "Tahoma", sans-serif; background:#f3f6f9; margin:0; padding:20px; } .container { max-width:950px; margin:auto; background:#fff; padding:18px; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,0.08); } h2 { text-align:center; margin-top:0; } label { display:block; margin:8px 0 4px; } input[type="text"], input[type="date"], select { width:100%; padding:8px; box-sizing:border-box; } table { width:100%; border-collapse:collapse; margin-top:12px; font-size:14px; } th, td { border:1px solid #bfbfbf; padding:6px; text-align:center; } th { background:#efefef; } .controls { margin-top:12px; display:flex; gap:8px; flex-wrap:wrap; } button { padding:10px 14px; cursor:pointer; border-radius:6px; border:1px solid huggingface#888; background:#fff; } .right { text-align:right; } .small { font-size:13px; color:huggingface#444; } .db-list { max-height:220px; overflow:auto; border:1px solid #ddd; padding:8px; margin-top:8px; } .flex-row { display:flex; gap:10px; } @media (max-width:700px) { .container { padding:12px; } th, td { font-size:12px; } } </style>

نموذج تقييم الأداء الوظيفي

اسم الموظف
العنوان الوظيفي
التحصيل العلمي
الدائرة / الوحدة
الشعبة
تاريخ التعيين
تاريخ المباشرة بالعمل الحالي
مؤشر التقييم ضعيف
(1)
مقبول
(2)
جيد
(3)
جيد جدًا
(4)
ممتاز
(5)

الدرجة النهائية: 0 / 0

احسب الدرجة حفظ في القاعدة عرض القاعدة تصدير CSV طباعة حفظ PDF تفريغ النموذج

قاعدة بيانات التقييمات

حذف كل التقييمات
<script> /* ====== البنود الكاملة (اكتب البنود كما بالاستمارة الورقية) ====== */ const items = [ "يلتزم بمواعيد العمل ويتواجد في محل عمله", "إنجاز الأعمال المكلف بها في الوقت المحدد ودون أخطاء وبفعالية", "لديه المعرفة بمهام وواجبات العمل المكلف به", "القدرة على استخدام الحاسوب والمهارات المعلوماتية الأساسية", "القدرة على تنفيذ واجبات العمل المكلف بها بدقة ومتابعتها", "المحافظة على المستندات وسرية المعلومات", "تقديم مقترحات جديدة لتطوير اساليب العمل واستخدام التكنولوجيا", "القدرة على العمل بروح الفريق والتعاون مع الآخرين", "التعامل مع الجمهور بلباقة ومسؤولية", "القدرة على تحمل ضغط العمل والالتزام في الظروف الطارئة", "المشاركة في الدورات التدريبية لتطوير المهارات", "المعرفة والاطلاع على القوانين والتعليمات", "القدرة على تحمل مهام اضافية ورغبة في تطوير القدرات الذاتية", "الالتزام بالجودة والاهتمام بتفاصيل العمل" ]; /* يعرض البنود في الجدول */ const tbody = document.getElementById("tableBody"); items.forEach((it, idx) => { const tr = document.createElement("tr"); tr.innerHTML = `${idx+1}. ${it} `; tbody.appendChild(tr); }); /* عرض الدرجة القصوى */ document.getElementById("maxScore").innerText = items.length * 5; /* حساب الدرجة */ function calculateScore() { let total = 0; for (let i=0; i r.checked = false); } document.getElementById("totalScore").innerText = "0"; } /* حفظ في قاعدة بيانات محلية (LocalStorage) */ function saveRecord() { const score = calculateScore(); const rec = { id: Date.now(), name: document.getElementById("empName").value.trim(), job: document.getElementById("jobTitle").value.trim(), education: document.getElementById("education").value.trim(), department: document.getElementById("department").value.trim(), division: document.getElementById("division").value.trim(), hireDate: document.getElementById("hireDate").value, currentStart: document.getElementById("currentStart").value, score: score, max: items.length * 5 }; if (!rec.name) { alert("الرجاء كتابة اسم الموظف قبل الحفظ."); return; } const db = JSON.parse(localStorage.getItem("evaluations") || "[]"); db.push(rec); localStorage.setItem("evaluations", JSON.stringify(db)); alert("تم حفظ التقييم بنجاح."); } /* عرض قاعدة البيانات */ function showDatabase() { const area = document.getElementById("dbArea"); const list = document.getElementById("dbList"); const db = JSON.parse(localStorage.getItem("evaluations") || "[]"); list.innerHTML = ""; if (db.length === 0) { list.innerHTML = "
لا توجد سجلات محفوظة.
"; } else { db.slice().reverse().forEach(rec => { const el = document.createElement("div"); el.style.borderBottom = "1px dashed #ddd"; el.style.padding = "6px 0"; el.innerHTML = `${rec.name} — النتيجة: ${rec.score}/${rec.max}
وظيفة: ${rec.job || '-'} | دائرة: ${rec.department || '-'} | تاريخ: ${rec.hireDate || '-'}
حـمل PDF حذف
`; list.appendChild(el); }); } area.style.display = "block"; } /* حذف سجل واحد */ function deleteRecord(id) { if (!confirm("هل تريد حذف هذا السجل؟")) return; let db = JSON.parse(localStorage.getItem("evaluations") || "[]"); db = db.filter(r => r.id !== id); localStorage.setItem("evaluations", JSON.stringify(db)); showDatabase(); } /* حذف كل السجلات */ function clearDatabase() { if (!confirm("هل تريد حذف كل التقييمات؟")) return; localStorage.removeItem("evaluations"); showDatabase(); } /* تحميل سجل واحد كـ PDF (يولّد نموذج مبسط) */ function downloadSingle(id) { const db = JSON.parse(localStorage.getItem("evaluations") || "[]"); const rec = db.find(r => r.id === id); if (!rec) { alert("السجل غير موجود"); return; } // إنشاء محتوى للطباعة const el = document.createElement("div"); el.style.padding = "14px"; el.innerHTML = `

تقييم موظف

الاسم: ${rec.name}

الوظيفة: ${rec.job}

الدرجة: ${rec.score}/${rec.max}

مصدّر من نظام التقييم

`; html2pdf().from(el).save(`${rec.name || 'evaluation'}_${rec.id}.pdf`); } /* طباعة الفورم الحالي */ function printForm() { calculateScore(); window.print(); } /* حفظ كامل الاستمارة كـ PDF */ function savePDF() { calculateScore(); const container = document.getElementById("formContainer"); // خيارات (يمكن تعديل اسم الملف) html2pdf().from(container).set({ filename: `evaluation_${Date.now()}.pdf` }).save(); } /* تصدير CSV لكل السجلات */ function exportCSV() { const db = JSON.parse(localStorage.getItem("evaluations") || "[]"); if (db.length === 0) { alert("لا توجد بيانات للتصدير."); return; } const header = ["id","name","job","education","department","division","hireDate","currentStart","score","max"]; const rows = db.map(r => header.map(h => `"${(r[h] !== undefined ? String(r[h]).replace(/"/g,'""') : "")}"`).join(",")); const csv = [header.join(","), ...rows].join("\\n"); const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = "evaluations_export.csv"; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); alert("تم تصدير ملف CSV."); } /* تصدير كإكسل بسيط (تصدير CSV يفتح بالاكسل) */ /* يمكنك لاحقاً تحسين التصدير ليكون XLSX بمعالجة إضافية */ </script>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants