ソースを参照

日志管理、权限管理接口请求域名优化

panyong 3 年 前
コミット
f4d9a12578

+ 1 - 0
htmldev/accessmanage/.env.development

@@ -3,3 +3,4 @@ ENV = 'development'
 
 # base api
 VUE_APP_BASE_API = '/dev-api'
+VUE_APP_ISPROXY=1

+ 1 - 1
htmldev/accessmanage/.env.production

@@ -3,4 +3,4 @@ ENV = 'production'
 
 # base api
 VUE_APP_BASE_API = '/prod-api'
-
+VUE_APP_ISPROXY=0

+ 8 - 0
htmldev/accessmanage/config/dev.env.js

@@ -0,0 +1,8 @@
+'use strict'
+const merge = require('webpack-merge')
+const prodEnv = require('./prod.env')
+
+module.exports = merge(prodEnv, {
+  NODE_ENV: '"development"',
+  API_DOMAIN: '"http://tool-api.codedreamit.com"'
+})

+ 6 - 0
htmldev/accessmanage/config/prod.env.js

@@ -0,0 +1,6 @@
+'use strict'
+
+module.exports = {
+  NODE_ENV: '"production"',
+  API_DOMAIN: '"http://tool-api.codedreamit.com"'
+}

+ 2 - 1
htmldev/accessmanage/src/api/index.js

@@ -3,10 +3,11 @@ import axios from 'axios'
 import { Message } from 'element-ui'
 import store from '../store/index'
 import { getToken } from '@/utils/auth'
+import { envDomain } from '@/utils/.env.domain'
 
 // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
 
