TaskCard.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726
  1. <!-- 工作台任务卡片 -->
  2. <template>
  3. <div class="task-card">
  4. <div class="top-title-box">
  5. <p>工作台任务</p>
  6. </div>
  7. <div class="card-max-big-box">
  8. <div class="year-card-box for-max-big-box">
  9. <div class="year-card-top-title-box">
  10. <p>学年数据统计</p>
  11. <p>按学年统计历年考试通过情况与成绩</p>
  12. </div>
  13. <div class="bottom-content-box scrollbar-box">
  14. <p class="null-p" v-if="!yearMinList[0]">暂无数据</p>
  15. <div class="bottom-big-box-1" v-for="(item,index) in yearMinList">
  16. <p>{{item.academicYear}}</p>
  17. <p>{{item.statusCode==0?'未开始':(item.statusCode==2?'通过丨'+item.score:(item.statusCode==1?'进行中':'未通过'))}}</p>
  18. </div>
  19. </div>
  20. </div>
  21. <!--任务卡列表-->
  22. <div class="year-card-box for-max-big-box">
  23. <div class="year-card-top-title-box">
  24. <p>学习考试任务</p>
  25. <p>待完成的学习任务</p>
  26. </div>
  27. <div class="bottom-content-box scrollbar-box">
  28. <p class="null-p" v-if="!dataList2[0]">暂无数据</p>
  29. <div class="bottom-big-box-5" v-for="(item,index) in dataList2" @click="tableButtonOne(item.conditionType,item)">
  30. <p class="text-name-p">{{item.examName}}</p>
  31. <div class="text-flex-box" v-if="item.conditionType == 1">
  32. <p>考前学习</p>
  33. <p>{{item.completedStudyHours}} / {{item.studyHoursRequirement}} 学时</p>
  34. </div>
  35. <div class="text-flex-box" v-if="item.conditionType == 2">
  36. <p>考前学习</p>
  37. <p>未完成</p>
  38. </div>
  39. <div class="text-flex-box" v-if="item.conditionType == 3">
  40. <p>模拟考试</p>
  41. <p>未完成</p>
  42. </div>
  43. <div class="text-flex-box" v-if="item.examKind==1&&item.conditionType == 4">
  44. <p>在线考试</p>
  45. <p>
  46. <span :class="!item.isPassed&&item.attemptCount==0?'color-A':(!item.isPassed&&item.attemptCount>0?'color-B':(item.isPassed?'color-C':''))">{{!item.isPassed&&item.attemptCount==0?'未开始':(!item.isPassed&&item.attemptCount>0?'未通过':(item.isPassed?'已通过':''))}}</span>
  47. <span style="margin-left:20px;">{{item.attemptCount>0?'成绩:'+item.maxScore+'分':''}}</span>
  48. </p>
  49. </div>
  50. <div class="text-flex-box" v-if="item.examKind==2&&item.conditionType == 4">
  51. <p>补考</p>
  52. <p>未完成</p>
  53. </div>
  54. <p class="time-p">{{parseTime(item.startTime,"{y}-{m}-{d} {h}:{i}")}} 至 {{parseTime(item.endTime,"{y}-{m}-{d} {h}:{i}")}}</p>
  55. </div>
  56. </div>
  57. </div>
  58. <!--模拟练习卡-->
  59. <div class="examination-card-box for-max-big-box">
  60. <div class="year-card-top-title-box">
  61. <p>模拟练习</p>
  62. <p>刷题进度和正确率</p>
  63. </div>
  64. <div class="bottom-content-box scrollbar-box" style="cursor: pointer;" @click="goPracticeQuestions()">
  65. <div class="bottom-big-box-6">
  66. <p>{{summaryData.completedCount}} / {{summaryData.totalCount}}</p>
  67. <p >已完成题目数 / 题库总数</p>
  68. </div>
  69. <div class="bottom-big-box-6">
  70. <p>{{summaryData.correctRate}}%</p>
  71. <p >当前模拟练习正确率</p>
  72. </div>
  73. </div>
  74. </div>
  75. <!--在线任务卡-->
  76. <div class="for-max-big-box" v-for="(item,index) in dataList" :key="index">
  77. <div class="year-card-top-title-box">
  78. <p>{{item.examName}}</p>
  79. <p v-if="item.examKind==1&&item.conditionType != 4">满足前置条件后可参加考试</p>
  80. <p v-if="item.examKind==1&&item.conditionType == 4">
  81. <span>{{parseTime(item.startTime,"{y}-{m}-{d} {h}:{i}")}} 至 {{parseTime(item.endTime,"{y}-{m}-{d} {h}:{i}")}}</span>
  82. </p>
  83. <p v-if="item.examKind==1&&item.conditionType == 4">
  84. <span :class="!item.isPassed&&item.attemptCount==0?'color-A':(!item.isPassed&&item.attemptCount>0?'color-B':(item.isPassed?'color-C':''))">{{!item.isPassed&&item.attemptCount==0?'未考试':(!item.isPassed&&item.attemptCount>0?'未通过':(item.isPassed?'已通过':''))}}</span>
  85. <span v-if="item.maxScore>0" style="margin-left:15px;">{{item.attemptCount>0?'成绩:'+item.maxScore+'分':''}}</span>
  86. </p>
  87. </div>
  88. <div class="bottom-content-box scrollbar-box">
  89. <div class="bottom-big-box-4">
  90. <p :class="item.completedStudyHours<item.studyHoursRequirement?'text-name':''">学时要求</p>
  91. <p class="colorA" v-if="item.needStudy" @click="tableButton(1,item)">开始学习</p>
  92. <p class="position-p-1" v-if="item.completedStudyHours<item.studyHoursRequirement">{{item.completedStudyHours}} / {{item.studyHoursRequirement}} 学时</p>
  93. <p class="text-type" v-if="item.completedStudyHours>=item.studyHoursRequirement">已达标</p>
  94. </div>
  95. <div class="bottom-big-box-4" v-if="item.examStudy">
  96. <p>考前学习</p>
  97. <p class="colorA" @click="tableButton(2,item)">开始学习</p>
  98. <!--<p class="colorA" v-if="!item.needStudy" @click="tableButton(2,item)">开始学习</p>-->
  99. <!--<p class="colorC" v-if="item.needStudy">待满足学时要求后解锁</p>-->
  100. </div>
  101. <div class="bottom-big-box-4" v-if="item.mockExam">
  102. <p>模拟考试</p>
  103. <p class="colorA" v-if="!item.examStudy" @click="tableButton(3,item)">开始考试</p>
  104. <p class="colorC" v-if="item.examStudy">待完成学习任务后解锁</p>
  105. </div>
  106. <div class="bottom-big-box-4">
  107. <p>在线考试</p>
  108. <p class="colorA" v-if="item.examKind==1&&item.conditionType == 4" @click="tableButton(4,item)">开始考试</p>
  109. <p class="colorC" v-if="item.examKind==1&&item.conditionType != 4">待通过模拟考试后解锁</p>
  110. <p class="colorB" v-if="item.examKind==2">考试未通过</p>
  111. </div>
  112. <div class="bottom-big-box-4" v-if="item.examKind == 2">
  113. <p>参加补考</p>
  114. <p class="colorA" @click="tableButton(4,item)">开始考试</p>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. <el-dialog class="preExam-dialog"
  120. :modal-append-to-body="false"
  121. :close-on-click-modal="false" :close-on-press-escape="false"
  122. title="考试承诺书"
  123. :visible.sync="preExamDialogType"
  124. v-if="preExamDialogType"
  125. width="840px"
  126. append-to-body>
  127. <div style="height:600px;" class="scrollbar-box">
  128. <richTextPdf ref="richTextPdf" :content="richTextHtml" />
  129. </div>
  130. <div slot="footer" class="dialog-footer dialog-footer-box">
  131. <p class="dialog-footer-button-null"></p>
  132. <p class="dialog-footer-button-border" v-if="preButtonType" @click="preExamDialogCancel">下载</p>
  133. <p class="dialog-footer-button-primary" @click="examUserExamStart">确认</p>
  134. <p class="dialog-footer-button-null"></p>
  135. </div>
  136. </el-dialog>
  137. </div>
  138. </template>
  139. <script>
  140. import { Encrypt,Decrypt} from '@/utils/secret'
  141. import {
  142. examUserCoursewareLearningRestart,examElLabEduRelationAcademicYearProgress,
  143. examUserExamStudyTaskList,examUserExamStart,examUserPracticeSummary,
  144. examUserExamCommitmentConfirm,
  145. } from "@/api/safetyEducationExaminationNew/index";
  146. import richTextPdf from '@/views/safetyEducationExaminationNew/components/richTextPdf.vue';
  147. export default {
  148. name: 'TaskCard',
  149. components: { richTextPdf },
  150. data() {
  151. return {
  152. //学年数据
  153. yearType:true,
  154. yearMinList:[],
  155. studyMinList:[],
  156. examinationMinList:[],
  157. dataList:[],
  158. dataList2:[],
  159. summaryData:{
  160. totalCount:0,
  161. completedCount:0,
  162. correctRate:0,
  163. },
  164. //考前承诺相关
  165. preExamDialogType:false,
  166. preButtonType:false,
  167. richTextHtml: '',
  168. preData:null,
  169. }
  170. },
  171. created() {
  172. },
  173. mounted() {
  174. this.initialization();
  175. },
  176. methods: {
  177. initialization(){
  178. this.examUserPracticeSummary();
  179. this.examElLabEduRelationAcademicYearProgress();
  180. this.examUserExamStudyTaskList();
  181. this.examUserExamStudyTaskList2();
  182. },
  183. //下载承诺书
  184. preExamDialogCancel(){
  185. this.msgSuccess('正在下载,请耐心等候')
  186. this.$refs['richTextPdf'].downloadPDF();
  187. },
  188. //确认承诺-并考试
  189. examUserExamStart(){
  190. if(this.preData.attemptId){
  191. this.examUserExamCommitmentConfirm(1,this.preData.attemptId);
  192. }else{
  193. examUserExamStart({examId:this.preData.examId,examScene:1,}).then(response => {
  194. if(response.data.attemptId){
  195. this.examUserExamCommitmentConfirm(2,response.data.attemptId);
  196. }else{
  197. this.msgError(response.message)
  198. }
  199. })
  200. }
  201. },
  202. examUserExamCommitmentConfirm(type,attemptId){
  203. examUserExamCommitmentConfirm({attemptId:attemptId}).then(response => {
  204. if(type == 1){
  205. this.$router.push({
  206. path: '/startTheExam',
  207. query: {
  208. attemptId: attemptId,
  209. type: '1',
  210. examKind:this.preData.examKind,
  211. }
  212. })
  213. }else if(type == 2){
  214. this.$router.push({
  215. path: '/startTheExam',
  216. query: {
  217. examId: this.preData.examId,
  218. attemptId: attemptId,
  219. type: '1',
  220. examKind:this.preData.examKind,
  221. }
  222. })
  223. }
  224. })
  225. },
  226. //开始考试判断是否有承诺书
  227. setRichExamData(item){
  228. if(item.commitmentEnabled == 1 && !item.commitmentConfirmed){
  229. this.$set(this,'preButtonType',item.commitmentPrintEnabled == 1?true:false);
  230. this.$set(this,'richTextHtml',item.commitmentContent);
  231. this.$set(this,'preData',item);
  232. this.$set(this,'preExamDialogType',true);
  233. }else{
  234. if(item.attemptId){
  235. this.$router.push({
  236. path: '/startTheExam',
  237. query: {
  238. attemptId: item.attemptId,
  239. type: '1',
  240. examKind:item.examKind,
  241. }
  242. })
  243. }else{
  244. examUserExamStart({examId:item.examId,examScene:1,}).then(response => {
  245. if(response.data.attemptId){
  246. this.$router.push({
  247. path: '/startTheExam',
  248. query: {
  249. examId: item.examId,
  250. attemptId: response.data.attemptId,
  251. type: '1',
  252. examKind:item.examKind,
  253. }
  254. })
  255. }else{
  256. this.msgError(response.message)
  257. }
  258. })
  259. }
  260. }
  261. },
  262. //跳转刷题练习
  263. goPracticeQuestions(){
  264. this.$router.push({
  265. path: '/safetyEducationExaminationNew/safetyTest/practiceQuestions',
  266. query: {}
  267. })
  268. },
  269. //考试跳转
  270. tableButtonOne(type,item){
  271. let self = this;
  272. if(type == 1){
  273. if(item.examStudy&&item.courseId){
  274. //学习课程
  275. this.$router.push({
  276. path: '/learningCourse',
  277. query: {
  278. courseId: item.courseId,
  279. examId: item.examId,
  280. }
  281. })
  282. }else{
  283. //学时要求
  284. let obj = {
  285. examName:item.examName,
  286. knowledgePointIds:item.knowledgePointIds,
  287. completedStudyHours:item.completedStudyHours,
  288. studyHoursRequirement:item.studyHoursRequirement,
  289. }
  290. let text = Encrypt(JSON.stringify(obj))
  291. self.$router.push({
  292. path: '/safetyEducationExaminationNew/safetyEducation/knowledgeLearning',
  293. query: {
  294. text : text
  295. }
  296. })
  297. }
  298. }else if(type == 2){
  299. //学习课程
  300. this.$router.push({
  301. path: '/learningCourse',
  302. query: {
  303. courseId: item.courseId,
  304. examId: item.examId,
  305. }
  306. })
  307. }else if(type == 3){
  308. //模拟考试
  309. if(item.mockExamId){
  310. this.$router.push({
  311. path: '/mockExam',
  312. query: {
  313. examId: item.examId,
  314. attemptId: item.mockExamId,
  315. }
  316. })
  317. }else{
  318. examUserExamStart({examId:item.examId,examScene:2,}).then(response => {
  319. if(response.data.attemptId){
  320. this.$router.push({
  321. path: '/mockExam',
  322. query: {
  323. examId: item.examId,
  324. attemptId: response.data.attemptId,
  325. }
  326. })
  327. }else{
  328. this.msgError(response.message)
  329. }
  330. })
  331. }
  332. }else if(type == 4){
  333. //在线考试//补考
  334. this.setRichExamData(item);
  335. }
  336. },
  337. //考试跳转
  338. tableButton(type,item){
  339. let self = this;
  340. if(type == 1){
  341. if(item.examStudy&&item.courseId){
  342. //学习课程
  343. this.$router.push({
  344. path: '/learningCourse',
  345. query: {
  346. courseId: item.courseId,
  347. examId: item.examId,
  348. }
  349. })
  350. }else{
  351. //学时要求
  352. let obj = {
  353. examName:item.examName,
  354. knowledgePointIds:item.knowledgePointIds,
  355. completedStudyHours:item.completedStudyHours,
  356. studyHoursRequirement:item.studyHoursRequirement,
  357. }
  358. let text = Encrypt(JSON.stringify(obj))
  359. self.$router.push({
  360. path: '/safetyEducationExaminationNew/safetyEducation/knowledgeLearning',
  361. query: {
  362. text : text
  363. }
  364. })
  365. }
  366. }else if(type == 2){
  367. //学习课程
  368. this.$router.push({
  369. path: '/learningCourse',
  370. query: {
  371. courseId: item.courseId,
  372. examId: item.examId,
  373. }
  374. })
  375. }else if(type == 3){
  376. //模拟考试
  377. if(item.mockExamId){
  378. this.$router.push({
  379. path: '/mockExam',
  380. query: {
  381. examId: item.examId,
  382. attemptId: item.mockExamId,
  383. }
  384. })
  385. }else{
  386. examUserExamStart({examId:item.examId,examScene:2,}).then(response => {
  387. if(response.data.attemptId){
  388. this.$router.push({
  389. path: '/mockExam',
  390. query: {
  391. examId: item.examId,
  392. attemptId: response.data.attemptId,
  393. }
  394. })
  395. }else{
  396. this.msgError(response.message)
  397. }
  398. })
  399. }
  400. }else if(type == 4){
  401. //在线考试//补考
  402. this.setRichExamData(item);
  403. }
  404. },
  405. //查询学年进度列表
  406. examElLabEduRelationAcademicYearProgress(){
  407. examElLabEduRelationAcademicYearProgress({}).then(response => {
  408. this.$set(this, 'yearMinList', response.data)
  409. })
  410. },
  411. //特殊考试
  412. examUserExamStudyTaskList(){
  413. let obj = {
  414. page:1,
  415. pageSize:5,
  416. examStatus:2,
  417. isSpecialExam:true,
  418. }
  419. examUserExamStudyTaskList(obj).then(response => {
  420. this.$set(this, 'dataList', response.data.records)
  421. })
  422. },
  423. //在线考试
  424. examUserExamStudyTaskList2(){
  425. let obj = {
  426. page:1,
  427. pageSize:5,
  428. examStatus:2,
  429. isSpecialExam:false,
  430. }
  431. examUserExamStudyTaskList(obj).then(response => {
  432. this.$set(this, 'dataList2', response.data.records)
  433. })
  434. },
  435. //在线考试
  436. examUserPracticeSummary(){
  437. examUserPracticeSummary({}).then(response => {
  438. this.$set(this, 'summaryData', response.data)
  439. })
  440. },
  441. },
  442. }
  443. </script>
  444. <style scoped lang="scss">
  445. .task-card {
  446. background: #fff;
  447. /*border-radius: 6px;*/
  448. padding: 16px 0 0 0;
  449. margin-bottom: 12px;
  450. /*box-shadow: 0 1px 4px rgba(0,0,0,0.06);*/
  451. background: rgba(255, 255, 255, 0.95);
  452. border: 1px solid #e8edf5;
  453. border-radius: 16px;
  454. box-shadow: 0 4px 20px rgba(37, 50, 74, 0.06);
  455. .top-title-box{
  456. display: flex;
  457. flex-direction: column;
  458. padding-left:20px;
  459. p{
  460. flex:1;
  461. line-height:20px;
  462. }
  463. p:nth-child(1){
  464. font-size:16px;
  465. font-weight:700;
  466. }
  467. p:nth-child(2){
  468. font-size:14px;
  469. }
  470. p:nth-child(3){
  471. font-size:14px;
  472. }
  473. }
  474. .card-max-big-box{
  475. margin-top:20px;
  476. .year-card-box{
  477. }
  478. .study-card-box{
  479. }
  480. .examination-card-box{
  481. }
  482. .for-max-big-box{
  483. display: inline-block;
  484. width:360px;
  485. height:300px;
  486. margin: 0 0 20px 20px;
  487. /*border-radius:6px;*/
  488. /*border:1px solid #dedede;*/
  489. /*box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);*/
  490. overflow: hidden;
  491. background: linear-gradient(180deg, #fff, #f7faff);
  492. border: 1px solid #eaf0f8;
  493. border-radius: 14px;
  494. .year-card-top-title-box{
  495. padding:20px 20px 0 20px;
  496. position: relative;
  497. height:64px;
  498. p:nth-child(1){
  499. font-size:15px;
  500. font-weight:700;
  501. line-height:20px;
  502. display:block;
  503. overflow:hidden;
  504. text-overflow:ellipsis;
  505. white-space:nowrap;
  506. }
  507. p:nth-child(2){
  508. font-size:14px;
  509. line-height:20px;
  510. margin-top:6px;
  511. color:#60708a;
  512. }
  513. p:nth-child(3){
  514. cursor: pointer;
  515. font-size:12px;
  516. line-height:26px;
  517. color:#60708a;
  518. text-align: right;
  519. position: absolute;
  520. top:0;
  521. right:10px;
  522. }
  523. .color-A{
  524. color:#999;
  525. }
  526. .color-B{
  527. color:#f56c6c;
  528. }
  529. .color-C{
  530. color:#4fbe7e;
  531. }
  532. }
  533. .bottom-content-box{
  534. height:208px;
  535. margin-top:6px;
  536. padding:8px 14px 0 20px;
  537. .null-p{
  538. text-align: center;
  539. font-size: 14px;
  540. color:#999;
  541. line-height: 100px;
  542. }
  543. .bottom-big-box-1{
  544. display: flex;
  545. /*background-color: rgba(1, 131, 250, 0.1);*/
  546. border-radius:6px;
  547. padding:12px 14px;
  548. margin-bottom:12px;
  549. height:68px;
  550. border: 1px solid #e5edf8;
  551. background-color: #fff;
  552. p{
  553. font-size:14px;
  554. line-height:44px;
  555. }
  556. p:nth-child(1){
  557. flex:1;
  558. font-size:15px;
  559. font-weight:700;
  560. }
  561. p:nth-child(2){
  562. width:80px;
  563. text-align: center;
  564. }
  565. }
  566. .bottom-big-box-2{
  567. /*background-color: rgba(1, 131, 250, 0.1);*/
  568. border-radius:6px;
  569. padding:12px 14px;
  570. margin-bottom:12px;
  571. height:68px;
  572. cursor: pointer;
  573. border: 1px solid #e5edf8;
  574. background-color: #fff;
  575. p{
  576. font-size:14px;
  577. line-height:22px;
  578. }
  579. p:nth-child(1){
  580. font-size:15px;
  581. font-weight:700;
  582. }
  583. }
  584. .bottom-big-box-3{
  585. /*background-color: rgba(1, 131, 250, 0.1);*/
  586. border-radius:6px;
  587. padding:12px 14px;
  588. margin-bottom:12px;
  589. height:68px;
  590. cursor: pointer;
  591. border: 1px solid #e5edf8;
  592. background-color: #fff;
  593. p{
  594. font-size:14px;
  595. line-height:22px;
  596. }
  597. p:nth-child(1){
  598. font-size:15px;
  599. font-weight:700;
  600. }
  601. }
  602. .bottom-big-box-4{
  603. /*background-color: rgba(1, 131, 250, 0.1);*/
  604. border-radius:6px;
  605. padding:12px 14px;
  606. margin-bottom:12px;
  607. height:68px;
  608. display: flex;
  609. position: relative;
  610. border: 1px solid #e5edf8;
  611. background-color: #fff;
  612. p{
  613. font-size:14px;
  614. line-height:44px;
  615. }
  616. p:nth-child(1){
  617. }
  618. p:nth-child(2){
  619. flex: 1;
  620. text-align: right;
  621. }
  622. .colorA{
  623. color:#0183fa;
  624. cursor: pointer;
  625. }
  626. .colorB{
  627. color:#D9001B;
  628. }
  629. .colorC{
  630. color:#60708a;
  631. }
  632. .position-p-1{
  633. position: absolute;
  634. bottom:0;
  635. left:15px;
  636. width: 120px;
  637. font-size:12px;
  638. color:#60708a;
  639. }
  640. .text-name{
  641. margin-top:-10px;
  642. }
  643. .text-type{
  644. color: #4fbe7e;
  645. }
  646. }
  647. .bottom-big-box-5{
  648. /*background-color: rgba(1, 131, 250, 0.1);*/
  649. border-radius:6px;
  650. padding:8px 14px;
  651. margin-bottom:12px;
  652. height:76px;
  653. position: relative;
  654. border: 1px solid #e5edf8;
  655. background-color: #fff;
  656. cursor: pointer;
  657. .text-name-p{
  658. font-size:14px;
  659. font-weight:700;
  660. line-height:20px;
  661. }
  662. .text-flex-box{
  663. display: flex;
  664. color:#60708a;
  665. p{
  666. font-size:14px;
  667. line-height:20px;
  668. }
  669. p:nth-child(1){
  670. margin-right:20px;
  671. }
  672. p:nth-child(2){
  673. color:#60708a;
  674. .color-A{
  675. color:#999;
  676. }
  677. .color-B{
  678. color:#f56c6c;
  679. }
  680. .color-C{
  681. color:#4fbe7e;
  682. }
  683. }
  684. }
  685. .time-p{
  686. color:#60708a;
  687. font-size:14px;
  688. line-height:20px;
  689. }
  690. }
  691. .bottom-big-box-6{
  692. /*background-color: rgba(1, 131, 250, 0.1);*/
  693. border-radius:6px;
  694. padding:13px 14px;
  695. margin-bottom:12px;
  696. height:78px;
  697. position: relative;
  698. border: 1px solid #e5edf8;
  699. background-color: #fff;
  700. p:nth-child(1){
  701. display: block;
  702. font-size: 22px;
  703. color: #25324a;
  704. font-weight:700;
  705. line-height:26px;
  706. }
  707. p:nth-child(2){
  708. font-size:14px;
  709. line-height:26px;
  710. color:#60708a;
  711. }
  712. }
  713. }
  714. }
  715. }
  716. }
  717. </style>