refactor: enforce 800 line source limits

This commit is contained in:
caoxiaozhu
2026-06-22 11:58:53 +08:00
parent 08a4fa3577
commit 6d33ba5742
150 changed files with 27413 additions and 23791 deletions

View File

@@ -29,6 +29,12 @@ import { createCurrentYearDateRange } from '../utils/dateRangeDefaults.js'
const SESSION_TYPE_EXPENSE = 'expense'
const SMART_ENTRY_SOURCE_APPLICATION = 'application'
const SMART_ENTRY_SOURCE_REIMBURSEMENT = 'topbar'
const DOCUMENT_DETAIL_RETURN_TARGETS = new Set(['workbench', 'conversation'])
function resolveDocumentDetailReturnTarget(value) {
const target = String(value || '').trim()
return DOCUMENT_DETAIL_RETURN_TARGETS.has(target) ? target : ''
}
export function useAppShell() {
const route = useRoute()
@@ -99,10 +105,13 @@ export function useAppShell() {
})
const detailMode = computed(() => route.name === 'app-document-detail')
const detailReturnTarget = computed(() => String(route.query.returnTo || '').trim())
const detailBackLabel = computed(() => (
detailReturnTarget.value === 'workbench' ? '返回首页' : '返回单据中心'
))
const detailReturnTarget = computed(() => resolveDocumentDetailReturnTarget(route.query.returnTo))
const detailBackLabel = computed(() => {
if (detailReturnTarget.value === 'conversation') {
return '返回对话'
}
return detailReturnTarget.value === 'workbench' ? '返回首页' : '返回单据中心'
})
const detailAlerts = computed(() => (
detailMode.value
? buildDetailAlerts(selectedRequest.value, { currentUser: currentUser.value })
@@ -553,9 +562,9 @@ export function useAppShell() {
function buildDocumentDetailQuery(options = {}) {
const nextQuery = { ...route.query }
const returnTo = String(options.returnTo || '').trim()
if (returnTo === 'workbench') {
nextQuery.returnTo = 'workbench'
const returnTo = resolveDocumentDetailReturnTarget(options.returnTo)
if (returnTo) {
nextQuery.returnTo = returnTo
} else {
delete nextQuery.returnTo
}
@@ -583,12 +592,15 @@ export function useAppShell() {
}
function closeRequestDetail() {
if (detailReturnTarget.value === 'workbench') {
router.push({ name: 'app-workbench' })
return
if (detailReturnTarget.value === 'conversation') {
return router.push({ name: 'app-workbench' })
}
router.push({ name: 'app-documents', query: buildDocumentReturnQuery() })
if (detailReturnTarget.value === 'workbench') {
return router.push({ name: 'app-workbench' })
}
return router.push({ name: 'app-documents', query: buildDocumentReturnQuery() })
}
async function handleRequestUpdated(payload = {}) {
@@ -655,6 +667,7 @@ export function useAppShell() {
smartEntrySessionId,
detailAlerts,
detailBackLabel,
detailReturnTarget,
toast,
topBarView
}