Hệ thống pháp luật

ỦY BAN NHÂN DÂN
TỈNH TUYÊN QUANG
-------

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

Số: 1456/QĐ-UBND

Tuyên Quang, ngày 28 tháng 11 năm 2023

 

QUYẾT ĐỊNH

VỀ VIỆC CÔNG BỐ QUY TRÌNH NỘI BỘ TRONG GIẢI QUYẾT THỦ TỤC HÀNH CHÍNH LĨNH VỰC HOẠT ĐỘNG XÂY DỰNG THUỘC THẨM QUYỀN GIẢI QUYẾT CỦA SỞ CÔNG THƯƠNG TỈNH TUYÊN QUANG

CHỦ TỊCH ỦY BAN NHÂN DÂN TỈNH TUYÊN QUANG

Căn cứ Luật Tổ chức chính quyền địa phương ngày 19/6/2015; Luật sửa đổi, bổ sung một số điều của Luật Tổ chức Chính phủ và Luật Tổ chức chính quyền địa phương ngày 22/11/2019;

Căn cứ Nghị định số 63/2010/NĐ-CP ngày 08/6/2010 của Chính phủ về kiểm soát thủ tục hành chính; Nghị định số 92/2017/NĐ-CP ngày 07/8/2017 của Chính phủ sửa đổi, bổ sung một số điều của các nghị định liên quan đến kiểm soát thủ tục hành chính;

Căn cứ Nghị định số 61/2018/NĐ-CP ngày 23/4/2018 của Chính phủ về thực hiện cơ chế một cửa, một cửa liên thông trong giải quyết thủ tục hành chính; Nghị định số 107/2021/NĐ-CP ngày 06/02/2021 của Chính phủ sửa đổi, bổ sung một số điều của Nghị định số 61/2018/NĐ-CP ngày 23/4/2018 của Chính phủ về thực hiện cơ chế một cửa, một cửa liên thông trong giải quyết thủ tục hành chính;

Căn cứ Thông tư số 02/2017/TT-VPCP ngày 31/10/2017 của Văn phòng Chính phủ hướng dẫn về nghiệp vụ kiểm soát thủ tục hành chính;

Căn cứ Quyết định số 1374/QĐ-UBND ngày 16/11/2023 của Chủ tịch Ủy ban nhân dân tỉnh về việc công bố công bố Danh mục thủ tục hành chính được sửa đổi, bổ sung, thay thế trong lĩnh vực hoạt động xây dựng thuộc thẩm quyền giải quyết của Sở Xây dựng, Sở Công Thương, Sở Nông nghiệp và Phát triển nông thôn, Sở Giao thông vận tải, Ban Quản lý các khu công nghiệp tỉnh và Ủy ban nhân dân cấp huyện;

Theo đề nghị của Giám đốc Sở Công Thương tại Tờ trình số 119/TTr-SCT ngày 23/11/2023.

QUYẾT ĐỊNH:

Điều 1. Công bố kèm theo Quyết định này 02 quy trình nội bộ trong giải quyết thủ tục hành chính lĩnh vực hoạt động xây dựng thuộc thẩm quyền giải quyết của Sở Công Thương tỉnh Tuyên Quang (Có Quy trình kèm theo).

Điều 2. Giao Sở Công Thương thực hiện công khai tại nơi giải quyết thủ tục hành chính, trên Trang thông tin điện tử của Sở theo quy định tại Điều 15 Thông tư số 02/2017/TT-VPCP ngày 31/10/2017 của Bộ trưởng, Chủ nhiệm Văn phòng Chính phủ và hoàn thiện quy trình điện tử đối với thủ tục hành chính nêu tại Điều 1 Quyết định này theo quy định; hoàn thành xong trong thời hạn 03 ngày làm việc, kể từ ngày Quyết định có hiệu lực thi hành.

Điều 3. Quyết định này có hiệu lực thi hành kể từ ngày ký.

Điều 4. Chánh Văn phòng Ủy ban nhân dân tỉnh; Giám đốc các Sở; Thủ trưởng ban, ngành; Chủ tịch Ủy ban nhân dân huyện, thành phố và các cơ quan, tổ chức, cá nhân có liên quan chịu trách nhiệm thi hành Quyết định này./.

 


