feat(web): update travel request and reimbursement views
This commit is contained in:
@@ -1976,10 +1976,8 @@ export default {
|
||||
const reviewCancelDialogOpen = ref(false)
|
||||
const reviewEditDialogOpen = ref(false)
|
||||
const deleteSessionDialogOpen = ref(false)
|
||||
const leaveKnowledgeDialogOpen = ref(false)
|
||||
const reviewActionBusy = ref(false)
|
||||
const deleteSessionBusy = ref(false)
|
||||
const leaveKnowledgeBusy = ref(false)
|
||||
const reviewEditFields = ref([])
|
||||
const reviewActionMessageId = ref('')
|
||||
const reviewInlineForm = ref(createEmptyInlineReviewState())
|
||||
@@ -2035,6 +2033,7 @@ export default {
|
||||
}
|
||||
return labels[currentInsight.value.intent] ?? 'AI 处理中'
|
||||
})
|
||||
let knowledgeSessionResetPromise = Promise.resolve()
|
||||
const canDeleteCurrentSession = computed(
|
||||
() => Boolean(conversationId.value) || messages.value.some((item) => item.role === 'user')
|
||||
)
|
||||
@@ -2190,6 +2189,27 @@ export default {
|
||||
return buildEmptySessionState(targetSessionType)
|
||||
}
|
||||
|
||||
function resetKnowledgeSessionSnapshot() {
|
||||
const emptyKnowledgeState = buildEmptySessionState(SESSION_TYPE_KNOWLEDGE)
|
||||
sessionSnapshots.value[SESSION_TYPE_KNOWLEDGE] = emptyKnowledgeState
|
||||
|
||||
if (activeSessionType.value === SESSION_TYPE_KNOWLEDGE) {
|
||||
applySessionState(emptyKnowledgeState)
|
||||
}
|
||||
}
|
||||
|
||||
function clearKnowledgeSessionOnEntry() {
|
||||
resetKnowledgeSessionSnapshot()
|
||||
knowledgeSessionResetPromise = clearUserConversations(resolveCurrentUserId(), SESSION_TYPE_KNOWLEDGE)
|
||||
.catch((error) => {
|
||||
console.warn('Failed to clear knowledge session on entry:', error)
|
||||
})
|
||||
.finally(() => {
|
||||
resetKnowledgeSessionSnapshot()
|
||||
})
|
||||
return knowledgeSessionResetPromise
|
||||
}
|
||||
|
||||
async function switchSessionType(targetSessionType) {
|
||||
const normalizedTarget = String(targetSessionType || '').trim() || SESSION_TYPE_EXPENSE
|
||||
if (normalizedTarget === activeSessionType.value || sessionSwitchBusy.value) {
|
||||
@@ -2257,6 +2277,7 @@ export default {
|
||||
)
|
||||
|
||||
onMounted(() => {
|
||||
void clearKnowledgeSessionOnEntry()
|
||||
currentInsight.value = currentInsight.value || buildWelcomeInsight(props.entrySource, linkedRequest.value, activeSessionType.value)
|
||||
if (props.initialPrompt?.trim() || props.initialFiles.length) {
|
||||
const initialMerge = mergeFilesWithLimit([], Array.from(props.initialFiles), MAX_ATTACHMENTS)
|
||||
@@ -2585,15 +2606,6 @@ export default {
|
||||
}
|
||||
|
||||
function requestCloseWorkbench() {
|
||||
if (submitting.value || reviewActionBusy.value || deleteSessionBusy.value || leaveKnowledgeBusy.value || sessionSwitchBusy.value) {
|
||||
return
|
||||
}
|
||||
|
||||
if (isKnowledgeSession.value) {
|
||||
leaveKnowledgeDialogOpen.value = true
|
||||
return
|
||||
}
|
||||
|
||||
emit('close')
|
||||
}
|
||||
|
||||
@@ -2663,31 +2675,6 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
function closeLeaveKnowledgeDialog() {
|
||||
if (leaveKnowledgeBusy.value) {
|
||||
return
|
||||
}
|
||||
leaveKnowledgeDialogOpen.value = false
|
||||
}
|
||||
|
||||
async function confirmLeaveKnowledgeSession() {
|
||||
if (leaveKnowledgeBusy.value || sessionSwitchBusy.value) {
|
||||
return
|
||||
}
|
||||
|
||||
leaveKnowledgeBusy.value = true
|
||||
try {
|
||||
await clearUserConversations(resolveCurrentUserId(), SESSION_TYPE_KNOWLEDGE)
|
||||
sessionSnapshots.value[SESSION_TYPE_KNOWLEDGE] = buildEmptySessionState(SESSION_TYPE_KNOWLEDGE)
|
||||
leaveKnowledgeDialogOpen.value = false
|
||||
emit('close')
|
||||
} catch (error) {
|
||||
toast(error?.message || '清理知识问答会话失败,请稍后重试。')
|
||||
} finally {
|
||||
leaveKnowledgeBusy.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function saveInlineReviewChanges() {
|
||||
if (!activeReviewPayload.value || !reviewHasUnsavedChanges.value || reviewActionBusy.value) return
|
||||
|
||||
@@ -3092,10 +3079,8 @@ export default {
|
||||
reviewCancelDialogOpen,
|
||||
reviewEditDialogOpen,
|
||||
deleteSessionDialogOpen,
|
||||
leaveKnowledgeDialogOpen,
|
||||
reviewActionBusy,
|
||||
deleteSessionBusy,
|
||||
leaveKnowledgeBusy,
|
||||
reviewEditFields,
|
||||
documentPreviewDialog,
|
||||
shortcuts,
|
||||
@@ -3144,8 +3129,6 @@ export default {
|
||||
openDeleteSessionDialog,
|
||||
closeDeleteSessionDialog,
|
||||
confirmDeleteCurrentSession,
|
||||
closeLeaveKnowledgeDialog,
|
||||
confirmLeaveKnowledgeSession,
|
||||
openInlineReviewEditor,
|
||||
closeInlineReviewEditor,
|
||||
commitInlineReviewEditor,
|
||||
|
||||
Reference in New Issue
Block a user