guojy il y a 1 an
Parent
commit
436ff6e513

+ 1 - 1
src/router/course.js

@@ -23,7 +23,7 @@
     },
     {
       path: '/courseTeam/:id',
-      name: 'courseHome',
+      name: 'courseTeam',
       component: () => import('@/view/course/user/team'),
       label: '我的团队',
       need_login: false,

+ 8 - 10
src/utils/axiosKc.js

@@ -41,14 +41,7 @@ request.interceptors.request.use(
 
 request.interceptors.response.use(
   response => {
-    if (response.data.code === 1) {
-      if (response.data.data && response.data.data.utoken) {
-        if (response.data.data.utoken != getWxToken()) {
-          setWxToken(response.data.data.utoken)
-        }
-      }
-      return response
-    } else if (response.data.code === 401) {
+    if (response.data.code === 401) {
       openError({
         url: url,
         token: getWxToken(),
@@ -64,7 +57,7 @@ request.interceptors.response.use(
           window.localStorage.clear()
         }
         router.replace({
-          name: 'courseHome'
+          name: 'courseAuth'
         })
       });
     } else if (response.data.code === 0) {
@@ -74,12 +67,15 @@ request.interceptors.response.use(
         background: '#d1d1d1',
       });
       return Promise.reject('error')
-    } else if (response.data.code === 2) {
+    } else if (response.data.code === 2) {//未登录
       Notify({
         message: response.data.message,
         color: '#ad0000',
         background: '#ffe1e1',
       });
+      router.replace({
+        name: 'courseAuth'
+      })
       return Promise.reject('error')
     } else if (response.data.code === 999) {
       Notify({
@@ -158,6 +154,8 @@ export default (type, url, data, heaStr, isToken, Content_Type) => {
   }
   if (getWxToken()) {
     Token = getWxToken();
+  }else{
+    return Promise.reject(new Error('No token, request aborted.'));
   }
   if (isToken) {
     Token = isToken

+ 14 - 1
src/view/course/deal/dealOrder.vue

@@ -71,7 +71,7 @@
 import {getDealerCourseList,dealCourse} from '../api'
 import Vue from "vue";
 import { NumberKeyboard } from "vant";
-
+import {setWxConfig} from '../utils'
 Vue.use(NumberKeyboard);
 export default {
   name: "dealOrder",
@@ -92,9 +92,22 @@ export default {
     };
   },
   created() {
+    // this.getCourseList();
+    if(this.$isWx){
+      setWxConfig(info);
+    }
+  },
+  activated(){
     this.getCourseList();
   },
+  deactivated(){
+    resetList();
+  },
   methods: {
+    resetList(){
+      this.courseList=[],
+      this.columnsOptions=[]
+    },
     //获取可交易的课程
     getCourseList(){
       getDealerCourseList().then(res=>{

+ 11 - 0
src/view/course/deal/limitRecord.vue

@@ -36,6 +36,7 @@
 
 <script>
 import {getCourseRecordList} from '../api'
+import {setWxConfig} from '../utils'
 export default {
   name: "limitRecord",
   components: {},
@@ -53,8 +54,18 @@ export default {
     };
   },
   created() {
+    // this.getList();
+    if(this.$isWx){
+      setWxConfig(info);
+    }
+  },
+  activated(){
     this.getList();
   },
+  deactivated(){
+    this.page.cur = 1;
+    this.recordList = [];
+  },
   methods: {
     // 返回
     onClickLeft() {

+ 8 - 1
src/view/course/deal/transfer.vue

@@ -42,6 +42,7 @@
 <script>
 import {dealAccept,dealRefund,dealRecall} from '../api'
 import courseList from "../components/courseList.vue";
+import {setWxConfig} from "../utils"
 export default {
   name: "courseTransfer",
   components: { courseList },
@@ -60,8 +61,14 @@ export default {
       return list;
     }
   },
+  activated(){
+    this.init();
+  },
   created() {
-    this.init()
+    // this.init()
+    if(this.$isWx){
+      setWxConfig(info);
+    }
   },
   methods: {
     // 初始化

+ 29 - 20
src/view/course/home.vue

@@ -8,19 +8,24 @@
       noDataText="没有更多..."
       :on-refresh='resetList'
       :on-infinite="getMoreList">
-        <div class="tit" style="margin-top: .3rem;" v-if="freeCourseList.length>0">
+        <div class="tit" style="margin-top: .3rem;">
           <span>今日更新</span>
         </div>
-        <div class="freeContent" v-if="freeCourseList.length>0">
-          <div class="freeLi" v-for="(item,index) in freeCourseList" :key="index" @click="toUrl(item)">
-            <div class="liIcon">
-              <van-icon name="play-circle-o" />
+        <div class="freeContent">
+          <template v-if="freeCourseList.length>0">
+            <div class="freeLi" v-for="(item,index) in freeCourseList" :key="index" @click="toUrl(item)">
+              <div class="liIcon">
+                <van-icon name="play-circle-o" />
+              </div>
+              <div class="freeR">
+                <p>{{ item.name }}</p>
+                <span>{{ Math.floor(Math.random()*100) }}人浏览</span>
+              </div>
             </div>
-            <div class="freeR">
-              <p>{{ item.name }}</p>
-              <span>{{ Math.floor(Math.random()*100) }}人浏览</span>
-            </div>
-          </div>
+          </template>
+          <template v-else>
+            <p>暂无数据</p>
+          </template>
         </div>
         <div class="tit">
           <span>课程推荐</span>
@@ -40,7 +45,6 @@ import { getUserAllCourseList ,getFreeCourseList} from "./api";
 import courseList from "./components/courseList.vue";
 import {setDocumentTitle} from '../../components/vueHashCalendar/utils/util'
 import {setWxConfig} from './utils'
-import wx from 'weixin-js-sdk'
 export default {
   name: "courseHome",
   components: {
@@ -61,17 +65,16 @@ export default {
       freeCourseList:[]
     };
   },
-  created() {
-    setDocumentTitle('首页')
+  activated(){
     this.init();
+  },
+  deactivated(){
+    this.page.cur = 1;
+    this.courseList = []
+  },
+  created() {
     if(this.$isWx){
-      let info = {
-        title:'公道云课程',// 分享标题
-        desc:'公道云',// 分享描述
-        link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
-        imgUrl: this.logo, // 分享图标
-      }
-      setWxConfig(info);
+      setWxConfig();
     }
   },
   methods: {
@@ -180,6 +183,12 @@ export default {
     }
     .freeContent{
       margin-bottom: .3rem;
+      &>p{
+        font-size: .26rem;
+        color: #888;
+        line-height: 1rem;
+        text-align: center;
+      }
       .freeLi{
         background-color: #FFF;
         display: flex;

+ 6 - 10
src/view/course/user.vue

@@ -154,7 +154,7 @@
   import QRCode from "qrcodejs2";
   import courseList from "./components/courseList.vue";
   import {setDocumentTitle} from '../../components/vueHashCalendar/utils/util'
-  import {isWeChatMobile,isWeChatPC,isWeChat} from './utils'
+  import {setWxConfig} from './utils'
   import {
     getWxApiToken,
     getUSerInfo,
@@ -205,16 +205,13 @@
       };
     },
     created() {
-      this.init();
-      console.log(isWeChat()?isWeChatMobile()?'手机微信':isWeChatPC()?'电脑微信':'无法判断':'不是微信')
-    },
-    watch: {
-      $route(to) {
-        if (to.path == "/courseUser") {
-          this.init();
-        }
+      if(this.$isWx){
+        setWxConfig();
       }
     },
+    activated(){
+      this.init();
+    },
     methods: {
         //底部导航变化
         activeChange(){
@@ -267,7 +264,6 @@
       },
       //获取用户数据
       init() {
-        setDocumentTitle('首页')
         this.user_info = JSON.parse(localStorage.getItem("wx_user_info"));
         if (this.user_info.marketable) {
           this.getDealerCourseList();

+ 11 - 2
src/view/course/user/courseAdDeal.vue

@@ -72,7 +72,7 @@
             class="copyCode"
             @click="getCourseCode"
             >复制链接</van-button> -->
-            <button ref="copys"  id="copyLink"  data-clipboard-action="copy" data-clipboard-target="#copy_text" @click="copy">复制链接</button>
+            <button ref="copys"  id="copyLink"  data-clipboard-action="copy" data-clipboard-target="#copy_text" @click.prevent="copy">复制链接</button>
         </div>
       </div>
     </van-overlay>
@@ -142,8 +142,17 @@ export default {
     }
   },
   created() {
+    // this.init();
+    if(this.$isWx){
+      setWxConfig(info);
+    }
+  },
+  activated(){
     this.init();
-    // setWxConfig();
+  },
+  deactivated(){
+    this.page.cur = 1;
+    this.recordList = [];
   },
   mounted(){
     this.copyBtn = new Clipboard(this.$refs.copys);

+ 15 - 13
src/view/course/user/courseDeal.vue

@@ -114,18 +114,10 @@ export default {
     };
   },
   created() {
-    this.init();
+    // this.init();
   },
-  mounted(){
-    if(this.$isWx){
-      let info = {
-        title:this.courseDetail.name,// 分享标题
-        desc:'点击查看课程',// 分享描述
-        link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
-        imgUrl: this.courseDetail.thumb, // 分享图标
-      }
-      setWxConfig(info);
-    }
+  activated(){
+    this.init();
   },
   methods: {
     scrollChange(e){
@@ -200,7 +192,7 @@ export default {
     },
     // 返回首页
     onClickLeft() {
-      if (this.$route.query && this.$route.query.code) {
+      if (this.$route.query && (this.$route.query.code)) {
         this.$router.push("/courseHome");
       } else {
         this.$router.go(-1);
@@ -209,7 +201,7 @@ export default {
     // 初始化
     init() {
       this.courseId = this.$route.params.id;
-      if (this.$route.query && this.$route.query.code) {
+      if (this.$route.query && this.$route.query.code && this.$route.query.code != 2) {
         this.getDetail();
       } else {
         this.getDetail();
@@ -220,6 +212,15 @@ export default {
     getDetail() {
       learnerCourseDetail(this.courseId).then(res => {
         this.courseDetail = res;
+        if(this.$isWx){
+          let info = {
+            title:this.courseDetail.name,// 分享标题
+            desc:'点击查看详情',// 分享描述
+            link: `${window.location.href}?code=1`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+            imgUrl: this.courseDetail.thumb, // 分享图标
+          }
+          setWxConfig(info);
+        }
         if (
           this.courseDetail.buy &&
           this.$route.query &&
@@ -238,6 +239,7 @@ export default {
           !this.courseDetail.buy &&
           this.$route.query &&
           this.$route.query.code &&
+          this.$route.query.code != 2 &&
           this.courseDetail.enable &&
           !this.giveCode
         ) {

+ 10 - 9
src/view/course/user/deal.vue

@@ -113,6 +113,7 @@ import Vue from "vue";
 import { Tab, Tabs } from "vant";
 import courseList from "../components/courseList";
 import { getDealerRecord } from "../api";
+import {setWxConfig} from '../utils'
 
 Vue.use(Tab);
 Vue.use(Tabs);
@@ -148,15 +149,17 @@ export default {
       recordList: []
     };
   },
-  watch: {
-    $route(to) {
-      if (to.path.includes("/courseDeal/")) {
-        this.resetList();
-      }
-    }
+  activated(){
+    this.init();
+  },
+  deactivated(){
+    this.resetList();
   },
   created() {
-    this.init();
+    // this.init();
+    if(this.$isWx){
+      setWxConfig();
+    }
   },
   methods: {
     // 初始化
@@ -176,8 +179,6 @@ export default {
       this.noDate1 = false;
       this.courseList = [];
       this.recordList = [];
-      this.getList();
-      this.getRecordList();
     },
     // 触底加载
     getMoreList(done) {

+ 7 - 8
src/view/course/user/login.vue

@@ -55,7 +55,7 @@
 import { returnJSEncrypt1 } from "@/utils/auth";
 import { getMobileYzm,getUSerInfo } from "../api";
 import { addDealer } from "../api";
-import { isWxEnv } from "../utils";
+import { setWxConfig } from "../utils";
 export default {
   name: "courseLogin",
   components: {},
@@ -76,15 +76,14 @@ export default {
       partternY: /\d{6}/
     };
   },
-  watch:{
-    '$route'(to){
-      if(to.path == 'courseLogin'){
-        this.init();
-      }
-    }
+  activated(){
+    this.init();
   },
   created() {
-    this.init();
+    // this.init();
+    if(this.$isWx){
+      setWxConfig();
+    }
   },
   methods: {
     // 初始化

+ 4 - 0
src/view/course/user/team.vue

@@ -28,6 +28,7 @@
 <script>
 import { getDealerTeam, getDealerPerson } from "../api";
 import Team from "../components/CourseTeam";
+import {setWxConfig} from '../utils'
 import {setDocumentTitle} from '../../../components/vueHashCalendar/utils/util'
 export default {
   name: "courseTeam",
@@ -53,6 +54,9 @@ export default {
   },
   created() {
     this.init();
+    if(this.$isWx){
+      setWxConfig();
+    }
   },
   methods: {
     debouce(callback,time){

+ 4 - 1
src/view/course/user/wxAuth.vue

@@ -35,9 +35,12 @@ export default {
       logo: require("../../../../static/images/course_logo.png")
     };
   },
-  created() {
+  activated(){
     this.init();
   },
+  created() {
+    // this.init();
+  },
   computed: {
     ...mapGetters(["wxid"])
   },

+ 17 - 6
src/view/course/utils/index.js

@@ -1,6 +1,6 @@
 import { Toast, Notify } from 'vant'
 import Clipboard from "clipboard";
-import { getWxToken, setWxToken, openError } from "@/utils/auth";
+import { getWxToken, openError } from "@/utils/auth";
 import { getCache } from '@/utils/auth'
 import { getWxConfigInfo } from '../api'
 import router from '@/router'
@@ -102,7 +102,18 @@ export function copyLink(event) {
     });
 }
 export function setWxConfig(shareInfo) {
-    console.log(shareInfo)
+    let info
+    if(shareInfo){
+        info = shareInfo
+    }else{
+        info = {
+            title:'功道云知识平台',// 分享标题
+            desc:'每天管理知识分享',// 分享描述
+            link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+            imgUrl: 'https://oa.g107.com/m/static/images/logo.png', // 分享图标
+        }
+    }
+    console.log(info)
     let data = {
         url:window.location.href
     }
@@ -116,10 +127,10 @@ export function setWxConfig(shareInfo) {
         })
         wx.ready(() => {
             wx.updateAppMessageShareData({
-                title: shareInfo.title, // 分享标题
-                desc: shareInfo.desc, // 分享描述
-                link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
-                imgUrl: shareInfo.logo, // 分享图标
+                title: info.title, // 分享标题
+                desc: info.desc, // 分享描述
+                link: info.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+                imgUrl: info.imgUrl, // 分享图标
                 success: function () {
                 // 设置成功
                 console.log("分享成功");

+ 8 - 1
src/view/course/video/courseVideo.vue

@@ -64,6 +64,7 @@
 
 <script>
 import { learnerCourseDetail, getVideoSrc } from "../api";
+import {setWxConfig} from '../utils'
 export default {
   name: "video",
   data() {
@@ -95,9 +96,15 @@ export default {
       });
     }
   },
-  created() {
+  activated(){
     this.init();
   },
+  created() {
+    // this.init();
+    if(this.$isWx){
+      setWxConfig();
+    }
+  },
   methods: {
     //滚动监控
     scrollChange(e) {

+ 13 - 6
src/view/course/video/freeVideo.vue

@@ -19,6 +19,7 @@
   
   <script>
   import {learnerCourseDetail,getFreeVideoSrc} from '../api'
+  import {setWxConfig} from "../utils"
   export default {
     name: "video",
     data() {
@@ -48,9 +49,15 @@
         })
       }
     },
-    created() {
+    activated(){
       this.init();
     },
+    created() {
+      // this.init();
+      if(this.$isWx){
+        setWxConfig();
+      }
+    },
     methods: {
       // 章节切换获取视频地址
       toSectionVidio(item,i) {
@@ -129,11 +136,11 @@
           font-size: 0.32rem;
           font-weight: 600;
           color: #000;
-          line-height: 1rem;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          white-space: nowrap;
-          word-break: break-all;
+          line-height: .5rem;
+          // overflow: hidden;
+          // text-overflow: ellipsis;
+          // white-space: nowrap;
+          // word-break: break-all;
         }
       }
       .tabs {