如何注入
在类属性上使用 @Inject(ServiceClass, ContainerRegistryManager.BUILTIN_PLUGIN),从核心/内置容器解析服务,而不是插件本地 DI。不支持构造函数注入。
TSXinject
1import {
2 Service,
3 Inject,
4 ContainerRegistryManager,
5 UserService,
6 NotificationService,
7} from "@quan-erp/shared-backend-core";
8
9@Service()
10export class MyPluginService {
11 @Inject(UserService, ContainerRegistryManager.BUILTIN_PLUGIN)
12 private userService: UserService;
13
14 @Inject(NotificationService, ContainerRegistryManager.BUILTIN_PLUGIN)
15 private notificationService: NotificationService;
16}目录
每个页面都记录了公开类方法(签名、参数与示例)。打开具体服务查看完整 API。
- PartnerService — 客户 / 供应商(getPartner、create、update 等)
- UserService — 用户、登录、令牌、设备
- NotificationService — send、inbox、markRead
- FileService — addFile、findFile、预签名 URL
- SettingService — 类型化设置的 get / set
- BranchService — 分支与 markDefault
- CurrencyService / CurrencyExchangeService — 货币与汇率
- DeveloperConfigService — 公开/私有插件配置(非通用 get)
- ChangeLogService — 按 plugin + reference 的活动动态(addChangeLog、getChangeLogs、reactions)
- CronJobService — Redis 定时任务(见 Cron job)
规则
- 注入核心服务时,第二个 @Inject 参数必须是 ContainerRegistryManager.BUILTIN_PLUGIN
- 从 @quan-erp/shared-backend-core 导入服务类
- 不要复制内置表,也不要在插件中重复包装相同 API,除非在扩展行为