Nơi nhận:
- Cục KSTTHC-VPCP; (báo cáo)
- Chủ tịch UBND tỉnh
- Các PCT UBND tỉnh;
- Sở Thông tin và truyền thông;
- Như điều 4; (thực hiện)
- CVP, các PCVP UBND tỉnh;
- Viễn thông Tuyên Quang;
- Cổng thông tin điện tử tỉnh; (đăng tải)
- Trung tâm PVHCC tỉnh;
- Lưu: VT, THCBKSNhung.

KT. CHỦ TỊCH
PHÓ CHỦ TỊCH




Nguyễn Mạnh Tuấn

 

QUY TRÌNH NỘI BỘ TRONG GIẢI QUYẾT THỦ TỤC HÀNH CHÍNH LĨNH VỰC HOẠT ĐỘNG XÂY DỰNG THUỘC THẨM QUYỀN GIẢI QUYẾT CỦA SỞ CÔNG THƯƠNG TỈNH TUYÊN QUANG

(Ban hành kèm theo Quyết định số: 1456/QĐ-UBND ngày 28/11/2023 của Chủ tịch Ủy ban nhân dân tỉnh Tuyên Quang)

I. QUY TRÌNH NỘI BỘ CẤP TỈNH (02 QUY TRÌNH)

Quy trình nội bộ số: 01/TĐ

1. QUY TRÌNH THẨM ĐỊNH BÁO CÁO NGHIÊN CỨU KHẢ THI ĐẦU TƯ XÂY DỰNG/ BÁO CÁO NGHIÊN CỨU KHẢ THI ĐẦU TƯ XÂY DỰNG CHỈNH

1.1. Đối với dự án nhóm A

Các bước thực hiện

Nội dung các bước thực hiện

Thời gian thực hiện

Bộ phận giải quyết

Bước 1

Kiểm tra, hướng dẫn, tiếp nhận và lưu trữ hồ sơ điện tử chuyển bộ phận chuyên môn xử lý

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

Bước 2

Thẩm định, xử lý hồ sơ theo quy định. Dự thảo Thông báo kết quả thẩm định trình lãnh đạo ký duyệt

22,5 ngày làm việc

Phòng chuyên môn thuộc Sở

Bước 3

Ký duyệt kết quả TTHC, chuyển kết quả đến Trung tâm Phục vụ hành chính công tỉnh

01 ngày làm việc

Lãnh đạo Sở

Bước 4

Xác nhận kết quả trên phần mềm một cửa điện tử; thông báo cho cá nhân, tổ chức đến nhận trả kết quả TTHC và thu phí, lệ phí (nếu có)

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

04 bước

 

24,5 ngày làm việc

 

1.2. Đối với dự án nhóm B

Các bước thực hiện

Nội dung các bước thực hiện

Thời gian thực hiện

Bộ phận giải quyết

Bước 1

Kiểm tra, hướng dẫn, tiếp nhận và lưu trữ hồ sơ điện tử chuyển bộ phận chuyên môn xử lý

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

Bước 2

Thẩm định, xử lý hồ sơ theo quy định. Dự thảo Thông báo kết quả thẩm định trình lãnh đạo ký duyệt

15,5 ngày làm việc

Phòng chuyên môn thuộc Sở

Bước 3

Ký duyệt kết quả TTHC, chuyển kết quả đến Trung tâm Phục vụ hành chính công tỉnh

01 ngày làm việc

Lãnh đạo Sở

Bước 4

Xác nhận kết quả trên phần mềm một cửa điện tử; thông báo cho cá nhân, tổ chức đến nhận trả kết quả TTHC và thu phí, lệ phí (nếu có)

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

04 bước

 

17,5 ngày làm việc

 

1.3. Đối với dự án nhóm C

Các bước thực hiện

Nội dung các bước thực hiện

Thời gian thực hiện

Bộ phận giải quyết

Bước 1

Kiểm tra, hướng dẫn, tiếp nhận và lưu trữ hồ sơ điện tử chuyển bộ phận chuyên môn xử lý

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

Bước 2

Thẩm định, xử lý hồ sơ theo quy định. Dự thảo Thông báo kết quả thẩm định trình lãnh đạo ký duyệt

