Adicionado um Tipo de Registo e Tipo de Empresa ao forms
main
Hugo Oliveira 1 year ago
parent 66679cddc5
commit bb52870dd2

@ -11,6 +11,8 @@ import axios from "axios";
interface dados {
tiporegisto: string;
tipoempresa: string;
empresa: string;
nif?: string;
representante: string;
@ -21,6 +23,7 @@ interface dados {
pais?: string;
cidade?: string;
codigoPostal?: string;
estado: string;
nomePessoaContacto: string;
telemovelPC: string;
@ -34,6 +37,8 @@ interface dados {
const initialValues: dados = {
tiporegisto: '',
tipoempresa: '',
empresa: '',
nif: undefined,
representante: '',
@ -44,6 +49,7 @@ const initialValues: dados = {
pais: 'Portugal',
cidade: '',
codigoPostal: undefined,
estado: 'Pendente',
nomePessoaContacto: '',
telemovelPC: '',
@ -63,6 +69,8 @@ function App() {
const schemaStep1 = yup.object({
tiporegisto: yup.string().required("*Por favor insira um tipo de registo registo válido"),
tipoempresa: yup.string(),
empresa: yup.string().required("*Por favor insira um nome válido"),
nif: yup.string().matches(/^[0-9]+$/, "*Por favor insira um NIF válido").length(9, "*O NIF deve ser composto por 9 dígitos"),
representante: yup.string().required("*Por favor insira um representante válido"),
@ -133,9 +141,11 @@ function App() {
phone: values.telemovelPC.replace(/\s/g, ''),
}]
};
console.log('Extracted Data:', extractedData);
console.log('Dados: ', values);
console.log('Dados API:', extractedData);
try {
// Make a POST request using Axios
const response = await axios.post('https://dev-hgp-sgi.streamline.pt/api/entities', extractedData);
@ -146,6 +156,7 @@ function App() {
// Handle errors
console.error('Error submitting data:', error);
}
};
const formik = useFormik<dados> ({

@ -1,7 +1,7 @@
import {Grid, Typography, TextField, Box, InputLabel, Select, MenuItem, Avatar, SelectChangeEvent} from '@mui/material';
import axios from 'axios';
import { MuiTelInput, matchIsValidTel } from 'mui-tel-input'
import { useEffect, useState } from 'react';
import { SetStateAction, useEffect, useState } from 'react';
interface Paises {
@ -19,6 +19,25 @@ export const DadosPessoais = ( {formik}: any ) => {
const [selectedValue, setSelectedValue] = useState('Portugal');
const [tipoRegisto, setTipoRegisto] = useState('');
const [smValue, setSmValue] = useState(6);
const handleTipoRegistoChange = (event: { target: { value: SetStateAction<string>; }; }) => {
setTipoRegisto(event.target.value);
const tipoempresaValue = '';
if (event.target.value == '0') {
setSmValue(3);
} else {
setSmValue(6);
}
formik.setFieldValue('tiporegisto', event.target.value);
formik.setFieldValue('tipoempresa', tipoempresaValue);
};
const handleChange2 = (event: SelectChangeEvent<unknown>) => {
setSelectedValue(event.target.value as string);
formik.setFieldValue( 'pais', event.target.value);
@ -57,7 +76,46 @@ export const DadosPessoais = ( {formik}: any ) => {
Dados Pessoais
</Typography>
<Grid container spacing={3}>
<Grid item xs={12} sm={6}>
<Grid item xs={12} sm={smValue}>
<InputLabel id="labeltiporegisto">Tipo de registo</InputLabel>
<Select
{...formik.getFieldProps('tiporegisto')}
required
labelId="labeltiporegisto"
id="tiporegisto"
name="tiporegisto"
label="tiporegisto"
variant="standard"
fullWidth
value={tipoRegisto}
onChange={handleTipoRegistoChange}
>
<MenuItem value={0}>Empresa</MenuItem>
<MenuItem value={1}>Particular</MenuItem>
</Select>
</Grid>
{tipoRegisto == '0' && (
<Grid item xs={12} sm={3}>
<InputLabel id="labeltipoempresa">Tipo de empresa</InputLabel>
<Select
{...formik.getFieldProps('tipoempresa')}
labelId="labeltipoempresa"
id="tipoempresa"
name="tipoempresa"
label="tipoempresa"
variant="standard"
fullWidth
>
<MenuItem value={0}>Empresa</MenuItem>
<MenuItem value={1}>Particular</MenuItem>
<MenuItem value={2}>Park</MenuItem>
</Select>
</Grid>
)}
<Grid item xs={12} sm={6} sx={{ mt: 0.9 }}>
<TextField
{...formik.getFieldProps('empresa')}
required
@ -70,18 +128,8 @@ export const DadosPessoais = ( {formik}: any ) => {
helperText={formik.touched.empresa && formik.errors.empresa}
/>
</Grid>
<Grid item xs={12} sm={6}>
<TextField
{...formik.getFieldProps('nif')}
type='text'
id="nif"
name="nif"
label="NIF/NIPC"
fullWidth
variant="standard"
/>
</Grid>
<Grid item xs={12} sm={12}>
<TextField
{...formik.getFieldProps('representante')}
required
@ -95,6 +143,19 @@ export const DadosPessoais = ( {formik}: any ) => {
helperText={formik.touched.representante && formik.errors.representante}
/>
</Grid>
<Grid item xs={12} sm={6}>
<TextField
{...formik.getFieldProps('nif')}
type='text'
id="nif"
name="nif"
label="NIF/NIPC"
fullWidth
variant="standard"
/>
</Grid>
<Grid item xs={12} sm={6}>
<MuiTelInput
{...formik.getFieldProps('telemovelDP')}
@ -110,6 +171,7 @@ export const DadosPessoais = ( {formik}: any ) => {
helperText={formik.touched.telemovelDP && formik.errors.telemovelDP}
/>
</Grid>
<Grid item xs={12} sm={6}>
<TextField
{...formik.getFieldProps('emailDP')}

Loading…
Cancel
Save