Joywork/templates/modals/export_settings.php
2026-05-22 21:21:54 +03:00

465 lines
24 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- Latest compiled and minified CSS -->
<script type="text/javascript" src="/js/bootstrap.js"></script>
<script type="text/javascript" src="/js/jquery.bootgrid.js"></script>
<link rel="stylesheet" href="/css/bootstrap.css" type="text/css">
<link rel="stylesheet" href="/css/jquery.bootgrid.css" type="text/css">
<link href="/css/jquery.treegrid.css" rel="stylesheet">
<link href="/css/bootstrap-table.min.css" rel="stylesheet">
<script src="/js/jquery.treegrid.min.js"></script>
<script src="/js/bootstrap-table.min.js"></script>
<script src="/js/bootstrap-table-treegrid.min.js"></script>
<script src="/js/bootstrap-table-locale-all.min.js"></script>
<script type="text/javascript" src="/js/libs/js-xlsx/xlsx.core.min.js"></script>
<script type="text/javascript" src="/js/libs/FileSaver/FileSaver.min.js"></script>
<script src="/js/tableExport.js"></script>
<script type="text/javascript" src="/js/dragscroll.min.js"></script>
<style>
.datepicker-filter{
width: 70px;
}
.grid_table{
overflow: auto;
}
.grid_table.table_old table{
width: 2800px;
}
.grid_table .bootgrid-table{
display: unset;
}
.first_column{
position: absolute;
background: white;
padding: 18px 0 0 30px;
overflow: hidden;
margin: 64px 0 0 20px;
z-index: 1;
}
.first_column table{
width: 300px;
margin-bottom: 0;
}
#object_list_table td.select-cell .select-box, #obj-stat-grid-full td.select-cell .select-box {
display: none;
}
#grid td.select-cell .select-box, #grid-keep-selection td.select-cell .select-box {
display: none;
}
#object_list_table td.select-cell, #obj-stat-grid-full td.select-cell {
width: 0 !important;
}
.row-selected, .row-selected td {
background-color: #F5E4C7 !important;
}
.float-right {
float: right !important;
}
.buttons-toolbar .btn-group, .buttons-toolbar .btn-group-vertical
{
position: relative;
display: inline;
vertical-align: middle;
margin: 0px 10px 10px 0px;
}
.dropdown-menu {
position: absolute;
top: 100%;
z-index: 1000;
display: none;
float: left;
min-width: 10rem;
padding: .5rem 0;
margin: .125rem 0 0;
font-size: 1rem;
color: #212529;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0,0,0,.15);
border-radius: .25rem;
}
.dropdown-item {
display: block;
width: 100%;
padding: .25rem 1.5rem;
clear: both;
font-weight: 400;
color: #212529;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
}
th.table_white{
color: #fff;
white-space: nowrap;
}
/* #table-funnel-keep-selection, #table-sources-keep-selection{
display: block;
width: 100%;
border-bottom: none;
border-right: none;
border-left: none;
}*/
#table-sources-keep-selection-fixed .bootstrap-table .fixed-table-container.fixed-height{
border-bottom: 0px !important;
}
.fixed-table-loading{
width: 100% !important;
}
.bootstrap-table .fixed-table-container.fixed-height .fixed-table-border{
border-left: 1px solid #fff !important;
border-right: 1px solid #fff !important;
}
.itemSource{
width: 300px;
display: block;
}
.itemSource span{
white-space: nowrap;
overflow: hidden;
padding: 5px;
text-overflow: ellipsis;
display: block;
}
.treegrid-indent, .treegrid-expander{
float: left;
margin-top: 5px;
}
#table-sources-keep-selection-fixed table{
margin-bottom: 0;
}
</style>
<div id="export_settings" class="hidden">
<div class="full_modal-bg" v-show="isShow">
<span class="pseudo-link closer event-modal-closer" @click="closes">
<i class="ti-close"></i>
</span>
<div class="full_modal flat__modal" v-show="isShow">
<div class="flat__inner">
<div class="flat__top">
<h2 v-html="'Настройки экспорта'"></h2>
<div class="form-block">
<div class="label">Выбрать отчет</div>
<div class="inputs" style="width: 420px;">
<v-select :components="{OpenIndicator}" @input="select_raport" transition="" class="vue_select" style="width: 400px; border: none;" :options="raports" :reduce="name => name.code" label="name" v-model="raport_id"/>
</div>
<a v-if="raport_id>0" @click="deleteRaport" href="javascript:{};" title="Удалить" class="no-border">
<span class="simple-button delete">
<i style="margin-top: 7px;top: 0;position: absolute;" class="jw-action-icon-delete"></i>
</span>
</a>
</div>
<!--<button class="booking JWbutton button" data-id="" data-FlatNum="" >Забронировать</button>-->
</div>
<div class="jW-tabs">
<ul class="tabs__caption">
<li @click="changeTab('setting')" :class="{'active': tab=='setting'}"><span>Настройки столбцов</span></li>
<li v-show="raport_id>0" @click="changeTab('funnels')" :class="{'active': tab=='funnels'}"><span>Настройки по воронкам</span></li>
<li @click="changeTab('order')" :class="{'active': tab=='order'}"><span>Отчеты</span></li>
</ul>
<div>
<div v-show="tab == 'setting'" class="tabs__content __main">
<div v-show="isPreloader == 1" style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
<div v-show="isPreloader == 0">
<div style="float:left;" class="__field_selection __div">
<h2>Столбцы постоянные</h2>
<div class="__step" @click="checkColumn('id')" :data-active="columns.id">
<p>ID заявки</p>
</div>
<div class="__step" @click="checkColumn('date')" :data-active="columns.date">
<p>Дата</p>
</div>
<div class="__step" @click="checkColumn('responsible')" :data-active="columns.responsible">
<p>Ответственный</p>
</div>
<div class="__step" @click="checkColumn('client')" :data-active="columns.client">
<p>Клиент</p>
</div>
<div class="__step" @click="checkColumn('phone')" :data-active="columns.phone">
<p>Телефон клиента</p>
</div>
<div class="__step" @click="checkColumn('email')" :data-active="columns.email">
<p>E-mail клиента</p>
</div>
<div class="__step" @click="checkColumn('name_req')" :data-active="columns.name_req">
<p>Название заявки</p>
</div>
<div class="__step" @click="checkColumn('type_req')" :data-active="columns.type_req">
<p>Тип Заявки</p>
</div>
<div class="__step" @click="checkColumn('contract_type')" :data-active="columns.contract_type">
<p>Тип договора</p>
</div>
<div class="__step" @click="checkColumn('contract_number')" :data-active="columns.contract_number">
<p>Номер договора</p>
</div>
<div class="__step" @click="checkColumn('contract_date')" :data-active="columns.contract_date">
<p>Дата договора</p>
</div>
<div class="__step" @click="checkColumn('nazv_obj')" :data-active="columns.nazv_obj">
<p>Название объекта</p>
</div>
<div class="__step" @click="checkColumn('address_obj')" :data-active="columns.address_obj">
<p>Адрес объекта</p>
</div>
<div class="__step" @click="checkColumn('price_obj')" :data-active="columns.price_obj">
<p>Цена объекта</p>
</div>
<div class="__step" @click="checkColumn('funnel')" :data-active="columns.funnel">
<p>Воронка</p>
</div>
<div class="__step" @click="checkColumn('step')" :data-active="columns.step">
<p>Этап</p>
</div>
<div class="__step" @click="checkColumn('desc')" :data-active="columns.desc">
<p>Описание</p>
</div>
<div class="__step" @click="checkColumn('events')" :data-active="columns.events">
<p>Последние задачи</p>
</div>
<div class="__step" @click="checkColumn('events_call')" :data-active="columns.events_call">
<p>Касания/Звонки</p>
</div>
<div class="__step" @click="checkColumn('tag')" :data-active="columns.tag">
<p>Теги</p>
</div>
<div class="__step sources" @click="checkColumn('source')" :data-active="columns.source">
<p>Источник</p>
</div>
<div class="__step" @click="checkColumn('partner')" :data-active="columns.partner">
<p>Партнер</p>
</div>
<div class="__step" @click="checkColumn('denial')" :data-active="columns.denial">
<p>Причина закрытия</p>
</div>
<div class="__step" @click="checkColumn('denial_comm')" :data-active="columns.denial_comm">
<p>Комментарий введенный при закрытии</p>
</div>
<div class="__step" @click="checkColumn('summa')" :data-active="columns.summa">
<p>Сумма сделки</p>
</div>
<div class="__step" @click="checkColumn('date_close')" :data-active="columns.date_close">
<p>Дата закрытия</p>
</div>
</div>
<div style="float:left;" class="__field_selection __div">
<h2>Столбцы из кастомных полей</h2>
<div class="__step" @click="checkColumnFieldAll" :data-active="castomAllChange">
<p><b>Отметить/снять все</b></p>
</div>
<template v-for="(column,idColumn) in columnsReq">
<div class="__step" @click="checkColumnField(idColumn)" :data-active="column.val">
<p>{{ column.title }}</p>
</div>
</template>
</div>
<div class="clear"></div>
</div>
</div>
<div v-show="tab == 'funnels'" class="tabs__content __main">
<div v-show="isPreloader == 1" style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
<div v-show="isPreloader == 0" id="__FUNNELS" class="__div">
<h2>Воронки</h2>
<template v-for="funnel in funnels">
<div class="__item" :data-active="funnel.is_active" @click="checkFunnelActive(funnel.id)" :data-id="funnel.id">
<p>{{ funnel.name }}</p>
</div>
<div v-show="funnel.is_active" class="__field_selection __div" :data-id="funnel.id">
<h2 style="margin:0;">Этапы и поля из "{{ funnel.name }}"</h2>
<template v-for="step in funnel.steps">
<div :data-id="step.id">
<div @click="checkFunnelStepActive(funnel.id, step.id)" class="__step" :data-active="step.is_active">
<p>{{ step.name }}</p>
</div>
<template v-for="(field, fieldIndex) in step.fields">
<div v-if="field.type === 'Текст' || field.type === 'Дата' || field.type === 'Строка'" @click="checkFunnelStepFieldActive(funnel.id, step.id, fieldIndex)" class="__field" :data-active="field.is_active">
<p>{{ field.name }}</p>
</div>
</template>
</div>
</template>
</div>
</template>
</div>
</div>
<div v-show="tab == 'order'" class="tabs__content __main">
<div class="__div">
<h2>Отчеты</h2>
<div style="margin-bottom: 15px;" v-for="raport in raport_list">
<p style="font-size:18px; float:left; margin-right: 10px;">{{ raport.name }}</p>
<a @click="editRaport(raport.id)" href="javascript:{};" title="Редактировать" class="no-border">
<span class="simple-button delete">
<i style="margin-top: 7px;" class="jw-action-icon-settings"></i>
</span>
</a>
<a @click="deleteRaport(raport.id)" href="javascript:{};" title="Удалить" class="no-border">
<span class="simple-button delete">
<i style="margin-top: 7px;" class="jw-action-icon-delete"></i>
</span>
</a>
<div class="clear"></div>
</div>
<!--<div style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>-->
</div>
</div>
</div>
</div>
<div v-show="(tab == 'setting' || tab == 'funnels') && isPreloader == 0" class="flat__top">
<div class="inputs" style="float:right;margin-right: 15px;margin-bottom: 15px;">
<input v-model.trim="title_raport" placeholder="Название отчета" class="text" :class="{'invalid': error_title_raport == 1}" type="text" style="width:260px;">
</div>
<div class="clear"></div>
<button style="float:right;" @click="saveRaport" class="booking JWbutton button" data-id="" data-FlatNum="">
<span v-if="raport_id>0">Сохранить редактирование</span>
<span v-else>Cоздать отчет</span>
</button>
<button style="float:right;" @click="save" class="booking JWbutton button" data-id="" data-FlatNum="">Сохранить</button>
<div class="clear"></div>
</div>
</div>
</div>
</div>
<div class="full_modal-bg" v-show="is_modal_export">
<span class="pseudo-link closer" @click="close_modal_export"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" v-show="is_modal_export">
<div class="modal-inner">
<h2>Процесс экспорта</h2>
<div class="form-block">
<div class="settings-block">
<div class="jw__NB">
<div v-show="!is_write_file" class="jw__NB__flat-list">
<div style="margin-top: 20px">
<p>Пожалуйста, подождите, идет сбор информации.</p>
<vue-simple-progress bar-color="#4caf50" :val="progress" :size="20" :text="progress + '%'"></vue-simple-progress>
</div>
</div>
<div v-show="is_write_file" class="jw__NB__flat-list">
<div style="margin-top: 20px">
<p>Пожалуйста, подождите, идет запись в файл. Запись может занять несколько минут</p>
<div style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<!--<div class="modal-submit">
<button @click="close_modal_export" type="submit">Закрыть <i class="ti-angle-right"></i></button>
</div>-->
</div>
</div>
<!--Модал отчета-->
<div class="full_modal-bg" v-show="isShowRaport">
<span class="pseudo-link closer event-modal-closer" @click="closes_raport">
<i class="ti-close"></i>
</span>
<div class="full_modal flat__modal" v-show="isShowRaport">
<div class="flat__inner">
<div class="flat__top">
<h2 v-html="title_raport"></h2>
</div>
<div class="jW-tabs">
<div>
<div class="tabs__content">
<!--<div style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>-->
<div class="">
<button @click="export_req(0)" class="booking JWbutton button">Экспорт в EXCEL</button>
<!-- <button @click="show_table" class="booking JWbutton button">Показать отчет</button>-->
</div>
<div class="crm__table" id="order_export" style="display: none; background: inherit; top: 30px !important;">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/js/modals/export_settings.js?<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/js/modals/export_settings.js')?>"></script>
<script type="text/javascript" src="/js/vue_scripts/export_settings_vue.js?<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/js/vue_scripts/export_settings_vue.js')?>"></script>