Ver código fonte

Merge branch 'lhf-config' into 'dev'

feat: 项目配置获取方式更改,从env改为从app.config.js获取

See merge request skyeye/skyeye_frontend/skyeye-admin!113
楼航飞 1 ano atrás
pai
commit
5dfff1c6ae

+ 0 - 19
.env

@@ -1,19 +0,0 @@
-
-# spa-title
-VITE_GLOB_APP_TITLE = '中国商飞安全管控平台'
-
-# spa shortname
-VITE_GLOB_APP_SHORT_NAME = SkyeyeAdmin
-
-# 生产环境 开启mock
-VITE_GLOB_PROD_MOCK = false
-
-
-
-VITE_GLOB_LOGIN_APP = '/skyeye-login/#/'
-
-VITE_GLOB_SKYEYE_WORLD = /skyeye-world/
-
-VITE_GLOB_APP_PC = /skyeyev3pc/
-
-VITE_GLOB_TENANT_CODE=shangfei

+ 0 - 42
.env.development

@@ -5,45 +5,3 @@ VITE_PORT = 8092
 # 是否开启mock
 VITE_USE_MOCK = false
 
-# 是否删除console
-VITE_DROP_CONSOLE = true
-
-# 跨域代理,可以配置多个,请注意不要换行
-#VITE_PROXY = [["/appApi","http://localhost:8001"],["/upload","http://localhost:8001/upload"]]
-# VITE_PROXY=[["/temp","http://172.16.23.144:8800"],["/upload","http://172.16.23.144:8086"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://172.16.23.144:8800/api"]]
-#VITE_PROXY=[["/skyeye-admin-api","http://58.144.197.158:19980/skyeye-admin-api"],["/eye_api","http://58.144.197.158:19980/eye_api"],["/push_stream_host","http://58.144.197.158:19980/push_stream_host"],["/skyeye-login","http://58.144.197.158:19980/skyeye-login"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://36.133.176.76:19980/skyeye-admin-api"],["/eye_api","http://36.133.176.76:19980/eye_api"],["/push_stream_host","http://36.133.176.76:19980/push_stream_host"],["/skyeye-login","http://36.133.176.76:19980/skyeye-login"]]
-#VITE_PROXY=[["/skyeye-admin-api","http://172.16.23.144/skyeye-admin-api"],[],["/eye_api_bak","http://172.16.23.144/eye_api"],["/push_stream_host","http://172.16.23.144/push_stream_host"],["/skyeye-login","http://172.16.23.144/skyeye-login"],["/ws_api_bak","ws://172.16.23.144/ws_api_bak"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.32.47/skyeye-admin-api"],["/eye_api","http://192.168.32.47/eye_api"],["/push_stream_host","http:/192.168.32.47/push_stream_host"],["/skyeye-login","http://192.168.32.47/skyeye-login"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.14.68/skyeye-admin-api"],[],["/eye_api_bak","http://192.168.14.68/eye_api"],["/push_stream_host","http://192.168.14.68/push_stream_host"],["/skyeye-login","http://192.168.14.68/skyeye-login"],["/ws_api_bak","ws://192.168.14.68/ws_api_bak"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.13.68/skyeye-admin-api"],[],["/eye_api_bak","http://192.168.13.68/eye_api"],["/push_stream_host","http://192.168.13.68/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.13.68/ws_api_bak"]]
-# 中建材 staff
-#VITE_PROXY=[["/skyeye-admin-api","http://192.168.13.68:70/skyeye-admin-api"],["/eye_api_bak","http://192.168.13.68:70/eye_api"],["/push_stream_host","http://192.168.13.68:70/push_stream_host"],["/skyeye-login","http://192.168.13.68:70/skyeye-login"],["/ws_api_bak","ws://192.168.13.68:70/ws_api_bak"]]
-VITE_PROXY=[["/eye_api_bak","http://192.168.13.68/eye_api_bak"],["/push_stream_host","http://192.168.13.68/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.13.68/ws_api_bak"],["/skyeye-file-upload","http://192.168.13.68/skyeye-file-upload"],["/nvr_download","http://192.168.13.68/nvr_download"]]
-
-
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.13.68/skyeye-admin-api"],[],["/eye_api_bak","http://192.168.13.68/eye_api"],["/push_stream_host","http://192.168.13.68/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.13.68/ws_api_bak"],["/skyeye-file-upload","http://192.168.13.68/skyeye-file-upload"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.23.182:8800/api"],[],["/eye_api_bak","http://192.168.23.182:8800"],["/push_stream_host","http://192.168.23.182/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.23.182/ws_api_bak"],["/skyeye-file-upload","http://192.168.13.68/skyeye-file-upload"]]
-#VITE_PROXY=[["/skyeye-admin-api","http://192.168.22.234:8800/api"],[],["/eye_api_bak","http://192.168.22.234:8800"],["/push_stream_host","http://192.168.22.234/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.22.234/ws_api_bak"],["/skyeye-file-upload","http://192.168.13.68/skyeye-file-upload"]]
-
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.22.163:8800/api"],[],["/eye_api_bak","http://192.168.22.163:8800/api"],["/push_stream_host","http://192.168.13.68/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.13.68/ws_api_bak"]]
-#VITE_PROXY=[["/skyeye-admin-api","http://192.168.22.121:8800/api"],["/eye_api_bak","http://192.168.22.121:8800/api"],["/push_stream_host","http://192.168.13.68/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.13.68/ws_api_bak"],["/skyeye-file-upload","http://192.168.13.68/skyeye-file-upload"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.22.163:8800/api"],[],["/eye_api_bak","http://192.168.22.163:8800/api"],["/push_stream_host","http://192.168.13.68/push_stream_host"],["/skyeye-login","http://192.168.13.68/skyeye-login"],["/ws_api_bak","ws://192.168.13.68/ws_api_bak"],["/skyeye-file-upload","http://192.168.13.68/skyeye-file-upload"]]
-
-
-# API 接口地址
-VITE_GLOB_API_URL = 
-# 图片上传地址
-VITE_GLOB_UPLOAD_URL=  
-
-VITE_GLOB_APP_DOWNLOAD_QRCODE = //172.16.23.144/apk/skyeye.apk
-
-
-# 图片前缀地址
-#VITE_GLOB_IMG_URL = //36.133.176.76:19980/skyeye_static/
-VITE_GLOB_IMG_URL = //172.16.23.144/skyeye_static/
-
-
-# 接口前缀
-VITE_GLOB_API_URL_PREFIX = /eye_api_bak/api

