fixes for file lists

This commit is contained in:
merelendor 2023-03-27 15:59:35 +03:00
parent 397834a8a7
commit da301cc055
8 changed files with 108 additions and 72 deletions

View File

@ -53,9 +53,11 @@ export const updateQuestionnaire = ({ dispatch, questionnaire }) =>
return new Promise((resolve, reject) =>
{
dispatch({ type: actionTypes.QUESTIONNAIRE_UPDATE, data: { questionnaire, } });
setTimeout(() => {
console.log("UPDATE UPDATE UPDATE", global.store.getState(), { dispatch: dispatch });
resolve();
}, 500);
/*
setTimeout(() => {
console.log("ACTION", "questionnaireActions", "updateQuestionnaire", global.store.getState(), { dispatch: dispatch });
resolve();
}, 500);
*/
});
}

View File

@ -19,6 +19,8 @@ export default class FilesList extends React.Component
_handle_onAddFile = (files) =>
{
console.log("_handle_onAddFile", files);
const { name, onAddFile } = this.props;
onAddFile(name, files);
}

View File

@ -46,7 +46,7 @@ class Form_1_Main extends QuestionnaireForm
static getDerivedStateFromProps(nextProps, prevState)
{
return {
main: nextProps.main,
main: nextProps.questionnaire.main,
};
}
@ -92,7 +92,7 @@ class Form_1_Main extends QuestionnaireForm
render()
{
const { loading, main} = this.state;
const { loading, main } = this.state;
return (
<React.Fragment>
@ -227,7 +227,7 @@ class Form_1_Main extends QuestionnaireForm
function mapStateToProps(state, ownProps)
{
return {
main: state.questionnaire.main,
questionnaire: state.questionnaire,
}
}

View File

@ -20,31 +20,30 @@ class Form_2_Contacts extends QuestionnaireForm
{
super(props);
this.state = {
address_type: "legal",
address: "",
phone_check_loading: false,
phone_number_format_error: false,
fact_address: {
name: "",
fias_id: "",
},
legal_address: {
title: "",
fias_id: "",
},
postal_address: {
name: "",
fias_id: "",
},
contacts: {
address_type: "legal",
loading: false,
fact_address: {
name: "",
fias_id: "",
},
legal_address: {
title: "",
fias_id: "",
},
postal_address: {
name: "",
fias_id: "",
},
}
};
}
static getDerivedStateFromProps(nextProps, prevState)
{
return {
observer: nextProps.observer,
user: nextProps.user,
contacts: nextProps.questionnaire.contacts,
};
}
@ -73,7 +72,8 @@ class Form_2_Contacts extends QuestionnaireForm
render()
{
const { address_type, fact_address, postal_address, phone_check_loading, } = this.state;
const { contacts, loading } = this.state;
const { address_type, legal_address, fact_address, postal_address, } = contacts;
return (
<React.Fragment>
@ -85,7 +85,7 @@ class Form_2_Contacts extends QuestionnaireForm
<AddressSuggestsSelect
value={ fact_address.title }
fias={ fact_address.fias_id }
onChange={ (data) => this._handle_onTextFieldChange("fact_address", data) }
onChange={ (data) => this._handle_onTextFieldChange("contacts.fact_address", data) }
/>
<p>для юр.диц - заполняется, если отличается от указанного в ЕГРЮЛ; для ИП - заполняется всегда</p>
</div>
@ -97,39 +97,39 @@ class Form_2_Contacts extends QuestionnaireForm
<div className="form_field checkbox">
<input type="radio" hidden=""
value="legal"
id="address_type_legal"
name="address_type"
id="contacts.address_type_legal"
name="contacts.address_type"
checked={ address_type === "legal" ? true : false }
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }
/>
<label htmlFor="address_type_legal" className="unselectable">По юридическому адресу, указанному в ЕГРЮЛ (для юрлиц)</label>
<label htmlFor="contacts.address_type_legal" className="unselectable">По юридическому адресу, указанному в ЕГРЮЛ (для юрлиц)</label>
</div>
<div className="form_field checkbox">
<input type="radio" hidden=""
value="fact"
id="address_type_fact"
name="address_type"
id="contacts.address_type_fact"
name="contacts.address_type"
checked={ address_type === "fact" ? true : false }
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }
/>
<label htmlFor="address_type_fact" className="unselectable">По фактическому адресу, указанному в настоящей анкете</label>
<label htmlFor="contacts.address_type_fact" className="unselectable">По фактическому адресу, указанному в настоящей анкете</label>
</div>
<div className="form_field checkbox">
<input type="radio" hidden=""
value="postal"
id="address_type_postal"
name="address_type"
id="contacts.address_type_postal"
name="contacts.address_type"
checked={ address_type === "postal" ? true : false }
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }
/>
<label htmlFor="address_type_postal" className="unselectable" style={{ width: "100%" }}>
<label htmlFor="contacts.address_type_postal" className="unselectable" style={{ width: "100%" }}>
<span>По следующему адресу</span>
<AddressSuggestsSelect
value={ postal_address.title }
fias={ postal_address.fias_id }
onChange={ (data) => this._handle_onTextFieldChange("postal_address", data) }
onChange={ (data) => this._handle_onTextFieldChange("contacts.postal_address", data) }
disabled={ address_type === "postal" ? false : true }
/>
</label>
@ -139,7 +139,7 @@ class Form_2_Contacts extends QuestionnaireForm
<div className="action">
<button type="submit" className="button button-blue" disabled={ false }>
{ phone_check_loading ? (
{ 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>
@ -153,9 +153,7 @@ class Form_2_Contacts extends QuestionnaireForm
function mapStateToProps(state, ownProps)
{
return {
fact_address: state.questionnaire.fact_address,
legal_address: state.questionnaire.legal_address,
postal_address: state.questionnaire.postal_address,
questionnaire: state.questionnaire,
}
}

View File

@ -67,7 +67,7 @@ class Form_3_Signer extends QuestionnaireForm
placebirth: "",
citizenship_code: "",
registration_address: {
title: "Армения Ереван",
title: "",
fias_id: "",
}
},
@ -118,12 +118,12 @@ class Form_3_Signer extends QuestionnaireForm
static getDerivedStateFromProps(nextProps, prevState)
{
return {
main: nextProps.main,
head_person: nextProps.head_person,
head_person_files: nextProps.head_person_files,
individual_executive_files: nextProps.individual_executive_files,
signatory_person: nextProps.signatory_person,
signatory_person_files: nextProps.signatory_person_files,
main: nextProps.questionnaire.main,
head_person: nextProps.questionnaire.head_person,
head_person_files: nextProps.questionnaire.head_person_files,
individual_executive_files: nextProps.questionnaire.individual_executive_files,
signatory_person: nextProps.questionnaire.signatory_person,
signatory_person_files: nextProps.questionnaire.signatory_person_files,
};
}
@ -160,6 +160,8 @@ class Form_3_Signer extends QuestionnaireForm
modal_show_personal_data,
} = this.state;
console.log("individual_executive_files", this.state);
const { loading, } = this.state;
const { main, head_person, signatory_person } = this.state;
@ -754,12 +756,7 @@ class Form_3_Signer extends QuestionnaireForm
function mapStateToProps(state, ownProps)
{
return {
main: state.questionnaire.main,
head_person: state.questionnaire.head_person,
head_person_files: state.questionnaire.head_person_files,
individual_executive_files: state.questionnaire.individual_executive_files,
signatory_person: state.questionnaire.signatory_person,
signatory_person_files: state.questionnaire.signatory_person_files,
questionnaire: state.questionnaire,
}
}

View File

@ -100,7 +100,7 @@ export default class QuestionnaireForm extends React.Component
update[name] = value;
}
*/
this.setState(update);
this._updateQuestionnaire(update);
}
_handle_onCheckboxFieldChange = (name, value) =>
@ -108,6 +108,8 @@ export default class QuestionnaireForm extends React.Component
console.log("QuestionnaireForm", "_handle_onCheckboxFieldChange", { name, value });
const update = { ...this.state };
console.log("update", "BEFORE", update);
_set(update, name, value);
/*
@ -136,7 +138,7 @@ export default class QuestionnaireForm extends React.Component
update[name] = value;
}
*/
this.setState(update);
this._updateQuestionnaire(update);
}
_handle_onFieldChange = (name, payload) =>
@ -145,12 +147,13 @@ export default class QuestionnaireForm extends React.Component
const update = { ...this.state };
_set(update, name, payload);
this.setState(update);
this._updateQuestionnaire(update);
}
_handle_onAddFile = (name, files) =>
{
console.log("QuestionnaireForm", "_handle_onAdd", { name, files });
console.log("QuestionnaireForm", "_handle_onAddFile", { name, files });
const existed_files = [ ..._get(this.state, name) ];
for(let nf in files)
@ -169,7 +172,9 @@ export default class QuestionnaireForm extends React.Component
const update = { ...this.state };
_set(update, name, existed_files);
this.setState(update);
console.log("_handle_onAddFile", "update", update);
this._updateQuestionnaire(update);
}
_handle_onRemoveFile = (name, file_name) =>
@ -189,7 +194,8 @@ export default class QuestionnaireForm extends React.Component
const update = { ...this.state };
_set(update, name, files);
this.setState(update);
this._updateQuestionnaire(update);
}
}

