From 81c055655912ce91a3a5f3b49e23154bea776235 Mon Sep 17 00:00:00 2001 From: yuk255 Date: Thu, 4 Sep 2025 20:38:53 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=AD=A6?= =?UTF-8?q?=E9=99=A2=E4=B8=AD=E5=BF=83=E4=B8=8B=E7=8F=AD=E7=BA=A7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2=E5=92=8C=E7=8F=AD=E7=BA=A7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=8B=E7=9A=84=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90?= =?UTF-8?q?=E3=80=81=E5=AD=A6=E4=B9=A0=E8=BF=9B=E5=BA=A6=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/analysis/icon/分组 106.png | Bin 0 -> 625 bytes public/analysis/icon/分组 86.png | Bin 0 -> 806 bytes public/analysis/icon/分组 93.png | Bin 0 -> 821 bytes public/analysis/icon/切片 21.png | Bin 0 -> 562 bytes public/analysis/icon/路径 10.png | Bin 0 -> 775 bytes public/analysis/icon/路径 11.png | Bin 0 -> 585 bytes public/analysis/icon/路径 18.png | Bin 0 -> 917 bytes public/analysis/icon/路径 19.png | Bin 0 -> 834 bytes public/analysis/切片 28.png | Bin 0 -> 1831 bytes public/analysis/切片 29.png | Bin 0 -> 1849 bytes public/analysis/切片 30.png | Bin 0 -> 1731 bytes public/analysis/切片 31.png | Bin 0 -> 1648 bytes public/analysis/切片 32.png | Bin 0 -> 1712 bytes public/analysis/切片 33.png | Bin 0 -> 1771 bytes public/analysis/切片 34.png | Bin 0 -> 1860 bytes public/analysis/切片 35.png | Bin 0 -> 1617 bytes src/components/teacher/ClassManagement.vue | 427 ++-- src/router/index.ts | 14 + src/views/teacher/student/ClassManagement.vue | 178 +- .../teacher/student/StatisticsAnalysis.vue | 1751 +++++++++++++++++ src/views/teacher/student/StudentLibrary.vue | 3 +- src/views/teacher/student/StudentProgress.vue | 645 ++++++ 22 files changed, 2874 insertions(+), 144 deletions(-) create mode 100644 public/analysis/icon/分组 106.png create mode 100644 public/analysis/icon/分组 86.png create mode 100644 public/analysis/icon/分组 93.png create mode 100644 public/analysis/icon/切片 21.png create mode 100644 public/analysis/icon/路径 10.png create mode 100644 public/analysis/icon/路径 11.png create mode 100644 public/analysis/icon/路径 18.png create mode 100644 public/analysis/icon/路径 19.png create mode 100644 public/analysis/切片 28.png create mode 100644 public/analysis/切片 29.png create mode 100644 public/analysis/切片 30.png create mode 100644 public/analysis/切片 31.png create mode 100644 public/analysis/切片 32.png create mode 100644 public/analysis/切片 33.png create mode 100644 public/analysis/切片 34.png create mode 100644 public/analysis/切片 35.png create mode 100644 src/views/teacher/student/StatisticsAnalysis.vue create mode 100644 src/views/teacher/student/StudentProgress.vue diff --git a/public/analysis/icon/分组 106.png b/public/analysis/icon/分组 106.png new file mode 100644 index 0000000000000000000000000000000000000000..1a4c4703a804ba7b0491427d75d4ca9eef9ff5fb GIT binary patch literal 625 zcmV-%0*?KOP)o$ugN_?tQcKuJ_L5Eg>lQ@yOx4+A9=ALqca#p{k65Y-)Gxrws$v& zN4guS?`@>4=qBl#4s#?@=nS~licY`VUXs3UFCKKRwV&wv@QO=@kG$uv20%Vg4a2b9 zPKK_#nI7J~n69hVCD~{tNzYsF;Q}*&Le=cyF*D!f8HnIU8BwCT8a!{jS+YdNAQ=z_ zM7TI6dv=VCy|Wl$V;^lT^hDPZK|k9QtAgrcD<=CPb@A!ZxIA8_E>c#T@Ok zcV&Eu$UH%gxCkn?e#n_zGL0NVqcOb%WX=1!{H1oGUev7V>Ypjg6qccC! z@}w*0ULZmfWsv~&3_-mPdtr|Ii-a{c^4GfHGKe1&G-+>%OgY^<3V8ULr{< z$yt<9SuRE%&AkH;%clizp67p^>>E< z7#bis|CqqQ78q8={?{R5$h@_0e*ypi|NnF-w)6l100v1!K~w_(@4E)LVwJba00000 LNkvXXu0mjfPv0X2 literal 0 HcmV?d00001 diff --git a/public/analysis/icon/分组 86.png b/public/analysis/icon/分组 86.png new file mode 100644 index 0000000000000000000000000000000000000000..99735826a8124b081155b714b76f48799966e578 GIT binary patch literal 806 zcmV+>1KIqEP)ar=xUxNUjGI)=v+_W~lnSEz~%vtIS7I9Tto@CNS&c={q(0&kevyP{ z7%@d+U};fKUHD+^23ZM+?w52}=kY0<>|#I(kThJZ^<}hDlKvg$>lmfF=Jhoic5d8> zya&U)^r|vZG(c-{sq=+tI5m;m$C_h|h>K#v^X%oC;BV1YLi{V17~_>4_wun0#XBEq z!%cB|QgERCvD|MR1&it#j&Nc-sEFbq8PpO%`=&hWwcK_hG*p1n4&aE5qQiU5cN*w{jn z;M*gnlos_iSLHm9v30U_h4J{PIVk4(Vy#Bu*}xzKfdznz!~E`CpJ?%Y_~dG3ys;V! zuKNLcB7jPFu2QG&9YfKP5ij&%Jl1IajYe3zRv`=Q-aw-^`sS@&BKwejGV|rt@>8 z_CqvY*FUZZ)~5|e%~*uNyfrWAXyene+OFuAqFuZ1EG}GqAU8kXmZ6X!Smzmz8hhBA znKTzv)7(~3u%oQaUY=j9HLwuaQ?O%q8$CgoA5?MoSy|rN%}q+=SgDi%k<8eGntT9H z*cLtXGK@iD@y5~zj<&5tQXoLm)R_qQY)`^+1gN>jL$3)Evb-TuBkWbh6gZhXr*fy6 zdw^|r2v;`QxLRUkZIQ2psfAartCVRkyeF90_X}u@dIm0KRvP9rzm(974v&#uL0JiS7}g`nii^ z%`VQp@&H$$Zo7pL-`3qdu0?wIe^lLPJg#YB!IgDV<4B2~q z-@U|mESlmE(0t%jN`m#&w7}q`NiZuG2hK;#NiuZy_#tDXQD$(Yc80pDy>!x3N9 zrH5Y9eh`cAH+MdA2io_l_|GW+UkL1BFFiruTo4JSf4f+)$?1P{LQM|7P*Wq*TDh8F zO^zCS*h^1 zDwMh})jQ6N+jFmIr8jYNpE=K*ne&^O+er=i$BzN;IV(J4;rIfJ*%vI`y@t~A!Kp_9 z7`TyrgpurmFgV4N!Wh50BMB*?RW6m_Y{8rI6l z&`+Rc3241b#G9f#A*|sYY8XMwkpyNApOD@;M|zhOjO2IEvftL2&m1GYeZ)B*NXJ!2 zRx+a<$j5t;kCB3re8Hj*&E>$GXhsn&obiFQyXr1~i>}MH+BlAYlI~Cw8d#|axO5#Z z?+a88IAsOYRyVbQ>iBhbe3gI2#8wXD`~R`Fca5S+K!R!-HQ#|jkn&Yk;ndF*`*CU} zVShAXGv9-UND2<+iKSm3NJ&!_QVf1W&QYGdn&(O7)Uh><8V0HX%Q6s*UtZ|@`Q>Ym z*ZfgzTG6%v6)hEQLwnU%Fcs^K*95v!z;#L0NY_K>s4q#{*Bz&`dM_VYN+Nj4ut5mF zf`RQH4}LbJ8%)Kyf`RK}t!OLf==!l!{Bme*a07*qoM6N<$g1<)v ARsaA1 literal 0 HcmV?d00001 diff --git a/public/analysis/icon/路径 10.png b/public/analysis/icon/路径 10.png new file mode 100644 index 0000000000000000000000000000000000000000..040c25f1353587d8432e50fdbd4f568cc0615357 GIT binary patch literal 775 zcmV+i1Ni)jP)kcgfIcoAkdd$&^YVajLm}2-7Uj~5ZwH3^;uwA zBBp`dRHp(nHftKwW+N@b+RxfkjcHaRVu0FUQYC8FxtulTS<~hWr#GtO8o3z}N8*`8 zQY1N%DENd!Ot^es)y+(ARmaWLO|FNoC@Pf26N{KQ9Zn3g9DGtEYQ{17gkvl~9Qi`o zyj-K%D0-m*Nt^yu^blKZ=+u{7p9aj!Mao6N&oGg}gjuva!I{3O+mwikD!hNXkNS>- zc-WqlG}7%_x$+kkdI$r_IE7g=>K(1=h0hIP923qJn_Ay14?86NFeQ&Ikdx&WMcuc9 zs=u{7cHxBzPvBQH!Ee>0=8fO=BMNn01Ap1$+`TZF9`zM$h=T@UTUrAmLj112`zBHE z#p~~-^znAj5?+sqL*Fwh)euO!*1XV=H(ds7X|;pVo|&}a_UpcTtR7RZ`ogM4{AA>f zlvay9Z&m16n%%b9Pk0M&}%7Y%~dcqT{(v)!m;R(mo?jr}^5c=RYsIY>eZJ@n6nn{gw zNn%!?jrsnzc{!Tm$j5FriZ}ptP6YEXujJ!UdBDr~EIqgX;(1_N^Du2*q&THxcInZlzc^Ig1Y+w_miW^C3p1TCdk+b|_;^_@N*3Uqv*h!-i) z77^7FBsniy&t_~EeD3}O00960EDC_100006NklRj*&YnW-K_W3GGc&iws$Ck0%Ng>Rjk z|F(=ZAm>g%%s{c&(4nG0GSjB3P zt`*%#MjFg*{i?OT?7S1@xmf5-WwN{6+S)k`{m>dRxVqLkS(EA2SoumUOcFpBP;XpY z?KXBh3>hT7iH~^lDOK*;#5_oPdJl6RcIPw|Kz7pb87KTqx!5H z^Fqc=U0k73PpR+*`D@29rM~vCN@-@`%MykRa-rDD{Okw0JNw?YVyQd|yq126U}Tz+ zz0rv5dNWEkn~~kb8_Zw^_ynq1HBYRim!dQi4E#X1dmCQYc$<7~M9F1?jpw3#R+Q?Z zT*tsBz!8iHbwH8B05dubzAi%NfklJksfw6ELl#2=#1O6nE272?xPfkvGpU-YQ3zFu zd=wwmgxm^0{(5`gIpC7DrnP&2P&1j-F{LSxN6g-Hz0@pGcF80yc`oR(eP8$cR6f&8 z9|AjyLxS7)Z4!i$%O7Jha_2utW=dedFQDCvN!K}k^%npD|NpTTPR{@U00v1!K~w_( XGi_>dVyc6&)8 zsK^H;BEwcgvyvq3B6+tOU7gvPbLQIlPtG!e4-I_t|L6a{|2yaW!*Iy;oQSknp6UK$ zme#%5=_*f3kJm?bfre@;+ypb)fB$~MsSjW4d>IQ$Y{QTZUF~*@+_^`?J+^6Lsx3X$ z*7f{YZS8d6xuZ4D7NuuzY366o*=ox2*RhVaF!~i8I??jwbXnVvS0_JwA2|8(#~_W3 zW$(YAmtvBrer{iH#N<9cIc>Wyb4BBknwm6@Uz**d3p1B1Lt?{lq&dt5<`oFx{2n_v z?}{Br$us?_>1IMon&nT;v1g`U46NMn&6+*;u-FpWsEXt74d1NQeAb304oBrCwWs%H z#fy8Jh0IX3mAd#Ev3*{QJ;)7}t^wGX&KbeX5`Iy*X1KXwo6|n!&7fA_~V9o1cMj&><8`TwEHOW*Q zCLAJxj8gDmC(<;uYf2$C97BnSnA0ZB%dI6SAvbQMpu{9b(yOpY4V-8Y#bX)zH*Gv7 z!nK^b6IF8tUvT;HVs;{eJ+?zIF&F~Ca8~GeZCOE=+1aqf`aSp%V`RrQz*FcZuQMZE zj>Q;Bi+BRgK*s}1&t=~jYP6>L(_bH2xL=p#yP#1)M>iviX4RD!^)e$u&Y3iGM&V9byxs!>G`idU&pL6DX{O-AP-zfNpUvcly;*zh! z6{Y<@2TKP=UL>OFc#;YQYKm+kM)Su|^w`RAGT|fSDwDLsT$m%e6R-jBWPYX;lLSV%wQlv?-A^V2o zaLO1gG2>oGR%`6^RH({q@}Flm#kw-y#%>&FifwSon1%-e7^eV);I__;SC}wc6DU0q z*90lVP@B>0m%BbEMU1OOE7@R zKo%W$O`5O1oMon&=U`G{r19 ztKRL!A7n6Bwq_*=VKJ*52itUSJa2OYM`b7bHAAssRVG7pO{@3eNN~z62j@4+loc)+ zT2&T+`1(60!knm)e7fY<%KN=GHU_U-4yLAS4V#G7P096${S*M*1Z_uB%E_oR@}7(| z1>4pd6FzyjBv$k%CXFuVaa?7%zV@T3@7oT~%aQ(-qFs|fm+Z{;YANomGmJHcu+Ffz zoeAa(#0kVsiW%arC#-2em+Z;GX!mI^zdP4E)t!sY0?(2^F@$6|rf$3Xux0?K7A&u_ z8v$X})R^;a0?+jpVbu9yB?Wqz$O<)B3pUbMh_#{km&wTK0g5>P=}MPEd$4}#Q}VjmPyUsOabwZ7CMViD0Q ziUp}4g$mU^D1t@ngBB@PYrPb!^qRDpnPe{K%*;9d|DK#_GLyN+v@^`k-g~XJ*ZTHt z%{j6BIev1U=clqcKkj7x3#qI>n#}lT6B+-^R8d

