usePlanPermission.js
1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/**
* 计划书权限检查 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
}
}