guojy 1 рік тому
батько
коміт
a7a5ec77e1

BIN
src/assets/images/headLogo.jpg


+ 3 - 0
src/main.js

@@ -47,6 +47,9 @@ Vue.prototype.$socketApiTow = socketApiTow   //长连接
 Vue.prototype.$returnFh = returnFh
 Vue.prototype.$isWx = getIsWx()
 
+// localStorage.setItem('Wx-Token','eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE3ODIzNDkxMTYyMzI4OTI0MTcsIm5iZiI6MTcxMzg0MzIzMjY2Niwicm9sZSI6Im1rdF91c2VyIiwicHJ2IjoiMGU1ZWM0NzM3NDk3NmFmY2NlZGJiY2Y1ZGVlNzVmMDE0Y2E1YjliNSIsImV4cCI6LTEsImlhdCI6MTcxMzg0MzIzMjY2NiwianRpIjoieGJ5N3ljbWxqNGduYXcybyJ9.Iv04__mjBDEV75QU8kbrJX2umQIKDZE87-kTD5LG4vg')
+// localStorage.setItem('wx_user_info',JSON.stringify({"id":"1782349116232892417","name":"雷阳","mobile":"15270803986","statistics":{"teamAmount":0,"saleAmount":0},"imgUrl":"","marketable":1,"utoken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE3ODIzNDkxMTYyMzI4OTI0MTcsIm5iZiI6MTcxMzg0MzIzMjY2Niwicm9sZSI6Im1rdF91c2VyIiwicHJ2IjoiMGU1ZWM0NzM3NDk3NmFmY2NlZGJiY2Y1ZGVlNzVmMDE0Y2E1YjliNSIsImV4cCI6LTEsImlhdCI6MTcxMzg0MzIzMjY2NiwianRpIjoieGJ5N3ljbWxqNGduYXcybyJ9.Iv04__mjBDEV75QU8kbrJX2umQIKDZE87-kTD5LG4vg"}))
+
 // true为APP打包,false为M端打包
 Vue.prototype.$isApp = true
 

+ 1 - 1
src/router/course.js

@@ -81,7 +81,7 @@
       path: '/freeCourse',
       name: 'freeCourse',
       component: () => import('@/view/course/video/freeVideo'),
