Skip to content

fin-core 职责调整与迁移 ​

本次包含公开 API 删除,需要按主版本变更发布。当前仅修改工作区,尚未发布新包;升级项目应先核对以下调用。

移除内容 ​

原内容调整后的归属或替代方式
usePagination由 Vue 应用维护页码与条数状态
useMoneyFormat、useCurrencyFormatVue 应用用 computed 组合 formatMoney,币种符号由应用配置
useDebitCreditcomputed 调用 checkDebitCreditBalance
useAccountTree在应用内映射节点,再调用 listToTree、findTreeNode、filterTree 等
Account*、Voucher*、Invoice* 等业务类型业务项目按自己的接口与领域声明
分页、选项、通用 API 响应等类型业务项目按真实后端协议声明
/types 入口移除;工具参数和结果类型从工具所属分类导入
币种字典、税率档位与默认税率应用或后台配置;税率显式传给计算函数
状态标签、文案工厂、UI 色值fin-locale / 业务词条及 UI 配置

core 不再依赖 Vue,也不再提供 hooks、types、constants 三个目录。fin-ui 原本通过 export * 聚合 core,所以上述删除也会影响从 fin-ui 导入这些旧 API 的项目。

Vue 状态与纯计算组合 ​

ts
import { computed, ref } from 'vue'
import { checkDebitCreditBalance, formatMoney } from '@axewo/fin-core/utils'
import type { DebitCreditEntry } from '@axewo/fin-core/utils'

const amount = ref(100)
const display = computed(() => formatMoney(amount.value, { currencySymbol: '¥' }))
const entries = ref<DebitCreditEntry[]>([
  { debitAmount: 100, creditAmount: 100 },
])
const balance = computed(() => checkDebitCreditBalance(entries.value))

借贷校验只要求借方和贷方金额,已有分录对象可以直接传入,不再为了调用函数补齐 id、科目、摘要。返回类型 BalanceCheckResult 保留,但声明已移到校验模块。

保留兼容入口 ​

  • 原有基础工具和请求工具仍保留根入口;新增 /utils、/locale、/permission 分类入口。
  • CoreTranslate、translateCoreLabel、translateCoreLabels 保留根入口,并新增 /locale 导入方式。
  • fin-locale 原有 normalizeFinLocale 和 FinLocale 导出保留,底层改为复用 core。
  • fin-micro SDK 的 hasPermission、hasAny、hasAll 保留,底层改为复用 core;空数组等拒绝规则不变。
  • Vue 国际化、语言包、权限 Hook、路由守卫和微前端会话仍从原包使用。

原文档中列出但源码从未导出的 MoneyValue、Period、arrayToTree、findNode、isEmail 等示例已修正为实际 API;不要按旧示例继续添加无实现的占位导出。

工作区只保留 pnpm 锁文件,core 包内陈旧的 npm 锁文件已删除。金额运算使用独立 Decimal 构造器,不再修改使用方的全局精度配置。