From 0a22e9e56fc205c2afeb42436edeb752390678ae Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Sat, 11 Mar 2023 17:19:15 +0800 Subject: [PATCH] feat: add dynamic config --- public/admin.html | 1 + resources/admin/public/static/config.js | 4 ++++ resources/admin/support/helper.ts | 13 +++++++++++++ resources/admin/support/http.ts | 4 ++-- 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 resources/admin/public/static/config.js diff --git a/public/admin.html b/public/admin.html index b9d6039..03dfc42 100644 --- a/public/admin.html +++ b/public/admin.html @@ -18,5 +18,6 @@
+ diff --git a/resources/admin/public/static/config.js b/resources/admin/public/static/config.js new file mode 100644 index 0000000..4999aa3 --- /dev/null +++ b/resources/admin/public/static/config.js @@ -0,0 +1,4 @@ +window.admin_config = { + title: '', + BASE_URL: '', +} diff --git a/resources/admin/support/helper.ts b/resources/admin/support/helper.ts index ec60200..77abda4 100644 --- a/resources/admin/support/helper.ts +++ b/resources/admin/support/helper.ts @@ -87,3 +87,16 @@ export function setPageTitle(title: string) { export function isFunction(value: any) { return typeof value === 'function' } + +export function _window(key: string) { + if (window.hasOwnProperty('admin_config')) { + //@ts-ignore + return window.admin_config[key] + } + + return null +} + +export function getBaseUrl() { + return _window('BASE_URL') ? _window('BASE_URL') : env('VITE_BASE_URL') +} diff --git a/resources/admin/support/http.ts b/resources/admin/support/http.ts index d1d4cd6..1060602 100644 --- a/resources/admin/support/http.ts +++ b/resources/admin/support/http.ts @@ -1,6 +1,6 @@ import { Code } from '/admin/enum/app' import axios, { AxiosInstance, AxiosRequestConfig } from 'axios' -import { env, getAuthToken, removeAuthToken } from './helper' +import { getAuthToken, getBaseUrl, removeAuthToken } from './helper' import Message from './message' import router from '/admin/router' import ResponseData from '/admin/types/responseData' @@ -134,7 +134,7 @@ class Http { */ protected getConfig(): AxiosRequestConfig { // set base url - this.config.baseURL = this.baseURL ? this.baseURL : env('VITE_BASE_URL') + this.config.baseURL = getBaseUrl() // set timeout this.config.timeout = this.timeout ? this.timeout : 10000