25 lines
1.2 KiB
JavaScript
25 lines
1.2 KiB
JavaScript
|
|
import { computed, ref } from 'vue'
|
||
|
|
import { icons } from '../data/icons.js'
|
||
|
|
|
||
|
|
export const navItems = [
|
||
|
|
{ id: 'overview', label: '运营总览', icon: icons.dashboard, title: '企业报销智能运营台', desc: '面向财务共享中心的审批、风控、SLA 与智能体协同工作台。' },
|
||
|
|
{ id: 'chat', label: '合规对话', icon: icons.message, title: 'AI 合规对话', desc: '上传单据、追问制度依据,并生成可留痕的审核建议。' },
|
||
|
|
{ id: 'requests', label: '报销队列', icon: icons.list, title: '报销申请队列', desc: '按风险、补件状态和 AI 建议处理待审单据。' },
|
||
|
|
{ id: 'policies', label: '政策规则', icon: icons.file, title: '政策规则中心', desc: '维护差旅、招待、采购和发票校验规则。' },
|
||
|
|
{ id: 'audit', label: '审计追踪', icon: icons.audit, title: '审计追踪', desc: '查看关键审批动作、AI 建议和制度命中记录。' }
|
||
|
|
]
|
||
|
|
|
||
|
|
export function useNavigation() {
|
||
|
|
const activeView = ref('overview')
|
||
|
|
|
||
|
|
const currentView = computed(
|
||
|
|
() => navItems.find((item) => item.id === activeView.value) ?? navItems[0]
|
||
|
|
)
|
||
|
|
|
||
|
|
function setView(view) {
|
||
|
|
activeView.value = view
|
||
|
|
}
|
||
|
|
|
||
|
|
return { activeView, currentView, setView, navItems }
|
||
|
|
}
|