Files
DashBoard/frontend/vite.config.js
egg f14591c7dc feat(mid-section-defect): full-line bidirectional defect trace center with dual query mode
Transform /mid-section-defect from TMTT-only backward analysis into a full-line
bidirectional defect traceability center supporting all detection stations.

Key changes:
- Parameterized station detection: any workcenter group as detection station
- Bidirectional tracing: backward (upstream attribution) + forward (downstream reject rates)
- Dual query mode: date range OR LOT/工單/WAFER container-based seed resolution
- Multi-select filters for upstream station, equipment model (RESOURCEFAMILYNAME), and loss reasons
- Progressive 3-stage trace pipeline (seed-resolve → lineage → events) with streaming UI
- Equipment model lookup via resource cache instead of SPECNAME
- Session caching, auto-refresh, searchable MultiSelect with fuzzy matching
- Remove legacy tmtt-defect module (fully superseded)
- Archive openspec change artifacts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:16:33 +08:00

61 lines
2.4 KiB
JavaScript

import { defineConfig } from 'vite';
import { resolve } from 'node:path';
import vue from '@vitejs/plugin-vue';
export default defineConfig(({ mode }) => ({
base: '/static/dist/',
plugins: [vue()],
publicDir: false,
build: {
outDir: '../src/mes_dashboard/static/dist',
emptyOutDir: false,
sourcemap: mode !== 'production',
rollupOptions: {
input: {
portal: resolve(__dirname, 'src/portal/main.js'),
'portal-shell': resolve(__dirname, 'src/portal-shell/index.html'),
'wip-overview': resolve(__dirname, 'src/wip-overview/index.html'),
'wip-detail': resolve(__dirname, 'src/wip-detail/index.html'),
'hold-detail': resolve(__dirname, 'src/hold-detail/index.html'),
'hold-overview': resolve(__dirname, 'src/hold-overview/index.html'),
'hold-history': resolve(__dirname, 'src/hold-history/index.html'),
'reject-history': resolve(__dirname, 'src/reject-history/index.html'),
'resource-status': resolve(__dirname, 'src/resource-status/index.html'),
'resource-history': resolve(__dirname, 'src/resource-history/index.html'),
'job-query': resolve(__dirname, 'src/job-query/main.js'),
'excel-query': resolve(__dirname, 'src/excel-query/main.js'),
tables: resolve(__dirname, 'src/tables/index.html'),
'query-tool': resolve(__dirname, 'src/query-tool/main.js'),
'qc-gate': resolve(__dirname, 'src/qc-gate/index.html'),
'mid-section-defect': resolve(__dirname, 'src/mid-section-defect/index.html'),
'admin-performance': resolve(__dirname, 'src/admin-performance/index.html')
},
output: {
entryFileNames: '[name].js',
chunkFileNames: 'chunks/[name]-[hash].js',
assetFileNames: '[name][extname]',
manualChunks(id) {
const normalizedId = id.replace(/\\/g, '/');
if (!normalizedId.includes('node_modules')) {
return;
}
if (
normalizedId.includes('/node_modules/echarts/') ||
normalizedId.includes('/node_modules/zrender/') ||
normalizedId.includes('/node_modules/vue-echarts/')
) {
return 'vendor-echarts';
}
if (
normalizedId.includes('/node_modules/vue/') ||
normalizedId.includes('/node_modules/@vue/')
) {
return 'vendor-vue';
}
return 'vendor';
}
}
}
}
}));