From f88dd4fa8083c33883e731582c66dcdb7d4e4fbf Mon Sep 17 00:00:00 2001 From: Alex Santos Date: Mon, 20 Jun 2022 14:50:01 -0300 Subject: [PATCH 1/8] update Modal --- src/pages/administrative/clients/index.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pages/administrative/clients/index.tsx b/src/pages/administrative/clients/index.tsx index 7a612e6..4d342cc 100644 --- a/src/pages/administrative/clients/index.tsx +++ b/src/pages/administrative/clients/index.tsx @@ -5,6 +5,7 @@ import TextField from '@mui/material/TextField'; import Typography from '@mui/material/Typography'; import React, { useState } from 'react' + import Snackbar from '@mui/material/Snackbar'; import MuiAlert, { AlertProps } from '@mui/material/Alert'; import ClientsTable from '../../../components/administrativeTables/ClientsTable'; @@ -100,6 +101,7 @@ export default function clients({clients}) { setOpenSnackError(true) }) } + async function handleDeleteClient(id: any) { await id.map(client => { api.delete(`/user/${client}`).then(res => { @@ -191,15 +193,17 @@ export default function clients({clients}) { }} variant="outlined" />

- console.log()} /> + {setOpen(false)}} /> handleCreateClient(client)}/> + {setOpenModalInativar(value)}}> - + + handleDeleteClient(selectedClients)}/> - setOpenModalInativar(true)}/> + {setOpenModalInativar(false)}}/> From 8c0f803ac1342841a92ed0bb0b4c8db1b2aebbd3 Mon Sep 17 00:00:00 2001 From: Alex Santos Date: Wed, 22 Jun 2022 14:10:00 -0300 Subject: [PATCH 2/8] update Consumiption API --- package.json | 7 +- public/assets/marca1.png | Bin 0 -> 105393 bytes public/assets/marca1.svg | 9 -- .../NotificationQuestionsCard.tsx | 2 +- .../NotificationQuestionsCardView.ts | 1 + .../faqQuestionsCard/FaqQuestionsCard.tsx | 7 +- .../faqQuestionsCard/FaqQuestionsCardView.ts | 1 + src/pages/index.tsx | 82 +++++++++++++++-- src/pages/industryInfo.tsx | 2 +- src/pages/notifications.tsx | 2 +- src/pages/verifyEmail.tsx | 2 +- .../layouts/forgotPassword/verifyEmail.ts | 2 +- yarn.lock | 86 +++++++++++++++++- 13 files changed, 175 insertions(+), 28 deletions(-) create mode 100644 public/assets/marca1.png delete mode 100644 public/assets/marca1.svg diff --git a/package.json b/package.json index cf6bbec..c60b200 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@date-io/date-fns": "^2.14.0", "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", + "@hookform/resolvers": "^2.9.1", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@mui/icons-material": "^5.8.2", @@ -28,6 +29,7 @@ "@mui/x-date-pickers": "^5.0.0-alpha.3", "@tinymce/tinymce-react": "^4.1.0", "@types/react-csv": "^1.1.2", + "@types/yup": "^0.29.14", "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.22.0", "axios": "^0.27.2", @@ -49,9 +51,12 @@ "react-chartjs-2": "^4.1.0", "react-csv": "^2.2.2", "react-dom": "18.1.0", + "react-hook-form": "^7.32.2", "react-icons": "^4.3.1", + "react-input-mask": "^2.0.4", "styled-components": "^5.3.5", - "tinymce": "^6.0.3" + "tinymce": "^6.0.3", + "yup": "^0.32.11" }, "devDependencies": { "@babel/preset-env": "^7.17.10", diff --git a/public/assets/marca1.png b/public/assets/marca1.png new file mode 100644 index 0000000000000000000000000000000000000000..6eada8cac0d331b8fbf00041affb58c029b7efec GIT binary patch literal 105393 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 - - - - - - - - diff --git a/src/components/NotificationQuestionsCard/NotificationQuestionsCard.tsx b/src/components/NotificationQuestionsCard/NotificationQuestionsCard.tsx index b2e4438..9938a23 100644 --- a/src/components/NotificationQuestionsCard/NotificationQuestionsCard.tsx +++ b/src/components/NotificationQuestionsCard/NotificationQuestionsCard.tsx @@ -13,7 +13,7 @@ export default function NotificationQuestionsCard({title, body}: CommonsQuestion const [ showCardBody, setShowCardBody ] = useState(false) return ( - + setShowCardBody(!showCardBody)}>

{title}

setShowCardBody(!showCardBody)} /> diff --git a/src/components/NotificationQuestionsCard/NotificationQuestionsCardView.ts b/src/components/NotificationQuestionsCard/NotificationQuestionsCardView.ts index 91d16dd..4e12edb 100644 --- a/src/components/NotificationQuestionsCard/NotificationQuestionsCardView.ts +++ b/src/components/NotificationQuestionsCard/NotificationQuestionsCardView.ts @@ -13,6 +13,7 @@ export const FaqQuestionsCardHeader = styled.div` margin-top: 53px; width: 100%; + cursor: pointer; img { cursor: pointer; diff --git a/src/components/faqQuestionsCard/FaqQuestionsCard.tsx b/src/components/faqQuestionsCard/FaqQuestionsCard.tsx index 5ceda20..3bdd341 100644 --- a/src/components/faqQuestionsCard/FaqQuestionsCard.tsx +++ b/src/components/faqQuestionsCard/FaqQuestionsCard.tsx @@ -13,9 +13,10 @@ export default function CommonsQuestionsCard({question, answer}: CommonsQuestion const [ showCardBody, setShowCardBody ] = useState(false) return ( - - -

{question}

+ setShowCardBody(!showCardBody)}> + +

{question}

+ setShowCardBody(!showCardBody)} />
diff --git a/src/components/faqQuestionsCard/FaqQuestionsCardView.ts b/src/components/faqQuestionsCard/FaqQuestionsCardView.ts index 91d16dd..4e12edb 100644 --- a/src/components/faqQuestionsCard/FaqQuestionsCardView.ts +++ b/src/components/faqQuestionsCard/FaqQuestionsCardView.ts @@ -13,6 +13,7 @@ export const FaqQuestionsCardHeader = styled.div` margin-top: 53px; width: 100%; + cursor: pointer; img { cursor: pointer; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 6229b84..614c0e7 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -8,23 +8,44 @@ import Head from 'next/head'; import Image from 'next/image'; import Link from 'next/link'; import { useRouter } from 'next/router' -import React, { useContext, useState } from 'react' +import React, { useContext, useState, useEffect,useCallback } from 'react' import { AiOutlineEye, AiOutlineEyeInvisible } from 'react-icons/ai'; +import * as yup from 'yup'; +import { yupResolver } from '@hookform/resolvers/yup'; +import { useForm } from 'react-hook-form'; +import RenderIf from '../utils/renderIf'; +import Snackbar from '@mui/material/Snackbar'; import LoginButton from '../components/buttons/loginButton/LoginButton'; import { AuthContext } from '../contexts/AuthContext'; import { api } from '../services/api'; import { LoginContainer, LoginView } from '../styles/layouts/login/LoginView'; import Dashboard from './dashboard'; +import MuiAlert, { AlertProps } from '@mui/material/Alert'; + + +const Alert = React.forwardRef(function Alert( + props, + ref, +) { + return ; +}); + export default function Home() { + const [openSnackSuccess, setOpenSnackSuccess] = useState(false); + const [openSnackError, setOpenSnackError] = useState(false); + const [openSnackSuccessDelete, setOpenSnackSuccessDelete] = useState(false); + const [openSnackErrorDelete, setOpenSnackErrorDelete] = useState(false); + const [state, setstate] = useState(false); const [values, setValues] = useState({ - password: '', + + password: null, showPassword: false, }); - const [email, setEmail] = useState() + const [email, setEmail] = useState("") const [password, setPassword] = useState() const router = useRouter() @@ -42,6 +63,7 @@ export default function Home() { }); }; + const handleMouseDownPassword = (event) => { event.preventDefault(); }; @@ -49,25 +71,69 @@ export default function Home() { const { signIn } = useContext(AuthContext) async function handleSignIn() { - await signIn({email, password}) + if (email === "" || password === ""){ + setOpenSnackError(true) + }else{ + await signIn({email, password}).then(res => {console.log('')}).catch(res => setOpenSnackError(true)) + } } + const handleCloseSnack = (event?: React.SyntheticEvent | Event, reason?: string) => { + if (reason === 'clickaway') { + return; + } + + setOpenSnackError(false); + setOpenSnackSuccess(false); + }; + + useEffect(() => { + setValues({ + password: "", + showPassword: false, + }); + setEmail("") + }, [rota]) + return ( - + Smart Energia + + + notificação cadastrada com sucesso! + + + + + Prencha os Campos corretamente! + + + {/* + + notificação excluida com sucesso! + + */} + {/* + + Notificação não excluida! + + */}
- +

Bem-Vindo

Estratégias Inteligentes em
Gestão de Energia

- { - setEmail(value.target.value) + + { + setEmail(value.target.value) }}/> Password diff --git a/src/pages/industryInfo.tsx b/src/pages/industryInfo.tsx index 8ed8d5f..6e6da73 100644 --- a/src/pages/industryInfo.tsx +++ b/src/pages/industryInfo.tsx @@ -13,7 +13,7 @@ export default function industryInfo() {
- +
diff --git a/src/pages/notifications.tsx b/src/pages/notifications.tsx index 2f94d6c..9a318af 100644 --- a/src/pages/notifications.tsx +++ b/src/pages/notifications.tsx @@ -16,7 +16,7 @@ export default function Notifications({notificationData}: any) { Smart Energia - Notificações
- +

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

{ diff --git a/src/pages/verifyEmail.tsx b/src/pages/verifyEmail.tsx index b4612bc..e26c3d0 100644 --- a/src/pages/verifyEmail.tsx +++ b/src/pages/verifyEmail.tsx @@ -46,7 +46,7 @@ export default function VerifyEmail() { Smart Energia - Verificar Email - + router.push('/')} />

Bem-Vindo

Estratégias Inteligentes em
Gestão de Energia

diff --git a/src/styles/layouts/forgotPassword/verifyEmail.ts b/src/styles/layouts/forgotPassword/verifyEmail.ts index d6ca2ab..8891e62 100644 --- a/src/styles/layouts/forgotPassword/verifyEmail.ts +++ b/src/styles/layouts/forgotPassword/verifyEmail.ts @@ -4,7 +4,7 @@ import styled from 'styled-components'; export const VerifyEmailView = styled.main<{auth: string}>` display: flex; display: ${props => props.auth == '/verifyEmail'? null : 'none'}; - justify-content: flex-end; + justify-content:center; align-items: center; width: 100%; diff --git a/yarn.lock b/yarn.lock index ed043f2..388eeb8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -771,6 +771,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.15.4": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" @@ -944,6 +951,11 @@ version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" +"@hookform/resolvers@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-2.9.1.tgz#59121e38d8fc95d2fd1f41c9631393cd21e10b65" + integrity sha512-80lyFFcExEB7A09PFnl8k7A3obQyDF6MyO/FThtwetk+MTedYMs08Aqf7mgWnOawFGyz5QF+TZXJSYiIZW2tEg== + "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz" @@ -1459,6 +1471,11 @@ version "1.0.2" resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" +"@types/lodash@^4.14.175": + version "4.14.182" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + "@types/mime@^1": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" @@ -1536,6 +1553,11 @@ "@types/react" "*" csstype "^3.0.2" +"@types/yup@^0.29.14": + version "0.29.14" + resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.29.14.tgz#754f1dccedcc66fc2bbe290c27f5323b407ceb00" + integrity sha512-Ynb/CjHhE/Xp/4bhHmQC4U1Ox+I2OpfRYF3dnNgQqn1cHa6LK3H1wJMNPT02tSVZA6FYuXE2ITORfbnb6zBCSA== + "@typescript-eslint/eslint-plugin@^5.22.0": version "5.22.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz" @@ -2921,6 +2943,13 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ip-regex@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" @@ -3344,6 +3373,11 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -3356,7 +3390,7 @@ lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" -lodash@^4.17.11: +lodash@^4.17.11, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" @@ -3369,7 +3403,7 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" dependencies: @@ -3537,6 +3571,11 @@ mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" +nanoclone@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" + integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== + nanoid@^3.1.30: version "3.3.4" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" @@ -4035,6 +4074,11 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +property-expr@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.5.tgz#278bdb15308ae16af3e3b9640024524f4dc02cb4" + integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA== + punycode@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" @@ -4071,10 +4115,23 @@ react-dom@18.1.0: loose-envify "^1.1.0" scheduler "^0.22.0" +react-hook-form@^7.32.2: + version "7.32.2" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.32.2.tgz#58ec2ab0239ce97969baa2faa03ced13fae913ac" + integrity sha512-F1A6n762xaRhvtQH5SkQQhMr19cCkHZYesTcKJJeNmrphiZp/cYFTIzC05FnQry0SspM54oPJ9tXFXlzya8VNQ== + react-icons@^4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/react-icons/-/react-icons-4.3.1.tgz" +react-input-mask@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-input-mask/-/react-input-mask-2.0.4.tgz#9ade5cf8196f4a856dbf010820fe75a795f3eb14" + integrity sha512-1hwzMr/aO9tXfiroiVCx5EtKohKwLk/NT8QlJXHQ4N+yJJFyUuMT+zfTpLBwX/lK3PkuMlievIffncpMZ3HGRQ== + dependencies: + invariant "^2.2.4" + warning "^4.0.2" + react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" @@ -4569,6 +4626,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + treeverse@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" @@ -4689,6 +4751,13 @@ walk-up-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -4755,3 +4824,16 @@ yallist@^4.0.0: yaml@^1.10.2, yaml@^1.7.2: version "1.10.2" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + +yup@^0.32.11: + version "0.32.11" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5" + integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg== + dependencies: + "@babel/runtime" "^7.15.4" + "@types/lodash" "^4.14.175" + lodash "^4.17.21" + lodash-es "^4.17.21" + nanoclone "^0.2.1" + property-expr "^2.0.4" + toposort "^2.0.2" From 6d48f954b77a646ba00c48ca1602bcdd03932bbb Mon Sep 17 00:00:00 2001 From: joseCorte-exe Date: Wed, 22 Jun 2022 14:16:23 -0300 Subject: [PATCH 3/8] push fix --- .../NotificationsTable.tsx | 9 -- .../buttons/faqButton/FaqButtonView1.ts | 4 +- .../buttons/faqButton/FaqButtonView2.ts | 6 +- src/components/graph/Chart.tsx | 6 +- src/components/graph/LineBarChart.tsx | 7 +- src/components/graph/LineBarChart2.tsx | 2 +- src/components/graph/LineChart.tsx | 2 +- src/components/graph/SingleBar.tsx | 4 +- src/components/header/Header.tsx | 19 ++- src/components/sidebar/Sidebar.tsx | 21 ++-- src/contexts/AuthContext.tsx | 12 +- src/pages/accumulatedSavings.tsx | 5 +- src/pages/administrative/aboutUs/index.tsx | 64 ---------- src/pages/administrative/clients/index.tsx | 8 +- src/pages/administrative/faq/index.tsx | 15 +-- src/pages/administrative/general.tsx | 21 +--- .../administrative/notification/index.tsx | 15 +-- src/pages/costIndicator.tsx | 45 +++++-- src/pages/dashboard.tsx | 32 ++++- src/pages/estimatedCost.tsx | 2 +- src/pages/grossSavings.tsx | 4 +- src/pages/pld/index.tsx | 113 ++++++++---------- src/pages/resumoOperacao.tsx | 57 +++++---- src/styles/layouts/pld/PldView.ts | 8 +- 24 files changed, 225 insertions(+), 256 deletions(-) delete mode 100644 src/pages/administrative/aboutUs/index.tsx diff --git a/src/components/administrativeTables/NotificationsTable.tsx b/src/components/administrativeTables/NotificationsTable.tsx index 4d874c6..9b6a5af 100644 --- a/src/components/administrativeTables/NotificationsTable.tsx +++ b/src/components/administrativeTables/NotificationsTable.tsx @@ -41,15 +41,6 @@ function createData( }; } -const rows = [ - createData('Confira tal coisa - Texto da notificação', 'Copel', 'enviada'), - createData('Confira tal coisa - Texto da notificação', 'Copel', 'enviada'), - createData('Confira tal coisa - Texto da notificação', 'Copel', 'enviada'), - createData('Confira tal coisa - Texto da notificação', 'Copel', 'falhou'), - createData('Confira tal coisa - Texto da notificação', 'Copel', 'pendente'), - createData('Confira tal coisa - Texto da notificação', 'Copel', 'enviada'), -]; - function descendingComparator(a: T, b: T, orderBy: keyof T) { if (b[orderBy] < a[orderBy]) { return -1; diff --git a/src/components/buttons/faqButton/FaqButtonView1.ts b/src/components/buttons/faqButton/FaqButtonView1.ts index 31b8458..8d5ca75 100644 --- a/src/components/buttons/faqButton/FaqButtonView1.ts +++ b/src/components/buttons/faqButton/FaqButtonView1.ts @@ -4,9 +4,9 @@ export const FaqButtonView1 = styled.button` display: flex; justify-content: center; align-items: center; - margin-top: 10px; + margin-top: 40px; margin-left: 65px; - width: 350px; + width: 320px; height: 45px; cursor: pointer; background: #DDDDDD; diff --git a/src/components/buttons/faqButton/FaqButtonView2.ts b/src/components/buttons/faqButton/FaqButtonView2.ts index 24a26a7..74ce1fc 100644 --- a/src/components/buttons/faqButton/FaqButtonView2.ts +++ b/src/components/buttons/faqButton/FaqButtonView2.ts @@ -5,8 +5,8 @@ export const FaqButtonView2 = styled.button` justify-content: center; align-items: center; margin-top: -46px; - margin-left: 430px; - width: 350px; + margin-left: 444px; + width: 320px; height: 45px; cursor: pointer; background: #254F7F; @@ -16,7 +16,5 @@ export const FaqButtonView2 = styled.button` font-family: 'Poppins'; font-size: 90%; - - color: #FFFFFF; ` diff --git a/src/components/graph/Chart.tsx b/src/components/graph/Chart.tsx index 4b2a681..941977c 100644 --- a/src/components/graph/Chart.tsx +++ b/src/components/graph/Chart.tsx @@ -54,7 +54,7 @@ export default function Chart({ title, data1, data2, label, subtitle, dataset1, offset: -20, align: "start", font: { - size: 16 + size: 12 } }, legend: { @@ -72,13 +72,13 @@ export default function Chart({ title, data1, data2, label, subtitle, dataset1, datasets: [ { label: dataset1? dataset1 : '2021', - data: data1.map(value => value.custo_unit), + data: data1.map(value => value.custo_unit? value.custo_unit : 0), backgroundColor: '#C2D5FB', }, data2? { label: dataset2? dataset2 : '2022', - data: data2.map(value => value.custo_unit), + data: data2.map(value => value.custo_unit? value.custo_unit : 0), backgroundColor: '#255488', } : null ], diff --git a/src/components/graph/LineBarChart.tsx b/src/components/graph/LineBarChart.tsx index e73ba23..83bbb2f 100644 --- a/src/components/graph/LineBarChart.tsx +++ b/src/components/graph/LineBarChart.tsx @@ -71,9 +71,10 @@ interface LineBarChartInterface { dataset3?: string, barLabel?: boolean | undefined, hashurado?: boolean | undefined, + reais?: boolean | undefined } -export function LineBarChart({ title, subtitle, data1, data2, data3, label, red, dataset1, dataset2, dataset3, barLabel, hashurado }: LineBarChartInterface) { +export function LineBarChart({ title, subtitle, data1, data2, data3, label, red, dataset1, dataset2, dataset3, barLabel, hashurado, reais }: LineBarChartInterface) { const chartRef = useRef(null); const currentTime = new Date(); @@ -93,7 +94,7 @@ export function LineBarChart({ title, subtitle, data1, data2, data3, label, red, offset: -20, align: "start", font: { - size: 16 + size: 12 } }, legend: { @@ -111,7 +112,7 @@ export function LineBarChart({ title, subtitle, data1, data2, data3, label, red, datasets: [ { type: 'line' as const, - label: dataset1? dataset1 : 'Dataset 1', + label: dataset1&&reais==false? parseFloat(dataset1).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2}) : dataset1, borderColor: red? '#f00' : '#0c9200', datalabels: { diff --git a/src/components/graph/LineBarChart2.tsx b/src/components/graph/LineBarChart2.tsx index 2f346ed..ff01607 100644 --- a/src/components/graph/LineBarChart2.tsx +++ b/src/components/graph/LineBarChart2.tsx @@ -93,7 +93,7 @@ export function LineBarChart2({ title, subtitle, data1, data2, data3, label, red offset: -20, align: "start", font: { - size: 16 + size: 12 } }, legend: { diff --git a/src/components/graph/LineChart.tsx b/src/components/graph/LineChart.tsx index 09e27a9..79ffd31 100644 --- a/src/components/graph/LineChart.tsx +++ b/src/components/graph/LineChart.tsx @@ -55,7 +55,7 @@ export default function LineChart({ title, subtitle, data1, data2, data3, data4, offset: -20, align: "start", font: { - size: 16 + size: 12 } }, legend: { diff --git a/src/components/graph/SingleBar.tsx b/src/components/graph/SingleBar.tsx index b1b858f..8a48d33 100644 --- a/src/components/graph/SingleBar.tsx +++ b/src/components/graph/SingleBar.tsx @@ -51,7 +51,7 @@ export function SingleBar({ title, subtitle, dataProps, label, dataset, dataset1 sum += data; }); const percentage = (dataProps[ctx.dataIndex].econ_percentual*100).toFixed(0)+"%"; - const result = `${value}\n ${percentage}` + const result = `${parseFloat(value).toFixed(0)}\n ${percentage}` return value==null? null : result }, @@ -61,7 +61,7 @@ export function SingleBar({ title, subtitle, dataProps, label, dataset, dataset1 offset: -40, align: "start", font: { - size: 16 + size: 10 } }, legend: { diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx index 1beb9a8..db21a84 100644 --- a/src/components/header/Header.tsx +++ b/src/components/header/Header.tsx @@ -35,23 +35,22 @@ function stringAvatar(name: string) { } interface headerInterface { - name: string + name: string, + admin?: boolean | undefined } -export default function Header({ name }: headerInterface) { +export default function Header({ name, admin }: headerInterface) { return (
-
- + { + !admin? + + : + null + }

olá, {name} diff --git a/src/components/sidebar/Sidebar.tsx b/src/components/sidebar/Sidebar.tsx index 48df240..186c956 100644 --- a/src/components/sidebar/Sidebar.tsx +++ b/src/components/sidebar/Sidebar.tsx @@ -7,7 +7,8 @@ import Image from 'next/image' import Link from 'next/link' import { useRouter } from 'next/router' import { parseCookies } from 'nookies'; -import React, { useEffect, useState } from 'react' +import React, { useContext, useEffect, useState } from 'react' +import { AuthContext } from '../../contexts/AuthContext'; import RenderIf from '../../utils/renderIf'; import { SidebarView } from './SidebarView' @@ -25,10 +26,12 @@ const style = { }; export default function Sidebar() { - const [open, setOpen] = React.useState(false); + const [open, setOpen] = useState(false); const handleOpen = () => setOpen(true); const handleClose = () => setOpen(false); + const { signOut } = useContext(AuthContext) + const [ economiaDrawer, setEconomiaDrawer ] = useState(false) const [ viewModal, setViewModal ] = useState(false) @@ -37,8 +40,6 @@ export default function Sidebar() { const { ['user-role']: role } = parseCookies() - // console.log(role) - useEffect(() => { setViewModal(false) }, [router.pathname]) @@ -54,10 +55,10 @@ export default function Sidebar() {

    -
  • {'Clientes >'}
  • +
  • {'Clientes >'}
  • {'Sobre Nós'}
  • {'FAQ >'}
  • -
  • {'Notificações >'}

    25

  • +
  • {'Notificações >'}
  • {'Visão Geral'}
  • setEconomiaDrawer(!economiaDrawer)} className={router.pathname=='/grossSavings' || router.pathname=='/accumulatedSavings' || router.pathname=='/estimatedCost' || router.pathname=='/costIndicator' ? 'actualPath' : null } >{'Economia >'}
  • -
  • Economia Bruta
  • -
  • Economia Acumulada
  • -
  • Custo Estimado
  • +
  • Economia Bruta Anual
  • +
  • Economia Bruta Mensal
  • +
  • Cativo x Livre mensal
  • Custo R/MWh
  • {'Telemetria >'}
  • @@ -117,7 +118,7 @@ export default function Sidebar() { Deseja realmente sair ? - +
    diff --git a/src/contexts/AuthContext.tsx b/src/contexts/AuthContext.tsx index f335f00..f2f2a0a 100644 --- a/src/contexts/AuthContext.tsx +++ b/src/contexts/AuthContext.tsx @@ -1,7 +1,7 @@ import React, { createContext, useState } from "react"; import Router from 'next/router' -import { setCookie } from "nookies"; +import { destroyCookie, setCookie } from "nookies"; import { signInRequest } from "../services/auth"; import { api } from "../services/api"; @@ -21,6 +21,7 @@ type AuthContextType = { isAuthenticated: boolean; user: UserType; signIn: (data: SignInData) => Promise; + signOut: any; } export const AuthContext = createContext({} as AuthContextType) @@ -64,8 +65,15 @@ export function AuthProvider({children}: {children: React.ReactNode}) { } } + function signOut() { + destroyCookie(null, 'user-name') + destroyCookie(null, 'user-role') + destroyCookie(null, 'user-id') + destroyCookie(null, '@smartAuth-token') + } + return ( - + {children} ) diff --git a/src/pages/accumulatedSavings.tsx b/src/pages/accumulatedSavings.tsx index bce6a4c..53467d9 100644 --- a/src/pages/accumulatedSavings.tsx +++ b/src/pages/accumulatedSavings.tsx @@ -16,10 +16,10 @@ export default function AccumulatedSavings({graphData, years, userName}: any) { return ( - Smart Energia - Economia Acumulada + Smart Energia - Economia Bruta Mensal
    - +
    { const { ['@smartAuth-token']: token } = parseCookies(ctx) const { ['user-name']: userName } = parseCookies(ctx) - let graphData = []; await apiClient.post('/economy/grossMonthly').then(res => { diff --git a/src/pages/administrative/aboutUs/index.tsx b/src/pages/administrative/aboutUs/index.tsx deleted file mode 100644 index ba84ee3..0000000 --- a/src/pages/administrative/aboutUs/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import TextField from '@mui/material/TextField'; -import Head from 'next/head' -import Image from 'next/image' -import React from 'react' - -import AdministrativeHeader from '../../../components/administrativeHeader/AdministrativeHeader'; -import Banner from '../../../components/banner/Banner' -import Header from '../../../components/header/Header' -import { AboutUsView } from '../../../styles/layouts/aboutUs/AboutUsView' - -export default function aboutUs() { - return ( - - - Smart Energia - About Us - - - -
    -

    atualizar texto

    - -
    -
    -

    A SMART ENERGIA é uma consultoria independente especializada em Gestão de Energia Elétrica, consolidada como uma das três maiores consultorias do Brasil. - 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.

    - -

    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 - Vendedores de energia.

    - -

    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.

    - -

    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.

    -
      -
    • {'Informação'}
    • -
    • {'Economia'}
    • -
    • {'Gestão de Energia'}
    • -
    • {'Imparcialidade'}
    • -
    • {'Previsão de Custos'}
    • -
    • {'Experiência'}
    • -
    • {'Relacionamento'}
    • -
    - -
    - -
    -
    -
    - ) -} diff --git a/src/pages/administrative/clients/index.tsx b/src/pages/administrative/clients/index.tsx index 6d3d430..26993c0 100644 --- a/src/pages/administrative/clients/index.tsx +++ b/src/pages/administrative/clients/index.tsx @@ -135,7 +135,7 @@ export default function clients({clients, userName}) { -
    +
    @@ -191,15 +191,15 @@ export default function clients({clients, userName}) { }} variant="outlined" />

    - console.log()} /> + setOpen(false)} /> handleCreateClient(client)}/> {setOpenModalInativar(value)}}> - + handleDeleteClient(selectedClients)}/> - setOpenModalInativar(true)}/> + setOpenModalInativar(false)}/>
    diff --git a/src/pages/administrative/faq/index.tsx b/src/pages/administrative/faq/index.tsx index 0b057d2..b7e428d 100644 --- a/src/pages/administrative/faq/index.tsx +++ b/src/pages/administrative/faq/index.tsx @@ -115,7 +115,7 @@ export default function Sidebar({faqData, userName} : any ) { return ( <> -
    +
    @@ -145,7 +145,6 @@ export default function Sidebar({faqData, userName} : any ) { -
    - setFaq({...faq, question:value.target.value})} sx={{width:710, ml:8}} variant="outlined" />

    - setFaq({...faq, answer:value.target.value})} sx={{width:710, ml:8}} variant="outlined" /> + setFaq({...faq, question:value.target.value})} sx={{width:710, ml:8}} variant="outlined" />

    + setFaq({...faq, answer:value.target.value})} sx={{width:710, ml:8}} variant="outlined" />

    - - handleRegisterNewFaq(faq)} - - /> + setOpen(false)} /> + handleRegisterNewFaq(faq)}/>
    diff --git a/src/pages/administrative/general.tsx b/src/pages/administrative/general.tsx index ec52d81..1d5b7bf 100644 --- a/src/pages/administrative/general.tsx +++ b/src/pages/administrative/general.tsx @@ -28,23 +28,9 @@ export default function index({userName}: any) { return ( -
    - -
    - - - -
    +
    + +
    editorRef.current = editor} initialValue='

    A SMART ENERGIA é uma consultoria independente especializada em Gestão de Energia Elétrica, consolidada como uma das três maiores consultorias do Brasil. @@ -84,7 +70,6 @@ export default function index({userName}: any) { content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }' }} /> - ) } diff --git a/src/pages/administrative/notification/index.tsx b/src/pages/administrative/notification/index.tsx index 736685f..234ea9f 100644 --- a/src/pages/administrative/notification/index.tsx +++ b/src/pages/administrative/notification/index.tsx @@ -41,7 +41,7 @@ const style = { border: '2px solid #000', boxShadow: 24, p: 4, - overflowY: 'scroll' + overflowY: 'scroll', }; const Alert = React.forwardRef(function Alert( @@ -122,7 +122,7 @@ export default function notification({clients, notifications, userName}: any) { Smart Energia - Notificações -

    +
    @@ -178,7 +178,9 @@ export default function notification({clients, notifications, userName}: any) { }} variant="outlined" />

    - + )} - sx={{ml:8}} style={{ width: 700 }} + sx={{ml:8}} renderInput={(params) => ( )} /> : null } - - {setOpen(false)}} /> - { + {setOpen(false)}} /> + { handleRegisterNewNotification(notification)}} /> diff --git a/src/pages/costIndicator.tsx b/src/pages/costIndicator.tsx index 63362a6..e3e2e6d 100644 --- a/src/pages/costIndicator.tsx +++ b/src/pages/costIndicator.tsx @@ -12,15 +12,28 @@ import { dataEconomiaIndicador } from '../services/economiaIndicador' import getAPIClient from '../services/ssrApi' import { CostIndicatorView } from '../styles/layouts/economy/costIndicator/CostIndicatorView' -function addMissingMonths(data) { - // console.log(data[0].mes.slice(1, 1)) -} - function verifyDataByYear(data) { - if (data.length === 12) - return true - else - return false + const currentYear = [] + const currentYearAux = data.filter(value => value.mes.slice(3, 7).includes('2021')) + console.log(currentYear.length) + console.log(currentYearAux.length) + + currentYearAux.sort((a, b) => { + if (parseFloat(a.mes.slice(0,2)) > parseFloat(b.mes.slice(1,2))) return 1 + if (parseFloat(a.mes.slice(0,2)) < parseFloat(b.mes.slice(1,2))) return -1 + + return 0 + }) + + // for (let i=0; currentYear.length <= currentYearAux.length; i++) { + // console.log(i, 'dentro do for') + // // console.log(currentYearAux.length, 'tamanho aux') + // if (currentYearAux[i].mes.slice(1,2)==i) { + // currentYear.push(currentYearAux[i]) + // console.log(currentYear.length, 'tamanho') + // } + // } + console.log(currentYearAux) } export default function CostIndicator({graphData, userName}: any) { @@ -34,9 +47,20 @@ export default function CostIndicator({graphData, userName}: any) {
    - value.mes.slice(3, 7).includes('2021'))} + value.mes.slice(3, 7).includes('2021')).sort((a, b) => { + if (parseFloat(a.mes.slice(0,2)) > parseFloat(b.mes.slice(1,2))) return 1 + if (parseFloat(a.mes.slice(0,2)) < parseFloat(b.mes.slice(1,2))) return -1 + + return 0 + })} data2={graphData.filter((value, index) => value.mes.slice(3, 7).includes('2022'))} - label={['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'ago', 'set', 'out', 'nov', 'dez']} barLabel /> + label={graphData.filter((value, index) => value.mes.slice(3, 7).includes('2021')).sort((a, b) => { + if (parseFloat(a.mes.slice(0,2)) > parseFloat(b.mes.slice(1,2))) return 1 + if (parseFloat(a.mes.slice(0,2)) < parseFloat(b.mes.slice(1,2))) return -1 + + return 0 + }).map(value => value.mes)} barLabel />
    ) @@ -51,7 +75,6 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { await apiClient.post('/economy/MWh').then(res => { graphData = res.data.data - console.log(graphData[0].mes) }).catch(res => { console.log(res) }) diff --git a/src/pages/dashboard.tsx b/src/pages/dashboard.tsx index d66d182..e5dedef 100644 --- a/src/pages/dashboard.tsx +++ b/src/pages/dashboard.tsx @@ -23,7 +23,7 @@ import { parseCookies } from 'nookies' import { GetServerSideProps } from 'next' import getAPIClient from '../services/ssrApi' -export default function Dashboard({grossAnualGraph, grossAnualYears, grossMensalGraph, grossMensalYears, acumulatedGraph, mapsInfo, userName} : any) { +export default function Dashboard({grossAnualGraph, grossAnualYears, grossMensalGraph, grossMensalYears, acumulatedGraph, mapsInfo, userName, costIndicator} : any) { return ( @@ -44,14 +44,14 @@ export default function Dashboard({grossAnualGraph, grossAnualYears, grossMensal
    - + - + - + - + value.mes.slice(3, 7).includes('2021')).sort((a, b) => { + if (parseFloat(a.mes.slice(0,2)) > parseFloat(b.mes.slice(1,2))) return 1 + if (parseFloat(a.mes.slice(0,2)) < parseFloat(b.mes.slice(1,2))) return -1 + + return 0 + })} + data2={costIndicator.filter((value, index) => value.mes.slice(3, 7).includes('2022'))} + label={costIndicator.filter((value, index) => value.mes.slice(3, 7).includes('2021')).sort((a, b) => { + if (parseFloat(a.mes.slice(0,2)) > parseFloat(b.mes.slice(1,2))) return 1 + if (parseFloat(a.mes.slice(0,2)) < parseFloat(b.mes.slice(1,2))) return -1 + + return 0 + }).map(value => value.mes)} barLabel />
    @@ -86,6 +98,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { let grossAnualGraph = []; let grossMensalGraph = []; let acumulatedGraph = []; + let costIndicator = [] let mapsInfo = []; await apiClient.post('/economy/grossAnnual').then(res => { @@ -106,6 +119,12 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { console.log(res) }) + await apiClient.post('/economy/MWh').then(res => { + costIndicator = res.data.data + }).catch(res => { + console.log(res) + }) + await apiClient.post('/pld/overview').then(res => { mapsInfo = res.data.data }).catch(res => { @@ -131,6 +150,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { grossMensalYears, grossMensalGraph, acumulatedGraph, + costIndicator, mapsInfo, userName diff --git a/src/pages/estimatedCost.tsx b/src/pages/estimatedCost.tsx index 3e7e150..e4915eb 100644 --- a/src/pages/estimatedCost.tsx +++ b/src/pages/estimatedCost.tsx @@ -23,7 +23,7 @@ export default function EstimatedCost({graphData, userName}: any) {
    + label={ConsumoEstimado.label} title='Cativo x Livre mensal' subtitle='' barLabel hashurado />
    ) diff --git a/src/pages/grossSavings.tsx b/src/pages/grossSavings.tsx index 9e16689..26fe5dd 100644 --- a/src/pages/grossSavings.tsx +++ b/src/pages/grossSavings.tsx @@ -23,7 +23,6 @@ function verifyDataByYear(data) { return false } - export default function GrossSavings({graphData, years, userName}: any) { return ( @@ -31,7 +30,7 @@ export default function GrossSavings({graphData, years, userName}: any) { Smart Energia - Economia Acumulada
    - +
    ) } + export const getServerSideProps: GetServerSideProps = async (ctx) => { const apiClient = getAPIClient(ctx) const { ['@smartAuth-token']: token } = parseCookies(ctx) diff --git a/src/pages/pld/index.tsx b/src/pages/pld/index.tsx index 828f79a..98a3b72 100644 --- a/src/pages/pld/index.tsx +++ b/src/pages/pld/index.tsx @@ -115,26 +115,23 @@ export default function pld({tableData, graphByHourData, graphByMonthData, userN }).catch(exception => console.log(exception)) } + function handleColorNorte(value, region) { + if (value <= tableData.result[1].norte_min) + return 'green' + else if (value >= tableData.result[0][`${region}_max`]) + return 'red' + else if (tableData.result[0][`${region}_max`] - value > tableData.result[0][`${region}_max`]/2) + return 'dullGreen' + else if (tableData.result[1][`${region}_min`] - value <= tableData.result[1][`${region}_min`]) + return 'dullRed' + } + useEffect(() => { getDataByHour() getDataByDay() console.log(dataByDay) }, [date, day, select]) - function handleCellColor(minimo, mi, ma, maximo) { - if (minimo - mi >= 100 && minimo - mi < 200) { - return 'green' - } else if ( mi*2 >= 200 && mi*2 < 250 ) { - return'dullGreen' - } else if ( (ma-mi)/2 >=250 && (ma-mi)/2 < 300 ) { - return 'white' - } else if ( ma/2 >= 300 && ma/2 < 600 ) { - return 'dullRed' - } else if ( maximo-ma > 600 ) { - return 'red' - } - } - return (
    { - tableData.map(data => { + tableData.data.map(data => { return <> {data.year_month_formatted} - {data.nordeste} - {data.norte} - {data.sudeste} - {data.sul} + {parseFloat(data.nordeste).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.norte).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sudeste).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sul).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} }) } - - Mín - xxxx - xxxx - xxxx - xxxx - - - Max - xxxx - xxxx - xxxx - xxxx - - - Desv Pad - xxxx - xxxx - xxxx - xxxx - + { + tableData.result.map((data, index) => { + if (index === 0) { + return <> + + Max + {parseFloat(data.nordeste_max).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.norte_max).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sudeste_max).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sul_max).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + + + } else if (index===1) { + return <> + + Min + {parseFloat(data.nordeste_min).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.norte_min).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sudeste_min).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sul_min).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + + + } else if (index===2) { + return <> + + Desv. Padrão + {parseFloat(data.nordeste_desv_pad).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.norte_desv_pad).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sudeste_desv_pad).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(data.sul_desv_pad).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + + + } + }) + }
    @@ -235,7 +246,7 @@ export default function pld({tableData, graphByHourData, graphByMonthData, userN width: '22%', ml: 1 }}> - Dia + Mês
    @@ -312,7 +305,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { let tableData = []; await apiClient.post('/pld/list').then(res => { - tableData = res.data.data + tableData = res.data }).catch(res => { console.log(res) }) diff --git a/src/pages/resumoOperacao.tsx b/src/pages/resumoOperacao.tsx index 03a4e57..b56f4dc 100644 --- a/src/pages/resumoOperacao.tsx +++ b/src/pages/resumoOperacao.tsx @@ -20,13 +20,15 @@ import data from '../services/dados.json' import getAPIClient from '../services/ssrApi'; import { Pagination, TableView } from '../styles/layouts/ResumoOperacao/ResumoOperacaoView'; -export default function ResumoOperacao({tableData, userName}: any) { +export default function ResumoOperacao({tableData, clientsData, userName, clientMonth}: any) { const csvData = tableData; const [month, setMonth] = useState(''); const [unidade, setUnidade] = useState(''); const [tableDataState, setTableDataState] = useState([]); + const monthLabels = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'ago', 'set', 'out', 'nov', 'dez'] + const handleChangeMonth = (event: SelectChangeEvent) => { setMonth(event.target.value); }; @@ -36,7 +38,7 @@ export default function ResumoOperacao({tableData, userName}: any) { useEffect(() => { if (unidade!=='' || month!==''){ - api.post('/operation', { + api.post('/operation/summary', { "filters": [ {"type" : "=", "field": "mes", "value": `${month}/2022`}, {"type" : "=", "field": "dados_te.cod_smart_unidade", "value": unidade} @@ -49,7 +51,6 @@ export default function ResumoOperacao({tableData, userName}: any) { } else { setTableDataState(tableData) } - }, [month, unidade]) return ( @@ -73,7 +74,7 @@ export default function ResumoOperacao({tableData, userName}: any) { > Nenhum { - tableData.map((value) => { + clientsData.map((value) => { return {value.cod_smart_unidade} }) } @@ -90,18 +91,11 @@ export default function ResumoOperacao({tableData, userName}: any) { onChange={handleChangeMonth} > Nenhum - Janeiro - Fevereiro - Março - Abril - Maio - Junho - Julho - Agosto - Setembro - Outubro - Novembro - Dezembro + { + clientMonth.map((value) => { + return {monthLabels[parseFloat(value.mes.slice(3, 4))-1]} + }) + }
    @@ -125,8 +119,8 @@ export default function ResumoOperacao({tableData, userName}: any) { {value.operacao} {value.montante_nf} {value.contraparte} - {value.nf_c_icms} - {value.preco_nf} + {parseFloat(value.nf_c_icms).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} + {parseFloat(value.preco_nf).toLocaleString('pt-br',{style: 'currency', currency: 'BRL', minimumFractionDigits: 2})} }) @@ -150,17 +144,36 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { const { ['user-name']: userName } = parseCookies(ctx) let tableData = []; + let clientsData = []; + let clientMonth = []; - await apiClient.post('/operation', { + await apiClient.post('/operation/summary', { "filters": [] }).then(res => { - console.log(res.data.data) tableData = res.data.data }).catch(res => { console.log(res) }) - console.log(tableData) + await apiClient.post('/operation', { + "filters": [], + "fields": ["cod_smart_unidade"], + "distinct": true + }).then(res => { + clientsData = res.data.data + }).catch(res => { + console.log(res) + }) + + await apiClient.post('/operation', { + "filters": [], + "fields": ["mes"], + "distinct": true + }).then(res => { + clientMonth = res.data.data + }).catch(res => { + console.log(res) + }) if (!token) { return { @@ -174,6 +187,8 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { return { props: { tableData, + clientsData, + clientMonth, userName } } diff --git a/src/styles/layouts/pld/PldView.ts b/src/styles/layouts/pld/PldView.ts index 8e6870a..539ec3f 100644 --- a/src/styles/layouts/pld/PldView.ts +++ b/src/styles/layouts/pld/PldView.ts @@ -83,19 +83,23 @@ export const PldTableView = styled.main` } .green { - background-color: #00A934!important; + background-color: #0F9D58!important; + color: black!important; } .dullGreen { background-color: #AED094!important; + color: black!important; } .red { - background-color: #FF5429!important; + background-color: #DB4437!important; + color: black!important; } .dullRed { background-color: #FFAA95!important; + color: black!important; } h3{ From 85558b138675bdbc93f81b85f478fdcda4242c56 Mon Sep 17 00:00:00 2001 From: joseCorte-exe Date: Wed, 22 Jun 2022 15:26:11 -0300 Subject: [PATCH 4/8] fix user logo to api --- src/pages/administrative/clients/index.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pages/administrative/clients/index.tsx b/src/pages/administrative/clients/index.tsx index 26993c0..6f1f3af 100644 --- a/src/pages/administrative/clients/index.tsx +++ b/src/pages/administrative/clients/index.tsx @@ -92,6 +92,10 @@ export default function clients({clients, userName}) { password, password_confirmation, client_id + }, { + headers: { + 'Content-Type': 'multipart/form-data' + }, }).then(res => { setOpenSnackSuccess(true) setOpenModalInativar(false) From 1540a1a63a1e3443f048088f185b7328dbd5df4e Mon Sep 17 00:00:00 2001 From: Alex Santos Date: Wed, 22 Jun 2022 15:28:08 -0300 Subject: [PATCH 5/8] udpate --- src/pages/verifyEmail.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/verifyEmail.tsx b/src/pages/verifyEmail.tsx index e26c3d0..99591f9 100644 --- a/src/pages/verifyEmail.tsx +++ b/src/pages/verifyEmail.tsx @@ -56,7 +56,9 @@ export default function VerifyEmail() { setSent(true)} /> + + setCode(value.target.value)} /> {verifyConfirmationCode()}} /> From 0192b2bb281ddf325faa25dcda824944fd1ad9c0 Mon Sep 17 00:00:00 2001 From: Alex Santos Date: Thu, 23 Jun 2022 10:05:47 -0300 Subject: [PATCH 6/8] update --- public/assets/iconePDF.png | Bin 0 -> 6414 bytes src/components/header/Header.tsx | 4 +- .../inputUpload.tsx | 3 +- .../inputUploadView.ts | 0 src/components/inputUploadPdf/inputUpload.tsx | 49 +++++++++++++++++ .../inputUploadPdf/inputUploadView.ts | 51 ++++++++++++++++++ src/components/sidebar/Sidebar.tsx | 1 + src/pages/administrative/clients/index.tsx | 17 +++--- .../administrative/industryInfo/index.tsx | 49 +++++++++++++++++ src/pages/index.tsx | 4 +- 10 files changed, 165 insertions(+), 13 deletions(-) create mode 100644 public/assets/iconePDF.png rename src/components/{inputUplaod => inputUploadImg}/inputUpload.tsx (96%) rename src/components/{inputUplaod => inputUploadImg}/inputUploadView.ts (100%) create mode 100644 src/components/inputUploadPdf/inputUpload.tsx create mode 100644 src/components/inputUploadPdf/inputUploadView.ts create mode 100644 src/pages/administrative/industryInfo/index.tsx diff --git a/public/assets/iconePDF.png b/public/assets/iconePDF.png new file mode 100644 index 0000000000000000000000000000000000000000..38e28b25d6f3c786a86faf89100a9643448bac04 GIT binary patch literal 6414 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 literal 0 HcmV?d00001 diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx index db21a84..1fba829 100644 --- a/src/components/header/Header.tsx +++ b/src/components/header/Header.tsx @@ -45,12 +45,12 @@ export default function Header({ name, admin }: headerInterface) {
    - { + {/* { !admin? : null - } + } */}

    olá, {name} diff --git a/src/components/inputUplaod/inputUpload.tsx b/src/components/inputUploadImg/inputUpload.tsx similarity index 96% rename from src/components/inputUplaod/inputUpload.tsx rename to src/components/inputUploadImg/inputUpload.tsx index dad71d1..34daa86 100644 --- a/src/components/inputUplaod/inputUpload.tsx +++ b/src/components/inputUploadImg/inputUpload.tsx @@ -3,7 +3,7 @@ import React,{ useState, useEffect } from 'react' import { InputUploadView } from './inputUploadView' -export default function InputUpload() { +export default function InputUploadPdf() { const [images, setImages] = useState([] as any); const [imageURLS, setImageURLs] = useState([]); @@ -34,6 +34,7 @@ export default function InputUpload() {

    +
    diff --git a/src/components/inputUplaod/inputUploadView.ts b/src/components/inputUploadImg/inputUploadView.ts similarity index 100% rename from src/components/inputUplaod/inputUploadView.ts rename to src/components/inputUploadImg/inputUploadView.ts diff --git a/src/components/inputUploadPdf/inputUpload.tsx b/src/components/inputUploadPdf/inputUpload.tsx new file mode 100644 index 0000000..96866c0 --- /dev/null +++ b/src/components/inputUploadPdf/inputUpload.tsx @@ -0,0 +1,49 @@ +import React,{ useState, useEffect } from 'react' +import Image from 'next/image'; + + +import { InputUploadView } from './inputUploadView' + + +export default function InputUploadPdf() { + const [images, setImages] = useState([] as any); + const [imageURLS, setImageURLs] = useState([]); + + useEffect(() => { + if (images.length < 1) return; + const newImageUrls: any = []; + images.forEach((image:any) => newImageUrls.push(URL.createObjectURL(image))); + setImageURLs(newImageUrls); + }, [images]); + + function onImageChange(e: any) { + setImages([...e.target.files]); + // console.log(e); + } + + return ( + + +
    + + {imageURLS.map((imageSrc, index) => ( + + ))} + + + + +
    + +
    + + +
    + + +
    + +
    +
    + ) +} diff --git a/src/components/inputUploadPdf/inputUploadView.ts b/src/components/inputUploadPdf/inputUploadView.ts new file mode 100644 index 0000000..fed659c --- /dev/null +++ b/src/components/inputUploadPdf/inputUploadView.ts @@ -0,0 +1,51 @@ +import styled from 'styled-components' + +export const InputUploadView = styled.div` + +border-radius: 4px; +border:1px solid gray ; +background-color: white; +width: 300px; +height: 50px; + +input[type="file"] { + display: none; + + } + +label { + width: 140px; + height: 30px; + margin-top: -30px; + border-radius: 4px; + margin-left: 69px; + background-color: #254F7F; + color: white; + font-size: 13px; + font-weight: 600; + text-transform: uppercase; + display: flex; + text-align: center; + cursor: pointer; + } + .TitleButton{ + margin-top: 4px; + margin-left: 30px; + } + + .testess{ + margin-left: 80px; + position: absolute; + + } + + .imgContainer{ + max-width: 40px; + margin-top: 9px; + margin-left: 4px; + height: 30px; +} + + + +` diff --git a/src/components/sidebar/Sidebar.tsx b/src/components/sidebar/Sidebar.tsx index 186c956..3e777ff 100644 --- a/src/components/sidebar/Sidebar.tsx +++ b/src/components/sidebar/Sidebar.tsx @@ -59,6 +59,7 @@ export default function Sidebar() {
  • {'Sobre Nós'}
  • {'FAQ >'}
  • {'Notificações >'}
  • +
  • {'Info Setorial'}
  • (function Alert( return ; }); -export default function clients({clients}) { +export default function clients({clients, userName}) { const [client, setClient] = useState({ name: String, email: String, @@ -121,23 +121,23 @@ export default function clients({clients}) { - notificação cadastrada com sucesso! + Cliente cadastrada com Sucesso! - Notificação não cadastrada! + Cliente não cadastrado! - notificação excluida com sucesso! + Cliente excluido com sucesso! - Notificação não excluida! + Cliente não excluido! @@ -196,7 +196,7 @@ export default function clients({clients}) { client_id: value.target.value }) }} variant="outlined" /> - +

    setOpen(false)} /> handleCreateClient(client)}/> @@ -218,7 +218,7 @@ export default function clients({clients}) { export const getServerSideProps: GetServerSideProps = async (ctx) => { const apiClient = getAPIClient(ctx) const { ['@smartAuth-token']: token } = parseCookies(ctx) - + const { ['user-name']: userName } = parseCookies(ctx) let clients = []; await apiClient.get('/user').then(res => { @@ -241,6 +241,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { return { props: { clients, + userName } } } diff --git a/src/pages/administrative/industryInfo/index.tsx b/src/pages/administrative/industryInfo/index.tsx new file mode 100644 index 0000000..17d3d4d --- /dev/null +++ b/src/pages/administrative/industryInfo/index.tsx @@ -0,0 +1,49 @@ +import { GetServerSideProps } from 'next' +import Head from 'next/head' +import { parseCookies } from 'nookies' +import React from 'react' +import BasicButton from '../../../components/buttons/basicButton/BasicButton' +import Header from '../../../components/header/Header' +import PageTitle from '../../../components/pageTitle/PageTitle' +import { IndustryInfoView } from '../../../styles/layouts/industryInfo/IndustryInfoView' +import InputUploadPdf from '../../../components/inputUploadPdf/inputUpload'; + +export default function industryInfo({userName}: any) { + return ( + + + Smart Energia - Info de Setor + +
    +
    + + +
    + + + + + + ) +} + +export const getServerSideProps: GetServerSideProps = async (ctx) => { + const { ['@smartAuth-token']: token } = parseCookies(ctx) + const { ['user-name']: userName } = parseCookies(ctx) + + if (!token) { + return { + redirect: { + destination: '/', + permanent: false + } + } + } + + return { + props: { + userName + } + } +} + diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 614c0e7..e77dc36 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -74,7 +74,7 @@ export default function Home() { if (email === "" || password === ""){ setOpenSnackError(true) }else{ - await signIn({email, password}).then(res => {console.log('')}).catch(res => setOpenSnackError(true)) + await signIn({email, password}) } } @@ -89,7 +89,7 @@ export default function Home() { useEffect(() => { setValues({ - password: "", + password: null, showPassword: false, }); setEmail("") From 990e47aa011f0d35a6aeb142927e8ad92ba95b35 Mon Sep 17 00:00:00 2001 From: joseCorte-exe Date: Thu, 23 Jun 2022 10:09:18 -0300 Subject: [PATCH 7/8] fix admin tabls --- .../administrativeTables/ClientsTable.tsx | 87 ++++++++++++++++++- .../administrativeTables/FaqTable.tsx | 2 +- .../NotificationsTable.tsx | 2 +- src/pages/administrative/clients/index.tsx | 50 ++++++----- src/pages/pld/index.tsx | 43 +++++---- 5 files changed, 141 insertions(+), 43 deletions(-) diff --git a/src/components/administrativeTables/ClientsTable.tsx b/src/components/administrativeTables/ClientsTable.tsx index a56a973..90ccfaf 100644 --- a/src/components/administrativeTables/ClientsTable.tsx +++ b/src/components/administrativeTables/ClientsTable.tsx @@ -12,7 +12,34 @@ import TableSortLabel from '@mui/material/TableSortLabel'; import { visuallyHidden } from '@mui/utils'; import React, { useState, useEffect } from 'react'; +import Snackbar from '@mui/material/Snackbar'; +import MuiAlert, { AlertProps } from '@mui/material/Alert'; + +import Modal from '@mui/material/Modal'; + + import { TableView, StyledStatus } from './TableView'; +import { api } from '../../services/api'; + +const style = { + position: 'absolute' as const, + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + width: 900, + height: 500, + bgcolor: 'background.paper', + border: '2px solid #000', + boxShadow: 24, + p: 4, + overflowY: 'scroll' +}; +const Alert = React.forwardRef(function Alert( + props, + ref, +) { + return ; +}); interface Data { clientCode: number, @@ -161,6 +188,37 @@ export default function ClientTable({clients, onChange}: ClientsTableInterface) const [dense, setDense] = useState(false); const [rowsPerPage, setRowsPerPage] = useState(5); + const [openSnackError, setOpenSnackError] = useState(false); + + const [open, setOpen] = useState(false); + const [openModalInativar, setOpenModalInativar] = useState(false) + const handleOpen = () => setOpen(true); + const handleClose = () => setOpen(false); + + const [cod_client, setCod_client] = useState() + const [units, setUnits] = useState([]) + + function getClientUnits(client_id: number) { + api.post('/units', { + "filters": [ + {"type" : "=", "field": "dados_cadastrais.cod_smart_cliente", "value": client_id} + ], + "fields": ["unidade"], + "distinct": true + }).then(res => setUnits(res.data.data)).catch(res => { + setOpenSnackError(true) + }) + + return units + } + + const handleCloseSnack = (event?: React.SyntheticEvent | Event, reason?: string) => { + if (reason === 'clickaway') { + return; + } + setOpenSnackError(false); + }; + const handleRequestSort = ( event: React.MouseEvent, property: keyof Data, @@ -220,6 +278,11 @@ export default function ClientTable({clients, onChange}: ClientsTableInterface) return ( + + + Não foi possivel encontrar unidades do client! + + {row.name} - clique aqui para ver as unidades + { + setOpen(true) + getClientUnits(row.client_id) + }}>clique aqui para ver as unidades {row.deleted_at? 'inativo' : 'ativo'} ); @@ -297,6 +363,25 @@ export default function ClientTable({clients, onChange}: ClientsTableInterface) onRowsPerPageChange={handleChangeRowsPerPage} /> + + + { + units.map((units, index) => { + return <> +
  • {units.unidade}
  • +
    + + }) + } +
    +
    ); } diff --git a/src/components/administrativeTables/FaqTable.tsx b/src/components/administrativeTables/FaqTable.tsx index a7014bb..9a6a0d7 100644 --- a/src/components/administrativeTables/FaqTable.tsx +++ b/src/components/administrativeTables/FaqTable.tsx @@ -283,7 +283,7 @@ export default function FaqTable({questionData, onChange}: FaqTableInterface) { {row.question} {row.answer} - {row.deleted_at? 'ativo' : 'inativo'} + {'ativo'} ); })} diff --git a/src/components/administrativeTables/NotificationsTable.tsx b/src/components/administrativeTables/NotificationsTable.tsx index 9b6a5af..345be97 100644 --- a/src/components/administrativeTables/NotificationsTable.tsx +++ b/src/components/administrativeTables/NotificationsTable.tsx @@ -290,7 +290,7 @@ export default function NotificationsTable({notifications, onChange}: Notificati {row.title} {'copel'} - {row.deleted_at===null? 'ativo' : 'inativo'} + {'ativo'} ); })} diff --git a/src/pages/administrative/clients/index.tsx b/src/pages/administrative/clients/index.tsx index dd710b6..f42abf3 100644 --- a/src/pages/administrative/clients/index.tsx +++ b/src/pages/administrative/clients/index.tsx @@ -1,11 +1,9 @@ import Box from '@mui/material/Box'; -import Button from '@mui/material/Button'; import Modal from '@mui/material/Modal'; import TextField from '@mui/material/TextField'; import Typography from '@mui/material/Typography'; import React, { useState } from 'react' - import Snackbar from '@mui/material/Snackbar'; import MuiAlert, { AlertProps } from '@mui/material/Alert'; import ClientsTable from '../../../components/administrativeTables/ClientsTable'; @@ -23,6 +21,8 @@ import { parseCookies } from 'nookies'; import { GetServerSideProps } from 'next'; import getAPIClient from '../../../services/ssrApi'; +import FormData from 'form-data'; + const style = { position: 'absolute' as const, top: '50%', @@ -44,7 +44,9 @@ const Alert = React.forwardRef(function Alert( return ; }); -export default function clients({clients}) { +export default function clients({clients, userName}) { + const formData = new FormData(); + const [client, setClient] = useState({ name: String, email: String, @@ -52,6 +54,7 @@ export default function clients({clients}) { password_confirmation: String, client_id: Number }) + const [logo, setLogo] = useState(false); const [selectedClients, setSelectedClients] = useState([]) const [open, setOpen] = useState(false); @@ -61,7 +64,6 @@ export default function clients({clients}) { const [openModal, setOpenModal] = useState(false) - // const [openSnackSuccess, setOpenSnackSuccess] = useState(false); const [openSnackError, setOpenSnackError] = useState(false); const [openSnackSuccessDelete, setOpenSnackSuccessDelete] = useState(false); @@ -84,20 +86,20 @@ export default function clients({clients}) { setOpenSnackErrorDelete(false); setOpenSnackSuccessDelete(false); }; - // + + function onChange(e) { + setLogo(e.target.files[0]) + } function handleCreateClient({name, email, password, password_confirmation, client_id}) { - api.post('/user', { - name, - email, - password, - password_confirmation, - client_id - }, { - headers: { - 'Content-Type': 'multipart/form-data' - }, - }).then(res => { + formData.append('name', name) + formData.append('email', email) + formData.append('password', password) + formData.append('password_confirmation', password_confirmation) + formData.append('client_id', client_id) + formData.append('profile_picture', logo) + + api.post('/user', formData).then(res => { setOpenSnackSuccess(true) setOpenModalInativar(false) window.location.reload() @@ -105,7 +107,6 @@ export default function clients({clients}) { setOpenSnackError(true) }) } - async function handleDeleteClient(id: any) { await id.map(client => { api.delete(`/user/${client}`).then(res => { @@ -118,26 +119,25 @@ export default function clients({clients}) { return (
    - - notificação cadastrada com sucesso! + Usuario cadastrada com sucesso! - Notificação não cadastrada! + Usuario não cadastrada! - notificação excluida com sucesso! + Usuario excluida com sucesso! - Notificação não excluida! + Usuario não excluida! @@ -196,7 +196,8 @@ export default function clients({clients}) { client_id: value.target.value }) }} variant="outlined" /> - + + {/* */}

    setOpen(false)} /> handleCreateClient(client)}/> @@ -206,7 +207,6 @@ export default function clients({clients}) { {setOpenModalInativar(value)}}> - handleDeleteClient(selectedClients)}/> setOpenModalInativar(false)}/> @@ -218,6 +218,7 @@ export default function clients({clients}) { export const getServerSideProps: GetServerSideProps = async (ctx) => { const apiClient = getAPIClient(ctx) const { ['@smartAuth-token']: token } = parseCookies(ctx) + const { ['user-name']: userName } = parseCookies(ctx) let clients = []; @@ -241,6 +242,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { return { props: { clients, + userName } } } diff --git a/src/pages/pld/index.tsx b/src/pages/pld/index.tsx index 98a3b72..79a547c 100644 --- a/src/pages/pld/index.tsx +++ b/src/pages/pld/index.tsx @@ -26,9 +26,10 @@ interface pldInterface { graphByHourData: any, graphByMonthData: any userName: string, + clientMonth: any } -export default function pld({tableData, graphByHourData, graphByMonthData, userName}: pldInterface) { +export default function pld({tableData, graphByHourData, graphByMonthData, userName, clientMonth}: pldInterface) { const router = useRouter() const { region } = router.query @@ -255,18 +256,17 @@ export default function pld({tableData, graphByHourData, graphByMonthData, userN label="Age" > - 01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 + Nenhum + { + clientMonth.sort((a, b) => { + if (parseFloat(a.mes_ref.slice(3,4)) > parseFloat(b.mes_ref.slice(3,4))) return 1 + if (parseFloat(a.mes_ref.slice(3,4)) < parseFloat(b.mes_ref.slice(3,4))) return -1 + + return 0 + }).map((data, index) => { + return {data.mes_ref.slice(2, 4)} + }) + } @@ -288,7 +288,7 @@ export default function pld({tableData, graphByHourData, graphByMonthData, userN @@ -301,8 +301,8 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { const { ['@smartAuth-token']: token } = parseCookies(ctx) const { ['user-name']: userName } = parseCookies(ctx) - let tableData = []; + let clientMonth = []; await apiClient.post('/pld/list').then(res => { tableData = res.data @@ -310,6 +310,16 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { console.log(res) }) + await apiClient.post('/pld', { + "filters": [], + "fields": ["mes_ref"], + "distinct": true + }).then(res => { + clientMonth = res.data.data + }).catch(res => { + console.log(res) + }) + if (!token) { return { redirect: { @@ -322,7 +332,8 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { return { props: { tableData, - userName + userName, + clientMonth } } } From 8eacf7b3e661c4d891dec3efe77d8068ecdc3aa1 Mon Sep 17 00:00:00 2001 From: joseCorte-exe Date: Thu, 23 Jun 2022 10:31:58 -0300 Subject: [PATCH 8/8] fixing industryInfo administrative page --- src/pages/administrative/industryInfo/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/administrative/industryInfo/index.tsx b/src/pages/administrative/industryInfo/index.tsx index 17d3d4d..82b55c6 100644 --- a/src/pages/administrative/industryInfo/index.tsx +++ b/src/pages/administrative/industryInfo/index.tsx @@ -20,8 +20,7 @@ export default function industryInfo({userName}: any) {
    - - + console.log()} title='Atualizar'/> )