+ 0 - 14
.env.production

@@ -4,17 +4,6 @@
 # 是否删除console
 VITE_DROP_CONSOLE = true
 
-# API
-VITE_GLOB_API_URL = 
-
-# 图片上传地址
-VITE_GLOB_UPLOAD_URL= 
-
-# 图片前缀地址
-VITE_GLOB_IMG_URL= /skyeye_static
-
-# 接口前缀
-VITE_GLOB_API_URL_PREFIX = /skyeye-admin-api
 
 # 是否启用gzip压缩或brotli压缩
 # 可选: gzip | brotli | none
@@ -24,6 +13,3 @@ VITE_BUILD_COMPRESS = 'none'
 # 使用压缩时是否删除原始文件,默认为false
 VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
 
-
-# App Download QrCode Url
-VITE_GLOB_APP_DOWNLOAD_QRCODE = /apk/skyeye.apk

+ 2 - 1
.gitignore

@@ -26,4 +26,5 @@ pnpm-debug.log*
 /components.d.ts
 pnpm-lock.yaml
 vite.config.ts.timestamp*
-pnpm-lock.yaml
+pnpm-lock.yaml
+public/app.config.js

+ 0 - 18
build/publish/config.ts

@@ -1,18 +0,0 @@
-export const config = {
-  host: 'http://58.144.197.158:19980/remotePublish',
-  // host: 'http://36.133.176.76:19980/remotePublish',
-  sourceFolder: 'dist',
-  destFoler: 'skyeye-admin',
-  reservedFiles: ['app.config.js'],
-};
-
-export interface Config {
-  host: string;
-  sourceFolder: string;
-  destFoler: string;
-  /**
-   * 一些配置文件,比如app.config.js,每个项目可能不同。所以每次打包部署的时候,不需要替换,用它原来的即可。
-   * 这个配置文件,每次备份之前先备份该文件,然后加压缩后再还原出来。
-   */
-  reservedFiles?: string[];
-}

