Преглед изворни кода

course_setting&&courese_home_page

guojy пре 1 година
родитељ
комит
76d5137b98

+ 23 - 0
src/assets/iconfont.css

@@ -0,0 +1,23 @@
+@font-face {
+    font-family: "courseIcon"; /* Project id 4478034 */
+    src: url('//at.alicdn.com/t/c/font_4478034_i2raqw7pnb8.woff2?t=1711094974111') format('woff2'),
+         url('//at.alicdn.com/t/c/font_4478034_i2raqw7pnb8.woff?t=1711094974111') format('woff'),
+         url('//at.alicdn.com/t/c/font_4478034_i2raqw7pnb8.ttf?t=1711094974111') format('truetype');
+  }
+  
+  .courseIcon {
+    font-family: "courseIcon" !important;
+    font-size: 16px;
+    font-style: normal;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+  }
+  
+  .icon-shenfenzheng:before {
+    content: "\e61b";
+  }
+  
+  .icon-erweima:before {
+    content: "\e7ad";
+  }
+  

+ 2 - 0
src/main.js

@@ -20,6 +20,7 @@ import * as socketApiTow from '@/api/websocketTow'
 import axios from '@/utils/axios'
 import axiosKq from '@/utils/axiosKq'
 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'
@@ -38,6 +39,7 @@ Vue.prototype.$supremeAuthority = supremeAuthority
 Vue.prototype.$axios = axios
 Vue.prototype.$axiosUser = axiosUser
 Vue.prototype.$axiosKq = axiosKq
+Vue.prototype.$axiosKc = axiosKc
 Vue.prototype.$removeCache = removeCache
 Vue.prototype.$returnDeptName = returnDeptName
 Vue.prototype.$socketApi = socketApi   //长连接

+ 35 - 19
src/permission.js

@@ -1,19 +1,34 @@
 import Vue from 'vue'
 import router from './router'
 import store from './store'
