chenxiong 3 lat temu
rodzic
commit
da350d3410

+ 8 - 0
src/apis/order.js

@@ -115,6 +115,14 @@ export default {
 			method: 'get',
       params:data,
 		})
+	},
+
+  orderUserAllBusinessList(data) {
+		return request({
+			url: '/order/userAllBusinessList',
+			method: 'get',
+			params: data
+		})
 	}
   
   

BIN
src/assets/person-center.png


BIN
src/assets/study-center.png


+ 2 - 2
src/axios.js

@@ -1,8 +1,8 @@
 import axios from 'axios'
 import store from './store'
 // export const BASE_URL = 'https://api.xyyxt.net'   //release
-// export const BASE_URL = 'http://42.192.164.187:19005'    //test
-export const BASE_URL = 'https://test.xyyxt.net'   //预发布
+export const BASE_URL = 'http://42.192.164.187:19005'    //test
+// export const BASE_URL = 'https://test.xyyxt.net'   //预发布
 // export const BASE_URL = 'http://192.168.1.222:5055'    //dev
 export const tenantId = '867735392558919680'
 

+ 119 - 5
src/pages/person-center/index.vue

@@ -21,6 +21,41 @@
           </div>
         </div>
 
+        <el-tabs class="tabs" :value="activeName" @tab-click="handleClick">
+          <el-tab-pane name="1">
+            <div class="label" slot="label">
+              <img src="@/assets/study-center.png" alt="" />
+              学习中心
+            </div>
+          </el-tab-pane>
+          <el-tab-pane name="2">
+            <div class="label" slot="label">
+              <img src="@/assets/person-center.png" alt="" />
+              个人中心
+            </div>
+          </el-tab-pane>
+        </el-tabs>
+
+        <div class="swiper">
+          <swiper
+            v-if="businessList.length > 0"
+            ref="mySwiper"
+            v-bind:options="swiperOptions"
+          >
+            <swiper-slide
+              class="swiper-item"
+              v-for="(item, index) in businessList"
+              v-bind:key="index"
+              :class="{ active: item == businessItem }"
+              @click.native="swiperClick(item)"
+            >
+              {{ item.educationName }} - {{ item.aliasName }}
+            </swiper-slide>
+          </swiper>
+          <div class="swiper-button-next"></div>
+          <div class="swiper-button-prev"></div>
+        </div>
+
         <div class="section__body clearfix">
           <div class="nav">
             <div class="nav__section">
@@ -108,25 +143,57 @@
 </template>
 
 <script>
+import { swiper, swiperSlide } from "vue-awesome-swiper";
 import Footer from "@/components/footer/index";
 import Header from "@/components/header/index";
 import ToolBar from "@/components/toolbar/index";
-import { mapGetters } from "vuex";
+import "swiper/swiper-bundle.css";
+import { mapGetters, mapMutations } from "vuex";
 export default {
   name: "PersonCenter",
   components: {
+    swiper,
+    swiperSlide,
     Footer,
     Header,
     ToolBar,
   },
   data() {
-    return {};
+    return {
+      activeName: "1",
+      swiperOptions: {
+        freeMode: false,
+        observer: true,
+        slidesPerView: "auto",
+        observeParents: true,
+        speed: 300,
+        autoplayDisableOnInteraction: false,
+        autoplayStopOnLast: false,
+        // 设置点击箭头
+        navigation: {
+          nextEl: ".swiper-button-next",
+          prevEl: ".swiper-button-prev",
+        },
+      },
+    };
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["userInfo", "businessList", "businessItem"]),
   },
   mounted() {},
-  methods: {},
+  methods: {
+    ...mapMutations(["setBusinessItem"]),
+    handleClick(e) {
+      if (this.activeName == e.name) {
+        return;
+      }
+
+      this.activeName = e.name;
+    },
+    swiperClick(item) {
+      this.setBusinessItem(item);
+    },
+  },
 };
 </script>
 
@@ -167,8 +234,55 @@ export default {
       }
     }
 