+ 0 - 81
build/publish/publish.ts

@@ -1,81 +0,0 @@
-import axios from 'axios';
-import archiver from 'archiver';
-import fs from 'fs';
-import path from 'path';
-import FormData from 'form-data';
-import { config } from './config';
-import urlJoin from 'url-join';
-
-/**
- * zip folder
- *   sourceFolder,待压缩的文件夹
- *   destZip,压缩后的zip文件
- *   subdir,是否需要包一层
- */
-function zipFolder({ sourceFolder, destZip }) {
-  // init
-  return new Promise((resolve, reject) => {
-    const output = fs.createWriteStream(destZip);
-    const archive = archiver('zip', {
-      zlib: { level: 9 },
-    });
-    console.log('zip 压缩中...');
-
-    // on
-    output.on('close', function () {
-      console.log('zip压缩结束');
-      resolve(null);
-    });
-    archive.on('error', function (err) {
-      console.error('zip压缩失败', err);
-      reject(err);
-    });
-    // zip
-    archive.pipe(output);
-    archive.directory(sourceFolder, false);
-    archive.finalize();
-  });
-}
-
-const getPath = (dir: string) => {
-  return path.resolve(process.cwd(), dir);
-};
-
-const publish = async () => {
-  const tempDestZipPath = getPath(config.destFoler + '.zip');
-  console.log('destZipPath', tempDestZipPath);
-  await zipFolder({
-    sourceFolder: getPath(config.sourceFolder),
-    destZip: tempDestZipPath,
-  });
-  const file = fs.createReadStream(tempDestZipPath);
-  const formData = new FormData();
-  formData.append('file', file);
-  formData.append('dir', config.destFoler);
-  if (config.reservedFiles) {
-    formData.append('reservedFiles', JSON.stringify(config.reservedFiles));
-  }
-  console.log('开始上传', new Date().toLocaleString());
-  axios
-    .request({
-      method: 'post',
-      url: urlJoin(config.host, 'send'),
-      data: formData,
-      headers: {
-        'Content-Type': 'multipart/form-data',
-      },
-    })
-    .then((res) => {
-      console.log('上传成功', res.data);
-    })
-    .catch((err) => {
-      console.error('上传失败', err, new Date().toLocaleString());
-    })
-    .finally(() => {
-      console.log('上传结束', new Date().toLocaleString());
-      // 上传完要删除临时压缩包
-      fs.unlinkSync(tempDestZipPath);
-    });
-};
-
-publish();

+ 1 - 1
build/vite/proxy.ts

@@ -5,7 +5,7 @@ import type { ProxyOptions } from 'vite';
 
 type ProxyItem = [string, string];
 
-type ProxyList = ProxyItem[];
+export type ProxyList = ProxyItem[];
 
 type ProxyTargetList = Record<string, ProxyOptions & { rewrite: (path: string) => string }>;
 

+ 7 - 0
index.html

@@ -8,6 +8,13 @@
   <meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
     name="viewport" />
   <link href="/favicon.ico" rel="icon" />
+
+  <script>
+    const script = document.createElement("script");
+    script.src = "./app.config.js?v=" + Date.now()
+    document.head.append(script)
+
+  </script>
   <title>
     <%= title %>
   </title>

+ 1 - 9
src/hooks/setting/index.ts