-import {getToken} from '@/utils/auth'
+import { getToken, getWxToken } from '@/utils/auth'
 router.beforeEach((to, from, next) => {
   if (Vue.$httpRequestList.length > 0) { //强行中断时才向下执行
     Vue.$httpRequestList.forEach(item => {
       item('interrupt'); //给个标志,中断请求
     })
   }
-  if (getToken()) {
-    if (to.path == '/login'||to.path == '/') { // 在免登录白名单,直接进入
-      next({ name: 'home'})
+  if (to.path == '/courseHome') {
+    console.log(1)
+    next()
+    // if (getWxToken()) {
+    //   console.log(2)
+    //   next()
+    // } else {
+    //   console.log(3)
+    //   window.document.title = '用户登录'
+    //   next({ path: '/courseLogin', query: to.query })
+    // }
+  } else if (to.path == '/courseLogin') {
+    console.log(4)
+    next()
+  }else if (getToken()) {
+    console.log(5)
+    if (to.path == '/login' || to.path == '/') { // 在免登录白名单,直接进入
+      next({ name: 'home' })
       return false
     }
-    if (typeof(window.$routes_map[to.name]) != 'undefined') {
+    if (typeof (window.$routes_map[to.name]) != 'undefined') {
       window.document.title = window.$routes_map[to.name].label
     } else {
       window.document.title = '管理中心'
@@ -22,15 +37,16 @@ router.beforeEach((to, from, next) => {
     init(next);
     // next();
   } else {
-      if (!window.$routes_map[to.name].need_login) { // 在免登录白名单,直接进入
-        if (typeof(window.$routes_map[to.name]) != 'undefined') {
-          window.document.title = window.$routes_map[to.name].label
-        }
-        next()
-      } else {
-        window.document.title = '用户登录'
-        next('/login')
+    console.log(6)
+    if (!window.$routes_map[to.name].need_login) { // 在免登录白名单,直接进入
+      if (typeof (window.$routes_map[to.name]) != 'undefined') {
+        window.document.title = window.$routes_map[to.name].label
       }
+      next()
+    } else {
+      window.document.title = '用户登录'
+      next('/login')
+    }
   }
 })
 /* 路由异常错误处理,尝试解析一个异步组件时发生错误,重新渲染目标页面 */
@@ -45,17 +61,17 @@ router.onError((error) => {
 function init(next) {
   store.dispatch('get_user_info').then((res) => { //获取用户信息
     if (router.history.current.name == 'login') {
-      router.push({name: 'home'})
+      router.push({ name: 'home' })
       return false
     }
     next()
-  }).catch(()=>{
+  }).catch(() => {
     next()
   })
-  store.dispatch('get_point_types').then(res => {}); //获取积分类型
+  store.dispatch('get_point_types').then(res => { }); //获取积分类型
 
   // 数据更新,每两分钟更新一次
-  store.dispatch('get_employee_map').then((res) => {}); //获取人员列表
-  store.dispatch('get_account_info').then((res) => {}); //获取公司信息
-  store.dispatch('get_site_info').then((res) => {})//公司信息
+  store.dispatch('get_employee_map').then((res) => { }); //获取人员列表
+  store.dispatch('get_account_info').then((res) => { }); //获取公司信息
+  store.dispatch('get_site_info').then((res) => { })//公司信息
 }

+ 26 - 0
src/utils/auth.js

@@ -1,4 +1,5 @@
 const TokenKey = 'Admin-Token'
+const WxTokenKey = 'Wx-Token'
 import store from '@/store';
 import axios from '@/utils/axios'
 import { JSEncrypt } from 'jsencrypt'
@@ -353,3 +354,28 @@ export function removeToken() {
     return localStorage.removeItem(TokenKey)
   }
 }
+
+export function getWxToken() {
+  if (window.plus) {
+    return plus.storage.getItem(WxTokenKey)
+  } else {
+    return localStorage.getItem(WxTokenKey)
+  }
+}
+export function setWxToken(token) {
+  if (window.plus) {
+    return plus.storage.setItem(WxTokenKey, token)
+  } else {
+    return localStorage.setItem(WxTokenKey, token)
+  }
+}
+export function removeWxToken() {
+  if (window.plus) {
+    plus.storage.removeItem('wx_user_info')
+    return plus.storage.removeItem(WxTokenKey)
+  } else {
+    localStorage.removeItem('wx_user_info')
+    return localStorage.removeItem(WxTokenKey)
+  }
+}
+

+ 165 - 0
src/utils/axiosKc.js

@@ -0,0 +1,165 @@
+import router from '@/router'
+import axios from 'axios'
+import qs from 'qs'
+import Vue from 'vue'
+import {getWxToken,setWxToken,openError} from '@/utils/auth'
+import {Dialog,Notify} from 'vant'
+Vue.use(Dialog).use(Notify)
+let pl = 'a'
+if (window.plus) {
+  if (navigator.userAgent.indexOf('Android') > 0) {
+    pl = 'a'
+  } else {
+    pl = 'i'
+  }
+} else {
+  pl = 'b'
+}
+let url = '';
+const request = axios.create({
+  baseURL: process.env.BASE_API, //
+  // baseURL: 'https://oa.g107.com',
+  timeout: 20000,
+  headers: {
+    'Content-Type': 'application/x-www-form-urlencoded',
+    'pl': pl
+  },
+  transformRequest: [function(data) {
+    return qs.stringify(data)
+  }]
+})
+
+request.interceptors.request.use(
+    config => {
+      url = config.url;
+      if (getWxToken()) {
+        config.headers['A-Token'] = getWxToken()
+      }
+      return config
+    },
+    error => {
+      Promise.reject(error)
+    }
+  )
+
+request.interceptors.response.use(
+  response => {
+    if (response.data.code === 1) {
+      if (response.data.refresh_token) {
+        if (response.data.refresh_token != getWxToken()) {
+          setWxToken(response.data.refresh_token)
+        }
+      }
+      return response
+    } else 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: 'login'
+        })
+      });
+    } else if (response.data.code === 0) {
+      Notify({
+        message: response.data.msg,
+        color: '#ad0000',
+        background: '#d1d1d1',
+      });
+      return Promise.reject('error')
+    } else if (response.data.code === 2001) {
+      Notify({
+        message: response.data.msg,
+        color: '#ad0000',
+        background: '#ffe1e1',
+      });
+      return Promise.reject('error')
+    } else if (response.data.code === 999) {
+      Notify({
+        message: response.data.msg,
+        color: '#ad0000',
+        background: '#ffe1e1',
+      });
+      return Promise.reject('error')
+    } else if (response.data.code === 3000) {
+      Notify({
+        message: '服务暂时不可用,请稍后重试,或联系客服',
+        color: '#ad0000',
+        background: '#ffe1e1',
+      });
+      return Promise.reject('error')
+    } else if (response.data.code === 4444) { //系统过期
+      Notify({
+        message: response.data.msg,
+        color: '#ad0000',
+        background: '#ffe1e1',
+      });
+      return Promise.reject('error')
+    } else {
+      return response
+    }
+  },
+  error => {
+    if (error.message == 'interrupt') {
+      return Promise.reject(error.message)
+    }
+    return Promise.reject(error)
+  }
+)
+
+// 接口再次封装
+var CancelToken = axios.CancelToken;
+Vue.$httpRequestList = [];
+//isToken  是微信的TOKEN  用来绑定
+export default (type, url, data, heaStr, isToken) => {
+  var Accept,Token = localStorage.getItem('a-token-temp');
+  switch (heaStr) {
+    case 'v2':
+      Accept = 'application/vnd.test.v2+json'
+      break;
+    case 'v3':
+      Accept = 'application/vnd.test.v3+json'
+      break;
+  }
+  if (isToken) {
+    Token = isToken
+  }
+  return new Promise((resolve, reject) => { //封装ajax
+    var aa = {
+      method: type,
+      url: url,
+      headers: {
+        'Accept': Accept,
+        'A-Token': Token
+      },
+      cancelToken: new CancelToken(c => { //强行中断请求要用到的
+        Vue.$httpRequestList.push(c);
+      })
+    }
+    var json = (type == 'get') ? Object.assign(aa, {
+      params: data
+    }) : Object.assign(aa, {
+      data: data
+    });
+    var ajax = request(json).then(res => {
+      resolve(res);
+    }).catch(error => { //中断请求和请求出错的处理
+      if (error == "interrupt") {
+        return;
+      } else {
+        reject(error);
+      }
+    })
+    return ajax;
+  })
+};

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

@@ -0,0 +1,142 @@
+<template>
+    <div class="listOuer" :style="{ background: outBg }">
+      <div class="listTit" v-if="title">
+        <p>{{ title }}</p>
+      </div>
+      <div class="listInner">
+        <div class="listLi" v-for="(item, index) in dataList" :key="index">
+          <div class="listLiTop">
+            <img :src="item.url" />
+            <div class="liInfo">
+              <div class="courseLiTit">
+                <p>{{ item.title }}</p>
+              </div>
+              <div class="courseLiDesc">
+                <span>共{{ item.courseNum }}节</span>
+                <span style="color: #F76146;">¥{{ item.price }}</span>
+              </div>
+            </div>
+          </div>
+          <div class="courseBtm" v-if="showNum">
+            <span>剩余名额:{{ item.surplus }}套</span>
+            <span>已卖出:{{ item.sale }}套</span>
+          </div>
+        </div>
+      </div>
+    </div>
+</template>
+
+<script>
+export default {
+  name: "courseList",
+  components: {},
+  props: {
+    dataList: {
+      type: Array,
+      default: []
+    },
+    outBg: {
+      type: String,
+      default: "#FFF"
+    },
+    title: {
+      type: String,
+      default: ""
+    },
+    showNum: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {};
+  },
+  created() {},
+  mounted() {},
+  methods: {},
+  computed: {}
+};
+</script>
+<style scoped lang="scss">
+* {
+  margin: 0;
+  padding: 0;
+}
+.listOuer {
+  border-radius: 0.1rem;
+  padding: 0.1rem 0.15rem;
+  .listTit {
+    p {
+      font-size: 0.3rem;
+      color: #000;
+      line-height: 2;
+      font-weight: 600;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: no-warp;
+    }
+  }
+  .listInner {
+    .listLi {
+      padding-top: 0.2rem;
+      &:not(:nth-last-child(1)) {
+        padding-bottom: 0.2rem;
+        border-bottom: 1px solid #999;
+      }
+      .listLiTop {
+        display: flex;
+        justify-content: space-between;
+        & > img {
+          width: 3rem;
+          height: 2rem;
+          display: block;
+          border-radius: 0.1rem;
+        }
+        .liInfo {
+          flex: 1;
+          margin-left: 0.15rem;
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          .courseLiTit {
+            overflow: hidden;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+            -webkit-line-clamp: 2;
+            -webkit-box-orient: vertical;
+            p{
+                font-size: .3rem;
+                color:#333;
+                line-height: 1.5;
+                font-weight: 600;
+            }
+          }
+          .courseLiDesc {
+            display: flex;
+            justify-content: space-between;
+            span{
+                font-size: .28rem;
+                color:#333;
+                line-height: 1.3;
+                &:nth-child(1){
+                    margin-right: .3rem;
+                }
+            }
+          }
+        }
+      }
+      .courseBtm {
+        display: flex;
+        span{
+            font-size: .28rem;
+            color:#0075FC;
+            line-height: 2;
+            &:nth-child(1){
+                margin-right: .3rem;
+            }
+        }
+      }
+    }
+  }
+}
+</style>

+ 213 - 40
src/view/course/home.vue

@@ -1,12 +1,15 @@
 <template>
-  <div class="page">
-    <div class="userInfo">
-      <van-row type="flex" justify="space-between" align="center">
-        <div class="user_tit">
-          <p>{{ user_info.name }}</p>
-          <span>ID:{{ user_info.wx_id }}</span>
-          <div class="user_leave">{{ user_info.isDearler?'经销商':'学员' }}</div>
-        </div>
+  <div class="curPage">
+    <div v-show="!isWx" @click="isWxEnv()">
+      <p>请在微信中打开</p>
+    </div>
+    <div class="userInfo" v-show="isWx">
+      <van-row
+        type="flex"
+        class="imageName"
+        justify="space-between"
+        align="center"
+      >
         <div class="userImage">
           <userImage
             class="about-me__avatar"
@@ -15,75 +18,245 @@
             width="1.12rem"
             height="1.12rem"
           ></userImage>
+          <div class="info">
+            <span
+              >{{ user_info.name
+              }}<van-icon
+                name="notes-o"
+                color="#E1B98B"
+                style="margin-left: .1rem;"
+            /></span>
+            <p>手机:{{ user_info.tel }}</p>
+          </div>
+        </div>
+        <div class="user_leave">
+          <van-icon name="gem-o" color="#a66666" />
+          {{ user_info.isDearler ? "经销商" : "学员" }}
         </div>
       </van-row>
     </div>
+    <div class="user_tabs">
+      <div class="tabs_content">
+        <div class="tabsLi">
+          <van-icon name="friends-o" />
+          <span>我的团队</span>
+        </div>
+        <div class="tabsLi">
+          <i class="courseIcon icon-erweima"></i>
+          <span>我的二维码</span>
+        </div>
+      </div>
+    </div>
+    <div class="myCourseList">
+      <courseList
+        :dataList="courseClass.proCourse.courseList"
+        showNum
+        :title="courseClass.proCourse.title"
+      ></courseList>
+    </div>
+    <div class="myCourseList">
+      <courseList
+        :dataList="courseClass.learnCourse.courseList"
+        :title="courseClass.learnCourse.title"
+      ></courseList>
+    </div>
+    <div class="myCourseList">
+      <courseList
+        :dataList="courseClass.learnCourse.courseList"
+        :title="courseClass.learnCourse.title"
+      ></courseList>
+    </div>
   </div>
 </template>
 
 <script>
 import Vue from "vue";
+import { getWxToken, setWxToken, openError } from "@/utils/auth";
 import { Col, Row } from "vant";
+import courseList from "./components/courseList.vue";
 Vue.use(Col);
 Vue.use(Row);
 export default {
   name: "",
-  components: {},
+  components: {
+    courseList
+  },
   props: [],
   data() {
     return {
+      isWx: true,
+      isAndroid: this.$getCache("isAndroid"),
       user_info: {
         img_url: "",
         wx_id: "wx15451154555",
         name: "新人",
+        tel: "15270803986",
         isDearler: true
+      },
+      courseClass: {
+        proCourse: {
+          title: "我推广的课程",
+          courseList: [
+            {
+              surplus: 120,
+              sale: 341,
+              title:
+                "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+              price: 598,
+              courseNum: 14,
+              url: "../../../assets/course.jpg"
+            },
+            {
+              surplus: 120,
+              sale: 341,
+              title:
+                "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+              price: 598,
+              courseNum: 14,
+              url: "../../../assets/course.jpg"
+            },
+            {
+              surplus: 120,
+              sale: 341,
+              title:
+                "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+              price: 598,
+              courseNum: 14,
+              url: "../../../assets/course.jpg"
+            }
+          ]
+        },
+        learnCourse: {
+          title: "我学习的课程",
+          courseList: [
+          {
+              surplus: 120,
+              sale: 341,
+              title:
+                "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+              price: 598,
+              courseNum: 14,
+              url: "../../../assets/course.jpg"
+            },
+            {
+              surplus: 120,
+              sale: 341,
+              title:
+                "大撒大声地大萨达大萨达撒大声地的撒旦撒旦撒打算打算大萨达萨达大萨达",
+              price: 598,
+              courseNum: 14,
+              url: "../../../assets/course.jpg"
+            }
+          ]
+        }
       }
     };
   },
-  created() {},
+  created() {
+    console.log(this.$route.query);
+    // this.isWxEnv();
+  },
   mounted() {},
-  methods: {},
+  methods: {
+    isWxEnv() {
+      if (this.$isWx) {
+        this.isWx = true;
+        if (getWxToken()) {
+          console.log(localStorage.getItem("wx_user_info"));
+        } else {
+          this.doWeixinLogin();
+        }
+      } else {
+        this.isWx = false;
+        this.$toast("当前不在微信环境中,请在微信中打开浏览");
+      }
+    },
+    doWeixinLogin() {
+      if (this.isAndroid) {
+        window.open(`${process.env.VUE_APP_WXURL}?marketing=1`, "_blank");
+      } else {
+        window.location.href = `${process.env.VUE_APP_WXURL}?marketing=1`;
+      }
+    }
+  },
   computed: {}
 };
 </script>
 <style scoped lang="scss">
-.page {
+@import "../../assets/iconfont.css";
+.curPage {
   box-sizing: border-box;
   padding: 0.4rem 0 0;
-  background-color: #efefef;
+  background-color: #eee;
+  p {
+    margin: 0;
+  }
   .userInfo {
     padding: 0.24rem 0.32rem;
-    // border: 1px solid #888;
-    border-radius: 0.2rem;
-    background: linear-gradient(
-      180deg,
-      #efefef 0%,
-      #ccc 40%,
-      #ccc 60%,
-      #efefef 100%
-    );
-    .user_tit {
-      p {
-        font-size: 0.32rem;
-        color: #000;
-        line-height: 2;
-        margin: 0;
-      }
-      span {
-        font-size: 0.24rem;
-        color: #888;
-        line-height: 1.4;
-        display: block;
+    .userImage {
+      display: flex;
+      align-items: center;
+      .info {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        margin-left: 0.2rem;
+        span {
+          font-size: 0.32rem;
+          font-weight: 600;
+          color: #000;
+          line-height: 2;
+          display: block;
+        }
+        p {
+          font-size: 0.28rem;
+          color: #222;
+          line-height: 1;
+          display: block;
+        }
       }
     }
     .user_leave {
-        padding: 0 .1rem;
-        font-size: .23rem;
-        color: #888;
-        background-color: #fff;
-        line-height: 1.5;
-        border-radius: .2rem;
+      padding: 0.05rem 0.3rem;
+      font-size: 0.26rem;
+      font-weight: 550;
+      color: #a66666;
+      border: 1px solid #c9c3c0;
+      border-radius: 0.1rem;
+      line-height: 1.5;
     }
   }
+  .user_tabs {
+    padding: 0 0.2rem;
+    .tabs_content {
+      padding: 0.1rem 0.2rem;
+      background-color: #fff;
+      display: flex;
+      border-radius: 0.1rem;
+      .tabsLi {
+        flex: 1;
+        text-align: center;
+        position: relative;
+        &:nth-of-type(1)::after {
+          content: "";
+          width: 1px;
+          height: 80%;
+          position: absolute;
+          top: 10%;
+          right: 0;
+          background-color: #999;
+        }
+        span {
+          font-size: 0.28rem;
+          color: #333;
+          line-height: 0.6rem;
+        }
+      }
+    }
+  }
+  .myCourseList{
+    padding: 0 0.2rem;
+    margin-top: .2rem;
+  }
 }
 </style>

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

@@ -152,6 +152,7 @@
     },
     created() {
       let that = this;
+      console.log(this.$route.query)
       document.body.addEventListener('blur', function(e) {
         setTimeout(() => {
           e.target.parentNode.parentNode.parentNode.classList.remove('field-focus');
@@ -315,7 +316,7 @@
                 password: this.formData.password
               }).then(res => {
                 if (res.code == 1) {
-                  localStorage.setItem('a-token-temp', res.data.token); // 保存平台账号登录的token
+                  localStorage.setItem('Wx-Token', res.data.wo_token); // 保存平台账号登录的token
                   this.openUrl2(res.data.account_site, res.data.invitation_wait_count);
                 } else {
                   this.$toast.fail({

+ 135 - 102
src/view/user/wxInit.vue

@@ -2,7 +2,7 @@
   <div class="all">
     <div class="noData flex-box-v flex-center-center">
       <div class="data-all">
-        <img src="static/images/init.gif" class="appImg"/>
+        <img src="static/images/init.gif" class="appImg" />
       </div>
     </div>
   </div>
@@ -18,147 +18,180 @@
 7.考勤系统审批 (请假,出差,加班,补卡,外出) type=7   考勤审批ID
 8.okr计划 (创建任务指派的,任务审批的) type=8   okr计划ID -->
 <script>
-
-import {getToken} from '@/utils/auth'
+import { getToken } from "@/utils/auth";
+import router from "../../router";
 export default {
-  name:'wxInit',
+  name: "wxInit",
   data() {
-    return {
-
-    };
+    return {};
   },
   created() {
-    if(this.$isWx){
+    if (this.$isWx) {
       this.init();
-    }else{
-      this.$router.replace({ name: 'home' });
+    } else {
+      this.$router.replace({ name: "home" });
     }
   },
   methods: {
-    init(){
+    init() {
       var url = window.location.href;
-      let request =this.getStr(url)
-      let data={ name: 'home',query:{}};
-      let site_info=this.$getCache('site_info')
-      if(request&&request.type){
-        if(request.type==1||request.type==2){ //微信账号有绑定平台账号
-          if(request.code){
-            this.$axios('POST', '/api/pro/wo/mp/code', { code: request.code }).then(res => {
-                let data=res.data.data;
-                if(data.account_id===0){ //微信未绑定
-                  data={ name: 'regWx',query:{wo_token:data.wo_token}};
-                  this.openUrl(data)
-                }else{
-                  localStorage.setItem('a-token-temp', data.token); // 保存平台账号登录的token
-                  this.openUrl2(data.account_site,data.invitation_wait_count);
-                }
+      let request = this.getStr(url);
+      let data = { name: "home", query: {} };
+      let site_info = this.$getCache("site_info");
+      console.log(request)
+      if (request && request.type && (request.type == 1 || request.type == 2)) {
+        if (request.type == 1 || request.type == 2) {
+          //微信账号有绑定平台账号
+          if (request.code) {
+            this.$axios("POST", "/api/pro/wo/mp/code", {
+              code: request.code
+            }).then(res => {
+              let data = res.data.data;
+              if (data.account_id !== 0) {
+                //微信已经绑定
+                localStorage.setItem("Wx-Token", data.wo_token); // 保存平台账号登录的token
+              }
+              data = { name: "regWx", query: { wo_token: data.wo_token } };
+              this.$router.push(data);
             });
           }
-          return false
+          return false;
         }
-        if(!getToken()){
-          this.$router.replace({ name: 'home' });
-          return false
+        if (!getToken()) {
+          this.$router.replace({ name: "home" });
+          return false;
         }
         // alert(`传过来的企业ID${request.siteId}当前ID${site_info.id}`)
-        if(request.siteId!=site_info.id){  //企业不一致
-          this.$dialog.alert({
-            title: '提示',
-            message: '当前登录企业与消息企业不一致,请重新选择企业',
-          }).then(() => {
-             this.$router.replace({ name: 'login_company_list' }); // 选择企业
-          });
-          return false
+        if (request.siteId != site_info.id) {
+          //企业不一致
+          this.$dialog
+            .alert({
+              title: "提示",
+              message: "当前登录企业与消息企业不一致,请重新选择企业"
+            })
+            .then(() => {
+              this.$router.replace({ name: "login_company_list" }); // 选择企业
+            });
+          return false;
         }
-        if(request.type==3){ //指派任务
-          data={ name: 'taskFile',query:{task_id:request.id}};
-          this.openUrl(data)
-        }else if(request.type==4){//接受悬赏任务
-          data={ name: 'task_hall',query:{}};
-          this.openUrl(data)
-        }else if(request.type==5){//现场管理问题整改
-          if(site_info.sm&&site_info.sm.enable){
-            data={ name: 'issueTaskDetail',query:{id:request.id}};
-            this.openUrl(data)
-          }else{
-            this.openHome('现场管理模块未开通,请联系管理员开通使用。')
+        if (request.type == 3) {
+          //指派任务
+          data = { name: "taskFile", query: { task_id: request.id } };
+          this.openUrl(data);
+        } else if (request.type == 4) {
+          //接受悬赏任务
+          data = { name: "task_hall", query: {} };
+          this.openUrl(data);
+        } else if (request.type == 5) {
+          //现场管理问题整改
+          if (site_info.sm && site_info.sm.enable) {
+            data = { name: "issueTaskDetail", query: { id: request.id } };
+            this.openUrl(data);
+          } else {
+            this.openHome("现场管理模块未开通,请联系管理员开通使用。");
           }
-        }else if(request.type==6){//积分审批
-          data={ name: 'approval_detail',query:{review_id:request.id}};
-          this.openUrl(data)
-        }else if(request.type==7){//考勤系统审批
-          data={ name: 'RecordDetail',query:{id:request.id}};
-          this.openUrl(data)
-        }else if(request.type==8){//okr计划
-          if(site_info.okr && site_info.okr.enable){
-            this.getUnitList(()=>{
-              data={ name: 'taskDetail',query:{id:request.id}};
-              this.openUrl(data)
-            })
-          }else{
-            this.openHome('OKR模块未开通,请联系管理员开通使用。')
+        } else if (request.type == 6) {
+          //积分审批
+          data = { name: "approval_detail", query: { review_id: request.id } };
+          this.openUrl(data);
+        } else if (request.type == 7) {
+          //考勤系统审批
+          data = { name: "RecordDetail", query: { id: request.id } };
+          this.openUrl(data);
+        } else if (request.type == 8) {
+          //okr计划
+          if (site_info.okr && site_info.okr.enable) {
+            this.getUnitList(() => {
+              data = { name: "taskDetail", query: { id: request.id } };
+              this.openUrl(data);
+            });
+          } else {
+            this.openHome("OKR模块未开通,请联系管理员开通使用。");
           }
         }
+      } else if (request && request.type && request.type == 9) {
+        if (request.code) {
+          this.$axiosKc("POST", "https://oa.g107.com/api/pro/wo/mp/code", {
+            code: request.code
+          }).then(res => {
+            let data = res.data.data;
+            if (data.account_id === 0) {
+              //微信未绑定
+              data = { name: "regWx", query: { wo_token: data.wo_token } };
+              this.openUrl(data);
+            } else {
+              localStorage.setItem("wx_user_info", JSON.stringify(data));
+              localStorage.setItem("Wx-Token", data.wo_token); // 保存微信课程账号登录的token
+              this.$router.push('/courseHome')
+            }
+          });
+        }
       }
     },
-    getUnitList(fun){
-      this.$axiosUser('get', '/api/pro/okr/kr/unit_list').then(res => {
-        let data=res.data.data;
-        data.reverse()
-        this.$setCache('unitList',data)
-        fun()
-      })
+    getUnitList(fun) {
+      this.$axiosUser("get", "/api/pro/okr/kr/unit_list").then(res => {
+        let data = res.data.data;
+        data.reverse();
+        this.$setCache("unitList", data);
+        fun();
+      });
     },
     getStr(urlStr) {
-    	if (typeof urlStr == 'undefined') {
-    		var url = decodeURI(location.search); //获取url中"?"符后的字符串
-    	} else {
-    		var url = '?' + urlStr.split('?')[1];
-    	}
-    	var theRequest = new Object();
-    	var strs;
-    	if (url.indexOf('?') != -1) {
-    		var str = url.substr(1);
-    		strs = str.split('&');
-    		for (var i = 0; i < strs.length; i++) {
-    			theRequest[strs[i].split('=')[0]] = decodeURI(strs[i].split('=')[1]);
-    		}
-    	}
-    	return theRequest;
+      if (typeof urlStr == "undefined") {
+        var url = decodeURI(location.search); //获取url中"?"符后的字符串
+      } else {
+        var url = "?" + urlStr.split("?")[1];
+      }
+      var theRequest = new Object();
+      var strs;
+      if (url.indexOf("?") != -1) {
+        var str = url.substr(1);
+        strs = str.split("&");
+        for (var i = 0; i < strs.length; i++) {
+          theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
+        }
+      }
+      return theRequest;
     },
-    openUrl(data){
-      data.query.isHome=true;
+    openUrl(data) {
+      data.query.isHome = true;
       this.$router.replace(data);
     },
     openUrl2(account_site, invitation_wait_count) {
       if (account_site.length > 0) {
         // 公司数量
         if (invitation_wait_count > 0) {
-          this.$router.push({ name: 'registration_experience', query: { invite: 1, iscompany: 1 } }); // 选择行业
+          this.$router.push({
+            name: "registration_experience",
+            query: { invite: 1, iscompany: 1 }
+          }); // 选择行业
         } else {
-          this.$router.push({ name: 'login_company_list' }); // 选择企业
+          this.$router.push({ name: "login_company_list" }); // 选择企业
         }
       } else {
         if (invitation_wait_count > 0) {
           // 待邀请数量
-          this.$router.push({ name: 'registration_experience', query: { invite: 1 } }); // 选择行业
+          this.$router.push({
+            name: "registration_experience",
+            query: { invite: 1 }
+          }); // 选择行业
         } else {
-          this.$router.replace({name:'create_company'}) //进入体验账号
+          this.$router.replace({ name: "create_company" }); //进入体验账号
         }
       }
     },
     openHome(msg) {
-      this.$dialog.alert({
-        title: '提示',
-        message: msg,
-      }).then(() => {
-         this.$router.replace({ name: 'home' }); // 选择企业
-      });
-    },
-  },
-  activated() {
-
+      this.$dialog
+        .alert({
+          title: "提示",
+          message: msg
+        })
+        .then(() => {
+          this.$router.replace({ name: "home" }); // 选择企业
+        });
+    }
   },
+  activated() {}
 };
 </script>