Skip to content

业务 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
}

返回值说明:

字段类型说明
verifyOpenboolean验证弹窗是否打开。
closeVerify() => void关闭验证弹窗。
openVerify() => void打开验证弹窗。
getDownloadRemainCount() => Promise<number>获取剩余下载次数。
handleChargeRender(ids: string[]) => Promise<void>扣费/渲染处理。
remainDownloadCountnumber剩余下载次数。

usePromiseErrorHandler

处理权益不足错误码。

tsx
const handleError = usePromiseErrorHandler()

try {
  await runTask()
} catch (error) {
  const canContinue = handleError(error, onContinue, onStop)
}

已处理错误码:

类型错误码
限制411284112941130
警告411314113241133

useUserInfo

获取用户、组织、部门和权益信息。

依赖接口:

  • reqUserInfo
  • reqRights
  • getDepartmentListY

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() 写入当前账号二维码。

返回值:

字段类型说明
accountUrlstring客户经理二维码地址;未登录、接口失败或接口无二维码时为空字符串。

业务 Hook 依赖汇总

Hook主要依赖适用场景
useVerifySubscription权益接口、下载次数、扣费接口下载或渲染前权益校验。
usePromiseErrorHandler业务错误码统一处理权益不足或限制类错误。
useUserInfo用户接口、权益接口、部门接口获取当前用户和组织信息。
useVerifyCode极验、短信接口、Cookie登录注册验证码流程。
useFetchManagerQrCode客户经理接口、登录态、ToolVeCache展示或缓存当前账号的客户经理二维码。

MBJIA Tools 文档