jobsys-newbie
Version:
Enhanced component based on ant-design-vue
1 lines • 4.05 kB
Source Map (JSON)
{"version":3,"file":"directives.cjs","names":[],"sources":["../directives/auth.js"],"sourcesContent":["/**\n * v-auth=\"'permissions1'\"\n * v-auth:all=\"['clickPermissions',['permission1', 'permission2']]\"\n * v-auth:any=\"['clickPermissions',['permission1', 'permission2']]\"\n * v-auth:none=\"['clickPermissions',['permission1', 'permission2']]\"\n * @type {*[]}\n */\n\nlet defaultPermissions = [];\n\nconst authDirective = {\n beforeMount(el, binding) {\n let { value } = binding;\n const { arg } = binding;\n\n if (!value) {\n return;\n }\n\n if (typeof value === \"string\" || value instanceof String) {\n value = [value];\n }\n\n let [permissions, myPermissions] = value;\n\n if (!myPermissions) {\n myPermissions = defaultPermissions;\n }\n\n if (typeof permissions === \"string\" || permissions instanceof String) {\n permissions = [permissions];\n }\n\n // arg: 'any' 任何一个, 'all' 全部都有,默认, 'none' 都没有\n\n if (arg === undefined || arg === \"all\") {\n if (!permissions.every(p => myPermissions.includes(p))) {\n el.style.display = \"none\";\n }\n } else if (arg === \"any\") {\n if (!permissions.some(p => myPermissions.includes(p))) {\n el.style.display = \"none\";\n }\n } else if (arg === \"none\") {\n if (permissions.some(p => myPermissions.includes(p))) {\n el.style.display = \"none\";\n }\n }\n },\n};\n\n/**\n * 初始化权限集合\n * @param permissions\n */\nexport function setDefaultPermissions(permissions) {\n defaultPermissions = permissions;\n}\n\nfunction auth(value, arg) {\n if (!value) {\n return true;\n }\n\n if (typeof value === \"string\" || value instanceof String) {\n value = [value];\n }\n\n let [permissions, myPermissions] = value;\n\n if (!myPermissions) {\n myPermissions = defaultPermissions;\n }\n\n if (typeof permissions === \"string\" || permissions instanceof String) {\n permissions = [permissions];\n }\n\n // arg: 'any' 任何一个, 'all' 全部都有,默认, 'none' 都没有\n\n if (arg === undefined || arg === \"all\") {\n if (!permissions.every(p => myPermissions.includes(p))) {\n return false;\n }\n } else if (arg === \"any\") {\n if (!permissions.some(p => myPermissions.includes(p))) {\n return false;\n }\n } else if (arg === \"none\") {\n if (permissions.some(p => myPermissions.includes(p))) {\n return false;\n }\n }\n return true;\n}\n\nexport default {\n /**\n *\n * @param app\n * @param {Object} [options]\n * @param {Object} [options.defaultPermissions]\n */\n install(app, options) {\n app.directive(\"auth\", authDirective);\n app.config.globalProperties.$auth = auth;\n app.provide(\"auth\", auth);\n\n if (options && options.defaultPermissions) {\n setDefaultPermissions(options.defaultPermissions);\n }\n },\n};\n"],"mappings":"mEAQA,IAAI,EAAqB,EAAE,CAErB,EAAgB,CACpB,YAAY,EAAI,EAAS,CACvB,GAAI,CAAE,SAAU,EACV,CAAE,OAAQ,EAEhB,GAAI,CAAC,EACH,QAGE,OAAO,GAAU,UAAY,aAAiB,UAChD,EAAQ,CAAC,EAAM,EAGjB,GAAI,CAAC,EAAa,GAAiB,EAEnC,AACE,IAAgB,GAGd,OAAO,GAAgB,UAAY,aAAuB,UAC5D,EAAc,CAAC,EAAY,EAKzB,IAAQ,IAAA,IAAa,IAAQ,MAC1B,EAAY,MAAM,GAAK,EAAc,SAAS,EAAE,CAAC,GACpD,EAAG,MAAM,QAAU,QAEZ,IAAQ,MACZ,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,GACnD,EAAG,MAAM,QAAU,QAEZ,IAAQ,QACb,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,GAClD,EAAG,MAAM,QAAU,SAI1B,CAMD,SAAgB,EAAsB,EAAa,CACjD,EAAqB,EAGvB,SAAS,EAAK,EAAO,EAAK,CACxB,GAAI,CAAC,EACH,MAAO,IAGL,OAAO,GAAU,UAAY,aAAiB,UAChD,EAAQ,CAAC,EAAM,EAGjB,GAAI,CAAC,EAAa,GAAiB,EAYnC,GAVA,AACE,IAAgB,GAGd,OAAO,GAAgB,UAAY,aAAuB,UAC5D,EAAc,CAAC,EAAY,EAKzB,IAAQ,IAAA,IAAa,IAAQ,UAC3B,CAAC,EAAY,MAAM,GAAK,EAAc,SAAS,EAAE,CAAC,CACpD,MAAO,WAEA,IAAQ,UACb,CAAC,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,CACnD,MAAO,WAEA,IAAQ,QACb,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,CAClD,MAAO,GAGX,MAAO,GAGT,IAAA,EAAe,CAOb,QAAQ,EAAK,EAAS,CACpB,EAAI,UAAU,OAAQ,EAAc,CACpC,EAAI,OAAO,iBAAiB,MAAQ,EACpC,EAAI,QAAQ,OAAQ,EAAK,CAErB,GAAW,EAAQ,oBACrB,EAAsB,EAAQ,mBAAmB,EAGtD"}