From 16d12050c79d1b377faa3b6fc5d4e353a3fb073b Mon Sep 17 00:00:00 2001 From: Quy_FE Date: Thu, 24 Apr 2025 15:58:48 +0700 Subject: [PATCH 1/2] =?UTF-8?q?Feat=20:=20fix=20l=E1=BB=97i=20chart,=20khi?= =?UTF-8?q?a=20b=C3=A1o=20t=E1=BA=A5t=20c=E1=BA=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/_components/chart/RDoughnutChart.js | 32 ++------------------ src/_components/chart/RPieChart.js | 31 ++----------------- src/_components/chart/VerticalBarChart.js | 19 ++---------- src/_screens/home/teacher/index.js | 37 +++++++++++++++-------- 4 files changed, 31 insertions(+), 88 deletions(-) diff --git a/src/_components/chart/RDoughnutChart.js b/src/_components/chart/RDoughnutChart.js index 00b5752..06cfba5 100644 --- a/src/_components/chart/RDoughnutChart.js +++ b/src/_components/chart/RDoughnutChart.js @@ -1,37 +1,9 @@ import React from 'react'; import { Chart } from 'react-chartjs-2'; -import { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js'; import { PRIMARY_COLOR } from '../../_constants/common'; +import { Chart as ChartJS, registerables } from 'chart.js'; -ChartJS.register(ArcElement, Tooltip, Legend); - - -// const data = { -// labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], -// datasets: [ -// { -// label: '# of Votes', -// data: [12, 19, 3, 5, 2, 3], -// backgroundColor: [ -// 'rgba(255, 99, 132, 0.2)', -// 'rgba(54, 162, 235, 0.2)', -// 'rgba(255, 206, 86, 0.2)', -// 'rgba(75, 192, 192, 0.2)', -// 'rgba(153, 102, 255, 0.2)', -// 'rgba(255, 159, 64, 0.2)', -// ], -// borderColor: [ -// 'rgba(255, 99, 132, 1)', -// 'rgba(54, 162, 235, 1)', -// 'rgba(255, 206, 86, 1)', -// 'rgba(75, 192, 192, 1)', -// 'rgba(153, 102, 255, 1)', -// 'rgba(255, 159, 64, 1)', -// ], -// borderWidth: 1, -// }, -// ], -// }; +ChartJS.register(...registerables); export default function RDoughnutChart({data = [], ...other}) { if (!data?.length) { diff --git a/src/_components/chart/RPieChart.js b/src/_components/chart/RPieChart.js index ceeae3b..5417177 100644 --- a/src/_components/chart/RPieChart.js +++ b/src/_components/chart/RPieChart.js @@ -1,35 +1,8 @@ import React from 'react'; -import { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js'; import { Pie } from 'react-chartjs-2'; +import { Chart as ChartJS, registerables } from 'chart.js'; -ChartJS.register(ArcElement, Tooltip, Legend); - -// const data = { -// labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], -// datasets: [ -// { -// label: '# of Votes', -// data: [12, 19, 3, 5, 2, 3], -// backgroundColor: [ -// 'rgba(255, 99, 132, 0.2)', -// 'rgba(54, 162, 235, 0.2)', -// 'rgba(255, 206, 86, 0.2)', -// 'rgba(75, 192, 192, 0.2)', -// 'rgba(153, 102, 255, 0.2)', -// 'rgba(255, 159, 64, 0.2)', -// ], -// borderColor: [ -// 'rgba(255, 99, 132, 1)', -// 'rgba(54, 162, 235, 1)', -// 'rgba(255, 206, 86, 1)', -// 'rgba(75, 192, 192, 1)', -// 'rgba(153, 102, 255, 1)', -// 'rgba(255, 159, 64, 1)', -// ], -// borderWidth: 1, -// }, -// ], -// }; +ChartJS.register(...registerables); export default function RPieChart({data, ...other}) { return ; diff --git a/src/_components/chart/VerticalBarChart.js b/src/_components/chart/VerticalBarChart.js index bf2dabb..6864473 100644 --- a/src/_components/chart/VerticalBarChart.js +++ b/src/_components/chart/VerticalBarChart.js @@ -1,24 +1,9 @@ import React from 'react'; -import { - Chart as ChartJS, - CategoryScale, - LinearScale, - BarElement, - Title, - Tooltip, - Legend, -} from 'chart.js'; import { Bar } from 'react-chartjs-2'; import { PRIMARY_COLOR } from '../../_constants/common'; +import { Chart as ChartJS, registerables } from 'chart.js'; -ChartJS.register( - CategoryScale, - LinearScale, - BarElement, - Title, - Tooltip, - Legend -); +ChartJS.register(...registerables); export function VerticalBarChart({data = [], labels = []}) { if (!data?.length) { diff --git a/src/_screens/home/teacher/index.js b/src/_screens/home/teacher/index.js index 1306247..7595634 100644 --- a/src/_screens/home/teacher/index.js +++ b/src/_screens/home/teacher/index.js @@ -105,7 +105,19 @@ export default function TeacherHome() { getData(); }; - const handleExport = () => { + const handleExport = async () => { + let queryParams = [] + if(!!semester?.value){ + queryParams.push(`&semester=${semester?.value}`) + } + if(!!month?.value){ + queryParams.push(`month=${month?.value}`) + } + const endPoint = + `/api_exercise_report/teacher_report_summary?teacher_id=${id}&year=${schoolYear?.value.trim()}&detail=true` + + (queryParams.length > 0 ? `&${queryParams.join("&")}` : ""); + const res = await apiCaller(endPoint, "GET"); + if(res?.status){ const listHeader = [ "STT", "Tên lớp", @@ -121,7 +133,7 @@ export default function TeacherHome() { "học kỳ", "Niên khóa", ]; - const listData = listClass.map((item, index) => [ + const listData = res.data.map((item, index) => [ index + 1, item?.class_name, teacherName, @@ -133,23 +145,24 @@ export default function TeacherHome() { item?.organization_district ||'', item?.organization_province ||'', !!month?.value - ? month.value + ? month.value : getListMonthBySemester(semester.value) - ?.filter((item) => !!item?.value) - ?.map((item) => item?.value) + ?.filter((item) => !!item?.value) + ?.map((item) => item?.value) ?.join(", "), !!semester?.value ? semester.value : LIST_SEMESTER?.filter((item) => !!item?.value) ?.map((item) => item?.value) ?.join(", "), - schoolYear?.value, - ]); - exportExcel( - listHeader, - listData, - `Danh sách lớp của giáo viên ${teacherName}.xlsx`, - ); + schoolYear?.value, + ]); + exportExcel( + listHeader, + listData, + `Danh sách lớp của giáo viên ${teacherName}.xlsx`, + ); + } }; useEffect(() => { From 46dce555d5e70060ab74a6fec368be3a539f4440 Mon Sep 17 00:00:00 2001 From: Quy_FE Date: Thu, 24 Apr 2025 16:05:26 +0700 Subject: [PATCH 2/2] =?UTF-8?q?Feat=20:=20s=E1=BB=ADa=20l=E1=BA=A1i=20logi?= =?UTF-8?q?c=20scroll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/_screens/criteria/criteria-manage/index.js | 2 +- src/_screens/home/admin/index.js | 2 +- src/_screens/home/detail-grade/index.js | 3 +-- src/_screens/home/headmaster/index.js | 2 +- src/_screens/home/teacher/index.js | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/_screens/criteria/criteria-manage/index.js b/src/_screens/criteria/criteria-manage/index.js index fc1c69c..dc5a8b7 100644 --- a/src/_screens/criteria/criteria-manage/index.js +++ b/src/_screens/criteria/criteria-manage/index.js @@ -339,7 +339,7 @@ export default function CriteriaManage() { }`; const res = await apiCaller(endPoint, "GET"); - if (!res){ + if (!res.data){ setIsEndOnlineClasses(true); } else { listNext = res?.data; diff --git a/src/_screens/home/admin/index.js b/src/_screens/home/admin/index.js index bf5c74e..92126f7 100644 --- a/src/_screens/home/admin/index.js +++ b/src/_screens/home/admin/index.js @@ -288,7 +288,7 @@ export default function AdminHome() { queryParams.length ? `&${queryParams.join("&")}` : "" }`; const res = await apiCaller(endPoint, "GET"); - if(!res){ + if(!res.data){ setIsEndOnlineClasses(true); } else { concatListSide = res?.data; diff --git a/src/_screens/home/detail-grade/index.js b/src/_screens/home/detail-grade/index.js index fbe0a0d..34a8587 100644 --- a/src/_screens/home/detail-grade/index.js +++ b/src/_screens/home/detail-grade/index.js @@ -166,8 +166,7 @@ export default function DetailGrade() { !!month?.value ? `&month=${month?.value}` : "" }&limit=${limitOnline}&offset=${offsetOnlineMore}`; const res = await apiCaller(endPoint, "GET"); - console.log('res',res); - if(!res){ + if(!res.data){ setIsEndOnlineClasses(true); } else { listNext = res?.data; diff --git a/src/_screens/home/headmaster/index.js b/src/_screens/home/headmaster/index.js index 5188c80..adb5ac0 100644 --- a/src/_screens/home/headmaster/index.js +++ b/src/_screens/home/headmaster/index.js @@ -184,7 +184,7 @@ export default function HeadmasterHome() { const endPoint = `/report/api_report/teacherByOrganizationId?organization_id=${id}&limit=${limitOnline}&offset=${offsetOnlineMore}`; const res = await apiCaller(endPoint, "GET"); - if (!res){ + if (!res.data){ setIsEndOnlineClasses(true); } else { listNext = res?.data; diff --git a/src/_screens/home/teacher/index.js b/src/_screens/home/teacher/index.js index 7595634..2d0ec0d 100644 --- a/src/_screens/home/teacher/index.js +++ b/src/_screens/home/teacher/index.js @@ -197,7 +197,7 @@ export default function TeacherHome() { `/api_exercise_report/teacher_report_summary?teacher_id=${id}&year=${schoolYear?.value.trim()}&limit=${limitOnline}&offset=${offsetOnlineMore}` + (queryParams.length > 0 ? `&${queryParams.join("&")}` : ""); const res = await apiCaller(endPoint, "GET"); - if (!res){ + if (!res.data){ setIsEndOnlineClasses(true); } else { concatListSide = res?.data;