Inhaltsverzeichnis
Testplattformentwicklung basierend auf Springboot + Vue
1. Die Append-Methode des Front-End-Baumbaumsteuerelements
二、后端实现节点新增接口
1. controller 层
2. service 层
Erhalten Sie den vom Front-End übergebenen Datensatz des aktuellen Knotens, die Erstellungszeit und die Aktualisierungszeit . Legen Sie die Positionsreihenfolge dieses neu hinzugefügten untergeordneten Knotens unter den Geschwisterknoten fest. Legen Sie die Ebene des untergeordneten Knotens fest, dh die Ebene des aktuellen Knotens + 1 Satz , das ist der ID-Satz des Knotens, der derzeit an die Schnittstelle übergeben wird. = Fügen Sie schließlich die entsprechende Controller-Methode hinzu:
Schreiben Sie die Schnittstelle auf dem Front-End und rufen Sie dann die Schnittstelle auf der Seite auf.
2. 新增节点
Heim Java javaLernprogramm Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

May 10, 2023 pm 05:10 PM
vue springboot

Testplattformentwicklung basierend auf Springboot + Vue

1. Die Append-Methode des Front-End-Baumbaumsteuerelements

Unter dem elementUI-Baumsteuerelement gibt es eine append-Methode, die zum Anhängen verwendet werden kann ein Knoten im Baum ein untergeordneter Knoten. append方法,可以用来为 Tree 中的一个节点追加一个子节点。

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

目前我们已经完成了树列表的接口,可以在 append 方法中输出一下传入的 data 里到底是什么。

console.log('传入的node:' + JSON.stringify(data))
Nach dem Login kopieren

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

点击顶层的默认节点,F12 查看控制台,

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

可以看到:

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

格式化看下其实就是整个节点的树形结构。点击哪一个节点,data 内容就是这个节点下的所有节点数据。

但实际上,我只需要当前点击的节点的数据即可,这个节点下的 children 可以不关心,不过考虑到数据量也不大,就整个传给后端好了。

二、后端实现节点新增接口

我要实现的功能是点击哪个节点的添加按钮,就是添加这个节点的子节点,比如:

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

既然前端可以拿到当前节点的数据,那么新增接口的思路也就有了:

拿到前端传过来的当前节点的数据set 创建时间、更新时间set 好 pos,也就是这个新增的子结点在兄弟节点中的位置顺序set 子结点的层级,也就是当前节点的 level + 1set 子节点的父节点,也就是当前传入接口的节点的 idset 新增节点的名称,=最后进行 insert

1. controller 层

新增对应的控制器方法:

@PostMapping("/add")
  public Result addNode(@RequestBody ApiModule node) {
      try {
          System.out.println(node);
          Long nodeId = apiModuleService.addNode(node);
          return Result.success(nodeId);
      } catch (Exception e) {
          return Result.fail(e.toString());
      }
  }
Nach dem Login kopieren
2. service 层

实现 addNode 方法:

public Long addNode(ApiModule node) {
        node.setCreateTime(new Date());
        node.setUpdateTime(new Date());
        double pos = getNextLevelPos(node.getProjectId(), node.getLevel(), node.getId());
        node.setPos(pos);
        node.setLevel(node.getLevel() + 1);
        node.setParentId(node.getId());
        node.setName("ceshi111");
        apiModuleDAO.insert(node);
        return node.getId();
    }
Nach dem Login kopieren

这里就是按照上述思路来进行实现,setName 暂时用一个固定值代替,先看下新增接口是否可以正常实现。

这里 pos 处理稍微麻烦一点,这个是代表新增的这个节点处于的位置顺序,所以抽出去新增了一个方法实现getNextLevelPos

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

Derzeit haben wir die Schnittstelle der Baumliste fertiggestellt. Wir können in der Append-Methode ausgeben, was in den eingehenden Daten enthalten ist.

private double getNextLevelPos(Long projectId, int level, Long nodeId) {
      // 查询项目下,同parentId下,所有节点
      QueryWrapper<ApiModule> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("projectId", projectId)
                  .eq("level", level + 1)
                  .eq("parentId", nodeId)
                  .orderByDesc("pos");
      List<ApiModule> apiModules = apiModuleDAO.selectList(queryWrapper);
      if (!CollectionUtil.isEmpty(apiModules)) {
          // 不为空,获取最新的同级结点 pos 再加 1,作为下一个
          return apiModules.get(0).getPos() + 1;
      } else {
          // 否则就是当前父节点里的第一个子结点,pos 直接为 1
          return 1;
      }
  }
