worksDetail.vue 39 KB

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