diff --git a/web/src/components/business/PersonalWorkbench.vue b/web/src/components/business/PersonalWorkbench.vue
index 3dc3ecf..73685ec 100644
--- a/web/src/components/business/PersonalWorkbench.vue
+++ b/web/src/components/business/PersonalWorkbench.vue
@@ -59,7 +59,7 @@
-
+
-
-
-
-
-
应收管理
- {{ receivableAlertCount }}
-
-
-
-
-
-
-
-
-
-
-
-
{{ item.title }}
-
{{ item.date }}
-
-
-
{{ item.amount }}
-
{{ item.status }}
-
-
-
-
-
-
-
-
应付管理
- {{ payableAlertCount }}
-
-
-
-
-
-
-
-
-
-
-
-
{{ item.title }}
-
{{ item.date }}
-
-
-
{{ item.amount }}
-
{{ item.status }}
-
-
-
@@ -206,13 +154,6 @@ const props = defineProps({
const emit = defineEmits(['openAssistant'])
const { currentUser } = useSystemState()
-
-// 判断是否为财务人员
-const isFinanceUser = computed(() => {
- const user = currentUser.value || {}
- const roleCodes = Array.isArray(user.roleCodes) ? user.roleCodes : []
- return roleCodes.includes('finance') || roleCodes.includes('accountant') || user.isAdmin
-})
const { toast } = useToast()
const assistantDraft = ref('')
const fileInputRef = ref(null)
@@ -422,76 +363,6 @@ const progressItems = [
const progressAlertCount = progressItems.filter((item) => item.status !== '已到账').length
-const receivableItems = [
- {
- id: 'receivable-1',
- title: '客户服务费收入',
- amount: '¥15,800',
- date: '2026-05-10',
- status: '待收款',
- tone: 'info',
- icon: 'mdi mdi-account-cash-outline',
- color: '#f59e0b'
- },
- {
- id: 'receivable-2',
- title: '项目进度款',
- amount: '¥42,600',
- date: '2026-05-08',
- status: '部分收款',
- tone: 'success',
- icon: 'mdi mdi-cash-multiple',
- color: '#10b981'
- },
- {
- id: 'receivable-3',
- title: '咨询服务费',
- amount: '¥8,900',
- date: '2026-05-05',
- status: '逾期提醒',
- tone: 'info',
- icon: 'mdi mdi-bell-alert',
- color: '#ef4444'
- }
-]
-
-const receivableAlertCount = receivableItems.filter((item) => item.status === '逾期提醒' || item.status === '待收款').length
-
-const payableItems = [
- {
- id: 'payable-1',
- title: '供应商采购款',
- amount: '¥28,500',
- date: '2026-05-12',
- status: '待付款',
- tone: 'info',
- icon: 'mdi mdi-truck-outline',
- color: '#3b82f6'
- },
- {
- id: 'payable-2',
- title: '房租物业费',
- amount: '¥12,800',
- date: '2026-05-15',
- status: '待审批',
- tone: 'success',
- icon: 'mdi mdi-office-building',
- color: '#6366f1'
- },
- {
- id: 'payable-3',
- title: '软件服务费',
- amount: '¥3,600',
- date: '2026-05-01',
- status: '已付款',
- tone: 'mint',
- icon: 'mdi mdi-server',
- color: '#10b981'
- }
-]
-
-const payableAlertCount = payableItems.filter((item) => item.status === '待付款' || item.status === '待审批').length
-
const policyItems = [
{
name: '差旅报销管理办法(2026版)',
@@ -856,11 +727,6 @@ watch(
gap: 20px;
}
-.workbench-grid.finance-grid {
- grid-template-columns: repeat(4, 1fr);
- gap: 16px;
-}
-
.list-panel,
.policy-panel {
padding: 20px 22px;
@@ -1110,11 +976,6 @@ watch(
.policy-row {
grid-template-columns: 1.8fr 1.8fr 1fr;
}
-
- .workbench-grid.finance-grid {
- grid-template-columns: repeat(2, 1fr);
- gap: 16px;
- }
}
@media (max-width: 1440px) {
@@ -1181,8 +1042,7 @@ watch(
width: 176px;
}
- .workbench-grid,
- .workbench-grid.finance-grid {
+ .workbench-grid {
grid-template-columns: 1fr;
}
}
@@ -1249,14 +1109,6 @@ watch(
justify-self: start;
}
- .workbench-grid.finance-grid {
- gap: 16px;
- }
-
- .workbench-grid.finance-grid .list-panel {
- padding: 16px 18px;
- }
-
.policy-table {
border: 0;
border-radius: 0;
diff --git a/web/src/composables/useAppShell.js b/web/src/composables/useAppShell.js
index 20dc79a..a92882c 100644
--- a/web/src/composables/useAppShell.js
+++ b/web/src/composables/useAppShell.js
@@ -235,7 +235,7 @@ export function useAppShell() {
smartEntryOpen.value = false
await reloadRequests()
if (status === 'submitted') {
- toast(`${claimNo || '该'}单据已提交审批${approvalStage ? `,当前节点:${approvalStage}` : ''}。`)
+ toast(`${claimNo || '该'}单据已完成 AI验审${approvalStage ? `,当前节点:${approvalStage}` : ',并已提交审批'}。`)
} else {
toast(`${claimNo || '该'}单据已保存到草稿,请到报销页面查看。`)
}
diff --git a/web/src/composables/useRequests.js b/web/src/composables/useRequests.js
index 3333bfd..8940c99 100644
--- a/web/src/composables/useRequests.js
+++ b/web/src/composables/useRequests.js
@@ -334,7 +334,7 @@ function buildExpenseItems(claim, riskSummary) {
})
}
-function mapExpenseClaimToRequest(claim) {
+export function mapExpenseClaimToRequest(claim) {
const typeCode = String(claim?.expense_type || '').trim() || 'other'
const typeLabel = resolveTypeLabel(typeCode)
const approvalMeta = resolveApprovalMeta(claim?.status)
@@ -372,6 +372,8 @@ function mapExpenseClaimToRequest(claim) {
submittedAt: applyDateTime || '',
createdAt: claim?.created_at || '',
amount: parseNumber(claim?.amount),
+ riskFlags: Array.isArray(claim?.risk_flags_json) ? claim.risk_flags_json : [],
+ invoiceCount,
workflowNode,
approvalKey: approvalMeta.key,
approvalStatus: approvalMeta.label,