guojy 1 year ago
parent
commit
c4aa06e9b9

+ 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,List , Cell,CellGroup,Toast,Popup,Dialog,RadioGroup,Radio,Notify,Button,Icon,Tab, Tabs} from 'vant'
+import {Tabbar,Empty,TabbarItem,Grid,GridItem,Field,NavBar,Row,Col,List ,Picker , 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(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.use(Button).use(Tabbar).use(TabbarItem).use(Grid).use(GridItem).use(Picker).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') {

+ 6 - 3
src/permission.js

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

+ 16 - 2
src/router/course.js

@@ -35,9 +35,16 @@
       label: '课程详情',
       need_login: true,
     },
+    {
+      path: '/courseAdDetail/:id',
+      name: 'courseAdDetail',
+      component: () => import('@/view/course/user/courseAdDeal'),
+      label: '推广课程详情',
+      need_login: true,
+    },
     {
       path: '/course/adlist',
-      name: 'courseDetail',
+      name: 'courseAdlist',
       component: () => import('@/view/course/user/courseAd'),
       label: '我的推广',
       need_login: true,
@@ -46,7 +53,14 @@
       path: '/course/limitChange',
       name: 'limitChange',
       component: () => import('@/view/course/deal/limitRecord'),
-      label: '名额变动',
+      label: '名额变动明细',
+      need_login: true,
+    },
+    {
+      path: '/course/dealOrder/:id',
+      name: 'dealOrder',
+      component: () => import('@/view/course/deal/dealOrder'),
+      label: '课程名额交易',
       need_login: true,
     },
     {

+ 27 - 44
src/view/course/components/CourseTeam.vue

@@ -1,41 +1,33 @@
 <template>
   <div class="team-page">
-    <div class="team-s">
-      <scroller
-        class="team-scroll"
-        :on-refresh="refresh"
-        :isInitRefresh="false"
-      >
-        <form action="/">
-          <van-search
-            v-model="searchValue"
-            placeholder="请输入搜索团队成员"
-            @search="onSearch"
-          />
-        </form>
-        <div class="team-desc">
-          <p v-if="teamType == 1">团队人数:{{ teamData.count }}人</p>
-          <p v-if="teamType == 2">近{{ days }}天有交易的人</p>
-        </div>
-        <div class="team-list">
-          <div class="team-flex" v-for="(item, index) in teamData.list">
-            <userImage
-              class="about-me__avatar"
-              :img_url="item.img_url"
-              :user_name="item.name"
-              width=".8rem"
-              height=".8rem"
-            ></userImage>
-            <div class="flex-r">
-              <div class="flex-tel">
-                <p>{{ item.name }}</p>
-                <span>手机:{{ item.tel }}</span>
-              </div>
-              <div class="flex-deal" @click="otDealPage(item.id)">交易</div>
-            </div>
+    <form action="/">
+      <van-search
+        v-model="searchValue"
+        placeholder="请输入搜索团队成员"
+        @search="onSearch"
+      />
+    </form>
+    <div class="team-desc">
+      <p v-if="teamType == 1">团队人数:{{ teamData.count }}人</p>
+      <p v-if="teamType == 2">近{{ days }}天有交易的人</p>
+    </div>
+    <div class="team-list">
+      <div class="team-flex" v-for="(item, index) in teamData.list">
+        <userImage
+          class="about-me__avatar"
+          :img_url="item.img_url"
+          :user_name="item.name"
+          width=".8rem"
+          height=".8rem"
+        ></userImage>
+        <div class="flex-r">
+          <div class="flex-tel">
+            <p>{{ item.name }}</p>
+            <span>手机:{{ item.tel }}</span>
           </div>
+          <div class="flex-deal" @click="otDealPage(item.id)">交易</div>
         </div>
-      </scroller>
+      </div>
     </div>
   </div>
 </template>
@@ -46,7 +38,7 @@ export default {
   components: {},
   props: {
     teamType: {
-      type: String,
+      type: Number,
       default: 1
     },
     days: {
@@ -107,12 +99,6 @@ export default {
     },
     //人员搜索
     onSearch() {},
-    //下拉刷新
-    refresh(done) {
-      setTimeout(() => {
-        done();
-      }, 1000);
-    }
   }
 };
 </script>
@@ -123,8 +109,6 @@ export default {
 }
 .team-page {
   background-color: #fff;
-  .team-s {
-    height: calc(100vh - 0.44rem) !important;
     position: relative;
     .team-desc {
       padding: 0 0.32rem 0.25rem;
@@ -173,6 +157,5 @@ export default {
         }
       }
     }
-  }
 }
 </style>

+ 105 - 44
src/view/course/components/courseList.vue

@@ -1,18 +1,24 @@
 <template>
   <div class="listOuer">
-    <div class="listTit" v-if="fixedTitle" :style="{'background': outBg}">
+    <div class="listTit" v-if="fixedTitle" :style="{ background: outBg }">
       <p>{{ fixedTitle }}</p>
-      <span @click="toMoreUrl">查看更多>></span>
+      <span v-if="showNum == 1&&fixedTitle" @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}">
-        <div class="listLiTit" v-if='item.direction'>
+      <div
+        class="listLi"
+        v-for="(item, index) in dataList"
+        :key="index"
+        :class="{ marginGap: listType == 2 }"
+        :style="{ background: outBg }"
+      >
+        <div class="listLiTit" v-if="item.direction">
           <p>
             {{ item.direction == "to" ? "卖出" : "收到"
             }}<span>【{{ item.dealNumber }}】套</span>课程
           </p>
         </div>
-        <div class="listLiTop" @click="toUrl(item.id)">
+        <div class="listLiTop" :class="{listLiTopT:(showNum == 2||showNum == 3)}" @click="toUrl(item.id)">
           <img :src="item.url" />
           <div class="liInfo">
             <div class="courseLiTit">
@@ -24,20 +30,32 @@
             </div>
           </div>
         </div>
-        <div class="courseBtm" v-if="showNum">
+        <div class="courseBtm" v-if="showNum == 1">
           <span>剩余名额:{{ item.surplus }}套</span>
           <span>已卖出:{{ item.sale }}套</span>
         </div>
-        <div v-if="!showNum&&!(item.dealStatus && item.dealStatus !== 4)" style="height: .2rem;"></div>
+        <div class="courseBtm showNumTwo" v-if="showNum == 2">
+          <div class="showNumTwoL">
+            <p>剩余名额</p>
+            <span></span>
+            <span>{{ item.surplus }}套</span>
+          </div>
+          <div class="showNumTwoL">
+            <p>已卖出</p>
+          <span>{{ item.sale }}套</span>
+          </div>
+        </div>
+        <div
+          v-if="showNum == 0 && !(item.dealStatus && item.dealStatus !== 4)"
+          style="height: .2rem;"
+        ></div>
         <div
           class="dealComfirm"
           @click="comfirm(item)"
           v-if="item.dealStatus && item.dealStatus !== 4"
-          :class="item.direction=='to'?'dealTo':''"
+          :class="item.direction == 'to' ? 'dealTo' : ''"
         >
-          <span>{{
-            item.direction == "to" ? "待对方确认" : "确认接收"
-          }}</span>
+          <span>{{ item.direction == "to" ? "待对方确认" : "确认接收" }}</span>
         </div>
       </div>
     </div>
@@ -66,16 +84,21 @@ export default {
     },
     //是否有底部剩余数量
     showNum: {
-      type: Boolean,
-      default: false
+      type: Number,
+      default: 0
     },
     //是否需要展示课程接收按钮(1不需要2需要)
-    listType:{
-      type:Number,
-      default:1
+    listType: {
+      type: Number,
+      default: 1
     },
     //是否展示更多
-    showMore:{
+    showMore: {
+      type: Boolean,
+      default: false
+    },
+    // 是否是推广的课程
+    isNoAd:{
       type:Boolean,
       default:false
     }
@@ -87,27 +110,34 @@ export default {
   mounted() {},
   methods: {
     //查看推广更多
-    toMoreUrl(){
-      this.$router.push(`/course/adlist`)
+    toMoreUrl() {
+      this.$router.push(`/course/adlist`);
     },
     // 查看课程详情
-    toUrl(id){
+    toUrl(id) {
       // console.log(item)
-      this.$router.push(`/courseDetail/${id}`)
+      if(!this.isNoAd){
+        this.$router.push(`/courseAdDetail/${id}`);
+      }else{
+        this.$router.push(`/courseDetail/${id}`);
+      }
+      
     },
     // 接受名额转入
-    comfirm(item){
-      console.log(item)
-      if(item.dealStatus == 3){
-        this.$dialog.confirm({
-         title: '提示',
-         message: '确定要接受名额转入吗?',
-        }).then(() => {
-          this.$emit('dealComfirm',item)
-        }).catch(() => {
-         
-        })
-      }
+    comfirm(item) {
+      console.log(item);
+      this.$router.push(`/course/transfer/${item.older_id}`)
+      // if (item.dealStatus == 3) {
+      //   this.$dialog
+      //     .confirm({
+      //       title: "提示",
+      //       message: "确定要接受名额转入吗?"
+      //     })
+      //     .then(() => {
+      //       this.$emit("dealComfirm", item);
+      //     })
+      //     .catch(() => {});
+      // }
     }
   },
   computed: {}
@@ -123,8 +153,11 @@ export default {
   overflow: hidden;
   padding: 0.1rem 0;
   .listTit {
+    display: flex;
+    align-items: center;
+    padding: 0 .2rem;
+    justify-content: space-between;
     p {
-      padding-left: .2rem;
       font-size: 0.3rem;
       color: #000;
       line-height: 2;
@@ -133,26 +166,30 @@ export default {
       text-overflow: ellipsis;
       white-space: no-warp;
     }
+    span {
+      font-size: 0.23rem;
+      color: #333;
+    }
   }
   .listInner {
     .listLi {
       // padding-top: 0.2rem;
       padding-bottom: 0.2rem;
-      padding: .2rem .15rem 0;
+      padding: 0.2rem 0.15rem 0;
       &:not(:nth-last-child(1)) {
         // padding-bottom: 0.2rem;
         border-bottom: 1px solid #999;
       }
-      &.marginGap{
-        margin-bottom:.2rem;
+      &.marginGap {
+        margin-bottom: 0.2rem;
         border: 0;
-        border-radius: .1rem;
+        border-radius: 0.1rem;
         &:not(:nth-last-child(1)) {
           padding-bottom: 0;
           border-bottom: 0;
         }
       }
-      .listLiTit{
+      .listLiTit {
         font-size: 0.3rem;
         color: #000;
         line-height: 2;
@@ -161,22 +198,27 @@ export default {
           color: #0075fc;
         }
       }
-      .dealComfirm{
+      .dealComfirm {
         text-align: center;
-        span{
+        span {
           font-size: 0.3rem;
           color: rgb(41, 121, 255);
           line-height: 3;
         }
-        &.dealTo{
-          span{
-            color:rgb(253, 209, 67);
+        &.dealTo {
+          span {
+            color: rgb(253, 209, 67);
           }
         }
       }
       .listLiTop {
         display: flex;
         justify-content: space-between;
+        &.listLiTopT{
+          padding: 0.2rem 0.1rem;
+          background: #efefef;
+          border-radius: 0.1rem;
+        }
         & > img {
           width: 3rem;
           height: 2rem;
@@ -226,6 +268,25 @@ export default {
             margin-right: 0.3rem;
           }
         }
+        &.showNumTwo{
+          align-items: center;
+          .showNumTwoL{
+            padding: .1rem 0;
+            flex: 1;
+            text-align: center;
+            p{
+              font-size: .26rem;
+              color: #000;
+              line-height: .5rem;
+            }
+            span{
+              color: #000;
+              font-size: .35rem;
+              font-weight: 600;
+              line-height: 2.3;
+            }
+          }
+        }
       }
     }
   }

+ 91 - 0
src/view/course/deal/dealOrder.vue

@@ -0,0 +1,91 @@
+<template>
+<div>
+    <van-nav-bar
+      title="课程交易"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    ></van-nav-bar>
+    <div class="orderContent">
+        <div class="form">
+            <van-button type="primary"  @click="showPop">{{ this.form.id==0?'交易课程':this.form.name }}</van-button>
+        </div>
+    </div>
+    <van-popup
+      v-model="popupShow"
+      position="bottom"
+      :style="{ height: '30%' }"
+    >
+      <van-picker
+        title="选择课程"
+        show-toolbar
+        :columns="columnsOptions"
+        @confirm="onConfirm"
+      />
+    </van-popup>
+</div>
+</template>
+
+<script>
+export default {
+  name: 'dealOrder',
+  components: {},
+  data () {
+    return {
+        popupShow:false,
+        form:{
+            name:"",
+            id:0,
+            number:0,
+            beizhu:""
+        },
+        columnsOptions: [
+            {
+                value:1,
+                label:"课程精讲1"
+            },
+            {
+                value:2,
+                label:"课程精讲2"
+            },
+            {
+                value:3,
+                label:"课程精讲3"
+            },
+            {
+                value:4,
+                label:"课程精讲4"
+            },
+            {
+                value:5,
+                label:"课程精讲5"
+            },
+        ],
+    }
+  },
+  computed:{
+    columns(){
+
+    }
+  },
+  created () { 
+    
+   },
+  methods: { 
+    onClickLeft(){
+        this.$router.go(-1);
+    },
+    showPop(){
+        this.popupShow = true
+    },
+    onConfirm(e){
+        console.log(e)
+        this.popupShow = false
+    },
+   },
+  computed: {}
+}
+</script>
+<style scoped lang='scss'>
+
+</style>

+ 111 - 12
src/view/course/deal/limitRecord.vue

@@ -1,24 +1,123 @@
 <template>
-<div>
-    limitRecord
-</div>
+  <div class="page">
+    <van-nav-bar
+      :title="title"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    ></van-nav-bar>
+    <div class="recordContent">
+      <scroller>
+        <div class="recordList">
+          <div
+            class="recordLi"
+            v-for="(item, index) in recordList"
+            :key="index"
+          >
+            <div class="flex-name-num">
+              <p>{{ item.title }}</p>
+              <span
+                >{{ item.direction == "to" ? "-" : "+"
+                }}{{ item.dealNumber }}</span
+              >
+            </div>
+            <p>{{ item.beizhu }}</p>
+            <span>{{ item.create_time }}</span>
+          </div>
+        </div>
+      </scroller>
+    </div>
+  </div>
 </template>
 
 <script>
 export default {
-  name: 'limitRecord',
+  name: "limitRecord",
   components: {},
-    props: [],
-  data () {
+  props: [],
+  data() {
     return {
+      title: "名额变动明细",
+
+      recordList: [
+        {
+          id: 3,
+          title: "出吧v发给别的发光飞碟",
+          beizhu: "但是反反复复毒贩夫妇",
+          direction: "to",
+          dealStatus: 4,
+          dealNumber: 60,
+          create_time: "2012-10-09"
+        },
+        {
+          id: 4,
+          title: "出吧v发给别的发光飞碟",
+          beizhu: "但是反反复复毒贩夫妇",
+          direction: "to",
+          dealStatus: 4,
+          dealNumber: 60,
+          create_time: "2012-10-09"
+        }
+      ]
+    };
+  },
+  created() {},
+  methods: {
+    onClickLeft() {
+      this.$router.go(-1);
     }
   },
-  created () { },
-  mounted () { },
-  methods: { },
   computed: {}
-}
+};
 </script>
-<style scoped lang='scss'>
-
+<style scoped lang="scss">
+*{
+  margin: 0;
+  padding: 0;
+}
+img{
+  display: block;
+}
+.page {
+  .recordContent {
+    height: calc(100vh - 0.92rem);
+    position: relative;
+    .recordList {
+      // border-top: 0.02rem solid #999;
+      // border-bottom: 1px solid #999;
+      .recordLi {
+        background: #fff;
+        padding: 0 0.2rem;
+        &:not(:nth-last-child(1)) {
+          border-bottom: 1px solid #999;
+        }
+        .flex-name-num {
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+          & > p {
+            font-size: 0.32rem;
+            color: #000;
+            line-height: 2;
+          }
+          & > span {
+            font-size: 0.32rem;
+            color: #000;
+            line-height: 2;
+          }
+        }
+        & > p {
+          font-size: 0.28rem;
+          color: #666;
+          line-height: 2;
+        }
+        & > span {
+          font-size: 0.28rem;
+          color: #666;
+          line-height: 2;
+        }
+      }
+    }
+  }
+}
 </style>

+ 164 - 14
src/view/course/deal/transfer.vue

@@ -1,24 +1,174 @@
 <template>
-<div>
-    转让
-</div>
+  <div class="page">
+    <van-nav-bar
+      :title="title"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    ></van-nav-bar>
+    <div class="transferTop">
+      <p>{{ transferInfo.number }}套</p>
+      <span>课程名额</span>
+    </div>
+    <div class="transferConetent">
+      <span>{{ transferInfo.name }}</span>
+      <courseList :dataList="courseInfo" :showNum="3"></courseList>
+      <p>备注信息:{{ transferInfo.beizhu }}</p>
+    </div>
+    <div class="transferBtm">
+      <van-button
+        style="padding:0 .5rem;"
+        type="primary"
+        v-if="transferInfo.status == 3"
+        @click="confirm"
+        >确认接收</van-button
+      >
+      <van-button
+        style="padding:0 .5rem;background-color: #999;color:#FFF;"
+        size="large"
+        v-if="transferInfo.status == 2"
+        >等待接收</van-button
+      >
+      <div class="transferTH">
+        <p>如一天内未确认,将自动退还对方。 <span @click="returnLimit()">立即退还</span></p>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import courseList from "../components/courseList.vue";
 export default {
-  name: '',
-  components: {},
-    props: [],
-  data () {
+  name: "courseTransfer",
+  components: { courseList },
+  props: [],
+  data() {
     return {
+      title: "课程交易",
+      transferInfo: {
+        older_id: 1233,
+        name: "课程精讲",
+        number: 15,
+        status: 3,
+        beizhu: "大萨达撒多阿诗丹顿撒阿斯达啊",
+        course_info: {
+          id: 154,
+          name: "课程精讲",
+          thumb: "/static/img/course.f1777cf.jpg",
+          price: 598,
+          sections: ["", "", ""],
+          courseNum: 14
+        }
+      }
+    };
+  },
+  computed: {
+    courseInfo() {
+      let list = [];
+      let data = {
+        id: this.transferInfo.course_info.id,
+        title: this.transferInfo.course_info.name,
+        price: this.transferInfo.course_info.price,
+        courseNum: this.transferInfo.course_info.courseNum,
+        url: this.transferInfo.course_info.thumb
+      };
+      list.push(data);
+      console.log(list);
+      return list;
     }
   },
-  created () { },
-  mounted () { },
-  methods: { },
-  computed: {}
-}
+  created() {},
+  methods: {
+    onClickLeft() {
+      this.$router.go(-1);
+    },
+    returnLimit(){
+      this.$dialog.confirm({
+        title: "提示",
+        message: "确认退还当前转让的名额?"
+      })
+        .then(() => {
+          // on confirm
+          this.$toast('退还名额成功!')
+        })
+        .catch(() => {
+          // on cancel
+        });
+    },
+    confirm() {
+      this.$dialog.confirm({
+        title: "提示",
+        message: "确认接收当前转让的名额?"
+      })
+        .then(() => {
+          // on confirm
+          this.$toast('接收名额成功!')
+        })
+        .catch(() => {
+          // on cancel
+        });
+    }
+  }
+};
 </script>
-<style scoped lang='scss'>
-
+<style scoped lang="scss">
+* {
+  margin: 0;
+  padding: 0;
+}
+img {
+  display: block;
+}
+.page {
+  position: relative;
+  .transferTop {
+    padding: 0.6rem;
+    text-align: center;
+    p {
+      font-size: 0.6rem;
+      color: #000;
+    }
+    span {
+      font-size: 0.3rem;
+      line-height: 2;
+    }
+  }
+  .transferConetent {
+    .listOuer {
+      padding: 0 0 0.1rem;
+      background-color: #fff;
+    }
+    & > span {
+      margin-left: 0.2rem;
+      font-size: 0.26rem;
+      color: #666;
+      line-height: 1.4;
+    }
+    & > p {
+      font-size: 0.28rem;
+      color: #333;
+      line-height: 1.3;
+      padding: 0 0.2rem;
+    }
+  }
+  .transferBtm {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: center;
+    padding-top: 0.7rem;
+    .transferTH {
+      margin-top: 0.7rem;
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      p {
+        font-size: 0.26rem;
+        color: #000;
+      }
+      span {
+        color: #26a2ff;
+      }
+    }
+  }
+}
 </style>

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

@@ -59,7 +59,7 @@
         <div class="myCourseList">
           <courseList
             :dataList="courseClass.proCourse.courseList"
-            showNum
+            :showNum ='1'
             :fixedTitle="courseClass.proCourse.title"
           ></courseList>
         </div>
@@ -67,10 +67,12 @@
           <courseList
             :dataList="courseClass.learnCourse.courseList"
             :fixedTitle="courseClass.learnCourse.title"
+            isNoAd
           ></courseList>
         </div>
       </scroller>
     </div>
+    
   </div>
 </template>
 
@@ -230,6 +232,9 @@ export default {
   margin: 0;
   padding: 0;
 }
+img{
+  display:block;
+}
 .curPage {
   padding: 0.4rem 0 0;
   height: 100%;

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

@@ -14,7 +14,7 @@
       <scroller ref="scroller" :on-infinite="onscrollB" :isInitRefresh="false">
         <courseList
           :dataList="courseMap"
-          showNum
+          :showNum="1"
         ></courseList>
       </scroller>
     </div>

+ 206 - 0
src/view/course/user/courseAdDeal.vue

@@ -0,0 +1,206 @@
+<template>
+  <div class="page">
+    <van-nav-bar
+      :title="title"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    ></van-nav-bar>
+    <div class="courseContent">
+      <scroller ref="scroller">
+        <courseList :dataList="courseInfo" :showNum="2"></courseList>
+        <div class="record">
+          <p>名额变动明细</p>
+          <div class="recordList">
+            <div
+              class="recordLi"
+              v-for="(item, index) in recordList"
+              :key="index"
+            >
+              <div class="flex-name-num">
+                <p>{{ item.title }}</p>
+                <span
+                  >{{ item.direction == "to" ? "-" : "+"
+                  }}{{ item.dealNumber }}</span
+                >
+              </div>
+              <p>{{ item.beizhu }}</p>
+              <span>{{ item.create_time }}</span>
+            </div>
+          </div>
+        </div>
+      </scroller>
+    </div>
+    <div class="courseShare">
+      <span>赠送课程给好友(当前剩余:{{ courseDetail.surplus }}套)</span>
+    </div>
+  </div>
+</template>
+
+<script>
+import courseList from "../components/courseList.vue";
+export default {
+  name: "",
+  components: { courseList },
+  props: [],
+  data() {
+    return {
+      loading: false,
+      finished: false,
+      activeTab: 0,
+      title: "课程详情",
+      courseDetail: {
+        thumb: "/static/img/course.f1777cf.jpg",
+        name: "课程精讲",
+        images: [],
+        section: [],
+        price: 598,
+        courseNum: 11,
+        sale: 21,
+        surplus: 59
+      },
+      recordList:[
+      {
+          id:3,
+          title: "出吧v发给别的发光飞碟",
+          beizhu: "但是反反复复毒贩夫妇",
+          direction: "to",
+          dealStatus: 4,
+          dealNumber: 60,
+          create_time: "2012-10-09"
+        },
+        {
+          id:4,
+          title: "出吧v发给别的发光飞碟",
+          beizhu: "但是反反复复毒贩夫妇",
+          direction: "to",
+          dealStatus: 4,
+          dealNumber: 60,
+          create_time: "2012-10-09"
+        },
+      ]
+    };
+  },
+  computed: {
+    courseInfo() {
+      let list = [];
+      let data = {
+        url: this.courseDetail.thumb,
+        title: this.courseDetail.name,
+        courseNum: this.courseDetail.courseNum,
+        price: this.courseDetail.price,
+        sale: this.courseDetail.sale,
+        surplus: this.courseDetail.surplus
+      };
+      list.push(data);
+      return list;
+    }
+  },
+  created() {
+    this.init();
+  },
+  methods: {
+    // 下拉刷新
+    onScroll(done) {
+      console.log(12333);
+      setTimeout(() => {
+        done();
+      }, 1000);
+      // this.getInitData(done);
+    },
+    toSectionVidio(item) {
+      console.log(item);
+    },
+    onClickLeft() {
+      this.$router.go(-1);
+    },
+    init() {
+      console.log(this.$route.params);
+      this.courseId = this.$route.params.id;
+      console.log(this.courseId);
+    }
+  }
+};
+</script>
+<style scoped lang="scss">
+* {
+  margin: 0;
+  padding: 0;
+}
+img {
+  display: block;
+}
+.page {
+  background-color: #fff;
+  box-sizing: border-box;
+  position: relative;
+  .courseContent {
+    height: calc(100vh - 0.9rem);
+    position: relative;
+    .record {
+      border-top: 1px solid #999;
+      border-bottom: 1px solid #999;
+      & > p {
+        font-size: 0.28rem;
+        line-height: .8rem;
+        color: #000;
+        font-weight: 550;
+        padding: 0 0.2rem;
+      }
+      .recordList {
+        border-top: 0.02rem solid #999;
+        // border-bottom: 1px solid #999;
+        .recordLi {
+          background: #fff;
+          padding: 0 0.2rem;
+          &:not(:nth-last-child(1)) {
+            border-bottom: 1px solid #999;
+          }
+          .flex-name-num {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            & > p {
+              font-size: 0.32rem;
+              color: #000;
+              line-height: 2;
+            }
+            & > span {
+              font-size: 0.32rem;
+              color: #000;
+              line-height: 2;
+            }
+          }
+          & > p {
+            font-size: 0.28rem;
+            color: #666;
+            line-height: 2;
+          }
+          & > span {
+            font-size: 0.28rem;
+            color: #666;
+            line-height: 2;
+          }
+        }
+      }
+    }
+  }
+  .courseShare{
+    width: calc(100% - .6rem);
+    height: .8rem;
+    position: absolute;
+    left: .3rem;
+    bottom: .1rem;
+    border: 1px solid #999;
+    background-color: #FFF;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: .1rem;
+    span{
+      font-size: .26rem;
+      color: #333;
+    }
+  }
+}
+</style>

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

@@ -237,7 +237,7 @@ img {
     width: calc(100% - 0.2rem);
     .getBtn {
       width: 100%;
-      background-color: red;
+      background-color: #26A2FF;
       color: #fff;
       // animation: getFire 3s infinite linear;
       border-radius: .1rem;

+ 18 - 19
src/view/course/user/deal.vue

@@ -79,9 +79,6 @@
         </div>
       </scroller>
     </div>
-    <van-dialog v-model="showDealNum" title="交易课程名额" show-cancel-button>
-      <span>交易</span>
-    </van-dialog>
   </div>
 </template>
 
@@ -96,10 +93,8 @@ Vue.use(Tabs);
 export default {
   name: "deal",
   components: { courseList },
-  props: [],
   data() {
     return {
-      showDealNum: false,
       title: "交易",
       activeList: ["待确认的交易", "已交易的记录"],
       active: 0,
@@ -112,7 +107,7 @@ export default {
       },
       courseList: [
         {
-          id:1,
+          id: 1,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -120,10 +115,11 @@ export default {
           url: "../../../assets/course.jpg",
           direction: "to",
           dealStatus: 2,
-          dealNumber: 60
+          dealNumber: 60,
+          older_id: 154
         },
         {
-          id:2,
+          id: 2,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -131,12 +127,13 @@ export default {
           url: "../../../assets/course.jpg",
           direction: "from",
           dealStatus: 3,
-          dealNumber: 35
+          dealNumber: 35,
+          older_id: 153
         }
       ],
       recordList: [
         {
-          id:3,
+          id: 3,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -145,7 +142,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
-          id:4,
+          id: 4,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -154,7 +151,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
-          id:5,
+          id: 5,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -163,7 +160,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
-          id:6,
+          id: 6,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -172,7 +169,7 @@ export default {
           create_time: "2012-10-09"
         },
         {
-          id:7,
+          id: 7,
           title: "出吧v发给别的发光飞碟",
           beizhu: "但是反反复复毒贩夫妇",
           direction: "to",
@@ -188,7 +185,7 @@ export default {
   },
   methods: {
     dealCourseNum() {
-      this.showDealNum = true;
+      this.$router.push(`/course/dealOrder/${this.$route.params.id}`)
     },
     init() {
       console.log(this.$route);
@@ -205,7 +202,7 @@ export default {
       console.log(e);
       let data = [
         {
-          id:9,
+          id: 9,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -213,10 +210,11 @@ export default {
           url: "../../../assets/course.jpg",
           direction: "from",
           dealStatus: 3,
-          dealNumber: 60
+          dealNumber: 60,
+          older_id: 151
         },
         {
-          id:10,
+          id: 10,
           title:
             "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
           price: 598,
@@ -224,7 +222,8 @@ export default {
           url: "../../../assets/course.jpg",
           direction: "to",
           dealStatus: 2,
-          dealNumber: 35
+          dealNumber: 35,
+          older_id: 1522
         }
       ];
       this.courseList = data;

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

@@ -9,7 +9,14 @@
       @click-left="onClickLeft"
       @click-right="onClickRight"
     ></van-nav-bar>
-    <Team :teamType="type"></Team>
+    <div class="teamContent">
+      <scroller
+        :on-refresh="refresh"
+        :isInitRefresh="false"
+      >
+      <Team :teamType="type"></Team>
+    </scroller>
+    </div>
   </div>
 </template>
 
@@ -23,7 +30,7 @@ export default {
   },
   data() {
     return {
-        type:1
+        type:1,
     };
   },
   computed: {
@@ -35,6 +42,12 @@ export default {
     this.init()
   },
   methods: {
+    //下拉刷新
+    refresh(done) {
+      setTimeout(() => {
+        done();
+      }, 1000);
+    },
     init(){
         // this.type = this.$route.params.id
     },
@@ -49,4 +62,11 @@ export default {
   }
 };
 </script>
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+.team-x{
+  .teamContent{
+    height: calc(100vh - .92rem);
+    position: relative;
+  }
+}
+</style>