y595705120 před 2 roky
rodič
revize
7adcedf99a

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

@@ -43,7 +43,7 @@
             </a>
             <div class="history-course-bd" style="width:276px">
               <p class="tit ng-binding">{{item.name}}[{{item.nd}}]</p>
-              <div class="info" v-if="curDate>=item.endDate" >课程进度
+              <div class="info" v-if="curDate>=item.startDate" >课程进度
                 <span class="num ml10 ng-binding">{{getPercent(item)}}</span>
                 <span class="t-b">%</span>
               </div>

+ 12 - 5
src/containers/center/play/components/iCourseInfoXsExtra.vue

@@ -83,6 +83,7 @@
 <script>
   import setting from '@/setting';
   import { getTime,packTime,toDate } from "@/utils/date";
+  import { mapGetters, mapActions } from "vuex";
   export default {
     name: "iCourseInfoTest",
     data() {
@@ -104,6 +105,9 @@
     created(){
       this.initTimer()
     },
+    computed: {
+      ...mapGetters("user", ["notices"])
+    },
     filters:{
       add80Date( date ){
         let val = new Date(date).getTime() + 80*86400*1000;
@@ -114,6 +118,7 @@
       }
     },
     methods: {
+      ...mapActions("user", ["setNotice"]),
       initTimer() {
         if (this.timer) {
           window.clearInterval(this.timer);
@@ -136,11 +141,13 @@
           this.$message.errorMsg("开考超过三天,不能继续考试")
           return;
         }
-        let endDate = toDate( +new Date() - 5*86400*1000)
-        console.log("endDate", this.info.startDate, endDate)
-        if( this.info.startDate < endDate){
-          this.$message.errorMsg("开通超过5天,请联系管理员", 2)
-          return;
+        let courseId = this.info.courseId
+        if( !this.notices[courseId] ){
+          let endDate = toDate( +new Date() - 5*86400*1000)
+          if( this.info.startDate < endDate){
+            this.$message.errorMsg("开通超过5天,请联系管理员", 2)
+            this.setNotice( courseId )
+          }
         }
         if( this.tpl.isClosed ==1 ) {
           this.$message.errorMsg("课程已经关闭", 2)

+ 4 - 0
src/containers/center/play/index.vue

@@ -3,6 +3,7 @@
     <ICourseInfoTest  v-if="tpl.type=='检测试验人员'" :info="info" :tpl="tpl" @printCert="printCert" @startExam="startExam"></ICourseInfoTest>
     <ICourseInfoXsExtra v-else-if="tpl.testXs>0"
     :extraXs="extraXs"  :info="info"
+    @updateInfo="updateInfo"
     :tpl="tpl" @startExamTest="startExamTest" @startExam="startExam"></ICourseInfoXsExtra>
 
     <ICourseInfo v-else :info="info" :tpl="tpl" @printCert="printCert" @startExam="startExam"></ICourseInfo>
@@ -217,6 +218,9 @@
         this.options.autoplay = true;
         this.mediaDialog = true;
       },
+      updateInfo( param ){
+        this.info = Object.assign(this.info, param);
+      },
       startExamTest(){
         if( !this.isStudyFinish() ){
           this.$message.errorMsg(" 完成学习才能专项练习", 2)

+ 113 - 87
src/store/module/user.js

@@ -1,94 +1,120 @@
-import { httpServer } from "@/components/httpServer/httpServer.js";
+import {
+  httpServer
+} from "@/components/httpServer/httpServer.js";
 import router from '@/router/index'
 export const user = {
-    namespaced: true,
-    state: {
-        userInfo: {
-            uuid: "",
-            nickname: "",
-            headImg: "",
-            authority: "",
-        },
-        typeList:[],
-        token: "",
+  namespaced: true,
+  state: {
+    userInfo: {
+      uuid: "",
+      nickname: "",
+      headImg: "",
+      authority: "",
     },
-    mutations: {
-        setUserInfo(state, userInfo) {
-          state.userInfo = userInfo
-        },
-        setToken(state, token) {
-          state.token = token
-        },
-        setTypeList(state, typeList) {
-           state.typeList = typeList
-        },
-        LoginOut(state) {
-            state.userInfo = {}
-            state.token = ""
-            localStorage.uid = ""
-            localStorage.token=""
-            sessionStorage.clear()
-            if( location.pathname != '/'){
-              router.push('/')
-            }
-        },
-        ResetUserInfo(state, userInfo = {}) {
-            state.userInfo = {...state.userInfo,
-                ...userInfo
-            }
-        }
+    notices: {},
+    typeList: [],
+    token: "",
+  },
+  mutations: {
+    setUserInfo(state, userInfo) {
+      state.userInfo = userInfo
     },
-    actions: {
-        async loadBaseInfo({ commit, router }) {
-          let res = await httpServer("User.baseInfo", {})
-          if( res.code != 0 && res.code != 200){
-            commit('LoginOut', {} )
-            return false
-          }
-          localStorage.uid = res.data.uid
-          localStorage.token  = res.data.token
-          commit('setUserInfo', res.data)
-          commit('setToken', res.data.token)
-          return res.data
-        },
-        async loadTypeList({ commit, router }) {
-          let res = await httpServer("Course.getTypeList", {})
-          commit('setTypeList', res.data||[])
-          return true
-        },
-        async saveBaseInfo({ commit }, userInfo) {
-          commit('ResetUserInfo', userInfo)
-        },
-        async doLogout({ commit }, userInfo) {
-          // let res = await httpServer("Auth.Logout", {} )
-          commit('LoginOut', {})
-          return true
-        },
-        async doLogin({ commit }, param ) {
-          console.log("loginStart", res )
-          let res = await httpServer("Auth.LoginStudy", param )
-          if( res.code == 200 ){
-            commit('setUserInfo', res.data)
-            commit('setToken', res.data.token)
-            localStorage.nickname = res.data.nickname;
-            localStorage.token = res.data.token;
-            localStorage.headImg = res.data.headImg;
-            localStorage.uid = res.data.uid;
-            return res.data
-          }
-          return false
-        }
+    setNotice(state, courseId) {
+      state.notices[courseId] = true;
     },
-    getters: {
-        userInfo(state) {
-            return state.userInfo
-        },
-        typeList(state) {
-            return state.typeList
-        },
-        token(state) {
-            return state.token
-        },
-
+    setToken(state, token) {
+      state.token = token
+    },
+    setTypeList(state, typeList) {
+      state.typeList = typeList
+    },
+    LoginOut(state) {
+      state.userInfo = {}
+      state.token = ""
+      localStorage.uid = ""
+      localStorage.token = ""
+      sessionStorage.clear()
+      if (location.pathname != '/') {
+        router.push('/')
+      }
+    },
+    ResetUserInfo(state, userInfo = {}) {
+      state.userInfo = { ...state.userInfo,
+        ...userInfo
+      }
     }
+  },
+  actions: {
+    async loadBaseInfo({
+      commit,
+      router
+    }) {
+      let res = await httpServer("User.baseInfo", {})
+      if (res.code != 0 && res.code != 200) {
+        commit('LoginOut', {})
+        return false
+      }
+      localStorage.uid = res.data.uid
+      localStorage.token = res.data.token
+      commit('setUserInfo', res.data)
+      commit('setToken', res.data.token)
+      return res.data
+    },
+    async loadTypeList({
+      commit,
+      router
+    }) {
+      let res = await httpServer("Course.getTypeList", {})
+      commit('setTypeList', res.data || [])
+      return true
+    },
+    async saveBaseInfo({
+      commit
+    }, userInfo) {
+      commit('ResetUserInfo', userInfo)
+    },
+    setNotice({
+      commit
+    }, courseId) {
+      commit('setNotice', courseId)
+    },
+    async doLogout({
+      commit
+    }, userInfo) {
+      // let res = await httpServer("Auth.Logout", {} )
+      commit('LoginOut', {})
+      return true
+    },
+    async doLogin({
+      commit
+    }, param) {
+      console.log("loginStart", res)
+      let res = await httpServer("Auth.LoginStudy", param)
+      if (res.code == 200) {
+        commit('setUserInfo', res.data)
+        commit('setToken', res.data.token)
+        localStorage.nickname = res.data.nickname;
+        localStorage.token = res.data.token;
+        localStorage.headImg = res.data.headImg;
+        localStorage.uid = res.data.uid;
+        return res.data
+      }
+      return false
+    }
+  },
+  getters: {
+    userInfo(state) {
+      return state.userInfo
+    },
+    typeList(state) {
+      return state.typeList
+    },
+    token(state) {
+      return state.token
+    },
+    notices(state) {
+      return state.notices
+    },
+
+  }
 }