course.vue 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339
  1. <template>
  2. <div class="pb_content" style="height: auto; width: 94%; margin: 10px auto;background: unset;"
  3. :class="[gotype? 'liyuan':'']"
  4. >
  5. <backPage style="padding: 30px 0 0;" v-if="gotype" tit="课程管理"></backPage>
  6. <div style="width:100%;padding:0 21px;background:#fff;border-radius: 5px;box-sizing: border-box;">
  7. <div class="pb_head top">
  8. <div v-if="!gotype" style="
  9. display: flex;
  10. align-items: center;
  11. ">
  12. <span class="sub_head">课程管理</span>
  13. <span class="subClick" @click="
  14. goTo(
  15. '/works?userid=' +
  16. userid +
  17. '&oid=' +
  18. oid +
  19. '&org=' +
  20. org +
  21. '&role=' +
  22. role
  23. )
  24. ">评价管理</span>
  25. </div>
  26. <div v-if="gotype"></div>
  27. <div class="student_button">
  28. <!-- <el-button type="primary" class="bgColor" @click="openCourse">协同编辑</el-button> -->
  29. <!-- <el-button type="primary" class="bgColor" @click="goToCourse3()">创建极简式课程</el-button>
  30. <el-button type="primary" class="bgColor" @click="goToCourse2()">创建任务式课程</el-button>
  31. <el-button type="primary" class="bgColor" @click="goToCourse()">创建阶段式课程</el-button> -->
  32. <button class="r_pub_button_course" @mouseenter="btnDisplay = true" @mouseleave="btnDisplay = false">
  33. <span>创建课程</span>
  34. <div v-show="btnDisplay" class="buttonBox">
  35. <div type="primary" @click="goToCourse3()">极简式课程</div>
  36. <!-- <div type="primary" @click="goToCourse2()">任务式课程</div> -->
  37. <!-- <div type="primary" @click="goToCourse()">阶段式课程</div> -->
  38. <div type="primary" @click="goToCourse4()">阶段式课程</div>
  39. <!-- v-show="org == '1973f6c7-1561-11ee-91d8-005056b86db5' || org == '777559d2-7239-11ee-b98c-005056b86db5' || org == '884c5665-a453-46f3-b7b6-01d575290aa9'" -->
  40. <div type="primary" @click="oepnTemplate()" v-show="orgArray.includes(org) || oidArray.includes(oid)">AI模式</div>
  41. <div type="primary" @click="oepnTemplate2()" v-show="orgArray.includes(org) || oidArray.includes(oid)">上课模式</div>
  42. <!-- oepnTemplate2 -->
  43. </div>
  44. </button>
  45. </div>
  46. </div>
  47. <div class="reBox">
  48. <div class="reTop">
  49. <!-- <div>分类筛选</div> -->
  50. <div class="reTopCh">
  51. <el-select v-model="groupA" @change="search" v-if="role == '1'">
  52. <el-option value="4" label="全部"></el-option>
  53. <el-option value="2" label="我的课程"></el-option>
  54. <el-option value="3" label="协同课程"></el-option>
  55. <el-option value="1" label="他人课程"></el-option>
  56. </el-select>
  57. <el-select v-model="groupA" @change="search" v-else>
  58. <el-option value="0" label="全部"></el-option>
  59. <el-option value="2" label="我的课程"></el-option>
  60. <el-option value="3" label="协同课程"></el-option>
  61. </el-select>
  62. <div class="searchI">
  63. <!-- @click="getCourse" -->
  64. <div class="search">
  65. <img src="../../assets/icon/search.png" alt="" />
  66. </div>
  67. <input class="sInput" type="text" placeholder="请输入关键字" v-model="courseName" />
  68. </div>
  69. <el-button type="primary" class="bgColor" style="margin-left: 10px;" @click="reset">重置</el-button>
  70. </div>
  71. </div>
  72. <div class="pType_box all_choose" v-if="oid == '69893dca-1d47-11ed-8c78-005056b86db5'">
  73. <span><span>类型</span></span>
  74. <el-radio-group v-model="pTypeCheckName" style="display: flex; align-items: center">
  75. <div class="all_choose" style="width: 100px" v-for="(item, index) in CourseType2" :key="index">
  76. <el-radio :label="item.name" @click.native.prevent="CourseType2Click(item.name)">{{ item.name }}</el-radio>
  77. </div>
  78. </el-radio-group>
  79. </div>
  80. <div class="choose">
  81. <div v-if="oid != '91796dfb-8791-11ef-9b30-005056b86db5'" class="all_choose" v-for="(item, index) in CourseType[0]" :key="index"
  82. :style="{ margin: !CourseTypeJson[item.id].length && 0 }">
  83. <span v-if="CourseTypeJson[item.id].length &&
  84. (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
  85. ? pTypeCheck.indexOf(item.id) != -1
  86. : true)
  87. "><span>{{ item.name }}</span></span>
  88. <div class="typeCss" v-if="CourseTypeJson[item.id].length &&
  89. (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
  90. ? pTypeCheck.indexOf(item.id) != -1
  91. : true)
  92. ">
  93. <div class="cName" @click="getCourse2(item.name, '', item.id, 1)"
  94. :class="typeE.indexOf(item.id) != -1 ? 'isCType' : ''">
  95. 全部
  96. </div>
  97. <div v-for="(item1, index1) in CourseTypeJson[item.id]" :key="index + '-' + index1" :label="item1.id"
  98. @click="getCourse2(item.name, item.id, item1.id, 2)">
  99. <div class="cName" :class="typea == item1.id || typeb == item1.id || typed == item1.id
  100. ? 'isCType'
  101. : ''
  102. ">
  103. {{ item1.name }}
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="all_choose" v-if="role == '1'">
  109. <span><span>所有者</span></span>
  110. <div class="typeCss">
  111. <div class="cName" :class="groupA == '4' ? 'isCType' : ''" @click="groupA = '4'; search();">
  112. 全部
  113. </div>
  114. <div class="cName" :class="groupA == '2' ? 'isCType' : ''" @click="groupA = '2'; search();">
  115. 我的课程
  116. </div>
  117. <div class="cName" :class="groupA == '3' ? 'isCType' : ''" @click="groupA = '3'; search();">
  118. 协同课程
  119. </div>
  120. <div class="cName" :class="groupA == '1' ? 'isCType' : ''" @click="groupA = '1'; search();">
  121. 他人课程
  122. </div>
  123. </div>
  124. </div>
  125. <div class="all_choose" v-else>
  126. <span><span>所有者</span></span>
  127. <div class="typeCss">
  128. <div class="cName" :class="groupA == '0' ? 'isCType' : ''" @click="groupA = '0'; search();">
  129. 全部
  130. </div>
  131. <div class="cName" :class="groupA == '2' ? 'isCType' : ''" @click="groupA = '2'; search();">
  132. 我的课程
  133. </div>
  134. <div class="cName" :class="groupA == '3' ? 'isCType' : ''" @click="groupA = '3'; search();">
  135. 协同课程
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="line"></div>
  143. <div class="pb_content_body" style="height: 100%;width: 100%;background: #e6eaf0;margin: 0 auto;">
  144. <div class="student_head" v-if="false">
  145. <div class="choose">
  146. <div class="student_search">
  147. <span>课程筛选</span>
  148. <el-select v-model="groupA" @change="search">
  149. <el-option value="0" label="我的课程"></el-option>
  150. <el-option value="1" label="他人课程"></el-option>
  151. </el-select>
  152. </div>
  153. <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
  154. <span v-if="CourseTypeJson[item.id].length">{{ item.name }}</span>
  155. <el-select v-if="CourseTypeJson[item.id].length" v-model="courseTypeId[item.id]" placeholder="请选择"
  156. @change="getTypeName">
  157. <el-option label="全部" value="1">全部</el-option>
  158. <el-option v-for="item1 in CourseTypeJson[item.id]" :key="item1.id" :label="item1.name" :value="item1.id">
  159. </el-option>
  160. </el-select>
  161. </div>
  162. <div @click="clear" class="clear">重置</div>
  163. </div>
  164. <div class="student_right">
  165. <div class="head_left">
  166. <el-input v-model="courseName" class="student_input" placeholder="请输入课程名称"></el-input>
  167. <el-button class="course_button" @click="searchCourse">查询</el-button>
  168. </div>
  169. </div>
  170. </div>
  171. <div class="student_table" v-loading="isLoading">
  172. <div class="course_box">
  173. <div class="out_box" v-for="(item, index) in course" :key="index">
  174. <!-- <div class="myCourse" v-if="item.isCourseType == 1 && groupA == 0">
  175. 我的课程
  176. </div>
  177. <div class="myCourse" v-else-if="groupA == 1">
  178. 他人课程
  179. </div>
  180. <div class="xtCourse" v-else>协同课程</div> -->
  181. <div class="myCourse" v-if="item.userid == userid">我的课程</div>
  182. <div class="myCourse" style="background: #4187f0" v-else-if="!item.course_teacher ||
  183. (item.course_teacher &&
  184. item.course_teacher.indexOf(userid) == -1)
  185. ">
  186. 他人课程
  187. </div>
  188. <div class="xtCourse" v-else>协同课程</div>
  189. <div class="tup" @click="get(item)">
  190. <img :src="item.cover != null && item.cover != ''
  191. ? JSON.parse(item.cover).length > 0
  192. ? JSON.parse(item.cover)[0].url
  193. : mr
  194. : mr
  195. " alt />
  196. </div>
  197. <!-- <div class="bottom_box">
  198. <div>{{ item.title }}</div>
  199. <div class="kc_t" v-if="groupA == '1'">
  200. 创建老师:{{ item.uname }}
  201. </div>
  202. <div class="kc_time">{{ item.time }}</div>
  203. </div> -->
  204. <div class="bottom_box">
  205. <div>
  206. <el-tooltip :content="item.title" popper-class="text_tooltip" placement="top" effect="dark">
  207. <span>{{ item.title }}</span>
  208. </el-tooltip>
  209. </div>
  210. <!-- v-if="item.isCourseType == 2 || groupA == 1" -->
  211. <div class="kc_t">
  212. <span>{{ item.uname }}</span>
  213. <span>{{ item.state == 1 ? '阶段模式' : item.state == 2 ? '任务模式' : item.state == 3 ? '极简模式' : item.state == 6 ? '上课模式' : 'AI模式' }}</span>
  214. </div>
  215. <div class="kc_time">
  216. <span style="color: #717C8D">创建日期:</span>{{ item.time }}
  217. </div>
  218. <div class="kc_time">
  219. <span style="color: #717C8D">修改日期:</span>{{ item.utime }}
  220. </div>
  221. </div>
  222. <div class="three_bottom">
  223. <el-tooltip effect="dark" content="预览" placement="top">
  224. <div class="t_b_Item" @click="get(item)">
  225. <img style="height: 90%;width: 90%;" src="../../assets/icon/course/lookeye.svg">
  226. </div>
  227. </el-tooltip>
  228. <el-tooltip effect="dark" v-show="orgArray.includes(org) || oidArray.includes(oid)" content="Ai一下" placement="top">
  229. <div class="t_b_Item" @click="aiCourse(item.courseId)">
  230. <img src="../../assets/icon/course/aiEdit.svg">
  231. </div>
  232. </el-tooltip>
  233. <el-tooltip effect="dark" content="复制" placement="top">
  234. <div class="t_b_Item" @click="copyCourse(item.courseId, item.setting)">
  235. <img src="../../assets/icon/course/copy.svg">
  236. </div>
  237. </el-tooltip>
  238. <el-tooltip effect="dark" content="修改" placement="top">
  239. <div class="t_b_Item" v-if="((item.userid == userid) ||
  240. (item.course_teacher &&
  241. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  242. item.state == 1
  243. " @click="goToCourse(item.courseId)">
  244. <img src="../../assets/icon/course/edit.svg">
  245. </div>
  246. <div class="t_b_Item" v-if="((item.userid == userid) ||
  247. (item.course_teacher &&
  248. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  249. item.state == 2
  250. " @click="goToCourse(item.courseId)">
  251. <img src="../../assets/icon/course/edit.svg">
  252. </div>
  253. <div class="t_b_Item" v-if="((item.userid == userid) ||
  254. (item.course_teacher &&
  255. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  256. item.state == 3
  257. " @click="goToCourse3(item.courseId)">
  258. <img src="../../assets/icon/course/edit.svg">
  259. </div>
  260. <div class="t_b_Item" v-if="((item.userid == userid) ||
  261. (item.course_teacher &&
  262. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  263. (item.state == 4 || item.state == 5)
  264. " @click="goToCourse5(item.courseId)">
  265. <img src="../../assets/icon/course/edit.svg">
  266. </div>
  267. <div class="t_b_Item" v-if="((item.userid == userid) ||
  268. (item.course_teacher &&
  269. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  270. (item.state == 6)
  271. " @click="goToCourse6(item.courseId)">
  272. <img src="../../assets/icon/course/edit.svg">
  273. </div>
  274. </el-tooltip>
  275. <el-tooltip effect="dark" content="删除" placement="top" v-if="item.isCourseType == 1 || role == '1'">
  276. <div class="t_b_Item" @click="deleteCourse(item.courseId)">
  277. <img src="../../assets/icon/course/del.svg">
  278. </div>
  279. </el-tooltip>
  280. <el-tooltip effect="dark" content="分享" placement="top">
  281. <div class="t_b_Item" @click="shareCourse(item.courseId)">
  282. <img src="../../assets/icon/course/share.svg">
  283. </div>
  284. </el-tooltip>
  285. <!-- v-if="role == '1'" -->
  286. <!-- <div @click="get(item)">预览</div> -->
  287. <!-- <div @click="jump(item.courseId)" v-else>评课</div> -->
  288. <!-- <div v-if="((item.userid == userid) ||
  289. (item.course_teacher &&
  290. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  291. item.state == 1
  292. " @click="goToCourse(item.courseId)">
  293. 修改
  294. </div>
  295. <div v-if="((item.userid == userid) ||
  296. (item.course_teacher &&
  297. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  298. item.state == 2
  299. " @click="goToCourse(item.courseId)">
  300. 修改
  301. </div>
  302. <div v-if="((item.userid == userid) ||
  303. (item.course_teacher &&
  304. item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
  305. item.state == 3
  306. " @click="goToCourse3(item.courseId)">
  307. 修改
  308. </div> -->
  309. <!-- <div v-if="groupA == '0'" @click="
  310. goTo(
  311. '/works?cid=' +
  312. item.courseId +
  313. '&userid=' +
  314. userid +
  315. '&oid=' +
  316. oid +
  317. '&org=' +
  318. org +
  319. '&role=' +
  320. role
  321. )
  322. ">
  323. 评价
  324. </div> -->
  325. <!-- <div @click="copyCourse(item.courseId)">
  326. 复制
  327. </div>
  328. <div v-if="item.isCourseType == 1 || role == '1'" @click="deleteCourse(item.courseId)">
  329. 删除
  330. </div> -->
  331. <!-- <div class="more">
  332. <span style="font-size: 18px; font-weight: 700">...</span>
  333. <div>
  334. <span @click="copyCourse(item.courseId)">复制</span>
  335. <span @click="jump(item.courseId)" v-if="role == '1'">评课</span>
  336. <span @click="get(item.courseId)" v-else>预览</span>
  337. <span @click="getNT(item.courseId)">无终端</span>
  338. </div>
  339. </div> -->
  340. </div>
  341. </div>
  342. <div class="course_empty" v-if="course.length == 0">暂无数据</div>
  343. </div>
  344. </div>
  345. </div>
  346. <div class="student_page">
  347. <el-pagination background layout="prev, pager, next" :page-size="pageSize" :total="total"
  348. v-if="page && course.length" style="padding-bottom: 20px" @current-change="handleCurrentChange"></el-pagination>
  349. </div>
  350. <el-dialog :visible.sync="dialogVisible1" size="tiny">
  351. <img width="100%" :src="dialogImageUrl" alt />
  352. </el-dialog>
  353. <el-dialog title="查看提问" :visible.sync="dialogVisible" :append-to-body="true" width="750px" :before-close="handleClose"
  354. class="dialog_diy">
  355. <div>
  356. <div class="a_addBox">
  357. <CourseProblem :problemCourse="problemCourse"></CourseProblem>
  358. </div>
  359. </div>
  360. <span slot="footer" class="dialog-footer">
  361. <el-button @click="dialogVisible = false">关 闭</el-button>
  362. </span>
  363. </el-dialog>
  364. <el-dialog title="查看协同课程" :visible.sync="dialogVisibleCourse" :append-to-body="true" width="850px"
  365. :before-close="handleClose" class="dialog_diy">
  366. <div class="ct_box">
  367. <div class="out_box" v-for="(item, index) in courseTeam" :key="index" style="margin-left: 15px">
  368. <div class="tup">
  369. <img :src="item.cover != null && item.cover != ''
  370. ? JSON.parse(item.cover).length > 0
  371. ? JSON.parse(item.cover)[0].url
  372. : mr
  373. : mr
  374. " alt />
  375. </div>
  376. <div class="bottom_box">
  377. <div>{{ item.title }}</div>
  378. <div class="kc_t">创建老师:{{ item.uname }}</div>
  379. <div class="kc_time">{{ item.time }}</div>
  380. </div>
  381. <div class="three_bottom">
  382. <div @click="jump(item.courseId)">查看内容</div>
  383. <div @click="
  384. goTo(
  385. '/course/addCourse?cid=' +
  386. item.courseId +
  387. '&userid=' +
  388. userid +
  389. '&oid=' +
  390. oid +
  391. '&org=' +
  392. org
  393. )
  394. ">
  395. 编辑
  396. </div>
  397. </div>
  398. </div>
  399. <div class="course_empty" v-if="courseTeam.length == 0">暂无数据</div>
  400. </div>
  401. <span slot="footer" class="dialog-footer">
  402. <el-button @click="dialogVisibleCourse = false">关 闭</el-button>
  403. </span>
  404. </el-dialog>
  405. <shareDialog ref="shareDialogRef"/>
  406. <templateDialog :dialogVisibleTemplate.sync="dialogVisibleTemplate" :userid="userid" :org="org" :oid="oid" @goToCourseTemplate="goToCourseTemplate" @goToCourseTemplate2="goToCourseTemplate2"></templateDialog>
  407. <templateDialogE :dialogVisibleTemplate.sync="dialogVisibleTemplate2" :userid="userid" :org="org" :oid="oid" @goToCourseTemplate="goToCourseTemplateE" @goToCourseTemplate2="goToCourseTemplate2E"></templateDialogE>
  408. </div>
  409. </template>
  410. <script>
  411. import "../../common/aws-sdk-2.235.1.min";
  412. import EditorBar from "../../components/tools/wangEnduit";
  413. import CourseProblem from "./components/courseProblem";
  414. import shareDialog from './dialog/shareDialog.vue'
  415. import templateDialog from "./aiAddCourse/templateDialog.vue";
  416. import templateDialogE from "./aiEasy/templateDialog.vue";
  417. import { v4 as uuidv4 } from "uuid";
  418. import { myMixin } from "@/mixins/mixin.js"
  419. import backPage from "./liyuan/components/backPage.vue";
  420. export default {
  421. components: { EditorBar, CourseProblem,shareDialog,templateDialog,templateDialogE,backPage },
  422. mixins: [ myMixin ],
  423. data() {
  424. return {
  425. gotype:sessionStorage.getItem('gotype'),
  426. itemCount: 1,
  427. courseTitle: "",
  428. courseText: "",
  429. courseTime: "",
  430. isLoading: false,
  431. fileList: [],
  432. fileList1: [],
  433. homeworkList: [{ name: "" }],
  434. formLabelWidth: "100px",
  435. dialogVisible: false,
  436. dialogVisible1: false,
  437. dialogVisibleCourse: false,
  438. dialogImageUrl: "",
  439. group: "",
  440. userid: this.$route.query.userid,
  441. oid: this.$route.query.oid,
  442. org: this.$route.query.org,
  443. role: this.$route.query.role,
  444. Juri: "",
  445. groupList: [],
  446. JuriList: [],
  447. page: 1,
  448. total: 0,
  449. pageSize: 20,
  450. tableData: [],
  451. now: "",
  452. courseDetail: {},
  453. addCourse: {},
  454. groupA: "0",
  455. classX: "",
  456. course: [],
  457. courseName: "",
  458. mr: require("../../assets/icon/kc1.png"),
  459. CourseType: [],
  460. CourseType2: [],
  461. CourseTypeJson: {},
  462. courseTypeId: {},
  463. courseTypeSon: [],
  464. isChoose: 0,
  465. problemCourse: null, //查看提问的课程
  466. courseTeam: [],
  467. typeE: [],
  468. typea: "",
  469. typeb: "",
  470. typed: "",
  471. pTypeCheck: [],
  472. pTypeCheckName: [],
  473. btnDisplay: false,
  474. dialogVisibleTemplate: false,
  475. dialogVisibleTemplate2: false,
  476. orgArray:[],
  477. oidArray:[]
  478. };
  479. },
  480. watch: {
  481. courseName(newValue, oldValue) {
  482. this.searchCourse()
  483. }
  484. },
  485. methods: {
  486. getAIJ(){
  487. this.ajax
  488. .get(this.$store.state.api + "getAIJ", "")
  489. .then((res) => {
  490. let oid = res.data[0];
  491. let org = res.data[1];
  492. let oidArray = []
  493. let orgArray = []
  494. for(var i = 0; i < oid.length; i++){
  495. oidArray.push(oid[i].oid)
  496. }
  497. for(var i = 0; i < org.length; i++){
  498. orgArray.push(org[i].oid)
  499. }
  500. this.orgArray = orgArray
  501. this.oidArray = oidArray
  502. })
  503. .catch((err) => {
  504. console.error(err);
  505. });
  506. },
  507. // 分析按钮
  508. shareCourse(courseId){
  509. this.$refs.shareDialogRef.open(courseId)
  510. },
  511. change(val) {
  512. console.log(val);
  513. },
  514. time() {
  515. if (!this.now) {
  516. this.now = new Date().getTime();
  517. return true;
  518. } else {
  519. let time = new Date().getTime();
  520. if (time - this.now > 3000) {
  521. this.now = time;
  522. return true;
  523. } else {
  524. return false;
  525. }
  526. }
  527. },
  528. addHomeworkBox() {
  529. this.homeworkList.push({ name: "" });
  530. this.itemCount++;
  531. },
  532. reduceHomeworkBox() {
  533. var a = this.homeworkList;
  534. a.splice(a.length - 1);
  535. this.itemCount--;
  536. },
  537. goTo(path) {
  538. this.$router.push(path);
  539. },
  540. CourseType2Change(val) {
  541. this.pTypeCheck = [];
  542. for (var i = 0; i < this.CourseType2.length; i++) {
  543. let typeA = this.CourseType2[i];
  544. if (val.indexOf(typeA.name) != -1) {
  545. this.pTypeCheck.push(...typeA.id);
  546. }
  547. }
  548. this.typea = "";
  549. this.typeb = "";
  550. this.typed = "";
  551. this.getCourse();
  552. },
  553. CourseType2Click(val) {
  554. this.pTypeCheck = [];
  555. this.typeE = [];
  556. if (val === this.pTypeCheckName) {
  557. this.pTypeCheckName = "";
  558. } else {
  559. this.pTypeCheckName = val;
  560. for (var i = 0; i < this.CourseType2.length; i++) {
  561. let typeA = this.CourseType2[i];
  562. if (val.indexOf(typeA.name) != -1) {
  563. this.pTypeCheck.push(...typeA.id);
  564. this.typeE = [...typeA.id];
  565. }
  566. }
  567. }
  568. this.typea = "";
  569. this.typeb = "";
  570. this.typed = "";
  571. this.getCourse();
  572. },
  573. goToCourse(courseId) {
  574. // if(this.org !== '16ace517-b5c7-4168-a9bb-a9e0035df840'){
  575. // if (courseId) {
  576. // this.$router.push(
  577. // "/course/addCourse?cid=" +
  578. // courseId +
  579. // "&userid=" +
  580. // this.userid +
  581. // "&oid=" +
  582. // this.oid +
  583. // "&org=" +
  584. // this.org +
  585. // "&role=" +
  586. // this.role
  587. // );
  588. // } else {
  589. // this.$router.push(
  590. // "/course/addCourse?userid=" +
  591. // this.userid +
  592. // "&oid=" +
  593. // this.oid +
  594. // "&org=" +
  595. // this.org +
  596. // "&role=" +
  597. // this.role
  598. // );
  599. // }
  600. // }else{
  601. this.goToCourse4(courseId)
  602. // }
  603. // this.$router.push(path);
  604. },
  605. goToCourse4(courseId) {
  606. if (courseId) {
  607. this.$router.push(
  608. "/newAddCourse?cid=" +
  609. courseId +
  610. "&userid=" +
  611. this.userid +
  612. "&oid=" +
  613. this.oid +
  614. "&org=" +
  615. this.org +
  616. "&role=" +
  617. this.role
  618. );
  619. this.addOp3('1', "", { courseid: courseId ,type: "course_stageMode_edit" }, "success")
  620. } else {
  621. this.$router.push(
  622. "/newAddCourse?userid=" +
  623. this.userid +
  624. "&oid=" +
  625. this.oid +
  626. "&org=" +
  627. this.org +
  628. "&role=" +
  629. this.role
  630. );
  631. this.addOp3('1', "", { type: "course_stageMode_createClick" }, "success")
  632. }
  633. // this.$router.push(path);
  634. },
  635. oepnTemplate(){
  636. // this.goToCourseTemplate('');
  637. this.dialogVisibleTemplate = true;
  638. },
  639. oepnTemplate2(){
  640. this.dialogVisibleTemplate2 = true;
  641. },
  642. goToCourseTemplate(tid){
  643. this.$router.push(
  644. "/aiAddCourse?userid=" +
  645. this.userid +
  646. "&oid=" +
  647. this.oid +
  648. "&org=" +
  649. this.org +
  650. "&role=" +
  651. this.role +
  652. "&templateid=" +
  653. tid
  654. );
  655. this.addOp3('1', "", { type: "course_aiStageMode_createClick" }, "success")
  656. },
  657. goToCourseTemplate2(tid){
  658. if(tid){
  659. this.$router.push(
  660. "/aiAddCourse?userid=" +
  661. this.userid +
  662. "&oid=" +
  663. this.oid +
  664. "&org=" +
  665. this.org +
  666. "&role=" +
  667. this.role +
  668. "&templateid=" +
  669. tid +
  670. "&istemplate=1"
  671. );
  672. }else{
  673. this.$router.push(
  674. "/aiAddCourse?userid=" +
  675. this.userid +
  676. "&oid=" +
  677. this.oid +
  678. "&org=" +
  679. this.org +
  680. "&role=" +
  681. this.role +
  682. "&templateid=" +
  683. "&istemplate=1"
  684. );
  685. }
  686. this.addOp3('1', "", { type: "course_aiMode_createClick" }, "success")
  687. },
  688. goToCourse5(courseId) {
  689. if (courseId) {
  690. this.$router.push(
  691. "/aiAddCourse?cid=" +
  692. courseId +
  693. "&userid=" +
  694. this.userid +
  695. "&oid=" +
  696. this.oid +
  697. "&org=" +
  698. this.org +
  699. "&role=" +
  700. this.role
  701. );
  702. this.addOp3('1', "", { courseid: courseId ,type: "course_aiMode_edit" }, "success")
  703. } else {
  704. this.$router.push(
  705. "/aiAddCourse?userid=" +
  706. this.userid +
  707. "&oid=" +
  708. this.oid +
  709. "&org=" +
  710. this.org +
  711. "&role=" +
  712. this.role
  713. );
  714. }
  715. // this.$router.push(path);
  716. },
  717. goToCourseTemplateE(tid){
  718. this.$router.push(
  719. "/addCourseEAi?userid=" +
  720. this.userid +
  721. "&oid=" +
  722. this.oid +
  723. "&org=" +
  724. this.org +
  725. "&role=" +
  726. this.role +
  727. "&templateid=" +
  728. tid
  729. );
  730. },
  731. goToCourseTemplate2E(tid){
  732. if(tid){
  733. this.$router.push(
  734. "/addCourseEAi?userid=" +
  735. this.userid +
  736. "&oid=" +
  737. this.oid +
  738. "&org=" +
  739. this.org +
  740. "&role=" +
  741. this.role +
  742. "&templateid=" +
  743. tid +
  744. "&istemplate=1"
  745. );
  746. }else{
  747. this.$router.push(
  748. "/addCourseEAi?userid=" +
  749. this.userid +
  750. "&oid=" +
  751. this.oid +
  752. "&org=" +
  753. this.org +
  754. "&role=" +
  755. this.role +
  756. "&templateid=" +
  757. "&istemplate=1"
  758. );
  759. }
  760. this.addOp3('1', "", { type: "course_aiEasyMode_createClick" }, "success")
  761. },
  762. goToCourse6(courseId){
  763. if (courseId) {
  764. this.$router.push(
  765. "/addCourseEAi?cid=" +
  766. courseId +
  767. "&userid=" +
  768. this.userid +
  769. "&oid=" +
  770. this.oid +
  771. "&org=" +
  772. this.org +
  773. "&role=" +
  774. this.role
  775. );
  776. this.addOp3('1', "", { courseid: courseId ,type: "course_aiEasyMode_edit" }, "success")
  777. } else {
  778. this.$router.push(
  779. "/addCourseEAi?userid=" +
  780. this.userid +
  781. "&oid=" +
  782. this.oid +
  783. "&org=" +
  784. this.org +
  785. "&role=" +
  786. this.role
  787. );
  788. }
  789. },
  790. aiCourse(courseId){
  791. this.$router.push(
  792. "/aiAddCourse?userid=" +
  793. this.userid +
  794. "&oid=" +
  795. this.oid +
  796. "&org=" +
  797. this.org +
  798. "&role=" +
  799. this.role +
  800. "&aiId=" +
  801. courseId
  802. );
  803. },
  804. reset() {
  805. this.typeE = []
  806. this.typea = ''
  807. this.typeb = ''
  808. this.typed = ''
  809. this.courseName = ''
  810. if (this.role == "1") {
  811. this.groupA = "4";
  812. } else {
  813. this.groupA = "0";
  814. }
  815. this.getCourse();
  816. },
  817. goToCourse2(courseId) {
  818. if (courseId) {
  819. this.$router.push(
  820. "/course/addCourseT?cid=" +
  821. courseId +
  822. "&userid=" +
  823. this.userid +
  824. "&oid=" +
  825. this.oid +
  826. "&org=" +
  827. this.org +
  828. "&role=" +
  829. this.role
  830. );
  831. } else {
  832. this.$router.push(
  833. "/course/addCourseT?userid=" +
  834. this.userid +
  835. "&oid=" +
  836. this.oid +
  837. "&org=" +
  838. this.org +
  839. "&role=" +
  840. this.role
  841. );
  842. }
  843. },
  844. goToCourse3(courseId) {
  845. if (courseId) {
  846. this.$router.push(
  847. "/course/addCourseE?cid=" +
  848. courseId +
  849. "&userid=" +
  850. this.userid +
  851. "&oid=" +
  852. this.oid +
  853. "&org=" +
  854. this.org +
  855. "&role=" +
  856. this.role
  857. );
  858. this.addOp3('1', "", { courseid: courseId ,type: "course_easyMode_edit" }, "success")
  859. } else {
  860. this.$router.push(
  861. "/course/addCourseE?userid=" +
  862. this.userid +
  863. "&oid=" +
  864. this.oid +
  865. "&org=" +
  866. this.org +
  867. "&role=" +
  868. this.role
  869. );
  870. this.addOp3('1', "", { type: "course_easyMode_createClick" }, "success")
  871. }
  872. },
  873. tableRowClassName({ row, rowIndex }) {
  874. if ((rowIndex + 1) % 2 === 0) {
  875. return "even_row";
  876. } else {
  877. return "";
  878. }
  879. },
  880. jump(cid) {
  881. // window.open(
  882. // "//pbl.cocorobo.cn/pbl-student-table/dist/#/courseDetail?courseId=" +
  883. // cid +
  884. // "&userid=" +
  885. // this.userid
  886. // );
  887. window.topU.postMessage({ cid: cid, screenType: "2" }, "*");
  888. },
  889. get(item) {
  890. let _str = ""
  891. if(item.state == 1){
  892. _str = "course_stageMode_open"
  893. }if(item.state == 2){
  894. _str = "course_taskMode_open"
  895. }if(item.state == 3){
  896. _str = "course_easyMode_open"
  897. }if(item.state == 5){
  898. _str = "course_aiMode_open"
  899. }if(item.state == 6){
  900. _str = "course_aiEasyMode_open"
  901. }
  902. this.addOp3('1', "", { courseid: item.courseId, type: _str }, "success")
  903. window.topU.postMessage({ cid: item.courseId, screenType: "3" }, "*");
  904. },
  905. getNT(cid) {
  906. window.topU.postMessage({ cid: cid, screenType: "3NT" }, "*");
  907. },
  908. handle_remove(file, fileList) {
  909. var _tmp = this.fileList;
  910. for (var i = 0, len = _tmp.length; i < len; i++) {
  911. if (_tmp[i].uid == file.uid) {
  912. _tmp.splice(i, 1);
  913. break;
  914. }
  915. this.fileList = _tmp;
  916. }
  917. },
  918. handle_remove1(file, fileList) {
  919. var _tmp = this.fileList1;
  920. for (var i = 0, len = _tmp.length; i < len; i++) {
  921. if (_tmp[i].uid == file.uid) {
  922. _tmp.splice(i, 1);
  923. break;
  924. }
  925. this.fileList1 = _tmp;
  926. }
  927. },
  928. handleCurrentChange(val) {
  929. // console.log(`当前页: ${val}`);
  930. this.page = val;
  931. this.getCourse();
  932. },
  933. init() { },
  934. handleClose(done) {
  935. done();
  936. },
  937. handleRemove(file, fileList) {
  938. console.log(file, fileList);
  939. },
  940. handlePictureCardPreview(file) {
  941. this.dialogImageUrl = file.url;
  942. this.dialogVisible1 = true;
  943. },
  944. onExceed() {
  945. this.$message.error("课程海报仅支持上传一张,请删除后再进行上传");
  946. },
  947. //uuid生成
  948. guid() {
  949. return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
  950. /[xy]/g,
  951. function (c) {
  952. var r = (Math.random() * 16) | 0,
  953. v = c == "x" ? r : (r & 0x3) | 0x8;
  954. return v.toString(16);
  955. }
  956. );
  957. },
  958. time() {
  959. if (!this.now) {
  960. this.now = new Date().getTime();
  961. return true;
  962. } else {
  963. let time = new Date().getTime();
  964. if (time - this.now > 3000) {
  965. this.now = time;
  966. return true;
  967. } else {
  968. return false;
  969. }
  970. }
  971. },
  972. searchCourse() {
  973. this.page = 1;
  974. this.getCourse();
  975. },
  976. clear() {
  977. for (var i = 0; i < this.CourseType[0].length; i++) {
  978. this.courseTypeId[this.CourseType[0][i].id] = "";
  979. }
  980. this.getCourse();
  981. },
  982. getCourse2(typeName, ftypeId, typeid, type) {
  983. this.page = 1;
  984. if (typeid == "34628934-d02f-11ec-8c78-005056b86db5" || ftypeId == '34628934-d02f-11ec-8c78-005056b86db5' || typeid == "34628934-d02f-11ec-8c78-005056b86ac5" || ftypeId == "34628934-d02f-11ec-8c78-005056b86ac5") {
  985. if (type == 1) {
  986. if (this.typeE.indexOf(typeid) != -1) {
  987. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  988. return;
  989. } else {
  990. this.typeE.splice(this.typeE.indexOf(typeid), 1);
  991. }
  992. } else {
  993. this.typeE.push(typeid);
  994. if (this.typea != "") {
  995. this.typea = "";
  996. }
  997. }
  998. } else {
  999. if (this.typea == typeid) {
  1000. this.typea = "";
  1001. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1002. this.typeE.push(ftypeId);
  1003. }
  1004. } else {
  1005. this.typea = typeid;
  1006. if (this.typeE.indexOf(ftypeId) != -1) {
  1007. this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
  1008. }
  1009. }
  1010. }
  1011. } else if (typeName == "专栏") {
  1012. if (type == 1) {
  1013. if (this.typeE.indexOf(typeid) != -1) {
  1014. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1015. return;
  1016. } else {
  1017. this.typeE.splice(this.typeE.indexOf(typeid), 1);
  1018. }
  1019. } else {
  1020. this.typeE.push(typeid);
  1021. if (this.typeb != "") {
  1022. this.typeb = "";
  1023. }
  1024. }
  1025. } else {
  1026. if (this.typeb == typeid) {
  1027. this.typeb = "";
  1028. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1029. this.typeE.push(ftypeId);
  1030. }
  1031. } else {
  1032. this.typeb = typeid;
  1033. if (this.typeE.indexOf(ftypeId) != -1) {
  1034. this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
  1035. }
  1036. }
  1037. }
  1038. } else if (typeName == "栏目") {
  1039. if (type == 1) {
  1040. if (this.typeE.indexOf(typeid) != -1) {
  1041. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1042. return;
  1043. } else {
  1044. this.typeE.splice(this.typeE.indexOf(typeid), 1);
  1045. }
  1046. } else {
  1047. this.typeE.push(typeid);
  1048. if (this.typeb != "") {
  1049. this.typeb = "";
  1050. }
  1051. }
  1052. } else {
  1053. if (this.typeb == typeid) {
  1054. this.typeb = "";
  1055. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1056. this.typeE.push(ftypeId);
  1057. }
  1058. } else {
  1059. this.typeb = typeid;
  1060. if (this.typeE.indexOf(ftypeId) != -1) {
  1061. this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
  1062. }
  1063. }
  1064. }
  1065. } else if (typeid == "34629bcc-d02f-11ec-8c78-005056b86db5" || ftypeId == '34629bcc-d02f-11ec-8c78-005056b86db5') {
  1066. if (type == 1) {
  1067. if (this.typeE.indexOf(typeid) != -1) {
  1068. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1069. return;
  1070. } else {
  1071. this.typeE.splice(this.typeE.indexOf(typeid), 1);
  1072. }
  1073. } else {
  1074. this.typeE.push(typeid);
  1075. if (this.typeb != "") {
  1076. this.typeb = "";
  1077. }
  1078. }
  1079. } else {
  1080. if (this.typeb == typeid) {
  1081. this.typeb = "";
  1082. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1083. this.typeE.push(ftypeId);
  1084. }
  1085. } else {
  1086. this.typeb = typeid;
  1087. if (this.typeE.indexOf(ftypeId) != -1) {
  1088. this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
  1089. }
  1090. }
  1091. }
  1092. } else if (typeName == "学院") {
  1093. if (type == 1) {
  1094. if (this.typeE.indexOf(typeid) != -1) {
  1095. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1096. return;
  1097. } else {
  1098. this.typeE.splice(this.typeE.indexOf(typeid), 1);
  1099. }
  1100. } else {
  1101. this.typeE.push(typeid);
  1102. if (this.typeb != "") {
  1103. this.typeb = "";
  1104. }
  1105. }
  1106. } else {
  1107. if (this.typeb == typeid) {
  1108. this.typeb = "";
  1109. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1110. this.typeE.push(ftypeId);
  1111. }
  1112. } else {
  1113. this.typeb = typeid;
  1114. if (this.typeE.indexOf(ftypeId) != -1) {
  1115. this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
  1116. }
  1117. }
  1118. }
  1119. } else if (typeid == "34629907-d02f-11ec-8c78-005056b86db5" || ftypeId == '34629907-d02f-11ec-8c78-005056b86db5' || typeid == "34629907-d02f-11ec-8c78-005056b86ac5" || ftypeId == "34629907-d02f-11ec-8c78-005056b86ac5") {
  1120. if (type == 1) {
  1121. if (this.typeE.indexOf(typeid) != -1) {
  1122. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1123. return;
  1124. } else {
  1125. this.typeE.splice(this.typeE.indexOf(typeid), 1);
  1126. }
  1127. } else {
  1128. this.typeE.push(typeid);
  1129. if (this.typed != "") {
  1130. this.typed = "";
  1131. }
  1132. }
  1133. } else {
  1134. if (this.typed == typeid) {
  1135. this.typed = "";
  1136. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1137. this.typeE.push(ftypeId);
  1138. }
  1139. } else {
  1140. this.typed = typeid;
  1141. if (this.typeE.indexOf(ftypeId) != -1) {
  1142. this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
  1143. }
  1144. }
  1145. }
  1146. }
  1147. // this.loading = true;
  1148. this.getCourse();
  1149. },
  1150. getCourse() {
  1151. // if (!this.loading) {
  1152. // this.loading = this.openLoading(
  1153. // document.querySelector(".student_table")
  1154. // );
  1155. // }
  1156. // var typeE = [];
  1157. // var typea, typeb, typec, typed;
  1158. // if (this.isChoose == 1) {
  1159. // for (var i = 0; i < this.CourseType[0].length; i++) {
  1160. // if (this.courseTypeId[this.CourseType[0][i].id] == "1") {
  1161. // typeE.push(this.CourseType[0][i].id);
  1162. // } else if (this.courseTypeId[this.CourseType[0][i].id] != "") {
  1163. // if (this.CourseType[0][i].name == "年级") {
  1164. // typea = this.courseTypeId[this.CourseType[0][i].id];
  1165. // } else if (this.CourseType[0][i].name == "专栏") {
  1166. // typeb = this.courseTypeId[this.CourseType[0][i].id];
  1167. // } else if (this.CourseType[0][i].name == "栏目") {
  1168. // typeb = this.courseTypeId[this.CourseType[0][i].id];
  1169. // } else if (this.CourseType[0][i].name == "学院") {
  1170. // typeb = this.courseTypeId[this.CourseType[0][i].id];
  1171. // } else if (this.CourseType[0][i].name == "主题") {
  1172. // typeb = this.courseTypeId[this.CourseType[0][i].id];
  1173. // } else if (this.CourseType[0][i].name == "新技能") {
  1174. // typec = this.courseTypeId[this.CourseType[0][i].id];
  1175. // } else if (this.CourseType[0][i].name == "学科") {
  1176. // typed = this.courseTypeId[this.CourseType[0][i].id];
  1177. // }
  1178. // this.courseTypeSon.push(
  1179. // this.courseTypeId[this.CourseType[0][i].id]
  1180. // );
  1181. // }
  1182. // }
  1183. // }
  1184. console.log("typea", this.typea);
  1185. this.isLoading = true;
  1186. let params = {
  1187. type: this.groupA,
  1188. uid: this.userid,
  1189. oid: this.oid,
  1190. org: this.org,
  1191. typea: this.typea != undefined ? this.typea : "",
  1192. typeb: this.typeb != undefined ? this.typeb : "",
  1193. typec: "",
  1194. typed: this.typed != undefined ? this.typed : "",
  1195. typeE: this.typeE.join(","),
  1196. cu: "",
  1197. cn: this.courseName,
  1198. page: this.page,
  1199. pageSize: this.pageSize,
  1200. };
  1201. this.ajax
  1202. .get(this.$store.state.api + "selectCourseNew2", params)
  1203. .then((res) => {
  1204. // this.loading.close();
  1205. // this.loading = "";
  1206. this.isLoading = false;
  1207. this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
  1208. this.course = res.data[0];
  1209. })
  1210. .catch((err) => {
  1211. console.error(err);
  1212. });
  1213. },
  1214. getTypeName() {
  1215. this.$forceUpdate();
  1216. this.page = 1;
  1217. this.isChoose = 1;
  1218. this.getCourse();
  1219. },
  1220. // searchCourse() {
  1221. // this.isLoading = true;
  1222. // let params = {
  1223. // cu: "",
  1224. // cn: this.courseName,
  1225. // page: this.page,
  1226. // };
  1227. // this.ajax
  1228. // .get(this.$store.state.api + "searchCourse", params)
  1229. // .then((res) => {
  1230. // this.isLoading = false;
  1231. // this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
  1232. // this.course = res.data[0];
  1233. // })
  1234. // .catch((err) => {
  1235. // this.isLoading = false;
  1236. // console.error(err);
  1237. // });
  1238. // },
  1239. deleteCourse(cid) {
  1240. // if (this.time()) {
  1241. this.$confirm("确定删除此课程吗?", "提示", {
  1242. confirmButtonText: "确定",
  1243. cancelButtonText: "取消",
  1244. type: "warning",
  1245. })
  1246. .then(() => {
  1247. // const loading = this.openLoading(
  1248. // document.querySelector(".student_table")
  1249. // );
  1250. this.isLoading = true;
  1251. let params = {
  1252. cid: cid,
  1253. };
  1254. this.ajax
  1255. .get(this.$store.state.api + "deleteCourse", params)
  1256. .then((res) => {
  1257. // loading.close();
  1258. this.isLoading = false;
  1259. this.$message.success("删除成功");
  1260. this.getCourse();
  1261. })
  1262. .catch((err) => {
  1263. console.error(err);
  1264. });
  1265. })
  1266. .catch(() => {
  1267. loading.close();
  1268. this.isLoading = false;
  1269. return;
  1270. });
  1271. // }
  1272. },
  1273. selectAllType() {
  1274. let params = {
  1275. org: this.org && this.org != "" ? this.org : "",
  1276. oid: this.oid && this.oid != "" ? this.oid : "",
  1277. stand: "cn"
  1278. };
  1279. this.ajax
  1280. .get(this.$store.state.api + "selectAllTypeStand", params)
  1281. .then((res) => {
  1282. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1283. res.data[0] = [...res.data[0], ...res.data[4]]
  1284. }
  1285. this.CourseType = res.data;
  1286. this.CourseType2 = [
  1287. { name: "智见课程", id: [] },
  1288. { name: "智行课程", id: [] },
  1289. { name: "智创课程", id: [] },
  1290. ];
  1291. for (var cti = 0; cti < res.data[0].length; cti++) {
  1292. if (
  1293. res.data[0][cti].id == "34628934-d02f-11ec-8c78-005056b86db5" ||
  1294. res.data[0][cti].id == "34629907-d02f-11ec-8c78-005056b86db5"
  1295. ) {
  1296. this.CourseType2[0].id.push(res.data[0][cti].id);
  1297. } else if (res.data[0][cti].id == "34628934-d02f-11ec-8c78-005056b86ac5" ||
  1298. res.data[0][cti].id == "34629907-d02f-11ec-8c78-005056b86ac5") {
  1299. this.CourseType2[1].id.push(res.data[0][cti].id);
  1300. } else if (res.data[0][cti].id == "34629bcc-d02f-11ec-8c78-005056b86db5") {
  1301. this.CourseType2[2].id.push(res.data[0][cti].id);
  1302. }
  1303. if (res.data[0][cti].id == "34628934-d02f-11ec-8c78-005056b86db5" || res.data[0][cti].id == "34628934-d02f-11ec-8c78-005056b86ac5") {
  1304. res.data[0][cti].name = "年级";
  1305. } else if (res.data[0][cti].id == "34629907-d02f-11ec-8c78-005056b86db5" || res.data[0][cti].id == "34629907-d02f-11ec-8c78-005056b86ac5") {
  1306. res.data[0][cti].name = "学科";
  1307. } else if (res.data[0][cti].id == "34629bcc-d02f-11ec-8c78-005056b86db5") {
  1308. res.data[0][cti].name = "主题";
  1309. }
  1310. }
  1311. for (var i = 0; i < res.data[0].length; i++) {
  1312. if (!this.cid) {
  1313. this.courseTypeId[res.data[0][i].id] = [];
  1314. }
  1315. if (!this.CourseTypeJson[res.data[0][i].id]) {
  1316. this.CourseTypeJson[res.data[0][i].id] = [];
  1317. }
  1318. if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1319. if (res.data[0][i].name == "栏目") {
  1320. this.CourseType[0][i].name = "主题";
  1321. }
  1322. }
  1323. if (res.data[2].length == 0 && res.data[3].length == 0) {
  1324. for (var j = 0; j < res.data[1].length; j++) {
  1325. if (res.data[0][i].id == res.data[1][j].pid) {
  1326. this.CourseTypeJson[res.data[0][i].id].push(res.data[1][j]); // 去除公共分类
  1327. }
  1328. }
  1329. } else {
  1330. if (res.data[2].length > 0) {
  1331. for (var j = 0; j < res.data[2].length; j++) {
  1332. if (res.data[0][i].id == res.data[2][j].pid) {
  1333. this.CourseTypeJson[res.data[0][i].id].push(res.data[2][j]); // 去除公共分类
  1334. }
  1335. }
  1336. }
  1337. if (res.data[3].length > 0) {
  1338. for (var j = 0; j < res.data[3].length; j++) {
  1339. if (res.data[0][i].id == res.data[3][j].pid) {
  1340. this.CourseTypeJson[res.data[0][i].id].push(res.data[3][j]); // 去除公共分类
  1341. }
  1342. }
  1343. }
  1344. }
  1345. }
  1346. })
  1347. .catch((err) => {
  1348. console.error(err);
  1349. });
  1350. },
  1351. selectType() {
  1352. this.ajax
  1353. .get(this.$store.state.api + "selectType")
  1354. .then((res) => {
  1355. this.CourseType = res.data;
  1356. for (var i = 0; i < res.data[0].length; i++) {
  1357. if (!this.cid) {
  1358. this.courseTypeId[res.data[0][i].id] = "";
  1359. }
  1360. // if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
  1361. // if (res.data[0][i].name == "栏目") {
  1362. // this.CourseType[0][i].name = "主题";
  1363. // }
  1364. // }
  1365. for (var j = 0; j < res.data[1].length; j++) {
  1366. if (res.data[0][i].id == res.data[1][j].pid) {
  1367. if (!this.CourseTypeJson[res.data[0][i].id]) {
  1368. this.CourseTypeJson[res.data[0][i].id] = [];
  1369. }
  1370. this.CourseTypeJson[res.data[0][i].id].push(res.data[1][j]); //去除公共分类
  1371. }
  1372. }
  1373. }
  1374. this.selectTypeByOid();
  1375. this.selectTypeByOrg();
  1376. })
  1377. .catch((err) => {
  1378. console.error(err);
  1379. });
  1380. },
  1381. selectTypeByOid() {
  1382. let params = {
  1383. oid: this.oid,
  1384. };
  1385. this.ajax
  1386. .get(this.$store.state.api + "selectTypeByOid", params)
  1387. .then((res) => {
  1388. for (var i = 0; i < res.data[0].length; i++) {
  1389. for (var j = 0; j < res.data[1].length; j++) {
  1390. if (res.data[0][i].id == res.data[1][j].pid) {
  1391. if (!this.CourseTypeJson[res.data[0][i].id]) {
  1392. this.CourseTypeJson[res.data[0][i].id] = [];
  1393. }
  1394. this.CourseTypeJson[res.data[0][i].id].push(res.data[1][j]);
  1395. }
  1396. }
  1397. }
  1398. this.$forceUpdate();
  1399. })
  1400. .catch((err) => {
  1401. console.error(err);
  1402. });
  1403. },
  1404. selectTypeByOrg() {
  1405. let params = {
  1406. oid: this.org,
  1407. };
  1408. this.ajax
  1409. .get(this.$store.state.api + "selectTypeByOrg", params)
  1410. .then((res) => {
  1411. for (var i = 0; i < res.data[0].length; i++) {
  1412. for (var j = 0; j < res.data[1].length; j++) {
  1413. if (res.data[0][i].id == res.data[1][j].pid) {
  1414. if (!this.CourseTypeJson[res.data[0][i].id]) {
  1415. this.CourseTypeJson[res.data[0][i].id] = [];
  1416. }
  1417. this.CourseTypeJson[res.data[0][i].id].push(res.data[1][j]);
  1418. }
  1419. }
  1420. }
  1421. this.$forceUpdate();
  1422. })
  1423. .catch((err) => {
  1424. console.error(err);
  1425. });
  1426. },
  1427. openCourse() {
  1428. this.dialogVisibleCourse = true;
  1429. this.getTeamCourse();
  1430. },
  1431. getTeamCourse() {
  1432. let params = {
  1433. uid: this.userid,
  1434. oid: this.oid,
  1435. };
  1436. this.ajax
  1437. .get(this.$store.state.api + "selectCourseTeam", params)
  1438. .then((res) => {
  1439. this.courseTeam = res.data[0];
  1440. })
  1441. .catch((err) => {
  1442. console.error(err);
  1443. });
  1444. },
  1445. search() {
  1446. this.page = 1;
  1447. this.getCourse();
  1448. },
  1449. checkProblem(res) {
  1450. this.problemCourse = res;
  1451. this.dialogVisible = true;
  1452. },
  1453. copyCourse(cid, setting) {
  1454. let settingJson = ''
  1455. if(setting && JSON.parse(setting)){
  1456. settingJson = JSON.parse(setting)
  1457. settingJson.chatid = uuidv4()
  1458. }
  1459. let params = [
  1460. {
  1461. cid: cid,
  1462. uid: this.userid,
  1463. setting: JSON.stringify(settingJson),
  1464. },
  1465. ];
  1466. this.ajax
  1467. .post(this.$store.state.api + "copyCourse2", params)
  1468. .then((res) => {
  1469. this.page = 1;
  1470. if (this.role == "1") {
  1471. this.groupA = "4";
  1472. } else {
  1473. this.groupA = "0";
  1474. }
  1475. this.$message.success("复制成功")
  1476. this.clear();
  1477. })
  1478. .catch((err) => {
  1479. console.error(err);
  1480. });
  1481. },
  1482. },
  1483. created() {
  1484. if (this.role == "1") {
  1485. this.groupA = "4";
  1486. }
  1487. this.getAIJ();
  1488. this.page = 1;
  1489. // this.selectType();
  1490. this.selectAllType();
  1491. this.getCourse();
  1492. let _this = this
  1493. window.goToCourse3 = function(){
  1494. _this.goToCourse3()
  1495. }
  1496. window.goToCourse = function(){
  1497. _this.goToCourse()
  1498. }
  1499. },
  1500. };
  1501. </script>
  1502. <style scoped>
  1503. @media screen and (max-width: 1380px) {
  1504. .out_box {
  1505. width: calc(100% / 4 - (15px * 3) / 4) !important;
  1506. }
  1507. .out_box:nth-child(5n) {
  1508. margin-right: 15px !important;
  1509. }
  1510. .out_box:nth-child(4n) {
  1511. margin-right: 0 !important;
  1512. }
  1513. }
  1514. @media screen and (max-width: 1080px) {
  1515. .out_box {
  1516. width: calc(100% / 3 - (15px * 2) / 3) !important;
  1517. }
  1518. .out_box:nth-child(5n) {
  1519. margin-right: 15px !important;
  1520. }
  1521. .out_box:nth-child(4n) {
  1522. margin-right: 15px !important;
  1523. }
  1524. .out_box:nth-child(3n) {
  1525. margin-right: 0 !important;
  1526. }
  1527. }
  1528. .dialog_diy>>>.el-dialog__header {
  1529. background: #3d67bc !important;
  1530. padding: 15px 20px;
  1531. }
  1532. .dialog_diy>>>.el-dialog__title {
  1533. color: #fff;
  1534. }
  1535. .dialog_diy>>>.el-dialog__headerbtn {
  1536. top: 19px;
  1537. }
  1538. .dialog_diy>>>.el-dialog__headerbtn .el-dialog__close {
  1539. color: #fff;
  1540. }
  1541. .dialog_diy>>>.el-dialog__headerbtn .el-dialog__close:hover {
  1542. color: #fff;
  1543. }
  1544. .student_head>>>.el-button--primary {
  1545. background-color: #2268bc;
  1546. }
  1547. .xls_button {
  1548. font-size: 14px;
  1549. cursor: pointer;
  1550. text-decoration: underline;
  1551. color: rgb(34, 104, 188);
  1552. }
  1553. .student_head {
  1554. display: flex;
  1555. justify-content: space-between;
  1556. align-items: baseline;
  1557. flex-direction: row;
  1558. flex-wrap: wrap;
  1559. }
  1560. .top {
  1561. display: flex;
  1562. justify-content: space-between;
  1563. width: 100% !important;
  1564. box-sizing: border-box;
  1565. margin: 0px auto;
  1566. padding: 10px 5px;
  1567. height: 54px;
  1568. }
  1569. .bgColor {
  1570. background: #0061FF;
  1571. }
  1572. .student_search {
  1573. display: flex;
  1574. align-items: center;
  1575. width: calc(100% / 3);
  1576. }
  1577. .student_search span {
  1578. margin: 0 10px 0 0;
  1579. min-width: 65px;
  1580. }
  1581. .student_button {
  1582. display: flex;
  1583. /* overflow: hidden; */
  1584. height: 40px;
  1585. }
  1586. .upload-demo {
  1587. display: flex;
  1588. flex-direction: column;
  1589. align-items: end;
  1590. /* position: relative; */
  1591. width: 100px;
  1592. overflow: hidden;
  1593. }
  1594. .student_table {
  1595. /* padding: 20px 0; */
  1596. height: 100%;
  1597. /* overflow: auto; */
  1598. min-height: 360px;
  1599. }
  1600. .student_empty {
  1601. display: flex;
  1602. justify-content: center;
  1603. align-items: center;
  1604. }
  1605. .el-table>>>.even_row {
  1606. background-color: #f1f1f1;
  1607. }
  1608. .time {
  1609. font-size: 13px;
  1610. color: #999;
  1611. }
  1612. .course_button {
  1613. padding: 10px 20px;
  1614. }
  1615. .course_button_box {
  1616. display: flex;
  1617. margin-top: 5px;
  1618. justify-content: space-between;
  1619. }
  1620. .course_rate {
  1621. margin-top: 5px;
  1622. }
  1623. .course_view {
  1624. display: flex;
  1625. align-items: center;
  1626. margin: 5px 0 0 0;
  1627. }
  1628. .course_view i {
  1629. background-image: url("../../assets/liulan.png");
  1630. width: 25px;
  1631. height: 25px;
  1632. background-size: 100% 100%;
  1633. /* margin-top: 1px; */
  1634. line-height: 25px;
  1635. vertical-align: text-top;
  1636. background-repeat: no-repeat;
  1637. }
  1638. .image {
  1639. width: 100%;
  1640. height: 150px;
  1641. display: block;
  1642. }
  1643. .course_box {
  1644. display: flex;
  1645. flex-wrap: wrap;
  1646. }
  1647. .student_page {
  1648. width: 100%;
  1649. margin: 0 auto;
  1650. background: #e6eaf0;
  1651. }
  1652. .course_create_box {
  1653. font-size: 18px;
  1654. }
  1655. .course_name {
  1656. margin-top: 10px;
  1657. }
  1658. .course_name span {
  1659. margin-bottom: 10px;
  1660. display: block;
  1661. }
  1662. .homework_box {
  1663. display: flex;
  1664. align-items: center;
  1665. flex-wrap: wrap;
  1666. }
  1667. .course_homework {
  1668. width: 130px;
  1669. display: flex;
  1670. justify-content: center;
  1671. flex-direction: column;
  1672. align-items: center;
  1673. margin: 0 10px 10px 0;
  1674. }
  1675. .course_type {
  1676. margin-top: 10px;
  1677. display: flex;
  1678. }
  1679. .course_type1 span {
  1680. margin-bottom: 10px;
  1681. display: block;
  1682. }
  1683. .course_type2 {
  1684. margin-left: 20px;
  1685. }
  1686. .course_type2 span {
  1687. margin-bottom: 10px;
  1688. display: block;
  1689. }
  1690. .course_empty {
  1691. color: rgb(110, 110, 110);
  1692. width: 100%;
  1693. height: 100%;
  1694. display: flex;
  1695. align-items: center;
  1696. justify-content: center;
  1697. }
  1698. .el_cards>>>.el-card__body {
  1699. height: 100%;
  1700. }
  1701. .courseBtnBox {
  1702. display: flex;
  1703. flex-direction: column;
  1704. justify-content: space-between;
  1705. height: calc(100% - 170px);
  1706. padding: 10px;
  1707. }
  1708. .wordUpload {
  1709. display: flex;
  1710. }
  1711. .wordUpload>.buttonUp {
  1712. margin-right: 5px;
  1713. }
  1714. .out_box {
  1715. display: flex;
  1716. flex-direction: column;
  1717. flex-wrap: nowrap;
  1718. width: calc(100% / 5 - (15px * 4) / 5);
  1719. /* width: 280px; */
  1720. background: #fff;
  1721. margin-right: 15px;
  1722. /* border: 1px solid #ccc; */
  1723. height: fit-content;
  1724. box-sizing: border-box;
  1725. border-radius: 0px 0px 5px 5px;
  1726. /* overflow: hidden; */
  1727. margin-bottom: 15px;
  1728. position: relative;
  1729. border-radius: 8px;
  1730. box-sizing: border-box;
  1731. overflow: hidden;
  1732. border: 1px solid #3682fc00;
  1733. }
  1734. .out_box:hover {
  1735. border: 1px solid #3681FC;
  1736. }
  1737. .out_box:nth-child(5n) {
  1738. margin-right: 0;
  1739. }
  1740. .bottom_box {
  1741. display: flex;
  1742. padding: 10px;
  1743. flex-direction: column;
  1744. box-sizing: border-box;
  1745. height: 121px;
  1746. flex-wrap: nowrap;
  1747. justify-content: space-evenly;
  1748. }
  1749. .bottom_box>div:nth-child(1) {
  1750. width: 100%;
  1751. /* overflow: hidden;
  1752. text-overflow: ellipsis;
  1753. white-space: nowrap;
  1754. font-weight: bold; */
  1755. display: flex;
  1756. align-items: center;
  1757. justify-content: space-between;
  1758. }
  1759. .bottom_box>div:nth-child(1)>span:nth-child(1) {
  1760. max-width: 100%;
  1761. overflow: hidden;
  1762. text-overflow: ellipsis;
  1763. white-space: nowrap;
  1764. font-weight: bold;
  1765. }
  1766. .bottom_box>div:nth-child(1)>span:nth-child(2) {
  1767. min-width: fit-content;
  1768. font-size: 14px;
  1769. color: #8c8c8c;
  1770. }
  1771. .tup {
  1772. width: 100%;
  1773. height: 180px;
  1774. margin: 0 auto;
  1775. overflow: hidden;
  1776. display: flex;
  1777. align-items: center;
  1778. padding: 10px;
  1779. box-sizing: border-box;
  1780. cursor: pointer;
  1781. }
  1782. .tup>img {
  1783. width: 100%;
  1784. height: 100%;
  1785. object-fit: cover;
  1786. }
  1787. .kc_time {
  1788. margin-top: 8px;
  1789. font-size: 14px;
  1790. color: #717C8D;
  1791. }
  1792. .kc_time+.kc_time {
  1793. margin-top: 0;
  1794. }
  1795. .kc_t {
  1796. margin-top: 5px;
  1797. width: 100%;
  1798. white-space: nowrap;
  1799. overflow: hidden;
  1800. text-overflow: ellipsis;
  1801. display: flex;
  1802. align-items: center;
  1803. justify-content: space-between;
  1804. }
  1805. .kc_t>span:nth-child(1) {
  1806. max-width: 100%;
  1807. overflow: hidden;
  1808. text-overflow: ellipsis;
  1809. white-space: nowrap;
  1810. }
  1811. .kc_t>span:nth-child(2) {
  1812. min-width: fit-content;
  1813. font-size: 14px;
  1814. color: #8c8c8c;
  1815. }
  1816. .three_bottom {
  1817. display: flex;
  1818. flex-direction: row;
  1819. /* justify-content: space-around; */
  1820. justify-content: flex-end;
  1821. height: 45px;
  1822. align-items: center;
  1823. background: #fff;
  1824. font-size: 14px;
  1825. border-top: 1px solid #ddd;
  1826. box-sizing: border-box;
  1827. }
  1828. .t_b_Item{
  1829. width: 30px;
  1830. height: 30px;
  1831. background-color: white;
  1832. border-radius: 2px;
  1833. display: flex;
  1834. justify-content: center;
  1835. align-items: center;
  1836. transition: .3s;
  1837. margin-right: 10px;
  1838. cursor: pointer;
  1839. }
  1840. .t_b_Item:hover{
  1841. background-color: #E8E8E8;
  1842. }
  1843. .t_b_Item>img{
  1844. width: 80%;
  1845. height: 80%;
  1846. }
  1847. /* .three_bottom>div {
  1848. cursor: pointer;
  1849. width: 100%;
  1850. text-align: center;
  1851. }
  1852. .three_bottom>div+div {
  1853. border-left: 1px solid #ddd;
  1854. } */
  1855. /* .three_bottom>div:hover {
  1856. color: #3681FC;
  1857. font-weight: bold;
  1858. } */
  1859. .three_bottom .deleteB {
  1860. color: #E96E6E;
  1861. }
  1862. .three_bottom .deleteB:hover {
  1863. color: #E96E6E;
  1864. font-weight: bold;
  1865. }
  1866. .head_left {
  1867. display: flex;
  1868. }
  1869. .student_input>>>.el-input__inner {
  1870. height: 40px;
  1871. width: 190px;
  1872. font-size: 13px;
  1873. padding: 0 10px;
  1874. }
  1875. .course_button {
  1876. color: #fff;
  1877. background: #2268bc;
  1878. width: 75px;
  1879. height: 40px;
  1880. padding: 0 !important;
  1881. font-size: 12px;
  1882. line-height: 40px;
  1883. }
  1884. /* .all_choose {
  1885. margin: 15px 0 10px;
  1886. height: 20%;
  1887. display: flex;
  1888. flex-direction: row;
  1889. align-items: center;
  1890. max-width: calc(100% / 3);
  1891. }
  1892. .all_choose > span {
  1893. width: 50px;
  1894. display: block;
  1895. }
  1896. .choose {
  1897. display: flex;
  1898. flex-direction: row;
  1899. flex-wrap: wrap;
  1900. align-content: space-between;
  1901. height: 100%;
  1902. justify-content: flex-start;
  1903. width: 60%;
  1904. min-width: 868px;
  1905. align-items: center;
  1906. } */
  1907. /* .choose > div:nth-child(2) {
  1908. margin-left: 1%;
  1909. width: 32.33333%;
  1910. }
  1911. .choose > div:nth-child(4) {
  1912. margin-right: 1%;
  1913. width: 32.33333%;
  1914. }
  1915. .choose > div:nth-child(5) {
  1916. margin: 5px 0 0 1%;
  1917. }
  1918. .choose > div:nth-child(4) > span {
  1919. width: 74px !important;
  1920. min-width: 74px;
  1921. }
  1922. .choose > div:nth-child(4) >>> .el-select {
  1923. width: 217.5px;
  1924. min-width: 215.06px;
  1925. } */
  1926. .clear {
  1927. width: 70px;
  1928. height: 35px;
  1929. background: #0061FF;
  1930. color: #fff;
  1931. text-align: center;
  1932. border-radius: 5px;
  1933. line-height: 35px;
  1934. cursor: pointer;
  1935. margin-left: 20px;
  1936. }
  1937. .ct_box {
  1938. height: 500px;
  1939. overflow: auto;
  1940. display: flex;
  1941. flex-wrap: wrap;
  1942. }
  1943. .myCourse {
  1944. position: absolute;
  1945. background: #3c3c3c;
  1946. width: 70px;
  1947. height: 30px;
  1948. border-radius: 5px;
  1949. color: #fff;
  1950. font-size: 14px;
  1951. text-align: center;
  1952. line-height: 30px;
  1953. top: 5px;
  1954. left: 5px;
  1955. }
  1956. .xtCourse {
  1957. position: absolute;
  1958. background: #0061FF;
  1959. width: 70px;
  1960. height: 30px;
  1961. border-radius: 5px;
  1962. color: #fff;
  1963. font-size: 14px;
  1964. text-align: center;
  1965. line-height: 30px;
  1966. top: 5px;
  1967. left: 5px;
  1968. }
  1969. .sub_head {
  1970. position: relative;
  1971. }
  1972. .sub_head::after {
  1973. content: "";
  1974. width: 100%;
  1975. background: #5a9cea;
  1976. height: 2px;
  1977. position: absolute;
  1978. left: 0;
  1979. bottom: -10px;
  1980. }
  1981. .subClick {
  1982. /* font-size: 16px; */
  1983. font-size: 26px;
  1984. cursor: pointer;
  1985. margin-left: 17.5px;
  1986. /* color: #ab582f; */
  1987. /* color: #409eff; */
  1988. color: #999;
  1989. }
  1990. .subClick:hover {
  1991. color: #000;
  1992. }
  1993. .more {
  1994. position: relative;
  1995. }
  1996. .more:hover div {
  1997. display: block;
  1998. color: #000;
  1999. }
  2000. .more div {
  2001. position: absolute;
  2002. bottom: 0px;
  2003. transform: translate(-50%, 100%);
  2004. background: #f5f4f4;
  2005. padding: 10px 20px;
  2006. z-index: 99;
  2007. width: 50px;
  2008. border-radius: 5px;
  2009. box-shadow: 0 0 3px 3px #80808020;
  2010. display: none;
  2011. }
  2012. .more div>span+span {
  2013. margin-top: 10px;
  2014. }
  2015. .more div>span {
  2016. display: block;
  2017. width: 100%;
  2018. text-align: center;
  2019. }
  2020. .more div>span:hover {
  2021. color: #79a2ff;
  2022. }
  2023. .line {
  2024. width: 100%;
  2025. height: 15px;
  2026. background: #e6eaf0;
  2027. }
  2028. .reBox {
  2029. width: 100%;
  2030. /* padding-left: 20px; */
  2031. margin: 0 auto;
  2032. box-sizing: border-box;
  2033. overflow: hidden;
  2034. padding: 10px 15px 0;
  2035. }
  2036. .reTop {
  2037. padding: 0 0 5px;
  2038. /* padding: 20px 0 0 0; */
  2039. /* border-bottom: 1px solid #eee; */
  2040. display: flex;
  2041. flex-direction: row;
  2042. flex-wrap: nowrap;
  2043. align-items: center;
  2044. justify-content: space-between;
  2045. }
  2046. .reTop>div:nth-child(1) {
  2047. font-weight: bold;
  2048. /* width: 40px; */
  2049. /* border-bottom: 1px solid #205cc6; */
  2050. /* padding-bottom: 20px; */
  2051. color: #205cc6;
  2052. /* font-size: 20px; */
  2053. }
  2054. .reTop .reTopCh {
  2055. display: flex;
  2056. }
  2057. .reTop .searchI {
  2058. display: flex;
  2059. flex-direction: row;
  2060. align-items: center;
  2061. border: 1px solid #ccced3;
  2062. width: 250px;
  2063. border-radius: 8px;
  2064. padding: 5px 0;
  2065. /* margin-bottom: 10px; */
  2066. background: #fafafa;
  2067. margin: 0 0 0 10px;
  2068. }
  2069. .search {
  2070. width: 20px;
  2071. padding: 0 5px;
  2072. display: flex;
  2073. align-items: center;
  2074. }
  2075. .search>img {
  2076. width: 100%;
  2077. height: 100%;
  2078. }
  2079. .sInput {
  2080. border: none;
  2081. width: 85%;
  2082. background: #fafafa;
  2083. }
  2084. .sInput:focus-visible {
  2085. outline: none;
  2086. }
  2087. .typeCss {
  2088. display: flex;
  2089. flex-direction: row;
  2090. flex-wrap: wrap;
  2091. justify-content: flex-start;
  2092. align-items: center;
  2093. }
  2094. .choose {
  2095. display: flex;
  2096. flex-direction: column;
  2097. flex-wrap: nowrap;
  2098. height: 100%;
  2099. justify-content: space-evenly;
  2100. align-items: flex-start;
  2101. padding: 10px 0;
  2102. }
  2103. .all_choose {
  2104. display: flex;
  2105. flex-direction: row;
  2106. align-items: baseline;
  2107. margin: 2px 0;
  2108. width: 100%;
  2109. }
  2110. .all_choose>span {
  2111. display: flex;
  2112. margin-right: 5px;
  2113. }
  2114. .all_choose>span>span {
  2115. min-width: 65px;
  2116. max-width: 65px;
  2117. display: block;
  2118. text-align-last: justify;
  2119. }
  2120. .all_choose>span::after {
  2121. content: ':';
  2122. }
  2123. .all_choose>span:nth-child(1) {
  2124. font-weight: bold;
  2125. }
  2126. .all_choose>>>.el-checkbox-group {
  2127. display: flex;
  2128. flex-direction: row;
  2129. width: 820px;
  2130. flex-wrap: wrap;
  2131. align-content: center;
  2132. justify-content: flex-start;
  2133. align-items: center;
  2134. margin-top: 3px;
  2135. }
  2136. .all_choose>.el-checkbox-group>>>.el-checkbox {
  2137. margin-bottom: 10px;
  2138. display: flex;
  2139. flex-direction: row;
  2140. align-items: center;
  2141. }
  2142. .all_choose>.el-checkbox-group>.el-checkbox>>>.el-checkbox__label {
  2143. min-width: 80px;
  2144. overflow: hidden;
  2145. width: 80px;
  2146. text-overflow: ellipsis;
  2147. white-space: nowrap;
  2148. }
  2149. .all_choose>.el-checkbox-group>.el-checkbox>>>.el-checkbox__label:hover {
  2150. width: auto;
  2151. }
  2152. .cName {
  2153. cursor: pointer;
  2154. margin: 0 10px 5px 0;
  2155. color: #b9b6b9;
  2156. min-width: 80px;
  2157. width: 80px;
  2158. white-space: nowrap;
  2159. overflow: hidden;
  2160. text-overflow: ellipsis;
  2161. }
  2162. .isCType {
  2163. color: #6282c2;
  2164. }
  2165. .pType_box {
  2166. margin-top: 0;
  2167. }
  2168. .pType_box>>>.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
  2169. -webkit-box-shadow: none !important;
  2170. box-shadow: none !important;
  2171. }
  2172. .buttonBox {
  2173. position: absolute;
  2174. bottom: -0;
  2175. transform: translateY(100%);
  2176. background: #fff;
  2177. border-radius: 5px;
  2178. box-shadow: 0 0 3px 1px #e3e3e3;
  2179. width: 100%;
  2180. }
  2181. .buttonBox>div {
  2182. height: 40px;
  2183. line-height: 40px;
  2184. width: 100%;
  2185. text-align: center;
  2186. color: #000;
  2187. box-sizing: border-box;
  2188. }
  2189. .buttonBox>div+div {
  2190. border-top: 1px solid #e0e0e0;
  2191. }
  2192. .buttonBox>div:hover {
  2193. background: #f6f8ff;
  2194. }
  2195. .liyuan{
  2196. width: 100% !important;
  2197. padding: 0 90px !important;
  2198. box-sizing: border-box !important;
  2199. }
  2200. </style>