studyStudent.vue 202 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792
  1. <template>
  2. <div class="pb_content" style="overflow: unset">
  3. <div
  4. class="pb_content_body"
  5. style="
  6. display: flex;
  7. height: 900px;
  8. position: relative;
  9. padding: 20px 0 20px 20px;
  10. box-sizing: border-box;
  11. "
  12. >
  13. <div
  14. class="pButton"
  15. style="left: 0; top: 140px"
  16. v-if="mlDialog == false"
  17. @click="setContent2(true)"
  18. >
  19. <!-- 批 , getCourseDetail()-->
  20. <img
  21. src="../../assets/icon/newIcons/isRight.png"
  22. style="width: 45px"
  23. alt=""
  24. />
  25. </div>
  26. <div class="pb_left" v-else-if="mlDialog">
  27. <div style="border-bottom: 1px solid #cad1dc; width: 100%">
  28. <div class="courseTitle">
  29. <div
  30. style="
  31. max-width: calc(100% - 40px);
  32. width: auto;
  33. white-space: nowrap;
  34. overflow: hidden;
  35. text-overflow: ellipsis;
  36. word-break: break-word;
  37. display: block;
  38. "
  39. >
  40. <el-tooltip
  41. effect="light"
  42. :content="courseDetail.title"
  43. placement="top"
  44. >
  45. <div class="ctitle">
  46. {{ courseDetail.title }}
  47. </div>
  48. </el-tooltip>
  49. </div>
  50. <el-tooltip effect="light" content="收缩" placement="top">
  51. <div class="mlImg" @click="setContent2(false)">
  52. <img src="../../assets/icon/newIcons/isRight.png" alt="" />
  53. </div>
  54. </el-tooltip>
  55. </div>
  56. </div>
  57. <div class="cru_selectBox">
  58. <div
  59. style="background: #fff; margin: 0 10px; border-radius: 8px"
  60. v-for="(item, stageIndex) in navList"
  61. :key="stageIndex"
  62. >
  63. <div class="stageBoxCss" @click="get(stageIndex)">
  64. <div class="stageItemTitle" :class="{ stageNav: item.isOpen }">
  65. <div>阶段{{ stageIndex + 1 }}</div>
  66. <el-tooltip
  67. effect="light"
  68. :content="item.dyName"
  69. placement="top"
  70. >
  71. <div>
  72. {{ item.dyName }}
  73. </div>
  74. </el-tooltip>
  75. </div>
  76. <div
  77. class="closeTri"
  78. :style="{
  79. transform: item.isOpen ? 'rotate(90deg)' : 'rotate(0deg)',
  80. }"
  81. >
  82. <img src="../../assets/icon/newIcons/right.png" alt />
  83. </div>
  84. </div>
  85. <div class="stageChild" :class="{ navActive: item.isOpen }">
  86. <div v-for="(nav, navIndex) in item.task" :key="navIndex">
  87. <div
  88. class="navItem"
  89. :class="{
  90. openTaskActive:
  91. navIndex == taskCount &&
  92. nav.id == navId &&
  93. stageIndex == courseType,
  94. }"
  95. >
  96. <div
  97. v-if="nav.tool.length > 0 && nav.tool[0].tool != undefined"
  98. >
  99. <div
  100. class="closeTri1"
  101. v-if="
  102. navIndex == taskCount &&
  103. nav.id == navId &&
  104. stageIndex == courseType
  105. "
  106. @click="openTask(stageIndex, navIndex, nav.id)"
  107. >
  108. <img
  109. :style="{
  110. transform: nav.isOpen
  111. ? 'rotate(0deg)'
  112. : 'rotate(270deg)',
  113. }"
  114. src="../../assets/icon/newIcons/bDown2.png"
  115. alt
  116. />
  117. </div>
  118. <div
  119. class="closeTri1"
  120. v-else
  121. @click="openTask(stageIndex, navIndex, nav.id)"
  122. >
  123. <img
  124. :style="{
  125. transform: nav.isOpen
  126. ? 'rotate(90deg)'
  127. : 'rotate(0deg)',
  128. }"
  129. src="../../assets/icon/newIcons/right.png"
  130. alt
  131. />
  132. </div>
  133. </div>
  134. <!-- <div v-else class="noToolBlue"></div> -->
  135. <div
  136. @click="openTask(stageIndex, navIndex, nav.id)"
  137. class="navItemList"
  138. :class="{
  139. isItemList:
  140. navIndex == taskCount &&
  141. nav.id == navId &&
  142. stageIndex == courseType,
  143. }"
  144. >
  145. <div>任务{{ navIndex + 1 }}:</div>
  146. <el-tooltip
  147. effect="light"
  148. :content="nav.taskName"
  149. placement="top"
  150. >
  151. <div
  152. :style="{
  153. width:
  154. IsLookOpen &&
  155. !(
  156. navIndex == taskCount &&
  157. nav.id == navId &&
  158. stageIndex == courseType
  159. )
  160. ? 'calc(100% - 75px)'
  161. : 'auto',
  162. }"
  163. >
  164. {{ nav.taskName }}
  165. </div>
  166. </el-tooltip>
  167. </div>
  168. </div>
  169. <div
  170. v-if="nav.tool.length > 0 && nav.tool[0].tool != undefined"
  171. class="toolChild"
  172. :class="{ toolActive: nav.isOpen }"
  173. >
  174. <div v-for="(t, toolIndex) in nav.tool" :key="toolIndex">
  175. <div
  176. class="gjCss"
  177. :class="{ isGjCss: t.isTool }"
  178. @click="jumpGj(stageIndex, navIndex, toolIndex, nav.id)"
  179. >
  180. <div>步骤{{ toolIndex + 1 }}:</div>
  181. <div v-if="t.tool == 56">投票</div>
  182. <div v-if="t.tool == 51">资源库</div>
  183. <div v-if="t.tool == 54">拍照</div>
  184. <div v-if="t.tool == 58">模拟驾驶</div>
  185. <div v-if="t.tool == 59">路径搜索</div>
  186. <div v-if="t.tool == 60">深度学习</div>
  187. <div v-if="t.tool == 10">倒计时</div>
  188. <div v-if="t.tool == 65">挑人</div>
  189. <div v-if="t.tool == 7">思维网格</div>
  190. <div v-if="t.tool == 1">电子白板</div>
  191. <div v-if="t.tool == 52">文档</div>
  192. <div v-if="t.tool == 3">思维导图</div>
  193. <div v-if="t.tool == 48">表格</div>
  194. <div v-if="t.tool == 49">学生分组</div>
  195. <div v-if="t.tool == 4">问卷调查</div>
  196. <div v-if="t.tool == 45">选择题</div>
  197. <div v-if="t.tool == 15">问答</div>
  198. <div v-if="t.tool == 16">作业提交</div>
  199. <div v-if="t.tool == 50">批量上传</div>
  200. <div v-if="t.tool == 41">选择匹配</div>
  201. <div v-if="t.tool == 47">排序</div>
  202. <div v-if="t.tool == 40">个人评价</div>
  203. <div v-if="t.tool == 18">训练平台</div>
  204. <div v-if="t.tool == 21">AIoT Blockly</div>
  205. <div v-if="t.tool == 23">AI Python</div>
  206. <div v-if="t.tool == 24">AI Blockly</div>
  207. <div v-if="t.tool == 32">源码编辑</div>
  208. <div v-if="t.tool == 57">CocoPi</div>
  209. <div v-if="t.tool == 63">海龟编程</div>
  210. <div v-if="t.tool == 28">翻译</div>
  211. <div v-if="t.tool == 31">数字画板</div>
  212. <div v-if="t.tool == 39">GeoGebra</div>
  213. <div v-if="t.tool == 66">公式编辑</div>
  214. <div v-if="t.tool == 67">分子结构</div>
  215. <div v-if="t.tool == 68">时间轴</div>
  216. <div v-if="t.tool == 69">英语写作</div>
  217. <div v-if="t.tool == 70">英语口语</div>
  218. <div v-if="t.tool == 25">目标管理</div>
  219. <div v-if="t.tool == 26">课程设计</div>
  220. <div v-if="t.tool == 62">交互视频</div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. <div class="body_student" :class="{ navLeftCss: !mlDialog }">
  230. <div class="new_topFixed"></div>
  231. <div class="new_top" :class="{ navLeftCss: !mlDialog }">
  232. <div class="courseIndex">
  233. <div>任务{{ taskCount + 1 }}</div>
  234. <el-tooltip
  235. effect="light"
  236. :content="
  237. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].task
  238. "
  239. placement="top"
  240. >
  241. <div>
  242. {{
  243. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  244. .task
  245. }}
  246. </div>
  247. </el-tooltip>
  248. </div>
  249. <div class="btnAll">
  250. <div class="btnLeft">
  251. <el-tooltip effect="light" content="刷新" placement="top">
  252. <div class="reBtnIcon" @click="refreshCourse">
  253. <span>刷新</span>
  254. </div>
  255. </el-tooltip>
  256. <el-tooltip effect="light" content="评论" placement="top">
  257. <div class="commentIcon" @click="setPz" v-if="tType == 1">
  258. <span>评论</span>
  259. </div>
  260. </el-tooltip>
  261. </div>
  262. <div class="btnRight">
  263. <div
  264. class="last"
  265. @click="nextOrpreSteps(0)"
  266. @mouseover="isHovered = true"
  267. @mouseout="isHovered = false"
  268. >
  269. <div class="lastImg">
  270. <img
  271. :src="
  272. isHovered
  273. ? require('../../assets/icon/newIcons/whiteLast.png')
  274. : require('../../assets/icon/newIcons/last.png')
  275. "
  276. alt=""
  277. />
  278. </div>
  279. <div class="lastText">上一步</div>
  280. </div>
  281. <div
  282. class="last"
  283. @click="nextOrpreSteps(1)"
  284. @mouseover="isHovered1 = true"
  285. @mouseout="isHovered1 = false"
  286. >
  287. <div class="lastText">下一步</div>
  288. <div class="lastImg">
  289. <img
  290. :src="
  291. isHovered1
  292. ? require('../../assets/icon/newIcons/whiteNext.png')
  293. : require('../../assets/icon/newIcons/next.png')
  294. "
  295. alt=""
  296. />
  297. </div>
  298. </div>
  299. <div
  300. class="returnBtn1 returnIcon"
  301. @click.stop="
  302. goTo(
  303. '/courseDetailS?userid=' +
  304. userid +
  305. '&oid=' +
  306. oid +
  307. '&org=' +
  308. org +
  309. '&cid=' +
  310. classId +
  311. '&courseId=' +
  312. id +
  313. '&tType=' +
  314. tType +
  315. '&role=' +
  316. role +
  317. '&screenType=' +
  318. screenType
  319. )
  320. "
  321. >
  322. <div class="lastImg">
  323. <img src="../../assets/icon/newIcon/return.png" alt="" />
  324. </div>
  325. <div class="lastText" style="color: #000">返回</div>
  326. </div>
  327. </div>
  328. </div>
  329. </div>
  330. <div
  331. class="isNoMessage"
  332. v-if="
  333. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  334. .chapterData.length == 0 &&
  335. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  336. .toolChoose[0].tool.length == 0 &&
  337. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  338. .taskDetail == '' &&
  339. !(chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  340. .tcMember &&
  341. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  342. .tcMember.length) &&
  343. !chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  344. .eList &&
  345. !(
  346. courseDetail.userid == userid ||
  347. (courseDetail.course_teacher &&
  348. courseDetail.course_teacher.indexOf(userid) != -1)
  349. )
  350. "
  351. >
  352. <img src="../../assets/icon/isNoMessage.png" alt />
  353. </div>
  354. <div class="study_top" :class="{ pzClass: pzDialog }">
  355. <div
  356. class="vedioBox"
  357. v-if="
  358. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  359. .taskDetail != '' ||
  360. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  361. .people ||
  362. (chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  363. .tcMember &&
  364. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  365. .tcMember.length) ||
  366. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  367. .time ||
  368. chapterlist.length > 0
  369. "
  370. style="border-radius: 0 0 20px 20px"
  371. >
  372. <div class="checkbox">
  373. <div
  374. class="check"
  375. style="font-size: 25px"
  376. :id="
  377. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].id
  378. "
  379. >
  380. {{
  381. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  382. .task
  383. ? chapInfoList[courseType].chapterInfo[0].taskJson[
  384. taskCount
  385. ].task
  386. : "任务名称"
  387. }}
  388. </div>
  389. </div>
  390. <div class="student_head">
  391. <div
  392. class="task_box"
  393. v-if="
  394. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  395. .people ||
  396. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  397. .time
  398. "
  399. >
  400. <div
  401. :class="{
  402. task_pbox: getMan(
  403. chapInfoList[courseType].chapterInfo[0].taskJson[
  404. taskCount
  405. ].people
  406. ),
  407. }"
  408. v-if="
  409. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  410. .people
  411. "
  412. >
  413. 负责人:{{
  414. getMan(
  415. chapInfoList[courseType].chapterInfo[0].taskJson[
  416. taskCount
  417. ].people
  418. )
  419. }}
  420. </div>
  421. <div
  422. class="task_pbox"
  423. style="color: #838383"
  424. v-if="
  425. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  426. .time
  427. "
  428. >
  429. <span>任务周期:</span
  430. >{{
  431. timeB(
  432. chapInfoList[courseType].chapterInfo[0].taskJson[
  433. taskCount
  434. ].time[0]
  435. ) +
  436. "至" +
  437. timeB(
  438. chapInfoList[courseType].chapterInfo[0].taskJson[
  439. taskCount
  440. ].time[1]
  441. )
  442. }}
  443. </div>
  444. </div>
  445. <div
  446. class="task_box"
  447. v-if="
  448. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  449. .tcMember &&
  450. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  451. .tcMember.length
  452. "
  453. :style="{
  454. margin:
  455. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  456. .people ||
  457. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  458. .time
  459. ? '5px auto 5px'
  460. : '15px auto 5px',
  461. }"
  462. >
  463. <div class="task_pbox">
  464. 协同者:<span
  465. :class="{ tcMember: getMan(men) }"
  466. v-for="(men, mindex) in chapInfoList[courseType]
  467. .chapterInfo[0].taskJson[taskCount].tcMember"
  468. :key="mindex"
  469. >{{ getMan(men) }}</span
  470. >
  471. </div>
  472. </div>
  473. <div
  474. class="taskBox"
  475. v-if="
  476. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  477. .taskDetail != ''
  478. "
  479. >
  480. <div
  481. style="
  482. display: flex;
  483. flex-wrap: nowrap;
  484. flex-direction: column;
  485. position: relative;
  486. "
  487. >
  488. <div style="padding: 15px 10px 0">任务描述:</div>
  489. <div
  490. style="
  491. padding: 10px 10px 15px;
  492. word-break: break-word;
  493. line-height: 27px;
  494. "
  495. class="cont"
  496. v-html="
  497. chapInfoList[courseType].chapterInfo[0].taskJson[
  498. taskCount
  499. ].taskDetail
  500. ? chapInfoList[courseType].chapterInfo[0].taskJson[
  501. taskCount
  502. ].taskDetail
  503. : '暂无描述'
  504. "
  505. ></div>
  506. </div>
  507. </div>
  508. <div class="vedioTaskBox" v-if="false">
  509. <div class="box_course" v-if="chapterlist.length > 0">
  510. <div class="wheel" v-if="chapterlist[chapterIndex].type == 2">
  511. <div class="workd_media" style="height: 100%">
  512. <video-player
  513. class="video-player vjs-custom-skin"
  514. :playsinline="true"
  515. :options="chapterlist[chapterIndex].src"
  516. @play="onPlayerPlay($event)"
  517. style="width: 90%; height: 100%; margin: 0 0 0 30px"
  518. ></video-player>
  519. </div>
  520. </div>
  521. <div
  522. class="wheel"
  523. v-if="chapterlist[chapterIndex].type == 6"
  524. style="
  525. box-shadow: 0 0 6px 1px #f2f2f2;
  526. width: 95%;
  527. margin: 0 auto;
  528. background: #f1f1f1;
  529. "
  530. >
  531. <div class="title">查看文档</div>
  532. <el-form class="textBox">
  533. <el-form-item class="textTitle">
  534. <div style="font-size: 22px">
  535. {{ chapterlist[chapterIndex].name }}
  536. </div>
  537. </el-form-item>
  538. <div
  539. v-html="chapterlist[chapterIndex].url"
  540. class="textContent"
  541. ></div>
  542. </el-form>
  543. </div>
  544. <div
  545. class="wheel"
  546. v-if="chapterlist[chapterIndex].type == 3"
  547. style="height: 650px; width: 95%; margin: 0 auto"
  548. >
  549. <iframe
  550. style="width: 100%; height: 100%; border: none"
  551. :src="chapterlist[chapterIndex].src"
  552. ></iframe>
  553. </div>
  554. <div
  555. class="wheel"
  556. v-if="chapterlist[chapterIndex].type == 8"
  557. style="height: 650px; width: 95%; margin: 0 auto"
  558. >
  559. <iframe
  560. style="width: 100%; height: 100%; border: none"
  561. :src="chapterlist[chapterIndex].src"
  562. security="restricted"
  563. sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"
  564. ></iframe>
  565. </div>
  566. <div
  567. class="wheel"
  568. v-if="chapterlist[chapterIndex].type == 13"
  569. style="height: 650px; width: 95%; margin: 0 auto"
  570. >
  571. <el-image
  572. :src="chapterlist[chapterIndex].url"
  573. fit="contain"
  574. style="width: 100%; height: 100%; cursor: pointer"
  575. @click="previewImg(chapterlist[chapterIndex].url)"
  576. ></el-image>
  577. </div>
  578. <div
  579. class="wheel"
  580. v-if="chapterlist[chapterIndex].type == 9"
  581. style="height: 650px; width: 95%; margin: 0 auto"
  582. >
  583. <pdf
  584. :pdfUrl="chapterlist[chapterIndex].src"
  585. style="width: 100%; height: 100%; overflow: auto"
  586. >
  587. </pdf>
  588. </div>
  589. <!-- <div class="wheel" v-if="chapterlist[chapterIndex].type == " style="height: 650px; width: 95%; margin: 0 auto">
  590. <el-image :src="pptImgUrl1" fit="cover" style="width: 100%"></el-image>
  591. </div> -->
  592. </div>
  593. <div class="vedioList" v-if="chapterlist.length > 0">
  594. <div class="navTitile">内容列表:</div>
  595. <div class="navBox">
  596. <div
  597. class="vedioTimeBox"
  598. v-for="(chapter, cIndex) in chapterlist"
  599. :key="cIndex + '1'"
  600. @click="setChapterIndex(cIndex)"
  601. >
  602. <div
  603. class="vedioName"
  604. :class="{ isClickNav: chapterIndex == cIndex }"
  605. >
  606. {{ chapter.type == 8 ? chapter.title : chapter.name }}
  607. </div>
  608. </div>
  609. </div>
  610. </div>
  611. </div>
  612. <!-- <div style="padding: 10px 30px 0"
  613. v-if="chapterlist[chapterIndex] && (chapterlist[chapterIndex].type == 3 || chapterlist[chapterIndex].type == 9)">
  614. <el-button type="primary"
  615. @click="checkFileFull(chapterlist[chapterIndex].type, chapterlist[chapterIndex].src)">全屏查看</el-button>
  616. <el-button type="primary" @click="downloadFile(chapterlist[chapterIndex].src)">文件下载</el-button>
  617. </div>
  618. <div style="padding: 10px 30px 0" v-if="chapterlist[chapterIndex] && chapterlist[chapterIndex].type == 8">
  619. <el-button type="primary" @click="openLine(chapterlist[chapterIndex].src)">打开链接
  620. </el-button>
  621. </div>
  622. <div style="padding: 10px 30px 0" v-if="chapterlist[chapterIndex] && chapterlist[chapterIndex].type == 6">
  623. <el-button type="primary"
  624. @click="checkFileFull(chapterlist[chapterIndex].type, chapterlist[chapterIndex])">全屏查看</el-button>
  625. </div> -->
  626. </div>
  627. </div>
  628. <div class="student_body">
  629. <div
  630. class="vedioBox"
  631. v-if="
  632. chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
  633. .toolArray.length
  634. "
  635. >
  636. <div
  637. class="queTop"
  638. style="
  639. font-size: 25px;
  640. padding: 15px 0 15px 30px;
  641. font-weight: bold;
  642. "
  643. >
  644. 实施过程
  645. </div>
  646. <div class="toolHeng2" style="position: relative;margin: 20px 0;">
  647. <div
  648. class="filebox"
  649. style="flex-wrap: nowrap"
  650. v-for="(tool, toolIndex) in chapInfoList[courseType]
  651. .chapterInfo[0].taskJson[taskCount].toolArray"
  652. :key="toolIndex"
  653. v-loading="downLoading == 'down' + toolIndex"
  654. >
  655. <div class="bzBox">
  656. <div class="yCss"></div>
  657. <div :ref="'bz' + toolIndex" :id="'gj' + toolIndex">
  658. 步骤{{ toolIndex + 1 }}
  659. </div>
  660. <div
  661. v-if="tool.toolPhoto.length > 0"
  662. style="margin: 0 0 0 10px"
  663. >
  664. 时间:{{ tool.toolPhoto[0].createTime }}
  665. </div>
  666. </div>
  667. <div class="toolBox" v-if="tool.toolDetail != ''">
  668. <div v-if="false">
  669. <div class="noiframeBox">
  670. <div class="addPoint">
  671. <div v-if="tool.tool == 1">
  672. <img
  673. src="../../assets/icon/secondToolList/whiteBoard.png"
  674. alt
  675. @click="addTools(tool.tool, toolIndex, taskCount)"
  676. />
  677. <div style="margin: 5px 0">电子白板</div>
  678. </div>
  679. <div v-if="tool.tool == 3">
  680. <img
  681. src="../../assets/icon/secondToolList/mindMapping.png"
  682. alt
  683. @click="addTools(tool.tool, toolIndex, taskCount)"
  684. />
  685. <div style="margin: 5px 0">思维导图</div>
  686. </div>
  687. <div v-if="tool.tool == 6">
  688. <img
  689. src="../../assets/icon/secondToolList/doc.png"
  690. alt
  691. @click="addTools(tool.tool, toolIndex, taskCount)"
  692. />
  693. <div style="margin: 5px 0">协同文档</div>
  694. </div>
  695. <div v-if="tool.tool == 7">
  696. <img
  697. src="../../assets/icon/secondToolList/mindNetwork.png"
  698. alt
  699. @click="addTools(tool.tool, toolIndex, taskCount)"
  700. />
  701. <div style="margin: 5px 0">思维网格</div>
  702. </div>
  703. <div v-if="tool.tool == 8">
  704. <img
  705. src="../../assets/icon/secondToolList/library.png"
  706. alt
  707. @click="addTools(tool.tool, toolIndex, taskCount)"
  708. />
  709. <div style="margin: 5px 0">素材库</div>
  710. </div>
  711. <div v-if="tool.tool == 17">
  712. <img
  713. src="../../assets/icon/secondToolList/library.png"
  714. alt
  715. @click="addTools(tool.tool, toolIndex, taskCount)"
  716. />
  717. <div style="margin: 5px 0">学习资料</div>
  718. </div>
  719. <div v-if="tool.tool == 2">
  720. <img
  721. @click="addTools(tool.tool, toolIndex, taskCount)"
  722. src="../../assets/icon/secondToolList/note.png"
  723. alt
  724. />
  725. <div style="margin: 5px 0">便签</div>
  726. </div>
  727. <div v-if="tool.tool == 4">
  728. <img
  729. @click="addTools(tool.tool, toolIndex, taskCount)"
  730. src="../../assets/icon/thirdToolList/ask.png"
  731. alt
  732. />
  733. <div style="margin: 5px 0">问卷调查</div>
  734. </div>
  735. <div v-if="tool.tool == 45">
  736. <img
  737. @click="addTools(tool.tool, toolIndex, taskCount)"
  738. src="../../assets/icon/thirdToolList/choose.png"
  739. alt
  740. />
  741. <div style="margin: 5px 0">选择题</div>
  742. </div>
  743. <div v-if="tool.tool == 10">
  744. <img
  745. @click="addTools(tool.tool, toolIndex, taskCount)"
  746. src="../../assets/icon/thirdToolList/time.png"
  747. alt
  748. />
  749. <div style="margin: 5px 0">倒计时</div>
  750. </div>
  751. <div v-if="tool.tool == 15">
  752. <img
  753. @click="addTools(tool.tool, toolIndex, taskCount)"
  754. src="../../assets/icon/thirdToolList/answer.png"
  755. alt
  756. />
  757. <div style="margin: 5px 0">问答</div>
  758. </div>
  759. <div v-if="tool.tool == 26">
  760. <img
  761. @click="addTools(tool.tool, toolIndex, taskCount)"
  762. src="../../assets/icon/thirdToolList/courseDesign.png"
  763. alt
  764. />
  765. <div style="margin: 5px 0">课程设计</div>
  766. </div>
  767. <div v-if="tool.tool == 18">
  768. <img
  769. @click="addTools(tool.tool, toolIndex, taskCount)"
  770. src="../../assets/icon/thirdToolList/trainPlatform.png"
  771. alt
  772. />
  773. <div style="margin: 5px 0">训练服务器</div>
  774. </div>
  775. <div v-if="tool.tool == 16">
  776. <img
  777. @click="addTools(tool.tool, toolIndex, taskCount)"
  778. src="../../assets/icon/thirdToolList/work.png"
  779. alt
  780. />
  781. <div style="margin: 5px 0">作业提交</div>
  782. </div>
  783. <div v-if="tool.tool == 21">
  784. <img
  785. @click="addTools(tool.tool, toolIndex, taskCount)"
  786. src="../../assets/icon/fourthToolList/program.png"
  787. alt
  788. />
  789. <div style="margin: 5px 0">AIoT Blockly</div>
  790. </div>
  791. <div v-if="tool.tool == 22">
  792. <img
  793. @click="addTools(tool.tool, toolIndex, taskCount)"
  794. src="../../assets/icon/fourthToolList/program.png"
  795. alt
  796. />
  797. <div style="margin: 5px 0">AI体验</div>
  798. </div>
  799. <div v-if="tool.tool == 23">
  800. <img
  801. @click="addTools(tool.tool, toolIndex, taskCount)"
  802. src="../../assets/icon/fourthToolList/program.png"
  803. alt
  804. />
  805. <div style="margin: 5px 0">AI Python</div>
  806. </div>
  807. <div v-if="tool.tool == 24">
  808. <img
  809. @click="addTools(tool.tool, toolIndex, taskCount)"
  810. src="../../assets/icon/fourthToolList/AIprogram.png"
  811. alt
  812. />
  813. <div style="margin: 5px 0">AI Blockly</div>
  814. </div>
  815. <div v-if="tool.tool == 25">
  816. <img
  817. @click="addTools(tool.tool, toolIndex, taskCount)"
  818. src="../../assets/icon/thirdToolList/evalua.png"
  819. alt
  820. />
  821. <div style="margin: 5px 0">目标管理</div>
  822. </div>
  823. <div v-if="tool.tool == 31">
  824. <img
  825. @click="addTools(tool.tool, toolIndex, taskCount)"
  826. src="../../assets/icon/secondToolList/networkPanel.png"
  827. alt
  828. />
  829. <div style="margin: 5px 0">数学画板</div>
  830. </div>
  831. <div v-if="tool.tool == 28">
  832. <img
  833. @click="addTools(tool.tool, toolIndex, taskCount)"
  834. src="../../assets/icon/secondToolList/translation.png"
  835. alt
  836. />
  837. <div style="margin: 5px 0">翻译</div>
  838. </div>
  839. <div v-if="tool.tool == 37">
  840. <img
  841. @click="addTools(tool.tool, toolIndex, taskCount)"
  842. src="../../assets/icon/secondToolList/mohe.png"
  843. alt
  844. />
  845. <div style="margin: 5px 0">魔盒识字</div>
  846. </div>
  847. <div v-if="tool.tool == 38">
  848. <img
  849. @click="addTools(tool.tool, toolIndex, taskCount)"
  850. src="../../assets/icon/secondToolList/24game.png"
  851. alt
  852. />
  853. <div style="margin: 5px 0">24点</div>
  854. </div>
  855. <div v-if="tool.tool == 39">
  856. <img
  857. @click="addTools(tool.tool, toolIndex, taskCount)"
  858. src="../../assets/icon/secondToolList/GeoGebra.png"
  859. alt
  860. />
  861. <div style="margin: 5px 0">GeoGebra</div>
  862. </div>
  863. <div v-if="tool.tool == 32">
  864. <img
  865. @click="addTools(tool.tool, toolIndex, taskCount)"
  866. src="../../assets/icon/thirdToolList/code.png"
  867. alt
  868. />
  869. <div style="margin: 5px 0">源码编辑</div>
  870. </div>
  871. <div v-if="tool.tool == 40">
  872. <img
  873. @click="addTools(tool.tool, toolIndex, taskCount)"
  874. src="../../assets/icon/secondToolList/eval.png"
  875. alt
  876. />
  877. <div style="margin: 5px 0">学生评价</div>
  878. </div>
  879. <div v-if="tool.tool == 41">
  880. <img
  881. @click="addTools(tool.tool, toolIndex, taskCount)"
  882. src="../../assets/icon/thirdToolList/select.png"
  883. alt
  884. />
  885. <div style="margin: 5px 0">选择匹配</div>
  886. </div>
  887. <div v-if="tool.tool == 44">
  888. <img
  889. @click="addTools(tool.tool, toolIndex, taskCount)"
  890. src="../../assets/icon/thirdToolList/hanClass.png"
  891. alt
  892. />
  893. <div style="margin: 5px 0">汉字宫</div>
  894. </div>
  895. <div v-if="tool.tool == 47">
  896. <img
  897. @click="addTools(tool.tool, toolIndex, taskCount)"
  898. src="../../assets/icon/fourthToolList/conSentences.png"
  899. alt
  900. />
  901. <div style="margin: 5px 0">排序</div>
  902. </div>
  903. <div v-if="tool.tool == 48">
  904. <img
  905. @click="addTools(tool.tool, toolIndex, taskCount)"
  906. src="../../assets/icon/fourthToolList/table.png"
  907. alt
  908. />
  909. <div style="margin: 5px 0">表格</div>
  910. </div>
  911. <div v-if="tool.tool == 49">
  912. <img
  913. @click="addTools(tool.tool, toolIndex, taskCount)"
  914. src="../../assets/icon/fourthToolList/group.png"
  915. alt
  916. />
  917. <div style="margin: 5px 0">学生分组</div>
  918. </div>
  919. </div>
  920. </div>
  921. </div>
  922. <div class="tooldetail" v-if="tool.toolDetail != ''">
  923. <!-- <div class="toolTitle">工具描述</div> -->
  924. <div v-html="contentConvent(tool.toolDetail)"></div>
  925. </div>
  926. </div>
  927. <div
  928. class="homeWorkBox"
  929. v-if="tool.toolPhoto.length && tool.tool != 51"
  930. >
  931. <!-- <div class="htitle">作业预览</div> -->
  932. <div class="toolPhoto_box">
  933. <div
  934. class="photo_box"
  935. v-for="(photo, pIndex) in tool.toolPhoto"
  936. :key="pIndex"
  937. >
  938. <span>{{ photo.workContent }}</span>
  939. <!-- :class="{ answerWidth: photo.type == 3 }" -->
  940. <div class="toolPhoto answerWidth">
  941. <img
  942. v-if="photo.type == 1"
  943. :src="photo.content"
  944. @click="previewImg(photo.content)"
  945. />
  946. <img
  947. v-if="photo.type == 10"
  948. :src="word"
  949. @click="openTable(photo.content)"
  950. />
  951. <img
  952. v-if="photo.type == 4"
  953. :src="word"
  954. @click="openFile(photo.content)"
  955. />
  956. <img
  957. v-if="photo.type == 5"
  958. :src="video"
  959. @click="openVideo(photo.content)"
  960. />
  961. <img
  962. v-if="photo.type == 12"
  963. :src="word"
  964. @click="openText(photo.content)"
  965. />
  966. <img
  967. v-if="photo.type == 14"
  968. :src="word"
  969. @click="
  970. openAsk(photo.content, taskCount, toolIndex)
  971. "
  972. />
  973. <img
  974. v-if="photo.type == 13"
  975. :src="zip"
  976. @click="downloadFile(photo.content, toolIndex)"
  977. />
  978. <div class="answerBg" v-if="photo.type == 3">
  979. <!-- <div>{{ w.sName }}</div> -->
  980. <el-tooltip
  981. class="item"
  982. effect="light"
  983. :content="photo.content"
  984. placement="top"
  985. >
  986. <div class="answerContent">
  987. {{ photo.content }}
  988. </div>
  989. </el-tooltip>
  990. </div>
  991. </div>
  992. </div>
  993. </div>
  994. </div>
  995. <div
  996. class="homeWorkBox"
  997. v-else-if="tool.tool != 51 && tool.tool != 57"
  998. >
  999. <div class="htitle">暂无内容</div>
  1000. </div>
  1001. <div
  1002. class="homeWorkBox"
  1003. v-if="tool.toolPhoto.length && tool.tool == 56"
  1004. >
  1005. <voteStatic
  1006. :askJSON="tool.askJson"
  1007. :checkJson="checkJson[toolIndex]"
  1008. ></voteStatic>
  1009. </div>
  1010. <div class="homeWorkBox" v-if="tool.tool == 57">
  1011. <iframe
  1012. src="https://v.cocorobo.cn"
  1013. frameborder="0"
  1014. width="100%"
  1015. height="650"
  1016. ></iframe>
  1017. </div>
  1018. <div v-if="tool.tool == 51" style="margin-top: 20px">
  1019. <div class="vedioTaskBox">
  1020. <div
  1021. class="box_course"
  1022. :class="'box_course' + toolIndex"
  1023. v-if="tool.toolData.length > 0 && !tool.isNoFile"
  1024. >
  1025. <div
  1026. class="wheel"
  1027. v-if="tool.toolData[tool.sourceIndex].type == 2"
  1028. >
  1029. <div class="workd_media" style="height: 100%">
  1030. <video-player
  1031. class="video-player vjs-custom-skin"
  1032. :playsinline="true"
  1033. :options="tool.toolData[tool.sourceIndex].src"
  1034. @play="onPlayerPlay($event)"
  1035. style="width: 98%; height: 100%"
  1036. ></video-player>
  1037. </div>
  1038. </div>
  1039. <div
  1040. class="wheel"
  1041. v-if="tool.toolData[tool.sourceIndex].type == 6"
  1042. style="
  1043. box-shadow: 0 0 6px 1px #f2f2f2;
  1044. width: 98%;
  1045. background: #f1f1f1;
  1046. height: 650px;
  1047. "
  1048. >
  1049. <div class="title">查看文档</div>
  1050. <el-form class="textBox">
  1051. <el-form-item class="textTitle">
  1052. <div style="font-size: 22px">
  1053. {{ tool.toolData[tool.sourceIndex].name }}
  1054. </div>
  1055. </el-form-item>
  1056. <div
  1057. v-html="tool.toolData[tool.sourceIndex].url"
  1058. class="textContent"
  1059. ></div>
  1060. </el-form>
  1061. </div>
  1062. <div
  1063. class="wheel"
  1064. v-if="tool.toolData[tool.sourceIndex].type == 3"
  1065. style="height: 650px; width: 98%"
  1066. >
  1067. <iframe
  1068. style="width: 100%; height: 100%; border: none"
  1069. :src="tool.toolData[tool.sourceIndex].src"
  1070. ></iframe>
  1071. </div>
  1072. <div
  1073. class="wheel"
  1074. v-if="tool.toolData[tool.sourceIndex].type == 8"
  1075. style="height: 650px; width: 98%"
  1076. >
  1077. <iframe
  1078. style="width: 100%; height: 100%; border: none"
  1079. :src="tool.toolData[tool.sourceIndex].src"
  1080. security="restricted"
  1081. sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"
  1082. ></iframe>
  1083. </div>
  1084. <div
  1085. class="wheel"
  1086. v-if="tool.toolData[tool.sourceIndex].type == 13"
  1087. style="height: 650px; width: 98%"
  1088. >
  1089. <el-image
  1090. :src="tool.toolData[tool.sourceIndex].url"
  1091. fit="contain"
  1092. style="width: 100%; height: 100%; cursor: pointer"
  1093. @click="
  1094. previewImg(tool.toolData[tool.sourceIndex].url)
  1095. "
  1096. ></el-image>
  1097. </div>
  1098. <div
  1099. class="wheel"
  1100. v-if="tool.toolData[tool.sourceIndex].type == 9"
  1101. style="height: 650px; width: 98%"
  1102. >
  1103. <pdf
  1104. :pdfUrl="tool.toolData[tool.sourceIndex].url"
  1105. style="width: 100%; height: 100%; overflow: auto"
  1106. >
  1107. </pdf>
  1108. </div>
  1109. </div>
  1110. <div
  1111. class="vedioList"
  1112. :class="'vedioList' + toolIndex"
  1113. v-if="tool.toolData.length > 0"
  1114. style="height: 650px"
  1115. >
  1116. <div class="navCorOpenBox">
  1117. <div class="navTitile">内容列表:</div>
  1118. </div>
  1119. <div class="navBox">
  1120. <div style="padding: 10px 0 25px 0">
  1121. <div
  1122. class="vedioTimeBox"
  1123. v-for="(chapter, cIndex) in tool.toolData"
  1124. :key="cIndex + '1'"
  1125. @click="setChapterIndex2(tool, cIndex, toolIndex)"
  1126. >
  1127. <div class="navListItem">
  1128. <div
  1129. class="navText"
  1130. :class="{
  1131. isClickNav: tool.sourceIndex == cIndex,
  1132. }"
  1133. >
  1134. {{
  1135. chapter.type == 8
  1136. ? chapter.title
  1137. : chapter.name
  1138. }}
  1139. </div>
  1140. </div>
  1141. <!-- <div
  1142. class="vedioName"
  1143. :class="{
  1144. isClickNav: tool.sourceIndex == cIndex,
  1145. }"
  1146. >
  1147. {{
  1148. chapter.type == 8
  1149. ? chapter.title
  1150. : chapter.name
  1151. }}
  1152. </div> -->
  1153. </div>
  1154. </div>
  1155. </div>
  1156. </div>
  1157. </div>
  1158. <div
  1159. style="padding: 10px 0 10px 35px"
  1160. v-if="tool.toolData[tool.sourceIndex]"
  1161. >
  1162. <el-button
  1163. v-if="
  1164. tool.toolData[tool.sourceIndex].type == 3 ||
  1165. tool.toolData[tool.sourceIndex].type == 9
  1166. "
  1167. type="primary"
  1168. @click="
  1169. checkFileFull(
  1170. tool.toolData[tool.sourceIndex].type,
  1171. tool.toolData[tool.sourceIndex].src
  1172. )
  1173. "
  1174. >全屏查看</el-button
  1175. >
  1176. <el-button
  1177. v-if="
  1178. tool.toolData[tool.sourceIndex].type == 3 ||
  1179. tool.toolData[tool.sourceIndex].type == 9
  1180. "
  1181. type="primary"
  1182. @click="
  1183. downloadFile(
  1184. tool.toolData[tool.sourceIndex].src,
  1185. toolIndex
  1186. )
  1187. "
  1188. >文件下载</el-button
  1189. >
  1190. <el-button
  1191. v-if="tool.toolData[tool.sourceIndex].type == 8"
  1192. type="primary"
  1193. @click="openLine(tool.toolData[tool.sourceIndex].src)"
  1194. >打开链接
  1195. </el-button>
  1196. <el-button
  1197. v-if="tool.toolData[tool.sourceIndex].type == 6"
  1198. type="primary"
  1199. @click="
  1200. checkFileFull(
  1201. tool.toolData[tool.sourceIndex].type,
  1202. tool.toolData[tool.sourceIndex]
  1203. )
  1204. "
  1205. >全屏查看</el-button
  1206. >
  1207. <!-- <el-button type="primary" @click="editSourceUpadte(itemTaskIndex, toolIndex)">资源编辑</el-button> -->
  1208. </div>
  1209. </div>
  1210. </div>
  1211. </div>
  1212. </div>
  1213. </div>
  1214. </div>
  1215. </div>
  1216. </div>
  1217. <div
  1218. class="pButton"
  1219. @click="(pzDialog = true), selectPz(), setVHeight()"
  1220. v-if="tType == 4 || ispzType == 4"
  1221. style="background-image: linear-gradient(90deg, #477cd7, #65b9fc)"
  1222. >
  1223. <!-- 批 -->
  1224. <img src="../../assets/pzBtn2.png" style="width: 25px" alt="" />
  1225. </div>
  1226. <div v-if="pzDialog == true" class="newDialogCss">
  1227. <div class="pzTop2">
  1228. <!-- <div>批注</div>
  1229. <div @click="pzDialog = false">
  1230. <img src="../assets/close1.png" alt="" />
  1231. </div> -->
  1232. <div class="checkbox">
  1233. <div class="check" style="font-size: 25px">评论</div>
  1234. <el-select v-model="pzStype" @change="selectPz" class="selectBox">
  1235. <el-option label="时间降序" :value="1"></el-option>
  1236. <el-option label="时间升序" :value="2"></el-option>
  1237. <el-option label="我的评课" :value="3"></el-option>
  1238. </el-select>
  1239. <img
  1240. src="../../assets/pzBtn.png"
  1241. @click="(pzDialog = false), setVHeight()"
  1242. alt=""
  1243. />
  1244. </div>
  1245. </div>
  1246. <div :class="pzList && pzList.length ? 'pzBox' : 'noPzBox'">
  1247. <div class="pzListBox" v-if="pzList && pzList.length">
  1248. <div class="pzList" v-for="(pz, pzIndex) in pzList" :key="pzIndex">
  1249. <div class="pzNavTop">
  1250. <div>批</div>
  1251. <div>
  1252. {{
  1253. pz.username && pz.username.length > 5
  1254. ? pz.username.substring(0, 5) + "..."
  1255. : pz.username
  1256. }}的批注
  1257. </div>
  1258. <div
  1259. class="pzDelete"
  1260. v-if="pz.userid == userid"
  1261. @click="deletePz(pz.id)"
  1262. >
  1263. 删除
  1264. </div>
  1265. </div>
  1266. <div
  1267. @click="checkImg(getImgList(pz.content))"
  1268. class="pzContent cont"
  1269. v-html="pz.content"
  1270. v-if="pz.type == '1'"
  1271. ></div>
  1272. <div class="pzContent" v-if="pz.type == '2'">
  1273. <audio :src="pz.content" controls="controls" ref="audio">
  1274. Your browser does not support the audio element.
  1275. </audio>
  1276. </div>
  1277. <div class="pzContent" v-if="pz.type == '3'">
  1278. <img
  1279. :src="pz.content"
  1280. style="width: 90%; margin: 0 auto; display: block"
  1281. @click="previewImg(pz.content)"
  1282. />
  1283. </div>
  1284. <div class="timeAndReply">
  1285. <div class="time">
  1286. {{ pz.time }}
  1287. </div>
  1288. <div @click="setReplyIndex(pz.id, pzIndex)">回复</div>
  1289. </div>
  1290. <div v-if="pz.hfList && pz.hfList.length > 0" class="hfBox">
  1291. <div
  1292. v-for="(h, hIndex) in pz.hfList"
  1293. :key="hIndex"
  1294. class="hfItem"
  1295. >
  1296. <div class="whoReplyWho">
  1297. <div class="hfName">{{ h.username }}</div>
  1298. <div class="hfImg">
  1299. <img src="../../assets/icon/newIcons/right.png" alt="" />
  1300. </div>
  1301. <div class="hfName">{{ pz.username }}</div>
  1302. </div>
  1303. <div class="hfContent" v-html="h.content"></div>
  1304. <div class="hfBottom">
  1305. <div class="hfTime">{{ h.time }}</div>
  1306. <div
  1307. class="deleteHfItem"
  1308. @click="deleteReply(h.id)"
  1309. v-if="userid == h.userid"
  1310. >
  1311. <img src="../../assets/icon/newIcons/delete.png" alt="" />
  1312. </div>
  1313. </div>
  1314. </div>
  1315. </div>
  1316. </div>
  1317. </div>
  1318. <div class="noPz" v-else>
  1319. <img src="../../assets/icon/noPz.png" alt="" />
  1320. </div>
  1321. <div class="addPzButton">
  1322. <div class="addPz" @click="(addPzDialog = true), (pzType = 1)">
  1323. 添加批注
  1324. </div>
  1325. <!-- <div class="img1">
  1326. <div @click="(addPzDialog = true), (pzType = 2)">
  1327. <img src="../../assets/audio.png" /><span>音频</span>
  1328. </div>
  1329. </div> -->
  1330. </div>
  1331. </div>
  1332. </div>
  1333. <div
  1334. class="pButton"
  1335. @click="(psDialog = true), setVHeight()"
  1336. v-if="tType == 5"
  1337. >
  1338. <!-- 批 -->
  1339. <img src="../../assets/pzBtn2.png" style="width: 25px" alt="" />
  1340. </div>
  1341. <div v-if="psDialog == true" class="newDialogCss">
  1342. <div class="pzTop2">
  1343. <!-- <div>批注</div>
  1344. <div @click="pzDialog = false">
  1345. <img src="../assets/close1.png" alt="" />
  1346. </div> -->
  1347. <div class="checkbox">
  1348. <div class="check" style="font-size: 25px">评审区域</div>
  1349. <img
  1350. src="../../assets/pzBtn.png"
  1351. @click="(psDialog = false), setVHeight()"
  1352. alt=""
  1353. />
  1354. </div>
  1355. </div>
  1356. <div class="pzBox">
  1357. <div class="addPzButton">
  1358. <div class="psTypeBox">
  1359. <!-- 1 造型结构 2 开源硬件 3 软件设计 4 总分 -->
  1360. <span :class="{ active: psType == 1 }" @click="psType = 1"
  1361. >造型结构</span
  1362. >
  1363. <span :class="{ active: psType == 2 }" @click="psType = 2"
  1364. >开源硬件</span
  1365. >
  1366. <span :class="{ active: psType == 3 }" @click="psType = 3"
  1367. >软件设计</span
  1368. >
  1369. <span :class="{ active: psType == 4 }" @click="psType = 4"
  1370. >总分</span
  1371. >
  1372. </div>
  1373. <div class="psBox" v-if="psType == '1'">
  1374. <div>
  1375. <span>创新性(10分)</span
  1376. ><el-input-number
  1377. class="number"
  1378. @change="updateRight(psJson, 'cxx')"
  1379. v-model="psJson.cxx"
  1380. :controls="false"
  1381. :min="0"
  1382. :max="10"
  1383. ></el-input-number>
  1384. </div>
  1385. <div>
  1386. <span>艺术审美(45分)</span
  1387. ><el-input-number
  1388. class="number"
  1389. @change="updateRight(psJson, 'yssm')"
  1390. v-model="psJson.yssm"
  1391. :controls="false"
  1392. :min="0"
  1393. :max="40"
  1394. ></el-input-number>
  1395. </div>
  1396. <div>
  1397. <span>技术与功能(25分)</span
  1398. ><el-input-number
  1399. class="number"
  1400. @change="updateRight(psJson, 'jsygn')"
  1401. v-model="psJson.jsygn"
  1402. :controls="false"
  1403. :min="0"
  1404. :max="20"
  1405. ></el-input-number>
  1406. </div>
  1407. <div>
  1408. <span>科学调研(10分)</span
  1409. ><el-input-number
  1410. class="number"
  1411. @change="updateRight(psJson, 'kxdy')"
  1412. v-model="psJson.kxdy"
  1413. :controls="false"
  1414. :min="0"
  1415. :max="10"
  1416. ></el-input-number>
  1417. </div>
  1418. <div>
  1419. <span>作品完成度(10分)</span
  1420. ><el-input-number
  1421. class="number"
  1422. @change="updateRight(psJson, 'zpwcd')"
  1423. v-model="psJson.zpwcd"
  1424. :controls="false"
  1425. :min="0"
  1426. :max="10"
  1427. ></el-input-number>
  1428. </div>
  1429. <div style="border-top: 1px solid #eee; padding-top: 10px">
  1430. <span>总分</span
  1431. ><span class="number" style="font-size: 35px; color: #4b79ce">{{
  1432. psJson.cxx +
  1433. psJson.yssm +
  1434. psJson.jsygn +
  1435. psJson.kxdy +
  1436. psJson.zpwcd
  1437. }}</span>
  1438. </div>
  1439. </div>
  1440. <div class="psBox" v-if="psType == '2'">
  1441. <div>
  1442. <span>创新性(25分)</span
  1443. ><el-input-number
  1444. class="number"
  1445. @change="updateRight(psJson2, 'cxx')"
  1446. v-model="psJson2.cxx"
  1447. :controls="false"
  1448. :min="0"
  1449. :max="25"
  1450. ></el-input-number>
  1451. </div>
  1452. <div>
  1453. <span>艺术审美(20分)</span
  1454. ><el-input-number
  1455. class="number"
  1456. @change="updateRight(psJson2, 'yssm')"
  1457. v-model="psJson2.yssm"
  1458. :controls="false"
  1459. :min="0"
  1460. :max="20"
  1461. ></el-input-number>
  1462. </div>
  1463. <div>
  1464. <span>技术与功能(15分)</span
  1465. ><el-input-number
  1466. class="number"
  1467. @change="updateRight(psJson2, 'jsygn')"
  1468. v-model="psJson2.jsygn"
  1469. :controls="false"
  1470. :min="0"
  1471. :max="15"
  1472. ></el-input-number>
  1473. </div>
  1474. <div>
  1475. <span>科学调度(15分)</span
  1476. ><el-input-number
  1477. class="number"
  1478. @change="updateRight(psJson2, 'kxdd')"
  1479. v-model="psJson2.kxdd"
  1480. :controls="false"
  1481. :min="0"
  1482. :max="15"
  1483. ></el-input-number>
  1484. </div>
  1485. <div>
  1486. <span>作品完成度(25分)</span
  1487. ><el-input-number
  1488. class="number"
  1489. @change="updateRight(psJson2, 'zpwcd')"
  1490. v-model="psJson2.zpwcd"
  1491. :controls="false"
  1492. :min="0"
  1493. :max="25"
  1494. ></el-input-number>
  1495. </div>
  1496. <div style="border-top: 1px solid #eee; padding-top: 10px">
  1497. <span>总分</span
  1498. ><span class="number" style="font-size: 35px; color: #4b79ce">{{
  1499. psJson2.cxx +
  1500. psJson2.yssm +
  1501. psJson2.jsygn +
  1502. psJson2.kxdd +
  1503. psJson2.zpwcd
  1504. }}</span>
  1505. </div>
  1506. </div>
  1507. <div class="psBox" v-if="psType == '3'">
  1508. <div>
  1509. <span>创新性(30分)</span
  1510. ><el-input-number
  1511. class="number"
  1512. @change="updateRight(psJson3, 'cxx')"
  1513. v-model="psJson3.cxx"
  1514. :controls="false"
  1515. :min="0"
  1516. :max="30"
  1517. ></el-input-number>
  1518. </div>
  1519. <div>
  1520. <span>艺术审美(20分)</span
  1521. ><el-input-number
  1522. class="number"
  1523. @change="updateRight(psJson3, 'yssm')"
  1524. v-model="psJson3.yssm"
  1525. :controls="false"
  1526. :min="0"
  1527. :max="20"
  1528. ></el-input-number>
  1529. </div>
  1530. <div>
  1531. <span>技术与功能(30分)</span
  1532. ><el-input-number
  1533. class="number"
  1534. @change="updateRight(psJson3, 'jsygn')"
  1535. v-model="psJson3.jsygn"
  1536. :controls="false"
  1537. :min="0"
  1538. :max="30"
  1539. ></el-input-number>
  1540. </div>
  1541. <div>
  1542. <span>科学调度(10分)</span
  1543. ><el-input-number
  1544. class="number"
  1545. @change="updateRight(psJson3, 'kxdd')"
  1546. v-model="psJson3.kxdd"
  1547. :controls="false"
  1548. :min="0"
  1549. :max="10"
  1550. ></el-input-number>
  1551. </div>
  1552. <div>
  1553. <span>作品完成度(10分)</span
  1554. ><el-input-number
  1555. class="number"
  1556. @change="updateRight(psJson3, 'zpwcd')"
  1557. v-model="psJson3.zpwcd"
  1558. :controls="false"
  1559. :min="0"
  1560. :max="10"
  1561. ></el-input-number>
  1562. </div>
  1563. <div style="border-top: 1px solid #eee; padding-top: 10px">
  1564. <span>总分</span
  1565. ><span class="number" style="font-size: 35px; color: #4b79ce">{{
  1566. psJson3.cxx +
  1567. psJson3.yssm +
  1568. psJson3.jsygn +
  1569. psJson3.kxdd +
  1570. psJson3.zpwcd
  1571. }}</span>
  1572. </div>
  1573. </div>
  1574. <div class="psBox" v-if="psType == '4'">
  1575. <div>
  1576. <span>总分(100分)</span
  1577. ><el-input-number
  1578. class="number"
  1579. @change="updateRight(psJson4, 'z')"
  1580. v-model="psJson4.z"
  1581. :controls="false"
  1582. :min="0"
  1583. :max="100"
  1584. ></el-input-number>
  1585. </div>
  1586. </div>
  1587. <div class="addPz" @click="addPs()">保存评分</div>
  1588. </div>
  1589. </div>
  1590. </div>
  1591. <div
  1592. v-if="replyDialogVisible == true"
  1593. class="addDialogCss"
  1594. v-el-drag-dialog
  1595. >
  1596. <div class="pzTop">
  1597. <div class="teacherPz">
  1598. <div class="teacherPzImg">
  1599. <img src="../../assets/icon/teacherPz.png" alt="" />
  1600. </div>
  1601. <div style="margin-left: 10px; height: 25px">添加回复</div>
  1602. </div>
  1603. <div @click="replyDialogVisible = false">
  1604. <img src="../../assets/close1.png" class="pzClose" alt="" />
  1605. </div>
  1606. </div>
  1607. <div class="addPzBox">
  1608. <!-- <div class="addPzCheck">
  1609. <span :class="{ isChooseActive: pzType == 1 }" @click="pzType = 1"
  1610. >文本</span
  1611. >
  1612. <span :class="{ isChooseActive: pzType == 2 }" @click="pzType = 2"
  1613. >音频</span
  1614. >
  1615. </div> -->
  1616. <div style="height: calc(100% - 50px)">
  1617. <editor-bar
  1618. class="binfo_input pzConText"
  1619. style="width: 100% !important; margin: 0 auto"
  1620. placeholder="请输入回复描述"
  1621. v-model="reply"
  1622. @change="change"
  1623. ></editor-bar>
  1624. </div>
  1625. <div class="addTextCss" @click="addHf">确定</div>
  1626. </div>
  1627. </div>
  1628. <div v-if="addPzDialog == true" class="addDialogCss" v-el-drag-dialog>
  1629. <div class="pzTop">
  1630. <div class="teacherPz">
  1631. <div class="teacherPzImg">
  1632. <img src="../../assets/icon/teacherPz.png" alt="" />
  1633. </div>
  1634. <div style="margin-left: 10px; height: 25px">教师批注</div>
  1635. </div>
  1636. <div @click="addPzDialog = false">
  1637. <img src="../../assets/close1.png" class="pzClose" alt="" />
  1638. </div>
  1639. </div>
  1640. <div class="addPzBox">
  1641. <div class="addPzCheck">
  1642. <span :class="{ isChooseActive: pzType == 1 }" @click="pzType = 1"
  1643. >文本</span
  1644. >
  1645. <span :class="{ isChooseActive: pzType == 2 }" @click="pzType = 2"
  1646. >音频</span
  1647. >
  1648. </div>
  1649. <div style="height: calc(100% - 95px)">
  1650. <editor-bar
  1651. class="binfo_input pzConText"
  1652. style="width: 100% !important"
  1653. placeholder="请输入任务描述"
  1654. v-model="pzConText"
  1655. @change="change"
  1656. v-if="pzType == 1"
  1657. ></editor-bar>
  1658. <Audio @addPz="addPz" class="pzAudioClass" v-if="pzType == 2"></Audio>
  1659. </div>
  1660. <div class="addTextCss" @click="addPz('1')" v-if="pzType == 1">
  1661. 确定
  1662. </div>
  1663. </div>
  1664. </div>
  1665. <el-dialog
  1666. title="查看文档"
  1667. :visible.sync="fullDialogVisible"
  1668. :append-to-body="true"
  1669. width="100%"
  1670. :before-close="handleClose"
  1671. :show-close="false"
  1672. class="dialog_diy full_diy"
  1673. :class="{ full_diy2: fulltype == 9 }"
  1674. >
  1675. <div slot="title" class="header-title">
  1676. <div style="color: #fff">查看文档</div>
  1677. <div
  1678. @click="fullDialogVisible = false"
  1679. style="
  1680. cursor: pointer;
  1681. position: absolute;
  1682. top: 20px;
  1683. right: 20px;
  1684. color: #fff;
  1685. "
  1686. >
  1687. 退出全屏
  1688. </div>
  1689. </div>
  1690. <div style="height: 100%">
  1691. <iframe
  1692. v-if="fulltype == 3"
  1693. style="width: 100%; height: 100%; border: none"
  1694. :src="fullUrl"
  1695. ></iframe>
  1696. <pdf
  1697. v-else-if="fulltype == 9"
  1698. :pdfUrl="fullUrl"
  1699. style="width: 100%; height: 100%; overflow: auto"
  1700. ></pdf>
  1701. <div
  1702. class="wheel"
  1703. v-if="fulltype == 6"
  1704. style="
  1705. box-shadow: 0 0 6px 1px #f2f2f2;
  1706. width: 100%;
  1707. background: #f1f1f1;
  1708. "
  1709. >
  1710. <div class="title" style="width: 100%; box-sizing: border-box">
  1711. 查看文档
  1712. </div>
  1713. <el-form class="textBox" style="height: 90%">
  1714. <el-form-item class="textTitle">
  1715. <div style="font-size: 22px">
  1716. {{ fullUrl.name }}
  1717. </div>
  1718. </el-form-item>
  1719. <!-- <div style="color: #918f8f; width: 85%">文档内容</div> -->
  1720. <div
  1721. v-html="fullUrl.url"
  1722. class="textContent"
  1723. style="height: auto"
  1724. ></div>
  1725. </el-form>
  1726. </div>
  1727. </div>
  1728. <!-- <div slot="footer">
  1729. <el-button @click="fullDialogVisible = false">关 闭</el-button>
  1730. </div> -->
  1731. </el-dialog>
  1732. <el-dialog
  1733. title="表格"
  1734. :visible.sync="dialogVisibleTable2"
  1735. :append-to-body="true"
  1736. width="95%"
  1737. :before-close="handleClose"
  1738. class="dialog_diy"
  1739. >
  1740. <el-form>
  1741. <div
  1742. class="cont"
  1743. v-html="tableJson.text"
  1744. style="line-height: 24px"
  1745. ></div>
  1746. </el-form>
  1747. <span slot="footer" class="dialog-footer">
  1748. <el-button @click="dialogVisibleTable2 = false">关 闭</el-button>
  1749. </span>
  1750. </el-dialog>
  1751. <el-dialog
  1752. title="文件预览"
  1753. :visible.sync="dialogVisible3"
  1754. width="50%"
  1755. :before-close="handleClose"
  1756. class="dialog_diy"
  1757. :class="{ fullStyle: full }"
  1758. >
  1759. <div slot="title" class="header-title">
  1760. <div style="color: #fff">文件预览</div>
  1761. <div style="position: absolute; top: 19px; right: 50px">
  1762. <img
  1763. src="../../assets/full.png"
  1764. style="height: 16px; cursor: pointer"
  1765. alt=""
  1766. @click="fullTools"
  1767. />
  1768. </div>
  1769. </div>
  1770. <pdf
  1771. v-if="showPDF"
  1772. :pdfUrl="pptImgUrl"
  1773. style="width: 100%; height: 520px; overflow: auto"
  1774. :class="{ fullStyle: full }"
  1775. ></pdf>
  1776. <iframe
  1777. v-else
  1778. :src="pptImgUrl"
  1779. frameborder="0"
  1780. width="100%"
  1781. height="600"
  1782. :class="{ fullStyle: full }"
  1783. ></iframe>
  1784. </el-dialog>
  1785. <el-dialog
  1786. title="查看文档"
  1787. :visible.sync="dialogVisibleText2"
  1788. :append-to-body="true"
  1789. width="800px"
  1790. :before-close="handleClose"
  1791. class="dialog_diy"
  1792. >
  1793. <el-form>
  1794. <div
  1795. class="cont"
  1796. v-html="tableJson.text"
  1797. style="line-height: 24px"
  1798. ></div>
  1799. </el-form>
  1800. <span slot="footer" class="dialog-footer">
  1801. <el-button @click="dialogVisibleText2 = false">关 闭</el-button>
  1802. </span>
  1803. </el-dialog>
  1804. <el-dialog
  1805. title="查看视频"
  1806. :visible.sync="videoVisible"
  1807. :append-to-body="true"
  1808. width="1000px"
  1809. :before-close="handleClose"
  1810. class="dialog_diy1"
  1811. >
  1812. <div class="workd_media" style="height: 100%" v-if="videoDetail.sources">
  1813. <video-player
  1814. class="video-player vjs-custom-skin"
  1815. :playsinline="true"
  1816. :options="videoDetail"
  1817. @play="onPlayerPlay($event)"
  1818. style="width: 100%; height: 100%"
  1819. ></video-player>
  1820. </div>
  1821. <div slot="footer">
  1822. <el-button
  1823. style="background: #409efe; color: #fff"
  1824. @click="(videoVisible = false), (videoDetail = {})"
  1825. >
  1826. 关 闭</el-button
  1827. >
  1828. </div>
  1829. </el-dialog>
  1830. <el-dialog
  1831. title="查看投票"
  1832. :visible.sync="dialogVisible5"
  1833. :append-to-body="true"
  1834. width="1000px"
  1835. :before-close="handleClose"
  1836. class="dialog_diy dialog_diy3"
  1837. >
  1838. <div>
  1839. <div
  1840. class="a_add_title"
  1841. style="
  1842. display: flex;
  1843. flex-direction: row;
  1844. align-items: center;
  1845. justify-content: center;
  1846. "
  1847. >
  1848. <div style="margin-right: 20px; font-size: 20px">投票标题:</div>
  1849. <div style="font-size: 20px">{{ askJson.askTitle }}</div>
  1850. </div>
  1851. <div class="a_addBox">
  1852. <div style="font-size: 16px; color: #c7c7c7">投票内容</div>
  1853. <div
  1854. class="a_add_box"
  1855. v-for="(item1, index1) in askJson.askCount"
  1856. :key="index1"
  1857. >
  1858. <div class="a_add_head">
  1859. <div style="display: flex">
  1860. {{ index1 + 1 + "、" }}
  1861. <div>{{ askJson.askJson[index1].askstitle }}</div>
  1862. </div>
  1863. <img
  1864. v-if="askJson.askJson[index1].img"
  1865. :src="askJson.askJson[index1].img"
  1866. style="height: 300px; margin-top: 10px; max-width: 100%"
  1867. />
  1868. </div>
  1869. <div class="a_add_body">
  1870. <div class="a_add_input">
  1871. <el-radio-group v-model="radio[index1]">
  1872. <el-radio
  1873. v-for="(item2, checkIndex) in askJson.askJson[index1]
  1874. .checkList"
  1875. :key="checkIndex"
  1876. :label="checkIndex"
  1877. :disabled="true"
  1878. class="redioStyle"
  1879. ><span v-html="item2"></span
  1880. ></el-radio>
  1881. </el-radio-group>
  1882. </div>
  1883. </div>
  1884. </div>
  1885. </div>
  1886. </div>
  1887. <span slot="footer" class="dialog-footer">
  1888. <el-button @click="dialogVisible5 = false">关 闭</el-button>
  1889. </span>
  1890. </el-dialog>
  1891. </div>
  1892. </template>
  1893. <script>
  1894. import "../../common/aws-sdk-2.235.1.min.js";
  1895. import EditorBar from "../tools/wangEnduit.vue";
  1896. import Audio from "../components/audio.vue";
  1897. import voteStatic from "../components/voteStatic.vue";
  1898. import pdf from "../components/vpdf";
  1899. export default {
  1900. components: {
  1901. EditorBar,
  1902. Audio,
  1903. voteStatic,
  1904. pdf,
  1905. },
  1906. data() {
  1907. return {
  1908. bg: null,
  1909. drawShow: false,
  1910. dialogVisible: false,
  1911. commentDialogVisible: false,
  1912. videoVisible: false,
  1913. isStar: false,
  1914. studentEvalDialogVisible: false,
  1915. dialogVisibleSelect: false,
  1916. dialogVisibleScore: false,
  1917. dialogVisibleSentence: false,
  1918. dialogVisibleSentence1: false,
  1919. dialogVisibleWorks: false,
  1920. dialogVisibleTable: false,
  1921. dialogVisibleTable2: false,
  1922. dialogVisibleGroupWork: false,
  1923. dialogVisibleUpdateGroup: false,
  1924. dialogVisibleDeleteGroup: false,
  1925. dialogVisibleText2: false,
  1926. videoVisible: false,
  1927. videoDetail: {},
  1928. sStudent: {},
  1929. bzText: "",
  1930. commentDetail: [],
  1931. selectAnswer: [],
  1932. videoDetail: {},
  1933. selectJson: {},
  1934. eScore: { eBzText: "", eStar: [] },
  1935. id: this.$route.query.courseId,
  1936. userid: this.$route.query.userid,
  1937. classId: this.$route.query.cid,
  1938. // courseTypeLine: this.$route.query.type,
  1939. oid: this.$route.query.oid,
  1940. org: this.$route.query.org,
  1941. tType: this.$route.query.tType,
  1942. courseType: this.$route.query.type,
  1943. role: this.$route.query.role,
  1944. screenType: this.$route.query.screenType,
  1945. pptImgUrl: "",
  1946. pptImgUrl1: "",
  1947. commentText: "",
  1948. full: false,
  1949. sIsOpen: false,
  1950. IsLookOpen: false,
  1951. pzDialog: false,
  1952. psDialog: false,
  1953. type: 1,
  1954. sentenceList: [{ sentenceTitle: "", addSentence: [], rightAnswer: [] }],
  1955. sentenceList1: [],
  1956. tableJson: [],
  1957. vedio: [],
  1958. text: [],
  1959. textList: [],
  1960. line: [],
  1961. lineList: [],
  1962. chapTools: [],
  1963. chapToolList: [],
  1964. file: [],
  1965. vedioTime: [],
  1966. upToolImg: "",
  1967. rateList: {
  1968. ca: 0,
  1969. },
  1970. rateParams: [],
  1971. colors: ["#DFDFDF", "#DFDFDF", "#DFDFDF"],
  1972. studyJuri: [
  1973. {
  1974. content: "",
  1975. cover: [],
  1976. upVedio: [],
  1977. upFile: [],
  1978. },
  1979. ],
  1980. mr: require("../../assets/vedioPic.png"),
  1981. word: require("../../assets/icon/word2.png"),
  1982. zip: require("../../assets/icon/zip.png"),
  1983. video: require("../../assets/icon/isVideo.png"),
  1984. noLikes: require("../../assets/icon/comment/noLikes.png"),
  1985. likes: require("../../assets/icon/comment/likes.png"),
  1986. scoreImg: require("../../assets/score.png"),
  1987. courseDetail: {},
  1988. isSelect: false,
  1989. chapInfo: [],
  1990. chapInfoList: [],
  1991. taskCount: 0,
  1992. imgList: [],
  1993. noImgList: [],
  1994. pzList: [],
  1995. PlTextList: [
  1996. "Excellent!",
  1997. "nice!",
  1998. "很有创意!",
  1999. "还不错哦~",
  2000. "继续努力哦~",
  2001. ],
  2002. isClickNav: "",
  2003. navId: "",
  2004. playerOptions: {
  2005. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  2006. autoplay: false, //如果true,浏览器准备好时开始回放。
  2007. muted: false, // 默认情况下将会消除任何音频。
  2008. loop: false, // 导致视频一结束就重新开始。
  2009. preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  2010. language: "zh-CN",
  2011. aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  2012. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  2013. sources: [
  2014. {
  2015. type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目 || "video/ogg"|| "video/webm"
  2016. src: "", //url地址require("../../../../assets/media/aaa.mp4")
  2017. },
  2018. ],
  2019. // poster: require("../../../../assets/tu31.png"), //你的封面地址
  2020. // poster: dataRes.imgUrl, //你的封面地址
  2021. notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  2022. controlBar: {
  2023. timeDivider: true, //当前时间和持续时间的分隔符
  2024. durationDisplay: true, //显示持续时间
  2025. remainingTimeDisplay: false, //是否显示剩余时间功能
  2026. fullscreenToggle: true, //全屏按钮
  2027. },
  2028. },
  2029. playerOptions1: {
  2030. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  2031. autoplay: false, //如果true,浏览器准备好时开始回放。
  2032. muted: false, // 默认情况下将会消除任何音频。
  2033. loop: false, // 导致视频一结束就重新开始。
  2034. preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  2035. language: "zh-CN",
  2036. aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  2037. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  2038. sources: [
  2039. {
  2040. type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目 || "video/ogg"|| "video/webm"
  2041. src: "", //url地址require("../../../../assets/media/aaa.mp4")
  2042. },
  2043. ],
  2044. // poster: require("../../../../assets/tu31.png"), //你的封面地址
  2045. // poster: dataRes.imgUrl, //你的封面地址
  2046. notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  2047. controlBar: {
  2048. timeDivider: true, //当前时间和持续时间的分隔符
  2049. durationDisplay: true, //显示持续时间
  2050. remainingTimeDisplay: false, //是否显示剩余时间功能
  2051. fullscreenToggle: true, //全屏按钮
  2052. },
  2053. },
  2054. playerO: {},
  2055. noneBtnImg: false,
  2056. proVisible: false,
  2057. progress: 0,
  2058. questionAnswer: "",
  2059. answerQ: "", //问答标题
  2060. rateJson: [],
  2061. wbCount: 0,
  2062. wordCount: 0,
  2063. mindCount: 0,
  2064. askCount: 0,
  2065. noteCount: 0,
  2066. mindNetWorkCount: 0,
  2067. libraryCount: 0,
  2068. workCount: 0,
  2069. timeCount: 0,
  2070. answerCount: 0,
  2071. trainCount: 0,
  2072. evalCount: 0,
  2073. dialogImageUrl: "",
  2074. mlDialog: false,
  2075. pictureDialog: false,
  2076. toolTypeList: [],
  2077. dialogVisible1: false,
  2078. dialogVisible2: false,
  2079. dialogVisible3: false,
  2080. dialogVisible6: false,
  2081. dialogVisible4: false,
  2082. isNoHomeWork: false,
  2083. dialogVisible5: false,
  2084. dialogVisibleChoice: false,
  2085. answerDialogVisible: false,
  2086. juriVisible: false,
  2087. timeDialogVisible: false,
  2088. replyDialogVisible: false,
  2089. replyIndex: 0,
  2090. replyPid: "",
  2091. radio: [],
  2092. isAsk: false,
  2093. askJson: {
  2094. askCount: 1,
  2095. askTitle: "",
  2096. askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
  2097. },
  2098. testJson: {},
  2099. checkJson: [],
  2100. askList: [],
  2101. answerList: [],
  2102. navList: [],
  2103. addPzDialog: false,
  2104. isHovered: false,
  2105. isHovered1: false,
  2106. ispzType: 0,
  2107. pzConText: "",
  2108. worksStudent: [],
  2109. workStudent: [],
  2110. groupStudent: [],
  2111. groupStudentUid: [],
  2112. noWorksS: [],
  2113. isWorksS: [],
  2114. noWorksStudent: [],
  2115. toolindex: 0,
  2116. groupIndex: 0,
  2117. workTypeA: false,
  2118. workTypeB: false,
  2119. workTypeC: false,
  2120. isAnswer: false,
  2121. timer: null,
  2122. showType: 0,
  2123. fileType: 0,
  2124. showPDF: false,
  2125. noteName: "",
  2126. evaJuri: [],
  2127. evalua: "",
  2128. eTitle: "",
  2129. eName: "",
  2130. eJson: {},
  2131. fid: "", //一级
  2132. sid: "", //二级
  2133. tid: "", //二级
  2134. typeMode: 1,
  2135. eJSONNum: 0,
  2136. Etype: 1,
  2137. data: {
  2138. meta: {
  2139. name: "example",
  2140. author: "dd@163.com",
  2141. version: "0.2",
  2142. },
  2143. format: "node_array",
  2144. data: [{ id: "root", isroot: true, topic: "" }],
  2145. },
  2146. fullDialogVisible: false,
  2147. fulltype: "",
  2148. fullUrl: "",
  2149. commentIndexJson: {},
  2150. Stbodywidth: 0,
  2151. pzType: 1,
  2152. wScore: 0,
  2153. scoreDetail: "",
  2154. videoStart: false,
  2155. recorder: null,
  2156. groupJson: {},
  2157. groupJson2: {},
  2158. dialogVisibleGroup: false,
  2159. dialogVisibleGroup2: false,
  2160. updateGroupArray: [],
  2161. updateGroupUser: {},
  2162. deleteGroupUser: [],
  2163. deleteGroupArray: {},
  2164. checkChair: "",
  2165. checkDeleteGroup: [],
  2166. ManAarray: [],
  2167. chapterlist: [],
  2168. chapterIndex: 0,
  2169. courseUserid: "",
  2170. checkboxList3: [],
  2171. psType: 1,
  2172. psJson: {
  2173. cxx: 0,
  2174. yssm: 0,
  2175. jsygn: 0,
  2176. kxdy: 0,
  2177. zpwcd: 0,
  2178. },
  2179. psJson2: {
  2180. cxx: 0,
  2181. yssm: 0,
  2182. jsygn: 0,
  2183. kxdd: 0,
  2184. zpwcd: 0,
  2185. },
  2186. psJson3: {
  2187. cxx: 0,
  2188. yssm: 0,
  2189. jsygn: 0,
  2190. kxdd: 0,
  2191. zpwcd: 0,
  2192. },
  2193. psJson4: {
  2194. z: 0,
  2195. },
  2196. pzStype: 1,
  2197. downLoading: "",
  2198. };
  2199. },
  2200. methods: {
  2201. jump() {
  2202. window.topU.postMessage({ tools: "43" }, "*");
  2203. },
  2204. previewImg(url) {
  2205. this.$hevueImgPreview(url);
  2206. },
  2207. checkImg(list) {
  2208. if (!list.length) {
  2209. return;
  2210. }
  2211. this.$hevueImgPreview({
  2212. multiple: true, // 开启多图预览模式
  2213. imgList: list, // 需要预览的多图数组
  2214. });
  2215. },
  2216. openTable(f) {
  2217. this.tableJson.text = JSON.parse(f);
  2218. this.dialogVisibleTable2 = true;
  2219. },
  2220. change(val) {
  2221. console.log(val);
  2222. },
  2223. goTo(path) {
  2224. this.$router.push(path);
  2225. },
  2226. handlePictureCardPreview(url) {
  2227. this.dialogImageUrl = url;
  2228. this.pictureDialog = true;
  2229. },
  2230. clean(type) {
  2231. if (type == 1) {
  2232. this.studyJuri[0].cover.splice(0, 1);
  2233. } else if (type == 2) {
  2234. this.studyJuri[0].upVedio.splice(0, 1);
  2235. } else {
  2236. this.studyJuri[0].upFile.splice(0, 1);
  2237. }
  2238. },
  2239. handleClose(done) {
  2240. this.videoDetail = {};
  2241. this.commentIndexJson = {};
  2242. done();
  2243. },
  2244. fullTools() {
  2245. this.full = !this.full;
  2246. },
  2247. imgChange(file, fileList, type) {
  2248. if (type == 1) {
  2249. var _tmp = this.studyJuri[0].cover;
  2250. } else if (type == 2) {
  2251. var _tmp = this.studyJuri[0].upVedio;
  2252. } else {
  2253. var _tmp = this.studyJuri[0].upFile;
  2254. }
  2255. this.noneBtnImg = _tmp.length >= 1;
  2256. },
  2257. addImg(e) {
  2258. var el = e.currentTarget;
  2259. // this.$message.success('触发上传')
  2260. el.getElementsByTagName("input")[0].click();
  2261. },
  2262. addSelectAnswer() {
  2263. let params = [
  2264. {
  2265. uid: this.userid,
  2266. cid: this.id,
  2267. stage: this.courseType,
  2268. task: this.taskCount,
  2269. tool: this.toolindex,
  2270. content: this.selectAnswer.answer,
  2271. type: 7,
  2272. },
  2273. ];
  2274. this.ajax
  2275. .post(this.$store.state.api + "addCourseWorks", params)
  2276. .then((res) => {
  2277. this.$message({
  2278. message: "提交成功",
  2279. type: "success",
  2280. });
  2281. this.dialogVisibleSelect = false;
  2282. // this.selectAnswer = {};
  2283. this.selectSWorks();
  2284. this.selectStudent();
  2285. })
  2286. .catch((err) => {
  2287. this.$message.error("提交失败");
  2288. console.error(err);
  2289. });
  2290. },
  2291. addPz(type, content) {
  2292. if (type == "1" && this.pzConText == "") {
  2293. this.$message.error("批注不能为空!");
  2294. return;
  2295. }
  2296. let params = [
  2297. {
  2298. cid: this.id,
  2299. uid: this.userid,
  2300. s: this.courseType,
  2301. t: this.taskCount,
  2302. c: type == "1" ? this.pzConText : content,
  2303. type: type,
  2304. },
  2305. ];
  2306. this.ajax
  2307. .post(this.$store.state.api + "addPz2", params)
  2308. .then((res) => {
  2309. this.$message({
  2310. message: "添加成功",
  2311. type: "success",
  2312. });
  2313. this.pzConText = "";
  2314. this.addPzDialog = false;
  2315. this.selectPz();
  2316. })
  2317. .catch((err) => {
  2318. this.$message.error("添加失败");
  2319. console.error(err);
  2320. });
  2321. },
  2322. setReplyIndex(id, i) {
  2323. this.replyIndex = i;
  2324. this.replyPid = id;
  2325. this.replyDialogVisible = true;
  2326. },
  2327. addHf() {
  2328. if (this.reply == "") {
  2329. this.$message.error("回复不能为空!");
  2330. return;
  2331. }
  2332. let params = [
  2333. {
  2334. cid: this.id,
  2335. uid: this.userid,
  2336. s: this.courseType,
  2337. t: this.taskCount,
  2338. type: "1",
  2339. ct: 2,
  2340. pid: this.replyPid,
  2341. c: this.reply,
  2342. },
  2343. ];
  2344. this.ajax
  2345. .post(this.$store.state.api + "addHf", params)
  2346. .then((res) => {
  2347. this.reply = "";
  2348. this.$message({
  2349. message: "回复成功",
  2350. type: "success",
  2351. });
  2352. this.replyDialogVisible = false;
  2353. this.selectPz();
  2354. })
  2355. .catch((err) => {
  2356. this.$message.error("回复失败");
  2357. console.error(err);
  2358. });
  2359. },
  2360. deletePz(id) {
  2361. this.$confirm("确定删除此批注吗?", "提示", {
  2362. confirmButtonText: "确定",
  2363. cancelButtonText: "取消",
  2364. type: "warning",
  2365. })
  2366. .then(() => {
  2367. let params = [
  2368. {
  2369. id: id,
  2370. },
  2371. ];
  2372. this.ajax
  2373. .post(this.$store.state.api + "deletePz", params)
  2374. .then((res) => {
  2375. this.$message({
  2376. message: "删除成功",
  2377. type: "success",
  2378. });
  2379. this.selectPz();
  2380. })
  2381. .catch((err) => {
  2382. this.$message.error("网络异常");
  2383. console.error(err);
  2384. });
  2385. })
  2386. .catch(() => {});
  2387. },
  2388. deleteReply(id) {
  2389. this.$confirm("确定删除此回复吗?", "提示", {
  2390. confirmButtonText: "确定",
  2391. cancelButtonText: "取消",
  2392. type: "warning",
  2393. })
  2394. .then(() => {
  2395. let params = [
  2396. {
  2397. id: id,
  2398. },
  2399. ];
  2400. this.ajax
  2401. .post(this.$store.state.api + "deleteReply", params)
  2402. .then((res) => {
  2403. this.$message({
  2404. message: "删除成功",
  2405. type: "success",
  2406. });
  2407. this.selectPz();
  2408. })
  2409. .catch((err) => {
  2410. this.$message.error("网络异常");
  2411. console.error(err);
  2412. });
  2413. })
  2414. .catch(() => {});
  2415. },
  2416. selectPz() {
  2417. let params = {
  2418. cid: this.id,
  2419. s: this.courseType,
  2420. t: this.taskCount,
  2421. type: this.pzStype,
  2422. uid: this.userid,
  2423. };
  2424. this.ajax
  2425. .get(this.$store.state.api + "selectPzListType", params)
  2426. .then((res) => {
  2427. this.pzList = res.data[0];
  2428. var a = res.data[1];
  2429. for (var i = 0; i < a.length; i++) {
  2430. for (var j = 0; j < this.pzList.length; j++) {
  2431. if (!this.pzList[j].hfList) {
  2432. this.pzList[j].hfList = [];
  2433. }
  2434. if (a[i].pid == this.pzList[j].id) {
  2435. this.pzList[j].hfList.push(a[i]);
  2436. }
  2437. }
  2438. }
  2439. })
  2440. .catch((err) => {
  2441. console.error(err);
  2442. });
  2443. },
  2444. selectPs() {
  2445. let params = {
  2446. cid: this.id,
  2447. };
  2448. this.ajax
  2449. .get(this.$store.state.api + "getReview", params)
  2450. .then((res) => {
  2451. if (res.data[0].length) {
  2452. this.psType = res.data[0][0].type;
  2453. if (this.psType == "1") {
  2454. this.psJson = JSON.parse(res.data[0][0].score);
  2455. } else if (this.psType == "2") {
  2456. this.psJson2 = JSON.parse(res.data[0][0].score);
  2457. } else if (this.psType == "3") {
  2458. this.psJson3 = JSON.parse(res.data[0][0].score);
  2459. } else if (this.psType == "4") {
  2460. this.psJson4 = JSON.parse(res.data[0][0].score);
  2461. }
  2462. // this.psJson = JSON.parse(res.data[0][0].score)
  2463. }
  2464. })
  2465. .catch((err) => {
  2466. console.error(err);
  2467. });
  2468. },
  2469. addPs() {
  2470. let psJson = {};
  2471. if (this.psType == "1") {
  2472. psJson = this.psJson;
  2473. } else if (this.psType == "2") {
  2474. psJson = this.psJson2;
  2475. } else if (this.psType == "3") {
  2476. psJson = this.psJson3;
  2477. } else if (this.psType == "4") {
  2478. psJson = this.psJson4;
  2479. }
  2480. let params = [
  2481. {
  2482. uid: this.userid,
  2483. cid: this.id,
  2484. psJson: JSON.stringify(psJson),
  2485. type: this.psType,
  2486. },
  2487. ];
  2488. this.ajax
  2489. .post(this.$store.state.api + "reviewCourse", params)
  2490. .then((res) => {
  2491. if (res.data) {
  2492. this.$message.success("保存成功");
  2493. }
  2494. })
  2495. .catch((err) => {
  2496. console.error(err);
  2497. });
  2498. },
  2499. allScrell() {
  2500. window.topU.postMessage({ allScreen: this.screenType + "s" }, "*");
  2501. },
  2502. refreshCourse() {
  2503. this.navList = [];
  2504. this.getCourseDetail(1);
  2505. },
  2506. setPz() {
  2507. if (this.ispzType == 4) {
  2508. this.ispzType = 0;
  2509. this.pzDialog = false;
  2510. return;
  2511. }
  2512. this.ispzType = 4;
  2513. this.pzDialog = true;
  2514. this.selectPz();
  2515. },
  2516. nextOrpreSteps(t) {
  2517. var b = this.chapInfoList.length - 1;
  2518. if (t == 0) {
  2519. if (this.courseType == 0) {
  2520. if (this.taskCount == 0) {
  2521. // console.log(this.navList[b].task[this.navList[b].task.length - 1].isLook);
  2522. if (this.IsLookOpen) {
  2523. if (
  2524. !this.navList[b].task[this.navList[b].task.length - 1].isLook
  2525. ) {
  2526. if (this.courseDetail.userid != this.userid) {
  2527. this.$message.error("任务未解锁");
  2528. } else {
  2529. this.$message.error("上一任务未解锁");
  2530. }
  2531. return;
  2532. }
  2533. }
  2534. this.navList[this.courseType].isOpen = false;
  2535. this.courseType = b;
  2536. this.taskCount =
  2537. this.chapInfoList[this.courseType].chapterInfo[0].taskJson
  2538. .length - 1;
  2539. this.navList[this.courseType].isOpen = true;
  2540. } else {
  2541. this.taskCount--;
  2542. }
  2543. } else {
  2544. if (this.taskCount == 0) {
  2545. this.navList[this.courseType].isOpen = false;
  2546. this.courseType--;
  2547. this.taskCount =
  2548. this.chapInfoList[this.courseType].chapterInfo[0].taskJson
  2549. .length - 1;
  2550. this.navList[this.courseType].isOpen = true;
  2551. } else {
  2552. this.taskCount--;
  2553. }
  2554. }
  2555. } else {
  2556. if (this.courseType == b) {
  2557. if (
  2558. this.taskCount ==
  2559. this.chapInfoList[this.courseType].chapterInfo[0].taskJson.length -
  2560. 1
  2561. ) {
  2562. this.navList[this.courseType].isOpen = false;
  2563. this.courseType = 0;
  2564. this.taskCount = 0;
  2565. this.navList[this.courseType].isOpen = true;
  2566. } else {
  2567. var bbb = parseInt(this.taskCount) + 1;
  2568. if (
  2569. !this.chapInfoList[this.courseType].chapterInfo[0].taskJson[bbb]
  2570. .isLook &&
  2571. this.courseDetail.userid != this.userid &&
  2572. this.IsLookOpen
  2573. ) {
  2574. this.$message.error("任务未解锁");
  2575. return;
  2576. }
  2577. this.taskCount++;
  2578. if (this.IsLookOpen) {
  2579. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  2580. this.taskCount
  2581. ].isLook = true;
  2582. this.addCourseState(3);
  2583. }
  2584. }
  2585. } else {
  2586. if (
  2587. this.taskCount ==
  2588. this.chapInfoList[this.courseType].chapterInfo[0].taskJson.length -
  2589. 1
  2590. ) {
  2591. var bbb = parseInt(this.courseType) + 1;
  2592. if (
  2593. !this.chapInfoList[bbb].chapterInfo[0].taskJson[0].isLook &&
  2594. this.courseDetail.userid != this.userid &&
  2595. this.IsLookOpen
  2596. ) {
  2597. this.$message.error("任务未解锁");
  2598. return;
  2599. }
  2600. this.navList[this.courseType].isOpen = false;
  2601. this.courseType++;
  2602. this.taskCount = 0;
  2603. this.navList[this.courseType].isOpen = true;
  2604. } else {
  2605. var bbb = parseInt(this.taskCount) + 1;
  2606. if (
  2607. !this.chapInfoList[this.courseType].chapterInfo[0].taskJson[bbb]
  2608. .isLook &&
  2609. this.courseDetail.userid != this.userid &&
  2610. this.IsLookOpen
  2611. ) {
  2612. this.$message.error("任务未解锁");
  2613. return;
  2614. }
  2615. this.taskCount++;
  2616. }
  2617. if (this.IsLookOpen) {
  2618. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  2619. this.taskCount
  2620. ].isLook = true;
  2621. this.addCourseState(3);
  2622. }
  2623. }
  2624. }
  2625. document.scrollingElement.scrollTop = 0;
  2626. this.showType = 0;
  2627. this.navId = this.navList[this.courseType].task[this.taskCount].id;
  2628. this.isNoHomeWork = false;
  2629. (this.studyJuri = [
  2630. {
  2631. content: "",
  2632. cover: [],
  2633. upVedio: [],
  2634. upFile: [],
  2635. },
  2636. ]),
  2637. (this.radio = []);
  2638. this.isClickNav = "";
  2639. this.selectPz();
  2640. this.getCourseDetail();
  2641. this.$forceUpdate();
  2642. },
  2643. openTask(s, n, i, ctype) {
  2644. if (this.IsLookOpen) {
  2645. if (
  2646. !this.chapInfoList[s].chapterInfo[0].taskJson[n].isLook &&
  2647. this.courseDetail.userid != this.userid
  2648. ) {
  2649. this.$message.error("任务未解锁");
  2650. return;
  2651. }
  2652. if (this.courseType == s && this.taskCount != n && n > this.taskCount) {
  2653. if (
  2654. !this.chapInfoList[this.courseType].chapterInfo[0].taskJson[n - 1]
  2655. .isLook
  2656. ) {
  2657. this.$message.error("上一任务未解锁");
  2658. return;
  2659. }
  2660. } else if (s > this.courseType) {
  2661. if (n > 0) {
  2662. if (!this.chapInfoList[s].chapterInfo[0].taskJson[n - 1].isLook) {
  2663. this.$message.error("上一任务未解锁");
  2664. return;
  2665. }
  2666. } else {
  2667. if (
  2668. !this.chapInfoList[s - 1].chapterInfo[0].taskJson[
  2669. this.chapInfoList[s - 1].chapterInfo[0].taskJson.length - 1
  2670. ].isLook
  2671. ) {
  2672. this.$message.error("上一任务未解锁");
  2673. return;
  2674. }
  2675. }
  2676. }
  2677. }
  2678. if (this.navList[s].task[n].isOpen == true && ctype != 2) {
  2679. this.navList[s].task[n].isOpen = !this.navList[s].task[n].isOpen;
  2680. return;
  2681. }
  2682. this.courseType = s;
  2683. this.navId = i;
  2684. this.taskCount = n;
  2685. if (this.IsLookOpen) {
  2686. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  2687. this.taskCount
  2688. ].isLook = true;
  2689. this.addCourseState(3);
  2690. }
  2691. this.showType = 0;
  2692. this.isNoHomeWork = false;
  2693. (this.studyJuri = [
  2694. {
  2695. content: "",
  2696. cover: [],
  2697. upVedio: [],
  2698. upFile: [],
  2699. },
  2700. ]),
  2701. (this.radio = []);
  2702. document.scrollingElement.scrollTop = 0;
  2703. for (var z = 0; z < this.navList.length; z++) {
  2704. for (var q = 0; q < this.navList[z].task.length; q++) {
  2705. for (var w = 0; w < this.navList[z].task[q].tool.length; w++) {
  2706. this.navList[z].task[q].tool[w].isTool = false;
  2707. }
  2708. }
  2709. }
  2710. this.getCourseDetail();
  2711. },
  2712. get(i) {
  2713. let a = this.navList[i].isOpen;
  2714. this.navList[i].isOpen = !this.navList[i].isOpen;
  2715. this.$forceUpdate();
  2716. if (this.navList[i].isOpen) {
  2717. this.openTask(i, 0, i + "-0", 2);
  2718. }
  2719. },
  2720. setChapterIndex(index) {
  2721. this.chapterIndex = index;
  2722. this.$nextTick(function () {
  2723. setTimeout(() => {
  2724. var a = document.getElementsByClassName("box_course")[0].offsetHeight;
  2725. document.getElementsByClassName("vedioList")[0].style.height =
  2726. a + "px";
  2727. }, 500);
  2728. });
  2729. },
  2730. getCourseDetail(type, gindex) {
  2731. let loading;
  2732. if (type != 2) {
  2733. loading = this.$loading.service({
  2734. background: "rgba(255, 255, 255, 0.7)",
  2735. target: document.querySelector(".student_table"),
  2736. });
  2737. }
  2738. let params = {
  2739. courseId: this.id,
  2740. };
  2741. this.ajax
  2742. .get(this.$store.state.api + "selectStudentCourseDetail3", params)
  2743. .then((res) => {
  2744. if (type != 2) {
  2745. loading.close();
  2746. let _ctype = false;
  2747. if (this.courseType != 0 && !this.courseType) {
  2748. _ctype = true;
  2749. }
  2750. if (this.tType == 5 && _ctype) {
  2751. this.courseType = JSON.parse(res.data[0][0].chapters).length - 1;
  2752. }
  2753. var a = JSON.parse(res.data[0][0].chapters)[this.courseType]
  2754. .chapterInfo[0].taskJson;
  2755. if (this.tType == 5 && _ctype) {
  2756. this.taskCount = a.length - 1;
  2757. }
  2758. this.courseDetail = res.data[0][0];
  2759. this.courseUserid = res.data[0][0].userid;
  2760. this.checkboxList3 = res.data[0][0].course_teacher
  2761. ? res.data[0][0].course_teacher.split(",")
  2762. : [];
  2763. this.chapInfo = JSON.parse(this.courseDetail.chapters)[
  2764. this.courseType
  2765. ];
  2766. this.chapterlist = [];
  2767. this.chapterlist = JSON.parse(
  2768. JSON.stringify(a[this.taskCount].chapterData)
  2769. );
  2770. this.chapterIndex = 0;
  2771. this.chapInfoList = JSON.parse(this.courseDetail.chapters);
  2772. if (this.chapterlist.length) {
  2773. for (var k = 0; k < this.chapterlist.length; k++) {
  2774. if (this.chapterlist[k].type == 2) {
  2775. var d = JSON.parse(JSON.stringify(this.playerOptions));
  2776. d.sources[0].src = this.chapterlist[k].url;
  2777. this.chapterlist[k].src = d;
  2778. } else if (this.chapterlist[k].type == 3) {
  2779. this.chapterlist[k].src =
  2780. "https://view.officeapps.live.com/op/view.aspx?src=" +
  2781. encodeURIComponent(this.chapterlist[k].url);
  2782. } else if (this.chapterlist[k].type == 6) {
  2783. this.chapterlist[k].name += ".doc";
  2784. } else if (this.chapterlist[k].type == 8) {
  2785. if (
  2786. this.chapterlist[k].url.indexOf("https://") == -1 &&
  2787. this.chapterlist[k].url.indexOf("http://") == -1
  2788. ) {
  2789. this.chapterlist[k].src =
  2790. "https://" + this.chapterlist[k].url;
  2791. } else {
  2792. this.chapterlist[k].src = this.chapterlist[k].url;
  2793. }
  2794. } else if (this.chapterlist[k].type == 9) {
  2795. this.chapterlist[k].src = this.chapterlist[k].url;
  2796. }
  2797. }
  2798. this.$nextTick(function () {
  2799. setTimeout(() => {
  2800. var a =
  2801. document.getElementsByClassName("box_course")[0]
  2802. .offsetHeight;
  2803. document.getElementsByClassName("vedioList")[0].style.height =
  2804. a + "px";
  2805. }, 500);
  2806. });
  2807. }
  2808. for (var l = 0; l < this.chapInfoList.length; l++) {
  2809. var w = this.chapInfoList[l].chapterInfo[0].taskJson;
  2810. for (var m = 0; m < w.length; m++) {
  2811. w[m].id = l + "-" + m;
  2812. }
  2813. }
  2814. let unitJson = this.chapInfoList;
  2815. let works = res.data[1];
  2816. console.log(unitJson);
  2817. for (var i = 0; i < unitJson.length; i++) {
  2818. let task = unitJson[i].chapterInfo[0].taskJson;
  2819. for (var j = 0; j < task.length; j++) {
  2820. var tool = task[j].toolArray;
  2821. for (var z = 0; z < tool.length; z++) {
  2822. let _tool = tool[z];
  2823. _tool.toolPhoto = [];
  2824. _tool.people = [];
  2825. this.checkJson[z] = [];
  2826. let checkPeople = 0;
  2827. for (var k = 0; k < works.length; k++) {
  2828. let _work = works[k];
  2829. if (
  2830. _work.stage == i &&
  2831. _work.task == j &&
  2832. _work.tool == z &&
  2833. _work.atool == _tool.tool
  2834. ) {
  2835. if (_tool.tool == 1) {
  2836. _work.workContent = `${_work.username}使用电子白板提交了:`;
  2837. } else if (_tool.tool == 3) {
  2838. _work.workContent = `${_work.username}使用思维导图提交了:`;
  2839. } else if (_tool.tool == 6) {
  2840. _work.workContent = `${_work.username}使用协同文档提交了:`;
  2841. } else if (_tool.tool == 15) {
  2842. _work.workContent = `${_work.username}使用问答提交了:`;
  2843. } else if (_tool.tool == 53) {
  2844. _work.workContent = `${_work.username}使用文件上传提交了:`;
  2845. } else if (_tool.tool == 54) {
  2846. _work.workContent = `${_work.username}使用拍照提交了:`;
  2847. } else if (_tool.tool == 55) {
  2848. _work.workContent = `${_work.username}使用文件提交了:`;
  2849. } else if (_tool.tool == 56) {
  2850. _work.workContent = `${_work.username}使用投票提交了:`;
  2851. checkPeople++;
  2852. var checkL = JSON.parse(_work.content);
  2853. for (var kz = 0; kz < checkL.length; kz++) {
  2854. if (!this.checkJson[z][kz]) {
  2855. this.checkJson[z].push({
  2856. checkCount: [],
  2857. checkPerson: [],
  2858. rightPerson: [],
  2859. });
  2860. }
  2861. if (!this.checkJson[z][kz].checkCount.length) {
  2862. this.checkJson[z][kz].checkCount = [];
  2863. let _askItemCount =
  2864. _tool.askJson.askJson[kz].askItem;
  2865. for (var aic = 0; aic < _askItemCount; aic++) {
  2866. this.checkJson[z][kz].checkCount.push(0);
  2867. }
  2868. }
  2869. this.checkJson[z][kz].checkPerson[
  2870. parseInt(checkL[kz])
  2871. ]
  2872. ? this.checkJson[z][kz].checkPerson[
  2873. parseInt(checkL[kz])
  2874. ].push(_work.username)
  2875. : (this.checkJson[z][kz].checkPerson[
  2876. parseInt(checkL[kz])
  2877. ] = [_work.username]);
  2878. this.checkJson[z][kz].checkCount[parseInt(checkL[kz])]
  2879. ? this.checkJson[z][kz].checkCount[
  2880. parseInt(checkL[kz])
  2881. ]++
  2882. : (this.checkJson[z][kz].checkCount[
  2883. parseInt(checkL[kz])
  2884. ] = 1);
  2885. }
  2886. }
  2887. if (_tool.tool == 48 || _tool.tool == 52) {
  2888. _tool.toolPhoto[0] = _work;
  2889. if (_tool.people.indexOf(_work.username) == -1) {
  2890. _tool.people.push(_work.username);
  2891. }
  2892. } else {
  2893. _tool.toolPhoto.push(_work);
  2894. }
  2895. }
  2896. }
  2897. if (_tool.tool == 48) {
  2898. _tool.toolPhoto.length &&
  2899. (_tool.toolPhoto[0].workContent = `${_tool.people.join(
  2900. ","
  2901. )}使用表格提交了:`);
  2902. } else if (_tool.tool == 52) {
  2903. _tool.toolPhoto.length &&
  2904. (_tool.toolPhoto[0].workContent = `${_tool.people.join(
  2905. ","
  2906. )}使用文档提交了:`);
  2907. }
  2908. for (var kz = 0; kz < this.checkJson[z].length; kz++) {
  2909. this.checkJson[z][kz].checkPerent = [];
  2910. let aaaa = this.checkJson[z][kz];
  2911. console.log(aaaa);
  2912. for (
  2913. var kc = 0;
  2914. kc < this.checkJson[z][kz].checkCount.length;
  2915. kc++
  2916. ) {
  2917. this.checkJson[z][kz].checkPerent.push(
  2918. Math.round(
  2919. (this.checkJson[z][kz].checkCount[kc] / checkPeople) *
  2920. 100
  2921. )
  2922. );
  2923. }
  2924. }
  2925. if (_tool.tool == 51) {
  2926. let ic = 0;
  2927. for (let ci = 0; ci < _tool.toolData.length; ci++) {
  2928. if (_tool.toolData[ci].type != 12) {
  2929. ic = ci;
  2930. break;
  2931. }
  2932. }
  2933. _tool.sourceIndex = ic;
  2934. }
  2935. }
  2936. }
  2937. }
  2938. this.setVHeight();
  2939. this.getTeacher();
  2940. } else {
  2941. this.courseDetail = res.data[0][0];
  2942. // this.chapInfoList = JSON.parse(this.courseDetail.chapters);
  2943. let unitJson = this.chapInfoList;
  2944. let works = res.data[1];
  2945. for (var i = 0; i < unitJson.length; i++) {
  2946. let task = unitJson[i].chapterInfo[0].taskJson;
  2947. for (var j = 0; j < task.length; j++) {
  2948. var tool = task[j].toolArray;
  2949. for (var z = 0; z < tool.length; z++) {
  2950. let _tool = tool[z];
  2951. _tool.toolPhoto = [];
  2952. _tool.people = [];
  2953. this.checkJson[z] = [];
  2954. let checkPeople = 0;
  2955. for (var k = 0; k < works.length; k++) {
  2956. let _work = works[k];
  2957. if (
  2958. _work.stage == i &&
  2959. _work.task == j &&
  2960. _work.tool == z &&
  2961. _work.atool == _tool.tool
  2962. ) {
  2963. // “${_work.name ? _work.name : this.setTime(_work.create_at)}”
  2964. if (_tool.tool == 1) {
  2965. _work.workContent = `${_work.username}使用电子白板提交了:`;
  2966. } else if (_tool.tool == 3) {
  2967. _work.workContent = `${_work.username}使用思维导图提交了:`;
  2968. } else if (_tool.tool == 6) {
  2969. _work.workContent = `${_work.username}使用协同文档提交了:`;
  2970. } else if (_tool.tool == 15) {
  2971. _work.workContent = `${_work.username}使用问答提交了:`;
  2972. } else if (_tool.tool == 53) {
  2973. _work.workContent = `${_work.username}使用文件上传提交了:`;
  2974. } else if (_tool.tool == 54) {
  2975. _work.workContent = `${_work.username}使用拍照提交了:`;
  2976. } else if (_tool.tool == 55) {
  2977. _work.workContent = `${_work.username}使用文件提交了:`;
  2978. } else if (_tool.tool == 56) {
  2979. console.log(_tool);
  2980. _work.workContent = `${_work.username}使用投票提交了:`;
  2981. checkPeople++;
  2982. var checkL = JSON.parse(_work.content);
  2983. for (var kz = 0; kz < checkL.length; kz++) {
  2984. if (!this.checkJson[z][kz]) {
  2985. this.checkJson[z].push({
  2986. checkCount: [],
  2987. checkPerson: [],
  2988. rightPerson: [],
  2989. });
  2990. }
  2991. if (!this.checkJson[z][kz].checkCount.length) {
  2992. this.checkJson[z][kz].checkCount = [];
  2993. let _askItemCount =
  2994. _tool.askJson.askJson[kz].askItem;
  2995. for (var aic = 0; aic < _askItemCount; aic++) {
  2996. this.checkJson[z][kz].checkCount.push(0);
  2997. }
  2998. }
  2999. this.checkJson[z][kz].checkPerson[
  3000. parseInt(checkL[kz])
  3001. ]
  3002. ? this.checkJson[z][kz].checkPerson[
  3003. parseInt(checkL[kz])
  3004. ].push(_work.username)
  3005. : (this.checkJson[z][kz].checkPerson[
  3006. parseInt(checkL[kz])
  3007. ] = [_work.username]);
  3008. console.log(_work.username);
  3009. this.checkJson[z][kz].checkCount[parseInt(checkL[kz])]
  3010. ? this.checkJson[z][kz].checkCount[
  3011. parseInt(checkL[kz])
  3012. ]++
  3013. : (this.checkJson[z][kz].checkCount[
  3014. parseInt(checkL[kz])
  3015. ] = 1);
  3016. }
  3017. }
  3018. if (_tool.tool == 48 || _tool.tool == 52) {
  3019. _tool.toolPhoto[0] = _work;
  3020. if (_tool.people.indexOf(_work.username) == -1) {
  3021. _tool.people.push(_work.username);
  3022. }
  3023. } else {
  3024. _tool.toolPhoto.push(_work);
  3025. }
  3026. }
  3027. }
  3028. // “${_tool.toolPhoto[0].name ? _tool.toolPhoto[0].name : this.setTime(_tool.toolPhoto[0].create_at)}”
  3029. if (_tool.tool == 48) {
  3030. _tool.toolPhoto.length &&
  3031. (_tool.toolPhoto[0].workContent = `${_tool.people.join(
  3032. ","
  3033. )}使用表格提交了:`);
  3034. } else if (_tool.tool == 52) {
  3035. _tool.toolPhoto.length &&
  3036. (_tool.toolPhoto[0].workContent = `${_tool.people.join(
  3037. ","
  3038. )}使用文档提交了:`);
  3039. }
  3040. for (var kz = 0; kz < this.checkJson[z].length; kz++) {
  3041. this.checkJson[z][kz].checkPerent = [];
  3042. let aaaa = this.checkJson[z][kz];
  3043. console.log(aaaa);
  3044. for (
  3045. var kc = 0;
  3046. kc < this.checkJson[z][kz].checkCount.length;
  3047. kc++
  3048. ) {
  3049. this.checkJson[z][kz].checkPerent.push(
  3050. Math.round(
  3051. (this.checkJson[z][kz].checkCount[kc] / checkPeople) *
  3052. 100
  3053. )
  3054. );
  3055. }
  3056. }
  3057. }
  3058. }
  3059. }
  3060. }
  3061. this.selectSLook();
  3062. let _this = this;
  3063. if (_this.timer) {
  3064. clearInterval(_this.timer);
  3065. _this.timer = null;
  3066. }
  3067. if (_this.tType == 4 || _this.ispzType == 4) {
  3068. _this.selectPz();
  3069. }
  3070. _this.timer = setInterval(function () {
  3071. _this.getCourseDetail(2);
  3072. // if (_this.tType == 4) {
  3073. // _this.selectPz();
  3074. // }
  3075. }, 60000);
  3076. })
  3077. .catch((err) => {
  3078. loading.close();
  3079. console.error(err);
  3080. });
  3081. },
  3082. updateSLook() {
  3083. let params = {
  3084. sopen: this.sIsOpen == false ? 1 : 2,
  3085. cid: this.id,
  3086. };
  3087. this.ajax
  3088. .get(this.$store.state.api + "updateCourseSLook", params)
  3089. .then((res) => {
  3090. if (this.sIsOpen == true) {
  3091. this.$message({
  3092. message: "权限设置成功",
  3093. type: "success",
  3094. });
  3095. } else {
  3096. this.$message({
  3097. message: "权限关闭成功",
  3098. type: "success",
  3099. });
  3100. }
  3101. })
  3102. .catch((err) => {
  3103. console.error(err);
  3104. });
  3105. },
  3106. updateLookOpen() {
  3107. let params = [
  3108. {
  3109. sopen: this.IsLookOpen == false ? 1 : 2,
  3110. cid: this.id,
  3111. },
  3112. ];
  3113. this.ajax
  3114. .post(this.$store.state.api + "updateCourseLookOpen", params)
  3115. .then((res) => {
  3116. if (this.IsLookOpen == true) {
  3117. // if (this.courseType != 0 && this.taskCount != 0) {
  3118. // this.openTask(0, 0, "0-0");
  3119. // }
  3120. this.$message({
  3121. message: "权限设置成功",
  3122. type: "success",
  3123. });
  3124. } else {
  3125. this.$message({
  3126. message: "权限关闭成功",
  3127. type: "success",
  3128. });
  3129. }
  3130. this.getCourseState(2);
  3131. })
  3132. .catch((err) => {
  3133. console.error(err);
  3134. });
  3135. },
  3136. selectSLook() {
  3137. this.sIsOpen = true;
  3138. this.IsLookOpen = false;
  3139. if (!this.IsLookOpen) {
  3140. this.setNavList();
  3141. } else {
  3142. this.getCourseState(1);
  3143. }
  3144. },
  3145. setNavList() {
  3146. if (this.navList.length == 0) {
  3147. this.navList = [];
  3148. var copyList = [];
  3149. for (var l = 0; l < this.chapInfoList.length; l++) {
  3150. var q = this.chapInfoList[l].dyName;
  3151. var w = this.chapInfoList[l].chapterInfo[0].taskJson;
  3152. var e;
  3153. copyList.push({
  3154. dyName: q,
  3155. isOpen: l === 0 ? true : false,
  3156. task: [],
  3157. });
  3158. for (var r = 0; r < w.length; r++) {
  3159. e = w[r].task;
  3160. if (this.chapInfoList[l].easy == 1) {
  3161. copyList[l].task.push({
  3162. taskName: q,
  3163. id: l + "-" + r,
  3164. isLook: w[r].isLook,
  3165. isOpen: r === 0 ? true : false,
  3166. tool: [],
  3167. });
  3168. } else {
  3169. copyList[l].task.push({
  3170. taskName: e,
  3171. id: l + "-" + r,
  3172. isLook: w[r].isLook,
  3173. isOpen: r === 0 ? true : false,
  3174. tool: [],
  3175. });
  3176. }
  3177. var t = w[r].toolArray;
  3178. for (var k = 0; k < t.length; k++) {
  3179. var tool = t[k].tool;
  3180. copyList[l].task[r].tool.push({
  3181. tool: tool,
  3182. isTool: false,
  3183. });
  3184. }
  3185. // this.navId = this.navId ? this.navId : l + "-" + r;
  3186. // this.navId = l + "-" + r;
  3187. }
  3188. }
  3189. this.navList = copyList;
  3190. this.navList[0].isOpen = false;
  3191. this.navList[this.courseType].isOpen = true;
  3192. this.navId = this.navList[this.courseType].task[this.taskCount].id;
  3193. } else {
  3194. this.setNavList2();
  3195. }
  3196. },
  3197. setNavList2() {
  3198. for (var l = 0; l < this.chapInfoList.length; l++) {
  3199. var w = this.chapInfoList[l].chapterInfo[0].taskJson;
  3200. for (var r = 0; r < w.length; r++) {
  3201. this.navList[l].task[r].isLook = w[r].isLook;
  3202. }
  3203. }
  3204. if (
  3205. this.IsLookOpen &&
  3206. !this.navList[this.courseType].task[this.taskCount].isLook
  3207. ) {
  3208. this.openTask(0, 0, "0-0");
  3209. }
  3210. this.$forceUpdate();
  3211. },
  3212. getCourseState(type) {
  3213. let params = {
  3214. cid: this.id,
  3215. };
  3216. this.ajax
  3217. .get(this.$store.state.api + "getCourseState", params)
  3218. .then((res) => {
  3219. if (res.data[0].length > 0 && this.IsLookOpen && type == 1) {
  3220. this.chapInfoList = JSON.parse(res.data[0][0].state);
  3221. this.setNavList();
  3222. this.$forceUpdate();
  3223. } else if (res.data[0].length > 0 && this.IsLookOpen && type == 2) {
  3224. this.addCourseState(2);
  3225. } else {
  3226. this.addCourseState(1);
  3227. }
  3228. })
  3229. .catch((err) => {
  3230. console.error(err);
  3231. });
  3232. },
  3233. getTeacher() {
  3234. this.ManAarray = [];
  3235. if (this.checkboxList3.indexOf(this.courseUserid) == -1) {
  3236. this.checkboxList3.push(this.courseUserid);
  3237. }
  3238. let params = {
  3239. uid: this.checkboxList3.join(","),
  3240. };
  3241. this.ajax
  3242. .get(this.$store.state.api + "getAllUserById", params)
  3243. .then((res) => {
  3244. let teacherJuri = res.data[0];
  3245. this.ManAarray = teacherJuri;
  3246. })
  3247. .catch((err) => {
  3248. console.error(err);
  3249. });
  3250. },
  3251. addTools(t, i, index) {
  3252. var a = 0;
  3253. // this.taskCount = index;
  3254. this.toolindex = i;
  3255. if (t == 1) {
  3256. window.topU.postMessage(
  3257. {
  3258. tools: "1s",
  3259. cid: this.id,
  3260. stage: this.courseType,
  3261. task: this.taskCount,
  3262. tool: i,
  3263. },
  3264. "*"
  3265. );
  3266. } else if (t == 2) {
  3267. if (this.wordCount > 0) {
  3268. this.updateCount(this.wordCount, t);
  3269. } else {
  3270. this.wordCount++;
  3271. a = this.wordCount;
  3272. this.toolsCount(a, t);
  3273. }
  3274. window.topU.postMessage({ tools: "2" }, "*");
  3275. } else if (t == 3) {
  3276. window.topU.postMessage(
  3277. {
  3278. tools: "3s",
  3279. cid: this.id,
  3280. stage: this.courseType,
  3281. task: this.taskCount,
  3282. tool: i,
  3283. },
  3284. "*"
  3285. );
  3286. } else if (t == 4) {
  3287. this.radio = [];
  3288. this.noteName = "";
  3289. this.isAnswer = false;
  3290. if (this.askCount > 0) {
  3291. this.updateCount(this.askCount, t);
  3292. } else {
  3293. this.askCount++;
  3294. a = this.askCount;
  3295. this.toolsCount(a, t);
  3296. }
  3297. if (!this.dialogVisible2) {
  3298. this.askJson.askJson =
  3299. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3300. index
  3301. ].toolChoose[i].askJson;
  3302. this.askJson.askTitle =
  3303. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3304. index
  3305. ].toolChoose[i].askTitle;
  3306. this.askJson.askCount =
  3307. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3308. index
  3309. ].toolChoose[i].askCount;
  3310. } else {
  3311. this.askJson.askJson = this.chapTools.askJson.askJson;
  3312. this.askJson.askTitle = this.chapTools.askJson.askTitle;
  3313. this.askJson.askCount = this.chapTools.askJson.askCount;
  3314. }
  3315. this.dialogVisible5 = true;
  3316. // window.topU.postMessage({ tools: "4" }, "*");
  3317. } else if (t == 45) {
  3318. this.noteName = "";
  3319. this.radio = [];
  3320. this.isAnswer = false;
  3321. if (this.askCount > 0) {
  3322. this.updateCount(this.askCount, t);
  3323. } else {
  3324. this.askCount++;
  3325. a = this.askCount;
  3326. this.toolsCount(a, t);
  3327. }
  3328. this.testJson =
  3329. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3330. index
  3331. ].toolChoose[i].testJson;
  3332. for (var k = 0; k < this.testJson.testJson.length; k++) {
  3333. if (this.testJson.testJson[k].type == "2") {
  3334. this.radio.push([]);
  3335. } else {
  3336. this.radio.push("");
  3337. }
  3338. }
  3339. this.dialogVisibleChoice = true;
  3340. // window.topU.postMessage({ tools: "4" }, "*");
  3341. } else if (t == 5) {
  3342. if (this.scoreCount > 0) {
  3343. this.updateCount(this.scoreCount, t);
  3344. } else {
  3345. this.scoreCount++;
  3346. a = this.scoreCount;
  3347. this.toolsCount(a, t);
  3348. }
  3349. this.dialogVisible4 = true;
  3350. // window.topU.postMessage({ tools: "5" }, "*");
  3351. } else if (t == 6) {
  3352. window.topU.postMessage(
  3353. {
  3354. tools: "6s",
  3355. cid: this.id,
  3356. stage: this.courseType,
  3357. task: this.taskCount,
  3358. tool: i,
  3359. },
  3360. "*"
  3361. );
  3362. } else if (t == 7) {
  3363. if (this.mindNetWorkCount > 0) {
  3364. this.updateCount(this.mindNetWorkCount, t);
  3365. } else {
  3366. this.mindNetWorkCount++;
  3367. a = this.mindNetWorkCount;
  3368. this.toolsCount(a, t);
  3369. }
  3370. window.topU.postMessage(
  3371. {
  3372. tools: "7",
  3373. cid: this.id,
  3374. stage: this.courseType,
  3375. task: this.taskCount,
  3376. tool: i,
  3377. },
  3378. "*"
  3379. );
  3380. } else if (t == 16) {
  3381. if (this.workCount > 0) {
  3382. this.updateCount(this.workCount, t);
  3383. } else {
  3384. this.workCount++;
  3385. a = this.workCount;
  3386. this.toolsCount(a, t);
  3387. }
  3388. this.dialogVisible = true;
  3389. } else if (t == 8) {
  3390. if (this.libraryCount > 0) {
  3391. this.updateCount(this.libraryCount, t);
  3392. } else {
  3393. this.libraryCount++;
  3394. a = this.libraryCount;
  3395. this.toolsCount(a, t);
  3396. }
  3397. window.topU.postMessage({ tools: "8" }, "*");
  3398. } else if (t == 17) {
  3399. if (this.libraryCount > 0) {
  3400. this.updateCount(this.libraryCount, t);
  3401. } else {
  3402. this.libraryCount++;
  3403. a = this.libraryCount;
  3404. this.toolsCount(a, t);
  3405. }
  3406. window.topU.postMessage({ tools: "17" }, "*");
  3407. } else if (t == 18) {
  3408. if (this.trainCount > 0) {
  3409. this.updateCount(this.trainCount, t);
  3410. } else {
  3411. this.trainCount++;
  3412. a = this.trainCount;
  3413. this.toolsCount(a, t);
  3414. }
  3415. window.topU.postMessage({ tools: "18" }, "*");
  3416. } else if (t == 10) {
  3417. if (this.timeCount > 0) {
  3418. this.updateCount(this.timeCount, t);
  3419. } else {
  3420. this.timeCount++;
  3421. a = this.timeCount;
  3422. this.toolsCount(a, t);
  3423. }
  3424. this.timeDialogVisible = true;
  3425. } else if (t == 15) {
  3426. this.answerQ = "";
  3427. this.questionAnswer = "";
  3428. if (this.answerCount > 0) {
  3429. this.updateCount(this.answerCount, t);
  3430. } else {
  3431. this.answerCount++;
  3432. a = this.answerCount;
  3433. this.toolsCount(a, t);
  3434. }
  3435. this.answerQ = this.chapInfoList[this.courseType].chapterInfo[0]
  3436. .taskJson[index].toolChoose[i].answerQ
  3437. ? this.chapInfoList[this.courseType].chapterInfo[0].taskJson[index]
  3438. .toolChoose[i].answerQ
  3439. : "";
  3440. this.answerDialogVisible = true;
  3441. } else if (t == 21) {
  3442. window.topU.postMessage({ tools: "21" }, "*");
  3443. } else if (t == 22) {
  3444. window.topU.postMessage({ tools: "22" }, "*");
  3445. } else if (t == 23) {
  3446. window.topU.postMessage({ tools: "23" }, "*");
  3447. } else if (t == 24) {
  3448. window.topU.postMessage({ tools: "24" }, "*");
  3449. } else if (t == 25) {
  3450. window.topU.postMessage({ tools: "25" }, "*");
  3451. } else if (t == 31) {
  3452. window.topU.postMessage({ tools: "31" }, "*");
  3453. } else if (t == 28) {
  3454. window.topU.postMessage({ tools: "28" }, "*");
  3455. } else if (t == 37) {
  3456. window.topU.postMessage({ tools: "37" }, "*");
  3457. } else if (t == 38) {
  3458. window.topU.postMessage({ tools: "38" }, "*");
  3459. } else if (t == 39) {
  3460. window.topU.postMessage({ tools: "39" }, "*");
  3461. } else if (t == 32) {
  3462. window.topU.postMessage({ tools: "32" }, "*");
  3463. } else if (t == 26) {
  3464. window.topU.postMessage(
  3465. {
  3466. tools: "26",
  3467. cid: this.id,
  3468. stage: this.courseType,
  3469. task: this.taskCount,
  3470. tool: i,
  3471. },
  3472. "*"
  3473. );
  3474. } else if (t == 40) {
  3475. if (this.evalCount > 0) {
  3476. this.updateCount(this.evalCount, t);
  3477. } else {
  3478. this.evalCount++;
  3479. a = this.evalCount;
  3480. this.toolsCount(a, t);
  3481. }
  3482. this.eScore = { eBzText: "", eStar: [] };
  3483. if (this.worksStudent[i].length) {
  3484. for (var k = 0; k < this.worksStudent[i].length; k++) {
  3485. if (this.userid == this.worksStudent[i][k].userid) {
  3486. this.eScore = JSON.parse(this.worksStudent[i][k].works);
  3487. this.rateJson =
  3488. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3489. index
  3490. ].toolChoose[i].rateJson;
  3491. break;
  3492. } else {
  3493. this.rateJson =
  3494. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3495. index
  3496. ].toolChoose[i].rateJson;
  3497. }
  3498. }
  3499. } else {
  3500. this.rateJson =
  3501. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3502. index
  3503. ].toolChoose[i].rateJson;
  3504. }
  3505. this.isStar = false;
  3506. this.studentEvalDialogVisible = true;
  3507. } else if (t == 41) {
  3508. this.selectJson = this.chapInfoList[this.courseType].chapterInfo[0]
  3509. .taskJson[index].toolChoose[i].selectJson
  3510. ? JSON.parse(
  3511. JSON.stringify(
  3512. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3513. index
  3514. ].toolChoose[i].selectJson
  3515. )
  3516. )
  3517. : { url: "", select: [], answer: [] };
  3518. if (this.worksStudent[i].length) {
  3519. for (var k = 0; k < this.worksStudent[i].length; k++) {
  3520. if (this.userid == this.worksStudent[i][k].userid) {
  3521. var a = this.worksStudent[i][k].works.split(",");
  3522. for (var ki = 0; ki < a.length; ki++) {
  3523. a[ki] = parseInt(a[ki]);
  3524. }
  3525. this.selectAnswer = {
  3526. answer: a,
  3527. stu: this.worksStudent[i][k].sName,
  3528. };
  3529. break;
  3530. } else {
  3531. this.selectAnswer = { answer: [], stu: "" };
  3532. }
  3533. }
  3534. } else {
  3535. this.selectAnswer = { answer: [], stu: "" };
  3536. }
  3537. this.isSelect = false;
  3538. this.dialogVisibleSelect = true;
  3539. } else if (t == 44) {
  3540. window.topU.postMessage({ tools: "44" }, "*");
  3541. }
  3542. },
  3543. addCourseState(type) {
  3544. let _state = this.chapInfoList;
  3545. // this.courseType this.taskCount
  3546. if (type == 1 || type == 2) {
  3547. for (var i = 0; i < _state.length; i++) {
  3548. let el = _state[i].chapterInfo[0].taskJson;
  3549. for (var j = 0; j < el.length; j++) {
  3550. // if (i == 0 && j == 0) {
  3551. // el[j].isLook = true;
  3552. // } else {
  3553. // el[j].isLook = false;
  3554. // }
  3555. if (
  3556. this.courseType > i ||
  3557. (this.courseType == i && this.taskCount + 1 > j)
  3558. ) {
  3559. el[j].isLook = true;
  3560. } else {
  3561. el[j].isLook = false;
  3562. }
  3563. }
  3564. }
  3565. }
  3566. let params = [
  3567. {
  3568. cid: this.id,
  3569. state: JSON.stringify(_state),
  3570. },
  3571. ];
  3572. this.ajax
  3573. .post(
  3574. this.$store.state.api +
  3575. (type == 1 ? "addCourseState" : "updateCourseSate"),
  3576. params
  3577. )
  3578. .then((res) => {
  3579. if (this.IsLookOpen) {
  3580. this.setNavList();
  3581. }
  3582. if (type == 3 && type == 2) {
  3583. this.getCourseState(1);
  3584. }
  3585. })
  3586. .catch((err) => {
  3587. console.error(err);
  3588. });
  3589. },
  3590. selectCount() {
  3591. let params = {
  3592. cid: this.id,
  3593. chid: this.courseType,
  3594. uid: this.userid,
  3595. };
  3596. this.ajax
  3597. .get(this.$store.state.api + "selectToolsCount", params)
  3598. .then((res) => {
  3599. for (var i = 0; i < res.data[0].length; i++) {
  3600. if (res.data[0][i].tools == 1) {
  3601. this.wbCount = res.data[0][i].count;
  3602. } else if (res.data[0][i].tools == 2) {
  3603. this.wordCount = res.data[0][i].count;
  3604. } else if (res.data[0][i].tools == 3) {
  3605. this.mindCount = res.data[0][i].count;
  3606. } else if (res.data[0][i].tools == 4) {
  3607. this.askCount = res.data[0][i].count;
  3608. } else if (res.data[0][i].tools == 6) {
  3609. this.noteCount = res.data[0][i].count;
  3610. } else if (res.data[0][i].tools == 7) {
  3611. this.mindNetWorkCount = res.data[0][i].count;
  3612. } else if (res.data[0][i].tools == 8) {
  3613. this.libraryCount = res.data[0][i].count;
  3614. } else if (res.data[0][i].tools == 16) {
  3615. this.workCount = res.data[0][i].count;
  3616. } else if (res.data[0][i].tools == 10) {
  3617. this.timeCount = res.data[0][i].count;
  3618. } else if (res.data[0][i].tools == 15) {
  3619. this.answerCount = res.data[0][i].count;
  3620. } else if (res.data[0][i].tools == 18) {
  3621. this.trainCount = res.data[0][i].count;
  3622. }
  3623. }
  3624. })
  3625. .catch((err) => {
  3626. console.error(err);
  3627. });
  3628. },
  3629. toolsCount(a, t) {
  3630. let params = {
  3631. cid: this.id,
  3632. chid: this.courseType,
  3633. uid: this.userid,
  3634. tid: t,
  3635. count: a,
  3636. };
  3637. this.ajax
  3638. .get(this.$store.state.api + "insertToolsCount", params)
  3639. .then((res) => {
  3640. this.selectCount();
  3641. })
  3642. .catch((err) => {
  3643. console.error(err);
  3644. });
  3645. },
  3646. updateCount(c, t) {
  3647. c++;
  3648. let params = {
  3649. cid: this.id,
  3650. chid: this.courseType,
  3651. uid: this.userid,
  3652. tid: t,
  3653. count: c,
  3654. };
  3655. this.ajax
  3656. .get(this.$store.state.api + "updateToolsCount", params)
  3657. .then((res) => {
  3658. this.selectCount();
  3659. })
  3660. .catch((err) => {
  3661. console.error(err);
  3662. });
  3663. },
  3664. checkFileFull(type, url) {
  3665. this.fullDialogVisible = true;
  3666. this.fulltype = type;
  3667. this.fullUrl = url;
  3668. },
  3669. jumpGj(i, j, k, l) {
  3670. for (var z = 0; z < this.navList.length; z++) {
  3671. for (var q = 0; q < this.navList[z].task.length; q++) {
  3672. for (var w = 0; w < this.navList[z].task[q].tool.length; w++) {
  3673. this.navList[z].task[q].tool[w].isTool = false;
  3674. }
  3675. }
  3676. }
  3677. this.navList[i].task[j].tool[k].isTool =
  3678. !this.navList[i].task[j].tool[k].isTool;
  3679. var a = document.scrollingElement;
  3680. this.navId = "";
  3681. let target = document.querySelector(`#gj${k}`);
  3682. if (target) {
  3683. target.scrollIntoView(true);
  3684. setTimeout(() => {
  3685. a.scrollTop = a.scrollTop - 150;
  3686. }, 0);
  3687. }
  3688. if (l) {
  3689. this.courseType = i;
  3690. // this.navId = l;
  3691. this.taskCount = j;
  3692. this.selectPz();
  3693. this.getCourseDetail(2);
  3694. }
  3695. // var b = this.$refs["bz" + k][0];
  3696. // a.scrollTop = b.offsetTop;
  3697. },
  3698. openLine(url) {
  3699. window.open(url);
  3700. },
  3701. openFile(f) {
  3702. this.pptImgUrl = "";
  3703. var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
  3704. if (
  3705. a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
  3706. -1
  3707. ) {
  3708. this.pptImgUrl =
  3709. "https://view.officeapps.live.com/op/view.aspx?src=" +
  3710. encodeURIComponent(f);
  3711. this.showPDF = false;
  3712. this.dialogVisible3 = true;
  3713. } else if (
  3714. f.split(".")[f.split(".").length - 1].toLocaleUpperCase() == "PDF"
  3715. ) {
  3716. this.pptImgUrl = f;
  3717. this.showPDF = true;
  3718. this.dialogVisible3 = true;
  3719. }
  3720. },
  3721. downloadFile(url, toolIndex) {
  3722. var credentials = {
  3723. accessKeyId: "AKIATLPEDU37QV5CHLMH",
  3724. secretAccessKey: "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",
  3725. }; //秘钥形式的登录上传
  3726. window.AWS.config.update(credentials);
  3727. window.AWS.config.region = "cn-northwest-1"; //设置区域
  3728. let url2 = url;
  3729. let _url2 = "";
  3730. if (
  3731. url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
  3732. ) {
  3733. _url2 = url2.split(
  3734. "https://view.officeapps.live.com/op/view.aspx?src="
  3735. )[1];
  3736. } else {
  3737. _url2 = url2;
  3738. }
  3739. let _this = this;
  3740. _this.downLoading = "down" + toolIndex;
  3741. var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
  3742. let name = decodeURIComponent(
  3743. decodeURIComponent(_url2).split(
  3744. "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/"
  3745. )[1]
  3746. );
  3747. var params = {
  3748. Bucket: "ccrb",
  3749. Key: name,
  3750. };
  3751. s3.getObject(params, function (err, data) {
  3752. _this.downLoading = "";
  3753. if (err) console.log(err, err.stack); // an error occurred
  3754. else {
  3755. let url = window.URL.createObjectURL(new Blob([data.Body]));
  3756. let a = document.createElement("a");
  3757. a.name = name;
  3758. a.href = url;
  3759. a.download = name;
  3760. a.click();
  3761. console.log(data);
  3762. } // sxuccessful response
  3763. });
  3764. // let _this = this;
  3765. // let _url = "";
  3766. // if (
  3767. // url.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
  3768. // ) {
  3769. // _url = url.split(
  3770. // "https://view.officeapps.live.com/op/view.aspx?src="
  3771. // )[1];
  3772. // } else {
  3773. // _url = url;
  3774. // }
  3775. // const x = new XMLHttpRequest();
  3776. // x.open("GET", _url, true);
  3777. // x.responseType = "blob";
  3778. // const loading = _this.$loading.service({
  3779. // background: "rgba(255, 255, 255, 0.7)",
  3780. // target: document.body,
  3781. // text: '文件加载中...'
  3782. // });
  3783. // // _this.$message.success("文件下载中...");
  3784. // x.onload = function (e) {
  3785. // loading.close();
  3786. // // const url = window.URL.createObjectURL(x.response);
  3787. // // const a = document.createElement("a");
  3788. // // a.href = url;
  3789. // // a.target = "_blank";
  3790. // // a.download = url;
  3791. // // a.click();
  3792. // // a.remove();
  3793. // let content = x.response;
  3794. // let elink = document.createElement("a");
  3795. // elink.download = decodeURI(
  3796. // _url.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
  3797. // );
  3798. // elink.style.display = "none";
  3799. // let blob = new Blob([content]);
  3800. // elink.href = URL.createObjectURL(blob);
  3801. // document.body.appendChild(elink);
  3802. // elink.click();
  3803. // document.body.removeChild(elink);
  3804. // };
  3805. // x.send();
  3806. },
  3807. openText(f) {
  3808. this.tableJson.text = JSON.parse(f);
  3809. this.dialogVisibleText2 = true;
  3810. },
  3811. openAsk(f, taskCount, i) {
  3812. this.askJson = JSON.parse(
  3813. JSON.stringify(
  3814. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[taskCount]
  3815. .toolArray[i].askJson
  3816. )
  3817. );
  3818. this.radio = JSON.parse(f);
  3819. this.dialogVisible5 = true;
  3820. },
  3821. setChapterIndex2(tool, index, toolIndex) {
  3822. if (tool.toolData[index].type == 12) {
  3823. this.downloadFile2(tool.toolData[index], toolIndex);
  3824. return;
  3825. }
  3826. tool.sourceIndex = index;
  3827. this.$nextTick(function () {
  3828. setTimeout(() => {
  3829. var a = document.getElementsByClassName("box_course" + toolIndex)[0]
  3830. .offsetHeight;
  3831. document.getElementsByClassName(
  3832. "vedioList" + toolIndex
  3833. )[0].style.height = a + "px";
  3834. }, 0);
  3835. });
  3836. this.$forceUpdate();
  3837. },
  3838. downloadFile2(f, toolIndex) {
  3839. var credentials = {
  3840. accessKeyId: "AKIATLPEDU37QV5CHLMH",
  3841. secretAccessKey: "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",
  3842. }; //秘钥形式的登录上传
  3843. window.AWS.config.update(credentials);
  3844. window.AWS.config.region = "cn-northwest-1"; //设置区域
  3845. let url2 = f.url;
  3846. let _url2 = "";
  3847. if (
  3848. url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
  3849. ) {
  3850. _url2 = url2.split(
  3851. "https://view.officeapps.live.com/op/view.aspx?src="
  3852. )[1];
  3853. } else {
  3854. _url2 = url2;
  3855. }
  3856. let _this = this;
  3857. _this.downLoading = "down" + toolIndex;
  3858. var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
  3859. let name = decodeURIComponent(
  3860. decodeURIComponent(_url2).split(
  3861. "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/"
  3862. )[1]
  3863. );
  3864. var params = {
  3865. Bucket: "ccrb",
  3866. Key: name,
  3867. };
  3868. s3.getObject(params, function (err, data) {
  3869. _this.downLoading = "";
  3870. if (err) console.log(err, err.stack); // an error occurred
  3871. else {
  3872. let url = window.URL.createObjectURL(new Blob([data.Body]));
  3873. let a = document.createElement("a");
  3874. a.name = f.name;
  3875. a.href = url;
  3876. a.download = f.name;
  3877. a.click();
  3878. console.log(data);
  3879. } // sxuccessful response
  3880. });
  3881. return;
  3882. // const loading = this.$loading.service({
  3883. // background: "rgba(255, 255, 255, 0.7)",
  3884. // target: document.body,
  3885. // text: "文件加载中...",
  3886. // });
  3887. // let url2 = f.url;
  3888. // let _url2 = "";
  3889. // if (
  3890. // url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
  3891. // ) {
  3892. // _url2 = url2.split(
  3893. // "https://view.officeapps.live.com/op/view.aspx?src="
  3894. // )[1];
  3895. // } else {
  3896. // _url2 = url2;
  3897. // }
  3898. // let params = {
  3899. // url: _url2,
  3900. // name: f.name,
  3901. // };
  3902. // this.ajax
  3903. // .get(this.$store.state.api + "download", params)
  3904. // .then((res) => {
  3905. // loading.close();
  3906. // let content = res.data.data.data;
  3907. // let ab = new ArrayBuffer(content.length);
  3908. // let view = new Uint8Array(ab);
  3909. // for (var i = 0; i < content.length; ++i) {
  3910. // view[i] = content[i];
  3911. // }
  3912. // let elink = document.createElement("a");
  3913. // elink.download = f.name;
  3914. // elink.style.display = "none";
  3915. // let blob = new Blob([ab], {
  3916. // type: res.data.response.headers["content-type"] + ";charset=UTF-8",
  3917. // });
  3918. // elink.href = URL.createObjectURL(blob);
  3919. // document.body.appendChild(elink);
  3920. // elink.click();
  3921. // document.body.removeChild(elink);
  3922. // })
  3923. // .catch((err) => {
  3924. // loading.close();
  3925. // console.error(err);
  3926. // });
  3927. },
  3928. setVHeight() {
  3929. this.$nextTick(function () {
  3930. setTimeout(() => {
  3931. let tool =
  3932. this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
  3933. this.taskCount
  3934. ].toolArray;
  3935. for (var z = 0; z < tool.length; z++) {
  3936. let _tool = tool[z];
  3937. if (_tool.tool == 51) {
  3938. let ci = 0;
  3939. for (var li = 0; li < _tool.toolData.length; li++) {
  3940. if (_tool.toolData[li].type != 12) {
  3941. ci++;
  3942. }
  3943. }
  3944. if (ci == 0) {
  3945. _tool.isNoFile = true;
  3946. document.getElementsByClassName(
  3947. "vedioList" + z
  3948. )[0].style.height = 650 + "px";
  3949. document.getElementsByClassName(
  3950. "vedioList" + z
  3951. )[0].style.width = "100%";
  3952. } else {
  3953. _tool.isNoFile = false;
  3954. var a = document.getElementsByClassName("box_course" + z)[0]
  3955. ? document.getElementsByClassName("box_course" + z)[0]
  3956. .offsetHeight
  3957. : 650;
  3958. document.getElementsByClassName(
  3959. "vedioList" + z
  3960. )[0].style.height = a + "px";
  3961. document.getElementsByClassName(
  3962. "vedioList" + z
  3963. )[0].style.width = "calc(100% - 83% - 35px)";
  3964. }
  3965. this.$forceUpdate();
  3966. var a = document.getElementsByClassName("box_course" + z)[0]
  3967. .offsetHeight;
  3968. document.getElementsByClassName("vedioList" + z)[0].style.height =
  3969. a + "px";
  3970. }
  3971. }
  3972. }, 0);
  3973. });
  3974. },
  3975. openVideo(w) {
  3976. this.videoDetail = JSON.parse(JSON.stringify(this.playerOptions));
  3977. this.videoDetail.sources[0].src = w;
  3978. this.videoVisible = true;
  3979. },
  3980. updateRight(psJson, val) {
  3981. if (!psJson[val]) {
  3982. psJson[val] = "0";
  3983. }
  3984. this.$forceUpdate();
  3985. console.log(psJson);
  3986. },
  3987. setContent2(bool) {
  3988. this.mlDialog = bool;
  3989. // if (
  3990. // bool && document.querySelector(".workd_media")
  3991. // ) {
  3992. // document.querySelector(".workd_media").style.height = "650px";
  3993. // } else if (document.querySelector(".workd_media")) {
  3994. // document.querySelector(".workd_media").style.height = "auto";
  3995. // }
  3996. },
  3997. },
  3998. directives: {
  3999. // 使用局部注册指令的方式
  4000. resize: {
  4001. // 指令的名称
  4002. bind(el, binding) {
  4003. // el为绑定的元素,binding为绑定给指令的对象
  4004. let width = "",
  4005. height = "";
  4006. function isReize() {
  4007. const style = document.defaultView.getComputedStyle(el);
  4008. if (width !== style.width || height !== style.height) {
  4009. binding.value(); // 关键
  4010. }
  4011. width = style.width;
  4012. height = style.height;
  4013. }
  4014. el.__vueSetInterval__ = setInterval(isReize, 300);
  4015. },
  4016. unbind(el) {
  4017. clearInterval(el.__vueSetInterval__);
  4018. },
  4019. },
  4020. },
  4021. beforeDestroy() {
  4022. window.onresize = null;
  4023. clearInterval(this.timer);
  4024. this.timer = null;
  4025. },
  4026. computed: {
  4027. contentConvent() {
  4028. return function (c) {
  4029. return c
  4030. ? c
  4031. .replaceAll(/\r\n/g, "<br/>")
  4032. .replaceAll(/\n/g, "<br/>")
  4033. .replaceAll(/\s/g, " &nbsp")
  4034. : "";
  4035. };
  4036. },
  4037. timeB() {
  4038. return function (timeA) {
  4039. var time = new Date(timeA);
  4040. time.setTime(time.getTime());
  4041. var s2 =
  4042. time.getFullYear() +
  4043. "-" +
  4044. (time.getMonth() + 1 < 10
  4045. ? "0" + (time.getMonth() + 1)
  4046. : time.getMonth() + 1) +
  4047. "-" +
  4048. (time.getDate() < 10 ? "0" + time.getDate() : time.getDate());
  4049. return s2;
  4050. };
  4051. },
  4052. setTime() {
  4053. return function (timeA) {
  4054. var time = new Date(timeA);
  4055. time.setTime(time.getTime());
  4056. var s2 =
  4057. time.getFullYear() +
  4058. "." +
  4059. (time.getMonth() + 1 < 10
  4060. ? "0" + (time.getMonth() + 1)
  4061. : time.getMonth() + 1) +
  4062. "." +
  4063. (time.getDate() < 10 ? "0" + time.getDate() : time.getDate());
  4064. return s2;
  4065. };
  4066. },
  4067. getMan() {
  4068. return function (people) {
  4069. let _people = "";
  4070. if (this.ManAarray.length) {
  4071. for (var i = 0; i < this.ManAarray.length; i++) {
  4072. if (this.ManAarray[i].userid == people) {
  4073. _people = this.ManAarray[i].name;
  4074. break;
  4075. }
  4076. }
  4077. }
  4078. return _people ? _people : "";
  4079. };
  4080. },
  4081. getImgList() {
  4082. return function (val) {
  4083. let srcList = []; // 定义一个数组用来接收后面的img地址
  4084. val.replace(
  4085. /<img [^>]*src=['"]([^'"]+)[^>]*>/g,
  4086. function (match, capture) {
  4087. // 查找匹配的元素 match为整个img标签 capture为src中的内容
  4088. srcList.push(capture);
  4089. }
  4090. );
  4091. return srcList;
  4092. };
  4093. },
  4094. },
  4095. mounted() {
  4096. if (this.screenType == 2) {
  4097. window.topU.postMessage({ allScreen: 4 + "s" }, "*");
  4098. } else if (this.screenType == 3) {
  4099. window.topU.postMessage({ allScreen: 5 }, "*");
  4100. } else if (this.screenType == 1) {
  4101. window.topU.postMessage({ allScreen: 6 }, "*");
  4102. }
  4103. if (this.tType == 5) {
  4104. this.psDialog = true;
  4105. this.selectPs();
  4106. }
  4107. this.getCourseDetail();
  4108. if (this.tType == 4) {
  4109. this.pzDialog = true;
  4110. this.selectPz();
  4111. }
  4112. this.selectCount();
  4113. this.setContent2(true);
  4114. },
  4115. };
  4116. </script>
  4117. <style scoped>
  4118. @media screen and (max-width: 1280px) {
  4119. /* .courseIndex > div:first-child(2) {
  4120. width: 15% !important;
  4121. } */
  4122. /* .navText {
  4123. width: 120px !important;
  4124. } */
  4125. .evaCss {
  4126. flex-direction: column !important;
  4127. align-items: center !important;
  4128. }
  4129. .dialog_diy1 >>> .el-dialog {
  4130. width: 100% !important;
  4131. }
  4132. .rightWidthCss {
  4133. width: 100% !important;
  4134. }
  4135. .dialog_diy3 >>> .el-dialog {
  4136. width: 100% !important;
  4137. }
  4138. /* .textTitle >>> .el-form-item__label {
  4139. width: 150px !important;
  4140. } */
  4141. }
  4142. .evaCssMax {
  4143. flex-direction: column !important;
  4144. align-items: center !important;
  4145. }
  4146. .dialog_diy >>> .el-dialog {
  4147. margin-top: 10vh !important;
  4148. }
  4149. .body_student {
  4150. width: 77%;
  4151. height: 100%;
  4152. position: absolute;
  4153. left: 22%;
  4154. top: 0;
  4155. }
  4156. .student_head {
  4157. width: 100%;
  4158. margin: 0 auto;
  4159. /* padding-bottom: 20px; */
  4160. display: flex;
  4161. flex-direction: column;
  4162. flex-wrap: nowrap;
  4163. align-items: flex-start;
  4164. justify-content: flex-start;
  4165. }
  4166. .pb_left {
  4167. width: 20%;
  4168. margin-right: 10px;
  4169. background: rgb(255, 255, 255);
  4170. position: fixed;
  4171. height: calc(100% - 40px);
  4172. border-radius: 20px;
  4173. padding-bottom: 15px;
  4174. box-sizing: border-box;
  4175. }
  4176. .wheel > img,
  4177. .project > img,
  4178. .star > img,
  4179. .evaluate > img,
  4180. .up_photo > img,
  4181. .chapter_add > img,
  4182. .upCover > img,
  4183. .deleteWord > img,
  4184. .question > img,
  4185. .homework > img {
  4186. width: 100%;
  4187. height: 100%;
  4188. }
  4189. .upCover {
  4190. width: calc(100% / 3.5);
  4191. position: relative;
  4192. margin: 0 15px 10px 0;
  4193. display: flex;
  4194. flex-direction: column;
  4195. flex-wrap: nowrap;
  4196. justify-content: center;
  4197. align-content: center;
  4198. align-items: center;
  4199. }
  4200. .chapter_add {
  4201. width: 120px;
  4202. position: relative;
  4203. text-align: center;
  4204. }
  4205. .isAddThings {
  4206. margin-top: 20px;
  4207. position: relative;
  4208. text-align: center;
  4209. background: #f7f8fa;
  4210. height: 90px;
  4211. width: 90px;
  4212. display: flex;
  4213. flex-direction: column;
  4214. justify-content: center;
  4215. }
  4216. .deleteWord {
  4217. width: 22px;
  4218. height: 22px;
  4219. position: absolute;
  4220. right: -5px;
  4221. top: -5px;
  4222. cursor: pointer;
  4223. }
  4224. .box_course {
  4225. /* width: 60%; */
  4226. width: 81%;
  4227. margin: 0px 0 0 35px;
  4228. }
  4229. .wheel {
  4230. width: 100%;
  4231. height: 100%;
  4232. }
  4233. .right_box {
  4234. display: flex;
  4235. flex-direction: column;
  4236. margin-left: 30px;
  4237. justify-content: space-around;
  4238. }
  4239. .right_box_title {
  4240. font-size: 23px;
  4241. }
  4242. .people {
  4243. display: flex;
  4244. }
  4245. .student_body {
  4246. width: 100%;
  4247. margin: 0 auto;
  4248. margin-top: 10px;
  4249. padding: 0 0 20px;
  4250. }
  4251. .study_top {
  4252. margin-top: 100px;
  4253. width: 100%;
  4254. height: auto;
  4255. padding-bottom: 20px;
  4256. }
  4257. .study_top .checkbox {
  4258. display: flex;
  4259. align-items: center;
  4260. padding: 15px 0 15px 30px;
  4261. flex: 0 0 auto;
  4262. font-weight: bold;
  4263. border-bottom: 1px solid #eee;
  4264. }
  4265. .study_top .check {
  4266. padding-bottom: 5px;
  4267. text-align: center;
  4268. cursor: pointer;
  4269. height: 30px;
  4270. box-sizing: border-box;
  4271. display: flex;
  4272. }
  4273. .study_top .checked {
  4274. border-bottom: 4px solid #3fc6a0;
  4275. padding-bottom: 5px;
  4276. color: #3fc6a0;
  4277. display: flex;
  4278. height: 35px;
  4279. }
  4280. .study_top .checked > div,
  4281. .study_top .check > div {
  4282. margin-right: 5px;
  4283. }
  4284. .videoTop {
  4285. display: flex;
  4286. flex-direction: row;
  4287. justify-content: space-between;
  4288. background: #fff;
  4289. align-items: center;
  4290. width: 95%;
  4291. padding: 20px;
  4292. }
  4293. .upbtn {
  4294. margin: 25px;
  4295. background: #70afdb;
  4296. color: #fff;
  4297. width: 120px;
  4298. text-align: center;
  4299. height: 30px;
  4300. line-height: 30px;
  4301. font-size: 13px;
  4302. border-radius: 5px;
  4303. cursor: pointer;
  4304. }
  4305. .filebox {
  4306. display: flex;
  4307. flex-wrap: wrap;
  4308. flex-direction: column;
  4309. padding: 0 0 5px;
  4310. position: relative;
  4311. }
  4312. .filebox:before {
  4313. content: ""; /* 使用 :before 伪元素创建纵向虚线 */
  4314. position: absolute;
  4315. top: 20px;
  4316. left: 13px;
  4317. border-left: 2px dotted #cad1dc;
  4318. height: calc(100% - 15px);
  4319. }
  4320. .toolHeng2 > div:last-child::before {
  4321. height: calc(100% - 43px);
  4322. }
  4323. .filebox .tooldetail {
  4324. width: calc(100% - 280px);
  4325. margin: 0px 12px;
  4326. padding: 12px;
  4327. line-height: 30px;
  4328. word-break: break-word;
  4329. background: #ffffff;
  4330. border-radius: 8px 8px 8px 8px;
  4331. opacity: 1;
  4332. border: 1px solid #cad1dc;
  4333. overflow: hidden;
  4334. box-sizing: border-box;
  4335. }
  4336. .file {
  4337. display: flex;
  4338. flex-direction: column;
  4339. align-items: center;
  4340. justify-content: center;
  4341. cursor: pointer;
  4342. width: 200px;
  4343. }
  4344. .file div {
  4345. margin-top: 10px;
  4346. width: 150px;
  4347. text-align: center;
  4348. overflow: hidden;
  4349. white-space: nowrap;
  4350. text-overflow: ellipsis;
  4351. }
  4352. .media {
  4353. display: flex;
  4354. flex-direction: column;
  4355. align-items: center;
  4356. justify-content: center;
  4357. margin: 0 20px 20px 0;
  4358. cursor: pointer;
  4359. margin: 12px 0 5px 15px;
  4360. overflow: hidden;
  4361. box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%),
  4362. 0px 2px 1px -1px rgb(0 0 0 / 12%);
  4363. box-sizing: border-box;
  4364. }
  4365. .media img {
  4366. height: 90px;
  4367. width: 160px;
  4368. object-fit: cover;
  4369. }
  4370. .media .title {
  4371. padding: 5px;
  4372. text-align: left;
  4373. width: 100%;
  4374. box-sizing: border-box;
  4375. }
  4376. .media .btn {
  4377. width: 100%;
  4378. height: 35px;
  4379. line-height: 35px;
  4380. color: #fff;
  4381. background: #606060;
  4382. text-align: center;
  4383. overflow: hidden;
  4384. white-space: nowrap;
  4385. text-overflow: ellipsis;
  4386. }
  4387. .detail_content_top {
  4388. width: 100%;
  4389. padding: 25px 0 25px 0;
  4390. }
  4391. .detail_title {
  4392. text-align: center;
  4393. font-size: 24px;
  4394. }
  4395. .detail_time {
  4396. font-size: 13px;
  4397. padding: 15px 0 0 40px;
  4398. }
  4399. .detail_content {
  4400. line-height: 2pc;
  4401. width: 90%;
  4402. margin: 0 auto;
  4403. padding-top: 30px;
  4404. text-indent: 30px;
  4405. overflow: auto;
  4406. height: 200px;
  4407. }
  4408. .score_box >>> .el-rate {
  4409. margin-left: 10px;
  4410. }
  4411. .dialog_change >>> .el-dialog {
  4412. border-radius: 5px;
  4413. }
  4414. .dialog_change >>> .el-dialog__header {
  4415. background: #f2f2f2;
  4416. text-align: center;
  4417. }
  4418. .dialog_change >>> .el-dialog__title {
  4419. line-height: 5px;
  4420. }
  4421. .dialog_change >>> .el-dialog__body {
  4422. background: #fff;
  4423. padding: 10px 20px;
  4424. }
  4425. .score_box {
  4426. display: flex;
  4427. align-items: center;
  4428. margin-bottom: 18px;
  4429. margin-top: 20px;
  4430. }
  4431. .up_photo {
  4432. width: 120px;
  4433. cursor: pointer;
  4434. margin-top: 10px;
  4435. }
  4436. .upload_send {
  4437. margin: 30px auto 30px;
  4438. width: 60%;
  4439. background: #169bd6;
  4440. text-align: center;
  4441. height: 35px;
  4442. line-height: 35px;
  4443. color: #fff;
  4444. border-radius: 5px;
  4445. cursor: pointer;
  4446. }
  4447. .marginT {
  4448. margin-top: 20px;
  4449. }
  4450. .cd_content_steps {
  4451. display: flex;
  4452. width: 90%;
  4453. justify-content: space-around;
  4454. border-top: 1px solid #eeeeee;
  4455. }
  4456. .cd_steps_box {
  4457. display: flex;
  4458. justify-content: center;
  4459. align-items: center;
  4460. flex-direction: column;
  4461. cursor: pointer;
  4462. }
  4463. .first {
  4464. display: flex;
  4465. align-items: center;
  4466. margin: 15px 0 20px 0;
  4467. font-size: 20px;
  4468. }
  4469. .first > div:nth-child(2) {
  4470. font-size: 16px !important;
  4471. padding-left: 10px;
  4472. line-height: 26px;
  4473. box-sizing: border-box;
  4474. }
  4475. .blue_box_one {
  4476. text-align: center;
  4477. color: #fff;
  4478. background-image: linear-gradient(90deg, #477cd7, #65b9fc);
  4479. border-radius: 7px;
  4480. margin: 10px;
  4481. cursor: pointer;
  4482. width: 95%;
  4483. height: 45px;
  4484. display: flex;
  4485. flex-direction: row;
  4486. justify-content: flex-start;
  4487. align-items: center;
  4488. }
  4489. .blue_box_one > div:nth-child(1) {
  4490. line-height: 30px;
  4491. margin: 0 5px 0 10px;
  4492. width: 30%;
  4493. min-width: 70px;
  4494. border-radius: 4px;
  4495. }
  4496. .blue_box_one > div:nth-child(2) {
  4497. white-space: nowrap;
  4498. text-overflow: ellipsis;
  4499. overflow: hidden;
  4500. word-break: break-all;
  4501. width: 70%;
  4502. text-align: left;
  4503. margin-right: 10px;
  4504. max-width: calc(100% - 85px);
  4505. }
  4506. .blue_box_one > div:nth-child(2):hover {
  4507. overflow: hidden;
  4508. text-overflow: ellipsis;
  4509. white-space: nowrap;
  4510. cursor: pointer;
  4511. }
  4512. .upFile {
  4513. margin: 0 auto;
  4514. width: 120px;
  4515. background: #70afdb;
  4516. color: #fff;
  4517. height: 30px;
  4518. text-align: center;
  4519. line-height: 30px;
  4520. border-radius: 5px;
  4521. font-size: 14px;
  4522. cursor: pointer;
  4523. }
  4524. .courseTitle {
  4525. width: 85%;
  4526. margin: 10px auto 26px auto;
  4527. display: flex;
  4528. flex-direction: row;
  4529. align-items: center;
  4530. justify-content: space-between;
  4531. text-align: center;
  4532. }
  4533. .courseTitle .ctitle {
  4534. font-size: 20px;
  4535. font-weight: bold;
  4536. color: #0e1e33;
  4537. white-space: nowrap;
  4538. overflow: hidden;
  4539. text-overflow: ellipsis;
  4540. }
  4541. .courseTitle >>> .el-tooltip {
  4542. width: 100%;
  4543. white-space: nowrap;
  4544. overflow: hidden;
  4545. text-overflow: ellipsis;
  4546. word-break: break-word;
  4547. }
  4548. .ml {
  4549. margin-left: 20px;
  4550. color: #5b7dba;
  4551. border-left: 3px solid #5b7dba;
  4552. padding-left: 5px;
  4553. font-weight: bold;
  4554. }
  4555. .return {
  4556. width: 2rem;
  4557. height: 2rem;
  4558. cursor: pointer;
  4559. }
  4560. .return > img {
  4561. width: 100%;
  4562. height: 100%;
  4563. }
  4564. .returnBtn {
  4565. background: #499eef;
  4566. width: 65px;
  4567. height: 30px;
  4568. color: #fff;
  4569. text-align: center;
  4570. line-height: 32px;
  4571. margin-right: 20px;
  4572. cursor: pointer;
  4573. border-radius: 5px;
  4574. font-size: 14px;
  4575. }
  4576. .tool {
  4577. display: flex;
  4578. flex-direction: column;
  4579. flex-wrap: nowrap;
  4580. width: 13%;
  4581. margin: 0 30px;
  4582. align-items: center;
  4583. }
  4584. .whiteBIcon {
  4585. width: 150px;
  4586. cursor: pointer;
  4587. }
  4588. .whiteBIcon > img {
  4589. width: 100%;
  4590. height: 100%;
  4591. }
  4592. .mask {
  4593. background-color: rgba(0, 0, 0, 0);
  4594. position: fixed;
  4595. top: 0;
  4596. left: 0;
  4597. width: 100%;
  4598. height: 100%;
  4599. z-index: 20000;
  4600. display: flex;
  4601. align-items: center;
  4602. justify-content: center;
  4603. }
  4604. .progressBox {
  4605. width: 500px;
  4606. height: 180px;
  4607. background: #fff;
  4608. border-radius: 10px;
  4609. box-shadow: 0 0 6px 1px #bfbfbf;
  4610. display: flex;
  4611. align-items: center;
  4612. justify-content: center;
  4613. flex-direction: column;
  4614. }
  4615. .progressBox .lbox {
  4616. height: 100px;
  4617. font-size: 19px;
  4618. display: flex;
  4619. align-items: center;
  4620. }
  4621. .progressBox .lbox img {
  4622. width: 40px;
  4623. margin-right: 20px;
  4624. }
  4625. .progressBox >>> .el-progress-bar__outer {
  4626. background-color: #d1dfff !important;
  4627. }
  4628. .progressBox .lbox {
  4629. height: 100px;
  4630. font-size: 19px;
  4631. display: flex;
  4632. align-items: center;
  4633. }
  4634. .progressBox .lbox img {
  4635. width: 40px;
  4636. margin-right: 20px;
  4637. }
  4638. .uploadVedio {
  4639. display: flex;
  4640. flex-direction: column;
  4641. flex-wrap: nowrap;
  4642. justify-content: center;
  4643. align-items: center;
  4644. margin: 0 15px 10px 0;
  4645. }
  4646. .uploadVedio > img {
  4647. width: 30px;
  4648. height: 30px;
  4649. }
  4650. .uploadVedio > span {
  4651. white-space: nowrap;
  4652. overflow: hidden;
  4653. text-overflow: ellipsis;
  4654. width: 75px;
  4655. margin-top: 7px;
  4656. }
  4657. .picName {
  4658. white-space: nowrap;
  4659. overflow: hidden;
  4660. text-overflow: ellipsis;
  4661. width: 75px;
  4662. margin-top: 7px;
  4663. }
  4664. .new_top {
  4665. display: flex;
  4666. background: #fff;
  4667. flex-direction: row;
  4668. justify-content: flex-start;
  4669. align-items: center;
  4670. height: 60px;
  4671. position: fixed;
  4672. top: 20px;
  4673. left: 22%;
  4674. width: 77%;
  4675. z-index: 999;
  4676. border-radius: 12px 12px 0 0;
  4677. border-bottom: 1px solid #cad1dc;
  4678. padding: 10px 0;
  4679. }
  4680. .new_topFixed {
  4681. width: 100%;
  4682. height: 40px;
  4683. position: fixed;
  4684. top: 0px;
  4685. display: block;
  4686. background: #f2f2f2;
  4687. z-index: 998;
  4688. }
  4689. .navLeftCss {
  4690. width: 100% !important;
  4691. left: 0 !important;
  4692. }
  4693. .before {
  4694. position: absolute;
  4695. background: #c3dad4;
  4696. width: 6px;
  4697. height: 100%;
  4698. }
  4699. .courseIndex {
  4700. display: flex;
  4701. flex-direction: row;
  4702. align-items: center;
  4703. width: calc(100% - 745px);
  4704. }
  4705. .courseIndex > div:nth-child(1) {
  4706. margin: 0 0 0 10px;
  4707. font-size: 20px;
  4708. min-width: 100px;
  4709. font-weight: bold;
  4710. border-left: 4px solid #3363b9;
  4711. height: 32px;
  4712. text-align: center;
  4713. line-height: 35px;
  4714. }
  4715. .courseIndex > div:nth-child(2) {
  4716. font-size: 20px;
  4717. /* width: 300px; */
  4718. max-width: calc(100% - 105px);
  4719. white-space: nowrap;
  4720. overflow: hidden;
  4721. text-overflow: ellipsis;
  4722. }
  4723. .courseIndex > div:nth-child(3) {
  4724. border-bottom: 1px solid #d7d7d7;
  4725. padding-bottom: 5px;
  4726. background: #3681fc;
  4727. width: 55px;
  4728. min-width: 55px;
  4729. border-radius: 5px;
  4730. color: #fff;
  4731. text-align: center;
  4732. height: 20px;
  4733. line-height: 26px;
  4734. font-size: 14px;
  4735. margin: 0 0 0 10px;
  4736. }
  4737. .course_text {
  4738. padding: 20px 0 0 15px;
  4739. text-indent: 30px;
  4740. width: 80%;
  4741. min-height: 20px;
  4742. }
  4743. .vedioList {
  4744. background: #f2f2f2;
  4745. border: 1px solid #ececec;
  4746. width: 100%;
  4747. height: 445px;
  4748. border-radius: 10px;
  4749. overflow: hidden;
  4750. box-shadow: 0px 0px 12px 1px rgba(0, 0, 0, 0.16);
  4751. }
  4752. .vedioNav {
  4753. margin: 10px 0 0 15px;
  4754. border-bottom: 1px solid #d7d7d7;
  4755. padding-bottom: 5px;
  4756. background: #96d1ff;
  4757. width: 55px;
  4758. min-width: 55px;
  4759. border-radius: 5px;
  4760. color: #fff;
  4761. text-align: center;
  4762. height: 20px;
  4763. line-height: 26px;
  4764. font-size: 14px;
  4765. }
  4766. .queTop {
  4767. display: flex;
  4768. padding: 20px 0 20px 30px;
  4769. width: 100%;
  4770. flex-direction: row;
  4771. justify-content: flex-start;
  4772. align-items: center;
  4773. border-bottom: 1px solid #eeeeee;
  4774. box-sizing: border-box;
  4775. }
  4776. .question {
  4777. width: 40px;
  4778. margin-right: 10px;
  4779. margin-top: 7px;
  4780. }
  4781. .queTitle {
  4782. margin-left: 5px;
  4783. font-size: 25px;
  4784. display: flex;
  4785. align-items: center;
  4786. }
  4787. .addEditor {
  4788. width: 100px;
  4789. height: 30px;
  4790. background: #42cda6;
  4791. color: #fff;
  4792. border-radius: 5px;
  4793. text-align: center;
  4794. line-height: 30px;
  4795. box-shadow: 1px 3px 6px 1px #bfbfbf;
  4796. cursor: pointer;
  4797. }
  4798. .vedioName {
  4799. /* text-overflow: ellipsis;
  4800. top: 8px;
  4801. font-size: 14px;
  4802. overflow: hidden;
  4803. width: 100%;
  4804. word-break: break-all;
  4805. white-space: nowrap; */
  4806. cursor: pointer;
  4807. margin: 0px 0px 10px 5px;
  4808. white-space: nowrap;
  4809. overflow: hidden;
  4810. text-overflow: ellipsis;
  4811. width: 100%;
  4812. }
  4813. .vedioTime {
  4814. width: 35px;
  4815. position: absolute;
  4816. color: #fff;
  4817. bottom: 0px;
  4818. right: 0px;
  4819. text-align: center;
  4820. background: #46411f;
  4821. height: 20px;
  4822. font-size: 14px;
  4823. line-height: 20px;
  4824. }
  4825. .homework {
  4826. width: 200px;
  4827. display: flex;
  4828. flex-direction: column;
  4829. flex-wrap: nowrap;
  4830. align-items: center;
  4831. cursor: pointer;
  4832. }
  4833. .homebox {
  4834. display: flex;
  4835. flex-wrap: wrap;
  4836. flex-direction: row;
  4837. justify-content: flex-start;
  4838. align-items: center;
  4839. padding: 15px 0;
  4840. }
  4841. .isChooseActive {
  4842. color: #3e88f4;
  4843. border-bottom: 2px solid #2f80f3;
  4844. }
  4845. .chooseWho {
  4846. display: flex;
  4847. width: 100%;
  4848. flex-direction: row;
  4849. flex-wrap: nowrap;
  4850. justify-content: flex-start;
  4851. padding-bottom: 10px;
  4852. }
  4853. .chooseWho > div {
  4854. cursor: pointer;
  4855. padding-bottom: 10px;
  4856. margin: 0 30px;
  4857. }
  4858. .addPoint > div > img {
  4859. cursor: pointer;
  4860. margin: 0 10px;
  4861. width: 85px;
  4862. border-radius: 15px;
  4863. box-shadow: 0px 1px 8px 0px rgb(20 20 20 / 14%);
  4864. }
  4865. .addPoint > div {
  4866. display: flex;
  4867. flex-direction: column;
  4868. flex-wrap: nowrap;
  4869. align-items: center;
  4870. }
  4871. .isBorder > div {
  4872. margin: 0 0 10px 0;
  4873. align-items: flex-start !important;
  4874. }
  4875. .noiframeBox {
  4876. display: flex;
  4877. flex-wrap: wrap;
  4878. }
  4879. .iframeBox iframe {
  4880. width: 100%;
  4881. height: 800px;
  4882. border: none;
  4883. margin-bottom: 20px;
  4884. border: 1px solid #ccc;
  4885. }
  4886. .upload_toolBtn {
  4887. background: #6b92c9;
  4888. color: #fff;
  4889. width: 110px;
  4890. text-align: center;
  4891. height: 35px;
  4892. line-height: 35px;
  4893. font-size: 14px;
  4894. border-radius: 5px;
  4895. cursor: pointer;
  4896. position: absolute;
  4897. right: 10px;
  4898. bottom: 0;
  4899. }
  4900. .binfo_input,
  4901. .pj {
  4902. font: inherit;
  4903. color: currentColor;
  4904. width: 100%;
  4905. margin: 0;
  4906. padding: 15px 14px;
  4907. display: block;
  4908. min-width: 0;
  4909. outline: none;
  4910. box-sizing: content-box;
  4911. background: none;
  4912. -webkit-tap-highlight-color: transparent;
  4913. border: 1px solid rgba(0, 0, 0, 0.23);
  4914. border-radius: 4px;
  4915. box-sizing: border-box;
  4916. resize: none;
  4917. }
  4918. .binfo_input:focus-visible {
  4919. border: 1px solid rgba(61, 103, 188);
  4920. }
  4921. .dialog_diy >>> .el-dialog__header,
  4922. .dialog_diy1 >>> .el-dialog__header {
  4923. background: #454545 !important;
  4924. padding: 15px 20px;
  4925. }
  4926. .dialog_diy >>> .el-dialog__title,
  4927. .dialog_diy1 >>> .el-dialog__title {
  4928. color: #fff;
  4929. }
  4930. .dialog_diy >>> .el-dialog__headerbtn,
  4931. .dialog_diy1 >>> .el-dialog__headerbtn {
  4932. top: 19px;
  4933. }
  4934. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close,
  4935. .dialog_diy1 >>> .el-dialog__headerbtn .el-dialog__close {
  4936. color: #fff;
  4937. }
  4938. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover,
  4939. .dialog_diy1 >>> .el-dialog__headerbtn .el-dialog__close:hover {
  4940. color: #fff;
  4941. }
  4942. .dialog_diy1 >>> .el-dialog__body {
  4943. padding: 0;
  4944. }
  4945. .dialog_diy >>> .el-dialog__body,
  4946. .dialog_diy >>> .el-dialog__footer,
  4947. .dialog_diy1 >>> .el-dialog__footer {
  4948. background: #fafafa;
  4949. }
  4950. .a_addBox {
  4951. margin: 10px 0;
  4952. background: #fff;
  4953. padding: 15px;
  4954. max-height: 400px;
  4955. overflow: auto;
  4956. }
  4957. .a_add_box {
  4958. border-bottom: 2px solid #eee;
  4959. padding-bottom: 10px;
  4960. }
  4961. .a_add_head {
  4962. display: flex;
  4963. align-items: flex-start;
  4964. /* justify-content: space-between; */
  4965. flex-direction: column;
  4966. margin: 10px 0;
  4967. font-size: 18px;
  4968. width: 100%;
  4969. }
  4970. .a_add_head .a_add_head_input {
  4971. width: 300px;
  4972. }
  4973. .a_add_head .a_add_head_div {
  4974. display: flex;
  4975. align-items: center;
  4976. justify-content: space-between;
  4977. }
  4978. .a_add_body {
  4979. display: flex;
  4980. align-items: center;
  4981. }
  4982. .a_add_input {
  4983. display: flex;
  4984. align-items: center;
  4985. flex-wrap: wrap;
  4986. }
  4987. .a_add_input >>> el-radio-group {
  4988. margin: 10px 0;
  4989. }
  4990. .a_add_input >>> .el-radio {
  4991. margin-bottom: 10px;
  4992. }
  4993. .redioStyle >>> .el-radio__label {
  4994. font-size: 18px;
  4995. }
  4996. .redioStyle >>> .el-checkbox__label {
  4997. font-size: 18px;
  4998. }
  4999. .toolHeng2 {
  5000. width: 100%;
  5001. padding-left: 37px;
  5002. box-sizing: border-box;
  5003. }
  5004. .toolHeng2 > div:last-child::before {
  5005. height: calc(100% - 43px);
  5006. }
  5007. .toolHeng {
  5008. display: flex;
  5009. flex-direction: row;
  5010. flex-wrap: wrap;
  5011. justify-content: flex-start;
  5012. align-items: center;
  5013. width: 100%;
  5014. }
  5015. .toolHeng > div {
  5016. padding-left: 20px;
  5017. }
  5018. .isWidth {
  5019. width: 20%;
  5020. }
  5021. .textTitle {
  5022. display: flex;
  5023. flex-direction: row;
  5024. flex-wrap: nowrap;
  5025. align-items: center;
  5026. width: 95%;
  5027. }
  5028. .textTitle >>> .el-form-item__label {
  5029. font-size: 22px;
  5030. color: #918f8f;
  5031. width: 100px;
  5032. }
  5033. .textTitle >>> .el-form-item__content {
  5034. width: calc(100% - 100px);
  5035. }
  5036. .textCss >>> .el-dialog {
  5037. width: 800px !important;
  5038. height: 400px;
  5039. background: #fafafa;
  5040. }
  5041. .textCss >>> .el-dialog__body {
  5042. margin: 55px 8% 0 8%;
  5043. padding: 0 !important;
  5044. }
  5045. .textCss >>> .el-dialog__footer {
  5046. padding-top: 38px;
  5047. }
  5048. .toolsCss >>> .el-dialog__body {
  5049. padding: 20px;
  5050. }
  5051. .lineCss >>> .el-dialog__body {
  5052. display: flex;
  5053. flex-direction: row;
  5054. align-items: center;
  5055. justify-content: center;
  5056. }
  5057. .newNav {
  5058. display: flex;
  5059. flex-direction: row;
  5060. align-items: baseline;
  5061. justify-content: flex-start;
  5062. }
  5063. .navText {
  5064. cursor: pointer;
  5065. margin: 0px 0px 10px 5px;
  5066. white-space: nowrap;
  5067. overflow: hidden;
  5068. text-overflow: ellipsis;
  5069. /* width: 300px; */
  5070. width: 100%;
  5071. }
  5072. .noVedio {
  5073. display: flex;
  5074. flex-direction: row;
  5075. justify-content: center;
  5076. align-content: center;
  5077. }
  5078. .noNavText {
  5079. cursor: pointer;
  5080. margin: 0px 0px 10px 5px;
  5081. width: 112px;
  5082. }
  5083. .listNoVedio {
  5084. margin: 0 0 0 30px;
  5085. width: 97%;
  5086. }
  5087. .video-player >>> .video-js {
  5088. height: 100%;
  5089. }
  5090. .hangVedioList {
  5091. width: 90% !important;
  5092. height: 150px !important;
  5093. margin: 20px 0 0 30px;
  5094. }
  5095. .hangVedio {
  5096. width: 100%;
  5097. height: 170px !important;
  5098. align-items: flex-start !important;
  5099. }
  5100. .hangHand {
  5101. height: 150px !important;
  5102. }
  5103. .twoChild {
  5104. width: 95%;
  5105. margin: 10px;
  5106. border-radius: 5px;
  5107. background: #f2f2f2;
  5108. display: flex;
  5109. flex-direction: column;
  5110. flex-wrap: nowrap;
  5111. justify-content: flex-start;
  5112. align-items: flex-start;
  5113. transition: all 0.5s;
  5114. overflow: hidden;
  5115. height: 0;
  5116. background: #e7f3ff;
  5117. }
  5118. .twoChild > div:nth-child(1) {
  5119. margin-top: 5px;
  5120. }
  5121. .navChild {
  5122. width: 100%;
  5123. cursor: pointer;
  5124. margin-bottom: 10px;
  5125. position: relative;
  5126. }
  5127. .navChild img {
  5128. position: absolute;
  5129. right: 11px;
  5130. width: 15px;
  5131. top: 50%;
  5132. transform: translateY(-50%);
  5133. }
  5134. .navActive,
  5135. .toolActive {
  5136. height: auto !important;
  5137. overflow: auto !important;
  5138. /* padding-bottom: 16px; */
  5139. }
  5140. .toolActive {
  5141. padding: 0;
  5142. }
  5143. .navTask {
  5144. display: flex;
  5145. flex-direction: row;
  5146. flex-wrap: nowrap;
  5147. align-items: center;
  5148. align-content: flex-start;
  5149. height: 40px;
  5150. justify-content: flex-start;
  5151. padding: 0 10px;
  5152. width: 100%;
  5153. box-sizing: border-box;
  5154. }
  5155. .navTaskname {
  5156. white-space: nowrap;
  5157. text-overflow: ellipsis;
  5158. overflow: hidden;
  5159. word-break: break-all;
  5160. padding-left: 5px;
  5161. }
  5162. .openTaskActive {
  5163. /* background-color: #e0eafb !important;
  5164. color: #0061ff; */
  5165. color: #fff;
  5166. background: rgb(55, 129, 252) !important;
  5167. }
  5168. .iframeName {
  5169. margin: 5px 0;
  5170. border-left: 4px solid #41c4a4;
  5171. padding-left: 4px;
  5172. }
  5173. .toolTitle {
  5174. margin: 0px 0px 20px;
  5175. font-size: 20px;
  5176. font-weight: 500;
  5177. border-left: 4px solid #41c4a4;
  5178. padding-left: 4px;
  5179. }
  5180. .cru_selectBox {
  5181. overflow: auto;
  5182. width: 95%;
  5183. margin: 17px auto 0;
  5184. height: calc(100% - 40px - 21px - 20px - 17px);
  5185. background: #fff;
  5186. border-radius: 8px;
  5187. }
  5188. .cru_selectBox::-webkit-scrollbar,
  5189. .study_top::-webkit-scrollbar,
  5190. .textContent::-webkit-scrollbar {
  5191. /*滚动条整体样式*/
  5192. width: 6px;
  5193. /*高宽分别对应横竖滚动条的尺寸*/
  5194. height: 6px;
  5195. }
  5196. /*定义滚动条轨道 内阴影+圆角*/
  5197. .cru_selectBox::-webkit-scrollbar-track,
  5198. .study_top::-webkit-scrollbar-track,
  5199. .textContent::-webkit-scrollbar {
  5200. border-radius: 10px;
  5201. background-color: #b8bdc9;
  5202. }
  5203. /*定义滑块 内阴影+圆角*/
  5204. .cru_selectBox::-webkit-scrollbar-thumb,
  5205. .study_top::-webkit-scrollbar-thumb,
  5206. .textContent::-webkit-scrollbar-thumb {
  5207. border-radius: 10px;
  5208. -webkit-box-shadow: inset 0 0 6px rgb(96, 125, 184);
  5209. background-color: #2c5ab3;
  5210. }
  5211. .vedioBox {
  5212. border-radius: 20px;
  5213. background: #fff;
  5214. overflow: auto;
  5215. }
  5216. .taskBox {
  5217. margin: 10px auto 20px;
  5218. background: #f0f4fa;
  5219. width: 97%;
  5220. border-radius: 10px;
  5221. }
  5222. .vedioTaskBox {
  5223. width: 100%;
  5224. display: flex;
  5225. flex-direction: row;
  5226. flex-wrap: nowrap;
  5227. align-items: center;
  5228. position: relative;
  5229. /* height: 650px; */
  5230. }
  5231. .toolBox {
  5232. margin: 15px 0 0 25px;
  5233. display: flex;
  5234. position: relative;
  5235. padding: 18px 20px;
  5236. border-top-left-radius: 5px;
  5237. border-top-right-radius: 5px;
  5238. width: 90%;
  5239. }
  5240. .btnAll {
  5241. position: absolute;
  5242. right: 0;
  5243. display: flex;
  5244. flex-direction: row;
  5245. flex-wrap: nowrap;
  5246. align-items: center;
  5247. }
  5248. .btnLeft,
  5249. .btnRight {
  5250. display: flex;
  5251. flex-direction: row;
  5252. flex-wrap: nowrap;
  5253. align-items: center;
  5254. padding: 5px 0;
  5255. }
  5256. .btnLeft {
  5257. border-right: 1px solid #cad1dc;
  5258. }
  5259. .btnLeft > .custom-tooltip {
  5260. background: #3681fc;
  5261. color: #fff;
  5262. }
  5263. .last:hover {
  5264. background: #3383fa !important;
  5265. color: #fff;
  5266. border: 1px solid #3383fa !important;
  5267. }
  5268. .last,
  5269. .returnBtn1 {
  5270. width: 90px;
  5271. height: 36px;
  5272. background: #ffffff;
  5273. border-radius: 4px;
  5274. border: 1px solid #0061ff;
  5275. color: #0061ff;
  5276. cursor: pointer;
  5277. display: flex;
  5278. flex-direction: row;
  5279. flex-wrap: nowrap;
  5280. align-items: center;
  5281. justify-content: center;
  5282. margin-left: 12px;
  5283. }
  5284. .returnBtn1 {
  5285. background: #f0f4fa;
  5286. border-radius: 4px;
  5287. border: 1px solid #cad1dc;
  5288. margin: 0 12px;
  5289. }
  5290. .lastImg {
  5291. min-width: 15px;
  5292. width: 15px;
  5293. height: 15px;
  5294. display: flex;
  5295. }
  5296. .lastText {
  5297. padding: 0 5px 0 5px;
  5298. box-sizing: border-box;
  5299. font-size: 14px;
  5300. }
  5301. .lastImg > img {
  5302. width: 100%;
  5303. height: 100%;
  5304. }
  5305. /* .vedioTimeBox {
  5306. display: flex;
  5307. flex-direction: row;
  5308. align-items: center;
  5309. flex-wrap: nowrap;
  5310. position: relative;
  5311. } */
  5312. .navBox {
  5313. background: #fff;
  5314. height: calc(100% - 40px);
  5315. overflow-y: auto;
  5316. overflow-x: hidden;
  5317. }
  5318. .worksBox {
  5319. padding: 5px 0 0 10px;
  5320. border-bottom: 1px solid #eeeeee;
  5321. }
  5322. .worksBTitle {
  5323. font-size: 20px;
  5324. padding-bottom: 15px;
  5325. border-bottom: 1px solid #eeeeee;
  5326. display: flex;
  5327. align-items: center;
  5328. }
  5329. .greenBox {
  5330. width: 5px;
  5331. height: 30px;
  5332. background: #63b6fa;
  5333. margin-right: 5px;
  5334. }
  5335. .worksDetailBox {
  5336. display: flex;
  5337. width: 100%;
  5338. flex-direction: row;
  5339. flex-wrap: wrap;
  5340. align-items: center;
  5341. justify-content: flex-start;
  5342. padding: 15px 0;
  5343. }
  5344. .works {
  5345. display: flex;
  5346. flex-direction: column;
  5347. flex-wrap: nowrap;
  5348. align-items: flex-start;
  5349. justify-content: flex-start;
  5350. align-content: center;
  5351. max-width: 240px;
  5352. width: calc(100% / 3 - 10px);
  5353. height: auto;
  5354. margin-right: 10px;
  5355. margin-bottom: 10px;
  5356. overflow: hidden;
  5357. height: 140px;
  5358. box-shadow: 0 0 6px 1px #dfdada;
  5359. border-radius: 15px;
  5360. }
  5361. .workImg {
  5362. width: 100%;
  5363. /* height: calc(100% - 40px); */
  5364. height: 105px;
  5365. position: relative;
  5366. }
  5367. .workImg > img {
  5368. width: 100%;
  5369. height: 100%;
  5370. object-fit: contain;
  5371. }
  5372. .worksName {
  5373. height: 40px;
  5374. line-height: 40px;
  5375. display: flex;
  5376. width: 92%;
  5377. flex-direction: row;
  5378. flex-wrap: nowrap;
  5379. justify-content: space-between;
  5380. align-items: center;
  5381. margin: 0 10px;
  5382. }
  5383. .worksName > div:nth-child(1) {
  5384. width: 120px;
  5385. white-space: nowrap;
  5386. overflow: hidden;
  5387. text-overflow: ellipsis;
  5388. }
  5389. .worksName > div:nth-child(2) {
  5390. color: #b7b4b5;
  5391. }
  5392. .noWorksS {
  5393. padding: 15px 0;
  5394. display: flex;
  5395. flex-direction: row;
  5396. flex-wrap: wrap;
  5397. align-items: center;
  5398. justify-content: flex-start;
  5399. }
  5400. .noWorksName,
  5401. .isWorksName {
  5402. background: #7cbcf1;
  5403. color: #fff;
  5404. width: 90px;
  5405. height: 25px;
  5406. text-align: center;
  5407. line-height: 25px;
  5408. border-radius: 5px;
  5409. margin: 10px 15px 10px 0;
  5410. white-space: nowrap;
  5411. overflow: hidden;
  5412. padding: 5px;
  5413. text-overflow: ellipsis;
  5414. }
  5415. .isWorksName {
  5416. cursor: pointer;
  5417. background: #46a1eb !important;
  5418. width: 100px;
  5419. height: 40px;
  5420. line-height: 40px;
  5421. position: relative;
  5422. }
  5423. .noWorksName:hover {
  5424. background: #46a1eb !important;
  5425. }
  5426. .title {
  5427. background: #1e5cc9;
  5428. /* width: 98%; */
  5429. height: 45px;
  5430. color: #fff;
  5431. line-height: 45px;
  5432. padding-left: 20px;
  5433. box-sizing: border-box;
  5434. }
  5435. .textBox {
  5436. font-size: 20px;
  5437. width: 90%;
  5438. display: flex;
  5439. flex-direction: column;
  5440. align-items: center;
  5441. margin: 20px auto 0;
  5442. }
  5443. .textContent {
  5444. font-size: 18px;
  5445. height: 450px;
  5446. width: 95%;
  5447. overflow: auto;
  5448. line-height: 30px;
  5449. }
  5450. .answerWidth {
  5451. width: 250px !important;
  5452. /* height: auto !important; */
  5453. height: 120px !important;
  5454. }
  5455. .answerBg {
  5456. background: url("../../assets/icon/answerBgNew.png") no-repeat;
  5457. background-size: cover;
  5458. width: 100%;
  5459. height: 120px;
  5460. padding: 0 10px;
  5461. box-sizing: border-box;
  5462. color: #fff;
  5463. text-align: center;
  5464. display: flex;
  5465. flex-direction: column;
  5466. flex-wrap: nowrap;
  5467. align-items: center;
  5468. position: relative;
  5469. justify-content: center;
  5470. border-radius: 5px;
  5471. }
  5472. .answerContent {
  5473. /* width: 215px; */
  5474. max-height: 60px;
  5475. word-break: break-all;
  5476. text-align: center;
  5477. /* white-space: nowrap; */
  5478. overflow: hidden;
  5479. text-overflow: ellipsis;
  5480. /* padding: 23px 0 0; */
  5481. -webkit-line-clamp: 3;
  5482. -webkit-box-orient: vertical;
  5483. display: -webkit-box;
  5484. font-size: 15px;
  5485. }
  5486. .elist_input_box {
  5487. display: flex;
  5488. align-items: flex-start;
  5489. flex-wrap: nowrap;
  5490. padding: 10px 0 15px 30px;
  5491. flex-direction: column;
  5492. }
  5493. .elist_input {
  5494. /* width: 40%; */
  5495. width: 100%;
  5496. }
  5497. .elist_input .elist_input_box input {
  5498. font: inherit;
  5499. color: currentColor;
  5500. width: 200px;
  5501. padding: 8px 14px;
  5502. display: block;
  5503. min-width: 0;
  5504. outline: none;
  5505. border: 1px solid rgba(0, 0, 0, 0.23);
  5506. border-radius: 4px;
  5507. box-sizing: border-box;
  5508. background: #fff;
  5509. margin: 0 20px 0 0;
  5510. }
  5511. .elist_input .elist_input_box span {
  5512. height: 36px;
  5513. line-height: 36px;
  5514. color: rgb(82, 82, 82);
  5515. }
  5516. .elist_input .elist_input_box .remove {
  5517. height: 20px;
  5518. width: 20px;
  5519. background-size: 100% 100%;
  5520. background-position: unset;
  5521. margin-left: 5px;
  5522. }
  5523. .elist_input_box >>> .el-rate {
  5524. display: flex;
  5525. height: 36px;
  5526. align-items: center;
  5527. }
  5528. .elist_input_box .elist_inptu_text {
  5529. min-height: 50px;
  5530. /* width: 500px;
  5531. max-height: 150px; */
  5532. width: 100%;
  5533. line-height: 50px;
  5534. color: rgb(82, 82, 82);
  5535. overflow: auto;
  5536. text-indent: 5px;
  5537. background: #f7f6f9;
  5538. border-radius: 10px;
  5539. }
  5540. .elist_input_box .elist_inptu_text input {
  5541. width: 500px;
  5542. }
  5543. .elist_input_box >>> .el-rate__icon {
  5544. font-size: 24px;
  5545. }
  5546. .isClick {
  5547. background: #4d9def;
  5548. }
  5549. .bzBox {
  5550. display: flex;
  5551. flex-direction: row;
  5552. align-items: center;
  5553. }
  5554. .bzBox .yCss {
  5555. width: 7px;
  5556. height: 7px;
  5557. background: #fff;
  5558. margin: 0 16px 0 6px;
  5559. border-radius: 50%;
  5560. border: 5px solid #3681fc;
  5561. z-index: 99;
  5562. }
  5563. .bzBox > div:nth-child(2) {
  5564. font-size: 18px;
  5565. font-weight: bold;
  5566. color: #0e1e33;
  5567. }
  5568. .navTitile {
  5569. padding: 0 0px 0 15px;
  5570. font-size: 16px;
  5571. font-weight: bold;
  5572. color: #0e1e33;
  5573. height: 40px;
  5574. line-height: 40px;
  5575. }
  5576. .isTypeOne {
  5577. width: 240px;
  5578. height: 170px;
  5579. /* border: 1px solid #f8f8f8; */
  5580. border-radius: 10px;
  5581. box-shadow: 0 0 6px 1px #dfdada;
  5582. }
  5583. .e_add_top {
  5584. display: flex;
  5585. justify-content: space-between;
  5586. padding: 20px 20px 0 20px;
  5587. border-radius: 3px;
  5588. background: #fff;
  5589. }
  5590. .e_add_title2 {
  5591. display: flex;
  5592. align-items: center;
  5593. }
  5594. .e_add_title2 span {
  5595. width: 40px;
  5596. }
  5597. .e_add_title {
  5598. display: flex;
  5599. align-items: center;
  5600. color: #b8b8b8;
  5601. font-size: 18px;
  5602. position: relative;
  5603. height: 40px;
  5604. }
  5605. .e_add_title span {
  5606. margin-right: 10px;
  5607. }
  5608. .e_add_title .el_input {
  5609. width: 300px;
  5610. }
  5611. .e_add_title >>> .el-input__inner {
  5612. width: 400px;
  5613. }
  5614. .e_add_btn {
  5615. }
  5616. .e_add_content {
  5617. display: flex;
  5618. width: 100%;
  5619. max-width: 650px;
  5620. height: 550px;
  5621. }
  5622. .e_add_list {
  5623. background: #fff;
  5624. height: 500px;
  5625. width: 210px;
  5626. position: relative;
  5627. margin: 15px 5px 0 0;
  5628. flex-shrink: 0;
  5629. display: flex;
  5630. flex-direction: column;
  5631. }
  5632. .e_add_list_title {
  5633. font-size: 20px;
  5634. width: 100%;
  5635. box-sizing: border-box;
  5636. padding: 15px 40px;
  5637. text-align: center;
  5638. border-bottom: 1px solid #eaeaea;
  5639. position: relative;
  5640. display: flex;
  5641. align-items: center;
  5642. justify-content: center;
  5643. height: 57px;
  5644. background: #f6f6f6;
  5645. }
  5646. .e_add_list_title span {
  5647. overflow: hidden;
  5648. white-space: nowrap;
  5649. text-overflow: ellipsis;
  5650. }
  5651. .e_add_list_title img {
  5652. position: absolute;
  5653. right: 15px;
  5654. width: 25px;
  5655. cursor: pointer;
  5656. top: 50%;
  5657. transform: translateY(-50%);
  5658. }
  5659. .e_add_list_body {
  5660. height: calc(100% - 187px);
  5661. overflow: auto;
  5662. }
  5663. .e_add_list_child {
  5664. width: 100%;
  5665. display: flex;
  5666. align-items: center;
  5667. justify-content: center;
  5668. position: relative;
  5669. box-sizing: border-box;
  5670. padding: 15px 40px;
  5671. text-align: center;
  5672. }
  5673. .e_add_list_child span {
  5674. overflow: hidden;
  5675. white-space: nowrap;
  5676. text-overflow: ellipsis;
  5677. cursor: pointer;
  5678. }
  5679. .e_add_list_child img {
  5680. position: absolute;
  5681. right: 10px;
  5682. width: 21px;
  5683. cursor: pointer;
  5684. top: 50%;
  5685. transform: translateY(-50%);
  5686. }
  5687. .e_add_list_child + .e_add_list_child {
  5688. border-top: 1px solid #eaeaea;
  5689. }
  5690. .e_add_list_child .active {
  5691. color: #409eff;
  5692. }
  5693. .e_add_list_btn {
  5694. position: absolute;
  5695. bottom: 0;
  5696. height: 50px;
  5697. background: rgb(120, 120, 254);
  5698. width: 100%;
  5699. color: #fff;
  5700. font-size: 16px;
  5701. text-align: center;
  5702. line-height: 50px;
  5703. cursor: pointer;
  5704. }
  5705. .e_add_list_detail {
  5706. position: absolute;
  5707. bottom: 0;
  5708. height: 130px;
  5709. background: rgb(120, 120, 254);
  5710. width: 100%;
  5711. color: #fff;
  5712. font-size: 16px;
  5713. display: flex;
  5714. align-items: center;
  5715. justify-content: center;
  5716. }
  5717. .e_add_list_detail textarea {
  5718. height: 90%;
  5719. width: 95%;
  5720. border: none;
  5721. resize: none;
  5722. outline: none;
  5723. padding: 5px;
  5724. box-sizing: border-box;
  5725. }
  5726. .e_add_list_pbox {
  5727. width: 100%;
  5728. max-width: 650px;
  5729. /* height: 600px; */
  5730. }
  5731. .e_add_list_pbox_title {
  5732. height: 50px;
  5733. background: #fff;
  5734. display: flex;
  5735. align-items: center;
  5736. width: 100%;
  5737. box-sizing: border-box;
  5738. padding: 0 20px;
  5739. }
  5740. .type_title {
  5741. font-size: 18px;
  5742. font-weight: 700;
  5743. }
  5744. .type_content {
  5745. font-size: 16px;
  5746. margin-left: 30px;
  5747. }
  5748. .type_content span + span {
  5749. margin-left: 20px;
  5750. }
  5751. .type_content span {
  5752. cursor: pointer;
  5753. padding-bottom: 5px;
  5754. box-sizing: border-box;
  5755. }
  5756. .type_content .active {
  5757. color: #409eff;
  5758. border-bottom: 2px solid #409eff;
  5759. }
  5760. .e_add_list_pbox_content {
  5761. height: calc(100% - 50px);
  5762. display: flex;
  5763. align-items: center;
  5764. width: 100%;
  5765. background: #fff;
  5766. }
  5767. .evaCss {
  5768. display: flex;
  5769. flex-direction: row;
  5770. flex-wrap: nowrap;
  5771. align-items: flex-start;
  5772. }
  5773. .cru_line {
  5774. position: absolute;
  5775. bottom: 0px;
  5776. transition: all 0.5s;
  5777. left: 0px;
  5778. width: 125px;
  5779. margin-left: -25px;
  5780. }
  5781. .isNoMessage {
  5782. width: 20%;
  5783. margin: 25% auto 0;
  5784. }
  5785. .isNoMessage > img {
  5786. width: 100%;
  5787. height: 100%;
  5788. }
  5789. .fullStyle >>> .el-dialog__body {
  5790. height: 100% !important;
  5791. }
  5792. .fullStyle >>> .el-dialog,
  5793. .fullStyle {
  5794. width: 100% !important;
  5795. max-width: 100% !important;
  5796. height: 100% !important;
  5797. margin: 0 !important;
  5798. }
  5799. .full_diy >>> .el-dialog {
  5800. margin: 0 !important;
  5801. height: 100%;
  5802. padding: 4px;
  5803. }
  5804. .full_diy >>> .el-dialog__body {
  5805. height: calc(100% - 100px);
  5806. }
  5807. .full_diy2 >>> .el-dialog__body {
  5808. height: calc(100% - 50px);
  5809. padding: 0;
  5810. }
  5811. .switchCss {
  5812. /* width: 100%; */
  5813. display: flex;
  5814. flex-direction: row;
  5815. flex-wrap: nowrap;
  5816. align-items: center;
  5817. /* justify-content: center; */
  5818. }
  5819. .isClickNav {
  5820. color: #499eef;
  5821. }
  5822. .commentImg {
  5823. width: 25px;
  5824. height: 25px;
  5825. cursor: pointer;
  5826. }
  5827. .commentImg > img {
  5828. width: 100%;
  5829. height: 100%;
  5830. }
  5831. .comment {
  5832. background: #f9f9f9;
  5833. border-radius: 0 0 15px 15px;
  5834. display: flex;
  5835. flex-direction: row;
  5836. flex-wrap: nowrap;
  5837. align-items: center;
  5838. justify-content: flex-end;
  5839. height: 35px;
  5840. }
  5841. .commentList {
  5842. display: flex;
  5843. flex-direction: row;
  5844. flex-wrap: nowrap;
  5845. align-items: center;
  5846. justify-content: center;
  5847. align-content: center;
  5848. /* margin-left: 15px; */
  5849. margin-left: 8px;
  5850. }
  5851. .scoreImg {
  5852. width: 17px;
  5853. height: 17px;
  5854. }
  5855. .studentDetail {
  5856. display: flex;
  5857. flex-direction: row;
  5858. flex-wrap: nowrap;
  5859. /* align-items: center; */
  5860. align-items: flex-start;
  5861. }
  5862. .tx {
  5863. width: 50px;
  5864. }
  5865. .tx > img {
  5866. width: 100%;
  5867. height: 100%;
  5868. }
  5869. .nameAndTime {
  5870. display: flex;
  5871. flex-direction: column;
  5872. flex-wrap: nowrap;
  5873. align-items: flex-start;
  5874. margin-left: 10px;
  5875. }
  5876. .worksAnswer {
  5877. color: #4078dd;
  5878. margin: 10px 0;
  5879. font-size: 16px;
  5880. position: relative;
  5881. }
  5882. .worksAnswer > img {
  5883. width: 500px;
  5884. height: 300px;
  5885. object-fit: contain;
  5886. margin: 0 auto;
  5887. display: block;
  5888. }
  5889. .commentTop {
  5890. border-bottom: 1px solid #eaeaea;
  5891. padding-bottom: 10px;
  5892. }
  5893. .commentBox {
  5894. padding-top: 15px;
  5895. }
  5896. .pl {
  5897. font-size: 18px;
  5898. }
  5899. .plName {
  5900. display: flex;
  5901. flex-direction: row;
  5902. flex-wrap: nowrap;
  5903. align-items: baseline;
  5904. color: #78787a;
  5905. }
  5906. .evalCss {
  5907. background: #fff;
  5908. font-size: 18px;
  5909. }
  5910. .nav {
  5911. color: #9d9d9d;
  5912. padding: 5px 0 15px 20px;
  5913. }
  5914. .middleBox {
  5915. padding: 5px 0 15px 20px;
  5916. }
  5917. .pfBox {
  5918. padding-bottom: 30px;
  5919. }
  5920. .nameAndrate {
  5921. display: flex;
  5922. flex-direction: row;
  5923. flex-wrap: nowrap;
  5924. align-items: center;
  5925. padding-bottom: 10px;
  5926. }
  5927. .nameAndrate > div {
  5928. margin-left: 10px;
  5929. color: #000;
  5930. }
  5931. .pfBox > div:nth-child(2) {
  5932. background: #f7f6f9;
  5933. width: 400px;
  5934. min-height: 45px;
  5935. border-radius: 10px;
  5936. font-size: 16px;
  5937. display: flex;
  5938. flex-wrap: wrap;
  5939. align-items: center;
  5940. padding: 10px 20px;
  5941. box-sizing: border-box;
  5942. color: #000;
  5943. }
  5944. .bz {
  5945. display: flex;
  5946. flex-direction: row;
  5947. flex-wrap: nowrap;
  5948. align-items: flex-start;
  5949. }
  5950. .bz > div {
  5951. padding: 0 10px;
  5952. }
  5953. .select_box2_title {
  5954. background: #fff;
  5955. border-radius: 5px;
  5956. padding: 15px 10px;
  5957. box-sizing: border-box;
  5958. margin-bottom: 10px;
  5959. display: flex;
  5960. flex-direction: row;
  5961. flex-wrap: nowrap;
  5962. align-items: center;
  5963. }
  5964. .select_box2_title > div:nth-child(2) {
  5965. margin-left: 10px;
  5966. color: #c4c4c4;
  5967. }
  5968. .select_box2_box {
  5969. display: flex;
  5970. height: 500px;
  5971. }
  5972. .select_box2_img {
  5973. width: calc(100% - 310px);
  5974. height: 100%;
  5975. overflow: auto;
  5976. background: #fff;
  5977. border-radius: 5px;
  5978. }
  5979. .select_box2_img img {
  5980. width: 100%;
  5981. }
  5982. .select_box2_answer {
  5983. background: #fff;
  5984. margin-left: 10px;
  5985. border-radius: 5px;
  5986. width: 300px;
  5987. overflow: auto;
  5988. height: 90%;
  5989. display: flex;
  5990. flex-direction: column;
  5991. align-items: flex-start;
  5992. padding-top: 10px;
  5993. box-sizing: border-box;
  5994. position: relative;
  5995. }
  5996. .select_answer_title {
  5997. padding: 0 0 15px 20px;
  5998. color: #c4c4c4;
  5999. }
  6000. .select_box2_answer_box {
  6001. margin: 0 0 10px 20px;
  6002. width: 85%;
  6003. display: flex;
  6004. flex-direction: row;
  6005. flex-wrap: nowrap;
  6006. align-items: center;
  6007. }
  6008. .select_box2_answer_box >>> .el-input.is-disabled .el-input__inner {
  6009. color: #000;
  6010. }
  6011. .upAnswerCss {
  6012. position: absolute;
  6013. bottom: 15px;
  6014. right: 15px;
  6015. }
  6016. .upAnswerCss >>> .el-button {
  6017. width: 95px;
  6018. height: 35px;
  6019. line-height: 35px;
  6020. padding: 0;
  6021. }
  6022. .rightWidthCss {
  6023. width: 60%;
  6024. display: flex;
  6025. flex-direction: row;
  6026. align-items: flex-start;
  6027. }
  6028. .rightAnswer {
  6029. display: flex;
  6030. flex-direction: row;
  6031. flex-wrap: nowrap;
  6032. align-items: center;
  6033. color: red;
  6034. margin-bottom: 31px;
  6035. }
  6036. .rightAnswerCss {
  6037. display: flex;
  6038. flex-direction: column;
  6039. flex-wrap: nowrap;
  6040. padding-top: 60px;
  6041. }
  6042. .blueCss {
  6043. color: #767de1;
  6044. margin-left: 10px;
  6045. }
  6046. .redCss {
  6047. color: red;
  6048. }
  6049. .redioStyle >>> .el-radio__input.is-checked + .el-radio__label {
  6050. color: rgb(0 123 255) !important;
  6051. }
  6052. .redioStyle >>> .el-checkbox__input.is-checked + .el-checkbox__label {
  6053. color: rgb(0 123 255) !important;
  6054. }
  6055. .zuoyeYulan {
  6056. padding-top: 15px;
  6057. font-size: 18px;
  6058. display: flex;
  6059. align-items: flex-end;
  6060. }
  6061. .buttonA {
  6062. margin-left: 10px;
  6063. padding: 0;
  6064. }
  6065. .displayBox {
  6066. margin-bottom: 10px;
  6067. display: block;
  6068. border-bottom: 3px solid #eee;
  6069. display: flex;
  6070. align-items: center;
  6071. }
  6072. .easy_comment {
  6073. width: calc(100% - 90px);
  6074. margin-left: 10px;
  6075. display: flex;
  6076. flex-wrap: wrap;
  6077. }
  6078. .easy_comment > div {
  6079. border: 1px solid #4a4a4a;
  6080. color: #666;
  6081. border-radius: 15px;
  6082. padding: 5px 10px;
  6083. font-size: 16px;
  6084. margin-bottom: 10px;
  6085. margin-right: 5px;
  6086. cursor: pointer;
  6087. }
  6088. .easy_comment div:hover {
  6089. border: 1px solid #f7ba2a;
  6090. color: #c69217;
  6091. }
  6092. .xuan_right_box {
  6093. padding: 10px;
  6094. background: rgb(247, 247, 247);
  6095. margin: 10px 12px;
  6096. border-radius: 5px;
  6097. }
  6098. .tool_right_box {
  6099. display: flex;
  6100. align-items: center;
  6101. }
  6102. .tool_right_box + .tool_right_box {
  6103. margin-top: 10px;
  6104. }
  6105. .right_box_xuan {
  6106. background: rgb(0 123 255);
  6107. color: #fff;
  6108. border-radius: 5px;
  6109. padding: 5px;
  6110. margin-left: 10px;
  6111. }
  6112. .pButton:hover {
  6113. opacity: 1 !important;
  6114. }
  6115. .pButton {
  6116. position: fixed;
  6117. text-align: center;
  6118. cursor: pointer;
  6119. z-index: 999;
  6120. right: 20px;
  6121. top: 110px;
  6122. width: 50px;
  6123. height: 50px;
  6124. display: flex;
  6125. align-items: center;
  6126. justify-content: center;
  6127. border-radius: 5px;
  6128. }
  6129. .pzClass {
  6130. width: calc(100% - 340px);
  6131. }
  6132. .newDialogCss {
  6133. /* position: fixed;
  6134. right: 5%;
  6135. top: 50%;
  6136. width: 340px;
  6137. transform: translateY(-50%);
  6138. height: 60%;
  6139. box-shadow: 0px 0 8px 0px #555555;
  6140. border-radius: 15px;
  6141. z-index: 999; */
  6142. position: fixed;
  6143. right: 0;
  6144. top: 70px;
  6145. width: 340px;
  6146. height: calc(100% - 80px);
  6147. z-index: 999;
  6148. background: #fff;
  6149. border-radius: 15px;
  6150. border-top-right-radius: 0px;
  6151. border-bottom-right-radius: 0px;
  6152. overflow: hidden;
  6153. }
  6154. .pzTop {
  6155. color: #fff;
  6156. background: #000;
  6157. display: flex;
  6158. flex-direction: row;
  6159. flex-wrap: nowrap;
  6160. align-items: center;
  6161. justify-content: space-between;
  6162. height: 40px;
  6163. border-radius: 15px 15px 0 0;
  6164. user-select: none;
  6165. }
  6166. .pzTop2 .checkbox {
  6167. display: flex;
  6168. align-items: center;
  6169. padding: 15px 30px;
  6170. flex: 0 0 auto;
  6171. font-weight: bold;
  6172. border-bottom: 1px solid #eee;
  6173. justify-content: space-between;
  6174. }
  6175. .pzTop2 .check {
  6176. text-align: center;
  6177. cursor: pointer;
  6178. box-sizing: border-box;
  6179. display: flex;
  6180. }
  6181. .pzTop2 img {
  6182. width: 25px;
  6183. cursor: pointer;
  6184. }
  6185. .pzTop > div:nth-child(1) {
  6186. padding-left: 10px;
  6187. }
  6188. .pzTop > div:nth-child(2) {
  6189. width: 15px;
  6190. height: 15px;
  6191. padding-right: 10px;
  6192. cursor: pointer;
  6193. }
  6194. .pzTop > div:nth-child(2) > img {
  6195. width: 100%;
  6196. height: 100%;
  6197. }
  6198. .pzBox,
  6199. .noPzBox {
  6200. height: calc(100% - 60px);
  6201. /* background: #ededed; */
  6202. background: #fff;
  6203. /* border-radius: 0 0 15px 15px; */
  6204. }
  6205. .noPzBox {
  6206. display: flex;
  6207. flex-direction: column;
  6208. flex-wrap: nowrap;
  6209. justify-content: center;
  6210. align-items: center;
  6211. }
  6212. .pzList {
  6213. background: #f7f7f7;
  6214. width: 90%;
  6215. margin: 0 auto 15px;
  6216. border-radius: 5px;
  6217. }
  6218. .pzNavTop {
  6219. display: flex;
  6220. flex-direction: row;
  6221. flex-wrap: nowrap;
  6222. padding: 10px 10px 0 10px;
  6223. align-items: center;
  6224. }
  6225. .pzDelete {
  6226. cursor: pointer;
  6227. margin-left: auto;
  6228. font-size: 14px;
  6229. color: #afafaf;
  6230. }
  6231. .pzNavTop > div:nth-child(1) {
  6232. background: #3760af;
  6233. width: 35px;
  6234. height: 35px;
  6235. color: #fff;
  6236. text-align: center;
  6237. line-height: 35px;
  6238. border-radius: 50%;
  6239. font-size: 14px;
  6240. }
  6241. .pzNavTop > div:nth-child(2) {
  6242. font-size: 18px;
  6243. color: #959595;
  6244. margin-left: 5px;
  6245. }
  6246. .pzContent {
  6247. padding: 10px;
  6248. word-break: break-word;
  6249. }
  6250. .pzContent audio {
  6251. width: 100%;
  6252. }
  6253. .pzContent audio::-webkit-media-controls-panel {
  6254. background: #fff;
  6255. }
  6256. .pzContent >>> img {
  6257. max-width: 100%;
  6258. }
  6259. .pzListBox {
  6260. padding-top: 15px;
  6261. height: calc(100% - 60px);
  6262. overflow: auto;
  6263. }
  6264. .addPzButton {
  6265. position: relative;
  6266. margin-top: 3px;
  6267. width: 100%;
  6268. }
  6269. .addPzButton .img1 {
  6270. position: absolute;
  6271. top: 50%;
  6272. right: 25px;
  6273. transform: translateY(-50%);
  6274. height: 100%;
  6275. display: flex;
  6276. align-items: center;
  6277. }
  6278. .addPzButton .img1 div {
  6279. display: flex;
  6280. }
  6281. .addPzButton .img1 div img {
  6282. width: 28px;
  6283. margin-left: 10px;
  6284. cursor: pointer;
  6285. }
  6286. .addPzButton .img1 div span {
  6287. font-size: 14px;
  6288. margin: 4px 0 0 3px;
  6289. color: #afafaf;
  6290. }
  6291. .psTypeBox {
  6292. display: flex;
  6293. margin-top: 20px;
  6294. padding: 0px 0 0 30px;
  6295. }
  6296. .psTypeBox > span {
  6297. cursor: pointer;
  6298. }
  6299. .psTypeBox > span + span {
  6300. margin-left: 10px;
  6301. }
  6302. .psTypeBox .active {
  6303. color: #3e88f4;
  6304. border-bottom: 2px solid #2f80f3;
  6305. }
  6306. .psBox {
  6307. margin-bottom: 50px;
  6308. }
  6309. .psBox > div {
  6310. display: flex;
  6311. align-items: center;
  6312. margin-top: 20px;
  6313. padding: 0px 30px;
  6314. }
  6315. .psBox > div > span:nth-child(1) {
  6316. width: 280px;
  6317. font-size: 15px;
  6318. text-align: left;
  6319. margin-right: 10px;
  6320. }
  6321. .psBox > div > .number {
  6322. width: 100px;
  6323. text-align: center;
  6324. }
  6325. .addPz {
  6326. background: #4b79ce;
  6327. width: 100px;
  6328. color: #fff;
  6329. font-size: 12px;
  6330. height: 30px;
  6331. margin: 0 auto;
  6332. text-align: center;
  6333. line-height: 30px;
  6334. border-radius: 10px;
  6335. cursor: pointer;
  6336. }
  6337. .addDialogCss {
  6338. position: fixed;
  6339. width: 600px;
  6340. height: 70%;
  6341. min-height: 450px;
  6342. box-shadow: 0px 0 8px 0px #555555;
  6343. border-radius: 15px;
  6344. z-index: 999;
  6345. left: 50%;
  6346. top: 50%;
  6347. margin: -18% 0 0 -300px;
  6348. }
  6349. .teacherPz {
  6350. display: flex;
  6351. flex-direction: row;
  6352. align-items: center;
  6353. flex-wrap: nowrap;
  6354. }
  6355. .teacherPzImg {
  6356. width: 30px;
  6357. height: 30px;
  6358. }
  6359. .teacherPzImg > img {
  6360. width: 100%;
  6361. height: 100%;
  6362. }
  6363. .addPzBox {
  6364. height: calc(100% - 40px);
  6365. background: #ededed;
  6366. border-bottom-left-radius: 15px;
  6367. border-bottom-right-radius: 15px;
  6368. }
  6369. .pzAudioClass {
  6370. margin: 15px 14px;
  6371. background: #fff;
  6372. height: 100%;
  6373. display: flex;
  6374. justify-content: center;
  6375. align-items: center;
  6376. }
  6377. .pzConText {
  6378. width: 95%;
  6379. height: 100%;
  6380. margin: 10px auto 0;
  6381. border: none;
  6382. background: #fff;
  6383. border-radius: 0px;
  6384. }
  6385. .pzConText >>> .text {
  6386. height: calc(100% - 82px);
  6387. }
  6388. .addTextCss {
  6389. background: #4b79ce;
  6390. width: 80px;
  6391. height: 30px;
  6392. text-align: center;
  6393. color: #fff;
  6394. line-height: 30px;
  6395. border-radius: 10px;
  6396. margin: 10px auto 0;
  6397. cursor: pointer;
  6398. }
  6399. .pzConText:focus-visible {
  6400. border: none !important;
  6401. }
  6402. .maxWidth {
  6403. width: 1000px;
  6404. }
  6405. .noPz {
  6406. width: 150px;
  6407. margin: 0 auto 20%;
  6408. }
  6409. .noPz > img {
  6410. width: 100%;
  6411. height: 100%;
  6412. }
  6413. .pzList .time {
  6414. text-align: right;
  6415. box-sizing: border-box;
  6416. padding: 0 10px 10px 0px;
  6417. color: #949494;
  6418. font-size: 14px;
  6419. }
  6420. /* table 样式 */
  6421. .cont >>> table {
  6422. border-top: 1px solid #ccc;
  6423. border-left: 1px solid #ccc;
  6424. }
  6425. .cont >>> table td,
  6426. .cont >>> table th {
  6427. border-bottom: 1px solid #ccc;
  6428. border-right: 1px solid #ccc;
  6429. /* padding: 20px 5px; */
  6430. padding: 5px 10px;
  6431. max-width: 0px;
  6432. height: 30px;
  6433. vertical-align: baseline;
  6434. }
  6435. .cont >>> table th {
  6436. border-bottom: 2px solid #ccc;
  6437. text-align: center;
  6438. }
  6439. /* blockquote 样式 */
  6440. .cont >>> blockquote {
  6441. display: block;
  6442. border-left: 8px solid #d0e5f2;
  6443. padding: 5px 10px;
  6444. margin: 10px 0;
  6445. line-height: 1.4;
  6446. font-size: 100%;
  6447. background-color: #f1f1f1;
  6448. }
  6449. .addPzCheck {
  6450. display: flex;
  6451. flex-direction: row;
  6452. flex-wrap: nowrap;
  6453. padding: 10px 15px 0;
  6454. }
  6455. .addPzCheck span {
  6456. cursor: pointer;
  6457. padding-bottom: 5px;
  6458. font-weight: bold;
  6459. }
  6460. .addPzCheck span + span {
  6461. margin-left: 10px;
  6462. }
  6463. .addPzCheck .isChooseActive {
  6464. color: #3e88f4;
  6465. border-bottom: 2px solid #2f80f3;
  6466. }
  6467. /* code 样式 */
  6468. .cont >>> code {
  6469. display: inline-block;
  6470. /* *display: inline; */
  6471. zoom: 1;
  6472. background-color: #f1f1f1;
  6473. border-radius: 3px;
  6474. padding: 3px 5px;
  6475. margin: 0 3px;
  6476. }
  6477. .cont >>> pre code {
  6478. display: block;
  6479. }
  6480. /* ul ol 样式 */
  6481. .cont >>> ul,
  6482. ol {
  6483. margin: 10px 0 10px 20px;
  6484. }
  6485. .scoreBox,
  6486. .scoreDetailBox {
  6487. display: flex;
  6488. align-items: center;
  6489. justify-content: flex-start;
  6490. margin-top: 20px;
  6491. font-size: 18px;
  6492. width: 100%;
  6493. }
  6494. .scoreBox .t,
  6495. .scoreDetailBox .t {
  6496. margin-right: 10px;
  6497. width: 100px;
  6498. text-align: right;
  6499. }
  6500. .scoreDetailBox {
  6501. align-items: flex-start;
  6502. }
  6503. .scoreDetailBox >>> .el-textarea {
  6504. width: calc(100% - 200px);
  6505. }
  6506. .scoreBox >>> .el-input {
  6507. width: 130px;
  6508. font-size: 38px;
  6509. }
  6510. .scoreBox >>> .el-input__inner {
  6511. height: 60px;
  6512. }
  6513. .answerScore {
  6514. position: absolute;
  6515. top: 10px;
  6516. right: 10px;
  6517. background: #0000008f;
  6518. border-radius: 5px;
  6519. padding: 3px 5px;
  6520. font-size: 14px;
  6521. color: #fff;
  6522. cursor: pointer;
  6523. }
  6524. .open_box .switch_box {
  6525. width: 100%;
  6526. margin: 0 auto;
  6527. display: flex;
  6528. justify-content: space-between;
  6529. }
  6530. .open_box .switch_box + .switch_box {
  6531. margin-top: 10px;
  6532. }
  6533. .deleteImg {
  6534. width: 25px !important;
  6535. height: 25px !important;
  6536. cursor: pointer;
  6537. position: absolute;
  6538. top: 10px;
  6539. right: 10px;
  6540. }
  6541. .deleteImg2 {
  6542. width: 15px !important;
  6543. height: 15px !important;
  6544. top: 5px;
  6545. right: 5px;
  6546. }
  6547. .rightW {
  6548. right: 40px;
  6549. }
  6550. .drawPBox {
  6551. display: flex;
  6552. flex-direction: column;
  6553. position: relative;
  6554. }
  6555. .drawPBox span {
  6556. font-size: 18px;
  6557. color: #606266;
  6558. padding-bottom: 10px;
  6559. margin: 10px 0;
  6560. border-bottom: 1px solid #eaeaea;
  6561. }
  6562. .drawPBox img {
  6563. width: 500px;
  6564. height: 300px;
  6565. object-fit: contain;
  6566. cursor: pointer;
  6567. margin: 0 auto;
  6568. }
  6569. .sentenBox {
  6570. background: #fff;
  6571. height: 450px;
  6572. overflow: auto;
  6573. background-image: url("../../assets/icon/conSentences/stuBg.png");
  6574. background-position: 102%;
  6575. background-repeat: no-repeat;
  6576. background-size: 60%;
  6577. }
  6578. .addSen {
  6579. background: #409efe;
  6580. width: 90px;
  6581. color: #fff;
  6582. height: 35px;
  6583. text-align: center;
  6584. line-height: 35px;
  6585. border-radius: 5px;
  6586. float: right;
  6587. margin: 10px 20px 0 0;
  6588. cursor: pointer;
  6589. }
  6590. .sentenTop {
  6591. display: flex;
  6592. flex-direction: row;
  6593. flex-wrap: nowrap;
  6594. align-items: center;
  6595. padding: 55px 0 0 20px;
  6596. box-sizing: border-box;
  6597. }
  6598. .sentenTop > div:nth-child(2) {
  6599. width: 300px;
  6600. margin: 0 15px;
  6601. }
  6602. .sentenTop > div:nth-child(3) {
  6603. background: #409efe;
  6604. color: #fff;
  6605. width: 65px;
  6606. height: 35px;
  6607. text-align: center;
  6608. line-height: 35px;
  6609. border-radius: 5px;
  6610. cursor: pointer;
  6611. }
  6612. .cardList,
  6613. .cardList1 {
  6614. padding: 10px 0 10px 0;
  6615. display: flex;
  6616. flex-direction: row;
  6617. flex-wrap: wrap;
  6618. align-items: center;
  6619. box-sizing: border-box;
  6620. border-bottom: 1px solid #f4f4f4;
  6621. width: 98%;
  6622. margin: 0 auto;
  6623. min-width: 60%;
  6624. max-width: 85%;
  6625. }
  6626. .cardList1 {
  6627. padding: 10px 0 10px 10px !important;
  6628. margin: 0 !important;
  6629. }
  6630. .cardBox {
  6631. display: flex;
  6632. flex-direction: row;
  6633. flex-wrap: wrap;
  6634. align-items: center;
  6635. align-content: center;
  6636. }
  6637. .cardBox > div {
  6638. margin-bottom: 10px;
  6639. }
  6640. .isCard,
  6641. .isChooseCard,
  6642. .noCard,
  6643. .isCard1 {
  6644. min-width: 130px;
  6645. width: auto;
  6646. height: 60px;
  6647. text-align: center;
  6648. line-height: 60px;
  6649. font-size: 20px;
  6650. cursor: pointer;
  6651. background-image: url("../../assets/icon/conSentences/titleBorder.png");
  6652. background-size: cover;
  6653. transition: all 2s;
  6654. margin-right: 20px;
  6655. background-size: 100% 100%;
  6656. padding: 0 20px;
  6657. box-sizing: border-box;
  6658. }
  6659. .isCard > div,
  6660. .noCard > div,
  6661. .isCard1 > div {
  6662. white-space: nowrap;
  6663. overflow: hidden;
  6664. text-overflow: ellipsis;
  6665. width: 100%;
  6666. margin: 0 auto;
  6667. }
  6668. .noCard {
  6669. background-image: none;
  6670. }
  6671. .isCard1 {
  6672. background-image: url("../../assets/icon/conSentences/answerBorder.png");
  6673. }
  6674. .isChooseCard {
  6675. background-image: none;
  6676. border: 1px dashed #b9b9b9;
  6677. border-radius: 10px;
  6678. }
  6679. .card {
  6680. width: 130px;
  6681. height: 60px;
  6682. }
  6683. .card > img {
  6684. width: 100%;
  6685. height: 100%;
  6686. }
  6687. .rightCardBox {
  6688. margin: 10px 0 0 10px;
  6689. }
  6690. .rightCardBox > div:nth-child(1) {
  6691. margin-bottom: 10px;
  6692. }
  6693. .cardCss {
  6694. display: flex;
  6695. flex-direction: column;
  6696. flex-wrap: nowrap;
  6697. align-items: center;
  6698. border-bottom: 3px solid #b4c3d3;
  6699. padding: 0 0 5px 0;
  6700. margin-right: 10px;
  6701. }
  6702. .cardCss > div:nth-child(2) {
  6703. background: #5b7b9d;
  6704. color: #fff;
  6705. width: 20px;
  6706. height: 20px;
  6707. border-radius: 50%;
  6708. text-align: center;
  6709. line-height: 20px;
  6710. }
  6711. .isWrong {
  6712. display: flex;
  6713. flex-direction: row;
  6714. flex-wrap: nowrap;
  6715. align-content: center;
  6716. align-items: center;
  6717. }
  6718. .answerRight {
  6719. width: 25%;
  6720. }
  6721. .isTj {
  6722. display: flex;
  6723. flex-direction: row;
  6724. flex-wrap: nowrap;
  6725. align-items: center;
  6726. }
  6727. .isTj > div:nth-child(2) {
  6728. color: #727070;
  6729. margin-left: 10px;
  6730. }
  6731. .isTjImg {
  6732. width: 30px;
  6733. height: 30px;
  6734. }
  6735. .isTjImg > img {
  6736. width: 100%;
  6737. height: 100%;
  6738. }
  6739. .cardAnswerBox {
  6740. font-size: 18px;
  6741. width: 97%;
  6742. border: 5px;
  6743. padding: 0;
  6744. border-radius: 5px;
  6745. margin: 10px auto;
  6746. word-break: break-word;
  6747. }
  6748. .w_name {
  6749. margin-bottom: 10px;
  6750. }
  6751. .w_name span {
  6752. font-size: 16px;
  6753. }
  6754. .w_teachert {
  6755. width: 50px !important;
  6756. position: absolute;
  6757. height: auto !important;
  6758. z-index: 10;
  6759. right: 25px;
  6760. top: -25px;
  6761. }
  6762. .group_workBox {
  6763. }
  6764. .group_workBox + .group_workBox {
  6765. margin-top: 20px;
  6766. }
  6767. .group_box {
  6768. padding-bottom: 20px;
  6769. border-bottom: 2px solid #f0f0f0;
  6770. }
  6771. .group_title {
  6772. display: flex;
  6773. align-items: center;
  6774. justify-content: space-between;
  6775. }
  6776. .group_name {
  6777. background-image: url(../../assets/icon/groupN.png);
  6778. width: 220px;
  6779. background-size: 100% 100%;
  6780. height: 67px;
  6781. padding: 0 20px 0 43px;
  6782. box-sizing: border-box;
  6783. line-height: 63px;
  6784. color: #fff;
  6785. overflow: hidden;
  6786. white-space: nowrap;
  6787. text-overflow: ellipsis;
  6788. }
  6789. .group_work {
  6790. width: 100%;
  6791. padding: 0 10px;
  6792. box-sizing: border-box;
  6793. display: flex;
  6794. flex-wrap: wrap;
  6795. }
  6796. .g_d_box {
  6797. display: flex;
  6798. flex-flow: wrap;
  6799. justify-content: space-around;
  6800. }
  6801. .g_d_box .isChair {
  6802. background-image: url(../../assets/avatar.png) !important;
  6803. }
  6804. .g_d_group {
  6805. width: 500px;
  6806. margin-bottom: 80px;
  6807. }
  6808. .g_d_group_chair {
  6809. display: flex;
  6810. align-items: center;
  6811. justify-content: center;
  6812. }
  6813. .g_d_group_chair > div + div {
  6814. margin-left: 30px;
  6815. }
  6816. .g_d_group_chair > div,
  6817. .g_d_group_chair2 > div {
  6818. display: flex;
  6819. flex-direction: column;
  6820. align-items: center;
  6821. }
  6822. .g_d_group_chair > div > span:nth-child(1),
  6823. .g_d_group_chair2 > div > span:nth-child(1) {
  6824. background-image: url(../../assets/icon/chair.png);
  6825. width: 50px;
  6826. height: 50px;
  6827. display: block;
  6828. background-size: 100% 100%;
  6829. }
  6830. .g_d_group_tableBox {
  6831. display: flex;
  6832. align-items: center;
  6833. justify-content: center;
  6834. }
  6835. .g_d_group_chair2 {
  6836. display: flex;
  6837. flex-direction: column;
  6838. align-items: center;
  6839. justify-content: center;
  6840. }
  6841. .g_d_group_chair2 > div + div {
  6842. margin-top: 10px;
  6843. }
  6844. .g_d_group_table {
  6845. background-image: url(../../assets/icon/groupBg.png);
  6846. width: 354px;
  6847. height: 196px;
  6848. background-size: 100% 100%;
  6849. display: flex;
  6850. align-items: center;
  6851. justify-content: center;
  6852. flex-direction: column;
  6853. color: #fff;
  6854. }
  6855. .g_d_group_table > div:nth-child(1) {
  6856. font-size: 24px;
  6857. margin-bottom: 5px;
  6858. }
  6859. .g_d_group_table > div:nth-child(2) div {
  6860. cursor: pointer;
  6861. background: #2e77bf;
  6862. padding: 4px 10px;
  6863. border-radius: 5px;
  6864. }
  6865. .groupBox {
  6866. }
  6867. .groupContent + .groupContent {
  6868. margin-top: 30px;
  6869. }
  6870. .groupTitle {
  6871. font-size: 24px;
  6872. color: rgb(80, 80, 80);
  6873. margin-bottom: 20px;
  6874. }
  6875. .groupName {
  6876. display: flex;
  6877. align-items: center;
  6878. }
  6879. .groupn {
  6880. font-size: 15px;
  6881. margin-right: 10px;
  6882. }
  6883. .groupName + .groupName {
  6884. margin-top: 15px;
  6885. }
  6886. .groupBtn {
  6887. margin-left: 10px;
  6888. }
  6889. .groupContent >>> .el-input-number.is-without-controls .el-input__inner {
  6890. text-align: left;
  6891. }
  6892. .g_d_btnBox {
  6893. display: flex;
  6894. justify-content: flex-end;
  6895. align-items: flex-end;
  6896. margin-bottom: 20px;
  6897. }
  6898. .updateChair {
  6899. position: relative;
  6900. }
  6901. .updateChairBtn {
  6902. position: absolute;
  6903. width: 50px;
  6904. height: 50px;
  6905. overflow: hidden;
  6906. /* display: flex; */
  6907. align-items: center;
  6908. justify-content: center;
  6909. background: #00000087;
  6910. color: #fff;
  6911. border-radius: 50px;
  6912. display: none;
  6913. cursor: pointer;
  6914. }
  6915. .updateChair:hover .updateChairBtn {
  6916. display: flex;
  6917. }
  6918. .group_staic_box {
  6919. display: flex;
  6920. padding: 30px 40px 10px;
  6921. flex-wrap: wrap;
  6922. }
  6923. .group_staic {
  6924. /* width: 50%; */
  6925. margin-bottom: 20px;
  6926. display: flex;
  6927. align-items: center;
  6928. }
  6929. .group_staic span:nth-child(1) {
  6930. width: 150px;
  6931. text-align: right;
  6932. margin-right: 15px;
  6933. }
  6934. .group_staic span:nth-child(2) {
  6935. background: rgb(0 123 255);
  6936. color: #fff;
  6937. border-radius: 5px;
  6938. padding: 5px;
  6939. }
  6940. .homeWorkBox {
  6941. margin: 10px 0;
  6942. padding: 0 10px;
  6943. }
  6944. .homeWorkBox .htitle {
  6945. margin: 0 0 15px 30px;
  6946. font-size: 18px;
  6947. }
  6948. .toolPhoto_box {
  6949. display: flex;
  6950. flex-wrap: wrap;
  6951. margin: 0 0 0 25px;
  6952. }
  6953. .photo_box {
  6954. margin: 10px 25px 0 0;
  6955. display: flex;
  6956. align-items: flex-start;
  6957. flex-direction: column;
  6958. }
  6959. .photo_box > span {
  6960. margin-bottom: 10px;
  6961. }
  6962. .toolPhoto {
  6963. width: 200px;
  6964. height: 105px;
  6965. border-radius: 5px;
  6966. box-shadow: rgb(223 218 218) 0px 0px 6px 1px;
  6967. cursor: pointer;
  6968. }
  6969. .toolPhoto img {
  6970. height: 100%;
  6971. width: 100%;
  6972. /* object-fit: contain; */
  6973. object-fit: cover;
  6974. border-radius: 5px;
  6975. }
  6976. .task_box {
  6977. margin: 15px auto 5px;
  6978. width: calc(100% - 60px);
  6979. display: flex;
  6980. flex-wrap: wrap;
  6981. }
  6982. .task_pbox + .task_pbox {
  6983. margin-left: 20px;
  6984. }
  6985. .tcMember + .tcMember::before {
  6986. content: "、";
  6987. }
  6988. .selectBox {
  6989. width: 110px;
  6990. margin-left: 10px;
  6991. margin: 0 10px 0 auto;
  6992. }
  6993. .selectBox >>> .el-input__inner {
  6994. height: 30px;
  6995. line-height: 30px;
  6996. }
  6997. .selectBox >>> .el-input__icon {
  6998. line-height: 30px;
  6999. }
  7000. .timeAndReply {
  7001. display: flex;
  7002. flex-direction: row;
  7003. flex-wrap: nowrap;
  7004. justify-content: space-between;
  7005. align-items: center;
  7006. font-size: 14px;
  7007. box-sizing: border-box;
  7008. padding: 0 10px 10px 0px;
  7009. }
  7010. .timeAndReply .time {
  7011. color: #bfbfbf;
  7012. padding: 0 0 0 10px;
  7013. box-sizing: border-box;
  7014. }
  7015. .timeAndReply > div:last-child {
  7016. cursor: pointer;
  7017. color: #777;
  7018. }
  7019. .hfBox {
  7020. padding: 10px;
  7021. box-sizing: border-box;
  7022. }
  7023. .whoReplyWho {
  7024. display: flex;
  7025. flex-direction: row;
  7026. flex-wrap: nowrap;
  7027. align-items: baseline;
  7028. justify-content: flex-start;
  7029. }
  7030. .hfBottom {
  7031. display: flex;
  7032. flex-direction: row;
  7033. flex-wrap: nowrap;
  7034. align-items: center;
  7035. justify-content: space-between;
  7036. font-size: 14px;
  7037. }
  7038. .deleteHfItem {
  7039. cursor: pointer;
  7040. width: 20px;
  7041. height: 20px;
  7042. }
  7043. .deleteHfItem > img {
  7044. width: 100%;
  7045. height: 100%;
  7046. }
  7047. .whoReplyWho > .hfImg {
  7048. width: 12px;
  7049. height: 12px;
  7050. margin: 0 5px;
  7051. }
  7052. .whoReplyWho > .hfImg > img {
  7053. width: 100%;
  7054. height: 100%;
  7055. }
  7056. .hfContent {
  7057. padding-top: 10px;
  7058. box-sizing: border-box;
  7059. display: -webkit-box;
  7060. overflow: hidden;
  7061. white-space: normal !important;
  7062. text-overflow: ellipsis;
  7063. word-wrap: break-word;
  7064. -webkit-box-orient: vertical;
  7065. }
  7066. .hfTime {
  7067. text-align: left;
  7068. box-sizing: border-box;
  7069. padding: 10px 0 10px 0px;
  7070. color: #bfbfbf;
  7071. font-size: 14px;
  7072. }
  7073. .reBtnIcon,
  7074. .commentIcon {
  7075. height: 36px;
  7076. border-radius: 4px;
  7077. position: relative;
  7078. background: #0061ff;
  7079. cursor: pointer;
  7080. margin-right: 12px;
  7081. display: flex;
  7082. align-items: center;
  7083. padding: 0 10px;
  7084. box-sizing: border-box;
  7085. font-size: 14px;
  7086. color: #fff;
  7087. }
  7088. .reBtnIcon::before,
  7089. .commentIcon::before {
  7090. content: "";
  7091. display: block;
  7092. background-size: 100% 100%;
  7093. background-repeat: no-repeat;
  7094. width: 20px;
  7095. height: 20px;
  7096. margin-right: 5px;
  7097. }
  7098. .reBtnIcon::before {
  7099. background-image: url("../../assets/icon/newIcons/refresh.png");
  7100. }
  7101. .commentIcon::before {
  7102. background-image: url("../../assets/icon/newIcons/comment.png");
  7103. }
  7104. .mlImg {
  7105. width: 40px !important;
  7106. min-width: 40px;
  7107. cursor: pointer;
  7108. transform: rotate(180deg);
  7109. }
  7110. .mlImg > img {
  7111. width: 100%;
  7112. height: 100%;
  7113. }
  7114. .stageBoxCss,
  7115. .stageBoxIsCss {
  7116. display: flex;
  7117. flex-direction: row;
  7118. flex-wrap: nowrap;
  7119. align-items: center;
  7120. height: 50px;
  7121. border-bottom: 1px solid #e2f5fc;
  7122. cursor: pointer;
  7123. width: 100%;
  7124. }
  7125. .stageBoxIsCss {
  7126. background: #0061ff;
  7127. color: #fff;
  7128. border-radius: 8px;
  7129. }
  7130. .stageItemTitle {
  7131. display: flex;
  7132. flex-direction: row;
  7133. flex-wrap: nowrap;
  7134. align-items: center;
  7135. margin-left: 15px;
  7136. width: calc(100% - 50px);
  7137. }
  7138. .stageItemTitle > div:first-child {
  7139. min-width: 55px;
  7140. }
  7141. .stageItemTitle > div:last-child {
  7142. max-width: 242px;
  7143. white-space: nowrap;
  7144. overflow: hidden;
  7145. text-overflow: ellipsis;
  7146. word-break: break-word;
  7147. width: calc(100% - 55px);
  7148. }
  7149. .closeTri,
  7150. .closeTri1 {
  7151. min-width: 15px;
  7152. width: 15px;
  7153. height: 15px;
  7154. transition: all 0.5s;
  7155. }
  7156. .closeTri1 {
  7157. padding-left: 10px;
  7158. cursor: pointer;
  7159. }
  7160. .closeTri > img,
  7161. .closeTri1 > img {
  7162. width: 100%;
  7163. height: 100%;
  7164. /* transition: all .5s; */
  7165. }
  7166. .navItem {
  7167. background: #ffffff;
  7168. border-radius: 4px;
  7169. width: 100%;
  7170. margin: 10px auto;
  7171. position: relative;
  7172. height: 40px;
  7173. display: flex;
  7174. flex-direction: row;
  7175. flex-wrap: nowrap;
  7176. align-items: center;
  7177. }
  7178. .navItemList {
  7179. display: flex;
  7180. flex-direction: row;
  7181. flex-wrap: nowrap;
  7182. align-items: center;
  7183. padding: 0 13px;
  7184. cursor: pointer;
  7185. width: calc(100% - 60px);
  7186. height: 100%;
  7187. }
  7188. .navItemList > div:first-child {
  7189. min-width: 60px;
  7190. }
  7191. .navItemList > div:last-child {
  7192. width: calc(100% - 80px);
  7193. white-space: nowrap;
  7194. overflow: hidden;
  7195. text-overflow: ellipsis;
  7196. word-break: break-word;
  7197. }
  7198. .noToolBlue {
  7199. min-width: 10px;
  7200. width: 10px;
  7201. height: 10px;
  7202. background: #0061ff;
  7203. border-radius: 50%;
  7204. margin-left: 13px;
  7205. }
  7206. .stageChild,
  7207. .toolChild {
  7208. height: 0;
  7209. overflow: hidden;
  7210. transition: all 0.5s;
  7211. }
  7212. .toolChild {
  7213. /* margin: 0 0 0 17px;
  7214. padding: 0 0 0 20px;
  7215. border-left: 1px solid #d7d7d7; */
  7216. }
  7217. .toolChild > div + div {
  7218. margin-top: 5px;
  7219. }
  7220. .gjCss {
  7221. display: flex;
  7222. flex-direction: row;
  7223. flex-wrap: nowrap;
  7224. align-items: center;
  7225. padding: 10px 0 10px 40px;
  7226. box-sizing: border-box;
  7227. font-size: 14px;
  7228. cursor: pointer;
  7229. border-radius: 5px;
  7230. }
  7231. .isGjCss {
  7232. /* color: #0061ff; */
  7233. color: #fff;
  7234. background: rgb(55, 129, 252);
  7235. /* background-color: #e0eafb !important;
  7236. color: #0061ff !important; */
  7237. }
  7238. .toolChild > div {
  7239. position: relative;
  7240. width: 100%;
  7241. }
  7242. .navCorOpenBox {
  7243. display: flex;
  7244. flex-direction: row;
  7245. align-items: center;
  7246. justify-content: space-between;
  7247. height: 55px;
  7248. background: #ffffff;
  7249. box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.1);
  7250. border-radius: 8px 8px 0px 0px;
  7251. z-index: 9;
  7252. position: relative;
  7253. }
  7254. .navCorOpen {
  7255. padding-right: 15px;
  7256. cursor: pointer;
  7257. width: 45px;
  7258. display: flex;
  7259. }
  7260. .navListItem {
  7261. width: calc(100% - 20px);
  7262. height: 50px;
  7263. margin: 0px auto 10px;
  7264. display: flex;
  7265. flex-direction: row;
  7266. flex-wrap: nowrap;
  7267. align-items: center;
  7268. justify-content: space-between;
  7269. background: #f0f4fa;
  7270. border-radius: 6px 6px 6px 6px;
  7271. }
  7272. .navText {
  7273. cursor: pointer;
  7274. white-space: nowrap;
  7275. overflow: hidden;
  7276. text-overflow: ellipsis;
  7277. width: 220px;
  7278. padding: 0 10px;
  7279. font-weight: 400;
  7280. color: #0e1e33;
  7281. }
  7282. </style>