Browse Source

获得学时

y595705120 6 months ago
parent
commit
a33f816ee8

+ 11 - 6
src/containers/center/play/components/iCourseAnswerTest.vue

@@ -2,16 +2,16 @@
   <div style="display: flex;">
 
     <ul style="width: 180px;">
-      <li class="mt10">
+      <li class="mt10" v-if="counter[1]">
         <el-button type="primary" @click="type=1" class="w130" > 判断题 {{counter[1]}}题</el-button>
       </li>
-      <li class="mt10">
+      <li class="mt10" v-if="counter[2]">
         <el-button type="warning" @click="type=2" class="w130" >单选题 {{counter[2]}}题</el-button>
       </li>
-      <li class="mt10">
+      <li class="mt10" v-if="counter[3]">
         <el-button type="success" @click="type=3"  class="w130">多选题 {{counter[3]}}题</el-button>
       </li>
-      <li class="mt10">
+      <li class="mt10" v-if="counter[4]">
         <el-button type="danger" @click="type=4" class="w130">案例题 {{counter[4]}}题</el-button>
       </li>
     </ul>
@@ -101,7 +101,6 @@
     data() {
       return {
         index: 0,
-        groupId: 10,
         id: 0,
         type: 1,
         finish: false,
@@ -124,10 +123,16 @@
         }
       }
     },
