course.vue 58 KB

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