Hệ thống pháp luật

ỦY BAN NHÂN DÂN
THÀNH PHỐ HÀ NỘI
-------

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------

Số: 256/KH-UBND

Hà Nội, ngày 24 tháng 10 năm 2023

 

KẾ HOẠCH

KIỂM TRA VIỆC TRIỂN KHAI THỰC HIỆN QUY ĐỊNH CỦA PHÁP LUẬT TRONG CÁC LĨNH VỰC CÓ LIÊN QUAN ĐẾN CÔNG TÁC PCCC VÀ CNCH TRÊN ĐỊA BÀN THÀNH PHỐ

Thực hiện Công điện số 796/CĐ-TTg ngày 13/9/2023, công điện 825/CĐ-TTg ngày 15/9/2023 của Thủ tướng Chính phủ về tăng cường công tác phòng cháy, chữa cháy; để kịp thời phát hiện, chấn chỉnh, khắc phục những tồn tại, thiếu sót, nâng cao hiệu quả công tác quản lý nhà nước trong các lĩnh vực có liên quan đến công tác PCCC và CNCH, UBND Thành phố ban hành Kế hoạch kiểm tra việc triển khai thực hiện quy định của pháp luật trong các lĩnh vực có liên quan công tác PCCC và CNCH trên địa bàn Thành phố, cụ thể như sau:

I. MỤC ĐÍCH, YÊU CẦU

1. Siết chặt kỷ luật, kỷ cương; nâng cao vai trò trách nhiệm trong lãnh đạo, chỉ đạo của người đứng đầu các cấp ủy Đảng, chính quyền địa phương, các ngành chức năng. Đánh giá đúng thực trạng việc thực hiện và công tác phối hợp trong quản lý nhà nước (QLNN) của các cơ quan quản lý; ý thức, nhận thức, trách nhiệm của người đứng đầu cơ sở, chủ hộ gia đình và người dân trong việc thực hiện quy định pháp luật của các lĩnh vực có liên quan đến công tác PCCC và CNCH.

2. Kiểm tra việc triển khai thực hiện quy định của pháp luật trong các lĩnh vực có liên quan công tác PCCC và CNCH tại một số đơn vị cấp huyện, cấp xã và tại cơ sở thuộc loại hình tập trung đông người, trọng điểm có nguy cơ cháy, nổ cao (chung cư, nhà ở nhiều căn hộ, cơ sở kinh doanh dịch vụ cho thuê trọ, nhà ở kết hợp kinh doanh, sản xuất...) trên địa bàn Thành phố.

3. Qua công tác kiểm tra, kịp thời phát hiện những tồn tại, hạn chế, yếu kém để xử lý nghiêm đối với các tập thể, cá nhân vi phạm, thiếu trách nhiệm trong thực hiện nhiệm vụ được giao; tổng hợp khó khăn, vướng mắc, bất cập trong quá trình triển khai thực hiện để kịp thời có các biện pháp, giải pháp sát hợp, căn cơ; kiến nghị đề xuất cấp có thẩm quyền các vấn đề bất cập, nhằm nâng cao hiệu lực, hiệu quả công tác QLNN trong các lĩnh vực liên quan đến PCCC và CNCH trong thời gian tới.

4. Việc kiểm tra phải đảm bảo tính khách quan, toàn diện, đánh giá đúng thực trạng tình hình, trách nhiệm của các tập thể, cơ sở, cá nhân trong thực hiện quy định của pháp luật liên quan đến công tác PCCC&CNCH; xử lý nghiêm tất cả hành vi vi phạm theo quy định của pháp luật. Quá trình kiểm tra không làm ảnh hưởng đến hoạt động của đơn vị, cơ sở được kiểm tra.

II. ĐỐI TƯỢNG, THỜI GIAN, HÌNH THỨC KIỂM TRA

1. Đối tượng kiểm tra: UBND cấp huyện, cấp xã; Công an cấp huyện, cấp xã; cơ sở tập trung đông người, cơ sở trọng điểm có nguy cơ cháy, nổ cao (chung cư, nhà ở nhiều căn hộ, cơ sở kinh doanh dịch vụ cho thuê trọ, nhà ở kết hợp kinh doanh, sản xuất,...) trên địa bàn Thành phố (do đồng chí Trưởng đoàn kiểm tra xem xét, quyết định).

2. Thời gian, địa điểm kiểm tra

2.1. Thời gian: Từ ngày 25/10/2023 đến ngày 15/12/2023.

