usePlanPermission.js 1.89 KB
/**
 * 计划书权限检查 Composable(重构版)
 *
 * @description 统一处理制作计划书的登录权限检查,内部调用通用 usePermission
 * @module composables/usePlanPermission
 * @author Claude Code
 * @created 2026-02-12
 * @updated 2026-02-13 - 重构为使用通用 usePermission
 */

import { usePermission } from '@/composables/usePermission'

/**
 * 计划书权限检查 Hook
 *
 * @description 提供统一的权限检查逻辑,用于制作计划书前的登录验证
 * @returns {Object} 权限检查方法
 *
 * @example
 * const { checkPlanPermission } = usePlanPermission()
 *
 * // 在点击计划书按钮时使用
 * checkPlanPermission(() => {
 *   // 已登录时的回调逻辑
 *   openPlanPopup(productId)
 * })
 */
export function usePlanPermission() {
  // 获取通用权限检查方法
  const { requireLogin } = usePermission()

  /**
   * 检查计划书权限
   *
   * @description 判断用户是否登录,未登录时提示并引导登录,已登录时执行回调
   * @param {Function} callback - 已登录时执行的回调函数
   * @param {Object} customOptions - 自定义配置选项(可选)
   * @returns {boolean} 是否有权限(true=已登录,false=未登录)
   *
   * @example
   * // 使用默认配置
   * const hasPermission = checkPlanPermission(() => {
   *   console.log('用户已登录,可以制作计划书')
   * })
   *
   * @example
   * // 自定义提示文案
   * const hasPermission = checkPlanPermission(() => {
   *   openPlanPopup(productId)
   * }, {
   *   content: '请先登录后制作专属计划书',
   *   confirmText: '立即登录'
   * })
   */
  const checkPlanPermission = (callback, customOptions = {}) => {
    console.log('[usePlanPermission] 检查计划书权限')

    // 调用通用权限检查(登录权限)
    return requireLogin(callback, customOptions)
  }

  return {
    checkPlanPermission
  }
}