Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 24f288655f | |||
| 1a06a01018 | |||
| 7668fff294 | |||
| a8e6479193 |
@@ -76,10 +76,29 @@ jobs:
|
||||
echo "Version: $VERSION"
|
||||
echo "Commit: $COMMIT"
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
- name: Install Frontend Dependencies & Build
|
||||
run: |
|
||||
cd src/frontend
|
||||
npm install
|
||||
npm run build
|
||||
cd ../..
|
||||
|
||||
- name: Copy Built Frontend to wwwroot
|
||||
run: |
|
||||
mkdir -p src/dotnet/QuantEngine.Web/wwwroot
|
||||
cp -r src/frontend/dist/* src/dotnet/QuantEngine.Web/wwwroot/
|
||||
echo "✓ Frontend assets copied to BFF wwwroot"
|
||||
|
||||
- name: Restore
|
||||
run: |
|
||||
dotnet restore src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj
|
||||
|
||||
|
||||
- name: Build (Release)
|
||||
run: |
|
||||
dotnet build src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj \
|
||||
|
||||
@@ -50,7 +50,9 @@
|
||||
<li class="nav-item"><a class="nav-link text-white py-1 px-3 @NavActive("/Admin/Database")" href="/Admin/Database">DB 테이블 관리</a></li>
|
||||
<li class="nav-item"><a class="nav-link text-white py-1 px-3 @NavActive("/Admin/Users")" href="/Admin/Users">사용자 관리</a></li>
|
||||
<li class="nav-item"><a class="nav-link text-white py-1 px-3 @NavActive("/Admin/Operations")" href="/Admin/Operations">운영 관리</a></li>
|
||||
<li class="nav-item"><a class="nav-link py-1 px-3 font-weight-bold" style="color: #F1C40F;" href="/templates">🛠️ 프로토타입 갤러리</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 2. Center High-Density Data Grid Body -->
|
||||
|
||||
@@ -192,11 +192,11 @@ try
|
||||
Log.Warning("Hangfire setup failed: {Message}", ex.Message);
|
||||
}
|
||||
|
||||
// Root redirect: unauthenticated → /Account/Login, authenticated → /Admin/Dashboard
|
||||
// Root redirect: unauthenticated → /Account/Login, authenticated → Vue 3 SPA /templates
|
||||
app.MapGet("/", context =>
|
||||
{
|
||||
if (context.User?.Identity?.IsAuthenticated ?? false)
|
||||
context.Response.Redirect("/Admin/Dashboard");
|
||||
context.Response.Redirect("/templates");
|
||||
else
|
||||
context.Response.Redirect("/Account/Login");
|
||||
return Task.CompletedTask;
|
||||
@@ -210,6 +210,8 @@ try
|
||||
});
|
||||
|
||||
app.MapRazorPages();
|
||||
app.MapFallbackToFile("index.html");
|
||||
|
||||
|
||||
app.Run();
|
||||
}
|
||||
|
||||
Generated
+2801
-1
File diff suppressed because it is too large
Load Diff
@@ -17,8 +17,10 @@
|
||||
"pinia": "^4.0.2",
|
||||
"primevue": "^4.3.1",
|
||||
"vue": "^3.5.39",
|
||||
"vue-router": "^4.6.4"
|
||||
"vue-router": "^4.6.4",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.13.2",
|
||||
"@vitejs/plugin-vue": "^6.0.7",
|
||||
|
||||
@@ -52,7 +52,8 @@ const columnDefs = ref<ColDef[]>([
|
||||
{
|
||||
headerName: '에러 건수', field: 'totalErrors',
|
||||
type: 'numericColumn',
|
||||
cellStyle: params => params.value > 0 ? { color: '#e74c3c', fontWeight: 'bold' } : { color: '#2ecc71' }
|
||||
cellStyle: params => params.value > 0 ? { color: '#e74c3c', fontWeight: 'bold' } : { color: '#2ecc71', fontWeight: 'normal' }
|
||||
|
||||
},
|
||||
{
|
||||
headerName: '실행 상태', field: 'status',
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import { defineConfig } from 'vitest/config'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
|
||||
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
plugins: [vue() as any],
|
||||
|
||||
test: {
|
||||
environment: 'jsdom',
|
||||
globals: true
|
||||
|
||||
Reference in New Issue
Block a user