-    props: ['info', 'extraXs'],
+    props: ['info', 'extraXs', 'groupId'],
     mounted() {
       this.id = this.info.id || 0;
       this.index = this.extraXs.index1 || 0;
+
+      if ( this.groupId == 10){
+        this.counter = { 1:150, 2:156, 3:149,4:45}
+      }else{
+        this.counter = { 1:100, 2:400}
+      }
       this.loadAnswer();
     },
     watch: {

+ 105 - 87
src/containers/center/play/components/iCourseInfo.vue

@@ -1,112 +1,130 @@
-
 <template>
-    <el-row class="p20 waphide">
-      <el-col :lg="6" :md="6" :span="6">
-        <el-progress
-          class="mprocess"
-          type="circle"
-          :width="150"
-          :format="formatFinish"
-          :stroke-width="18"
-          :percentage="info.percent"
-          >
-        </el-progress>
+  <el-row class="p20 waphide">
+    <el-col :lg="6" :md="6" :span="6">
+      <el-progress class="mprocess" type="circle" :width="150" :format="formatFinish" :stroke-width="18"
+        :percentage="info.percent">
+      </el-progress>
 
-      </el-col>
+    </el-col>
 
-      <el-col :lg="6"  :md="6" :span="6">
-        <el-progress v-if="tpl.examGroupId>0"
-           class="mprocess"
-           type="circle"
-           :width="150"
-           :format="formatExam"
-           :stroke-width="18"
-           :percentage="info.score"
-           >
-        </el-progress>
+    <el-col :lg="6" :md="6" :span="6">
+      <el-progress v-if="tpl.testGroupId>0" class="mprocess" type="circle" :width="150" :format="formatTest"
+        :stroke-width="18" :percentage="finishCount">
+      </el-progress>
 
-        <el-progress v-else
-           class="mprocess"
-           type="circle"
-           :width="150"
-           :format="formatString('--')"
-           :stroke-width="18"
-           :percentage="0"
-           >
-        </el-progress>
-      </el-col>
+      <el-progress v-else-if="tpl.examGroupId>0" class="mprocess" type="circle" :width="150" :format="formatExam"
+        :stroke-width="18" :percentage="info.score">
+      </el-progress>
 
-      <el-col :lg="6" :md="6" :span="6">
-        <img src="../../../../assets/wxapp.jpg"  width="150px"  />
-      </el-col>
+      <el-progress v-else class="mprocess" type="circle" :width="150" :format="formatString('--')" :stroke-width="18"
+        :percentage="0">
+      </el-progress>
+    </el-col>
 
-      <el-col :lg="6" :md="6" :span="6">
-        <div>
-          <p style="font-size: 24px;"> 说明 </p>
-          <p class="mt10" >岗位名称:{{tpl.name}}<strong style="color: red;">{{tpl.nd}}</strong></p>
-          <p class="mt10">
-            学习截至时间:
-            <strong style="color: red;">
+    <el-col :lg="6" :md="6" :span="6">
+      <img src="../../../../assets/wxapp.jpg" width="150px" />
+    </el-col>
+
+    <el-col :lg="6" :md="6" :span="6">
+      <div>
+        <p style="font-size: 24px;"> 说明 </p>
+        <p class="mt10">岗位名称:{{tpl.name}}<strong style="color: red;">{{tpl.nd}}</strong></p>
+        <p class="mt10">
+          学习截至时间:
+          <strong style="color: red;">
             {{info.canStudyDate}}
-            </strong>
-          </p>
-          <p class="mt10" style="color: red;" v-if="tpl.examGroupId>0" >报名成功,80天内完成学习与考试</p>
-          <p class="mt10" v-if="tpl.examGroupId==0" >学完所有课程,即可打印学时证明</p>
+          </strong>
+        </p>
+        <p class="mt10" v-if="tpl.testGroupId>0">
+          参与练习<strong style="color: red;"> {{finishCount}}</strong>题,满100题可得
+          <strong style="color: red;">{{tpl.testXs/10}}</strong>学时
+        </p>
+        <p class="mt10" style="color: red;" v-if="tpl.examGroupId>0">报名成功,80天内完成学习与考试</p>
+        <p class="mt10" v-if="tpl.examGroupId==0">完成所有视频,即可打印学时证明</p>
 
-          <div>
-              <el-button type="primary" class="mt10" style="font-size: 14px;" @click="startExam" v-if="tpl.examGroupId>0" :disabled="info.score>=60">
-                参加考试
-              </el-button>
-              <el-button type="primary" class="mt10" style="font-size: 14px;" @click="printCert" v-if="tpl.tplId>0">
-                学时证明
-              </el-button>
-          </div>
-         </div>
-      </el-col>
+        <div>
+          <el-button type="primary" class="mt10" style="font-size: 14px;" @click="startExam" v-if="tpl.examGroupId>0"
+            :disabled="info.score>=60">
+            参加考试
+          </el-button>
+          <el-button type="primary" class="mt10" style="font-size: 14px;" @click="startExamTest"
+            v-if="tpl.testGroupId>0" :disabled="info.score>=60">
+            在线练习
+          </el-button>
+          <el-button type="primary" class="mt10" style="font-size: 14px;" @click="printCert" v-if="tpl.tplId>0">
+            学时证明
+          </el-button>
+        </div>
+      </div>
+    </el-col>
 
-    </el-row>
-    </template>
+  </el-row>
+</template>
 
-  <script>
-  import { toDate } from "@/utils/date";
+<script>
+  import {
+    toDate
+  } from "@/utils/date";
   export default {
     name: "Index",
     data() {
       return {
+        finishCount:0
       }
     },
-    filters:{
-      add80Date( date ){
-        let val = new Date(date).getTime() + 80*86400*1000;
-        return toDate( val )
+    filters: {
+      add80Date(date) {
+        let val = new Date(date).getTime() + 80 * 86400 * 1000;
+        return toDate(val)
 
+      },
+      testCount(val) {
+        let finish= (+val.index1) + (+val.index2) + (+val.index3) + (+val.index4) || 0
+        return finish;
       }
     },
-    props:['tpl', 'info'],
-     methods: {
-        startExam(){
-          if( this.tpl.isClosed ==1 ) {
-             this.$message.errorMsg("课程已经关闭", 2)
-             return;
-          }
-          this.$emit("startExam",  0)
-        },
-        printCert(){
-            this.$emit("printCert")
-         },
-         formatFinish() {
-        let {gxs,axs} = this.info;
-        if( !axs ) axs = 1;
-        return `获得${gxs}学时, 总共${axs}学时`;
+    props: ['tpl', 'info', 'extraXs'],
+    mounted(){
+      this.finishCount = (this.extraXs.index1) + (+this.extraXs.index2) + (+this.extraXs.index3) + (+this.extraXs.index4)||0
+    },
+    methods: {
+      startExam() {
+        if (this.tpl.isClosed == 1) {
+          this.$message.errorMsg("课程已经关闭", 2)
+          return;
+        }
+        this.$emit("startExam", 0)
+      },
+      startExamTest() {
+        this.$emit("startExamTest")
+      },
+      printCert() {
+        this.$emit("printCert")
+      },
+      formatFinish() {
+        let {
+          gxs,
+          axs
+        } = this.info;
+        let {testXs}= this.tpl
+        let attrch = this.finishCount>=100?testXs/10:0;
+        if (!axs) axs = 1;
+        return `获得${gxs+attrch}学时, 总共${axs+testXs/10}学时`;
       },
       formatExam() {
-        let {score} = this.info
-        if( score == -1 ) return `已答0次,未通过`;
+        let {
+          score
+        } = this.info
+        if (score == -1) return `已答0次,未通过`;
         return `最高${score<1?0:score}分, ${score>=60?'通过':'未通过'}`;
       },
-      formatString(val){
-        return ()=> val;
+      formatTest() {
+        let finishCount = this.finishCount
+        return `练习${finishCount}题, ${finishCount>=100?'完成':'未完成'}`;
+      },
+      formatString(val) {
+        return () => val;
       }
-     }
+    }
   }
-  </script>
+</script>

+ 1 - 1
src/containers/center/play/components/iCourseInfoTest.vue

@@ -68,7 +68,7 @@
           <span style="width:240px;margin: 0px;padding: 0px;">
             {{item.name}}: <strong style="color: red;">{{info['score'+(index+1)]}} </strong>分
           </span>
-          <el-button v-if="info['score'+index]<60" @click="startExam(item.id)" type="text">开始考试</el-button>
+          <el-button v-if="info['score'+(index+1)]<60" @click="startExam(item.id)" type="text">开始考试</el-button>
           <el-button v-else type="text" style="color: #006600;">考试通过</el-button>
         </section>
       </div>

+ 7 - 2
src/containers/center/play/index.vue

@@ -10,7 +10,11 @@
     <ICourseInfoTest  v-else-if="tpl.isTranExam>0" :examList="examList" :info="info" :tpl="tpl" @printCert="printCert" @startExam="startExam"></ICourseInfoTest>
 
 
-    <ICourseInfo v-else :info="info" :tpl="tpl" @printCert="printCert" @startExam="startExam"></ICourseInfo>
+    <ICourseInfo v-else
+    :info="info"
+     :tpl="tpl"
+     :extraXs="extraXs"
+     @printCert="printCert" @startExam="startExam" @startExamTest="startExamTest"></ICourseInfo>
 
     <div class="right-block-bd ng-scope" ui-view="myStudyContent" style="position: relative;">
       <div class="m-account">
@@ -75,7 +79,7 @@
         <el-dialog class="previewDialog" :visible.sync="testExamDalog"
           top="50px" width="1024px"
           @close="testExamDalog=false">
-          <ICourseAnswerTest :info="info" :extraXs="extraXs" @updateExtraXs="updateExtraXs"> </ICourseAnswerTest>
+          <ICourseAnswerTest :info="info" :extraXs="extraXs" @updateExtraXs="updateExtraXs" :groupId="tpl.testGroupId"> </ICourseAnswerTest>
         </el-dialog>
       </div>
      </div>
@@ -236,6 +240,7 @@
       isStudyFinish(){
         let {getXs,totalXs} = this.info
         let {testXs, examXs} = this.tpl;
+        console.log(getXs, totalXs , testXs, examXs )
         return getXs>=totalXs -testXs - examXs
       },
       startExam( groupId ){