-axios.defaults.baseURL = '/api'
+axios.defaults.baseURL = (process.env.VUE_APP_ISPROXY * 1 ? '' : envDomain.API_DOMAIN) + '/api'
 axios.defaults.timeout = 20000
 
 axios.interceptors.request.use(config => {

+ 30 - 0
htmldev/accessmanage/src/utils/.env.domain.js

@@ -0,0 +1,30 @@
+const host = window.location.host
+
+const replaceQuotationMarks = (obj) => {
+  if (Object.prototype.toString.call(obj) !== '[object Object]') {
+    throw 'Please check you arguments...'
+  }
+  let result = {}
+  for (let key in obj) {
+    result[key] = obj[key].replace(/"/g, '')
+  }
+  return result
+}
+
+const test = replaceQuotationMarks(require('../../config/dev.env'))
+const master = replaceQuotationMarks(require('../../config/prod.env'))
+
+const domain = host.substring(0, host.indexOf('.')) || host.substring(0, host.indexOf(':'))
+
+let envDomain = {
+  ...master
+}
+if (/^(0|192|localhost)|(test$)/.test(domain)) {
+  envDomain = {
+    ...test
+  }
+}
+
+export {
+  envDomain
+}

+ 1 - 0
htmldev/logmanage/.env.development

@@ -3,3 +3,4 @@ ENV = 'development'
 
 # base api
 VUE_APP_BASE_API = '/dev-api'
+VUE_APP_ISPROXY=1

+ 1 - 0
htmldev/logmanage/.env.production

@@ -3,4 +3,5 @@ ENV = 'production'
 
 # base api
 VUE_APP_BASE_API = '/prod-api'
+VUE_APP_ISPROXY=0
 

+ 8 - 0
htmldev/logmanage/config/dev.env.js

@@ -0,0 +1,8 @@
+'use strict'
+const merge = require('webpack-merge')
+const prodEnv = require('./prod.env')
+
+module.exports = merge(prodEnv, {
+  NODE_ENV: '"development"',
+  API_DOMAIN: '"http://tool-api.codedreamit.com"'
+})

+ 6 - 0
htmldev/logmanage/config/prod.env.js

@@ -0,0 +1,6 @@
+'use strict'
+
+module.exports = {
+  NODE_ENV: '"production"',
+  API_DOMAIN: '"http://tool-api.codedreamit.com"'
+}

+ 43 - 42
htmldev/logmanage/src/api/index.js

@@ -3,63 +3,64 @@ import axios from 'axios'
 import qs from 'qs'
 import { Message } from 'element-ui'
 import store from '../store/index'
-import { getToken, setToken, removeToken } from '@/utils/auth'
+import { getToken } from '@/utils/auth'
+import { envDomain } from '@/utils/.env.domain'
 
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
 
-axios.defaults.baseURL = 'http://tool-api.codedreamit.com/api/v1'
+axios.defaults.baseURL = (process.env.VUE_APP_ISPROXY * 1 ? '' : envDomain.API_DOMAIN) + '/api/v1'
 
 axios.defaults.timeout = 20000
 
 axios.interceptors.request.use(
-    config => {
-        if (getToken()) {
-            config.headers['apiToken'] = getToken()
-        }
-        if (config.method === 'post') {
-            config.data = qs.stringify(config.data)
-            config.params = undefined
-        }
-        return config
-    },
-    error => Promise.resolve(error.response || error)
+  config => {
+    if (getToken()) {
+      config.headers['apiToken'] = getToken()
+    }
+    if (config.method === 'post') {
+      config.data = qs.stringify(config.data)
+      config.params = undefined
+    }
+    return config
+  },
+  error => Promise.resolve(error.response || error)
 )
 
 axios.interceptors.response.use(
-    response => {
-        if (response.data && response.data.code != 200 && response.data.msg) {
-            Message.error(response.data.msg)
-        }
-        if (response.data && response.data.msg && response.data.msg.indexOf('token过期') > -1) {
-            store.dispatch('user/logout')
-            // window.location.href = '/'
-        }
-        return response
-    },
-    error => {
+  response => {
+    if (response.data && response.data.code != 200 && response.data.msg) {
+      Message.error(response.data.msg)
+    }
+    if (response.data && response.data.msg && response.data.msg.indexOf('token过期') > -1) {
+      store.dispatch('user/logout')
+      // window.location.href = '/'
+    }
+    return response
+  },
+  error => {
 
-        if (error.response && error.response.data.msg) {
-            Message.error(error.response.data.msg)
-        } else if (error.message) {
-            if (error.code && error.code == "ECONNABORTED") {
-                Message.error('连接超时')
-            } else {
-                Message.error(error.message)
-            }
-        }
-        return Promise.resolve(error.response || error)
+    if (error.response && error.response.data.msg) {
+      Message.error(error.response.data.msg)
+    } else if (error.message) {
+      if (error.code && error.code == 'ECONNABORTED') {
+        Message.error('连接超时')
+      } else {
+        Message.error(error.message)
+      }
     }
+    return Promise.resolve(error.response || error)
+  }
 )
 
 export const fetch = (url, data = {}, method = 'post') => {
-    return new Promise((resolve, reject) => {
-        axios({
-            url,
-            data: method == 'post' ? data : {},
-            params: method == 'post' ? {} : data,
-            method
-        }).then(res => resolve(res.data))
-    })
+  return new Promise((resolve, reject) => {
+    axios({
+      url,
+      data: method == 'post' ? data : {},
+      params: method == 'post' ? {} : data,
+      method
+    }).then(res => resolve(res.data))
+  })
 }
 
 Vue.prototype.$fetch = fetch

+ 30 - 0
htmldev/logmanage/src/utils/.env.domain.js

@@ -0,0 +1,30 @@
+const host = window.location.host
+
+const replaceQuotationMarks = (obj) => {
+  if (Object.prototype.toString.call(obj) !== '[object Object]') {
+    throw 'Please check you arguments...'
+  }
+  let result = {}
+  for (let key in obj) {
+    result[key] = obj[key].replace(/"/g, '')
+  }
+  return result
+}
+
+const test = replaceQuotationMarks(require('../../config/dev.env'))
+const master = replaceQuotationMarks(require('../../config/prod.env'))
+
+const domain = host.substring(0, host.indexOf('.')) || host.substring(0, host.indexOf(':'))
+
+let envDomain = {
+  ...master
+}
+if (/^(0|192|localhost)|(test$)/.test(domain)) {
+  envDomain = {
+    ...test
+  }
+}
+
+export {
+  envDomain
+}