+    .tabs {
+      /deep/ .el-tabs__item {
+        height: 64px;
+        line-height: 64px;
+      }
+      .label {
+        width: 138px;
+        text-align: center;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+      }
+
+      img {
+        margin-right: 10px;
+      }
+    }
+
+    .swiper {
+      position: relative;
+      padding: 0 40px;
+      .swiper-slide {
+        cursor: pointer;
+        width: auto !important;
+        height: 40px;
+        line-height: 40px;
+        border-radius: 8px;
+        padding: 0 24px;
+        background: #eeeeee;
+        color: #333333;
+        margin-right: 24px;
+        font-size: 16px;
+
+        &.active {
+          color: #fff;
+          background: #3f8dfd;
+        }
+      }
+
+      .swiper-button-prev,
+      .swiper-button-next {
+        &::after {
+          font-size: 30px;
+        }
+      }
+    }
+
     &__body {
-      margin-bottom: 20px;
+      margin: 20px 0;
       .nav {
         float: left;
         width: 138px;

+ 1 - 1
src/pages/person-center/my-course/index.vue

@@ -532,7 +532,7 @@ export default {
   async mounted() {
     this.getUserInfo();
     this.sysTime = this.$tools.timest();
-    await this.orderUserEduList();
+    // await this.orderUserEduList();
     this.courseGoodsList();
   },
   methods: {

+ 12 - 5
src/pages/person-center/my-examination/index.vue

@@ -291,8 +291,12 @@
 </template>
 
 <script>
+import { mapGetters, mapActions } from "vuex";
 export default {
   name: "MyExamination",
+  computed: {
+    ...mapGetters(["sysTime"]),
+  },
   data() {
     return {
       subscribeStatus: 1,
@@ -346,6 +350,7 @@ export default {
     this.getCount();
   },
   methods: {
+    ...mapActions(["setSystemTime"]),
     getCount() {
       this.$request
         .getApplylist({
@@ -451,15 +456,17 @@ export default {
         .then((res) => {
           this.listData = res.rows;
           this.total = res.total;
+          this.setSystemTime();
         });
     },
     isShowFun(item) {
-      var timestamp = parseInt(new Date().getTime() / 1000);
+      // var timestamp = parseInt(new Date().getTime() / 1000);
       var newDataAge = parseInt(
-        new Date(new Date().toLocaleDateString()).getTime() / 1000
+        new Date(new Date(this.sysTime * 1000).toLocaleDateString()).getTime() /
+          1000
       );
       //报名开放时间”过了“结束时间点”,【取消预约】按钮隐藏
-      if (item.applyEndTime <= timestamp) {
+      if (item.applyEndTime <= this.sysTime) {
         console.log(999);
         return false;
       } else {
@@ -478,8 +485,8 @@ export default {
           return true;
         } else if (item.applySiteExamTime == newDataAge) {
           console.log(5);
-          var hours = new Date().getHours();
-          var mins = new Date().getMinutes();
+          var hours = new Date(this.sysTime * 1000).getHours();
+          var mins = new Date(this.sysTime * 1000).getMinutes();
           var arrays = item.applySiteStartTime.split(":").map(Number);
           if (arrays[0] > hours) {
             return true;

+ 1 - 0
src/router/index.js

@@ -651,6 +651,7 @@ router.beforeEach((to,from,next) => {
       if(!store.state.userInfo) {
         //获取用户信息
         store.dispatch('getUserInfo')
+        store.dispatch('getbusinessList')
       }
 
       // //题库页面要检测是否需要锁定

+ 29 - 0
src/store/index.js

@@ -1,6 +1,7 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
 import login from '@/apis/login'
+import order from '@/apis/order'
 import user from '@/apis/user'
 import common from '@/apis/common'
 import tools from '@/common/tools'
@@ -24,9 +25,13 @@ export default new Vuex.Store({
     footer: [],//页尾配置
     links: null,//友情链接
     sysTime:0,
+    businessItem:null,
+    businessList:[],
   },
 
   getters: {
+    businessList:state => state.businessList,
+    businessItem: state => state.businessItem,
     sysTime: state =>  state.sysTime,
     userInfo: state => state.userInfo,
     token: state => state.token,
@@ -42,6 +47,13 @@ export default new Vuex.Store({
 
   //操作数据,唯一的通道是mutations
   mutations: {
+    setBusinessList(state,list) {
+      state.businessList = list
+    },
+    setBusinessItem(state,item) {
+      console.log(item)
+      state.businessItem = item
+    },
     commonSystemTime(state,time) {
 			state.sysTime = time;
 		},
@@ -106,6 +118,23 @@ export default new Vuex.Store({
 				})
 			})
 		},
+
+    getbusinessList({
+      commit
+    }) {
+      return new Promise(resolve => {
+        order.orderUserAllBusinessList().then( res => {
+          if(res.code == 200) {
+            commit('setBusinessList', res.rows)
+            if(res.rows.length) {
+              commit('setBusinessItem',res.rows[0])
+            }
+						resolve()
+          }
+        })
+      })
+      
+    },
     /**
      * 
      * @param {*} context