Nach dem Login kopieren
Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten-Hinzufügenfunktion method

Klicken Sie auf den Standardknoten der obersten Ebene, F12, um die Konsole anzuzeigen,

springboot vue Methode zum Hinzufügen von Funktionen zu Testbaumknoten der Front-End-Schnittstelle

Sie können sehen:

Springboot Vue Front-End- und Back-End-Schnittstellenmethode zum Testen der Funktion zum Hinzufügen von Baumknoten

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer FunktionsmethodeDie Formatierung ist tatsächlich die Baumstruktur des gesamten Knotens. Auf welchen Knoten geklickt wird, sind der Dateninhalt alle Knotendaten unter diesem Knoten.

Aber tatsächlich benötige ich nur die Daten des aktuell angeklickten Knotens. Um die untergeordneten Elemente unter diesem Knoten muss ich mich jedoch nicht kümmern. Da die Datenmenge jedoch nicht groß ist, übergebe ich sie einfach an das Backend in seiner Gesamtheit.

2. Back-End-Implementierung der neuen KnotenschnittstelleSpringboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

Die Funktion, die ich implementieren möchte, besteht darin, auf die Schaltfläche „Hinzufügen“ des Knotens zu klicken, um den untergeordneten Knoten dieses Knotens hinzuzufügen, z. B.:

Springboot Vue Front-End- und Back-End-Schnittstellen-Testbaumknoten-Hinzufügenfunktion

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer FunktionsmethodeSeitdem Das Front-End kann die Daten des aktuellen Knotens und dann die neuen abrufen. Die Idee, eine Schnittstelle hinzuzufügen, ist hier:

Erhalten Sie den vom Front-End übergebenen Datensatz des aktuellen Knotens, die Erstellungszeit und die Aktualisierungszeit . Legen Sie die Positionsreihenfolge dieses neu hinzugefügten untergeordneten Knotens unter den Geschwisterknoten fest. Legen Sie die Ebene des untergeordneten Knotens fest, dh die Ebene des aktuellen Knotens + 1 Satz , das ist der ID-Satz des Knotens, der derzeit an die Schnittstelle übergeben wird. = Fügen Sie schließlich die entsprechende Controller-Methode hinzu:

rrreee

2 Methode:

rrreee

Dies wird gemäß den oben genannten Ideen implementiert. SetName wird vorübergehend durch einen festen Wert ersetzt. Überprüfen Sie zunächst, ob die neue Schnittstelle normal implementiert werden kann.

Die POS-Verarbeitung ist hier etwas schwieriger. Dies stellt die Positionsreihenfolge des neu hinzugefügten Knotens dar, daher habe ich eine neue Methode zum Implementieren von getNextLevelPos hinzugefügt:

rrreee

Unter dem Abfrageprojekt dasselbe als parentId, Alle Knotendaten, beachten Sie hier die Abfragebedingungen. Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

.eq("level", level + 1), die aktuelle Ebene + 1 wird als Ebene des untergeordneten Knotens verwendet.eq("parentId", nodeId), der aktuelle Knoten wird als übergeordneter Knoten verwendet

Dann Beurteilen Sie die Abfrageergebnisse. Wenn die Liste nicht leer ist, wird die Position des neuesten untergeordneten Knotens plus 1 als Position des nächsten untergeordneten Knotens zurückgegeben.

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer FunktionsmethodeAndernfalls ist der neu hinzugefügte Knoten der erste untergeordnete Knoten im aktuellen übergeordneten Knoten und 1 wird direkt als pos-Wert zurückgegeben.

3. Gemeinsames Debuggen von Front-End und Back-End

Schreiben Sie die Schnittstelle auf dem Front-End und rufen Sie dann die Schnittstelle auf der Seite auf.

