added new colors to know that is what adscription
This commit is contained in:
@@ -14,11 +14,6 @@ import {
|
||||
} from "recharts";
|
||||
import Cookies from "js-cookie";
|
||||
|
||||
type AdscripcionOption = {
|
||||
id_adscripcion: string
|
||||
adscripcion: string
|
||||
}
|
||||
|
||||
interface Props {
|
||||
filtros: any
|
||||
}
|
||||
@@ -28,6 +23,16 @@ interface AntiguedadData {
|
||||
antiguedad: string
|
||||
total: number
|
||||
}
|
||||
|
||||
const colores = [
|
||||
"#095bd6",
|
||||
"#e63946",
|
||||
"#2a9d8f",
|
||||
"#f4a261",
|
||||
"#8d5cf6",
|
||||
"#ff006e"
|
||||
]
|
||||
|
||||
const api_url = process.env.NEXT_PUBLIC_API_URL;
|
||||
|
||||
export default function Antiguedad({ filtros }: Props) {
|
||||
@@ -54,6 +59,31 @@ export default function Antiguedad({ filtros }: Props) {
|
||||
|
||||
}, [filtros])
|
||||
|
||||
const tieneAdscripciones = data.some(d => d.adscripcion)
|
||||
|
||||
let dataTransformada = data
|
||||
let adscripciones: string[] = []
|
||||
|
||||
if (tieneAdscripciones) {
|
||||
|
||||
adscripciones = [...new Set(data.map(d => d.adscripcion))]
|
||||
|
||||
dataTransformada = Object.values(
|
||||
data.reduce((acc: any, item: any) => {
|
||||
|
||||
if (!acc[item.antiguedad]) {
|
||||
acc[item.antiguedad] = { antiguedad: item.antiguedad }
|
||||
}
|
||||
|
||||
acc[item.antiguedad][item.adscripcion] = Number(item.total)
|
||||
|
||||
return acc
|
||||
|
||||
}, {})
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
@@ -71,7 +101,7 @@ export default function Antiguedad({ filtros }: Props) {
|
||||
<ResponsiveContainer width="100%" aspect={2.5}>
|
||||
|
||||
<BarChart
|
||||
data={data}
|
||||
data={dataTransformada}
|
||||
margin={{ top: 20 }}
|
||||
>
|
||||
<CartesianGrid strokeDasharray="3 3" />
|
||||
@@ -81,7 +111,24 @@ export default function Antiguedad({ filtros }: Props) {
|
||||
<YAxis />
|
||||
<Tooltip />
|
||||
<Legend />
|
||||
<Bar dataKey="total" fill="#095bd6" />
|
||||
{tieneAdscripciones ? (
|
||||
|
||||
adscripciones.map((ads, i) => (
|
||||
<Bar
|
||||
key={ads}
|
||||
dataKey={ads}
|
||||
fill={colores[i % colores.length]}
|
||||
/>
|
||||
))
|
||||
|
||||
) : (
|
||||
|
||||
<Bar
|
||||
dataKey="total"
|
||||
fill="#095bd6"
|
||||
/>
|
||||
|
||||
)}
|
||||
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
|
||||
@@ -4,16 +4,6 @@ import axios from "axios";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Bar, BarChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts";
|
||||
|
||||
type AdscripcionOption = {
|
||||
id_adscripcion: string
|
||||
adscripcion: string
|
||||
}
|
||||
|
||||
type ProcesadorOption = {
|
||||
id_procesador: string
|
||||
procesador: string
|
||||
}
|
||||
|
||||
interface Props {
|
||||
filtros: any
|
||||
}
|
||||
@@ -24,23 +14,58 @@ interface procesador {
|
||||
total: number;
|
||||
}
|
||||
|
||||
const colores = [
|
||||
"#095bd6",
|
||||
"#e63946",
|
||||
"#2a9d8f",
|
||||
"#f4a261",
|
||||
"#8d5cf6",
|
||||
"#ff006e"
|
||||
]
|
||||
|
||||
const api_url = process.env.NEXT_PUBLIC_API_URL;
|
||||
|
||||
export default function Procesador({ filtros }: Props) {
|
||||
const [data, setData] = useState<procesador[]>([])
|
||||
|
||||
useEffect(() => {
|
||||
const getAntiguedad = async () => {
|
||||
const response = await axios.post("http://localhost:3001/equipos/grafica/procesador",filtros)
|
||||
const response = await axios.post(`${api_url}/equipos/grafica/procesador`, filtros)
|
||||
|
||||
setData(response.data)
|
||||
}
|
||||
getAntiguedad()
|
||||
}, [filtros])
|
||||
|
||||
const tieneAdscripciones = data.some(d => d.adscripcion)
|
||||
|
||||
let dataTransformada = data
|
||||
let adscripciones: string[] = []
|
||||
|
||||
if (tieneAdscripciones) {
|
||||
|
||||
adscripciones = [...new Set(data.map(d => d.adscripcion))]
|
||||
|
||||
dataTransformada = Object.values(
|
||||
data.reduce((acc: any, item: any) => {
|
||||
|
||||
if (!acc[item.procesador]) {
|
||||
acc[item.procesador] = { procesador: item.procesador }
|
||||
}
|
||||
|
||||
acc[item.procesador][item.adscripcion] = Number(item.total)
|
||||
|
||||
return acc
|
||||
|
||||
}, {})
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ width: "100%", background: "white", borderRadius: "10px", margin: "5px auto", padding: "1rem" }}>
|
||||
<h1 style={{ margin: "0" }}>Procesador</h1>
|
||||
<ResponsiveContainer width="100%" aspect={3.5} minHeight={270}>
|
||||
<BarChart data={data}
|
||||
<BarChart data={dataTransformada}
|
||||
width={500}
|
||||
height={300}
|
||||
margin={{
|
||||
@@ -53,8 +78,24 @@ export default function Procesador({ filtros }: Props) {
|
||||
<YAxis />
|
||||
<Tooltip />
|
||||
<Legend />
|
||||
<Bar dataKey="total" fill="#095bd6" />
|
||||
{tieneAdscripciones ? (
|
||||
|
||||
adscripciones.map((ads, i) => (
|
||||
<Bar
|
||||
key={ads}
|
||||
dataKey={ads}
|
||||
fill={colores[i % colores.length]}
|
||||
/>
|
||||
))
|
||||
|
||||
) : (
|
||||
|
||||
<Bar
|
||||
dataKey="total"
|
||||
fill="#095bd6"
|
||||
/>
|
||||
|
||||
)}
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</div>
|
||||
|
||||
@@ -4,16 +4,6 @@ import axios from "axios";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Bar, BarChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts";
|
||||
|
||||
type AdscripcionOption = {
|
||||
id_adscripcion: string
|
||||
adscripcion: string
|
||||
}
|
||||
|
||||
type UsoOption = {
|
||||
id_sistema_operativo: string
|
||||
sistema_operativo: string
|
||||
}
|
||||
|
||||
interface Props {
|
||||
filtros: any
|
||||
}
|
||||
@@ -24,23 +14,58 @@ interface so {
|
||||
total: number;
|
||||
}
|
||||
|
||||
const colores = [
|
||||
"#095bd6",
|
||||
"#e63946",
|
||||
"#2a9d8f",
|
||||
"#f4a261",
|
||||
"#8d5cf6",
|
||||
"#ff006e"
|
||||
]
|
||||
|
||||
const api_url = process.env.NEXT_PUBLIC_API_URL;
|
||||
|
||||
export default function SistemaOperativo({ filtros }: Props) {
|
||||
const [data, setData] = useState<so[]>([])
|
||||
|
||||
useEffect(() => {
|
||||
const getAntiguedad = async () => {
|
||||
const response = await axios.post("http://localhost:3001/equipos/grafica/so",filtros)
|
||||
const response = await axios.post(`${api_url}/equipos/grafica/so`, filtros)
|
||||
|
||||
setData(response.data)
|
||||
}
|
||||
getAntiguedad()
|
||||
}, [filtros])
|
||||
|
||||
const tieneAdscripciones = data.some(d => d.adscripcion)
|
||||
|
||||
let dataTransformada = data
|
||||
let adscripciones: string[] = []
|
||||
|
||||
if (tieneAdscripciones) {
|
||||
|
||||
adscripciones = [...new Set(data.map(d => d.adscripcion))]
|
||||
|
||||
dataTransformada = Object.values(
|
||||
data.reduce((acc: any, item: any) => {
|
||||
|
||||
if (!acc[item.so]) {
|
||||
acc[item.so] = { so: item.so }
|
||||
}
|
||||
|
||||
acc[item.so][item.adscripcion] = Number(item.total)
|
||||
|
||||
return acc
|
||||
|
||||
}, {})
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ width: "100%", background: "white", borderRadius: "10px", margin: "5px auto", padding: "1rem" }}>
|
||||
<h1 style={{ margin: "0" }}>SistemaOperativo</h1>
|
||||
<ResponsiveContainer width="100%" aspect={3.5}>
|
||||
<BarChart data={data}
|
||||
<BarChart data={dataTransformada}
|
||||
width={500}
|
||||
height={300}
|
||||
margin={{
|
||||
@@ -52,8 +77,24 @@ export default function SistemaOperativo({ filtros }: Props) {
|
||||
<YAxis />
|
||||
<Tooltip />
|
||||
<Legend />
|
||||
<Bar dataKey="total" fill="#095bd6" />
|
||||
{tieneAdscripciones ? (
|
||||
|
||||
adscripciones.map((ads, i) => (
|
||||
<Bar
|
||||
key={ads}
|
||||
dataKey={ads}
|
||||
fill={colores[i % colores.length]}
|
||||
/>
|
||||
))
|
||||
|
||||
) : (
|
||||
|
||||
<Bar
|
||||
dataKey="total"
|
||||
fill="#095bd6"
|
||||
/>
|
||||
|
||||
)}
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</div>
|
||||
|
||||
@@ -4,16 +4,6 @@ import axios from "axios";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Bar, BarChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts";
|
||||
|
||||
type AdscripcionOption = {
|
||||
id_adscripcion: string
|
||||
adscripcion: string
|
||||
}
|
||||
|
||||
type UsoOption = {
|
||||
id_uso: string
|
||||
tipo_uso: string
|
||||
}
|
||||
|
||||
interface Props {
|
||||
filtros: any
|
||||
}
|
||||
@@ -24,13 +14,24 @@ interface UsoData {
|
||||
total: number
|
||||
}
|
||||
|
||||
const colores = [
|
||||
"#095bd6",
|
||||
"#e63946",
|
||||
"#2a9d8f",
|
||||
"#f4a261",
|
||||
"#8d5cf6",
|
||||
"#ff006e"
|
||||
]
|
||||
|
||||
const api_url = process.env.NEXT_PUBLIC_API_URL;
|
||||
|
||||
export default function Uso({ filtros }: Props) {
|
||||
const [data, setData] = useState<UsoData[]>([])
|
||||
|
||||
useEffect(() => {
|
||||
const getUso = async () => {
|
||||
const response = await axios.post(
|
||||
"http://localhost:3001/equipos/grafica/uso",filtros
|
||||
`${api_url}/equipos/grafica/uso`, filtros
|
||||
)
|
||||
setData(response.data)
|
||||
}
|
||||
@@ -38,11 +39,35 @@ export default function Uso({ filtros }: Props) {
|
||||
|
||||
}, [filtros])
|
||||
|
||||
const tieneAdscripciones = data.some(d => d.adscripcion)
|
||||
|
||||
let dataTransformada = data
|
||||
let adscripciones: string[] = []
|
||||
|
||||
if (tieneAdscripciones) {
|
||||
|
||||
adscripciones = [...new Set(data.map(d => d.adscripcion))]
|
||||
|
||||
dataTransformada = Object.values(
|
||||
data.reduce((acc: any, item: any) => {
|
||||
|
||||
if (!acc[item.uso]) {
|
||||
acc[item.uso] = { uso: item.uso }
|
||||
}
|
||||
|
||||
acc[item.uso][item.adscripcion] = Number(item.total)
|
||||
|
||||
return acc
|
||||
|
||||
}, {})
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ minWidth: "570px", background: "white", borderRadius: "10px", margin: "5px auto", padding: "1rem" }}>
|
||||
<h1 style={{ margin: "0" }}>Uso</h1>
|
||||
<ResponsiveContainer width="100%" aspect={2.5} minHeight={220}>
|
||||
<BarChart data={data}
|
||||
<BarChart data={dataTransformada}
|
||||
width={500}
|
||||
height={300}
|
||||
margin={{
|
||||
@@ -54,8 +79,24 @@ export default function Uso({ filtros }: Props) {
|
||||
<YAxis />
|
||||
<Tooltip />
|
||||
<Legend />
|
||||
<Bar dataKey="total" fill="#095bd6" />
|
||||
{tieneAdscripciones ? (
|
||||
|
||||
adscripciones.map((ads, i) => (
|
||||
<Bar
|
||||
key={ads}
|
||||
dataKey={ads}
|
||||
fill={colores[i % colores.length]}
|
||||
/>
|
||||
))
|
||||
|
||||
) : (
|
||||
|
||||
<Bar
|
||||
dataKey="total"
|
||||
fill="#095bd6"
|
||||
/>
|
||||
|
||||
)}
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user