2.2. Địa điểm: Làm việc trực tiếp tại đơn vị, cơ sở được lựa chọn kiểm tra.

3. Hình thức kiểm tra: Kiểm tra đột xuất theo kế hoạch.

III. NỘI DUNG KIỂM TRA

1. Kiểm tra việc quán triệt, chỉ đạo, tổ chức triển khai thực hiện Nghị Quyết, Chỉ thị, Kế hoạch, văn bản chỉ đạo của Thành ủy, HĐND Thành phố, UBND Thành phố đã ban hành trong thời gian vừa qua (2. Kiểm tra công tác quản lý nhà nước, công tác xử lý vi phạm (nếu có) của các cơ quan được giao nhiệm vụ quản lý; việc chấp hành quy định pháp luật về đất đai, quy hoạch, đầu tư, xây dựng, an toàn điện, an toàn về PCCC và CNCH đối với một số cơ sở thuộc loại hình chung cư, nhà ở nhiều căn hộ, cơ sở kinh doanh dịch vụ cho thuê trọ, nhà ở kết hợp kinh doanh, sản xuất... trên địa bàn Thành phố.

3. Trường hợp phát hiện cơ sở có vi phạm quy định các lĩnh vực được kiểm tra, giao UBND cấp huyện chỉ đạo xử lý theo quy định; đồng thời đánh giá, làm rõ trách nhiệm công tác quản lý nhà nước của các cơ quan, tập thể, cá nhân có liên quan, đề xuất hình thức xử lý theo quy định.

IV. THÀNH PHẦN ĐOÀN KIỂM TRA

1. Đại diện lãnh đạo UBND Thành phố - Trưởng đoàn;

2. Đồng chí Đại tá Dương Đức Hải, Phó Giám đốc Công an Thành phố - Phó Trưởng đoàn Thường trực;

3. Đại diện lãnh đạo Văn phòng UBND Thành phố - Phó Trưởng đoàn;

4. Đại diện lãnh đạo và chuyên viên các Sở, ngành: Công Thương, Xây dựng, Quy hoạch - Kiến trúc, Tài nguyên và Môi trường, Tổng Công ty Điện lực thành phố Hà Nội - Thành viên;

5. Đại diện Lãnh đạo, cán bộ các phòng nghiệp vụ thuộc Công an Thành phố - Thành viên;

6. Đại diện lãnh đạo UBND cấp huyện nơi có cơ sở được lựa chọn kiểm tra - Thành viên;

7. Công an Thành phố cử 01 đồng chí làm Thư ký đoàn kiểm tra;

8. Mời cơ quan báo, đài Thành phố phối hợp tham gia đưa tin, bài trên các phương tiện thông tin truyền thông: Đài Truyền hình Hà Nội, Báo Hà Nội mới, Báo Kinh tế đô thị, Báo An ninh thủ đô...

(Trong trường hợp đồng chí Trưởng đoàn bận công tác, giao đồng chí Phó Trưởng đoàn Thường trực chịu trách nhiệm duy trì việc kiểm tra của Đoàn)

V. PHƯƠNG PHÁP KIỂM TRA

1. Đối với UBND các cấp

- Kiểm tra việc quán triệt, lãnh đạo, chỉ đạo tổ chức triển khai thực hiện các văn bản của Thành ủy, HĐND Thành phố, UBND Thành phố.

- Kết quả thực hiện theo chức năng, nhiệm vụ được phân công trong công tác QLNN về các lĩnh vực đất đai, quy hoạch, đầu tư, xây dựng, an toàn điện, an toàn về PCCC và CNCH.

- Kiểm tra đối chiếu với báo cáo, hồ sơ, tài liệu của các đơn vị, từ đó tổng hợp, đánh giá kết quả việc triển khai thực hiện theo chức năng nhiệm vụ được phân công, đồng thời hướng dẫn giải pháp khắc phục các tồn tại, vướng mắc.

2. Đối với Công an các cấp

- Kiểm tra công tác tham mưu cấp ủy chính quyền địa phương; việc quán triệt, chỉ đạo triển khai, thực hiện công tác QLNN về PCCC và CNCH theo phân công, phân cấp.

- Kiểm tra đối chiếu với báo cáo, hồ sơ, tài liệu của các đơn vị, từ đó tổng hợp, đánh giá kết quả việc triển khai thực hiện theo chức năng nhiệm vụ được phân công, đồng thời hướng dẫn giải pháp khắc phục các tồn tại, vướng mắc.

3. Đối với Công ty điện lực thành viên cấp huyện, Hợp tác xã kinh doanh điện

- Kiểm tra việc thực hiện chỉ đạo của Thành phố, Sở Công Thương, Tổng Công ty điện lực thành phố Hà Nội trong lĩnh vực điện, việc kiểm tra an toàn sử dụng điện sau công tơ, xử lý các vi phạm trong sử dụng điện đối với các hộ gia đình, cơ sở trên địa bàn thuộc phạm vi quản lý.

- Kiểm tra đối chiếu với báo cáo, hồ sơ, tài liệu của các đơn vị, từ đó tổng hợp, đánh giá kết quả việc triển khai thực hiện theo chức năng nhiệm vụ được phân, đồng thời hướng dẫn giải pháp khắc phục các tồn tại, vướng mắc.

4. Đối với cơ sở: Kiểm tra trực tiếp tại cơ sở việc chấp hành các quy định của pháp luật trong lĩnh vực đất đai, quy hoạch, đầu tư, xây dựng, an toàn điện, an toàn về PCCC và CNCH của cơ sở; các điều kiện an toàn thực tế liên quan đến lĩnh vực điện, PCCC và CNCH

VI. PHÂN CÔNG NHIỆM VỤ

1. Công an Thành phố

- Chủ trì, tham mưu Chủ tịch UBND Thành phố thành lập Đoàn kiểm tra liên ngành cấp Thành phố.

- Chủ trì, phối hợp với các Sở, ngành: Công thương, Xây dựng, Quy hoạch - Kiến trúc, Tài nguyên và Môi trường, Tổng Công ty Điện lực thành phố Hà Nội xây dựng đề cương chi tiết phục vụ kiểm tra. Đề xuất đồng chí Trưởng đoàn phân công nội dung, nhiệm vụ cụ thể cho các đơn vị, thành viên Đoàn kiểm tra.

- Nghiên cứu, đề xuất đơn vị, cơ sở được kiểm tra, thời gian kiểm tra; chuẩn bị các điều kiện phục vụ công tác kiểm tra; thông báo lịch kiểm tra tới các thành viên Đoàn Kiểm tra.

- Thực hiện kiểm tra các nội dung liên quan đến công tác QLNN về PCCC và CNCH; việc thực hiện các quy định của pháp luật, các điều kiện an toàn PCCC và CNCH thực tế tại cơ sở...

- Chủ trì việc triển khai thực hiện Kế hoạch kiểm tra; tổng hợp, xây dựng Báo cáo về kết quả kiểm tra; tham mưu UBND Thành phố kịp thời chỉ đạo, giải quyết những tồn tại, hạn chế, khó khăn, vướng mắc, bất cập khi kiểm tra.

2. Văn phòng UBND Thành phố

- Phối hợp với Công an Thành phố tham mưu UBND Thành phố thành lập Đoàn kiểm tra liên ngành cấp Thành phố; nghiên cứu, đề xuất đồng chí Trưởng đoàn kiểm tra về đối tượng kiểm tra, thời gian kiểm tra, phân công nhiệm vụ cụ thể cho các đơn vị, thành viên Đoàn kiểm tra; chuẩn bị các điều kiện phục vụ công tác kiểm tra; đôn đốc, hướng dẫn các đơn vị triển khai thực hiện Kế hoạch kiểm tra...

- Phối hợp với Công an Thành phố thông báo lịch kiểm tra tới các thành viên Đoàn Kiểm tra.

3. Các Sở, ngành: Công Thương, Xây dựng, Quy hoạch - Kiến trúc, Tài nguyên và Môi trường, Kế hoạch và đầu tư, Tổng Công ty Điện lực thành phố Hà Nội

- Căn cứ chức năng, nhiệm vụ, lĩnh vực được phân công quản lý, phụ trách, xây dựng đề cương kiểm tra chi tiết thuộc các lĩnh vực đất đai, quy hoạch, đầu tư, xây dựng, an toàn điện, gửi về CATP (qua Phòng Cảnh sát PCCC và CNCH, số 2 Dương Đình Nghệ, Cầu Giấy, Hà Nội) trước ngày 27/10/2023 để tổng hợp xây dựng đề cương chung.

- Tổ chức kiểm tra theo chức năng, nhiệm vụ được phân công việc thực hiện các quy định của pháp luật trong lĩnh vực đất đai, quy hoạch, đầu tư, xây dựng, an toàn điện đối với các đơn vị, cơ sở được kiểm tra.

4. UBND các quận, huyện, thị xã và các cơ sở được kiểm tra

- Phân công các đơn vị, bộ phận chức năng có liên quan tham gia và chuẩn bị các điều kiện thực tế phục vụ Đoàn kiểm tra; xây dựng báo cáo, cung cấp thông tin, tài liệu thực hiện chức năng quản lý nhà nước, hồ sơ tài liệu thể hiện việc chấp hành các quy định của pháp luật trong các lĩnh vực đất đai, quy hoạch, đầu tư, xây dựng, an toàn điện, an toàn về PCCC và CNCH theo yêu cầu của Đoàn Kiểm tra.

- Tổ chức thực hiện các chỉ đạo, kiến nghị của Đoàn Kiểm tra, báo cáo kết quả thực hiện về UBND Thành phố theo quy định.

VII. TỔ CHỨC THỰC HIỆN

1. Căn cứ chức năng, nhiệm vụ được phân công, các đơn vị tổ chức triển khai thực hiện nghiêm túc nội dung của Kế hoạch.

2. Giao các Sở, ngành: Công an Thành phố, Công Thương, Xây dựng, Quy hoạch - Kiến trúc, Tài nguyên và Môi trường, Kế hoạch và Đầu tư, Tổng Công ty Điện lực thành phố Hà Nội:

(1) Phân công lãnh đạo, cán bộ tham gia Đoàn kiểm tra theo đúng thành phần tại Kế hoạch; gửi danh sách lãnh đạo, cán bộ tham gia Đoàn kiểm tra về UBND Thành phố (qua Công an Thành phố - Phòng Cảnh sát PCCC và CNCH) theo biểu mẫu gửi kèm Kế hoạch trước ngày 25/10/2023 để tập hợp.

(2) Chuẩn bị các tài liệu có liên quan phục vụ công tác kiểm tra theo quy định. Trong quá trình kiểm tra phải đánh giá sâu, cụ thể các ưu điểm, tồn tại, hạn chế của đơn vị, cơ sở; từ đó có đánh giá trách nhiệm cụ thể của các tập thể, cá nhân có liên quan trong công tác chỉ huy, chỉ đạo điều hành và tổ chức triển khai thực hiện; kiến nghị, đề xuất các giải pháp, biện pháp khắc phục.

3. Giao Công an Thành phố chủ trì, phối hợp các Sở, ngành: Công Thương, Xây dựng, Quy hoạch - Kiến trúc, Tài nguyên và Môi trường, Kế hoạch và Đầu tư, Tổng Công ty Điện lực thành phố Hà Nội tổ chức kiểm tra theo chức năng, nhiệm vụ được phân công và xây dựng báo cáo, báo cáo UBND Thành phố kết quả kiểm tra theo quy định./.

 


Nơi nhận:
- Bộ Công an (V01, C07);
- Thường trực Thành ủy;
- Thường trực HĐND Thành phố;
- Chủ tịch UBND Thành phố;
- PCT TTUBND Thành phố;
- Ủy ban MTTQVN Thành phố;
- Các Sở, ban, ngành Thành phố;
- UBND các quận, huyện, thị xã;
- VPUB: CVP, PCVP C.N.Trang, NC, KGVX,
KT, ĐT, TH;
- Lưu: VT.

TM. ỦY BAN NHÂN DÂN
KT. CHỦ TỊCH
PHÓ CHỦ TỊCH




Lê Hồng Sơn

 

...........
...................

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------

 

Hà Nội, ngày   tháng   năm 2023

 

BIỂU MẪU DANH SÁCH

Cử thành viên tham gia Đoàn kiểm tra liên ngành kiểm tra việc thực hiện công tác phòng cháy, chữa cháy và cứu nạn, cứu hộ trên địa bàn Thành phố Hà Nội

TT

Họ và tên

Chức vụ, Đơn vị

SĐT liên hệ

Địa chỉ Email

Ghi chú

1

 

 

 

 

 

...

 

 

 

 

 

 

 

THỦ TRƯỞNG ĐƠN VỊ

 

 



/g, '').replace(/\s*(<\/?[^>]+>)\s*/g, '$1').trim(); } function checkAndWrap(element) { // Đệ quy kiểm tra các phần tử .main-elem con bên trong trước element.children('cttd, dctd, dctk').each(function() { checkAndWrap($(this)); }); // Lấy HTML hiện tại của phần tử .main-elem và làm sạch nó var currentHTML = cleanHTML(element.html()); // Log trạng thái HTML bên trong trước khi kiểm tra //console.log('Before inner HTML:', currentHTML); // Kiểm tra xem HTML có bao quanh bởi thẻ span không if (!(currentHTML.startsWith(''))) { // Nếu không, bao quanh toàn bộ nội dung bằng thẻ span element.html('' + currentHTML + ''); currentHTML = cleanHTML(element.html()); //console.log('After inner HTML:', currentHTML); } else { //console.log('Giữ nguyên inner HTML:..........................'); } } $('cttd.chuthichtudong a.chuthichtudong').each(function() { $(this).removeClass('chuthichtudong'); }); // Bắt đầu kiểm tra từ các phần tử .main-elem ngoài cùng $('cttd.chuthichtudong, a.chuthichtudong, dctd, dctk').each(function() { $(this).attr('id', 'rnd_' + random_string_id(20)); checkAndWrap($(this)); }); }); $(document).ready(function() { $('cttd.chuthichtudong span, a.chuthichtudong span, dctk span, dctd span').click(function(e) { e.preventDefault(); e.stopPropagation(); }); $('cttd.chuthichtudong > span, a.chuthichtudong > span, dctk > span, dctd > span').click(function(e) { e.preventDefault(); e.stopPropagation(); if ($(document).width()<=768) { return; } var $this = $(this); //alert($this.position().top); var clickedElement = $(this); var level = 0; var selectors = ['cttd.chuthichtudong > span', 'dctk > span', 'dctd > span']; // Kiểm tra xem có ít nhất một cấp con thỏa mãn điều kiện không var hasChild = selectors.some(function(selector) { return clickedElement.closest(selector).find('span').length > 0; }); if (!hasChild) { //alert('chỉ có 1 cấp'); var totalSubLevels = 1; } else { function findMatchingParent(element) { var parent = element.parent(); if (parent.length === 0) return null; for (var i = 0; i < selectors.length; i++) { if (parent.is(selectors[i])) { return parent; } } return findMatchingParent(parent); } var parentElement = findMatchingParent(clickedElement); while (parentElement !== null) { level++; parentElement = findMatchingParent(parentElement); } var closestElement = clickedElement.closest(selectors.join(', ')); var nodeName = closestElement.prop('nodeName').toLowerCase(); var className = closestElement.attr('class'); var textContent = closestElement.text().trim(); var address = selectors.find(function(selector) { return closestElement.is(selector); }); // Đếm tổng số cấp dưới bao gồm cả cấp được click var totalSubLevels = closestElement.find('span').length + 1; // +1 để bao gồm cả cấp được click var parent_id = closestElement.parent().attr('id'); //alert('Clicked element level: ' + level + '\nAddress: ' + address + '\nText: ' + textContent + '\nparent_id: ' + parent_id); var variableName = 'parent_id_' + level; // Gán giá trị của parent_id cho biến động này window[variableName] = parent_id; } if (totalSubLevels>1) { // Tạo đối tượng để lưu trữ các biến động var dynamicVars = {}; // Tạo tên biến động dựa trên giá trị của level var variableName = 'parent_id_' + level; // Gán giá trị của parent_id cho biến động này dynamicVars[variableName] = parent_id; // Giờ gắn ngược lại biến buble_id = parent_id_{level} var buble_id = dynamicVars[variableName]; } else { buble_id = 'dc_' + $(this).parent().attr('id'); } //alert('bat dau xu ly ' + buble_id); // Nếu không có .pointer ngay sau .main-elem thì chèn thêm if ($this.next('.pointy').length === 0) { $this.after('

'); } var $pointer = $this.next('.pointer'); var $canvas = $this.next('canvas'); var $pointy = $canvas.next('div.pointy'); if ($pointy.is(':visible')) { //alert('now hide everything'); } //$pointer.css({'border':'solid 5px red'}); //$pointer.hide(); //$pointer.prev('canvas.pointy').hide(); if ($pointer.is(':visible')) { } else { if ($('#ajax_tra_cuu').is(':visible')) { $('#ajax_tra_cuu').hide(); } $("#right_info_col").css('height', '1px'); //$('#rightdocinfo').hide(); $('#rightdocinfo').hide('slow'); $('#r-toc').hide('slow'); if ($('button#toggleSidebar').length) { if (parseInt($('#customSidebar').css('right'),10) == 0) { $('#customSidebar').animate({ right: '-280px' }, 500); $('#toggleSidebar').html(''); } else { } } //alert('pointy length: ' + $pointy.length); //alert('pointy visible: ' + $pointy.is(':visible')); //$canvas.show(); if ($pointy.is(':visible')) { var $pointer = $canvas.next('.pointer'); //alert('pointer text: ' + $pointer.text()); //alert('pointer visible: ' + $pointer.is(':visible')); if ($pointer.is(':visible')) { //alert($pointer.prev('canvas.pointy').length); $pointer.hide(); $canvas.hide(); } else { } } else { if ($canvas.length==1) { var $canvas = $this.next('canvas'); var $pointer = $canvas.next('.pointer'); //$pointy.show(); if ($pointer.length>0) { $pointer.show(); $canvas.show(); } //$canvas.show(); $('.pointer').removeClass('pointy-active'); $('.pointer').css({'z-index':1}); $('canvas.pointy').removeClass('pointy-active'); $('canvas.pointy').css({'z-index':1}); $pointer.css({'z-index':9999}); $canvas.css({'z-index':9999}); if (level==0) { if (totalSubLevels==1) { scrollTop_offset = $pointer.offset().top - $(window).height() / 4; } else { scrollTop_offset = $pointer.offset().top - $('#nav-tab-vb').height()-10; } $('html,body').animate({ scrollTop: scrollTop_offset }, 'slow'); } } else { $pointer.show(); //$canvas.show(); if ($pointy.length==0) { var elementOffset = $(this).position().top; var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); var newTop = elementOffset - (pointerHeight / 2); // Đảm bảo pointer không ra khỏi màn hình var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); if (totalSubLevels=1) { if (level>0) { newTop = newTop+pointerHeight+30; } } // Positioning the pointer var position = $this.position(); $pointer.css({ left: $('#doc-left-col').width() + 50 + "px", width: $('#doc-right-col').width()-30, height: pointerHeight, 'z-index': 9999, top: newTop + "px" }); // Initialize pointy $this.pointy({ pointer: $pointer, defaultClass: 'zindex', activeClass: 'pointy-active', arrowWidth: 20 }); var initialTop = $pointer.position().top; $pointer.draggable({ containment: 'document', drag: function() { if (screen.width<1280) { var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); } $this.trigger('pointy-update'); } }); // Thêm sự kiện click cho .close_pointy $pointer.on('click', '.close_pointy', function(e) { $pointer.hide(); $pointer.prev('canvas.pointy').hide(); }); // Handle touch events for mobile devices var isDragging = false, startX, startY, offsetX, offsetY; var startDragging = function(e) { if (checkIfScrollingContent(e)) return; if ($(e.target).is('.close_pointy')) { // Nếu đúng thì không chạy các hàm drag return; } isDragging = true; var touch = e.originalEvent.touches[0]; var pos = $pointer.position(); startX = touch.pageX; startY = touch.pageY; offsetX = startX - pos.left; offsetY = startY - pos.top-$pointer.height()-$pointer.height()/1.365; var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); e.preventDefault(); }; var duringDragging = function(e) { if (checkIfScrollingContent(e)) return; if (isDragging) { var touch = e.originalEvent.touches[0]; var moveX = touch.pageX; var moveY = touch.pageY; if (screen.width<1280) { var newLeft = moveX - offsetX; var newTop = moveY - offsetY-$pointer.height()-$pointer.height()/1.365; // Giới hạn không cho kéo vượt quá chiều ngang của màn hình if (newLeft < 0) { newLeft = 0; } else if (newLeft + $pointer.outerWidth() > $(window).width()) { newLeft = $(window).width() - $pointer.outerWidth(); } // Giới hạn không cho kéo lên trên vượt quá position.top ban đầu if (newTop < initialTop) { newTop = initialTop; } $pointer.css({ left: newLeft, top: newTop }); } else { var newLeft = moveX - offsetX; var newTop = moveY - offsetY-$pointer.height()-$pointer.height()/1.365; // Giới hạn không cho kéo vượt quá chiều ngang của màn hình if (newLeft < 0) { newLeft = 0; } else if (newLeft + $pointer.outerWidth() > $(window).width()) { newLeft = $(window).width() - $pointer.outerWidth(); } $pointer.css({ left: newLeft, top: newTop }); } $pointer.prev('canvas.pointy').hide(); e.preventDefault(); } }; var stopDragging = function(e) { $pointer.prev('canvas.pointy').show(); if (checkIfScrollingContent(e)) return; if (screen.width<1280) { var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); } $this.trigger('pointy-update'); }; function checkIfScrollingContent(e) { // Kiểm tra đối tượng mà người dùng đang chạm có phải là nội dung bên trong $pointer // Ví dụ, nếu nó là một phần tử
hoặc

bên trong $pointer if ($(e.target).closest('.list_tds').length > 0) { // Người dùng đang chạm vào nội dung bên trong .scroll_2 // Cho phép hành vi cuộn và ngăn chặn di chuyển $pointer e.stopPropagation(); return true; } // Người dùng không chạm vào nội dung bên trong $pointer // Cho phép di chuyển $pointer return false; } $pointer.on('touchstart', startDragging); $pointer.on('touchmove', duringDragging); $pointer.on('touchend', stopDragging); // Hàm để cập nhật vị trí của pointer var updatePointerPosition = function() { var offset = $this.position(); //alert($this.position().top); var windowHeight = $(window).height() - $('#nav-tab-vb').height()-20; var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); var elementOffset = $this.position().top; var newTop = elementOffset - (pointerHeight / 2); // Đảm bảo pointer không ra khỏi màn hình var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); $pointer.css({ left: $('#doc-left-col').width() + 50 + "px", width: $('#doc-right-col').width() - 30, height: pointerHeight, top: newTop + "px" }); //alert($pointer.position().top); }; /* */ // Cập nhật vị trí pointer khi thay đổi kích thước hoặc xoay màn hình $(window).on('resize orientationchange', function() { updatePointerPosition(); //$canvas.css('top', $this.position().top+'px'); var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); $this.trigger('pointy-update'); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); }); } } } if ($pointer.is(':visible')) { if (level==0) { if (totalSubLevels==1) { scrollTop_offset = $pointer.offset().top - $(window).height() / 4; } else { scrollTop_offset = $pointer.offset().top - $('#nav-tab-vb').height()-10; } $('html,body').animate({ scrollTop: scrollTop_offset }, 'slow'); } } } $pointer.css('opacity', '1'); $('.pointy').click(function(e) { e.preventDefault(); e.stopPropagation(); }); var parent = $(this).parent(); var dataCT = parent.attr('data-ct'); var dataDC = parent.attr('data-dc'); var dataTN = parent.attr('data-tn'); //if (dataCT) loai_buble = 'chuthich'; //if (dataDC) loai_buble = 'danchieu';; //if (dataTN) loai_buble = 'thuatngu'; var loai_buble = parent.prop('nodeName').toLowerCase(); var text_html = $(this).text(); if (loai_buble=='cttd' || loai_buble=='a') { pointer_html = '

'; } else if(loai_buble=='dctd') { if (this.hasAttribute('o-title')) { tieu_de_dan_chieu = $(this).attr('o-title'); } else { tieu_de_dan_chieu = text_html; } pointer_html = ''; } else if(loai_buble=='dctk') { pointer_html = ''; } if ($pointer.find('#noi_dung_buble_'+buble_id).length) { } else { $pointer.html(pointer_html); } if (loai_buble=='cttd' || loai_buble=='a') { var load_cttd = setInterval(function(){ if ($pointer.find('#noi_dung_buble_'+buble_id + ' .dc_loading').length) { $.ajax({ type: 'POST', url: '/ajax/vanban/chu-thich/', data: { 'ndct': dataCT, 'id_ct': buble_id, 'dc_text': text_html }, success: function(response) { $("#noi_dung_buble_" + buble_id).html(response); if ($(document).width()>=1280){$this.trigger('pointy-update');} clearInterval(load_cttd); } }); } },500); } else if(loai_buble=='dctd') { var load_cttd = setInterval(function(){ if ($pointer.find('#noi_dung_buble_'+buble_id + ' .dc_loading').length){ if (dataDC.length == 32) { $.ajax({ type: 'POST', url: '/ajax/public/dan-chieu/' + dataDC, data: { 'text_dan_chieu': text_html }, success: function(response) { $("#noi_dung_buble_" + buble_id).html(response); if ($(document).width()>=1280){$this.trigger('pointy-update');} clearInterval(load_cttd); } }); } else { $("#noi_dung_buble_" + buble_id).load('/ajax/public/dan-chieu/' + dataDC + '/'); if ($(document).width()>=1280){$this.trigger('pointy-update');} clearInterval(load_cttd); } } else { clearInterval(load_cttd); } },500); } else if(loai_buble=='dctk') { if ($('#noi_dung_buble_'+buble_id + ' .dc_loading').length){ $.ajax({ type: 'POST', url: '/ajax/vanban/chu-thich/', data: { 'ndct': dataCT, 'id_ct': buble_id, 'loai_hd': 'noi_dung_tham_khao', 'dc_text': text_html }, success: function(response) { $("#noi_dung_buble_" + buble_id).html(response); if ($(document).width()>=1280){$this.trigger('pointy-update');} } }); } } /* var tim_buble_id = setInterval(function(){ if ($('#noi_dung_buble_'+buble_id).length) { alert('bay gio moi tim thay '+buble_id); clearInterval(tim_buble_id); } },1000); */ $('.pointer').removeClass('pointy-active'); $('.pointer').css({'z-index':1}); $('canvas.pointy').removeClass('pointy-active'); $('canvas.pointy').css({'z-index':1}); $pointer.css({'z-index':9999}); $canvas.css({'z-index':9999}); $('.pointer').on('mouseenter mouseleave click touchstart', function() { // Khi di chuột vào $('.pointer').removeClass('pointy-active'); $('.pointer').css({'z-index':1}); $(this).css({'z-index':9999}); $('canvas.pointy').removeClass('pointy-active'); $('canvas.pointy').css({'z-index':1}); $(this).prev('canvas.pointy').addClass('pointy-active'); $(this).prev('canvas.pointy').css({'z-index':9999}); } ); var list_tds_max_height_interval = setInterval(function(){ if ($pointer.find('.list_tds').length) { var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); $pointer.find('.list_tds').css('max-height', pointerHeight + 'px'); clearInterval(list_tds_max_height_interval); } },50); $(window).resize(function() { if ($(document).width()<=768) { $pointer.hide(); $pointer.prev('canvas.pointy').hide(); } var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); var list_tds_max_height_interval = setInterval(function(){ if ($pointer.find('.list_tds').length) { var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); $pointer.find('.list_tds').css('max-height', pointerHeight + 'px'); clearInterval(list_tds_max_height_interval); } },50); }); var parentElement = $(this).parent(); // Define the selectors for the target elements var selectors = 'cttd.chuthichtudong > span, a.chuthichtudong > span, dctk > span, dctd > span'; // Find and click all matching child elements parentElement.find(selectors).each(function() { $(this).click(); }); var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); }); }); function random_string_id(numstr) { var text = ""; var possible = "abcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < numstr; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } $(document).ready(function() { function setPointerHeight() { var windowHeight = $(window).height() - $('#nav-tab-vb').height()-20; var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); $('.pointer').css('height', pointerHeight + 'px'); } // Đặt chiều cao khi tải trang setPointerHeight(); // Đặt lại chiều cao khi thay đổi kích thước cửa sổ (nếu cần) $(window).resize(function() { setPointerHeight(); }); }); // Lưu dấu chọn lựa cuối cùng let lastChosen = null; let lastChosentr = null; function scroll_den_hd(ndsh_dich_address) { if (lastChosen) { $(lastChosen).css('background-color', ''); // Xóa mọi bôi mờ trước } if (lastChosentr) { $(lastChosentr).css('background-color', ''); // Xóa mọi bôi mờ trước } lastChosen = $('[href="javascript:scroll_den_hd(\'' + ndsh_dich_address + '\')"]'); lastChosentr = $('[data-ct="' + ndsh_dich_address + '"]'); $(lastChosen).css('background-color', 'yellow'); // Thay bôi mờ $(lastChosentr).css('background-color', 'yellow'); // Thay bôi mờ var targetElement = $('[address="' + ndsh_dich_address + '"]'); $('.selected_dchd').removeClass('selected_dchd'); targetElement.addClass('selected_dchd'); targetElement.children('p').children('cttd').click(); targetElement.children('cttd').click(); targetElement.children('p').children('dctk').click(); targetElement.children('dctk').click(); // Tính toán vị trí để cuộn đến và đẩy vị trí xuống một chút cho dễ nhìn /* var position = targetElement.offset().top - $(window).height()/2; // Sử dụng animate để cuộn đến vị trí, sau đó không cần bôi màu như trước $('html, body').animate({ scrollTop: position }, 800, function() { // Không cần thực hiện thêm hành động nào sau khi cuộn, vì việc đánh dấu đã được xử lý ở trên }); */ }