Appearance
fin-core 职责调整与迁移
本次包含公开 API 删除,需要按主版本变更发布。当前仅修改工作区,尚未发布新包;升级项目应先核对以下调用。
移除内容
| 原内容 | 调整后的归属或替代方式 |
|---|---|
usePagination | 由 Vue 应用维护页码与条数状态 |
useMoneyFormat、useCurrencyFormat | Vue 应用用 computed 组合 formatMoney,币种符号由应用配置 |
useDebitCredit | computed 调用 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 构造器,不再修改使用方的全局精度配置。