-      label: '免费课程',
+      label: '今日更新',
       need_login: false,
     },
     {

+ 31 - 47
src/utils/axiosKc.js

@@ -41,26 +41,7 @@ request.interceptors.request.use(
 
 request.interceptors.response.use(
   response => {
-    if (response.data.code === 401) {
-      openError({
-        url: url,
-        token: getWxToken(),
-        error: JSON.stringify(response),
-        message: '微信账号的接口'
-      });
-      Dialog.alert({
-        message: '您已登录超时,请重新登录',
-      }).then(() => {
-        if (window.plus) {
-          plus.storage.clear()
-        } else {
-          window.localStorage.clear()
-        }
-        router.replace({
-          name: 'courseAuth'
-        })
-      });
-    } else if (response.data.code === 0) {
+    if (response.data.code === 0) {//请求失败
       Notify({
         message: response.data.message,
         color: '#ad0000',
@@ -68,36 +49,39 @@ request.interceptors.response.use(
       });
       return Promise.reject('error')
     } else if (response.data.code === 2) {//未登录
-      Notify({
-        message: response.data.message,
-        color: '#ad0000',
-        background: '#ffe1e1',
-      });
+      // Notify({
+      //   message: response.data.message,
+      //   color: '#ad0000',
+      //   background: '#ffe1e1',
+      // });
+      // localStorage.removeItem('Wx-Token')
+      // localStorage.removeItem('wx_user_info')
       router.replace({
         name: 'courseAuth'
       })
-      return Promise.reject('error')
-    } else if (response.data.code === 999) {
-      Notify({
-        message: response.data.message,
-        color: '#ad0000',
-        background: '#ffe1e1',
-      });
-      return Promise.reject('error')
-    } else if (response.data.code === 3) {
-      Notify({
-        message: response.data.message,
-        color: '#ad0000',
-        background: '#ffe1e1',
-      });
-      return Promise.reject('error')
-    } else if (response.data.code === 0) { //系统过期
-      Notify({
-        message: response.data.message,
-        color: '#ad0000',
-        background: '#ffe1e1',
-      });
-      return Promise.reject('error')
+      // return Promise.reject('error')
+    } else if (response.data.code === 3) {//无权限
+      // Notify({
+      //   message: response.data.message,
+      //   color: '#ad0000',
+      //   background: '#ffe1e1',
+      // });
+      router.replace({
+        name: 'courseHome'
+      })
+      // return Promise.reject('error')
+    } else if (response.data.code === 999) {//系统异常
+      // Notify({
+      //   message: response.data.message,
+      //   color: '#ad0000',
+      //   background: '#ffe1e1',
+      // });
+      localStorage.removeItem('Wx-Token')
+      localStorage.removeItem('wx_user_info')
+      router.replace({
+        name: 'courseAuth'
+      })
+      // return Promise.reject('error')
     } else {
       return response
     }

+ 6 - 2
src/view/course/deal/dealOrder.vue

@@ -101,7 +101,7 @@ export default {
     this.getCourseList();
   },
   deactivated(){
-    resetList();
+    this.resetList();
   },
   methods: {
     resetList(){
@@ -158,7 +158,11 @@ export default {
     },
     //返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     },
     //显示课程选择
     showPop() {

+ 5 - 1
src/view/course/deal/limitRecord.vue

@@ -69,7 +69,11 @@ export default {
   methods: {
     // 返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     },
     //获取记录列表
     getList(done){

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

@@ -77,7 +77,11 @@ export default {
     },
     // 返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     },
     // 退回、撤回提示
     returnLimit(){

+ 5 - 1
src/view/course/home.vue

@@ -19,7 +19,7 @@
               </div>
               <div class="freeR">
                 <p>{{ item.name }}</p>
-                <span>{{ Math.floor(Math.random()*100) }}人浏览</span>
+                <span>{{ getRandomNumber(10,30) }}人学习中</span>
               </div>
             </div>
           </template>
@@ -78,6 +78,10 @@ export default {
     }
   },
   methods: {
+    // 随机学习中
+    getRandomNumber(min, max) {
+      return Math.floor(Math.random() * (max - min + 1)) + min;
+    },
     //跳转免费课程
     toUrl(item){
       this.$router.push({

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

@@ -169,7 +169,7 @@
     data() {
       return {
         active:1,
-        defaultImgUrl:require('../../assets/images/courseUser.png'),
+        defaultImgUrl:require('../../assets/images/headLogo.jpg'),
         showLoad: false,
         tbsIndex: 0,
         clipboard: null,

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

@@ -72,12 +72,12 @@
             class="copyCode"
             @click="getCourseCode"
             >复制链接</van-button> -->
-            <button ref="copys"  id="copyLink"  data-clipboard-action="copy" data-clipboard-target="#copy_text" @click.prevent="copy">复制链接</button>
+            <button ref="copys"  id="copyLink"   data-clipboard-action="copy" data-clipboard-target="#copy_text" @click.prevent.stop="copy($event)">复制链接</button>
         </div>
       </div>
     </van-overlay>
     
-    <input type="text" v-model="giveLink"  id="copy_text" style="opacity: 0">
+    <input type="text" v-model="giveLink" readonly id="copy_text" style="opacity: 0">
   </div>
 </template>
 <script>
@@ -144,7 +144,7 @@ export default {
   created() {
     // this.init();
     if(this.$isWx){
-      setWxConfig(info);
+      setWxConfig();
     }
   },
   activated(){
@@ -177,10 +177,11 @@ export default {
       }
     },
     //复制
-    copy () {
+    copy (event) {
       let _this = this
       let clipboard = _this.copyBtn
       clipboard.on('success', function () {
+        event.preventDefault()
         _this.$toast.success('复制成功')
       })
       clipboard.on('error', function (e) {
@@ -203,7 +204,7 @@ export default {
     // 获取课程码
     getCourseCode() {
       createCourseCode(this.courseDetail.subjectId).then(res => {
-        this.giveLink = `点我领取课程,1小时内可领取有效 ${window.location.href.split("#")[0]}#/courseDetail/${
+        this.giveLink = `点我领取课程,1小时内可领取 ${window.location.href.split("#")[0]}#/courseDetail/${
           this.subjectId
         }?code=${res}`;
         console.log(this.giveLink)
@@ -274,7 +275,11 @@ export default {
     },
     // 返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     },
     // 初始化
     init() {

+ 30 - 3
src/view/course/user/courseDeal.vue

@@ -208,6 +208,24 @@ export default {
         this.canGive = false;
       }
     },
+    //删除URL的指定参数
+    urlDelP(url,name){
+      var urlArr = url.split('?');
+      if(urlArr.length>1 && urlArr[1].indexOf(name)>-1){
+          var query = urlArr[1];
+          var obj = {}
+          var arr = query.split("&");
+          for (var i = 0; i < arr.length; i++) {
+              arr[i] = arr[i].split("=");
+              obj[arr[i][0]] = arr[i][1];
+          };
+          delete obj[name];
+          var urlte = urlArr[0] +'?'+ JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&");
+          return urlte;
+      }else{
+          return url;
+      };
+    },
     // 获取用户此课程的详情
     getDetail() {
       learnerCourseDetail(this.courseId).then(res => {
@@ -215,16 +233,23 @@ export default {
         if(this.$isWx){
           let info = {
             title:this.courseDetail.name,// 分享标题
-            desc:'点击查看详情',// 分享描述
-            link: `${window.location.href}?code=1`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+            desc:'听完觉得确实不错,忍不住要推荐~',// 分享描述
+            link: `${window.location.href}`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
             imgUrl: this.courseDetail.thumb, // 分享图标
           }
+          if(this.$route.query&&this.$route.query.code){
+            let newUrl = this.urlDelP(window.location.href,'code')
+            info.link = newUrl.includes('?')?`${newUrl}&code=2`:`${newUrl}?code=2`
+          }else{
+            info.link = window.location.href.includes('?')?`${window.location.href}&code=2`:`${window.location.href}?code=2`
+          }
           setWxConfig(info);
         }
         if (
           this.courseDetail.buy &&
           this.$route.query &&
           this.$route.query.code &&
+          this.$route.query.code != 2 &&
           !this.giveCode
         ) {
           this.$toast.fail("您已经购买课程,无需再次购买");
@@ -272,7 +297,9 @@ img {
       overflow: hidden;
       img {
         width: 100%;
-        height: 4rem;
+        // height: 4rem;
+        overflow: hidden;
+        display: block;
       }
     }
     .title {

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

@@ -22,14 +22,15 @@
             height="1.12rem"
             v-if="user_info.imgUrl"
           ></userImage>
-          <div style="background: #26A2FF;border-radius: 50%;overflow: hidden;" v-else>
-            <userImage
+          <div style="width: 1.12rem;height: 1.12rem;background: #26A2FF;border-radius: 50%;overflow: hidden;display: flex;justify-content: center;align-items: center;" v-else>
+            <img :src="defaultImgUrl" style="width: 80%;height: 80%;">
+            <!-- <userImage
               class="about-me__avatar"
               :img_url="defaultImgUrl"
               user_name="用户"
               width="1.12rem"
               height="1.12rem"
-            ></userImage>
+            ></userImage> -->
           </div>
           <div class="info">
             <span
@@ -261,7 +262,11 @@ export default {
     },
     //导航左侧返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     }
   }
 };

+ 6 - 3
src/view/course/user/team.vue

@@ -91,7 +91,11 @@ export default {
     },
     //导航左侧返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     },
     // 获取团队列表
     getList(done) {
@@ -122,11 +126,9 @@ export default {
           this.page.total = res.total;
           this.page.cur = res.current;
           if (res.pages == res.current || res.pages == 0) {
-            console.log("已无更多");
             if (done) done(true);
             this.noDate = true;
           } else {
-            console.log("更多...");
             if (done) done();
             this.page.cur++; //下拉一次页数+1
             this.noDate = false;
@@ -138,6 +140,7 @@ export default {
     search(val) {
       this.keyword = val;
       this.page.cur = 1;
+      this.teamList = []
       this.getList();
     }
   }

+ 1 - 1
src/view/course/utils/index.js

@@ -108,7 +108,7 @@ export function setWxConfig(shareInfo) {
     }else{
         info = {
             title:'功道云知识平台',// 分享标题
-            desc:'每天管理知识分享',// 分享描述
+            desc:'听完觉得确实不错,忍不住要推荐~',// 分享描述
             link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
             imgUrl: 'https://oa.g107.com/m/static/images/logo.png', // 分享图标
         }

+ 5 - 2
src/view/course/video/courseVideo.vue

@@ -153,7 +153,11 @@ export default {
     },
     // 返回
     onClickLeft() {
-      this.$router.go(-1);
+      if(window.history.length>1){
+        this.$router.go(-1);
+      }else{
+        this.$router.replace('/courseHome')
+      }
     },
     // 初始化
     init() {
@@ -204,7 +208,6 @@ img {
       overflow: hidden;
       video {
         width: 100%;
-        height: 4rem;
       }
     }
     .videoTitle {

+ 280 - 188
src/view/course/video/freeVideo.vue

@@ -1,218 +1,310 @@
 <template>
-    <div class="page">
-      <van-nav-bar
-        :title="title"
-        left-text="返回"
-        left-arrow
-        @click-left="onClickLeft"
-      ></van-nav-bar>
-      <div class="courseContent">
-        <div class="previewImg">
-          <video ref="vueMiniPlayer" :src="videoSrc" controls autoplay v-if="showVideo" controlsList="nodownload"></video>
-        </div>
-        <div class="title">
-          <p>{{ video_info.name }}</p>
-        </div>
+  <div class="page">
+    <van-nav-bar :title="title" @click-left="onClickLeft">
+      <template #left>
+        <template v-if="$route.query && $route.query.code && $route.query.code == 2">
+          <van-icon name="wap-home-o" />
+          <span style="font-size: .32rem;color: #FFF;">首页</span>
+        </template>
+        <template v-else>
+          <van-icon name="arrow-left" />
+          <span style="font-size: .32rem;color: #FFF;">返回</span>
+        </template>
+      </template>
+    </van-nav-bar>
+    <div class="courseContent">
+      <div class="previewImg">
+        <video
+          ref="vueMiniPlayer"
+          :src="videoSrc"
+          controls
+          autoplay
+          v-if="showVideo"
+          controlsList="nodownload"
+        ></video>
+      </div>
+      <div class="title">
+        <p>{{ video_info.name }}</p>
       </div>
     </div>
-  </template>
-  
-  <script>
-  import {learnerCourseDetail,getFreeVideoSrc} from '../api'
-  import {setWxConfig} from "../utils"
-  export default {
-    name: "video",
-    data() {
-      return {
-        video_info:{
-            name:'免费课程'
-        },
-        showVideo:true,
-        title: "免费课程",
-        videoSrc:"",
-        courseDetail: {
-          thumb: "",
-          name: "",
-          images: [],
-          sections: []
-        }
-      };
-    },
-    watch:{
-      videoSrc(){
-        this.showVideo = false;
-        this.$nextTick(()=>{
-          this.showVideo = true;
-          this.$nextTick(()=>{
-            this.$refs.vueMiniPlayer.play();//播放
-          })
-        })
+    <div class="otherCourse">
+      <scroller :isInitRefresh="false" ref="recordScroller">
+        <div class="otherContent">
+          <div class="tit">
+            <span>推荐课程</span>
+          </div>
+          <courseList :dataList="courseList" :showNum="4"></courseList>
+        </div>
+      </scroller>
+    </div>
+  </div>
+</template>
+
+<script>
+import { learnerCourseDetail, getFreeVideoSrc,getUserAllCourseList } from "../api";
+import courseList from "../components/courseList.vue";
+import { setWxConfig } from "../utils";
+export default {
+  name: "video",
+  data() {
+    return {
+      video_info: {
+        name: "今日更新"
+      },
+      showVideo: true,
+      title: "今日更新",
+      videoSrc: "",
+      courseDetail: {
+        thumb: "",
+        name: "",
+        images: [],
+        sections: []
+      },
+      courseList: [],
+      page:{
+        cur:1,
+        size:5,
+        total:0
       }
-    },
-    activated(){
-      this.init();
-    },
-    created() {
-      // this.init();
-      if(this.$isWx){
-        setWxConfig();
+    };
+  },
+  components: { courseList },
+  watch: {
+    videoSrc() {
+      this.showVideo = false;
+      this.$nextTick(() => {
+        this.showVideo = true;
+        this.$nextTick(() => {
+          this.$refs.vueMiniPlayer.play(); //播放
+        });
+      });
+    }
+  },
+  activated() {
+    this.init();
+  },
+  created() {
+    // this.init();
+    if (this.$isWx) {
+      let info = {
+        title:this.$route.query.name,// 分享标题
+        desc:'听完觉得确实不错,忍不住要推荐~',// 分享描述
+        link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+        imgUrl: 'https://oa.g107.com/m/static/images/logo.png', // 分享图标
+      }
+      if(this.$route.query&&this.$route.query.code){
+        let newUrl = this.urlDelP(window.location.href,'code')
+        info.link = newUrl.includes('?')?`${newUrl}&code=2`:`${newUrl}?code=2`
+      }else{
+        info.link = window.location.href.includes('?')?`${window.location.href}&code=2`:`${window.location.href}?code=2`
       }
+      setWxConfig(info);
+    }
+  },
+  methods: {
+    //删除URL的指定参数
+    urlDelP(url,name){
+      var urlArr = url.split('?');
+      if(urlArr.length>1 && urlArr[1].indexOf(name)>-1){
+          var query = urlArr[1];
+          var obj = {}
+          var arr = query.split("&");
+          for (var i = 0; i < arr.length; i++) {
+              arr[i] = arr[i].split("=");
+              obj[arr[i][0]] = arr[i][1];
+          };
+          delete obj[name];
+          var urlte = urlArr[0] +'?'+ JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&");
+          return urlte;
+      }else{
+          return url;
+      };
     },
-    methods: {
-      // 章节切换获取视频地址
-      toSectionVidio(item,i) {
-        this.courseDetail.sections.forEach((item,index)=>{
-          item.active = false;
-          if(index == i){
-            item.active = true;
-          }
-        })
-        let data = {
-            index: i,
-            link: item.link
-        };
-        sessionStorage.setItem('vd_info',JSON.stringify(data))
-        this.getVideoLink(item.link)
-        // this.videoSrc = this.courseDetail.sections[index].link
-      },
-      // 获取视频地址
-      getVideoLink(link){
-        let data = {
-          subjectId:this.$route.params.id,
-          link:link
+    // 获取所有课程列表
+    getList() {
+      let data = {
+        page: this.page.cur,
+        pageSize: this.page.size,
+        enable: 1
+      };
+      getUserAllCourseList(data).then(res => {
+        let list = [];
+        res.list.forEach(item => {
+          let data = {
+            subjectName: item.name,
+            subjectId: item.id,
+            subjectPrice: item.price,
+            subjectThumb: item.thumb,
+            subjectEnable: item.enable,
+            sectionsNum: item.sectionsNum,
+            clickNum: Number(item.baseClick) + Number(item.clickNum)
+          };
+          list.push(data);
+        });
+        this.courseList = list;
+        this.page.total = res.total;
+        this.page.cur = res.current;
+      });
+    },
+    // 章节切换获取视频地址
+    toSectionVidio(item, i) {
+      this.courseDetail.sections.forEach((item, index) => {
+        item.active = false;
+        if (index == i) {
+          item.active = true;
         }
-        getFreeVideoSrc(data).then(res=>{
-          this.videoSrc = res
-        }).catch(err=>{
-          this.$router.push('/courseError')
+      });
+      let data = {
+        index: i,
+        link: item.link
+      };
+      sessionStorage.setItem("vd_info", JSON.stringify(data));
+      this.getVideoLink(item.link);
+      // this.videoSrc = this.courseDetail.sections[index].link
+    },
+    // 获取视频地址
+    getVideoLink(link) {
+      let data = {
+        subjectId: this.$route.params.id,
+        link: link
+      };
+      getFreeVideoSrc(data)
+        .then(res => {
+          this.videoSrc = res;
         })
-      },
-      // 返回
-      onClickLeft() {
+        .catch(err => {
+          this.$router.push("/courseError");
+        });
+    },
+    // 返回
+    onClickLeft() {
+      // this.$router.go(-1);
+      if (this.$route.query && this.$route.query.code && this.$route.query.code == 2) {
+        this.$router.push("/courseHome");
+      } else {
         this.$router.go(-1);
-      },
-      // 初始化
-      init() {
-        if(this.$route.query){
-            this.video_info = this.$route.query;
-            this.getVideoLink(this.video_info.link)
-        }else{
-            this.$toast.fail('视频似乎有点问题')
-            setTimeout(() => {
-                this.$router.go(-1)
-            }, 2000);
-        }
-      },
+      }
     },
-  };
-  </script>
-  <style scoped lang="scss">
-  @import url('../utils/navBar.scss');
-  * {
-    margin: 0;
-    padding: 0;
-  }
-  img {
-    display: block;
+    // 初始化
+    init() {
+      if (this.$route.query) {
+        this.video_info = this.$route.query;
+        this.getVideoLink(this.video_info.link);
+        this.getList();
+      } else {
+        this.$toast.fail("视频似乎有点问题");
+        setTimeout(() => {
+          this.$router.go(-1);
+        }, 2000);
+      }
+    }
   }
-  .page {
+};
+</script>
+<style scoped lang="scss">
+@import url("../utils/navBar.scss");
+* {
+  margin: 0;
+  padding: 0;
+}
+img {
+  display: block;
+}
+.page {
+  box-sizing: border-box;
+  .courseContent {
+    padding: 0.3rem 0.2rem 0;
     background-color: #fff;
-    box-sizing: border-box;
-    .courseContent {
-      padding: 0 0.2rem;
-      margin-top: 0.3rem;
-      .previewImg {
-        border-radius: 0.1rem;
-        overflow: hidden;
+    .previewImg {
+      border-radius: 0.1rem;
+      overflow: hidden;
+      width: 100%;
+      // height: 4rem;
+      video {
         width: 100%;
-        height: 4rem;
-        video {
-          width: 100%;
-          height: 4rem;
-        }
+        // height: 4rem;
       }
-      .title {
-        p {
-          font-size: 0.32rem;
-          font-weight: 600;
-          color: #000;
-          line-height: .5rem;
-          // overflow: hidden;
-          // text-overflow: ellipsis;
-          // white-space: nowrap;
-          // word-break: break-all;
+    }
+    .title {
+      padding: 0.2rem 0;
+      p {
+        font-size: 0.32rem;
+        font-weight: 600;
+        color: #000;
+        line-height: 0.5rem;
+        // overflow: hidden;
+        // text-overflow: ellipsis;
+        // white-space: nowrap;
+        // word-break: break-all;
+      }
+    }
+    .tabs {
+      height: calc(100vh - 6.25rem);
+      position: relative;
+      .images {
+        margin-top: 0.1rem;
+        img {
+          width: 100%;
         }
       }
-      .tabs {
-        height: calc(100vh - 6.25rem);
-        position: relative;
-        .images {
-          margin-top: 0.1rem;
-          img {
-            width: 100%;
+      .catelog {
+        margin-top: 1px;
+        border-top: 1px solid #efefef;
+        .sup {
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+          span {
+            font-size: 0.24rem;
+            color: #666;
+            line-height: 3;
           }
         }
-        .catelog {
-          margin-top: 1px;
-          border-top: 1px solid #efefef;
-          .sup {
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            span {
-              font-size: 0.24rem;
-              color: #666;
-              line-height: 3;
+        .logConetent {
+          .logLi {
+            border: 1px solid #efefef;
+            border-radius: 0.1rem;
+            padding: 0 0.2rem;
+            margin-bottom: 0.15rem;
+            p {
+              padding: 0.2rem 0;
+              font-size: 0.3rem;
+              color: #000;
+              line-height: 1.3;
+              // overflow: hidden;
+              // text-overflow: ellipsis;
+              // white-space: nowrap;
+              // word-break: break-all;
             }
-          }
-          .logConetent {
-            .logLi {
-              border: 1px solid #efefef;
-              border-radius: 0.1rem;
-              padding: 0 0.2rem;
-              margin-bottom: 0.15rem;
+            &.active {
+              box-shadow: 1px 4px #ddd;
               p {
-                padding: .2rem 0;
-                font-size: 0.3rem;
-                color: #000;
-                line-height: 1.3;
-                // overflow: hidden;
-                // text-overflow: ellipsis;
-                // white-space: nowrap;
-                // word-break: break-all;
-              }
-              &.active{
-                box-shadow: 1px 4px #ddd;
-                p{
-                  color: #26A2FF;
-                }
+                color: #26a2ff;
               }
             }
           }
         }
       }
     }
-    .getCourse {
-      position: absolute;
-      bottom: 0.1rem;
-      left: 0.1rem;
-      width: calc(100% - 0.2rem);
-      .getBtn {
-        width: 100%;
-        background-color: #26A2FF;
-        color: #fff;
-        // animation: getFire 3s infinite linear;
-        border-radius: .1rem;
-      }
-    }
   }
-  @keyframes getFire {
-    0% {
-      transform: scale(0.95);
+  .otherCourse {
+    height: calc(100vh - 6.3rem);
+    box-sizing: border-box;
+    position: relative;
+    background-color: #fff;
+    margin-top: 0.2rem;
+    .tit {
+      display: flex;
+      span {
+        font-size: 0.32rem;
+        color: #000;
+        font-weight: 600;
+        line-height: 0.6rem;
+      }
     }
-    100% {
-      transform: scale(1.05);
+    .otherContent {
+      padding: 0 0.2rem;
     }
   }
-  </style>
-  
+}
+</style>