Joywork/templates/modals/req_info.php

616 lines
43 KiB
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<div id="req_info" class="hidden">
<div class="full_modal-bg" style="z-index: 99998;" v-show="is_show">
<span class="pseudo-link closer"><i class="ti-close" @click="closes()"></i></span>
<div class="full_modal edit-modal new-client__modal" style="max-width: 1050px;">
<div class="form-validate">
<div class="modal-inner">
<div v-if="errorMes" class="error_msg" v-html="errorText"></div>
<h2>Информация о заявке</h2>
<div class="jv-tabs">
<div class="form-block">
<div class="label">Тип заявки</div>
<div class="inputs">
<span v-if="!isEmpty(type_req)" class="span_from_block" v-html="type_req"></span>
<span class="span_from_block_small" v-else>Не установлено</span>
</div>
</div>
<div class="form-block">
<div class="label">Название</div>
<div class="inputs">
<span class="span_from_block" v-html="req.name"></span>
</div>
<div v-if="req.hot==1" class="form-block__hot-req active" title="Горячий клиент">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class=""><g><g transform="matrix(1.25 0 0 -1.25 0 45)"><path style="fill:#F4511E" d="M398.448-179.952c0,23.5-4.18,46.008-11.847,66.843c-5.24-61.375-37.967-92.917-72.162-78.234 c-32.043,13.761-10.445,67.401-8.851,92.996C308.277-54.958,305.451-5.293,226.637,36c32.749-62.651,3.793-101.563-26.586-103.943 c-33.683-2.62-64.542,28.956-53.151,80.216c-36.884-27.179-37.967-72.925-26.586-102.52c11.869-30.847-0.467-56.477-29.423-59.325 c-32.339-3.189-50.314,34.641-33.74,94.922c-28.683-33.775-45.997-77.516-45.997-125.302C11.152-286.902,97.85-373.6,204.8-373.6 S398.448-286.902,398.448-179.952z" data-original="#F4900C" class="active-path" data-old_color="#FF7043"></path>
<path style="fill:#FFB74D" d="M277.418-279.146c-23.978,9.603-17.554,26.097-23.728,60.27 c-6.174,34.173-29.902,57.912-65.031,68.346c25.63-72.14-14.204-98.726-35.084-103.476c-21.324-4.853-42.751,0.012-45.2,45.644 c-24.867-24.764-40.267-59.028-40.267-96.893c0-4.186,0.199-8.325,0.567-12.415C103.652-352.245,151.729-373.6,204.8-373.6 s101.148,21.355,136.126,55.932c0.369,4.09,0.567,8.229,0.567,12.415c0,24.901-6.652,48.253-18.283,68.358 C324.885-272.026,294.026-285.798,277.418-279.146z" data-original="#FFCC4D" class="" data-old_color="#FFCC4D"></path></g></g></svg>
</div>
<div v-if="req.priority==1" class="form-block__p1-client active" title="Категория заявки">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class="">
<ellipse cx="256" cy="256" rx="240" ry="240" class="priority1"/></svg>
</div>
<div v-if="req.priority==2" class="form-block__p2-client active" title="Категория заявки">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class="">
<ellipse cx="256" cy="256" rx="240" ry="240" class="priority2"/></svg>
</div>
<div v-if="req.priority==3" class="form-block__p3-client active" title="Категория заявки">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class="">
<ellipse cx="256" cy="256" rx="240" ry="240" class="priority3"/></svg>
</div>
<div v-if="req.priority==4" class="form-block__p4-client active" title="Категория заявки">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class="">
<ellipse cx="256" cy="256" rx="240" ry="240" class="priority4"/></svg>
</div>
<div class="clear"></div>
</div>
<div v-show="req.see_client" class="form-block">
<div class="label">Клиент</div>
<div class="inputs">
<span v-if="!isEmpty(req.client)" class="span_from_block" v-html="req.client.text"></span>
<span class="span_from_block_small" v-else>Не установлено</span>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Воронка</div>
<div class="inputs">
<span class="span_from_block" v-html="req.name_funnel"></span>
</div>
<div class="clear"></div>
</div>
<div v-if="!isEmpty(req.steps)" class="form-block stepsTable">
<div class="label">Этап</div>
<div class="inputs">
<div class="stagebar">
<div v-if="req.funnel_id == 0" class="crm__small-stagebar">
<table>
<tbody>
<tr>
<td v-for="(step, id) in req.steps.bar" class="stage" :class="[{ active: step.id <= req.steps.stageId }, step.classF]" :title="step.title">
<div class="crm__small-stage"></div>
<span class="next-stage" v-html="step.name"></span>
</td>
</tr>
</tbody>
</table>
</div>
<div v-else-if="req.funnel_id > 0" class="crm__small-stagebar">
<table>
<tbody>
<tr>
<td v-for="(step, id) in req.steps.bar" class="stage stage-funnel" :class="[step.classF]" :title="step.name">
<div class="crm__small-stage"></div>
<span class="next-stage" v-html="step.name"></span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="" style="clear: both; padding-top: 8px; margin-left: 23%;">
<span v-html="req.steps.stage"></span>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<template v-if="req.object_id > 0">
<div class="form-block">
<div class="label zz">Объект</div>
<!-- --><?php //if ($_SESSION['id'] == 15817) { ?>
<!-- <a style="word-break: normal; border: none; text-decoration: none; white-space: normal; display: inline-block;" href="javascript:{}" @click="openObject(req.object_id)">-->
<!-- {{ req.object.nazv }}-->
<!-- </a>-->
<!-- --><?php //} ?>
<div class="inputs">
<span v-if="!isEmpty(req.object)" style="cursor: pointer;" class="span_from_block open_object_req_info" v-html="req.object.nazv+' '+req.object.adres" @click="openObjectReqInfo(req.object_id)"></span>
<span class="span_from_block_small" v-else>Не установлено</span>
</div>
<div class="clear"></div>
</div>
</template>
<div v-if="!isEmpty(req.activities_name)" class="form-block proactivities">
<div class="label">Теги</div>
<div class="inputs">
<span class="span_from_block" v-html="req.activities_name"></span>
</div>
<div class="clear"></div>
</div>
<div v-if="!isEmpty(req.contracts)" class="form-block">
<div class="label">Договоры</div>
<div class="inputs">
<div v-for="(contract, index) in req.contracts">
<span class="span_from_block" v-html="contract.name"></span>
</div>
</div>
<div class="clear"></div>
</div>
<div v-if="!isEmpty(req.description)" class="form-block">
<div class="label">Описание</div>
<div class="inputs">
<span class="span_from_block" v-html="req.description"></span>
</div>
<div class="clear"></div>
</div>
<template v-if="!isEmpty(reqFields)">
<div v-for="(field, index) in reqFields">
<div v-show="field.req_type == 0 || JSON.parse(field.req_type).indexOf(req.type_id) > -1">
<template v-if="field.is_podgroup > 0">
<div class="form-block">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<v-select v-model="fieldModels['model_'+field.id]" :components="{OpenIndicator}" :id="'custom_req_'+field.id" transition="" class="vue_select" style="width: 400px; border: none;" :options="field.podgroups_select" :reduce="title => title.id" label="title" />
</div>
</div>
<div class="clear"></div>
<template v-if="!isEmpty(field.podgroups)">
<div v-for="(pg, in_pd) in field.podgroups" v-if="fieldModels['model_'+field.id] == pg.id" class="form-block">
<div class="label" v-html="pg.title"></div>
<div class="inputs">
<template v-if="pg.type==0">
<input class="text" v-model="fieldModels['modelp_'+pg.id]" style="width:400px;" :id="'custom_req_p'+pg.id"/>
</template>
<template v-else-if="pg.type==1">
<input class="number" v-model="fieldModels['modelp_'+pg.id]" style="width:400px;" :id="'custom_req_p'+pg.id"/>
</template>
<template v-else-if="pg.type==2">
<v-select :components="{OpenIndicator}" v-model="fieldModels['modelp_'+pg.id]" :id="'custom_req_p'+pg.id" transition="" class="vue_select" style="width: 400px; border: none;" :options="pg.params.items" :reduce="name => name.value" label="name" />
</template>
<template v-else-if="pg.type==3">
<v-select :components="{OpenIndicator}" v-model="fieldModels['modelp_'+pg.id]" :id="'custom_req_p'+pg.id" transition="" class="vue_select" style="width: 400px; border: none;" multiple :options="pg.params.items" :reduce="name => name.value" label="name" />
</template>
<template v-else-if="pg.type==4">
<div class="checkbox small">
<input v-model="fieldModels['modelp_'+pg.id]" type="checkbox" :checked="Boolean(fieldModels['modelp_'+pg.id])" :id="'custom_req_p'+pg.id" />
<label :for="'custom_req_p'+pg.id"></label>
</div>
</template>
<template v-else-if="pg.type==5">
<textarea class="text" v-model="fieldModels['modelp_'+pg.id]" :id="'custom_req_p'+pg.id" ></textarea>
</template>
</div>
</div>
<div class="clear"></div>
</template>
</template>
<template v-else-if="field.type==0">
<div v-if="!isEmpty(fieldModels['model_'+field.id])" class="form-block">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block" v-html="fieldModels['model_'+field.id]"></span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==1">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block" v-html="fieldModels['model_'+field.id]"></span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==2">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id]) && field.params.items.find((el, idx) => el.value == fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span v-if="field.params.items.find((el, idx) => el.value == fieldModels['model_'+field.id])" class="span_from_block" v-html="field.params.items.find((el, idx) => el.value == fieldModels['model_'+field.id]).name"></span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==3">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block">
<template v-for="(val, ind) in fieldModels['model_'+field.id]">
<span v-if="ind > 0">, </span>
<span v-html="field.params.items.find((el, idx) => el.value == val).name"></span>
</template>
</span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==4">
<div class="form-block">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<div class="checkbox small">
<input type="checkbox" v-model="fieldModels['model_'+field.id]" :checked="Boolean(fieldModels['model_'+field.id])" />
<label></label>
</div>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==5" >
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block" v-html="fieldModels['model_'+field.id]"></span>
</div>
</div>
<div class="clear"></div>
</template>
</div>
</div>
</template>
<div v-if="!isEmpty(req.master_work)" class="form-block">
<div class="label">Ответственный</div>
<div class="inputs">
<span class="span_from_block" v-html="req.master_work"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(req.source_name)">
<div class="label">Источник</div>
<div class="inputs">
<span class="span_from_block" v-html="req.source_name"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(req.employe_name)">
<div class="label">Партнёр</div>
<div class="inputs">
<span class="span_from_block" v-html="req.employe_name"></span>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button @click="closes" type="button">Закрыть&nbsp;<i class="ti-angle-right"></i></button>
</div>
</div>
</div>
</div>
<div id="client_info" class="hidden">
<div class="full_modal-bg" style="z-index: 99998;" v-show="is_show">
<span class="pseudo-link closer"><i class="ti-close" @click="closes()"></i></span>
<div class="full_modal edit-modal new-client__modal" style="max-width: 1050px;">
<div class="form-validate">
<div class="modal-inner">
<h2>Информация о клиенте</h2>
<div class="jv-tabs">
<div class="form-block" v-if="!isEmpty(client.fio)">
<div class="label">Клиент</div>
<div class="inputs">
<span class="span_from_block" v-html="client.fio"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Воронка</div>
<div class="inputs">
<span class="span_from_block" v-html="client.name_funnel"></span>
</div>
<div class="clear"></div>
</div>
<div v-if="!isEmpty(client.steps)" class="form-block stepsTable">
<div class="label">Этап</div>
<div class="inputs">
<div class="stagebar">
<div v-if="client.funnel_id == 0" class="crm__small-stagebar">
<table>
<tbody>
<tr>
<td v-for="(step, id) in client.steps.bar" class="stage" :class="[{ active: step.id <= client.steps.stageId }, step.classF]" :title="step.title">
<div class="crm__small-stage"></div>
<span class="next-stage" v-html="step.name"></span>
</td>
</tr>
</tbody>
</table>
</div>
<div v-else-if="client.funnel_id > 0" class="crm__small-stagebar">
<table>
<tbody>
<tr>
<td v-for="(step, id) in client.steps.bar" class="stage stage-funnel" :class="[step.classF]" :title="step.name">
<div class="crm__small-stage"></div>
<span class="next-stage" v-html="step.name"></span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="" style="clear: both; padding-top: 8px; margin-left: 23%;">
<span v-html="client.steps.stage"></span>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.email)">
<div class="label">Эл. почта</div>
<div class="inputs">
<span class="span_from_block" v-html="client.email"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.phone)">
<div class="label">Телефон</div>
<div class="inputs">
<span class="span_from_block" v-html="client.phone"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.work_type)">
<div class="label">Тип клиента</div>
<div class="inputs">
<span class="span_from_block" v-html="client.work_type"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.activities_name)">
<div class="label">Теги</div>
<div class="inputs">
<span class="span_from_block" v-html="client.activities_name"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.contracts)">
<div class="label">Договоры</div>
<div class="inputs">
<div v-for="(contract, index) in client.contracts">
<span class="span_from_block" v-html="contract.name"></span>
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.role_name)">
<div class="label">Роль клиента</div>
<div class="inputs">
<span class="span_from_block" v-html="client.role_name"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.type_name)">
<div class="label">Тип недвижимости</div>
<div class="inputs">
<span class="span_from_block" v-html="client.type_name"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(objects)">
<div class="label">Объекты</div>
<div class="inputs">
<div v-for="(object, index) in objects">
<span class="span_from_block" v-html="object.nazv+' '+object.adres"></span>
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.budget)">
<div class="label">Бюджет</div>
<div class="inputs">
<span class="span_from_block" v-html="client.budget"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.opis)">
<div class="label">Описание</div>
<div class="inputs">
<span class="span_from_block" v-html="client.opis"></span>
</div>
<div class="clear"></div>
</div>
<template v-if="!isEmpty(clientFields)">
<div v-for="(field, index) in clientFields">
<template v-if="field.is_podgroup > 0">
<div class="form-block">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<v-select v-model="fieldModels['model_'+field.id]" :components="{OpenIndicator}" :id="'custom_req_'+field.id" transition="" class="vue_select" style="width: 400px; border: none;" :options="field.podgroups_select" :reduce="title => title.id" label="title" />
</div>
</div>
<div class="clear"></div>
<template v-if="!isEmpty(field.podgroups)">
<div v-for="(pg, in_pd) in field.podgroups" v-if="fieldModels['model_'+field.id] == pg.id" class="form-block">
<div class="label" v-html="pg.title"></div>
<div class="inputs">
<template v-if="pg.type==0">
<input class="text" v-model="fieldModels['modelp_'+pg.id]" style="width:400px;" :id="'custom_req_p'+pg.id"/>
</template>
<template v-else-if="pg.type==1">
<input class="number" v-model="fieldModels['modelp_'+pg.id]" style="width:400px;" :id="'custom_req_p'+pg.id"/>
</template>
<template v-else-if="pg.type==2">
<v-select :components="{OpenIndicator}" v-model="fieldModels['modelp_'+pg.id]" :id="'custom_req_p'+pg.id" transition="" class="vue_select" style="width: 400px; border: none;" :options="pg.params.items" :reduce="name => name.value" label="name" />
</template>
<template v-else-if="pg.type==3">
<v-select :components="{OpenIndicator}" v-model="fieldModels['modelp_'+pg.id]" :id="'custom_req_p'+pg.id" transition="" class="vue_select" style="width: 400px; border: none;" multiple :options="pg.params.items" :reduce="name => name.value" label="name" />
</template>
<template v-else-if="pg.type==4">
<div class="checkbox small">
<input v-model="fieldModels['modelp_'+pg.id]" type="checkbox" :checked="Boolean(fieldModels['modelp_'+pg.id])" :id="'custom_req_p'+pg.id" />
<label :for="'custom_req_p'+pg.id"></label>
</div>
</template>
<template v-else-if="pg.type==5">
<textarea class="text" v-model="fieldModels['modelp_'+pg.id]" :id="'custom_req_p'+pg.id" ></textarea>
</template>
</div>
</div>
<div class="clear"></div>
</template>
</template>
<template v-else-if="field.type==0">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block" v-html="fieldModels['model_'+field.id]"></span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==1">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block" v-html="fieldModels['model_'+field.id]"></span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==2">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span v-if="field.params.items.find((el, idx) => el.value == fieldModels['model_'+field.id])" class="span_from_block" v-html="field.params.items.find((el, idx) => el.value == fieldModels['model_'+field.id]).name"></span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==3">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block">
<template v-for="(val, ind) in fieldModels['model_'+field.id]">
<span v-if="ind > 0">, </span>
<span v-html="field.params.items.find((el, idx) => el.value == val).name"></span>
</template>
</span>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==4">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<div class="checkbox small">
<input type="checkbox" v-model="fieldModels['model_'+field.id]" :checked="Boolean(fieldModels['model_'+field.id])" />
<label></label>
</div>
</div>
</div>
<div class="clear"></div>
</template>
<template v-else-if="field.type==5">
<div class="form-block" v-if="!isEmpty(fieldModels['model_'+field.id])">
<div class="label" v-html="field.title"></div>
<div class="inputs">
<span class="span_from_block" v-html="fieldModels['model_'+field.id]"></span>
</div>
</div>
<div class="clear"></div>
</template>
</div>
</template>
<div class="form-block" v-if="!isEmpty(client.master_work)">
<div class="label">Ответственный</div>
<div class="inputs">
<span class="span_from_block" v-html="client.master_work"></span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-if="!isEmpty(client.employe_name)">
<div class="label">Партнёр</div>
<div class="inputs">
<span class="span_from_block" v-html="client.employe_name"></span>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button @click="closes" type="button">Закрыть&nbsp;<i class="ti-angle-right"></i></button>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/js/vue_scripts/req_info_vue.js?<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/js/vue_scripts/req_info_vue.js')?>"></script>