2026-05-22 20:21:54 +02:00
< ? php
require_once ( $_SERVER [ 'DOCUMENT_ROOT' ] . " /config.php " );
if ( ! $_SESSION [ 'id' ]) { header ( " location:index.php " ); die ( " Доступ запрещён! " );}
require ( $_SERVER [ 'DOCUMENT_ROOT' ] . " /templates/new-header.php " );
$user = new User ();
$user -> get ( $_SESSION [ 'id' ]);
$agenciesHaveAccessToNewComplexes = [ 4 , 12028 , 12061 , 17328 , 11325 , 13735 , 19093 , 16378 , 19467 , 20197 , 19909 , 19646 ];
$menuPermissions = $user -> checkMenuPermissions ();
?>
< script type = " text/javascript " src = " /js/vue-multiselect.min.js " ></ script >
< script type = " text/javascript " src = " /js/vue-simple-progress.min.js " ></ script >
< link rel = " stylesheet " href = " /css/vue-multiselect.min.css " >
< link rel = " stylesheet " href = " /css/funnel.css?v=<?=filemtime( $_SERVER['DOCUMENT_ROOT'] .'/css/funnel.css')?> " >
< link rel = " stylesheet " href = " /css/all.min.css " >
< style >
. is_changing_status - enter - active {
overflow : hidden ;
animation : allow_changing_status 0.25 s ;
}
. is_changing_status - leave - active {
overflow : hidden ;
animation : allow_changing_status 0.25 s reverse ;
}
@ keyframes allow_changing_status {
from {
height : 0 ;
}
to {
height : 36 px ;
}
}
. modal - submit button : disabled {
opacity : 0.8 ;
cursor : not - allowed ;
}
. new - client__modal . crm__small - stagebar {
height : 8 px ! important ;
}
. new - client__modal . crm__small - stagebar table td {
height : 8 px ! important ;
}
</ style >
< div id = " app " class = " hidden " >
< div class = " content-right " >
< div class = " inner " style = " padding: 0px 0px 0px 110px; " >
< div class = " main-title " >
< input type = " hidden " value = " <?= $user->agencyId ?> " id = " agency_id " />
< input type = " hidden " value = " <?= $_SESSION['users_admin'] ?> " id = " session_user_admin " />
< input type = " hidden " value = " <?= $_SESSION['to_send'] ?> " id = " session_to_send " />
< h1 > Настройка воронок продаж </ h1 >
</ div >
< div class = " crm new " >
< div class = " crm__filters " >
< div class = " crm__filters-inner " >
< div class = " crm__new-client " style = " height: 55px " >
< button class = " jw__g-button add_funnel_new " @ click = " openAddFunnel(); " > Добавить воронку </ button >
</ div >
< div class = " crm__new-client " style = " height: 55px " >
< button class = " jw__g-button add_funnel_new " @ click = " openFunelmodalTemplate(); " > Добавить воронку по шаблону JoyWork </ button >
</ div >
</ div >
</ div >
< div id = " funnel_list " >
< div class = " clients " >
< div class = " client " v - for = '(funnel,index) in funnels' >
< div class = " client-inner " : id = " 'idFunnelBlock'+funnel.id " >
< svg style = " position: absolute; " xmlns = " http://www.w3.org/2000/svg " width = " 100% " height = " 100% " >
< defs >
< marker : id = " 'arrowhead'+funnel.id " viewBox = " 0 0 10 10 " refX = " 3 " refY = " 5 "
markerWidth = " 6 " markerHeight = " 6 " orient = " auto " >
< path d = " M 0 0 L 10 5 L 0 10 z " />
</ marker >
</ defs >
< g : id = " 'svg_path'+funnel.id " fill = " none " stroke = " black " stroke - width = " 1 " : marker - end = " 'url(#arrowhead'+funnel.id+')' " >
< path v - for = " (line, lineId) in svgPath[funnel.id] " : id = " line.id " />
</ g >
</ svg >
< div class = " additional-info " >
< div v - if = " funnel.id>0 " class = " date " > {{ funnel . date }} </ div >
< div class = " type " > {{ funnel . name }} </ div >
< div v - if = " funnel.id == 0 " class = " stagebar " >
< div class = " crm__small-stagebar " >
< table >
< tbody >
< tr >
< td class = " stage stage-new active " title = " Новый клиент " >
< div data - stage = " 1 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Новый </ span >
</ td >
< td class = " stage stage-work active " title = " В работе" >
< div data - stage = " 2 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > В работе </ span >
</ td >
< td class = " stage stage-offer active " title = " Презентация " >
< div data - stage = " 3 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Презентация </ span >
</ td >
< td class = " stage stage-showing active " title = " Показ " >
< div data - stage = " 4 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Показ </ span >
</ td >
< td class = " stage stage-reservation active " title = " Бронь " >
< div data - stage = " 5 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Бронь </ span >
</ td >
< td class = " stage stage-meet active " title = " Подаем на ипотеку " >
< div data - stage = " 6 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Подаем на ипотеку </ span >
</ td >
< td class = " stage stage-deal active " title = " Сделка " >
< div data - stage = " 7 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Сделка </ span >
</ td >
< td class = " stage stage-end active " title = " Клиент закрыт " >
< div data - stage = " 8 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > Закрыт </ span >
</ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
< div v - else - if = " funnel.id > 0 " class = " stagebar " >
< div class = " crm__small-stagebar " >
< table >
< tbody >
< tr >
< td v - for = " (step, stepId) in funnel.steps " class = " stage stage-new active " : title = " step.name " >
< div data - stage = " 1 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > {{ step . name }} </ span >
</ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
< div class = " stagebar-title " ></ div >
< div v - if = " funnel.id > 0 " class = " type " >< span v - for = " (roleuser, index) in JSON.parse(funnel.role) " > {{ roleuser . name }} </ span ></ div >
< div v - if = " funnel.id > 0 " class = " type " >< span v - for = " (client_typeuser, index) in JSON.parse(funnel.client_type) " > {{ client_typeuser . name }} </ span ></ div >
< div class = " actions " >
< a href = " javascript: { }; " class = " no-border " @ click = " updateFunnel(index, funnel.id) " title = " Редактировать " >
< span class = " simple-button settings " >< i class = " jw-action-icon-settings " ></ i ></ span >
</ a >
< a href = " javascript: { }; " v - if = " funnel.id > 0 " @ click = " deleteFunnel(index, funnel.id) " class = " no-border " title = " Удалить " >
< span class = " simple-button delete " >< i class = " jw-action-icon-delete " ></ i ></ span >
</ a >
</ div >
</ div >
< div class = " main-info additional-info " >
< div >
< span style = " margin-right: 15px; " v - if = " funnel.is_client == 1 " > Для клиентов </ span >
< span style = " margin-right: 15px; " v - if = " funnel.is_req == 1 " > Для заявок </ span >
< span style = " margin-right: 15px; " v - html = " 'Номер в очереди: '+funnel.order_number " ></ span >
< template v - show = " funnel.id == 0 " >
< span style = " margin-right: 15px; " v - if = " funnel.is_stage == 1 " > Показывать шкалу </ span >
< span style = " margin-right: 15px; " v - else - if = " funnel.is_stage == 0 " > Н е показывать шкалу </ span >
< span style = " margin-right: 15px; " v - if = " funnel.is_show_funnels == 1 " > Показывать воронки </ span >
< span style = " margin-right: 15px; " v - else - if = " funnel.is_show_funnels == 0 " > Н е показывать воронки </ span >
</ template >
< div class = " clear " ></ div >
</ div >
</ div >
< div v - if = " funnel.id > 0 " class = " main-info " >
< div v - if = " funnel.mainsteps " class = " first_step " >
< div class = " stagebar-title " > Первый этап </ div >
< multiselect v - model = " funnel.mainstep " @ select = " changeFirstStep " tag - placeholder = " Добавьте значение " track - by = " name " label = " name " placeholder = " " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " : options = " funnel.mainsteps " : searchable = " false " : show - labels = " false " >
< template slot = " singleLabel " slot - scope = " { option } " >< strong > {{ option . name }} </ strong ></ template >
</ multiselect >
</ div >
< div class = " clear " ></ div >
< div class = " stagebar-title " > Схема этапов </ div >
< div class = " clear " ></ div >
< div v - for = " (branch, branchId) in funnel.branchs " class = " row_step_block " >
< div class = " step_block " v - for = " (step, stepId) in branch " >
< div : id = " 'step'+stepId " >
< a @ click = " onUpdateStepFunnel(stepId, index, funnel.id) " href = " javascript: { } " v - html = " step.name_number " ></ a >
< a @ click = " deleteStep(stepId) " class = " fatrash " title = " Удалить " href = " javascript: { } " >< i class = " fas fa-trash " ></ i ></ a >
</ div >
</ div >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - if = " funnel.id > 0 " class = " main-info " >
< div class = " col " >
< div class = " jw__action-button " >
< div class = " jw__g-button client-events-new " @ click = " onUpdateStepFunnel(-1, index, funnel.id) " > Новый этап </ div >
</ div >
</ div >
< div class = " clear " ></ div >
</ div >
<!-- < div class = " client-added " >
< div class = " client-added__by " > Добавил Агентство Тестовая учетка Ирина < span > 06.04 . 2019 </ span ></ div >
< div class = " client-added__work " > В работе у менеджер ва < span > c 21.06 . 2019 13 : 59 </ span ></ div >
</ div >-->
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " addFunelmodalTemplate " id = " addFunnelTemplateNew " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " addFunelmodalTemplate = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " id = " addFunnelTemplate " >
< form class = " form-validate " method = " post " >
< div class = " modal-inner " >
< h2 > Выберите воронку </ h2 >
< div class = " jv-tabs " >
< template v - if = " funnelTemplateLoad " >
< div style = " text-align: center; " >
< img src = " ../images/rocket-spinner.svg " width = " 150px " >
</ div >
</ template >
< template v - else >
< div class = " clients " >
< div class = " client " v - for = '(funnel,index) in templateFunnels' >
< div class = " client-inner " >
< svg style = " position: absolute; " xmlns = " http://www.w3.org/2000/svg " width = " 100% " height = " 100% " >
< defs >
< marker : id = " 'arrowhead'+funnel.id " viewBox = " 0 0 10 10 " refX = " 3 " refY = " 5 "
markerWidth = " 6 " markerHeight = " 6 " orient = " auto " >
< path d = " M 0 0 L 10 5 L 0 10 z " />
</ marker >
</ defs >
< g : id = " 'svg_path'+funnel.id " fill = " none " stroke = " black " stroke - width = " 1 " : marker - end = " 'url(#arrowhead'+funnel.id+')' " >
< path v - for = " (line, lineId) in svgPath[funnel.id] " : id = " line.id " />
</ g >
</ svg >
< div class = " additional-info " >
< div class = " type " > {{ funnel . name }} </ div >
< div v - if = " !isEmpty(funnel.steps) " class = " stagebar " >
< div class = " crm__small-stagebar " >
< table >
< tbody >
< tr >
< td v - for = " (step, stepId) in funnel.steps " class = " stage stage-new active " : title = " step.name " >
< div data - stage = " 1 " class = " crm__small-stage " ></ div >
< span class = " next-stage " > {{ step . name }} </ span >
</ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
< div class = " stagebar-title " ></ div >
< div v - if = " funnel.id > 0 " class = " type " >< span v - for = " (roleuser, index) in JSON.parse(funnel.role) " > {{ roleuser . name }} </ span ></ div >
< div v - if = " funnel.id > 0 " class = " type " >< span v - for = " (client_typeuser, index) in JSON.parse(funnel.client_type) " > {{ client_typeuser . name }} </ span ></ div >
< div class = " actions " style = " margin-right: 100px; " >
< div class = " checkbox small " style = " margin-bottom:0px; " >
< input type = " checkbox " : id = " 'funnel-is_change'+ funnel.id " v - model = " funnel.is_change " @ change = " changeFunnel " : checked = " Boolean(funnel.is_change) " true - value = " 1 " >
< label : for = " 'funnel-is_change'+funnel.id " > Выбрать </ label >
</ div >
< div class = " clear " ></ div >
</ div >
</ div >
< div class = " main-info additional-info " >
< div >
< span style = " margin-right: 15px; " v - if = " funnel.is_client == 1 " > Для клиентов </ span >
< span style = " margin-right: 15px; " v - if = " funnel.is_req == 1 " > Для заявок </ span >
< span style = " margin-right: 15px; " v - html = " 'Номер в очереди: '+funnel.order_number " ></ span >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ template >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = 'addFunnelTemplate();' : disabled = " isDisabled " class = " action_call " > Добавить </ button >
</ div >
</ form >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " addFunelmodal " id = " addFunnelNew " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " addFunelmodal = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " id = " addFunnel " >
< form class = " form-validate " method = " post " id = " addEditFunnel " >
< div class = " modal-inner " >
< div v - if = " mes_error " class = " error_msg " > {{ error }} </ div >
< h2 > Новая воронка </ h2 >
< div class = " jv-tabs " >
< div >
< div class = " tabs__content " >
< div class = " form-block " >
< div class = " label " > Наименование </ div >
< div class = " inputs " >
< input v - model . trim = " name " @ input = " mes_error = false " type = " text " class = " text " name = " name " style = " width:400px; " value = " " >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Тип клиента </ div >
< div id = " ms-funnel-type " class = " inputs " >
< multiselect v - model = " ctype " tag - placeholder = " Добавьте значение " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " no - result = " Н е найдено" placeholder = " " label = " name " track - by = " code " : options = " clientstypes " : multiple = " true " : close - on - select = " false " : clear - on - select = " false " : searchable = " false " >
< span slot = " noResult " > Ничего не найдено </ span >
</ multiselect >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Роль клиента </ div >
< div class = " inputs " >
< multiselect v - model = " role " tag - placeholder = " Добавьте значение " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " placeholder = " " label = " name " track - by = " code " : options = " options_role " : multiple = " true " : close - on - select = " false " : clear - on - select = " false " : searchable = " false " >
< span slot = " noResult " > Ничего не найдено </ span >
</ multiselect >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " checkbox small " style = " margin-bottom:0px; " >
< input type = " checkbox " id = " funnel-is_client " v - model = " is_client " : checked = " Boolean(is_client) " true - value = " 1 " >
< label for = " funnel-is_client " > Для клиентов </ label >
< input type = " checkbox " id = " funnel-is_req " v - model = " is_req " : checked = " Boolean(is_req) " true - value = " 1 " >
< label style = " margin-left: 160px; " style = " marning- " for = " funnel-is_req " > Для заявок </ label >
</ div >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = 'addFunnel();' class = " action_call " > Добавить </ button >
</ div >
</ form >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " updateFunnelmodal " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " updateFunnelmodal = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " style = " max-width: 650px " >
< form class = " form-validate " method = " post " >
< div class = " modal-inner " >
< div v - if = " mes_error_update " class = " error_msg " v - html = " errorUpdate " ></ div >
< h2 > {{ nameUpdate }} </ h2 >
< div class = " jv-tabs " >
< div >
< div class = " tabs__content " >
< div class = " form-block " >
< div class = " label " > Наименование </ div >
< div class = " inputs " >
< input v - model . trim = " name_update " @ input = " mes_error_update = false " type = " text " class = " text " style = " width:400px; " >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - if = " funnelId > 0 " class = " form-block " >
< div class = " label " > Тип клиента </ div >
< div id = " ms-funnel-type " class = " inputs " >
< multiselect v - model = " ctype_update " tag - placeholder = " Добавьте значение " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " no - result = " Н е найдено" placeholder = " " label = " name " track - by = " code " : options = " clientstypes " : multiple = " true " : close - on - select = " false " : clear - on - select = " false " : searchable = " false " >
< span slot = " noResult " > Ничего не найдено </ span >
</ multiselect >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - if = " funnelId > 0 " class = " form-block " >
< div class = " label " > Роль клиента </ div >
< div class = " inputs " >
< multiselect v - model = " role_update " tag - placeholder = " Добавьте значение " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " placeholder = " " label = " name " track - by = " code " : options = " options_role " : multiple = " true " : close - on - select = " false " : clear - on - select = " false " : searchable = " false " >
< span slot = " noResult " > Ничего не найдено </ span >
</ multiselect >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " checkbox small " style = " margin-bottom:0px; " >
< input type = " checkbox " id = " funnel-is_client " v - model = " is_client " : checked = " Boolean(is_client) " true - value = " 1 " >
< label for = " funnel-is_client " > Для клиентов </ label >
< input type = " checkbox " id = " funnel-is_req " v - model = " is_req " : checked = " Boolean(is_req) " true - value = " 1 " >
< label style = " margin-left: 160px; " style = " marning- " for = " funnel-is_req " > Для заявок </ label >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - if = " funnelId == 0 " class = " form-block " >
< div class = " checkbox small " style = " margin-bottom:0px; " >
< input type = " checkbox " id = " funnel-is_stage " v - model = " is_stage " : checked = " Boolean(is_stage) " true - value = " 1 " >
< label for = " funnel-is_stage " > Показывать шкалу </ label >
</ div >
</ div >
< div v - if = " funnelId == 0 " class = " form-block " >
< div class = " checkbox small " style = " margin-bottom:0px; " >
< input type = " checkbox " id = " funnel-is_show_funnels " v - model = " is_show_funnels " : checked = " Boolean(is_show_funnels) " true - value = " 1 " >
< label for = " funnel-is_show_funnels " > Показывать воронки </ label >
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > Номер в очереди </ div >
< div class = " inputs " >
< input v - model . trim = " order_number_funnel " type = " number " class = " text " style = " width:400px; " >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - if = " funnelId > 0 " class = " form-block " >
< div class = " checkbox small " style = " margin-bottom:0px; " >
< input type = " checkbox " id = " funnel-is_no_see " v - model = " is_no_see " false - value = " 0 " true - value = " 1 " >
< label for = " funnel-is_no_see " > Н е показывать воронку всем </ label >
</ div >
</ div >
< div class = " form-block " v - show = " funnelId > 0 && is_no_see == 1 " >
< div class = " label " >... кроме сотрудников </ div >
< div class = " inputs " >
< v - select class = " vue_select " : components = " { OpenIndicator} " style = " width: 400px; border: none; " multiple : options = " users_see " : reduce = " name => name.code " label = " name " v - model = " selected_users_see_no " />
< template #option="{ name, type }">
< span v - if = " type=='otdel' " style = " margin: 0; color:#000; font-size: 17px " > {{ name }} </ span >
< span v - else style = " margin-left:10px; " > {{ name }} </ span >
</ template >
< v - select >
</ div >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = 'updateRowFunnel();' class = " action_call " > Изменить </ button >
</ div >
</ form >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " transmitFunnelmodal " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " transmitFunnelmodal = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " style = " max-width: 650px " >
< div class = " form-validate " >
< div class = " modal-inner " >
< div v - if = " errorTransmite " class = " error_msg " v - html = " mesErrorTransmite " ></ div >
< h2 > Передать {{ type_trasmite }} в воронку </ h2 >
< div v - show = " process_trasmited " style = " display: inline; " >
< div style = " text-align:center; margin-top: 25px; position: unset; " class = " object-content__preloader " >
< img src = " ../images/rocket-spinner.svg " width = " 96px " >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - show = " !process_trasmited " class = " jv-tabs " >
< div >
< div class = " tabs__content " >
< div class = " form-block " >
< div class = " label " > Воронка </ div >
< div id = " ms-funnel-type " class = " inputs " >
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " : class = " { invalid: errorTransmite} " style = " width: 400px; border: none; " : options = " funnel_transmite " : reduce = " name => name.id " label = " name " v - model = " funnelTrasmiteId " />
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = " transmite " class = " action_call " > Передать </ button ></ button >
</ div >
</ div >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " updateStepFunnel " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " updateStepFunnel = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " >
< form class = " form-validate " method = " post " >
< div class = " modal-inner " >
< div v - if = " mes_error_step " class = " error_msg " ></ div >
< div v - if = " errorPole " class = " error_msg " v - html = " textError " ></ div >
< h2 > Настройка этапа </ h2 >
< div class = " jw-tabs " >
< ul class = " tabs__caption " >
< li : class = " { 'active':tab_close } " @ click = " open_tab('tab_close') " >
< i class = " tabs-li__icon " > 1 </ i >
< span > Настройки для закрытия этапа </ span >
</ li >
< li : class = " { 'active':tab_prev_close } " @ click = " open_tab('tab_prev_close') " >
< i class = " tabs-li__icon " > 2 </ i >
< span > Настройки перед переходом на этап </ span >
</ li >
<!-- < li : class = " { 'active':tab_dop_close } " @ click = " open_tab('tab_dop_close') " v - if = " userId == 5238 || userId == 4 " >
< i class = " tabs-li__icon " > 3 </ i >
< span > Дополнительные настройки </ span >
</ li >-->
</ ul >
< div >
< div class = " tabs__content " v - show = " tab_close " >
< div class = " form-block " >
< div class = " label " > Наименование </ div >
< div class = " inputs " >
< input v - model . trim = " name_step " @ input = " mes_error_step = false " class = " text " type = " text " style = " width:400px; " >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Номер в очереди </ div >
< div class = " inputs " >
< input v - if = " mainStep>0 " v - model . number = " order_number " disabled = " disabled " title = " Нельзя изменить в первом этапе " class = " text " type = " number " value = " " placeholder = " Определяет место в шкале этапов " style = " width:100px; " >
< input v - else v - model . number = " order_number " class = " text " type = " number " value = " " placeholder = " Определяет место в шкале этапов " style = " width:100px; " >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Цвет </ div >
< div class = " inputs " >
< input v - model . trim = " color_step " @ input = " mes_error_step = false " class = " text " type = " color " value = " #43A047 " style = " width:40px;height:40px; " >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Дней на этап </ div >
< div class = " inputs " >
< input v - model . number = " days_step " @ input = " mes_error_step = false " class = " text " type = " number " value = " 0 " style = " width:400px; " >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Перенести в Общие , если срок будет исчерпан </ div >
< div class = " inputs " >
< div class = " checkbox " >
< input id = " is_move_end_srok " v - model = " is_move_end_srok " true - value = " 1 " false - value = " 0 " type = " checkbox " >
< label for = " is_move_end_srok " class = " label " ></ label >
</ div >
</ div >
</ div >
< div class = " form-block " v - show = " is_move_end_srok > 0 " >
< div class = " label " > Условия переноса в общие </ div >
< div class = " inputs " >
< div class = " checkbox " >
< input id = " task_is_move " v - model = " tasks_move.is_move " true - value = " 1 " false - value = " 0 " @ change = " selet_task_move " type = " checkbox " >
< label for = " task_is_move " style = " width:400px; " class = " label " > Просрочили срок действия Этапа </ label >
</ div >
< div class = " checkbox " >
< input id = " task_is_task " v - model = " tasks_move.is_task " true - value = " 1 " false - value = " 0 " @ change = " selet_task_task " type = " checkbox " >
< label for = " task_is_task " style = " width:400px; " class = " label " > Н е поставлено ни одной задачи на будущее </ label >
</ div >
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > При переходе на этап сменить статус на </ div >
< div class = " inputs " >
< multiselect v - model = " stage " tag - placeholder = " Добавьте значение " placeholder = " " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " : options = " stages " : searchable = " false " : show - labels = " false " >
</ multiselect >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Уведомлять о закрытии </ div >
< div class = " checkbox " >
< input id = " mes_close " v - model = " is_mes " @ input = " selectMes " type = " checkbox " value = " " >
< label for = " mes_close " class = " label " ></ label >
</ div >
</ div >
< div class = " form-block " v - show = " is_mes " >
< div class = " label " > Кому отправлять уведомления </ div >
< div class = " inputs " >
< v - select multiple class = " vue_select " : components = " { OpenIndicator} " style = " width: 400px; border: none; " : options = " list_users " : reduce = " date_employe => date_employe.code " label = " date_employe " v - model = " list_users_select " />
</ div >
</ div >
< div class = " form-block " v - if = " selectedFiles.length > 0 " >
< div class = " label " > Список файлов </ div >
< div class = " inputs " >
< div class = " list_files " v - for = " (file, infile) in selectedFiles " >
< label class = " label_file " >< i v - bind : class = " [ file.classFile, { active: progressUoload[infile].isUpload} ] " ></ i > {{ file . name }} </ label >
< a title = " Загрузить " v - bind : class = " { hidden : progressUoload[infile].isUpload} " @ click = " onUpload(infile, file) " class = " no-border faupload " >< i class = " fas fa-upload " ></ i ></ a >
< a title = " Удалить " @ click = " onDeleteFile(infile,file) " class = " no-border fatrash " >< i class = " fas fa-trash " ></ i ></ a >
< vue - simple - progress v - if = " progressUoload[infile].uploads " bar - color = " #e2574c " : val = " progressUoload[infile].progress " : text = " progressUoload[infile].progress + '%' " ></ vue - simple - progress >
</ div >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Файлы для скачивания </ div >
< div class = " inputs " >
< div class = " dropbox " >
< input type = " file " @ change = " onFileSelected " multiple = " " class = " input-file " style = " width:400px; " >
< p >
Выберите файл ( ы )
</ p >
</ div >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Исполнитель </ div >
< div class = " inputs " >
< ul class = " doer_funnel " >
< template v - for = " (doer, doerId) in doers " >
< li >< a @ click = " seeDoer(doerId) " href = " javascript: { } " >< i class = " fas fa-users " ></ i ></ a ></ li >
< li v - if = " doer.isSee " >< a title = " Весь отдел " @ click = " selectDoer(doerId, doer.manager.id, 'all') " href = " javascript: { } " >< i class = " far fa-building " ></ i ></ a ></ li >
< li v - if = " doer.isSee " >< a : title = " doer.manager.role + ' ' + doer.manager.fio " @ click = " selectDoer(doerId, doer.manager.id, 'manager') " href = " javascript: { } " >< i class = " fas fa-user-tie " ></ i ></ a ></ li >
< li v - if = " doer.agents.length > 0 && doer.isSee " v - for = " (agent, agentId) in doer.agents " >< a : title = " agent.role + ' ' + agent.fio " @ click = " selectDoer(doerId, agentId, 'agent') " href = " javascript: { } " >< i class = " fas fa-user " ></ i ></ a ></ li >
</ template >
</ ul >
</ div >
</ div >
< div v - if = " listDoers.length>0 " class = " form-block " >
< div class = " label " > Список исполнитель </ div >
< ul class = " list_doer_funnel " >
< li v - for = " (listDoer, listDoerId) in listDoers " > {{ listDoer . fio }} < i @ click = " deleteDoer(listDoerId) " title = " Удалить исполнителя " class = " fas fa-user-minus " ></ i ></ li >
</ ul >
</ div >
< ? php
if (
(
! empty ( $menuPermissions ) && $menuPermissions [ 'menu_complexes' ] == 1
)
||
(
(
$_SESSION [ 'agency' ] || $_SESSION [ 'users_admin' ] || ( ! empty ( $menuPermissions ) && $menuPermissions [ 'menu_complexes' ] == 1 )
)
&& (
in_array ( $_SESSION [ 'agency_id' ] , $agenciesHaveAccessToNewComplexes )
)
)
) {
?>
< div class = " form-block " >
< div class = " label " > Выбрать объект из комплексов </ div >
< div class = " checkbox " >
< input id = " is_select_room " v - model = " is_select_room " type = " checkbox " >
< label for = " is_select_room " class = " label " ></ label >
</ div >
</ div >
< ? php } ?>
< div class = " form-block " >
< div class = " label " > Поля для заполнения в заявке или клиенте </ div >
< div class = " inputs " style = " padding-top:15px; " >
< a class = " green_button " onclick = " linking_client_req.open(app.stepId, app.list_next_poles) " type = " button " href = " javascript: { } " > Выбрать поля </ a >
</ div >
</ div >
< ? php
if (
(
! empty ( $menuPermissions ) && $menuPermissions [ 'menu_complexes' ] == 1
)
||
(
(
$_SESSION [ 'agency' ] || $_SESSION [ 'users_admin' ] || ( ! empty ( $menuPermissions ) && $menuPermissions [ 'menu_complexes' ] == 1 )
)
&& (
in_array ( $_SESSION [ 'agency_id' ] , $agenciesHaveAccessToNewComplexes )
)
)
) {
?>
< div class = " form-block " style = " display: flex; " >
< div class = " label " > Сменить статус объекта </ div >
< div >
< div class = " checkbox " >
< input id = " is_changing_status " name = " is_changing_status " v - model = " is_changing_status " type = " checkbox " >
< label for = " is_changing_status " class = " label " ></ label >
</ div >
< Transition name = " is_changing_status " >
< div v - show = " is_changing_status " id = " status " class = " changing_status_block " >
< div class = " inputs " id = " ms-req-status-input " >
< img src = " ../images/rocket-spinner.svg " width = " 45px " >
</ div >
</ div >
</ Transition >
</ div >
</ div >
< ? php } ?>
< div class = " form-block " >
< div class = " label " > Поля для заполнения при завершении этапа </ div >
< div class = " inputs " style = " padding-top:15px; " >
< a class = " green_button " @ click = " addPole " type = " button " href = " javascript: { } " > Добавить поле </ a >
</ div >
</ div >
< div class = " form-block " v - if = " poleEndlist.length > 0 " style = " display: flex;flex-wrap: nowrap;flex-direction: row; " >
< div class = " label " > Список полей </ div >
< div class = " inputs " >
< ul class = " pole_end_etap " >
< li class = " pole_li " v - for = " (poleEnd, poleEndId) in poleEndlist " style = " width: 700px " >
< div class = " divLiLeft " >
< label > Название </ label >
< input style = " width: 100px; margin-right: 10px; " v - model = " poleEnd.name " type = " text " value = " " />
</ div >
< div class = " divLiLeft " >
< label > Тип </ label >
< multiselect : id = " poleEndId " v - model = " poleEnd.type " @ select = " chengePoleSelect " tag - placeholder = " Добавьте значение " placeholder = " " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " : options = " poleType " : searchable = " false " : show - labels = " false " >
</ multiselect >
</ div >
< div class = " pole_checkbox divLiLeft " >
< label title = " Обязательное заполнение " >< i class = " fab fa-diaspora " ></ i ></ label >
< div class = " checkbox " >
< input v - model = " poleEnd.binding " : id = " 'binding_pole'+poleEndId " type = " checkbox " value = " " >
< label : for = " 'binding_pole'+poleEndId " class = " label " ></ label >
</ div >
</ div >
< div class = " divLiLeft " v - if = " poleEnd.dopSettings.radio " >
< label > Переключатель 1 </ label >
< input v - model = " poleEnd.dopSettings.radio.pole1 " type = " text " value = " " >
</ div >
< div class = " divLiLeft " v - if = " poleEnd.dopSettings.radio " >
< label > Переключатель 2 </ label >
< input v - model = " poleEnd.dopSettings.radio.pole2 " type = " text " value = " " >
</ div >
< div class = " divLiLeft " v - if = " !onePole && poleEnd.type != 'Выпадающий список' && poleEnd.type != 'Ветвление этапов' " >
< label > Показывать при переходе на этап :</ label >
< v - select : components = " { OpenIndicator} " transition = " " placeholder = " В с е этапы" class = " vue_select " multiple style = " width: 270px; border: none; " label = " name " : reduce = " name => name.code " : options = " list_next_poles " v - model = " poleEnd.view_next " />
</ div >
< div class = " divLiLeft " style = " margin-left: 10px " >
< a title = " Удалить " @ click = " deletePole(poleEndId) " class = " no-border fatrash " >< i class = " fas fa-trash " ></ i ></ a >
</ div >
< div class = " clear " ></ div >
< div v - if = " poleEnd.dopSettings.select " class = " dop_settings divLiLeft " >
< div >
< label style = " width:350px " > Значения списка
</ label >
</ div >
< div class = " clear " ></ div >
< ul class = " pole_select_value " >
< template v - if = " polesOptionsSetting.length > 0 && poleEndlist.length > 0 " v - for = " (option, optionId) in poleEnd.dopSettings.select.options " >
< li v - if = " polesOptionsSetting[optionId].isDiv " >
< div > {{ option }} </ div >
< a title = " Изменить значение " @ click = " editOption(optionId) " class = " faplus " href = " javascript: { } " >< i class = " fas fa-pencil-alt " ></ i ></ a >
< a @ click = " deleteOption(poleEndId, optionId) " class = " fatrash " >< i title = " Удалить значение " class = " fas fa-trash " ></ i ></ a >
</ li >
< li v - if = " polesOptionsSetting[optionId].isEdit " >
< input : value = " option " @ input = " validPole( $event .target.value, optionId) " : id = " 'pole_select_value_'+optionId " type = " text " />
< a @ click = " saveEditOption(poleEndId, optionId) " class = " faplus " href = " javascript: { } " title = " Сохранить " >< i class = " fas fa-check " ></ i ></ a >
</ li >
</ template >
< li v - if = " isInput " >
< input v - model = " pole_select_value " type = " text " />
< a @ click = " setOption(poleEndId) " class = " faplus " href = " javascript: { } " title = " Сохранить " >< i class = " fas fa-check " ></ i ></ a >
</ li >
< li class = " liPlus " >< a class = " faplus " href = " javascript: { } " title = " Добавить значение " @ click = " isInput = true " >< i class = " fas fa-plus " ></ i ></ a ></ li >
</ ul >
</ div >
</ li >
< div class = " clear " ></ div >
</ ul >
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > Следующий этап </ div >
< div class = " inputs " >
< div class = " selects_next_step " >
< multiselect v - bind : class = " [onePole ? '' : 'activeOne'] " v - model = " nextStepChange " @ select = " changeNextStep " : allow - empty = " false " tag - placeholder = " Добавьте значение " placeholder = " " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " : options = " next_step " : searchable = " false " : show - labels = " false " >
</ multiselect >
< multiselect v - if = " onePole " v - model = " nextStep " tag - placeholder = " Добавьте значение " track - by = " name " label = " name " placeholder = " " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " : options = " listSteps " : searchable = " false " : show - labels = " false " >
< template slot = " singleLabel " slot - scope = " { option } " >< strong > {{ option . name }} </ strong ></ template >
</ multiselect >
< a title = " Сбросить " @ click = " resetNextStep " class = " no-border fatrash " >< i class = " fas fa-undo-alt " ></ i ></ a >
< div class = " clear " ></ div >
< ul class = " optionsNextStep " >
< li v - for = " (nextOption, nextOptionId) in arrNextSteps " >
< label > {{ poleEndlist [ poleListIndex ] . name }} & laquo ;{{ nextOption . name }} & raquo ; </ label >
< multiselect v - model = " nextOption.id " @ select = " nextOptionUpdate " tag - placeholder = " Добавьте значение " track - by = " name " label = " name " placeholder = " " select - label = " Добавить " deselect - label = " Удалить " selected - label = " Выбрано " : options = " listSteps " : searchable = " false " : show - labels = " false " >
< template slot = " singleLabel " slot - scope = " { option } " >< strong > {{ option . name }} </ strong ></ template >
</ multiselect >
< div class = " clear " ></ div >
</ li >
</ ul >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
< h2 > Дополнительные действия при закрытии этапа </ h2 >
< div class = " form-block " >
< div class = " label " > Cнять объект с рекламы </ div >
< div class = " checkbox " style = " margin-bottom:0px; " >
< input id = " req_object_advert_close " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_dop.advert_close " >
< label for = " req_object_advert_close " class = " label " ></ label >
</ div >
< div class = " settings-block area-label-right " style = " margin-top:0px;margin-left:0px;margin-right:0px;margin-bottom:0px; " >
< p style = " font-size:13px; " >< i style = " margin-right:5px; " class = " ti-info-alt " ></ i > Только для заявок Реализация объекта </ p >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " style = " display:none " >
< div class = " label " > Действия с автопоиском </ div >
< div class = " checkbox " style = " margin-bottom:0px; " >
< input id = " req_object_avtopoisk_close " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_dop.avtopoisk_close " >
< label for = " req_object_avtopoisk_close " class = " label " ></ label >
</ div >
< div class = " settings-block area-label-right " style = " margin-top:0px;margin-left:0px;margin-right:0px;margin-bottom:0px; " >
< p style = " font-size:13px; " >< i style = " margin-right:5px; " class = " ti-info-alt " ></ i > Только для заявок с объектами </ p >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Добавить договор </ div >
< div class = " checkbox " style = " margin-bottom:0px; " >
< input id = " add_contract_close_step " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_dop.add_contract_close_step " >
< label for = " add_contract_close_step " class = " label " ></ label >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " >
< div class = " label " > Добавить тег </ div >
< div class = " checkbox " style = " margin-bottom:0px; " >
< input id = " add_activity_close_step " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_dop.add_activity_close_step " >
< label for = " add_activity_close_step " class = " label " ></ label >
</ div >
< div class = " clear " ></ div >
</ div >
</ div >
< div class = " tabs__content " v - show = " tab_prev_close " >
< div class = " form-block " >
< div class = " label " > Поставить автоматическую задачу ( и ) на ответственного </ div >
< div class = " inputs " style = " padding-top: 15px; " >
< a type = " button " @ click = " add_pole_prev " href = " javascript: { } " class = " green_button " > Добавить задачу </ a >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - show = " pole_prev.tasks.length > 0 " class = " form-block " >
< div class = " label " > Список задач </ div >
< div class = " inputs " >
< ul class = " pole_end_etap " >
< li v - for = " (pole, pi) in pole_prev.tasks " class = " pole_li " >
< div class = " divLiLeft " >
< label > Название </ label >
< input type = " text " v - model = " pole.name " >
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label > Тип </ label >
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " style = " width: 250px; border: none; " : options = " types_task " : reduce = " name => name.code " label = " name " v - model = " pole.type " />
</ div >
< div class = " divLiLeft " >
< a title = " Удалить " @ click = " del_pole_prev(pi) " class = " no-border fatrash " >
< i class = " fas fa-trash " ></ i >
</ a >
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label title = " Время простановки задачи от наступления этапа " > Время простановки </ label >
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " style = " width: 175px; border: none; " : options = " time_task " : reduce = " name => name.code " label = " name " v - model = " pole.time " />
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label > Комментарий к задаче </ label >
< textarea rows = " 4 " style = " width: 250px; " v - model = " pole.comment " ></ textarea >
</ div >
</ li >
</ ul >
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > Поставить автоматическую задачу ( и ) на В С Е Х ответственных </ div >
< div class = " inputs " style = " padding-top: 15px; " >
< a type = " button " @ click = " add_pole_prev('all') " href = " javascript: { } " class = " green_button " > Добавить задачу </ a >
</ div >
< div class = " clear " ></ div >
</ div >
< div v - show = " pole_prev.tasks_all.length > 0 " class = " form-block " >
< div class = " label " > Список задач </ div >
< div class = " inputs " >
< ul class = " pole_end_etap " >
< li v - for = " (pole, pi) in pole_prev.tasks_all " class = " pole_li " >
< div class = " divLiLeft " >
< label > Название </ label >
< input type = " text " v - model = " pole.name " >
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label > Тип </ label >
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " style = " width: 250px; border: none; " : options = " types_task " : reduce = " name => name.code " label = " name " v - model = " pole.type " />
</ div >
< div class = " divLiLeft " >
< a title = " Удалить " @ click = " del_pole_prev(pi, 'all') " class = " no-border fatrash " >
< i class = " fas fa-trash " ></ i >
</ a >
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label title = " Время простановки задачи от наступления этапа " > Время простановки </ label >
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " style = " width: 175px; border: none; " : options = " time_task " : reduce = " name => name.code " label = " name " v - model = " pole.time " />
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label > Комментарий к задаче </ label >
< textarea rows = " 4 " style = " width: 250px; " v - model = " pole.comment " ></ textarea >
</ div >
</ li >
</ ul >
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > Ввести комментарий </ div >
< div class = " inputs " style = " padding-top: 15px; " >
< textarea rows = " 5 " style = " width: 350px; " v - model = " pole_prev.comment " ></ textarea >
</ div >
< div class = " clear " ></ div >
</ div >
2026-06-20 11:14:33 +02:00
< div class = " form-block " >
< div class = " label " > Создать сделку </ div >
< div class = " checkbox " >
< input id = " create_deal " v - model = " create_deal " type = " checkbox " value = " " >
< label for = " create_deal " class = " label " ></ label >
</ div >
</ div >
2026-05-22 20:21:54 +02:00
< div class = " form-block " >
< div class = " label " > Сменить ответственного </ div >
< div class = " checkbox " >
< input id = " new_who_work " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_prev.is_new_who_work " >
< label for = " new_who_work " class = " label " ></ label >
</ div >
</ div >
< div v - show = " pole_prev.is_new_who_work > 0 " class = " form-block " >
< div class = " label " > Новый ответственный </ div >
< div class = " inputs " >
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " style = " width: 400px; border: none; " : options = " list_users_prev_pole " : reduce = " date_employe => date_employe.code " label = " date_employe " v - model = " pole_prev.new_who_work " />
</ div >
< div class = " clear " ></ div >
</ div >
< div v - show = " pole_prev.is_new_who_work > 0 " class = " form-block " >
< div class = " label " > Передавать объект с заявкой ( для заявки Реализация объекта ) </ div >
< div class = " checkbox " >
< input id = " new_who_work_object " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_prev.is_new_who_work_object " >
< label for = " new_who_work_object " class = " label " ></ label >
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > Добавить партнеров </ div >
< div class = " checkbox " >
< input id = " new_doers " true - value = " 1 " false - value = " 0 " type = " checkbox " v - model = " pole_prev.is_new_doers " >
< label for = " new_doers " class = " label " ></ label >
</ div >
</ div >
< div v - show = " pole_prev.is_new_doers > 0 " class = " form-block " >
< div class = " label " > Выбрать партнеров </ div >
< div class = " inputs " >
< v - select : components = " { OpenIndicator} " multiple transition = " " class = " vue_select " style = " width: 400px; border: none; " : options = " list_users_prev_pole " : reduce = " date_employe => date_employe.code " label = " date_employe " v - model = " pole_prev.new_doers " />
</ div >
< div class = " clear " ></ div >
</ div >
<!-- смежные воронки -->
< template >
< div class = " form-block " >
< div class = " label " > Переключить на смежную воронку </ div >
< div class = " checkbox " >
< input id = " adjacent_funnel " true - value = " 1 " false - value = " 0 " type = " checkbox " @ click = " change_adjacent_funnels " v - model = " pole_prev.is_adjacent_funnels " >
< label for = " adjacent_funnel " class = " label " ></ label >
</ div >
</ div >
< div class = " form-block " v - show = " pole_prev.is_adjacent_funnels > 0 " >
< div class = " label " > Выбрать воронки </ div >
< div v - if = " !isEmpty(adjacent_funnels) " class = " inputs " >
< v - select : components = " { OpenIndicator} " multiple transition = " " class = " vue_select " style = " width: 400px; border: none; " : options = " adjacent_funnels " : reduce = " name => name.code " label = " name " v - model = " pole_prev.adjacent_funnels " />
</ div >
< div v - else class = " inputs " style = " padding-top: 7px; " >
< label > Воронок не найдено </ label >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " v - show = " !isEmpty(pole_prev.adjacent_funnels) " >
< div class = " label " > Разрешить переходить при закрытом этапе смежной воронки :</ div >
< div v - for = " funnel_aj in pole_prev.adjacent_funnels " class = " inputs " >
< template v - if = " !isEmpty(adjacent_funnels_steps) && adjacent_funnels_steps[funnel_aj] " >
Воронка : " { { adjacent_funnels_steps[funnel_aj].name }} "
< v - select : components = " { OpenIndicator} " transition = " " class = " vue_select " style = " width: 400px; border: none; " : options = " adjacent_funnels_steps[funnel_aj].steps " : reduce = " name => name.code " label = " name " v - model = " adjacent_funnels_steps[funnel_aj].value " />
</ template >
</ div >
< div class = " clear " ></ div >
</ div >
</ template >
< div class = " form-block " >
< div class = " label " > Уведомлять о переходе на этап </ div >
< div class = " checkbox " >
< input id = " prev_mes_close " v - model = " pole_prev.is_mes " @ input = " check_prev_is_mes " true - value = " 1 " false - value = " 0 " type = " checkbox " >
< label for = " prev_mes_close " class = " label " ></ label >
</ div >
</ div >
< div class = " form-block " v - show = " pole_prev.is_mes>0 " >
< div class = " label " > Кому отправлять уведомления </ div >
< div class = " inputs " >
< v - select multiple class = " vue_select " : components = " { OpenIndicator} " style = " width: 400px; border: none; " : options = " list_users " : reduce = " date_employe => date_employe.code " label = " date_employe " v - model = " pole_prev.list_users_select " />
</ div >
</ div >
< div class = " form-block " >
< div class = " label " > Прикрепить документ </ div >
< div class = " inputs " >
< div class = " dropbox " >
< input type = " file " multiple = " multiple " @ change = " onFileSelectedPrev " class = " input-file " style = " width: 400px; " > < p >
Выберите файл ( ы )
</ p >
</ div >
</ div >
< div class = " clear " ></ div >
</ div >
< div class = " form-block " v - if = " selectedFilesPrev.length > 0 " >
< div class = " label " > Список файлов </ div >
< div class = " inputs " >
< ul class = " pole_end_etap " >
< li v - for = " (file, infile) in selectedFilesPrev " class = " pole_li " >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label > Название файла </ label >
< input style = " width: 400px; " type = " text " v - model = " pole_prev.files_attach[infile].name " >
</ div >
< div class = " divLiLeft " style = " margin-right: 10px " >
< label > Комментарий к файлу </ label >
< textarea rows = " 4 " style = " width: 400px; " v - model = 'pole_prev.files_attach[infile].comment' ></ textarea >
</ div >
< div class = " list_files " >
< label style = " display:inline-block; " class = " label_file " >< i v - bind : class = " [ file.classFile, { active: progressUoloadPrev[infile].isUpload} ] " ></ i > {{ file . name }} </ label >
< a style = " display:inline-block; " title = " Удалить " @ click = " onDeleteFilePrev(infile,file) " class = " no-border fatrash " >< i style = " margin-top:0px " class = " fas fa-trash " ></ i ></ a >
< vue - simple - progress v - if = " progressUoloadPrev[infile].uploads " bar - color = " #e2574c " : val = " progressUoloadPrev[infile].progress " : text = " progressUoloadPrev[infile].progress + '%' " ></ vue - simple - progress >
</ div >
</ li >
</ ul >
</ div >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = 'saveStep' class = " action_call " > Сохранить </ button >
</ div >
</ form >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " updateClientStep " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " updateClientStep = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " style = " max-width: 650px " >
< form class = " form-validate " method = " post " >
< div class = " modal-inner " >
< h2 > Перенос клиентов </ h2 >
< div class = " jv-tabs " >
< div >
< div class = " tabs__content " >
< div class = " form-block " >
< div style = " width: 100% " class = " label " > Чтобы удалить данный этап необходимо перенести клиентов на предыдущий .< br >< br > {{ clientsSteps }} </ div >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = " updateStepClients " class = " action_call " > Перенести </ button >
</ div >
</ form >
</ div >
</ div >
< div class = " full_modal-bg " v - if = " mesUpdateClientStep " >
< span class = " pseudo-link closer " >< i class = " ti-close " @ click = " mesUpdateClientStep = false " ></ i ></ span >
< div class = " full_modal edit-modal new-client__modal " style = " max-width: 650px " >
< form class = " form-validate " method = " post " >
< div class = " modal-inner " >
< h2 > ВНИМАНИЕ !!!</ h2 >
< div class = " jv-tabs " >
< div >
< div class = " tabs__content " >
< div class = " form-block " >
< div style = " width: 100% " class = " label " > После удаления этапов обязательно обновите связи этапов всей воронки </ div >
< div class = " clear " ></ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-submit " >
< button type = " button " @ click = " mesUpdateClientStep = false " class = " action_call " > Закрыть </ button >
</ div >
</ form >
</ div >
</ div >
</ div >
< div class = " content-right fr__settings " >
< div class = " inner " >
< div class = " mail-settings-form " style = " margin: 50px 0 0 0; " >
</ div >
</ div >
< div class = " content-bottom " style = " padding: 0 35px 60px 145px; " >
< div class = " copyrights " style = " border-top: 0; " >
< div class = " text-logo " >
< span > Joy < span class = " green " > Work </ span > , 2025 </ span >
</ div >
< p title = " Текущая версия " > v . 3.1 . 1 </ p >
</ div >
</ div >
</ div >
< ? php
require_once ( $_SERVER [ 'DOCUMENT_ROOT' ] . " /templates/linking_client_req/linking_client_req.php " );
?>
< script type = " text/javascript " src = " /js/funnel_vue.js?v=<?=filemtime( $_SERVER['DOCUMENT_ROOT'] .'/js/funnel_vue.js')?> " ></ script >
< script type = " text/javascript " src = " /js/funnel.js?v=<?=filemtime( $_SERVER['DOCUMENT_ROOT'] .'/js/funnel.js')?> " ></ script >
< script src = " /js/locale/translations/ru.js " ></ script >
< script type = " text/javascript " src = " /js/vue_scripts/linking_client_req/linking_client_req_vue.js?<?=filemtime( $_SERVER['DOCUMENT_ROOT'] .'/js/vue_scripts/linking_client_req/linking_client_req_vue.js')?> " ></ script >
< ? php require ( $_SERVER [ 'DOCUMENT_ROOT' ] . " /templates/footer.php " ); ?>