Merge branch 'administativePages' into 'dev'
Administative pages See merge request kluppsoftware/smart-energia-web!86
This commit is contained in:
commit
a1cf207963
@ -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>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -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>
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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
|
||||||
},
|
},
|
||||||
}} >
|
}} >
|
||||||
|
|||||||
@ -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;
|
|
||||||
} */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user