worksDetail.vue 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511
  1. <template>
  2. <div class="pb_content" style="background: unset">
  3. <div
  4. class="pb_content_body"
  5. style="
  6. background: #fff;
  7. padding: 0px 25px;
  8. box-sizing: border-box;
  9. border-radius: 5px;
  10. "
  11. >
  12. <div class="pb_head">
  13. <span>评价管理</span>
  14. <!-- <span>备注:教师可以根据课程、班级条件筛选学生并查看该学生信息</span> -->
  15. </div>
  16. <div class="student_head">
  17. <div style="padding: 10px 0px 20px 0">
  18. <el-breadcrumb separator-class="el-icon-arrow-right">
  19. <el-breadcrumb-item
  20. :to="{ path: '/works?userid=' + userid + '&oid=' + oid }"
  21. >评价管理</el-breadcrumb-item
  22. >
  23. <el-breadcrumb-item>作业管理</el-breadcrumb-item>
  24. </el-breadcrumb>
  25. </div>
  26. <div class="student_search">
  27. <div>项目筛选</div>
  28. <!-- <el-select
  29. v-model="subject"
  30. placeholder="请选择课程"
  31. @change="searchWork"
  32. >
  33. <el-option label="所有课程" value=""></el-option>
  34. <el-option
  35. v-for="(item, index) in subjectJuri"
  36. :key="index"
  37. :label="item.name"
  38. :value="item.id"
  39. ></el-option>
  40. </el-select>-->
  41. <el-select
  42. v-model="sClass"
  43. placeholder="请选择班级"
  44. @change="searchWork"
  45. >
  46. <el-option label="所有班级" value></el-option>
  47. <el-option
  48. v-for="(item, index) in grade"
  49. :key="index"
  50. :label="item.name"
  51. :value="item.id"
  52. ></el-option>
  53. </el-select>
  54. </div>
  55. </div>
  56. </div>
  57. <div class="pb_content_body">
  58. <div class="student_table">
  59. <el-table
  60. ref="table"
  61. :data="tableData"
  62. border
  63. :height="tableHeight"
  64. :fit="true"
  65. v-loading="isLoading"
  66. style="width: 100%"
  67. :header-cell-style="{ background: '#f1f1f1' }"
  68. :row-class-name="tableRowClassName"
  69. stripe
  70. >
  71. <el-table-column
  72. prop="sName"
  73. label="姓名"
  74. min-width="15"
  75. align="center"
  76. ></el-table-column>
  77. <el-table-column
  78. prop="class"
  79. label="班级"
  80. min-width="20"
  81. align="center"
  82. ></el-table-column>
  83. <el-table-column
  84. prop="course"
  85. label="项目"
  86. min-width="20"
  87. align="center"
  88. ></el-table-column>
  89. <el-table-column
  90. prop="time"
  91. label="时间"
  92. min-width="15"
  93. align="center"
  94. ></el-table-column>
  95. <el-table-column label="操作" min-width="30">
  96. <template slot-scope="scope">
  97. <el-button
  98. type="primary"
  99. size="small"
  100. @click="lookWork(scope.row.id, scope.row.userid)"
  101. >查看作业</el-button
  102. >
  103. <el-button
  104. type="primary"
  105. size="small"
  106. @click="lookData(scope.row.userid)"
  107. >生成报告</el-button
  108. >
  109. <!-- <el-button
  110. class="de_button"
  111. type="primary"
  112. size="small"
  113. @click="deleteWork(scope.row.id)"
  114. >删除</el-button>-->
  115. </template>
  116. </el-table-column>
  117. </el-table>
  118. <el-dialog
  119. :visible.sync="dialogVisible3"
  120. :append-to-body="true"
  121. :before-close="handleClose"
  122. class="add_work workDetail"
  123. >
  124. <div class="zyBoxC" v-for="(item, index) in worksDetail" :key="index">
  125. <div class="courseTitle">
  126. <span>{{
  127. "第" + (item.stage + 1) + "阶段 " + item.chapterTitle
  128. }}</span>
  129. <span v-if="item.askJson" @click="checkAsk(item.askJson)"
  130. >查看问卷</span
  131. >
  132. </div>
  133. <div class="zyBox">
  134. <div class="left">
  135. <div class="bigImg" v-if="item.tType == 0">
  136. <video-player
  137. class="video-player vjs-custom-skin"
  138. ref="videoPlayer"
  139. :playsinline="true"
  140. :options="item.playerO"
  141. @play="onPlayerPlay($event)"
  142. style="width: 100%; height: 100%"
  143. ></video-player>
  144. </div>
  145. <div class="bigImg" v-else>
  146. <img
  147. :src="
  148. item.thumbnail.length > 0 && item.thumbnail[1].length
  149. ? item.thumbnail[1][0].url
  150. : ''
  151. "
  152. alt
  153. />
  154. </div>
  155. <div class="thumbnail">
  156. <div
  157. style="background: #a3d4ff"
  158. v-if="item.upVedio.length"
  159. :class="item.tType == 0 ? 'isClick' : ''"
  160. >
  161. <img
  162. src="../../assets/icon/spIcon.png"
  163. alt
  164. @click="item.tType = 0"
  165. />
  166. </div>
  167. <div :class="item.tType == 1 ? 'isClick' : ''">
  168. <img
  169. :src="
  170. item.thumbnail.length > 0 && item.thumbnail[1].length
  171. ? item.thumbnail[1][0].url
  172. : ''
  173. "
  174. alt
  175. @click="item.tType = 1"
  176. />
  177. </div>
  178. </div>
  179. <div style="margin: 5px 10px">{{ sInfo.course }}</div>
  180. <div class="student_Answer">
  181. <div class="toux">
  182. <img :src="sInfo.tx != null ? sInfo.tx : tx" alt />
  183. </div>
  184. <div class="nav">
  185. <div class="studentName">{{ sInfo.sName }}</div>
  186. <div class="studentAnswer">
  187. {{ item.content != "" ? item.content : "暂无内容" }}
  188. <!-- 雨荒深院菊,霜倒半池莲.唐杜甫《宿赞公房》 -->
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. <div style="width: 290px; margin-right: 10px">
  194. <div
  195. class="sd_score"
  196. style="box-sizing: border-box; width: 100%; box-shadow: none"
  197. >
  198. <div class="score_box">
  199. <span>意识能力</span>
  200. <el-rate v-model="item.rate.ca"></el-rate>
  201. </div>
  202. <div class="score_box">
  203. <span>科学探究能力</span>
  204. <el-rate v-model="item.rate.sia"></el-rate>
  205. </div>
  206. <div class="score_box">
  207. <span>实践创新能力</span>
  208. <el-rate v-model="item.rate.eta"></el-rate>
  209. </div>
  210. <div class="score_box">
  211. <span>学习反思能力</span>
  212. <el-rate v-model="item.rate.pia"></el-rate>
  213. </div>
  214. <div class="score_box">
  215. <span>工程思维能力</span>
  216. <el-rate v-model="item.rate.lra"></el-rate>
  217. </div>
  218. </div>
  219. <div class="data_body">
  220. <div class="title">
  221. <span>量规评分</span>
  222. </div>
  223. <div style="width: 100%">
  224. <!-- <img src="../../assets/dataimage/1.png" style="width:90%" /> -->
  225. <div
  226. class="echart charts_canvas"
  227. style="width: 100%; height: 100%; margin: 0 0 0 1rem"
  228. ></div>
  229. </div>
  230. </div>
  231. </div>
  232. <div class="right">
  233. <div class="comment">
  234. <div class="comment_title">
  235. 评论
  236. <span>({{ commentCount }})</span>
  237. </div>
  238. <div class="other_Answer">暂无学生评论</div>
  239. <!-- <div class="other_Answer">
  240. <div class="toux">
  241. <img src="../../assets/portal.png" alt="" />
  242. </div>
  243. <div class="nav">
  244. <div class="nameAndTime">
  245. <div class="otherName">{{ this.commentName }}</div>
  246. <div class="time">{{ this.commentTime }}</div>
  247. </div>
  248. <div class="otherAnswer">{{ this.commentAnswer }}</div>
  249. </div>
  250. </div>-->
  251. </div>
  252. <div
  253. class="lastTop"
  254. style="
  255. width: 100%;
  256. padding: 5px 0px 0px;
  257. box-sizing: border-box;
  258. height: 225px;
  259. margin-top: 10px;
  260. box-shadow: none;
  261. "
  262. >
  263. <div class="moreSay">更多评价</div>
  264. <div class="more_say_input">
  265. <el-input
  266. type="textarea"
  267. placeholder="还有要说的吗..."
  268. :rows="8"
  269. resize="none"
  270. v-model="item.rate.content"
  271. style="background: #fafafa"
  272. ></el-input>
  273. </div>
  274. </div>
  275. </div>
  276. <!-- <div class="rbButtom" @click="giveScore">评分</div> -->
  277. <div
  278. class="rbButtom"
  279. @click="updateWorks(item.id, item.rate, index)"
  280. >
  281. 评分
  282. </div>
  283. </div>
  284. </div>
  285. </el-dialog>
  286. <el-dialog
  287. :visible.sync="dialogVisible2"
  288. :append-to-body="true"
  289. width="700px"
  290. :before-close="handleClose"
  291. class="add_work talkScore"
  292. >
  293. <div slot="title" class="header-title">
  294. <!-- <div class="logoImg">
  295. <img src="../../assets/logo.png" alt="" />
  296. </div>-->
  297. <div class="title_add_student">"评分"</div>
  298. </div>
  299. <div class="firstTop">
  300. <div class="score_top">
  301. <div class="userTou">
  302. <img :src="sInfo.tx != null ? sInfo.tx : tx" alt />
  303. </div>
  304. <div class="score_user_name">{{ sInfo.sName }}</div>
  305. </div>
  306. <div class="course_top">
  307. <div>课程名称</div>
  308. <div>
  309. {{
  310. chapInfo[publicIndex] != null
  311. ? chapInfo[publicIndex].dyName
  312. : "暂无课程"
  313. }}
  314. </div>
  315. </div>
  316. </div>
  317. <div class="sd_score">
  318. <div class="score_box">
  319. <span>意识能力</span>
  320. <el-rate
  321. v-model="rateList.ca"
  322. :disabled="rateParams[5] != '' && rateParams[5] != undefined"
  323. ></el-rate>
  324. </div>
  325. <div class="score_box">
  326. <span>科学探究能力</span>
  327. <el-rate
  328. v-model="rateList.sia"
  329. :disabled="rateParams[5] != '' && rateParams[5] != undefined"
  330. ></el-rate>
  331. </div>
  332. <div class="score_box">
  333. <span>实践创新能力</span>
  334. <el-rate
  335. v-model="rateList.eta"
  336. :disabled="rateParams[5] != '' && rateParams[5] != undefined"
  337. ></el-rate>
  338. </div>
  339. <div class="score_box">
  340. <span>学习反思能力</span>
  341. <el-rate
  342. v-model="rateList.pia"
  343. :disabled="rateParams[5] != '' && rateParams[5] != undefined"
  344. ></el-rate>
  345. </div>
  346. <div class="score_box">
  347. <span>工程思维能力</span>
  348. <el-rate
  349. v-model="rateList.lra"
  350. :disabled="rateParams[5] != '' && rateParams[5] != undefined"
  351. ></el-rate>
  352. </div>
  353. </div>
  354. <div class="lastTop">
  355. <div class="moreSay">更多评价</div>
  356. <div class="more_say_input">
  357. <el-input
  358. type="textarea"
  359. placeholder="还有要说的吗..."
  360. :rows="3"
  361. resize="none"
  362. v-model="rateList.content"
  363. :readonly="rateParams[5] != '' && rateParams[5] != undefined"
  364. style="background: #fafafa"
  365. ></el-input>
  366. </div>
  367. </div>
  368. <div class="assess_right" @click="updateWorks" v-if="!uploadBoolean">
  369. 提交
  370. </div>
  371. <div class="assess_right" @click="updateWorks" v-else>提交</div>
  372. </el-dialog>
  373. </div>
  374. <div class="student_page">
  375. <el-pagination
  376. background
  377. layout="prev, pager, next"
  378. :page-size="10"
  379. :total="total"
  380. v-if="page"
  381. @current-change="handleCurrentChange"
  382. ></el-pagination>
  383. </div>
  384. </div>
  385. <el-dialog :visible.sync="pictureDialog" size="tiny">
  386. <img width="100%" :src="dialogImageUrl" alt />
  387. </el-dialog>
  388. <el-dialog
  389. title="项目评分"
  390. :visible.sync="dataVisible"
  391. :append-to-body="true"
  392. width="1100px"
  393. :before-close="handleClose"
  394. class="dialog_diy"
  395. >
  396. <div>
  397. <div class="a_addBox2">
  398. <StudentData :studentInfo="studentInfo"></StudentData>
  399. </div>
  400. </div>
  401. <span slot="footer" class="dialog-footer">
  402. <el-button @click="dataVisible = false">关 闭</el-button>
  403. </span>
  404. </el-dialog>
  405. <el-dialog
  406. title="查看问卷调查"
  407. :visible.sync="dialogVisible4"
  408. :append-to-body="true"
  409. width="800px"
  410. :before-close="handleClose"
  411. class="dialog_diy"
  412. >
  413. <div>
  414. <div
  415. class="a_add_title"
  416. style="
  417. display: flex;
  418. flex-direction: row;
  419. align-items: center;
  420. justify-content: center;
  421. "
  422. >
  423. <div style="font-size: 20px">{{ askJson.askTitle }}</div>
  424. </div>
  425. <div class="a_addBox">
  426. <div style="font-size: 16px; color: #c7c7c7">问卷内容</div>
  427. <div
  428. class="a_add_box"
  429. v-for="(item, index) in askJson.askJson"
  430. :key="index"
  431. >
  432. <div class="a_add_head">
  433. <div style="display: flex">
  434. {{ index + 1 + "、" }}
  435. <div>问卷题目:{{ item.askstitle }}</div>
  436. </div>
  437. </div>
  438. <div class="a_add_body">
  439. <div class="a_add_input">
  440. <el-radio-group v-model="askJson.radio[index]">
  441. <el-radio
  442. v-for="(item3, checkIndex1) in item.checkList"
  443. :key="checkIndex1"
  444. :label="checkIndex1"
  445. class="redioStyle"
  446. disabled
  447. >{{ item3 }}</el-radio
  448. >
  449. </el-radio-group>
  450. </div>
  451. </div>
  452. </div>
  453. </div>
  454. </div>
  455. <span slot="footer" class="dialog-footer">
  456. <el-button type="primary" @click="dialogVisible4 = false"
  457. >关 闭</el-button
  458. >
  459. </span>
  460. </el-dialog>
  461. </div>
  462. </template>
  463. <script>
  464. import StudentData from "./components/studentData";
  465. export default {
  466. components: {
  467. StudentData,
  468. },
  469. data() {
  470. return {
  471. tableHeight: "500px",
  472. isLoading: false,
  473. id: this.$route.query.cid,
  474. userid: this.$route.query.userid,
  475. oid: this.$route.query.oid,
  476. formLabelWidth: "100px",
  477. dialogImageUrl: "",
  478. pictureDialog: false,
  479. dialogVisible: false,
  480. dialogVisible1: false,
  481. dialogVisible2: false,
  482. dialogVisible3: false,
  483. dialogVisible4: false,
  484. dataVisible: false,
  485. studentInfo: {},
  486. courseByUser: "诗词中的植物",
  487. userName: "林点",
  488. answerName: "宿赞公房",
  489. studentAnswer: "雨荒深院菊,霜倒半池莲.唐杜甫《宿赞公房》",
  490. commentCount: 0,
  491. publicIndex: 0,
  492. playerOptions: {
  493. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  494. autoplay: false, //如果true,浏览器准备好时开始回放。
  495. muted: false, // 默认情况下将会消除任何音频。
  496. loop: false, // 导致视频一结束就重新开始。
  497. preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  498. language: "zh-CN",
  499. aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  500. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  501. sources: [
  502. {
  503. type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目 || "video/ogg"|| "video/webm"
  504. src: "", //url地址require("../../assets/media/aaa.mp4")
  505. },
  506. ],
  507. // poster: require("../../assets/tu31.png"), //你的封面地址
  508. // poster: dataRes.imgUrl, //你的封面地址
  509. notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  510. controlBar: {
  511. timeDivider: true, //当前时间和持续时间的分隔符
  512. durationDisplay: true, //显示持续时间
  513. remainingTimeDisplay: false, //是否显示剩余时间功能
  514. fullscreenToggle: true, //全屏按钮
  515. },
  516. },
  517. playerO: {},
  518. commentName: "谭子松",
  519. commentTime: "2021/2/5",
  520. commentAnswer:
  521. "作为家长我很高兴看到孩子的进步,希望这个进步只是一个开始,在新学期能够继续延续,这样才能不负老师的期望",
  522. tableData: [],
  523. uploadBoolean: false,
  524. studentMessage: [],
  525. subject: "",
  526. sClass: "",
  527. subjectJuri: [],
  528. projectJuri: [],
  529. grade: [],
  530. mr: require("../../assets/icon/wheel.png"),
  531. tx: require("../../assets/avatar.png"),
  532. projectchoose: "",
  533. scopeId: "",
  534. thumbnail: [],
  535. rateList: {
  536. ca: 0,
  537. sia: 0,
  538. eta: 0,
  539. pia: 0,
  540. lra: 0,
  541. content: "",
  542. },
  543. rateParams: [],
  544. page: 1,
  545. total: 0,
  546. worksDetail: [],
  547. suserId: "",
  548. sInfo: {},
  549. chapInfo: [],
  550. vedio: [],
  551. file: [],
  552. tType: 0,
  553. chartObj: [],
  554. ooption: [
  555. { value: 0, name: "意识能力" },
  556. { value: 0, name: "科学探究能力" },
  557. { value: 0, name: "实践创新能力" },
  558. { value: 0, name: "学习反思能力" },
  559. { value: 0, name: "工程思维能力" },
  560. ],
  561. option: {
  562. tooltip: {
  563. trigger: "item",
  564. },
  565. series: [
  566. {
  567. name: "量规评分",
  568. type: "pie",
  569. radius: "70%",
  570. center: ["50%", "50%"],
  571. data: [
  572. { value: 0, name: "意识能力" },
  573. { value: 0, name: "科学探究能力" },
  574. { value: 0, name: "实践创新能力" },
  575. { value: 0, name: "学习房媳能力" },
  576. { value: 0, name: "工程思维能力" },
  577. ],
  578. itemStyle: {
  579. emphasis: {
  580. shadowBlur: 10,
  581. shadowOffsetX: 0,
  582. shadowColor: "rgba(0, 0, 0, 0.5)",
  583. },
  584. normal: {
  585. label: {
  586. show: true,
  587. formatter: "{d}%",
  588. inside: true,
  589. position: "inner",
  590. },
  591. labelLine: { show: false },
  592. },
  593. },
  594. },
  595. ],
  596. },
  597. askJson: {},
  598. };
  599. },
  600. mounted() {
  601. this.$nextTick(function () {
  602. this.tableHeight =
  603. window.innerHeight - this.$refs.table.$el.offsetTop - 200;
  604. if (this.tableHeight <= 530) {
  605. this.tableHeight = 530;
  606. }
  607. // 监听窗口大小变化
  608. let self = this;
  609. window.onresize = function () {
  610. self.tableHeight =
  611. window.innerHeight - self.$refs.table.$el.offsetTop - 200;
  612. if (self.tableHeight <= 530) {
  613. self.tableHeight = 530;
  614. }
  615. };
  616. });
  617. },
  618. methods: {
  619. lookData(uid) {
  620. let params = {
  621. uid: uid,
  622. cid: this.id,
  623. };
  624. this.ajax
  625. .get(this.$store.state.api + "selectWorksDetail", params)
  626. .then((res) => {
  627. this.studentInfo = res.data[0][0];
  628. this.dataVisible = true;
  629. })
  630. .catch((err) => {
  631. console.error(err);
  632. });
  633. },
  634. tableRowClassName({ row, rowIndex }) {
  635. if ((rowIndex + 1) % 2 === 0) {
  636. return "even_row";
  637. } else {
  638. return "";
  639. }
  640. },
  641. handleClose(done) {
  642. done();
  643. },
  644. tableRowClassName({ row, rowIndex }) {
  645. if ((rowIndex + 1) % 2 === 0) {
  646. return "even_row";
  647. } else {
  648. return "";
  649. }
  650. },
  651. handleCurrentChange(val) {
  652. this.page = val;
  653. this.getWorks();
  654. },
  655. lookWork(id, uid) {
  656. this.scopeId = id;
  657. let params = {
  658. uid: uid,
  659. cid: this.id,
  660. };
  661. this.ajax
  662. .get(this.$store.state.api + "selectWorksDetail", params)
  663. .then((res) => {
  664. this.sInfo = res.data[0][0];
  665. this.chapInfo = JSON.parse(res.data[0][0].chapters);
  666. var worksDetail = res.data[1];
  667. var askArray = res.data[2];
  668. // this.chapInfo.filter((value, index, array) => {
  669. // for (var i = 0; i < worksDetail.length; i++) {
  670. // if (index == worksDetail[i].stage) {
  671. // var c = JSON.parse(worksDetail[i].content)[0];
  672. // var d =
  673. // worksDetail[i].rate != null && worksDetail[i].rate != ""
  674. // ? JSON.parse(worksDetail[i].rate)
  675. // : { ca: 0, sia: 0, eta: 0, pia: 0, lra: 0, content: "" };
  676. // var e =
  677. // worksDetail[i].rate != null && worksDetail[i].rate != ""
  678. // ? 0
  679. // : 1;
  680. // value.rateWrong = e;
  681. // value.content = c.content;
  682. // value.rate = d;
  683. // value.cover = c.cover;
  684. // value.upVedio = c.upVedio;
  685. // this.thumbnail.push(value.upVedio);
  686. // this.thumbnail.push(value.cover);
  687. // break;
  688. // }
  689. // }
  690. // });
  691. worksDetail.filter((value, index, array) => {
  692. var c = JSON.parse(value.content)[0];
  693. var d =
  694. value.rate != null && value.rate != ""
  695. ? JSON.parse(value.rate)
  696. : { ca: 0, sia: 0, eta: 0, pia: 0, lra: 0, content: "" };
  697. var e = value.rate != null && value.rate != "" ? 0 : 1;
  698. value.rateWrong = e;
  699. value.chapterTitle = this.chapInfo[value.stage].dyName;
  700. value.content = c.content;
  701. value.rate = d;
  702. value.cover = c.cover;
  703. value.upVedio = c.upVedio;
  704. value.thumbnail = [c.upVedio, c.cover];
  705. if (c.upVedio.length) {
  706. value.tType = 0;
  707. } else {
  708. value.tType = 1;
  709. }
  710. debugger;
  711. for (let j = 0; j < askArray.length; j++) {
  712. if (askArray[j].stage == value.stage) {
  713. var _a = [];
  714. var _radio = askArray[j].content.split(",");
  715. for (var ij = 0; ij < _radio.length; ij++) {
  716. _a.push(parseInt(_radio[ij]));
  717. }
  718. value.askJson = {
  719. askTitle: this.chapInfo[value.stage].chapterInfo[0].askTitle,
  720. askJson: this.chapInfo[value.stage].chapterInfo[0].askJson,
  721. radio: _a,
  722. };
  723. }
  724. }
  725. value.playerO = JSON.parse(JSON.stringify(this.playerOptions));
  726. value.playerO.sources[0].src =
  727. c.upVedio.length > 0
  728. ? c.upVedio[0].url
  729. : require("../../assets/icon/kc1.png");
  730. });
  731. this.worksDetail = worksDetail;
  732. this.courseDetail = res.data[0][0];
  733. // this.playerOptions.sources[0].src =
  734. // this.chapInfo[this.publicIndex].upVedio.length > 0
  735. // ? this.chapInfo[this.publicIndex].upVedio[0].url
  736. // : require("../../assets/icon/kc1.png");
  737. // console.log(this.playerOptions.sources[0].src);
  738. // this.playerO = this.playerOptions;
  739. // this.dialogVisible = true;
  740. // this.rateList = this.chapInfo[this.publicIndex].rate;
  741. this.dialogVisible3 = true;
  742. // this.ooption[0].value = this.rateList.ca;
  743. // this.ooption[1].value = this.rateList.sia;
  744. // this.ooption[2].value = this.rateList.eta;
  745. // this.ooption[3].value = this.rateList.pia;
  746. // this.ooption[4].value = this.rateList.lra;
  747. // if (this.chartObj) {
  748. // this.option.series[0].data = this.ooption;
  749. // this.chartObj.setOption(this.option);
  750. // } else {
  751. // this.setChart(this.ooption);
  752. // }
  753. setTimeout(() => {
  754. worksDetail.filter((value, index, array) => {
  755. var _ooption = JSON.parse(JSON.stringify(this.ooption));
  756. var _option = JSON.parse(JSON.stringify(this.option));
  757. _ooption[0].value = value.rate.ca;
  758. _ooption[1].value = value.rate.sia;
  759. _ooption[2].value = value.rate.eta;
  760. _ooption[3].value = value.rate.pia;
  761. _ooption[4].value = value.rate.lra;
  762. if (this.chartObj[index]) {
  763. _option.series[0].data = _ooption;
  764. this.chartObj[index].setOption(_option);
  765. } else {
  766. _option.series[0].data = _ooption;
  767. this.setChart(index, _option);
  768. }
  769. });
  770. }, 0);
  771. })
  772. .catch((err) => {
  773. console.error(err);
  774. });
  775. },
  776. checkAsk(askJson) {
  777. this.askJson = askJson;
  778. this.dialogVisible4 = true;
  779. },
  780. setChart(index, option) {
  781. let _this = this;
  782. // 雷达图显示的标签
  783. let newPromise = new Promise((resolve) => {
  784. resolve();
  785. });
  786. //然后异步执行echarts的初始化函数
  787. newPromise.then(() => {
  788. console.log(_this.option);
  789. const chartObj = _this.$echarts.init(
  790. //劳动课程
  791. // _this.$el.querySelector("#charts_canvas")
  792. document.getElementsByClassName("charts_canvas")[index]
  793. );
  794. // 初始化雷达图
  795. _this.chartObj[index] = chartObj;
  796. _this.chartObj[index].setOption(option);
  797. });
  798. },
  799. // doingAssess(index) {
  800. // this.publicIndex = index;
  801. // this.playerOptions.sources[0].src =
  802. // this.chapInfo[this.publicIndex].upVedio.length > 0
  803. // ? this.chapInfo[this.publicIndex].upVedio[0].url
  804. // : require("../../assets/icon/kc1.png");
  805. // console.log(this.playerOptions.sources[0].src);
  806. // this.playerO = this.playerOptions;
  807. // this.dialogVisible1 = true;
  808. // },
  809. giveScore() {
  810. this.rateList = this.chapInfo[this.publicIndex].rate;
  811. this.dialogVisible2 = true;
  812. },
  813. //获取班级列表
  814. getClass() {
  815. this.isLoading = true;
  816. let params = {
  817. oid: this.oid,
  818. };
  819. this.ajax
  820. .get(this.$store.state.api + "selectClassBySchool", params)
  821. .then((res) => {
  822. this.isLoading = false;
  823. this.grade = res.data[0];
  824. })
  825. .catch((err) => {
  826. this.isLoading = false;
  827. console.error(err);
  828. });
  829. },
  830. //获取分组分类
  831. getGroup() {
  832. let params = {};
  833. this.ajax
  834. .get(this.$store.state.api + "getGroup", params)
  835. .then((res) => {
  836. this.subjectJuri = res.data[0];
  837. this.projectJuri = res.data[0];
  838. })
  839. .catch((err) => {
  840. console.error(err);
  841. });
  842. },
  843. searchWork() {
  844. this.page = 1;
  845. this.getWorks();
  846. },
  847. //获取作业
  848. getWorks() {
  849. this.isLoading = true;
  850. var mr = this.mr;
  851. let params = {
  852. cn: this.sClass,
  853. cid: this.id,
  854. page: this.page,
  855. };
  856. this.ajax
  857. .get(this.$store.state.api + "getWorks", params)
  858. .then((res) => {
  859. this.isLoading = false;
  860. this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
  861. this.tableData = res.data[0];
  862. })
  863. .catch((err) => {
  864. this.isLoading = false;
  865. console.error(err);
  866. });
  867. },
  868. getCourseDetail() {
  869. const loading = this.$loading.service({
  870. background: "rgba(255, 255, 255, 0.7)",
  871. target: document.querySelector(".student_table"),
  872. });
  873. let params = {
  874. courseId: this.id,
  875. };
  876. this.ajax
  877. .get(this.$store.state.api + "selectCourseDetail", params)
  878. .then((res) => {
  879. loading.close();
  880. this.chapInfo = JSON.parse(res.data[0][0].chapters);
  881. // element.imgUrl = JSON.parse(element.chapters).poster;
  882. })
  883. .catch((err) => {
  884. loading.close();
  885. console.error(err);
  886. });
  887. },
  888. handlePictureCardPreview(url) {
  889. this.dialogImageUrl = url;
  890. this.pictureDialog = true;
  891. },
  892. updateWorks(id, rate, index) {
  893. let params = {
  894. rate: rate,
  895. tuid: this.userid,
  896. id: id,
  897. };
  898. this.ajax
  899. .get(this.$store.state.api + "updateWorks", params)
  900. .then((res) => {
  901. this.$message({
  902. message: "评价成功",
  903. type: "success",
  904. });
  905. var _ooption = JSON.parse(JSON.stringify(this.ooption));
  906. var _option = JSON.parse(JSON.stringify(this.option));
  907. _ooption[0].value = rate.ca;
  908. _ooption[1].value = rate.sia;
  909. _ooption[2].value = rate.eta;
  910. _ooption[3].value = rate.pia;
  911. _ooption[4].value = rate.lra;
  912. if (this.chartObj[index]) {
  913. _option.series[0].data = _ooption;
  914. this.chartObj[index].setOption(_option);
  915. } else {
  916. this.setChart(index, _ooption);
  917. }
  918. // this.uploadBoolean = false;
  919. // this.dialogVisible2 = false;
  920. })
  921. .catch((err) => {
  922. this.$message.error("评价失败");
  923. console.error(err);
  924. });
  925. },
  926. switchVideo(media, index) {
  927. this.playerO = {};
  928. this.playerOptions.poster = "";
  929. this.playerOptions.sources[0].src = media;
  930. this.playerO = this.playerOptions;
  931. },
  932. onPlayerPlay() {},
  933. },
  934. created() {
  935. this.page = 1;
  936. this.getClass();
  937. this.getGroup();
  938. this.getWorks();
  939. // this.getCourseDetail();
  940. },
  941. };
  942. </script>
  943. <style scoped>
  944. .pb_head > span:nth-child(2) {
  945. font-size: 16px;
  946. margin-left: 80px;
  947. color: #ab582f;
  948. }
  949. .pb_head {
  950. margin: 0 !important;
  951. width: 100% !important;
  952. }
  953. .student_page {
  954. margin-top: 10px;
  955. }
  956. .student_head {
  957. margin-top: 10px;
  958. padding-bottom: 15px;
  959. }
  960. .student_search {
  961. display: flex;
  962. }
  963. .student_search > div:nth-child(1) {
  964. line-height: 35px;
  965. font-size: 14px;
  966. }
  967. .student_search >>> .el-input__inner {
  968. width: 190px;
  969. height: 35px;
  970. margin-left: 10px;
  971. }
  972. .student_table >>> .el-table--border td {
  973. border-right: 0px !important;
  974. }
  975. .add_work >>> .el-dialog__header {
  976. padding: 20px 20px 10px;
  977. text-align: center;
  978. background: #32455b;
  979. }
  980. .add_work >>> .el-dialog__title {
  981. font-size: 14px !important;
  982. color: #fff !important;
  983. }
  984. .add_work >>> .el-dialog__headerbtn {
  985. font-size: 20px !important;
  986. top: 5px !important;
  987. right: 8px !important;
  988. }
  989. .add_work >>> .el-form-item__label {
  990. margin-left: 65px;
  991. }
  992. .add_work >>> .el-form-item {
  993. display: flex;
  994. }
  995. .add_work >>> .el-form-item__content {
  996. margin: 0 !important;
  997. }
  998. .add_work >>> .el-dialog__footer {
  999. text-align: center !important;
  1000. }
  1001. .add_work >>> .el-dialog {
  1002. min-width: 650px !important;
  1003. width: 1080px;
  1004. }
  1005. .add_work >>> .el-dialog__body {
  1006. background: #fff;
  1007. height: 660px;
  1008. overflow: auto;
  1009. }
  1010. .header-title {
  1011. display: flex;
  1012. }
  1013. .logoImg {
  1014. width: 30px;
  1015. }
  1016. .logoImg > img {
  1017. width: 100%;
  1018. height: 100%;
  1019. }
  1020. .title_add_student {
  1021. margin: 0 auto;
  1022. color: #fff;
  1023. }
  1024. .top {
  1025. display: flex;
  1026. justify-content: space-between;
  1027. padding-bottom: 10px;
  1028. border-bottom: 2px solid #eee;
  1029. }
  1030. .top > div:nth-child(1) {
  1031. font-size: 18px;
  1032. }
  1033. .top > div:nth-child(2) {
  1034. font-size: 14px;
  1035. line-height: 28px;
  1036. }
  1037. .first {
  1038. margin-top: 25px;
  1039. border-bottom: 1px solid #c5c5c5;
  1040. }
  1041. .one_top {
  1042. display: flex;
  1043. justify-content: space-between;
  1044. }
  1045. .one_top > div:nth-child(1) {
  1046. color: #2490bf;
  1047. font-size: 16px;
  1048. }
  1049. .one_top > button {
  1050. width: 100px;
  1051. background: #24a0a4;
  1052. height: 30px;
  1053. color: #e0e0e0;
  1054. font-size: 13px;
  1055. padding: 0 !important;
  1056. }
  1057. .work_Img {
  1058. width: 150px;
  1059. margin: 10px 0;
  1060. }
  1061. .assess_Img {
  1062. width: 400px;
  1063. margin: 0 auto;
  1064. padding: 15px 0;
  1065. }
  1066. .work_Img > img,
  1067. .assess_Img > img {
  1068. width: 100%;
  1069. height: 100%;
  1070. }
  1071. .work_input {
  1072. border: 1px solid;
  1073. width: 135px;
  1074. height: 20px;
  1075. line-height: 20px;
  1076. font-size: 13px;
  1077. padding: 5px;
  1078. }
  1079. .poetry {
  1080. margin: 10px 0 15px 0;
  1081. }
  1082. .assess {
  1083. background: #169bd5 !important;
  1084. }
  1085. .assess_top {
  1086. border-bottom: 2px solid #eee;
  1087. padding-bottom: 10px;
  1088. }
  1089. .assess_top > div:nth-child(1) {
  1090. color: #2490bf;
  1091. font-size: 16px;
  1092. }
  1093. .student_Answer {
  1094. display: flex;
  1095. margin: 5px 10px;
  1096. /* padding-bottom: 25px; */
  1097. }
  1098. .workName {
  1099. font-size: 18px;
  1100. font-weight: bold;
  1101. margin: 5px 10px;
  1102. }
  1103. .toux {
  1104. width: 35px;
  1105. /* margin: auto 0; */
  1106. height: 35px;
  1107. }
  1108. .toux > img {
  1109. width: 100%;
  1110. height: 100%;
  1111. }
  1112. .nav {
  1113. display: flex;
  1114. flex-wrap: wrap;
  1115. margin-top: 10px;
  1116. flex-direction: column;
  1117. }
  1118. .studentName {
  1119. margin-left: 10px;
  1120. font-size: 13px;
  1121. }
  1122. .studentAnswer {
  1123. font-size: 12px;
  1124. margin: 5px 0 0 10px;
  1125. height: 42px;
  1126. overflow: auto;
  1127. }
  1128. .comment {
  1129. /* margin: 20px 0 0 10px;
  1130. overflow: auto;
  1131. height: 75%;
  1132. max-height: 330px; */
  1133. overflow: auto;
  1134. height: 290px;
  1135. background: #fff;
  1136. border-radius: 5px;
  1137. padding: 10px;
  1138. box-sizing: border-box;
  1139. }
  1140. .comment > .comment_title {
  1141. font-size: 18px;
  1142. }
  1143. .comment > .comment_title > span {
  1144. font-size: 14px;
  1145. }
  1146. .other_Answer {
  1147. display: flex;
  1148. margin: 5px 10px;
  1149. border-bottom: 1px solid #ccc;
  1150. padding-bottom: 15px;
  1151. }
  1152. .nav {
  1153. margin-left: 5px;
  1154. width: 80%;
  1155. }
  1156. .nameAndTime {
  1157. display: flex;
  1158. }
  1159. .otherName {
  1160. font-weight: bold;
  1161. margin-left: 10px;
  1162. font-size: 13px;
  1163. }
  1164. .time {
  1165. margin-left: 25px;
  1166. font-size: 12px;
  1167. margin-top: 3px;
  1168. }
  1169. .otherAnswer {
  1170. width: 80%;
  1171. word-wrap: break-word;
  1172. word-break: break-all;
  1173. overflow: hidden;
  1174. font-size: 12px;
  1175. margin: 5px 0 0 10px;
  1176. }
  1177. .doingAssess {
  1178. margin: 0 auto;
  1179. width: 300px;
  1180. background: #169bd5;
  1181. height: 35px;
  1182. line-height: 35px;
  1183. border-radius: 3px;
  1184. font-size: 13px;
  1185. text-align: center;
  1186. color: #fff;
  1187. margin-top: 30px;
  1188. cursor: pointer;
  1189. }
  1190. .score_top {
  1191. display: flex;
  1192. margin-bottom: 10px;
  1193. }
  1194. .userTou {
  1195. width: 50px;
  1196. }
  1197. .userTou > img {
  1198. width: 100%;
  1199. height: 100%;
  1200. }
  1201. .score_user_name {
  1202. line-height: 53px;
  1203. margin-left: 15px;
  1204. }
  1205. .course_top {
  1206. display: flex;
  1207. align-items: center;
  1208. }
  1209. .course_top > div:nth-child(1) {
  1210. line-height: 25px;
  1211. }
  1212. .course_top > div:nth-child(2) {
  1213. border: 1px solid #ccc;
  1214. width: 250px;
  1215. text-align: center;
  1216. height: 25px;
  1217. line-height: 25px;
  1218. margin-left: 30px;
  1219. }
  1220. .sd_score {
  1221. font-size: 15px;
  1222. background: #fff;
  1223. padding: 18px 25px 1px;
  1224. margin-bottom: 15px;
  1225. border-radius: 5px;
  1226. width: 90%;
  1227. box-shadow: 2px 2px 5px #909090;
  1228. }
  1229. .sd_score .score_box {
  1230. display: flex;
  1231. align-items: center;
  1232. margin-bottom: 18px;
  1233. }
  1234. .sd_score span {
  1235. width: 100px;
  1236. text-align: justify;
  1237. text-align-last: justify;
  1238. display: block;
  1239. margin-right: 20px;
  1240. }
  1241. .moreSay {
  1242. margin: 0px 0 5px 20px;
  1243. }
  1244. .more_say_input {
  1245. margin-left: 20px;
  1246. width: 80%;
  1247. }
  1248. .more_say_input >>> .el-input__inner {
  1249. height: 75px;
  1250. font-size: 13px;
  1251. padding: 0 0 0 10px;
  1252. }
  1253. .assess_right {
  1254. width: 200px;
  1255. background: #82b0ee;
  1256. color: #fff;
  1257. text-align: center;
  1258. height: 30px;
  1259. line-height: 30px;
  1260. border-radius: 5px;
  1261. margin: 0 auto;
  1262. margin-top: 20px;
  1263. font-size: 13px;
  1264. cursor: pointer;
  1265. }
  1266. .student_page {
  1267. margin-top: 10px;
  1268. }
  1269. .display {
  1270. display: none;
  1271. }
  1272. .firstTop {
  1273. background: #fff;
  1274. display: flex;
  1275. margin-bottom: 15px;
  1276. flex-direction: column;
  1277. align-items: flex-start;
  1278. height: 90px;
  1279. padding: 10px 25px;
  1280. border-radius: 5px;
  1281. width: 90%;
  1282. box-shadow: 2px 2px 5px #909090;
  1283. }
  1284. .talkScore >>> .el-dialog__body {
  1285. background: #efefef;
  1286. margin: 0 !important;
  1287. }
  1288. .lastTop {
  1289. background: #fff;
  1290. border-radius: 5px;
  1291. width: 98%;
  1292. height: 120px;
  1293. box-shadow: 2px 2px 5px #909090;
  1294. }
  1295. .left,
  1296. .right {
  1297. background: #fff;
  1298. border-radius: 5px;
  1299. padding: 10px;
  1300. box-sizing: border-box;
  1301. }
  1302. .left {
  1303. margin-right: 10px;
  1304. width: 25%;
  1305. }
  1306. .right {
  1307. /* width: 40%;
  1308. height: 75%;
  1309. min-width: 230px;
  1310. min-height: 370px; */
  1311. width: 25%;
  1312. /* margin-right: 10px; */
  1313. background: none;
  1314. padding: 0;
  1315. }
  1316. .courseTitle {
  1317. font-size: 19px;
  1318. font-weight: 600;
  1319. width: 93%;
  1320. margin-bottom: 20px;
  1321. display: flex;
  1322. justify-content: space-between;
  1323. align-items: center;
  1324. }
  1325. .courseTitle span:nth-child(2) {
  1326. font-size: 14px;
  1327. cursor: pointer;
  1328. }
  1329. .bigImg {
  1330. margin-top: 10px;
  1331. height: 300px;
  1332. }
  1333. .bigImg > img,
  1334. .thumbnail > div > img {
  1335. width: 100%;
  1336. height: 100%;
  1337. object-fit: contain;
  1338. }
  1339. .thumbnail {
  1340. display: flex;
  1341. flex-direction: row;
  1342. justify-content: flex-start;
  1343. margin: 10px 0;
  1344. }
  1345. .isClick {
  1346. border: 3px solid #5f89d4;
  1347. border-radius: 5px;
  1348. }
  1349. .thumbnail > div {
  1350. width: 80px;
  1351. margin-right: 5px;
  1352. cursor: pointer;
  1353. }
  1354. .zyBoxC {
  1355. background: #ededed;
  1356. display: flex;
  1357. align-items: center;
  1358. justify-content: center;
  1359. padding: 20px 0px;
  1360. flex-direction: column;
  1361. }
  1362. .zyBox {
  1363. display: flex;
  1364. width: 100%;
  1365. position: relative;
  1366. }
  1367. .zyBoxC + .zyBoxC {
  1368. margin-top: 10px;
  1369. }
  1370. .rbButtom {
  1371. position: absolute;
  1372. bottom: 0;
  1373. right: 0;
  1374. background: #06a7ff;
  1375. width: 150px;
  1376. height: 30px;
  1377. border-radius: 5px;
  1378. text-align: center;
  1379. color: #fff;
  1380. line-height: 30px;
  1381. font-size: 14px;
  1382. cursor: pointer;
  1383. right: 27px;
  1384. }
  1385. .bigImg >>> .vjs-tech,
  1386. .bigImg >>> .video-js {
  1387. height: 300px !important;
  1388. }
  1389. .el-table >>> .even_row {
  1390. background-color: #f1f1f1;
  1391. }
  1392. .data_body {
  1393. height: 340px;
  1394. display: flex;
  1395. position: relative;
  1396. border-radius: 5px;
  1397. /* border: 1px solid #eee; */
  1398. /* margin: 10px auto; */
  1399. box-sizing: border-box;
  1400. padding: 10px;
  1401. width: 100%;
  1402. background: #fff;
  1403. }
  1404. .data_body .title {
  1405. position: absolute;
  1406. top: 10px;
  1407. left: 10px;
  1408. }
  1409. .dialog_diy >>> .el-dialog__header {
  1410. padding: 9px 20px 10px;
  1411. background: #32455b !important;
  1412. }
  1413. .dialog_diy >>> .el-dialog__title {
  1414. color: #fff;
  1415. font-size: 15px;
  1416. }
  1417. .dialog_diy >>> .el-dialog__headerbtn {
  1418. top: 14px;
  1419. }
  1420. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close {
  1421. color: #fff;
  1422. }
  1423. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
  1424. color: #fff;
  1425. }
  1426. .dialog_diy >>> .el-dialog__body,
  1427. .dialog_diy >>> .el-dialog__footer {
  1428. background: #fafafa;
  1429. }
  1430. .a_addBox2 {
  1431. margin: 10px 0;
  1432. background: #fff;
  1433. padding: 15px;
  1434. }
  1435. .a_addBox {
  1436. margin: 10px 0;
  1437. background: #fff;
  1438. padding: 15px;
  1439. max-height: 400px;
  1440. overflow: auto;
  1441. }
  1442. .a_add_box {
  1443. border-bottom: 2px solid #eee;
  1444. padding-bottom: 10px;
  1445. }
  1446. .a_add_head {
  1447. display: flex;
  1448. align-items: center;
  1449. justify-content: space-between;
  1450. margin: 10px 0;
  1451. font-size: 18px;
  1452. }
  1453. .a_add_head .a_add_head_input {
  1454. width: 300px;
  1455. }
  1456. .a_add_head .a_add_head_div {
  1457. display: flex;
  1458. align-items: center;
  1459. justify-content: space-between;
  1460. }
  1461. .a_add_body {
  1462. display: flex;
  1463. align-items: center;
  1464. }
  1465. .a_add_input {
  1466. display: flex;
  1467. align-items: center;
  1468. flex-wrap: wrap;
  1469. /* flex-direction: column; */
  1470. /* width: 100%; */
  1471. }
  1472. .a_add_input >>> el-radio-group {
  1473. margin: 10px 0;
  1474. }
  1475. .redioStyle >>> .el-radio__label {
  1476. font-size: 18px;
  1477. }
  1478. </style>