BỘ XÂY DỰNG | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
Số: 3065/BXD-KTXD | Hà Nội, ngày 14 tháng 7 năm 2023 |
Kính gửi: Công ty trách nhiệm hữu hạn Tiến Đạt
Bộ Xây dựng nhận được Văn bản số 01.06/2023/CV-TĐ ngày 01/6/2023 của Công ty TNHH Tiến Đạt đề nghị hướng dẫn một số nội dung về lĩnh vực đấu thầu. Bộ Xây dựng có ý kiến như sau:
Quy định về chứng minh khả năng huy động các nguồn lực cần thiết để thực hiện các yêu cầu tại hồ sơ mời thầu đã được quy định tại Thông tư số 03/2015/TT-BKHĐTĐề nghị Công ty trách nhiệm hữu hạn Tiến Đạt nghiên cứu, thực hiện theo quy định pháp luật./.
| TL. BỘ TRƯỞNG |
/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(' 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 = '