Дипломная работа: Автоматизация процесса взаимодействия с клиентами (CRM) на примере агенства недвижимости

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
111
{
id: 3,
number_rooms: 1,
address: "ул. Курчатова 3 д 12",
image: "https://www.nastol.com.ua/pic/201303/1920x1080/nastol.com.ua-44866.jpg",
description: "Описание квартиры.",
flex: 4
},
{
id: 4,
number_rooms: 1,
address: "ул. Курчатова 4 д 11",
image: "https://www.nastol.com.ua/pic/201303/1920x1080/nastol.com.ua-44866.jpg",
description: "Описание квартиры.",
flex: 4
},
{
id: 5,
number_rooms: 1,
address: "ул. Курчатова 5 д 12",
image: "https://www.nastol.com.ua/pic/201303/1920x1080/nastol.com.ua-44866.jpg",
description: "Описание квартиры.",
flex: 4
},
{
id: 6,
number_rooms: 1,
address: "ул. Курчатова 8 д 12",
image: "https://www.nastol.com.ua/pic/201303/1920x1080/nastol.com.ua-44866.jpg",
description: "Описание квартиры.",
flex: 4
},
{
id: 7,
number_rooms: 1,
address: "ул. Курчатова 6 д 12",
image: "https://www.nastol.com.ua/pic/201303/1920x1080/nastol.com.ua-44866.jpg",
description: "Описание квартиры.",
flex: 4
}
]*/
}
},
computed: {
search() {
return this.objects.map(obj => obj.address);
112
},
objectsComp() {
return this.select ? this.objects.filter(obj => obj.address.indexOf(this.select) !== -1) : this.objects;
}
},
methods: {
addObject() {
}
},
filters: {
numberRoomString: function (value) {
if (!value) return '';
let room = "";
value = parseInt(value);
switch (value) {
case 1:
room = "Однокомнатная";
break;
case 2:
room = "Двухкомнатная";
break;
case 3:
room = "Трехкомнатная";
break;
case 4:
room = "Четырехкомнатная";
break;
case 5:
room = "Пятикомнаятная";
break;
}
return room;
}
},
beforeMount() {
let self = this;
this.$store.dispatch('apartament')
.then(() => {
self.objects = self.$store.getters.getObjects;
})
.catch(error => {
console.log(error)
})
}
}
113
</script>
<style>
.resp {
background: rgba(27, 27, 27, .8);
}
</style>
Leads.vue
<template>
<v-container fluid>
<todo v-for="(state,index) in states"
:button-add="index === 0"
:add="add1"
:check-list="checkList"
:key="state.id"
:pkey="state.id"
:title="state.step_name"
:list="leadsToState(state.id)"></todo>
</v-layout>
<modal :dialog.sync="dialog">
</modal>
</v-container>
</template>
<script>
import todo from '../components/Todo';
import Modal from '../components/DialogAddLeads'
export default {
name: "Leads",
components: {
todo,
Modal
},
data() {
return {
dialog: false,
};
},
computed: {
leads() {
return this.$store.getters.getLeads;
},
states() {
return this.$store.getters.getStates;
114
}
},
methods: {
add1: function() {
this.dialog = !this.dialog;
},
leadsToState(step) {
return this.leads.filter(i => i.step_id == step);
},
getLeads() {
this.$store.dispatch('getLeads')
.then(() => {
this.list1 = this.$store.getters.getLeads;
})
.catch(error => {console.log(error)})
},
getStates() {
this.$store.dispatch('getStates');
},
checkList(evt) {
console.log(evt);
let payload = {
"leadId": evt.item.getAttribute("data-elem"),
"newStep": evt.to.getAttribute("data-id")
};
this.$store.dispatch('updLead', payload);
},
},
created() {
this.getStates();
this.getLeads();
}
};
</script>
Todo.vue
<template>
<v-flex md3 mx-2>
<v-card color="grey lighten-4 pb-3">
<draggable @add="checkList" :data-id="pkey" group="{name: 'people'}">
v-for="(el, index) in list"
hover
:key="index" :data-elem="el.leadId"
115
:to="{ name: 'lead', params: { id: el.leadId } }">
ФИО: {{ el.surname }} {{ el.first_name }} {{ el.patronymic }}
</v-flex>
Дата создания: {{ el.creation_date }}
</v-flex>
Комментариев: {{ el.countComment }}
</v-flex>
Просмотрено обьектов: {{ el.countObject }}
</v-flex>
</v-card-title>
</v-card>
</draggable>
color="green"
dark
small
absolute
bottom
right
fab
@click="add"
>
</v-btn>
</v-card>
</v-flex>
</template>
<script>
import draggable from "vuedraggable";
export default {
name: "Todo",
components: {
draggable
},
props: {
title: { String },
buttonAdd: {
type: Boolean,
default: false
},
Источник: https://baza.diplomsite.ru/previewfile/2068