Merge branch 'administativePages' into 'dev'

Administative pages

See merge request kluppsoftware/smart-energia-web!86
This commit is contained in:
José Corte 2022-06-28 20:29:49 +00:00
commit a1cf207963
5 changed files with 25 additions and 77 deletions

View File

@ -9,7 +9,7 @@ interface PageTitleInterface {
export default function PageTitle({ title, subtitle }: PageTitleInterface) { export default function PageTitle({ title, subtitle }: PageTitleInterface) {
return ( return (
<PageTitleView> <PageTitleView>
<h1>{title}</h1> <h1 style={{fontSize:'2em'}} >{title}</h1>
<p>{subtitle}</p> <p>{subtitle}</p>
</PageTitleView> </PageTitleView>
) )

View File

@ -68,7 +68,7 @@ export default function chartTelemetry({userName}) {
console.log(router.query) console.log(router.query)
await api.post('/telemetry/powerFactor', { await api.post('/telemetry/powerFactor', {
"filters": [ "filters": [
{"type" : "=", "field": discretization, "value": unity}, {"type" : "=", "field": "med_5min.ponto", "value": unity},
{"type" : "between", "field": "dia_num", "value": [startDate, endDate]} {"type" : "between", "field": "dia_num", "value": [startDate, endDate]}
] ]
}).then(res => { }).then(res => {
@ -78,9 +78,9 @@ export default function chartTelemetry({userName}) {
}) })
await api.post('/telemetry/discretization', { await api.post('/telemetry/discretization', {
"type": "5_min", "type": discretization,
"filters": [ "filters": [
{"type" : "=", "field": discretization, "value": unity}, {"type" : "=", "field": "med_5min.ponto", "value": unity},
{"type" : "between", "field": "dia_num", "value": [startDate, endDate]} {"type" : "between", "field": "dia_num", "value": [startDate, endDate]}
] ]
}).then(res => { }).then(res => {
@ -90,9 +90,9 @@ export default function chartTelemetry({userName}) {
}) })
await api.post('/telemetry/discretization', { await api.post('/telemetry/discretization', {
"type": "5_min", "type": discretization,
"filters": [ "filters": [
{"type" : "=", "field": discretization, "value": unity}, {"type" : "=", "field": "med_5min.ponto", "value": unity},
{"type" : "between", "field": "dia_num", "value": [startDate, endDate]} {"type" : "between", "field": "dia_num", "value": [startDate, endDate]}
] ]
}).then(res => { }).then(res => {
@ -103,7 +103,7 @@ export default function chartTelemetry({userName}) {
await api.post('/telemetry/demand', { await api.post('/telemetry/demand', {
"filters": [ "filters": [
{"type" : "=", "field": discretization, "value": unity}, {"type" : "=", "field": 'med_5min.ponto', "value": unity},
{"type" : "between", "field": "dia_num", "value": [startDate, endDate]} {"type" : "between", "field": "dia_num", "value": [startDate, endDate]}
] ]
}).then(res => { }).then(res => {
@ -154,7 +154,10 @@ export default function chartTelemetry({userName}) {
</Modal> </Modal>
<div onClick={() => setOpenConsumoDiscretizado1(true)}> <div onClick={() => setOpenConsumoDiscretizado1(true)}>
<DiscretizedConsumptionChartLine title='Consumo discretizado em 1 hora' subtitle='' data1={discretizedConsumptionDataReativa} dataset1='Demanda registrada' label={discretizedConsumptionDataReativa.map(data => parseFloat(data.reativa).toFixed(3))} /> <DiscretizedConsumptionChartLine 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='' data1={discretizedConsumptionDataReativa} dataset1='Demanda registrada' label={discretizedConsumptionDataReativa.map(data => parseFloat(data.reativa).toFixed(3))} />
</div> </div>
<Modal <Modal
open={openConsumoDiscretizado1} open={openConsumoDiscretizado1}
@ -163,12 +166,18 @@ export default function chartTelemetry({userName}) {
aria-describedby="modal-modal-description" aria-describedby="modal-modal-description"
> >
<Box sx={style}> <Box sx={style}>
<DiscretizedConsumptionChartLine title='Consumo discretizado em 1 hora' subtitle='' data1={discretizedConsumptionDataReativa} dataset1='Demanda registrada' label={discretizedConsumptionDataReativa.map(data => data.reativa)} /> <DiscretizedConsumptionChartLine 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='' data1={discretizedConsumptionDataReativa} dataset1='Demanda registrada' label={discretizedConsumptionDataReativa.map(data => data.reativa)} />
</Box> </Box>
</Modal> </Modal>
<div onClick={() => setOpenConsumoDiscretizado2(true)}> <div onClick={() => setOpenConsumoDiscretizado2(true)}>
<DiscretizedConsumptionChart title='Consumo discretizado em 5 minutos' subtitle='' dataProps={discretizedConsumptionData} label={discretizedConsumptionData.map(value => value.minut)} dataset={'Consumo'} dataset1='Estimado' month/> <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/>
</div> </div>
<Modal <Modal
open={openConsumoDiscretizado2} open={openConsumoDiscretizado2}
@ -177,7 +186,10 @@ export default function chartTelemetry({userName}) {
aria-describedby="modal-modal-description" aria-describedby="modal-modal-description"
> >
<Box sx={style}> <Box sx={style}>
<DiscretizedConsumptionChart title='Consumo discretizado em 5 minutos' subtitle='' dataProps={discretizedConsumptionData} label={discretizedConsumptionData.map(value => value.minut)} dataset={'Consumo'} dataset1='Estimado' month/> <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/>
</Box> </Box>
</Modal> </Modal>

View File

@ -36,53 +36,27 @@ export default function ResumoOperacao({tableData, clientsData, userName, client
setUnidade(event.target.value); setUnidade(event.target.value);
}; };
function stringToBytes(text) {
const length = text.length;
const result = new Uint8Array(length);
for (let i = 0; i < length; i++) {
const code = text.charCodeAt(i);
const byte = code > 255 ? 32 : code;
result[i] = byte;
}
return result;
}
// const originalString = 'ååå';
// const bytes = stringToBytes(originalString);
// const blob = new Blob([bytes.buffer], { type: 'text/plain; charset=ISO-8859-1' });
function downloadCSVFile(csv, filename) { function downloadCSVFile(csv, filename) {
const csv_file = new Blob(["\ufeff",csv], {type: "text/csv"}); const csv_file = new Blob(["\ufeff",csv], {type: "text/csv"});
const download_link = document.createElement("a"); const download_link = document.createElement("a");
download_link.download = filename; download_link.download = filename;
download_link.href = window.URL.createObjectURL(csv_file); download_link.href = window.URL.createObjectURL(csv_file);
download_link.style.display = "none"; download_link.style.display = "none";
document.body.appendChild(download_link); document.body.appendChild(download_link);
download_link.click(); download_link.click();
} }
function htmlToCSV(html, filename) { function htmlToCSV(html, filename) {
const data = []; const data = [];
const rows = document.querySelectorAll("table tr"); const rows = document.querySelectorAll("table tr");
for (let i = 0; i < rows.length; i++) { for (let i = 0; i < rows.length; i++) {
const row = [], cols: any = rows[i].querySelectorAll("td, th"); const row = [], cols: any = rows[i].querySelectorAll("td, th");
for (let j = 0; j < cols.length; j++) { for (let j = 0; j < cols.length; j++) {
row.push(cols[j].innerText); row.push(cols[j].innerText);
} }
data.push(row.join(";")); data.push(row.join(";"));
} }
downloadCSVFile(data.join("\n"), filename); downloadCSVFile(data.join("\n"), filename);
} }
@ -121,7 +95,6 @@ export default function ResumoOperacao({tableData, clientsData, userName, client
</Head> </Head>
<Header name={userName} /> <Header name={userName} />
<PageTitle title='Resumo de Operações' subtitle='Operações detalhadas' /> <PageTitle title='Resumo de Operações' subtitle='Operações detalhadas' />
<h3>Filtrar por Unidade e/ou Mês</h3> <h3>Filtrar por Unidade e/ou Mês</h3>
<div className='select'> <div className='select'>
<FormControl fullWidth> <FormControl fullWidth>

View File

@ -108,7 +108,7 @@ export default function Telemetria({userName, clients}: any) {
if (startDate!=='' && endDate!=='' && send) if (startDate!=='' && endDate!=='' && send)
setOpen(true) setOpen(true)
await api.post('/telemetry/powerFactor', { await api.post('/telemetry/powerFactor', {
"type": "15_min", "type": discretization,
"filters": [ "filters": [
{"type" : "=", "field": "med_5min.ponto", "value": "RSZFNAENTR101P"}, {"type" : "=", "field": "med_5min.ponto", "value": "RSZFNAENTR101P"},
{"type" : "between", "field": "dia_num", "value": ["2022-01-03", "2022-01-03"]} {"type" : "between", "field": "dia_num", "value": ["2022-01-03", "2022-01-03"]}
@ -292,7 +292,7 @@ export default function Telemetria({userName, clients}: any) {
query: { query: {
startDate, startDate,
endDate, endDate,
discretization: discretization==='5_min'? 'med_5min.ponto' : discretization==='15_min'? '15min.ponto' : discretization==='1_hora'? 'med_1hora.ponto' : discretization==='1_dia'? 'med_1dia.ponto' : 'med_5min.ponto', discretization,
unity unity
}, },
}} > }} >

View File

@ -3,7 +3,6 @@ import styled from "styled-components";
export const IndustryInfoView = styled.main` export const IndustryInfoView = styled.main`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%; width: 100%;
.title { .title {
@ -13,17 +12,12 @@ export const IndustryInfoView = styled.main`
button{ button{
height: 70px; height: 70px;
width: 30%; width: 30%;
cursor: pointer; cursor: pointer;
background: #254F7F; background: #254F7F;
border-radius: 8px; border-radius: 8px;
border-style: none; border-style: none;
font-family: 'Poppins'; font-family: 'Poppins';
font-size: 90%; font-size: 90%;
color: #FFFFFF; color: #FFFFFF;
} }
@ -50,36 +44,5 @@ export const IndustryInfoView = styled.main`
border: 1px solid black; border: 1px solid black;
border-radius: 6px; border-radius: 6px;
} }
label {
}
/* .inputTeste{
display: flex;
align-items: center;
width: 50%;
height: 50px;
background: white;
border-radius:10px;
}
input[type="file"] {
display: block;
}
label {
display: flex;
justify-content: flex-start;
padding: 2px 10px;
width: 200px;
background-color: #333;
color: #FFF;
text-transform: uppercase;
text-align: center;
display: block;
margin-top: 10px;
cursor: pointer;
} */
` `