Implementierungsschritte von vue-element-admin zum Erstellen eines Backend-Verwaltungssystems

Implementierungsschritte von vue-element-admin zum Erstellen eines Backend-Verwaltungssystems

Als ich kürzlich an einem System zur Gesundheitserklärung für Konferenzen arbeitete, musste ich ein Backend erstellen und verwendete die Vorlage vue-element-admin. Ich verwendete PanJianChen (Quellcodeadresse: https://github.com/PanJiaChen/vue-admin-template)

Der erste Schritt: Laden Sie den Quellcode herunter, Download-Adresse: https://github.com/PanJiaChen/vue-admin-template

Schritt 2: Ändern Sie die Anmeldeseite, die Anmeldeoberfläche (/store/modules/admin.js/login()) und die Benutzerinformationsoberfläche (/store/modules/admin.js/getInfo()) entsprechend der tatsächlichen Situation

Schritt 3: Ändern der Berechtigungsweiterleitung

1. Löschen Sie die Konfiguration in der Routing-Datei, exportieren Sie const constantRoutes, um die grundlegenden /login, /404 beizubehalten

2. Dynamisches Routing wird gelöscht, export const asyncRoutes=[]

3. Definieren Sie die generierte Routing-Methode in /store/modules/permission.js

/**
 * Die im Hintergrund abgefragten Menüdaten werden zu Daten im Routingformat zusammengesetzt* @param routes
 */
Exportfunktion generaMenu(Routen, Daten) {
 
    Daten.fürJeden(Element => {
        let Menü = {
            Pfad: item.url,
            Kinder: [],
            Name: 'menu_' + item.id,
            Meta: {Titel: Artikelname, ID: Artikel-ID, Symbol: Artikelsymbol}
        }
        // Konsole.log(item.url.indexOf('dashboard'))
 
        // konsole.log(Element.Kinder)
        wenn (Element.Kinder) {
            // Konsole.log(Element.Kinder.Länge)
            wenn (Element.Kinder.Länge > 0) {
                menu.redirect = item.kinder[0].url
                Menükomponente = Layout
            } anders {
                // Menü.Komponente = () => import(`@/views${item.url}/index`)
                Menü.Komponente = () => Promise.resolve(erfordert(`@/views${item.url}`).Standard)
 
            }
            wenn (item.url && item.url.indexOf('dashboard') != -1) {
                Menü = {
                    Weg: '/',
                    Komponente: Layout,
                    Umleitung: '/dashboard',
                    Kinder: [{
                        Pfad: 'Dashboard',
                        Name: 'Dashboard',
                        Komponente: () => import('@/views/dashboard/index'),
                        Meta: {Titel: „Dashboard“, Symbol: „Dashboard“}
                    }]
                }
            }
            generaMenu(Menü.Kinder, Element.Kinder)
        } anders {
            console.log('keine untergeordneten Elemente')
        }
        Routen.push(Menü)
    })
}

Laden Sie dynamisches Routing in Aktionen entsprechend der Hintergrundschnittstelle

Aktionen: {
        Routes generieren({ commit }, data) {
            gib ein neues Versprechen zurück (Auflösen => {
 
                const loadMenuData = []
                getAuthMenu().then(res => {
                    let data = res.data
                    console.log('Menü=>', Daten)
                    console.log('asyncRoutes=>>', asyncRoutes)
                    let newRoutes = [] //Hier die vorherigen Routen löschenObject.assign(loadMenuData, data)
                    generaMenu(neueRouten, loadMenuData)
                    newRoutes.push({ Pfad: '*', Umleitung: '/404', versteckt: true })
                    let accessedRouters = newRoutes || []
                    console.log('ZugegriffeneRouter', ZugegriffeneRouter)
                    commit('SET_ROUTERS', aufgerufene Router)
                    lösen()
                })
 
            })
        },
        Reset_Router ({ Commit }) {
            gib ein neues Versprechen zurück (Auflösen => {
                commit('ROUTERS ZURÜCKSETZEN')
                lösen()
            })
        }
    }

Schritt 4. Dynamisches Routing in /permission.js hinzufügen

router.beforeEach(async (zu, von, weiter) => {
    // Fortschrittsbalken starten
    NProgress.start()
 
    // Seitentitel festlegen
    Dokumenttitel = getPageTitle(zu.meta.title)
 
    // Feststellen, ob der Benutzer sich angemeldet hat
    const hasToken = getToken()
 
    wenn (hatToken) {
        wenn (zu.Pfad === '/login') {
            // wenn angemeldet, Weiterleitung zur Startseite
            weiter({ Pfad: '/' })
            NProgress.done()
        } anders {
            const hasGetUserInfo = store.getters.name
            wenn (hasGetUserInfo) {
                nächste()
            } anders {
                versuchen {
                    // Benutzerinformationen abrufen
                    warte auf store.dispatch('admin/getInfo')
 
                    store.dispatch('GenerateRoutes', {}).then(() => { // Eine zugängliche Routing-Tabelle generieren router.addRoutes(store.getters.addRouters) // Eine zugängliche Routing-Tabelle dynamisch hinzufügen console.log('to=',store.getters.addRouters)
                        next({ ...to, replace: true }) // Hack-Methode, um sicherzustellen, dass addRoutes abgeschlossen ist. Setzen Sie replace: true, damit die Navigation keinen Verlaufsdatensatz hinterlässt.
                        NProgress.done()
                    })
 
                    // nächste()
                } Fehler abfangen {
                    // Token entfernen und zur Anmeldeseite gehen, um sich erneut anzumelden
                    warte auf store.dispatch('admin/resetToken')
                    Message.error(Fehler || 'Hat einen Fehler')
                    weiter(`/login?redirect=${to.path}`)
                    NProgress.done()
                }
            }
        }
    } anders {
        /* hat kein Token*/
 
        wenn (whiteList.indexOf(to.path) !== -1) {
            // in der Whitelist für kostenlose Anmeldungen direkt
            nächste()
        } anders {
            // Andere Seiten ohne Zugriffsberechtigung werden auf die Anmeldeseite umgeleitet.
            weiter(`/login?redirect=${to.path}`)
            NProgress.done()
        }
    }
})

Dann können Sie spielen, wie Sie möchten.

Dies ist das Ende dieses Artikels über die Implementierungsschritte von vue-element-admin zum Erstellen eines Backend-Verwaltungssystems. Weitere relevante Informationen zu vue-element-admin zum Erstellen eines Backend-Verwaltungssystems finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue-Element-Admin integriert eine eigene Schnittstelle, um den Login-Sprung zu realisieren
  • So legen Sie die Standardsprache in vue-element-admin fest
  • So konvertieren Sie vue-element-admin ins Chinesische
  • vue-element-admin global laden warten
  • Vue-Element-Admin-Login, vollständige Prozessfreigabe

<<:  Lösen Sie das Problem, dass bei der Set-Operation kein NULL gefunden wird, nicht wie bei MySQL

>>: 

Artikel empfehlen

JQuery implementiert das Ausblenden und Anzeigen von Animationseffekten

In diesem Artikel wird der spezifische Code von J...

Weitere Möglichkeiten zur Verwendung von spitzen Klammern in Bash

Vorwort In diesem Artikel werden wir weitere Verw...

Grundlegende Anwendungsbeispiele für Listener in Vue

Inhaltsverzeichnis Vorwort 1. Grundlegende Verwen...

Detaillierte Erklärung zum Ändern des Standardports von nginx

Finden Sie zunächst heraus, wo sich die Konfigura...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (5)

Diese eingeführten HTML-Tags entsprechen nicht un...

So optimieren Sie den Logikbeurteilungscode in JavaScript

Vorwort Zu den logischen Urteilsaussagen, die wir...

Praktischer grundlegender Beispielcode für den Linux-Befehl sed

Der Linux-Stream-Editor ist eine nützliche Möglic...

jQuery implementiert Navigationsleisteneffekt mit Erweiterungsanimation

Ich habe eine Navigationsleiste mit einem erweite...

Detaillierte Einführung in den DOCTYPE-Typ

<br />Wir deklarieren DOCTYPE in HTML normal...