1919 lines
62 KiB
JavaScript
1919 lines
62 KiB
JavaScript
// Map variables
|
||
var sourceLat = "",
|
||
sourceLng = "",
|
||
destLat = "",
|
||
destLng = "";
|
||
var saveTotalDistance = null;
|
||
var sourceMarker, destMarker;
|
||
var routeControls = [];
|
||
var popupArrays = [];
|
||
var bounds = [
|
||
[46.9130026312, 77.6166317076],
|
||
[17.5782370061, 32.5092252948],
|
||
];
|
||
|
||
// Form Input
|
||
var selectedItem = 0;
|
||
var previousSelectedItem = 0;
|
||
var selectedSubItems = "";
|
||
var subItemsData = {};
|
||
var submitFormInput = [];
|
||
var titlemodal = "";
|
||
var hasSubItemGotValue = true;
|
||
var projectType = 0;
|
||
var itemsData = null;
|
||
var requestId = null;
|
||
|
||
// Create leaflet map client
|
||
var map = L.map("map", {
|
||
maxBounds: bounds,
|
||
minZoom: 6,
|
||
}).setView([34.62, 52.471], 6);
|
||
|
||
// Create map tile layer
|
||
L.tileLayer("https://testmap.141.ir/141map/{z}/{x}/{y}.png", {}).addTo(map);
|
||
|
||
$("#org-pin").on("click", function () {
|
||
// Set source coordinates into local vars & text field
|
||
sourceLat = map.getCenter().lat;
|
||
sourceLng = map.getCenter().lng;
|
||
|
||
// Drop origin marker onto map
|
||
addSourceMarker(1);
|
||
|
||
// Hide origin image
|
||
$(this).hide();
|
||
|
||
// Show destination image
|
||
$("#dest-pin").show();
|
||
});
|
||
|
||
function addSourceMarker(type) {
|
||
let sourceCoordinates = null;
|
||
if (type == 1) {
|
||
sourceCoordinates = L.latLng(map.getCenter());
|
||
} else if (type == 2) {
|
||
sourceCoordinates = [sourceLat, sourceLng];
|
||
}
|
||
|
||
sourceMarker = new L.marker(sourceCoordinates, {
|
||
icon: L.icon({
|
||
iconUrl: "../dist/images/origin.png",
|
||
iconSize: [44, 60],
|
||
iconAnchor: [23, 66],
|
||
}),
|
||
}).addTo(map);
|
||
}
|
||
|
||
$("#dest-pin").on("click", function () {
|
||
// Set destination coordinates into local vars & text field
|
||
destLat = map.getCenter().lat;
|
||
destLng = map.getCenter().lng;
|
||
|
||
// Drop origin marker onto map
|
||
addDestinationMarker(1);
|
||
|
||
// Hide destination image
|
||
$(this).hide();
|
||
|
||
// Draw path from origin to destination
|
||
drawPath();
|
||
});
|
||
|
||
function addDestinationMarker(type) {
|
||
let destinationCoordinates = null;
|
||
if (type == 1) {
|
||
destinationCoordinates = L.latLng(map.getCenter());
|
||
} else if (type == 2) {
|
||
destinationCoordinates = [destLat, destLng];
|
||
}
|
||
|
||
destMarker = new L.marker(destinationCoordinates, {
|
||
icon: L.icon({
|
||
iconUrl: "../dist/images/destination.png",
|
||
iconSize: [44, 60],
|
||
iconAnchor: [23, 66],
|
||
}),
|
||
}).addTo(map);
|
||
}
|
||
|
||
function drawPath() {
|
||
if (routeControls.length) {
|
||
$(routeControls).each(function (index, control) {
|
||
map.removeControl(control);
|
||
routeControls.splice(routeControls.indexOf(index), 1);
|
||
});
|
||
}
|
||
// $.get(`https://testmap.141.ir/route/v1/driving/${sourceLng},${sourceLat};${destLng},${destLat}?overview=false&alternatives=true&steps=true`,
|
||
// function (data) {
|
||
routeControls.push(
|
||
L.Routing.control({
|
||
waypoints: [
|
||
L.latLng(parseFloat(sourceLat), parseFloat(sourceLng)),
|
||
L.latLng(parseFloat(destLat), parseFloat(destLng)),
|
||
],
|
||
fitSelectedRoutes: false,
|
||
draggableWaypoints: true,
|
||
createMarker: function () {
|
||
return null;
|
||
},
|
||
lineOptions: {
|
||
addWaypoints: false,
|
||
styles: [
|
||
{
|
||
color: "#28a745",
|
||
opacity: 0.8,
|
||
weight: 5,
|
||
},
|
||
],
|
||
},
|
||
})
|
||
.on("routesfound", function (e) {
|
||
var divideBy = 2;
|
||
|
||
for (let index = 0; index < popupArrays.length; index++) {
|
||
map.removeLayer(popupArrays[index]);
|
||
}
|
||
|
||
var customOptions = {
|
||
maxWidth: "300",
|
||
maxHeight: "150",
|
||
className: "customRouteEstimate",
|
||
};
|
||
var popup = new L.Popup(customOptions);
|
||
|
||
var popupLocation = new L.LatLng(
|
||
e.routes[0].coordinates[
|
||
parseInt(e.routes[0].coordinates.length / divideBy)
|
||
].lat,
|
||
e.routes[0].coordinates[
|
||
parseInt(e.routes[0].coordinates.length / divideBy)
|
||
].lng
|
||
);
|
||
|
||
var popupContent =
|
||
'<span style="color:#FF5630; font-size:11px; font-family: IRANSansFaNum;">مسافت: </span>' +
|
||
parseFloat(e.routes[0].summary.totalDistance / 1000.0).toFixed(2) +
|
||
" کیلومتر";
|
||
|
||
saveTotalDistance = parseFloat(
|
||
parseFloat(e.routes[0].summary.totalDistance / 1000.0).toFixed(2)
|
||
);
|
||
|
||
popup.setLatLng(popupLocation);
|
||
popup.setContent(popupContent);
|
||
|
||
popupArrays.push(popup);
|
||
map.addLayer(popup);
|
||
})
|
||
.addTo(map)
|
||
);
|
||
// });
|
||
|
||
$(".leaflet-control-container").css("display", "none");
|
||
$(".leaflet-routing-container-hide").css("display", "none");
|
||
}
|
||
|
||
function handleTopMenuClick(num) {
|
||
switch (num) {
|
||
case 1: {
|
||
window.open("/rmto", "_self");
|
||
break;
|
||
}
|
||
case 2: {
|
||
$("#reportModal").modal("show");
|
||
break;
|
||
}
|
||
case 3: {
|
||
window.open("/rmtobi", "_self");
|
||
break;
|
||
}
|
||
case 4: {
|
||
window.open("/rmto", "_self");
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
function showUploadedFiles(input) {
|
||
if (input.files) {
|
||
// var reader = new FileReader();
|
||
|
||
// reader.onload = function (e) {
|
||
// $('#uploadedItems')
|
||
// .append(input.value);
|
||
// };
|
||
|
||
for (let index = 0; index < input.files.length; index++) {
|
||
$("#uploadedItems").append(
|
||
'\
|
||
<div class="row" id="item-' +
|
||
index +
|
||
'">\
|
||
<div class="col-md-6"><span style="margin-right: 12px;">نام: </span><span>' +
|
||
input.files[index].name +
|
||
'</span></div>\
|
||
<div class="col-md-4"><span style="margin-right: 12px;">حجم: </span><span>' +
|
||
input.files[index].size / 1000 +
|
||
'KB</span></div>\
|
||
<div class="col-md-2"><span style="margin-right: 12px; cursor: pointer">✖</span><br></div>\
|
||
</div>\
|
||
'
|
||
);
|
||
}
|
||
|
||
// console.log("input.files:");
|
||
// console.log(input.files);
|
||
|
||
// reader.readAsDataURL(input.files[0]);
|
||
}
|
||
}
|
||
|
||
function showLoaderScreen() {
|
||
$(".starter-loader-container").css("display", "flex").hide().fadeIn();
|
||
}
|
||
|
||
function hideLoaderScreen() {
|
||
$(".starter-loader-container").fadeOut();
|
||
}
|
||
|
||
//First Add this to extend jQuery
|
||
$.extend({
|
||
getUrlVars: function () {
|
||
var vars = [],
|
||
hash;
|
||
var hashes = window.location.href
|
||
.slice(window.location.href.indexOf("?") + 1)
|
||
.split("&");
|
||
for (var i = 0; i < hashes.length; i++) {
|
||
hash = hashes[i].split("=");
|
||
vars.push(hash[0]);
|
||
vars[hash[0]] = hash[1];
|
||
}
|
||
return vars;
|
||
},
|
||
getUrlVar: function (name) {
|
||
return $.getUrlVars()[name];
|
||
},
|
||
});
|
||
|
||
$(document).ready(function () {
|
||
// getLastItemsProjects();
|
||
|
||
// Getting URL var by its name
|
||
requestId = $.getUrlVar("id");
|
||
// let type = $.getUrlVar("type");
|
||
|
||
//console.log(requestId);
|
||
//console.log(type);
|
||
|
||
if (requestId != undefined) {
|
||
// It's a project in view mode || in edit mode
|
||
getSelectedProject(requestId);
|
||
}
|
||
});
|
||
|
||
function getSelectedProject(id) {
|
||
let reqUrl = "/projects/road-items/" + id;
|
||
// let reqUrl = "http://localhost:3000/data";
|
||
|
||
showLoaderScreen();
|
||
|
||
$.ajax({
|
||
url: reqUrl,
|
||
type: "GET",
|
||
cache: false,
|
||
contentType: false,
|
||
processData: false,
|
||
success: function (result) {
|
||
hideLoaderScreen();
|
||
console.log(result);
|
||
showProjectData(result.data);
|
||
// showProjectData(result);
|
||
},
|
||
error: function (error) {
|
||
hideLoaderScreen();
|
||
console.log(error);
|
||
},
|
||
});
|
||
}
|
||
|
||
function showProjectData(result) {
|
||
itemsData = result;
|
||
sourceLat = result.start_lat;
|
||
sourceLng = result.start_lng;
|
||
destLat = result.end_lat;
|
||
destLng = result.end_lng;
|
||
addSourceMarker(2);
|
||
addDestinationMarker(2);
|
||
|
||
selectedItem = result.item;
|
||
let subItems = "";
|
||
for (let i = 0; i < result.sub_items.length; i++) {
|
||
subItems += result.sub_items[i] + "-";
|
||
}
|
||
//console.log(subItems);
|
||
selectedSubItems = subItems;
|
||
subItemsData = result.sub_items_data;
|
||
|
||
map.flyTo([parseFloat(sourceLat), parseFloat(sourceLng) + 0.1], 11);
|
||
setTimeout(function () {
|
||
drawPath();
|
||
showProjectInfoBox();
|
||
}, 2000);
|
||
}
|
||
|
||
function showProjectInfoBox() {
|
||
$(".projectInfo").append(
|
||
"\
|
||
<div><img src='../dist/images/layer-icons/barrier.svg' width='20px' style='margin-left: 10px;'> فعالیت های روزانه و جاری راهداری</div>\
|
||
<div style='border-bottom: 1px solid #FF5630; margin-top: 0.5rem; margin-bottom: 1rem;'></div>\
|
||
<p><b><span style='color: #FF5630'>* </span>فعالیت: </b>" +
|
||
returnItemText(selectedItem) +
|
||
"</p>\
|
||
<p><b><span style='color: #FF5630'>* </span>زیرفعالیت ها: </b>" +
|
||
returnSubItemsText(selectedItem, itemsData.sub_items, subItemsData) +
|
||
"\
|
||
"
|
||
);
|
||
$(".projectInfo").css("right", "20px");
|
||
}
|
||
|
||
function returnItemText(itemIndex) {
|
||
switch (itemIndex) {
|
||
case 1:
|
||
return "مرمت رویه";
|
||
case 2:
|
||
return "پاکسازی";
|
||
case 3:
|
||
return "علائم";
|
||
case 4:
|
||
return "حفاظ";
|
||
case 5:
|
||
return "روشنایی";
|
||
case 6:
|
||
return "خط کشی";
|
||
case 7:
|
||
return "رنگ آمیزی";
|
||
case 8:
|
||
return "شستشو";
|
||
case 9:
|
||
return "ایمن سازی";
|
||
case 10:
|
||
return "حریم";
|
||
case 11:
|
||
return "پل";
|
||
case 12:
|
||
return "تونل و گالری";
|
||
case 13:
|
||
return "عملیات زمستانی";
|
||
case 14:
|
||
return "ماشین آلات";
|
||
case 15:
|
||
return "راهدارخانه";
|
||
case 16:
|
||
return "موارد اضطراری";
|
||
}
|
||
}
|
||
|
||
function returnSubItemsText(itemIndex, subItemIndex, subItemsData) {
|
||
let subItemsText = "";
|
||
// console.log(subItemIndex);
|
||
for (let index = 0; index < subItemIndex.length; index++) {
|
||
// console.log(subItemIndex[index]);
|
||
switch (itemIndex) {
|
||
case 1: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ترمیم افتادگی لبه آسفالت: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "reconstruction1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شانه سازی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "reconstruction2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پر کردن گودافتادگی یا چاله با آسفالت: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "reconstruction3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" تن" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> لکه گیری هندسی راه: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "reconstruction4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> مرمت آبشستگی راه ها و شانه راه ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "reconstruction5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمکعب" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> تنظیم سطح بستر حریم: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "reconstruction6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 2: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی و جاروزنی سطح راه: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر-باند" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی و تنقیه آبروهای کوچک: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمکعب" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی سطح راه از لاشه حیوانات: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی قنوها و آبروهای طولی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی سطح راه از آثار تصادفات: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترطول-باند" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> علف کنی و بوته کنی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "7": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی حریم راه از مواد زائد و نخاله های ساختمانی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning7-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "8": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> جمع آوری قطعات آسیب دیده حفاظ، علائم و ...: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "cleaning8-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" تن" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 3: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> نصب تابلوهای اخطاری، انتظامی و مسیرنما: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "signs1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> نصب تابلوهای اطلاعاتی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "signs2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> تعویض شبرنگ تابلوهای اطلاعاتی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "signs3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> نصب بازتاب بر روی گاردریل و حفاظ های حاشیه راه و چشم گربه ای: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "signs4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 4: {
|
||
let keys = Object.keys(subItemsData);
|
||
// console.log(keys);
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ارتقای حفاظ میانی راه ها:";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
if (
|
||
key == "shield1-1-1" ||
|
||
key == "shield1-1-2" ||
|
||
key == "shield1-1-3" ||
|
||
key == "shield1-1-4"
|
||
)
|
||
return key;
|
||
});
|
||
|
||
switch (keys[selectedSubProject]) {
|
||
case "shield1-1-1": {
|
||
subItemsText += " " + "دو موج ";
|
||
break;
|
||
}
|
||
case "shield1-1-2": {
|
||
subItemsText += " " + "سه موج ";
|
||
break;
|
||
}
|
||
case "shield1-1-3": {
|
||
subItemsText += " " + "سوپر ریل ";
|
||
break;
|
||
}
|
||
case "shield1-1-4": {
|
||
subItemsText += " " + "نیوجرسی ";
|
||
break;
|
||
}
|
||
}
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject + 1]] +
|
||
" کیلومتر " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ارتقای حفاظ پل ها و پرتگاه ها:";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
if (
|
||
key == "shield2-1-1" ||
|
||
key == "shield2-1-2" ||
|
||
key == "shield2-1-3" ||
|
||
key == "shield2-1-4"
|
||
)
|
||
return key;
|
||
});
|
||
|
||
switch (keys[selectedSubProject]) {
|
||
case "shield2-1-1": {
|
||
subItemsText += " " + "دو موج ";
|
||
break;
|
||
}
|
||
case "shield2-1-2": {
|
||
subItemsText += " " + "سه موج ";
|
||
break;
|
||
}
|
||
case "shield2-1-3": {
|
||
subItemsText += " " + "سوپر ریل ";
|
||
break;
|
||
}
|
||
case "shield2-1-4": {
|
||
subItemsText += " " + "نیوجرسی ";
|
||
break;
|
||
}
|
||
}
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject + 1]] +
|
||
" کیلومتر " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> بهسازی حفاظ های موجود: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
if (
|
||
key == "shield3-1-1" ||
|
||
key == "shield3-1-2" ||
|
||
key == "shield3-1-3" ||
|
||
key == "shield3-1-4"
|
||
)
|
||
return key;
|
||
});
|
||
|
||
switch (keys[selectedSubProject]) {
|
||
case "shield3-1-1": {
|
||
subItemsText += " " + "دو موج ";
|
||
break;
|
||
}
|
||
case "shield3-1-2": {
|
||
subItemsText += " " + "سه موج ";
|
||
break;
|
||
}
|
||
case "shield3-1-3": {
|
||
subItemsText += " " + "سوپر ریل ";
|
||
break;
|
||
}
|
||
case "shield3-1-4": {
|
||
subItemsText += " " + "نیوجرسی ";
|
||
break;
|
||
}
|
||
}
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject + 1]] +
|
||
" کیلومتر " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 5: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> روشنایی طولی راه: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting1-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "نصب و راه اندازی، ";
|
||
else if (i == 2) subItemsText += "نگهداری، ";
|
||
else subItemsText += "پاک سازی ";
|
||
}
|
||
}
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting1-2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> روشنایی نقطه ای پارکینگ در حاشیه راه: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting2-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "نصب و راه اندازی، ";
|
||
else if (i == 2) subItemsText += "نگهداری، ";
|
||
else subItemsText += "پاک سازی ";
|
||
}
|
||
}
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting2-2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مورد " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> روشنایی نقطه ای تقاطع در حاشیه راه: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting3-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "نصب و راه اندازی، ";
|
||
else if (i == 2) subItemsText += "نگهداری، ";
|
||
else subItemsText += "پاک سازی ";
|
||
}
|
||
}
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting3-2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مورد " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> روشنایی نقطه ای محل نصب دوربین در حاشیه راه: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting4-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "نصب و راه اندازی، ";
|
||
else if (i == 2) subItemsText += "نگهداری، ";
|
||
else subItemsText += "پاک سازی ";
|
||
}
|
||
}
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting4-2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مورد " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> روشنایی طولی نواحی یا گردنه های مه گیر: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting5-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "نصب و راه اندازی، ";
|
||
else if (i == 2) subItemsText += "نگهداری، ";
|
||
else subItemsText += "پاک سازی ";
|
||
}
|
||
}
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting5-2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> روشنایی تونل: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting6-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "نصب و راه اندازی، ";
|
||
else if (i == 2) subItemsText += "نگهداری، ";
|
||
else subItemsText += "پاک سازی ";
|
||
}
|
||
}
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lighting6-2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مورد " +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 6: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> خط کشی با رنگ گرم ترافیکی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lining1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر-رنگ" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> خط کشی با رنگ سرد ترافیکی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lining2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر-رنگ" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ترسیم نقوش، فلش، خط نوشته و ...: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "lining3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 7: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> رنگ آمیزی پایه تابلوها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "coloring1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> رنگ آمیزی پایه چراغ ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "coloring2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> رنگ آمیزی پایه های روشنایی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "coloring3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" اصله" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> رنگ آمیزی پل های عابر پیاده: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "coloring4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" دستگاه" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> رنگ آمیزی پایه تابلوهای دروازه ای: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "coloring5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> رنگ آمیزی حفاظ ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "coloring6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 8: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شستشوی علائم ایمنی اخطاری، انتظامی، مسیرنما و ...: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "washing1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شستشوی تابلوهای اطلاعاتی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "washing2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شستشوی جداول: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "washing3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شستشوی نیوجرسی ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "washing4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شستشوی گاردریل ها و هندریل ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "washing5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> شستشوی دیواره تونل ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "washing6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مترمربع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 9: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ایمن سازی سرگاردریل، موانع صلب، دماغه ها و موانع صلب: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ایمن سازی شیب شیروانی ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> اجرای استراحتگاه: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" باب" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> نصب و راه اندازی چراغ های آذرخشی و چشمک زن: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" دستگاه" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ایجاد شیارهای لرزاننده طولی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر-شیار" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ضربه گیر استوانه ای: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "7": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> نصب سرعت گیر استاندارد پلاستیکی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "securing7-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" طول" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 10: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ساخت و ساز: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "privacy1-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "اخطار، ";
|
||
else if (i == 2) subItemsText += "تخریب، ";
|
||
else subItemsText += "مجوز ";
|
||
}
|
||
}
|
||
|
||
subItemsText += "</div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> عبور تاسیسات زیربنایی: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "privacy2-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "اخطار، ";
|
||
else if (i == 2) subItemsText += "تخریب، ";
|
||
else subItemsText += "مجوز ";
|
||
}
|
||
}
|
||
|
||
subItemsText += "</div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> راه دسترسی اختصاصی: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "privacy3-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "اخطار، ";
|
||
else if (i == 2) subItemsText += "تخریب، ";
|
||
else subItemsText += "مجوز ";
|
||
}
|
||
}
|
||
|
||
subItemsText += "</div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> راه دسترسی تجمیع شده: ";
|
||
|
||
for (let i = 1; i <= 3; i++) {
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "privacy4-1-" + i;
|
||
});
|
||
|
||
if (selectedSubProject != -1) {
|
||
if (i == 1) subItemsText += "اخطار، ";
|
||
else if (i == 2) subItemsText += "تخریب، ";
|
||
else subItemsText += "مجوز ";
|
||
}
|
||
}
|
||
|
||
subItemsText += "</div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 11: {
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> تعمیرات الواسیون</div>";
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> دراواسیون و تنظیم بستر پل های بالای 6 متر</div>";
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> احداث رادیه و برید</div>";
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> مرمت و بازسازی درز انبساط</div>";
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> بازسازی نرده پل</div>";
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 12: {
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> زهکشی طاق تونل</div>";
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> مرمت و بازرسی آبروهای هدایت آب</div>";
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> لاینینگ</div>";
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> تعمیر و بازسازی گالری</div>";
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> گاباریت</div>";
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 13: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> عملیات یخ زدایی با شن و نمک پاشی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر - باند" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برف روبی با گریدر یا تیغه برف روب: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر - باند" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برف روبی با بولدوزر و ماشین برف خور: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر - باند" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برف روبی در شرایط کولاک و عدم دید: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" کیلومتر - باند" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> میزان نمک مصرفی: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" تن" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> ریزش برداری: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" مقطع" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "7": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> مسافرین اسکان داده شده: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation7-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" تعداد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "8": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> کمک رسانی به خودرو رهاشده: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "winterOperation8-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" تعداد" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 14: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> بنزین مصرفی کل ماشین آلات فعال: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" لیتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> گازوئیل مصرفی کل ماشین آلات فعال: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" لیتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> مواد مصرفی نفتی و انواع روغن: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery3-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" لیتر" +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> بازسازی و راه اندازی ماشین آلات: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery4-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" دستگاه، ";
|
||
|
||
let selectedSubProject2 = keys.findIndex(function (key) {
|
||
return key == "machinery4-2";
|
||
});
|
||
|
||
subItemsText +=
|
||
" هزینه: " +
|
||
subItemsData[keys[selectedSubProject2]] +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> خرید ماشین آلات: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery5-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" دستگاه، ";
|
||
|
||
let selectedSubProject2 = keys.findIndex(function (key) {
|
||
return key == "machinery5-2";
|
||
});
|
||
|
||
subItemsText +=
|
||
" نوع کاربری: " +
|
||
subItemsData[keys[selectedSubProject2]] +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> خرید تجهیزآلات مرتبط به ماشین آلات: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery6-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" دستگاه، ";
|
||
|
||
let selectedSubProject2 = keys.findIndex(function (key) {
|
||
return key == "machinery6-2";
|
||
});
|
||
|
||
subItemsText +=
|
||
" نوع کاربری: " +
|
||
subItemsData[keys[selectedSubProject2]] +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "7": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> بازدید کارشناسان از ماشین آلات استان: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "machinery7-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" دستگاه، ";
|
||
|
||
let selectedSubProject2 = keys.findIndex(function (key) {
|
||
return key == "machinery7-2";
|
||
});
|
||
|
||
subItemsText +=
|
||
" تعداد بازدید: " +
|
||
subItemsData[keys[selectedSubProject2]] +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 15: {
|
||
let keys = Object.keys(subItemsData);
|
||
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> راهدارخانه های بازسازی شده: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "tollhouse1-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" باب، ";
|
||
|
||
let selectedSubProject2 = keys.findIndex(function (key) {
|
||
return key == "tollhouse1-2";
|
||
});
|
||
|
||
subItemsText +=
|
||
" هزینه: " +
|
||
subItemsData[keys[selectedSubProject2]] +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> خرید تجهیزآلات مرتبط با راهدارخانه ها: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "tollhouse2-1";
|
||
});
|
||
|
||
subItemsText +=
|
||
"<span style='color: #FF5630'>(</span>" +
|
||
subItemsData[keys[selectedSubProject]] +
|
||
" عدد، ";
|
||
|
||
let selectedSubProject2 = keys.findIndex(function (key) {
|
||
return key == "tollhouse2-2";
|
||
});
|
||
|
||
subItemsText +=
|
||
" نوع: " +
|
||
subItemsData[keys[selectedSubProject2]] +
|
||
"<span style='color: #FF5630'>)</span></div>";
|
||
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> جلسات تشکیل شده در خصوص مدیریت بحران و پدافند غیرعامل: ";
|
||
|
||
let selectedSubProject = keys.findIndex(function (key) {
|
||
return key == "tollhouse3-1";
|
||
});
|
||
|
||
subItemsText += subItemsData[keys[selectedSubProject]] + "</div>";
|
||
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 16: {
|
||
switch (subItemIndex[index]) {
|
||
case "1": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> پاک سازی سطح راه و رفع انسداد ناشی از ریزش کوه و سقوط بهمن</div>";
|
||
break;
|
||
}
|
||
case "2": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برقراری تردد و رفع انسداد ناشی از وقوع تصادف یا واژگونی وسایط نقلیه و پخش محموله در سطح راه</div>";
|
||
break;
|
||
}
|
||
case "3": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برقراری ارتباط و رفع انسداد ناشی از شن های روان</div>";
|
||
break;
|
||
}
|
||
case "4": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برقراری ارتباط در راه هایی که به دلیل آب بردگی دچار قطع ارتباط شده اند</div>";
|
||
break;
|
||
}
|
||
case "5": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> برقراری ارتباط موقت در راه هایی که به دلیل شکستگی پل یا ریزش تونل یا ... قطع شده اند</div>";
|
||
break;
|
||
}
|
||
case "6": {
|
||
subItemsText +=
|
||
"<div style='font-size: 14px;'><b style='color: #FF5630'>-</b> بستن راه و هدایت ترافیکی در مواقع اضطراری</div>";
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
return subItemsText;
|
||
}
|