gaoluyang
2025-09-15 763922393024571b9666e0d40041a9e87c03b95d
部署修改
已添加46个文件
已修改4个文件
183 ■■■■■ 文件已修改
README.md 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/BHMY.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/CJNYico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/DHDCico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/HHKJIco.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/HYSNico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/JSMYico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/JYHJico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/JZYJico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/MXSCIco.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/RZNY.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/TJXM.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/WDSYico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/XYHBico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/ZQHXico.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/favicon/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/BHMYLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/CJNYLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/DHDCLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/HHKJLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/HYSNLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/JSMYLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/JYHJLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/JZYJLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/LCLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/MXSCLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/RZNYLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/TJXMLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/WDSYLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/XYHBLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/ZQHXLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/南通云从工业互联网有限公司.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/新缆(江苏)数字科技有限公司.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/芯导软件(江苏)有限公司.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/DHDCView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/HHKJView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/HYSNView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/JZYJView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/MXSCBack.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/RZNYView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/TJXMView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/WDSYView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/XYHBView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/screen/ZQHXView.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/config.json 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multiple/multiple-build.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md
@@ -33,6 +33,7 @@
# æž„建测试环境 yarn build:stage
# æž„建生产环境 yarn build:prod
# æž„建生产环境 yarn build:prod -- --company="AAA"
# å‰ç«¯è®¿é—®åœ°å€ http://localhost:80
```
index.html
@@ -7,7 +7,7 @@
  <meta name="renderer" content="webkit">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <link rel="icon" href="/favicon.ico">
  <title>陕西昭德环保型煤有限公司</title>
  <title>%VITE_APP_TITLE%</title>
  <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
  <style>
    html,
multiple/assets/favicon/BHMY.ico
multiple/assets/favicon/CJNYico.ico
multiple/assets/favicon/DHDCico.ico
multiple/assets/favicon/HHKJIco.ico
multiple/assets/favicon/HYSNico.ico
multiple/assets/favicon/JSMYico.ico
multiple/assets/favicon/JYHJico.ico
multiple/assets/favicon/JZYJico.ico
multiple/assets/favicon/MXSCIco.ico
multiple/assets/favicon/RZNY.ico
multiple/assets/favicon/TJXM.ico
multiple/assets/favicon/WDSYico.ico
multiple/assets/favicon/XYHBico.ico
multiple/assets/favicon/ZQHXico.ico
multiple/assets/favicon/favicon.ico
multiple/assets/logo/BHMYLogo.png
multiple/assets/logo/CJNYLogo.png
multiple/assets/logo/DHDCLogo.png
multiple/assets/logo/HHKJLogo.png
multiple/assets/logo/HYSNLogo.png
multiple/assets/logo/JSMYLogo.png
multiple/assets/logo/JYHJLogo.png
multiple/assets/logo/JZYJLogo.png
multiple/assets/logo/LCLogo.png
multiple/assets/logo/MXSCLogo.png
multiple/assets/logo/RZNYLogo.png
multiple/assets/logo/TJXMLogo.png
multiple/assets/logo/WDSYLogo.png
multiple/assets/logo/XYHBLogo.png
multiple/assets/logo/ZQHXLogo.png
multiple/assets/logo/logo.png
multiple/assets/logo/ÄÏÍ¨ÔÆ´Ó¹¤Òµ»¥ÁªÍøÓÐÏÞ¹«Ë¾.png
multiple/assets/logo/ÐÂÀ£¨½­ËÕ£©Êý×ֿƼ¼ÓÐÏÞ¹«Ë¾.png
multiple/assets/logo/оµ¼Èí¼þ£¨½­ËÕ£©ÓÐÏÞ¹«Ë¾.png
multiple/assets/screen/DHDCView.png
multiple/assets/screen/HHKJView.png
multiple/assets/screen/HYSNView.png
multiple/assets/screen/JZYJView.png
multiple/assets/screen/MXSCBack.png
multiple/assets/screen/RZNYView.png
multiple/assets/screen/TJXMView.png
multiple/assets/screen/WDSYView.png
multiple/assets/screen/XYHBView.png
multiple/assets/screen/ZQHXView.png
multiple/config.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
{
  "default": {
    "env": {
      "VITE_APP_TITLE": "芯导云(管理信息系统)"
    },
    "screen": "screen/JZYJView.png",
    "logo": "logo/HYSNLogo.png",
    "favicon": "favicon/HYSNico.ico"
  },
  "TEST": {
    "env": {
      "VITE_APP_TITLE": "中小企业数字化转型二级套餐包",
      "VITE_BASE_API": "http://114.132.189.42:7016"
    },
    "screen": "screen/HYSNView.png",
    "logo": "logo/LCLogo.png",
    "favicon": "favicon/BHMY.ico"
  },
  "XYHB": {
    "env": {
      "VITE_APP_TITLE": "宣屹环保信息管理系统",
      "VITE_BASE_API": "http://114.132.189.42:9054",
      "VITE_JAVA_API": "http://114.132.189.42:9053"
    },
    "screen": "screen/XYHBView.png",
    "logo": "logo/XYHBLogo.png",
    "favicon": "favicon/XYHBico.ico"
  },
  "BHMY": {
    "env": {
      "VITE_APP_TITLE": "博宏煤业信息管理系统",
      "VITE_BASE_API": "http://114.132.189.42:9072",
      "VITE_JAVA_API": "http://114.132.189.42:9071"
    },
    "screen": "screen/ZQHXView.png",
    "logo": "logo/BHMYLogo.png",
    "favicon": "favicon/BHMY.ico"
  },
  "RZNY": {
    "env": {
      "VITE_APP_TITLE": "锐择能源信息管理系统",
      "VITE_BASE_API": "http://114.132.189.42:9060",
      "VITE_JAVA_API": "http://114.132.189.42:9059"
    },
    "screen": "screen/RZNYView.png",
    "logo": "logo/RZNYLogo.png",
    "favicon": "favicon/RZNY.ico"
  },
  "TJXM": {
    "env": {
      "VITE_APP_TITLE": "泰江洗煤信息管理系统",
      "VITE_BASE_API": "http://114.132.189.42:9066",
      "VITE_JAVA_API": "http://114.132.189.42:9065"
    },
    "screen": "screen/TJXMView.png",
    "logo": "logo/TJXMLogo.png",
    "favicon": "favicon/TJXM.ico"
  },
  "CJNY": {
    "env": {
      "VITE_APP_TITLE": "创巨能源信息管理系统",
      "VITE_BASE_API": "http://114.132.189.42:9040",
      "VITE_JAVA_API": "http://114.132.189.42:9041"
    },
    "screen": "screen/MXSCBack.png",
    "logo": "logo/CJNYLogo.png",
    "favicon": "favicon/CJNYico.ico"
  },
  "JSMY": {
    "env": {
      "VITE_APP_TITLE": "金石煤业信息管理系统",
      "VITE_BASE_API": "http://114.132.189.42:9044",
      "VITE_JAVA_API": "http://114.132.189.42:9045"
    },
    "screen": "screen/MXSCBack.png",
    "logo": "logo/JSMYLogo.png",
    "favicon": "favicon/JSMYico.ico"
  },
  "screen": "/src/assets/images/login-background.png",
  "logo": "/src/assets/logo/logo.png",
  "favicon": "/public/favicon.ico"
}
multiple/multiple-build.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
import fs from 'fs/promises';
import fsSync from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import { execSync } from "child_process";
// èŽ·å– __dirname
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// è¯»å– JSON é…ç½®
const data = await fs.readFile(path.join(__dirname, 'config.json'), 'utf-8');
const config = JSON.parse(data);
// é¡¹ç›®è·¯å¾„
const rootPath = path.resolve(__dirname, '..');
const resourcePath = path.join(rootPath, 'multiple', 'assets');
const replacePath = path.join(rootPath, 'replace');
// èŽ·å–å‘½ä»¤è¡Œå‚æ•°
const params = parseArgs(process.argv);
const company = params["company"] ?? "default";
const companyMap = config[company];
const envFilePath = path.join(process.cwd(), '.env.production.local');
try {
    // 1️⃣ ç”Ÿæˆ .env
    console.log("=======生成.env=======");
    const envContent = Object.entries(companyMap.env)
        .map(([key, value]) => `${key}='${value}'`)
        .join('\n') + '\n';
    await fs.writeFile(envFilePath, envContent, 'utf-8');
    // 2️⃣ å¤‡ä»½åŽŸå§‹èµ„æºå¹¶æ›¿æ¢
    console.log("=======修改资源=======");
    for (const [key, value] of Object.entries(companyMap)) {
        if (key === 'env') continue;
        const originFile = path.join(rootPath, config[key]);
        const backupFile = path.join(replacePath, config[key]);
        const replaceFile = path.join(resourcePath, companyMap[key]);
        await fs.mkdir(path.dirname(backupFile), { recursive: true });
        await fs.copyFile(originFile, backupFile);
        await fs.copyFile(replaceFile, originFile);
    }
    console.log("=====开始打包======");
    execSync("vite build", { stdio: "inherit" });
    console.log("=====打包完成======");
} finally {
    console.log("=====恢复资源======");
    // åˆ é™¤ä¸´æ—¶ .env æ–‡ä»¶
    if (fsSync.existsSync(envFilePath)) {
        await fs.unlink(envFilePath);
        console.log(`🗑️ å·²åˆ é™¤ ${envFilePath}`);
    }
    // æ¢å¤èµ„源文件
    if (fsSync.existsSync(replacePath)) {
        for (const [key, value] of Object.entries(companyMap)) {
            if (key === 'env') continue;
            const originFile = path.join(rootPath, config[key]);
            const backupFile = path.join(replacePath, config[key]);
            await fs.copyFile(backupFile, originFile);
        }
        await fs.rm(replacePath, { recursive: true, force: true });
        console.log(`🗑️ å·²åˆ é™¤ ${replacePath}`);
    }
}
// ç®€å•命令行参数解析
function parseArgs(argv) {
    const params = {};
    for (const arg of argv.slice(2)) {
        if (arg.startsWith('--')) {
            const [key, value] = arg.slice(2).split('=');
            params[key] = value ?? true;
        }
    }
    return params;
}
package.json
@@ -7,7 +7,7 @@
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "build:prod": "node multiple/multiple-build.js",
    "build:stage": "vite build --mode staging",
    "preview": "vite preview"
  },
vite.config.js
@@ -2,16 +2,17 @@
import path from 'path'
import createVitePlugins from './vite/plugins'
const baseUrl = 'http://114.132.189.42:7016' // åŽç«¯æŽ¥å£
// const baseUrl = 'http://114.132.189.42:7016' // åŽç«¯æŽ¥å£
// const baseUrl = 'http://114.132.189.42:7016'
// const baseUrl = 'http://10.42.128.207:7016' // åŽç«¯æŽ¥å£
// const baseUrl = 'http://192.168.1.144:7016' // åŽç«¯æŽ¥å£
// const baseUrl = 'http://10.36.17.159:7016' // åŽç«¯æŽ¥å£
// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {
  const env = loadEnv(mode, process.cwd())
  const { VITE_APP_ENV } = env
  const baseUrl =
    env.VITE_APP_ENV === "development"
      ? "http://114.132.189.42:7016"
      : env.VITE_BASE_API;
  return {
    // éƒ¨ç½²ç”Ÿäº§çŽ¯å¢ƒå’Œå¼€å‘çŽ¯å¢ƒä¸‹çš„URL。
    // é»˜è®¤æƒ…况下,vite ä¼šå‡è®¾ä½ çš„应用是被部署在一个域名的根路径上