浏览代码

news list auto fit token | no-token

hehaitao 1 年之前
父节点
当前提交
338d21b40e

+ 24 - 33
src/api/webApi/career-news.js

@@ -2,11 +2,11 @@ import request from '@/utils/request'
 
 // 00 生涯课程类型
 export function types(params) {
-    return request({
-        url: '/front/news/types',
-        method: 'get',
-        params: params
-    })
+  return request({
+    url: '/front/news/types',
+    method: 'get',
+    params: params
+  })
 }
 
 export function typesNoToken(params) {
@@ -20,50 +20,41 @@ export function typesNoToken(params) {
 
 // 01 生涯课程列表
 export function list(params) {
-    return request({
-        url: '/front/news/list',
-        method: 'get',
-        params: params
-    })
-}
-
-export function listNoToken(params) {
   return request({
-    url: '/front/news/listNoToken',
+    url: '/front/news/list',
     method: 'get',
     params: params,
-    withoutToken: true
+    autoFitNoToken: true
   })
 }
 
 // 02 生涯课程详情
 export function info(params) {
-    return request({
-        url: '/front/news/info',
-        method: 'get',
-        params: params
-    })
+  return request({
+    url: '/front/news/info',
+    method: 'get',
+    params: params
+  })
 }
 
 
 // 01 热门院校榜单
-export function universitiesTop (params) {
-    return request({
-        url: '/front/syzy/home/universities/top',
-        method: 'get',
-        params: params
-    })
+export function universitiesTop(params) {
+  return request({
+    url: '/front/syzy/home/universities/top',
+    method: 'get',
+    params: params
+  })
 }
 
 
-
 // 02 热门专业榜单
-export function marjorsTop (params) {
-    return request({
-        url: '/front/syzy/home/marjors/top',
-        method: 'get',
-        params: params
-    })
+export function marjorsTop(params) {
+  return request({
+    url: '/front/syzy/home/marjors/top',
+    method: 'get',
+    params: params
+  })
 }
 
 // 高考视频

+ 11 - 6
src/utils/request.js

@@ -1,7 +1,8 @@
 import axios from 'axios'
-import { Message, MessageBox, Notification } from 'element-ui'
+import {Message, MessageBox, Notification} from 'element-ui'
 import auth from '@/utils/auth'
 import errorCode from '@/utils/errorCode'
+import MxConst from "@/common/MxConst";
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 axios.defaults.headers['accessFrom'] = 'front'
@@ -14,12 +15,16 @@ const service = axios.create({
 })
 // request拦截器
 service.interceptors.request.use(config => {
+  const token = auth.getToken()
   // 附加授权header
   delete config.headers['Authorization']
-  if (auth.getToken() && config['withoutToken'] !== true) {
-    config.headers['Authorization'] = 'Bearer ' + auth.getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+  if (token && config['withoutToken'] !== true) {
+    config.headers['Authorization'] = 'Bearer ' + token // 让每个请求携带自定义token 请根据实际情况自行修改
+  }
+  // auto add `NoToken` suffix for request url
+  if (config.autoFitNoToken && (config.withoutToken || !token)) {
+    config.url = config.url + 'NoToken'
   }
-
   // 映射params参数
   if ((config.method == 'get' || config['paramsAsGet']) && config.params) {
     let url = config.url + '?'
@@ -75,7 +80,7 @@ service.interceptors.response.use(res => {
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        const { cardNo, mobile } = res.data
+        const {cardNo, mobile} = res.data
         location.href = `/renew?cardNo=${cardNo}&mobile=${mobile}`
       })
       return Promise.reject('error')
@@ -97,7 +102,7 @@ service.interceptors.response.use(res => {
   },
   error => {
     console.log('err' + error)
-    let { message } = error
+    let {message} = error
     if (message == 'Network Error') {
       message = '网络连接异常'
     } else if (message.includes('timeout')) {

+ 12 - 2
src/views/index/components/index-card-news.vue

@@ -22,6 +22,7 @@ import IndexCard from '@/views/index/components/index-card'
 import loginCheckMixin from '@/views/index/blocks/index-login-interceptor-mixin'
 import transferMixin from '@/components/mx-transfer-mixin'
 import * as career from '@/api/webApi/career-news'
+import {mapGetters} from "vuex";
 
 export default {
   mixins: [transferMixin, loginCheckMixin],
@@ -41,10 +42,18 @@ export default {
     }
   },
   computed: {
+    ...mapGetters(['token']),
     morePath() {
       return this.morePaths[this.activeName]
     }
   },
+  watch: {
+    token: function () {
+      const {activeName: type} = this
+      this.$delete(this.newsCache, type)
+      this.getList(type)
+    }
+  },
   mounted() {
     this.getTypes()
   },
@@ -60,10 +69,11 @@ export default {
     getList(type) {
       if (!type) return
       if (this.newsCache.hasOwnProperty(type)) return
-      career.listNoToken({
+      career.list({
         pageNum: 1,
         pageSize: 15,
-        type: type
+        type: type,
+        tag: ''
       }).then(res => {
         this.$set(this.newsCache, type, res.rows)
       })

+ 1 - 1
src/views/index/components/index-card-top.vue

@@ -63,7 +63,7 @@ export default {
   },
   methods: {
     getList() {
-      career.listNoToken({
+      career.list({
         pageNum: 1,
         pageSize: 5,
         tag: 'hot',