diff --git a/web/src/assets/styles/app.css b/web/src/assets/styles/app.css index d94699b..f4e36ad 100644 --- a/web/src/assets/styles/app.css +++ b/web/src/assets/styles/app.css @@ -91,6 +91,9 @@ .main.settings-main { grid-template-rows: minmax(0, 1fr); } +.main.audit-detail-main { + grid-template-rows: minmax(0, 1fr); +} .workarea { overflow: auto; padding: 24px; } .workarea.chat-workarea { min-height: 0; diff --git a/web/src/assets/styles/views/audit-view.css b/web/src/assets/styles/views/audit-view.css index a2322ee..2599585 100644 --- a/web/src/assets/styles/views/audit-view.css +++ b/web/src/assets/styles/views/audit-view.css @@ -247,6 +247,7 @@ tbody tr.spotlight { height: 100%; overflow: auto; display: grid; + align-content: start; gap: 16px; } @@ -299,6 +300,10 @@ tbody tr.spotlight { margin-top: 12px; } +.inline-review-meta { + margin-top: 10px; +} + .hero-review-meta span { display: inline-flex; align-items: center; @@ -366,7 +371,7 @@ tbody tr.spotlight { } .detail-grid.skill-md-detail-grid { - grid-template-columns: minmax(0, 1fr) 360px; + grid-template-columns: minmax(0, 1fr) 372px; align-items: stretch; } @@ -476,6 +481,7 @@ tbody tr.spotlight { .skill-review-side { align-content: start; + padding-right: 8px; } .review-card { diff --git a/web/src/views/AppShellRouteView.vue b/web/src/views/AppShellRouteView.vue index f6cf2fc..1880438 100644 --- a/web/src/views/AppShellRouteView.vue +++ b/web/src/views/AppShellRouteView.vue @@ -18,14 +18,15 @@ 'workbench-main': activeView === 'workbench', 'requests-main': activeView === 'requests', 'approval-main': activeView === 'approval', - 'policies-main': activeView === 'policies', - 'audit-main': activeView === 'audit', - 'employees-main': activeView === 'employees', - 'settings-main': activeView === 'settings' - }" + 'policies-main': activeView === 'policies', + 'audit-main': activeView === 'audit', + 'audit-detail-main': activeView === 'audit' && auditDetailOpen, + 'employees-main': activeView === 'employees', + 'settings-main': activeView === 'settings' + }" > - - + @@ -151,8 +152,9 @@ import { useAppShell } from '../composables/useAppShell.js' import { useSystemState } from '../composables/useSystemState.js' import { filterNavItemsByAccess } from '../utils/accessControl.js' -const employeeSummary = ref(null) -const knowledgeSummary = ref(null) +const employeeSummary = ref(null) +const knowledgeSummary = ref(null) +const auditDetailOpen = ref(false) const { activeCase, diff --git a/web/src/views/scripts/AuditView.js b/web/src/views/scripts/AuditView.js index 9e2bf70..e91d291 100644 --- a/web/src/views/scripts/AuditView.js +++ b/web/src/views/scripts/AuditView.js @@ -1,4 +1,4 @@ -import { computed, ref } from 'vue' +import { computed, ref, watch } from 'vue' const TYPE_META = { skills: { @@ -545,7 +545,8 @@ const assets = [ export default { name: 'AuditView', - setup() { + emits: ['detail-open-change'], + setup(props, { emit }) { const tabs = [ { id: 'skills', label: 'Skills' }, { id: 'mcp', label: 'MCP' }, @@ -562,6 +563,14 @@ export default { const tableColumns = computed(() => activeMeta.value.tableColumns) const visibleSkills = computed(() => assets.filter((item) => item.type === activeType.value)) + watch( + selectedSkill, + (value) => { + emit('detail-open-change', Boolean(value)) + }, + { immediate: true } + ) + function openVersionSwitch(version) { if (!selectedSkill.value || version.version === selectedSkill.value.version) { return