Ver Fonte

feat:提取config到window上

hanyang há 1 ano atrás
pai
commit
adfe1ae5c8

BIN
dist.zip


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/Home-D3efU_Pa.js


+ 1 - 1
dist/assets/Login-wilJxDZ2.js → dist/assets/Login-CVAF_ryl.js

@@ -1 +1 @@
-import{u as F,r as _,a as h,b as s,o as c,c as i,d as p,e,w as t,f as k,F as I,M as B}from"./index-CNcsLZPz.js";import{_ as f}from"./_plugin-vue_export-helper-DlAUqK2U.js";const N={__name:"FormItem",setup(v){const d=F(),m=_(),a=h({username:"admin",password:"123456"}),n=_(!1),b=g=>{n.value=!0,setTimeout(()=>{B.success("登录成功"),d.push({path:"/home"}),n.value=!1},1e3)};return(g,o)=>{const u=s("icon-user"),w=s("a-input"),r=s("a-form-item"),V=s("a-input-password"),x=s("a-button"),y=s("a-form");return c(),i(I,null,[o[3]||(o[3]=p("div",{class:"form-title"},"音频标注检索平台",-1)),e(y,{ref_key:"refForm",ref:m,model:a,layout:"validate",style:{width:"calc(100% - 100px)"},onSubmitSuccess:b},{default:t(()=>[e(r,{field:"username"},{default:t(()=>[e(w,{modelValue:a.username,"onUpdate:modelValue":o[0]||(o[0]=l=>a.username=l),placeholder:"用户名"},{prefix:t(()=>[e(u)]),_:1},8,["modelValue"])]),_:1}),e(r,{field:"password"},{default:t(()=>[e(V,{modelValue:a.password,"onUpdate:modelValue":o[1]||(o[1]=l=>a.password=l),placeholder:"密码",defaultVisibility:!0,"allow-clear":""},{prefix:t(()=>[e(u)]),_:1},8,["modelValue"])]),_:1}),e(r,null,{default:t(()=>[e(x,{loading:n.value,class:"submit-btn",style:{"background-color":"#7169df",color:"#fff"},"html-type":"submit"},{default:t(()=>o[2]||(o[2]=[k("登录 ")])),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])],64)}}},S=f(N,[["__scopeId","data-v-d35870d8"]]),C={class:"login"},L={class:"login-form"},M={__name:"Login",setup(v){return(d,m)=>(c(),i("div",C,[p("div",L,[e(S)])]))}},E=f(M,[["__scopeId","data-v-8c7524fe"]]);export{E as default};
+import{u as F,r as _,a as h,b as s,o as c,c as i,d as p,e,w as t,f as k,F as I,M as B}from"./index-DM05Zk77.js";import{_ as f}from"./_plugin-vue_export-helper-DlAUqK2U.js";const N={__name:"FormItem",setup(v){const d=F(),m=_(),a=h({username:"admin",password:"123456"}),n=_(!1),b=g=>{n.value=!0,setTimeout(()=>{B.success("登录成功"),d.push({path:"/home"}),n.value=!1},1e3)};return(g,o)=>{const u=s("icon-user"),w=s("a-input"),r=s("a-form-item"),V=s("a-input-password"),x=s("a-button"),y=s("a-form");return c(),i(I,null,[o[3]||(o[3]=p("div",{class:"form-title"},"音频标注检索平台",-1)),e(y,{ref_key:"refForm",ref:m,model:a,layout:"validate",style:{width:"calc(100% - 100px)"},onSubmitSuccess:b},{default:t(()=>[e(r,{field:"username"},{default:t(()=>[e(w,{modelValue:a.username,"onUpdate:modelValue":o[0]||(o[0]=l=>a.username=l),placeholder:"用户名"},{prefix:t(()=>[e(u)]),_:1},8,["modelValue"])]),_:1}),e(r,{field:"password"},{default:t(()=>[e(V,{modelValue:a.password,"onUpdate:modelValue":o[1]||(o[1]=l=>a.password=l),placeholder:"密码",defaultVisibility:!0,"allow-clear":""},{prefix:t(()=>[e(u)]),_:1},8,["modelValue"])]),_:1}),e(r,null,{default:t(()=>[e(x,{loading:n.value,class:"submit-btn",style:{"background-color":"#7169df",color:"#fff"},"html-type":"submit"},{default:t(()=>o[2]||(o[2]=[k("登录 ")])),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])],64)}}},S=f(N,[["__scopeId","data-v-d35870d8"]]),C={class:"login"},L={class:"login-form"},M={__name:"Login",setup(v){return(d,m)=>(c(),i("div",C,[p("div",L,[e(S)])]))}},E=f(M,[["__scopeId","data-v-8c7524fe"]]);export{E as default};

Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 1
dist/assets/index-DM05Zk77.js


+ 7 - 1
dist/config.js

@@ -1 +1,7 @@
-window.DMX_VERSION = "1.0.1";
+window.DMX_VERSION = '1.0.1';
+
+/**
+ * API请求地址
+ * 配置项最后一个字符 无需是 / 即,无需以 / 结束
+ */
+window.API_BASE_URL = 'http://192.168.20.119:9601';

+ 1 - 1
dist/index.html

@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>音频标注检索</title>
     <script type="module" src="/config.js"></script>
-    <script type="module" crossorigin src="/assets/index-CNcsLZPz.js"></script>
+    <script type="module" crossorigin src="/assets/index-DM05Zk77.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-CGNM0Fu4.css">
   </head>
   <body>

+ 7 - 1
public/config.js

@@ -1 +1,7 @@
-window.DMX_VERSION = "1.0.1";
+window.DMX_VERSION = '1.0.1';
+
+/**
+ * API请求地址
+ * 配置项最后一个字符 无需是 / 即,无需以 / 结束
+ */
+window.API_BASE_URL = 'http://192.168.20.119:9601';

+ 3 - 0
src/base/ajax.js

@@ -1,6 +1,7 @@
 import axios from 'axios';
 
 import { kuky_Authorization } from './storage';
+import replaceProxyUrl from './ajax/replace-proxy-url';
 
 const ajax = axios.create({
   withCredentials: true, // 跨域发送 cookie
@@ -12,6 +13,8 @@ const ajax = axios.create({
 
 ajax.interceptors.request.use(
   (config) => {
+    replaceProxyUrl(config);
+
     const token = kuky_Authorization.get();
     if (token) {
       config.headers['Authorization'] = `Bearer ${token}`;

+ 39 - 0
src/base/ajax/replace-proxy-url.js

@@ -0,0 +1,39 @@
+import { getConfigField } from '../../config/index';
+
+/**
+ * 处理请求路径
+ * 当在开发模式下,使用 vite 中配置 proxy,代理所有的 /api/ 相关的请求
+ * 开发模式下使用外网地址:http://smartai.com:8191
+ * 使用外网地址的原因是:有其他成员在非内网环境下进行共同开发,故无法使用内网地址
+ *
+ * 当在production模式下,通过此处的方法,将所有 /api/ 请求地址,调整为正常的地址
+ * @param {object} config
+ * @returns
+ */
+export default function replaceProxyUrl(config) {
+  /**
+   * 如果是发布模式
+   * 则不能使用代理的方式,需要直接请求服务器路径
+   * API_BASE_URL 需要在 /public/config.js 中进行配置
+   */
+  if (import.meta.env.MODE === 'production') {
+    const cur_url = config.url;
+
+    const is_api_request = cur_url.indexOf('/v1/') === 0;
+
+    if (is_api_request) {
+      const base_url = getConfigField('API_BASE_URL');
+      console.log(base_url);
+
+      if (!base_url) {
+        throw new Error('关键配置项 API_BASE_URL 不存在,请在 /config.js 进行配置');
+      }
+
+      config.url = base_url + cur_url;
+    }
+  } else {
+    // 开发环境,无需处理
+  }
+
+  return config;
+}

+ 5 - 7
src/config/index.js

@@ -1,5 +1,3 @@
-import config from './config';
-
 /**
  * 根据 key 获取对应的配置字段
  * @param {string} key
@@ -9,12 +7,12 @@ export const getConfigField = (key) => {
     return null;
   }
 
-  if (!config) {
-    return null;
-  }
+  // if (!config) {
+  //   return null;
+  // }
 
-  if (key in config) {
-    return config[key];
+  if (key in window) {
+    return window[key];
   } else {
     return null;
   }

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff