/** * @fileoverview 权限常量定义 * @description 定义全局权限位运算常量和工具函数(支持可扩展配置) */ /** * 默认权限配置(基础框架提供) * 业务项目可以选择继承、扩展或完全覆盖 */ export declare const DEFAULT_PERMISSION_VALUES: readonly ["添加", "编辑", "删除", "导出", "导入"]; /** * 扩展权限配置(可选) * 业务项目可以添加更多权限,如:'审批', '拒绝', '发布', '归档' */ export declare const EXTENSION_PERMISSION_VALUES: readonly ["审批", "拒绝", "发布", "归档"]; /** * 默认权限名称类型(基础框架提供) */ export type DefaultPermissionName = typeof DEFAULT_PERMISSION_VALUES[number]; /** * 扩展权限名称类型(可选) */ export type ExtensionPermissionName = typeof EXTENSION_PERMISSION_VALUES[number]; /** * 基础框架权限名称类型(默认 + 扩展) */ export type PermissionName = DefaultPermissionName | ExtensionPermissionName; /** * 合并后的权限配置(默认 = 默认 + 扩展) * 业务项目可以通过全局配置覆盖或注册扩展 */ export declare let PERMISSION_VALUES: string[]; export declare function initPermissionCache(values: Array<{ name: string; bitValue: string; }>): void; export declare function getPermissionValueCache(): Map; /** * 权限配置接口 */ export interface PermissionConfig { values: readonly string[]; labels?: Record; icons?: Record; } /** * 创建权限配置(支持覆盖) */ export declare function createPermissionConfig(customValues?: readonly PermissionName[], options?: Omit): PermissionConfig; /** * 设置全局权限配置(业务项目使用) * @param config - 权限配置对象 */ export declare function setPermissionConfig(config: PermissionConfig): void; /** * 注册额外的权限值(业务项目使用) * @param values - 额外的权限名称数组 * @description 将业务层权限追加到全局权限列表中 */ export declare function registerPermissionValues(values: readonly string[]): void; /** * 创建业务层页面配置函数(工厂函数) * @param businessPermissions - 业务层权限值数组 * @returns defineBusinessPageConfig 函数,带有类型推断 * @description 注册业务权限并返回配置函数,业务层只需调用一次 * * @example * ```typescript * // 业务层 permissions.ts * import { createBusinessPageConfigFn } from 'moyan-mfw-base/frontend'; * * export const BUSINESS_PERMISSION_VALUES = ['发货', '充值', '接待', '指派'] as const; * export const defineBusinessPageConfig = createBusinessPageConfigFn(BUSINESS_PERMISSION_VALUES); * * // 业务层页面 index.ts * import { defineBusinessPageConfig } from '../permissions'; * * export default defineBusinessPageConfig({ * permissions: ['发货', '充值', '添加'], // 有完整类型推断 * }); * ``` */ export declare function createBusinessPageConfigFn(businessPermissions: T): >(config: C) => C & { permissionValue?: bigint; }; type PageConfig = { page: unknown; path: string; name: string; icon?: string; auth?: boolean; order?: number; hidden?: boolean; permissions?: T[]; permissionValue?: bigint; children?: PageConfig[]; }; /** * 获取全局权限配置 */ export declare function getPermissionConfig(): PermissionConfig; /** * 根据权限名称数组构建位运算权限值 * @param names - 权限名称数组,如 ['添加', '编辑', '发货'] * @returns bigint 位运算值 * * @example * ```typescript * buildPerValue(['添加']) // 1n * buildPerValue(['添加', '编辑']) // 3n * buildPerValue(['发货', '充值']) // 业务层权限值 * ``` */ export declare function buildPerValue(names: string[]): bigint; /** * 根据权限名称获取单个权限位值 * @param name - 权限名称 * @returns bigint 单个权限位值 * * @example * ```typescript * getPermValue('添加') // 1n * getPermValue('编辑') // 2n * ``` */ export declare function getPermValue(name: string): bigint; /** * 根据位运算值解析为权限名称数组 * @param value - 位运算值(字符串格式,API 返回) * @returns 权限名称数组 * * @example * ```typescript * parsePerValue('3') // ['添加', '编辑'] * parsePerValue('10') // ['删除', '导出'] * ``` */ export declare function parsePerValue(value: string): string[]; /** * 检查是否包含指定权限 * @param value - 位运算值(字符串格式,API 返回) * @param name - 权限名称 * @returns boolean 是否包含 * * @example * ```typescript * hasPermission('3', '添加') // true * hasPermission('3', '删除') // false * ``` */ export declare function hasPermission(value: string, name: string): boolean; /** * 获取所有权限选项(用于 UI 展示) * @param parentPermissionValue - 父权限值(可选) * @returns 权限选项数组 {name, label, value, icon?} */ export declare function getPermissionOptions(parentPermissionValue?: string | number): Array<{ name: string; label: string; value: number; icon?: any; }>; export {}; //# sourceMappingURL=permissions.d.ts.map