guojy 1 year ago
parent
commit
33adec39e6

+ 2 - 2
src/main.js

@@ -23,7 +23,7 @@ import axiosUser from '@/utils/axiosUser'
 import axiosKc from '@/utils/axiosKc'
 import 'shepherd.js/dist/css/shepherd.css';
 
-import {Tabbar,Empty,TabbarItem,Grid,GridItem,Field,NavBar,Row,Col, Cell,CellGroup,Toast,Popup,Dialog,RadioGroup,Radio,Notify,Button,Icon} from 'vant'
+import {Tabbar,Empty,TabbarItem,Grid,GridItem,Field,NavBar,Row,Col,List , Cell,CellGroup,Toast,Popup,Dialog,RadioGroup,Radio,Notify,Button,Icon,Tab, Tabs} from 'vant'
 import {getIsIdentity,supremeAuthority, getIsWx,getTypes, getTypesName,getUserData, getEmployeeMap,getCache,setCache,removeCache,returnDeptName,getEmployeeMapItem,returnFh } from '@/utils/auth'
 Vue.prototype.$echarts = echarts
 Vue.prototype.$moment = moment
@@ -55,7 +55,7 @@ Vue.use(VueScroller)
 Vue.component('icon', icon)
 Vue.component('noData', noData)
 Vue.component('userImage', userImage)
