検索
ホームページJava&#&チュートリアルspringboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

springboot vue をベースにしたテストプラットフォームの開発

1. フロントエンド Tree ツリー コントロールの append メソッド

elementUI ツリーの下に append メソッドがありますコントロール。ツリー内のノードに子ノードを追加するために使用できます。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

現時点でツリーリストのインターフェースは完成しており、入ってきたデータの内容をappendメソッドで出力できるようになります。

console.log('传入的node:' + JSON.stringify(data))

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

最上位のデフォルト ノード F12 をクリックしてコンソールを表示します。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

次の内容が表示されます。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

これをフォーマットすると、実際にはノード全体のツリー構造になります。どのノードをクリックしても、データ内容はそのノード配下のすべてのノードデータになります。

しかし、実際には、現在クリックされているノードのデータだけが必要なので、このノードの下の子については気にする必要はありませんが、データ量が大きくないことを考慮して、そのまま渡します。それ全体をバックエンドに転送します。

2. ノード新規インターフェースのバックエンド実装

実装したい機能は、どのノードの追加ボタンをクリックするか、つまりこのノードの子ノードを追加するというものです。例:

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

フロントエンドは現在のノードのデータを取得できるため、新しいインターフェイスを追加するというアイデアもあります:

フロントエンドから渡されたデータセット作成時刻と現在のノードの作成時刻を取得します。更新時刻セットは、新しく追加された子ノードの兄弟ノード内での位置順序である pos です。子ノードのレベルはset (現在のノードのレベル) 1set 子ノードの親ノード (現在の受信インターフェイスのノード) idset はノードの名前を追加します (= last insert

1)。 layer

対応するコントローラー メソッドを追加します:

@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());
      }
  }
2.servicelayer

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();
    }

これは、上記の考え方に従って実装されます。 SetName を一時的に固定値に置き換えますので、まず新しいインターフェースが正常に実装できるか確認してください。

ここでのPosの処理が少し面倒で、これは新しく追加したノードの位置の順番を表しているので、それを抽出して新たに実装するメソッドを追加しました getNextLevelPos:

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;
      }
  }

クエリ項目の下には、parentId と同じ、すべてのノード データが含まれます。ここでのクエリ条件に注意してください。

.eq("level", level 1)、現在のレベル 1 は子ノードのレベルとして使用されます。eq("parentId"、nodeId)、現在のノードは親ノードとして使用されます

その結果、リストが空でなければ、最新の子ノードの位置に 1 を加えた値が次の子ノードの位置として返されます。

それ以外の場合、新しく追加されたノードは現在の親ノードの最初の子ノードとなり、pos 値として 1 が直接返されます。

3. フロントエンドとバックエンドの共同デバッグ

フロントエンドはインターフェイスを作成し、ページ上のインターフェイスを呼び出します。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

インターフェイスを呼び出し、成功プロンプトを追加して、ツリー リストを更新します。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

機能は正常で、該当ノード配下に固定名「ceshi111」の子ノードが追加され、ツリーが更新され最新のデータが表示されます。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

4. ノード名の編集

以上で関数に大きな問題がないことが分かりましたので、あとは解決するだけです。ノード名の編集の問題。この問題を解決するためにダイアログ ボックスを使用することにしました。

[追加]ボタンをクリックしてダイアログ ボックスを開き、ノード名を入力して保存できます。このダイアログ ボックスはシーンの編集にも使用できます。

プロジェクト管理機能では、ダイアログボックスを一度使用したことがありますので、該当するコードを直接コピーして修正しました。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

は return に相当します:

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

ダイアログ ボックスには、[キャンセル] と [保存] の 2 つのボタンがあります。保存ボタンをクリックすると、新規か変更かに応じて異なるメソッドが呼び出されます。

1. ダイアログ ボックスを開く

追加メソッドを変更し、新しいボタンをクリックしたときにダイアログ ボックスを開く必要があります。

新しいノードをデータで渡す必要があり、実際の新しい操作は handleNodeAdd メソッドであるため、もう 1 つ重要な点があります。したがって、ダイアログボックスを開くときにデータを保存する必要があります。

したがって、新しいフィールド currentNode を作成して返します: {}:

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

append メソッドでデータを currentNode に割り当てます:

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

