Browse Source

Merge remote-tracking branch 'origin/master'

ouxq 8 years ago
parent
commit
94b1b9d7fa
4 changed files with 37 additions and 5 deletions
  1. 7 2
      components/default/Header.vue
  2. 14 2
      plugins/axios.js
  3. 6 1
      store/index.js
  4. 10 0
      store/option.js

+ 7 - 2
components/default/Header.vue

@@ -29,8 +29,10 @@
               </ul>
             </div>
             <nuxt-link class="item" :to="'/'">商城首页</nuxt-link>
-            <nuxt-link class="item" to="/user">买家中心</nuxt-link>
-            <nuxt-link class="item" to="/vendor">卖家中心</nuxt-link>
+            <!--<nuxt-link class="item" to="/user">买家中心</nuxt-link>
+            <nuxt-link class="item" to="/vendor">卖家中心</nuxt-link>-->
+            <a class="item" :href="url + '/user'">买家中心</a>
+            <a class="item" :href="url + '/vendor'">卖家中心</a>
           </template>
           <template v-else>
             <a class="item" @click="onLoginClick()">登录</a>
@@ -61,6 +63,9 @@
           return ens.find(item => item.current) || ens[0]
         }
         return {}
+      },
+      url () {
+        return this.$store.state.option.url
       }
     },
     methods: {

+ 14 - 2
plugins/axios.js

@@ -10,7 +10,7 @@ service.interceptors.request.use(config => {
   // is server render, use ${baseUrl} directly rather than ${proxyUrl}
   if (process.env.proxyUrl && typeof window === 'undefined') {
     config.url = process.env.baseUrl + config.url
-    config.headers.cookie = store.state.option.cookies
+    config.headers.cookie = store.state.option.cookies + '; ' + store.state.option.sessionId
     config.headers['User-Agent'] = store.state.option.userAgent
   }
   return config
@@ -19,7 +19,19 @@ service.interceptors.request.use(config => {
 })
 
 service.interceptors.response.use(response => {
-  // console.log('SESSIONID', response.headers)
+  const cookies = response.headers['set-cookie']
+  if (cookies && cookies.length && cookies.length > 0) {
+    for (let i = 0; i < cookies.length; i++) {
+      if (cookies[i].indexOf('JSESSIONID') > -1) {
+        const sessionId = cookies[i]
+        const first = sessionId.indexOf(';')
+        const second = sessionId.lastIndexOf(';')
+        const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
+        store.commit('option/SET_SESSION_ID', newSessionId)
+        break
+      }
+    }
+  }
   return response
 }, error => {
   return Promise.reject(error)

+ 6 - 1
store/index.js

@@ -25,7 +25,7 @@ function loadBrandComponent ({commit}, params = {}) {
 
 export const actions = {
   // 全局服务初始化
-  nuxtServerInit (store, { params, route, isServer, req }) {
+  nuxtServerInit (store, { params, route, isDev, isServer, req }) {
     // 检查设备类型
     const userAgent = isServer ? req.headers['user-agent'] : navigator.userAgent
     const isMobile = /(iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|PSP|BlackBerry|Windows Phone)/ig.test(userAgent)
@@ -34,6 +34,11 @@ export const actions = {
     store.commit('option/SET_MOBILE_LAYOUT', isMobile)
     store.commit('option/SET_USER_AGENT', userAgent)
     store.commit('option/SET_COOKIES', cookie)
+
+    // 设置跳转的URL
+    if (!isDev) {
+      store.commit('option/UPDATE_URL', 'http://www.usoftmall.com')
+    }
     return Promise.all([
       // 全局数据
       store.dispatch('loadUserInfo')

+ 10 - 0
store/option.js

@@ -7,6 +7,10 @@ export const state = {
   isMobile: false,
   // 身份token
   cookies: '',
+  // 用户身份SessionId
+  sessionId: '',
+  // 正式系统地址
+  url: 'http://218.17.158.219:9090/platform-b2c',
   // 用户信息
   user: {
     // 是否登录
@@ -31,6 +35,12 @@ export const mutations = {
   SET_COOKIES (state, result) {
     state.cookies = result || ''
   },
+  SET_SESSION_ID (state, result) {
+    state.sessionId = result || ''
+  },
+  UPDATE_URL (state, result) {
+    state.url = result
+  },
   REQUEST_USER_INFO (state) {
     state.user.fetching = true
   },