View File

@ -100,6 +100,28 @@ export const defaultState = {
appeal: null,
request: null,
},
questionnaire_main: {
title: "",
inn: "",
kpp: "",
email: "",
telephone: "",
websiteurl: "",
financial_loan: "",
is_individual_executive: false,
individual_executive_inn: "",
individual_executive_kpp: "",
individual_executive_oop: "",
individual_executive_docnum: "",
individual_executive_docdate: "",
high_level: "",
board_of_directors: "",
collective_executive: "",
individual_executive: "",
other_control: "",
nko: false,
accept: false,
},
questionnaire: {
step: 9,
main: {
@ -124,17 +146,21 @@ export const defaultState = {
nko: false,
accept: false,
},
legal_address: {
title: "",
fias_id: "",
},
fact_address: {
name: "",
fias_id: "",
},
postal_address: {
name: "",
fias_id: "",
individual_executive_files: [],
contacts: {
address_type: "legal",
legal_address: {
title: "",
fias_id: "",
},
fact_address: {
name: "",
fias_id: "",
},
postal_address: {
name: "",
fias_id: "",
},
},
head_person: {
lastname: "",

View File

@ -19,6 +19,11 @@ const questionnaireReducer = (state = initialState.questionnaire, action) =>
case actionTypes.QUESTIONNAIRE_UPDATE:
{
console.log("actionTypes.QUESTIONNAIRE_UPDATE", {
...state,
...action.data.questionnaire,
});
return {
...state,
...action.data.questionnaire,