feat: 新增风险图谱算法与系统仪表盘及操作反馈体系

后端新增风险图谱算法模块、风险观察与反馈服务、规则 DSL
校验器和可解释性引擎,完善系统仪表盘和财务仪表盘统计,
优化 agent 运行和编排执行链路,清理旧开发文档,前端新增
系统趋势、负载热力图等多种仪表盘图表组件,完善操作反馈
对话框和工作台日期选择器,优化报销创建和审批详情交互,
补充单元测试覆盖。
This commit is contained in:
caoxiaozhu
2026-05-30 15:46:51 +08:00
parent 4c59941ec6
commit 7989f3a159
314 changed files with 30073 additions and 20626 deletions

View File

@@ -67,6 +67,67 @@
@report-saved="emit('report-saved', $event)"
/>
<ConfirmDialog
:open="riskRuleEditOpen"
badge="规则维护"
badge-tone="info"
:title="riskRuleEditMode === 'revision' ? '创建修订版本' : '编辑风险规则'"
:description="riskRuleEditMode === 'revision' ? '已上线规则不会被直接覆盖,系统会先创建一个新的修订草稿。' : '未上线规则可以直接调整标题、费用领域、附件要求和自然语言描述。'"
cancel-text="取消"
:confirm-text="riskRuleEditMode === 'revision' ? '创建修订' : '保存草稿'"
busy-text="保存中..."
confirm-tone="primary"
confirm-icon="mdi mdi-content-save-outline"
:busy="riskRuleEditBusy"
:close-on-mask="!riskRuleEditBusy"
@close="emit('close-risk-rule-edit')"
@confirm="emit('submit-risk-rule-edit')"
>
<div class="risk-rule-create-form">
<label>
<span>费用领域</span>
<EnterpriseSelect
v-model="riskRuleEditForm.expense_category"
:options="riskRuleExpenseCategoryOptions"
:disabled="riskRuleEditBusy"
/>
</label>
<label>
<span>是否上传附件</span>
<EnterpriseSelect
v-model="riskRuleEditForm.requires_attachment"
:options="riskRuleAttachmentOptions"
:disabled="riskRuleEditBusy"
/>
</label>
<label class="span-2">
<span>规则标题</span>
<input
v-model="riskRuleEditForm.rule_title"
:disabled="riskRuleEditBusy"
maxlength="80"
placeholder="例如:差旅目的地与票据城市一致性校验"
/>
</label>
<label class="span-2">
<span>自然语言规则</span>
<textarea
v-model="riskRuleEditForm.natural_language"
:disabled="riskRuleEditBusy"
placeholder="请用自然语言描述风险判断流程、字段、例外条件和处理动作。"
></textarea>
</label>
<label v-if="riskRuleEditMode === 'revision'" class="span-2">
<span>修订原因</span>
<textarea
v-model="riskRuleEditForm.change_reason"
:disabled="riskRuleEditBusy"
placeholder="请说明本次修订要解决的规则问题或业务变化。"
></textarea>
</label>
</div>
</ConfirmDialog>
<ConfirmDialog
:open="riskRuleDeleteOpen"
badge="删除规则"
@@ -239,6 +300,10 @@ const props = defineProps({
riskRuleExpenseCategoryOptions: { type: Array, default: () => [] },
riskRuleAttachmentOptions: { type: Array, default: () => [] },
riskRuleTestOpen: { type: Boolean, default: false },
riskRuleEditOpen: { type: Boolean, default: false },
riskRuleEditMode: { type: String, default: 'draft' },
riskRuleEditForm: { type: Object, default: () => ({}) },
riskRuleEditBusy: { type: Boolean, default: false },
riskRuleDeleteOpen: { type: Boolean, default: false },
riskRuleReturnOpen: { type: Boolean, default: false },
riskRulePublishOpen: { type: Boolean, default: false },
@@ -261,6 +326,8 @@ const emit = defineEmits([
'submit-risk-rule-create',
'close-risk-rule-test',
'report-saved',
'close-risk-rule-edit',
'submit-risk-rule-edit',
'close-delete-risk-rule',
'delete-selected-risk-rule',
'close-return-risk-rule',