feat(web): AI 工作台会话与文档卡片渲染增强
- aiConversationHtmlRenderer 识别单据记录类表格并渲染为卡片列表,新增删除申请单详情的禁用占位链接 - aiWorkbenchConversationStore 增加草稿删除后会话链接失效处理,避免点击已删除单据跳转 - aiApplicationPreviewActions 调整提交/草稿调用路径,PersonalWorkbenchAiMode 接入新的会话存储与渲染 - ConfirmDialog/TravelRequestDeleteDialog/useAppShell/AppShellRouteView 配套适配,同步更新相关前端测试
This commit is contained in:
@@ -713,7 +713,19 @@ export default {
|
||||
))
|
||||
const canManageCurrentClaim = computed(() => canManageExpenseClaims(currentUser.value))
|
||||
const isArchivedRequest = computed(() => isArchivedRequestView(request.value))
|
||||
const canDeleteRequest = computed(() => isPlatformAdminUser(currentUser.value))
|
||||
const isApplicantDeletableRequest = computed(() => {
|
||||
if (!isCurrentApplicant.value) {
|
||||
return false
|
||||
}
|
||||
const status = String(request.value.status || request.value.approvalKey || '').trim().toLowerCase()
|
||||
return ['draft', 'supplement', 'returned'].includes(status)
|
||||
})
|
||||
const canDeleteRequest = computed(() => {
|
||||
if (isPlatformAdminUser(currentUser.value)) {
|
||||
return true
|
||||
}
|
||||
return isApplicantDeletableRequest.value
|
||||
})
|
||||
const isDirectManagerApprovalStage = computed(() => {
|
||||
const node = String(request.value.node || request.value.approvalStage || '').trim()
|
||||
return node === '直属领导审批'
|
||||
@@ -926,11 +938,12 @@ export default {
|
||||
}
|
||||
return isDraftRequest.value ? '删除草稿' : '删除单据'
|
||||
})
|
||||
const deleteDialogTitle = computed(() => `确认${deleteActionLabel.value} ${request.value.id} 吗?`)
|
||||
const deleteDialogTarget = computed(() => request.value.documentNo || request.value.id || '当前单据')
|
||||
const deleteDialogTitle = computed(() => `确认${deleteActionLabel.value}吗?`)
|
||||
const deleteDialogDescription = computed(() =>
|
||||
isDraftRequest.value
|
||||
? '删除后该草稿及其当前费用明细将不可恢复,请确认本次操作。'
|
||||
: `删除后该${isApplicationDocument.value ? '申请单' : '报销单'}及费用明细将不可恢复,请确认本次操作。`
|
||||
? `${deleteDialogTarget.value} 删除后,该草稿及其当前费用明细将不可恢复。`
|
||||
: `${deleteDialogTarget.value} 删除后,该${isApplicationDocument.value ? '申请单' : '报销单'}及费用明细将不可恢复。`
|
||||
)
|
||||
const actionBusy = computed(() =>
|
||||
Boolean(savingExpenseId.value)
|
||||
@@ -2514,8 +2527,8 @@ export default {
|
||||
isArchivedRequest.value
|
||||
? '已归档单据不能删除,只有高级管理员可以执行删除。'
|
||||
: isApplicationDocument.value
|
||||
? '当前申请单已进入审批流程,只有退回后申请人本人或系统管理员可以删除。'
|
||||
: '当前单据已进入流程,只有高级财务人员可以删除。'
|
||||
? '当前申请单已进入审批流程,只有草稿、待补充或退回待提交阶段的申请人本人或系统管理员可以删除。'
|
||||
: '当前单据已进入流程,只有草稿、待补充或退回待提交阶段的申请人本人或系统管理员可以删除。'
|
||||
)
|
||||
return
|
||||
}
|
||||
@@ -2542,7 +2555,11 @@ export default {
|
||||
const payload = await deleteExpenseClaim(request.value.claimId)
|
||||
deleteDialogOpen.value = false
|
||||
toast(payload?.message || `${request.value.id} ${isApplicationDocument.value ? '申请单' : '报销单'}已删除。`)
|
||||
emit('request-deleted', { claimId: request.value.claimId })
|
||||
emit('request-deleted', {
|
||||
claimId: request.value.claimId,
|
||||
claimNo: request.value.claimNo || request.value.documentNo || request.value.id,
|
||||
documentNo: request.value.documentNo || request.value.id
|
||||
})
|
||||
} catch (error) {
|
||||
toast(error?.message || '删除单据失败,请稍后重试。')
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user