Appearance
业务 Hooks
@mbjia/hooks
业务 Hooks
依赖模板加业务接口、Cookie、用户权益和站点环境的 Hooks。
这些 Hooks 依赖模板加业务接口、Cookie、用户权益和站点环境。
业务 Hooks 不建议脱离模板加业务项目单独使用。接入前需要确认接口、Cookie、用户信息和站点环境。
useVerifySubscription
用于下载权益验证与扣费。
ts
const result = useVerifySubscription(isInfinite)返回:
ts
{
verifyOpen: boolean
closeVerify: () => void
openVerify: () => void
getDownloadRemainCount: () => Promise<number>
handleChargeRender: (ids: string[]) => Promise<void>
remainDownloadCount: number
}返回值说明:
| 字段 | 类型 | 说明 |
|---|---|---|
verifyOpen | boolean | 验证弹窗是否打开。 |
closeVerify | () => void | 关闭验证弹窗。 |
openVerify | () => void | 打开验证弹窗。 |
getDownloadRemainCount | () => Promise<number> | 获取剩余下载次数。 |
handleChargeRender | (ids: string[]) => Promise<void> | 扣费/渲染处理。 |
remainDownloadCount | number | 剩余下载次数。 |
usePromiseErrorHandler
处理权益不足错误码。
tsx
const handleError = usePromiseErrorHandler()
try {
await runTask()
} catch (error) {
const canContinue = handleError(error, onContinue, onStop)
}已处理错误码:
| 类型 | 错误码 |
|---|---|
| 限制 | 41128、41129、41130 |
| 警告 | 41131、41132、41133 |
useUserInfo
获取用户、组织、部门和权益信息。
依赖接口:
reqUserInforeqRightsgetDepartmentListY
useVerifyCode / useVerifyCodeForProduct
短信验证码和登录注册流程 Hook,依赖极验、短信接口、Cookie 和模板加登录逻辑。
useFetchManagerQrCode
获取当前登录账号绑定的客户经理二维码,并同步写入 ToolVeCache。
tsx
const { accountUrl } = useFetchManagerQrCode()
return accountUrl ? <img src={accountUrl} alt="客户经理二维码" /> : null前置条件:
| 条件 | 说明 |
|---|---|
| 登录态 | Hook 内部通过 isLogin() 判断;未登录时直接返回空字符串。 |
| 接口 | 依赖 reqManagerList() 返回 manager.manager_qr_code。 |
| 缓存 | 获取成功后调用 ToolVeCache.setCurrentAccountQrCode() 写入当前账号二维码。 |
返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
accountUrl | string | 客户经理二维码地址;未登录、接口失败或接口无二维码时为空字符串。 |
业务 Hook 依赖汇总
| Hook | 主要依赖 | 适用场景 |
|---|---|---|
useVerifySubscription | 权益接口、下载次数、扣费接口 | 下载或渲染前权益校验。 |
usePromiseErrorHandler | 业务错误码 | 统一处理权益不足或限制类错误。 |
useUserInfo | 用户接口、权益接口、部门接口 | 获取当前用户和组织信息。 |
useVerifyCode | 极验、短信接口、Cookie | 登录注册验证码流程。 |
useFetchManagerQrCode | 客户经理接口、登录态、ToolVeCache | 展示或缓存当前账号的客户经理二维码。 |