2026-05-21 23:53:03 +08:00
|
|
|
|
export const RULE_TABLE_COLUMNS = {
|
|
|
|
|
|
name: '规则名称',
|
|
|
|
|
|
category: '业务域',
|
|
|
|
|
|
owner: '负责人',
|
|
|
|
|
|
scope: '适用场景',
|
|
|
|
|
|
version: '修改次数',
|
|
|
|
|
|
metric: '修改人'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const TYPE_META = {
|
|
|
|
|
|
rules: {
|
|
|
|
|
|
assetType: 'rule',
|
|
|
|
|
|
label: '规则',
|
|
|
|
|
|
typeLabel: '规则',
|
|
|
|
|
|
tableColumns: RULE_TABLE_COLUMNS
|
|
|
|
|
|
},
|
|
|
|
|
|
skills: {
|
|
|
|
|
|
assetType: 'skill',
|
|
|
|
|
|
label: '技能',
|
|
|
|
|
|
typeLabel: '技能',
|
|
|
|
|
|
createButtonLabel: '技能已接入',
|
|
|
|
|
|
hintText: '技能页签已接到真实资产 API,可查看输入、输出、依赖和场景信息。',
|
|
|
|
|
|
searchPlaceholder: '搜索技能名称、编码或负责人',
|
|
|
|
|
|
showMetricColumn: false,
|
|
|
|
|
|
tableColumns: {
|
|
|
|
|
|
name: '技能名称',
|
|
|
|
|
|
category: '业务域',
|
|
|
|
|
|
owner: '负责人',
|
|
|
|
|
|
scope: '适用场景',
|
|
|
|
|
|
runtime: '输入摘要',
|
|
|
|
|
|
version: '当前版本',
|
|
|
|
|
|
metric: ''
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
mcp: {
|
|
|
|
|
|
assetType: 'mcp',
|
|
|
|
|
|
label: 'MCP',
|
|
|
|
|
|
typeLabel: 'MCP',
|
|
|
|
|
|
createButtonLabel: 'MCP 已接入',
|
|
|
|
|
|
hintText: 'MCP 页签已接到真实资产 API,可查看服务地址、鉴权方式、超时和降级策略。',
|
|
|
|
|
|
searchPlaceholder: '搜索 MCP 名称、编码或负责人',
|
|
|
|
|
|
tableColumns: {
|
|
|
|
|
|
name: 'MCP 服务',
|
|
|
|
|
|
category: '业务域',
|
|
|
|
|
|
owner: '维护人',
|
|
|
|
|
|
scope: '适用场景',
|
|
|
|
|
|
runtime: '调用地址',
|
|
|
|
|
|
version: '当前版本',
|
|
|
|
|
|
metric: '超时配置'
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
tasks: {
|
|
|
|
|
|
assetType: 'task',
|
|
|
|
|
|
label: '任务',
|
|
|
|
|
|
typeLabel: '任务',
|
|
|
|
|
|
createButtonLabel: '任务已接入',
|
|
|
|
|
|
hintText: '任务页签已接到真实资产 API,可查看调度周期、执行 Agent 和最近执行结果。',
|
|
|
|
|
|
searchPlaceholder: '搜索任务名称、编码或负责人',
|
|
|
|
|
|
tableColumns: {
|
|
|
|
|
|
name: '任务名称',
|
|
|
|
|
|
category: '业务域',
|
|
|
|
|
|
owner: '负责人',
|
|
|
|
|
|
scope: '适用场景',
|
|
|
|
|
|
runtime: '调度周期',
|
|
|
|
|
|
version: '当前版本',
|
|
|
|
|
|
metric: '执行 Agent'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const TAB_META = {
|
|
|
|
|
|
financialRules: {
|
|
|
|
|
|
assetType: 'rule',
|
|
|
|
|
|
typeKey: 'rules',
|
|
|
|
|
|
label: '财务规则',
|
|
|
|
|
|
typeLabel: '财务规则',
|
|
|
|
|
|
createButtonLabel: '财务规则已接入',
|
|
|
|
|
|
hintText: '仅展示 tag 为“财务规则”的规则资产;未打新 tag 的旧规则已从规则中心隐藏。',
|
|
|
|
|
|
searchPlaceholder: '搜索财务规则名称、编码或负责人',
|
|
|
|
|
|
tableColumns: RULE_TABLE_COLUMNS,
|
|
|
|
|
|
showRuntimeColumn: false,
|
|
|
|
|
|
showStatusColumn: false,
|
|
|
|
|
|
badgeTone: 'emerald'
|
|
|
|
|
|
},
|
|
|
|
|
|
riskRules: {
|
|
|
|
|
|
assetType: 'rule',
|
|
|
|
|
|
typeKey: 'rules',
|
|
|
|
|
|
label: '风险规则',
|
|
|
|
|
|
typeLabel: '风险规则',
|
2026-05-23 19:54:42 +08:00
|
|
|
|
createButtonLabel: '新建风险规则',
|
2026-05-21 23:53:03 +08:00
|
|
|
|
hintText: '仅展示平台风险规则;适用场景按差旅、发票、餐饮招待等分类,可用「使用场景」筛选。',
|
|
|
|
|
|
searchPlaceholder: '搜索风险规则名称、编码或负责人',
|
|
|
|
|
|
tableColumns: RULE_TABLE_COLUMNS,
|
|
|
|
|
|
showRuntimeColumn: false,
|
|
|
|
|
|
showVersionColumn: false,
|
|
|
|
|
|
showStatusColumn: false,
|
|
|
|
|
|
badgeTone: 'rose'
|
|
|
|
|
|
},
|
|
|
|
|
|
skills: {
|
|
|
|
|
|
...TYPE_META.skills,
|
|
|
|
|
|
typeKey: 'skills',
|
|
|
|
|
|
badgeTone: 'blue'
|
|
|
|
|
|
},
|
|
|
|
|
|
mcp: {
|
|
|
|
|
|
...TYPE_META.mcp,
|
|
|
|
|
|
typeKey: 'mcp',
|
|
|
|
|
|
badgeTone: 'amber'
|
|
|
|
|
|
},
|
|
|
|
|
|
tasks: {
|
|
|
|
|
|
...TYPE_META.tasks,
|
|
|
|
|
|
typeKey: 'tasks',
|
|
|
|
|
|
badgeTone: 'violet'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const STATUS_META = {
|
|
|
|
|
|
draft: { label: '草稿中', tone: 'draft' },
|
|
|
|
|
|
review: { label: '待审核', tone: 'warning' },
|
|
|
|
|
|
active: { label: '已上线', tone: 'success' },
|
|
|
|
|
|
disabled: { label: '已停用', tone: 'disabled' }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const REVIEW_META = {
|
|
|
|
|
|
approved: { label: '已通过', tone: 'success' },
|
|
|
|
|
|
pending: { label: '待审核', tone: 'warning' },
|
|
|
|
|
|
rejected: { label: '已驳回', tone: 'danger' }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const VERSION_STATE_META = {
|
|
|
|
|
|
published: { label: '已上线', tone: 'success' },
|
|
|
|
|
|
draft: { label: '草稿', tone: 'draft' },
|
|
|
|
|
|
pending_review: { label: '待审核', tone: 'warning' },
|
|
|
|
|
|
approved: { label: '已通过待上线', tone: 'success' },
|
|
|
|
|
|
rejected: { label: '已驳回', tone: 'danger' },
|
|
|
|
|
|
history: { label: '历史版本', tone: 'disabled' }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const DOMAIN_LABELS = {
|
|
|
|
|
|
expense: '报销',
|
|
|
|
|
|
ar: '应收',
|
|
|
|
|
|
ap: '应付',
|
|
|
|
|
|
knowledge: '知识',
|
|
|
|
|
|
system: '系统'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const SCENARIO_LABELS = {
|
|
|
|
|
|
expense: '报销',
|
|
|
|
|
|
risk_check: '风险检查',
|
|
|
|
|
|
duplicate_expense: '重复报销',
|
|
|
|
|
|
explain: '规则解释',
|
|
|
|
|
|
invoice_anomaly: '票据异常',
|
|
|
|
|
|
travel_policy: '差旅制度',
|
|
|
|
|
|
travel_standard: '差旅标准',
|
|
|
|
|
|
communication_expense: '通信费报销',
|
|
|
|
|
|
expense_standard: '费用标准',
|
|
|
|
|
|
accounts_payable: '应付',
|
|
|
|
|
|
accounts_receivable: '应收',
|
|
|
|
|
|
approval_required: '需审批',
|
|
|
|
|
|
query: '查询',
|
|
|
|
|
|
summary: '汇总',
|
|
|
|
|
|
system: '系统',
|
|
|
|
|
|
schedule: '调度',
|
|
|
|
|
|
rule_center: '规则中心',
|
|
|
|
|
|
review_digest: '待审摘要',
|
|
|
|
|
|
aging_summary: '账龄汇总',
|
|
|
|
|
|
invoice_validation: '发票验真'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const DETAIL_TITLES = {
|
|
|
|
|
|
rules: {
|
|
|
|
|
|
configTitle: '规则元信息',
|
|
|
|
|
|
configDesc: '展示规则编码、版本、业务域和当前审核 / 上线状态。',
|
|
|
|
|
|
detailTitle: '规则版本说明',
|
|
|
|
|
|
detailDesc: '规则正文由 Markdown 驱动,保存后会生成新的版本快照。',
|
|
|
|
|
|
outputTitle: '审核与上线',
|
|
|
|
|
|
outputDesc: '规则上线受审核状态控制,未审核通过的版本会被后端拦截。',
|
|
|
|
|
|
ruleListTitle: '上线要求',
|
|
|
|
|
|
checkListTitle: '当前状态',
|
|
|
|
|
|
triggerTitle: '适用场景',
|
|
|
|
|
|
triggerDesc: '当前规则注册到的业务场景',
|
|
|
|
|
|
toolTitle: '关联信息',
|
|
|
|
|
|
toolDesc: '规则当前审核、保存和版本快照信息',
|
|
|
|
|
|
historyTitle: '版本历史',
|
|
|
|
|
|
historyDesc: '最近 5 个规则版本',
|
|
|
|
|
|
publishTitle: '上线控制',
|
|
|
|
|
|
publishDesc: '正式上线会调用后端激活接口,审核未通过时会被拦截。'
|
|
|
|
|
|
},
|
|
|
|
|
|
skills: {
|
|
|
|
|
|
configTitle: '技能配置',
|
|
|
|
|
|
configDesc: '展示技能编码、输入摘要、版本和业务域。',
|
|
|
|
|
|
detailTitle: '技能结构',
|
|
|
|
|
|
detailDesc: '按输入、输出和依赖组织技能定义。',
|
|
|
|
|
|
outputTitle: '输出契约',
|
|
|
|
|
|
outputDesc: '技能详情重点展示输入参数、输出参数和依赖能力。',
|
|
|
|
|
|
ruleListTitle: '输出要求',
|
|
|
|
|
|
checkListTitle: '当前快照',
|
|
|
|
|
|
triggerTitle: '适用场景',
|
|
|
|
|
|
triggerDesc: '当前技能注册到的场景标签',
|
|
|
|
|
|
toolTitle: '依赖能力',
|
|
|
|
|
|
toolDesc: '技能当前依赖的数据库或其他能力',
|
|
|
|
|
|
historyTitle: '版本历史',
|
|
|
|
|
|
historyDesc: '最近版本记录',
|
|
|
|
|
|
publishTitle: '发布状态',
|
|
|
|
|
|
publishDesc: '技能当前状态由资产中心统一管理。'
|
|
|
|
|
|
},
|
|
|
|
|
|
mcp: {
|
|
|
|
|
|
configTitle: 'MCP 连接配置',
|
|
|
|
|
|
configDesc: '展示服务地址、超时和调用方式。',
|
|
|
|
|
|
detailTitle: '服务协议',
|
|
|
|
|
|
detailDesc: '按服务类型、鉴权方式和降级策略组织外部服务信息。',
|
|
|
|
|
|
outputTitle: '调用约束',
|
|
|
|
|
|
outputDesc: 'MCP 详情重点展示鉴权方式、返回策略和最近调用状态。',
|
|
|
|
|
|
ruleListTitle: '调用约束',
|
|
|
|
|
|
checkListTitle: '最近状态',
|
|
|
|
|
|
triggerTitle: '适用场景',
|
|
|
|
|
|
triggerDesc: '当前 MCP 覆盖的业务场景',
|
|
|
|
|
|
toolTitle: '运行信息',
|
|
|
|
|
|
toolDesc: '结合 AgentRun 中的 ToolCall 还原最近一次调用状态',
|
|
|
|
|
|
historyTitle: '版本历史',
|
|
|
|
|
|
historyDesc: '最近版本记录',
|
|
|
|
|
|
publishTitle: '服务状态',
|
|
|
|
|
|
publishDesc: 'MCP 资产已接入规则中心,但真实外部调用仍以后续链路集成为准。'
|
|
|
|
|
|
},
|
|
|
|
|
|
tasks: {
|
|
|
|
|
|
configTitle: '任务配置',
|
|
|
|
|
|
configDesc: '展示调度周期、执行 Agent 和任务编码。',
|
|
|
|
|
|
detailTitle: '任务结构',
|
|
|
|
|
|
detailDesc: '按调度计划、目标场景和运行结果组织任务信息。',
|
|
|
|
|
|
outputTitle: '运行要求',
|
|
|
|
|
|
outputDesc: '任务详情重点展示调度 Agent、最近运行结果和运行日志入口。',
|
|
|
|
|
|
ruleListTitle: '运行要求',
|
|
|
|
|
|
checkListTitle: '最近执行',
|
|
|
|
|
|
triggerTitle: '适用场景',
|
|
|
|
|
|
triggerDesc: '当前任务覆盖的业务场景',
|
|
|
|
|
|
toolTitle: '最近调用',
|
|
|
|
|
|
toolDesc: '根据 AgentRun 中的最近执行记录回显任务运行情况',
|
|
|
|
|
|
historyTitle: '版本历史',
|
|
|
|
|
|
historyDesc: '最近版本记录',
|
|
|
|
|
|
publishTitle: '调度状态',
|
|
|
|
|
|
publishDesc: '任务资产已接入规则中心,后续 Day 4 运行时会继续消费这些配置。'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const STATUS_OPTIONS = [
|
|
|
|
|
|
{ value: '', label: '全部状态' },
|
|
|
|
|
|
{ value: 'draft', label: '草稿中' },
|
|
|
|
|
|
{ value: 'review', label: '待审核' },
|
|
|
|
|
|
{ value: 'active', label: '已上线' },
|
|
|
|
|
|
{ value: 'disabled', label: '已停用' }
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
export const EXPENSE_RULE_BLOCK_PATTERN = /```expense-rule\s*([\s\S]*?)\s*```/i
|
|
|
|
|
|
export const RULE_SPREADSHEET_BLOCK_PATTERN = /```rule-spreadsheet\s*([\s\S]*?)\s*```/i
|
|
|
|
|
|
|
|
|
|
|
|
export const RULE_TEMPLATE_LABELS = {
|
|
|
|
|
|
travel_standard_v1: '差旅标准模板',
|
|
|
|
|
|
expense_amount_limit_v1: '金额上限模板',
|
|
|
|
|
|
attachment_requirement_v1: '附件要求模板',
|
|
|
|
|
|
general_policy_v1: '通用制度模板'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const RULE_TAB_TAG_ALIASES = {
|
|
|
|
|
|
financialRules: new Set(['财务规则', '财务', 'financialrule', 'financialrules', 'financerule', 'financerules', 'financial', 'finance']),
|
|
|
|
|
|
riskRules: new Set(['风险规则', '风险', '风控', 'riskrule', 'riskrules', 'risk'])
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const RISK_SCENARIO_OPTIONS = [
|
|
|
|
|
|
{ value: '', label: '全部场景' },
|
|
|
|
|
|
{ value: '差旅', label: '差旅' },
|
|
|
|
|
|
{ value: '发票', label: '发票' },
|
|
|
|
|
|
{ value: '餐饮招待', label: '餐饮招待' },
|
|
|
|
|
|
{ value: '交通出行', label: '交通出行' },
|
|
|
|
|
|
{ value: '办公物料', label: '办公物料' },
|
|
|
|
|
|
{ value: '费用科目', label: '费用科目' },
|
|
|
|
|
|
{ value: '通用', label: '通用' }
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
export const RISK_SCENARIO_VALUES = new Set(RISK_SCENARIO_OPTIONS.map((item) => item.value).filter(Boolean))
|
|
|
|
|
|
|
|
|
|
|
|
export const LEGACY_RISK_SCENARIO_KEYS = new Set([
|
|
|
|
|
|
'expense',
|
|
|
|
|
|
'risk_check',
|
|
|
|
|
|
'travel',
|
|
|
|
|
|
'meal',
|
|
|
|
|
|
'invoice',
|
|
|
|
|
|
'travel_policy',
|
|
|
|
|
|
'travel_standard',
|
|
|
|
|
|
'attachment_policy',
|
|
|
|
|
|
'scene_policy',
|
|
|
|
|
|
'invoice_anomaly',
|
|
|
|
|
|
'communication_expense',
|
|
|
|
|
|
'expense_standard',
|
|
|
|
|
|
'approval_required'
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
export const SPREADSHEET_DETAIL_MODE = 'spreadsheet'
|
|
|
|
|
|
export const JSON_RISK_DETAIL_MODE = 'json_risk'
|
|
|
|
|
|
export const PREVIEW_RULE_ID = 'preview-rule-expense-company-travel-expense'
|
|
|
|
|
|
export const PREVIEW_RULE_CODE = 'rule.expense.company_travel_expense_reimbursement'
|
|
|
|
|
|
export const PREVIEW_RULE_VERSION_SPECS = [
|
|
|
|
|
|
{
|
|
|
|
|
|
version: 'v1.2.0',
|
|
|
|
|
|
fileName: '公司差旅费报销规则.xlsx',
|
|
|
|
|
|
updatedAt: '2026-05-17T09:30:00Z',
|
|
|
|
|
|
updatedBy: '王楠',
|
|
|
|
|
|
note: '补充城市分级与住宿限额示例。',
|
|
|
|
|
|
source: 'preview',
|
|
|
|
|
|
isCurrent: true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
version: 'v1.1.0',
|
|
|
|
|
|
fileName: '公司差旅费报销规则-v1.1.0.xlsx',
|
|
|
|
|
|
updatedAt: '2026-05-14T15:20:00Z',
|
|
|
|
|
|
updatedBy: '顾承宇',
|
|
|
|
|
|
note: '新增票据要求与超标审批列。',
|
|
|
|
|
|
source: 'preview',
|
|
|
|
|
|
isCurrent: false
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
version: 'v1.0.0',
|
|
|
|
|
|
fileName: '公司差旅费报销规则-v1.0.0.xlsx',
|
|
|
|
|
|
updatedAt: '2026-05-10T11:10:00Z',
|
|
|
|
|
|
updatedBy: '系统初始化',
|
|
|
|
|
|
note: '首版差旅费报销规则表预览。',
|
|
|
|
|
|
source: 'preview',
|
|
|
|
|
|
isCurrent: false
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|