Browse Source

新版本

y595705120 2 tuần trước cách đây
mục cha
commit
222a23fc88

+ 3 - 2
src/components/httpServer/httpServer.js

@@ -3,7 +3,7 @@ import request from './request.js';
 const version = '1.0'
 const secret = '017c0743819088468e590246464cc75f';
 
-export function httpServer(method, data) {
+export function httpServer(method, data, hideLoading) {
   let uid = localStorage.uid||0;
   let token = localStorage.token||''
   let role = 'user'
@@ -22,7 +22,8 @@ export function httpServer(method, data) {
   return request({
     url: url,
     method: 'post',
-    data: body
+    data: body,
+    hideLoading
   })
 }
 

+ 35 - 50
src/components/httpServer/request.js

@@ -1,89 +1,74 @@
 import axios from 'axios'
-import { MessageBox, Message } from 'element-ui'
+import { MessageBox, Message, Loading } from 'element-ui'
+
+let loadingInstance = null
+let requestCount = 0
 
-let acitveAxios = 0
-let timer
 const showLoading = () => {
-  acitveAxios++
-  if (timer) {
-      clearTimeout(timer)
+  requestCount++
+  if (requestCount === 1) {
+    loadingInstance = Loading.service({
+      target: '.pc-player-container',
+      text: '加载中...',
+      background: 'rgba(255,255,255,0.6)'
+    })
   }
-  timer = setTimeout(() => {
-      if (acitveAxios > 0) {
-          context.$bus.emit("showLoading")
-      }
-  }, 400);
 }
 
 const closeLoading = () => {
-  acitveAxios--
-  if (acitveAxios <= 0) {
-      clearTimeout(timer)
-      context.$bus.emit("closeLoading")
+  requestCount--
+  if (requestCount <= 0) {
+    requestCount = 0
+    if (loadingInstance) {
+      loadingInstance.close()
+      loadingInstance = null
+    }
   }
 }
 
-// create an axios instance
 const service = axios.create({
-  baseURL: '/', // url = base url + request url
-  // withCredentials: true, // send cookies when cross-domain requests
-  // timeout: 5000 // request timeout
+  baseURL: '/',
 })
 
-// request interceptor
 service.interceptors.request.use(
   config => {
-    // if (store.getters.token) {
-    //   config.headers['x-token'] = localStorage.token
-    //   config.headers['x-userId'] = localStorage.userId
-    // }
+    if (!config.hideLoading) {
+      showLoading()
+    }
     return config
   },
   error => {
-    // do something with request error
-    console.log(error) // for debug
     return Promise.reject(error)
   }
 )
 
-// response interceptor
 service.interceptors.response.use(
-  /**
-   * If you want to get http information such as headers or status
-   * Please return  response => response
-  */
-
-  /**
-   * Determine the request status by custom code
-   * Here is just an example
-   * You can also judge the status by HTTP Status Code
-   */
   response => {
-    const res = response.data||{}
-    // if the custom code is not 200, it is judged as an error.
+    if (!response.config.hideLoading) {
+      closeLoading()
+    }
+    const res = response.data || {}
     if (res.code == 200 || res.code == 20000) {
-      return Promise.resolve(res  )
-    } else if( res.code == 401){
-      // localStorage.removeItem('token')
-      // localStorage.removeItem('paperId')
-      // return Promise.reject( res )
+      return Promise.resolve(res)
+    } else if (res.code == 401) {
       Message({
         message: '用户被踢下线,请重新登入',
         type: 'error',
-        duration:  5000
+        duration: 5000
       })
-      window.location.href  = '/'
-      return Promise.resolve( res )
-    }else {
+      window.location.href = '/'
+      return Promise.resolve(res)
+    } else {
       Message({
         message: res.msg || 'Error',
         type: 'error',
-        duration:  2000
+        duration: 2000
       })
-      return Promise.resolve( res )
+      return Promise.resolve(res)
     }
   },
   error => {
+    closeLoading()
     Message({
       message: error.message,
       type: 'error',

+ 2 - 2
src/containers/apply/index.css

@@ -37,8 +37,8 @@
   text-align: center;
   /* margin: 30px auto; */
   color: white;
-  padding-top: 30px;
-  padding-bottom: 30px;
+  padding-top: 20px;
+  padding-bottom: 20px;
   display: block;
   font-weight: bold;
 }

+ 10 - 9
src/containers/apply/index.vue

@@ -58,25 +58,27 @@
 
       <el-dialog title="添加用户" center :visible.sync="addUserDialog" width="500px">
       	<el-form :model="form" :rules="rules" label-width="120px" ref="elForm" >
-      		<el-form-item label="证书编号" prop="rzCode" >
-      			<el-input v-model="form.rzCode" type="text" style="width: 250px;" />
-      		</el-form-item>
+
           <el-form-item label="用户名字" prop="nickname">
-      			<el-input v-model="form.nickname" type="text" style="width: 250px;" />
+      			<el-input v-model="form.nickname" type="text" style="width: 260px;" />
       		</el-form-item>
       		<el-form-item label="身份证号" prop="cardId" >
-      			<el-input v-model="form.cardId" type="text" style="width: 250px;" />
+      			<el-input v-model="form.cardId" type="text" style="width: 260px;" />
       		</el-form-item>
+          <el-form-item label="证书编号" prop="rzCode" >
+          	<el-input v-model="form.rzCode" type="text" style="width: 170px;" />
+            <el-button style="width: 80px;" type="primary" :disabled="form.cardId.length==18 && form.nickname!=''" >查询</el-button>
+          </el-form-item>
           <el-form-item label="最高学历" prop="education" >
-            <el-select  v-model="form.education" style="width: 250px;" >
+            <el-select  v-model="form.education" style="width: 260px;" >
             	<el-option v-for="item in educationList" :value="item" :label="item" :key="item"/>
             </el-select>
           </el-form-item>
       		<el-form-item label="手机号码" prop="phone" >
-      			<el-input v-model="form.phone" type="text" style="width: 250px;" />
+      			<el-input v-model="form.phone" type="text" style="width: 260px;" />
       		</el-form-item>
       		<el-form-item label="选择岗位" prop="courseId">
-      			<el-select  v-model="form.courseId" style="width: 250px;" >
+      			<el-select  v-model="form.courseId" style="width: 260px;" >
               <el-option  :value="0" label="选择课程" />
       				<el-option v-for="item in courseList" :value="item.courseId" :label="item.courseName+'|'+item.nd" :key="item.id"/>
       			</el-select>
@@ -128,7 +130,6 @@
         form: Object.assign({}, defaultForm),
         rules: {
           nickname: [{required: true, message: "请输入名字", trigger: "blur", min: 2 }],
-          rzCode: [{ required: true, message: "请输入证书编号", trigger: "blur", min: 6 }],
           education: [{ required: true, message: "请选择学历", trigger: "blur"}],
           cardId: [
             { required: true, message: '请输入身份证号码', trigger: 'blur' },

+ 0 - 1
src/containers/center/play/components/media.vue

@@ -273,7 +273,6 @@
         document.addEventListener("keydown", function(e) {
           if (e.key == "F12") {
             that.reportErr("play", 'keydownF12');
-            try { e.preventDefault() } catch (err) {}
           }
         });
 

+ 25 - 19
src/containers/center/play/index.vue

@@ -386,25 +386,31 @@
       },
       // 加载媒体
       loadMedia( item, index ) {
-        this.media = item;
-        this.media.index = index
-        httpServer('course.GetMedia', {id:item.id}).then( res => {
-          if( res.code != 200) return;
-          let {mediaUrl, id, position, marks} = res.data||{};
-          this.mediaUrl = res.data.mediaUrl;
-          if(  this.mediaUrl.indexOf('/hls/') == -1){
-            this.mediaType = 'ld'
-          }else{
-            this.mediaType = 'hls'
-          }
-          this.options.marks = !!marks;
-          this.media.position = position;
-          this.media.id = id;
-          this.options.sources = [{src:this.mediaUrl,type: "application/x-mpegURL"}];
-          this.options.playtimes = position||1;
-          this.options.autoplay  = position>0;
-          this.mediaDialog = true;
-        });
+          let courseId = this.courseId
+          let mediaId = item.mediaId;
+          // this.$router.push({name:'playMedia', params:{courseId}, query:{name}})
+          const {href} = this.$router.resolve({name:'playMedia', params:{courseId}, query:{mediaId}})
+          console.log(href)
+          window.open(href, '_blank');
+        // this.media = item;
+        // this.media.index = index
+        // httpServer('course.GetMedia', {id:item.id}).then( res => {
+        //   if( res.code != 200) return;
+        //   let {mediaUrl, id, position, marks} = res.data||{};
+        //   this.mediaUrl = res.data.mediaUrl;
+        //   if(  this.mediaUrl.indexOf('/hls/') == -1){
+        //     this.mediaType = 'ld'
+        //   }else{
+        //     this.mediaType = 'hls'
+        //   }
+        //   this.options.marks = !!marks;
+        //   this.media.position = position;
+        //   this.media.id = id;
+        //   this.options.sources = [{src:this.mediaUrl,type: "application/x-mpegURL"}];
+        //   this.options.playtimes = position||1;
+        //   this.options.autoplay  = position>0;
+        //   this.mediaDialog = true;
+        // });
       }
     }
   };

+ 7 - 4
src/router/index.js

@@ -9,7 +9,7 @@ import main from '@/containers/main/main'
 import center from '@/containers/center/center'
 
 import Play from '@/containers/center/play/index.vue'
-
+import PlayMedia from '@/containers/center/play/play.vue'
 import Index from '@/containers/main/index/index'
 import Profile from '@/containers/main/profile/profile'
 
@@ -98,8 +98,11 @@ export default new Router({
       name: 'reset',
       component: Reset,
     },
-
-
+    {
+      path: '/playMedia/:courseId',
+      name: 'playMedia',
+      component: PlayMedia,
+    },
     {
       path: '/main',
       name: 'main',
@@ -108,7 +111,6 @@ export default new Router({
           path: 'index',
           component: Index,
         },
-
         {
           path: 'about',
           component: AboutMe,
@@ -161,6 +163,7 @@ export default new Router({
           name: 'play',
           component: Play,
         },
+
         {
           path: 'studyArchives',
           component: CenterStudyArchives,