Maison interface Web js tutoriel Partage de code de contrôle des autorisations de vue-router

Partage de code de contrôle des autorisations de vue-router

Feb 07, 2018 am 10:49 AM
vue-router 代码 分享

Cet article vous présente principalement l'exemple de code du contrôle des autorisations vue-router. L'éditeur pense qu'il est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.

Le système de gestion backend de l'entreprise a été récemment construit et le système est relativement volumineux. Les points suivants doivent être atteints :

  • Autorisations de menu, affichage différent. selon différentes autorisations Menu

  • autorisations d'opération, par exemple, certains comptes n'ont pas l'autorisation d'ajouter, et certains n'ont pas l'autorisation de modifier ou de supprimer

  • autorisations de données, telles que l'aperçu statistique, les administrateurs ordinaires ne peuvent pas voir l'aperçu des activités de l'entreprise, mais ils peuvent voir l'aperçu de leur région

  • autorisations d'affichage, telles que les listes, les opérations peut voir le montant du contrat dans cette colonne, mais le marché ne peut pas voir la colonne du montant du contrat

Il est encore en construction jusqu'à présent, et les autorisations de menu et les autorisations d'opération ont été résolues.

Autorisations de menu :

Au début, nous avons également suivi la méthode indiquée ci-dessus. Nous configurons d'abord un ensemble d'itinéraires localement, puis après une connexion réussie, une liste de menus sera affichée. renvoyé par le serveur. Ensuite, dans beforeEach, la liste de menus renvoyée est comparée à la route configurée localement. Si elle existe, elle a l'autorisation d'accéder. Après avoir travaillé dessus pendant quelques jours, j'ai eu du mal à l'utiliser. J'ai dû configurer un ensemble complet de routes localement, et j'ai également dû créer plusieurs pages pour écrire les informations de routage sur le serveur, afin d'attribuer des autorisations. Lorsque vous avez beaucoup de menus d'autorisations, comme le nôtre. Dans ce backend, il existe plusieurs ensembles d'autorisations internes à l'entreprise, ainsi que des autorisations d'agent, de commerçant, etc. Il peut y avoir plus de centaines de menus différents. Une telle configuration est trop fatigante et. sujet aux erreurs.

La solution finale est de ne faire aucune configuration de routage localement. La page de connexion est créée séparément et non placée dans le composant vue. Une fois la connexion réussie, la liste de menus est récupérée dans le composant vue. arrière-plan car la connexion est réussie maintenant, donc ce que vous récupérez, c'est un tout nouveau menu. Après avoir réussi la récupération, configurez-le dans la route, puis instanciez vue. Cela évite d'avoir à configurer un ensemble de routes localement et configure la route entièrement sur le serveur.

La seule difficulté résolue de cette manière est que le routage nécessite des composants correspondants, nous stockons donc tous les composants dans un objet. Dans la liste de menu renvoyée par le serveur, il y aura un champ pour configurer le composant. name. lorsque la configuration de routage est générée une fois la récupération réussie, utilisez simplement router[menuName] pour la charger directement dans ce composant, ce qui est très pratique.

Extrait de code main.js :


// 实例化Login类并初始化
 new Login(function (err, data) {
  if (err) {
   // 登录出错
  } else {
   // 登录成功
   init(data);
  }
 }).init();

const init = function (data) {
 // 先配置路由信息
 // componentConfigs 是本地的组件配置
 let routers = assignRouter(data.menus, componentConfigs);
 // 实例化路由
 router = new Router({routes: routers});
 // 再实例化vue
 new Vue({
  el: '#app',
  store,
  router,
  nprogress,
  ...App
 });
};
Copier après la connexion

Extrait de codecomponentConfigs.js :


export default {
 Common: {
  Admin: require('../../vue/pages/common/Admin'),
  Index: require('../../vue/pages/common/Index'),
  UpdatePassword: r => require.ensure([], () => r(require('../../vue/pages/users/UpdatePassword')), 'users')
 }
}
Copier après la connexion

Le menu json renvoyé par le serveur :

Le champ méta contient les autorisations d'opération dans la route actuelle


