diff --git a/gold-system/.env.development b/gold-system/.env.development
new file mode 100644
index 0000000..8f4a152
--- /dev/null
+++ b/gold-system/.env.development
@@ -0,0 +1 @@
+VITE_API_BASE='http://54.251.137.151:10704/'
diff --git a/gold-system/.env.production b/gold-system/.env.production
new file mode 100644
index 0000000..61d0195
--- /dev/null
+++ b/gold-system/.env.production
@@ -0,0 +1 @@
+VITE_API_BASE=http://54.251.137.151:10702/
diff --git a/gold-system/package.json b/gold-system/package.json
index ba23f92..647c393 100644
--- a/gold-system/package.json
+++ b/gold-system/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "dev": "vite --host 0.0.0.0",
+ "dev": "vite --host",
"build": "vue-tsc -b && vite build",
"preview": "vite preview",
"serve": "vite - service serve --host 0.0.0.0 --port 8080"
diff --git a/gold-system/src/api/index.js b/gold-system/src/api/index.js
index a7a9bf1..31d1d3f 100644
--- a/gold-system/src/api/index.js
+++ b/gold-system/src/api/index.js
@@ -1,13 +1,26 @@
-import { pa } from 'element-plus/es/locales.mjs';
-import http from '../util/http.js';
+import request from './request'
-const API={
- post: function(url,data){
- return http({url:url,method:'post',data:data})
- },
- postN: function(url,params){
- return http({url:url,method:'post',params:params})
- },
-};
+export default function requestHandler(options) {
+ const { method = 'get', url, data = {}, params = {}, headers = {} } = options
-export default API;
\ No newline at end of file
+ return request({
+ method,
+ url,
+ data,
+ params,
+ headers
+ })
+ .then(({ status, data, statusText }) => {
+ if (status === 200) {
+ return data
+ } else {
+ throw new Error(statusText)
+ }
+ })
+ .catch(error => {
+ if (error?.needsLogin) {
+ return { needsLogin: true }
+ }
+ return Promise.reject(error)
+ })
+}
diff --git a/gold-system/src/util/http.js b/gold-system/src/util/http.js
index 27d1b32..31d1d3f 100644
--- a/gold-system/src/util/http.js
+++ b/gold-system/src/util/http.js
@@ -1,48 +1,26 @@
-import axios from 'axios';
+import request from './request'
+export default function requestHandler(options) {
+ const { method = 'get', url, data = {}, params = {}, headers = {} } = options
-export default function (options) {
- //配置每次发送请求都从localStorage中获取名字叫token的数据,
- //添加到请求头部的Authorization属性中
- const token = localStorage.getItem('token');
- //Object.assign用于合并对象的数据
-
- options.data.token = token;
- // options.headers = Object.assign(
- // { token: token },
- // options.headers || {}
- // );
-
- //axios() 返回一个promise对象,用于异步请求
- //options是一个对象,其中包含了许多用于配置请求的参数,
- //例如请求的url、请求方法(GET、POST等)、请求头等
- return axios(options)
+ return request({
+ method,
+ url,
+ data,
+ params,
+ headers
+ })
.then(({ status, data, statusText }) => {
- //该函数在请求成功并返回数据时被调用
- //status:HTTP状态码,例如200表示请求成功。
- //data:服务器返回的数据。
- // statusText:HTTP状态文本,例如"OK"表示请求成功。
- // console.log(data);
- if (status == 200) {
- return data;
+ if (status === 200) {
+ return data
} else {
- throw new e(statusText);
+ throw new Error(statusText)
+ }
+ })
+ .catch(error => {
+ if (error?.needsLogin) {
+ return { needsLogin: true }
}
+ return Promise.reject(error)
})
- .catch(e=>{
- // 检查是否是因为token过期导致的401错误
- if (e.response && e.response.status === 401) {
- // 获取机器码
- const machineId = localStorage.getItem('machineId');
- // 清除localStorage中的token
- localStorage.removeItem('token');
- // // 执行重新登录的逻辑,例如跳转到登录页面
- router.push("/login?machineId=" + machineId);
- // 可以在这里返回一个特定的值或者对象,以便调用者知道需要重新登录
- return { needsLogin: true };
- } else {
- // 其他类型的错误,直接抛出
- return Promise.reject(e);
- }
- });
-}
\ No newline at end of file
+}
diff --git a/gold-system/src/util/request.js b/gold-system/src/util/request.js
new file mode 100644
index 0000000..788c9e0
--- /dev/null
+++ b/gold-system/src/util/request.js
@@ -0,0 +1,38 @@
+import axios from 'axios'
+const service = axios.create({
+ baseURL: import.meta.env.VITE_API_BASE,
+ timeout: 10000,
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+})
+
+// 请求拦截器
+service.interceptors.request.use(config => {
+ const token = localStorage.getItem('token')
+ if (token) {
+ config.headers.Authorization = `Bearer ${token}`
+ }
+ return config
+}, error => {
+ return Promise.reject(error)
+})
+
+// 响应拦截器
+service.interceptors.response.use(
+ response => {
+ return response
+ },
+ error => {
+ const { response } = error
+ if (response && response.status === 401) {
+ const machineId = localStorage.getItem('machineId')
+ localStorage.removeItem('token')
+ window.location.href = `/login?machineId=${machineId}`
+ return Promise.resolve({ needsLogin: true })
+ }
+ return Promise.reject(error)
+ }
+)
+
+export default service
diff --git a/gold-system/src/views/login.vue b/gold-system/src/views/login.vue
index 0a1debf..90bb527 100644
--- a/gold-system/src/views/login.vue
+++ b/gold-system/src/views/login.vue
@@ -1,71 +1,72 @@
diff --git a/gold-system/src/views/usergold/index.vue b/gold-system/src/views/usergold/index.vue
index a8e5b92..252e778 100644
--- a/gold-system/src/views/usergold/index.vue
+++ b/gold-system/src/views/usergold/index.vue
@@ -1,64 +1,64 @@
@@ -780,7 +778,7 @@ const handleSortChange = (column) => {
>
{{
- moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
+ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss')
}}
diff --git a/gold-system/vite.config.ts b/gold-system/vite.config.ts
index 2d3e93a..6a3d0d9 100644
--- a/gold-system/vite.config.ts
+++ b/gold-system/vite.config.ts
@@ -1,42 +1,42 @@
-import { defineConfig } from 'vite'
+import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { lazyImport, VxeResolver } from 'vite-plugin-lazy-import'
-import legacy from '@vitejs/plugin-legacy';
+import legacy from '@vitejs/plugin-legacy'
+import path from 'path'
// https://vite.dev/config/
-export default defineConfig({
- esbuild: {
- supported: {
- bigint: true
- }
- },
- plugins: [vue(),
- legacy({
- targets: ['defaults', 'not IE 11', 'chrome >=73'],
- modernPolyfills: true
- }),
- lazyImport({
- resolvers: [
- VxeResolver({
- libraryName: 'vxe-table'
+export default defineConfig(({ mode }) => {
+ const env = loadEnv(mode, process.cwd())
+ console.log('当前环境:', mode)
+ console.log('当前环境变量:', env)
+ return {
+ esbuild: {
+ supported: {
+ bigint: true
+ }
+ },
+ plugins: [
+ vue(),
+ legacy({
+ targets: ['defaults', 'not IE 11', 'chrome >=73'],
+ modernPolyfills: true
}),
- VxeResolver({
- libraryName: 'vxe-pc-ui'
+ lazyImport({
+ resolvers: [
+ VxeResolver({
+ libraryName: 'vxe-table'
+ }),
+ VxeResolver({
+ libraryName: 'vxe-pc-ui'
+ })
+ ]
})
- ]
- })
- ],
- server: {
- proxy: {
- '/hwjb': {
- // target: 'http://54.251.137.151:10704',
- target: 'http://192.168.8.93:10702',
- // target: 'http://54.251.137.151:10702',
- changeOrigin: true,
- rewrite: (path) => path.replace(/^\/hwjb/, ''),
- },
+ ],
+ resolve: {
+ alias: {
+ '@': path.resolve(__dirname, './src')
+ }
},
- },
- // base: process.env.NODE_ENV === "production" ? "/gold_html_dev/" : "/",
- base: process.env.NODE_ENV === "production" ? "./" : "/",
+ base: process.env.NODE_ENV === 'production' ? './' : '/'
+ }
})