-Vue.use(Button).use(Tabbar).use(TabbarItem).use(Grid).use(GridItem).use(Field).use(NavBar).use(Row).use(Col).use(Cell).use(CellGroup).use(Toast).use(Popup).use(Dialog).use(RadioGroup).use(Radio).use(Icon).use(Notify).use(Empty)
+Vue.use(Button).use(Tabbar).use(TabbarItem).use(Grid).use(GridItem).use(Field).use(List).use(Tabs).use(Tab).use(NavBar).use(Row).use(Col).use(Cell).use(CellGroup).use(Toast).use(Popup).use(Dialog).use(RadioGroup).use(Radio).use(Icon).use(Notify).use(Empty)
 
 Vue.prototype.$route_back = function(setp) {
   if (typeof(setp) == 'undefined') {

+ 2 - 2
src/permission.js

@@ -3,9 +3,9 @@ import router from './router'
 import store from './store'
 import { getToken, getWxToken } from '@/utils/auth'
 //课程免登录名单
-const whiteList = ['/courseHome', '/courseDeal/', '/courseTeam/', '/course/courseManage', '/course/courseCreate', '/course/dealerManage']
+const whiteList = ['/courseHome', '/courseDeal', '/courseTeam','/course/adlist','/course/limitChange', '/course/courseManage', '/course/courseCreate', '/course/dealerManage']
 function filterWhite(path) {
-  return (path.includes('/courseTeam/') || path.includes('/courseDeal/') || path.includes('/courseDetail/'))
+  return (path.includes('/courseDeal/') || path.includes('/courseDetail/') || path.includes('/course/limitChange/') || path.includes('/course/transfer/') || path.includes('/course/video/'))
 }
 router.beforeEach((to, from, next) => {
   if (Vue.$httpRequestList.length > 0) { //强行中断时才向下执行

+ 36 - 1
src/router/course.js

@@ -15,7 +15,7 @@
       need_login: true,
     },
     {
-      path: '/courseTeam/:id',
+      path: '/courseTeam',
       name: 'courseHome',
       component: () => import('@/view/course/user/team'),
       label: '我的团队',
@@ -35,5 +35,40 @@
       label: '课程详情',
       need_login: true,
     },
+    {
+      path: '/course/adlist',
+      name: 'courseDetail',
+      component: () => import('@/view/course/user/courseAd'),
+      label: '我的推广',
+      need_login: true,
+    },
+    {
+      path: '/course/limitChange',
+      name: 'limitChange',
+      component: () => import('@/view/course/deal/limitRecord'),
+      label: '名额变动',
+      need_login: true,
+    },
+    {
+      path: '/course/limitChange/:id',
+      name: 'assignLimitChange',
+      component: () => import('@/view/course/deal/courseLimitRecord'),
+      label: '课程名额变动',
+      need_login: true,
+    },
+    {
+      path: '/course/transfer/:id',
+      name: 'transfer',
+      component: () => import('@/view/course/deal/transfer'),
+      label: '课程名额转让',
+      need_login: true,
+    },
+    {
+      path: '/course/video/:id',
+      name: 'courseVideo',
+      component: () => import('@/view/course/deal/transfer'),
+      label: '课程播放',
+      need_login: true,
+    },
 ]
 export default routes

+ 12 - 0
src/view/course/components/courseList.vue

@@ -2,6 +2,7 @@
   <div class="listOuer">
     <div class="listTit" v-if="fixedTitle" :style="{'background': outBg}">
       <p>{{ fixedTitle }}</p>
+      <span @click="toMoreUrl">查看更多>></span>
     </div>
     <div class="listInner">
       <div class="listLi" v-for="(item, index) in dataList" :key="index" :class="{'marginGap':listType==2}" :style="{'background': outBg}">
@@ -72,6 +73,11 @@ export default {
     listType:{
       type:Number,
       default:1
+    },
+    //是否展示更多
+    showMore:{
+      type:Boolean,
+      default:false
     }
   },
   data() {
@@ -80,10 +86,16 @@ export default {
   created() {},
   mounted() {},
   methods: {
+    //查看推广更多
+    toMoreUrl(){
+      this.$router.push(`/course/adlist`)
+    },
+    // 查看课程详情
     toUrl(id){
       // console.log(item)
       this.$router.push(`/courseDetail/${id}`)
     },
+    // 接受名额转入
     comfirm(item){
       console.log(item)
       if(item.dealStatus == 3){

+ 24 - 0
src/view/course/deal/courseLimitRecord.vue

@@ -0,0 +1,24 @@
+<template>
+<div>
+    {{ $route.params.id }}
+</div>
+</template>
+
+<script>
+export default {
+  name: 'courseLimitRecord',
+  components: {},
+    props: [],
+  data () {
+    return {
+    }
+  },
+  created () { },
+  mounted () { },
+  methods: { },
+  computed: {}
+}
+</script>
+<style scoped lang='scss'>
+
+</style>

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

@@ -0,0 +1,24 @@
+<template>
+<div>
+    limitRecord
+</div>
+</template>
+
+<script>
+export default {
+  name: 'limitRecord',
+  components: {},
+    props: [],
+  data () {
+    return {
+    }
+  },
+  created () { },
+  mounted () { },
+  methods: { },
+  computed: {}
+}
+</script>
+<style scoped lang='scss'>
+
+</style>

+ 24 - 0
src/view/course/deal/transfer.vue

@@ -0,0 +1,24 @@
+<template>
+<div>
+    转让
+</div>
+</template>
+
+<script>
+export default {
+  name: '',
+  components: {},
+    props: [],
+  data () {
+    return {
+    }
+  },
+  created () { },
+  mounted () { },
+  methods: { },
+  computed: {}
+}
+</script>
+<style scoped lang='scss'>
+
+</style>

+ 2 - 9
src/view/course/home.vue

@@ -40,7 +40,7 @@
     </div>
     <div class="user_tabs">
       <div class="tabs_content">
-        <div class="tabsLi" @click="toUrl('/courseTeam/1')">
+        <div class="tabsLi" @click="toUrl('/courseTeam')">
           <van-icon name="friends-o" />
           <span>我的团队</span>
         </div>
@@ -69,13 +69,6 @@
             :fixedTitle="courseClass.learnCourse.title"
           ></courseList>
         </div>
-        <div class="myCourseList">
-          <courseList
-            :dataList="courseClass.learnCourse.courseList"
-            :fixedTitle="courseClass.learnCourse.title"
-          ></courseList>
-        </div>
-        <div style="height: .01rem;"></div>
       </scroller>
     </div>
   </div>
@@ -311,7 +304,7 @@ export default {
     }
   }
   .courScroll {
-    height: calc(100vh - 2.4rem) !important;
+    height: calc(100vh - 2.75rem) !important;
     position: relative;
     .cScroll {
       height: 100%;

+ 94 - 0
src/view/course/user/courseAd.vue

@@ -0,0 +1,94 @@
+<template>
+  <div>
+    <van-nav-bar
+      :title="title"
+      right-text="名额变动"
+      @click-left="onClickLeft"
+      @click-right="onClickRight"
+    >
+      <template #left>
+        <van-icon name="wap-home-o" size="22" />
+      </template>
+    </van-nav-bar>
+    <div class="listContent">
+      <scroller ref="scroller" :on-infinite="onscrollB" :isInitRefresh="false">
+        <courseList
+          :dataList="courseMap"
+          showNum
+        ></courseList>
+      </scroller>
+    </div>
+  </div>
+</template>
+
+<script>
+import courseList from "../components/courseList.vue";
+export default {
+  name: "",
+  components: { courseList },
+  props: [],
+  data() {
+    return {
+      title: "我的推广",
+      courseMap: [
+        {
+          id: 123,
+          surplus: 120,
+          sale: 341,
+          title:
+            "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+          price: 598,
+          courseNum: 14,
+          url: "/static/img/course.f1777cf.jpg"
+        },
+        {
+          id: 124,
+          surplus: 120,
+          sale: 341,
+          title:
+            "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+          price: 598,
+          courseNum: 14,
+          url: "/static/img/course.f1777cf.jpg"
+        },
+        {
+          id: 125,
+          surplus: 120,
+          sale: 341,
+          title:
+            "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+          price: 598,
+          courseNum: 14,
+          url: "/static/img/course.f1777cf.jpg"
+        }
+      ]
+    };
+  },
+  created() {},
+  methods: {
+    onscrollB() {
+      console.log("触底了");
+    },
+    onClickLeft() {
+      this.$router.push("/courseHome");
+    },
+    onClickRight() {
+      this.$router.push(`/course/limitChange`);
+    }
+  },
+  computed: {}
+};
+</script>
+<style scoped lang="scss">
+*{
+    margin: 0;
+    padding: 0;
+}
+img{
+    display: block;
+}
+.listContent{
+    height: calc(100vh - .9rem);
+    position: relative;
+}
+</style>

+ 233 - 22
src/view/course/user/courseDeal.vue

@@ -1,44 +1,255 @@
 <template>
-<div class="page">
-  <van-nav-bar
+  <div class="page">
+    <van-nav-bar
       :title="title"
       left-text="返回"
       left-arrow
       @click-left="onClickLeft"
     ></van-nav-bar>
-    pageDetail
-</div>
+    <div class="courseContent">
+      <div class="previewImg">
+        <img :src="courseDetail.thumb" />
+      </div>
+      <div class="title">
+        <p>{{ courseDetail.name }}</p>
+      </div>
+      <div class="tabs">
+        <scroller ref="scroller" :isInitRefresh="false" :on-infinite="onScroll">
+          <van-tabs v-model="activeTab" swipeable>
+            <van-tab title="课程目录">
+              <div class="catelog">
+                <div class="sup">
+                  <span>{{ courseDetail.section.length }}节课</span>
+                </div>
+                <div class="logConetent">
+                  <div
+                    class="logLi"
+                    v-for="(item, index) in courseDetail.section"
+                    :key="index"
+                    @click="toSectionVidio(item)"
+                  >
+                    <p>{{ index + 1 }}、{{ item.name }}</p>
+                  </div>
+                </div>
+              </div>
+            </van-tab>
+            <van-tab title="课程介绍">
+              <div class="images">
+                <div
+                  class="descImage"
+                  v-for="(item, index) in courseDetail.images"
+                  :key="index"
+                >
+                  <img :src="item" />
+                </div>
+              </div>
+            </van-tab>
+          </van-tabs>
+        </scroller>
+      </div>
+      <div class="getCourse">
+        <van-button icon="fire-o" square class="getBtn">点击领取课程名额</van-button>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
 export default {
-  name: '',
+  name: "",
   components: {},
-    props: [],
-  data () {
+  props: [],
+  data() {
     return {
-      title:"课程详情",
-      
-    }
+      loading: false,
+      finished: false,
+      activeTab: 0,
+      title: "课程详情",
+      courseDetail: {
+        thumb: "/static/img/course.f1777cf.jpg",
+        name: "课程精讲",
+        images: [
+          "/static/img/course.f1777cf.jpg",
+          "/static/img/course.f1777cf.jpg",
+          "/static/img/course.f1777cf.jpg",
+          "/static/img/course.f1777cf.jpg"
+        ],
+        section: [
+          {
+            name: "课程精讲001",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲002",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲003",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲004",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲001",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲002",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲003",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲004",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲001",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲002",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲003",
+            link: "https://baidu.com"
+          },
+          {
+            name: "课程精讲004",
+            link: "https://baidu.com"
+          }
+        ]
+      }
+    };
   },
-  created () { 
-    this.init()
+  created() {
+    this.init();
   },
   methods: {
-    onClickLeft(){
-      this.$router.go(-1)
+    // 下拉刷新
+    onScroll(done) {
+      console.log(12333);
+      setTimeout(() => {
+        done();
+      }, 1000);
+      // this.getInitData(done);
+    },
+    toSectionVidio(item) {
+      console.log(item);
     },
-    init(){
-      this.courseId = this.$route.params.id
-      console.log(courseId)
+    onClickLeft() {
+      this.$router.go(-1);
     },
+    init() {
+      console.log(this.$route.params);
+      this.courseId = this.$route.params.id;
+      console.log(this.courseId);
+    }
   },
   computed: {}
-}
+};
 </script>
-<style scoped lang='scss'>
-    .page{
-        padding: 0 .2rem;
-        background-color: #FFF;
+<style scoped lang="scss">
+* {
+  margin: 0;
+  padding: 0;
+}
+img {
+  display: block;
+}
+.page {
+  background-color: #fff;
+  box-sizing: border-box;
+  .courseContent {
+    padding: 0 0.2rem;
+    margin-top: 0.3rem;
+    .previewImg {
+      border-radius: 0.1rem;
+      overflow: hidden;
+      img {
+        width: 100%;
+        height: 4rem;
+      }
     }
+    .title {
+      p {
+        font-size: 0.32rem;
+        font-weight: 600;
+        color: #000;
+        line-height: 1rem;
+        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%;
+        }
+      }
+      .catelog {
+        margin-top: 1px;
+        border-top: 1px solid #ccc;
+        .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 #ccc;
+            border-radius: 0.1rem;
+            padding: 0 0.2rem;
+            margin-bottom: 0.15rem;
+            p {
+              font-size: 0.3rem;
+              color: #000;
+              line-height: 3;
+              overflow: hidden;
+              text-overflow: ellipsis;
+              white-space: nowrap;
+              word-break: break-all;
+            }
+          }
+        }
+      }
+    }
+  }
+  .getCourse {
+    position: absolute;
+    bottom: 0.1rem;
+    left: 0.1rem;
+    width: calc(100% - 0.2rem);
+    .getBtn {
+      width: 100%;
+      background-color: red;
+      color: #fff;
+      // animation: getFire 3s infinite linear;
+      border-radius: .1rem;
+    }
+  }
+}
+@keyframes getFire {
+  0% {
+    transform: scale(0.95);
+  }
+  100% {
+    transform: scale(1.05);
+  }
+}
 </style>

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

@@ -112,6 +112,7 @@ export default {
       },
       courseList: [
         {
+          id:1,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -122,6 +123,7 @@ export default {
           dealNumber: 60
         },
         {
+          id:2,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -134,6 +136,7 @@ export default {
       ],
       recordList: [
         {
+          id:3,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -142,6 +145,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
+          id:4,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -150,6 +154,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
+          id:5,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -158,6 +163,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
+          id:6,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -166,6 +172,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
+          id:7,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -198,6 +205,7 @@ export default {
       console.log(e);
       let data = [
         {
+          id:9,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -208,6 +216,7 @@ export default {
           dealNumber: 60
         },
         {
+          id:10,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,

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

@@ -23,7 +23,7 @@ export default {
   },
   data() {
     return {
-        type:null
+        type:1
     };
   },
   computed: {
@@ -36,7 +36,7 @@ export default {
   },
   methods: {
     init(){
-        this.type = this.$route.params.id
+        // this.type = this.$route.params.id
     },
      //导航左侧返回
      onClickLeft() {
@@ -44,9 +44,7 @@ export default {
     },
     //导航右侧30天交易
     onClickRight() {
-        this.$router.push({
-            path:'/courseTeam/2'
-        });
+        this.type = 0
     },
   }
 };

+ 24 - 0
src/view/course/video/video.vue

@@ -0,0 +1,24 @@
+<template>
+<div>
+    video
+</div>
+</template>
+
+<script>
+export default {
+  name: '',
+  components: {},
+    props: [],
+  data () {
+    return {
+    }
+  },
+  created () { },
+  mounted () { },
+  methods: { },
+  computed: {}
+}
+</script>
+<style scoped lang='scss'>
+
+</style>