[{
      "path": "\/admin\/index",
      "name": "\u9996\u9875",
      "component": "Common.Index",
      "display": true,
      "icon": "icon-home"
    }, {
      "path": "\/admin\/updatePassword",
      "name": "\u4fee\u6539\u5bc6\u7801",
      "component": "Common.UpdatePassword",
      "display": false
    }, {
      "path": "\/admin\/commodity",
      "name": "\u5546\u54c1\u7ba1\u7406",
      "component": "Content",
      "display": true,
      "icon": "icon-class",
      "children": [{
        "path": "\/admin\/commodity\/publicWarehouse",
        "name": "\u516c\u5171\u5e93\u7ba1\u7406",
        "component": "Commodity.PublicWarehouse",
        "display": true,
        "meta": {"handleAuth": {"add": true, "edit": false, "del": true}}
      }, {
        "path": "\/admin\/commodity\/businessesWarehouse",
        "name": "\u5546\u5bb6\u5e93\u7ba1\u7406",
        "component": "Commodity.BusinessesWarehouse",
        "display": true,
        "meta": {"handleAuth": {"add": true, "edit": false, "del": true}}
      }]
    }]
Copier après la connexion

Les autorisations du menu sont à peu près comme ceci. Quant aux autorisations d'opération, l'idée est la suivante : Écrivez un plug-in de vue d'authentification, puis placez toutes les opérations indépendamment dans les méthodes, puis toutes les opérations appellent la fonction d'authentification dans ; @click, $auth( 'add', arg1, arg2, ...argN); Déterminez dans $auth si this.$route.meta a l'autorisation d'effectuer cette opération. Si tel est le cas, appelez this[authName].apply(null. , arg);

Recommandations associées :

Analyse pratique des principes de mise en œuvre du contrôle des autorisations des membres PHP_Tutoriel PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment partager Quark Netdisk avec Baidu Netdisk ? Comment partager Quark Netdisk avec Baidu Netdisk ? Mar 14, 2024 pm 04:40 PM

Quark Netdisk et Baidu Netdisk sont tous deux des outils de stockage très pratiques. De nombreux utilisateurs se demandent si ces deux logiciels sont interopérables ? Comment partager Quark Netdisk avec Baidu Netdisk ? Laissez ce site présenter en détail aux utilisateurs comment enregistrer les fichiers Quark Network Disk sur Baidu Network Disk. Comment enregistrer des fichiers de Quark Network Disk vers Baidu Network Disk Méthode 1. Si vous souhaitez savoir comment transférer des fichiers de Quark Network Disk vers Baidu Network Disk, téléchargez d'abord les fichiers qui doivent être enregistrés sur Quark Network Disk, puis ouvrez le client Baidu Network Disk, sélectionnez le dossier dans lequel le fichier compressé doit être enregistré et double-cliquez pour ouvrir le dossier. 2. Après avoir ouvert le dossier, cliquez sur « Télécharger » dans le coin supérieur gauche de la fenêtre. 3. Recherchez le fichier compressé qui doit être téléchargé sur votre ordinateur et cliquez pour le sélectionner.

Comment résoudre le code 28 du pilote Win7 Comment résoudre le code 28 du pilote Win7 Dec 30, 2023 pm 11:55 PM

Certains utilisateurs ont rencontré des erreurs lors de l'installation du périphérique, provoquant le code d'erreur 28. En fait, cela est principalement dû au pilote. Il nous suffit de résoudre le problème du code de pilote Win7 28. Voyons ce qu'il faut faire. . Que faire avec le code 28 du pilote Win7 : Tout d'abord, nous devons cliquer sur le menu Démarrer dans le coin inférieur gauche de l'écran. Ensuite, recherchez et cliquez sur l'option "Panneau de configuration" dans le menu contextuel. Cette option est généralement située en bas ou près du bas du menu. Après avoir cliqué, le système ouvrira automatiquement l'interface du panneau de configuration. Dans le panneau de configuration, nous pouvons effectuer divers paramètres système et opérations de gestion. C'est la première étape du niveau de nettoyage nostalgique, j'espère que cela aidera. Ensuite, nous devons continuer et entrer dans le système et

Que faire si le code d'écran bleu 0x0000001 apparaît Que faire si le code d'écran bleu 0x0000001 apparaît Feb 23, 2024 am 08:09 AM

Que faire avec le code d'écran bleu 0x0000001. L'erreur d'écran bleu est un mécanisme d'avertissement en cas de problème avec le système informatique ou le matériel. Le code 0x0000001 indique généralement une panne de matériel ou de pilote. Lorsque les utilisateurs rencontrent soudainement une erreur d’écran bleu lors de l’utilisation de leur ordinateur, ils peuvent se sentir paniqués et perdus. Heureusement, la plupart des erreurs d’écran bleu peuvent être dépannées et traitées en quelques étapes simples. Cet article présentera aux lecteurs certaines méthodes pour résoudre le code d'erreur d'écran bleu 0x0000001. Tout d'abord, lorsque nous rencontrons une erreur d'écran bleu, nous pouvons essayer de redémarrer