@@ -14,17 +14,10 @@ export const useGlobSetting = (): Readonly<GlobConfig> => {
     VITE_GLOB_IMG_URL,
     VITE_GLOB_APP_DOWNLOAD_QRCODE,
     VITE_GLOB_LOGIN_APP,
-    VITE_GLOB_SKYEYE_WORLD,
     VITE_GLOB_APP_PC,
     VITE_GLOB_TENANT_CODE,
   } = getAppEnvConfig();
 
-  if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) {
-    warn(
-      `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`,
-    );
-  }
-
   // Take global configuration
   const glob: Readonly<GlobConfig> = {
     title: VITE_GLOB_APP_TITLE,
@@ -33,10 +26,9 @@ export const useGlobSetting = (): Readonly<GlobConfig> => {
     urlPrefix: VITE_GLOB_API_URL_PREFIX,
     uploadUrl: VITE_GLOB_UPLOAD_URL,
     prodMock: VITE_GLOB_PROD_MOCK,
-    imgUrl: VITE_GLOB_IMG_URL,
+    imgUrl: VITE_GLOB_IMG_URL || '',
     appDownloadUrl: VITE_GLOB_APP_DOWNLOAD_QRCODE,
     loginApp: VITE_GLOB_LOGIN_APP,
-    skyeyeWorldUrl: VITE_GLOB_SKYEYE_WORLD,
     appPCUrl: VITE_GLOB_APP_PC,
     tenantCode: VITE_GLOB_TENANT_CODE,
   };

+ 1 - 1
src/main.ts

@@ -4,7 +4,7 @@ import './styles/index.scss';
 import 'element-plus/theme-chalk/display.css';
 import 'element-plus/theme-chalk/dark/css-vars.css';
 import 'nprogress/nprogress.css';
-import './main.css'
+import './main.css';
 import VueKonva from 'vue-konva';
 
 import { createApp } from 'vue';

+ 5 - 16
src/utils/env.ts

@@ -15,25 +15,14 @@ export function getStorageShortName() {
 }
 
 export function getAppEnvConfig() {
-  const ENV_NAME = getConfigFileName(import.meta.env);
+  const ENV_NAME = '__PRODUCTION__SKYEYEADMIN__CONF__';
 
-  const ENV = (import.meta.env.DEV
-    ? // Get the global configuration (the configuration will be extracted independently when packaging)
-      (import.meta.env as unknown as GlobEnvConfig)
-    : window[ENV_NAME as any]) as unknown as GlobEnvConfig;
-
-  const { VITE_GLOB_APP_SHORT_NAME, ...rest } = ENV;
-
-  if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) {
-    warn(
-      `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`,
-    );
+  const ENV = window[ENV_NAME as any] as unknown as GlobEnvConfig;
+  if (!ENV) {
+    throw new Error('config not found');
   }
 
-  return {
-    VITE_GLOB_APP_SHORT_NAME,
-    ...rest,
-  };
+  return ENV;
 }
 
 /**

+ 0 - 1
types/config.d.ts

@@ -56,7 +56,6 @@ export interface GlobConfig {
   imgUrl?: string;
   appDownloadUrl?: string;
   loginApp?: string;
-  skyeyeWorldUrl?: string;
   appPCUrl?: string;
 }
 

+ 8 - 0
utils/devProxy/index.ts

@@ -0,0 +1,8 @@
+import { start } from './utils';
+
+import * as config from './staff-shangfei/proxy';
+// import * as config from './staff-zongbu/proxy';
+// import * as config from './staff-zhongjiancai/proxy';
+// import * as config from './pc/proxy';
+
+export default start(config.proxy, config.appConfigPath);

+ 26 - 0
utils/devProxy/pc/app.config.js

@@ -0,0 +1,26 @@
+
+window.__PRODUCTION__SKYEYEADMIN__CONF__ = {
+  // document的title,以及显示在左侧导航栏的title,一般是项目的名称
+  "VITE_GLOB_APP_TITLE": "智能工厂视觉管控系统",
+  // 租户tenantCode,可以不用填
+  "VITE_GLOB_TENANT_CODE": "",
+  // 接口前缀
+  "VITE_GLOB_API_URL_PREFIX": "/eye_api_bak/api",
+  // app下载地址
+  "VITE_GLOB_APP_DOWNLOAD_QRCODE": "",
+  // 登录的前端地址
+  "VITE_GLOB_LOGIN_APP": "/skyeye-login/#/",
+  // 平台跳转地址
+  "VITE_GLOB_APP_PC": "/skyeyev3pc/",
+  /** 问题闭环处理,简单处理 */
+  "VITE_GLOB_QUESTION_LIST_VERSION": '',
+
+};
+
+
+
+Object.freeze(window.__PRODUCTION__SKYEYEADMIN__CONF__);
+Object.defineProperty(window, "__PRODUCTION__SKYEYEADMIN__CONF__", {
+  configurable: false,
+  writable: false,
+});

