Материал: Автоматизация учета аренды площадей клиентами компании ООО "Грандтитул"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
122
return'ID - '+repo.id+' | '+repo.l_name+' '+repo.f_name;
},
width:'100%'
});
}
};
if($("#buildings").length>0){
constbuildings=newVue({
el:'#buildings',
data:{
paginateData:{
current_page:1,
data:[],
first_page_url:"",
from:null,
last_page:1,
last_page_url:"",
next_page_url:null,
path:"",
per_page:15,
prev_page_url:null,
to:null,
total:0
},
addressField:"",
createdAtField:"",
clientField:"",
typeField:"",
operationField:"",
countRoomsField:[],
sqMinField:"",
sqMaxField:"",
priceMinField:"",
priceMaxField:"",
searchCaption:"Укажитепараметрыпоискадлязароса!",
searchCaptionClases:"alert alert-info",
finalCaption:"",
creating:false,
operations:backToFront.operations,
types:backToFront.types,
},
computed:{
buildings:function(){
returnthis.paginateData.data;
},
},
watch:{
addressField:function(){
this.startSearch();
},
clientField:function(){
this.startSearch();
},
createdAtField:function(){
this.startSearch();
},
typeField:function(){
this.startSearch();
},
countRoomsField:function(){
this.startSearch();
},
operationField:function(){
this.startSearch();
},
sqMinField:function(){
this.startSearch();
},
sqMaxField:function(){
123
this.startSearch();
},
priceMinField:function(){
this.startSearch();
},
priceMaxField:function(){
this.startSearch();
}
},
methods:{
startSearch:function(){
this.searchCaptionClases="alert alert-info";
this.searchCaption='Ожидаюокончанияввода';
this.getSearchResult();
},
createModel:function(){
this.creating=!this.creating;
},
cancelCreate:function(){
this.creating=false;
},
storeModel:function(model){
this.paginateData.data.unshift(model);
this.startAlert('Недвижимостьдобавлена');
this.creating=false;
},
updateModel:function(model){
letfinalIndex=false;
this.paginateData.data.forEach(function(item,index){
if(item.id===model.id){
finalIndex=index;
console.log(index);
}
});
if(finalIndex)
this.paginateData.data.splice(finalIndex,1,model);
this.finalCaption="Редактирование недвижимости успешно!";
},
deleteModel:function(model){
this.paginateData.data=this.paginateData.data.filter(item=>{
return(item.id!==model.id);
});
this.finalCaption="Недвижимостьудалена!";
},
getSearchResult:_.debounce(
function(){
if(!this.clientField&&
!this.createdAtField&&
!this.typeField&&
!this.operationField&&
!this.countRoomsField&&
!this.addressField&&
!this.priceMinField&&
!this.priceMaxField&&
!this.sqMaxField&&
!this.sqMinField
){
this.paginateData.data=[];
this.searchCaptionClases='alert alert-info';
this.searchCaption="Укажите параметры поиска, чтобы начать просмотр!";
return
}
this.searchCaption="Ожидайтеответ...";
124
this.uploadData();
},700
),
uploadData:function(url=""){
letvm=this;
letbaseUrl='/buildings/searcher?'
+'&address_field='+vm.addressField
+'&client_field='+vm.clientField
+'&created_at_field='+vm.createdAtField
+'&type_field='+vm.typeField
+'&operation_field='+((vm.operationField)?vm.operationField:"")
+'&count_rooms_field='+vm.countRoomsField
+'&price_min_field='+vm.priceMinField
+'&price_max_field='+vm.priceMaxField
+'&sq_min_field='+vm.sqMinField
+'&sq_max_field='+vm.sqMaxField
+url;
axios.get(baseUrl)
.then(function(response){
vm.paginateData=response.data;
if(response.data.data.length>0){
vm.reFind=true;
vm.searchCaptionClases='alert alert-success';
if(response.data.last_page===1){
vm.searchCaption="Ответполучен. Всегорезультатов: "+response.data.data.length+". ";
}else{
vm.searchCaption="Ответполучен. Показано c "+response.data.from+" по
"+(response.data.from+response.data.data.length-1)+" из "+response.data.total;
}
}else{
vm.searchCaptionClases='alert alert-warning';
vm.searchCaption='Попробуйте другие варианты поиска.';
}
})
.catch(function(error){
alert('Ошибка! Не могу связаться с API. Попробуйтезаного.'+error);
});
},
getData:function(param,page){
this.searchCaption="Ожидайтеответ...";
leturl="";
switch(param){
case'prev':
url+='&page='+(this.paginateData.current_page-1);
break;
case'next':
url+='&page='+(this.paginateData.current_page+1);
break;
default:
url+='&page='+page;
break;
}
this.uploadData(url);
},
startAlert:function(message){
this.finalCaption=message;
setTimeout(()=>{
this.dismissAlert();
},5000);
},
dismissAlert:function(){
this.finalCaption="";
}
},
mounted(){
125
letvm=this;
$('#createdAtField').datepicker({
position:'bottom left',
autoClose:true,
dateFormat:'yyyy-mm-dd',
range:true,
toggleSelected:false,
onSelect:function(fn,date){
vm.createdAtField=fn;
}
});
},
updated(){
}
});
}
if($("#contracts").length>0){
constcontracts=newVue({
el:'#contracts',
data:{
paginateData:{
current_page:1,
data:[],
first_page_url:"http://camobjects/cObjects/searcher?page=1",
from:null,
last_page:1,
last_page_url:"http://camobjects/cObjects/searcher?page=1",
next_page_url:null,
path:"http://camobjects/cObjects/searcher",
per_page:15,
prev_page_url:null,
to:null,
total:0
},
contractField:"",
createdAtField:"",
buildingField:"",
contractTypeField:"",
operationField:"",
searchCaption:"Укажитепараметрыпоискадлязароса!",
searchCaptionClases:"alert alert-info",
finalCaption:"",
creating:false,
type:backToFront.types,
operations:backToFront.operations
},
computed:{
clientsBr:function(){
returnthis.paginateData.data;
},
},
watch:{
contractField:function(){
this.startSearch();
},
createdAtField:function(){
this.startSearch();
},
buildingField:function(){
this.startSearch();
},
contractTypeField:function(){
this.startSearch();
},
operationField:function(){
this.startSearch();
}
},
methods:{
126
startSearch:function(){
this.searchCaptionClases="alert alert-info";
this.searchCaption='Ожидаюокончанияввода';
this.getSearchResult();
},
createModel:function(){
this.creating=!this.creating;
},
cancelCreate:function(){
this.creating=false;
},
storeModel:function(model){
this.paginateData.data.unshift(model);
this.startAlert('Клиентдобавлен');
this.creating=false;
},
updateModel:function(model){
letfinalIndex=false;
this.paginateData.data.forEach(function(item,index){
if(item.id===model.id){
finalIndex=index;
console.log(index);
}
});
if(finalIndex)
this.paginateData.data.splice(finalIndex,1,model);
this.finalCaption="Редактирование клинта успешно!";
},
deleteModel:function(model){
this.paginateData.data=this.paginateData.data.filter(item=>{
return(item.id!==model.id);
});
this.finalCaption="Клиентудален!";
},
getSearchResult:_.debounce(
function(){
if(!this.contractField&&
!this.createdAtField&&
!this.buildingField&&
!this.contractTypeField&&
!this.operationField
){
this.paginateData.data=[];
this.searchCaptionClases='alert alert-info';
this.searchCaption="Укажите параметры поиска, чтобы начать просмотр!";
return
}
this.searchCaption="Ожидайтеответ...";
this.uploadData();
},700
),
uploadData:function(url=""){
letvm=this;
letbaseUrl='/clients/searcher?'
+'contract_field='+vm.contractField
+'&created_at_field='+vm.createdAtField
+'&building_field='+vm.buildingField
+'&contract_type_field='+vm.contractTypeField
+'&operation_field='+vm.operationField
+url;
axios.get(baseUrl/* + '&searchDostup=' +vm.searchDostup + '&searchWork='
+vm.searchWork
Источник: https://baza.diplomsite.ru/previewfile/2357