Merge branch 'master' of https://github.com/merelendor/evoleasing-account
This commit is contained in:
commit
990e62b781
@ -180,6 +180,47 @@ export const signGetFileContractProject = (payload) =>
|
||||
console.error("ACTION", "sign", "signGetFileContractProject()", "ERROR");
|
||||
console.error(error);
|
||||
|
||||
reject(error.data);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export const signUploadPaperDocument = (contract_number, deal_id, files) =>
|
||||
{
|
||||
console.log({ contract_number, files });
|
||||
const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/sign/document/upload`;
|
||||
|
||||
return new Promise((resolve, reject) =>
|
||||
{
|
||||
let data = new FormData();
|
||||
data.append('contract_number', contract_number);
|
||||
data.append('deal_id', deal_id);
|
||||
|
||||
for(let i in files)
|
||||
{
|
||||
data.append('files', files[i]);
|
||||
}
|
||||
|
||||
axios.post(url, data, {
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
withCredentials: true,
|
||||
})
|
||||
.then((response) =>
|
||||
{
|
||||
if(parseInt(process.env.LOG, 10) === 1) { console.log("ACTION", "sign", "signUploadPaperDocument()", "response", response.data); }
|
||||
|
||||
setTimeout(() =>
|
||||
{
|
||||
resolve();
|
||||
}, 2000);
|
||||
})
|
||||
.catch((error) =>
|
||||
{
|
||||
console.error("ACTION", "sign", "signUploadPaperDocument()", "ERROR");
|
||||
console.error(error);
|
||||
|
||||
reject(error.data);
|
||||
});
|
||||
});
|
||||
|
||||
@ -5,8 +5,9 @@ import { SpinnerCircular } from "spinners-react";
|
||||
import { concatSeries } from "async";
|
||||
import { eachSeries } from 'async';
|
||||
import Select from 'react-select';
|
||||
import Dropzone from 'react-dropzone';
|
||||
|
||||
import { createEDOProject, docEDOCancel, signCheckCreatePrintForm, signDownloadFile, signGetGUIDEntity, signGetWMDoc, docEDOSign, docEDOStatus, docEDOConnect } from "../../../actions";
|
||||
import { docEDOCancel, signCheckCreatePrintForm, signGetGUIDEntity, signGetWMDoc, docEDOStatus, getFile, signGetFileContractProject, signUploadPaperDocument } from "../../../actions";
|
||||
|
||||
export default class DealContractsSignPaper extends React.Component
|
||||
{
|
||||
@ -60,9 +61,20 @@ export default class DealContractsSignPaper extends React.Component
|
||||
for(let i in documents)
|
||||
{
|
||||
console.log({ fin: documents[i] });
|
||||
if(!documents[i].completed)
|
||||
completed = false;
|
||||
break;
|
||||
if(documents[i].error)
|
||||
{
|
||||
console.log(11111);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!documents[i].completed)
|
||||
{
|
||||
console.log(22222);
|
||||
completed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return completed;
|
||||
@ -84,37 +96,17 @@ export default class DealContractsSignPaper extends React.Component
|
||||
{
|
||||
callback();
|
||||
}
|
||||
else if(document.signing)
|
||||
if(document.uploading)
|
||||
{
|
||||
await this._updateDocs(document.index, { loading: true, });
|
||||
|
||||
const status_result = await docEDOStatus({ contract_number: document.id });
|
||||
if(status_result.status === 3)
|
||||
{
|
||||
await this._updateDocs(document.index, { loading: false, signing: false, ready: false, completed: true, });
|
||||
}
|
||||
else
|
||||
{
|
||||
await this._updateDocs(document.index, { loading: false, signing: true, ready: false, });
|
||||
}
|
||||
|
||||
callback();
|
||||
}
|
||||
else if(document.ready)
|
||||
{
|
||||
callback();
|
||||
/*
|
||||
console.log({ document })
|
||||
await this._updateDocs(document.index, { loading: true, });
|
||||
|
||||
const status_result = await docEDOStatus({ contract_number: document.id });
|
||||
console.log({ status_result });
|
||||
|
||||
if(status_result.status > 0)
|
||||
{
|
||||
const sign_result = await docEDOSign({ edoid: status_result.edoid });
|
||||
}
|
||||
|
||||
await this._updateDocs(document.index, { loading: false, signing: true, ready: false, error: false, });
|
||||
callback();
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -150,8 +142,6 @@ export default class DealContractsSignPaper extends React.Component
|
||||
});
|
||||
console.log({ wmdoc_result });
|
||||
|
||||
const connect_result = await docEDOConnect({ contract_number: document.id });
|
||||
|
||||
await this._updateDocs(document.index, {
|
||||
entity_id: get_guid_entity_result.entityid,
|
||||
ready: true,
|
||||
@ -162,7 +152,12 @@ export default class DealContractsSignPaper extends React.Component
|
||||
}
|
||||
else
|
||||
{
|
||||
await this._updateDocs(document.index, { loading: false, error: true, ready: true, message: "Возникла ошибка при создании документа для подписания." });
|
||||
await this._updateDocs(document.index, {
|
||||
loading: false,
|
||||
error: true,
|
||||
ready: true,
|
||||
message: create_print_form_result.message !== undefined && create_print_form_result.message !== null ? create_print_form_result.message : "Возникла ошибка при создании документа для подписания.",
|
||||
});
|
||||
callback();
|
||||
}
|
||||
}
|
||||
@ -174,7 +169,7 @@ export default class DealContractsSignPaper extends React.Component
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setState({ loading: false });
|
||||
this.setState({ loading: false, finished: false, });
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -201,19 +196,23 @@ export default class DealContractsSignPaper extends React.Component
|
||||
}
|
||||
}
|
||||
|
||||
_handle_onDownloadFile = (index, entity_id, name) =>
|
||||
_handle_onDownloadFile = (index) =>
|
||||
{
|
||||
console.log("_handle_onDownloadFile", { index, entity_id });
|
||||
const { documents } = this.state;
|
||||
|
||||
this.setState({ loading: true, disabled: true, }, async () =>
|
||||
{
|
||||
await this._updateDocs(index, { loading: true });
|
||||
|
||||
const wmdoc_result = await signDownloadFile({
|
||||
payload: { entity_name: "evo_contract", entity_id, sign_type: "EDO", evo_id: "144", },
|
||||
filename: `ЛК ЭВОЛЮЦИЯ ${ name }.pdf`,
|
||||
const link_result = await signGetFileContractProject({
|
||||
contract_number: documents[index].id,
|
||||
});
|
||||
|
||||
await this._updateDocs(index, { loading: false, disabled: false, });
|
||||
console.log("_handle_onDownloadFile", { link_result });
|
||||
await getFile({ id: link_result.url, filename: `ЛК ЭВОЛЮЦИЯ ${ documents[index].id }.${ link_result.extension }` });
|
||||
|
||||
await this._updateDocs(index, { loading: false, disabled: false, ready: false, uploading: true, });
|
||||
this.setState({ loading: false, disabled: false, });
|
||||
});
|
||||
}
|
||||
|
||||
@ -225,7 +224,7 @@ export default class DealContractsSignPaper extends React.Component
|
||||
|
||||
this.setState({ loading: true, disabled: true }, async () =>
|
||||
{
|
||||
await docEDOCancel({ contract_number: documents[index].id, doc_type_id: "144" });
|
||||
await docEDOCancel({ contract_number: documents[index].id, doc_type_id: "60" });
|
||||
const docs = [ ...this.state.documents ];
|
||||
docs.splice(index, 1);
|
||||
|
||||
@ -256,29 +255,33 @@ export default class DealContractsSignPaper extends React.Component
|
||||
onCancel(clean);
|
||||
}
|
||||
|
||||
_handle_onCheckEDOStatus = async (index) =>
|
||||
_handle_onUploadFile = async (files, index) =>
|
||||
{
|
||||
const { documents } = this.state;
|
||||
const { deal_id } = this.props;
|
||||
|
||||
console.log("_handle_onUploadFile", { files, index });
|
||||
await this._updateDocs(index, { loading: true });
|
||||
|
||||
this.setState({ loading: true, disabled: true }, async () =>
|
||||
{
|
||||
const status_result = await docEDOStatus({ contract_number: document.id });
|
||||
console.log({ status_result });
|
||||
await signUploadPaperDocument(documents[index].id, deal_id, files);
|
||||
await this._updateDocs(index, { loading: false, uploading: false, completed: true, });
|
||||
|
||||
if(status_result.status === 3)
|
||||
if(this._checkDocumentsCompleted())
|
||||
{
|
||||
await this._updateDocs(index, { loading: false, disabled: false, signing: false, completed: true, });
|
||||
this.setState({ loading: false, disabled: false, finished: true, });
|
||||
}
|
||||
else
|
||||
{
|
||||
await this._updateDocs(index, { loading: false, disabled: false, signing: true, completed: false, });
|
||||
this.setState({ loading: false, disabled: false, finished: false, });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_handle_onGoToEDO = () =>
|
||||
_handle_onCancelUpload = async (index) =>
|
||||
{
|
||||
|
||||
await this._updateDocs(index, { ready: true, uploading: false, });
|
||||
}
|
||||
|
||||
render()
|
||||
@ -320,34 +323,31 @@ export default class DealContractsSignPaper extends React.Component
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
{ document.upload && (
|
||||
<>
|
||||
<div className="status_icon await"></div>
|
||||
<div className="edo_sign_status_attorney_select">
|
||||
UPLOAD
|
||||
</div>
|
||||
</>
|
||||
) }
|
||||
{ document.ready && (
|
||||
<>
|
||||
<div className="status_icon success"></div>
|
||||
{ document.entity_id !== undefined && (
|
||||
<>
|
||||
<button className="button" disabled={ disabled } onClick={ () => this._handle_onDownloadFile(index, document.entity_id, document.name) }>Посмотреть проект договора</button>
|
||||
<button className="button" disabled={ disabled } onClick={ () => this._handle_onDownloadFile(index) }>Посмотреть проект договора</button>
|
||||
<button className="button" disabled={ disabled } onClick={ () => this._handle_onCancelFile(index) }>Отменить подписание</button>
|
||||
</>
|
||||
) }
|
||||
</>
|
||||
) }
|
||||
{ document.signing && (
|
||||
{ document.uploading && (
|
||||
<>
|
||||
<div className="status_icon success"></div>
|
||||
<div className="status_title">
|
||||
<i>Идет процесс подписания</i>
|
||||
</div>
|
||||
<div className="status_icon await"></div>
|
||||
{ document.entity_id !== undefined && (
|
||||
<>
|
||||
<button className="button" disabled={ disabled } onClick={ () => this._handle_onCheckEDOStatus(index) }>Проверить статус</button>
|
||||
<>
|
||||
<Dropzone onDrop={ (acceptedFiles) => this._handle_onUploadFile(acceptedFiles, index) } maxFiles={ 10 }>
|
||||
{ ({getRootProps, getInputProps}) => (
|
||||
<div { ...getRootProps() }>
|
||||
<button className="button" disabled={ disabled }>Загрузить скан подписанного документа</button>
|
||||
<input { ...getInputProps() } />
|
||||
</div>
|
||||
) }
|
||||
</Dropzone>
|
||||
<button className="button" disabled={ disabled } onClick={ () => this._handle_onCancelUpload(index) }>Отменить загрузку</button>
|
||||
</>
|
||||
) }
|
||||
</>
|
||||
@ -356,11 +356,8 @@ export default class DealContractsSignPaper extends React.Component
|
||||
<>
|
||||
<div className="status_icon success"></div>
|
||||
<div className="status_title">
|
||||
<i>Договор подписан со стороны "ЛК Эволюция"</i>
|
||||
<i>Договор отправлен вашему менеджеру "ЛК Эволюция"</i>
|
||||
</div>
|
||||
{ document.entity_id !== undefined && (
|
||||
<button className="button" disabled={ disabled } onClick={ () => this._handle_onGoToEDO(index) }>Перейти в ЭДО</button>
|
||||
) }
|
||||
</>
|
||||
) }
|
||||
</>
|
||||
@ -375,15 +372,11 @@ export default class DealContractsSignPaper extends React.Component
|
||||
<form ref={ this.ref_form } onSubmit={ this._handle_onFormSubmit } onKeyDown={(e) => {if (e.key === 'Enter') e.preventDefault() }}>
|
||||
<div className="form_field" style={{ display: "flex", justifyContent: "space-between" }}>
|
||||
<button className="button button-blue" onClick={ this._handle_onCancel }>Отменить</button>
|
||||
{ finished ? (
|
||||
<button type="submit" className="button button-blue">Завершить</button>
|
||||
) : (
|
||||
<button type="submit" className="button button-blue">
|
||||
{ loading ? (
|
||||
<SpinnerCircular size={24} thickness={100} speed={100} color="rgba(255, 255, 255, 1)" secondaryColor="rgba(255, 255, 255, 0.5)" style={{ marginTop: "4px" }}/>
|
||||
) : "Продолжить" }
|
||||
</button>
|
||||
) }
|
||||
<button type="submit" className="button button-blue" disabled={ finished ? false : true }>
|
||||
{ loading ? (
|
||||
<SpinnerCircular size={24} thickness={100} speed={100} color="rgba(255, 255, 255, 1)" secondaryColor="rgba(255, 255, 255, 0.5)" style={{ marginTop: "4px" }}/>
|
||||
) : "Продолжить" }
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -177,6 +177,7 @@ export default class LeasingRegistration extends Step
|
||||
|
||||
_render_preparedContracts = () =>
|
||||
{
|
||||
const { dealSelected } = this.props;
|
||||
const { edo, paper, checked } = this.state;
|
||||
//const checked = this.state.checked.prepared_contracts;
|
||||
|
||||
@ -198,7 +199,8 @@ export default class LeasingRegistration extends Step
|
||||
if(paper)
|
||||
{
|
||||
return (
|
||||
<DealContractsSignPaper
|
||||
<DealContractsSignPaper
|
||||
deal_id={ dealSelected }
|
||||
documents={ this._getDocuments() }
|
||||
onCancel={ this._handle_onCancelPaper }
|
||||
onFinish={ this._handle_onFinishPaper }
|
||||
|
||||
@ -147,15 +147,20 @@ export default class Offers extends Step
|
||||
</div>
|
||||
</td>
|
||||
) : (
|
||||
<td></td>
|
||||
)}
|
||||
<td>{ offer_index + 1 }</td>
|
||||
<td>{ numeral(offer.price).format(' ., ') } ₽</td>
|
||||
<td>{ numeral(offer.first_payment_rub).format(' ., ') } ₽</td>
|
||||
<td>{ offer.first_payment_perc }%</td>
|
||||
<td>{ offer.brand_name }</td>
|
||||
<td>{ offer.model_name }</td>
|
||||
<td>{ offer.object_count }</td>
|
||||
<td>
|
||||
<div className="form_field checkbox checkbox_disabled">
|
||||
<input type="checkbox" name="row" id={`offer_${ offer.quote_number }`} checked={ true } onChange={ () => { } } style={{ filter: "grayscale", opacity: 0.5 }}/>
|
||||
<label htmlFor={`offer_${ offer.quote_number }`}></label>
|
||||
</div>
|
||||
</td>
|
||||
) }
|
||||
<td data-title="№">{ offer_index + 1 }</td>
|
||||
<td data-title="Стоимость">{ numeral(offer.price).format(' ., ') } ₽</td>
|
||||
<td data-title="Первый платеж, ₽">{ numeral(offer.first_payment_rub).format(' ., ') } ₽</td>
|
||||
<td data-title="Первый платеж, %">{ offer.first_payment_perc }%</td>
|
||||
<td data-title="Марка">{ offer.brand_name }</td>
|
||||
<td data-title="Модель">{ offer.model_name }</td>
|
||||
<td data-title="Объектов лизинга">{ offer.object_count }</td>
|
||||
<td>
|
||||
<div className="docs_list" style={{ cursor: "pointer" }} onClick={ () => this._handle_onOffer(offer.quote_number) }>
|
||||
<div className="row">
|
||||
|
||||
@ -1064,19 +1064,11 @@
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.dropzone {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
height: auto;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.dropzone div p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.dropzone div p:before {
|
||||
content: attr(data-sm-text);
|
||||
display: block;
|
||||
}
|
||||
.dropzone div p span {
|
||||
display: none;
|
||||
.dropzone p {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
/* questionnaire */
|
||||
|
||||
@ -1265,23 +1265,11 @@
|
||||
}
|
||||
|
||||
@media all and (max-width: 768px) {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
height: auto;
|
||||
flex-wrap: wrap;
|
||||
|
||||
div {
|
||||
p {
|
||||
margin-bottom: 10px;
|
||||
|
||||
&:before {
|
||||
content: attr(data-sm-text);
|
||||
display: block;
|
||||
}
|
||||
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
p {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3962,6 +3962,11 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li {
|
||||
margin-top: 50px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.feed {
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
.feed .feed_item {
|
||||
box-sizing: border-box;
|
||||
padding: 24px 16px;
|
||||
@ -5300,6 +5305,8 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
}
|
||||
.contractStatus_list {
|
||||
margin: 50px 0;
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
}
|
||||
.contractStatus_list .list_item {
|
||||
display: flex;
|
||||
@ -5307,11 +5314,33 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
width: 100%;
|
||||
gap: 0 30px;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item {
|
||||
display: block;
|
||||
padding-left: 100px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_list .list_item {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div img {
|
||||
max-width: 30px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_list .list_item div img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div p {
|
||||
font-weight: 700;
|
||||
line-height: 23px;
|
||||
@ -5321,10 +5350,29 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
justify-content: flex-start;
|
||||
gap: 0 8px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div p {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 920px) and (min-width: 769px) {
|
||||
.contractStatus_list .list_item div:first-child {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
max-width: 90px;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(2) {
|
||||
width: 30%;
|
||||
position: relative;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_list .list_item div:nth-child(2) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(2) p {
|
||||
cursor: pointer;
|
||||
color: var(--text_not_active);
|
||||
@ -5344,6 +5392,11 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
border-bottom: 6px solid transparent;
|
||||
background: #fff;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(2):before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(2):after {
|
||||
content: "";
|
||||
display: block;
|
||||
@ -5353,6 +5406,11 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
background-size: auto 13px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(2):after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(3) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -5361,6 +5419,19 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
width: 50%;
|
||||
position: relative;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(3) {
|
||||
width: 100%;
|
||||
gap: 0 12px;
|
||||
padding: 10px 20px;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_list .list_item div:nth-child(3) {
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(3):before {
|
||||
content: "";
|
||||
display: block;
|
||||
@ -5375,6 +5446,18 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
border-left: 8px solid #a499dd;
|
||||
border-bottom: 6px solid transparent;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(3):before {
|
||||
border-top: 4px solid transparent;
|
||||
border-left: 6px solid #a499dd;
|
||||
border-bottom: 4px solid transparent;
|
||||
right: auto;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
transform: rotate(90deg);
|
||||
top: auto;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(3):after {
|
||||
content: "";
|
||||
display: block;
|
||||
@ -5383,22 +5466,54 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
background: url("/assets/images/status/line_2.jpg") repeat-x left center;
|
||||
background-size: auto 13px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(3):after {
|
||||
background-size: auto 10px;
|
||||
position: absolute;
|
||||
left: -22px;
|
||||
right: auto;
|
||||
transform: rotate(90deg);
|
||||
width: 50px;
|
||||
height: 6px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_list .list_item div:nth-child(3):after {
|
||||
left: -17px;
|
||||
width: 40px;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(4) {
|
||||
width: 130px;
|
||||
min-width: 130px;
|
||||
justify-content: flex-end;
|
||||
cursor: pointer;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(4) {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:nth-child(4) button {
|
||||
white-space: nowrap;
|
||||
gap: 0 8px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item div:nth-child(4) button {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item div:first-child {
|
||||
min-width: 60px;
|
||||
}
|
||||
.contractStatus_list .list_item:not(:last-child) {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_list .list_item:not(:last-child) {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
.contractStatus_list .list_item:not(:last-child) div:nth-child(5) {
|
||||
/*visibility: hidden;*/
|
||||
}
|
||||
@ -5417,6 +5532,12 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
transition: transform 150ms ease;
|
||||
overflow: hidden;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal {
|
||||
margin-bottom: 30px;
|
||||
overflow: visible;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .modal_header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -5444,12 +5565,18 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
gap: 0 30px;
|
||||
padding: 0px 0;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div {
|
||||
gap: 0 12px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div:last-child .status_body .wrap {
|
||||
padding-bottom: 0;
|
||||
border: 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div:last-child > span::before {
|
||||
display: none;
|
||||
display: none !important;
|
||||
}
|
||||
.contractStatus_modal .single_status > div > p {
|
||||
margin: 0;
|
||||
@ -5467,6 +5594,13 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div i {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
background-size: contain !important;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div i.status_100 {
|
||||
background: url("/assets/images/status/icon_deal_status_100.svg") no-repeat center;
|
||||
}
|
||||
@ -5572,9 +5706,25 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
z-index: -1;
|
||||
bottom: 0;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div:first-child {
|
||||
padding-top: 25px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div:first-child > p:first-child {
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div:not(:first-child) > p:first-child {
|
||||
visibility: hidden;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div:not(:first-child) > p:first-child {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div:not(.current) img {
|
||||
filter: grayscale(1);
|
||||
}
|
||||
@ -5687,6 +5837,19 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header {
|
||||
gap: 0 12px;
|
||||
font-size: 12px;
|
||||
min-height: 50px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header {
|
||||
flex-wrap: wrap;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .background {
|
||||
background-color: #edeff5;
|
||||
position: absolute;
|
||||
@ -5696,15 +5859,38 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
height: 50px;
|
||||
z-index: 1;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .background {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .background {
|
||||
left: -48px;
|
||||
width: calc(100% + 96px);
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .status_header i {
|
||||
z-index: 2;
|
||||
white-space: nowrap;
|
||||
min-width: 40px;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header i {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .status_header p {
|
||||
z-index: 2;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header p {
|
||||
max-width: calc(100% - 70px);
|
||||
white-space: unset;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .buttons {
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
@ -5712,6 +5898,13 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
justify-content: flex-end;
|
||||
padding-right: 4px;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .buttons {
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow {
|
||||
min-width: 50px;
|
||||
height: 50px;
|
||||
@ -5721,6 +5914,11 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
z-index: 2;
|
||||
margin-left: -30px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow {
|
||||
margin-left: -12px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow .icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
@ -5739,6 +5937,18 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
padding-bottom: 25px;
|
||||
border-bottom: 1px solid var(--inactive, #EDEFF5);
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap {
|
||||
margin-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap {
|
||||
margin-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap.form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -5747,9 +5957,19 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap.form .block {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap.form .block .left {
|
||||
width: 20%;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap.form .block .left {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap.form .block .left p {
|
||||
line-height: 14px;
|
||||
margin: 15px 0px 15px 0px;
|
||||
@ -5758,6 +5978,12 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
width: 80%;
|
||||
padding-left: 30px;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap.form .block .right {
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap input[type="checkbox"] + label {
|
||||
width: 16px;
|
||||
padding: 0;
|
||||
@ -5775,6 +6001,12 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
margin-right: 20%;
|
||||
padding-top: 10px;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .single_text p {
|
||||
margin-right: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .single_text p:before {
|
||||
content: "";
|
||||
display: block;
|
||||
@ -5786,6 +6018,11 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
margin-top: -10px;
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='40' height='40' rx='8' fill='%232F80ED' fill-opacity='0.1'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M20 29C24.9706 29 29 24.9706 29 20C29 15.0294 24.9706 11 20 11C15.0294 11 11 15.0294 11 20C11 24.9706 15.0294 29 20 29ZM21 14.5C21 13.9477 20.5523 13.5 20 13.5C19.4477 13.5 19 13.9477 19 14.5V19.75C19 20.4404 19.5596 21 20.25 21H23.5C24.0523 21 24.5 20.5523 24.5 20C24.5 19.4477 24.0523 19 23.5 19H21V14.5Z' fill='%232F80ED'/%3E%3C/svg%3E");
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .single_text p:before {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table {
|
||||
font-size: 12px;
|
||||
line-height: 120%;
|
||||
@ -5816,6 +6053,116 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table .i-pdf span {
|
||||
font-weight: 400;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table thead {
|
||||
display: none;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table tbody {
|
||||
display: block;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table tr {
|
||||
display: block;
|
||||
position: relative;
|
||||
padding-left: 31px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td {
|
||||
display: block;
|
||||
padding: 8px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:first-child:not(:empty) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 32px;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
border-left: 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:first-child:not(:empty) .form_field {
|
||||
width: 16px;
|
||||
margin: auto;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:not(:last-child) {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:empty {
|
||||
display: none;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td[data-title] {
|
||||
display: flex;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td[data-title]:before {
|
||||
content: attr(data-title);
|
||||
color: var(--text_not_active);
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
line-height: 120%;
|
||||
width: 100%;
|
||||
display: block;
|
||||
width: 50%;
|
||||
min-width: 50%;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table .docs_list .row .doc_name span {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table thead {
|
||||
display: none;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table tbody {
|
||||
display: block;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table tr {
|
||||
display: block;
|
||||
position: relative;
|
||||
padding-right: 56px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td {
|
||||
display: block;
|
||||
padding: 8px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:first-child:not(:empty) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 57px;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:first-child:not(:empty) .form_field {
|
||||
width: 16px;
|
||||
margin: auto;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:not(:last-child) {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td:empty {
|
||||
display: none;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table td[data-title]:before {
|
||||
content: attr(data-title);
|
||||
color: var(--text_not_active);
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
line-height: 120%;
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap table.deal_offers_table .docs_list .row .doc_name span {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .message {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -5898,6 +6245,15 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
justify-content: flex-end;
|
||||
gap: 0 20px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .block_footer_btn {
|
||||
flex-wrap: wrap;
|
||||
gap: 10px 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .block_footer_btn button {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .wrap .flex-start {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
@ -5932,11 +6288,19 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
grid-gap: 10px 0px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
@media all and (max-width: 1279px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .icon {
|
||||
margin-top: 5px;
|
||||
display: flex;
|
||||
@ -5957,6 +6321,17 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
font-size: 12px;
|
||||
color: #fff;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
min-width: 28px;
|
||||
min-height: 28px;
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .icon .extension {
|
||||
font-size: 8px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .title {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -5965,6 +6340,21 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
font-weight: 600;
|
||||
margin-left: 16px;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .title p {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 1279px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .title {
|
||||
width: calc(100% - 56px);
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .title {
|
||||
margin-left: 12px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .description {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@ -5975,6 +6365,12 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
margin-top: 2px;
|
||||
color: #8e94a7;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .description span {
|
||||
margin-left: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
@ -5983,9 +6379,32 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
}
|
||||
@media all and (max-width: 1279px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions {
|
||||
flex: auto;
|
||||
width: 100%;
|
||||
flex-wrap: wrap;
|
||||
padding-left: 50px !important;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions {
|
||||
padding-left: 30px !important;
|
||||
justify-content: flex-start;
|
||||
gap: 0 12px;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions button {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@media all and (max-width: 1279px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions button {
|
||||
order: 1;
|
||||
padding: 0;
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions .status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -5994,6 +6413,12 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
gap: 0px 16px;
|
||||
padding: 0px 16px;
|
||||
}
|
||||
@media all and (max-width: 1279px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions .status {
|
||||
width: 100%;
|
||||
order: 2;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions .status .status_icon {
|
||||
min-width: 24px;
|
||||
min-height: 24px;
|
||||
@ -6004,6 +6429,13 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
color: #fff;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@media all and (max-width: 1279px) {
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .actions .status span {
|
||||
white-space: inherit;
|
||||
line-height: 1.25;
|
||||
padding: 5px 0;
|
||||
}
|
||||
}
|
||||
.contractStatus_modal .single_status > div .status_body .documents .document .wide {
|
||||
justify-content: space-between;
|
||||
padding-left: 64px;
|
||||
@ -6032,6 +6464,14 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
height: 16px;
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 10L8 5L13 10' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.contractStatus_modal .bottom_button_close {
|
||||
margin-left: 0;
|
||||
padding: 0;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
}
|
||||
.all_contracts_modal .contractStatus_list .list_item .step {
|
||||
width: 50%;
|
||||
gap: 0 16px;
|
||||
@ -6075,6 +6515,16 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
padding: 30px;
|
||||
height: 100px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.horizontal_dropzone_wrapper {
|
||||
padding: 15px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.horizontal_dropzone_wrapper {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.horizontal_dropzone_wrapper.disabled {
|
||||
filter: grayscale(1);
|
||||
opacity: 0.25;
|
||||
@ -6085,6 +6535,17 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
max-width: 80%;
|
||||
gap: 20px;
|
||||
}
|
||||
@media all and (max-width: 920px) {
|
||||
.horizontal_dropzone_wrapper .horizontal_dropzone_inner {
|
||||
max-width: 100%;
|
||||
gap: 0 12px;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.horizontal_dropzone_wrapper .horizontal_dropzone_inner {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
.horizontal_dropzone_wrapper .horizontal_dropzone_inner p {
|
||||
text-align: left;
|
||||
margin: 0px;
|
||||
@ -6092,6 +6553,11 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
.horizontal_dropzone_wrapper .horizontal_dropzone_inner label {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@media all and (max-width: 768px) {
|
||||
.horizontal_dropzone_wrapper .horizontal_dropzone_inner label {
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
.horizontal_dropzone_files {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -6451,3 +6917,8 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
|
||||
padding-bottom: 15px;
|
||||
border-top: solid 1px #edeff5;
|
||||
}
|
||||
.checkbox_disabled label:before {
|
||||
filter: grayscale();
|
||||
opacity: 0.5;
|
||||
cursor: default !important;
|
||||
}
|
||||
|
||||
2459
css/main/style.less
2459
css/main/style.less
File diff suppressed because it is too large
Load Diff
@ -35,6 +35,7 @@
|
||||
"next-with-less": "^1.0.1",
|
||||
"nextjs-cors": "^2.1.0",
|
||||
"node-fetch": "^3.3.1",
|
||||
"nodemailer": "^6.9.7",
|
||||
"numeral": "^2.0.6",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"pluralize-ru": "^1.0.1",
|
||||
|
||||
115
pages/api/contract/sign/document/upload.js
Normal file
115
pages/api/contract/sign/document/upload.js
Normal file
@ -0,0 +1,115 @@
|
||||
import fs from 'fs';
|
||||
import axios from 'axios';
|
||||
import { Cookies } from 'react-cookie';
|
||||
import cookie from 'cookie';
|
||||
import moment from 'moment';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import Redis from 'ioredis';
|
||||
import md5 from 'md5';
|
||||
import { inspect } from 'util';
|
||||
import multer from 'multer';
|
||||
import nodemailer from "nodemailer";
|
||||
|
||||
import { cors } from '../../../../../lib/cors';
|
||||
|
||||
const transporter = nodemailer.createTransport({
|
||||
host: process.env.EMAIL_HOSTNAME,
|
||||
port: 465,
|
||||
secure: true,
|
||||
auth: {
|
||||
user: process.env.EMAIL_USERNAME,
|
||||
pass: process.env.EMAIL_PASSWORD,
|
||||
},
|
||||
});
|
||||
|
||||
console.log({ host: process.env.EMAIL_HOSTNAME, user: process.env.EMAIL_USERNAME, pass: process.env.EMAIL_PASSWORD });
|
||||
|
||||
const storage = multer.memoryStorage();
|
||||
const upload = multer({ storage: storage, limits: { fileSize: 1024 * 1024 * 300 } });
|
||||
|
||||
export default async function handler(req, res)
|
||||
{
|
||||
console.log("\n\n", "API", "SIGN", "/document/upload");
|
||||
await cors(req, res);
|
||||
|
||||
return new Promise(async (resolve) =>
|
||||
{
|
||||
if(req.headers.cookie !== undefined)
|
||||
{
|
||||
const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : "");
|
||||
|
||||
if(cookies.jwt !== undefined && cookies.jwt !== null)
|
||||
{
|
||||
var client_jwt_decoded = jwt.verify(cookies.jwt, process.env.JWT_SECRET_CLIENT);
|
||||
var crm_jwt = jwt.sign({ acc_number: client_jwt_decoded.acc_number }, process.env.JWT_SECRET_CRM, { noTimestamp: true });
|
||||
|
||||
upload.array("files", 10)(req, {}, (err) =>
|
||||
{
|
||||
const { contract_number, deal_id, } = req.body;
|
||||
const { files } = req;
|
||||
|
||||
const attachments = [];
|
||||
for(let i in files)
|
||||
{
|
||||
attachments.push({
|
||||
filename: Buffer.from(files[i].originalname, 'latin1').toString('utf8'),
|
||||
content: files[i].buffer,
|
||||
});
|
||||
}
|
||||
|
||||
axios.get(`${ process.env.CRM_API_HOST }/lk/Account/GetCompanyInfo/`, {
|
||||
params: {
|
||||
acc_number: client_jwt_decoded.acc_number,
|
||||
},
|
||||
headers: {
|
||||
"Authorization": `Bearer ${ crm_jwt }`,
|
||||
}
|
||||
})
|
||||
.then(async (crm_response) =>
|
||||
{
|
||||
console.log({ crm_response: crm_response.data });
|
||||
const { manager_email } = crm_response.data;
|
||||
|
||||
if(manager_email !== undefined && manager_email !== null && manager_email !== "")
|
||||
{
|
||||
const mail_result = await transporter.sendMail({
|
||||
from: '"Devone" <devone@quickcode.ru>',
|
||||
to: "aepifanov@evoleasing.ru",
|
||||
subject: `Скан договора №${ contract_number } для сделки №${ deal_id }`,
|
||||
text: `Клиентом загружен скан договора №${ contract_number } для сделки №${ deal_id }`,
|
||||
attachments,
|
||||
});
|
||||
console.log({ mail_result });
|
||||
}
|
||||
|
||||
res.status(200).send();
|
||||
resolve();
|
||||
})
|
||||
.catch((crm_error) =>
|
||||
{
|
||||
console.error({ crm_error: crm_error.data });
|
||||
|
||||
res.status(500).send();
|
||||
resolve();
|
||||
})
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
res.status(403).send();
|
||||
resolve();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
res.status(403).send();
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export const config = {
|
||||
api: {
|
||||
bodyParser: false
|
||||
}
|
||||
}
|
||||
@ -4816,6 +4816,11 @@ node-releases@^1.1.71:
|
||||
resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz"
|
||||
integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==
|
||||
|
||||
nodemailer@^6.9.7:
|
||||
version "6.9.7"
|
||||
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.7.tgz#ec2f488f62ba1558e7b19239b62778df4a5c4397"
|
||||
integrity sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==
|
||||
|
||||
normalize-path@^2.0.0, normalize-path@^2.0.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user