{"version":3,"file":"permission.mjs","sources":["../../../src/utils/permission.js"],"sourcesContent":["/**\r\n *  Copyright [2022] [https://www.xiaonuo.vip]\r\n *\tSnowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：\r\n *\t1.请不要删除和修改根目录下的LICENSE文档。\r\n *\t2.请不要删除和修改Snowy源码头部的版权声明。\r\n *\t3.本项目代码可免费商业使用，商业使用请保留源码和相关描述文档的项目出处，作者声明等。\r\n *\t4.分发源码时候，请注明软件出处 https://www.xiaonuo.vip\r\n *\t5.不可二次分发开源参与同类竞品，如有想法可联系团队xiaonuobase@qq.com商议合作。\r\n *\t6.若您的项目无法满足以上几点，需要更多功能代码，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip\r\n */\r\nimport {tool} from 'elead-ui-tool-v3'\r\n/**\r\n * 权限判断是否能看到这个按钮，同时后端也做了校验，前端只是显示与不显示\r\n * @param {string, array} data 按钮的权限点，可以是单个字符串，也可以是数组\r\n * @param {string} rule or代表或，and代表与\r\n * 使用方法：\r\n * 例如 buttonCodeList 的数据为： ['button1', 'button2', 'button3']\r\n * 想要判断 button1 的权限，可以写成：hasPerm('button1')\r\n * 想要判断 button1 或 button2 的权限，可以写成：hasPerm(['button1', 'button2' ])\r\n * 想要判断 button1 与 button2 的权限，可以写成：hasPerm(['button1', 'button2' ], 'and')\r\n */\r\nexport function hasPerm(data, rule = 'or') {\r\n\tif (!data) {\r\n\t\treturn false\r\n\t}\r\n\tconst userInfo = tool.data.get('USER_INFO')\r\n\tif (!userInfo) {\r\n\t\treturn false\r\n\t}\r\n\tconst { buttonCodeList } = userInfo\r\n\tif (!buttonCodeList) {\r\n\t\treturn false\r\n\t}\r\n\tif (Array.isArray(data)) {\r\n\t\tconst fn = rule === 'or' ? 'some' : 'every'\r\n\t\treturn data[fn]((item) => buttonCodeList.includes(item))\r\n\t}\r\n\treturn buttonCodeList.includes(data)\r\n}\r\n"],"names":[],"mappings":";AAqBO,SAAS,QAAQ,MAAM,OAAO,MAAM;AAC1C,MAAI,CAAC,MAAM;AACV,WAAO;AAAA,EACP;AACD,QAAM,WAAW,KAAK,KAAK,IAAI,WAAW;AAC1C,MAAI,CAAC,UAAU;AACd,WAAO;AAAA,EACP;AACD,QAAM,EAAE,eAAc,IAAK;AAC3B,MAAI,CAAC,gBAAgB;AACpB,WAAO;AAAA,EACP;AACD,MAAI,MAAM,QAAQ,IAAI,GAAG;AACxB,UAAM,KAAK,SAAS,OAAO,SAAS;AACpC,WAAO,KAAK,IAAI,CAAC,SAAS,eAAe,SAAS,IAAI,CAAC;AAAA,EACvD;AACD,SAAO,eAAe,SAAS,IAAI;AACpC;"}