#ここでは、 this.dialogStatus = 'create' でダイアログ ボックスを表示します。

2. 新しいノードを追加します
ダイアログ ボックスにノード名を入力し、[保存]をクリックして、

handleNodeAdd メソッドを呼び出してバックエンド インターフェイスを要求します。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

バックエンドに渡されるノード名は私たちが入力するため、ここでは this.currentNode.name = this.form.nodeName となります。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

#リクエストが成功した後にプロンプ​​トを表示し、ダイアログ ボックスを開いた後に最後のコンテンツが表示されないようにフォームをクリアします。

3. テスト
機能が正常かどうかをテストするために、プロジェクト ID=3 のノードを削除します。

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

新しいテスト ノードを追加します:

springboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッド

機能は正常です。

以上がspringboot vueフロントエンドおよびバックエンドインターフェイステストツリーノード追加関数メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Javaプラットフォームの独立性:OSの違いJavaプラットフォームの独立性:OSの違いMay 16, 2025 am 12:18 AM

さまざまなオペレーティングシステムでのJavaのパフォーマンスには微妙な違いがあります。 1)JVMの実装は、パフォーマンスとゴミ収集に影響を与えるHotspotやOpenJDKなど、異なります。 2)ファイルシステム構造とパスセパレーターは異なるため、Java標準ライブラリを使用して処理する必要があります。 3)ネットワークプロトコルの差動実装は、ネットワークパフォーマンスに影響します。 4)GUIコンポーネントの外観と動作は、システムによって異なります。標準のライブラリと仮想マシンテストを使用することにより、これらの違いの影響を減らし、Javaプログラムをスムーズに実行できるようにすることができます。

Javaの最高の機能:オブジェクト指向プログラミングからセキュリティまでJavaの最高の機能:オブジェクト指向プログラミングからセキュリティまでMay 16, 2025 am 12:15 AM

JavaOffersObustObject-OrientedProgramming(OOP)andTop-notchsecurityfeatures.1)oopinjavaincludesclasses、オブジェクト、継承、多型、老coluste、および有効化の有効化

JavaScript vs Javaの最良の機能JavaScript vs Javaの最良の機能May 16, 2025 am 12:13 AM

javascriptandjavavedistStrenctsss:javascriptexcelsindynamictypingandasynchronousprogramming、whilejavaisrobustwithstrongopandtyping.1)javascript'sdynamicnatureallowsforrapiddeddevermentand developmentandprototyping、

Javaプラットフォームの独立性:利益、制限、および実装Javaプラットフォームの独立性:利益、制限、および実装May 16, 2025 am 12:12 AM

JavaachievesplatformindependencethroughtheJavaVirtualMachine(JVM)andbytecode.1)TheJVMinterpretsbytecode,allowingthesamecodetorunonanyplatformwithaJVM.2)BytecodeiscompiledfromJavasourcecodeandisplatform-independent.However,limitationsincludepotentialp

Java:本当の言葉のプラットフォームの独立性Java:本当の言葉のプラットフォームの独立性May 16, 2025 am 12:07 AM

java'splatformentencemeansemeansapplicationscanrunonanyplatformwithajvm、「writeonce、runany hwhere。」

JVMパフォーマンスと他の言語JVMパフォーマンスと他の言語May 14, 2025 am 12:16 AM

jvm'sperformanceiscompetitivewitherruntimes、sped、safety、andproductivityの提供

Javaプラットフォームの独立性:使用の例Javaプラットフォームの独立性:使用の例May 14, 2025 am 12:14 AM

javaachievesplatformedentenceTheThejavavirtualMachine(JVM)、avainwithcodetorunonanyplatformwithajvm.1)codescompiledintobytecode、notmachine-specificcode.2)

JVMアーキテクチャ:Java Virtual Machineに深く飛び込みますJVMアーキテクチャ:Java Virtual Machineに深く飛び込みますMay 14, 2025 am 12:12 AM

thejvmisanabstractcomputingMachineCrucialForrunningJavaProgramsDuetoitsPlatForm-IndopentInterChitecture.Itincludes:1)ClassLoaderForloadingClasses、2)Runtimedataareaforforforatastorage、3)executionEngineWithinterter、Jitcompiler、およびGarbagecolfecolfecolfececolfecolfer

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。