642 lines
30 KiB
PHP
642 lines
30 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
|||
|
|
if(!$_SESSION['id']) { header("location:index.php"); die("Доступ запрещён!");}
|
|||
|
|
$get = clearInputData($_GET);
|
|||
|
|
|
|||
|
|
require($_SERVER['DOCUMENT_ROOT']."/templates/new-header.php");
|
|||
|
|
|
|||
|
|
?>
|
|||
|
|
|
|||
|
|
<!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">-->
|
|||
|
|
<link rel="stylesheet" href="/css/jquery.fileupload.css">
|
|||
|
|
<div class="content-right" style="min-height: 100%;">
|
|||
|
|
<div class="inner">
|
|||
|
|
<div class="main-title">
|
|||
|
|
<h1>Документы</h1>
|
|||
|
|
</div>
|
|||
|
|
<div class="main-title">
|
|||
|
|
<p style="font-size: 16px;">В данном разделе вы можете сохранить документы Вашей компании для доступа к ним всех сотрудников: договоры, соглашения и др.</p>
|
|||
|
|
</div>
|
|||
|
|
<div class="my-docs flat__modal">
|
|||
|
|
<div class="add-folder" style="padding: 20px 20px 0px 20px">
|
|||
|
|
<?php
|
|||
|
|
if(isset($hasRestrictedAccess) && $hasRestrictedAccess){ ?>
|
|||
|
|
<a href="javascript:{}" class="tab tab__new-object" onclick="trialperiod.modalDoc();">
|
|||
|
|
<i class="ti-plus"></i><span>Новая папка</span>
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
<?php
|
|||
|
|
} else {
|
|||
|
|
?>
|
|||
|
|
<a href="javascript:{}" class="tab tab__new-object new_folder_add">
|
|||
|
|
<i class="ti-plus"></i><span>Новая папка</span>
|
|||
|
|
</a>
|
|||
|
|
<?php } ?>
|
|||
|
|
</div>
|
|||
|
|
<div class="tabs__content" style="display: none; padding: 20px" id="docs_info_tab">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="control-groups" style="padding-top: 40px;">
|
|||
|
|
<div class="main-title">
|
|||
|
|
<h1>Интерактивные документы</h1>
|
|||
|
|
</div>
|
|||
|
|
<div class="main-title">
|
|||
|
|
<p style="font-size: 16px;">В данном разделе вы можете создавать бланки документов Вашей компании, которые позже могут быть заполнены данными из карточки объекта или клиента.</p>
|
|||
|
|
</div>
|
|||
|
|
<div class="control-group first-level" id="inner_blanks_list" style="border-bottom: none;padding-bottom: 0px !important;">
|
|||
|
|
<h2 style="position: sticky; top:0; padding: 15px 0; background: white;">Бланки документов</h2>
|
|||
|
|
<div class="docs">
|
|||
|
|
<div class="docs-list blanks">
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th></th>
|
|||
|
|
<th>Название бланка</th>
|
|||
|
|
<th>Тип бланка</th>
|
|||
|
|
<th>Автор</th>
|
|||
|
|
<th>Дата/время</th>
|
|||
|
|
<th></th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr>
|
|||
|
|
<td colspan="6" style="text-align: center;">Нет сохранённых бланков</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
<div class="bottom">
|
|||
|
|
<?php
|
|||
|
|
if(isset($hasRestrictedAccess) && $hasRestrictedAccess){ ?>
|
|||
|
|
|
|||
|
|
<a class="fr-btn steel" onclick="trialperiod.modalDoc();" href="javascript:{};">
|
|||
|
|
<i class="ti-plus"></i><span> Создать бланк</span>
|
|||
|
|
</a>
|
|||
|
|
<?php
|
|||
|
|
} else { ?>
|
|||
|
|
<a class="fr-btn steel" onclick="createNewInnerBlank();" href="javascript:{};">
|
|||
|
|
<i class="ti-plus"></i><span> Создать бланк</span>
|
|||
|
|
</a>
|
|||
|
|
<?php } ?>
|
|||
|
|
<?php if ($_SESSION['agency'] > 0 || $_SESSION['manager'] > 0 || $_SESSION['users_admin'] > 0) { ?>
|
|||
|
|
<a class="fr-btn steel" onclick="addInnerFields();" href="javascript:{};" style="margin-right: 15px;">
|
|||
|
|
<i class="ti-pencil"></i><span> Редактор переменных</span>
|
|||
|
|
</a>
|
|||
|
|
<?php } ?>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="control-group first-level" id="inner_docs_list">
|
|||
|
|
<h2 style="position: sticky; top:0; padding: 15px 0; background: white;">Сохранённые документы</h2>
|
|||
|
|
<div class="docs">
|
|||
|
|
<div class="docs-list docs">
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th></th>
|
|||
|
|
<th>Название документа</th>
|
|||
|
|
<th>Основной бланк</th>
|
|||
|
|
<th>Автор</th>
|
|||
|
|
<th>Дата/время</th>
|
|||
|
|
<th></th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr>
|
|||
|
|
<td colspan="6" style="text-align: center;">Нет сохранённых документов</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
<div class="bottom">
|
|||
|
|
<?php
|
|||
|
|
if(isset($hasRestrictedAccess) && $hasRestrictedAccess){ ?>
|
|||
|
|
<a class="fr-btn steel"
|
|||
|
|
onclick="trialperiod.modalDoc();"
|
|||
|
|
href="javascript:{};">
|
|||
|
|
<i class="ti-plus"></i><span> Создать документ</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<?php
|
|||
|
|
} else { ?>
|
|||
|
|
<a class="fr-btn steel"
|
|||
|
|
onclick="createNewInnerDoc();"
|
|||
|
|
href="javascript:{};">
|
|||
|
|
<i class="ti-plus"></i><span> Создать документ</span>
|
|||
|
|
</a>
|
|||
|
|
<?php } ?>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="object-content__preloader" style="display: block;">
|
|||
|
|
<img src="../images/rocket-spinner.svg" width="96px">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<script>
|
|||
|
|
$(document).ready(function() {
|
|||
|
|
get_folders();
|
|||
|
|
getInnerBlanks();
|
|||
|
|
getInnerDocs();
|
|||
|
|
});
|
|||
|
|
</script>
|
|||
|
|
<div class="full_modal-bg" id="folder_add_bg" style="display: none">
|
|||
|
|
<span class="pseudo-link closer"><i class="ti-close"></i></span>
|
|||
|
|
<div class="full_modal edit-modal" id="folder_add" style="display: none;">
|
|||
|
|
<form id="form_add_folder" class="form-validate" method="post">
|
|||
|
|
<div class="modal-inner">
|
|||
|
|
<h2>Новая папка</h2>
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">Наименование</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<div class="button-row">
|
|||
|
|
<input type="text" class="text" required name="name" value="">
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">Права на папку</div>
|
|||
|
|
<div class="filter-popup-input">
|
|||
|
|
<div class="crm__filter-input">
|
|||
|
|
<select id="filter-perm-doc-type" multiple name="perm_folder">
|
|||
|
|
<?php
|
|||
|
|
$sql = 'SELECT * FROM `users` WHERE `id_manager` = '.$_SESSION["agency_id"].' order by id desc';
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
while ($row = mysql_fetch_assoc($q)) {
|
|||
|
|
echo '<option data-op="'.$row["last_name"].' '.$row["first_name"].' '.$row["middle_name"].'"value="'.$row["id"].'">'.$row["last_name"].' '.$row["first_name"].' '.$row["middle_name"].'</option>';
|
|||
|
|
}
|
|||
|
|
?>
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-submit">
|
|||
|
|
|
|||
|
|
<input type="hidden" name="user_id" id="folder_idUser" value="<?php echo $_SESSION['id']; ?>">
|
|||
|
|
<button type="submit">Добавить <i class="ti-angle-right"></i></button>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="full_modal-bg" id="files_upload" style="display: none">
|
|||
|
|
<span class="pseudo-link closer"><i class="ti-close"></i></span>
|
|||
|
|
<div class="container full_modal edit-modal" id="file_upload" style="display: none;">
|
|||
|
|
<input id="fileupload_folder_id" type="hidden" value="">
|
|||
|
|
<form id="form_add_folder" class="form-validate" method="post">
|
|||
|
|
|
|||
|
|
<div class="modal-inner">
|
|||
|
|
<h2>Загрузка файлов</h2>
|
|||
|
|
<!-- The fileinput-button span is used to style the file input field as button -->
|
|||
|
|
<span class="btn btn-success fileinput-button">
|
|||
|
|
<i class="glyphicon glyphicon-plus"></i>
|
|||
|
|
<span>Выберите файлы...</span>
|
|||
|
|
<!-- The file input field used as target for the file upload widget -->
|
|||
|
|
<input id="fileupload" type="file" accept="video/*,image/*,.pdf,.doc,.docx,.zip,.rar" name="files[]" multiple>
|
|||
|
|
</span>
|
|||
|
|
<br>
|
|||
|
|
<br>
|
|||
|
|
<!-- The global progress bar -->
|
|||
|
|
<div id="progress" class="progress">
|
|||
|
|
<div class="progress-bar progress-bar-success"></div>
|
|||
|
|
</div>
|
|||
|
|
<!-- The container for the uploaded files -->
|
|||
|
|
<div id="files" class="files"></div>
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<script src="/js/jquery.fileupload.js"></script>
|
|||
|
|
|
|||
|
|
<div class="full_modal-bg" id="inner_blank_modal_bg" style="display: none">
|
|||
|
|
<span class="pseudo-link closer"><i class="ti-close"></i></span>
|
|||
|
|
<div class="full_modal edit-modal" id="inner_blank_modal" style="display: none;">
|
|||
|
|
<form id="inner_blank_form" class="form-validate" method="post">
|
|||
|
|
<div class="modal-inner">
|
|||
|
|
<h2 id="inner_blank_title">Новый бланк</h2>
|
|||
|
|
<div class="error_msg hidden" style="width:100%;"></div>
|
|||
|
|
<div class="jw-tabs">
|
|||
|
|
<ul class="tabs__caption">
|
|||
|
|
<li data-target="info" data-page="0" class="active">
|
|||
|
|
<i class="tabs-li__icon info"><i class="ti-user"></i></i><span>Общие</span>
|
|||
|
|
</li>
|
|||
|
|
<li data-target="document" data-page="1">
|
|||
|
|
<i class="tabs-li__icon document"><i class="ti-file"></i></i><span>Бланк документа</span>
|
|||
|
|
</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
<div style="overflow: hidden;">
|
|||
|
|
<div class="tabs__content info" style="display: block;">
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">Название бланка</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<div class="button-row">
|
|||
|
|
<input type="text" class="text" name="name" value="" required>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">
|
|||
|
|
Префикс договора
|
|||
|
|
<span class="quest_funnel" style="font-size:18px;">
|
|||
|
|
<a style="border-bottom: none;" onclick="prefixHelp();" href="javascript:{}"><i class="ti-help-alt"></i></a>
|
|||
|
|
</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<div class="button-row">
|
|||
|
|
<input type="text" class="text" name="prefix_doc" value="" required>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">Тип бланка</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<div class="button-row">
|
|||
|
|
<select type="text" class="text" name="type" required>
|
|||
|
|
<option value="0">Не выбран</option>
|
|||
|
|
<?php
|
|||
|
|
$types = Docs::getBlankTypes();
|
|||
|
|
foreach ($types as $value => $type) {
|
|||
|
|
echo '<option value="'.$value.'">'.$type.'</option>';
|
|||
|
|
}
|
|||
|
|
?>
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="tabs__content document" style="display: none;">
|
|||
|
|
<textarea name="content" id="blankContent" rows="14" cols="80"></textarea>
|
|||
|
|
<script>
|
|||
|
|
$(document).ready(function () {
|
|||
|
|
CKEDITOR.replace('blankContent', {
|
|||
|
|
baseFloatZIndex: 99998,
|
|||
|
|
height: $(window).height()/2.4,
|
|||
|
|
toolbarGroups: [
|
|||
|
|
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
|
|||
|
|
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker', 'editing' ] },
|
|||
|
|
{ name: 'forms', groups: [ 'forms' ] },
|
|||
|
|
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
|
|||
|
|
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'paragraph' ] },
|
|||
|
|
{ name: 'links', groups: [ 'links' ] },
|
|||
|
|
{ name: 'insert', groups: [ 'insert' ] },
|
|||
|
|
'/',
|
|||
|
|
{ name: 'styles', groups: [ 'styles' ] },
|
|||
|
|
{ name: 'colors', groups: [ 'colors' ] },
|
|||
|
|
{ name: 'tools', groups: [ 'tools' ] },
|
|||
|
|
{ name: 'others', groups: [ 'others' ] },
|
|||
|
|
],
|
|||
|
|
removeButtons: 'Source,Save,NewPage,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,Language,Flash,Smiley,Iframe,About,ShowBlocks',
|
|||
|
|
customValues: {
|
|||
|
|
variablesList: getInnerVariables(true),
|
|||
|
|
variablesListSob: getInnerVariables(true, 'infosob'),
|
|||
|
|
},
|
|||
|
|
extraPlugins: 'variablessob,variables,tableresize,docprefix',
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
</script>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-submit">
|
|||
|
|
<input type="hidden" name="user_id" value="<?php echo $_SESSION['id']; ?>">
|
|||
|
|
<input type="hidden" name="blank_id" value="">
|
|||
|
|
<button type="submit">Добавить <i class="ti-angle-right"></i></button>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div id="modal-prefix-help" class="modal">
|
|||
|
|
<div id="modal-content" class="modal-content">
|
|||
|
|
<p></p>
|
|||
|
|
<a id="prefixHelpClose" onclick="prefixHelpClose();">OK</a>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="full_modal-bg" id="inner_fields_modal_bg" style="display: none">
|
|||
|
|
<span class="pseudo-link closer"><i class="ti-close"></i></span>
|
|||
|
|
<div class="full_modal edit-modal" id="inner_fields_modal" style="display: none;">
|
|||
|
|
<form id="inner_fields_form" class="form-validate" method="post">
|
|||
|
|
<div class="modal-inner">
|
|||
|
|
<h2 id="inner_blank_title">Переменные</h2>
|
|||
|
|
<div class="error_msg hidden" style="width:100%;"></div>
|
|||
|
|
<div class="variables-list"></div>
|
|||
|
|
<div class="inputs" style="margin-top: 10px;">
|
|||
|
|
<div class="inputs-group">
|
|||
|
|
<input type="checkbox" name="show_system_vars" class="part_check" style="margin: 10px;float: left;">
|
|||
|
|
<div class="label" style="line-height: 30px;">- отображать системные переменные</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div id="variablesForm" class="variables-form">
|
|||
|
|
<div class="error_msg hidden" style="width:100%;"></div>
|
|||
|
|
<div class="form-block" style="margin-top: 20px;">
|
|||
|
|
<a href="javascript:{}" id="add_variable" class="tab tab__new-variable">
|
|||
|
|
<i class="ti-plus"></i> <span>Добавить переменную</span>
|
|||
|
|
</a>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-submit">
|
|||
|
|
<input type="hidden" name="user_id" value="<?php echo $_SESSION['id']; ?>">
|
|||
|
|
<button type="submit">Сохранить <i class="ti-angle-right"></i></button>
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div id="inner_doc_modal_bg" class="chat-modal__bg hidden">
|
|||
|
|
<div id="inner_doc_modal" class="chat-modal hidden">
|
|||
|
|
<span class="pseudo-link closer-obj-events">
|
|||
|
|
<i class="ti-close"></i>
|
|||
|
|
</span>
|
|||
|
|
<div class="chat-modal__inner">
|
|||
|
|
<h2 id="inner_blank_title">Новый документ</h2>
|
|||
|
|
<div class="error_msg hidden" style="width:100%;"></div>
|
|||
|
|
<form id="inner_doc_form" class="form-validate" method="post">
|
|||
|
|
<!--<div class="form-block">
|
|||
|
|
<div class="label">
|
|||
|
|
Клиент
|
|||
|
|
</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<select name="client_id" multiple></select>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>-->
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">
|
|||
|
|
Клиенты
|
|||
|
|
</div>
|
|||
|
|
<input name="deal_clients" value='' type="hidden" id="docs-docs-new-client-vue"/>
|
|||
|
|
|
|||
|
|
<div style="margin-right: 20px;" class="inputs visibleSearch" id="docs-docs-new-client-input-vue">
|
|||
|
|
|
|||
|
|
<v-select v-model="clientSelect" :components="{OpenIndicator}" multiple transition="" placeholder=" Выберите клиентов" class="vue_select" style="width: 400px; border: none;" :options="clients" label="name" @search="getClientsListNew" :filterable="false" @option:selected="selectClientList" @option:deselected="setValueInput">
|
|||
|
|
<div class="spinner" v-show="spinner">Загрузка...</div>
|
|||
|
|
<template v-slot:option="clients">
|
|||
|
|
<span :style="'color:'+clients.color" v-html="clients.fio"></span>
|
|||
|
|
</template>
|
|||
|
|
<div slot="no-options">Не найдено клиентов...</div>
|
|||
|
|
|
|||
|
|
</v-select>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">
|
|||
|
|
Объект
|
|||
|
|
</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<select name="object_id"></select>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
<div class="form-block blank-id-input">
|
|||
|
|
<div class="label">
|
|||
|
|
Бланк документа
|
|||
|
|
</div>
|
|||
|
|
<div class="inputs">
|
|||
|
|
<select name="blank_id"></select>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
<input type="hidden" name="user_id" value="<?php echo $_SESSION['id']; ?>">
|
|||
|
|
<input type="hidden" name="blank_id_save" value="">
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-submit">
|
|||
|
|
<button type="button" onclick="addInnerDoc()">Создать документ</button>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div id="change-perm_modal_bg" class="chat-modal__bg hidden">
|
|||
|
|
<div id="change-perm_modal" class="chat-modal hidden">
|
|||
|
|
<span class="pseudo-link closer-obj-events">
|
|||
|
|
<i class="ti-close"></i>
|
|||
|
|
</span>
|
|||
|
|
<div class="chat-modal__inner">
|
|||
|
|
<h2 id="inner_blank_title">Изменить права доступа</h2>
|
|||
|
|
<div class="error_msg hidden" style="width:100%;"></div>
|
|||
|
|
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">Уже имеют права</div>
|
|||
|
|
<div class="have_perm" style="width: 60%; float: left;">
|
|||
|
|
<ul class="have_perm_inner"></ul>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<form id="change-perm_form" class="form-validate" method="post">
|
|||
|
|
<div class="form-block">
|
|||
|
|
<div class="label">Участники</div>
|
|||
|
|
<div class="inputs" style="width: 60%;">
|
|||
|
|
<select id="change-perm-doc" multiple name="perm_folder"></select>
|
|||
|
|
</div>
|
|||
|
|
<div class="clear"></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<input type="hidden" name="folder_id" value="">
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-submit">
|
|||
|
|
<button type="button" onclick="changePermDoc()">Изменить права</button>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<?php
|
|||
|
|
|
|||
|
|
require($_SERVER['DOCUMENT_ROOT']."/templates/footer.php"); ?>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
function prefixHelp() {
|
|||
|
|
let modal = $("#modal-prefix-help");
|
|||
|
|
modal.css("display", "block");
|
|||
|
|
|
|||
|
|
let modalContent = $("#modal-content p");
|
|||
|
|
modalContent.html("<p>При помощи префикса, вы можете задавать автоматическую нумерацию договора. Вставьте префикс по типу договора, чтобы система автоматически нумеровала их при создании</p>");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
function prefixHelpClose() {
|
|||
|
|
let modal = $("#modal-prefix-help");
|
|||
|
|
modal.css("display", "none");
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
//Для клиентов в задачах для документов
|
|||
|
|
if ($('#docs-docs-new-client-input-vue').length > 0) {
|
|||
|
|
var docs_docs_new_client_input_vue = new Vue({
|
|||
|
|
el: '#docs-docs-new-client-input-vue',
|
|||
|
|
components: {
|
|||
|
|
// Multiselect: window.VueMultiselect.default,
|
|||
|
|
//vuejsDatepicker: window.vuejsDatepicker
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
OpenIndicator: {
|
|||
|
|
render: createElement => createElement('span', { class: { 'vueToggleSpan': true } }),
|
|||
|
|
},
|
|||
|
|
clients: [],
|
|||
|
|
client_id: 0,
|
|||
|
|
spinner: true,
|
|||
|
|
clientSelect: [],
|
|||
|
|
debounceTimer: null,
|
|||
|
|
values: [],
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
clear(){
|
|||
|
|
|
|||
|
|
this.clientId = 0;
|
|||
|
|
this.clientSelect = [];
|
|||
|
|
},
|
|||
|
|
selectClientList() {
|
|||
|
|
//console.log(selectedOption);
|
|||
|
|
this.client_id = 0;
|
|||
|
|
//console.log(this.clientSelect);
|
|||
|
|
//bindObjReq();
|
|||
|
|
if (!isEmpty(this.clientSelect)) {
|
|||
|
|
this.client_id = this.clientSelect[this.clientSelect.length - 1].id;
|
|||
|
|
|
|||
|
|
this.setValueInput();
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
this.client_id = 0;
|
|||
|
|
this.setValueInput();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
setValueInput() {
|
|||
|
|
var values = [];
|
|||
|
|
for (var i = 0; i < this.clientSelect.length; i++) {
|
|||
|
|
values.push(this.clientSelect[i].id);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
this.values = values;
|
|||
|
|
//$("#docs-new-client-vue").val(JSON.stringify(values));
|
|||
|
|
},
|
|||
|
|
get_clientid_req(req_id){
|
|||
|
|
// console.log(req_id);
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php', {
|
|||
|
|
request: 'get_clientid_req',
|
|||
|
|
req_id: req_id,
|
|||
|
|
})
|
|||
|
|
.then((response) => {
|
|||
|
|
//console.log(response.data);
|
|||
|
|
if(!isEmpty(response.data.client_id)){
|
|||
|
|
this.search_client(response.data.client_id);
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
.catch(function(error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
getClientsList(search, loading) {
|
|||
|
|
// console.log(typeof loading);
|
|||
|
|
if (typeof loading == 'function') {
|
|||
|
|
loading(true);
|
|||
|
|
}
|
|||
|
|
var search_val = '';
|
|||
|
|
if (!isEmpty(search)) {
|
|||
|
|
search_val = search;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php', {
|
|||
|
|
request: 'get_clients_list',
|
|||
|
|
search: search_val,
|
|||
|
|
})
|
|||
|
|
.then((response) => {
|
|||
|
|
// console.log(response.data);
|
|||
|
|
this.clients = response.data;
|
|||
|
|
if (typeof loading == 'function') {
|
|||
|
|
loading(false);
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
.catch(function(error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
getClientsListNew(search, loading) {
|
|||
|
|
|
|||
|
|
clearTimeout(this.debounceTimer);
|
|||
|
|
this.debounceTimer = setTimeout(() => this.getClientsList(search, loading), 500);
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
search_client(client_id) {
|
|||
|
|
// console.log(client_id);
|
|||
|
|
if (parseInt(client_id) > 0) {
|
|||
|
|
// $("#object-new-client-vue").val(client_id);
|
|||
|
|
axios.post('/ajax/ajax_vue_requisitions.php', {
|
|||
|
|
request: 'get_client',
|
|||
|
|
client_id: client_id
|
|||
|
|
}, )
|
|||
|
|
.then((response) => {
|
|||
|
|
//console.log(response.data);
|
|||
|
|
var this_client = response.data;
|
|||
|
|
var index = this.clientSelect.length;
|
|||
|
|
this.$set(this.clientSelect, index, { id: client_id, color: '#000', name: this_client.text, fio: this_client.fio });
|
|||
|
|
this.setValueInput();
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
.catch(function(error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
checkClient(client_id) {
|
|||
|
|
|
|||
|
|
//var clientsId = JSON.parse($("#docs-new-client-vue").val());
|
|||
|
|
// console.log(clientsId.length);
|
|||
|
|
if (client_id > 0) {
|
|||
|
|
// for (var i = 0; i < clientsId.length; i++) {
|
|||
|
|
this.clientId = client_id;
|
|||
|
|
this.search_client(client_id);
|
|||
|
|
// }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
mounted() {
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
created: function() {
|
|||
|
|
|
|||
|
|
this.getClientsList();
|
|||
|
|
//this.checkClient();
|
|||
|
|
$("#docs-docs-new-client-input-vue").closest('.inputs').removeClass("hidden");
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
console.log(typeof docs_new_client_input_vue);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
</script>
|
|||
|
|
|