Ver código fonte

避免手速太快

y595705120 2 anos atrás
pai
commit
109c952aac

+ 18 - 0
src/assets/css/base.css

@@ -109,6 +109,24 @@ button:focus {
     cursor: no-drop;
 }
 
+.btn-red {
+  color: #fff;
+  background-color: red;
+}
+.btn-red:hover {
+  color: #fff;
+  background-color: red;
+}
+
+.btn-blue {
+  color: #fff;
+  background-color: blue;
+}
+.btn-blue:hover {
+  color: #fff;
+  background-color: blue;
+}
+
 .btn-o {
   color: #fff;
   background-color: #fe8391;

+ 0 - 1
src/assets/css/course.css

@@ -157,7 +157,6 @@
   }
   .m-course-list li .hover-block .ui-btn:hover {
     color: #fff;
-    background-color: #fe6a7b;
   }
   .m-course-list li .hover-block .ui-btn.disabled {
     background-color: #bbb;

+ 1 - 1
src/components/httpServer/request.js

@@ -51,7 +51,7 @@ service.interceptors.response.use(
       Message({
         message: res.msg || 'Error',
         type: 'error',
-        duration:  3000
+        duration:  2000
       })
       return Promise.resolve( res )
     }

+ 2 - 2
src/containers/center/exam/indexTest.vue

@@ -82,8 +82,8 @@
                 </div>
 
                 <div class="page-ctrl">
-                  <el-button  type="primary" :disabled="currentQuestion.index<1" @click="prevQuestion">上一题</el-button>
-                  <el-button  type="primary" :disabled="aindex>=questionList.length-1" @click="nextQuestion">下一题</el-button>
+                  <el-button  type="primary" :disabled="currentQuestion.index<1 || loading" @click="prevQuestion"  v-preventReClick>上一题</el-button>
+                  <el-button  type="primary" :disabled="aindex>=questionList.length-1||loading" @click="nextQuestion"  v-preventReClick>下一题</el-button>
                 </div>
               </el-card>
             </div>

+ 10 - 4
src/containers/center/market/index.vue

@@ -59,7 +59,7 @@
             <span v-if="item.isFinish==1" class="p-ico2 ico-passed"></span>
             <div class="img">
               <img :src="item.tb">
-              <div class="year-label ng-binding">
+              <div class="year-label">
                 <span v-if="item.is_pay==0 && item.buyImg =='' && item.payNo == ''">
                   还未购买
                 </span>
@@ -73,10 +73,11 @@
 
               <div class="hover-block">
                 <div class="mask-bg"></div>
-                <el-button @click="gotoPlay(item.course_id)" v-if="item.is_pay==1" class="ui-btn">进入学习</el-button>
-
-                <el-button @click="goPay(item)" v-else-if="item.is_pay==2 || !!item.buyImg" class="ui-btn btn-o">补充材料</el-button>
+                <el-button @click="gotoPlay(item.course_id)" v-if="item.is_pay==1" class="ui-btn btn-blue">进入学习</el-button>
+                <el-button @click="goPay(item)" v-else-if="item.is_pay==2 || !!item.buyImg" class="ui-btn btn-w">补充材料</el-button>
+                <el-button @click="goPay(item)" v-else-if="item.payErr" class="ui-btn btn-gr">申请购买</el-button>
                 <el-button @click="goPay(item)" v-else class="ui-btn btn-o">购买课程</el-button>
+
               </div>
             </div>
 
@@ -497,6 +498,7 @@
         // this.buyForm.courseName = item.courseName;
         // this.buyCourseDialog = true;
         // 检查
+        item.payErr = true;
         httpServer("weixin.docheckpay", {
           courseId: item.course_id
         }).then((res) => {
@@ -505,11 +507,15 @@
             this.isCompanyPay = 0;
             this.isCommitment=''
             Object.assign( this.buyForm, res.data);
+
             if( isEdu){
               this.buyCourseDialog = true;
             }else{
               this.commitmentDialog = true;
             }
+          }else{
+            console.log("payErr")
+            item.payErr = true;
           }
         });
       },

+ 3 - 3
src/containers/center/play/components/iCourseAnswerTest.vue

@@ -82,11 +82,11 @@
         </div>
       </div>
       <div class="tc" v-if="!finish">
-        <el-button type="primary"  @click="submitQustion">完成</el-button>
+        <el-button type="primary"  @click="submitQustion"  v-preventReClick>完成</el-button>
       </div>
       <div class="tc" v-else>
-        <el-button type="primary" :disabled="index<1" @click="prevQuestion">上一题</el-button>
-        <el-button type="primary" :disabled="index>=counter[type]" @click="nextQuestion">下一题</el-button>
+        <el-button type="primary" :disabled="index<1" @click="prevQuestion"  v-preventReClick>上一题</el-button>
+        <el-button type="primary" :disabled="index>=counter[type]" @click="nextQuestion"  v-preventReClick>下一题</el-button>
       </div>
     </el-card>
 

+ 2 - 8
src/containers/center/play/components/media.vue

@@ -64,11 +64,8 @@
     },
     watch:{
       mediaType( ){
-        console.log("mediaType", this.mediaType)
         this.selectMediaType = this.mediaType;
         if( !this.mediaType ) return;
-        this.onPlay = false
-        // this.doPause()
       },
       dialog( showDilog ){
         if( !showDilog){
@@ -146,14 +143,11 @@
           that.reportErr("play", ''+err.message )
         }
       },
-      playerReadied(player) {
+      playerReadied(audio) {
+        console.log("playerReadied", audio)
         let that = this;
         if( this.media.position){
           this.setposition( this.media.position );
-        }else{
-          setTimeout( ()=>{
-            that.doPlay()
-          }, 2000 )
         }
         this.isReady = true
       },

+ 1 - 1
src/containers/center/play/index.vue

@@ -214,7 +214,7 @@
         this.mediaType = val;
         this.options.sources = [{src:mediaUrl,type: "application/x-mpegURL"}];
         this.options.playtimes = this.media.position||0;
-        this.options.autoplay = false;
+        this.options.autoplay = true;
         this.mediaDialog = true;
       },
       startExamTest(){

+ 2 - 0
src/main.js

@@ -11,6 +11,8 @@ import { store } from '@/store/index'
 import md5 from 'js-md5';
 Vue.prototype.$md5 = md5;
 import 'default-passive-events'
+import preventReClick from './utils/plugins.js'
+
 
 // import '@babel/polyfill'
 require('es6-promise').polyfill()

+ 15 - 0
src/utils/plugins.js

@@ -0,0 +1,15 @@
+import Vue from 'vue'
+const preventReClick = Vue.directive('preventReClick', {
+    inserted: function (el, binding) {
+        console.log("preventReClick", el.disabled)
+        el.addEventListener('click', () => {
+            if (!el.disabled) {
+                el.disabled = true
+                setTimeout(() => {
+                    el.disabled = false
+                }, binding.value || 2000)
+            }
+        })
+    }
+});
+export { preventReClick }