+ 19 - 0
utils/devProxy/pc/proxy.ts

@@ -0,0 +1,19 @@
+import { PROXY_TYPE } from '../types';
+import path from 'path';
+// 连pc电脑的配置
+
+export const proxy: PROXY_TYPE = {
+  // 开发同学的ip
+  serverHost: '192.168.13.68:8811',
+  loginHost: 'http://192.168.13.68/skyeye-login',
+  skyeyeFileUploadHost: 'http://192.168.13.68:9001',
+  nvrDownload: 'http://192.168.13.68/nvr_download',
+
+  push_stream_host: 'http://192.168.13.68:8080',
+  push_stream_host_shangfei: 'http://192.168.13.73:8080',
+  push_stream_host_shangfeiyuan: 'http://192.168.13.72:8080',
+  push_stream_host_beiyan: 'http://192.168.13.72:8080',
+  push_stream_host_default: 'http://192.168.13.73:8080',
+};
+
+export const appConfigPath = path.resolve(__dirname, 'app.config.js');

+ 26 - 0
utils/devProxy/staff-shangfei/app.config.js

@@ -0,0 +1,26 @@
+
+window.__PRODUCTION__SKYEYEADMIN__CONF__ = {
+  // document的title,以及显示在左侧导航栏的title,一般是项目的名称
+  "VITE_GLOB_APP_TITLE": "xxx33",
+  // 租户tenantCode,部分项目必填
+  "VITE_GLOB_TENANT_CODE": "shangfei",
+  // 接口前缀
+  "VITE_GLOB_API_URL_PREFIX": "/eye_api_bak/api",
+  // app下载地址
+  "VITE_GLOB_APP_DOWNLOAD_QRCODE": "/apk/skyeye.apk",
+  // 登录的前端地址
+  "VITE_GLOB_LOGIN_APP": "/skyeye-login/#/",
+  // 平台跳转地址
+  "VITE_GLOB_APP_PC": "/skyeyev3pc/",
+
+  "VITE_GLOB_QUESTION_LIST_VERSION": '',
+
+};
+
+
+
+Object.freeze(window.__PRODUCTION__SKYEYEADMIN__CONF__);
+Object.defineProperty(window, "__PRODUCTION__SKYEYEADMIN__CONF__", {
+  configurable: false,
+  writable: false,
+});

+ 17 - 0
utils/devProxy/staff-shangfei/proxy.ts

@@ -0,0 +1,17 @@
+import { PROXY_TYPE } from '../types';
+import path from 'path';
+
+export const proxy: PROXY_TYPE = {
+  serverHost: '192.168.13.68:8800',
+  loginHost: 'http://192.168.13.68/skyeye-login',
+  skyeyeFileUploadHost: 'http://192.168.13.68:9001',
+  nvrDownload: 'http://192.168.13.68/nvr_download',
+
+  push_stream_host: 'http://192.168.13.68:8080',
+  push_stream_host_shangfei: 'http://192.168.13.73:8080',
+  push_stream_host_shangfeiyuan: 'http://192.168.13.72:8080',
+  push_stream_host_beiyan: 'http://192.168.13.72:8080',
+  push_stream_host_default: 'http://192.168.13.73:8080',
+};
+
+export const appConfigPath = path.resolve(__dirname, 'app.config.js');