0~2YjhSOu-$DZ)-v`oJ598?^ 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 P00000NkvXXu0mjfI426V literal 0 HcmV?d00001 diff --git a/src/components/teacher/ClassManagement.vue b/src/components/teacher/ClassManagement.vue index 06e14fd..36e723d 100644 --- a/src/components/teacher/ClassManagement.vue +++ b/src/components/teacher/ClassManagement.vue @@ -38,7 +38,7 @@ 管理班级 - + @@ -1118,7 +1268,7 @@ onMounted(() => { } .toolbar { - /* margin: 16px 0; */ + padding-bottom: 16px; display: flex; justify-content: space-between; align-items: center; @@ -1341,7 +1491,6 @@ onMounted(() => { .batch-delete-content { text-align: center; - padding: 20px 0; } .batch-delete-content p { @@ -1443,9 +1592,15 @@ onMounted(() => { margin-top: 16px; } +.delete-warning { + color: #ff4d4f; + font-weight: 500; + margin-top: 8px; +} + .delete-confirm-content { text-align: center; - padding: 20px 0; + padding: 5px 0; } .delete-confirm-content p { @@ -1453,16 +1608,6 @@ onMounted(() => { font-size: 14px; } -.delete-warning { - color: #ff4d4f; - font-weight: 500; -} - -/* 批量调班样式 */ -.batch-transfer-content { - padding: 20px 0; -} - .batch-transfer-content p { margin: 8px 0; font-size: 14px; diff --git a/src/router/index.ts b/src/router/index.ts index 54fbc7d..a83efc7 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -66,6 +66,8 @@ import HomeworkTemplateImport from '@/views/teacher/course/HomeworkTemplateImpor // 学员管理组件 import StudentLibrary from '@/views/teacher/student/StudentLibrary.vue' import ClassManagement from '@/views/teacher/student/ClassManagement.vue' +import StudentProgress from '@/views/teacher/student/StudentProgress.vue' +import StatisticsAnalysis from '@/views/teacher/student/StatisticsAnalysis.vue' import ExamManagement from '@/views/teacher/ExamPages/ExamPage.vue' import ExamQuestionBankManagement from '@/views/teacher/ExamPages/QuestionBankManagement.vue' import QuestionManagement from '@/views/teacher/ExamPages/QuestionManagement.vue' @@ -310,6 +312,18 @@ const routes: RouteRecordRaw[] = [ name: 'ClassManagement', component: ClassManagement, meta: { title: '班级管理' } + }, + { + path: 'student-progress', + name: 'StudentProgress', + component: StudentProgress, + meta: { title: '学习进度' } + }, + { + path: 'statistics-analysis', + name: 'StatisticsAnalysis', + component: StatisticsAnalysis, + meta: { title: '统计分析' } } ] }, diff --git a/src/views/teacher/student/ClassManagement.vue b/src/views/teacher/student/ClassManagement.vue index e922c94..da5bdc3 100644 --- a/src/views/teacher/student/ClassManagement.vue +++ b/src/views/teacher/student/ClassManagement.vue @@ -1,11 +1,185 @@ \ No newline at end of file diff --git a/src/views/teacher/student/StatisticsAnalysis.vue b/src/views/teacher/student/StatisticsAnalysis.vue new file mode 100644 index 0000000..d814c8f --- /dev/null +++ b/src/views/teacher/student/StatisticsAnalysis.vue @@ -0,0 +1,1751 @@ + + + + + diff --git a/src/views/teacher/student/StudentLibrary.vue b/src/views/teacher/student/StudentLibrary.vue index bec7eef..e7fb1f9 100644 --- a/src/views/teacher/student/StudentLibrary.vue +++ b/src/views/teacher/student/StudentLibrary.vue @@ -33,7 +33,8 @@

- + +
diff --git a/src/views/teacher/student/StudentProgress.vue b/src/views/teacher/student/StudentProgress.vue new file mode 100644 index 0000000..881ef04 --- /dev/null +++ b/src/views/teacher/student/StudentProgress.vue @@ -0,0 +1,645 @@ + + + + +