feat: refactor monolithic App.vue into modular Vue component architecture
- Extract 711-line App.vue into 15+ focused files across 5 directories - Add data layer (icons, metrics, policies, auditTrail, requests) - Add composables (useNavigation, useRequests, useChat, useToast) - Add layout components (SidebarRail, TopBar, FilterBar) - Add shared components (PanelHead, InfoRow, ToastNotification) - Add business component (RequestTable) and 5 view components - Extract global CSS to assets/styles/global.css - Add start.sh with WSL/Windows cross-platform support - Add .gitignore for node_modules, dist, and IDE dirs
This commit is contained in:
31
src/views/PoliciesView.vue
Normal file
31
src/views/PoliciesView.vue
Normal file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<section class="view single">
|
||||
<article class="panel">
|
||||
<PanelHead eyebrow="Policy automation" title="规则运行状态" note="把关键政策、阈值和命中表现集中维护。" />
|
||||
<div class="list">
|
||||
<InfoRow
|
||||
v-for="policy in policies"
|
||||
:key="policy.code"
|
||||
:rank="policy.code"
|
||||
:title="policy.title"
|
||||
:note="policy.note"
|
||||
:badge="policy.badge"
|
||||
:tone="policy.tone"
|
||||
/>
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import PanelHead from '../components/shared/PanelHead.vue'
|
||||
import InfoRow from '../components/shared/InfoRow.vue'
|
||||
import { policies } from '../data/policies.js'
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.view { display: grid; gap: 22px; animation: fadeUp 220ms var(--ease) both; }
|
||||
.view.single { max-width: 1120px; }
|
||||
.panel { padding: 20px; }
|
||||
.list { display: grid; gap: 12px; }
|
||||
</style>
|
||||
Reference in New Issue
Block a user