Comment partager NetEase Cloud Music avec WeChat Moments_Tutorial sur le partage de NetEase Cloud Music avec WeChat Moments Comment partager NetEase Cloud Music avec WeChat Moments_Tutorial sur le partage de NetEase Cloud Music avec WeChat Moments Mar 25, 2024 am 11:41 AM

1. Tout d'abord, nous entrons dans NetEase Cloud Music, puis cliquons sur l'interface de la page d'accueil du logiciel pour accéder à l'interface de lecture de chansons. 2. Ensuite, dans l'interface de lecture de la chanson, recherchez le bouton de fonction de partage en haut à droite, comme indiqué dans l'encadré rouge de la figure ci-dessous, cliquez pour sélectionner le canal de partage dans le canal de partage, cliquez sur l'option « Partager sur » sur en bas, puis sélectionnez le premier « WeChat Moments » qui vous permet de partager du contenu avec WeChat Moments.

L'ordinateur affiche fréquemment des écrans bleus et le code est différent à chaque fois L'ordinateur affiche fréquemment des écrans bleus et le code est différent à chaque fois Jan 06, 2024 pm 10:53 PM

Le système Win10 est un très excellent système à haute intelligence. Sa puissante intelligence peut apporter la meilleure expérience utilisateur aux utilisateurs. Dans des circonstances normales, les ordinateurs du système Win10 des utilisateurs n'auront aucun problème ! Cependant, il est inévitable que divers défauts se produisent sur d'excellents ordinateurs. Récemment, des amis ont signalé que leurs systèmes Win10 rencontraient fréquemment des écrans bleus ! Aujourd'hui, l'éditeur vous proposera des solutions aux différents codes qui provoquent des écrans bleus fréquents sur les ordinateurs Windows 10. Jetons un coup d'œil. Solutions aux écrans bleus fréquents de l'ordinateur avec des codes différents à chaque fois : causes des différents codes d'erreur et suggestions de solutions 1. Cause de l'erreur 0×000000116 : Il se peut que le pilote de la carte graphique soit incompatible. Solution : Il est recommandé de remplacer le pilote d'origine du fabricant. 2,

Résoudre l'erreur du code 0xc000007b Résoudre l'erreur du code 0xc000007b Feb 18, 2024 pm 07:34 PM

Code de terminaison 0xc000007b Lors de l'utilisation de votre ordinateur, vous rencontrez parfois divers problèmes et codes d'erreur. Parmi eux, le code de terminaison est le plus inquiétant, notamment le code de terminaison 0xc000007b. Ce code indique qu'une application ne peut pas démarrer correctement, provoquant des désagréments pour l'utilisateur. Tout d’abord, comprenons la signification du code de terminaison 0xc000007b. Ce code est un code d'erreur du système d'exploitation Windows qui se produit généralement lorsqu'une application 32 bits tente de s'exécuter sur un système d'exploitation 64 bits. Cela signifie que ça devrait

Programme de codes à distance universels GE sur n'importe quel appareil Programme de codes à distance universels GE sur n'importe quel appareil Mar 02, 2024 pm 01:58 PM

Si vous devez programmer un appareil à distance, cet article vous aidera. Nous partagerons les meilleurs codes de télécommande universelle GE pour programmer n’importe quel appareil. Qu'est-ce qu'une télécommande GE ? GEUniversalRemote est une télécommande qui peut être utilisée pour contrôler plusieurs appareils tels que les téléviseurs intelligents, LG, Vizio, Sony, Blu-ray, DVD, DVR, Roku, AppleTV, lecteurs multimédias en streaming et plus encore. Les télécommandes GEUniversal sont disponibles en différents modèles avec différentes caractéristiques et fonctions. GEUniversalRemote peut contrôler jusqu'à quatre appareils. Les meilleurs codes de télécommande universels à programmer sur n'importe quel appareil. Les télécommandes GE sont livrées avec un ensemble de codes qui leur permettent de fonctionner avec différents appareils. vous pouvez

Que représente le code écran bleu 0x000000d1 ? Que représente le code écran bleu 0x000000d1 ? Feb 18, 2024 pm 01:35 PM

Que signifie le code d'écran bleu 0x000000d1 ? Ces dernières années, avec la popularisation des ordinateurs et le développement rapide d'Internet, les problèmes de stabilité et de sécurité du système d'exploitation sont devenus de plus en plus importants. Les erreurs d’écran bleu sont un problème courant, le code 0x000000d1 en fait partie. Une erreur d'écran bleu, ou « Écran bleu de la mort », est une condition qui se produit lorsqu'un ordinateur subit une panne système grave. Lorsque le système ne parvient pas à récupérer de l'erreur, le système d'exploitation Windows affiche un écran bleu avec le code d'erreur à l'écran. Ces codes d'erreur

See all articles