4190 lines
196 KiB
JavaScript
4190 lines
196 KiB
JavaScript
|
|
Vue.config.devtools = true;
|
|||
|
|
|
|||
|
|
//Параметры автопоиска
|
|||
|
|
if ($('#modalAutoSearchFiltr').length > 0) {
|
|||
|
|
var autosearch_filtr = new Vue({
|
|||
|
|
name: 'AutoSearchFilter',
|
|||
|
|
el: '#modalAutoSearchFiltr',
|
|||
|
|
components: {
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
id: null, // ИД фильтра
|
|||
|
|
req_id: null, // ИД заявки
|
|||
|
|
req_type: 1, // тип заявки
|
|||
|
|
deal_type: 2, // тип сделки/операции
|
|||
|
|
object_type: 0, // тип объекта
|
|||
|
|
object_source: 0, // источник добавления объекта
|
|||
|
|
category_type: 0, // тип категории
|
|||
|
|
stoim_ot: null, // цена, от
|
|||
|
|
stoim_do: null, // цена, до
|
|||
|
|
komn_ot: null, // комнат, от
|
|||
|
|
komn_do: null, // комнат, до
|
|||
|
|
sq_all_ot: null, // общая площадь, от
|
|||
|
|
sq_all_do: null, // общая площадь, до
|
|||
|
|
ploshad_k_ot: null, // площадь кухни, от
|
|||
|
|
ploshad_k_do: null, // площадь кухни, до
|
|||
|
|
rent_srok: 0, // срок аренды объекта
|
|||
|
|
rooms: [], // кол-во комнат
|
|||
|
|
regions: [], // регион объекта
|
|||
|
|
rayons: [], // район(ы) объекта
|
|||
|
|
metro_stations: [], // ближ. станции метро
|
|||
|
|
do_metro: 0, // время до метро
|
|||
|
|
do_metro_type: null, // до метро пешком/на траспорте
|
|||
|
|
etazhnost_ot: null, // этажность дома квартиры, от
|
|||
|
|
etazhnost_do: null, // этажность дома квартиры, до
|
|||
|
|
etazhnost: 0, // Не первый и не последний этаж
|
|||
|
|
//order_type: 0, // тип оформления сделки
|
|||
|
|
newbilding_date: null, // срок сдачи
|
|||
|
|
ipoteka: 0, // ипотека
|
|||
|
|
use_area_price: 0,
|
|||
|
|
voen_ipoteka: 0, // воен. ипотека
|
|||
|
|
subsidya: 0, // субсидия
|
|||
|
|
mather_kapital: 0, // материнский капитал
|
|||
|
|
house_type: 0, // тип дома
|
|||
|
|
house_material: 0, // материал дома (тип стен)
|
|||
|
|
build_year: null, // год постройки
|
|||
|
|
tax_number: null, //
|
|||
|
|
legal_address: 0, //
|
|||
|
|
etazh_ot: null, //
|
|||
|
|
etazh_do: null, //
|
|||
|
|
is_occupied: 0, //
|
|||
|
|
layout_id: 0, //
|
|||
|
|
wet_spots: 0, //
|
|||
|
|
el_power_ot: null, //
|
|||
|
|
el_power_do: null, //
|
|||
|
|
commer_condition: 0, //
|
|||
|
|
is_furniture: 0, //
|
|||
|
|
commer_access: 0, //
|
|||
|
|
parking_types: [], //
|
|||
|
|
parking_id: [], //
|
|||
|
|
parking_price: null, //
|
|||
|
|
parking_price_free: 0, //
|
|||
|
|
ceiling_height_ot: null, //
|
|||
|
|
ceiling_height_do: null, //
|
|||
|
|
column_grid: null, //
|
|||
|
|
vat_type_id: 0, //
|
|||
|
|
commerc_site: null, //
|
|||
|
|
commerc_owned1: 0, //
|
|||
|
|
commerc_owned2: 0, //
|
|||
|
|
floor_material_id: 0, //
|
|||
|
|
commerc_portal_id: 0, //
|
|||
|
|
commerc_purpose: [], //
|
|||
|
|
commerc_land_category_id: [], //
|
|||
|
|
commerc_permitted_use_id: [], //
|
|||
|
|
commerc_electricity_id: 0, //
|
|||
|
|
can_electricity: 0, //
|
|||
|
|
commerc_gas_id: 0, //
|
|||
|
|
can_gas: 0, //
|
|||
|
|
commerc_water_id: 0, //
|
|||
|
|
can_water: 0, //
|
|||
|
|
commerc_sewage_id: 0, //
|
|||
|
|
can_sewage: 0, //
|
|||
|
|
commerc_driveways: 0, //
|
|||
|
|
commerc_year_ot: null, //
|
|||
|
|
commerc_year_do: null, //
|
|||
|
|
commerc_building_type_id: [], //
|
|||
|
|
commerc_building_class_id: [], //
|
|||
|
|
building_area_ot: null, //
|
|||
|
|
building_area_do: null, //
|
|||
|
|
commerc_houseline_type_id: [], //
|
|||
|
|
commerc_building_category_id: 0, //
|
|||
|
|
commerc_opened_id: [], //
|
|||
|
|
commerc_building_ventilation: 0, //
|
|||
|
|
commerc_building_conditioning: 0, //
|
|||
|
|
commerc_building_heating: 0, //
|
|||
|
|
commerc_building_fire: 0, //
|
|||
|
|
garage_type_id: 0, //
|
|||
|
|
garage_vid_id: 0, //
|
|||
|
|
boks_vid_id: 0, //
|
|||
|
|
commerc_status_id: 0, //
|
|||
|
|
commerc_specifications: [], //
|
|||
|
|
commerc_infrastructure: [], //
|
|||
|
|
commerc_infrastructure1: [], //
|
|||
|
|
commerc_infrastructure2: [], //
|
|||
|
|
commerc_lift1: null, //
|
|||
|
|
lift1_carrying: null, //
|
|||
|
|
commerc_lift2: null, //
|
|||
|
|
lift2_carrying: null, //
|
|||
|
|
commerc_lift3: null, //
|
|||
|
|
lift3_carrying: null, //
|
|||
|
|
commerc_crane1: null, //
|
|||
|
|
crane1_carrying: null, //
|
|||
|
|
commerc_crane2: null, //
|
|||
|
|
crane2_carrying: null, //
|
|||
|
|
commerc_crane3: null, //
|
|||
|
|
crane3_carrying: null, //
|
|||
|
|
commerc_crane4: null, //
|
|||
|
|
crane4_carrying: null, //
|
|||
|
|
geo: null, // гео-области поиска
|
|||
|
|
opis: '', // описание
|
|||
|
|
comment: '', // комментарий
|
|||
|
|
is_active: 0, // флаг активности фильтра
|
|||
|
|
telegram_notify: 0, // флаг уведомления в Телеграм
|
|||
|
|
// ...
|
|||
|
|
isError: false, // флаг об ошибке
|
|||
|
|
errorText: '', // текст ошибки(ок)
|
|||
|
|
// ...
|
|||
|
|
objectTypes: [], // коллекция типов объектов
|
|||
|
|
roomsCounts: [], // коллекция кол-ва комнат
|
|||
|
|
objectSources: [], // коллекция источнико объектов
|
|||
|
|
categoryTypes: {}, // коллекция типов помещений (коммерция)
|
|||
|
|
objectRentSrok: [], // коллекция типов объектов
|
|||
|
|
objectRegions: [], // коллекция регионов РФ
|
|||
|
|
objectRayons: [], // коллекция районов РФ
|
|||
|
|
objectCityRayons: [], // коллекция районов РФ
|
|||
|
|
metroStations: [], // коллекция станций метро
|
|||
|
|
houseTypes: [], // коллекция типов домов
|
|||
|
|
houseMaterials: [], // коллекция материалов домов
|
|||
|
|
buildYears: [], // коллекция годов постройки
|
|||
|
|
legalAddress: [], // коллекция
|
|||
|
|
isCccupied: [], // коллекция
|
|||
|
|
layoutIds: [], // коллекция
|
|||
|
|
wetSpots: [], // коллекция
|
|||
|
|
commerCondition: [], // коллекция
|
|||
|
|
isFurniture: [], // коллекция
|
|||
|
|
commerAccess: [], // коллекция
|
|||
|
|
parkingTypes: [], // коллекция
|
|||
|
|
parkingIds: [], // коллекция
|
|||
|
|
vatTypeIds: [], // коллекция
|
|||
|
|
floorMaterials: [], // коллекция
|
|||
|
|
commercPortalIds: [], // коллекция
|
|||
|
|
commercPurpose: [], // коллекция
|
|||
|
|
commercLandCategoryIds: [], // коллекция
|
|||
|
|
commercPrmittedUseIds: [], // коллекция
|
|||
|
|
|
|||
|
|
commercElectricityId: [], // коллекция
|
|||
|
|
commercGasIds: [], // коллекция
|
|||
|
|
commercWaterIds: [], // коллекция
|
|||
|
|
commercSewageIds: [], // коллекция
|
|||
|
|
commercDriveways: [], // коллекция
|
|||
|
|
|
|||
|
|
commercBuildingTypeIds: [], //
|
|||
|
|
commercBuildingClassIds: [], //
|
|||
|
|
commercHouselineTypeIds: [], //
|
|||
|
|
commercBuildingCategoryIds: [], //
|
|||
|
|
commercOpenedIds: [], //
|
|||
|
|
commercBuildingVentilation: [], //
|
|||
|
|
commercBuildingConditioning: [], //
|
|||
|
|
commercBuildingHeating: [], //
|
|||
|
|
commercBuildingFire: [], //
|
|||
|
|
|
|||
|
|
garageTypeIds: [], //
|
|||
|
|
garageVidIds: [], //
|
|||
|
|
boksVidIds: [], //
|
|||
|
|
commercStatusIds: [], //
|
|||
|
|
commercSpecifications: [], //
|
|||
|
|
commercInfrastructure: [], //
|
|||
|
|
commercInfrastructure1: [], //
|
|||
|
|
commercInfrastructure2: [], //
|
|||
|
|
|
|||
|
|
is_search: 1, //
|
|||
|
|
is_reverse: 1, //
|
|||
|
|
|
|||
|
|
myMap: null,
|
|||
|
|
objectManager: null,
|
|||
|
|
mapGroup: null,
|
|||
|
|
accessScroll: true,
|
|||
|
|
styles: [],
|
|||
|
|
polygons: [],
|
|||
|
|
buttonClearMode: null,
|
|||
|
|
buttonEditMode: null,
|
|||
|
|
currentIndex: 0,
|
|||
|
|
paintProcess: null,
|
|||
|
|
mouseIsDraw: false,
|
|||
|
|
isOpenFromReq: false,
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
//
|
|||
|
|
setData(filter_id, req_id, user_id) {
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(user_id))
|
|||
|
|
this.user_id = user_id;
|
|||
|
|
else
|
|||
|
|
this.user_id = $('#modalAutoSearchFiltr [name="user_id"]').val();
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(req_id))
|
|||
|
|
this.req_id = req_id;
|
|||
|
|
else
|
|||
|
|
this.req_id = $('#modalAutoSearchFiltr [name="req_id"]').val();
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(filter_id))
|
|||
|
|
this.id = filter_id;
|
|||
|
|
else
|
|||
|
|
this.id = $('#modalAutoSearchFiltr [name="filter_id"]').val();
|
|||
|
|
|
|||
|
|
console.info({filter_id: this.id, req_id: this.req_id, user_id: this.user_id});
|
|||
|
|
|
|||
|
|
if (
|
|||
|
|
typeof this.user_id !== "undefined" &&
|
|||
|
|
typeof this.req_id !== "undefined" &&
|
|||
|
|
typeof this.id !== "undefined"
|
|||
|
|
) {
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_filter',
|
|||
|
|
user_id: this.user_id,
|
|||
|
|
req_id: this.req_id,
|
|||
|
|
filter_id: this.id
|
|||
|
|
}).then((response) => {
|
|||
|
|
if (!this.isEmpty(response.data.id)) {
|
|||
|
|
let res = response.data;
|
|||
|
|
|
|||
|
|
console.info(res);
|
|||
|
|
|
|||
|
|
this.id = res.id;
|
|||
|
|
|
|||
|
|
if (this.isEmpty(res.req_type_id))
|
|||
|
|
this.req_type = res.req_type_id;
|
|||
|
|
|
|||
|
|
this.deal_type = res.deal_type;
|
|||
|
|
this.object_type = res.object_type;
|
|||
|
|
this.object_source = res.object_source;
|
|||
|
|
|
|||
|
|
this.category_type = JSON.parse(res.category_type);
|
|||
|
|
this.getCategoryTypes(this.category_type);
|
|||
|
|
this.stoim_ot = res.stoim_ot;
|
|||
|
|
this.stoim_do = res.stoim_do;
|
|||
|
|
this.komn_ot = res.komn_ot;
|
|||
|
|
this.komn_do = res.komn_do;
|
|||
|
|
|
|||
|
|
this.rooms = JSON.parse(res.rooms);
|
|||
|
|
|
|||
|
|
this.sq_all_ot = res.sq_all_ot;
|
|||
|
|
this.sq_all_do = res.sq_all_do;
|
|||
|
|
this.ploshad_k_ot = res.ploshad_k_ot;
|
|||
|
|
this.ploshad_k_do = res.ploshad_k_do;
|
|||
|
|
|
|||
|
|
this.rent_srok = res.rent_srok;
|
|||
|
|
this.getObjectRentSrok(this.rent_srok);
|
|||
|
|
|
|||
|
|
this.regions = res.regions;
|
|||
|
|
this.getObjectRegions(this.regions);
|
|||
|
|
|
|||
|
|
this.rayons = res.rayons;
|
|||
|
|
this.getObjectRayons(this.regions, this.rayons);
|
|||
|
|
|
|||
|
|
this.metro_stations = res.metro_stations;
|
|||
|
|
this.getMetroStations(this.regions, this.metro_stations);
|
|||
|
|
|
|||
|
|
this.do_metro = res.do_metro;
|
|||
|
|
this.do_metro_type = res.do_metro_type;
|
|||
|
|
this.etazhnost_ot = res.etazhnost_ot;
|
|||
|
|
this.etazhnost_do = res.etazhnost_do;
|
|||
|
|
this.etazhnost = (res.etazhnost == 1) ? true : false;
|
|||
|
|
|
|||
|
|
//this.order_type = res.order_type;
|
|||
|
|
//this.getOrderTypes(this.order_type);
|
|||
|
|
|
|||
|
|
this.newbilding_date = this.formatDate(res.newbilding_date);
|
|||
|
|
|
|||
|
|
this.ipoteka = (res.ipoteka == 1) ? true : false;
|
|||
|
|
this.use_area_price = (res.use_area_price == 1) ? true : false;
|
|||
|
|
this.voen_ipoteka = (res.voen_ipoteka == 1) ? true : false;
|
|||
|
|
this.subsidya = (res.subsidya == 1) ? true : false;
|
|||
|
|
this.mather_kapital = (res.mather_kapital == 1) ? true : false;
|
|||
|
|
|
|||
|
|
this.house_type = res.house_type;
|
|||
|
|
this.getHouseTypes(this.house_type);
|
|||
|
|
|
|||
|
|
this.house_material = res.house_material;
|
|||
|
|
this.getHouseMaterials(this.house_material);
|
|||
|
|
|
|||
|
|
this.build_year = res.build_year;
|
|||
|
|
this.getBuildYears(this.build_year);
|
|||
|
|
|
|||
|
|
this.opis = res.opis;
|
|||
|
|
this.comment = res.comment;
|
|||
|
|
this.is_active = (res.is_active == 1) ? true : false;
|
|||
|
|
this.telegram_notify = (res.telegram_notify == 1) ? true : false;
|
|||
|
|
|
|||
|
|
this.tax_number = res.tax_number;
|
|||
|
|
this.legal_address = res.legal_address;
|
|||
|
|
this.etazh_ot = res.etazh_ot;
|
|||
|
|
this.etazh_do = res.etazh_do;
|
|||
|
|
this.is_occupied = res.is_occupied;
|
|||
|
|
this.layout_id = res.layout_id;
|
|||
|
|
this.wet_spots = res.wet_spots;
|
|||
|
|
this.el_power_ot = res.el_power_ot;
|
|||
|
|
this.el_power_do = res.el_power_do;
|
|||
|
|
this.commer_condition = res.commer_condition;
|
|||
|
|
this.is_furniture = res.is_furniture;
|
|||
|
|
this.commer_access = res.commer_access;
|
|||
|
|
this.parking_types = res.parking_types;
|
|||
|
|
this.parking_id = res.parking_id;
|
|||
|
|
this.parking_price = res.parking_price;
|
|||
|
|
this.parking_price_free = res.parking_price_free;
|
|||
|
|
this.ceiling_height_ot = res.ceiling_height_ot;
|
|||
|
|
this.ceiling_height_do = res.ceiling_height_do;
|
|||
|
|
this.column_grid = res.column_grid;
|
|||
|
|
this.vat_type_id = res.vat_type_id;
|
|||
|
|
this.commerc_site = res.commerc_site;
|
|||
|
|
this.commerc_owned1 = res.commerc_owned1;
|
|||
|
|
this.commerc_owned2 = res.commerc_owned2;
|
|||
|
|
this.floor_material_id = res.floor_material_id;
|
|||
|
|
this.commerc_portal_id = res.commerc_portal_id;
|
|||
|
|
this.commerc_purpose = res.commerc_purpose;
|
|||
|
|
this.commerc_land_category_id = res.commerc_land_category_id;
|
|||
|
|
this.commerc_permitted_use_id = res.commerc_permitted_use_id;
|
|||
|
|
|
|||
|
|
this.commerc_electricity_id = res.commerc_electricity_id;
|
|||
|
|
this.can_electricity = (res.can_electricity == 1) ? true : false;
|
|||
|
|
this.commerc_gas_id = res.commerc_gas_id;
|
|||
|
|
this.can_gas = (res.can_gas == 1) ? true : false;
|
|||
|
|
this.commerc_water_id = res.commerc_water_id;
|
|||
|
|
this.can_water = (res.can_water == 1) ? true : false;
|
|||
|
|
this.commerc_sewage_id = res.commerc_sewage_id;
|
|||
|
|
this.can_sewage = (res.can_sewage == 1) ? true : false;
|
|||
|
|
this.commerc_driveways = res.commerc_driveways;
|
|||
|
|
|
|||
|
|
this.commerc_year_ot = res.commerc_year_ot;
|
|||
|
|
this.commerc_year_do = res.commerc_year_do;
|
|||
|
|
|
|||
|
|
this.commerc_building_type_id = res.commerc_building_type_id;
|
|||
|
|
this.getCommercBuildingTypeId(this.commerc_building_type_id);
|
|||
|
|
|
|||
|
|
this.commerc_building_class_id = res.commerc_building_class_id;
|
|||
|
|
this.getCommercBuildingClassId(this.commerc_building_class_id);
|
|||
|
|
|
|||
|
|
this.building_area_ot = res.building_area_ot;
|
|||
|
|
this.building_area_do = res.building_area_do;
|
|||
|
|
|
|||
|
|
this.commerc_houseline_type_id = res.commerc_houseline_type_id;
|
|||
|
|
this.getCommercHouselineTypeId(this.commerc_houseline_type_id);
|
|||
|
|
|
|||
|
|
this.commerc_building_category_id = res.commerc_building_category_id;
|
|||
|
|
this.getCommercBuildingCategoryId(this.commerc_building_category_id);
|
|||
|
|
|
|||
|
|
this.commerc_opened_id = res.commerc_opened_id;
|
|||
|
|
this.getCommercOpenedId(this.commerc_opened_id);
|
|||
|
|
|
|||
|
|
this.commerc_building_ventilation = res.commerc_building_ventilation;
|
|||
|
|
this.getCommercBuildingVentilation(this.commerc_building_ventilation);
|
|||
|
|
|
|||
|
|
this.commerc_building_conditioning = res.commerc_building_conditioning;
|
|||
|
|
this.getCommercBuildingConditioning(this.commerc_building_conditioning);
|
|||
|
|
|
|||
|
|
this.commerc_building_heating = res.commerc_building_heating;
|
|||
|
|
this.getCommercBuildingHeating(this.commerc_building_heating);
|
|||
|
|
|
|||
|
|
this.commerc_building_fire = res.commerc_building_fire;
|
|||
|
|
this.getCommercBuildingFire(this.commerc_building_fire);
|
|||
|
|
|
|||
|
|
this.garage_type_id = res.garage_type_id;
|
|||
|
|
this.getGarageTypeId(this.garage_type_id);
|
|||
|
|
|
|||
|
|
this.garage_vid_id = res.garage_vid_id;
|
|||
|
|
this.getGarageVidId(this.garage_vid_id);
|
|||
|
|
|
|||
|
|
this.boks_vid_id = res.boks_vid_id;
|
|||
|
|
this.getBoksVidId(this.boks_vid_id);
|
|||
|
|
|
|||
|
|
this.commerc_status_id = res.commerc_status_id;
|
|||
|
|
this.getCommercStatusId(this.commerc_status_id);
|
|||
|
|
|
|||
|
|
this.commerc_specifications = res.commerc_specifications;
|
|||
|
|
this.getCommercSpecifications(this.commerc_specifications);
|
|||
|
|
|
|||
|
|
this.commerc_infrastructure = res.commerc_infrastructure;
|
|||
|
|
this.getCommercSpecifications(this.commerc_infrastructure);
|
|||
|
|
|
|||
|
|
this.commerc_infrastructure1 = res.commerc_infrastructure1;
|
|||
|
|
this.getCommercInfrastructure1(this.commerc_infrastructure1);
|
|||
|
|
|
|||
|
|
this.commerc_infrastructure2 = res.commerc_infrastructure2;
|
|||
|
|
this.getCommercInfrastructure2(this.commerc_infrastructure2);
|
|||
|
|
|
|||
|
|
this.commerc_lift1 = res.commerc_lift1;
|
|||
|
|
this.lift1_carrying = res.lift1_carrying;
|
|||
|
|
this.commerc_lift2 = res.commerc_lift2;
|
|||
|
|
this.lift2_carrying = res.lift2_carrying;
|
|||
|
|
this.commerc_lift3 = res.commerc_lift3;
|
|||
|
|
this.lift3_carrying = res.lift3_carrying;
|
|||
|
|
|
|||
|
|
this.commerc_crane1 = res.commerc_crane1;
|
|||
|
|
this.crane1_carrying = res.crane1_carrying;
|
|||
|
|
this.commerc_crane2 = res.commerc_crane2;
|
|||
|
|
this.crane2_carrying = res.crane2_carrying;
|
|||
|
|
this.commerc_crane3 = res.commerc_crane3;
|
|||
|
|
this.crane3_carrying = res.crane3_carrying;
|
|||
|
|
this.commerc_crane4 = res.commerc_crane4;
|
|||
|
|
this.crane4_carrying = res.crane4_carrying;
|
|||
|
|
|
|||
|
|
this.commerceCategoryInit(this.object_type);
|
|||
|
|
|
|||
|
|
this.is_search = res.is_search;
|
|||
|
|
this.is_reverse = res.is_reverse;
|
|||
|
|
|
|||
|
|
this.geo = null;
|
|||
|
|
if (!this.isEmpty(res.geo)) {
|
|||
|
|
let entries = Object.entries(JSON.parse(res.geo));
|
|||
|
|
if (!this.isEmpty(entries)) {
|
|||
|
|
this.geo = [];
|
|||
|
|
entries.filter((poly) => {
|
|||
|
|
return !this.isEmpty(poly[1])
|
|||
|
|
}).forEach((poly) => {
|
|||
|
|
//let index = poly[0];
|
|||
|
|
this.geo.push(poly[1])
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(this.geo)) {
|
|||
|
|
$('#asfiltr-object-rayons').prop('disabled', true);
|
|||
|
|
$('#asfiltr-metro-stations').prop('disabled', true);
|
|||
|
|
$('#asfiltr-metro-minut').prop('disabled', true);
|
|||
|
|
$('#asfiltr-metro-minut').closest('.inputs-group').find('select').prop('disabled', true);
|
|||
|
|
} else {
|
|||
|
|
$('#asfiltr-object-rayons').removeAttr('disabled');
|
|||
|
|
$('#asfiltr-metro-stations').removeAttr('disabled');
|
|||
|
|
$('#asfiltr-metro-minut').removeAttr('disabled');
|
|||
|
|
$('#asfiltr-metro-minut').closest('.inputs-group').find('select').removeAttr('disabled');
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
this.clearFiltr();
|
|||
|
|
this.rent_srok = null;
|
|||
|
|
this.getObjectRentSrok(this.rent_srok);
|
|||
|
|
this.regions = null;
|
|||
|
|
this.getObjectRegions(this.regions);
|
|||
|
|
this.rayons = null;
|
|||
|
|
this.getObjectRayons(this.regions, this.rayons);
|
|||
|
|
this.metro_stations = null;
|
|||
|
|
this.getMetroStations(this.regions, this.metro_stations);
|
|||
|
|
this.do_metro = null;
|
|||
|
|
this.do_metro_type = 0;
|
|||
|
|
this.geo = null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
console.info(this.req_type);
|
|||
|
|
|
|||
|
|
if (this.isEmpty(response.data.id)) {
|
|||
|
|
if (!this.isEmpty(this.req_type)) {
|
|||
|
|
if (this.req_type == 1) {
|
|||
|
|
this.is_search = 1;
|
|||
|
|
this.is_reverse = 1;
|
|||
|
|
} else if (this.req_type == 4) {
|
|||
|
|
this.is_search = 0;
|
|||
|
|
this.is_reverse = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// Переключение типа сделки
|
|||
|
|
changeDealType(num) {
|
|||
|
|
this.deal_type = num;
|
|||
|
|
},
|
|||
|
|
// Переключение типа объекта
|
|||
|
|
changeObjectType(num, event) {
|
|||
|
|
this.object_type = num;
|
|||
|
|
// this.category_type = 0;
|
|||
|
|
// $('#modalAutoSearchFiltr .form .button-row .selector-button.object_type').removeClass('selected');
|
|||
|
|
// $(event.target).closest('.selector-button').addClass('selected');
|
|||
|
|
this.commerceCategoryInit(this.object_type);
|
|||
|
|
},
|
|||
|
|
// Переключение источника добавления объекта
|
|||
|
|
changeObjectSource(num, event) {
|
|||
|
|
this.object_source = num;
|
|||
|
|
$('#modalAutoSearchFiltr .form .button-row .selector-button.object_source').removeClass('selected');
|
|||
|
|
$(event.target).closest('.selector-button').addClass('selected');
|
|||
|
|
},
|
|||
|
|
// Переключение типа объекта
|
|||
|
|
changeCategoryType(item, event) {
|
|||
|
|
// this.category_type = item.value;
|
|||
|
|
item.selected = !item.selected
|
|||
|
|
// $('#modalAutoSearchFiltr .form .button-row .selector-button.category_type').removeClass('selected');
|
|||
|
|
// $(event.target).closest('.selector-button').addClass('selected');
|
|||
|
|
},
|
|||
|
|
// Переключение срока аренды
|
|||
|
|
changeObjectRentSrok(num, event) {
|
|||
|
|
this.rent_srok = num;
|
|||
|
|
$('#modalAutoSearchFiltr .form .button-row .selector-button.rent_srok').removeClass('selected');
|
|||
|
|
$(event.target).closest('.selector-button').addClass('selected');
|
|||
|
|
},
|
|||
|
|
// Переключение кол-ва комнат
|
|||
|
|
changeRoomsCount(value, event) {
|
|||
|
|
if (value) {
|
|||
|
|
if (this.rooms.indexOf(value.toString()) != -1) {
|
|||
|
|
this.rooms.splice(this.rooms.indexOf(value.toString()), 1)
|
|||
|
|
$(event.target).closest('.selector-button').removeClass('selected');
|
|||
|
|
} else {
|
|||
|
|
this.rooms.push(value.toString());
|
|||
|
|
$(event.target).closest('.selector-button').addClass('selected');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
checkRoomSelected(item) {
|
|||
|
|
return item.selected || (item.value && this.rooms.indexOf(item.value.toString()) != -1)
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// Типы объектов
|
|||
|
|
getObjectTypes(object_type) {
|
|||
|
|
if (typeof object_type !== "undefined")
|
|||
|
|
this.object_type = object_type;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_object_types',
|
|||
|
|
object_type_id: this.object_type,
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.objectTypes = response.data;
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getRoomsCounts() {
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_rooms_counts'
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.roomsCounts = response.data;
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Источники добавления объектов
|
|||
|
|
getObjectSources(object_source) {
|
|||
|
|
if (typeof object_source !== "undefined")
|
|||
|
|
this.object_source = object_source;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_object_sources',
|
|||
|
|
object_source_id: this.object_source,
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.objectSources = response.data;
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Типы категории помещений
|
|||
|
|
getCategoryTypes(category_type) {
|
|||
|
|
if (typeof category_type !== "undefined")
|
|||
|
|
this.category_type = category_type;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_category_types',
|
|||
|
|
category_type_ids: Array.isArray(this.category_type) && this.category_type.length ? this.category_type : this.selectedCategoryTypes,
|
|||
|
|
}).then((response) => {
|
|||
|
|
//this.categoryTypes = this.arrayChunk(response.data, 5);
|
|||
|
|
this.categoryTypes = response.data;
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Срок аренды
|
|||
|
|
getObjectRentSrok(srok) {
|
|||
|
|
if (typeof srok !== "undefined")
|
|||
|
|
this.srok = srok;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_rent_srok',
|
|||
|
|
rent_srok_id: this.srok,
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.objectRentSrok = response.data;
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Регионы РФ/субъекты
|
|||
|
|
getObjectRegions(region) {
|
|||
|
|
var ref = this;
|
|||
|
|
if (typeof region !== "undefined")
|
|||
|
|
this.regions = region;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_regions',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
regions: this.regions
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.objectRegions = response.data.list;
|
|||
|
|
$("#asfiltr-object-regions-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-object-regions").fastselect({
|
|||
|
|
placeholder: 'Выберите субъект/регион',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.regions = JSON.stringify($("#asfiltr-object-regions").val());
|
|||
|
|
ref.getObjectRayons(ref.regions);
|
|||
|
|
ref.getMetroStations(ref.regions);
|
|||
|
|
console.log(ref.regions);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function() {
|
|||
|
|
ref.regions = JSON.stringify($("#asfiltr-object-regions").val());
|
|||
|
|
ref.getObjectRayons(ref.regions);
|
|||
|
|
ref.getMetroStations(ref.regions);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
ref.regions = JSON.stringify($("#asfiltr-object-regions").val());
|
|||
|
|
ref.getObjectRayons(ref.regions);
|
|||
|
|
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Раоны субъекта
|
|||
|
|
getObjectRayons(region, rayons) {
|
|||
|
|
var ref = this;
|
|||
|
|
if (typeof rayons !== "undefined")
|
|||
|
|
this.rayons = rayons;
|
|||
|
|
|
|||
|
|
if (region == null)
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_rayons',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
regions: ((typeof region != "undefined") ? region : this.regions),
|
|||
|
|
rayons: this.rayons
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.objectRayons = response.data.list;
|
|||
|
|
if (this.isEmpty(this.geo)) {
|
|||
|
|
$("#asfiltr-object-rayons-input").html(response.data.html);
|
|||
|
|
//$("#asfiltr-object-rayons-input").attr('data-initial-value', this.rayons);
|
|||
|
|
$("#asfiltr-object-rayons-input .fstElement").removeClass('disabled');
|
|||
|
|
$("#asfiltr-object-rayons").fastselect({
|
|||
|
|
placeholder: 'Выберите район(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.rayons = JSON.stringify($("#asfiltr-object-rayons").val());
|
|||
|
|
ref.getMetroStations(ref.regions);
|
|||
|
|
console.log(ref.rayons);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.rayons = JSON.stringify($("#asfiltr-object-rayons").val());
|
|||
|
|
ref.getMetroStations(ref.regions);
|
|||
|
|
console.log(ref.rayons);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
$("#asfiltr-object-rayons-input").html('<select id="asfiltr-object-rayons" multiple></select>');
|
|||
|
|
$("#asfiltr-object-rayons").fastselect();
|
|||
|
|
$("#asfiltr-object-rayons-input .fstElement").addClass('disabled');
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Список станций метро
|
|||
|
|
getMetroStations(region, metro_stations) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof metro_stations !== "undefined")
|
|||
|
|
this.metro_stations = metro_stations;
|
|||
|
|
|
|||
|
|
if (region == null)
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_metro',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
regions: ((typeof region != "undefined") ? region : this.regions),
|
|||
|
|
metro_stations: this.metro_stations
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.metroStations = response.data.list;
|
|||
|
|
if (this.isEmpty(this.geo)) {
|
|||
|
|
//console.debug(this.metroStations);
|
|||
|
|
$("#asfiltr-metro-stations-input").html(response.data.html);
|
|||
|
|
//$("#asfiltr-metro-stations-input").attr('data-initial-value', JSON.stringify(this.metro_stations));
|
|||
|
|
$("#asfiltr-metro-stations-input .fstElement").removeClass('disabled');
|
|||
|
|
$("#asfiltr-metro-stations").fastselect({
|
|||
|
|
placeholder: 'Выберите станцию(и)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.metro_stations = JSON.stringify($("#asfiltr-metro-stations").val());
|
|||
|
|
console.log(ref.metro_stations);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function() {
|
|||
|
|
ref.metro_stations = JSON.stringify($("#asfiltr-metro-stations").val());
|
|||
|
|
console.log(ref.metro_stations);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
$("#asfiltr-metro-stations-input").html('<select id="asfiltr-metro-stations" multiple></select>');
|
|||
|
|
$("#asfiltr-metro-stations").fastselect();
|
|||
|
|
$("#asfiltr-metro-stations-input .fstElement").addClass('disabled');
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Список типов оформлений сделок
|
|||
|
|
/*getOrderTypes(order_type) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof order_type !== "undefined")
|
|||
|
|
this.order_type = order_type;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_deal_type',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
order_type: this.order_type
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.orderTypes = response.data.list;
|
|||
|
|
$("#asfiltr-order-types-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-order-types").fastselect({
|
|||
|
|
placeholder: 'Выберите тип',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.order_type = val.value;
|
|||
|
|
console.log(ref.order_type);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.order_type = val.value;
|
|||
|
|
console.log(ref.order_type);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function (error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
*/
|
|||
|
|
// Список типов домов
|
|||
|
|
getHouseTypes(house_type) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof house_type !== "undefined")
|
|||
|
|
this.house_type = house_type;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_house_type',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
house_type: this.house_type
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.houseTypes = response.data.list;
|
|||
|
|
$("#asfiltr-house-types-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-house-types").fastselect({
|
|||
|
|
placeholder: 'Выберите тип',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.house_type = val.value;
|
|||
|
|
console.log(ref.house_type);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.house_type = val.value;
|
|||
|
|
console.log(ref.house_type);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Список типов стен
|
|||
|
|
getHouseMaterials(house_material) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof house_material !== "undefined")
|
|||
|
|
this.house_material = house_material;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_house_material',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
house_material: this.house_material
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.houseMaterials = response.data.list;
|
|||
|
|
$("#asfiltr-house-materials-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-house-materials").fastselect({
|
|||
|
|
placeholder: 'Выберите тип',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.house_material = val.value;
|
|||
|
|
console.log(ref.house_material);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.house_material = val.value;
|
|||
|
|
console.log(ref.house_material);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Список годов постройки
|
|||
|
|
getBuildYears(build_year) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof build_year !== "undefined")
|
|||
|
|
this.build_year = build_year;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_build_year',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
build_year: this.build_year
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.buildYears = response.data.list;
|
|||
|
|
$("#asfiltr-build-year-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-build-year").fastselect({
|
|||
|
|
placeholder: 'Выберите год',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.build_year = val.value;
|
|||
|
|
console.log(ref.build_year);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.build_year = val.value;
|
|||
|
|
console.log(ref.build_year);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getLegalAddress(legal_address) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof legal_address !== "undefined")
|
|||
|
|
this.legal_address = legal_address;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_legal_address',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
legal_address: this.legal_address
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.legalAddress = response.data.list;
|
|||
|
|
$("#asfiltr-legal-address-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-legal-address").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.legal_address = val.value;
|
|||
|
|
console.log(ref.legal_address);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.legal_address = val.value;
|
|||
|
|
console.log(ref.legal_address);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getIsOccupied(is_occupied) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof is_occupied !== "undefined")
|
|||
|
|
this.is_occupied = is_occupied;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_is_occupied',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
is_occupied: this.is_occupied
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.isOccupied = response.data.list;
|
|||
|
|
$("#asfiltr-is-occupied-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-is-occupied").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
objectTypeItem.is_occupied = val.value;
|
|||
|
|
console.log(ref.is_occupied);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
objectTypeItem.is_occupied = val.value;
|
|||
|
|
console.log(ref.is_occupied);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getLayoutId(layout_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof layout_id !== "undefined")
|
|||
|
|
this.layout_id = layout_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_layout_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
layout_id: this.layout_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.layoutIds = response.data.list;
|
|||
|
|
$("#asfiltr-layout-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-layout-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.layout_id = val.value;
|
|||
|
|
console.log(ref.layout_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.layout_id = val.value;
|
|||
|
|
console.log(ref.layout_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getWetSpots(wet_spots) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof wet_spots !== "undefined")
|
|||
|
|
this.wet_spots = wet_spots;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_wet_spots',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
wet_spots: this.wet_spots
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.wetSpots = response.data.list;
|
|||
|
|
$("#asfiltr-wet-spots-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-wet-spots").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.wet_spots = val.value;
|
|||
|
|
console.log(ref.wet_spots);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.wet_spots = val.value;
|
|||
|
|
console.log(ref.wet_spots);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommerCondition(commer_condition) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commer_condition !== "undefined")
|
|||
|
|
this.commer_condition = commer_condition;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commer_condition',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commer_condition: this.commer_condition
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commerCondition = response.data.list;
|
|||
|
|
console.log(response.data.list);
|
|||
|
|
$("#asfiltr-commer-condition-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commer-condition").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commer_condition = val.value;
|
|||
|
|
console.log(ref.commer_condition);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commer_condition = val.value;
|
|||
|
|
console.log(ref.commer_condition);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getIsFurniture(is_furniture) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof is_furniture !== "undefined")
|
|||
|
|
this.is_furniture = is_furniture;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_is_furniture',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
is_furniture: this.is_furniture
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.isFurniture = response.data.list;
|
|||
|
|
$("#asfiltr-is-furniture-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-is-furniture").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.is_furniture = val.value;
|
|||
|
|
console.log(ref.is_furniture);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.is_furniture = val.value;
|
|||
|
|
console.log(ref.is_furniture);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommerAccess(commer_access) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commer_access !== "undefined")
|
|||
|
|
this.commer_access = commer_access;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commer_access',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commer_access: this.commer_access
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commerAccess = response.data.list;
|
|||
|
|
$("#asfiltr-commer-access-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commer-access").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commer_access = val.value;
|
|||
|
|
console.log(ref.commer_access);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commer_access = val.value;
|
|||
|
|
console.log(ref.commer_access);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getParkingTypes(parking_types) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof parking_types !== "undefined")
|
|||
|
|
this.parking_types = parking_types;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_parking_types',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
parking_types: this.parking_types
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.parkingTypes = response.data.list;
|
|||
|
|
$("#asfiltr-parking-types-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-parking-types").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.parking_types = val.value;
|
|||
|
|
console.log(ref.parking_types);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.parking_types = val.value;
|
|||
|
|
console.log(ref.parking_types);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getParkingId(parking_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof parking_id !== "undefined")
|
|||
|
|
this.parking_id = parking_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_parking_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
parking_id: this.parking_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.parkingIds = response.data.list;
|
|||
|
|
$("#asfiltr-parking-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-parking-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.parking_id = val.value;
|
|||
|
|
console.log(ref.parking_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.parking_id = val.value;
|
|||
|
|
console.log(ref.parking_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getVatTypeId(vat_type_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof vat_type_id !== "undefined")
|
|||
|
|
this.vat_type_id = vat_type_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_vat_type_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
vat_type_id: this.vat_type_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.vatTypeIds = response.data.list;
|
|||
|
|
$("#asfiltr-vat-type-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-vat-type-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.vat_type_id = val.value;
|
|||
|
|
console.log(ref.vat_type_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.vat_type_id = val.value;
|
|||
|
|
console.log(ref.vat_type_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getFloorMaterials(floor_material_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof floor_material_id !== "undefined")
|
|||
|
|
this.floor_material_id = floor_material_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_floor_material_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
floor_material_id: this.floor_material_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.floorMaterials = response.data.list;
|
|||
|
|
$("#asfiltr-floor-material-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-floor-material").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.floor_material_id = JSON.stringify($("#asfiltr-floor-material").val());
|
|||
|
|
console.log(ref.floor_material_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.floor_material_id = JSON.stringify($("#asfiltr-floor-material").val());
|
|||
|
|
console.log(ref.floor_material_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercPortalId(commerc_portal_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_portal_id !== "undefined")
|
|||
|
|
this.commerc_portal_id = commerc_portal_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_portal_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_portal_id: this.commerc_portal_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercPortalIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-portal-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-portal").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_portal_id = JSON.stringify($("#asfiltr-commerc-portal").val());
|
|||
|
|
console.log(ref.commerc_portal_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_portal_id = JSON.stringify($("#asfiltr-commerc-portal").val());
|
|||
|
|
console.log(ref.commerc_portal_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercPurpose(commerc_purpose) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_purpose !== "undefined")
|
|||
|
|
this.commerc_purpose = commerc_purpose;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_purpose',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_purpose: this.commerc_purpose
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercPurpose = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-purpose-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-purpose").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_purpose = JSON.stringify($("#asfiltr-commerc-purpose").val());
|
|||
|
|
console.log(ref.commerc_purpose);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_purpose = JSON.stringify($("#asfiltr-commerc-purpose").val());
|
|||
|
|
console.log(ref.commerc_purpose);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercLandCategoryId(commerc_land_category_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_land_category_id !== "undefined")
|
|||
|
|
this.commerc_land_category_id = commerc_land_category_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_land_category_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_land_category_id: this.commerc_land_category_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercLandCategoryIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-land-category-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-land-category").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_land_category_id = JSON.stringify($("#asfiltr-commerc-land-category").val());
|
|||
|
|
console.log(ref.commerc_land_category_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_land_category_id = JSON.stringify($("#asfiltr-commerc-land-category").val());
|
|||
|
|
console.log(ref.commerc_land_category_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercPrmittedUseId(commerc_permitted_use_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_permitted_use_id !== "undefined")
|
|||
|
|
this.commerc_permitted_use_id = commerc_permitted_use_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_permitted_use_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_permitted_use_id: this.commerc_permitted_use_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercPrmittedUseIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-permitted-use-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-permitted-use").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_permitted_use_id = JSON.stringify($("#asfiltr-commerc-permitted-use").val());
|
|||
|
|
console.log(ref.commerc_permitted_use_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_permitted_use_id = JSON.stringify($("#asfiltr-commerc-permitted-use").val());
|
|||
|
|
console.log(ref.commerc_permitted_use_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
getCommercElectricityId(commerc_electricity_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_electricity_id !== "undefined")
|
|||
|
|
this.commerc_electricity_id = commerc_electricity_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_electricity_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_electricity_id: this.commerc_electricity_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercElectricityIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-electricity-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-electricity").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_electricity_id = val.value;
|
|||
|
|
console.log(ref.commerc_electricity_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_electricity_id = val.value;
|
|||
|
|
console.log(ref.commerc_electricity_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercGasId(commerc_gas_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_gas_id !== "undefined")
|
|||
|
|
this.commerc_gas_id = commerc_gas_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_gas_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_gas_id: this.commerc_gas_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercGasIdss = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-gas-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-gas").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_gas_id = val.value;
|
|||
|
|
console.log(ref.commerc_gas_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_gas_id = val.value;
|
|||
|
|
console.log(ref.commerc_gas_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercWaterId(commerc_water_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_water_id !== "undefined")
|
|||
|
|
this.commerc_water_id = commerc_water_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_water_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_water_id: this.commerc_water_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercWaterIdss = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-water-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-water").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_water_id = val.value;
|
|||
|
|
console.log(ref.commerc_water_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_water_id = val.value;
|
|||
|
|
console.log(ref.commerc_water_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercSewageId(commerc_sewage_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_sewage_id !== "undefined")
|
|||
|
|
this.commerc_sewage_id = commerc_sewage_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_sewage_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_sewage_id: this.commerc_sewage_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercSewageIdss = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-sewage-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-sewage").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_sewage_id = val.value;
|
|||
|
|
console.log(ref.commerc_sewage_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_sewage_id = val.value;
|
|||
|
|
console.log(ref.commerc_sewage_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercDriveways(commerc_driveways) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_driveways !== "undefined")
|
|||
|
|
this.commerc_driveways = commerc_driveways;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_driveways',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_driveways: this.commerc_driveways
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercDriveways = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-driveways-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-driveways").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_driveways = val.value;
|
|||
|
|
console.log(ref.commerc_driveways);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_driveways = val.value;
|
|||
|
|
console.log(ref.commerc_driveways);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
getCommercBuildingTypeId(commerc_building_type_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_type_id !== "undefined")
|
|||
|
|
this.commerc_building_type_id = commerc_building_type_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_type_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_type_id: this.commerc_building_type_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingTypeIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-type-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-type").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_type_id = JSON.stringify($("#asfiltr-commerc-building-type").val());
|
|||
|
|
console.log(ref.commerc_building_type_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_type_id = JSON.stringify($("#asfiltr-commerc-building-type").val());
|
|||
|
|
console.log(ref.commerc_building_type_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercBuildingClassId(commerc_building_class_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_class_id !== "undefined")
|
|||
|
|
this.commerc_building_class_id = commerc_building_class_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_class_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_class_id: this.commerc_building_class_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingClassIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-class-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-class").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_class_id = JSON.stringify($("#asfiltr-commerc-building-class").val());
|
|||
|
|
console.log(ref.commerc_building_class_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_class_id = JSON.stringify($("#asfiltr-commerc-building-class").val());
|
|||
|
|
console.log(ref.commerc_building_class_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercHouselineTypeId(commerc_houseline_type_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_houseline_type_id !== "undefined")
|
|||
|
|
this.commerc_houseline_type_id = commerc_houseline_type_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_houseline_type_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_houseline_type_id: this.commerc_houseline_type_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercHouselineTypeIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-houseline-type-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-houseline-type-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_houseline_type_id = val.value;
|
|||
|
|
console.log(ref.commerc_houseline_type_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_houseline_type_id = val.value;
|
|||
|
|
console.log(ref.commerc_houseline_type_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercBuildingCategoryId(commerc_building_category_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_category_id !== "undefined")
|
|||
|
|
this.commerc_building_category_id = commerc_building_category_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_category_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_category_id: this.commerc_building_category_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingCategoryIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-category-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-category").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_category_id = val.value;
|
|||
|
|
console.log(ref.commerc_building_category_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_category_id = val.value;
|
|||
|
|
console.log(ref.commerc_building_category_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercOpenedId(commerc_opened_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_opened_id !== "undefined")
|
|||
|
|
this.commerc_opened_id = commerc_opened_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_opened_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_opened_id: this.commerc_opened_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercOpenedIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-opened-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-opened").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_opened_id = JSON.stringify($("#asfiltr-commerc-opened").val());
|
|||
|
|
console.log(ref.commerc_opened_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_opened_id = JSON.stringify($("#asfiltr-commerc-opened").val());
|
|||
|
|
console.log(ref.commerc_opened_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercBuildingVentilation(commerc_building_ventilation) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_ventilation !== "undefined")
|
|||
|
|
this.commerc_building_ventilation = commerc_building_ventilation;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_ventilation',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_ventilation: this.commerc_building_ventilation
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingVentilation = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-ventilation-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-ventilation").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_ventilation = val.value;
|
|||
|
|
console.log(ref.commerc_building_ventilation);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_ventilation = val.value;
|
|||
|
|
console.log(ref.commerc_building_ventilation);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercBuildingConditioning(commerc_building_conditioning) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_conditioning !== "undefined")
|
|||
|
|
this.commerc_building_conditioning = commerc_building_conditioning;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_conditioning',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_conditioning: this.commerc_building_conditioning
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingConditioning = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-conditioning-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-conditioning").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_conditioning = val.value;
|
|||
|
|
console.log(ref.commerc_building_conditioning);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_conditioning = val.value;
|
|||
|
|
console.log(ref.commerc_building_conditioning);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercBuildingHeating(commerc_building_heating) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_heating !== "undefined")
|
|||
|
|
this.commerc_building_heating = commerc_building_heating;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_heating',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_heating: this.commerc_building_heating
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingHeating = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-heating-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-heating").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_heating = val.value;
|
|||
|
|
console.log(ref.commerc_building_heating);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_heating = val.value;
|
|||
|
|
console.log(ref.commerc_building_heating);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercBuildingFire(commerc_building_fire) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_building_fire !== "undefined")
|
|||
|
|
this.commerc_building_fire = commerc_building_fire;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_building_fire',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_building_fire: this.commerc_building_fire
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercBuildingFire = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-building-fire-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-building-fire").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_building_fire = val.value;
|
|||
|
|
console.log(ref.commerc_building_fire);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_building_fire = val.value;
|
|||
|
|
console.log(ref.commerc_building_fire);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
getGarageTypeId(garage_type_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof garage_type_id !== "undefined")
|
|||
|
|
this.garage_type_id = garage_type_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_garage_type_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
garage_type_id: this.garage_type_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.garageTypeIds = response.data.list;
|
|||
|
|
$("#asfiltr-garage-type-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-garage-type-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.garage_type_id = val.value;
|
|||
|
|
console.log(ref.garage_type_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.garage_type_id = val.value;
|
|||
|
|
console.log(ref.garage_type_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getGarageVidId(garage_vid_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof garage_vid_id !== "undefined")
|
|||
|
|
this.garage_vid_id = garage_vid_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_garage_vid_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
garage_vid_id: this.garage_vid_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.garageVidIds = response.data.list;
|
|||
|
|
$("#asfiltr-garage-vid-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-garage-vid-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.garage_vid_id = val.value;
|
|||
|
|
console.log(ref.garage_vid_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.garage_vid_id = val.value;
|
|||
|
|
console.log(ref.garage_vid_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getBoksVidId(boks_vid_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof boks_vid_id !== "undefined")
|
|||
|
|
this.boks_vid_id = boks_vid_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_boks_vid_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
boks_vid_id: this.boks_vid_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.boksVidIds = response.data.list;
|
|||
|
|
$("#asfiltr-boks-vid-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-boks-vid-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.boks_vid_id = val.value;
|
|||
|
|
console.log(ref.boks_vid_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.boks_vid_id = val.value;
|
|||
|
|
console.log(ref.boks_vid_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercStatusId(commerc_status_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_status_id !== "undefined")
|
|||
|
|
this.commerc_status_id = commerc_status_id;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_status_id',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_status_id: this.commerc_status_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercStatusIds = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-status-id-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-status-id").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_status_id = val.value;
|
|||
|
|
console.log(ref.commerc_status_id);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_status_id = val.value;
|
|||
|
|
console.log(ref.commerc_status_id);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercSpecifications(commerc_specifications) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_specifications !== "undefined")
|
|||
|
|
this.commerc_specifications = commerc_specifications;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_specifications',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_specifications: this.commerc_specifications
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercSpecifications = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-specifications-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-specifications").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_specifications = JSON.stringify($("#asfiltr-commerc-specifications").val());
|
|||
|
|
console.log(ref.commerc_specifications);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_specifications = JSON.stringify($("#asfiltr-commerc-specifications").val());
|
|||
|
|
console.log(ref.commerc_specifications);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercInfrastructure(commerc_infrastructure) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_infrastructure !== "undefined")
|
|||
|
|
this.commerc_infrastructure = commerc_infrastructure;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_infrastructure',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_infrastructure: this.commerc_infrastructure
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercInfrastructure = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-infrastructure-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-infrastructure").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_infrastructure = JSON.stringify($("#asfiltr-commerc-infrastructure").val());
|
|||
|
|
console.log(ref.commerc_infrastructure);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_infrastructure = JSON.stringify($("#asfiltr-commerc-infrastructure").val());
|
|||
|
|
console.log(ref.commerc_infrastructure);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercInfrastructure1(commerc_infrastructure1) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_infrastructure1 !== "undefined")
|
|||
|
|
this.commerc_infrastructure1 = commerc_infrastructure1;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_infrastructure1',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_infrastructure1: this.commerc_infrastructure1
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercInfrastructure1 = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-infrastructure1-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-infrastructure1").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_infrastructure1 = JSON.stringify($("#asfiltr-commerc-infrastructure1").val());
|
|||
|
|
console.log(ref.commerc_infrastructure1);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_infrastructure1 = JSON.stringify($("#asfiltr-commerc-infrastructure1").val());
|
|||
|
|
console.log(ref.commerc_infrastructure1);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getCommercInfrastructure2(commerc_infrastructure2) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof commerc_infrastructure2 !== "undefined")
|
|||
|
|
this.commerc_infrastructure2 = commerc_infrastructure2;
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_commerc_infrastructure2',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
commerc_infrastructure2: this.commerc_infrastructure2
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.commercInfrastructure2 = response.data.list;
|
|||
|
|
$("#asfiltr-commerc-infrastructure2-input").html(response.data.html);
|
|||
|
|
$("#asfiltr-commerc-infrastructure2").fastselect({
|
|||
|
|
placeholder: 'Выберите вариант(ы)',
|
|||
|
|
onItemSelect: function(item, val) {
|
|||
|
|
ref.commerc_infrastructure2 = JSON.stringify($("#asfiltr-commerc-infrastructure2").val());
|
|||
|
|
console.log(ref.commerc_infrastructure2);
|
|||
|
|
},
|
|||
|
|
onItemDelete: function(item, val) {
|
|||
|
|
ref.commerc_infrastructure2 = JSON.stringify($("#asfiltr-commerc-infrastructure2").val());
|
|||
|
|
console.log(ref.commerc_infrastructure2);
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// Сохранение/редактирование параметров автопоиска
|
|||
|
|
addEditFiltr() {
|
|||
|
|
this.errorText = '';
|
|||
|
|
this.isError = false;
|
|||
|
|
|
|||
|
|
this.req_id = $('#modalAutoSearchFiltr [name="req_id"]').val();
|
|||
|
|
|
|||
|
|
// Валидация параметров автопоиска
|
|||
|
|
/*if (this.isEmpty(this.req_id)) {
|
|||
|
|
this.isError = true;
|
|||
|
|
this.errorText += "<p>Не указан ИД заявки</p>";
|
|||
|
|
}*/
|
|||
|
|
if (this.isEmpty(this.deal_type) || this.deal_type == 0) {
|
|||
|
|
this.isError = true;
|
|||
|
|
this.errorText += "<p>Не указан тип сделки.</p>";
|
|||
|
|
}
|
|||
|
|
if (this.isEmpty(this.object_type) || this.object_type == 0) {
|
|||
|
|
this.isError = true;
|
|||
|
|
this.errorText += "<p>Не указан тип объекта.</p>";
|
|||
|
|
}
|
|||
|
|
if (this.isEmpty(this.stoim_ot) && this.isEmpty(this.stoim_do)) {
|
|||
|
|
this.isError = true;
|
|||
|
|
this.errorText += "<p>Не указана цена объекта.</p>";
|
|||
|
|
}
|
|||
|
|
if (this.isEmpty(this.regions)) {
|
|||
|
|
this.isError = true;
|
|||
|
|
this.errorText += "<p>Не указан субъект/регион объекта.</p>";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (this.isError) {
|
|||
|
|
let modal = document.getElementById("modalAutoSearchFiltr");
|
|||
|
|
modal.scrollIntoView({
|
|||
|
|
behavior: "smooth",
|
|||
|
|
block: "start"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!this.isError) {
|
|||
|
|
let ref = this;
|
|||
|
|
let data = {
|
|||
|
|
id: this.id, // ИД фильтра
|
|||
|
|
req_id: this.req_id, // ИД заявки
|
|||
|
|
deal_type: this.deal_type, // тип сделки
|
|||
|
|
object_type: this.object_type, // тип объекта
|
|||
|
|
object_source: this.object_source, // источник добавления объекта
|
|||
|
|
category_type: this.selectedCategoryTypes, // категория объекта
|
|||
|
|
stoim_ot: this.stoim_ot, // цена; от
|
|||
|
|
stoim_do: this.stoim_do, // цена; до
|
|||
|
|
komn_ot: this.komn_ot, // комнат; от
|
|||
|
|
komn_do: this.komn_do, // комнат; до
|
|||
|
|
rooms: this.rooms, // комнат
|
|||
|
|
sq_all_ot: this.sq_all_ot, // общая площадь; от
|
|||
|
|
sq_all_do: this.sq_all_do, // общая площадь; до
|
|||
|
|
ploshad_k_ot: this.ploshad_k_ot, // площадь кухни; от
|
|||
|
|
ploshad_k_do: this.ploshad_k_do, // площадь кухни; до
|
|||
|
|
rent_srok: this.rent_srok, // срок аренды объекта
|
|||
|
|
regions: this.regions, // регион(ы) объекта
|
|||
|
|
rayons: this.rayons, // район(ы) объекта
|
|||
|
|
metro_stations: this.metro_stations, // ближ. станции метро
|
|||
|
|
do_metro: this.do_metro, // время до метро
|
|||
|
|
do_metro_type: this.do_metro_type, // до метро пешком/на траспорте
|
|||
|
|
etazhnost_ot: this.etazhnost_ot, // этажность дома квартиры, от
|
|||
|
|
etazhnost_do: this.etazhnost_do, // этажность дома квартиры, до
|
|||
|
|
etazhnost: this.etazhnost, // не первый и не последний этаж
|
|||
|
|
//order_type: this.order_type, // тип оформления сделки
|
|||
|
|
newbilding_date: this.newbilding_date, // срок сдачи
|
|||
|
|
ipoteka: this.ipoteka, // ипотека
|
|||
|
|
use_area_price: this.use_area_price,
|
|||
|
|
voen_ipoteka: this.voen_ipoteka, // воен. ипотека
|
|||
|
|
subsidya: this.subsidya, // субсидия
|
|||
|
|
mather_kapital: this.mather_kapital, // материнский капитал
|
|||
|
|
house_type: this.house_type, // тип дома
|
|||
|
|
house_material: this.house_material, // материал дома (тип стен)
|
|||
|
|
build_year: this.build_year, // год постройки
|
|||
|
|
opis: this.opis, // описание
|
|||
|
|
comment: this.comment, // комментарий
|
|||
|
|
is_active: this.is_active, // флаг активности фильтра
|
|||
|
|
telegram_notify: this.telegram_notify, // флаг уведомления в Телеграм
|
|||
|
|
tax_number: this.tax_number, // Номер налоговой
|
|||
|
|
legal_address: this.legal_address, //
|
|||
|
|
etazh_ot: this.etazh_ot, //
|
|||
|
|
etazh_do: this.etazh_do, //
|
|||
|
|
is_occupied: this.is_occupied, //
|
|||
|
|
layout_id: this.layout_id, //
|
|||
|
|
wet_spots: this.wet_spots, //
|
|||
|
|
el_power_ot: this.el_power_ot, //
|
|||
|
|
el_power_do: this.el_power_do, //
|
|||
|
|
commer_condition: this.commer_condition, //
|
|||
|
|
is_furniture: this.is_furniture, //
|
|||
|
|
commer_access: this.commer_access, //
|
|||
|
|
parking_types: this.parking_types, //
|
|||
|
|
parking_id: this.parking_id, //
|
|||
|
|
parking_price: this.parking_price, //
|
|||
|
|
parking_price_free: this.parking_price_free, //
|
|||
|
|
ceiling_height_ot: this.ceiling_height_ot, //
|
|||
|
|
ceiling_height_do: this.ceiling_height_do, //
|
|||
|
|
column_grid: this.column_grid, //
|
|||
|
|
vat_type_id: this.vat_type_id, //
|
|||
|
|
commerc_site: this.commerc_site, //
|
|||
|
|
commerc_owned1: this.commerc_owned1, //
|
|||
|
|
commerc_owned2: this.commerc_owned2, //
|
|||
|
|
floor_material_id: this.floor_material_id, //
|
|||
|
|
commerc_portal_id: this.commerc_portal_id, //
|
|||
|
|
commerc_purpose: this.commerc_purpose, //
|
|||
|
|
commerc_land_category_id: this.commerc_land_category_id, //
|
|||
|
|
commerc_permitted_use_id: this.commerc_permitted_use_id, //
|
|||
|
|
commerc_electricity_id: this.commerc_electricity_id, //
|
|||
|
|
can_electricity: this.can_electricity, //
|
|||
|
|
commerc_gas_id: this.commerc_gas_id, //
|
|||
|
|
can_gas: this.can_gas, //
|
|||
|
|
commerc_water_id: this.commerc_water_id, //
|
|||
|
|
can_water: this.can_water, //
|
|||
|
|
commerc_sewage_id: this.commerc_sewage_id, //
|
|||
|
|
can_sewage: this.can_sewage, //
|
|||
|
|
commerc_driveways: this.commerc_driveways, //
|
|||
|
|
commerc_year_ot: this.commerc_year_ot, //
|
|||
|
|
commerc_year_do: this.commerc_year_do, //
|
|||
|
|
commerc_building_type_id: this.commerc_building_type_id, //
|
|||
|
|
commerc_building_class_id: this.commerc_building_class_id, //
|
|||
|
|
building_area_ot: this.building_area_ot, //
|
|||
|
|
building_area_do: this.building_area_do, //
|
|||
|
|
commerc_houseline_type_id: this.commerc_houseline_type_id, //
|
|||
|
|
commerc_building_category_id: this.commerc_building_category_id, //
|
|||
|
|
commerc_opened_id: this.commerc_opened_id, //
|
|||
|
|
commerc_building_ventilation: this.commerc_building_ventilation, //
|
|||
|
|
commerc_building_conditioning: this.commerc_building_conditioning, //
|
|||
|
|
commerc_building_heating: this.commerc_building_heating, //
|
|||
|
|
commerc_building_fire: this.commerc_building_fire, //
|
|||
|
|
garage_type_id: this.garage_type_id, //
|
|||
|
|
garage_vid_id: this.garage_vid_id, //
|
|||
|
|
boks_vid_id: this.boks_vid_id, //
|
|||
|
|
commerc_status_id: this.commerc_status_id, //
|
|||
|
|
commerc_specifications: this.commerc_specifications, //
|
|||
|
|
commerc_infrastructure: this.commerc_infrastructure, //
|
|||
|
|
commerc_infrastructure1: this.commerc_infrastructure1, //
|
|||
|
|
commerc_infrastructure2: this.commerc_infrastructure2, //
|
|||
|
|
commerc_lift1: this.commerc_lift1, //
|
|||
|
|
lift1_carrying: this.lift1_carrying, //
|
|||
|
|
commerc_lift2: this.commerc_lift2, //
|
|||
|
|
lift2_carrying: this.lift2_carrying, //
|
|||
|
|
commerc_lift3: this.commerc_lift3, //
|
|||
|
|
lift3_carrying: this.lift3_carrying, //
|
|||
|
|
commerc_crane1: this.commerc_crane1, //
|
|||
|
|
crane1_carrying: this.crane1_carrying, //
|
|||
|
|
commerc_crane2: this.commerc_crane2, //
|
|||
|
|
crane2_carrying: this.crane2_carrying, //
|
|||
|
|
commerc_crane3: this.commerc_crane3, //
|
|||
|
|
crane3_carrying: this.crane3_carrying, //
|
|||
|
|
commerc_crane4: this.commerc_crane4, //
|
|||
|
|
crane4_carrying: this.crane4_carrying, //
|
|||
|
|
geo: this.geo, //
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
Object.keys(data).map(function(field, index) {
|
|||
|
|
let value = data[field];
|
|||
|
|
let form_field = '#asfiltr-' + field.replace('_', '-');
|
|||
|
|
if ($(form_field).closest('.control-group').length) {
|
|||
|
|
if ($(form_field).closest('.control-group').is(":hidden")) {
|
|||
|
|
data[field] = null;
|
|||
|
|
console.log('Param ' + field + ' set to NULL because is hidden form field.');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.debug(data);
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'add_edit',
|
|||
|
|
user_id: this.user_id,
|
|||
|
|
is_new_req: ((this.req_id == null || this.req_id == 0) ? true : false),
|
|||
|
|
params: data
|
|||
|
|
}).then((response) => {
|
|||
|
|
//console.log(response.data);
|
|||
|
|
let res = response.data;
|
|||
|
|
if (res.success && response.data.id) {
|
|||
|
|
this.id = response.data.id;
|
|||
|
|
req_form.autosearch_filter_id = this.id;
|
|||
|
|
req_form.autosearch_filter = response.data.filter;
|
|||
|
|
this.$emit('add_edit_autosearch_filter', this.id, response.data.filter);
|
|||
|
|
this.closeAutoSearchFiltr();
|
|||
|
|
this.clearFiltr();
|
|||
|
|
} else if (res.error) {
|
|||
|
|
this.isError = true;
|
|||
|
|
this.errorText += res.error;
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
if (document.location.pathname == '/requisitions.php') {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
requisitions.getList();
|
|||
|
|
}, 2000)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
showSaveAutosearchFieldsWindow() {
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/ajax/modals/saveAutosearchWinContent.php',
|
|||
|
|
success: function(data) {
|
|||
|
|
$("#save_autosearch_fields_bg").html(data).fadeIn(500);
|
|||
|
|
$("#save_autosearch_fields").toggle(10);
|
|||
|
|
$("body").addClass("lock");
|
|||
|
|
},
|
|||
|
|
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
|||
|
|
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
confirmSaveAutosearch() {
|
|||
|
|
$("#save_autosearch_fields_bg").hide(10);
|
|||
|
|
$("#save_autosearch_fields").hide(10);
|
|||
|
|
this.addEditFiltr();
|
|||
|
|
},
|
|||
|
|
changeStoim(field_id) {
|
|||
|
|
if (field_id == 'stoim_ot') {
|
|||
|
|
this.stoim_ot = $('#asfiltr-stoim [id="stoim_ot"]').val();
|
|||
|
|
}
|
|||
|
|
if (field_id == 'stoim_do') {
|
|||
|
|
this.stoim_do = $('#asfiltr-stoim [id="stoim_do"]').val();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
editShortField(filter_id, field_id) {
|
|||
|
|
console.log({ filter_id, field_id });
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_field_input',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: filter_id,
|
|||
|
|
field_id: field_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
let html = response.data.html;
|
|||
|
|
this.$emit('edit_short_field_input', html);
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
saveShortField(filter_id, param_id, fields) {
|
|||
|
|
console.log({ filter_id, param_id });
|
|||
|
|
console.log(fields);
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'save_field_input',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: filter_id,
|
|||
|
|
param_id: param_id,
|
|||
|
|
fields: fields
|
|||
|
|
}).then((response) => {
|
|||
|
|
console.log(response.data);
|
|||
|
|
if (response.data.result) {
|
|||
|
|
let value = response.data.value;
|
|||
|
|
this.$emit('edit_short_field_value', value);
|
|||
|
|
} else {
|
|||
|
|
let error = response.data.error;
|
|||
|
|
this.$emit('edit_short_field_error', error);
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
deleteShortField(filter_id, param_id, fields) {
|
|||
|
|
console.log({ filter_id, param_id });
|
|||
|
|
console.log(fields);
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'delete_field_input',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: filter_id,
|
|||
|
|
field_id: param_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
console.log(response.data);
|
|||
|
|
if (response.data.result && response.data.field_id)
|
|||
|
|
this.$emit('removed_short_field_value', response.data.field_id);
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
setReqToFilter(req_id, filter_id) {
|
|||
|
|
console.log({ req_id, filter_id });
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'set_req_filter',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
req_id: req_id,
|
|||
|
|
filter_id: filter_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
console.log(response.data);
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Очистка формы
|
|||
|
|
clearFiltr() {
|
|||
|
|
this.isError = false;
|
|||
|
|
this.errorText = '';
|
|||
|
|
this.id = null; // ИД фильтра
|
|||
|
|
this.req_id = null; // ИД заявки
|
|||
|
|
this.deal_type = 2; // тип сделки
|
|||
|
|
this.object_type = 0; // тип объекта
|
|||
|
|
this.object_source = 0; // источник добавления объекта
|
|||
|
|
this.category_type = 0; // тип категории
|
|||
|
|
this.categoryTypes = {}; // типы категории
|
|||
|
|
this.stoim_ot = null; // цена; от
|
|||
|
|
this.stoim_do = null; // цена; до
|
|||
|
|
this.komn_ot = null; // комнат; от
|
|||
|
|
this.komn_do = null; // комнат; до
|
|||
|
|
this.rooms = []; // комнаты
|
|||
|
|
this.sq_all_ot = null; // общая площадь; от
|
|||
|
|
this.sq_all_do = null; // общая площадь; до
|
|||
|
|
this.ploshad_k_ot = null; // площадь кухни; от
|
|||
|
|
this.ploshad_k_do = null; // площадь кухни; до
|
|||
|
|
this.rent_srok = 0; // срок аренды объекта
|
|||
|
|
this.regions = []; // регион объекта
|
|||
|
|
this.rayons = []; // район(ы) объекта
|
|||
|
|
this.metro_stations = []; // ближ. станции метро
|
|||
|
|
this.do_metro = 0; // время до метро
|
|||
|
|
this.do_metro_type = null; // до метро пешком/на траспорте
|
|||
|
|
this.etazhnost_ot = null; // этажность дома квартиры, от
|
|||
|
|
this.etazhnost_do = null; // этажность дома квартиры, до
|
|||
|
|
this.etazhnost = 0; // не первый и не последний этаж
|
|||
|
|
//this.order_type = 0; // тип оформления сделки
|
|||
|
|
this.newbilding_date = null; // срок сдачи
|
|||
|
|
this.ipoteka = 0; // ипотека
|
|||
|
|
this.use_area_price = 0;
|
|||
|
|
this.voen_ipoteka = 0; // воен. ипотека
|
|||
|
|
this.subsidya = 0; // субсидия
|
|||
|
|
this.mather_kapital = 0; // материнский капитал
|
|||
|
|
this.house_type = 0; // тип дома
|
|||
|
|
this.house_material = 0; // материал дома (тип стен)
|
|||
|
|
this.build_year = null; // год постройки
|
|||
|
|
this.opis = ''; // описание
|
|||
|
|
this.comment = ''; // комментарий
|
|||
|
|
this.is_active = 0; // флаг активности фильтра
|
|||
|
|
this.telegram_notify = 0; // флаг уведомления в Телеграм
|
|||
|
|
this.tax_number = null; //
|
|||
|
|
this.legal_address = 0; //
|
|||
|
|
this.etazh_ot = null; //
|
|||
|
|
this.etazh_do = null; //
|
|||
|
|
this.is_occupied = 0; //
|
|||
|
|
this.layout_id = 0; //
|
|||
|
|
this.wet_spots = 0; //
|
|||
|
|
this.el_power_ot = null; //
|
|||
|
|
this.el_power_do = null; //
|
|||
|
|
this.commer_condition = 0; //
|
|||
|
|
this.is_furniture = 0; //
|
|||
|
|
this.commer_access = 0; //
|
|||
|
|
this.parking_types = []; //
|
|||
|
|
this.parking_id = []; //
|
|||
|
|
this.parking_price = null; //
|
|||
|
|
this.parking_price_free = 0; //
|
|||
|
|
this.ceiling_height_ot = null; //
|
|||
|
|
this.ceiling_height_do = null; //
|
|||
|
|
this.column_grid = null; //
|
|||
|
|
this.vat_type_id = 0; //
|
|||
|
|
this.commerc_site = null; //
|
|||
|
|
this.commerc_owned1 = 0; //
|
|||
|
|
this.commerc_owned2 = 0; //
|
|||
|
|
this.floor_material_id = 0; //
|
|||
|
|
this.commerc_portal_id = 0; //
|
|||
|
|
this.commerc_purpose = []; //
|
|||
|
|
this.commerc_land_category_id = []; //
|
|||
|
|
this.commerc_permitted_use_id = []; //
|
|||
|
|
|
|||
|
|
this.commerc_electricity_id = 0; //
|
|||
|
|
this.can_electricity = 0; //
|
|||
|
|
this.commerc_gas_id = 0; //
|
|||
|
|
this.can_gas = 0; //
|
|||
|
|
this.commerc_water_id = 0; //
|
|||
|
|
this.can_water = 0; //
|
|||
|
|
this.commerc_sewage_id = 0; //
|
|||
|
|
this.can_sewage = 0; //
|
|||
|
|
this.commerc_driveways = 0; //
|
|||
|
|
|
|||
|
|
this.commerc_year_ot = null; //
|
|||
|
|
this.commerc_year_do = null; //
|
|||
|
|
this.commerc_building_type_id = []; //
|
|||
|
|
this.commerc_building_class_id = []; //
|
|||
|
|
this.building_area_ot = null; //
|
|||
|
|
this.building_area_do = null; //
|
|||
|
|
this.commerc_houseline_type_id = []; //
|
|||
|
|
this.commerc_building_category_id = 0; //
|
|||
|
|
this.commerc_opened_id = []; //
|
|||
|
|
this.commerc_building_ventilation = 0; //
|
|||
|
|
this.commerc_building_conditioning = 0; //
|
|||
|
|
this.commerc_building_heating = 0; //
|
|||
|
|
this.commerc_building_fire = 0; //
|
|||
|
|
|
|||
|
|
this.garage_type_id = 0; //
|
|||
|
|
this.garage_vid_id = 0; //
|
|||
|
|
this.boks_vid_id = 0; //
|
|||
|
|
this.commerc_status_id = 0; //
|
|||
|
|
this.commerc_specifications = []; //
|
|||
|
|
this.commerc_infrastructure = []; //
|
|||
|
|
this.commerc_infrastructure1 = []; //
|
|||
|
|
this.commerc_infrastructure2 = []; //
|
|||
|
|
|
|||
|
|
this.commerc_lift1 = null; //
|
|||
|
|
this.lift1_carrying = null; //
|
|||
|
|
this.commerc_lift2 = null; //
|
|||
|
|
this.lift2_carrying = null; //
|
|||
|
|
this.commerc_lift3 = null; //
|
|||
|
|
this.lift3_carrying = null; //
|
|||
|
|
|
|||
|
|
this.commerc_crane1 = null; //
|
|||
|
|
this.crane1_carrying = null; //
|
|||
|
|
this.commerc_crane2 = null; //
|
|||
|
|
this.crane2_carrying = null; //
|
|||
|
|
this.commerc_crane3 = null; //
|
|||
|
|
this.crane3_carrying = null; //
|
|||
|
|
this.commerc_crane4 = null; //
|
|||
|
|
this.crane4_carrying = null; //
|
|||
|
|
this.geo = null; //
|
|||
|
|
},
|
|||
|
|
formatDate(input, short_year) {
|
|||
|
|
if (typeof(input) === 'string') {
|
|||
|
|
let datePart = input.match(/\d+/g),
|
|||
|
|
year = (short_year == true) ? datePart[0].substring(2) : datePart[0],
|
|||
|
|
month = datePart[1],
|
|||
|
|
day = datePart[2];
|
|||
|
|
|
|||
|
|
return day + '.' + month + '.' + year;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return input;
|
|||
|
|
},
|
|||
|
|
// Проверка на пустоту
|
|||
|
|
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 {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
openAutoSearchFiltr(reqId, filterId) {
|
|||
|
|
|
|||
|
|
this.baseSelectInit();
|
|||
|
|
console.info({ reqId, filterId });
|
|||
|
|
|
|||
|
|
let userId = $('#session_user_id').val();
|
|||
|
|
if (typeof filterId != "undefined" && typeof reqId != "undefined") {
|
|||
|
|
$('#modalAutoSearchFiltr [name="user_id"]').val(userId);
|
|||
|
|
$('#modalAutoSearchFiltr [name="req_id"]').val(reqId);
|
|||
|
|
$('#modalAutoSearchFiltr [name="filter_id"]').val(filterId);
|
|||
|
|
this.setData();
|
|||
|
|
}
|
|||
|
|
$('#modalAutoSearchFiltr_bg').fadeIn(500);
|
|||
|
|
$('#modalAutoSearchFiltr').toggle(10);
|
|||
|
|
$("body").addClass("lock");
|
|||
|
|
},
|
|||
|
|
// Закрытие модала параметров автопоиска
|
|||
|
|
closeAutoSearchFiltr() {
|
|||
|
|
this.clearFiltr();
|
|||
|
|
$("#modalAutoSearchFiltr_bg").fadeOut(300);
|
|||
|
|
$("#modalAutoSearchFiltr").toggle(100);
|
|||
|
|
$("body").removeClass("lock");
|
|||
|
|
},
|
|||
|
|
resetAutoSearchMap() {
|
|||
|
|
this.myMap = null;
|
|||
|
|
this.objectManager = null;
|
|||
|
|
this.mapGroup = null;
|
|||
|
|
this.accessScroll = true;
|
|||
|
|
this.styles = [];
|
|||
|
|
this.polygons = [];
|
|||
|
|
this.buttonClearMode = null;
|
|||
|
|
this.buttonEditMode = null;
|
|||
|
|
this.currentIndex = 0;
|
|||
|
|
this.paintProcess = null;
|
|||
|
|
},
|
|||
|
|
clearPolygons() {
|
|||
|
|
if (this.myMap && this.myMap.geoObjects) {
|
|||
|
|
for (var i = 0; i <= this.polygons.length; i++) {
|
|||
|
|
if (this.polygons[i]) {
|
|||
|
|
this.myMap.geoObjects.remove(this.polygons[i]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.polygons = [];
|
|||
|
|
if (this.objectManager) {
|
|||
|
|
this.objectManager.removeAll();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
addMapButtons() {
|
|||
|
|
let _this = this;
|
|||
|
|
|
|||
|
|
// Создадим кнопку для очистки.
|
|||
|
|
_this.buttonClearMode = new ymaps.control.Button({data: {content: 'Очистить'}, options: {maxWidth: 100, selectOnClick: false}});
|
|||
|
|
_this.buttonClearMode.events.add('click', function () {
|
|||
|
|
_this.clearPolygons();
|
|||
|
|
});
|
|||
|
|
_this.myMap.controls.add(_this.buttonClearMode);
|
|||
|
|
|
|||
|
|
// Создадим кнопку для выбора режима рисования
|
|||
|
|
_this.buttonEditMode = new ymaps.control.Button({
|
|||
|
|
data: {content: 'Выделение области'},
|
|||
|
|
options: {maxWidth: 150}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
_this.buttonEditMode.events.add('click', function (e) {
|
|||
|
|
// Проверяем, находится ли кнопка в состоянии "Подтвердить"
|
|||
|
|
if (_this.buttonEditMode.isSelected()) {
|
|||
|
|
_this.buttonEditMode.data.set('content', 'Выделение области');
|
|||
|
|
if (_this.paintProcess) {
|
|||
|
|
_this.cleanupAfterDrawing();
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
_this.buttonEditMode.data.set('content', 'Подтвердить');
|
|||
|
|
|
|||
|
|
if (_this.polygons && _this.polygons.length < 4) {
|
|||
|
|
if (_this.currentIndex == _this.styles.length - 1) {
|
|||
|
|
_this.currentIndex = 0;
|
|||
|
|
} else {
|
|||
|
|
_this.currentIndex += 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!_this.paintProcess) {
|
|||
|
|
_this.paintProcess = ymaps.ext.paintOnMap(_this.myMap, e, {style: _this.styles[_this.currentIndex]});
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
alert("Максимальное количество областей = 4");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
_this.myMap.controls.add(_this.buttonEditMode);
|
|||
|
|
},
|
|||
|
|
addNewPolygon(coordinates) {
|
|||
|
|
let _this = this;
|
|||
|
|
var polygon = new ymaps.Polygon([coordinates], {}, _this.styles[_this.currentIndex]);
|
|||
|
|
//polygon.description = '<button>Удалить</button>';
|
|||
|
|
_this.polygons[_this.polygons.length] = polygon;
|
|||
|
|
_this.myMap.geoObjects.add(polygon);
|
|||
|
|
},
|
|||
|
|
defineDrawOnMap() {
|
|||
|
|
let _this = this;
|
|||
|
|
|
|||
|
|
ymaps.modules.define('ext.paintOnMap', ['meta', 'util.extend', 'pane.EventsPane', 'Event'], function (provide, meta, extend, EventsPane, Event) {
|
|||
|
|
'use strict';
|
|||
|
|
var EVENTS_PANE_ZINDEX = 500;
|
|||
|
|
var DEFAULT_UNWANTED_BEHAVIORS = ['drag', 'scrollZoom'];
|
|||
|
|
var DEFAULT_STYLE = {strokeColor: '#0000ff', strokeWidth: 1, strokeOpacity: 1};
|
|||
|
|
var DEFAULT_TOLERANCE = 16;
|
|||
|
|
var badFinishPaintingCall = function () {
|
|||
|
|
throw new Error('(ymaps.ext.paintOnMap) некорректный вызов PaintingProcess#finishPaintingAt. Рисование уже завершено.');
|
|||
|
|
};
|
|||
|
|
function paintOnMap(map, positionOrEvent, config) {
|
|||
|
|
config = config || {};
|
|||
|
|
var style = extend(DEFAULT_STYLE, config.style || {});
|
|||
|
|
|
|||
|
|
var unwantedBehaviors = config.unwantedBehaviors === undefined ?
|
|||
|
|
DEFAULT_UNWANTED_BEHAVIORS : config.unwantedBehaviors;
|
|||
|
|
|
|||
|
|
var pane = new EventsPane(map, {
|
|||
|
|
css: {position: 'absolute', width: '100%', height: '100%'},
|
|||
|
|
zIndex: EVENTS_PANE_ZINDEX + 50,
|
|||
|
|
transparent: true
|
|||
|
|
});
|
|||
|
|
map.panes.append('ext-paint-on-map', pane);
|
|||
|
|
|
|||
|
|
if (unwantedBehaviors) {
|
|||
|
|
map.behaviors.disable(unwantedBehaviors);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Создаём canvas-элемент.
|
|||
|
|
var canvas = document.createElement('canvas');
|
|||
|
|
var ctx2d = canvas.getContext('2d');
|
|||
|
|
var rect = map.container.getParentElement().getBoundingClientRect();
|
|||
|
|
canvas.width = rect.width;
|
|||
|
|
canvas.height = rect.height;
|
|||
|
|
|
|||
|
|
ctx2d.globalAlpha = style.strokeOpacity;
|
|||
|
|
ctx2d.strokeStyle = style.strokeColor;
|
|||
|
|
ctx2d.lineWidth = style.strokeWidth;
|
|||
|
|
|
|||
|
|
canvas.style.width = '100%';
|
|||
|
|
canvas.style.height = '100%';
|
|||
|
|
|
|||
|
|
pane.getElement().appendChild(canvas);
|
|||
|
|
|
|||
|
|
var firstPosition = positionOrEvent ? toPosition(positionOrEvent) : null;
|
|||
|
|
var coordinates = firstPosition ? [firstPosition] : [];
|
|||
|
|
|
|||
|
|
var bounds = map.getBounds();
|
|||
|
|
var latDiff = bounds[1][0] - bounds[0][0];
|
|||
|
|
var lonDiff = bounds[1][1] - bounds[0][1];
|
|||
|
|
|
|||
|
|
canvas.onmousedown = function (e) {
|
|||
|
|
_this.mouseIsDraw = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
canvas.onmouseup = function (e) {
|
|||
|
|
_this.mouseIsDraw = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
canvas.onmousemove = function (e) {
|
|||
|
|
|
|||
|
|
if (!_this.mouseIsDraw || !_this.buttonEditMode.isSelected()) {
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
coordinates.push([e.offsetX, e.offsetY]);
|
|||
|
|
|
|||
|
|
ctx2d.clearRect(0, 0, canvas.width, canvas.height);
|
|||
|
|
ctx2d.beginPath();
|
|||
|
|
|
|||
|
|
ctx2d.moveTo(coordinates[0][0], coordinates[0][1]);
|
|||
|
|
for (var i = 1; i < coordinates.length; i++) {
|
|||
|
|
ctx2d.lineTo(coordinates[i][0], coordinates[i][1]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ctx2d.stroke();
|
|||
|
|
}.bind(this);
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Создаём косвенное обращение, чтобы не сдерживать сборщик мусора.
|
|||
|
|
var paintingProcess = {
|
|||
|
|
finishPaintingAt: function (positionOrEvent) {
|
|||
|
|
paintingProcess.finishPaintingAt = badFinishPaintingCall;
|
|||
|
|
|
|||
|
|
// Получаем координаты, прежде чем удалить пейн.
|
|||
|
|
if (positionOrEvent) {
|
|||
|
|
coordinates.push(toPosition(positionOrEvent));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
map.panes.remove(pane);
|
|||
|
|
if (unwantedBehaviors) {
|
|||
|
|
map.behaviors.enable(unwantedBehaviors);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var tolerance = config.tolerance === undefined ? DEFAULT_TOLERANCE : Number(config.tolerance);
|
|||
|
|
if (tolerance) {
|
|||
|
|
coordinates = simplify(coordinates, tolerance);
|
|||
|
|
}
|
|||
|
|
// Преобразовываем координаты canvas-элемента в геодезические координаты.
|
|||
|
|
return coordinates.map(function (x) {
|
|||
|
|
var lon = bounds[0][1] + (x[0] / canvas.width) * lonDiff;
|
|||
|
|
var lat = bounds[0][0] + (1 - x[1] / canvas.height) * latDiff;
|
|||
|
|
|
|||
|
|
return meta.coordinatesOrder === 'latlong' ? [lat, lon] : [lon, lat];
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
return paintingProcess;
|
|||
|
|
}
|
|||
|
|
function toPosition(positionOrEvent) {
|
|||
|
|
return positionOrEvent instanceof Event ?
|
|||
|
|
[positionOrEvent.get('offsetX'), positionOrEvent.get('offsetY')] :
|
|||
|
|
positionOrEvent;
|
|||
|
|
}
|
|||
|
|
function simplify(coordinates, tolerance) {
|
|||
|
|
var toleranceSquared = tolerance * tolerance;
|
|||
|
|
var simplified = [coordinates[0]];
|
|||
|
|
|
|||
|
|
var prev = coordinates[0];
|
|||
|
|
for (var i = 1; i < coordinates.length; i++) {
|
|||
|
|
var curr = coordinates[i];
|
|||
|
|
if (Math.pow(prev[0] - curr[0], 2) + Math.pow(prev[1] - curr[1], 2) > toleranceSquared) {
|
|||
|
|
simplified.push(curr);
|
|||
|
|
prev = curr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return simplified;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
provide(paintOnMap);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
ymaps.ready(['ext.paintOnMap']).then(function () {
|
|||
|
|
|
|||
|
|
// Опции многоугольника или линии.
|
|||
|
|
_this.styles = [
|
|||
|
|
{
|
|||
|
|
strokeColor: '#ff0000',
|
|||
|
|
strokeOpacity: 0.6,
|
|||
|
|
strokeWidth: 2,
|
|||
|
|
fillColor: '#ff0000',
|
|||
|
|
fillOpacity: 0.3
|
|||
|
|
}
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
_this.currentIndex = 0;
|
|||
|
|
|
|||
|
|
if (_this.mapGroup == null)
|
|||
|
|
_this.mapGroup = _this.myMap.events.group();
|
|||
|
|
|
|||
|
|
_this.mapGroup.removeAll();
|
|||
|
|
|
|||
|
|
// Подпишемся на событие нажатия кнопки мыши.
|
|||
|
|
_this.mapGroup.add('mousedown', function (e) {
|
|||
|
|
console.info(e);
|
|||
|
|
// _this.paintProcess = null;
|
|||
|
|
if (_this.buttonEditMode.isSelected()) {
|
|||
|
|
if(_this.polygons && _this.polygons.length < 4) {
|
|||
|
|
if (_this.currentIndex == _this.styles.length - 1) {
|
|||
|
|
_this.currentIndex = 0;
|
|||
|
|
} else {
|
|||
|
|
_this.currentIndex += 1;
|
|||
|
|
}
|
|||
|
|
_this.paintProcess = ymaps.ext.paintOnMap(_this.myMap, e, {style: _this.styles[_this.currentIndex]});
|
|||
|
|
} else {
|
|||
|
|
_this.mouseIsDraw = false;
|
|||
|
|
alert("Максимальное количество областей не более 4-х.");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// Подпишемся на событие отпускания кнопки мыши.
|
|||
|
|
_this.mapGroup.add('mouseup', function (e) {
|
|||
|
|
console.info(e);
|
|||
|
|
if (_this.paintProcess && _this.buttonEditMode.isSelected()) {
|
|||
|
|
|
|||
|
|
// Получаем координаты отрисованного контура.
|
|||
|
|
var coordinates = _this.paintProcess.finishPaintingAt(e);
|
|||
|
|
_this.paintProcess = null;
|
|||
|
|
|
|||
|
|
if (coordinates && coordinates.length > 2) {
|
|||
|
|
// В зависимости от состояния кнопки добавляем на карту многоугольник или линию с полученными координатами.
|
|||
|
|
_this.addNewPolygon(coordinates);
|
|||
|
|
} else {
|
|||
|
|
alert("Количество вершин для области меньше 3-х, пожалуйста перерисуйте многоугольник более точнее.");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// Добавляем на карту уже ранее сохраненные гео-области
|
|||
|
|
if (!this.isEmpty(_this.geo)) {
|
|||
|
|
|
|||
|
|
let max_lat = 0;
|
|||
|
|
let max_lng = 0;
|
|||
|
|
_this.geo.forEach((poly) => {
|
|||
|
|
|
|||
|
|
var i = 0
|
|||
|
|
let coordinates = [];
|
|||
|
|
if (poly) {
|
|||
|
|
let points = poly.split(',');
|
|||
|
|
while (i < points.length) {
|
|||
|
|
if (!_this.isEmpty(points[i])) {
|
|||
|
|
let lat = points[i];
|
|||
|
|
if (!_this.isEmpty(points[i+1])) {
|
|||
|
|
let lng = points[i + 1];
|
|||
|
|
coordinates.push([Number(lat), Number(lng)]);
|
|||
|
|
|
|||
|
|
if (Number(lat) > max_lat)
|
|||
|
|
max_lat = Number(lat);
|
|||
|
|
|
|||
|
|
if (Number(lng) > max_lng)
|
|||
|
|
max_lng = Number(lng);
|
|||
|
|
}
|
|||
|
|
i++;
|
|||
|
|
}
|
|||
|
|
i++;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!_this.isEmpty(coordinates)) {
|
|||
|
|
_this.addNewPolygon(coordinates);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
if (max_lat != 0 && max_lng != 0) {
|
|||
|
|
_this.myMap.setCenter([max_lat, max_lng]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}).catch(console.error);
|
|||
|
|
},
|
|||
|
|
initAutoSearchMap() {
|
|||
|
|
|
|||
|
|
var center_cords = [59.929100, 30.311602];
|
|||
|
|
|
|||
|
|
if (this.myMap) {
|
|||
|
|
if (this.myMap && this.objectManager) {
|
|||
|
|
if (this.polygons) {
|
|||
|
|
for (var i = 0; i <= this.polygons.length; i++) {
|
|||
|
|
if (this.polygons[i]) {
|
|||
|
|
this.myMap.geoObjects.remove(this.polygons[i]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.polygons = [];
|
|||
|
|
if (this.objectManager) {
|
|||
|
|
this.objectManager.removeAll();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.objectManager = new ymaps.ObjectManager({
|
|||
|
|
clusterize: false,
|
|||
|
|
clusterDisableClickZoom: true,
|
|||
|
|
clusterOpenBalloonOnClick: false,
|
|||
|
|
geoObjectOpenBalloonOnClick: false,
|
|||
|
|
clusterIconColor: "#43a047",
|
|||
|
|
iconColor: "#43a047"
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
this.myMap = new ymaps.Map('autoSearchMap', {
|
|||
|
|
center: center_cords,
|
|||
|
|
zoom: 12,
|
|||
|
|
controls: ['zoomControl']
|
|||
|
|
}, {
|
|||
|
|
fullscreenZIndex : 999999999
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
this.objectManager.objects.options.set('iconColor', '#43a047');
|
|||
|
|
this.myMap.geoObjects.add(this.objectManager);
|
|||
|
|
this.myMap.events.add('boundschange', function (e) {
|
|||
|
|
this.accessScroll = true;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
this.objectManager.removeAll();
|
|||
|
|
|
|||
|
|
let _this = this;
|
|||
|
|
if (_this.isEmpty(_this.geo) && $('#asfiltr-object-regions').val()) {
|
|||
|
|
let region_id = $('#asfiltr-object-regions').val();
|
|||
|
|
|
|||
|
|
if (Array.isArray(region_id) && region_id.length > 1) {
|
|||
|
|
region_id.splice(1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
let region = $('#asfiltr-object-regions [value="'+region_id+'"]').text();
|
|||
|
|
console.info(region);
|
|||
|
|
ymaps.geocode(region, {
|
|||
|
|
results: 1
|
|||
|
|
}).then(function (res) {
|
|||
|
|
center_cords = res.geoObjects.get(0).geometry.getCoordinates();
|
|||
|
|
_this.myMap.setCenter(center_cords, 12);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
this.defineDrawOnMap();
|
|||
|
|
|
|||
|
|
ymaps.ready(['ext.paintOnMap']).then(function () {
|
|||
|
|
_this.addMapButtons();
|
|||
|
|
}).catch(console.error);
|
|||
|
|
|
|||
|
|
this.clearPolygons();
|
|||
|
|
|
|||
|
|
$('#modalAutoSearchMap .modal__body').addClass('is-active');
|
|||
|
|
$('#autoSearchMap > ymaps:not(:last-child)').remove();
|
|||
|
|
$('#modalAutoSearchMap_bg').fadeIn(500);
|
|||
|
|
$('#modalAutoSearchMap').toggle(10);
|
|||
|
|
$("body").addClass("lock");
|
|||
|
|
},
|
|||
|
|
asyncSetData(filter_id, req_id, user_id) {
|
|||
|
|
return new Promise((resolve, reject) => {
|
|||
|
|
this.setData(filter_id, req_id, user_id);
|
|||
|
|
setTimeout(() => {
|
|||
|
|
resolve(true);
|
|||
|
|
}, 500);
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
openAutoSearchMap(filter_id, req_id, user_id) {
|
|||
|
|
|
|||
|
|
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.body.appendChild(elem);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(filter_id) && !this.isEmpty(req_id) && !this.isEmpty(user_id)) {
|
|||
|
|
this.user_id = user_id;
|
|||
|
|
this.req_id = req_id;
|
|||
|
|
this.id = filter_id;
|
|||
|
|
this.isOpenFromReq = true;
|
|||
|
|
this.asyncSetData(filter_id, req_id, user_id).then(() => {
|
|||
|
|
setTimeout(() => this.initAutoSearchMap(), 500);
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
setTimeout(() => this.initAutoSearchMap(), 500);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
closeAutoSearchMap() {
|
|||
|
|
this.resetAutoSearchMap();
|
|||
|
|
this.getObjectRayons(this.region, this.rayons);
|
|||
|
|
this.getMetroStations(this.region, this.metro_stations);
|
|||
|
|
$("#modalAutoSearchMap_bg").fadeOut(300);
|
|||
|
|
$("#modalAutoSearchMap").toggle(100);
|
|||
|
|
$("body").removeClass("lock");
|
|||
|
|
},
|
|||
|
|
saveAutoSearchMap() {
|
|||
|
|
|
|||
|
|
this.geo = [];
|
|||
|
|
if (this.polygons && this.polygons.length) {
|
|||
|
|
|
|||
|
|
let {geoArr1, geoArr2, geoArr3, geoArr4} = [];
|
|||
|
|
|
|||
|
|
if (this.polygons[0])
|
|||
|
|
geoArr1 = this.polygons[0].geometry.getCoordinates();
|
|||
|
|
|
|||
|
|
if (this.polygons[1])
|
|||
|
|
geoArr2 = this.polygons[1].geometry.getCoordinates();
|
|||
|
|
|
|||
|
|
if (this.polygons[2])
|
|||
|
|
geoArr3 = this.polygons[2].geometry.getCoordinates();
|
|||
|
|
|
|||
|
|
if (this.polygons[3])
|
|||
|
|
geoArr4 = this.polygons[3].geometry.getCoordinates();
|
|||
|
|
|
|||
|
|
|
|||
|
|
let coordsToScript1 = "";
|
|||
|
|
let coordsToScript2 = "";
|
|||
|
|
let coordsToScript3 = "";
|
|||
|
|
let coordsToScript4 = "";
|
|||
|
|
|
|||
|
|
if (geoArr1 && geoArr1.length) {
|
|||
|
|
if (geoArr1[0] && geoArr1[0].length) {
|
|||
|
|
for (var j = 0; j <= geoArr1[0].length; j++) {
|
|||
|
|
if (geoArr1[0][j] && geoArr1[0][j].length) {
|
|||
|
|
if (coordsToScript1) {
|
|||
|
|
coordsToScript1 += ","
|
|||
|
|
}
|
|||
|
|
coordsToScript1 += geoArr1[0][j][0] + "," + geoArr1[0][j][1];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (geoArr2 && geoArr2.length) {
|
|||
|
|
if (geoArr2[0] && geoArr2[0].length) {
|
|||
|
|
for (var j = 0; j <= geoArr2[0].length; j++) {
|
|||
|
|
if (geoArr2[0][j] && geoArr2[0][j].length) {
|
|||
|
|
if (coordsToScript2) {
|
|||
|
|
coordsToScript2 += ","
|
|||
|
|
}
|
|||
|
|
coordsToScript2 += geoArr2[0][j][0] + "," + geoArr2[0][j][1];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (geoArr3 && geoArr3.length) {
|
|||
|
|
if (geoArr3[0] && geoArr3[0].length) {
|
|||
|
|
for (var j = 0; j <= geoArr3[0].length; j++) {
|
|||
|
|
if (geoArr3[0][j] && geoArr3[0][j].length) {
|
|||
|
|
if (coordsToScript3) {
|
|||
|
|
coordsToScript3 += ","
|
|||
|
|
}
|
|||
|
|
coordsToScript3 += geoArr3[0][j][0] + "," + geoArr3[0][j][1];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (geoArr4 && geoArr4.length) {
|
|||
|
|
if (geoArr4[0] && geoArr4[0].length) {
|
|||
|
|
for (var j = 0; j <= geoArr4[0].length; j++) {
|
|||
|
|
if (geoArr4[0][j] && geoArr4[0][j].length) {
|
|||
|
|
if (coordsToScript4) {
|
|||
|
|
coordsToScript4 += ","
|
|||
|
|
}
|
|||
|
|
coordsToScript4 += geoArr4[0][j][0] + "," + geoArr4[0][j][1];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(coordsToScript1))
|
|||
|
|
this.geo.push(coordsToScript1);
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(coordsToScript2))
|
|||
|
|
this.geo.push(coordsToScript2);
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(coordsToScript3))
|
|||
|
|
this.geo.push(coordsToScript3);
|
|||
|
|
|
|||
|
|
if (!this.isEmpty(coordsToScript4))
|
|||
|
|
this.geo.push(coordsToScript4);
|
|||
|
|
|
|||
|
|
let geo_data = {
|
|||
|
|
"poly1": (!this.isEmpty(this.geo[0])) ? this.geo[0] : null,
|
|||
|
|
"poly2": (!this.isEmpty(this.geo[1])) ? this.geo[1] : null,
|
|||
|
|
"poly3": (!this.isEmpty(this.geo[2])) ? this.geo[2] : null,
|
|||
|
|
"poly4": (!this.isEmpty(this.geo[3])) ? this.geo[3] : null
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
if (this.isOpenFromReq) {
|
|||
|
|
this.saveShortField(this.id, 'geo', {
|
|||
|
|
geo: geo_data
|
|||
|
|
});
|
|||
|
|
this.$once('edit_short_field_value', function(value) {
|
|||
|
|
let row = $('#req_form .params-list tr[data-key="' + 'geo' + '"]');
|
|||
|
|
if (row && value !== null) {
|
|||
|
|
row.find('td[data-key="value"]').data('origin', value);
|
|||
|
|
row.find('td[data-key="value"]').html(value);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.isOpenFromReq = false;
|
|||
|
|
this.closeAutoSearchMap();
|
|||
|
|
},
|
|||
|
|
arrayChunk(array, length) {
|
|||
|
|
let chunked = [],
|
|||
|
|
i = 0,
|
|||
|
|
n = array.length;
|
|||
|
|
while (i < n) {
|
|||
|
|
chunked.push(array.slice(i, i += length));
|
|||
|
|
}
|
|||
|
|
return chunked
|
|||
|
|
},
|
|||
|
|
baseSelectInit() {
|
|||
|
|
this.getObjectTypes();
|
|||
|
|
this.getRoomsCounts();
|
|||
|
|
this.getObjectSources();
|
|||
|
|
this.getCategoryTypes();
|
|||
|
|
this.getObjectRentSrok();
|
|||
|
|
this.getObjectRegions();
|
|||
|
|
this.getObjectRayons(this.regions);
|
|||
|
|
//this.getOrderTypes();
|
|||
|
|
this.getHouseTypes();
|
|||
|
|
this.getHouseMaterials();
|
|||
|
|
this.getBuildYears();
|
|||
|
|
},
|
|||
|
|
commerceCategoryInit(object_type) {
|
|||
|
|
|
|||
|
|
if (typeof object_type == "undefined")
|
|||
|
|
object_type = this.object_type;
|
|||
|
|
|
|||
|
|
if (object_type == 4 || object_type == '4') {
|
|||
|
|
this.getLegalAddress();
|
|||
|
|
this.getIsOccupied();
|
|||
|
|
this.getLayoutId();
|
|||
|
|
this.getWetSpots();
|
|||
|
|
this.getCommerCondition();
|
|||
|
|
this.getIsFurniture();
|
|||
|
|
this.getCommerAccess();
|
|||
|
|
this.getParkingTypes();
|
|||
|
|
this.getParkingId();
|
|||
|
|
this.getVatTypeId();
|
|||
|
|
|
|||
|
|
this.getFloorMaterials();
|
|||
|
|
this.getCommercPortalId();
|
|||
|
|
this.getCommercPurpose();
|
|||
|
|
this.getCommercLandCategoryId();
|
|||
|
|
this.getCommercPrmittedUseId();
|
|||
|
|
|
|||
|
|
this.getCommercElectricityId();
|
|||
|
|
this.getCommercGasId();
|
|||
|
|
this.getCommercWaterId();
|
|||
|
|
this.getCommercSewageId();
|
|||
|
|
this.getCommercDriveways();
|
|||
|
|
this.getCommercBuildingTypeId();
|
|||
|
|
this.getCommercBuildingClassId();
|
|||
|
|
this.getCommercHouselineTypeId();
|
|||
|
|
this.getCommercBuildingCategoryId();
|
|||
|
|
this.getCommercOpenedId();
|
|||
|
|
this.getCommercBuildingVentilation();
|
|||
|
|
this.getCommercBuildingConditioning();
|
|||
|
|
this.getCommercBuildingHeating();
|
|||
|
|
this.getCommercBuildingFire();
|
|||
|
|
this.getGarageTypeId();
|
|||
|
|
this.getGarageVidId();
|
|||
|
|
this.getBoksVidId();
|
|||
|
|
this.getCommercStatusId();
|
|||
|
|
this.getCommercSpecifications();
|
|||
|
|
this.getCommercInfrastructure();
|
|||
|
|
this.getCommercInfrastructure1();
|
|||
|
|
this.getCommercInfrastructure2();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
this.commerceCategoryInit(this.object_type);
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
selectedCategoryTypes() {
|
|||
|
|
return Object.values(this.categoryTypes).filter(category => category.selected).map(category => parseInt(category.value))
|
|||
|
|
},
|
|||
|
|
getRegionsCount() {
|
|||
|
|
return this.objectRegions && Object.keys(this.objectRegions).length;
|
|||
|
|
},
|
|||
|
|
getRayonsCount() {
|
|||
|
|
return this.objectRayons && Object.keys(this.objectRayons).length;
|
|||
|
|
},
|
|||
|
|
getMetroCount() {
|
|||
|
|
return this.metroStations && Object.keys(this.metroStations).length;
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
created: function() {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Параметры автопоиска
|
|||
|
|
if ($('#modalAutoSearchResults').length > 0) {
|
|||
|
|
var autosearch_objs = new Vue({
|
|||
|
|
el: '#modalAutoSearchResults',
|
|||
|
|
components: {},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
req_id: 0,
|
|||
|
|
filter_id: 0,
|
|||
|
|
filter_info: '',
|
|||
|
|
objectsMatchList: [],
|
|||
|
|
objectsMatchCount: 0,
|
|||
|
|
objectsMatchTotal: 0,
|
|||
|
|
// objectsSimilarList: [],
|
|||
|
|
objectsSimilarCount: 0,
|
|||
|
|
objectsSimilarTotal: 0,
|
|||
|
|
objectsFavouredList: [],
|
|||
|
|
objectsFavouredCount: 0,
|
|||
|
|
errors: '',
|
|||
|
|
objectsViewedIds: [],
|
|||
|
|
//objectsIgnoredIds: [],
|
|||
|
|
objectsFavouredIds: [],
|
|||
|
|
objectsSendedIds: [],
|
|||
|
|
axios_processed: false,
|
|||
|
|
search_processed: false,
|
|||
|
|
isPreloader: 1,
|
|||
|
|
order: {
|
|||
|
|
company: 0,
|
|||
|
|
price: 0,
|
|||
|
|
not_viewed: 0,
|
|||
|
|
not_sended: 0,
|
|||
|
|
with_commission: 0,
|
|||
|
|
with_photo: 0,
|
|||
|
|
},
|
|||
|
|
pagination: {
|
|||
|
|
match: {
|
|||
|
|
pages: 0,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
similar: {
|
|||
|
|
pages: 0,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
favoured: {
|
|||
|
|
pages: 0,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
addItemToViewed(filter_id, object_id) {
|
|||
|
|
if (typeof filter_id !== "undefined")
|
|||
|
|
this.filter_id = parseInt(filter_id);
|
|||
|
|
|
|||
|
|
if (typeof object_id !== "undefined") {
|
|||
|
|
object_id = parseInt(object_id);
|
|||
|
|
let ref = this;
|
|||
|
|
let timeoutID = null;
|
|||
|
|
setTimeout(function() {
|
|||
|
|
if (!ref.axios_processed && (ref.objectsViewedIds.indexOf(object_id) == -1)) {
|
|||
|
|
ref.axios_processed = true;
|
|||
|
|
console.log({ filter_id, object_id });
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'set_object_viewed',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: ref.filter_id,
|
|||
|
|
object_id: object_id,
|
|||
|
|
}).then((response) => {
|
|||
|
|
ref.axios_processed = false;
|
|||
|
|
clearTimeout(timeoutID);
|
|||
|
|
if (response.data.success) {
|
|||
|
|
ref.objectsViewedIds.push(object_id);
|
|||
|
|
|
|||
|
|
if (object_id in ref.objectsMatchList && ref.objectsMatchCount >= 1)
|
|||
|
|
ref.objectsMatchCount--;
|
|||
|
|
|
|||
|
|
// if (object_id in ref.objectsSimilarList && ref.objectsSimilarCount >= 1)
|
|||
|
|
// ref.objectsSimilarCount--;
|
|||
|
|
|
|||
|
|
if (object_id in ref.objectsFavouredList && ref.objectsFavouredCount >= 1)
|
|||
|
|
ref.objectsFavouredCount--;
|
|||
|
|
|
|||
|
|
ref.$emit('change_autosearch_counters', ref.filter_id, {
|
|||
|
|
match: ref.objectsMatchCount,
|
|||
|
|
similar: ref.objectsSimilarCount,
|
|||
|
|
favoured: ref.objectsFavouredCount,
|
|||
|
|
total: (ref.objectsMatchCount)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
let viewed_label = $('<span class="viewed_label">Просмотрено</span>');
|
|||
|
|
$('#modalAutoSearchResults #item' + object_id + ' .actions-menu__icons').prepend(viewed_label);
|
|||
|
|
viewed_label.addClass('show');
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
ref.axios_processed = false;
|
|||
|
|
clearTimeout(timeoutID);
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}, 1200);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
bindViewedEvents(listElement, filter_id) {
|
|||
|
|
let ref = this;
|
|||
|
|
$(listElement).on('click, focus, blur, mousemove', '.jw__object.item', function() {
|
|||
|
|
let object_id = $(this).attr('id').replace('item', '');
|
|||
|
|
ref.addItemToViewed(filter_id, object_id);
|
|||
|
|
});
|
|||
|
|
$(listElement).scroll(function() {
|
|||
|
|
$(this).find('.jw__object.item').each(function() {
|
|||
|
|
|
|||
|
|
let targetPosition = {
|
|||
|
|
top: window.pageYOffset + this.getBoundingClientRect().top,
|
|||
|
|
left: window.pageXOffset + this.getBoundingClientRect().left,
|
|||
|
|
right: window.pageXOffset + this.getBoundingClientRect().right,
|
|||
|
|
bottom: window.pageYOffset + this.getBoundingClientRect().bottom
|
|||
|
|
},
|
|||
|
|
windowPosition = {
|
|||
|
|
top: window.pageYOffset,
|
|||
|
|
left: window.pageXOffset,
|
|||
|
|
right: window.pageXOffset + document.documentElement.clientWidth,
|
|||
|
|
bottom: window.pageYOffset + document.documentElement.clientHeight
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
if (targetPosition.bottom > windowPosition.top && // Если позиция нижней части элемента больше позиции верхней чайти окна, то элемент виден сверху
|
|||
|
|
targetPosition.top < windowPosition.bottom && // Если позиция верхней части элемента меньше позиции нижней чайти окна, то элемент виден снизу
|
|||
|
|
targetPosition.right > windowPosition.left && // Если позиция правой стороны элемента больше позиции левой части окна, то элемент виден слева
|
|||
|
|
targetPosition.left < windowPosition.right) { // Если позиция левой стороны элемента меньше позиции правой чайти окна, то элемент виден справа
|
|||
|
|
let object_id = $(this).attr('id').replace('item', '');
|
|||
|
|
ref.addItemToViewed(filter_id, object_id);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
addItemToFavour(filter_id, object_id) {
|
|||
|
|
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof filter_id !== "undefined")
|
|||
|
|
ref.filter_id = parseInt(filter_id);
|
|||
|
|
|
|||
|
|
if (typeof object_id !== "undefined") {
|
|||
|
|
ref.isPreloader = 1;
|
|||
|
|
object_id = parseInt(object_id);
|
|||
|
|
console.debug({ filter_id, object_id });
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'add_object_to_favour',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: ref.filter_id,
|
|||
|
|
object_id: object_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
if (response.data.success) {
|
|||
|
|
|
|||
|
|
console.debug($('#modalAutoSearchResults #item' + object_id + ' .object-content__name .ti-heart').attr('class'));
|
|||
|
|
|
|||
|
|
let heart = $('#modalAutoSearchResults #item' + object_id + ' .object-content__name .ti-heart');
|
|||
|
|
if (heart.hasClass('active'))
|
|||
|
|
heart.removeClass('active');
|
|||
|
|
else
|
|||
|
|
heart.addClass('active');
|
|||
|
|
|
|||
|
|
ref.error = response.data.error;
|
|||
|
|
ref.objectsFavouredList = response.data.favoured || [];
|
|||
|
|
ref.objectsFavouredCount = parseInt(response.data.total) || 0;
|
|||
|
|
|
|||
|
|
/***/
|
|||
|
|
let page = parseInt($('#objectsFavour .pagination').data('current')) || 1;
|
|||
|
|
let offset = (page * parseInt(response.data.perpage));
|
|||
|
|
ref.pagination.favoured.pages = Math.ceil(ref.objectsFavouredCount / parseInt(response.data.perpage));
|
|||
|
|
ref.pagination.favoured.offset = offset;
|
|||
|
|
ref.pagination.favoured.current = Math.round(offset / parseInt(response.data.perpage));
|
|||
|
|
/***/
|
|||
|
|
|
|||
|
|
if (object_id in ref.objectsFavouredIds) {
|
|||
|
|
ref.objectsFavouredIds.remove(object_id);
|
|||
|
|
} else {
|
|||
|
|
ref.objectsFavouredIds.push(object_id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
setTimeout(function() {
|
|||
|
|
$(ref.$refs.favouredObjectsList).find('.fotorama').fotorama();
|
|||
|
|
}, 1000);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
addItemToExclude(filter_id, object_id) {
|
|||
|
|
|
|||
|
|
if (typeof filter_id !== "undefined")
|
|||
|
|
this.filter_id = parseInt(filter_id);
|
|||
|
|
|
|||
|
|
if (typeof object_id !== "undefined") {
|
|||
|
|
object_id = parseInt(object_id);
|
|||
|
|
console.log({ filter_id, object_id });
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'add_object_to_ignored',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: filter_id,
|
|||
|
|
object_id: object_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
if (response.data.success) {
|
|||
|
|
if (object_id in this.objectsMatchList) {
|
|||
|
|
|
|||
|
|
if (this.objectsMatchCount >= 1)
|
|||
|
|
this.objectsMatchCount--;
|
|||
|
|
|
|||
|
|
$(this.$refs.matchObjectsList).find('#item' + object_id).remove();
|
|||
|
|
delete this.objectsMatchList[object_id];
|
|||
|
|
}
|
|||
|
|
// if (object_id in this.objectsSimilarList) {
|
|||
|
|
|
|||
|
|
// if (this.objectsSimilarCount >= 1)
|
|||
|
|
// this.objectsSimilarCount--;
|
|||
|
|
|
|||
|
|
// $(this.$refs.similarObjectsList).find('#item' + object_id).remove();
|
|||
|
|
// delete this.objectsSimilarList[object_id];
|
|||
|
|
// }
|
|||
|
|
if (object_id in this.objectsFavouredList) {
|
|||
|
|
|
|||
|
|
if (this.objectsFavouredCount >= 1)
|
|||
|
|
this.objectsFavouredCount--;
|
|||
|
|
|
|||
|
|
$(this.$refs.favouredObjectsList).find('#item' + object_id).remove();
|
|||
|
|
delete this.objectsFavouredList[object_id];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.$emit('change_autosearch_counters', this.filter_id, {
|
|||
|
|
match: this.objectsMatchCount,
|
|||
|
|
similar: this.objectsSimilarCount,
|
|||
|
|
favoured: this.objectsFavouredCount,
|
|||
|
|
total: (this.objectsMatchCount + this.objectsSimilarCount)
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
getResults(filter_id, section, offset) {
|
|||
|
|
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
if (typeof filter_id !== "undefined")
|
|||
|
|
this.filter_id = filter_id;
|
|||
|
|
|
|||
|
|
if (typeof offset == "undefined")
|
|||
|
|
offset = 0;
|
|||
|
|
|
|||
|
|
this.axios_processed = true;
|
|||
|
|
return axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_results',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: this.filter_id,
|
|||
|
|
order: this.order,
|
|||
|
|
section: section,
|
|||
|
|
offset: offset
|
|||
|
|
}).then((response) => {
|
|||
|
|
console.debug(response.data);
|
|||
|
|
getClientsForObjects();
|
|||
|
|
if (response.data.success) {
|
|||
|
|
|
|||
|
|
let total = parseInt(response.data.total) || 0;
|
|||
|
|
let count = parseInt(response.data.count) || 0;
|
|||
|
|
|
|||
|
|
/*if (total > 0)
|
|||
|
|
this.isPreloader = 0;*/
|
|||
|
|
|
|||
|
|
this.axios_processed = false;
|
|||
|
|
return {
|
|||
|
|
req_id: response.data.req_id || 0,
|
|||
|
|
filter_id: response.data.filter_id || 0,
|
|||
|
|
objects: response.data.objects || [],
|
|||
|
|
count: count,
|
|||
|
|
total: total,
|
|||
|
|
perpage: parseInt(response.data.perpage) || 10,
|
|||
|
|
error: response.data.error,
|
|||
|
|
meta: {
|
|||
|
|
viewed_id: response.data.viewed_id || [],
|
|||
|
|
//ignored_id: response.data.ignored_id || [],
|
|||
|
|
favoured_id: response.data.favoured_id || []
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
this.axios_processed = false;
|
|||
|
|
return {
|
|||
|
|
objects: [],
|
|||
|
|
count: 0,
|
|||
|
|
total: 0,
|
|||
|
|
error: error
|
|||
|
|
};
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
setData(filter_id) {
|
|||
|
|
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
if (typeof filter_id !== "undefined")
|
|||
|
|
this.filter_id = filter_id;
|
|||
|
|
|
|||
|
|
let ref = this;
|
|||
|
|
let match = this.getResults(filter_id, 'match');
|
|||
|
|
match.then(function(result) {
|
|||
|
|
console.debug(result);
|
|||
|
|
if (typeof result != "undefined") {
|
|||
|
|
ref.req_id = result.req_id;
|
|||
|
|
ref.filter_id = result.filter_id;
|
|||
|
|
ref.objectsMatchList = result.objects;
|
|||
|
|
ref.objectsMatchCount = parseInt(result.count);
|
|||
|
|
ref.objectsMatchTotal = parseInt(result.total);
|
|||
|
|
//ref.errors.push(result.error);
|
|||
|
|
ref.objectsViewedIds = result.meta.viewed_id;
|
|||
|
|
ref.pagination.match.pages = Math.round(ref.objectsMatchTotal / parseInt(result.perpage));
|
|||
|
|
ref.pagination.match.offset = 0;
|
|||
|
|
ref.pagination.match.current = 1;
|
|||
|
|
|
|||
|
|
if (ref.objectsMatchTotal > 0) {
|
|||
|
|
let tabs = $('#modalAutoSearchResults .jw-tabs');
|
|||
|
|
tabs.find('li').removeClass('active');
|
|||
|
|
tabs.find('#objectsMatchTab').addClass('active');
|
|||
|
|
tabs.find('.tabs__content').hide();
|
|||
|
|
tabs.find('#objectsMatch').show();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
setTimeout(function() {
|
|||
|
|
if (!ref.search_processed && parseInt(result.total) == 0 && ref.objectsSimilarTotal == 0) {
|
|||
|
|
ref.search_processed = true;
|
|||
|
|
ref.restartSearch(filter_id, 'match');
|
|||
|
|
} else {
|
|||
|
|
if (ref.objectsMatchTotal > 0)
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
|
|||
|
|
$(ref.$refs.matchObjectsList).find('.fotorama').fotorama();
|
|||
|
|
}
|
|||
|
|
}, 1000);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
let similar = this.getResults(filter_id, 'similar');
|
|||
|
|
similar.then(function(result) {
|
|||
|
|
console.debug(result);
|
|||
|
|
if (typeof result != "undefined") {
|
|||
|
|
ref.objectsSimilarList = result.objects;
|
|||
|
|
ref.objectsSimilarCount = parseInt(result.count);
|
|||
|
|
ref.objectsSimilarTotal = parseInt(result.total);
|
|||
|
|
//ref.errors.push(result.error);
|
|||
|
|
ref.pagination.similar.pages = Math.round(ref.objectsSimilarTotal / parseInt(result.perpage));
|
|||
|
|
ref.pagination.similar.offset = 0;
|
|||
|
|
ref.pagination.similar.current = 1;
|
|||
|
|
|
|||
|
|
if (ref.objectsMatchTotal == 0 && ref.objectsSimilarTotal > 0) {
|
|||
|
|
let tabs = $('#modalAutoSearchResults .jw-tabs');
|
|||
|
|
tabs.find('li').removeClass('active');
|
|||
|
|
tabs.find('#objectsSimilarTab').addClass('active');
|
|||
|
|
tabs.find('.tabs__content').hide();
|
|||
|
|
tabs.find('#objectsSimilar').show();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
setTimeout(function() {
|
|||
|
|
/*if (!ref.search_processed && ref.objectsSimilarCount == 0 && parseInt(result.total) == 0) {
|
|||
|
|
ref.search_processed = true;
|
|||
|
|
ref.restartSearch(filter_id, 'similar');
|
|||
|
|
} else {*/
|
|||
|
|
|
|||
|
|
if (ref.objectsSimilarTotal > 0)
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
|
|||
|
|
$(ref.$refs.similarObjectsList).find('.fotorama').fotorama();
|
|||
|
|
//}
|
|||
|
|
}, 1000);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
let favoured = this.getResults(filter_id, 'favoured');
|
|||
|
|
favoured.then(function(result) {
|
|||
|
|
console.debug(result);
|
|||
|
|
if (typeof result != "undefined") {
|
|||
|
|
ref.objectsFavouredList = result.objects;
|
|||
|
|
ref.objectsFavouredCount = parseInt(result.total);
|
|||
|
|
//ref.errors.push(result.error);
|
|||
|
|
ref.objectsFavouredIds = result.meta.favoured_id;
|
|||
|
|
ref.objectsSendedIds = result.meta.sended_id;
|
|||
|
|
ref.pagination.favoured.pages = Math.ceil(ref.objectsFavouredCount / parseInt(result.perpage));
|
|||
|
|
ref.pagination.favoured.offset = 0;
|
|||
|
|
ref.pagination.favoured.current = 1;
|
|||
|
|
|
|||
|
|
console.debug(ref);
|
|||
|
|
|
|||
|
|
if (ref.objectsMatchTotal != 0 || parseInt(result.total) != 0) {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
|
|||
|
|
if (ref.objectsFavouredCount > 0)
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
|
|||
|
|
$(ref.$refs.favouredObjectsList).find('.fotorama').fotorama();
|
|||
|
|
}, 1000);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
setTimeout(function() {
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
}, 2000);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
},
|
|||
|
|
openAutoSearchResults(filter_id, req_id) {
|
|||
|
|
|
|||
|
|
if (typeof filter_id !== "undefined")
|
|||
|
|
this.filter_id = filter_id;
|
|||
|
|
|
|||
|
|
if (typeof req_id !== "undefined")
|
|||
|
|
this.req_id = req_id;
|
|||
|
|
|
|||
|
|
if (this.filter_id) {
|
|||
|
|
this.clearData();
|
|||
|
|
$(this.$refs.objectsMatchContent).empty();
|
|||
|
|
$(this.$refs.objectsSimilarContent).empty();
|
|||
|
|
$(this.$refs.objectsFavouredContent).empty();
|
|||
|
|
|
|||
|
|
console.debug(this.filter_id, this.req_id);
|
|||
|
|
|
|||
|
|
if (this.setData(this.filter_id)) {
|
|||
|
|
|
|||
|
|
this.getFilterInfo(this.filter_id);
|
|||
|
|
$('#modalAutoSearchResults_bg').fadeIn(500);
|
|||
|
|
$('#modalAutoSearchResults').toggle(300);
|
|||
|
|
$("body").addClass("lock");
|
|||
|
|
|
|||
|
|
let tabs = $('#modalAutoSearchResults .jw-tabs');
|
|||
|
|
tabs.find('li').removeClass('active');
|
|||
|
|
tabs.find('#objectsMatchTab').addClass('active');
|
|||
|
|
tabs.find('.tabs__content').hide();
|
|||
|
|
tabs.find('#objectsMatch').show();
|
|||
|
|
|
|||
|
|
let ref = this;
|
|||
|
|
autosearch_filtr.$once('add_edit_autosearch_filter', function(filter_id) {
|
|||
|
|
ref.getFilterInfo(filter_id);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$(this.$refs.clearResultsBtn).unbind('click');
|
|||
|
|
this.bindViewedEvents(this.$refs.matchObjectsList, filter_id);
|
|||
|
|
this.bindViewedEvents(this.$refs.similarObjectsList, filter_id);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
closeAutoSearchResults() {
|
|||
|
|
$('#modalAutoSearchResults_bg').fadeOut(300);
|
|||
|
|
$('#modalAutoSearchResults').toggle(100);
|
|||
|
|
$("body").removeClass("lock");
|
|||
|
|
},
|
|||
|
|
goToPage(section, page) {
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
let ref = this;
|
|||
|
|
let offset = (page * 10);
|
|||
|
|
let results = this.getResults(ref.filter_id, section, (offset - 10));
|
|||
|
|
results.then(function(result) {
|
|||
|
|
console.debug(result);
|
|||
|
|
if (typeof result != "undefined") {
|
|||
|
|
if (section == 'match') {
|
|||
|
|
ref.objectsMatchList = result.objects;
|
|||
|
|
ref.objectsMatchCount = parseInt(result.count);
|
|||
|
|
ref.objectsMatchTotal = parseInt(result.total);
|
|||
|
|
ref.pagination.match.pages = Math.ceil(ref.objectsMatchTotal / parseInt(result.perpage));
|
|||
|
|
ref.pagination.match.offset = offset;
|
|||
|
|
ref.pagination.match.current = Math.round(offset / parseInt(result.perpage));
|
|||
|
|
console.debug(ref.pagination.match);
|
|||
|
|
$(ref.$refs.matchObjectsList).animate({
|
|||
|
|
scrollTop: 0
|
|||
|
|
}, 300);
|
|||
|
|
setTimeout(function() {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
$(ref.$refs.matchObjectsList).find('.fotorama').fotorama();
|
|||
|
|
}, 1000);
|
|||
|
|
|
|||
|
|
} else if (section == 'similar') {
|
|||
|
|
// ref.objectsSimilarList = result.objects;
|
|||
|
|
ref.objectsSimilarCount = parseInt(result.count);
|
|||
|
|
ref.objectsSimilarTotal = parseInt(result.total);
|
|||
|
|
ref.pagination.similar.pages = Math.ceil(ref.objectsSimilarTotal / parseInt(result.perpage));
|
|||
|
|
ref.pagination.similar.offset = offset;
|
|||
|
|
ref.pagination.similar.current = Math.round(offset / parseInt(result.perpage));
|
|||
|
|
console.debug(ref.pagination.similar);
|
|||
|
|
$(ref.$refs.similarObjectsList).animate({
|
|||
|
|
scrollTop: 0
|
|||
|
|
}, 300);
|
|||
|
|
setTimeout(function() {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
$(ref.$refs.similarObjectsList).find('.fotorama').fotorama();
|
|||
|
|
}, 1000);
|
|||
|
|
} else if (section == 'favoured') {
|
|||
|
|
ref.objectsFavouredList = result.objects;
|
|||
|
|
ref.objectsFavouredCount = parseInt(result.total);
|
|||
|
|
ref.pagination.favoured.pages = Math.ceil(ref.objectsFavouredCount / parseInt(result.perpage));
|
|||
|
|
ref.pagination.favoured.offset = offset;
|
|||
|
|
ref.pagination.favoured.current = Math.round(offset / parseInt(result.perpage));
|
|||
|
|
console.debug(ref.pagination.favoured);
|
|||
|
|
$(ref.$refs.favouredObjectsList).animate({
|
|||
|
|
scrollTop: 0
|
|||
|
|
}, 300);
|
|||
|
|
setTimeout(function() {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
$(ref.$refs.favouredObjectsList).find('.fotorama').fotorama();
|
|||
|
|
}, 1000);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getPagination(section, page, all_pages) {
|
|||
|
|
|
|||
|
|
console.debug({ section, page, all_pages });
|
|||
|
|
|
|||
|
|
let pagination = '';
|
|||
|
|
let prev, next, page_from, page_to = 0;
|
|||
|
|
|
|||
|
|
if (page == 1) {
|
|||
|
|
pagination += '<li class="active"><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', 1)">1</a></li>';
|
|||
|
|
} else {
|
|||
|
|
prev = page - 1;
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', ' + prev + ')">«</a></li>';
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', 1)">1</a></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (all_pages > 8) {
|
|||
|
|
if (page > 4) {
|
|||
|
|
page_from = page - 3;
|
|||
|
|
pagination += '<li><span>...</span></li>';
|
|||
|
|
} else {
|
|||
|
|
page_from = 2;
|
|||
|
|
}
|
|||
|
|
if (page < all_pages - 4) {
|
|||
|
|
page_to = page + 3;
|
|||
|
|
} else {
|
|||
|
|
page_to = all_pages;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
page_from = 2;
|
|||
|
|
page_to = all_pages;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (let i = page_from; i < page_to; i++) {
|
|||
|
|
let class_name = '';
|
|||
|
|
if (i == page)
|
|||
|
|
class_name = "active";
|
|||
|
|
|
|||
|
|
pagination += '<li class="' + class_name + '"><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', ' + i + ')">' + i + '</a></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (all_pages > 5 && page < all_pages - 4) {
|
|||
|
|
pagination += '<li><span>...</span></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (page == all_pages) {
|
|||
|
|
pagination += '<li class="active" ><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', ' + all_pages + ')">' + all_pages + '</a></li>';
|
|||
|
|
} else {
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', ' + all_pages + ')">' + all_pages + '</a></li>';
|
|||
|
|
next = page + 1;
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageResults(\'' + section + '\', ' + next + ')">»</a></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return '<ul class="pagination" style="display: inline-block;">' + pagination + '</ul><div class="clear"></div>';
|
|||
|
|
},
|
|||
|
|
updateResults() {
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
let section = 'match';
|
|||
|
|
if ($('#modalAutoSearchResults #objectsMatch').is(':visible'))
|
|||
|
|
section = 'match';
|
|||
|
|
else if ($('#modalAutoSearchResults #objectsSimilar').is(':visible'))
|
|||
|
|
section = 'similar';
|
|||
|
|
else if ($('#modalAutoSearchResults #objectsFavour').is(':visible'))
|
|||
|
|
section = 'favoured';
|
|||
|
|
|
|||
|
|
this.goToPage(section, 1);
|
|||
|
|
},
|
|||
|
|
clearData() {
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
this.objectsMatchList = [];
|
|||
|
|
this.objectsMatchCount = 0;
|
|||
|
|
this.objectsMatchTotal = 0;
|
|||
|
|
// this.objectsSimilarList = [];
|
|||
|
|
this.objectsSimilarCount = 0;
|
|||
|
|
this.objectsSimilarTotal = 0;
|
|||
|
|
this.objectsFavouredList = [];
|
|||
|
|
this.objectsFavouredCount = 0;
|
|||
|
|
this.errors = '';
|
|||
|
|
this.objectsFavouredIds = [];
|
|||
|
|
this.objectsSendedIds = [];
|
|||
|
|
this.axios_processed = false;
|
|||
|
|
this.order = {
|
|||
|
|
company: 0,
|
|||
|
|
price: 0,
|
|||
|
|
not_viewed: 0,
|
|||
|
|
not_sended: 0,
|
|||
|
|
with_commission: 0,
|
|||
|
|
with_photo: 0,
|
|||
|
|
},
|
|||
|
|
this.pagination = {
|
|||
|
|
match: {
|
|||
|
|
pages: 0,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
similar: {
|
|||
|
|
pages: 0,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
favoured: {
|
|||
|
|
pages: 0,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
clearAllResults(filter_id, event) {
|
|||
|
|
if (confirm('Вы действительно хотите удалить все результаты поиска? \r\nЭто также приведёт к очистке списка избранных объектов.')) {
|
|||
|
|
if (typeof filter_id !== "undefined") {
|
|||
|
|
this.filter_id = parseInt(filter_id);
|
|||
|
|
|
|||
|
|
filter_id = parseInt(filter_id);
|
|||
|
|
|
|||
|
|
console.log({ filter_id });
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'clear_results',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: filter_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
if (response.data.success) {
|
|||
|
|
this.clearData();
|
|||
|
|
$(this.$refs.matchObjectsList).find('.item').remove();
|
|||
|
|
$(this.$refs.similarObjectsList).find('.item').remove();
|
|||
|
|
$(this.$refs.favouredObjectsList).find('.item').remove();
|
|||
|
|
|
|||
|
|
this.$emit('change_autosearch_counters', this.filter_id, {
|
|||
|
|
match: this.objectsMatchCount,
|
|||
|
|
similar: this.objectsSimilarCount,
|
|||
|
|
favoured: this.objectsFavouredCount,
|
|||
|
|
total: (this.objectsMatchCount + this.objectsSimilarCount)
|
|||
|
|
});
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
//this.closeAutoSearchResults();
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
restartSearch(filter_id, section, event) {
|
|||
|
|
let ref = this;
|
|||
|
|
if (typeof filter_id !== "undefined") {
|
|||
|
|
this.filter_id = parseInt(filter_id);
|
|||
|
|
|
|||
|
|
console.log({ filter_id, section });
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
this.search_processed = true;
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'restart_search',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: ref.filter_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
ref.search_processed = false;
|
|||
|
|
ref.clearData();
|
|||
|
|
ref.setData();
|
|||
|
|
setTimeout(function() {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
console.log(ref.objectsMatchList);
|
|||
|
|
console.log(ref.objectsMatchCount);
|
|||
|
|
}, 2000);
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
ref.isPreloader = 0;
|
|||
|
|
ref.search_processed = false;
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
//Открыть редактирование параметров автопоиска
|
|||
|
|
openAutoSearchFiltr(req_id, filter_id) {
|
|||
|
|
|
|||
|
|
if (typeof req_id == "undefined")
|
|||
|
|
req_id = this.req_id;
|
|||
|
|
|
|||
|
|
if (typeof filter_id == "undefined")
|
|||
|
|
filter_id = this.filter_id;
|
|||
|
|
|
|||
|
|
autosearch_filtr.openAutoSearchFiltr(req_id, filter_id);
|
|||
|
|
},
|
|||
|
|
getFilterInfo() {
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_filter_info',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
filter_id: this.filter_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.filter_info = response.data.html;
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
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 {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
mounted() {},
|
|||
|
|
computed: {},
|
|||
|
|
created: function() {}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Заявки по автопоиску
|
|||
|
|
if ($('#modalAutoSearchObjectReq').length > 0) {
|
|||
|
|
var autosearch_req = new Vue({
|
|||
|
|
el: '#modalAutoSearchObjectReq',
|
|||
|
|
components: {},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
req: [],
|
|||
|
|
axios_processed: false,
|
|||
|
|
isPreloader: 0,
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
count: 0,
|
|||
|
|
pagination: {
|
|||
|
|
requisitions: {
|
|||
|
|
pages: 1,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
getData(object_id, offset) {
|
|||
|
|
|
|||
|
|
if (typeof object_id !== "undefined")
|
|||
|
|
this.object_id = object_id;
|
|||
|
|
|
|||
|
|
if (typeof offset == "undefined")
|
|||
|
|
offset = 0;
|
|||
|
|
|
|||
|
|
this.isPreloader = 1;
|
|||
|
|
return axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_requisitions',
|
|||
|
|
user_id: $("#session_user_id").val(),
|
|||
|
|
object_id: this.object_id,
|
|||
|
|
offset: offset
|
|||
|
|
}).then((response) => {
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
return {
|
|||
|
|
req: response.data.requisitions || [],
|
|||
|
|
count: parseInt(response.data.count) || 0,
|
|||
|
|
offset: parseInt(response.data.offset) || 0,
|
|||
|
|
perpage: parseInt(response.data.perpage) || 10,
|
|||
|
|
error: response.data.error
|
|||
|
|
};
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
if (error)
|
|||
|
|
console.debug(error);
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// Проверяем просмотрены ли заявки конкретного объекта
|
|||
|
|
isChecked(object_id, user_id, req_id) {
|
|||
|
|
const item = this.req['req' + req_id];
|
|||
|
|
if (!item || !item.watched_data) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
const watchedData = item.watched_data;
|
|||
|
|
if (
|
|||
|
|
watchedData &&
|
|||
|
|
watchedData.user_id == user_id &&
|
|||
|
|
watchedData.req_id == req_id &&
|
|||
|
|
watchedData.object_id == object_id
|
|||
|
|
) {
|
|||
|
|
return watchedData.watched == '1';
|
|||
|
|
} else {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
openAutoSearchObjectReq(object_id) {
|
|||
|
|
|
|||
|
|
let ref = this;
|
|||
|
|
ref.req = [];
|
|||
|
|
|
|||
|
|
$('#modalAutoSearchObjectReq_bg').fadeIn(500);
|
|||
|
|
$('#modalAutoSearchObjectReq').toggle(300);
|
|||
|
|
$("body").addClass("lock");
|
|||
|
|
|
|||
|
|
let requisitions = this.getData(object_id);
|
|||
|
|
console.info(requisitions);
|
|||
|
|
requisitions.then(function(result) {
|
|||
|
|
console.debug(result);
|
|||
|
|
if (typeof result != "undefined") {
|
|||
|
|
|
|||
|
|
ref.req = result.req;
|
|||
|
|
ref.count = result.count;
|
|||
|
|
//ref.pagination.requisitions.pages = Math.ceil((result.count - parseInt(result.perpage)) / parseInt(result.perpage));
|
|||
|
|
ref.pagination.requisitions.pages = Math.ceil((result.count / parseInt(result.perpage)));
|
|||
|
|
ref.pagination.requisitions.offset = result.offset;
|
|||
|
|
ref.pagination.requisitions.perpage = result.perpage;
|
|||
|
|
ref.pagination.requisitions.current = 1;
|
|||
|
|
ref.error = result.error;
|
|||
|
|
|
|||
|
|
console.info(ref.req);
|
|||
|
|
console.info(ref.pagination.requisitions);
|
|||
|
|
|
|||
|
|
$(ref.$refs.requisitionsList).animate({
|
|||
|
|
scrollTop: 0
|
|||
|
|
}, 300);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
closeAutoSearchObjectReq() {
|
|||
|
|
$('#modalAutoSearchObjectReq_bg').fadeOut(300);
|
|||
|
|
$('#modalAutoSearchObjectReq').toggle(100);
|
|||
|
|
$("body").removeClass("lock");
|
|||
|
|
},
|
|||
|
|
goToPage(page) {
|
|||
|
|
let ref = this;
|
|||
|
|
let offset = (page * 10);
|
|||
|
|
let requisitions = this.getData(ref.object_id, (offset - 10));
|
|||
|
|
requisitions.then(function(results) {
|
|||
|
|
console.debug(results);
|
|||
|
|
if (typeof results != "undefined") {
|
|||
|
|
ref.req = results.req;
|
|||
|
|
ref.count = results.count;
|
|||
|
|
ref.pagination.requisitions.offset = offset;
|
|||
|
|
ref.pagination.requisitions.perpage = results.perpage;
|
|||
|
|
ref.pagination.requisitions.current = Math.ceil(offset / parseInt(results.perpage));
|
|||
|
|
ref.error = results.error;
|
|||
|
|
console.debug(ref.pagination.requisitions);
|
|||
|
|
|
|||
|
|
$(ref.$refs.requisitionsList).animate({
|
|||
|
|
scrollTop: 0
|
|||
|
|
}, 300);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getPagination(page, all_pages) {
|
|||
|
|
|
|||
|
|
let pagination = '';
|
|||
|
|
let prev, next, page_from, page_to = 0;
|
|||
|
|
|
|||
|
|
if (page == 1) {
|
|||
|
|
pagination += '<li class="active"><a href="javascript:{};" onclick="goToPageReq(1)">1</a></li>';
|
|||
|
|
} else {
|
|||
|
|
prev = page - 1;
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageReq(' + prev + ')">«</a></li>';
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageReq(1)">1</a></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (all_pages > 8) {
|
|||
|
|
if (page > 4) {
|
|||
|
|
page_from = page - 3;
|
|||
|
|
pagination += '<li><span>...</span></li>';
|
|||
|
|
} else {
|
|||
|
|
page_from = 2;
|
|||
|
|
}
|
|||
|
|
if (page < all_pages - 4) {
|
|||
|
|
page_to = page + 3;
|
|||
|
|
} else {
|
|||
|
|
page_to = all_pages;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
page_from = 2;
|
|||
|
|
page_to = all_pages;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (let i = page_from; i < page_to; i++) {
|
|||
|
|
let class_name = '';
|
|||
|
|
if (i == page)
|
|||
|
|
class_name = "active";
|
|||
|
|
|
|||
|
|
pagination += '<li class="' + class_name + '"><a href="javascript:{};" onclick="goToPageReq(' + i + ')">' + i + '</a></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (all_pages > 5 && page < all_pages - 4) {
|
|||
|
|
pagination += '<li><span>...</span></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (page == all_pages) {
|
|||
|
|
pagination += '<li class="active" ><a href="javascript:{};" onclick="goToPageReq(' + all_pages + ')">' + all_pages + '</a></li>';
|
|||
|
|
} else {
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageReq(' + all_pages + ')">' + all_pages + '</a></li>';
|
|||
|
|
next = page + 1;
|
|||
|
|
pagination += '<li><a href="javascript:{};" onclick="goToPageReq(' + next + ')">»</a></li>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return '<ul class="pagination" style="display: inline-block;">' + pagination + '</ul><div class="clear"></div>';
|
|||
|
|
},
|
|||
|
|
clearData() {
|
|||
|
|
this.req = [];
|
|||
|
|
this.axios_processed = false;
|
|||
|
|
this.isPreloader = 0;
|
|||
|
|
this.count = 0;
|
|||
|
|
this.pagination = {
|
|||
|
|
requisitions: {
|
|||
|
|
pages: 1,
|
|||
|
|
offset: 0,
|
|||
|
|
current: 1
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//Для редактирования
|
|||
|
|
getReq(id) {
|
|||
|
|
$('#send_bg_new .closer').click();
|
|||
|
|
req_form.openReqForm();
|
|||
|
|
|
|||
|
|
if (this.req[id] === undefined) {
|
|||
|
|
console.log(this.req[id]);
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php', {
|
|||
|
|
request: 'get_req_id',
|
|||
|
|
req_id: id
|
|||
|
|
}, ).then((response) => {
|
|||
|
|
console.log(response.data);
|
|||
|
|
requisitions_client.$set(requisitions_client, 'req', response.data);
|
|||
|
|
|
|||
|
|
console.log(requisitions_client.req[id].object_id);
|
|||
|
|
if (requisitions_client.req[id].object_id > 0 && requisitions_client.isEmpty(requisitions_client.req[id].object)) {
|
|||
|
|
|
|||
|
|
requisitions_client.getObject(requisitions_client.req[id].object_id, id, 1);
|
|||
|
|
} else {
|
|||
|
|
req_form.setReq(requisitions_client.req[id]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (this.req[id].client_id > 0 && this.isEmpty(this.req[id].client)) {
|
|||
|
|
this.getClient(this.req[id].client_id, id, 1);
|
|||
|
|
} else {
|
|||
|
|
req_form.setReq(requisitions_client.req[id]);
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
if (this.req[id].object_id > 0 && this.isEmpty(this.req[id].object)) {
|
|||
|
|
this.getObject(this.req[id].object_id, id, 1);
|
|||
|
|
} else {
|
|||
|
|
req_form.setReq(requisitions_client.req[id]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (this.req[id].client_id > 0 && this.isEmpty(this.req[id].client)) {
|
|||
|
|
this.getClient(this.req[id].client_id, id, 1);
|
|||
|
|
} else {
|
|||
|
|
req_form.setReq(requisitions_client.req[id]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//Получение объекта
|
|||
|
|
getObject(object_id, reqId, forma) {
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php', {
|
|||
|
|
request: 'get_object',
|
|||
|
|
object_id: object_id
|
|||
|
|
}, ).then((response) => {
|
|||
|
|
console.log(response.data);
|
|||
|
|
this.req[reqId].object = response.data;
|
|||
|
|
if (forma) {
|
|||
|
|
req_form.setReq(requisitions_client.req[reqId]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//Получение клиента
|
|||
|
|
getClient(client_id, reqId, forma) {
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php', {
|
|||
|
|
request: 'get_client',
|
|||
|
|
client_id: client_id
|
|||
|
|
}, ).then((response) => {
|
|||
|
|
console.log(response.data);
|
|||
|
|
this.req[reqId].client = response.data;
|
|||
|
|
if (forma) {
|
|||
|
|
req_form.setReq(requisitions_client.req[reqId]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
console.debug(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
toggleWatched(index, reqId, objId, isWatched) {
|
|||
|
|
const userId = this.user_id;
|
|||
|
|
|
|||
|
|
$.post('/ajax/addEditClient.php',
|
|||
|
|
{
|
|||
|
|
is_watched: isWatched ? 1 : 0, // Преобразуем true/false в 1/0
|
|||
|
|
watched_req_id: reqId,
|
|||
|
|
watched_obj_id: objId,
|
|||
|
|
watched_user_id: userId
|
|||
|
|
},
|
|||
|
|
(data) => {
|
|||
|
|
console.log('Ответ сервера:', data);
|
|||
|
|
|
|||
|
|
if (data.status === 'success') {
|
|||
|
|
this.$set(this.req, index, { ...this.req[index], is_watched: isWatched ? 1 : 0 });
|
|||
|
|
} else {
|
|||
|
|
console.error('Ошибка:', data.message);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
'json'
|
|||
|
|
);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//открыть/закрыть подробности
|
|||
|
|
toggleClient(id) {
|
|||
|
|
|
|||
|
|
if (this.req[id].isMainInfo) {
|
|||
|
|
this.req[id].isMainInfo = false;
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
if (this.req[id].object_id > 0 && this.isEmpty(this.req[id].object)) {
|
|||
|
|
this.getObject(this.req[id].object_id, id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (this.req[id].client_id > 0 && this.isEmpty(this.req[id].client)) {
|
|||
|
|
this.getClient(this.req[id].client_id, id);
|
|||
|
|
}
|
|||
|
|
this.req[id].isMainInfo = true;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//показать объект
|
|||
|
|
showObject(id) {
|
|||
|
|
$('#liObject').click();
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//показать клиента
|
|||
|
|
showClient() {
|
|||
|
|
$('#liGlobal').click();
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//Проверка на пустоту
|
|||
|
|
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 {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
mounted() {},
|
|||
|
|
computed: {},
|
|||
|
|
created: function() {}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function openAutoSearchFiltr(req_id, filter_id) {
|
|||
|
|
autosearch_filtr.openAutoSearchFiltr(req_id, filter_id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function closeAutoSearchFiltr() {
|
|||
|
|
autosearch_filtr.closeAutoSearchFiltr();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function closeAutoSearchMap() {
|
|||
|
|
autosearch_filtr.closeAutoSearchMap();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function openAutoSearchResults(filter_id, req_id) {
|
|||
|
|
autosearch_objs.openAutoSearchResults(filter_id, req_id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function closeAutoSearchResults() {
|
|||
|
|
autosearch_objs.closeAutoSearchResults();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function goToPageResults(section, page) {
|
|||
|
|
autosearch_objs.goToPage(section, page);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function openAutoSearchObjectReq(object_id) {
|
|||
|
|
autosearch_req.openAutoSearchObjectReq(object_id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function closeAutoSearchObjectReq() {
|
|||
|
|
autosearch_req.closeAutoSearchObjectReq();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function goToPageReq(page) {
|
|||
|
|
autosearch_req.goToPage(page);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getReSearchObjectsCounts() {
|
|||
|
|
if ($('.jw__objects .jw__object.item .fltr-req-list').length > 0) {
|
|||
|
|
$('.jw__objects .jw__object.item .fltr-req-list').each(function(index) {
|
|||
|
|
let object_id = $(this).data("id");
|
|||
|
|
if (typeof object_id !== "undefined") {
|
|||
|
|
axios.post('/ajax/ajax_vue_autosearch.php', {
|
|||
|
|
request: 'get_reverse_counter',
|
|||
|
|
object_id: object_id
|
|||
|
|
}).then((response) => {
|
|||
|
|
let time = response.data.time;
|
|||
|
|
let total = response.data.total;
|
|||
|
|
let has_items = response.data.has_items;
|
|||
|
|
if (time && total) {
|
|||
|
|
$(this).attr("data-time", time);
|
|||
|
|
$(this).attr("data-total", total);
|
|||
|
|
$(this).append('<span class="counter">' + total + '</span>');
|
|||
|
|
} else if (has_items === true) {
|
|||
|
|
$(this).append('<span class="counter">' + 0 + '</span>');
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}).catch(function(error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function confirmSaveAutosearch() {
|
|||
|
|
$("#save_autosearch_fields_bg").hide(10);
|
|||
|
|
$("#save_autosearch_fields").hide(10);
|
|||
|
|
autosearch_filtr.addEditFiltr();
|
|||
|
|
}
|
|||
|
|
function saveAutoSearchMap() {
|
|||
|
|
autosearch_filtr.saveAutoSearchMap();
|
|||
|
|
}
|