more fixs

This commit is contained in:
joseCorte-exe 2022-08-10 14:02:57 -03:00
parent 22c09a7e26
commit dfdbf1ab16
23 changed files with 139 additions and 111 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

View File

@ -85,7 +85,7 @@ export function CativoXLivreChart({ title, subtitle, chartData, label, dataset1,
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -95,7 +95,7 @@ export function CativoXLivreChart({ title, subtitle, chartData, label, dataset1,
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -109,7 +109,8 @@ export function CativoXLivreChart({ title, subtitle, chartData, label, dataset1,
offset: -20,
align: "start",
font: {
size: !miniature? 15 : 10
weight: 'bold',
size: !miniature? window.innerWidth/80 : window.innerWidth/105
},
formatter: (value, ctx) => {
let sum = 0;

View File

@ -49,7 +49,7 @@ export default function CostIndicatorChart({ title, data1, data2, label, subtitl
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -60,7 +60,7 @@ export default function CostIndicatorChart({ title, data1, data2, label, subtitl
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -75,14 +75,15 @@ export default function CostIndicatorChart({ title, data1, data2, label, subtitl
dataArr.map(data => {
sum += data;
});
const result = `${parseInt((parseInt(value)/10).toLocaleString('pt-br'))}`
const result = `${parseFloat((parseFloat(value)).toLocaleString('pt-br'))}`
return value==null? null : result
},
anchor: "end",
align: "end",
font: {
size: !miniature? 15 : 10,
weight: 'bold',
size: !miniature? window.innerWidth/80 : window.innerWidth/105
}
},
legend: {

View File

@ -26,6 +26,20 @@ export const ChartCardView = styled.article`
margin-bottom: 10px;
}
b {
display: flex;
align-items: center;
justify-content: center;
font-size: 17px;
color: #254F7F;
p {
font-size: 20px;
text-decoration: underline;
}
}
a {
font-family: 'Poppins';
font-style: normal;

View File

@ -46,7 +46,7 @@ export function GrossAnualChart({ title, subtitle, dataProps, label, dataset, ba
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -57,7 +57,7 @@ export function GrossAnualChart({ title, subtitle, dataProps, label, dataset, ba
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -82,10 +82,11 @@ export function GrossAnualChart({ title, subtitle, dataProps, label, dataset, ba
},
display: true,
anchor: "end",
offset: !miniature? 5 : 5,
offset: !miniature? 0 : -5,
align: "start",
font: {
size: !miniature? 30 : 10,
weight: 'bold',
size: !miniature? window.innerWidth/70 : window.innerWidth/90,
},
color: (value) => {
return value.dataset.label==='Consolidada'? '#fff' : '#255488'
@ -99,7 +100,6 @@ export function GrossAnualChart({ title, subtitle, dataProps, label, dataset, ba
text: '',
},
},
};
let labels: string[];

View File

@ -67,7 +67,7 @@ export default function GrossMensalChart({ title, data1, data2, label, subtitle,
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -77,7 +77,7 @@ export default function GrossMensalChart({ title, data1, data2, label, subtitle,
},
ticks: {
font: {
size: !miniature? window.innerWidth/80 : window.innerWidth/100
size: !miniature? window.innerWidth/90 : window.innerWidth/110
}
},
},
@ -101,7 +101,8 @@ export default function GrossMensalChart({ title, data1, data2, label, subtitle,
offset: 0,
align: "end",
font: {
size: !miniature? 18 : 10,
weight: 'bold',
size: !miniature? window.innerWidth/80 : window.innerWidth/120,
}
},
legend: {

View File

@ -40,6 +40,8 @@ export const HeaderView = styled.header`
img {
width: 100%;
height: auto;
border-radius: 8px;
}
}

View File

@ -125,7 +125,7 @@ export default function Sidebar() {
<Link href='/news'><li className={router.pathname=='/news'? 'actualPath' : null}><Image src='/assets/sidebar/newsIcon.svg' width={25} height={25} />{'Notícias'}</li></Link>
<Link href='/pld'><li onClick={() => setPldDrawer(!pldDrawer)} className={router.pathname=='/pld'? 'actualPath' : null}><Image src='/assets/sidebar/newsIcon.svg' width={25} height={25} />{'PLD'}</li></Link>
<Link href='/industryInfo'><li className={router.pathname=='/industryInfo'? 'actualPath' : null}><Image src='/assets/sidebar/sectorialInfoIcon.svg' width={25} height={25} />{'Info Setorial'}</li></Link>
<Link href='/notifications'><li className={router.pathname=='/notifications'? 'actualPath' : null}><Image src='/assets/sidebar/notificationsIcon.svg' width={25} height={25} />{'Notificações'}<div className='notification' style={{display: notificationsCount<=0||notificationsCount===undefined? 'none' : 'inherit'}}><p>{notificationsCount}</p></div></li></Link>
<Link href='/notifications'><li className={router.pathname=='/notifications'? 'actualPath' : null}><Image src='/assets/sidebar/notificationsIcon.svg' width={25} height={25} />{'Notificações'}<div className='notification' style={{display: notificationsCount<=0||notificationsCount===undefined? 'inherit' : 'inherit'}}><p>{notificationsCount}</p></div></li></Link>
<Link href='/aboutUs'><li className={router.pathname=='/aboutUs'? 'actualPath' : null}><Image src='/assets/sidebar/aboutUs.svg' width={25} height={25} />{'Sobre Nós'}</li></Link>
<Link href='/faq'><li className={router.pathname=='/faq'? 'actualPath' : null}><Image src='/assets/sidebar/saqIcon.svg' width={25} height={25} />{'FAQ'}</li></Link>
<button onClick={handleOpen}><Image src='/assets/logout.svg' width={25} height={25} />{'Sair'}</button>

View File

@ -51,7 +51,7 @@ export function AuthProvider({children}: {children: React.ReactNode}) {
if (token)
setCookie(undefined, '@smartAuth-token', token, {
maxAge: 60 * 60 * 1, // 1 hour
maxAge: 60 * 60 * 60 * 60 * 1,
})
if (user.role)

View File

@ -20,15 +20,32 @@ export default function aboutUs({userName, text}) {
<PageTitle title='Quem Somos' subtitle='Soluções inteligentes em Gestão de Energia'/>
</Header>
<AboutUsView>
{/* <Banner title='Quem Somos' subtitle='Soluções inteligentes em Gestão de Energia' imgSource='/assets/banners/aboutUsBanner.png' /> */}
<section dangerouslySetInnerHTML={{__html: text[0]?.about}}/>
{/* <section dangerouslySetInnerHTML={{__html: text[0]?.about}}/> */}
<section>
<p>A SMART ENERGIA é uma consultoria independente especializada em Gestão de Energia Elétrica, consolidada como uma das três maiores consultorias do Brasil.</p>
<p>Devido à grande experiência em operações na CCEE Câmara de Comercialização de Energia Elétrica e ANEEL, entrega resultados que superam as expectativas.</p>
<p>Nasceu para gerenciar a compra de energia com inovação, transparência e imparcialidade sendo o elo forte e necessário entre os Consumidores e os Agentes Vendedores de energia.</p>
<p>Baseada em sua experiência no setor elétrico adquirida desde 2001 e em mais de 900 unidades migradas, atua na negociação de contratos de compra e venda de energia, na Gestão de Energia no Mercado Livre e criação de produtos diferenciados para atender as necessidades específicas dos consumidores.</p>
<p>Apoiada pela sólida experiência de seus gestores, conhecendo as premissas dos agentes de Comercialização e Geração para a compra e venda de energia, aplicamos as mesmas premissas a favor dos Consumidores, disponibilizando assim um diferencial único para a tomada de decisão e elaboração das estratégias de contratação de energia.</p>
<ul>
<li>Informação</li>
<li>Economia</li>
<li>Gestão de Energia</li>
<li>Imparcialidade</li>
<li>Previsão de Custos</li>
<li>Experiência</li>
<li>Relacionamento</li>
</ul>
</section>
<div className='image'>
<Image src='/assets/banners/aboutUs.jpg' width={280} height={180}/>
</div>
<article>
<aside>
<h2>Apoio a projetos sociais</h2>
<div>
<Image src='/assets/stamps/whiteStamp.png' width={200} height={200} />
<Image src='/assets/stamps/blueStamp.png' width={200} height={200} />
<Image src='/assets/stamps/whiteStamp.png' width={140} height={140} />
<Image src='/assets/stamps/blueStamp.png' width={140} height={140} />
</div>
</aside>
</article>
@ -66,4 +83,3 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => {
}
}
}

View File

@ -1,4 +0,0 @@
export default function handler(req, res) {
res.status(200).json({ name: 'John Doe' })
}

View File

@ -78,16 +78,16 @@ export default function Dashboard({grossAnualGraph, grossAnualYears, grossMensal
typeof window === 'undefined' || typeof window === undefined? null :
<>
<section className='dashboard'>
<GraphCard title='Economia Bruta Anual' subtitle='Economia Bruta Estimada e Acumulada Anual - Valores em R$ x mil'>
<p style={{color: '#254F7F'}}><b>Economia Acumulada:</b> R${lastDataBrutaAnualS}</p>
<GraphCard title='Economia Anual' subtitle='Economia Bruta Estimada e Acumulada Anual - Valores em R$ x mil'>
<b>Economia Acumulada: <p>R${lastDataBrutaMensalS}</p></b>
<GrossAnualChart title='' subtitle=''
dataset='Consolidada'
dataProps={grossAnualGraph}
label={grossAnualYears} barLabel bruta miniature/>
</GraphCard>
<GraphCard title='Economia Bruta Mensal' subtitle='Economia Bruta Estimada e Acumulada Mensal - Valores em R$ x mil'>
<p style={{color: '#254F7F'}}><b>Economia Acumulada:</b> R${lastDataBrutaMensalS}</p>
<GraphCard title='Economia Mensal' subtitle='Economia Bruta Estimada e Acumulada Mensal - Valores em R$ x mil'>
<b>Economia Acumulada: <p>R${lastDataBrutaMensalS}</p></b>
<GrossMensalChart title='' subtitle=''
data1={grossMensalGraph}
data2={grossMensalGraph}
@ -96,7 +96,7 @@ export default function Dashboard({grossAnualGraph, grossAnualYears, grossMensal
/>
</GraphCard>
<GraphCard title='Cativo x Livre Mensal' subtitle='Comparativo de Custo Estimado - Valores em R$ x mil'>
<GraphCard title='Custo Mensal Cativo x Livre' subtitle='Comparativo de Custo Estimado - Valores em R$ x mil'>
<CativoXLivreChart chartData={acumulatedGraph}
dataset1="Economia (R$)" dataset2='Est. Cativo' dataset3='Est. Livre'
label={['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']} title='' subtitle='' barLabel hashurado miniature/>

View File

@ -115,7 +115,7 @@ export default function economy({userName, anual, years, brutaMensal, yearsBruta
}
<p>{
economyMenu===0 || economyMenu===1?
<><b>Economia Acumulada:</b> R${lastDataBrutaMensalS}</>
<><b>Economia Acumulada: <p>R${lastDataBrutaMensalS}</p></b></>
:
null
}</p>

View File

@ -12,6 +12,7 @@ import Snackbar from '@mui/material/Snackbar';
import MuiAlert, { AlertProps } from '@mui/material/Alert';
import { useRouter } from 'next/router'
import Banner from '../../components/banner/Banner'
import Image from 'next/image'
const Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(
props,
@ -62,8 +63,14 @@ export default function industryInfo({userName}: any) {
<PageTitle title='Info setorial' subtitle='Baixe o pdf para ver o info setorial'/>
</Header>
<IndustryInfoView>
{/* <Banner title='Info setorial' subtitle='Baixe o pdf para ver o info setorial' imgSource='/assets/banners/infoSetorial.jpg'/> */}
<section>
<article>
<p>A Smart é uma empresa de vanguarda na informação sobre o Setor Elétrico Brasileiro e mantém sólidos relacionamentos com os agentes e entidades do setor,
a informação precisa aliada à mais de 21 anos de experiência torna a sua consultoria estratégica para consumidores e geradores</p>
<Image src='/assets/banners/sectoriaInf.jpg' width={200} height={200}/>
</article>
<p>Um resumo das atualizações gerais do Setor Elétrico, com dados sobre geração consumo, demanda, meteorologia baseadas em informações do ONS, CCEE, ANEEL, 10 Maiores Jornais e Revistas e CPTEC</p>
</section>
<button onClick={() => handleDownloadPdf()}>Clique aqui para baixar o arquivo em PDF</button>
</IndustryInfoView>

View File

@ -26,12 +26,11 @@ export default function aboutUs({userName, news}: any) {
{
news.slice(0, 3).map(data => {
return <>
<section>
<h2 dangerouslySetInnerHTML={{__html: data.pubDate.slice(0, -8)}} />
<strong dangerouslySetInnerHTML={{__html: data.title}} />
<strong>ANEEL APROVA REAJUSTE TARIFÁRIO ANUAL DA ENERGISA SERGIPE DE 16,46 % PARA O CONSUMIDOR RESIDENCIAL</strong>
<h2 dangerouslySetInnerHTML={{__html: data.title}} />
<strong dangerouslySetInnerHTML={{__html: data.pubDate.slice(0, -8)}} />
{/* <strong>ANEEL APROVA REAJUSTE TARIFÁRIO ANUAL DA ENERGISA SERGIPE DE 16,46 % PARA O CONSUMIDOR RESIDENCIAL</strong> */}
<br />
<br />
{

View File

@ -174,7 +174,7 @@ export default function ResumoOperacao({tableData, clients, userName, clientMont
<th className='tg-8oo6'>Contraparte</th>
<th className='tg-8oo6'>Montante (MWh)</th>
<th className='tg-8oo6'>Preço(R$/MWh)</th>
<th className='tg-8oo6'>ValorNF/Crédito(R$)</th>
<th className='tg-8oo6'>Nota Fiscal (R$)</th>
</tr>
</thead>
<tbody>

View File

@ -33,6 +33,7 @@ import { getDiscretization } from '../../services/charts/telemetry/getDiscretiza
import { getPowerFactorData } from '../../services/charts/telemetry/getPowerFactor';
import { getDemand } from '../../services/charts/telemetry/getDemand';
import PageTitle from '../../components/pageTitle/PageTitle';
import { format } from 'date-fns';
const Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(
props,
@ -42,7 +43,7 @@ const Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(
})
export default function Telemetria({userName, clients}: any) {
const [unity, setUnity] = useState('');
const [unity, setUnity] = useState(clients[0].codigo_scde);
const [startDate, setStartDate] = useState(new Date());
const [endDate, setEndDate] = useState(new Date());
const [discretization, setDiscretization] = useState('1_hora');
@ -165,8 +166,6 @@ export default function Telemetria({userName, clients}: any) {
setLoader(false)
}
const [filters, setFilters] = useState()
const [fatorPotenciaData, setFatorPotenciaData] = useState([]);
const [demRegXDemCon, setDemRegXDemCon] = useState([]);
const [discretizedConsumptionData, setDiscretizedConsumptionData] = useState([]);
@ -180,6 +179,24 @@ export default function Telemetria({userName, clients}: any) {
getChartData()
}, [send])
useEffect(() => {
const firstOfTheMonth = format(new Date(startDate).setDate(1), 'yyyy-MM-dd')
const lastOfTheMonth = format(new Date(startDate.getFullYear(), startDate.getMonth() + 1, 0), 'yyyy-MM-dd')
setLoader(true)
getDiscretization(unity, new Date(firstOfTheMonth), new Date(lastOfTheMonth), discretization)
.then(result => {setDiscretizedConsumptionData(result); setSend(false); setLoader(false)})
.catch(() => {setSend(false); setOpenSnackFields(true)})
getDemand(unity, startDate, endDate, discretization)
.then(result => {setDemRegXDemCon(result); setSend(false)})
.catch(() => {setSend(false); setOpenSnackFields(true); setLoader(false)})
getPowerFactorData(unity, startDate, endDate, discretization)
.then(result => {setFatorPotenciaData(result); setSend(false); setLoader(false)})
.catch(() => {setSend(false); setOpenSnackFields(true); setLoader(false)})
}, [])
return(
<main style={{width: '100%'}}>
<Head>
@ -245,10 +262,10 @@ export default function Telemetria({userName, clients}: any) {
'Consumo discretizado em 1 dia'}/>
<Tab label="Demanda"/>
<Tab label="Fator Potencia"/>
<Tab label="Mês Atual"/>
</Tabs>
</TableHeader>
{/* discretization chart */}
<RenderIf isTrue={menu===0}>
<ChartFilters>
<div className='input'>
@ -337,15 +354,13 @@ export default function Telemetria({userName, clients}: any) {
}}/>
</div>
</ChartFilters>
{/* <RenderIf isTrue={discretization!=='1_dia' && discretization!=='1_mes'}> */}
<DiscretizedConsumptionChart title={
discretization==='5_min'? 'Consumo discretizado em 5 minutos' :
discretization==='15_min'? 'Consumo discretizado em 15 minutos' : discretization==='1_hora'? 'Consumo discretizado em 1 hora' : 'Consumo discretizado em 1 dia'
} subtitle='' dataProps={discretizedConsumptionData} label={discretizedConsumptionData.map(value => value.minut)} dataset={'Consumo'} dataset1='Estimado' month/>
{/* <p style={{alignSelf: 'center', textAlign: 'center'}}>{`Mês - ${startDate}`}</p> */}
{/* </RenderIf> */}
</RenderIf>
{/* demand chart */}
<RenderIf isTrue={menu===1}>
<ChartFilters>
<div className='input'>
@ -439,6 +454,7 @@ export default function Telemetria({userName, clients}: any) {
label={demRegXDemCon.map(value => value.hora)} title='Demanda Contratada X Registrada' subtitle='' red/>
</RenderIf>
{/* power factor chart */}
<RenderIf isTrue={menu===2}>
<ChartFilters>
<div className='input'>
@ -530,68 +546,6 @@ export default function Telemetria({userName, clients}: any) {
<FatorPotenciaChart title='Fator de Potencia' subtitle='' data1={fatorPotenciaData}
data2={fatorPotenciaData} dataset1='Fator de Potencia' dataset2='Fator ref' label={fatorPotenciaData.map(value => (value.day_formatted))} />
</RenderIf>
<RenderIf isTrue={menu===3}>
<ChartFilters>
<div className='input'>
<FormControl sx={{ minWidth: 100, width: 200 }} size="small">
<InputLabel>Unidade</InputLabel>
<Select
labelId="demo-select-small"
id="demo-select-small"
value={unity}
label="Unidade"
onChange={value => setUnity(value.target.value)}
sx={{height: 63, mb: 0.5}}
fullWidth
>
<MenuItem value="">
<em>Nenhum</em>
</MenuItem>
{/* <MenuItem value="RSZFNAENTR101P">RSZFNAENTR101P</MenuItem> COMENTARIO DE OPÇAO COM DADOS TESTES */}
{
clients.map((value) => {
return <MenuItem key={1} value={value.codigo_scde}>{value.unidade}</MenuItem>
})
}
</Select>
</FormControl>
</div>
<div className='input'>
<FormControl sx={{ minWidth: 120, width: 200, ml: 1, mr: 1 }} size="small">
<InputLabel>Discretização</InputLabel>
<Select
labelId="demo-select-small"
id="demo-select-small"
value={discretization}
label="Discretização"
onChange={value => setDiscretization(value.target.value)}
sx={{height: 63, mb: 0.5}}
fullWidth
>
<MenuItem value="">
<em>Nenhum</em>
</MenuItem>
<MenuItem value="5_min">5 minutos</MenuItem>
<MenuItem value="15_min">15 minutos</MenuItem>
<MenuItem value="1_hora">1 hora</MenuItem>
<MenuItem value="1_dia">1 dia</MenuItem>
<MenuItem value="1_mes">1 mês</MenuItem>
</Select>
</FormControl>
</div>
<div style={{marginBottom: '8px'}}>
<BasicButton title='Selecionar!' onClick={() => {
setLoader(true)
setSend(true)
getChartData()
}}/>
</div>
</ChartFilters>
<DemRegXDemConChart data1={demRegXDemCon2} data2={demRegXDemCon2}
dataset1={'Demanda contratada + 5%'} dataset2={'barra1'} dataset3={'Demanda Registrada'}
label={demRegXDemCon2?.map(value => value.hora)} title='Demanda Contratada X Registrada' subtitle='' red/>
</RenderIf>
</RenderIf>
<RenderIf isTrue={loader}>

View File

@ -12,7 +12,6 @@ export const TableView = styled.div`
width: 100%;
height: 100%;
.btn{
margin-top: 10px;
}
@ -168,7 +167,7 @@ export const NewTableLine = styled.section`
export const TableBodyView = styled.section`
border-radius: 8px;
background-color: #EFEFEF;
background-color: #fff;
width: 100%;

View File

@ -13,6 +13,16 @@ export const AboutUsView = styled.main`
background-color: #FFFFFF;
.image {
position: absolute;
right: 75px;
transform: translateY(-190px);
}
h2 {
font-size: 16px;
}
article {
display: flex;
justify-content: flex-end;

View File

@ -34,6 +34,18 @@ export const EconomyView = styled.main`
align-items: center;
justify-content: space-between;
b {
display: flex;
align-items: center;
justify-content: center;
font-size: 17px;
p {
font-size: 20px;
text-decoration: underline;
}
}
p {
:first-child {
margin-left: '3%'

View File

@ -17,6 +17,10 @@ export const IndustryInfoView = styled.main`
margin-bottom: 50px;
}
p {
text-align: justify;
}
button{
height: 70px;
width: 30%;
@ -54,4 +58,13 @@ export const IndustryInfoView = styled.main`
border-radius: 6px;
}
article {
display: flex;
justify-content: space-between;
flex-direction: row;
p {
width: 75%
}
}
`

View File

@ -19,11 +19,14 @@ export const NewsView = styled.main`
background-color: #FFFFFF;
text-align: justify;
.description {
a {
display: none;
}
p {
/* text-align: justify; */
:last-child {
display: none;
}