diff --git a/cmd/all-package.bat b/cmd/all-package.bat new file mode 100644 index 0000000..b8e18fe --- /dev/null +++ b/cmd/all-package.bat @@ -0,0 +1,36 @@ +@echo off +echo. +echo ====== ZDXT All-in-One Package ====== +echo. + +set "ENV=dev" +if not "%~1"=="" set "ENV=%~1" + +echo Env: %ENV% +echo. + +echo [1/2] Server Package ... +echo. +powershell -ExecutionPolicy Bypass -File "%~dp0ep-package.ps1" -BuildEnv %ENV% +if %ERRORLEVEL% neq 0 ( + echo. + echo Server Package Failed! + pause + exit /b 1 +) + +echo. +echo [2/2] Client Package ... +echo. +powershell -ExecutionPolicy Bypass -File "%~dp0client-package.ps1" -BuildEnv %ENV% +if %ERRORLEVEL% neq 0 ( + echo. + echo Client Package Failed! + pause + exit /b 1 +) + +echo. +echo ====== All Done! ====== +echo. +pause diff --git a/cmd/client-package.bat b/cmd/client-package.bat new file mode 100644 index 0000000..c08561d --- /dev/null +++ b/cmd/client-package.bat @@ -0,0 +1,15 @@ +@echo off +echo. +echo ====== ZDXT Client Package ====== +echo. + +set "ENV=dev" +if not "%~1"=="" set "ENV=%~1" + +echo Env: %ENV% +echo. + +powershell -ExecutionPolicy Bypass -File "%~dp0client-package.ps1" -BuildEnv %ENV% + +echo. +pause diff --git a/cmd/client-package.ps1 b/cmd/client-package.ps1 new file mode 100644 index 0000000..ded7144 --- /dev/null +++ b/cmd/client-package.ps1 @@ -0,0 +1,155 @@ +# client-package.ps1 +# 一键打包前端项目:zdxt-admin-plus-ui + zdxt-enforcement-code-app +# 输出到 /dist/{timestamp}_{env}/ 目录 +# +# 用法: +# .\client-package.ps1 # 默认 dev 环境 +# .\client-package.ps1 -BuildEnv prod # prod 环境 + +param( + [ValidateSet("dev", "prod")] + [string]$BuildEnv = "dev" +) + +$ErrorActionPreference = "Stop" +$projectRoot = (Get-Item $PSScriptRoot).Parent.FullName +$timestamp = Get-Date -Format "yyyy-MM-dd_HH" +$folderName = "{0}_{1}" -f $timestamp, $BuildEnv +$deployDir = Join-Path $projectRoot "dist\$folderName" + +# --- 项目配置 --- +$uiProjectDir = Join-Path $projectRoot "zdxt-web-client\zdxt-admin-plus-ui" +$uiName = "zdxt-admin-plus-ui" +$uiOutputName = "zdxt-sup-web" + +$appProjectDir = Join-Path $projectRoot "zdxt-web-client\zdxt-enforcement-code-app" +$appEndpoints = @( + @{ mode = "enterprise"; output = "zdxt-ent-app" }, + @{ mode = "enforcement"; output = "zdxt-enf-app" } +) + +Write-Host "" +Write-Host "============================================" -ForegroundColor Cyan +Write-Host " ZDXT Client Package Script" -ForegroundColor Cyan +Write-Host (" Env: {0} | Timestamp: {1}" -f $BuildEnv, $timestamp) -ForegroundColor Cyan +Write-Host (" Output: dist\{0}" -f $folderName) -ForegroundColor Cyan +Write-Host "============================================" -ForegroundColor Cyan +Write-Host "" + +# ====================================================== +# Part 1: zdxt-admin-plus-ui +# ====================================================== +Write-Host ">>> [Part 1/2] zdxt-admin-plus-ui" -ForegroundColor Magenta +Write-Host "" + +# 1.1 npm install +Write-Host "[1/3] npm install ..." -ForegroundColor Yellow +Set-Location $uiProjectDir + +if (-not (Test-Path (Join-Path $uiProjectDir "node_modules"))) { + npm install + if ($LASTEXITCODE -ne 0) { + Write-Host "npm install Failed!" -ForegroundColor Red + exit 1 + } + Write-Host "[1/3] npm install Success" -ForegroundColor Green +} else { + Write-Host "[1/3] node_modules exists, skip install" -ForegroundColor Green +} + +# 1.2 Vite Build +Write-Host "" +$buildScript = "{0}-build:{1}" -f $uiName, $BuildEnv +Write-Host ("[2/3] npm run {0} ..." -f $buildScript) -ForegroundColor Yellow + +npm run $buildScript +if ($LASTEXITCODE -ne 0) { + Write-Host "Vite Build Failed!" -ForegroundColor Red + exit 1 +} +Write-Host "[2/3] Vite Build Success" -ForegroundColor Green + +# 1.3 Copy +Write-Host "" +Write-Host "[3/3] Copy Artifacts ..." -ForegroundColor Yellow +$buildOutputDir = Join-Path $uiProjectDir "dist\$BuildEnv" +if (-not (Test-Path $buildOutputDir)) { + Write-Host (" Build output not found: {0}" -f $buildOutputDir) -ForegroundColor Red + exit 1 +} +$targetDir = Join-Path $deployDir $uiOutputName +New-Item -ItemType Directory -Force -Path $targetDir | Out-Null +Copy-Item -Path (Join-Path $buildOutputDir "*") -Destination $targetDir -Recurse -Force +Write-Host (" [ui] {0}" -f $uiOutputName) -ForegroundColor Green + +# ====================================================== +# Part 2: zdxt-enforcement-code-app (enterprise + enforcement) +# ====================================================== +Write-Host "" +Write-Host ">>> [Part 2/2] zdxt-enforcement-code-app" -ForegroundColor Magenta +Write-Host "" + +# 2.1 npm install +Write-Host "[1/3] npm install ..." -ForegroundColor Yellow +Set-Location $appProjectDir + +if (-not (Test-Path (Join-Path $appProjectDir "node_modules"))) { + npm install + if ($LASTEXITCODE -ne 0) { + Write-Host "npm install Failed!" -ForegroundColor Red + exit 1 + } + Write-Host "[1/3] npm install Success" -ForegroundColor Green +} else { + Write-Host "[1/3] node_modules exists, skip install" -ForegroundColor Green +} + +# 2.2 Build each endpoint +Write-Host "" +Write-Host "[2/3] Vite Build (2 endpoints) ..." -ForegroundColor Yellow + +foreach ($ep in $appEndpoints) { + $mode = $ep.mode + $outputName = $ep.output + $script = "app-build:{0}-{1}" -f $mode, $BuildEnv + + Write-Host "" + Write-Host (" Building: npm run {0} ..." -f $script) -ForegroundColor Yellow + npm run $script + if ($LASTEXITCODE -ne 0) { + Write-Host (" Build [{0}] Failed!" -f $mode) -ForegroundColor Red + exit 1 + } + Write-Host (" Build [{0}] Success" -f $mode) -ForegroundColor Green +} + +# 2.3 Copy each endpoint +Write-Host "" +Write-Host "[3/3] Copy Artifacts ..." -ForegroundColor Yellow + +foreach ($ep in $appEndpoints) { + $mode = $ep.mode + $outputName = $ep.output + $appBuildDir = Join-Path $appProjectDir ("dist\{0}-{1}" -f $mode, $BuildEnv) + + if (-not (Test-Path $appBuildDir)) { + Write-Host (" Build output not found: {0}" -f $appBuildDir) -ForegroundColor Red + exit 1 + } + + $appTargetDir = Join-Path $deployDir $outputName + New-Item -ItemType Directory -Force -Path $appTargetDir | Out-Null + Copy-Item -Path (Join-Path $appBuildDir "*") -Destination $appTargetDir -Recurse -Force + Write-Host (" [app] {0}" -f $outputName) -ForegroundColor Green +} + +# ============ Done ============ +Write-Host "" +Write-Host "============================================" -ForegroundColor Cyan +Write-Host " All Client Builds Done!" -ForegroundColor Cyan +Write-Host (" Output: {0}" -f $deployDir) -ForegroundColor Cyan +Write-Host " |- zdxt-sup-web" -ForegroundColor Cyan +Write-Host " |- zdxt-ent-app" -ForegroundColor Cyan +Write-Host " |- zdxt-enf-app" -ForegroundColor Cyan +Write-Host "============================================" -ForegroundColor Cyan +Write-Host "" diff --git a/cmd/ep-package.ps1 b/cmd/ep-package.ps1 index 0f8b4d4..48ffed4 100644 --- a/cmd/ep-package.ps1 +++ b/cmd/ep-package.ps1 @@ -13,8 +13,8 @@ param( $ErrorActionPreference = "Stop" $projectRoot = (Get-Item $PSScriptRoot).Parent.FullName -# Windows 文件名不支持冒号(:), 使用 yyyy-MM-dd_HH-mm-ss 格式 -$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" +# Windows 文件名不支持冒号(:), 使用 yyyy-MM-dd_HH 格式 +$timestamp = Get-Date -Format "yyyy-MM-dd_HH" $folderName = "{0}_{1}" -f $timestamp, $BuildEnv $deployDir = Join-Path $projectRoot "dist\$folderName" diff --git a/zdxt-web-client/zdxt-enforcement-code-app/package.json b/zdxt-web-client/zdxt-enforcement-code-app/package.json index f6592d7..eb5d97c 100644 --- a/zdxt-web-client/zdxt-enforcement-code-app/package.json +++ b/zdxt-web-client/zdxt-enforcement-code-app/package.json @@ -5,7 +5,11 @@ "type": "module", "scripts": { "app-vite:enterprise-dev": "vite --mode enterprise-dev", - "app-vite:enforcement-dev": "vite --mode enforcement-dev" + "app-vite:enforcement-dev": "vite --mode enforcement-dev", + "app-build:enterprise-dev": "vite build --mode enterprise-dev --outDir dist/enterprise-dev", + "app-build:enterprise-prod": "vite build --mode enterprise-prod --outDir dist/enterprise-prod", + "app-build:enforcement-dev": "vite build --mode enforcement-dev --outDir dist/enforcement-dev", + "app-build:enforcement-prod": "vite build --mode enforcement-prod --outDir dist/enforcement-prod" }, "dependencies": { "@zxing/library": "^0.20.0", diff --git a/zdxt-web-client/zdxt-enforcement-code-app/src/router/home.js b/zdxt-web-client/zdxt-enforcement-code-app/src/router/home.js index 534665e..7fd5546 100644 --- a/zdxt-web-client/zdxt-enforcement-code-app/src/router/home.js +++ b/zdxt-web-client/zdxt-enforcement-code-app/src/router/home.js @@ -45,18 +45,18 @@ const routes = [ }, }, // 企业信息登记 - { + /*{ path: "/enterprise/register", name: "enterpriseRegister", component: () => import("@/views/enterprise/register.vue"), - }, + },*/ // 执法监督码 { path: "/enterprise/qrCode", name: "enterpriseQrCode", component: () => import("@/views/enterprise/qrCode.vue"), }, - + //历史执法信息 { path: "/enterprise/registrationList", @@ -129,7 +129,7 @@ const routes = [ name: "registrationSelectList", component: () => import("@/views/enterprise/registrationSelectList.vue"), }, - + // 执法登记详情 { path: "/registrationDetail", diff --git a/zdxt-web-client/zdxt-enforcement-code-app/vite-env/.env.enforcement-prod b/zdxt-web-client/zdxt-enforcement-code-app/vite-env/.env.enforcement-prod new file mode 100644 index 0000000..0f23a32 --- /dev/null +++ b/zdxt-web-client/zdxt-enforcement-code-app/vite-env/.env.enforcement-prod @@ -0,0 +1,4 @@ +# 执法端开发环境 +VITE_PORT = 12002 +VITE_BASE_URL = 'http://localhost:17000/enf-ep' +VITE_DEFAULT_LOGIN = '/enforce/login' diff --git a/zdxt-web-client/zdxt-enforcement-code-app/vite-env/.env.enterprise-prod b/zdxt-web-client/zdxt-enforcement-code-app/vite-env/.env.enterprise-prod new file mode 100644 index 0000000..6a798a0 --- /dev/null +++ b/zdxt-web-client/zdxt-enforcement-code-app/vite-env/.env.enterprise-prod @@ -0,0 +1,4 @@ +# 企业端开发环境 +VITE_PORT = 12001 +VITE_BASE_URL = 'http://localhost:17000/ent-ep' +VITE_DEFAULT_LOGIN = '/enterprise/login'