export const toolLabels: Record = { schedule_toggle: '启用或暂停计划', metal_holding_create: '新增贵金属持仓', metal_value: '按参考价更新贵金属估值', metals_prices: '查询贵金属参考价', connection_revoke: '撤销当前连接', position_create: '新增账户、资产或债务', position_update: '修改项目资料', balance_record: '更新余额或估值', history_update: '更正余额历史', history_delete: '删除余额历史', debt_links_set: '更新债务关联', movement_create: '记录资金往来', movement_update: '修改资金往来', movement_delete: '撤销资金往来', schedule_create: '新增定时计划', schedule_update: '修改定时计划', schedule_delete: '删除定时计划', schedules_run: '执行到期计划', schedule_run: '执行到期计划', settings_update: '更新偏好设置', account_groups_order: '调整账户分组顺序', icon_publish: '保存私有图标', metal_configure: '设置贵金属持仓', metal_holding_update: '更新贵金属克数', positions_list: '查询账户、资产和债务', position_get: '查看项目详情', history_list: '查询余额历史', overview_get: '查看资产总览', trend_get: '查看净资产趋势', movements_list: '查询资金往来', movement_by_revision: '查看关联资金往来', calendar_month: '查看月度收支', calendar_day: '查看每日收支', schedules_list: '查看定时计划', schedule_runs: '查看计划执行记录', settings_get: '读取偏好设置', rates_list: '查询汇率', metals_list: '查询贵金属参考价', icons_list: '查询图标库', connection_info: '查看连接权限', state_get: '核对账目状态', operation_get: '查询草稿结果', file_upload_request: '上传私有图标', file_status: '查询上传状态', icon_image: '读取图标', }; export const statusLabels: Record = { pending: '待确认', completed: '已完成', cancelled: '已取消', expired: '已过期', failed: '失败', success: '成功', error: '失败', denied: '已拒绝', }; export function toolLabel(name: string) { return toolLabels[name] || '账目操作'; } export function statusLabel(status: string) { return statusLabels[status] || status; } export function permissionLabel(scopes: string[]) { return scopes.includes('write') ? '直接写入' : scopes.includes('draft') ? '草稿修改' : '只读查询'; } export const fieldLabels: Record = { status: '状态', message: '处理说明', createdAt: '创建时间', updatedAt: '更新时间', effectiveDate: '业务时间', data: '修改内容', nextAt: '下次执行时间', intervalDays: '间隔天数(0 为一次)', scheduled_expense: '计划支出', maxRuns: '最多执行次数', repeat: '重复规则', nextRunAt: '下次执行时间', id: '项目', positionId: '项目', sourceId: '转出账户', targetId: '转入项目', revisionId: '历史记录', name: '名称', kind: '类型', side: '资产属性', category: '分类', groupName: '账户分组', currency: '币种', amount: '金额', received: '到账金额', fee: '手续费', date: '业务时间', notes: '备注', reason: '变更原因', operation: '操作类型', archived: '归档', hidden: '隐藏', included: '计入总览', iconId: '图标', targetIds: '关联项目', groups: '分组顺序', metalType: '贵金属品种', grams: '重量(克)', metalGrams: '重量(克)', costPerGram: '每克买入成本', metalCostPerGram: '每克买入成本', enabled: '启用计划', frequency: '执行频率', interval: '间隔', nextDate: '下次执行时间', startDate: '开始时间', endDate: '结束时间', dayOfMonth: '每月执行日', baseCurrency: '本位币', showNotes: '显示备注', hiddenMenus: '隐藏菜单', overviewCards: '总览卡片', includeIndependentAssets: '独立资产计入总览', accountGroupOrder: '分组顺序', ok: '执行成功', executed: '已执行次数', errors: '执行异常', hasMore: '仍有待执行计划', }; export const valueLabels: Record = { account: '账户', asset: '资产', liability: '负债', debt: '债务', bank: '银行账户', cash: '现金', investment: '投资账户', credit_card: '信用卡', loan: '贷款账户', other: '其他', gold: '黄金', silver: '白银', property: '房产', vehicle: '车辆', personal: '个人借款', transfer: '转账', borrow: '借入', lend: '借出', repay: '还款', collect: '收款', expense: '支出', initial: '初始余额', balance: '余额更新', valuation: '估值更新', correction: '历史更正', repayment: '还款', daily: '每天', weekly: '每周', monthly: '每月', }; export type Reference = { name: string; currency: string; side: string; kind: string }; export function displayValue(value: unknown, references: Record = {}): string { if (value === null || value === undefined || value === '') return '未设置'; if (typeof value === 'boolean') return value ? '是' : '否'; if (Array.isArray(value)) return value.length ? value.map((v) => displayValue(v, references)).join('、') : '无'; const s = String(value); return references[s]?.name || valueLabels[s] || s; }