Để sử dụng toàn bộ tiện ích nâng cao của Hệ Thống Pháp Luật vui lòng lựa chọn và đăng ký gói cước.
| BỘ GIÁO DỤC VÀ ĐÀO TẠO | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
| Số: 423/BGDĐT-GDMN | Hà Nội, ngày 07 tháng 02 năm 2023 |
Kính gửi: Ủy ban nhân dân các tỉnh, thành phố trực thuộc Trung ương
Trong thời gian qua, công tác nuôi dưỡng, chăm sóc, giáo dục trẻ em tại cơ sở giáo dục mầm non (GDMN) được các địa phương chỉ đạo và thực hiện nghiêm túc, đúng quy định. Các cơ sở GDMN đã thực hiện tốt công tác bảo đảm an toàn và tổ chức nuôi dưỡng trẻ em, xây dựng chế độ ăn theo tiêu chuẩn, phù hợp với độ tuổi của trẻ em theo quy định tại Chương trình GDMN ban hành kèm theo Thông tư số 17/2009/TT-BGDĐT1. Chỉ đạo Sở GDĐT hướng dẫn các cơ sở GDMN tăng cường các biện pháp bảo đảm ATTP theo hướng dẫn tại Công văn số 6141/BGDĐT-GDTC ngày 21/11/2022 của Bộ GDĐT về việc tăng cường chỉ đạo công tác bảo đảm vệ sinh, ATTP trong các cơ sở giáo dục; công tác nuôi dưỡng trẻ em tại cơ sở GDMN cần bảo đảm đúng quy định tại Chương trình GDMN về số bữa ăn đáp ứng nhu cầu khuyến nghị, phân bố bữa ăn phù hợp với từng độ tuổi, tình trạng dinh dưỡng của trẻ em; thời gian tổ chức ăn cho trẻ thực hiện theo lịch sinh hoạt hàng ngày; không thực hiện hợp đồng dịch vụ cung cấp suất ăn cho trẻ em tại các cơ sở GDMN.
2. Chỉ đạo việc thực hiện hợp đồng lao động đối với nhân viên nấu ăn bảo đảm đủ số lượng theo quy định về danh mục khung vị trí việc làm và định mức số lượng người làm việc trong các cơ sở GDMN công lập3 để hỗ trợ cho nhân lực tổ chức nấu ăn.
3. Đẩy mạnh các giải pháp phối hợp với gia đình để bảo đảm các điều kiện tổ chức nuôi dưỡng và thực hiện chế độ sinh hoạt cho trẻ; huy động mọi nguồn lực nhằm nâng cao chất lượng bữa ăn cho trẻ em tại các cơ sở GDMN; duy trì và sử dụng có hiệu quả cơ sở vật chất, trang thiết bị, dụng cụ và nguồn nhân lực của các bếp ăn tại cơ sở GDMN để tổ chức thực hiện việc nuôi dưỡng, chăm sóc trẻ em đúng nhiệm vụ và quyền hạn theo quy định tại Điều lệ trường mầm non4. Chỉ đạo các đơn vị liên quan tiếp tục phát huy vai trò, trách nhiệm của cán bộ quản lý cơ sở GDMN trong công tác xây dựng khẩu phần, thực đơn cho trẻ em mầm non và trách nhiệm của người đứng đầu trong việc bảo đảm ATTP; tổ chức tập huấn, bồi dưỡng chuyên môn, nghiệp vụ cho đội ngũ CBQL và nhân viên nấu ăn về tổ chức bữa ăn bán trú và thực hiện các quy định trong công tác tổ chức nuôi dưỡng cho trẻ em tại cơ sở GDMN.
5. Tăng cường công tác thanh tra, kiểm tra và sự tham gia giám sát của Ban đại diện cha mẹ trẻ em trong việc bảo đảm chất lượng bữa ăn và ATTP; kịp thời chấn chỉnh, xử lý những sai phạm trong công tác nuôi dưỡng cho trẻ tại các cơ sở GDMN.
Bộ GDĐT đề nghị UBND cấp tỉnh chỉ đạo UBND cấp huyện phối hợp với Sở GDĐT và các sở ban ngành liên quan triển khai nhiệm vụ theo thẩm quyền và chỉ đạo các Phòng GDĐT, các cơ sở GDMN thực hiện nghiêm túc các nội dung trên. Trong quá trình tổ chức thực hiện nếu có khó khăn, vướng mắc, đề nghị Sở GDĐT báo cáo về Bộ GDĐT (qua Vụ GDMN theo địa chỉ: vugdmn@moet.gov.vn) để phối hợp và hướng dẫn, giải quyết./.
|
| KT. BỘ TRƯỞNG |
lồng nhau (bên trong) hay không
const memberID = 0;
const vbID = 'd47f9fe636cc8801fbbc37ccb6fb87d9';
// State management cho phân tích
let isAnalyzing = false; // Có đang phân tích không
let currentAnalyzingAddress = null; // Address đang được phân tích
let currentAnalyzingElement = null; // Element đang được phân tích
let currentAnalyzingBadge = null; // Badge của element đang phân tích
let isPanelOpen = false; // Panel phân tích có đang mở không
console.log('Tiện ích loaded - memberID:', memberID, 'vbID:', vbID);
function isInViewportAndTabNoiDung(element) {
const rect = element.getBoundingClientRect();
const buffer = 1500; // Buffer to preload content below the viewport (approx. 50+ lines)
const viewHeight = window.innerHeight || document.documentElement.clientHeight;
const isInViewport = rect.top < viewHeight + buffer && rect.bottom >= 0;
const isInTabNoiDung = $(element).closest('#tab_noi_dung_vb').length > 0;
return isInViewport && isInTabNoiDung;
}
function getAddress(element) {
const validTags = ['trichyeu', 'cancu', 'phan', 'chuong', 'muc', 'tieumuc', 'dieu', 'khoan', 'diem'];
const $parent = $(element).closest(validTags.join(','));
if (!$parent.length) {
return null;
}
let addr = $parent.attr('address');
if (!addr && $parent.prop('tagName').toLowerCase() === 'trichyeu') {
addr = 'trichyeu';
$parent.attr('address', addr);
}
return addr || null;
}
function processTnplClasses($element) {
const tnplKeysInLine = new Set(); // key = slug hoặc text (thường là slug)
$element.find('tnpl').each(function () {
const $tnpl = $(this);
const tnplSlug = ($tnpl.attr('slug') || '').trim().toLowerCase();
const tnplKey = tnplSlug || $tnpl.text().trim().toLowerCase();
// Đã xử lý trong cùng dòng => bỏ
if (tnplKeysInLine.has(tnplKey)) {
return;
}
tnplKeysInLine.add(tnplKey);
let tnplExists = false;
// Chỉ duyệt các tnpl đã được tô màu (class on)
$('tnpl.on').each(function () {
const $existingTnpl = $(this);
const existingSlug = ($existingTnpl.attr('slug') || '').trim().toLowerCase();
const existingKey = existingSlug || $existingTnpl.text().trim().toLowerCase();
if (
existingKey === tnplKey &&
isInViewportAndTabNoiDung($existingTnpl[0])
) {
tnplExists = true;
return false; // break each
}
});
if (!tnplExists) {
$tnpl.addClass('on');
}
});
}
function processQueue() {
while (pendingRequests < maxConcurrentRequests && requestQueue.length > 0) {
const task = requestQueue.shift();
pendingRequests++;
task()
.always(() => {
pendingRequests--;
processQueue();
});
}
}
function processVisibleParagraphs() {
try {
$('#tab_noi_dung_vb p:not([is-posted="1"])').each(function () {
let $element = $(this);
if (isInViewportAndTabNoiDung(this)) {
$element.attr('is-posted', '1');
$element.addClass('loading-content');
let p_innerHTML = $element.html();
let address = null;
if (cac_cau_hinh.loai_noi_dung.includes('docs')) {
address = getAddress($element);
}
const isSubP = $element.parents('p').length > 0;
if (isSubP && !allow_sub_p) {
$element.removeClass('loading-content');
return; // Không gửi nếu không cho phép
}
const postData = { p_content: p_innerHTML, cac_cau_hinh, address };
if (isSubP && allow_sub_p) {
postData.sub_p = 1;
}
requestQueue.push(() =>
$.ajax({
url: '//tnpl' + (Math.floor(Math.random() * 10) + 1) + '.hethongphapluat.com/tien-ich/tim.tien.ich.php',
type: 'POST',
data: postData,
success: function(response) {
$element.html(response);
processTnplClasses($element);
// Đợi CTTD và các tiện ích load xong rồi mới attach badge
if (memberID === 4 && typeof attachPhanTichBadge === 'function') {
setTimeout(function() {
// $element chính là thẻ p, kiểm tra và attach badge trực tiếp
const $parent = $element.closest('phan, chuong, muc, tieumuc, dieu, khoan, diem');
if ($parent.length > 0 && $parent.find('.badge-phan-tich[data-for="' + $parent.attr('address') + '"]').length === 0) {
const address = $parent.attr('address');
$element.attr('data-address', address);
// Lấy tên loại thẻ cho tooltip
const parentType = getParentTypeName($parent.prop('tagName').toLowerCase());
// Append badge VÀO PARENT (dieu, khoan,...) thay vì vào để tránh xung đột CTTD
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
// Xử lý các p con (nếu có sub-p)
attachPhanTichBadge($element);
}, 300); // Đợi 300ms để CTTD render xong
}
},
complete: function() {
$element.removeClass('loading-content');
}
})
);
processQueue();
}
});
} catch(e) {
console.error('Lỗi processVisibleParagraphs:', e);
}
}
$(window).on('scroll resize', function () {
processVisibleParagraphs();
});
console.log('Bắt đầu processVisibleParagraphs lần đầu...');
processVisibleParagraphs();
console.log('processVisibleParagraphs lần đầu hoàn thành');
// Chức năng phân tích điều luật (chỉ cho member_id = 4)
if (memberID === 4) {
// Modal cảnh báo
function showWarningModal(message) {
// Tạo modal nếu chưa có
if ($('#warningModal').length === 0) {
const modalHTML = `
' + message + '
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
}
});
}
// Helper: Escape HTML entities
function escapeHtml(text) {
const map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return String(text).replace(/[&<>"']/g, function(m) { return map[m]; });
}
// Helper: Convert Markdown to HTML (đơn giản)
function markdownToHtml(markdown) {
if (!markdown) return '';
let html = markdown;
// Headers
html = html.replace(/^### (.*$)/gim, ' ' + para.replace(/\n/g, ' Đang phân tích... Đang phân tích... Đang xóa cache và phân tích lại... Đang phân tích...$1
');
html = html.replace(/^## (.*$)/gim, '$1
');
html = html.replace(/^# (.*$)/gim, '$1
');
// Bold
html = html.replace(/\*\*(.*?)\*\*/g, '$1');
// Italic
html = html.replace(/\*(.*?)\*/g, '$1');
// Blockquote
html = html.replace(/^> (.*$)/gim, '$1
');
html = html.replace(/^> (.*$)/gim, '$1
');
// Lists (unordered)
html = html.replace(/^\- (.*$)/gim, '$1
');
// Lists (ordered)
html = html.replace(/^\d+\. (.*$)/gim, '
') + '' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
if (response.from_cache) {
html += ' Cache';
}
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}
' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}
