222 lines
8.2 KiB
JavaScript
222 lines
8.2 KiB
JavaScript
var object_card = new Vue({
|
||
el: '#object_card',
|
||
components: {
|
||
vuejsDatepicker: window.vuejsDatepicker
|
||
},
|
||
data() {
|
||
|
||
return {
|
||
ru: vdp_translation_ru.js,
|
||
agency_id: $('#session_agency_id').val() || null,
|
||
is_show: false,
|
||
object_id: 0,
|
||
object: [],
|
||
OpenIndicator: {
|
||
render: createElement => createElement('span', { class: { 'vueToggleSpan': true } }),
|
||
},
|
||
photos: [],
|
||
isPreloader: 1,
|
||
}
|
||
},
|
||
methods: {
|
||
|
||
//Открытие
|
||
open(object_id, zindex) {
|
||
this.isPreloader = 1;
|
||
if (zindex == 1) {
|
||
$('#object_card .f__modal-bg').css('zIndex', '99988');
|
||
}
|
||
$('#req_form').css('zIndex', '99985');
|
||
$('#modalAutoSearchResults_bg').css('zIndex', '99878');
|
||
$('#modalAutoSearchResults').css('zIndex', '99878');
|
||
if ($('#client-history__bg').css('display') == 'block') {
|
||
$('#client-history__bg').css('zIndex', '99988');
|
||
}
|
||
$("body").addClass("lock");
|
||
this.clear();
|
||
this.is_show = true;
|
||
|
||
this.object_id = object_id;
|
||
if ($('#object_card .fotorama').data('fotorama')) {
|
||
$('#object_card .fotorama').data('fotorama').destroy();
|
||
$('#object_card .fotorama').html('');
|
||
}
|
||
setTimeout(function() {
|
||
if (typeof ymaps == 'undefined') {
|
||
var elem = document.createElement('script');
|
||
elem.type = 'text/javascript';
|
||
elem.src = 'https://api-maps.yandex.ru/2.1/?apikey=692f0a05-cb88-4158-88b9-06bc0dc93004&lang=ru_RU&onload=getYaMap';
|
||
document.getElementById('object_card').appendChild(elem);
|
||
}
|
||
}, 500);
|
||
|
||
if (this.object_id > 0) {
|
||
//console.log(this.object_id);
|
||
|
||
axios.post('/ajax/ajax_object_vue.php', {
|
||
request: 'get_object',
|
||
id: this.object_id,
|
||
|
||
}, )
|
||
.then((response) => {
|
||
this.isPreloader = 0;
|
||
//console.log(response.data);
|
||
this.object = response.data;
|
||
this.photos = response.data.photos;
|
||
this.plan = response.data.plan;
|
||
html = '';
|
||
if (!this.isEmpty(this.photos)) {
|
||
for (var i = 0; i < this.photos.length; i++) {
|
||
html += '<img src="' + this.photos[i] + '" height="450px">';
|
||
}
|
||
if (this.plan) {
|
||
html += '<img src="' + this.plan + '" height="450px">';
|
||
}
|
||
}
|
||
|
||
setTimeout(function() {
|
||
$('#object_card .fotorama').html(html);
|
||
$('#object_card .fotorama').fotorama();
|
||
}, 100);
|
||
setTimeout(function() {
|
||
object_card.getYaMap();
|
||
}, 1000);
|
||
})
|
||
.catch(function(error) {
|
||
console.log(error);
|
||
});
|
||
}
|
||
|
||
},
|
||
|
||
getYaMap() {
|
||
// Создание карты.
|
||
|
||
var latitude = this.object.latitude;
|
||
var longitude = this.object.longitude;
|
||
|
||
var myMapCard = new ymaps.Map("map_canvas_card", {
|
||
center: [59.9174455, 30.3250575],
|
||
zoom: 19,
|
||
controls: ['fullscreenControl', 'zoomControl']
|
||
});
|
||
|
||
var address = $('#shortAddress').text();
|
||
|
||
if (latitude && longitude) {
|
||
var firstGeoObject = new ymaps.Placemark([
|
||
Number.parseFloat(latitude).toPrecision(9),
|
||
Number.parseFloat(longitude).toPrecision(9)
|
||
], {}, { draggable:false});
|
||
firstGeoObject.options.set('preset', 'islands#darkBlueDotIconWithCaption');
|
||
// Получаем строку с адресом и выводим в иконке геообъекта.
|
||
firstGeoObject.properties.set('iconCaption', address);
|
||
myMapCard.geoObjects.add(firstGeoObject);
|
||
myMapCard.setCenter(firstGeoObject.geometry.getCoordinates(), 14);
|
||
} else {
|
||
ymaps.geocode(address, {results: 1})
|
||
.then(function (res) {
|
||
var firstGeoObject = res.geoObjects.get(0),
|
||
// Координаты геообъекта.
|
||
coords = firstGeoObject.geometry.getCoordinates(),
|
||
// Область видимости геообъекта.
|
||
bounds = firstGeoObject.properties.get('boundedBy');
|
||
|
||
firstGeoObject.options.set('preset', 'islands#darkBlueDotIconWithCaption');
|
||
// Получаем строку с адресом и выводим в иконке геообъекта.
|
||
firstGeoObject.properties.set('iconCaption', firstGeoObject.getAddressLine());
|
||
|
||
// Добавляем первый найденный геообъект на карту.
|
||
myMapCard.geoObjects.add(firstGeoObject);
|
||
// Масштабируем карту на область видимости геообъекта.
|
||
myMapCard.setBounds(bounds, {
|
||
// Проверяем наличие тайлов на данном масштабе.
|
||
checkZoomRange: true
|
||
});
|
||
});
|
||
}
|
||
},
|
||
|
||
|
||
clear() {
|
||
this.number = null;
|
||
this.date_start = new Date();
|
||
this.date_end = new Date();
|
||
this.days_mes_end = 10;
|
||
this.no_mes_end = 0;
|
||
this.type_contract = 0;
|
||
this.object = [];
|
||
this.clearErrors();
|
||
},
|
||
|
||
//Очистка ошибок
|
||
clearErrors() {
|
||
this.errorText = '';
|
||
this.errors = { 'number': 0, 'type': 0, 'celendar': 0 };
|
||
this.errorMes = false;
|
||
},
|
||
|
||
|
||
|
||
//Закрытие
|
||
closes() {
|
||
$('#req_form').css('zIndex', '99988');
|
||
$('#modalAutoSearchResults_bg').css('zIndex', '99880');
|
||
$('#modalAutoSearchResults').css('zIndex', '99881');
|
||
$('#object_card .f__modal-bg').css('zIndex', '99889');
|
||
if ($('#client-history__bg').css('display') == 'block') {
|
||
$('#client-history__bg').css('zIndex', '99998');
|
||
}
|
||
$('.chat-cian').css('zIndex','99999');
|
||
|
||
$('#map_canvas_card').html('');
|
||
this.is_show = false;
|
||
$("body").removeClass("lock");
|
||
$('.jw__add-popup').removeClass('is__show');
|
||
},
|
||
|
||
|
||
//Установка даты
|
||
get_date(date) {
|
||
var arrDate = date.split('.');
|
||
var year = parseInt(arrDate[2]);
|
||
var mes = parseInt(arrDate[1]) - 1;
|
||
var day = parseInt(arrDate[0]);
|
||
return new Date(year, mes, day);
|
||
},
|
||
|
||
|
||
|
||
//Проверка на пустоту
|
||
isEmpty(data) {
|
||
if (typeof(data) === 'object') {
|
||
if (JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]') {
|
||
return true;
|
||
} else if (!data) {
|
||
return true;
|
||
}
|
||
return false;
|
||
} else if (typeof(data) === 'string') {
|
||
if (!data.trim()) {
|
||
return true;
|
||
}
|
||
return false;
|
||
} else if (typeof(data) === 'undefined') {
|
||
return true;
|
||
} else if (data == 0) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
},
|
||
|
||
},
|
||
mounted() {
|
||
|
||
},
|
||
created: function() {
|
||
|
||
$("#object_card").removeClass("hidden");
|
||
|
||
}
|
||
}) |