UNPKG

tav-ui

Version:
1 lines 8.3 kB
{"version":3,"file":"utils2.mjs","sources":["../../../../../../../packages/components/permission/src/utils.ts"],"sourcesContent":["import { computed, unref } from 'vue'\nimport { useNamespace } from '@tav-ui/utils/namespace'\nimport { nanoid } from '@tav-ui/utils/uuid'\nimport { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\nimport { DEFAULT_PERMISSIONQUERY_KEYS, type PermissionQueryContent } from './PermissionQuery/types'\n\nexport function createNS(name: string) {\n return useNamespace(name)\n}\n\nexport function createId(className: string) {\n return `${className}-${nanoid()}`\n}\n\nexport function normalizedPermissionCodes(codes: string[]) {\n return codes.reduce((result, code) => {\n if (!result[code]) result[code] = code\n return result\n }, {} as Record<string, any>)\n}\n\nexport function normalizedPermissionQueryContent(content: Record<string, any>) {\n let permissionQueryContent: PermissionQueryContent | undefined\n\n Object.keys(content).forEach((key: string) => {\n if (!permissionQueryContent) permissionQueryContent = {} as any\n if (DEFAULT_PERMISSIONQUERY_KEYS.includes(key as any)) {\n if (key === DEFAULT_PERMISSIONQUERY_KEYS[1]) {\n ;(permissionQueryContent as any)[key] = normalizedPermissionCodes(content[key])\n } else {\n ;(permissionQueryContent as any)[key] = content[key]\n }\n }\n })\n\n return permissionQueryContent\n}\n\nexport function usePermissionMatchedByParent(options: {\n code: string\n ref: any\n row?: any\n useEffect?: boolean\n}) {\n const { code, ref: vnode, row, useEffect = true } = options\n const PermissionParentNames = ['TaPermissionQuery', 'TaPermissionDataQuery']\n\n function filterVNodeProps(_vnode: any) {\n const filterVNode = unref(_vnode)\n const tableProVNode = (\n filterVNode.instance ? filterVNode.instance._ || filterVNode.instance.$ : {}\n ).parent\n return (\n tableProVNode ??\n filterVNode.parent ??\n filterVNode.__vueParentComponent ??\n filterVNode.$?.parent ??\n null\n )\n }\n\n function findPermissionParent(__vnode: any): boolean {\n const _vnode = unref(__vnode)\n if (!unref(_vnode)) return false\n\n if (\n _vnode.type &&\n _vnode.type.name &&\n PermissionParentNames.includes(_vnode.type.name) &&\n _vnode.exposed &&\n _vnode.exposed.permissionContext &&\n _vnode.exposed.permissionContext.permission\n ) {\n if (Array.isArray(_vnode.exposed.permissionContext.permission)) {\n // 对象数组直接跳过 @guoming\n return findPermissionParent(filterVNodeProps(_vnode))\n } else {\n const permissionCodes =\n _vnode.exposed.permissionContext.permission.permissionCodes ||\n _vnode.exposed.permissionContext.permission.RECORD_PREMISSION.permissionCodes\n\n if (permissionCodes) {\n if (Array.isArray(permissionCodes)) {\n if (permissionCodes.includes(code)) {\n return !!permissionCodes.includes(code)\n } else {\n return findPermissionParent(filterVNodeProps(_vnode))\n }\n } else if (Reflect.has(permissionCodes, code)) {\n return !!permissionCodes[code]\n } else {\n return findPermissionParent(filterVNodeProps(_vnode))\n }\n } else {\n return findPermissionParent(filterVNodeProps(_vnode))\n }\n }\n } else {\n return findPermissionParent(filterVNodeProps(_vnode))\n }\n }\n\n function findRowPermission(row: any) {\n if (row && row.RECORD_PREMISSION && row.RECORD_PREMISSION.permissionCodes) {\n return row.RECORD_PREMISSION.permissionCodes.includes(code)\n }\n return false\n }\n\n function handler() {\n if (!(code && unref(vnode))) {\n // console.warn('[tavui permission usePermissionMatchedByParent] code、ref is required')\n return false\n }\n\n const findRowPermissionResult = !!row && findRowPermission(row)\n if (findRowPermissionResult) {\n return true\n } else {\n const findPermissionParentResult = findPermissionParent(filterVNodeProps(vnode))\n if (findPermissionParentResult) {\n return true\n } else {\n const resourceMapPermissions = useGlobalConfig('permissions') as Record<string, any>\n return resourceMapPermissions.value?.[code]?.ifShow ?? false\n }\n }\n }\n\n return useEffect ? computed(() => handler()) : handler()\n}\n"],"names":[],"mappings":"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"}