151 lines
5.4 KiB
JavaScript
151 lines
5.4 KiB
JavaScript
|
|
|
|||
|
|
Vue.config.devtools = true;
|
|||
|
|
Vue.component('v-select', VueSelect.VueSelect);
|
|||
|
|
var reqobj = {};
|
|||
|
|
|
|||
|
|
/*var getinterval = setInterval(function(){
|
|||
|
|
//console.log($('.additional-info .stagebar').length);
|
|||
|
|
if($('.additional-info .stagebar').length > 0){
|
|||
|
|
|
|||
|
|
|
|||
|
|
get_bar_obj();
|
|||
|
|
getReSearchObjectsCounts();
|
|||
|
|
clearInterval(getinterval);
|
|||
|
|
}
|
|||
|
|
}, 500);*/
|
|||
|
|
|
|||
|
|
//Получение бара
|
|||
|
|
function get_bar_obj(){
|
|||
|
|
$('.stagebar').each(function(index){
|
|||
|
|
if($(this).data("req")){
|
|||
|
|
var req_id = $(this).data("req");
|
|||
|
|
var funnel_id = $(this).data("funnel");
|
|||
|
|
var stage = $(this).data("stage");
|
|||
|
|
reqobj[req_id] = new Vue({
|
|||
|
|
el: '#stagebar__'+req_id,
|
|||
|
|
components: {
|
|||
|
|
Multiselect: window.VueMultiselect.default,
|
|||
|
|
vuejsDatepicker: window.vuejsDatepicker
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
data(){
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
agency_id: $('#session_agency_id').val(),
|
|||
|
|
user_id: $('#session_user_id').val(),
|
|||
|
|
steps:[],
|
|||
|
|
reqId: req_id,
|
|||
|
|
funnelId: funnel_id,
|
|||
|
|
stage: stage,
|
|||
|
|
bars: 1,
|
|||
|
|
funnels: [],
|
|||
|
|
selectFunnel: funnel_id,
|
|||
|
|
OpenIndicator: {
|
|||
|
|
render: createElement => createElement('span', { class: { 'vueToggleSpan': true } }),
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
is_edit_funnel: false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
methods:{
|
|||
|
|
|
|||
|
|
//Получение бара воронки
|
|||
|
|
|
|||
|
|
|
|||
|
|
getBarFunnel(reqId) {
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php',{
|
|||
|
|
request: 'get_bar_funnel',
|
|||
|
|
funnel_id: this.funnelId,
|
|||
|
|
req_id: reqId,
|
|||
|
|
stage: stage,
|
|||
|
|
agency_id: this.agency_id
|
|||
|
|
},
|
|||
|
|
)
|
|||
|
|
.then((response)=> {
|
|||
|
|
|
|||
|
|
|
|||
|
|
this.steps = response.data;
|
|||
|
|
this.bars = this.steps.bar.length;
|
|||
|
|
this.funnels = response.data.funnels;
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
closeEdit(){
|
|||
|
|
this.is_edit_funnel = false;
|
|||
|
|
this.selectFunnel = this.funnelId;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
saveFunnel(){
|
|||
|
|
if(!this.isEmpty(this.selectFunnel)){
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php',{
|
|||
|
|
request: 'funnel_change',
|
|||
|
|
new_funnel_id: this.selectFunnel,
|
|||
|
|
old_funnel_id: this.funnelId,
|
|||
|
|
req_id: this.reqId,
|
|||
|
|
agency_id: this.agency_id,
|
|||
|
|
user_id: this.user_id
|
|||
|
|
},
|
|||
|
|
)
|
|||
|
|
.then((response)=> {
|
|||
|
|
//console.log(response.data);
|
|||
|
|
this.funnelId = this.selectFunnel;
|
|||
|
|
this.getBarFunnel(this.reqId);
|
|||
|
|
this.closeEdit();
|
|||
|
|
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(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() {
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
created: function() {
|
|||
|
|
$('.editFunnelObject').removeClass('hidden');
|
|||
|
|
this.getBarFunnel(this.reqId);
|
|||
|
|
$("#stagebar__"+this.reqId).show();
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|