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

Im Mybatis MySQL-Löschvorgang kann nur die erste Datenmethode gelöscht werden

Insekten Wie in der Abbildung gezeigt, begann ich...

Kurze Analyse von CentOS 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar

Baidu Cloud-Festplatte: Link: https://pan.baidu.c...

So erstellen Sie YUM in einer Centos7-Umgebung

1. Geben Sie die Konfigurationsdatei der Yum-Quel...

Ein tiefes Verständnis der spitzen Klammern in Bash (für Anfänger)

Vorwort Bash verfügt über viele wichtige integrie...

Ändern Sie den Stil des HTML-Textkörpers in JS

Inhaltsverzeichnis 1. Ursprüngliche Definition 2....

Umfassendes Verständnis der Node-Ereignisschleife

Inhaltsverzeichnis Knoten-Ereignisschleife Ereign...

CSS3-Übergang zum Erreichen des unterstrichenen Beispielcodes

In diesem Artikel wird der Beispielcode für den C...

js implementiert benutzerdefinierte Dropdown-Box

In diesem Artikelbeispiel wird der spezifische JS...

Vue echarts realisiert horizontales Balkendiagramm

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