refactor: enforce 800 line source limits
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user