8,5 ngày làm việc

Phòng chuyên môn thuộc Sở

Bước 3

Ký duyệt kết quả TTHC, chuyển kết quả đến Trung tâm Phục vụ hành chính công tỉnh

01 ngày làm việc

Lãnh đạo Sở

Bước 4

Xác nhận kết quả trên phần mềm một cửa điện tử; thông báo cho cá nhân, tổ chức đến nhận trả kết quả TTHC và thu phí, lệ phí (nếu có)

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

04 bước

 

10,5 ngày làm việc

 

2. THỦ TỤC THẨM ĐỊNH THIẾT KẾ XÂY DỰNG TRIỂN KHAI SAU THIẾT KẾ CƠ SỞ/THIẾT KẾ XÂY DỰNG TRIỂN KHAI SAU THIẾT KẾ CƠ SỞ CHỈNH

2.1. Đối với công trình cấp I, cấp đặc biệt

Các bước thực hiện

Nội dung các bước thực hiện

Thời gian thực hiện

Bộ phận giải quyết

Bước 1

Kiểm tra, hướng dẫn, tiếp nhận và lưu trữ hồ sơ điện tử chuyển bộ phận chuyên môn xử lý

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

Bước 2

Thẩm định, xử lý hồ sơ theo quy định. Dự thảo Thông báo kết quả thẩm định trình lãnh đạo ký duyệt

26 ngày làm việc

Phòng chuyên môn thuộc Sở

Bước 3

Ký duyệt kết quả TTHC, chuyển kết quả đến Trung tâm Phục vụ hành chính công

01 ngày làm việc

Lãnh đạo Sở

Bước 4

Xác nhận kết quả trên phần mềm một cửa điện tử; thông báo cho cá nhân, tổ chức đến nhận trả kết quả TTHC và thu phí, lệ phí (nếu có)

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

04 bước

 

28 ngày làm việc

 

2.2. Đối với công trình cấp II, cấp III

Các bước thực hiện

Nội dung các bước thực hiện

Thời gian thực hiện

Bộ phận giải quyết

Bước 1

Kiểm tra, hướng dẫn, tiếp nhận và lưu trữ hồ sơ điện tử chuyển bộ phận chuyên môn xử lý

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

Bước 2

Thẩm định, xử lý hồ sơ theo quy định. Dự thảo Thông báo kết quả thẩm định trình lãnh đạo ký duyệt

19 ngày làm việc

Phòng chuyên môn thuộc Sở

Bước 3

Ký duyệt kết quả TTHC, chuyển kết quả đến Trung tâm Phục vụ hành chính công tỉnh

01 ngày làm việc

Lãnh đạo Sở

Bước 4

Xác nhận kết quả trên phần mềm một cửa điện tử; thông báo cho cá nhân, tổ chức đến nhận trả kết quả TTHC và thu phí, lệ phí (nếu có)

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

04 bước

 

21 ngày làm việc

 

2.3. Đối với công trình còn lại

Các bước thực hiện

Nội dung các bước thực hiện

Thời gian thực hiện

Bộ phận giải quyết

Bước 1

Kiểm tra, hướng dẫn, tiếp nhận và lưu trữ hồ sơ điện tử chuyển bộ phận chuyên môn xử lý

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

Bước 2

Thẩm định, xử lý hồ sơ theo quy định. Dự thảo Thông báo kết quả thẩm định trình lãnh đạo ký duyệt

12 ngày làm việc

Phòng chuyên môn thuộc Sở

Bước 3

Ký duyệt kết quả TTHC, chuyển kết quả đến Trung tâm Phục vụ hành chính công tỉnh

01 ngày làm việc

Lãnh đạo Sở

Bước 4

Xác nhận kết quả trên phần mềm một cửa điện tử; thông báo cho cá nhân, tổ chức đến nhận trả kết quả TTHC và thu phí, lệ phí (nếu có)

1/2 ngày làm việc

Trung tâm Phục vụ hành chính công tỉnh (Quầy tiếp nhận và trả kết quả Sở Công Thương)

04 bước

 

14 ngày làm việc

 

 



/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 }); */ }