liveRoom.vue 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478
  1. <template>
  2. <div
  3. style="
  4. background: #d0d6e4;
  5. width: 100%;
  6. height: 100%;
  7. margin: 0;
  8. position: relate;
  9. "
  10. >
  11. <!-- <div class="pb_content_body" style="height: 100%">
  12. </div>-->
  13. <div class="blackBottom">
  14. <div
  15. style="
  16. display: flex;
  17. flex-direction: row;
  18. flex-wrap: nowrap;
  19. align-items: stretch;
  20. padding-left: 10px;
  21. "
  22. >
  23. <div class="logoLive">
  24. <img src="../../assets/icon/logo.png" alt />
  25. </div>
  26. <div style="color: #fff; line-height: 45px; padding-left: 15px">湖心亭看雪可可乐博模拟展示课件</div>
  27. </div>
  28. </div>
  29. <div class="isNoOther">
  30. <div class="imgMiddle" :class="isBlock > 0 ? 'imghalf' : 'imgMiddle'" v-show="!full">
  31. <!-- <img src="../../assets/icon/kc1.png" alt /> -->
  32. <!-- <iframe
  33. style="width: 100%; height: 100%; border: none"
  34. src="https://view.officeapps.live.com/op/view.aspx?src=https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/0701%E5%AE%9E%E6%97%B6%E8%AF%BE%E5%A0%82%E6%A8%A1%E6%8B%9F%E6%BC%94%E7%A4%BA%E8%AF%BE%E4%BB%B61656644341323.pptx"
  35. ></iframe>-->
  36. <pdf :pdfUrl="pdfUrl" style="width: 100%; height: 100%" :getPage="getPage"></pdf>
  37. </div>
  38. <div
  39. style="
  40. background: #d0d6e4;
  41. height: 100%;
  42. min-width: 40%;
  43. max-width: 40%;
  44. overflow: auto;
  45. padding: 0px 0 50px;
  46. "
  47. v-if="isBlock == 1 || isBlock == 6"
  48. >
  49. <div style="background: #fff; height: 92%; width: 96%; margin: 10px auto">
  50. <div style="color: #bfbfbf; padding: 15px 0 20px 25px; font-size: 20px">答题查看</div>
  51. <!-- <div class="answerBox" v-if="isBlock == 1">
  52. <div class="answerTimuBox" v-for="item in 1" :key="item">
  53. <div class="choose_style">
  54. <span>A</span>
  55. <span>B</span>
  56. <span>C</span>
  57. <span>D</span>
  58. </div>
  59. </div>
  60. </div>-->
  61. <div class="answerBox" v-if="isBlock == 1 || isBlock == 6">
  62. <div class="memberBox" v-if="isBlock == 1">
  63. <div
  64. :class="{ pAnswer: item.is == 2 }"
  65. v-for="(item, index) in studentArray"
  66. :key="index"
  67. >{{ item.name }}</div>
  68. </div>
  69. <div class="memberBox" v-if="isBlock == 6">
  70. <div
  71. :class="{ pAnswer: item.is == 2 }"
  72. v-for="(item, index) in studentArray2"
  73. :key="index"
  74. @click="whoAnswer(item, index)"
  75. >{{ item.name }}</div>
  76. </div>
  77. <div style="color: #948bdc; padding-top: 15px" v-if="isBlock == 1">共有四个选项,正在答题......</div>
  78. <div class="viewSta" @click="isBlock = 3" v-if="isBlock == 1">查看数据统计</div>
  79. <span slot="footer" class="dialog-footer sztFooter" v-if="isBlock == 6">
  80. <el-button type="primary" @click="isBlock = 0">结束</el-button>
  81. <!-- <el-button type="primary" @click="isBlock = 2">返回</el-button> -->
  82. </span>
  83. </div>
  84. </div>
  85. </div>
  86. <div
  87. style="
  88. background: #d0d6e4;
  89. height: 92%;
  90. min-width: 40%;
  91. max-width: 40%;
  92. overflow: auto;
  93. padding: 0px 0 50px;
  94. "
  95. v-if="isBlock == 3"
  96. >
  97. <div
  98. style="
  99. background: #fff;
  100. width: 96%;
  101. margin: 10px auto;
  102. position: relative;
  103. "
  104. >
  105. <div class="close" @click="isBlock = 0">
  106. <img src="../../assets/icon/close.png" alt />
  107. </div>
  108. <div style="color: #bfbfbf; padding: 15px 0 20px 25px">数据统计</div>
  109. <div style="padding-left: 25px">
  110. 目前A选项
  111. <span class>{{ answerJson.A }}票</span>、B选项
  112. <span>{{ answerJson.B }}票</span>、C选项
  113. <span>{{ answerJson.C }}票</span>、D选项
  114. <span>{{ answerJson.D }}票</span>
  115. </div>
  116. <div class="szt">
  117. <!-- <img src="../../assets/szt.png" alt /> -->
  118. <AnswerData :problemJson="answerJson"></AnswerData>
  119. </div>
  120. <span slot="footer" class="dialog-footer sztFooter">
  121. <el-button type="primary" @click="isBlock = 0">关闭</el-button>
  122. <el-button type="primary" @click="isBlock = 1">返回</el-button>
  123. </span>
  124. </div>
  125. </div>
  126. <div class="answerBox tools_box" v-if="isBlock == 2" style="padding: 10px 0 0 25px">
  127. <div style="color: #d1d1d1; font-size: 24px">课堂实践</div>
  128. <div
  129. style="
  130. margin: 20px 0 20px 0;
  131. border-bottom: 4px solid #3e86f3;
  132. width: 75px;
  133. text-align: center;
  134. padding-bottom: 3px;
  135. "
  136. >选择工具</div>
  137. <div
  138. style="
  139. display: flex;
  140. flex-direction: row;
  141. flex-wrap: wrap;
  142. width: 100%;
  143. justify-content: flex-start;
  144. align-items: center;
  145. "
  146. >
  147. <div
  148. v-if="toolsList[0].tools.indexOf(1) != -1"
  149. @click="(isBlock = 5), (toolCount = 1)"
  150. class="toolCss"
  151. >
  152. <!-- <iframe
  153. style="width: 100%; height: 100%; border: none"
  154. src="https://iwb.cocorobo.cn/"
  155. ></iframe>-->
  156. <div class="toolImg">
  157. <img src="../../assets/icon/secondToolList/whiteBoard.png" alt />
  158. <div>电子白板</div>
  159. </div>
  160. </div>
  161. <div
  162. v-if="toolsList[0].tools.indexOf(2) != -1"
  163. @click="(isBlock = 5), (toolCount = 2)"
  164. class="toolCss"
  165. >
  166. <!-- <iframe
  167. style="width: 100%; height: 100%; border: none"
  168. src="https://iwb.cocorobo.cn/"
  169. ></iframe>-->
  170. <div class="toolImg">
  171. <img src="../../assets/icon/secondToolList/note.png" alt />
  172. <div>便签</div>
  173. </div>
  174. </div>
  175. <div
  176. v-if="toolsList[0].tools.indexOf(3) != -1"
  177. @click="(isBlock = 5), (toolCount = 3)"
  178. class="toolCss"
  179. >
  180. <!-- <iframe
  181. style="width: 100%; height: 100%; border: none"
  182. src="https://cloud.cocorobo.cn/kityminder-editor/dist/index.html"
  183. ></iframe>-->
  184. <div class="toolImg">
  185. <img src="../../assets/icon/secondToolList/mindMapping.png" alt />
  186. <div>思维导图</div>
  187. </div>
  188. </div>
  189. <div
  190. v-if="toolsList[0].tools.indexOf(4) != -1"
  191. @click="(isBlock = 5), (toolCount = 4)"
  192. class="toolCss"
  193. >
  194. <!-- <iframe
  195. style="width: 100%; height: 100%; border: none"
  196. src="https://cloud.cocorobo.cn/kityminder-editor/dist/index.html"
  197. ></iframe>-->
  198. <div class="toolImg">
  199. <img src="../../assets/icon/thirdToolList/ask.png" alt />
  200. <div>问卷调查</div>
  201. </div>
  202. </div>
  203. <div
  204. v-if="toolsList[0].tools.indexOf(6) != -1"
  205. @click="(isBlock = 5), (toolCount = 6)"
  206. class="toolCss"
  207. >
  208. <!-- <iframe
  209. style="width: 100%; height: 100%; border: none"
  210. src="https://cloud.cocorobo.cn/kityminder-editor/dist/index.html"
  211. ></iframe>-->
  212. <div class="toolImg">
  213. <img src="../../assets/icon/secondToolList/doc.png" alt />
  214. <div>协同文档</div>
  215. </div>
  216. </div>
  217. <div
  218. v-if="toolsList[0].tools.indexOf(7) != -1"
  219. @click="(isBlock = 5), (toolCount = 7)"
  220. class="toolCss"
  221. >
  222. <!-- <iframe
  223. style="width: 100%; height: 100%; border: none"
  224. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  225. ></iframe>-->
  226. <div class="toolImg">
  227. <img src="../../assets/icon/secondToolList/mindNetwork.png" alt />
  228. <div>思维网格</div>
  229. </div>
  230. </div>
  231. <div
  232. v-if="toolsList[0].tools.indexOf(8) != -1"
  233. @click="(isBlock = 5), (toolCount = 8)"
  234. class="toolCss"
  235. >
  236. <!-- <iframe
  237. style="width: 100%; height: 100%; border: none"
  238. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  239. ></iframe>-->
  240. <div class="toolImg">
  241. <img src="../../assets/icon/secondToolList/library.png" alt />
  242. <div>素材库</div>
  243. </div>
  244. </div>
  245. <div v-if="toolsList[0].tools.indexOf(10) != -1" class="toolCss">
  246. <!-- <iframe
  247. style="width: 100%; height: 100%; border: none"
  248. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  249. ></iframe>-->
  250. <div class="toolImg">
  251. <div>倒计时</div>
  252. </div>
  253. </div>
  254. <div v-if="toolsList[0].tools.indexOf(11) != -1" class="toolCss">
  255. <!-- <iframe
  256. style="width: 100%; height: 100%; border: none"
  257. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  258. ></iframe>-->
  259. <div class="toolImg">
  260. <div>问答题</div>
  261. </div>
  262. </div>
  263. <div v-if="toolsList[0].tools.indexOf(13) != -1" class="toolCss">
  264. <!-- <iframe
  265. style="width: 100%; height: 100%; border: none"
  266. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  267. ></iframe>-->
  268. <div class="toolImg">
  269. <div>分小组</div>
  270. </div>
  271. </div>
  272. <div v-if="toolsList[0].tools.indexOf(14) != -1" class="toolCss">
  273. <!-- <iframe
  274. style="width: 100%; height: 100%; border: none"
  275. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  276. ></iframe>-->
  277. <div class="toolImg">
  278. <div>作业评价</div>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. <div class="answerBox tools_box" :class="{ fullStyle: full }" v-if="isBlock == 5">
  284. <!-- <div
  285. style="
  286. border-bottom: 3px solid rgb(44, 131, 238);
  287. width: 70px;
  288. padding-bottom: 3px;
  289. text-align: center;
  290. margin-bottom: 20px;
  291. "
  292. >
  293. 选择工具
  294. </div>-->
  295. <div style="height: 100%; width: 100%">
  296. <div v-if="toolCount == 1" class="tools_child_box">
  297. <div class="tools_title">
  298. <span>电子白板</span>
  299. <div>
  300. <img src="../../assets/full.png" class="full" @click="fullTools" />
  301. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  302. </div>
  303. </div>
  304. <iframe style="width: 100%; height: 100%; border: none" src="https://iwb.cocorobo.cn/"></iframe>
  305. </div>
  306. <div v-if="toolsList[0].tools[howTools] == 2" class="tools_child_box">
  307. <div class="tools_title">
  308. <span>便签</span>
  309. <div>
  310. <img src="../../assets/full.png" class="full" @click="fullTools" />
  311. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  312. </div>
  313. </div>
  314. <iframe
  315. style="width: 100%; height: 100%; border: none"
  316. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/note"
  317. ></iframe>
  318. </div>
  319. <div v-if="toolCount == 3" class="tools_child_box">
  320. <div class="tools_title">
  321. <span>思维导图</span>
  322. <div>
  323. <img src="../../assets/full.png" class="full" @click="fullTools" />
  324. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  325. </div>
  326. </div>
  327. <iframe
  328. style="width: 100%; height: 100%; border: none"
  329. src="https://cloud.cocorobo.cn/kityminder-editor/dist/index.html"
  330. ></iframe>
  331. </div>
  332. <div v-if="toolsList[0].tools[howTools] == 4" class="tools_child_box">
  333. <div class="tools_title">
  334. <span>问卷调查</span>
  335. <div>
  336. <img src="../../assets/full.png" class="full" @click="fullTools" />
  337. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  338. </div>
  339. </div>
  340. <iframe
  341. style="width: 100%; height: 100%; border: none"
  342. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/ask"
  343. ></iframe>
  344. </div>
  345. <div v-if="toolsList[0].tools[howTools] == 6" class="tools_child_box">
  346. <div class="tools_title">
  347. <span>协同文档</span>
  348. <div>
  349. <img src="../../assets/full.png" class="full" @click="fullTools" />
  350. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  351. </div>
  352. </div>
  353. <iframe
  354. style="width: 100%; height: 100%; border: none"
  355. src="https://cloud.cocorobo.cn/Office/Word/WordEditArea.htm"
  356. ></iframe>
  357. </div>
  358. <div v-if="toolCount == 7" class="tools_child_box">
  359. <div class="tools_title">
  360. <span>思维网格</span>
  361. <div>
  362. <img src="../../assets/full.png" class="full" @click="fullTools" />
  363. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  364. </div>
  365. </div>
  366. <iframe
  367. style="width: 100%; height: 100%; border: none"
  368. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  369. ></iframe>
  370. </div>
  371. <div v-if="toolsList[0].tools[howTools] == 8" class="tools_child_box">
  372. <div class="tools_title">
  373. <span>素材库</span>
  374. <div>
  375. <img src="../../assets/full.png" class="full" @click="fullTools" />
  376. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  377. </div>
  378. </div>
  379. <iframe
  380. style="width: 100%; height: 100%; border: none"
  381. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/library"
  382. ></iframe>
  383. </div>
  384. <div v-if="toolsList[0].tools[howTools] == 9" class="tools_child_box">
  385. <div class="tools_title">
  386. <span>选择题</span>
  387. <div>
  388. <img src="../../assets/full.png" class="full" @click="fullTools" />
  389. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  390. </div>
  391. </div>
  392. <div>选择题</div>
  393. </div>
  394. <div v-if="toolsList[0].tools[howTools] == 10" class="tools_child_box">
  395. <div class="tools_title">
  396. <span>倒计时</span>
  397. <div>
  398. <img src="../../assets/full.png" class="full" @click="fullTools" />
  399. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  400. </div>
  401. </div>
  402. <div>倒计时</div>
  403. </div>
  404. <div v-if="toolsList[0].tools[howTools] == 11" class="tools_child_box">
  405. <div class="tools_title">
  406. <span>问答题</span>
  407. <div>
  408. <img src="../../assets/full.png" class="full" @click="fullTools" />
  409. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  410. </div>
  411. </div>
  412. <div>问答题</div>
  413. </div>
  414. <div v-if="toolsList[0].tools[howTools] == 13" class="tools_child_box">
  415. <div class="tools_title">
  416. <span>分小组</span>
  417. <div>
  418. <img src="../../assets/full.png" class="full" @click="fullTools" />
  419. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  420. </div>
  421. </div>
  422. <div>分小组</div>
  423. </div>
  424. <div v-if="toolsList[0].tools[howTools] == 14" class="tools_child_box">
  425. <div class="tools_title">
  426. <span>作业评价</span>
  427. <div>
  428. <img src="../../assets/full.png" class="full" @click="fullTools" />
  429. <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
  430. </div>
  431. </div>
  432. <div>作业评价</div>
  433. </div>
  434. <div class="nextStepBox" v-if="toolsList[0].tools.length > 1">
  435. <!-- <div class="nextStepOne" @click="howTools--" v-if="howTools != 0">
  436. 上一步
  437. </div>
  438. <div
  439. class="nextStepOne"
  440. @click="howTools++"
  441. v-if="howTools != toolsList[0].tools.length - 1"
  442. >
  443. 下一步
  444. </div>-->
  445. <div class="nextStepOne" @click="isBlock = 2">返回</div>
  446. </div>
  447. </div>
  448. <!-- <div v-if="toolCount == 0" style="height: 90%">
  449. <iframe
  450. style="width: 100%; height: 100%; border: none"
  451. src="https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid"
  452. ></iframe>
  453. </div>
  454. <div v-if="toolCount == 1" style="height: 90%">
  455. <iframe
  456. style="width: 100%; height: 100%; border: none"
  457. src="https://iwb.cocorobo.cn/"
  458. ></iframe>
  459. </div>
  460. <div v-if="toolCount == 2" style="height: 90%">
  461. <iframe
  462. style="width: 100%; height: 100%; border: none"
  463. src="https://cloud.cocorobo.cn/kityminder-editor/dist/index.html"
  464. ></iframe>
  465. </div>
  466. <div class="nextStepOne" @click="nextTool">下一步</div>-->
  467. </div>
  468. <div
  469. class="answerBox"
  470. style="
  471. width: 38.5%;
  472. max-width: 38.5%;
  473. overflow: auto;
  474. background: rgb(255, 255, 255);
  475. height: 91.5%;
  476. position: relative;
  477. margin: 10px 15px;
  478. "
  479. v-if="isBlock == 4"
  480. >
  481. <div
  482. style="
  483. color: #b7b7b7;
  484. border-left: 5px solid #a5b6e2;
  485. padding-left: 7px;
  486. height: 25px;
  487. line-height: 25px;
  488. "
  489. >查看作业</div>
  490. <div class="workBox">
  491. <div class="works" v-for="(w, wIndex) in worksList" :key="wIndex">
  492. <div class="workImg">
  493. <img
  494. :src="w.upload.upImg ? w.upload.upImg[0].url : mr"
  495. @click="previewImg(w.upload.upImg ? w.upload.upImg[0].url : mr)"
  496. alt
  497. />
  498. </div>
  499. <div class="workDetail">
  500. <div class="workLeft">
  501. <div class="workTx">
  502. <img src="../../assets/avatar.png" alt />
  503. </div>
  504. <div class="workName">{{ w.sName }}</div>
  505. </div>
  506. <div class="workRight">{{ w.time }}</div>
  507. <div class="workBtn" @click="isBlock = 7">查看评价</div>
  508. </div>
  509. </div>
  510. </div>
  511. <div class="returnButton" @click="isBlock = 0">关闭</div>
  512. </div>
  513. <div
  514. class="answerBox"
  515. v-if="isBlock == 7"
  516. style="
  517. padding: 0 0 0 25px;
  518. width: 38.5%;
  519. max-width: 38.5%;
  520. overflow: auto;
  521. background: rgb(255, 255, 255);
  522. height: 91.5%;
  523. position: relative;
  524. margin: 10px 15px;
  525. "
  526. >
  527. <div style="color: #bfbfbf; padding: 15px 0 15px 0; font-size: 20px">课堂评价</div>
  528. <div>
  529. <div class="score_box">
  530. <span>自我评价</span>
  531. <el-rate v-model="rateList.ca"></el-rate>
  532. </div>
  533. <div class="score_box">
  534. <span>他人评价</span>
  535. <el-rate v-model="rateList.sia"></el-rate>
  536. </div>
  537. </div>
  538. <div>
  539. <div style="padding-bottom: 15px; sont-size: 14px">备注</div>
  540. <div class="bz">
  541. <el-input
  542. type="textarea"
  543. placeholder="请输入备注…"
  544. :rows="6"
  545. resize="none"
  546. v-model="rateList.content"
  547. ></el-input>
  548. </div>
  549. </div>
  550. <span
  551. slot="footer"
  552. class="dialog-footer sztFooter"
  553. style="
  554. padding: 0 0 30px 0px;
  555. position: absolute;
  556. right: 20px;
  557. bottom: 0;
  558. "
  559. >
  560. <el-button type="primary" @click="isBlock = 4">返回</el-button>
  561. </span>
  562. </div>
  563. </div>
  564. <div class="blackBottomB">
  565. <div style="display: flex">
  566. <div class="blackButton" @click="showMember(0)" v-if="steps == 3">开始答题</div>
  567. <div
  568. class="blackButton"
  569. @click="isBlock = 2"
  570. v-if="
  571. 4 <= steps &&
  572. steps <= 12 &&
  573. steps != 8 &&
  574. steps != 11 &&
  575. steps != 12 &&
  576. toolsList[0].tools[howTools] != 10 &&
  577. toolsList[0].tools[howTools] != 11 &&
  578. toolsList[0].tools[howTools] != 13
  579. "
  580. >查看工具</div>
  581. <div class="blackButton" @click="checkStudentAnswer" v-if="steps == 8">选择学生回答</div>
  582. <div
  583. class="blackButton"
  584. @click="selectSWork"
  585. v-if="
  586. steps == 11 ||
  587. steps == 12 ||
  588. (4 <= steps &&
  589. steps <= 12 &&
  590. steps != 8 &&
  591. steps != 11 &&
  592. steps != 12 &&
  593. toolsList[0].tools[howTools] != 10 &&
  594. toolsList[0].tools[howTools] != 11 &&
  595. toolsList[0].tools[howTools] != 13)
  596. "
  597. >查看作业</div>
  598. </div>
  599. <!-- <div
  600. class="blackButton"
  601. style="margin-right: 10px"
  602. @click="dialogVisible2 = true"
  603. >
  604. 查看报告
  605. </div>-->
  606. </div>
  607. <el-dialog
  608. title="选择答题"
  609. :visible.sync="dialogVisible"
  610. :append-to-body="true"
  611. width="500px"
  612. :before-close="handleClose"
  613. class="dialog_diy"
  614. >
  615. <div
  616. style="text-align: center; padding: 20px 0 50px 0; font-size: 18px"
  617. >是否让“{{ answerStudent }}”同学进行单独答题?</div>
  618. <div
  619. style="
  620. width: 200px;
  621. background: #4d8ae0;
  622. height: 35px;
  623. margin: 0 auto;
  624. text-align: center;
  625. line-height: 35px;
  626. color: #fff;
  627. border-radius: 5px;
  628. cursor: pointer;
  629. "
  630. @click="dialogVisible = false"
  631. >确定</div>
  632. </el-dialog>
  633. <el-dialog
  634. :visible.sync="dialogVisible1"
  635. :append-to-body="true"
  636. width="500px"
  637. :before-close="handleClose"
  638. class="dialog_diy"
  639. >
  640. <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">正在开发中!</div>
  641. <div
  642. style="
  643. width: 200px;
  644. background: #4d8ae0;
  645. height: 35px;
  646. margin: 0 auto;
  647. text-align: center;
  648. line-height: 35px;
  649. color: #fff;
  650. border-radius: 5px;
  651. cursor: pointer;
  652. "
  653. @click="dialogVisible1 = false"
  654. >确定</div>
  655. </el-dialog>
  656. <el-dialog
  657. :visible.sync="dialogVisible2"
  658. :append-to-body="true"
  659. width="500px"
  660. :before-close="handleClose"
  661. class="dialog_diy"
  662. >
  663. <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">课程结束后才有报告!</div>
  664. <div
  665. style="
  666. width: 200px;
  667. background: #4d8ae0;
  668. height: 35px;
  669. margin: 0 auto;
  670. text-align: center;
  671. line-height: 35px;
  672. color: #fff;
  673. border-radius: 5px;
  674. cursor: pointer;
  675. "
  676. @click="dialogVisible2 = false"
  677. >确定</div>
  678. </el-dialog>
  679. <ImgDraw :drawShow="drawShow" @closeDraw="closeDraw" :bg="bg"></ImgDraw>
  680. <img id="img1" ref="img1" hidden="hidden" />
  681. </div>
  682. </template>
  683. <script>
  684. import "../../common/aws-sdk-2.235.1.min";
  685. import EditorBar from "../../components/tools/wangEnduit";
  686. import AnswerData from "./components/answerData";
  687. import pdf from "./components/pdf";
  688. import ImgDraw from "./components/imgDraw/imgDraw";
  689. export default {
  690. components: { EditorBar, AnswerData, pdf, ImgDraw },
  691. data() {
  692. return {
  693. pdfUrl:
  694. "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/0629%E5%AE%9E%E6%97%B6%E8%AF%BE%E5%A0%82%E6%A8%A1%E6%8B%9F%E6%BC%94%E7%A4%BA%E8%AF%BE%E4%BB%B61656920880446.pdf",
  695. isLoading: false,
  696. full: false,
  697. drawShow: false,
  698. bg: null,
  699. formLabelWidth: "100px",
  700. userid: this.$route.query.userid,
  701. cid: this.$route.query.cid,
  702. oid: this.$route.query.oid,
  703. mr: require("../../assets/icon/kc1.png"),
  704. timu: [],
  705. // a: false,
  706. // b: false,
  707. // c: false,
  708. steps: 0,
  709. isBlock: 0,
  710. dialogVisible: false,
  711. dialogVisible1: false,
  712. dialogVisible2: false,
  713. toolCount: 0,
  714. answerBox: "",
  715. answer: [
  716. { name: "A.1568" },
  717. { name: "B.720" },
  718. { name: "C.1728" },
  719. { name: "D.480" },
  720. ],
  721. studentArray: [
  722. { name: "张可松", is: 1 },
  723. { name: "陈佳佳", is: 1 },
  724. { name: "许琦基", is: 1 },
  725. { name: "洛维奇", is: 1 },
  726. { name: "罗伟", is: 1 },
  727. { name: "李孝雄", is: 1 },
  728. { name: "李琪琪", is: 1 },
  729. { name: "黄子韬", is: 1 },
  730. { name: "张嘉琪", is: 1 },
  731. { name: "陈家", is: 1 },
  732. { name: "张可", is: 1 },
  733. { name: "庄小小", is: 1 },
  734. { name: "梁思成", is: 1 },
  735. { name: "房小玲", is: 1 },
  736. { name: "李卫涛", is: 1 },
  737. { name: "李玫儿", is: 1 },
  738. { name: "张可梦", is: 1 },
  739. { name: "李琦", is: 1 },
  740. { name: "梁惠", is: 1 },
  741. { name: "许佳琪", is: 1 },
  742. ],
  743. studentArray2: [
  744. { name: "张可松", is: 1 },
  745. { name: "陈佳佳", is: 1 },
  746. { name: "许琦基", is: 1 },
  747. { name: "洛维奇", is: 1 },
  748. { name: "罗伟", is: 1 },
  749. { name: "李孝雄", is: 1 },
  750. { name: "李琪琪", is: 1 },
  751. { name: "黄子韬", is: 1 },
  752. { name: "张嘉琪", is: 1 },
  753. { name: "陈家", is: 1 },
  754. { name: "张可", is: 1 },
  755. { name: "庄小小", is: 1 },
  756. { name: "梁思成", is: 1 },
  757. { name: "房小玲", is: 1 },
  758. { name: "李卫涛", is: 1 },
  759. { name: "李玫儿", is: 1 },
  760. { name: "张可梦", is: 1 },
  761. { name: "李琦", is: 1 },
  762. { name: "梁惠", is: 1 },
  763. { name: "许佳琪", is: 1 },
  764. ],
  765. askCount: 0,
  766. answerJson: {
  767. A: 0,
  768. B: 0,
  769. C: 0,
  770. D: 0,
  771. },
  772. answerStudent: "",
  773. tools: [
  774. "",
  775. "",
  776. { tools: [9] }, //选择题
  777. { tools: [10] }, //倒计时
  778. { tools: [11] }, //问答题
  779. { tools: [11] }, //问答题
  780. { tools: [3, 1] }, //思维导图/电子白板
  781. { tools: [12] }, //选人回答
  782. { tools: [10, 13] }, //倒计时、分小组
  783. { tools: [3, 1, 7] }, //思维导图/电子白板/思维网格
  784. { tools: [14] }, //查看作业
  785. { tools: [14] }, //查看作业
  786. "", //查看作业
  787. //1、电子白板 2、便签 3、思维导图 4、问卷调查 5、量规评分 6、协同文档 7、思维网格 8、素材库 9、选择题 10、倒计时 11、问答题 12、选人回答 13、分小组 14、老师对提交作业进行评价
  788. ],
  789. howTools: 0,
  790. worksDetail: [],
  791. worksList: [],
  792. toolsList: [],
  793. isNext: false,
  794. rateList: {
  795. ca: 5,
  796. sia: 5,
  797. content: "老师讲得真好",
  798. },
  799. };
  800. },
  801. methods: {
  802. change(val) {
  803. console.log(val);
  804. },
  805. goTo(path) {
  806. this.$router.push(path);
  807. },
  808. tableRowClassName({ row, rowIndex }) {
  809. if ((rowIndex + 1) % 2 === 0) {
  810. return "even_row";
  811. } else {
  812. return "";
  813. }
  814. },
  815. jump(cid) {
  816. window.parent.postMessage({ cid: cid, type: "1" }, "*");
  817. },
  818. handleCurrentChange(val) {
  819. // console.log(`当前页: ${val}`);
  820. this.page = val;
  821. },
  822. init() {},
  823. handleClose(done) {
  824. done();
  825. },
  826. //uuid生成
  827. guid() {
  828. return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (
  829. c
  830. ) {
  831. var r = (Math.random() * 16) | 0,
  832. v = c == "x" ? r : (r & 0x3) | 0x8;
  833. return v.toString(16);
  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. randomNum(minNum, maxNum) {
  851. switch (arguments.length) {
  852. case 1:
  853. return parseInt(Math.random() * minNum + 1, 10);
  854. break;
  855. case 2:
  856. return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
  857. break;
  858. default:
  859. return 0;
  860. break;
  861. }
  862. },
  863. addTool(t) {
  864. if (t == 1) {
  865. window.parent.postMessage({ tools: "1" }, "*");
  866. } else if (t == 3) {
  867. window.parent.postMessage({ tools: "3" }, "*");
  868. } else if (t == 7) {
  869. window.parent.postMessage({ tools: "7" }, "*");
  870. }
  871. },
  872. nextTool() {
  873. if (this.howTools < this.toolsList[0].tools.length - 1) {
  874. this.howTools++;
  875. if (this.howTools == this.toolsList[0].tools.length - 1) {
  876. this.isNext = true;
  877. }
  878. } else if (this.howTools == this.toolsList[0].tools.length - 1) {
  879. if (this.isNext == true) {
  880. this.howTools = this.howTools - 1;
  881. this.isNext = false;
  882. }
  883. }
  884. // if (this.toolCount < 2) {
  885. // this.toolCount++;
  886. // } else {
  887. // this.steps = 0;
  888. // this.type = 0;
  889. // this.toolCount = 0;
  890. // }
  891. },
  892. // answerWork() {
  893. // this.isBlock = 1;
  894. // },
  895. checkStudentAnswer() {
  896. this.isBlock = 6;
  897. for (var i = 0; i < this.studentArray.length; i++) {
  898. this.studentArray2[i].is = 1;
  899. }
  900. },
  901. showMember(i) {
  902. let _this = this;
  903. this.isBlock = 1;
  904. setTimeout(() => {
  905. for (var i = 0; i < 10; i++) {
  906. var a = _this.randomNum(0, _this.studentArray.length - 1);
  907. _this.studentArray[a].is = 2;
  908. }
  909. this.askCount = 0;
  910. for (var i in _this.studentArray) {
  911. if (_this.studentArray[i].is == 2) {
  912. _this.askCount++;
  913. }
  914. }
  915. i = 0;
  916. this.answerJson = {
  917. A: 0,
  918. B: 0,
  919. C: 0,
  920. D: 0,
  921. };
  922. for (var i = 0; i < _this.askCount; i++) {
  923. var a = _this.randomNum(0, 3);
  924. if (a === 0) {
  925. _this.answerJson.A++;
  926. } else if (a === 1) {
  927. _this.answerJson.B++;
  928. } else if (a === 2) {
  929. _this.answerJson.C++;
  930. } else if (a === 3) {
  931. _this.answerJson.D++;
  932. }
  933. }
  934. }, 2000);
  935. },
  936. whoAnswer(item, index) {
  937. for (var i = 0; i < this.studentArray.length; i++) {
  938. this.studentArray2[i].is = 1;
  939. }
  940. this.studentArray2[index].is = 2;
  941. this.answerStudent = item.name;
  942. this.dialogVisible = true;
  943. },
  944. howPage(page) {
  945. this.howTools = 0;
  946. if (this.toolsList.length > 0) {
  947. this.toolsList = [];
  948. this.toolsList.push({ tools: this.tools[page - 1].tools });
  949. } else {
  950. this.toolsList.push({ tools: this.tools[page - 1].tools });
  951. }
  952. },
  953. getPage(page) {
  954. console.log(page);
  955. let params = [
  956. {
  957. page: page,
  958. },
  959. ];
  960. this.ajax
  961. .post(this.$store.state.api + "updatePptPage", params)
  962. .then((res) => {
  963. this.steps = page;
  964. this.isBlock = 0;
  965. if (page == 3) {
  966. this.howPage(page);
  967. } else if (page == 4) {
  968. this.howPage(page);
  969. } else if (page == 5) {
  970. this.howPage(page);
  971. } else if (page == 6) {
  972. this.howPage(page);
  973. } else if (page == 7) {
  974. this.howPage(page);
  975. } else if (page == 8) {
  976. this.howPage(page);
  977. } else if (page == 9) {
  978. this.howPage(page);
  979. } else if (page == 10) {
  980. this.howPage(page);
  981. } else if (page == 11) {
  982. this.howPage(page);
  983. } else if (page == 12) {
  984. this.howPage(page);
  985. }
  986. })
  987. .catch((err) => {
  988. console.error(err);
  989. });
  990. },
  991. selectSWork() {
  992. this.worksList = [];
  993. let params = {
  994. uid: "",
  995. cid: this.cid,
  996. };
  997. this.ajax
  998. .get(this.$store.state.api + "selectSWork", params)
  999. .then((res) => {
  1000. this.worksDetail = res.data[0];
  1001. for (var i = 0; i < this.worksDetail.length; i++) {
  1002. this.worksList.push({
  1003. upload: JSON.parse(this.worksDetail[i].upload)[0],
  1004. sName: this.worksDetail[i].username,
  1005. time: this.worksDetail[i].time,
  1006. });
  1007. }
  1008. this.isBlock = 4;
  1009. })
  1010. .catch((err) => {
  1011. this.$message.error("查询失败");
  1012. console.error(err);
  1013. });
  1014. },
  1015. previewImg(url) {
  1016. // this.$hevueImgPreview(url);
  1017. // this.$hevueImgPreview(url);
  1018. this.drawShow = true;
  1019. this.bg = url;
  1020. // this.setAvatarBase64(url, (base64) => {
  1021. // this.$nextTick(() => {
  1022. // this.drawShow = true;
  1023. // this.bg = base64;
  1024. // });
  1025. // });
  1026. },
  1027. closeDraw() {
  1028. this.bg = null;
  1029. this.drawShow = false;
  1030. },
  1031. fullTools() {
  1032. this.full = !this.full;
  1033. },
  1034. closeTools() {
  1035. this.full = false;
  1036. this.isBlock = 2;
  1037. },
  1038. // 将网络图片转换成base64格式
  1039. transBase64FromImage(image) {
  1040. let canvas = document.createElement("canvas");
  1041. canvas.width = image.width;
  1042. canvas.height = image.height;
  1043. let ctx = canvas.getContext("2d");
  1044. ctx.drawImage(image, 0, 0, image.width, image.height);
  1045. // 可选其他值 image/jpeg
  1046. return canvas.toDataURL("image/jpeg");
  1047. },
  1048. // 设置需要展示的图片 base64
  1049. setAvatarBase64(src, callback) {
  1050. let _this = this;
  1051. let image = new Image();
  1052. // let image = this.$refs.img1;
  1053. // 处理缓存
  1054. // image.src = src + "?v=" + Math.random();
  1055. image.src = src;
  1056. // 支持跨域图片
  1057. // image.crossOrigin = "anonymous";
  1058. // crossorigin="anonymous"
  1059. image.onload = function () {
  1060. let base64 = _this.transBase64FromImage(image);
  1061. callback && callback(base64);
  1062. // console.log(base64);
  1063. // return base64
  1064. };
  1065. },
  1066. },
  1067. created() {},
  1068. };
  1069. </script>
  1070. <style scoped>
  1071. .dialog_diy >>> .el-dialog__header {
  1072. background: #3d67bc !important;
  1073. padding: 15px 20px;
  1074. }
  1075. .dialog_diy >>> .el-dialog__title {
  1076. color: #fff;
  1077. }
  1078. .dialog_diy >>> .el-dialog__headerbtn {
  1079. top: 9px;
  1080. }
  1081. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close {
  1082. color: #fff;
  1083. }
  1084. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
  1085. color: #fff;
  1086. }
  1087. .blackBottom {
  1088. background: rgb(0, 0, 0);
  1089. height: 45px;
  1090. width: 100%;
  1091. }
  1092. .imgMiddle {
  1093. width: 100%;
  1094. height: calc(100% - 45px);
  1095. /* max-height: 920px; */
  1096. }
  1097. .imgMiddle > img,
  1098. .imghalf > img,
  1099. .szt > img,
  1100. .logoLive > img,
  1101. .close > img {
  1102. width: 100%;
  1103. height: 100%;
  1104. /* max-height: 920px; */
  1105. }
  1106. .blackBottomB {
  1107. position: sticky;
  1108. bottom: 0px;
  1109. left: 0px;
  1110. display: flex;
  1111. flex-direction: row;
  1112. flex-wrap: wrap;
  1113. align-content: center;
  1114. justify-content: space-between;
  1115. align-items: center;
  1116. background: rgb(0, 0, 0);
  1117. height: 45px;
  1118. width: 100%;
  1119. }
  1120. .blackBottomB > div:nth-child(1) {
  1121. margin-left: 10px !important;
  1122. }
  1123. .blackButton {
  1124. color: #fff;
  1125. background: #066ebe;
  1126. width: 100px;
  1127. height: 30px;
  1128. line-height: 30px;
  1129. text-align: center;
  1130. margin: 0 5px;
  1131. border-radius: 5px;
  1132. font-size: 15px;
  1133. cursor: pointer;
  1134. }
  1135. .isNoOther {
  1136. width: 100%;
  1137. /* height: 100%; */
  1138. height: calc(100% - 45px);
  1139. display: flex;
  1140. }
  1141. .imghalf {
  1142. width: 60% !important;
  1143. height: calc(100% - 45px);
  1144. /* max-height: 920px; */
  1145. }
  1146. .answerBox {
  1147. padding-left: 25px;
  1148. padding: 25px;
  1149. box-sizing: border-box;
  1150. /* max-height: 800px;
  1151. overflow: auto; */
  1152. }
  1153. .answerTimuBox {
  1154. display: flex;
  1155. flex-direction: column;
  1156. flex-wrap: nowrap;
  1157. align-items: flex-start;
  1158. justify-content: flex-start;
  1159. padding-bottom: 15px;
  1160. }
  1161. .memberBox {
  1162. display: flex;
  1163. flex-direction: row;
  1164. flex-wrap: wrap;
  1165. align-items: center;
  1166. }
  1167. .memberBox > div {
  1168. background: rgb(79 213 163);
  1169. width: 120px;
  1170. color: #fff;
  1171. height: 40px;
  1172. text-align: center;
  1173. line-height: 40px;
  1174. border-radius: 5px;
  1175. margin: 0 15px 15px 0;
  1176. cursor: pointer;
  1177. }
  1178. .memberBox .pAnswer {
  1179. background: rgb(55 197 144);
  1180. }
  1181. .viewSta {
  1182. background: rgb(97, 97, 97);
  1183. color: #bebebe;
  1184. margin: 20px auto 20px;
  1185. width: 300px;
  1186. height: 40px;
  1187. text-align: center;
  1188. line-height: 40px;
  1189. border-radius: 5px;
  1190. cursor: pointer;
  1191. }
  1192. .szt {
  1193. width: 100%;
  1194. margin: 20px auto;
  1195. }
  1196. .sztFooter {
  1197. padding: 20px 10px 50px 0;
  1198. display: flex;
  1199. flex-direction: row;
  1200. flex-wrap: nowrap;
  1201. justify-content: flex-end;
  1202. align-items: center;
  1203. }
  1204. .toolList {
  1205. display: flex;
  1206. flex-direction: row;
  1207. flex-wrap: wrap;
  1208. justify-content: flex-start;
  1209. align-items: center;
  1210. }
  1211. .tools {
  1212. display: flex;
  1213. flex-direction: column;
  1214. align-items: center;
  1215. margin-right: 20px;
  1216. }
  1217. .tools > div:nth-child(1) {
  1218. width: 60px;
  1219. }
  1220. .tools > div:nth-child(1) > img,
  1221. .workImg > img,
  1222. .workTx > img {
  1223. width: 100%;
  1224. height: 100%;
  1225. object-fit: cover;
  1226. cursor: pointer;
  1227. margin: 0;
  1228. }
  1229. .nextStepBox {
  1230. display: flex;
  1231. justify-content: center;
  1232. margin-top: 10px;
  1233. }
  1234. .nextStepOne {
  1235. background: #6b92c9;
  1236. color: #fff;
  1237. width: 110px;
  1238. text-align: center;
  1239. height: 35px;
  1240. line-height: 35px;
  1241. font-size: 14px;
  1242. border-radius: 5px;
  1243. cursor: pointer;
  1244. }
  1245. .nextStepOne,
  1246. .nextStepOne {
  1247. margin-left: 10px;
  1248. }
  1249. .logoLive {
  1250. width: 35px;
  1251. }
  1252. .anserBoxCss {
  1253. box-sizing: border-box;
  1254. padding: 20px 0;
  1255. }
  1256. .anserBoxCss >>> .el-radio__label {
  1257. font-size: 18px;
  1258. }
  1259. .anserBoxCss >>> .el-radio__inner {
  1260. border-radius: 0px !important;
  1261. }
  1262. .choose_style {
  1263. display: flex;
  1264. justify-content: center;
  1265. align-items: center;
  1266. width: 100%;
  1267. margin: 10px 0 30px;
  1268. }
  1269. .choose_style span {
  1270. background: #f8f9ff;
  1271. color: #677fff;
  1272. border: 1px solid #95b5ff;
  1273. padding: 15px 20px;
  1274. font-size: 25px;
  1275. border-radius: 18px;
  1276. cursor: pointer;
  1277. }
  1278. .choose_style span + span {
  1279. margin-left: 25px;
  1280. }
  1281. .choose_style .active {
  1282. color: #fff;
  1283. background: #5e78fa;
  1284. }
  1285. .close {
  1286. position: absolute;
  1287. right: 10px;
  1288. top: 10px;
  1289. width: 20px;
  1290. cursor: pointer;
  1291. }
  1292. .workBox {
  1293. margin-top: 20px;
  1294. display: flex;
  1295. flex-direction: row;
  1296. flex-wrap: wrap;
  1297. width: 100%;
  1298. }
  1299. .works {
  1300. width: 31%;
  1301. border: 1px solid #ececec;
  1302. /* height: 160px; */
  1303. margin: 0 10px 10px 0;
  1304. /* cursor: pointer; */
  1305. min-width: 180px;
  1306. border-radius: 3px;
  1307. overflow: hidden;
  1308. }
  1309. .workImg {
  1310. /* width: 214px; */
  1311. height: 117px;
  1312. }
  1313. .workDetail {
  1314. display: flex;
  1315. flex-direction: row;
  1316. flex-wrap: nowrap;
  1317. align-items: flex-start;
  1318. justify-content: space-between;
  1319. padding: 8px 0 0;
  1320. flex-direction: column;
  1321. }
  1322. .workLeft {
  1323. display: flex;
  1324. flex-direction: row;
  1325. flex-wrap: nowrap;
  1326. align-items: center;
  1327. width: 100%;
  1328. padding: 0px 5px;
  1329. box-sizing: border-box;
  1330. }
  1331. .workTx {
  1332. width: 25px;
  1333. }
  1334. .workName {
  1335. font-size: 14px;
  1336. padding-left: 13px;
  1337. }
  1338. .workRight {
  1339. font-size: 14px;
  1340. color: #ccc;
  1341. margin: 0 0 3px;
  1342. padding: 0 5px;
  1343. width: 100%;
  1344. box-sizing: border-box;
  1345. }
  1346. .workBtn {
  1347. width: 100%;
  1348. background: rgb(110 145 203);
  1349. color: #fff;
  1350. cursor: pointer;
  1351. text-align: center;
  1352. padding: 5px 0;
  1353. }
  1354. .returnButton {
  1355. position: absolute;
  1356. bottom: 20px;
  1357. width: 230px;
  1358. background: #616161;
  1359. left: 35%;
  1360. color: #ababab;
  1361. text-align: center;
  1362. border-radius: 5px;
  1363. height: 30px;
  1364. font-size: 14px;
  1365. line-height: 30px;
  1366. cursor: pointer;
  1367. }
  1368. .tools_title {
  1369. background: #000;
  1370. position: absolute;
  1371. width: 100%;
  1372. top: 0;
  1373. left: 0;
  1374. display: flex;
  1375. align-items: center;
  1376. height: 40px;
  1377. justify-content: space-between;
  1378. padding: 0 15px;
  1379. box-sizing: border-box;
  1380. }
  1381. .tools_title span {
  1382. color: #fff;
  1383. }
  1384. .tools_title div {
  1385. display: flex;
  1386. align-items: center;
  1387. }
  1388. .full,
  1389. .closeImg {
  1390. height: 22px;
  1391. cursor: pointer;
  1392. }
  1393. .tools_title img,
  1394. img {
  1395. margin-left: 10px;
  1396. }
  1397. .tools_box {
  1398. width: 38.5%;
  1399. max-width: 38.5%;
  1400. overflow: auto;
  1401. background: rgb(255, 255, 255);
  1402. height: 91.5%;
  1403. position: relative;
  1404. margin: 10px 15px;
  1405. }
  1406. .tools_child_box {
  1407. width: 100%;
  1408. height: calc(90% - 40px);
  1409. padding-top: 40px;
  1410. }
  1411. .fullStyle {
  1412. width: 100% !important;
  1413. max-width: 100% !important;
  1414. }
  1415. .toolCss {
  1416. display: flex;
  1417. flex-direction: column;
  1418. flex-wrap: wrap;
  1419. width: 150px;
  1420. align-items: center;
  1421. text-align: center;
  1422. }
  1423. .toolImg {
  1424. width: 70px;
  1425. height: 70px;
  1426. cursor: pointer;
  1427. }
  1428. .toolImg > img {
  1429. width: 100%;
  1430. height: 100%;
  1431. margin: 0 !important;
  1432. }
  1433. .toolImg > div {
  1434. font-size: 14px;
  1435. }
  1436. .score_box {
  1437. font-size: 14px;
  1438. }
  1439. .score_box >>> .el-rate {
  1440. margin: 10px 0 20px 0;
  1441. }
  1442. .score_box >>> .el-rate__icon {
  1443. font-size: 23px;
  1444. }
  1445. .bz >>> .el-textarea__inner {
  1446. width: 40%;
  1447. background: #f9f9f9;
  1448. border: 1px solid #afafaf;
  1449. border-radius: 0px;
  1450. }
  1451. </style>