+ 23 - 0
utils/devProxy/staff-zongbu/app.config.js

@@ -0,0 +1,23 @@
+
+window.__PRODUCTION__SKYEYEADMIN__CONF__ = {
+  // document的title,以及显示在左侧导航栏的title,一般是项目的名称
+  "VITE_GLOB_APP_TITLE": "xxx33",
+  // 租户tenantCode,部分项目必填
+  "VITE_GLOB_TENANT_CODE": "shangfeizongbu",
+  // 接口前缀
+  "VITE_GLOB_API_URL_PREFIX": "/eye_api_bak/api",
+  // app下载地址
+  "VITE_GLOB_APP_DOWNLOAD_QRCODE": "/apk/skyeye.apk",
+  // 登录的前端地址
+  "VITE_GLOB_LOGIN_APP": "/skyeye-login-zongbu/#/",
+  // 平台跳转地址
+  "VITE_GLOB_APP_PC": "/skyeyev3pc-zongbu/",
+
+  'VITE_GLOB_QUESTION_LIST_VERSION': ''
+
+};
+Object.freeze(window.__PRODUCTION__SKYEYEADMIN__CONF__);
+Object.defineProperty(window, "__PRODUCTION__SKYEYEADMIN__CONF__", {
+  configurable: false,
+  writable: false,
+});

+ 16 - 0
utils/devProxy/staff-zongbu/proxy.ts

@@ -0,0 +1,16 @@
+import { PROXY_TYPE } from '../types';
+import path from 'path';
+
+export const proxy: PROXY_TYPE = {
+  serverHost: '192.168.13.68:8800',
+  loginHost: 'http://192.168.13.68/skyeye-login',
+  skyeyeFileUploadHost: 'http://192.168.13.68:9001',
+  nvrDownload: 'http://192.168.13.68/nvr_download',
+  push_stream_host: 'http://192.168.13.68:8080',
+  push_stream_host_shangfei: 'http://192.168.13.73:8080',
+  push_stream_host_shangfeiyuan: 'http://192.168.13.72:8080',
+  push_stream_host_beiyan: 'http://192.168.13.72:8080',
+  push_stream_host_default: 'http://192.168.13.73:8080',
+};
+
+export const appConfigPath = path.resolve(__dirname, 'app.config.js');

+ 21 - 0
utils/devProxy/types.ts

@@ -0,0 +1,21 @@
+export interface PROXY_TYPE {
+  /** 后端服务的地址 */
+  serverHost: string;
+
+  /** 登录地址 */
+  loginHost: string;
+  /** 文件存储服务minio */
+  skyeyeFileUploadHost: string;
+  /** nvr视频文件下载地址 */
+  nvrDownload: string;
+  /** 流媒体服务 */
+  push_stream_host: string;
+  /** 上飞公司的流媒体服务 */
+  push_stream_host_shangfei?: string;
+  /** 上飞院的流媒体服务 */
+  push_stream_host_shangfeiyuan?: string;
+  /** 北研的流媒体服务 */
+  push_stream_host_beiyan?: string;
+  /** 默认流媒体服务 */
+  push_stream_host_default?: string;
+}

+ 30 - 0
utils/devProxy/utils.ts

