From 045454f023dc7fdf616cb9161c31321cb6b1d383 Mon Sep 17 00:00:00 2001 From: wang <842355358@qq.com> Date: Thu, 20 Jun 2024 14:55:36 +0800 Subject: [PATCH] docker --- README.md | Bin 22 -> 40 bytes app-dm/.gitignore | 2 + app-dm/src/TeacherPages/SendTest/SendTest.jsx | 6 +- .../src/TeacherPages/SendTrain/SendTrain.jsx | 6 +- app-dm/src/TeacherPages/TeacherPage.jsx | 2 +- .../TeacherPages/classlistpages/classId.jsx | 2 +- .../teachermanagetest/ManageTest.jsx | 6 +- app-dm/src/pages/Home/Home.jsx | 2 +- app-dm/src/pages/Home/img/班级.jpg | Bin 0 -> 19392 bytes app-dm/src/pages/Home/img/问题.jpg | Bin 0 -> 9758 bytes app-dm/src/pages/ListPages/Subject/Exam.jsx | 4 +- .../pages/ListPages/Subject/SubjectPage.jsx | 6 +- app-dm/src/pages/ListPages/img/主页.jpg | Bin 0 -> 5193 bytes app-dm/src/pages/ListPages/img/班级.jpg | Bin 0 -> 19392 bytes app-dm/src/pages/ListPages/img/箭头1.jpg | Bin 0 -> 12075 bytes app-dm/src/pages/ListPages/img/设置.jpg | Bin 0 -> 22893 bytes app-dm/src/pages/ListPages/img/问题.jpg | Bin 0 -> 9758 bytes app-dm/src/pages/ListPages/img/题目.jpg | Bin 0 -> 11656 bytes app-dm/src/pages/SighUp/SignUpForm.jsx | 2 +- app-dm/src/pages/SignIn/SignInPage.jsx | 2 +- app-dm/src/setupProxy.js | 4 ++ build.sh | 54 +++++++++++++++++- docker-compose.yml | 23 ++------ docker/base-dm/Dockerfile | 33 +++-------- docker/base/Dockerfile | 22 +++++++ docker/build-dmpython/auto_install.xml | 2 +- python/Dockerfile | 24 ++++---- python/app.py | 36 ++++++------ 28 files changed, 142 insertions(+), 96 deletions(-) create mode 100644 app-dm/src/pages/Home/img/班级.jpg create mode 100644 app-dm/src/pages/Home/img/问题.jpg create mode 100644 app-dm/src/pages/ListPages/img/主页.jpg create mode 100644 app-dm/src/pages/ListPages/img/班级.jpg create mode 100644 app-dm/src/pages/ListPages/img/箭头1.jpg create mode 100644 app-dm/src/pages/ListPages/img/设置.jpg create mode 100644 app-dm/src/pages/ListPages/img/问题.jpg create mode 100644 app-dm/src/pages/ListPages/img/题目.jpg create mode 100644 app-dm/src/setupProxy.js create mode 100644 docker/base/Dockerfile diff --git a/README.md b/README.md index ab78939547e9692f4454cd273aac91f43408a5db..0e5b1055bd56558e766ffac55959cd62804435b6 100644 GIT binary patch delta 23 ecmWgBm>?#k%%IGmz)(5kUD@TjmULbQE(QQY*ajs4 delta 4 LcmdN8n;-@N0vrJ4 diff --git a/app-dm/.gitignore b/app-dm/.gitignore index 4d29575..fd9e0b4 100644 --- a/app-dm/.gitignore +++ b/app-dm/.gitignore @@ -11,6 +11,8 @@ # production /build + + # misc .DS_Store .env.local diff --git a/app-dm/src/TeacherPages/SendTest/SendTest.jsx b/app-dm/src/TeacherPages/SendTest/SendTest.jsx index 87b5c69..e4c5d37 100644 --- a/app-dm/src/TeacherPages/SendTest/SendTest.jsx +++ b/app-dm/src/TeacherPages/SendTest/SendTest.jsx @@ -14,7 +14,7 @@ function SendTest(){ const subject = async ()=>{ try{ - const subject_src=await axios.post('http://127.0.0.1:5000/teacher/return_question',{ + const subject_src=await axios.post('/api/teacher/return_question',{ teacher_ID}) SetChoiceQuestion(subject_src.data['选择']) SetCompletion(subject_src.data['填空']) @@ -41,7 +41,7 @@ function SendTest(){ const click_1= async()=>{ try { - const select_class_src = await axios.post('http://127.0.0.1:5000/teacher/select_class', { + const select_class_src = await axios.post('/api/teacher/select_class', { teacher_ID }); background.style.display='block' @@ -119,7 +119,7 @@ function SendTest(){ // 发布按钮 const release= async()=>{ try{ - const release_src=await axios.post('http://127.0.0.1:5000/teacher/accept_test',{ + const release_src=await axios.post('/api/teacher/accept_test',{ teacher_ID, ChoiceQuestionSet,//选择题 CompletionQuestionSet,//填空题 diff --git a/app-dm/src/TeacherPages/SendTrain/SendTrain.jsx b/app-dm/src/TeacherPages/SendTrain/SendTrain.jsx index 5e29609..734c247 100644 --- a/app-dm/src/TeacherPages/SendTrain/SendTrain.jsx +++ b/app-dm/src/TeacherPages/SendTrain/SendTrain.jsx @@ -20,7 +20,7 @@ function SendTrain(){ const Train_question_func=async()=>{ try{ - const Train_question_src=await axios.post('http://127.0.0.1:5000/teacher/fetch_train_question') + const Train_question_src=await axios.post('/api/teacher/fetch_train_question') SetTrainquestion(Train_question_src.data) }catch{ alert('Train_question_func出错') @@ -29,7 +29,7 @@ function SendTrain(){ const SeleactClass= async()=>{ try { - const select_class_src = await axios.post('http://127.0.0.1:5000/teacher/select_class', { + const select_class_src = await axios.post('/api/teacher/select_class', { teacher_ID }); SetClassData(select_class_src.data['Class']); @@ -66,7 +66,7 @@ function SendTrain(){ //发送题目 const SendTrainTest=async ()=>{ try{ - const SendTrainSrc=await axios.post('http://127.0.0.1:5000/teacher/SendTrainTest',{ + const SendTrainSrc=await axios.post('/api/teacher/SendTrainTest',{ TrainChoice, TrainCompletion, TrainJudge, diff --git a/app-dm/src/TeacherPages/TeacherPage.jsx b/app-dm/src/TeacherPages/TeacherPage.jsx index ca28355..0040872 100644 --- a/app-dm/src/TeacherPages/TeacherPage.jsx +++ b/app-dm/src/TeacherPages/TeacherPage.jsx @@ -35,7 +35,7 @@ function TeacherPage() { //查找班级 const select_class = async () => { try { - const select_class_src = await axios.post('http://127.0.0.1:5000/teacher/select_class', { + const select_class_src = await axios.post('/api/teacher/select_class', { teacher_ID }); setClassData(select_class_src.data['Class']); diff --git a/app-dm/src/TeacherPages/classlistpages/classId.jsx b/app-dm/src/TeacherPages/classlistpages/classId.jsx index ad76dbb..0e43f84 100644 --- a/app-dm/src/TeacherPages/classlistpages/classId.jsx +++ b/app-dm/src/TeacherPages/classlistpages/classId.jsx @@ -14,7 +14,7 @@ function TeacherPage() { const [classdata,setClassData]=useState([]) const class_succeed = async () => { try{ - const class_scr=await axios.post('http://127.0.0.1:5000/teacher/find_student',{key}) + const class_scr=await axios.post('/api/teacher/find_student',{key}) const class_data=class_scr.data setClassData(class_data[1]) setisclick(true) diff --git a/app-dm/src/TeacherPages/teachermanagetest/ManageTest.jsx b/app-dm/src/TeacherPages/teachermanagetest/ManageTest.jsx index 19ae95a..517c3b9 100644 --- a/app-dm/src/TeacherPages/teachermanagetest/ManageTest.jsx +++ b/app-dm/src/TeacherPages/teachermanagetest/ManageTest.jsx @@ -18,7 +18,7 @@ function TeacherPage() { const select_class = async () => { try { - const select_class_src = await axios.post('http://127.0.0.1:5000/teacher/select_class',{ + const select_class_src = await axios.post('/api/teacher/select_class',{ teacher_ID }); setClassData(select_class_src.data['Class']); @@ -45,7 +45,7 @@ function TeacherPage() { useEffect(()=>{ const change_class = async () => { try { - const change_class_src = await axios.post('http://127.0.0.1:5000/teacher/change_class',{ + const change_class_src = await axios.post('/api/teacher/change_class',{ teacher_ID, selectedValue, testID @@ -74,7 +74,7 @@ function TeacherPage() { const click_detailed= async()=>{ //获取详细信息 try{ - const detaileddata_src=await axios.post('http://127.0.0.1:5000/teacher/detaileddata',{ + const detaileddata_src=await axios.post('/api/teacher/detaileddata',{ testID, selectedValue, teacher_ID diff --git a/app-dm/src/pages/Home/Home.jsx b/app-dm/src/pages/Home/Home.jsx index 73b66e7..40e4815 100644 --- a/app-dm/src/pages/Home/Home.jsx +++ b/app-dm/src/pages/Home/Home.jsx @@ -39,7 +39,7 @@ function Home(){ const student_succeed_func = async () => { const student_ID=localStorage.getItem('islogin') try{ - const student_succeed_src=await axios.post('http://127.0.0.1:5000/student',{ + const student_succeed_src=await axios.post('/api/student',{ student_ID }); //提取课程 diff --git a/app-dm/src/pages/Home/img/班级.jpg b/app-dm/src/pages/Home/img/班级.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e7dde0414d989ac5e32dad8137e217ab3e1ebfc GIT binary patch literal 19392 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 z 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 literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/Home/img/问题.jpg b/app-dm/src/pages/Home/img/问题.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d39a339597d95e329c5818c25c495b88e68838cb GIT binary patch literal 9758 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 F{{x}o2VVdH literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/ListPages/Subject/Exam.jsx b/app-dm/src/pages/ListPages/Subject/Exam.jsx index 3b7673e..dcf600b 100644 --- a/app-dm/src/pages/ListPages/Subject/Exam.jsx +++ b/app-dm/src/pages/ListPages/Subject/Exam.jsx @@ -19,7 +19,7 @@ function Exam(){ const [testdata,settestdata]=useState('') const test_func= async()=>{ try{ - const test_src= await axios.post('http://127.0.0.1:5000/student/get_test',{student_ID}) + const test_src= await axios.post('/api/student/get_test',{student_ID}) const test_data=test_src.data['data'] settestdata(test_data) }catch(error){ @@ -132,7 +132,7 @@ function Exam(){ if(isMounted){ const score_func=async()=>{ try{ - const score_entry_src=await axios.post('http://127.0.0.1:5000/student/score_entry',{ + const score_entry_src=await axios.post('/api/student/score_entry',{ student_ID, score, examId diff --git a/app-dm/src/pages/ListPages/Subject/SubjectPage.jsx b/app-dm/src/pages/ListPages/Subject/SubjectPage.jsx index 8b2e40e..98ca920 100644 --- a/app-dm/src/pages/ListPages/Subject/SubjectPage.jsx +++ b/app-dm/src/pages/ListPages/Subject/SubjectPage.jsx @@ -17,7 +17,7 @@ function SubjectPage(){ //根据学生ID获取他的考试卷子 const test=async()=>{ try{ - const test_src= await axios.post('http://127.0.0.1:5000/student/get_test',{student_ID}) + const test_src= await axios.post('/api/student/get_test',{student_ID}) settestdata(test_src.data['data']) }catch(error){ alert(error) @@ -32,7 +32,7 @@ function SubjectPage(){ //获取他已经做过的试卷 const end_test=async()=>{ try{ - const end_test_src=await axios.post('http://127.0.0.1:5000/student/get_end_student',{student_ID}) + const end_test_src=await axios.post('/api/student/get_end_student',{student_ID}) const obj=end_test_src.data['result'] setEndTestList(obj) }catch(error){ @@ -67,7 +67,7 @@ function SubjectPage(){ const find_result_func=async()=>{ try{ - const find_result=await axios.post('http://127.0.0.1:5000/student/fetch_result',{ + const find_result=await axios.post('/api/student/fetch_result',{ student_ID }) setresult(find_result.data['result']) diff --git a/app-dm/src/pages/ListPages/img/主页.jpg b/app-dm/src/pages/ListPages/img/主页.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ea393a681735ed97df157ee465d72e4bddf217e1 GIT binary patch literal 5193 zcmeHLXH-+$w%#;B0YO3&q*x#*DAGiVfHbM0N|zFfBB%%fY#2}oh9V+WF%)S6QbO;s z5IRx>LJ<%F2_%A)Pyz{WbM86!zB1mu@Bh1N>@il^^PA`a2^sm1ONc1 zp@FU?05F0>Mu3e8>^|q6Y6mAv<|fv9;Pl_^-wgaeVW6rPNC!jRMp(kE00u@TW|jl2 zYzGgqb8sH!;y%Iy;pO8O5Iia*d`v`CO#JwXlcyvkp;D*MNXwi(CwpE_UO`dmg7QTb zRWZ?ki9 z^YY&n6c)WNE-5X;mRD3(RoB$k)i*RYHRC>f{Pej6-`dvR(b?7A^QE`1f8guj&@f?S zbZq?F#N^cX=^rz*b3f;a3yUQ3uchVRE30ekl#R`;ZR*Z0jb3OqaTWl$j~MD+w!Sw; zp4bk!N;%rLGVia$$Q;gW?|9z8Gv7esSrxB++W9EuIcgK(MPOwCoO=k~j zNi|~3<{QEqd^TZx+H=b*D_M;#hR-e8QP(xk?;sQ(CBw)x_uh@rhaPRKqx+*^-5Osg zDGCVq#@%-~-3`tY=MAQh1aV?gLnLjmKExLCOfFp;>Ln&i5m1#Q-7CQD1C41BAkKMF z7KE)>BC{YBaVb=G5Yss5^4}mke}h0jmHZ#1{#2acWA_#tFL6^6aw?~mUieCV`jo2N z(}SeanUo{3sxh!`>j5e$Axu|SVCgc{EARcl?6+3RBQZ=WI)_3aVHPT%mu5l~%;>GN zmpXeMAHt-19}1FKI}feoz@*xvL=9H&-aZut>lU9mlOT%d_ST1bak$ZjE+!l^Db|5{ zvANN%hVZG>uS==Qoz%6P?K6mSYk!P@Qw>R_O#&7sO*Pq&uP_H>(>UfwyR;58FRhaP z;Fo$-(dTGli()(Ae3J62z8Wb0_507;!Ud2pFvbxPB$1BU^Mi3$kW# zmsV9Le1CYw69G?`D#6i5(U006^I%dRz9yC8swG^sjr-Acxpj0Nr#QZBNPyuT8XryN zVE1ip=ugxnwP@Rh=aoY=Oy)SAl9EC>rz)4hOK|D9m~wRYv?{h19Pb?9>7Y!aU^0jC z6x;H#n8unuG#*TYkuxT#f*+Hr&_f}t{pwIc!09(iaE*^v-$K@|+@;~8wG*9!-$K+P zC#lj8xFjYJ2>A7WN2JoE!RhnOJeUyy(AhU_8UCO5B4IKj+R^s2dsCUb3pK)+5$`Bc z>Bx*(o#--%*8>A=QqDDROX))&iT^>Brf*rDd&s9M2imRpC56{E?n5sW<3w-jfIDj6 z^4uIz1e0n8>PWtyC~0d0X2%w(Y>I#%T9o~`Wp!rW`|rbDDOD`*u*>R7K9ytx2C*pX&Sj5`g2}8=Y{TVmfV%F} zBt(#2gM7r697@VGPWy8o8oemHhHIJC*-O-0D!`>3bcRZn;IwnPdiDiuRa-MUGj1FxfU$NR45Ibya;R#vajRB6nF#naPw|Y|eL^U#+mx0Yyn9+Utq(0h*Bnr%CwAJqcYQuv zjFfO8nG{BVY~gXR0S!912e)8oG5KlY`monbTy2tuwA`GAw*zK6K6-#!G#4b_auEUl zGB42@qnV2m(Siourg;u*Sv?+(g~`-WY$M#}bGL>2(GnH(Gs|YEczQG;;|hPrl*c4U zUlA{6KQ^&HnO~37%v~z4gMj7DCG3xpUS)cyhJ9Nv-o{m8s_yL#y-=ef4w|=!EGD;{ zkQwk}Vrh-w4}uRUEcZ5>G7PMRjH_bbDEY47Z>2R|LRJ=BfOhNM~Z#keo=)_y_3d~K}EwFMCH)9-K& zk9ET?c;H5H8ej@H91hh^j+@efq+u7Rj3ClzF6q_7gP4ZHU}+teeLaSryYp#F;piu% zVg*EcBx2?I3pK18tKDqGVdm@I0zvST9brpUQt#!E-FaXACO1rKCEeln_?FepC-#`s zGJ4dcv0t*W$>M%|TbG^$tnZ8@?#D6YWcod`?V%R}WRNr>$oN!E&YMO-<3T#eP)abo zsT#ifN;NBYObtt)6GR^PgT&s^^`)A@TD<_MWHHX@*Mm*Rnz2SH&R5e zj_va<1`+%QCeD5L)w!k`Lp8Y&ifz)5O(9~!W^y%5CRn63VuB-9drY?} z2Ethyy5A3*NG`Xm54s3*+{0yQ2OFu$ouv>Uqs)&@Qi9;Bi=~>(V9h8w>wtM1B~xDa zqr|%JLHXTcG$9q$5O%Oa7f{9f@vE+!Wz2dmYpjOt9&%yD!Cd|J{nc1B*7DDi7=Xzr zPzX3Vx=AwJ8=8!!l9mOLlD*`-%3ydx;d#2Xhf%#6*4|VQStzgCgt5CT4c0XWT`|PW zLnm5}KA2BnU07@>Hv)%J%ch`)bSi1fllgS~8bVbSdpphEV_A>c2p8ghtu-RGhC}}tE>SBQ~=S_W;lH>wjmwQTW6!5UF$1k@ycv+pW zF9M-sLrKT1Xr_sFX;XSCDB>M+_H4wY&Ij#YcB!2U&?u^nc1%L~gYQ z)@~`7-tbt7DxZMD$kLAYds8pW8t;6Zi7pXSX4ZW4*Eelw?|1`_P)NG?d`1j;{<Rp3{zU)zMP*963}bGNCcP_(^!B)Ioi70YiiU%`V)w-*hgVEMQE{ zx_>;;J*|0p@dRUb1tzUmWvX{xJ$>&3DPU5)cYo?oDzFBsTaj;S7tx1Og>#Z^C$E$H02WB07u;dh`pW)mqt z=Ide^yNOgDBV%%emiHVhM`aE9CXpeP7@U;d3=M=fTqp_isA>(THrJRZm%;_q<7qJEx4i{c~jN zy91!g;kwhm)}Q$WcUJ%qVJ>r56(T^#8Hn7WKF^(_4g@VwiWrE@p=!->sEvsWz$%j< zRY7R{8yir^5OYrVsiPo+xNPXPfPUh+Z|qtyKp6QPwMmi$RvGM8EEJo$fOgjJSgFiN zhIW?BJp^wbSqPA47!lB0zX-en9v#(N=L7DGmYqGcP_4Q=MPZG(a{Q9xJgtEq+WYoJ z9;p#oBUV=aQIom0QPXDl-d>63_g1Mql20R&Am(Sr`*lKT5=Y`15yr1;#cnQBne?+$ z_5XNzo*%DhGecvLnqOn;lLtCOKo$~t0AMf}33P7n0+k%0{$k)-F8KRJnGg&0*U$vc zGG%^a1puwn41iY1CTr%KUM{UJKx&f#0L+a5#QnXk@uRBFU*?zZ0~$msr}n(&#-sU6EaXAZtT-Oi!FfUH*K z8Wm4cg!znG>T2N7g8ApPYbo;8T`8A2mwzlJR$bSQy^ZV~kFwR_Tr%jKC?sgd{%S8w zY~nL>;ZQ2a(+W;bY+Ahw>p7frIB+ifPPh;u;wi~;eoTE~o-uZ@yCrXMl#1fQ{La-n z>7ai1#yi=-Y$eA7sJ6i&6l?YSznv(CFDpHe4A+eW8efns4g+8_)Pw1kXuCf752;_P AB>(^b literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/ListPages/img/班级.jpg b/app-dm/src/pages/ListPages/img/班级.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e7dde0414d989ac5e32dad8137e217ab3e1ebfc GIT binary patch literal 19392 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 z ziB#$C>Pwl`oKMw%h#$H5*CY;l)9|}zWPx{By}rXEE11&8t>f-14CqGqS_AMz^=QcX)?mh+) zK?gdqEy}vH9dk~F7#t6K65T`CuRA|5)ud)(DXTkU9KOL8PE4)D8+lTcYgx-oA<)I= zp1L9SE<;~8e7;R@y^176Oyouu{zmkDs1_oJcZfYi^Z;hGB>_dc#8uL3fDs+LvQOkE zHrQ7)OpbXlLi1JYzT=&5zgxem){!Q(f60$ep+NVD8qND?WQH-A4eDnaMY-KE4AA{Y zg!i2tbn{d%8dtkZm1G=uO*JXiJu!wL2<8Cs`D$0;XTwDdlyM}%t<`(^HGe$0oy+uK!WO|+7o$+#>IM`WUcdWWl3IZ&_%;|y>20Jh6J{i_Hzj8( z7peN0CDhygY5s(k64L9v7ksqU$lbbZW6h6v(7@jGwB0Z={N6EBjhLR61^*fjs#TJ4 zjFMRm$PpirOErAs82$*IpJ&EGWYFf_pS54fvWBc1K|4dfJjE{zTb(}anKtS`oW z8*M&6G(()AUT9y69q18#r)s!=aw`Gk()!i8p(303=)d7(=#y?VFMh7=~-v7eeMqEyXW-ex7(l`8`oT zogOwmmAZGc^5{UM^wneQ1MeXHAckR?{41TOpBi7hZf)jX*YoBZ`+Ym>%Rbu1`=;0z zX7C82UT*`@p2sJHZm&XOiCanvq$M#NqrcTf1TgJ)*X1YQq@xIHtSOJvL((Gx$aa3@ z@zZkeZTWnPOH@p%N3Svoh`EkxL9|78#T=gxWdf%uNnbX^OGPC>XSecxL?E05%BAwg zHGWuZySQL&oOf_}pA=DEDdWFcwcdp}=cHhgP^uE~oa08Ux~n1#yNmBCVm{6I{(Aq! z<*-9l!-RNO;0U*GM^nJ5uPNRwBh?CWvMJPTN(-zS zQ0aJ13ubS;LcckW!clZ1G9|jPcM9_h#L&8!$2|cJzS>skEmpWNW6i2)qkp~Y9S{9Ymhv%q@4A2xgiRu%tYIvz4YOGDsUJy@jOT1}-~CvjP|28H zDWi4%Uhg@aMirOZ3uNL{F~hc;FDhrSNMmHWd35f+B(L9@_^bz6^DITyLAx$g0#)N@ zZX+Tr8Gfjl0At}gZ_*IeR-il;b(Qhc`lK_~gwQ#=Yr-TZV8Gf!hahw5B&Xd`qeGO+ z9wuY!LJgkH{J0Oe3qjAFoL@KmX_M3cA5v0OgSGjDj;wkk@o!~vV3$wP{mCrtYfNG_ z7P~6%Ypp4ZA6)c3%@Fg&)8y}e7xn+v^|gon8YH2}SD3^+qVu@-`9g(dLbEE5^4Q2x->QtDI$$r9=xE%_N7Sgl zwT|canscJaW(&IE zrb0k#!}^GW=M2V@KG#;YV*>azLf`Ef>OI)_wn6+*6LG2|3aEZoWsbyfzqmU`PDfrEjW@@MuMlZ1JgAzCIb_?GYsk76 z3fC4wYaYu!ndjsyx*axDv6lykTtUFCeR0dall$;JL%L7R1UG}_gL3X-1SOmLaKR&* z9DFagl2mZC-*Tv~txT}~+k$DE^+u9Zqrwg;>J94+D4psk>qwmYT<;qDVUUemrv_sv zSU4HbVISE(8Y|RWyQq{*dWhh8U~fI;_?*_^IHjwj^uaaF?nSxmfQ@-}${2^?nkq5H z{K@R?p9+x436{`@w4^RD)mGQ=ah%lfVLSd@U}Qt{qfgT)S7O|qh zwES;EdQFX+)5xlEmPNPD+L4}qkAnBF0&WTLWf>ac%He* z5KSdpiCuM9?Bg%?{Ac|emK>-7gD39cpExCwVy1FUb#Shkgs{fj}EN~sv4er+qCSibh1YdD3iCRJ{$*>zy<4b2w(SEkIb}y zN0`&(Anf77W*b9)4o9KotDnczed*2F-r}>NLR|W$y>e5{(@jm6Z*yT70^A%A==wkv z%Z+gjrL3|9LJ|Gju-ND@dM2?VQN^iYmfu>*vR+BGxu{mj?uqyH{P>Hs+1Kvk^9bRW z{?*fgTd>tLr8di1l$P?|^+iwTR};cpsCceOV_+e2aE?M-#MXY*Gl#@7f6bIB#_IL7 z%}7O5jZcn&G@?@4$-OtdRc$r>mw)FILg5b!y7dlV?1D>G#60rkz+L=TX|tUBcVLUo z65Zk%_zyE*pr(RoXJZWkzrvwRg@)-h4g*XXXO025q>($D$fh@@0z~=%NR~(us4KxM za6%pj(KTwtwApd#GkiEEO-Re8HTR!hUv^%kTO?t>igt_VPA>FCFvt|Wa+cE(c|jCI zM(8mObLQvcIwX+Qsbz+3S6-z=h;=xdZVX*HxC$-b(nrjlZ#{4UrmK<&t_Fn;v`&SC zcFW9L63%0Kt?nWA#2L`*G$1Y@6jrqh6n#WKw$a3Ac0LLv6(3JfHzGfJ288HvXM?uwMjS*m8_% zTwuvXIPcU^iCw;zI!WHc4&?IOk2TyETFp!u(2n(`4$boq+B|+Najn>5YI^2c;?DIa z1ZtsoT{|? zm32g61jZ@>Z=gSPWGhE~G}aL&TxzH!Yj?Szoo0l7)$melP=Ca^lHvl}gI5>s3Uol2 z#WVnaPf#$ZgE2+CzX`&3^}K$Nq`>KzMvGjtKF8pNkvHo>$7Mm_ipa9F>&*Q!)f;QU zYnSh+ko!`tDlD6gac=D7L)r%mIn3WwVp_zGyS!NOxDRD^rn8CfoxMF7++4^xe%q(1 zwG3yw>1qes+~W@t=8;L}C%)(6v){cO8QVA6hX}~KPHHJ7&)sXcxJw?d9>9{t;{#CM zx&}SyXBITXItjA-F5CEiCinvZ_Q!u0AkiRT;iMe6oI6`C)Ef{zttAK@g^dQu(%=Nq zl%6`WIgFsdAO0+}`zd>^Nh|f6+BcH}>k38zqGdqRN&PF&FEAs@KXS*u{OMKxg|CMP zD^~9o7Icgi6Q5-1i_>Cqk;8pD{w)>^Gz%rZ))K1kC-1}3!yc*A8C z-Mb=K<`m*j2?}iXJTa%U1r3Z@7FZq>Q_VP6X~bpebMpomeVo+R>u;m+u}{scB*tWY zw0gJwLJ00+0qEU%FBFV1Wm)G_LBXLwX))KQP+7$bjb2=^aD5h5b?P+J=_Hk~Z-44q+uJbOi_|fPxaR$)L#I&QOJ;)xv>!_ru;;Hncql>^ch{b)_|DQIkoS+RGhr<7~ zS@bH;Lj9chpHU>|`%IXg7-0`q=%P7Av2@WsI$}l)!j%8c3W<}h8LC(+=cdw+uHdHX zAjO{&2snE5pYe6u%CpYIWkmgV!dL>gl?QTbjG0PI7s*UD7peb*O`UxCKkKc)SeRz( z4eI=7qErDy=Cexw-=P2hZm$HBnyxg}ac&BxYbtiXt*}a(>K~hXRM*s%IjxhUhzgWY z(8Fl;pA2n#jI!*~iC(d1hYK^El>=TPoisH_?ui*mD5gt=(%b+LHjGi9h>&PMa+TW9dX& z)jl8B`RST|u$9QAIDFuazKAjwtw9daEvC;fM-y)zV*%iCHj@;t8tJdV9St}=x~7%P z*LSEmxIUDCq)v?~9ip2@cps1+L3&awK?;(ko4>B?Mc9a>H$K~M?DBE0eD9}zV+>m&C7o-06!DLq05eIou8^%27PcE{gB&RAo$ zr3&s?&3;F{>XVf)J<~E&r<(GVW^zy&mFNItY&&8dAK~&@I_FL@l)>^<*Xv! z6nqxbKlb&_nO>)LMgZn}6;97o1m%ktxkH|`91mAQi^ON0uWZywkWR=jH^#(fX`XpY zxv81FvHQsRH9SxnuEiwg7(T;@oD2ZP83vfREKM>0mR>{w<5nGav_d6LkLi0Xu&F8L zYz|mHkY7itib-(LO(k;OoDSoheqA-wBLd^rA1Z)ju6F;`ex*cUh30bRFzPRv#|`e> zg*`i_v9&Ubc?i+CQ!sIKjb=(>muWzYrfV*MOyS>k`QAIOk&NVW=s6RRWp%Xn=Z$dd#z#;tnvOkoEr=j^V3lxFd={pe(zk(K zqxb|U-h>iC5a~YWOV&ngl#iqkS>Z8EVj8+RLzl507v836#04>c&=UYIwXzR_!@r&> z>T;INyqws|E#|=p^3nkTA7^6f-OpO;tH+m~(V2g?Q|?dWBG_PzN#Pt9ZyN7mDOC=v zSnZpkfW(UmypBol|Jj6V-`>mI{rYL@|78d5%l2zW?&by_#4-OiI9 z?EX3{c*|K1N!DGH20ghK+G*fOl)4vh8?fAjT#m__A_C~8QA9n{H%aCzc z(1-`Lf2-yX^UC$r0>yieF5NwGb-j~ONBVc>FM5yvh5PfggnswPJf^fomh?2jbcAu7Ab=9lgFMdQeG~I|(){W^gGXxG(s0sb%u>mrSMQQ$c`ovQVmCl!I?lrvds_~)i*bbSgq zb`Q9@Mq=(V4n=1t?zh05XYBKGfa0FgJ6_M9z$5@1Fi`x?93b*_Le@8pk~m;PuH(Xv z#}9xfb7<^nx&drDl-E0P9bIIwZN9U*eAl7|qj#%7XCGKe0?(~EcWW+i0<&FRv1^gr zx&u4zhXEINywGvsU^E1FVt1@zTIZs!43yGH&R=_^SF_}wVoO6L@NgML&WGwBmbe67 zxv+HVzosP{#pafCD9#g*czx)`Kc2aBG`ge~_3T~@T5$hd+NmQQv_KB%Y>|0OfHF;Q z&H`hIeQr8X$E0_h9e1yPIN7ym1>>u>kDlA5t@aBz)ud--Jy$53|5YI~P-JVu&C}Da z&SIMz#-VuA@iogH{gk5)U8gp@SqWNRGZ#2?B&h;g$L9G&tww3F#;Wq0?97k*bT%FW z9{!`~GI@14D{!aY{3{w=wqGfm*IORKt7*P?9`_G$w6WR%n?v^<%w3M?w+j(pRrd9-+iQ?`}CH<7i^ zI{mm>CNKd*D=TPnKfC9IMO+%yk)UGdIir(DBWG5x{p8LAu0L8l0)K`BH*PfVs7&az z{==!bPvK-{eVo2e;NgjUe}IDqIt#aP$i4;+GARQakehyICNNuN28CQxW&VHkuIT@y zk{n?t4}W0x4rAX~z5Ye{3l*=xnUgkdXWMA22n^imCPOg&GwAmRn zrTtQ{sZr!VAK--Zt6G^C3shSs98~ID8aXf6s44tCv9{Vc*h?UesHdoMra9 z_O6M~AJ`L=1U5*UcYIWuDNwWE^V-YzI{iRx3+v+5IQLIIdFZWdYkzhCwL zU)S2xs=umZ@3L=oTYcm%ur~u7R-htr@AH2~w~D-{HyfYZF#v(5tDnm{r-UW|63qe< literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/ListPages/img/箭头1.jpg b/app-dm/src/pages/ListPages/img/箭头1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f760d6a0c6dca15f6bee55303c0d53be50aefea3 GIT binary patch literal 12075 zcmeHt2UJtrwssH^5d{&Xmjfyqs?w|2KnVg82_RKE2?T^d00FTeN>zFZO&}n_fRxZe z5tL4XbVz7Y6#~+v3oq(9=bm%#|BoMsWBl*EJMJ1I**kmhxw7ZC=KR(-*WSDRyJSEB zfM)M)-#;4dpY3<^eKa)Gv((R@C-%CtI|SGdxUf49V7h4IVr2`kc>@3dXm;NKSPt$3 z>;upOSO7FEH2YX+cHaT+{kUBK4IK^jqVMexBR#`@ntil%2M*HwdGL>uM*%dn`vG)- zgLM0757K@+x^F)n4ebH?gA6Rk*jPCQ^^M{>dxdUBL`5Gue&XCk_LEXFm-Jj8SXv=i z{-v{B65uek4;q$zEC4k?>HRlbXhf5Eor7i@cf!M5)g zZ2vR9drb*}-GArtrBSMERm+iobRHnJku3YT_WGiB&8TEf($4XRHm+XPbWfW5E266c z2qmZn#Ut_My-34P60+9EPk&T`Fc}Q#W6$t&UGX3>PuiW#I$X6Dt0|MSQ zp;A-5N?9=oPjQcY+r_n^>XEwmtd&{H{4T)wvCLBEbWp9lw0j0?ulM1U!r{3LwQ?;7 zc(Tzd7kp~fiCp$|l}nJ|F#fUKKEh1FPPF|>9>J@ZmOzI%l8FF!C$n%isP)u)wy1qI%vo}Qh zE+*~_#sf{OlX696{cN6%k^a5F5y{clDKZQ3pq_DMNGaDdmsj_MdhpJONL=~*lCAxYz*74pZuZjq@h+|?& zws5y2#|TGz%&Y=>Af2vL!6QwqX?rLc^uMQ z(PQP#iehC0{lI>F>Y&hs&_o8%`1SKSZM~1ZF+#gbJ{P`Z6`#bxF=jT?v70xPC}P7{cCwo~@meQ`?8s}oIKgaRN zGpI7v%)5g13S+mr2{V`!QpTbn6bsJ8#LT5ZC!3z7OmVcuF<7Us6*Y+ogsBL#c%D4* z3fW*y?&5u_o-2W9T*ZztV^X^_}I~sY@wG9?a z-{w1UWbzfMM|ECZb%Lz$N3≤^)^ItyqxDzRU^;C@|x20!AdWj$qgyV-PyLCYS5U z@*zH@u5X|ugXoqFFDwYE6p*c(vRQP>J=Qc9$D>TA%z=0lZF!pKbnmN^$~Vq{ZAIu3hgD1%{$0*mp!g@|buv zFw_KATp@l4tsj$BO}Zg7J8`ug!8oNAP|)EsFu~5;kivQpAIZ|IY<+I-Q}`93o;bxR zCel)r2A8N!j!5ETwEq!D!%#d5^44o1^XNaqiFWV2zt6e+^O8{AM&t*{(vqjP^Z|?6 z0hffy^nF_=&JBGIem$W`a^KoK+fe4nXY94Mdf8y;q)o;;sl^RWC zTWeOYKceYWM7@L@@(@yD`oWnx9XVaB(KTdN$jVc2lrcp1QZ5B^ISBxu*XlFjkng@l zlq|&M-IRVb?d9|i2?@1RprnsyTb{OxGhB2@&&=?NuDb|L$6`nyGeu&+&fqFX(18?{ zAn!R#-6v1SM@dVA@Pcn2V?tDY;VZ2Z!KO|W zHi}vMKD~e>r_}ER!|~}TTDTYkdu%wM|3m=*U`oi7lk?0jYBRBSIcs(v;!KYAxz z_N;=4Lc&w1{?&1ODNk4_tcS7-IN;);sl^*q0gEAC%);c_iZ(m;RJruuW`q3+l)&y! z$TfzF>6)gHZ$Vr=OcIRdXKhGfIf!x+u%LuCdR8kR4Jk#9dcQ?!YIE8U^dQ3QucUKla`XP`!?K*e8` zqHtBm4C$oZ375HZ4K#uZw8NZj^fXuG3^8z_s4(E>TZ-a~KEAnqy zvEBXyCgz_iJXk&2{Ug}FQKDZ}@#Qlrr^8f)SmgT8*9>rlfA&QRa=6I9S$-lHnRvE2 zF&%SVtj8}1;z0O}fR(!Pa|Kbv{ZKHKX<#o|loM6EY${==%idBT77lbRdVRCNQ-$F> ziNoqH<76x{FGVMI=3tIn*n)XS0RSbtvi|bn0CuBa z1G3;c*Au2LLfoGk-be5#%v|h6_4~i$iY4wFk8nk9jM`{ z9_KL?Y1V$@ExB%Q;!SLc!8!RyQ)Q-YDdI6!w|K$h_P4XG=Dm)Eo*cK?>Ct7IC5!4%fqJ)70evOPd_xKp zhU4+dqufUc7UA*MJ`A`nTUWBVPcJ&T_o*K7Bw?p!glkTN~By4rC# zZGo!0o?ao}-rNP)*eO>n_6L|%j?fZ$Ng#)}!m!|+vqg~AQ;-b#DgtKcotNF|*SJ;q z%jKkO6Q@^JF7$*u*l z?gIdy61!~dE9`GunW!1sA`~Rv)S`bNb&?uV46-~3DpI_gN~J3HamNzLW~gE_d=MtW zRTfR<^0dK_@|oMbgtHnXmpk|ewPoFJMtl5)8WUF=t;rdD!RV}cIgKh8Pn_5!(6|F} zR@F~h-LSFa8nGOf9}bgqjZRH(8osHFDGPE(tw z&v?N>ymvKyl45amN8t6I<6uj>TnZ>x!^H;$!9QJS)3tP@koBe&bxH<|-VHM+en3ch zl|X`QT(!cIA0~&CkAludg+SZL*@H*gS0~o|>x@xv75$9!kOi|p)`O&R2e_S^ zM&DnStL2$FQgx4U-}u%24|9{A@xU@)H3)e_3pagx|~%f-(@KajBtKSJ^1~p zK1zBD`;CF)U_oL34v5wt@pL4?azm%Ib;*=j@nQ74rOHb%3)bevgfdb=!owy(-aKJv z2?IF|oW2t_B-T+K6O#|iS$8zObrLhjU0#t=GJgwl9QFkVEppv;# zS@XFpjMiZvxA6}5;(>;yzOeb+3?R4YV%vo^gJoHRJd~bOcX9Ed-@du7_Cr0DlU_x>D$iu%3Blb7X&)9LVbBs? zKKd(hFEbCoO>ZGcQyvXW)+c0RT-8%&LLohUawj}om^aRAzC6nrpF3l5Ex4p^Vy=C% zXVssmtrU$+%-&Z12*Shoy*B$7H5X4*S0gC?6>skT=f|&Ou)Q)i8{FL)q|2&u0S!c- ziS9x=Re+kl``g*$UJv)=Wd??#SVC?hR~(o|g(^43vfjML7oTgCL)>Ek1; zz88Jx2K^`zrxhS@~E26vOeZ@hIb^9AhBkkPlE3BD&)a zhQu1gp#A4=C?u_HPeDYMJWs|(r6kAV4Z+gV%=sT|`x7qH*JH9^na3lENT1oGP|LG3HwK9639D zt)l5zvr93~V{9>y-(ZqWMJY@i1X@#3LpZ3;QpMKMh)t1jE=#0@$n0d@u_G$aqeg3m z?j5J|W)kl-7p@6H&!!~TARs+QE(KhmmKZI`tW)@ zab0fAMRW07p7}653U-|+4O}!HHp^_Q7bJY#py;^Xiz#GfjH_3~^X>#27N9B&k|CfQ zNAj&sap|aQXlo2>J^l1_6&%WYdWVOS$zzP{UGm=?D)1J`-nsDgJ^pw`kVcLXa7hox?t6hUQn z0q+G~0|39PXqxd<1>%j(n#7U_>w{C;B~@ee#sd-FStX^9uOfNGr!(%X9VFaJPl>dq zPx2!5)Sq6o2zL)waM|&kQ#jnDP&fIYp`9i{Yn|z2F}rQZrP7GY4%jFB4O5!AODIN* zb^XSoGG*AqC{JXcIuLCx@9mt@8XIM7nC89lL2(;>FNWrS*M@c+C=0^G+(h3r&MMvo z;GpI)**h5e_y5NsW=h4%X8DyZS6UmvC^{}G#N~u|iapEQv=ahNIs{^qS?+vM5s;O!84_gOG)SlY^KlPNNb5~^^=PyQZ zTh@c&jY@nP?CS0t7dYun26ig!WHh29JkV7UuSr=wt-8tJDhMl`#iE5s%H?QuA~^11 z?37{j1Xr(?TD&c|J!|Pzp1GD_v%QUE&S3OlB^gz?EY&GHgXuAJ9>TVC$e@81+Xm6h z<8J`8*^Y3Rl=^++`Y>C98%3&*Ij`{@(66i9OWq-0ai=}OR+}h{N+#DVTsW&el zfHS1WxaF+&zIe$jRIR>#Rc!l6_2eKn4dE;!-LKT2nq;f1%-_X1m?$<g zH1<64dfOJ;%$P572-}5RexLrF8l|*9S$hFe%)Kj@zw83UoM;-dy8F@)^D@#+YPum- zd9iV?xdZos;!OJcx0veDhArMhAdC=G40<{k&0Chvg$BBF-G#$5UY9!8w;{8-T7?mW z2gzDZ6B{}fk(#|4cIM8Y;^)3|6JZcr3739dErVC-K{zObHr_#-^~!@*>dj`)eg|sn zA3)jt07_iIh3npIj>C)mAseGYGu^=0~n`t5J*!u*rP zm#(A=(R*_%R*u#mJmdKO)*3h01Rt+ee=ZtLIq>3s6uOtNdj4$z47W7w3C?}`5DoR7 z$(i_ulg$5WoB#qpSALy-mSU)S#IN=A{+gFKo~L44VTb3Bg`az6)~LyOMERK}c-BYx zgq2)jgF&%lG5{td1&I)TehC;rN&I+Q9rOGDVUebu_V8W_+?w5N&*<^d~ z$~L5A$cKK4aVp_DQ4_1TNKL$qe@Z-8O={w0uTc}POildo@#?8TLYnkF8R;@Lek42* zyv5(yKM^TzUX!=LK~21QgU=vgJ6JN?C+H#>S*ktTeku6Pw|M#{ZGPsVCF|RE>6Ad4 zR?+>gFJ+H^RM`sSoj(-rT4_sg*aZl5d95T%l(-Zkd3;p6y>c}aYM*jxiizROHrP>#xa=KIvEX=H(2r9~Oh}3{&KOT+hpCZ)qoK;RIlHV~w*c$>QF_!W*_9%@dtBGnj*!PJ*L$*{njN9K$bi(A(()(JId3YO%R(|}l z@}tFRy8*Oh!JK%wrclr9=4Tp&Pj%j;^Gdp%T~3EiY${)=qx*2>%9&R`B8vL0w)bW1 zeV*P^%iVp0g$stpJ~tE|wtICF(|kh_Jg#nUDgM{rXl9Kg$sCq)pxLXDu>A2S4`#LU zMN)x;ql7bBX|3aSl*%;^Cowz>?v!VLzMtzy>Tw-TOx3 zKvZZaegNJ(z%cf57r@(DHj&I>)zH)*M!BnA?(bIRc;rY|)lds~E4+6F2OYItE<)P* zR3IqX_H(?2_DaN}pak9w@ir+g*(PnGcJttJW^$9-b8K;iH;k0yJcM#r$3v+kC6i5! zsHZ<7s^~8f<&A2)N{uL<@Ot3)i0ZCWO!9SivE{46K|y7?eahl5WWaeqRZ-)>)WP5l z_R;O)vj$rzgxr0?`g`K&w)a2@REy%HWgU49cXtQ>#&q~|Zn;U-nS=z4`%QFqBb+oO zpRam|n)QD+wLQzJr4z~iQjWZZ3TK*2rc~hp;WO=M_$(jC!ObDQ(p>=DHY2sEy4A)y z$Ku)&Gi_tWVAF`MuDVAZPk*_7)-K?Nl=c8#T6J(>6;iYsZb+TGZnd=q-i)2xIGo(f zP+nfH740W9e{nkw&Zklw+&P3d_=s}QK8Av37sfE%ras|TGjViUbF=R+$?sXu?Da^o zTW0C6mJA#(0Qt*GD+=SzhT9A9@eEvbfg6MKM7|JP9kkhUgLOgQHRrGfr@Z*#V-1so zVZR~FrI(u^Mky$$#k|o@T*D*~T0e()pj0zt80mY0KEP8=dqD5i2`HS&!l=}E(5yANBr-b3 z@OW4Ljc&#W`xA#x#D+6if0K*1O1TCor^JYDxKhhiwamq4Q3L0Z-gR0W8s>A_Ee9=} zm1CYa4=&+BmZHhj3I4B6Qh8>tPx4dzXVfQgF^K)64+4fW9_3xEReZqTSAda&p&;a!giC`bL2{-+z~75)f;vL7MfnLM@3vR*Cu#JWK1`S&?J z{;Kq|urNwSX$h8!%H3((V&Py&OE%d!FpW1vk>mDu@tyDK@_?}3-YzI==LSuuN)i4} zufcS2iyG_#z5J|O{>fepI7-^QUa9Om1rJdvIP-7t(C=9V(Wq25?*g)BAL`sruo)hH z5Ye=5HKMpLPbrm%d*$R?&6l8+b6h*8ZT40*f{kckML2Grmti9~Xo1N!nXNMZlI9h} z@|B%SX-TU&b&BCx|2yy`W8oOj6E2>O6D973<8be&uvP&U0S||4-D{{kXx}2zzv~9N z+C(LC{lsJh^cMe%dbIRV?~X*oO%t;HU|1ZHjW{OWF@ZeWDR*98pl-|zD=>B{3Z_~e zysGFv7M*?J%g4X@N{#rR5Hf!^rRwUvPwoF?O11sZyM+IY$^Y&5zxTU@|LV2C9}89g rdg}jqL}1VJ-M@Av@RJ4gUwin;8uPEF)Li(Pvg>cARNG(4-+})EsN~^$ literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/ListPages/img/设置.jpg b/app-dm/src/pages/ListPages/img/设置.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e262270b8efbc83cd790412ece5c1b8234b6b35d GIT binary patch literal 22893 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 D1?eJ` literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/ListPages/img/问题.jpg b/app-dm/src/pages/ListPages/img/问题.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d39a339597d95e329c5818c25c495b88e68838cb GIT binary patch literal 9758 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 F{{x}o2VVdH literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/ListPages/img/题目.jpg b/app-dm/src/pages/ListPages/img/题目.jpg new file mode 100644 index 0000000000000000000000000000000000000000..29a750db3fe19401db625d7a029dbd7a843bd132 GIT binary patch literal 11656 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℘?KY#gOp!hFB{(qAi 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 literal 0 HcmV?d00001 diff --git a/app-dm/src/pages/SighUp/SignUpForm.jsx b/app-dm/src/pages/SighUp/SignUpForm.jsx index 41d67c8..a822c17 100644 --- a/app-dm/src/pages/SighUp/SignUpForm.jsx +++ b/app-dm/src/pages/SighUp/SignUpForm.jsx @@ -62,7 +62,7 @@ import axios from 'axios'; alert('学号错误') return } - const register_func=await axios.post('http://127.0.0.1:5000/register',{ + const register_func=await axios.post('/api/register',{ name, ID, password, diff --git a/app-dm/src/pages/SignIn/SignInPage.jsx b/app-dm/src/pages/SignIn/SignInPage.jsx index abf85b2..ec1594b 100644 --- a/app-dm/src/pages/SignIn/SignInPage.jsx +++ b/app-dm/src/pages/SignIn/SignInPage.jsx @@ -12,7 +12,7 @@ function SignInPage(){ const login = async () => { try { - const login_data = await axios.post('http://127.0.0.1:5000/login', { + const login_data = await axios.post('/api/login', { ID, password }); diff --git a/app-dm/src/setupProxy.js b/app-dm/src/setupProxy.js new file mode 100644 index 0000000..57c0f6f --- /dev/null +++ b/app-dm/src/setupProxy.js @@ -0,0 +1,4 @@ +const proxy=require("http-proxy-middleware") +module.exports=function(app){ + app.use(proxy(['/api'],{target:"http://localhost:5000"})) +} \ No newline at end of file diff --git a/build.sh b/build.sh index cd973f0..029e22f 100644 --- a/build.sh +++ b/build.sh @@ -1,3 +1,51 @@ -docker compose build -docker compose build build-dmpython -docker compose build build-frontend \ No newline at end of file +#!/bin/bash + +# 获取当前文件夹名字 +current_dir=$(basename "$PWD") + +# 确保有稳定的网络环境 +ensure_network() { + read -p "请确保有稳定的网络环境[Y/N] " confirm + if [[ ! $confirm =~ ^[yY]([eE][sS])?$ ]]; then + exit 1 + fi +} + +# 打包镜像 +build_image() { + local service_name=$1 + echo "打包${service_name}镜像" + docker compose build "$service_name" +} + +# 推送镜像 +push_image() { + read -p "是否要推送到《达梦启元云原生大数据平台》? [Y/N] " confirm + if [[ $confirm =~ ^[yY]([eE][sS])?$ ]]; then + echo "tag" + docker tag "${current_dir}-flask-app" 36.138.114.105:31000/cnsof50011836/flask-app + echo "pushing" + docker push 36.138.114.105:31000/cnsof50011836/flask-app + echo "pushed" + else + echo "用户选择不推送镜像" + fi +} + +# 主流程 +main() { + echo "打包中" + ensure_network + + build_image base + build_image base-dm + build_image build-dmpython + build_image build-frontend + build_image flask-app + + push_image + + echo "脚本结束" +} + +main \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a00f43d..7b095cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,14 @@ services: + base: + build: ./docker/base + image: base + base-dm: build: ./docker/base-dm image: base-dm + depends_on: + - base build-dmpython: build: ./docker/build-dmpython @@ -28,20 +34,3 @@ services: retries: 3 command: gunicorn -w 3 -t 60 -b 0.0.0.0:8000 app:app - nginx-proxy: - build: ./docker/nginx - restart: always - volumes: - - ./docker/nginx/default.conf:/tmp/default.conf - environment: - - FLASK_SERVER_ADDR=flask-app:8000 - ports: - - "80:80" - depends_on: - - flask-app - healthcheck: - test: ["CMD-SHELL", "curl --silent --fail localhost:80/health-check || exit 1"] - interval: 10s - timeout: 10s - retries: 3 - command: /app/start.sh diff --git a/docker/base-dm/Dockerfile b/docker/base-dm/Dockerfile index ad460c9..1d30f8f 100644 --- a/docker/base-dm/Dockerfile +++ b/docker/base-dm/Dockerfile @@ -1,35 +1,16 @@ -FROM ubuntu -# apt安装时,防止卡死在交互界面 -ENV DEBIAN_FRONTEND=noninteractive -ENV LANG=zh_CN.UTF-8 -ENV LC_ALL=zh_CN.UTF-8 -# 基础软件安装 -RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list \ -&& apt-get -y update && apt-get -y upgrade \ -&& apt-get install -y python3.10-venv libssl-dev sudo vim python3-pip ssh wget unzip p7zip* language-pack-zh-hans language-selector-common locales locales-all \ -# 设置中文环境 -&& apt install -y $(check-language-support) \ -&& echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen \ -&& sudo /usr/sbin/update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 \ -&& locale-gen \ +FROM base # 添加用户 -&& useradd -m -s /bin/bash dmdba \ +RUN useradd -m -s /bin/bash dmdba \ # 修改用户密码 -&& echo "dmdba:123456" | chpasswd \ -&& pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple \ -&& echo "**** clean up ****" && \ -apt-get clean && \ -rm -rf \ - /config/* \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* -# 传入安装包并解压 +&& echo "dmdba:123456" | chpasswd WORKDIR /home/dmdba + +# 传入安装包并解压 RUN wget https://download.dameng.com/eco/adapter/DM8/202405/dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip RUN unzip dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip \ && chown -R dmdba:dmdba /home/dmdba \ && rm -f dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip \ && 7z x dm8_20240408_x86_rh7_64.iso \ && rm -f dm8_20240408_x86_rh7_64.iso \ -&& chmod +x DMInstall.bin \ No newline at end of file +&& chmod +x DMInstall.bin +USER dmdba \ No newline at end of file diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile new file mode 100644 index 0000000..f73ec32 --- /dev/null +++ b/docker/base/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu +# apt安装时,防止卡死在交互界面 +ENV DEBIAN_FRONTEND=noninteractive +ENV LANG=zh_CN.UTF-8 +ENV LC_ALL=zh_CN.UTF-8 +# 基础软件安装 +RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list \ +&& apt-get -y update && apt-get -y upgrade \ +&& apt-get install -y python3.10-venv libssl-dev sudo vim python3-pip ssh wget unzip p7zip* language-pack-zh-hans language-selector-common locales locales-all \ +# 设置中文环境 +&& apt install -y $(check-language-support) \ +&& echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen \ +&& sudo /usr/sbin/update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 \ +&& locale-gen \ +&& pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple \ +&& echo "**** clean up ****" && \ +apt-get clean && \ +rm -rf \ + /config/* \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* diff --git a/docker/build-dmpython/auto_install.xml b/docker/build-dmpython/auto_install.xml index 7a68ff0..e6e6523 100644 --- a/docker/build-dmpython/auto_install.xml +++ b/docker/build-dmpython/auto_install.xml @@ -115,7 +115,7 @@ - Y + N N diff --git a/python/Dockerfile b/python/Dockerfile index ac80947..4d0eac3 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -1,13 +1,13 @@ -FROM base-dm +FROM base # 升级pip RUN pip install --upgrade pip # 创建一个用户运行flask -RUN adduser flask -RUN chown -R flask:flask /home/flask -RUN mkdir -p /var/log/flask-app && touch /var/log/flask-app/flask-app.err.log && touch /var/log/flask-app/flask-app.out.log -RUN chown -R flask:flask /var/log/flask-app +RUN adduser flask && \ +chown -R flask:flask /home/flask && \ +mkdir -p /var/log/flask-app && touch /var/log/flask-app/flask-app.err.log && touch /var/log/flask-app/flask-app.out.log && \ +chown -R flask:flask /var/log/flask-app WORKDIR /home/flask USER flask @@ -16,18 +16,18 @@ COPY --chown=flask:flask . . # venv ENV VIRTUAL_ENV=/home/flask/venv +ENV PATH="$VIRTUAL_ENV/bin:$PATH" # 安装包 -RUN python3 -m venv "$VIRTUAL_ENV" -ENV PATH="$VIRTUAL_ENV/bin:$PATH" -RUN export FLASK_APP=main.py COPY --from=build-dmpython --chown=flask:flask /home/dmdba/build_artifacts/dmPython-2.5.5-cp310-cp310-linux_x86_64.whl . +RUN python3 -m venv "$VIRTUAL_ENV" && \ +export FLASK_APP=app.py && \ +pip3 install dmPython-2.5.5-cp310-cp310-linux_x86_64.whl && rm dmPython-2.5.5-cp310-cp310-linux_x86_64.whl && \ +MAKEFLAGS="-j$(nproc)" pip install -r requirements.txt COPY --from=build-dmpython /home/dmdba/build_artifacts/libdmdpi.so /usr/lib/ COPY --from=build-frontend /usr/src/app/build/ /home/flask/public/ -RUN pip3 install dmPython-2.5.5-cp310-cp310-linux_x86_64.whl && rm dmPython-2.5.5-cp310-cp310-linux_x86_64.whl -RUN MAKEFLAGS="-j$(nproc)" pip install -r requirements.txt -USER root + # 暴露端口 EXPOSE 5000 -CMD ["python", "main.py"] \ No newline at end of file +CMD ["gunicorn", "-w", "3", "-t", "60", "-b", "0.0.0.0:8000", "app:app"] \ No newline at end of file diff --git a/python/app.py b/python/app.py index db471ab..15aa22e 100644 --- a/python/app.py +++ b/python/app.py @@ -8,7 +8,7 @@ CORS(app, resources={r"/*": {"origins": "*"}}) app.config['SECRET_KEY'] = '350625' -@app.route('/student', methods=['POST']) # 检测历史是否登录过,登录则直接进入index,反之则进去login界面 +@app.route('/api/student', methods=['POST']) # 检测历史是否登录过,登录则直接进入index,反之则进去login界面 def student(): # 判断是否已经登录 ID_data = request.json ID = ID_data['student_ID'] @@ -17,7 +17,7 @@ def student(): # 判断是否已经登录 return jsonify({'student_succeed': student_succeed, 'student_lesson': student_lesson}) -@app.route('/login', methods=['POST']) # 登录功能 +@app.route('/api/login', methods=['POST']) # 登录功能 def login(): login_data = request.json # 获取前端发送过来的数据 ID = login_data['ID'] # 解析数据 @@ -65,7 +65,7 @@ def login(): # postman -@app.route('/logout', methods=['POST']) # 退出登录功能 +@app.route('/api/logout', methods=['POST']) # 退出登录功能 def logout(): # 退出登录 ID = session['id'] print(ID) @@ -73,7 +73,7 @@ def logout(): # 退出登录 return jsonify({'result': '注销成功'}) -@app.route('/register', methods=['POST']) # 注册功能实现 +@app.route('/api/register', methods=['POST']) # 注册功能实现 def register(): register_data = request.json # 获取前端发送过来的数据 name = register_data['name'] @@ -88,7 +88,7 @@ def register(): return jsonify({'result': '注册成功'}) -@app.route('/student/get_lesson', methods=['GET']) +@app.route('/api/student/get_lesson', methods=['GET']) def get_lesson(): # 获取课程 student_id = session.get('id') student_lesson = get_lesson_func(student_id) @@ -97,27 +97,27 @@ def get_lesson(): # 获取课程 # 学生获取试卷 -@app.route('/student/get_test', methods=['POST']) +@app.route('/api/student/get_test', methods=['POST']) def get_test(): # 获取试卷以及历史试卷 data = request.json ID = data['student_ID'] return jsonify({"data": fetch_test_func(ID)}) -@app.route('/student/fetch_result', methods=['POST']) # 查找成绩 +@app.route('/api/student/fetch_result', methods=['POST']) # 查找成绩 def fetch_result(): data = request.json ID = data['student_ID'] return jsonify({'result': fetch_result_func(ID)}) -@app.route('/student/get_end_student', methods=['POST']) +@app.route('/api/student/get_end_student', methods=['POST']) def get_end_student(): data = request.json ID = data['student_ID'] return jsonify({'result': find_end_test(ID)}) -@app.route('/student/score_entry', methods=['POST']) +@app.route('/api/student/score_entry', methods=['POST']) def score_entry(): data = request.json ID = data['student_ID'] @@ -138,7 +138,7 @@ def FetchTrainTitle(): # 以下为教师功能————————————————————————————————————————————————————————————————————— -@app.route('/teacher/return_question', methods=['POST']) +@app.route('/api/teacher/return_question', methods=['POST']) def return_question(): data = request.json ID = data['teacher_ID'] @@ -148,7 +148,7 @@ def return_question(): return jsonify({'选择': choice_question, '填空': completion_question, '判断': t_or_f_question}) -@app.route('/teacher/select_class', methods=['POST']) +@app.route('/api/teacher/select_class', methods=['POST']) def select_class(): # 查找每个老师管理的班级 以及在考试管理查找默认班级 teacher_id = request.json['teacher_ID'] # testID =request.json['testID'] @@ -157,23 +157,23 @@ def select_class(): # 查找每个老师管理的班级 以及在考试管理 # print(testID) return jsonify({'Class': class_dic,'default': find_default_class_func(default_class, teacher_id)}) -@app.route('/teacher/change_class', methods=['POST']) +@app.route('/api/teacher/change_class', methods=['POST']) def change_class(): # 查找每个老师管理的班级 以及在考试管理查找默认班级 teacher_id = request.json['teacher_ID'] ClassID=request.json['selectedValue'] return jsonify({'default': find_default_class_func(ClassID,teacher_id)}) -@app.route('/teacher/detaileddata', methods=['POST']) +@app.route('/api/teacher/detaileddata', methods=['POST']) def detaileddata(): data=request.json ClassID=data['selectedValue'] testID=data['testID'] return jsonify({'data':detailed_class(testID,ClassID)}) -@app.route('/teacher/', methods=['POST']) +@app.route('/api/teacher/', methods=['POST']) def find_test(): return -@app.route('/teacher/find_student', methods=['POST']) +@app.route('/api/teacher/find_student', methods=['POST']) def find_student(): # 获取班级学生的具体信息 student_list = [] Data = request.json @@ -184,7 +184,7 @@ def find_student(): # 获取班级学生的具体信息 return [student_succeed, student_list] -@app.route('/teacher/accept_test', methods=['POST']) # 在前端发布成功之后要存入数据库 +@app.route('/api/teacher/accept_test', methods=['POST']) # 在前端发布成功之后要存入数据库 def accept_test(): data = request.json choice_list = data['ChoiceQuestionSet'] @@ -199,11 +199,11 @@ def accept_test(): print('添加成功') return jsonify({'result': '发布成功'}) -@app.route('/teacher/fetch_train_question',methods=["POST"]) +@app.route('/api/teacher/fetch_train_question',methods=["POST"]) def fetch_train_question(): return train_question() -@app.route('/teacher/SendTrainTest',methods=["POST"]) +@app.route('/api/teacher/SendTrainTest',methods=["POST"]) def SendTrainTest(): data=request.json TrainChoice=data['TrainChoice']