🎜🎜Rufen Sie die Benutzeroberfläche auf, fügen Sie eine Erfolgsmeldung hinzu und aktualisieren Sie dann die Baumliste. 🎜🎜🎜🎜🎜Die Funktion ist normal. Ein untergeordneter Knoten mit dem festen Namen „ceshi111“ wird unter dem entsprechenden Knoten hinzugefügt und der Baum wird aktualisiert, um die neuesten Daten anzuzeigen. 🎜🎜🎜🎜🎜 4. Bearbeiten Sie den Knotennamen 🎜🎜Das Obige ist abgeschlossen, was beweist, dass es kein großes Problem mit der Funktion gibt. Jetzt müssen wir nur noch das Problem der Bearbeitung des Knotennamens lösen. Ich habe mich entschieden, das Dialogfeld zur Lösung des Problems zu verwenden. 🎜🎜Klicken Sie auf die Schaltfläche „Hinzufügen“, um das Dialogfeld zu öffnen, in dem Sie den Knotennamen eingeben und speichern können. Dieses Dialogfeld steht auch zum Bearbeiten von Szenen zur Verfügung. 🎜🎜In der Projektverwaltungsfunktion habe ich den entsprechenden Code bereits einmal kopiert und geändert. 🎜🎜🎜🎜🎜 entspricht der Rückgabe: 🎜🎜🎜🎜🎜Das Dialogfeld enthält zwei Schaltflächen: Abbrechen und Speichern. Wenn Sie auf die Schaltfläche „Speichern“ klicken, werden unterschiedliche Methoden aufgerufen, je nachdem, ob es neu oder geändert ist. 🎜🎜1. Öffnen Sie das Dialogfeld. Ändern Sie die Anhängemethode. Sie müssen das Dialogfeld öffnen, wenn Sie auf die Schaltfläche „Neu“ klicken. 🎜

Es gibt noch einen weiteren wichtigen Punkt, da das Hinzufügen eines Knotens die Übergabe von Daten erfordert und der eigentliche Hinzufügungsvorgang nun die Methode handleNodeAdd ist. Daher müssen Sie die Daten speichern, wenn Sie das Dialogfeld öffnen. handleNodeAdd方法。所以需要在打开对话框的时候,把 data 存下来。

于是,在 return 里新建一个字段currentNode: {}:

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

在 append 方法里把 data 赋值给 currentNode:

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

这里this.dialogStatus = 'create'就是显示对话框。

2. 新增节点

在对话框里输入节点名称,点击保存,就好调用handleNodeAdd

Erstellen Sie also ein neues Feld currentNode: {} im Gegenzug:

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethodespringboot Funktion zum Hinzufügen von Baumknoten für Front-End- und Back-End-Schnittstellentests von Vue

Weisen Sie in der Append-Methode Daten zu currentNode zu:

springboot vue Front-End- und Back-End-Schnittstellentestmethode zum Hinzufügen von BaumknotenSpringboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

Hier dient this.dialogStatus = 'create' zum Anzeigen des Dialogfelds.

2. Einen neuen Knoten hinzufügen
Geben Sie den Knotennamen in das Dialogfeld ein, klicken Sie auf Speichern und rufen Sie dann die Methode handleNodeAdd auf, um die Backend-Schnittstelle anzufordern.

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

Da der an das Backend übergebene Knotenname von uns eingegeben wird, also hier this.currentNode.name = this.form.nodeName.

Springboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode

Geben Sie nach erfolgreicher Anfrage eine Eingabeaufforderung ein und leeren Sie dann das Formular, um zu vermeiden, dass nach dem Öffnen des Dialogfelds der letzte Inhalt angezeigt wird.

3. Testen🎜🎜Um zu testen, ob die Funktion normal ist, lösche ich den Knoten unter der Projekt-ID=3. 🎜🎜🎜🎜🎜Neuen Testknoten hinzufügen: 🎜🎜🎜🎜🎜funktioniert normal. 🎜

Das obige ist der detaillierte Inhalt vonSpringboot Vue Front-End- und Back-End-Schnittstellentestbaumknoten zum Hinzufügen einer Funktionsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

So verwenden Sie Vue Traversal So verwenden Sie Vue Traversal Apr 07, 2025 pm 11:48 PM

Es gibt drei gängige Methoden für Vue.js, um Arrays und Objekte zu durchqueren: Die V-für-Anweisung wird verwendet, um jedes Element zu durchqueren und Vorlagen zu rendern; Die V-Bind-Anweisung kann mit V-für dynamisch Attributwerte für jedes Element verwendet werden. und die .MAP -Methode kann Array -Elemente in Neuarrays umwandeln.

Wie man einen Tag zum Vue springt Wie man einen Tag zum Vue springt Apr 08, 2025 am 09:24 AM

Zu den Methoden zum Implementieren des Sprung eines Tags in VUE gehören: Verwenden des A -Tags in der HTML -Vorlage, um das HREF -Attribut anzugeben. Verwenden Sie die Router-Link-Komponente des Vue-Routings. Verwenden Sie dies. $ Router.push () Methode in JavaScript. Parameter können durch den Abfrageparameter weitergeleitet werden, und Routen sind in den Routeroptionen für dynamische Sprünge konfiguriert.

See all articles