@@ -0,0 +1,30 @@
+import { PROXY_TYPE } from './types';
+import fs from 'fs-extra';
+import path from 'path';
+import { createProxy, ProxyList } from '../../build/vite/proxy';
+
+export const createProxyList = (devProxy: PROXY_TYPE) =>
+  [
+    ['/ws_api_bak/', `ws://${devProxy.serverHost}`],
+    ['/eye_api_bak/', `http://${devProxy.serverHost}`],
+    ['/skyeye-login/', devProxy.loginHost],
+    ['/skyeye-file-upload/', devProxy.skyeyeFileUploadHost],
+    ['/nvr_download/', devProxy.nvrDownload],
+    ['/push_stream_host_shangfei/', devProxy.push_stream_host_shangfei],
+    ['/push_stream_host_shangfeiyuan/', devProxy.push_stream_host_shangfeiyuan],
+    ['/push_stream_host_beiyan/', devProxy.push_stream_host_beiyan],
+    ['/push_stream_host_default/', devProxy.push_stream_host_default],
+    // 这个要放在最后
+    ['/push_stream_host/', devProxy.push_stream_host],
+  ] as ProxyList;
+
+export const createConfig = (appConfigPath: string) => {
+  // 将app.config.js复制到public目录下
+  fs.copy(appConfigPath, path.resolve(process.cwd(), 'public/app.config.js'));
+};
+
+export const start = (proxy: PROXY_TYPE, appConfigPath: string) => {
+  // 将app.config.js
+  createConfig(appConfigPath);
+  return createProxy(createProxyList(proxy));
+};

+ 26 - 0
utils/devProxy/zhongjiancai/app.config.js

@@ -0,0 +1,26 @@
+
+window.__PRODUCTION__SKYEYEADMIN__CONF__ = {
+  // document的title,以及显示在左侧导航栏的title,一般是项目的名称
+  "VITE_GLOB_APP_TITLE": "智能工厂视觉管控系统",
+  // 租户tenantCode,可以不用填
+  "VITE_GLOB_TENANT_CODE": "",
+  // 接口前缀
+  "VITE_GLOB_API_URL_PREFIX": "/eye_api_bak/api",
+  // app下载地址
+  "VITE_GLOB_APP_DOWNLOAD_QRCODE": "",
+  // 登录的前端地址
+  "VITE_GLOB_LOGIN_APP": "/skyeye-login/#/",
+  // 平台跳转地址
+  "VITE_GLOB_APP_PC": "/skyeyev3pc/",
+  /** 问题闭环处理,简单处理 */
+  "VITE_GLOB_QUESTION_LIST_VERSION": 'simple',
+
+};
+
+
+
+Object.freeze(window.__PRODUCTION__SKYEYEADMIN__CONF__);
+Object.defineProperty(window, "__PRODUCTION__SKYEYEADMIN__CONF__", {
+  configurable: false,
+  writable: false,
+});

+ 17 - 0
utils/devProxy/zhongjiancai/proxy.ts

@@ -0,0 +1,17 @@
+import { PROXY_TYPE } from '../types';
+import path from 'path';
+
+export const proxy: PROXY_TYPE = {
+  serverHost: '192.168.13.68:8811',
+  loginHost: 'http://192.168.13.68:70/skyeye-login',
+  skyeyeFileUploadHost: 'http://192.168.13.68:9001',
+  nvrDownload: 'http://192.168.13.68/nvr_download',
+
+  push_stream_host: 'http://192.168.13.68:8080',
+  push_stream_host_shangfei: 'http://192.168.13.73:8080',
+  push_stream_host_shangfeiyuan: 'http://192.168.13.72:8080',
+  push_stream_host_beiyan: 'http://192.168.13.72:8080',
+  push_stream_host_default: 'http://192.168.13.73:8080',
+};
+
+export const appConfigPath = path.resolve(__dirname, 'app.config.js');

+ 2 - 2
vite.config.ts

@@ -4,7 +4,7 @@ import path, { resolve } from 'path';
 import { wrapperEnv } from './build/utils';
 import { createVitePlugins } from './build/vite/plugin';
 import { OUTPUT_DIR } from './build/constant';
-import { createProxy } from './build/vite/proxy';
+import devProxy from './utils/devProxy';
 import pkg from './package.json';
 import { formatToDateTime } from './src/utils/dateUtil';
 import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
@@ -67,7 +67,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
     server: {
       host: true,
       port: VITE_PORT,
-      proxy: createProxy(VITE_PROXY),
+      proxy: devProxy,
       // proxy: {
       //     '/api': {
       //         target: '',